@sammorrowdrums/mcpi-ai 0.70.9 → 0.85.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +845 -486
- package/dist/api/anthropic-messages.d.ts +71 -0
- package/dist/api/anthropic-messages.d.ts.map +1 -0
- package/dist/api/anthropic-messages.js +1060 -0
- package/dist/api/anthropic-messages.js.map +1 -0
- package/dist/api/anthropic-messages.lazy.d.ts +3 -0
- package/dist/api/anthropic-messages.lazy.d.ts.map +1 -0
- package/dist/api/anthropic-messages.lazy.js +3 -0
- package/dist/api/anthropic-messages.lazy.js.map +1 -0
- package/dist/api/azure-openai-responses.d.ts +15 -0
- package/dist/api/azure-openai-responses.d.ts.map +1 -0
- package/dist/api/azure-openai-responses.js +242 -0
- package/dist/api/azure-openai-responses.js.map +1 -0
- package/dist/api/azure-openai-responses.lazy.d.ts +3 -0
- package/dist/api/azure-openai-responses.lazy.d.ts.map +1 -0
- package/dist/api/azure-openai-responses.lazy.js +3 -0
- package/dist/api/azure-openai-responses.lazy.js.map +1 -0
- package/dist/api/bedrock-converse-stream.d.ts +38 -0
- package/dist/api/bedrock-converse-stream.d.ts.map +1 -0
- package/dist/api/bedrock-converse-stream.js +967 -0
- package/dist/api/bedrock-converse-stream.js.map +1 -0
- package/dist/api/bedrock-converse-stream.lazy.d.ts +9 -0
- package/dist/api/bedrock-converse-stream.lazy.d.ts.map +1 -0
- package/dist/api/bedrock-converse-stream.lazy.js +30 -0
- package/dist/api/bedrock-converse-stream.lazy.js.map +1 -0
- package/dist/api/cloudflare-gateway-binding.d.ts +69 -0
- package/dist/api/cloudflare-gateway-binding.d.ts.map +1 -0
- package/dist/api/cloudflare-gateway-binding.js +159 -0
- package/dist/api/cloudflare-gateway-binding.js.map +1 -0
- package/dist/api/cloudflare.d.ts +9 -0
- package/dist/api/cloudflare.d.ts.map +1 -0
- package/dist/api/cloudflare.js +9 -0
- package/dist/api/cloudflare.js.map +1 -0
- package/dist/api/constrained-sampling.d.ts +20 -0
- package/dist/api/constrained-sampling.d.ts.map +1 -0
- package/dist/api/constrained-sampling.js +222 -0
- package/dist/api/constrained-sampling.js.map +1 -0
- package/dist/{providers → api}/github-copilot-headers.d.ts +1 -1
- package/dist/api/github-copilot-headers.d.ts.map +1 -0
- package/dist/api/github-copilot-headers.js.map +1 -0
- package/dist/api/google-generative-ai.d.ts +13 -0
- package/dist/api/google-generative-ai.d.ts.map +1 -0
- package/dist/api/google-generative-ai.js +417 -0
- package/dist/api/google-generative-ai.js.map +1 -0
- package/dist/api/google-generative-ai.lazy.d.ts +3 -0
- package/dist/api/google-generative-ai.lazy.d.ts.map +1 -0
- package/dist/api/google-generative-ai.lazy.js +3 -0
- package/dist/api/google-generative-ai.lazy.js.map +1 -0
- package/dist/{providers → api}/google-shared.d.ts +23 -7
- package/dist/api/google-shared.d.ts.map +1 -0
- package/dist/{providers → api}/google-shared.js +76 -30
- package/dist/api/google-shared.js.map +1 -0
- package/dist/api/google-vertex.d.ts +15 -0
- package/dist/api/google-vertex.d.ts.map +1 -0
- package/dist/api/google-vertex.js +466 -0
- package/dist/api/google-vertex.js.map +1 -0
- package/dist/api/google-vertex.lazy.d.ts +3 -0
- package/dist/api/google-vertex.lazy.d.ts.map +1 -0
- package/dist/api/google-vertex.lazy.js +3 -0
- package/dist/api/google-vertex.lazy.js.map +1 -0
- package/dist/api/lazy.d.ts +19 -0
- package/dist/api/lazy.d.ts.map +1 -0
- package/dist/api/lazy.js +70 -0
- package/dist/api/lazy.js.map +1 -0
- package/dist/api/mistral-conversations.d.ts +25 -0
- package/dist/api/mistral-conversations.d.ts.map +1 -0
- package/dist/api/mistral-conversations.js +736 -0
- package/dist/api/mistral-conversations.js.map +1 -0
- package/dist/api/mistral-conversations.lazy.d.ts +3 -0
- package/dist/api/mistral-conversations.lazy.d.ts.map +1 -0
- package/dist/api/mistral-conversations.lazy.js +3 -0
- package/dist/api/mistral-conversations.lazy.js.map +1 -0
- package/dist/api/openai-codex-responses.d.ts +31 -0
- package/dist/api/openai-codex-responses.d.ts.map +1 -0
- package/dist/api/openai-codex-responses.js +1294 -0
- package/dist/api/openai-codex-responses.js.map +1 -0
- package/dist/api/openai-codex-responses.lazy.d.ts +3 -0
- package/dist/api/openai-codex-responses.lazy.d.ts.map +1 -0
- package/dist/api/openai-codex-responses.lazy.js +3 -0
- package/dist/api/openai-codex-responses.lazy.js.map +1 -0
- package/dist/api/openai-completions.d.ts +22 -0
- package/dist/api/openai-completions.d.ts.map +1 -0
- package/dist/api/openai-completions.js +1279 -0
- package/dist/api/openai-completions.js.map +1 -0
- package/dist/api/openai-completions.lazy.d.ts +3 -0
- package/dist/api/openai-completions.lazy.d.ts.map +1 -0
- package/dist/api/openai-completions.lazy.js +3 -0
- package/dist/api/openai-completions.lazy.js.map +1 -0
- package/dist/api/openai-prompt-cache.d.ts +3 -0
- package/dist/api/openai-prompt-cache.d.ts.map +1 -0
- package/dist/api/openai-prompt-cache.js +10 -0
- package/dist/api/openai-prompt-cache.js.map +1 -0
- package/dist/{providers → api}/openai-responses-shared.d.ts +11 -3
- package/dist/api/openai-responses-shared.d.ts.map +1 -0
- package/dist/api/openai-responses-shared.js +686 -0
- package/dist/api/openai-responses-shared.js.map +1 -0
- package/dist/{providers → api}/openai-responses.d.ts +5 -4
- package/dist/api/openai-responses.d.ts.map +1 -0
- package/dist/api/openai-responses.js +283 -0
- package/dist/api/openai-responses.js.map +1 -0
- package/dist/api/openai-responses.lazy.d.ts +3 -0
- package/dist/api/openai-responses.lazy.d.ts.map +1 -0
- package/dist/api/openai-responses.lazy.js +3 -0
- package/dist/api/openai-responses.lazy.js.map +1 -0
- package/dist/api/openrouter-images.d.ts +3 -0
- package/dist/api/openrouter-images.d.ts.map +1 -0
- package/dist/api/openrouter-images.js +132 -0
- package/dist/api/openrouter-images.js.map +1 -0
- package/dist/api/openrouter-images.lazy.d.ts +3 -0
- package/dist/api/openrouter-images.lazy.d.ts.map +1 -0
- package/dist/api/openrouter-images.lazy.js +4 -0
- package/dist/api/openrouter-images.lazy.js.map +1 -0
- package/dist/api/pi-messages.d.ts +97 -0
- package/dist/api/pi-messages.d.ts.map +1 -0
- package/dist/api/pi-messages.js +307 -0
- package/dist/api/pi-messages.js.map +1 -0
- package/dist/api/pi-messages.lazy.d.ts +3 -0
- package/dist/api/pi-messages.lazy.d.ts.map +1 -0
- package/dist/api/pi-messages.lazy.js +3 -0
- package/dist/api/pi-messages.lazy.js.map +1 -0
- package/dist/api/simple-options.d.ts +11 -0
- package/dist/api/simple-options.d.ts.map +1 -0
- package/dist/api/simple-options.js +59 -0
- package/dist/api/simple-options.js.map +1 -0
- package/dist/{providers → api}/transform-messages.d.ts +1 -1
- package/dist/api/transform-messages.d.ts.map +1 -0
- package/dist/{providers → api}/transform-messages.js +4 -1
- package/dist/api/transform-messages.js.map +1 -0
- package/dist/auth/context.d.ts +7 -0
- package/dist/auth/context.d.ts.map +1 -0
- package/dist/auth/context.js +42 -0
- package/dist/auth/context.js.map +1 -0
- package/dist/auth/credential-store.d.ts +17 -0
- package/dist/auth/credential-store.d.ts.map +1 -0
- package/dist/auth/credential-store.js +51 -0
- package/dist/auth/credential-store.js.map +1 -0
- package/dist/auth/helpers.d.ts +22 -0
- package/dist/auth/helpers.d.ts.map +1 -0
- package/dist/auth/helpers.js +53 -0
- package/dist/auth/helpers.js.map +1 -0
- package/dist/auth/oauth/anthropic.d.ts +9 -0
- package/dist/auth/oauth/anthropic.d.ts.map +1 -0
- package/dist/{utils → auth}/oauth/anthropic.js +66 -93
- package/dist/auth/oauth/anthropic.js.map +1 -0
- package/dist/auth/oauth/device-code.d.ts +23 -0
- package/dist/auth/oauth/device-code.d.ts.map +1 -0
- package/dist/auth/oauth/device-code.js +69 -0
- package/dist/auth/oauth/device-code.js.map +1 -0
- package/dist/auth/oauth/github-copilot.d.ts +6 -0
- package/dist/auth/oauth/github-copilot.d.ts.map +1 -0
- package/dist/auth/oauth/github-copilot.js +328 -0
- package/dist/auth/oauth/github-copilot.js.map +1 -0
- package/dist/auth/oauth/kimi-coding.d.ts +10 -0
- package/dist/auth/oauth/kimi-coding.d.ts.map +1 -0
- package/dist/auth/oauth/kimi-coding.js +261 -0
- package/dist/auth/oauth/kimi-coding.js.map +1 -0
- package/dist/auth/oauth/load.d.ts +27 -0
- package/dist/auth/oauth/load.d.ts.map +1 -0
- package/dist/auth/oauth/load.js +59 -0
- package/dist/auth/oauth/load.js.map +1 -0
- package/dist/auth/oauth/oauth-page.d.ts.map +1 -0
- package/dist/auth/oauth/oauth-page.js.map +1 -0
- package/dist/auth/oauth/openai-codex.d.ts +9 -0
- package/dist/auth/oauth/openai-codex.d.ts.map +1 -0
- package/dist/auth/oauth/openai-codex.js +450 -0
- package/dist/auth/oauth/openai-codex.js.map +1 -0
- package/dist/auth/oauth/openrouter.d.ts +15 -0
- package/dist/auth/oauth/openrouter.d.ts.map +1 -0
- package/dist/auth/oauth/openrouter.js +277 -0
- package/dist/auth/oauth/openrouter.js.map +1 -0
- package/dist/auth/oauth/pkce.d.ts.map +1 -0
- package/dist/auth/oauth/pkce.js.map +1 -0
- package/dist/auth/oauth/radius.d.ts +17 -0
- package/dist/auth/oauth/radius.d.ts.map +1 -0
- package/dist/auth/oauth/radius.js +321 -0
- package/dist/auth/oauth/radius.js.map +1 -0
- package/dist/auth/oauth/xai.d.ts +6 -0
- package/dist/auth/oauth/xai.d.ts.map +1 -0
- package/dist/auth/oauth/xai.js +190 -0
- package/dist/auth/oauth/xai.js.map +1 -0
- package/dist/auth/resolve.d.ts +27 -0
- package/dist/auth/resolve.d.ts.map +1 -0
- package/dist/auth/resolve.js +132 -0
- package/dist/auth/resolve.js.map +1 -0
- package/dist/auth/types.d.ts +231 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/bedrock-provider.d.ts +2 -2
- package/dist/bedrock-provider.d.ts.map +1 -1
- package/dist/bedrock-provider.js +3 -3
- package/dist/bedrock-provider.js.map +1 -1
- package/dist/bun-oauth.d.ts +3 -0
- package/dist/bun-oauth.d.ts.map +1 -0
- package/dist/bun-oauth.js +21 -0
- package/dist/bun-oauth.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +60 -63
- package/dist/cli.js.map +1 -1
- package/dist/compat/extension-oauth-types.d.ts +39 -0
- package/dist/compat/extension-oauth-types.d.ts.map +1 -0
- package/dist/compat/extension-oauth-types.js +2 -0
- package/dist/compat/extension-oauth-types.js.map +1 -0
- package/dist/compat.d.ts +67 -0
- package/dist/compat.d.ts.map +1 -0
- package/dist/compat.js +199 -0
- package/dist/compat.js.map +1 -0
- package/dist/env-api-keys.d.ts +8 -5
- package/dist/env-api-keys.d.ts.map +1 -1
- package/dist/env-api-keys.js +60 -22
- package/dist/env-api-keys.js.map +1 -1
- package/dist/image-models.d.ts +10 -0
- package/dist/image-models.d.ts.map +1 -0
- package/dist/image-models.generated.d.ts +755 -0
- package/dist/image-models.generated.d.ts.map +1 -0
- package/dist/image-models.generated.js +757 -0
- package/dist/image-models.generated.js.map +1 -0
- package/dist/image-models.js +23 -0
- package/dist/image-models.js.map +1 -0
- package/dist/images-api-registry.d.ts +14 -0
- package/dist/images-api-registry.d.ts.map +1 -0
- package/dist/images-api-registry.js +22 -0
- package/dist/images-api-registry.js.map +1 -0
- package/dist/images-models.d.ts +95 -0
- package/dist/images-models.d.ts.map +1 -0
- package/dist/images-models.js +143 -0
- package/dist/images-models.js.map +1 -0
- package/dist/images.d.ts +4 -0
- package/dist/images.d.ts.map +1 -0
- package/dist/images.js +14 -0
- package/dist/images.js.map +1 -0
- package/dist/index.d.ts +32 -23
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -4
- package/dist/index.js.map +1 -1
- package/dist/legacy-api-aliases.d.ts +42 -0
- package/dist/legacy-api-aliases.d.ts.map +1 -0
- package/dist/legacy-api-aliases.js +49 -0
- package/dist/legacy-api-aliases.js.map +1 -0
- package/dist/model-catalog.d.ts +17 -0
- package/dist/model-catalog.d.ts.map +1 -0
- package/dist/model-catalog.js +4 -0
- package/dist/model-catalog.js.map +1 -0
- package/dist/models-store.d.ts +29 -0
- package/dist/models-store.d.ts.map +1 -0
- package/dist/models-store.js +17 -0
- package/dist/models-store.js.map +1 -0
- package/dist/models.d.ts +191 -15
- package/dist/models.d.ts.map +1 -1
- package/dist/models.generated.d.ts +78 -15427
- package/dist/models.generated.d.ts.map +1 -1
- package/dist/models.generated.js +78 -15235
- package/dist/models.generated.js.map +1 -1
- package/dist/models.js +565 -38
- package/dist/models.js.map +1 -1
- package/dist/oauth.d.ts +2 -1
- package/dist/oauth.d.ts.map +1 -1
- package/dist/oauth.js +1 -1
- package/dist/oauth.js.map +1 -1
- package/dist/providers/all.d.ts +28 -0
- package/dist/providers/all.d.ts.map +1 -0
- package/dist/providers/all.js +131 -0
- package/dist/providers/all.js.map +1 -0
- package/dist/providers/amazon-bedrock.d.ts +2 -37
- package/dist/providers/amazon-bedrock.d.ts.map +1 -1
- package/dist/providers/amazon-bedrock.js +81 -724
- package/dist/providers/amazon-bedrock.js.map +1 -1
- package/dist/providers/amazon-bedrock.models.d.ts +4 -0
- package/dist/providers/amazon-bedrock.models.d.ts.map +1 -0
- package/dist/providers/amazon-bedrock.models.js +6 -0
- package/dist/providers/amazon-bedrock.models.js.map +1 -0
- package/dist/providers/ant-ling.d.ts +3 -0
- package/dist/providers/ant-ling.d.ts.map +1 -0
- package/dist/providers/ant-ling.js +15 -0
- package/dist/providers/ant-ling.js.map +1 -0
- package/dist/providers/ant-ling.models.d.ts +4 -0
- package/dist/providers/ant-ling.models.d.ts.map +1 -0
- package/dist/providers/ant-ling.models.js +6 -0
- package/dist/providers/ant-ling.models.js.map +1 -0
- package/dist/providers/anthropic.d.ts +2 -53
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +48 -940
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/anthropic.models.d.ts +4 -0
- package/dist/providers/anthropic.models.d.ts.map +1 -0
- package/dist/providers/anthropic.models.js +6 -0
- package/dist/providers/anthropic.models.js.map +1 -0
- package/dist/providers/azure-openai-responses.d.ts +2 -14
- package/dist/providers/azure-openai-responses.d.ts.map +1 -1
- package/dist/providers/azure-openai-responses.js +11 -184
- package/dist/providers/azure-openai-responses.js.map +1 -1
- package/dist/providers/azure-openai-responses.models.d.ts +4 -0
- package/dist/providers/azure-openai-responses.models.d.ts.map +1 -0
- package/dist/providers/azure-openai-responses.models.js +6 -0
- package/dist/providers/azure-openai-responses.models.js.map +1 -0
- package/dist/providers/baseten.d.ts +3 -0
- package/dist/providers/baseten.d.ts.map +1 -0
- package/dist/providers/baseten.js +15 -0
- package/dist/providers/baseten.js.map +1 -0
- package/dist/providers/baseten.models.d.ts +4 -0
- package/dist/providers/baseten.models.d.ts.map +1 -0
- package/dist/providers/baseten.models.js +6 -0
- package/dist/providers/baseten.models.js.map +1 -0
- package/dist/providers/cerebras.d.ts +3 -0
- package/dist/providers/cerebras.d.ts.map +1 -0
- package/dist/providers/cerebras.js +15 -0
- package/dist/providers/cerebras.js.map +1 -0
- package/dist/providers/cerebras.models.d.ts +4 -0
- package/dist/providers/cerebras.models.d.ts.map +1 -0
- package/dist/providers/cerebras.models.js +6 -0
- package/dist/providers/cerebras.models.js.map +1 -0
- package/dist/providers/cloudflare-ai-gateway.d.ts +3 -0
- package/dist/providers/cloudflare-ai-gateway.d.ts.map +1 -0
- package/dist/providers/cloudflare-ai-gateway.js +21 -0
- package/dist/providers/cloudflare-ai-gateway.js.map +1 -0
- package/dist/providers/cloudflare-ai-gateway.models.d.ts +4 -0
- package/dist/providers/cloudflare-ai-gateway.models.d.ts.map +1 -0
- package/dist/providers/cloudflare-ai-gateway.models.js +6 -0
- package/dist/providers/cloudflare-ai-gateway.models.js.map +1 -0
- package/dist/providers/cloudflare-auth.d.ts +4 -0
- package/dist/providers/cloudflare-auth.d.ts.map +1 -0
- package/dist/providers/cloudflare-auth.js +86 -0
- package/dist/providers/cloudflare-auth.js.map +1 -0
- package/dist/providers/cloudflare-stream.d.ts +8 -0
- package/dist/providers/cloudflare-stream.d.ts.map +1 -0
- package/dist/providers/cloudflare-stream.js +21 -0
- package/dist/providers/cloudflare-stream.js.map +1 -0
- package/dist/providers/cloudflare-workers-ai.d.ts +3 -0
- package/dist/providers/cloudflare-workers-ai.d.ts.map +1 -0
- package/dist/providers/cloudflare-workers-ai.js +15 -0
- package/dist/providers/cloudflare-workers-ai.js.map +1 -0
- package/dist/providers/cloudflare-workers-ai.models.d.ts +4 -0
- package/dist/providers/cloudflare-workers-ai.models.d.ts.map +1 -0
- package/dist/providers/cloudflare-workers-ai.models.js +6 -0
- package/dist/providers/cloudflare-workers-ai.models.js.map +1 -0
- package/dist/providers/data/.manifest.json +1 -0
- package/dist/providers/data/amazon-bedrock.json +1 -0
- package/dist/providers/data/ant-ling.json +1 -0
- package/dist/providers/data/anthropic.json +1 -0
- package/dist/providers/data/azure-openai-responses.json +1 -0
- package/dist/providers/data/baseten.json +1 -0
- package/dist/providers/data/cerebras.json +1 -0
- package/dist/providers/data/cloudflare-ai-gateway.json +1 -0
- package/dist/providers/data/cloudflare-workers-ai.json +1 -0
- package/dist/providers/data/deepseek.json +1 -0
- package/dist/providers/data/fireworks.json +1 -0
- package/dist/providers/data/github-copilot.json +1 -0
- package/dist/providers/data/google-vertex.json +1 -0
- package/dist/providers/data/google.json +1 -0
- package/dist/providers/data/groq.json +1 -0
- package/dist/providers/data/huggingface.json +1 -0
- package/dist/providers/data/kimi-coding.json +1 -0
- package/dist/providers/data/minimax-cn.json +1 -0
- package/dist/providers/data/minimax.json +1 -0
- package/dist/providers/data/mistral.json +1 -0
- package/dist/providers/data/moonshotai-cn.json +1 -0
- package/dist/providers/data/moonshotai.json +1 -0
- package/dist/providers/data/nvidia.json +1 -0
- package/dist/providers/data/openai-codex.json +1 -0
- package/dist/providers/data/openai.json +1 -0
- package/dist/providers/data/opencode-go.json +1 -0
- package/dist/providers/data/opencode.json +1 -0
- package/dist/providers/data/openrouter.json +1 -0
- package/dist/providers/data/qwen-token-plan-cn.json +1 -0
- package/dist/providers/data/qwen-token-plan-individual.json +1 -0
- package/dist/providers/data/qwen-token-plan.json +1 -0
- package/dist/providers/data/together.json +1 -0
- package/dist/providers/data/vercel-ai-gateway.json +1 -0
- package/dist/providers/data/xai.json +1 -0
- package/dist/providers/data/xiaomi-token-plan-ams.json +1 -0
- package/dist/providers/data/xiaomi-token-plan-cn.json +1 -0
- package/dist/providers/data/xiaomi-token-plan-sgp.json +1 -0
- package/dist/providers/data/xiaomi.json +1 -0
- package/dist/providers/data/zai-coding-cn.json +1 -0
- package/dist/providers/data/zai.json +1 -0
- package/dist/providers/deepseek.d.ts +3 -0
- package/dist/providers/deepseek.d.ts.map +1 -0
- package/dist/providers/deepseek.js +15 -0
- package/dist/providers/deepseek.js.map +1 -0
- package/dist/providers/deepseek.models.d.ts +4 -0
- package/dist/providers/deepseek.models.d.ts.map +1 -0
- package/dist/providers/deepseek.models.js +6 -0
- package/dist/providers/deepseek.models.js.map +1 -0
- package/dist/providers/faux.d.ts +53 -7
- package/dist/providers/faux.d.ts.map +1 -1
- package/dist/providers/faux.js +131 -11
- package/dist/providers/faux.js.map +1 -1
- package/dist/providers/fireworks.d.ts +3 -0
- package/dist/providers/fireworks.d.ts.map +1 -0
- package/dist/providers/fireworks.js +19 -0
- package/dist/providers/fireworks.js.map +1 -0
- package/dist/providers/fireworks.models.d.ts +4 -0
- package/dist/providers/fireworks.models.d.ts.map +1 -0
- package/dist/providers/fireworks.models.js +6 -0
- package/dist/providers/fireworks.models.js.map +1 -0
- package/dist/providers/github-copilot.d.ts +3 -0
- package/dist/providers/github-copilot.d.ts.map +1 -0
- package/dist/providers/github-copilot.js +35 -0
- package/dist/providers/github-copilot.js.map +1 -0
- package/dist/providers/github-copilot.models.d.ts +4 -0
- package/dist/providers/github-copilot.models.d.ts.map +1 -0
- package/dist/providers/github-copilot.models.js +6 -0
- package/dist/providers/github-copilot.models.js.map +1 -0
- package/dist/providers/google-vertex.d.ts +2 -14
- package/dist/providers/google-vertex.d.ts.map +1 -1
- package/dist/providers/google-vertex.js +86 -433
- package/dist/providers/google-vertex.js.map +1 -1
- package/dist/providers/google-vertex.models.d.ts +4 -0
- package/dist/providers/google-vertex.models.d.ts.map +1 -0
- package/dist/providers/google-vertex.models.js +6 -0
- package/dist/providers/google-vertex.models.js.map +1 -0
- package/dist/providers/google.d.ts +2 -12
- package/dist/providers/google.d.ts.map +1 -1
- package/dist/providers/google.js +12 -396
- package/dist/providers/google.js.map +1 -1
- package/dist/providers/google.models.d.ts +4 -0
- package/dist/providers/google.models.d.ts.map +1 -0
- package/dist/providers/google.models.js +6 -0
- package/dist/providers/google.models.js.map +1 -0
- package/dist/providers/groq.d.ts +3 -0
- package/dist/providers/groq.d.ts.map +1 -0
- package/dist/providers/groq.js +15 -0
- package/dist/providers/groq.js.map +1 -0
- package/dist/providers/groq.models.d.ts +4 -0
- package/dist/providers/groq.models.d.ts.map +1 -0
- package/dist/providers/groq.models.js +6 -0
- package/dist/providers/groq.models.js.map +1 -0
- package/dist/providers/huggingface.d.ts +3 -0
- package/dist/providers/huggingface.d.ts.map +1 -0
- package/dist/providers/huggingface.js +15 -0
- package/dist/providers/huggingface.js.map +1 -0
- package/dist/providers/huggingface.models.d.ts +4 -0
- package/dist/providers/huggingface.models.d.ts.map +1 -0
- package/dist/providers/huggingface.models.js +6 -0
- package/dist/providers/huggingface.models.js.map +1 -0
- package/dist/providers/images/register-builtins.d.ts +4 -0
- package/dist/providers/images/register-builtins.d.ts.map +1 -0
- package/dist/providers/images/register-builtins.js +34 -0
- package/dist/providers/images/register-builtins.js.map +1 -0
- package/dist/providers/kimi-coding.d.ts +3 -0
- package/dist/providers/kimi-coding.d.ts.map +1 -0
- package/dist/providers/kimi-coding.js +24 -0
- package/dist/providers/kimi-coding.js.map +1 -0
- package/dist/providers/kimi-coding.models.d.ts +4 -0
- package/dist/providers/kimi-coding.models.d.ts.map +1 -0
- package/dist/providers/kimi-coding.models.js +6 -0
- package/dist/providers/kimi-coding.models.js.map +1 -0
- package/dist/providers/minimax-cn.d.ts +3 -0
- package/dist/providers/minimax-cn.d.ts.map +1 -0
- package/dist/providers/minimax-cn.js +15 -0
- package/dist/providers/minimax-cn.js.map +1 -0
- package/dist/providers/minimax-cn.models.d.ts +4 -0
- package/dist/providers/minimax-cn.models.d.ts.map +1 -0
- package/dist/providers/minimax-cn.models.js +6 -0
- package/dist/providers/minimax-cn.models.js.map +1 -0
- package/dist/providers/minimax.d.ts +3 -0
- package/dist/providers/minimax.d.ts.map +1 -0
- package/dist/providers/minimax.js +15 -0
- package/dist/providers/minimax.js.map +1 -0
- package/dist/providers/minimax.models.d.ts +4 -0
- package/dist/providers/minimax.models.d.ts.map +1 -0
- package/dist/providers/minimax.models.js +6 -0
- package/dist/providers/minimax.models.js.map +1 -0
- package/dist/providers/mistral.d.ts +2 -24
- package/dist/providers/mistral.d.ts.map +1 -1
- package/dist/providers/mistral.js +12 -531
- package/dist/providers/mistral.js.map +1 -1
- package/dist/providers/mistral.models.d.ts +4 -0
- package/dist/providers/mistral.models.d.ts.map +1 -0
- package/dist/providers/mistral.models.js +6 -0
- package/dist/providers/mistral.models.js.map +1 -0
- package/dist/providers/moonshotai-cn.d.ts +3 -0
- package/dist/providers/moonshotai-cn.d.ts.map +1 -0
- package/dist/providers/moonshotai-cn.js +15 -0
- package/dist/providers/moonshotai-cn.js.map +1 -0
- package/dist/providers/moonshotai-cn.models.d.ts +4 -0
- package/dist/providers/moonshotai-cn.models.d.ts.map +1 -0
- package/dist/providers/moonshotai-cn.models.js +6 -0
- package/dist/providers/moonshotai-cn.models.js.map +1 -0
- package/dist/providers/moonshotai.d.ts +3 -0
- package/dist/providers/moonshotai.d.ts.map +1 -0
- package/dist/providers/moonshotai.js +15 -0
- package/dist/providers/moonshotai.js.map +1 -0
- package/dist/providers/moonshotai.models.d.ts +4 -0
- package/dist/providers/moonshotai.models.d.ts.map +1 -0
- package/dist/providers/moonshotai.models.js +6 -0
- package/dist/providers/moonshotai.models.js.map +1 -0
- package/dist/providers/nvidia.d.ts +3 -0
- package/dist/providers/nvidia.d.ts.map +1 -0
- package/dist/providers/nvidia.js +15 -0
- package/dist/providers/nvidia.js.map +1 -0
- package/dist/providers/nvidia.models.d.ts +4 -0
- package/dist/providers/nvidia.models.d.ts.map +1 -0
- package/dist/providers/nvidia.models.js +6 -0
- package/dist/providers/nvidia.models.js.map +1 -0
- package/dist/providers/openai-codex.d.ts +3 -0
- package/dist/providers/openai-codex.d.ts.map +1 -0
- package/dist/providers/openai-codex.js +22 -0
- package/dist/providers/openai-codex.js.map +1 -0
- package/dist/providers/openai-codex.models.d.ts +4 -0
- package/dist/providers/openai-codex.models.d.ts.map +1 -0
- package/dist/providers/openai-codex.models.js +6 -0
- package/dist/providers/openai-codex.models.js.map +1 -0
- package/dist/providers/openai.d.ts +3 -0
- package/dist/providers/openai.d.ts.map +1 -0
- package/dist/providers/openai.js +15 -0
- package/dist/providers/openai.js.map +1 -0
- package/dist/providers/openai.models.d.ts +4 -0
- package/dist/providers/openai.models.d.ts.map +1 -0
- package/dist/providers/openai.models.js +6 -0
- package/dist/providers/openai.models.js.map +1 -0
- package/dist/providers/opencode-go.d.ts +3 -0
- package/dist/providers/opencode-go.d.ts.map +1 -0
- package/dist/providers/opencode-go.js +20 -0
- package/dist/providers/opencode-go.js.map +1 -0
- package/dist/providers/opencode-go.models.d.ts +4 -0
- package/dist/providers/opencode-go.models.d.ts.map +1 -0
- package/dist/providers/opencode-go.models.js +6 -0
- package/dist/providers/opencode-go.models.js.map +1 -0
- package/dist/providers/opencode.d.ts +3 -0
- package/dist/providers/opencode.d.ts.map +1 -0
- package/dist/providers/opencode.js +22 -0
- package/dist/providers/opencode.js.map +1 -0
- package/dist/providers/opencode.models.d.ts +4 -0
- package/dist/providers/opencode.models.d.ts.map +1 -0
- package/dist/providers/opencode.models.js +6 -0
- package/dist/providers/opencode.models.js.map +1 -0
- package/dist/providers/openrouter-images.d.ts +3 -0
- package/dist/providers/openrouter-images.d.ts.map +1 -0
- package/dist/providers/openrouter-images.js +22 -0
- package/dist/providers/openrouter-images.js.map +1 -0
- package/dist/providers/openrouter.d.ts +3 -0
- package/dist/providers/openrouter.d.ts.map +1 -0
- package/dist/providers/openrouter.js +23 -0
- package/dist/providers/openrouter.js.map +1 -0
- package/dist/providers/openrouter.models.d.ts +4 -0
- package/dist/providers/openrouter.models.d.ts.map +1 -0
- package/dist/providers/openrouter.models.js +6 -0
- package/dist/providers/openrouter.models.js.map +1 -0
- package/dist/providers/qwen-token-plan-cn.d.ts +3 -0
- package/dist/providers/qwen-token-plan-cn.d.ts.map +1 -0
- package/dist/providers/qwen-token-plan-cn.js +15 -0
- package/dist/providers/qwen-token-plan-cn.js.map +1 -0
- package/dist/providers/qwen-token-plan-cn.models.d.ts +4 -0
- package/dist/providers/qwen-token-plan-cn.models.d.ts.map +1 -0
- package/dist/providers/qwen-token-plan-cn.models.js +6 -0
- package/dist/providers/qwen-token-plan-cn.models.js.map +1 -0
- package/dist/providers/qwen-token-plan-individual.d.ts +3 -0
- package/dist/providers/qwen-token-plan-individual.d.ts.map +1 -0
- package/dist/providers/qwen-token-plan-individual.js +15 -0
- package/dist/providers/qwen-token-plan-individual.js.map +1 -0
- package/dist/providers/qwen-token-plan-individual.models.d.ts +4 -0
- package/dist/providers/qwen-token-plan-individual.models.d.ts.map +1 -0
- package/dist/providers/qwen-token-plan-individual.models.js +6 -0
- package/dist/providers/qwen-token-plan-individual.models.js.map +1 -0
- package/dist/providers/qwen-token-plan.d.ts +3 -0
- package/dist/providers/qwen-token-plan.d.ts.map +1 -0
- package/dist/providers/qwen-token-plan.js +15 -0
- package/dist/providers/qwen-token-plan.js.map +1 -0
- package/dist/providers/qwen-token-plan.models.d.ts +4 -0
- package/dist/providers/qwen-token-plan.models.d.ts.map +1 -0
- package/dist/providers/qwen-token-plan.models.js +6 -0
- package/dist/providers/qwen-token-plan.models.js.map +1 -0
- package/dist/providers/radius-config.d.ts +26 -0
- package/dist/providers/radius-config.d.ts.map +1 -0
- package/dist/providers/radius-config.js +63 -0
- package/dist/providers/radius-config.js.map +1 -0
- package/dist/providers/radius.d.ts +9 -0
- package/dist/providers/radius.d.ts.map +1 -0
- package/dist/providers/radius.js +64 -0
- package/dist/providers/radius.js.map +1 -0
- package/dist/providers/together.d.ts +3 -0
- package/dist/providers/together.d.ts.map +1 -0
- package/dist/providers/together.js +15 -0
- package/dist/providers/together.js.map +1 -0
- package/dist/providers/together.models.d.ts +4 -0
- package/dist/providers/together.models.d.ts.map +1 -0
- package/dist/providers/together.models.js +6 -0
- package/dist/providers/together.models.js.map +1 -0
- package/dist/providers/vercel-ai-gateway.d.ts +3 -0
- package/dist/providers/vercel-ai-gateway.d.ts.map +1 -0
- package/dist/providers/vercel-ai-gateway.js +15 -0
- package/dist/providers/vercel-ai-gateway.js.map +1 -0
- package/dist/providers/vercel-ai-gateway.models.d.ts +4 -0
- package/dist/providers/vercel-ai-gateway.models.d.ts.map +1 -0
- package/dist/providers/vercel-ai-gateway.models.js +6 -0
- package/dist/providers/vercel-ai-gateway.models.js.map +1 -0
- package/dist/providers/xai.d.ts +3 -0
- package/dist/providers/xai.d.ts.map +1 -0
- package/dist/providers/xai.js +28 -0
- package/dist/providers/xai.js.map +1 -0
- package/dist/providers/xai.models.d.ts +4 -0
- package/dist/providers/xai.models.d.ts.map +1 -0
- package/dist/providers/xai.models.js +6 -0
- package/dist/providers/xai.models.js.map +1 -0
- package/dist/providers/xiaomi-token-plan-ams.d.ts +3 -0
- package/dist/providers/xiaomi-token-plan-ams.d.ts.map +1 -0
- package/dist/providers/xiaomi-token-plan-ams.js +15 -0
- package/dist/providers/xiaomi-token-plan-ams.js.map +1 -0
- package/dist/providers/xiaomi-token-plan-ams.models.d.ts +4 -0
- package/dist/providers/xiaomi-token-plan-ams.models.d.ts.map +1 -0
- package/dist/providers/xiaomi-token-plan-ams.models.js +6 -0
- package/dist/providers/xiaomi-token-plan-ams.models.js.map +1 -0
- package/dist/providers/xiaomi-token-plan-cn.d.ts +3 -0
- package/dist/providers/xiaomi-token-plan-cn.d.ts.map +1 -0
- package/dist/providers/xiaomi-token-plan-cn.js +15 -0
- package/dist/providers/xiaomi-token-plan-cn.js.map +1 -0
- package/dist/providers/xiaomi-token-plan-cn.models.d.ts +4 -0
- package/dist/providers/xiaomi-token-plan-cn.models.d.ts.map +1 -0
- package/dist/providers/xiaomi-token-plan-cn.models.js +6 -0
- package/dist/providers/xiaomi-token-plan-cn.models.js.map +1 -0
- package/dist/providers/xiaomi-token-plan-sgp.d.ts +3 -0
- package/dist/providers/xiaomi-token-plan-sgp.d.ts.map +1 -0
- package/dist/providers/xiaomi-token-plan-sgp.js +15 -0
- package/dist/providers/xiaomi-token-plan-sgp.js.map +1 -0
- package/dist/providers/xiaomi-token-plan-sgp.models.d.ts +4 -0
- package/dist/providers/xiaomi-token-plan-sgp.models.d.ts.map +1 -0
- package/dist/providers/xiaomi-token-plan-sgp.models.js +6 -0
- package/dist/providers/xiaomi-token-plan-sgp.models.js.map +1 -0
- package/dist/providers/xiaomi.d.ts +3 -0
- package/dist/providers/xiaomi.d.ts.map +1 -0
- package/dist/providers/xiaomi.js +15 -0
- package/dist/providers/xiaomi.js.map +1 -0
- package/dist/providers/xiaomi.models.d.ts +4 -0
- package/dist/providers/xiaomi.models.d.ts.map +1 -0
- package/dist/providers/xiaomi.models.js +6 -0
- package/dist/providers/xiaomi.models.js.map +1 -0
- package/dist/providers/zai-coding-cn.d.ts +3 -0
- package/dist/providers/zai-coding-cn.d.ts.map +1 -0
- package/dist/providers/zai-coding-cn.js +15 -0
- package/dist/providers/zai-coding-cn.js.map +1 -0
- package/dist/providers/zai-coding-cn.models.d.ts +4 -0
- package/dist/providers/zai-coding-cn.models.d.ts.map +1 -0
- package/dist/providers/zai-coding-cn.models.js +6 -0
- package/dist/providers/zai-coding-cn.models.js.map +1 -0
- package/dist/providers/zai.d.ts +3 -0
- package/dist/providers/zai.d.ts.map +1 -0
- package/dist/providers/zai.js +15 -0
- package/dist/providers/zai.js.map +1 -0
- package/dist/providers/zai.models.d.ts +4 -0
- package/dist/providers/zai.models.d.ts.map +1 -0
- package/dist/providers/zai.models.js +6 -0
- package/dist/providers/zai.models.js.map +1 -0
- package/dist/session-resources.d.ts +4 -0
- package/dist/session-resources.d.ts.map +1 -0
- package/dist/session-resources.js +22 -0
- package/dist/session-resources.js.map +1 -0
- package/dist/types.d.ts +361 -49
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/abort-signals.d.ts +6 -0
- package/dist/utils/abort-signals.d.ts.map +1 -0
- package/dist/utils/abort-signals.js +34 -0
- package/dist/utils/abort-signals.js.map +1 -0
- package/dist/utils/abort.d.ts +8 -0
- package/dist/utils/abort.d.ts.map +1 -0
- package/dist/utils/abort.js +49 -0
- package/dist/utils/abort.js.map +1 -0
- package/dist/utils/deferred-tools.d.ts +9 -0
- package/dist/utils/deferred-tools.d.ts.map +1 -0
- package/dist/utils/deferred-tools.js +36 -0
- package/dist/utils/deferred-tools.js.map +1 -0
- package/dist/utils/diagnostics.d.ts +19 -0
- package/dist/utils/diagnostics.d.ts.map +1 -0
- package/dist/utils/diagnostics.js +25 -0
- package/dist/utils/diagnostics.js.map +1 -0
- package/dist/utils/error-body.d.ts +25 -0
- package/dist/utils/error-body.d.ts.map +1 -0
- package/dist/utils/error-body.js +133 -0
- package/dist/utils/error-body.js.map +1 -0
- package/dist/utils/estimate.d.ts +17 -0
- package/dist/utils/estimate.d.ts.map +1 -0
- package/dist/utils/estimate.js +116 -0
- package/dist/utils/estimate.js.map +1 -0
- package/dist/utils/event-stream.d.ts +3 -3
- package/dist/utils/event-stream.d.ts.map +1 -1
- package/dist/utils/event-stream.js +2 -2
- package/dist/utils/event-stream.js.map +1 -1
- package/dist/utils/headers.d.ts +2 -0
- package/dist/utils/headers.d.ts.map +1 -1
- package/dist/utils/headers.js +10 -0
- package/dist/utils/headers.js.map +1 -1
- package/dist/utils/node-http-proxy.d.ts +4 -0
- package/dist/utils/node-http-proxy.d.ts.map +1 -0
- package/dist/utils/node-http-proxy.js +92 -0
- package/dist/utils/node-http-proxy.js.map +1 -0
- package/dist/utils/overflow.d.ts +19 -4
- package/dist/utils/overflow.d.ts.map +1 -1
- package/dist/utils/overflow.js +44 -4
- package/dist/utils/overflow.js.map +1 -1
- package/dist/utils/pi-user-agent.d.ts +2 -0
- package/dist/utils/pi-user-agent.d.ts.map +1 -0
- package/dist/utils/pi-user-agent.js +12 -0
- package/dist/utils/pi-user-agent.js.map +1 -0
- package/dist/utils/provider-env.d.ts +7 -0
- package/dist/utils/provider-env.d.ts.map +1 -0
- package/dist/utils/provider-env.js +44 -0
- package/dist/utils/provider-env.js.map +1 -0
- package/dist/utils/provider-retry.d.ts +16 -0
- package/dist/utils/provider-retry.d.ts.map +1 -0
- package/dist/utils/provider-retry.js +94 -0
- package/dist/utils/provider-retry.js.map +1 -0
- package/dist/utils/retry.d.ts +53 -0
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/utils/retry.js +174 -0
- package/dist/utils/retry.js.map +1 -0
- package/dist/utils/text.d.ts +6 -0
- package/dist/utils/text.d.ts.map +1 -0
- package/dist/utils/text.js +10 -0
- package/dist/utils/text.js.map +1 -0
- package/dist/utils/uuid.d.ts +3 -0
- package/dist/utils/uuid.d.ts.map +1 -0
- package/dist/utils/uuid.js +46 -0
- package/dist/utils/uuid.js.map +1 -0
- package/dist/utils/validation.d.ts +1 -1
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +49 -21
- package/dist/utils/validation.js.map +1 -1
- package/package.json +52 -55
- package/dist/api-registry.d.ts +0 -20
- package/dist/api-registry.d.ts.map +0 -1
- package/dist/api-registry.js +0 -44
- package/dist/api-registry.js.map +0 -1
- package/dist/providers/github-copilot-headers.d.ts.map +0 -1
- package/dist/providers/github-copilot-headers.js.map +0 -1
- package/dist/providers/google-gemini-cli.d.ts +0 -74
- package/dist/providers/google-gemini-cli.d.ts.map +0 -1
- package/dist/providers/google-gemini-cli.js +0 -779
- package/dist/providers/google-gemini-cli.js.map +0 -1
- package/dist/providers/google-shared.d.ts.map +0 -1
- package/dist/providers/google-shared.js.map +0 -1
- package/dist/providers/openai-codex-responses.d.ts +0 -11
- package/dist/providers/openai-codex-responses.d.ts.map +0 -1
- package/dist/providers/openai-codex-responses.js +0 -779
- package/dist/providers/openai-codex-responses.js.map +0 -1
- package/dist/providers/openai-completions.d.ts +0 -19
- package/dist/providers/openai-completions.d.ts.map +0 -1
- package/dist/providers/openai-completions.js +0 -876
- package/dist/providers/openai-completions.js.map +0 -1
- package/dist/providers/openai-responses-shared.d.ts.map +0 -1
- package/dist/providers/openai-responses-shared.js +0 -483
- package/dist/providers/openai-responses-shared.js.map +0 -1
- package/dist/providers/openai-responses.d.ts.map +0 -1
- package/dist/providers/openai-responses.js +0 -208
- package/dist/providers/openai-responses.js.map +0 -1
- package/dist/providers/register-builtins.d.ts +0 -38
- package/dist/providers/register-builtins.d.ts.map +0 -1
- package/dist/providers/register-builtins.js +0 -261
- package/dist/providers/register-builtins.js.map +0 -1
- package/dist/providers/simple-options.d.ts +0 -8
- package/dist/providers/simple-options.d.ts.map +0 -1
- package/dist/providers/simple-options.js +0 -36
- package/dist/providers/simple-options.js.map +0 -1
- package/dist/providers/transform-messages.d.ts.map +0 -1
- package/dist/providers/transform-messages.js.map +0 -1
- package/dist/stream.d.ts +0 -8
- package/dist/stream.d.ts.map +0 -1
- package/dist/stream.js +0 -27
- package/dist/stream.js.map +0 -1
- package/dist/utils/oauth/anthropic.d.ts +0 -25
- package/dist/utils/oauth/anthropic.d.ts.map +0 -1
- package/dist/utils/oauth/anthropic.js.map +0 -1
- package/dist/utils/oauth/github-copilot.d.ts +0 -30
- package/dist/utils/oauth/github-copilot.d.ts.map +0 -1
- package/dist/utils/oauth/github-copilot.js +0 -292
- package/dist/utils/oauth/github-copilot.js.map +0 -1
- package/dist/utils/oauth/google-antigravity.d.ts +0 -26
- package/dist/utils/oauth/google-antigravity.d.ts.map +0 -1
- package/dist/utils/oauth/google-antigravity.js +0 -377
- package/dist/utils/oauth/google-antigravity.js.map +0 -1
- package/dist/utils/oauth/google-gemini-cli.d.ts +0 -26
- package/dist/utils/oauth/google-gemini-cli.d.ts.map +0 -1
- package/dist/utils/oauth/google-gemini-cli.js +0 -482
- package/dist/utils/oauth/google-gemini-cli.js.map +0 -1
- package/dist/utils/oauth/index.d.ts +0 -61
- package/dist/utils/oauth/index.d.ts.map +0 -1
- package/dist/utils/oauth/index.js +0 -131
- package/dist/utils/oauth/index.js.map +0 -1
- package/dist/utils/oauth/oauth-page.d.ts.map +0 -1
- package/dist/utils/oauth/oauth-page.js.map +0 -1
- package/dist/utils/oauth/openai-codex.d.ts +0 -34
- package/dist/utils/oauth/openai-codex.d.ts.map +0 -1
- package/dist/utils/oauth/openai-codex.js +0 -374
- package/dist/utils/oauth/openai-codex.js.map +0 -1
- package/dist/utils/oauth/pkce.d.ts.map +0 -1
- package/dist/utils/oauth/pkce.js.map +0 -1
- package/dist/utils/oauth/types.d.ts +0 -47
- package/dist/utils/oauth/types.d.ts.map +0 -1
- package/dist/utils/oauth/types.js.map +0 -1
- /package/dist/{providers → api}/github-copilot-headers.js +0 -0
- /package/dist/{utils → auth}/oauth/oauth-page.d.ts +0 -0
- /package/dist/{utils → auth}/oauth/oauth-page.js +0 -0
- /package/dist/{utils → auth}/oauth/pkce.d.ts +0 -0
- /package/dist/{utils → auth}/oauth/pkce.js +0 -0
- /package/dist/{utils/oauth → auth}/types.js +0 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { openAICompletionsApi } from "../api/openai-completions.lazy.js";
|
|
2
|
+
import { envApiKeyAuth } from "../auth/helpers.js";
|
|
3
|
+
import { createProvider } from "../models.js";
|
|
4
|
+
import { CEREBRAS_MODELS } from "./cerebras.models.js";
|
|
5
|
+
export function cerebrasProvider() {
|
|
6
|
+
return createProvider({
|
|
7
|
+
id: "cerebras",
|
|
8
|
+
name: "Cerebras",
|
|
9
|
+
baseUrl: "https://api.cerebras.ai/v1",
|
|
10
|
+
auth: { apiKey: envApiKeyAuth("Cerebras API key", ["CEREBRAS_API_KEY"]) },
|
|
11
|
+
models: Object.values(CEREBRAS_MODELS),
|
|
12
|
+
api: openAICompletionsApi(),
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=cerebras.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cerebras.js","sourceRoot":"","sources":["../../src/providers/cerebras.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAiB,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,UAAU,gBAAgB,GAAmC;IAClE,OAAO,cAAc,CAAC;QACrB,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,4BAA4B;QACrC,IAAI,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,kBAAkB,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE;QACzE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;QACtC,GAAG,EAAE,oBAAoB,EAAE;KAC3B,CAAC,CAAC;AAAA,CACH","sourcesContent":["import { openAICompletionsApi } from \"../api/openai-completions.lazy.ts\";\nimport { envApiKeyAuth } from \"../auth/helpers.ts\";\nimport { createProvider, type Provider } from \"../models.ts\";\nimport { CEREBRAS_MODELS } from \"./cerebras.models.ts\";\n\nexport function cerebrasProvider(): Provider<\"openai-completions\"> {\n\treturn createProvider({\n\t\tid: \"cerebras\",\n\t\tname: \"Cerebras\",\n\t\tbaseUrl: \"https://api.cerebras.ai/v1\",\n\t\tauth: { apiKey: envApiKeyAuth(\"Cerebras API key\", [\"CEREBRAS_API_KEY\"]) },\n\t\tmodels: Object.values(CEREBRAS_MODELS),\n\t\tapi: openAICompletionsApi(),\n\t});\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cerebras.models.d.ts","sourceRoot":"","sources":["../../src/providers/cerebras.models.ts"],"names":[],"mappings":"AAGA,OAAO,MAAM,MAAM,sBAAsB,CAAuB;AAChE,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE7E,eAAO,MAAM,eAAe,EAAE,YAAY,CAAC,OAAO,MAAM,EAAE,UAAU,CAC5B,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/cerebras.json\" with { type: \"json\" };\nimport { flattenModelCatalog, type ModelCatalog } from \"../model-catalog.ts\";\n\nexport const CEREBRAS_MODELS: ModelCatalog<typeof values, \"cerebras\"> =\n\tflattenModelCatalog(\"cerebras\", values);\n"]}
|
|
@@ -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/cerebras.json" with { type: "json" };
|
|
4
|
+
import { flattenModelCatalog } from "../model-catalog.js";
|
|
5
|
+
export const CEREBRAS_MODELS = flattenModelCatalog("cerebras", values);
|
|
6
|
+
//# sourceMappingURL=cerebras.models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cerebras.models.js","sourceRoot":"","sources":["../../src/providers/cerebras.models.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,iEAAiE;AAEjE,OAAO,MAAM,MAAM,sBAAsB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAqB,MAAM,qBAAqB,CAAC;AAE7E,MAAM,CAAC,MAAM,eAAe,GAC3B,mBAAmB,CAAC,UAAU,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/cerebras.json\" with { type: \"json\" };\nimport { flattenModelCatalog, type ModelCatalog } from \"../model-catalog.ts\";\n\nexport const CEREBRAS_MODELS: ModelCatalog<typeof values, \"cerebras\"> =\n\tflattenModelCatalog(\"cerebras\", values);\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare-ai-gateway.d.ts","sourceRoot":"","sources":["../../src/providers/cloudflare-ai-gateway.ts"],"names":[],"mappings":"AAGA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAK7D,wBAAgB,2BAA2B,IAAI,QAAQ,CACtD,oBAAoB,GAAG,oBAAoB,GAAG,kBAAkB,CAChE,CAYA","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 { createProvider, type Provider } from \"../models.ts\";\nimport { CLOUDFLARE_AI_GATEWAY_MODELS } from \"./cloudflare-ai-gateway.models.ts\";\nimport { cloudflareAIGatewayAuth } from \"./cloudflare-auth.ts\";\nimport { cloudflareStreams } from \"./cloudflare-stream.ts\";\n\nexport function cloudflareAIGatewayProvider(): Provider<\n\t\"anthropic-messages\" | \"openai-completions\" | \"openai-responses\"\n> {\n\treturn createProvider<\"anthropic-messages\" | \"openai-completions\" | \"openai-responses\">({\n\t\tid: \"cloudflare-ai-gateway\",\n\t\tname: \"Cloudflare AI Gateway\",\n\t\tauth: { apiKey: cloudflareAIGatewayAuth() },\n\t\tmodels: Object.values(CLOUDFLARE_AI_GATEWAY_MODELS),\n\t\tapi: {\n\t\t\t\"anthropic-messages\": cloudflareStreams(anthropicMessagesApi()),\n\t\t\t\"openai-completions\": cloudflareStreams(openAICompletionsApi()),\n\t\t\t\"openai-responses\": cloudflareStreams(openAIResponsesApi()),\n\t\t},\n\t});\n}\n"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
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 { createProvider } from "../models.js";
|
|
5
|
+
import { CLOUDFLARE_AI_GATEWAY_MODELS } from "./cloudflare-ai-gateway.models.js";
|
|
6
|
+
import { cloudflareAIGatewayAuth } from "./cloudflare-auth.js";
|
|
7
|
+
import { cloudflareStreams } from "./cloudflare-stream.js";
|
|
8
|
+
export function cloudflareAIGatewayProvider() {
|
|
9
|
+
return createProvider({
|
|
10
|
+
id: "cloudflare-ai-gateway",
|
|
11
|
+
name: "Cloudflare AI Gateway",
|
|
12
|
+
auth: { apiKey: cloudflareAIGatewayAuth() },
|
|
13
|
+
models: Object.values(CLOUDFLARE_AI_GATEWAY_MODELS),
|
|
14
|
+
api: {
|
|
15
|
+
"anthropic-messages": cloudflareStreams(anthropicMessagesApi()),
|
|
16
|
+
"openai-completions": cloudflareStreams(openAICompletionsApi()),
|
|
17
|
+
"openai-responses": cloudflareStreams(openAIResponsesApi()),
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=cloudflare-ai-gateway.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare-ai-gateway.js","sourceRoot":"","sources":["../../src/providers/cloudflare-ai-gateway.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAiB,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,UAAU,2BAA2B,GAEzC;IACD,OAAO,cAAc,CAAmE;QACvF,EAAE,EAAE,uBAAuB;QAC3B,IAAI,EAAE,uBAAuB;QAC7B,IAAI,EAAE,EAAE,MAAM,EAAE,uBAAuB,EAAE,EAAE;QAC3C,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,4BAA4B,CAAC;QACnD,GAAG,EAAE;YACJ,oBAAoB,EAAE,iBAAiB,CAAC,oBAAoB,EAAE,CAAC;YAC/D,oBAAoB,EAAE,iBAAiB,CAAC,oBAAoB,EAAE,CAAC;YAC/D,kBAAkB,EAAE,iBAAiB,CAAC,kBAAkB,EAAE,CAAC;SAC3D;KACD,CAAC,CAAC;AAAA,CACH","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 { createProvider, type Provider } from \"../models.ts\";\nimport { CLOUDFLARE_AI_GATEWAY_MODELS } from \"./cloudflare-ai-gateway.models.ts\";\nimport { cloudflareAIGatewayAuth } from \"./cloudflare-auth.ts\";\nimport { cloudflareStreams } from \"./cloudflare-stream.ts\";\n\nexport function cloudflareAIGatewayProvider(): Provider<\n\t\"anthropic-messages\" | \"openai-completions\" | \"openai-responses\"\n> {\n\treturn createProvider<\"anthropic-messages\" | \"openai-completions\" | \"openai-responses\">({\n\t\tid: \"cloudflare-ai-gateway\",\n\t\tname: \"Cloudflare AI Gateway\",\n\t\tauth: { apiKey: cloudflareAIGatewayAuth() },\n\t\tmodels: Object.values(CLOUDFLARE_AI_GATEWAY_MODELS),\n\t\tapi: {\n\t\t\t\"anthropic-messages\": cloudflareStreams(anthropicMessagesApi()),\n\t\t\t\"openai-completions\": cloudflareStreams(openAICompletionsApi()),\n\t\t\t\"openai-responses\": cloudflareStreams(openAIResponsesApi()),\n\t\t},\n\t});\n}\n"]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import values from "./data/cloudflare-ai-gateway.json";
|
|
2
|
+
import { type ModelCatalog } from "../model-catalog.ts";
|
|
3
|
+
export declare const CLOUDFLARE_AI_GATEWAY_MODELS: ModelCatalog<typeof values, "cloudflare-ai-gateway">;
|
|
4
|
+
//# sourceMappingURL=cloudflare-ai-gateway.models.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare-ai-gateway.models.d.ts","sourceRoot":"","sources":["../../src/providers/cloudflare-ai-gateway.models.ts"],"names":[],"mappings":"AAGA,OAAO,MAAM,MAAM,mCAAmC,CAAuB;AAC7E,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE7E,eAAO,MAAM,4BAA4B,EAAE,YAAY,CAAC,OAAO,MAAM,EAAE,uBAAuB,CACzC,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/cloudflare-ai-gateway.json\" with { type: \"json\" };\nimport { flattenModelCatalog, type ModelCatalog } from \"../model-catalog.ts\";\n\nexport const CLOUDFLARE_AI_GATEWAY_MODELS: ModelCatalog<typeof values, \"cloudflare-ai-gateway\"> =\n\tflattenModelCatalog(\"cloudflare-ai-gateway\", values);\n"]}
|
|
@@ -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/cloudflare-ai-gateway.json" with { type: "json" };
|
|
4
|
+
import { flattenModelCatalog } from "../model-catalog.js";
|
|
5
|
+
export const CLOUDFLARE_AI_GATEWAY_MODELS = flattenModelCatalog("cloudflare-ai-gateway", values);
|
|
6
|
+
//# sourceMappingURL=cloudflare-ai-gateway.models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare-ai-gateway.models.js","sourceRoot":"","sources":["../../src/providers/cloudflare-ai-gateway.models.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,iEAAiE;AAEjE,OAAO,MAAM,MAAM,mCAAmC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAqB,MAAM,qBAAqB,CAAC;AAE7E,MAAM,CAAC,MAAM,4BAA4B,GACxC,mBAAmB,CAAC,uBAAuB,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/cloudflare-ai-gateway.json\" with { type: \"json\" };\nimport { flattenModelCatalog, type ModelCatalog } from \"../model-catalog.ts\";\n\nexport const CLOUDFLARE_AI_GATEWAY_MODELS: ModelCatalog<typeof values, \"cloudflare-ai-gateway\"> =\n\tflattenModelCatalog(\"cloudflare-ai-gateway\", values);\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare-auth.d.ts","sourceRoot":"","sources":["../../src/providers/cloudflare-auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAiC,MAAM,kBAAkB,CAAC;AAqDlF,wBAAgB,uBAAuB,IAAI,UAAU,CAkBpD;AAED,wBAAgB,uBAAuB,IAAI,UAAU,CA6BpD","sourcesContent":["import type { ApiKeyAuth, ApiKeyCredential, AuthContext } from \"../auth/types.ts\";\nimport type { ProviderEnv } from \"../types.ts\";\n\nconst CLOUDFLARE_API_KEY = \"CLOUDFLARE_API_KEY\";\nconst CLOUDFLARE_ACCOUNT_ID = \"CLOUDFLARE_ACCOUNT_ID\";\nconst CLOUDFLARE_GATEWAY_ID = \"CLOUDFLARE_GATEWAY_ID\";\n\ntype CloudflareAuthKind = \"workers-ai\" | \"ai-gateway\";\n\nasync function resolveValue(\n\tname: string,\n\tctx: AuthContext,\n\tcredential: ApiKeyCredential | undefined,\n\tsignal: AbortSignal,\n): Promise<string | undefined> {\n\t// Per-field merge: prefer the credential value, fall back to ambient env.\n\t// A credential carrying only the API key must still pick up the account /\n\t// gateway id from the environment.\n\tconst fromCredential = credential\n\t\t? name === CLOUDFLARE_API_KEY\n\t\t\t? credential.key\n\t\t\t: credential.env?.[name]\n\t\t: undefined;\n\tif (fromCredential !== undefined) return fromCredential;\n\tsignal.throwIfAborted();\n\tconst value = await ctx.env(name);\n\tsignal.throwIfAborted();\n\treturn value;\n}\n\nasync function resolveCloudflareEnv(\n\tkind: CloudflareAuthKind,\n\tctx: AuthContext,\n\tcredential: ApiKeyCredential | undefined,\n\tsignal: AbortSignal,\n): Promise<{ apiKey: string; env: ProviderEnv; source: string } | undefined> {\n\tconst apiKey = await resolveValue(CLOUDFLARE_API_KEY, ctx, credential, signal);\n\tconst accountId = await resolveValue(CLOUDFLARE_ACCOUNT_ID, ctx, credential, signal);\n\tconst gatewayId =\n\t\tkind === \"ai-gateway\" ? await resolveValue(CLOUDFLARE_GATEWAY_ID, ctx, credential, signal) : undefined;\n\n\tif (!apiKey || !accountId || (kind === \"ai-gateway\" && !gatewayId)) return undefined;\n\n\treturn {\n\t\tapiKey,\n\t\tenv: {\n\t\t\tCLOUDFLARE_ACCOUNT_ID: accountId,\n\t\t\t...(gatewayId ? { CLOUDFLARE_GATEWAY_ID: gatewayId } : {}),\n\t\t},\n\t\tsource: credential ? \"stored credential\" : CLOUDFLARE_API_KEY,\n\t};\n}\n\nexport function cloudflareWorkersAIAuth(): ApiKeyAuth {\n\treturn {\n\t\tname: \"Cloudflare API key\",\n\t\tlogin: async (interaction) => {\n\t\t\tconst key = await interaction.prompt({ type: \"secret\", message: \"Enter Cloudflare API key\" });\n\t\t\tconst accountId = await interaction.prompt({ type: \"text\", message: \"Enter Cloudflare account ID\" });\n\t\t\treturn { type: \"api_key\", key, env: { CLOUDFLARE_ACCOUNT_ID: accountId } };\n\t\t},\n\t\tresolve: async ({ ctx, credential, signal }) => {\n\t\t\tconst resolved = await resolveCloudflareEnv(\"workers-ai\", ctx, credential, signal);\n\t\t\tif (!resolved) return undefined;\n\t\t\treturn {\n\t\t\t\tauth: { apiKey: resolved.apiKey },\n\t\t\t\tenv: resolved.env,\n\t\t\t\tsource: resolved.source,\n\t\t\t};\n\t\t},\n\t};\n}\n\nexport function cloudflareAIGatewayAuth(): ApiKeyAuth {\n\treturn {\n\t\tname: \"Cloudflare API key\",\n\t\tlogin: async (interaction) => {\n\t\t\tconst key = await interaction.prompt({ type: \"secret\", message: \"Enter Cloudflare API key\" });\n\t\t\tconst accountId = await interaction.prompt({ type: \"text\", message: \"Enter Cloudflare account ID\" });\n\t\t\tconst gatewayId = await interaction.prompt({ type: \"text\", message: \"Enter Cloudflare AI Gateway ID\" });\n\t\t\treturn {\n\t\t\t\ttype: \"api_key\",\n\t\t\t\tkey,\n\t\t\t\tenv: { CLOUDFLARE_ACCOUNT_ID: accountId, CLOUDFLARE_GATEWAY_ID: gatewayId },\n\t\t\t};\n\t\t},\n\t\tresolve: async ({ ctx, credential, signal }) => {\n\t\t\tconst resolved = await resolveCloudflareEnv(\"ai-gateway\", ctx, credential, signal);\n\t\t\tif (!resolved) return undefined;\n\t\t\treturn {\n\t\t\t\tauth: {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t\"cf-aig-authorization\": `Bearer ${resolved.apiKey}`,\n\t\t\t\t\t\tAuthorization: null,\n\t\t\t\t\t\t\"x-api-key\": null,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tenv: resolved.env,\n\t\t\t\tsource: resolved.source,\n\t\t\t};\n\t\t},\n\t};\n}\n"]}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
const CLOUDFLARE_API_KEY = "CLOUDFLARE_API_KEY";
|
|
2
|
+
const CLOUDFLARE_ACCOUNT_ID = "CLOUDFLARE_ACCOUNT_ID";
|
|
3
|
+
const CLOUDFLARE_GATEWAY_ID = "CLOUDFLARE_GATEWAY_ID";
|
|
4
|
+
async function resolveValue(name, ctx, credential, signal) {
|
|
5
|
+
// Per-field merge: prefer the credential value, fall back to ambient env.
|
|
6
|
+
// A credential carrying only the API key must still pick up the account /
|
|
7
|
+
// gateway id from the environment.
|
|
8
|
+
const fromCredential = credential
|
|
9
|
+
? name === CLOUDFLARE_API_KEY
|
|
10
|
+
? credential.key
|
|
11
|
+
: credential.env?.[name]
|
|
12
|
+
: undefined;
|
|
13
|
+
if (fromCredential !== undefined)
|
|
14
|
+
return fromCredential;
|
|
15
|
+
signal.throwIfAborted();
|
|
16
|
+
const value = await ctx.env(name);
|
|
17
|
+
signal.throwIfAborted();
|
|
18
|
+
return value;
|
|
19
|
+
}
|
|
20
|
+
async function resolveCloudflareEnv(kind, ctx, credential, signal) {
|
|
21
|
+
const apiKey = await resolveValue(CLOUDFLARE_API_KEY, ctx, credential, signal);
|
|
22
|
+
const accountId = await resolveValue(CLOUDFLARE_ACCOUNT_ID, ctx, credential, signal);
|
|
23
|
+
const gatewayId = kind === "ai-gateway" ? await resolveValue(CLOUDFLARE_GATEWAY_ID, ctx, credential, signal) : undefined;
|
|
24
|
+
if (!apiKey || !accountId || (kind === "ai-gateway" && !gatewayId))
|
|
25
|
+
return undefined;
|
|
26
|
+
return {
|
|
27
|
+
apiKey,
|
|
28
|
+
env: {
|
|
29
|
+
CLOUDFLARE_ACCOUNT_ID: accountId,
|
|
30
|
+
...(gatewayId ? { CLOUDFLARE_GATEWAY_ID: gatewayId } : {}),
|
|
31
|
+
},
|
|
32
|
+
source: credential ? "stored credential" : CLOUDFLARE_API_KEY,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
export function cloudflareWorkersAIAuth() {
|
|
36
|
+
return {
|
|
37
|
+
name: "Cloudflare API key",
|
|
38
|
+
login: async (interaction) => {
|
|
39
|
+
const key = await interaction.prompt({ type: "secret", message: "Enter Cloudflare API key" });
|
|
40
|
+
const accountId = await interaction.prompt({ type: "text", message: "Enter Cloudflare account ID" });
|
|
41
|
+
return { type: "api_key", key, env: { CLOUDFLARE_ACCOUNT_ID: accountId } };
|
|
42
|
+
},
|
|
43
|
+
resolve: async ({ ctx, credential, signal }) => {
|
|
44
|
+
const resolved = await resolveCloudflareEnv("workers-ai", ctx, credential, signal);
|
|
45
|
+
if (!resolved)
|
|
46
|
+
return undefined;
|
|
47
|
+
return {
|
|
48
|
+
auth: { apiKey: resolved.apiKey },
|
|
49
|
+
env: resolved.env,
|
|
50
|
+
source: resolved.source,
|
|
51
|
+
};
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
export function cloudflareAIGatewayAuth() {
|
|
56
|
+
return {
|
|
57
|
+
name: "Cloudflare API key",
|
|
58
|
+
login: async (interaction) => {
|
|
59
|
+
const key = await interaction.prompt({ type: "secret", message: "Enter Cloudflare API key" });
|
|
60
|
+
const accountId = await interaction.prompt({ type: "text", message: "Enter Cloudflare account ID" });
|
|
61
|
+
const gatewayId = await interaction.prompt({ type: "text", message: "Enter Cloudflare AI Gateway ID" });
|
|
62
|
+
return {
|
|
63
|
+
type: "api_key",
|
|
64
|
+
key,
|
|
65
|
+
env: { CLOUDFLARE_ACCOUNT_ID: accountId, CLOUDFLARE_GATEWAY_ID: gatewayId },
|
|
66
|
+
};
|
|
67
|
+
},
|
|
68
|
+
resolve: async ({ ctx, credential, signal }) => {
|
|
69
|
+
const resolved = await resolveCloudflareEnv("ai-gateway", ctx, credential, signal);
|
|
70
|
+
if (!resolved)
|
|
71
|
+
return undefined;
|
|
72
|
+
return {
|
|
73
|
+
auth: {
|
|
74
|
+
headers: {
|
|
75
|
+
"cf-aig-authorization": `Bearer ${resolved.apiKey}`,
|
|
76
|
+
Authorization: null,
|
|
77
|
+
"x-api-key": null,
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
env: resolved.env,
|
|
81
|
+
source: resolved.source,
|
|
82
|
+
};
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=cloudflare-auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare-auth.js","sourceRoot":"","sources":["../../src/providers/cloudflare-auth.ts"],"names":[],"mappings":"AAGA,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAChD,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AACtD,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AAItD,KAAK,UAAU,YAAY,CAC1B,IAAY,EACZ,GAAgB,EAChB,UAAwC,EACxC,MAAmB,EACW;IAC9B,0EAA0E;IAC1E,0EAA0E;IAC1E,mCAAmC;IACnC,MAAM,cAAc,GAAG,UAAU;QAChC,CAAC,CAAC,IAAI,KAAK,kBAAkB;YAC5B,CAAC,CAAC,UAAU,CAAC,GAAG;YAChB,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;QACzB,CAAC,CAAC,SAAS,CAAC;IACb,IAAI,cAAc,KAAK,SAAS;QAAE,OAAO,cAAc,CAAC;IACxD,MAAM,CAAC,cAAc,EAAE,CAAC;IACxB,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,CAAC,cAAc,EAAE,CAAC;IACxB,OAAO,KAAK,CAAC;AAAA,CACb;AAED,KAAK,UAAU,oBAAoB,CAClC,IAAwB,EACxB,GAAgB,EAChB,UAAwC,EACxC,MAAmB,EACyD;IAC5E,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,kBAAkB,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IAC/E,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,qBAAqB,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACrF,MAAM,SAAS,GACd,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,qBAAqB,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAExG,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IAErF,OAAO;QACN,MAAM;QACN,GAAG,EAAE;YACJ,qBAAqB,EAAE,SAAS;YAChC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1D;QACD,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,kBAAkB;KAC7D,CAAC;AAAA,CACF;AAED,MAAM,UAAU,uBAAuB,GAAe;IACrD,OAAO;QACN,IAAI,EAAE,oBAAoB;QAC1B,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC,CAAC;YAC9F,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC,CAAC;YACrG,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,qBAAqB,EAAE,SAAS,EAAE,EAAE,CAAC;QAAA,CAC3E;QACD,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YAC/C,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;YACnF,IAAI,CAAC,QAAQ;gBAAE,OAAO,SAAS,CAAC;YAChC,OAAO;gBACN,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE;gBACjC,GAAG,EAAE,QAAQ,CAAC,GAAG;gBACjB,MAAM,EAAE,QAAQ,CAAC,MAAM;aACvB,CAAC;QAAA,CACF;KACD,CAAC;AAAA,CACF;AAED,MAAM,UAAU,uBAAuB,GAAe;IACrD,OAAO;QACN,IAAI,EAAE,oBAAoB;QAC1B,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC,CAAC;YAC9F,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC,CAAC;YACrG,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC,CAAC;YACxG,OAAO;gBACN,IAAI,EAAE,SAAS;gBACf,GAAG;gBACH,GAAG,EAAE,EAAE,qBAAqB,EAAE,SAAS,EAAE,qBAAqB,EAAE,SAAS,EAAE;aAC3E,CAAC;QAAA,CACF;QACD,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YAC/C,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;YACnF,IAAI,CAAC,QAAQ;gBAAE,OAAO,SAAS,CAAC;YAChC,OAAO;gBACN,IAAI,EAAE;oBACL,OAAO,EAAE;wBACR,sBAAsB,EAAE,UAAU,QAAQ,CAAC,MAAM,EAAE;wBACnD,aAAa,EAAE,IAAI;wBACnB,WAAW,EAAE,IAAI;qBACjB;iBACD;gBACD,GAAG,EAAE,QAAQ,CAAC,GAAG;gBACjB,MAAM,EAAE,QAAQ,CAAC,MAAM;aACvB,CAAC;QAAA,CACF;KACD,CAAC;AAAA,CACF","sourcesContent":["import type { ApiKeyAuth, ApiKeyCredential, AuthContext } from \"../auth/types.ts\";\nimport type { ProviderEnv } from \"../types.ts\";\n\nconst CLOUDFLARE_API_KEY = \"CLOUDFLARE_API_KEY\";\nconst CLOUDFLARE_ACCOUNT_ID = \"CLOUDFLARE_ACCOUNT_ID\";\nconst CLOUDFLARE_GATEWAY_ID = \"CLOUDFLARE_GATEWAY_ID\";\n\ntype CloudflareAuthKind = \"workers-ai\" | \"ai-gateway\";\n\nasync function resolveValue(\n\tname: string,\n\tctx: AuthContext,\n\tcredential: ApiKeyCredential | undefined,\n\tsignal: AbortSignal,\n): Promise<string | undefined> {\n\t// Per-field merge: prefer the credential value, fall back to ambient env.\n\t// A credential carrying only the API key must still pick up the account /\n\t// gateway id from the environment.\n\tconst fromCredential = credential\n\t\t? name === CLOUDFLARE_API_KEY\n\t\t\t? credential.key\n\t\t\t: credential.env?.[name]\n\t\t: undefined;\n\tif (fromCredential !== undefined) return fromCredential;\n\tsignal.throwIfAborted();\n\tconst value = await ctx.env(name);\n\tsignal.throwIfAborted();\n\treturn value;\n}\n\nasync function resolveCloudflareEnv(\n\tkind: CloudflareAuthKind,\n\tctx: AuthContext,\n\tcredential: ApiKeyCredential | undefined,\n\tsignal: AbortSignal,\n): Promise<{ apiKey: string; env: ProviderEnv; source: string } | undefined> {\n\tconst apiKey = await resolveValue(CLOUDFLARE_API_KEY, ctx, credential, signal);\n\tconst accountId = await resolveValue(CLOUDFLARE_ACCOUNT_ID, ctx, credential, signal);\n\tconst gatewayId =\n\t\tkind === \"ai-gateway\" ? await resolveValue(CLOUDFLARE_GATEWAY_ID, ctx, credential, signal) : undefined;\n\n\tif (!apiKey || !accountId || (kind === \"ai-gateway\" && !gatewayId)) return undefined;\n\n\treturn {\n\t\tapiKey,\n\t\tenv: {\n\t\t\tCLOUDFLARE_ACCOUNT_ID: accountId,\n\t\t\t...(gatewayId ? { CLOUDFLARE_GATEWAY_ID: gatewayId } : {}),\n\t\t},\n\t\tsource: credential ? \"stored credential\" : CLOUDFLARE_API_KEY,\n\t};\n}\n\nexport function cloudflareWorkersAIAuth(): ApiKeyAuth {\n\treturn {\n\t\tname: \"Cloudflare API key\",\n\t\tlogin: async (interaction) => {\n\t\t\tconst key = await interaction.prompt({ type: \"secret\", message: \"Enter Cloudflare API key\" });\n\t\t\tconst accountId = await interaction.prompt({ type: \"text\", message: \"Enter Cloudflare account ID\" });\n\t\t\treturn { type: \"api_key\", key, env: { CLOUDFLARE_ACCOUNT_ID: accountId } };\n\t\t},\n\t\tresolve: async ({ ctx, credential, signal }) => {\n\t\t\tconst resolved = await resolveCloudflareEnv(\"workers-ai\", ctx, credential, signal);\n\t\t\tif (!resolved) return undefined;\n\t\t\treturn {\n\t\t\t\tauth: { apiKey: resolved.apiKey },\n\t\t\t\tenv: resolved.env,\n\t\t\t\tsource: resolved.source,\n\t\t\t};\n\t\t},\n\t};\n}\n\nexport function cloudflareAIGatewayAuth(): ApiKeyAuth {\n\treturn {\n\t\tname: \"Cloudflare API key\",\n\t\tlogin: async (interaction) => {\n\t\t\tconst key = await interaction.prompt({ type: \"secret\", message: \"Enter Cloudflare API key\" });\n\t\t\tconst accountId = await interaction.prompt({ type: \"text\", message: \"Enter Cloudflare account ID\" });\n\t\t\tconst gatewayId = await interaction.prompt({ type: \"text\", message: \"Enter Cloudflare AI Gateway ID\" });\n\t\t\treturn {\n\t\t\t\ttype: \"api_key\",\n\t\t\t\tkey,\n\t\t\t\tenv: { CLOUDFLARE_ACCOUNT_ID: accountId, CLOUDFLARE_GATEWAY_ID: gatewayId },\n\t\t\t};\n\t\t},\n\t\tresolve: async ({ ctx, credential, signal }) => {\n\t\t\tconst resolved = await resolveCloudflareEnv(\"ai-gateway\", ctx, credential, signal);\n\t\t\tif (!resolved) return undefined;\n\t\t\treturn {\n\t\t\t\tauth: {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t\"cf-aig-authorization\": `Bearer ${resolved.apiKey}`,\n\t\t\t\t\t\tAuthorization: null,\n\t\t\t\t\t\t\"x-api-key\": null,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tenv: resolved.env,\n\t\t\t\tsource: resolved.source,\n\t\t\t};\n\t\t},\n\t};\n}\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Api, Model, ProviderEnv, ProviderStreams } from "../types.ts";
|
|
2
|
+
export declare function resolveCloudflareModel<TApi extends Api>(model: Model<TApi>, env: ProviderEnv | undefined): Model<TApi>;
|
|
3
|
+
/**
|
|
4
|
+
* Wrap an API implementation so Cloudflare account/gateway endpoint
|
|
5
|
+
* placeholders materialize from the resolved provider env before dispatch.
|
|
6
|
+
*/
|
|
7
|
+
export declare function cloudflareStreams(streams: ProviderStreams): ProviderStreams;
|
|
8
|
+
//# sourceMappingURL=cloudflare-stream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare-stream.d.ts","sourceRoot":"","sources":["../../src/providers/cloudflare-stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAK5E,wBAAgB,sBAAsB,CAAC,IAAI,SAAS,GAAG,EACtD,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAClB,GAAG,EAAE,WAAW,GAAG,SAAS,GAC1B,KAAK,CAAC,IAAI,CAAC,CAMb;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,eAAe,CAO3E","sourcesContent":["import type { Api, Model, ProviderEnv, ProviderStreams } from \"../types.ts\";\n\nconst CLOUDFLARE_ACCOUNT_ID = \"CLOUDFLARE_ACCOUNT_ID\";\nconst CLOUDFLARE_GATEWAY_ID = \"CLOUDFLARE_GATEWAY_ID\";\n\nexport function resolveCloudflareModel<TApi extends Api>(\n\tmodel: Model<TApi>,\n\tenv: ProviderEnv | undefined,\n): Model<TApi> {\n\tif (!env) return model;\n\tconst baseUrl = model.baseUrl\n\t\t.replaceAll(`{${CLOUDFLARE_ACCOUNT_ID}}`, env[CLOUDFLARE_ACCOUNT_ID] ?? `{${CLOUDFLARE_ACCOUNT_ID}}`)\n\t\t.replaceAll(`{${CLOUDFLARE_GATEWAY_ID}}`, env[CLOUDFLARE_GATEWAY_ID] ?? `{${CLOUDFLARE_GATEWAY_ID}}`);\n\treturn baseUrl === model.baseUrl ? model : { ...model, baseUrl };\n}\n\n/**\n * Wrap an API implementation so Cloudflare account/gateway endpoint\n * placeholders materialize from the resolved provider env before dispatch.\n */\nexport function cloudflareStreams(streams: ProviderStreams): ProviderStreams {\n\treturn {\n\t\tstream: (model, context, options) =>\n\t\t\tstreams.stream(resolveCloudflareModel(model, options?.env), context, options),\n\t\tstreamSimple: (model, context, options) =>\n\t\t\tstreams.streamSimple(resolveCloudflareModel(model, options?.env), context, options),\n\t};\n}\n"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const CLOUDFLARE_ACCOUNT_ID = "CLOUDFLARE_ACCOUNT_ID";
|
|
2
|
+
const CLOUDFLARE_GATEWAY_ID = "CLOUDFLARE_GATEWAY_ID";
|
|
3
|
+
export function resolveCloudflareModel(model, env) {
|
|
4
|
+
if (!env)
|
|
5
|
+
return model;
|
|
6
|
+
const baseUrl = model.baseUrl
|
|
7
|
+
.replaceAll(`{${CLOUDFLARE_ACCOUNT_ID}}`, env[CLOUDFLARE_ACCOUNT_ID] ?? `{${CLOUDFLARE_ACCOUNT_ID}}`)
|
|
8
|
+
.replaceAll(`{${CLOUDFLARE_GATEWAY_ID}}`, env[CLOUDFLARE_GATEWAY_ID] ?? `{${CLOUDFLARE_GATEWAY_ID}}`);
|
|
9
|
+
return baseUrl === model.baseUrl ? model : { ...model, baseUrl };
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Wrap an API implementation so Cloudflare account/gateway endpoint
|
|
13
|
+
* placeholders materialize from the resolved provider env before dispatch.
|
|
14
|
+
*/
|
|
15
|
+
export function cloudflareStreams(streams) {
|
|
16
|
+
return {
|
|
17
|
+
stream: (model, context, options) => streams.stream(resolveCloudflareModel(model, options?.env), context, options),
|
|
18
|
+
streamSimple: (model, context, options) => streams.streamSimple(resolveCloudflareModel(model, options?.env), context, options),
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=cloudflare-stream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare-stream.js","sourceRoot":"","sources":["../../src/providers/cloudflare-stream.ts"],"names":[],"mappings":"AAEA,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AACtD,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AAEtD,MAAM,UAAU,sBAAsB,CACrC,KAAkB,EAClB,GAA4B,EACd;IACd,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IACvB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO;SAC3B,UAAU,CAAC,IAAI,qBAAqB,GAAG,EAAE,GAAG,CAAC,qBAAqB,CAAC,IAAI,IAAI,qBAAqB,GAAG,CAAC;SACpG,UAAU,CAAC,IAAI,qBAAqB,GAAG,EAAE,GAAG,CAAC,qBAAqB,CAAC,IAAI,IAAI,qBAAqB,GAAG,CAAC,CAAC;IACvG,OAAO,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,CAAC;AAAA,CACjE;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAwB,EAAmB;IAC5E,OAAO;QACN,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CACnC,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;QAC9E,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CACzC,OAAO,CAAC,YAAY,CAAC,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;KACpF,CAAC;AAAA,CACF","sourcesContent":["import type { Api, Model, ProviderEnv, ProviderStreams } from \"../types.ts\";\n\nconst CLOUDFLARE_ACCOUNT_ID = \"CLOUDFLARE_ACCOUNT_ID\";\nconst CLOUDFLARE_GATEWAY_ID = \"CLOUDFLARE_GATEWAY_ID\";\n\nexport function resolveCloudflareModel<TApi extends Api>(\n\tmodel: Model<TApi>,\n\tenv: ProviderEnv | undefined,\n): Model<TApi> {\n\tif (!env) return model;\n\tconst baseUrl = model.baseUrl\n\t\t.replaceAll(`{${CLOUDFLARE_ACCOUNT_ID}}`, env[CLOUDFLARE_ACCOUNT_ID] ?? `{${CLOUDFLARE_ACCOUNT_ID}}`)\n\t\t.replaceAll(`{${CLOUDFLARE_GATEWAY_ID}}`, env[CLOUDFLARE_GATEWAY_ID] ?? `{${CLOUDFLARE_GATEWAY_ID}}`);\n\treturn baseUrl === model.baseUrl ? model : { ...model, baseUrl };\n}\n\n/**\n * Wrap an API implementation so Cloudflare account/gateway endpoint\n * placeholders materialize from the resolved provider env before dispatch.\n */\nexport function cloudflareStreams(streams: ProviderStreams): ProviderStreams {\n\treturn {\n\t\tstream: (model, context, options) =>\n\t\t\tstreams.stream(resolveCloudflareModel(model, options?.env), context, options),\n\t\tstreamSimple: (model, context, options) =>\n\t\t\tstreams.streamSimple(resolveCloudflareModel(model, options?.env), context, options),\n\t};\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare-workers-ai.d.ts","sourceRoot":"","sources":["../../src/providers/cloudflare-workers-ai.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAK7D,wBAAgB,2BAA2B,IAAI,QAAQ,CAAC,oBAAoB,CAAC,CAQ5E","sourcesContent":["import { openAICompletionsApi } from \"../api/openai-completions.lazy.ts\";\nimport { createProvider, type Provider } from \"../models.ts\";\nimport { cloudflareWorkersAIAuth } from \"./cloudflare-auth.ts\";\nimport { cloudflareStreams } from \"./cloudflare-stream.ts\";\nimport { CLOUDFLARE_WORKERS_AI_MODELS } from \"./cloudflare-workers-ai.models.ts\";\n\nexport function cloudflareWorkersAIProvider(): Provider<\"openai-completions\"> {\n\treturn createProvider({\n\t\tid: \"cloudflare-workers-ai\",\n\t\tname: \"Cloudflare Workers AI\",\n\t\tauth: { apiKey: cloudflareWorkersAIAuth() },\n\t\tmodels: Object.values(CLOUDFLARE_WORKERS_AI_MODELS),\n\t\tapi: cloudflareStreams(openAICompletionsApi()),\n\t});\n}\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { openAICompletionsApi } from "../api/openai-completions.lazy.js";
|
|
2
|
+
import { createProvider } from "../models.js";
|
|
3
|
+
import { cloudflareWorkersAIAuth } from "./cloudflare-auth.js";
|
|
4
|
+
import { cloudflareStreams } from "./cloudflare-stream.js";
|
|
5
|
+
import { CLOUDFLARE_WORKERS_AI_MODELS } from "./cloudflare-workers-ai.models.js";
|
|
6
|
+
export function cloudflareWorkersAIProvider() {
|
|
7
|
+
return createProvider({
|
|
8
|
+
id: "cloudflare-workers-ai",
|
|
9
|
+
name: "Cloudflare Workers AI",
|
|
10
|
+
auth: { apiKey: cloudflareWorkersAIAuth() },
|
|
11
|
+
models: Object.values(CLOUDFLARE_WORKERS_AI_MODELS),
|
|
12
|
+
api: cloudflareStreams(openAICompletionsApi()),
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=cloudflare-workers-ai.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare-workers-ai.js","sourceRoot":"","sources":["../../src/providers/cloudflare-workers-ai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAiB,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAEjF,MAAM,UAAU,2BAA2B,GAAmC;IAC7E,OAAO,cAAc,CAAC;QACrB,EAAE,EAAE,uBAAuB;QAC3B,IAAI,EAAE,uBAAuB;QAC7B,IAAI,EAAE,EAAE,MAAM,EAAE,uBAAuB,EAAE,EAAE;QAC3C,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,4BAA4B,CAAC;QACnD,GAAG,EAAE,iBAAiB,CAAC,oBAAoB,EAAE,CAAC;KAC9C,CAAC,CAAC;AAAA,CACH","sourcesContent":["import { openAICompletionsApi } from \"../api/openai-completions.lazy.ts\";\nimport { createProvider, type Provider } from \"../models.ts\";\nimport { cloudflareWorkersAIAuth } from \"./cloudflare-auth.ts\";\nimport { cloudflareStreams } from \"./cloudflare-stream.ts\";\nimport { CLOUDFLARE_WORKERS_AI_MODELS } from \"./cloudflare-workers-ai.models.ts\";\n\nexport function cloudflareWorkersAIProvider(): Provider<\"openai-completions\"> {\n\treturn createProvider({\n\t\tid: \"cloudflare-workers-ai\",\n\t\tname: \"Cloudflare Workers AI\",\n\t\tauth: { apiKey: cloudflareWorkersAIAuth() },\n\t\tmodels: Object.values(CLOUDFLARE_WORKERS_AI_MODELS),\n\t\tapi: cloudflareStreams(openAICompletionsApi()),\n\t});\n}\n"]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import values from "./data/cloudflare-workers-ai.json";
|
|
2
|
+
import { type ModelCatalog } from "../model-catalog.ts";
|
|
3
|
+
export declare const CLOUDFLARE_WORKERS_AI_MODELS: ModelCatalog<typeof values, "cloudflare-workers-ai">;
|
|
4
|
+
//# sourceMappingURL=cloudflare-workers-ai.models.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare-workers-ai.models.d.ts","sourceRoot":"","sources":["../../src/providers/cloudflare-workers-ai.models.ts"],"names":[],"mappings":"AAGA,OAAO,MAAM,MAAM,mCAAmC,CAAuB;AAC7E,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE7E,eAAO,MAAM,4BAA4B,EAAE,YAAY,CAAC,OAAO,MAAM,EAAE,uBAAuB,CACzC,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/cloudflare-workers-ai.json\" with { type: \"json\" };\nimport { flattenModelCatalog, type ModelCatalog } from \"../model-catalog.ts\";\n\nexport const CLOUDFLARE_WORKERS_AI_MODELS: ModelCatalog<typeof values, \"cloudflare-workers-ai\"> =\n\tflattenModelCatalog(\"cloudflare-workers-ai\", values);\n"]}
|
|
@@ -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/cloudflare-workers-ai.json" with { type: "json" };
|
|
4
|
+
import { flattenModelCatalog } from "../model-catalog.js";
|
|
5
|
+
export const CLOUDFLARE_WORKERS_AI_MODELS = flattenModelCatalog("cloudflare-workers-ai", values);
|
|
6
|
+
//# sourceMappingURL=cloudflare-workers-ai.models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare-workers-ai.models.js","sourceRoot":"","sources":["../../src/providers/cloudflare-workers-ai.models.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,iEAAiE;AAEjE,OAAO,MAAM,MAAM,mCAAmC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAqB,MAAM,qBAAqB,CAAC;AAE7E,MAAM,CAAC,MAAM,4BAA4B,GACxC,mBAAmB,CAAC,uBAAuB,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/cloudflare-workers-ai.json\" with { type: \"json\" };\nimport { flattenModelCatalog, type ModelCatalog } from \"../model-catalog.ts\";\n\nexport const CLOUDFLARE_WORKERS_AI_MODELS: ModelCatalog<typeof values, \"cloudflare-workers-ai\"> =\n\tflattenModelCatalog(\"cloudflare-workers-ai\", values);\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"schemaVersion":3,"generatedAt":"2026-09-04T13:02:52.013Z","structureHash":"7de5a51125982db2a97689241064363a2a6f15df8780761288505cb707787e67","files":{"amazon-bedrock.json":"49ae6bb829a9651177693dcaab26e03cd44788ad91aba52e71247ed505f10ab9","ant-ling.json":"4979fe79d99ed97382d7ce40170c6132e932e77906de1eb54464c042e7d63633","anthropic.json":"6937a397c6c7cf654990d072734efad023b652b294b04961d43a5835d7d08156","azure-openai-responses.json":"37d12c5cbfc29bfd9a802a0516f5d3209320bd4aa8ef9cd7c219af208244afa3","baseten.json":"8f7430af599249a01f446b5b717856dd58d484e76f5dbccf86c0ec7b6661468d","cerebras.json":"38272a7525d6680c71bb4bb3c4085e871768b400832e2013b0e7fd92f8fd4f05","cloudflare-ai-gateway.json":"eb2bf274394a157714072a2726675fbdfd2cc370e359b6665fa6aca409617089","cloudflare-workers-ai.json":"07ef63208ff7517fd1a80962f18143e21de399640423329490b157f459ccf995","deepseek.json":"e3106724723fd82d48a3ff685da9908a3a7b7b4fd84cc3cfe97a6a23067b6029","fireworks.json":"a3f330b3304aed8397fc35e2fc01d7b48c7afaae3a543247c8b1d35c13bbeacc","github-copilot.json":"e9ce5145c9df449163db782a6c7b9a352269cad4dc0d714b1f025c9dd8a3acc6","google-vertex.json":"e1631109172dc1f7d7977570420a5bb86258bdd1088427e244a2c51545c4f24d","google.json":"7619bf03edd2a7acb06a2274a14b13c3a61354288abe029a758401d4de36a8fd","groq.json":"e4728fd72e358cd8f25e9a518e9b49a521ef44523d3debe38a7db9e0663c4077","huggingface.json":"3a004b58d3f801077a81f5be5cdf40c59ce1070c9c68f279e8d6c8902d441b19","kimi-coding.json":"5e28e32e5b16df506a3a1c620ed7870fa7e5e57d8ede4a2aa44dbb24ecf1ba2f","minimax-cn.json":"65d37e55a6d9585855f94b3fb7739308d107fe248ebd9e1001d1c5d4606ad2c4","minimax.json":"c7dc5765995ae77242916430929c7cc9a782589f7e483e13f7e01663190d028e","mistral.json":"e3a109306644bf2f2fa38fece50b2d3ce1dbe3b87b1f1b9e2d70cce7eb5c0ea1","moonshotai-cn.json":"1e6146ff3477883636448c0f44222f0a52b3c4562ef8f4eecf7e941cdd59d12e","moonshotai.json":"d8d5209873058ddccd37c1f026833e2ea3f9476c3dc9628b4a940d407acc0b2e","nvidia.json":"7e5d6e027f61e36f8d806d0af311cda93a40e75920b8a0645eddf0ab9f058033","openai-codex.json":"2712c2924a4a75213dddc743c0e5f08d50a781fe807f16d5afb5fb65b41c64c7","openai.json":"2f32f5796138f03153a0314edf4c8ee27531d62f3477de0da46e51095f5e4782","opencode-go.json":"e792feb699604e4ca46665927af1ab046126555b4469db3f982d1e5dac062bfb","opencode.json":"265e69a3dbbf85bf5536ba98593121354107c01aa435bc96565d6473dd39748f","openrouter.json":"a3bf69451029784f699b6e382c2953317ddaa4d97f7d7d24714f68a62086991b","qwen-token-plan-cn.json":"e62dde34edb603376a1dc60b2a74a9c2605b9e81d81df55cc259796c45aa4793","qwen-token-plan-individual.json":"0e1578a5c0e11d65644bb42d1d6efee5af97a55a4881d0421ab68bd970d4d4ef","qwen-token-plan.json":"fe914313157ff41ab2f71977f0fdcfedb3a8a205d1092e3180f6799e5d7942fd","together.json":"6010980c9b0af72c60965ae325dbdb21e67c91844a7f7f6f7d71d363f1325f56","vercel-ai-gateway.json":"d64175c469b5b5ab53ea56668f2a631e71a16ba834cf100b558911945e9f0468","xai.json":"282838b0546d63106c81f1703cdf5ed31ebfe0c5f13a4bec0d590472cbbe03f2","xiaomi-token-plan-ams.json":"7ce8ed244672c45737d286ff3ca9c3a2686a5d4b2f0c5f71ab9348c14b14daf3","xiaomi-token-plan-cn.json":"684892b5fe6fa371d6040d2011c0fa33facd650d2eaf19f5dbee8efb33016200","xiaomi-token-plan-sgp.json":"b19e79b82ac4fdcb080e6d220106797504c885ed70b27fc2b3c1aa4810f32963","xiaomi.json":"810368d3828c8bb9498012a0d48639030c0c216b8c13e79da02daa515aa23448","zai-coding-cn.json":"abf4cbc22507b9d545842072b5e34bce230025fc20f7b1cc67db3782c1dc4b56","zai.json":"089af736a622b0a25e417493819f4e174884afba43235c5a1f17814057875627"}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"bedrock-converse-stream":{"amazon.nova-2-lite-v1:0":{"id":"amazon.nova-2-lite-v1:0","name":"Nova 2 Lite","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":0.33,"output":2.75,"cacheRead":0,"cacheWrite":0},"contextWindow":128000,"maxTokens":4096},"amazon.nova-lite-v1:0":{"id":"amazon.nova-lite-v1:0","name":"Nova Lite","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":false,"input":["text","image"],"cost":{"input":0.06,"output":0.24,"cacheRead":0.015,"cacheWrite":0},"contextWindow":300000,"maxTokens":8192},"amazon.nova-micro-v1:0":{"id":"amazon.nova-micro-v1:0","name":"Nova Micro","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":false,"input":["text"],"cost":{"input":0.035,"output":0.14,"cacheRead":0.00875,"cacheWrite":0},"contextWindow":128000,"maxTokens":8192},"amazon.nova-pro-v1:0":{"id":"amazon.nova-pro-v1:0","name":"Nova Pro","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":false,"input":["text","image"],"cost":{"input":0.8,"output":3.2,"cacheRead":0.2,"cacheWrite":0},"contextWindow":300000,"maxTokens":8192},"anthropic.claude-fable-5":{"id":"anthropic.claude-fable-5","name":"Claude Fable 5","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":10,"output":50,"cacheRead":1,"cacheWrite":12.5},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"xhigh":"xhigh","max":"max"}},"anthropic.claude-fable-5-1":{"id":"anthropic.claude-fable-5-1","name":"Claude Fable 5.1","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":10,"output":50,"cacheRead":0.25,"cacheWrite":12.5},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"xhigh":"xhigh","max":"max"}},"anthropic.claude-haiku-4-5-20251001-v1:0":{"id":"anthropic.claude-haiku-4-5-20251001-v1:0","name":"Claude Haiku 4.5","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":1,"output":5,"cacheRead":0.1,"cacheWrite":1.25},"contextWindow":200000,"maxTokens":64000,"compat":{"supportsStrictMode":true}},"anthropic.claude-opus-4-1-20250805-v1:0":{"id":"anthropic.claude-opus-4-1-20250805-v1:0","name":"Claude Opus 4.1","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":15,"output":75,"cacheRead":1.5,"cacheWrite":18.75},"contextWindow":200000,"maxTokens":32000},"anthropic.claude-opus-4-5-20251101-v1:0":{"id":"anthropic.claude-opus-4-5-20251101-v1:0","name":"Claude Opus 4.5","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":200000,"maxTokens":64000,"compat":{"supportsStrictMode":true}},"anthropic.claude-opus-4-6-v1":{"id":"anthropic.claude-opus-4-6-v1","name":"Claude Opus 4.6","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":1000000,"maxTokens":128000,"compat":{"supportsStrictMode":true},"thinkingLevelMap":{"max":"max"}},"anthropic.claude-opus-4-7":{"id":"anthropic.claude-opus-4-7","name":"Claude Opus 4.7","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max"}},"anthropic.claude-opus-4-8":{"id":"anthropic.claude-opus-4-8","name":"Claude Opus 4.8","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max"}},"anthropic.claude-sonnet-4-5-20250929-v1:0":{"id":"anthropic.claude-sonnet-4-5-20250929-v1:0","name":"Claude Sonnet 4.5","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":3.75},"contextWindow":200000,"maxTokens":64000,"compat":{"supportsStrictMode":true}},"anthropic.claude-sonnet-4-6":{"id":"anthropic.claude-sonnet-4-6","name":"Claude Sonnet 4.6","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":3.75},"contextWindow":1000000,"maxTokens":64000,"compat":{"supportsStrictMode":true},"thinkingLevelMap":{"max":"max"}},"anthropic.claude-sonnet-5":{"id":"anthropic.claude-sonnet-5","name":"Claude Sonnet 5","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":10,"cacheRead":0.2,"cacheWrite":2.5},"contextWindow":1000000,"maxTokens":128000,"compat":{"supportsStrictMode":true},"thinkingLevelMap":{"xhigh":"xhigh","max":"max"}},"au.anthropic.claude-haiku-4-5-20251001-v1:0":{"id":"au.anthropic.claude-haiku-4-5-20251001-v1:0","name":"Claude Haiku 4.5 (AU)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":1,"output":5,"cacheRead":0.1,"cacheWrite":1.25},"contextWindow":200000,"maxTokens":64000,"compat":{"supportsStrictMode":true}},"au.anthropic.claude-opus-4-6-v1":{"id":"au.anthropic.claude-opus-4-6-v1","name":"AU Anthropic Claude Opus 4.6","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":16.5,"output":82.5,"cacheRead":1.65,"cacheWrite":20.625},"contextWindow":1000000,"maxTokens":128000,"compat":{"supportsStrictMode":true},"thinkingLevelMap":{"max":"max"}},"au.anthropic.claude-opus-4-8":{"id":"au.anthropic.claude-opus-4-8","name":"Claude Opus 4.8 (AU)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max"}},"au.anthropic.claude-opus-5":{"id":"au.anthropic.claude-opus-5","name":"Claude Opus 5 (AU)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max"}},"au.anthropic.claude-sonnet-4-5-20250929-v1:0":{"id":"au.anthropic.claude-sonnet-4-5-20250929-v1:0","name":"Claude Sonnet 4.5 (AU)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":3.75},"contextWindow":200000,"maxTokens":64000,"compat":{"supportsStrictMode":true}},"au.anthropic.claude-sonnet-4-6":{"id":"au.anthropic.claude-sonnet-4-6","name":"AU Anthropic Claude Sonnet 4.6","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":3.3,"output":16.5,"cacheRead":0.33,"cacheWrite":4.125},"contextWindow":1000000,"maxTokens":128000,"compat":{"supportsStrictMode":true},"thinkingLevelMap":{"max":"max"}},"au.anthropic.claude-sonnet-5":{"id":"au.anthropic.claude-sonnet-5","name":"Claude Sonnet 5 (AU)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":10,"cacheRead":0.2,"cacheWrite":2.5},"contextWindow":1000000,"maxTokens":128000,"compat":{"supportsStrictMode":true},"thinkingLevelMap":{"xhigh":"xhigh","max":"max"}},"deepseek.r1-v1:0":{"id":"deepseek.r1-v1:0","name":"DeepSeek-R1","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text"],"cost":{"input":1.35,"output":5.4,"cacheRead":0,"cacheWrite":0},"contextWindow":128000,"maxTokens":32768},"deepseek.v3-v1:0":{"id":"deepseek.v3-v1:0","name":"DeepSeek-V3.1","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text"],"cost":{"input":0.58,"output":1.68,"cacheRead":0,"cacheWrite":0},"contextWindow":163840,"maxTokens":81920,"compat":{"supportsStrictMode":true}},"deepseek.v3.2":{"id":"deepseek.v3.2","name":"DeepSeek-V3.2","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text"],"cost":{"input":0.62,"output":1.85,"cacheRead":0,"cacheWrite":0},"contextWindow":163840,"maxTokens":81920,"compat":{"supportsStrictMode":true}},"eu.anthropic.claude-fable-5":{"id":"eu.anthropic.claude-fable-5","name":"Claude Fable 5 (EU)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.eu-central-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":11,"output":55,"cacheRead":1.1,"cacheWrite":13.75},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"xhigh":"xhigh","max":"max"}},"eu.anthropic.claude-haiku-4-5-20251001-v1:0":{"id":"eu.anthropic.claude-haiku-4-5-20251001-v1:0","name":"Claude Haiku 4.5 (EU)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.eu-central-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":1.1,"output":5.5,"cacheRead":0.11,"cacheWrite":1.375},"contextWindow":200000,"maxTokens":64000,"compat":{"supportsStrictMode":true}},"eu.anthropic.claude-opus-4-5-20251101-v1:0":{"id":"eu.anthropic.claude-opus-4-5-20251101-v1:0","name":"Claude Opus 4.5 (EU)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.eu-central-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":5.5,"output":27.5,"cacheRead":0.55,"cacheWrite":6.875},"contextWindow":200000,"maxTokens":64000,"compat":{"supportsStrictMode":true}},"eu.anthropic.claude-opus-4-6-v1":{"id":"eu.anthropic.claude-opus-4-6-v1","name":"Claude Opus 4.6 (EU)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.eu-central-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":5.5,"output":27.5,"cacheRead":0.55,"cacheWrite":6.875},"contextWindow":1000000,"maxTokens":128000,"compat":{"supportsStrictMode":true},"thinkingLevelMap":{"max":"max"}},"eu.anthropic.claude-opus-4-7":{"id":"eu.anthropic.claude-opus-4-7","name":"Claude Opus 4.7 (EU)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.eu-central-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":5.5,"output":27.5,"cacheRead":0.55,"cacheWrite":6.875},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max"}},"eu.anthropic.claude-opus-4-8":{"id":"eu.anthropic.claude-opus-4-8","name":"Claude Opus 4.8 (EU)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.eu-central-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":5.5,"output":27.5,"cacheRead":0.55,"cacheWrite":6.875},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max"}},"eu.anthropic.claude-opus-5":{"id":"eu.anthropic.claude-opus-5","name":"Claude Opus 5 (EU)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.eu-central-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":5.5,"output":27.5,"cacheRead":0.55,"cacheWrite":6.875},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max"}},"eu.anthropic.claude-sonnet-4-5-20250929-v1:0":{"id":"eu.anthropic.claude-sonnet-4-5-20250929-v1:0","name":"Claude Sonnet 4.5 (EU)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.eu-central-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":3.3,"output":16.5,"cacheRead":0.33,"cacheWrite":4.125},"contextWindow":200000,"maxTokens":64000,"compat":{"supportsStrictMode":true}},"eu.anthropic.claude-sonnet-4-6":{"id":"eu.anthropic.claude-sonnet-4-6","name":"Claude Sonnet 4.6 (EU)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.eu-central-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":3.3,"output":16.5,"cacheRead":0.33,"cacheWrite":4.125},"contextWindow":1000000,"maxTokens":64000,"compat":{"supportsStrictMode":true},"thinkingLevelMap":{"max":"max"}},"eu.anthropic.claude-sonnet-5":{"id":"eu.anthropic.claude-sonnet-5","name":"Claude Sonnet 5 (EU)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.eu-central-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":2.2,"output":11,"cacheRead":0.22,"cacheWrite":2.75},"contextWindow":1000000,"maxTokens":128000,"compat":{"supportsStrictMode":true},"thinkingLevelMap":{"xhigh":"xhigh","max":"max"}},"global.anthropic.claude-fable-5":{"id":"global.anthropic.claude-fable-5","name":"Claude Fable 5 (Global)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":10,"output":50,"cacheRead":1,"cacheWrite":12.5},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"xhigh":"xhigh","max":"max"}},"global.anthropic.claude-fable-5-1":{"id":"global.anthropic.claude-fable-5-1","name":"Claude Fable 5.1 (Global)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":10,"output":50,"cacheRead":0.25,"cacheWrite":12.5},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"xhigh":"xhigh","max":"max"}},"global.anthropic.claude-haiku-4-5-20251001-v1:0":{"id":"global.anthropic.claude-haiku-4-5-20251001-v1:0","name":"Claude Haiku 4.5 (Global)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":1,"output":5,"cacheRead":0.1,"cacheWrite":1.25},"contextWindow":200000,"maxTokens":64000,"compat":{"supportsStrictMode":true}},"global.anthropic.claude-opus-4-5-20251101-v1:0":{"id":"global.anthropic.claude-opus-4-5-20251101-v1:0","name":"Claude Opus 4.5 (Global)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":200000,"maxTokens":64000,"compat":{"supportsStrictMode":true}},"global.anthropic.claude-opus-4-6-v1":{"id":"global.anthropic.claude-opus-4-6-v1","name":"Claude Opus 4.6 (Global)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":1000000,"maxTokens":128000,"compat":{"supportsStrictMode":true},"thinkingLevelMap":{"max":"max"}},"global.anthropic.claude-opus-4-7":{"id":"global.anthropic.claude-opus-4-7","name":"Claude Opus 4.7 (Global)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max"}},"global.anthropic.claude-opus-4-8":{"id":"global.anthropic.claude-opus-4-8","name":"Claude Opus 4.8 (Global)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max"}},"global.anthropic.claude-opus-5":{"id":"global.anthropic.claude-opus-5","name":"Claude Opus 5 (Global)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max"}},"global.anthropic.claude-sonnet-4-5-20250929-v1:0":{"id":"global.anthropic.claude-sonnet-4-5-20250929-v1:0","name":"Claude Sonnet 4.5 (Global)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":3.75},"contextWindow":200000,"maxTokens":64000,"compat":{"supportsStrictMode":true}},"global.anthropic.claude-sonnet-4-6":{"id":"global.anthropic.claude-sonnet-4-6","name":"Claude Sonnet 4.6 (Global)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":3.75},"contextWindow":1000000,"maxTokens":64000,"compat":{"supportsStrictMode":true},"thinkingLevelMap":{"max":"max"}},"global.anthropic.claude-sonnet-5":{"id":"global.anthropic.claude-sonnet-5","name":"Claude Sonnet 5 (Global)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":10,"cacheRead":0.2,"cacheWrite":2.5},"contextWindow":1000000,"maxTokens":128000,"compat":{"supportsStrictMode":true},"thinkingLevelMap":{"xhigh":"xhigh","max":"max"}},"global.openai.gpt-5.6-luna":{"id":"global.openai.gpt-5.6-luna","name":"GPT-5.6 Luna (Global)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":0.2,"output":1.2,"cacheRead":0.02,"cacheWrite":0.25},"contextWindow":1050000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh"}},"global.openai.gpt-5.6-sol":{"id":"global.openai.gpt-5.6-sol","name":"GPT-5.6 Sol (Global)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":4,"output":20,"cacheRead":0.4,"cacheWrite":5},"contextWindow":1050000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh"}},"global.openai.gpt-5.6-terra":{"id":"global.openai.gpt-5.6-terra","name":"GPT-5.6 Terra (Global)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":2.5},"contextWindow":1050000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh"}},"google.gemma-3-27b-it":{"id":"google.gemma-3-27b-it","name":"Google Gemma 3 27B Instruct","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":false,"input":["text","image"],"cost":{"input":0.12,"output":0.2,"cacheRead":0,"cacheWrite":0},"contextWindow":202752,"maxTokens":8192,"compat":{"supportsStrictMode":true}},"google.gemma-3-4b-it":{"id":"google.gemma-3-4b-it","name":"Gemma 3 4B IT","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":false,"input":["text","image"],"cost":{"input":0.04,"output":0.08,"cacheRead":0,"cacheWrite":0},"contextWindow":128000,"maxTokens":4096},"jp.anthropic.claude-haiku-4-5-20251001-v1:0":{"id":"jp.anthropic.claude-haiku-4-5-20251001-v1:0","name":"Claude Haiku 4.5 (JP)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":1,"output":5,"cacheRead":0.1,"cacheWrite":1.25},"contextWindow":200000,"maxTokens":64000,"compat":{"supportsStrictMode":true}},"jp.anthropic.claude-opus-4-7":{"id":"jp.anthropic.claude-opus-4-7","name":"Claude Opus 4.7 (JP)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max"}},"jp.anthropic.claude-opus-4-8":{"id":"jp.anthropic.claude-opus-4-8","name":"Claude Opus 4.8 (JP)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max"}},"jp.anthropic.claude-opus-5":{"id":"jp.anthropic.claude-opus-5","name":"Claude Opus 5 (JP)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max"}},"jp.anthropic.claude-sonnet-4-5-20250929-v1:0":{"id":"jp.anthropic.claude-sonnet-4-5-20250929-v1:0","name":"Claude Sonnet 4.5 (JP)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":3.75},"contextWindow":200000,"maxTokens":64000,"compat":{"supportsStrictMode":true}},"jp.anthropic.claude-sonnet-4-6":{"id":"jp.anthropic.claude-sonnet-4-6","name":"Claude Sonnet 4.6 (JP)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":3.75},"contextWindow":1000000,"maxTokens":64000,"compat":{"supportsStrictMode":true},"thinkingLevelMap":{"max":"max"}},"jp.anthropic.claude-sonnet-5":{"id":"jp.anthropic.claude-sonnet-5","name":"Claude Sonnet 5 (JP)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":10,"cacheRead":0.2,"cacheWrite":2.5},"contextWindow":1000000,"maxTokens":128000,"compat":{"supportsStrictMode":true},"thinkingLevelMap":{"xhigh":"xhigh","max":"max"}},"meta.llama3-1-70b-instruct-v1:0":{"id":"meta.llama3-1-70b-instruct-v1:0","name":"Llama 3.1 70B Instruct","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":false,"input":["text"],"cost":{"input":0.72,"output":0.72,"cacheRead":0,"cacheWrite":0},"contextWindow":128000,"maxTokens":4096},"meta.llama3-1-8b-instruct-v1:0":{"id":"meta.llama3-1-8b-instruct-v1:0","name":"Llama 3.1 8B Instruct","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":false,"input":["text"],"cost":{"input":0.22,"output":0.22,"cacheRead":0,"cacheWrite":0},"contextWindow":128000,"maxTokens":4096},"meta.llama3-3-70b-instruct-v1:0":{"id":"meta.llama3-3-70b-instruct-v1:0","name":"Llama 3.3 70B Instruct","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":false,"input":["text"],"cost":{"input":0.72,"output":0.72,"cacheRead":0,"cacheWrite":0},"contextWindow":128000,"maxTokens":4096},"meta.llama4-maverick-17b-instruct-v1:0":{"id":"meta.llama4-maverick-17b-instruct-v1:0","name":"Llama 4 Maverick 17B Instruct","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":false,"input":["text","image"],"cost":{"input":0.24,"output":0.97,"cacheRead":0,"cacheWrite":0},"contextWindow":1000000,"maxTokens":16384},"meta.llama4-scout-17b-instruct-v1:0":{"id":"meta.llama4-scout-17b-instruct-v1:0","name":"Llama 4 Scout 17B Instruct","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":false,"input":["text","image"],"cost":{"input":0.17,"output":0.66,"cacheRead":0,"cacheWrite":0},"contextWindow":3500000,"maxTokens":16384},"minimax.minimax-m2":{"id":"minimax.minimax-m2","name":"MiniMax M2","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text"],"cost":{"input":0.3,"output":1.2,"cacheRead":0,"cacheWrite":0},"contextWindow":204608,"maxTokens":128000},"minimax.minimax-m2.1":{"id":"minimax.minimax-m2.1","name":"MiniMax M2.1","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text"],"cost":{"input":0.3,"output":1.2,"cacheRead":0,"cacheWrite":0},"contextWindow":204800,"maxTokens":131072},"minimax.minimax-m2.5":{"id":"minimax.minimax-m2.5","name":"MiniMax M2.5","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text"],"cost":{"input":0.3,"output":1.2,"cacheRead":0,"cacheWrite":0},"contextWindow":196608,"maxTokens":98304},"mistral.devstral-2-123b":{"id":"mistral.devstral-2-123b","name":"Devstral 2 123B","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":false,"input":["text"],"cost":{"input":0.4,"output":2,"cacheRead":0,"cacheWrite":0},"contextWindow":256000,"maxTokens":8192,"compat":{"supportsStrictMode":true}},"mistral.magistral-small-2509":{"id":"mistral.magistral-small-2509","name":"Magistral Small 1.2","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":0.5,"output":1.5,"cacheRead":0,"cacheWrite":0},"contextWindow":128000,"maxTokens":40000,"compat":{"supportsStrictMode":true}},"mistral.ministral-3-14b-instruct":{"id":"mistral.ministral-3-14b-instruct","name":"Ministral 14B 3.0","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":false,"input":["text"],"cost":{"input":0.2,"output":0.2,"cacheRead":0,"cacheWrite":0},"contextWindow":128000,"maxTokens":4096,"compat":{"supportsStrictMode":true}},"mistral.ministral-3-3b-instruct":{"id":"mistral.ministral-3-3b-instruct","name":"Ministral 3 3B","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":false,"input":["text","image"],"cost":{"input":0.1,"output":0.1,"cacheRead":0,"cacheWrite":0},"contextWindow":256000,"maxTokens":8192,"compat":{"supportsStrictMode":true}},"mistral.ministral-3-8b-instruct":{"id":"mistral.ministral-3-8b-instruct","name":"Ministral 3 8B","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":false,"input":["text"],"cost":{"input":0.15,"output":0.15,"cacheRead":0,"cacheWrite":0},"contextWindow":128000,"maxTokens":4096,"compat":{"supportsStrictMode":true}},"mistral.mistral-large-3-675b-instruct":{"id":"mistral.mistral-large-3-675b-instruct","name":"Mistral Large 3","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":false,"input":["text","image"],"cost":{"input":0.5,"output":1.5,"cacheRead":0,"cacheWrite":0},"contextWindow":256000,"maxTokens":8192,"compat":{"supportsStrictMode":true}},"mistral.pixtral-large-2502-v1:0":{"id":"mistral.pixtral-large-2502-v1:0","name":"Pixtral Large (25.02)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":false,"input":["text","image"],"cost":{"input":2,"output":6,"cacheRead":0,"cacheWrite":0},"contextWindow":128000,"maxTokens":8192},"mistral.voxtral-mini-3b-2507":{"id":"mistral.voxtral-mini-3b-2507","name":"Voxtral Mini 3B 2507","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":false,"input":["text"],"cost":{"input":0.04,"output":0.04,"cacheRead":0,"cacheWrite":0},"contextWindow":128000,"maxTokens":4096,"compat":{"supportsStrictMode":true}},"mistral.voxtral-small-24b-2507":{"id":"mistral.voxtral-small-24b-2507","name":"Voxtral Small 24B 2507","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":false,"input":["text"],"cost":{"input":0.15,"output":0.35,"cacheRead":0,"cacheWrite":0},"contextWindow":32000,"maxTokens":8192,"compat":{"supportsStrictMode":true}},"moonshot.kimi-k2-thinking":{"id":"moonshot.kimi-k2-thinking","name":"Kimi K2 Thinking","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text"],"cost":{"input":0.6,"output":2.5,"cacheRead":0,"cacheWrite":0},"contextWindow":262143,"maxTokens":16000,"compat":{"supportsStrictMode":true}},"moonshotai.kimi-k2.5":{"id":"moonshotai.kimi-k2.5","name":"Kimi K2.5","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":0.6,"output":3,"cacheRead":0,"cacheWrite":0},"contextWindow":262143,"maxTokens":16000,"compat":{"supportsStrictMode":true}},"nvidia.nemotron-nano-12b-v2":{"id":"nvidia.nemotron-nano-12b-v2","name":"NVIDIA Nemotron Nano 12B v2 VL BF16","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":false,"input":["text","image"],"cost":{"input":0.2,"output":0.6,"cacheRead":0,"cacheWrite":0},"contextWindow":128000,"maxTokens":4096,"compat":{"supportsStrictMode":true}},"nvidia.nemotron-nano-3-30b":{"id":"nvidia.nemotron-nano-3-30b","name":"NVIDIA Nemotron Nano 3 30B","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text"],"cost":{"input":0.06,"output":0.24,"cacheRead":0,"cacheWrite":0},"contextWindow":128000,"maxTokens":4096,"compat":{"supportsStrictMode":true}},"nvidia.nemotron-nano-9b-v2":{"id":"nvidia.nemotron-nano-9b-v2","name":"NVIDIA Nemotron Nano 9B v2","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":false,"input":["text"],"cost":{"input":0.06,"output":0.23,"cacheRead":0,"cacheWrite":0},"contextWindow":128000,"maxTokens":4096,"compat":{"supportsStrictMode":true}},"nvidia.nemotron-super-3-120b":{"id":"nvidia.nemotron-super-3-120b","name":"NVIDIA Nemotron 3 Super 120B A12B","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text"],"cost":{"input":0.15,"output":0.65,"cacheRead":0,"cacheWrite":0},"contextWindow":262144,"maxTokens":131072,"compat":{"supportsStrictMode":true}},"openai.gpt-5.4":{"id":"openai.gpt-5.4","name":"GPT-5.4","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":2.75,"output":16.5,"cacheRead":0.275,"cacheWrite":0},"contextWindow":272000,"maxTokens":128000,"compat":{"supportsStrictMode":true},"thinkingLevelMap":{"xhigh":"xhigh"}},"openai.gpt-5.5":{"id":"openai.gpt-5.5","name":"GPT-5.5","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":5.5,"output":33,"cacheRead":0.55,"cacheWrite":0},"contextWindow":272000,"maxTokens":128000,"compat":{"supportsStrictMode":true},"thinkingLevelMap":{"xhigh":"xhigh"}},"openai.gpt-5.6-luna":{"id":"openai.gpt-5.6-luna","name":"GPT-5.6 Luna","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":0.22,"output":1.32,"cacheRead":0.022,"cacheWrite":0.275},"contextWindow":1050000,"maxTokens":128000,"compat":{"supportsStrictMode":true},"thinkingLevelMap":{"xhigh":"xhigh"}},"openai.gpt-5.6-sol":{"id":"openai.gpt-5.6-sol","name":"GPT-5.6 Sol","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":4.4,"output":22,"cacheRead":0.44,"cacheWrite":5.5},"contextWindow":1050000,"maxTokens":128000,"compat":{"supportsStrictMode":true},"thinkingLevelMap":{"xhigh":"xhigh"}},"openai.gpt-5.6-terra":{"id":"openai.gpt-5.6-terra","name":"GPT-5.6 Terra","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":2.2,"output":13.2,"cacheRead":0.22,"cacheWrite":2.75},"contextWindow":1050000,"maxTokens":128000,"compat":{"supportsStrictMode":true},"thinkingLevelMap":{"xhigh":"xhigh"}},"openai.gpt-oss-120b":{"id":"openai.gpt-oss-120b","name":"gpt-oss-120b","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text"],"cost":{"input":0.15,"output":0.6,"cacheRead":0,"cacheWrite":0},"contextWindow":128000,"maxTokens":16384,"compat":{"supportsStrictMode":true}},"openai.gpt-oss-120b-1:0":{"id":"openai.gpt-oss-120b-1:0","name":"gpt-oss-120b","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text"],"cost":{"input":0.15,"output":0.6,"cacheRead":0,"cacheWrite":0},"contextWindow":128000,"maxTokens":16384,"compat":{"supportsStrictMode":true}},"openai.gpt-oss-20b":{"id":"openai.gpt-oss-20b","name":"gpt-oss-20b","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text"],"cost":{"input":0.07,"output":0.3,"cacheRead":0,"cacheWrite":0},"contextWindow":128000,"maxTokens":16384,"compat":{"supportsStrictMode":true}},"openai.gpt-oss-20b-1:0":{"id":"openai.gpt-oss-20b-1:0","name":"gpt-oss-20b","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text"],"cost":{"input":0.07,"output":0.3,"cacheRead":0,"cacheWrite":0},"contextWindow":128000,"maxTokens":16384,"compat":{"supportsStrictMode":true}},"openai.gpt-oss-safeguard-120b":{"id":"openai.gpt-oss-safeguard-120b","name":"GPT OSS Safeguard 120B","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":false,"input":["text"],"cost":{"input":0.15,"output":0.6,"cacheRead":0,"cacheWrite":0},"contextWindow":128000,"maxTokens":16384,"compat":{"supportsStrictMode":true}},"openai.gpt-oss-safeguard-20b":{"id":"openai.gpt-oss-safeguard-20b","name":"GPT OSS Safeguard 20B","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":false,"input":["text"],"cost":{"input":0.07,"output":0.2,"cacheRead":0,"cacheWrite":0},"contextWindow":128000,"maxTokens":16384,"compat":{"supportsStrictMode":true}},"qwen.qwen3-235b-a22b-2507-v1:0":{"id":"qwen.qwen3-235b-a22b-2507-v1:0","name":"Qwen3 235B A22B 2507","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":false,"input":["text"],"cost":{"input":0.22,"output":0.88,"cacheRead":0,"cacheWrite":0},"contextWindow":262144,"maxTokens":131072,"compat":{"supportsStrictMode":true}},"qwen.qwen3-32b-v1:0":{"id":"qwen.qwen3-32b-v1:0","name":"Qwen3 32B (dense)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text"],"cost":{"input":0.15,"output":0.6,"cacheRead":0,"cacheWrite":0},"contextWindow":16384,"maxTokens":16384,"compat":{"supportsStrictMode":true}},"qwen.qwen3-coder-30b-a3b-v1:0":{"id":"qwen.qwen3-coder-30b-a3b-v1:0","name":"Qwen3 Coder 30B A3B Instruct","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":false,"input":["text"],"cost":{"input":0.15,"output":0.6,"cacheRead":0,"cacheWrite":0},"contextWindow":262144,"maxTokens":131072,"compat":{"supportsStrictMode":true}},"qwen.qwen3-coder-480b-a35b-v1:0":{"id":"qwen.qwen3-coder-480b-a35b-v1:0","name":"Qwen3 Coder 480B A35B Instruct","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":false,"input":["text"],"cost":{"input":0.22,"output":1.8,"cacheRead":0,"cacheWrite":0},"contextWindow":131072,"maxTokens":65536,"compat":{"supportsStrictMode":true}},"qwen.qwen3-coder-next":{"id":"qwen.qwen3-coder-next","name":"Qwen3 Coder Next","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text"],"cost":{"input":0.22,"output":1.8,"cacheRead":0,"cacheWrite":0},"contextWindow":131072,"maxTokens":65536,"compat":{"supportsStrictMode":true}},"qwen.qwen3-next-80b-a3b":{"id":"qwen.qwen3-next-80b-a3b","name":"Qwen/Qwen3-Next-80B-A3B-Instruct","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":false,"input":["text"],"cost":{"input":0.14,"output":1.4,"cacheRead":0,"cacheWrite":0},"contextWindow":262000,"maxTokens":262000,"compat":{"supportsStrictMode":true}},"qwen.qwen3-vl-235b-a22b":{"id":"qwen.qwen3-vl-235b-a22b","name":"Qwen/Qwen3-VL-235B-A22B-Instruct","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":false,"input":["text","image"],"cost":{"input":0.3,"output":1.5,"cacheRead":0,"cacheWrite":0},"contextWindow":262000,"maxTokens":262000,"compat":{"supportsStrictMode":true}},"us.anthropic.claude-fable-5":{"id":"us.anthropic.claude-fable-5","name":"Claude Fable 5 (US)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":10,"output":50,"cacheRead":1,"cacheWrite":12.5},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"xhigh":"xhigh","max":"max"}},"us.anthropic.claude-fable-5-1":{"id":"us.anthropic.claude-fable-5-1","name":"Claude Fable 5.1 (US)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":11,"output":55,"cacheRead":0.275,"cacheWrite":13.75},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"xhigh":"xhigh","max":"max"}},"us.anthropic.claude-haiku-4-5-20251001-v1:0":{"id":"us.anthropic.claude-haiku-4-5-20251001-v1:0","name":"Claude Haiku 4.5 (US)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":1,"output":5,"cacheRead":0.1,"cacheWrite":1.25},"contextWindow":200000,"maxTokens":64000,"compat":{"supportsStrictMode":true}},"us.anthropic.claude-opus-4-1-20250805-v1:0":{"id":"us.anthropic.claude-opus-4-1-20250805-v1:0","name":"Claude Opus 4.1 (US)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":15,"output":75,"cacheRead":1.5,"cacheWrite":18.75},"contextWindow":200000,"maxTokens":32000},"us.anthropic.claude-opus-4-5-20251101-v1:0":{"id":"us.anthropic.claude-opus-4-5-20251101-v1:0","name":"Claude Opus 4.5 (US)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":200000,"maxTokens":64000,"compat":{"supportsStrictMode":true}},"us.anthropic.claude-opus-4-6-v1":{"id":"us.anthropic.claude-opus-4-6-v1","name":"Claude Opus 4.6 (US)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":1000000,"maxTokens":128000,"compat":{"supportsStrictMode":true},"thinkingLevelMap":{"max":"max"}},"us.anthropic.claude-opus-4-7":{"id":"us.anthropic.claude-opus-4-7","name":"Claude Opus 4.7 (US)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max"}},"us.anthropic.claude-opus-4-8":{"id":"us.anthropic.claude-opus-4-8","name":"Claude Opus 4.8 (US)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max"}},"us.anthropic.claude-opus-5":{"id":"us.anthropic.claude-opus-5","name":"Claude Opus 5 (US)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max"}},"us.anthropic.claude-sonnet-4-5-20250929-v1:0":{"id":"us.anthropic.claude-sonnet-4-5-20250929-v1:0","name":"Claude Sonnet 4.5 (US)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":3.75},"contextWindow":200000,"maxTokens":64000,"compat":{"supportsStrictMode":true}},"us.anthropic.claude-sonnet-4-6":{"id":"us.anthropic.claude-sonnet-4-6","name":"Claude Sonnet 4.6 (US)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":3.75},"contextWindow":1000000,"maxTokens":64000,"compat":{"supportsStrictMode":true},"thinkingLevelMap":{"max":"max"}},"us.anthropic.claude-sonnet-5":{"id":"us.anthropic.claude-sonnet-5","name":"Claude Sonnet 5 (US)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":10,"cacheRead":0.2,"cacheWrite":2.5},"contextWindow":1000000,"maxTokens":128000,"compat":{"supportsStrictMode":true},"thinkingLevelMap":{"xhigh":"xhigh","max":"max"}},"us.deepseek.r1-v1:0":{"id":"us.deepseek.r1-v1:0","name":"DeepSeek-R1 (US)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text"],"cost":{"input":1.35,"output":5.4,"cacheRead":0,"cacheWrite":0},"contextWindow":128000,"maxTokens":32768},"us.meta.llama4-maverick-17b-instruct-v1:0":{"id":"us.meta.llama4-maverick-17b-instruct-v1:0","name":"Llama 4 Maverick 17B Instruct (US)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":false,"input":["text","image"],"cost":{"input":0.24,"output":0.97,"cacheRead":0,"cacheWrite":0},"contextWindow":1000000,"maxTokens":16384},"us.meta.llama4-scout-17b-instruct-v1:0":{"id":"us.meta.llama4-scout-17b-instruct-v1:0","name":"Llama 4 Scout 17B Instruct (US)","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":false,"input":["text","image"],"cost":{"input":0.17,"output":0.66,"cacheRead":0,"cacheWrite":0},"contextWindow":3500000,"maxTokens":16384},"writer.palmyra-x4-v1:0":{"id":"writer.palmyra-x4-v1:0","name":"Palmyra X4","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text"],"cost":{"input":2.5,"output":10,"cacheRead":0,"cacheWrite":0},"contextWindow":122880,"maxTokens":8192},"writer.palmyra-x5-v1:0":{"id":"writer.palmyra-x5-v1:0","name":"Palmyra X5","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text"],"cost":{"input":0.6,"output":6,"cacheRead":0,"cacheWrite":0},"contextWindow":1040000,"maxTokens":8192},"xai.grok-4.3":{"id":"xai.grok-4.3","name":"Grok 4.3","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":1.25,"output":2.5,"cacheRead":0.2,"cacheWrite":0},"contextWindow":1000000,"maxTokens":131072,"compat":{"supportsStrictMode":true}},"xai.grok-4.6":{"id":"xai.grok-4.6","name":"Grok 4.6","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text","image"],"cost":{"input":2.2,"output":6.6,"cacheRead":0.55,"cacheWrite":0},"contextWindow":500000,"maxTokens":500000,"compat":{"supportsStrictMode":true}},"zai.glm-4.7":{"id":"zai.glm-4.7","name":"GLM-4.7","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text"],"cost":{"input":0.6,"output":2.2,"cacheRead":0,"cacheWrite":0},"contextWindow":204800,"maxTokens":131072,"compat":{"supportsStrictMode":true}},"zai.glm-4.7-flash":{"id":"zai.glm-4.7-flash","name":"GLM-4.7-Flash","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text"],"cost":{"input":0.07,"output":0.4,"cacheRead":0,"cacheWrite":0},"contextWindow":200000,"maxTokens":131072,"compat":{"supportsStrictMode":true}},"zai.glm-5":{"id":"zai.glm-5","name":"GLM-5","api":"bedrock-converse-stream","provider":"amazon-bedrock","baseUrl":"https://bedrock-runtime.us-east-1.amazonaws.com","reasoning":true,"input":["text"],"cost":{"input":1,"output":3.2,"cacheRead":0,"cacheWrite":0},"contextWindow":202752,"maxTokens":101376,"compat":{"supportsStrictMode":true}}}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"openai-completions":{"Ling-2.6-1T":{"id":"Ling-2.6-1T","name":"Ling 2.6 1T","api":"openai-completions","baseUrl":"https://api.ant-ling.com/v1","provider":"ant-ling","reasoning":false,"input":["text"],"cost":{"input":0.06,"output":0.25,"cacheRead":0,"cacheWrite":0},"contextWindow":262144,"maxTokens":65536,"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","thinkingFormat":"ant-ling","supportsLongCacheRetention":false}},"Ling-2.6-flash":{"id":"Ling-2.6-flash","name":"Ling 2.6 Flash","api":"openai-completions","baseUrl":"https://api.ant-ling.com/v1","provider":"ant-ling","reasoning":false,"input":["text"],"cost":{"input":0.01,"output":0.02,"cacheRead":0,"cacheWrite":0},"contextWindow":262144,"maxTokens":65536,"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","thinkingFormat":"ant-ling","supportsLongCacheRetention":false}},"Ring-2.6-1T":{"id":"Ring-2.6-1T","name":"Ring 2.6 1T","api":"openai-completions","baseUrl":"https://api.ant-ling.com/v1","provider":"ant-ling","reasoning":true,"input":["text"],"cost":{"input":0.06,"output":0.25,"cacheRead":0,"cacheWrite":0},"contextWindow":262144,"maxTokens":65536,"compat":{"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","thinkingFormat":"ant-ling","supportsLongCacheRetention":false},"thinkingLevelMap":{"off":null,"minimal":null,"low":null,"medium":null,"high":"high","xhigh":"xhigh"}}}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"anthropic-messages":{"claude-fable-5":{"id":"claude-fable-5","name":"Claude Fable 5","api":"anthropic-messages","provider":"anthropic","baseUrl":"https://api.anthropic.com","reasoning":true,"input":["text","image"],"cost":{"input":10,"output":50,"cacheRead":1,"cacheWrite":12.5},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"xhigh":"xhigh","max":"max"},"compat":{"forceAdaptiveThinking":true,"supportsStrictTools":true}},"claude-fable-5-1":{"id":"claude-fable-5-1","name":"Claude Fable 5.1","api":"anthropic-messages","provider":"anthropic","baseUrl":"https://api.anthropic.com","reasoning":true,"input":["text","image"],"cost":{"input":10,"output":50,"cacheRead":0.25,"cacheWrite":12.5},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"off":null,"xhigh":"xhigh","max":"max"},"compat":{"forceAdaptiveThinking":true,"supportsStrictTools":true}},"claude-haiku-4-5":{"id":"claude-haiku-4-5","name":"Claude Haiku 4.5 (latest)","api":"anthropic-messages","provider":"anthropic","baseUrl":"https://api.anthropic.com","reasoning":true,"input":["text","image"],"cost":{"input":1,"output":5,"cacheRead":0.1,"cacheWrite":1.25},"contextWindow":200000,"maxTokens":64000,"compat":{"supportsStrictTools":true}},"claude-haiku-4-5-20251001":{"id":"claude-haiku-4-5-20251001","name":"Claude Haiku 4.5","api":"anthropic-messages","provider":"anthropic","baseUrl":"https://api.anthropic.com","reasoning":true,"input":["text","image"],"cost":{"input":1,"output":5,"cacheRead":0.1,"cacheWrite":1.25},"contextWindow":200000,"maxTokens":64000,"compat":{"supportsStrictTools":true}},"claude-opus-4-5":{"id":"claude-opus-4-5","name":"Claude Opus 4.5 (latest)","api":"anthropic-messages","provider":"anthropic","baseUrl":"https://api.anthropic.com","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":200000,"maxTokens":64000,"compat":{"supportsStrictTools":true}},"claude-opus-4-5-20251101":{"id":"claude-opus-4-5-20251101","name":"Claude Opus 4.5","api":"anthropic-messages","provider":"anthropic","baseUrl":"https://api.anthropic.com","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":200000,"maxTokens":64000,"compat":{"supportsStrictTools":true}},"claude-opus-4-6":{"id":"claude-opus-4-6","name":"Claude Opus 4.6","api":"anthropic-messages","provider":"anthropic","baseUrl":"https://api.anthropic.com","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"max":"max"},"compat":{"forceAdaptiveThinking":true,"supportsStrictTools":true}},"claude-opus-4-7":{"id":"claude-opus-4-7","name":"Claude Opus 4.7","api":"anthropic-messages","provider":"anthropic","baseUrl":"https://api.anthropic.com","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max"},"compat":{"forceAdaptiveThinking":true,"supportsTemperature":false,"supportsStrictTools":true}},"claude-opus-4-8":{"id":"claude-opus-4-8","name":"Claude Opus 4.8","api":"anthropic-messages","provider":"anthropic","baseUrl":"https://api.anthropic.com","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max"},"compat":{"forceAdaptiveThinking":true,"supportsTemperature":false,"supportsStrictTools":true}},"claude-opus-5":{"id":"claude-opus-5","name":"Claude Opus 5","api":"anthropic-messages","provider":"anthropic","baseUrl":"https://api.anthropic.com","reasoning":true,"input":["text","image"],"cost":{"input":5,"output":25,"cacheRead":0.5,"cacheWrite":6.25},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max"},"compat":{"forceAdaptiveThinking":true,"supportsTemperature":false,"supportsStrictTools":true}},"claude-sonnet-4-5":{"id":"claude-sonnet-4-5","name":"Claude Sonnet 4.5 (latest)","api":"anthropic-messages","provider":"anthropic","baseUrl":"https://api.anthropic.com","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":3.75},"contextWindow":1000000,"maxTokens":64000,"compat":{"supportsStrictTools":true}},"claude-sonnet-4-5-20250929":{"id":"claude-sonnet-4-5-20250929","name":"Claude Sonnet 4.5","api":"anthropic-messages","provider":"anthropic","baseUrl":"https://api.anthropic.com","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":3.75},"contextWindow":1000000,"maxTokens":64000,"compat":{"supportsStrictTools":true}},"claude-sonnet-4-6":{"id":"claude-sonnet-4-6","name":"Claude Sonnet 4.6","api":"anthropic-messages","provider":"anthropic","baseUrl":"https://api.anthropic.com","reasoning":true,"input":["text","image"],"cost":{"input":3,"output":15,"cacheRead":0.3,"cacheWrite":3.75},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"max":"max"},"compat":{"forceAdaptiveThinking":true,"supportsStrictTools":true}},"claude-sonnet-5":{"id":"claude-sonnet-5","name":"Claude Sonnet 5","api":"anthropic-messages","provider":"anthropic","baseUrl":"https://api.anthropic.com","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":10,"cacheRead":0.2,"cacheWrite":2.5},"contextWindow":1000000,"maxTokens":128000,"thinkingLevelMap":{"xhigh":"xhigh","max":"max"},"compat":{"forceAdaptiveThinking":true,"supportsStrictTools":true}}}}
|