chore: update PR prompt template
This commit is contained in:
@@ -8,22 +8,20 @@ For each PR URL, do the following in order:
|
|||||||
1. Add the `inprogress` label to the PR via GitHub CLI before analysis starts. If adding the label fails, report that explicitly and continue.
|
1. Add the `inprogress` label to the PR via GitHub CLI before analysis starts. If adding the label fails, report that explicitly and continue.
|
||||||
2. Read the PR page in full. Include description, all comments, all commits, and all changed files.
|
2. Read the PR page in full. Include description, all comments, all commits, and all changed files.
|
||||||
3. Identify any linked issues referenced in the PR body, comments, commit messages, or cross links. Read each issue in full, including all comments.
|
3. Identify any linked issues referenced in the PR body, comments, commit messages, or cross links. Read each issue in full, including all comments.
|
||||||
4. Analyze the PR diff. Read all relevant code files in full with no truncation from the current main branch and compare against the diff. Do not fetch PR file blobs unless a file is missing on main or the diff context is insufficient. Include related code paths that are not in the diff but are required to validate behavior.
|
4. Analyze the PR diff. Read all relevant code files in full with no truncation and compare against the diff. Do not fetch PR file blobs unless a file is missing on main or the diff context is insufficient. Include related code paths that are not in the diff but are required to validate behavior.
|
||||||
5. Check for a changelog entry in the relevant `packages/*/CHANGELOG.md` files. Report whether an entry exists. If missing, state that a changelog entry is required before merge and that you will add it if the user decides to merge. Follow the changelog format rules in AGENTS.md. Verify:
|
5. Do not check for a changelog entry. Per CONTRIBUTING.md, contributor PRs must not edit `CHANGELOG.md` — the maintainer adds the entry when merging.
|
||||||
- Entry uses correct section (`### Breaking Changes`, `### Added`, `### Fixed`, etc.)
|
|
||||||
- External contributions include PR link and author: `Fixed foo ([#123](https://github.com/earendil-works/pi-mono/pull/123) by [@user](https://github.com/user))`
|
|
||||||
- Breaking changes are in `### Breaking Changes`, not just `### Fixed`
|
|
||||||
6. Check if packages/coding-agent/README.md, packages/coding-agent/docs/*.md, packages/coding-agent/examples/**/*.md require modification. This is usually the case when existing features have been changed, or new features have been added.
|
6. Check if packages/coding-agent/README.md, packages/coding-agent/docs/*.md, packages/coding-agent/examples/**/*.md require modification. This is usually the case when existing features have been changed, or new features have been added.
|
||||||
7. Provide a structured review with these sections:
|
7. Provide a structured review with these sections:
|
||||||
- Good: solid choices or improvements
|
- What it does: one short paragraph describing the change and its intent.
|
||||||
- Bad: concrete issues, regressions, missing tests, or risks
|
- Good: solid choices or improvements.
|
||||||
- Ugly: subtle or high impact problems
|
- Bad: concrete issues, regressions, missing tests, or risks.
|
||||||
8. Add Questions or Assumptions if anything is unclear.
|
- Ugly: subtle or high impact problems.
|
||||||
9. Add Change summary and Tests.
|
- Tests: what is covered, what is missing, and whether existing tests are adequate.
|
||||||
|
- Open questions for you: only things blocking a merge decision that need the user's input. Omit the section entirely if there are none.
|
||||||
|
|
||||||
Output format per PR:
|
Output format per PR:
|
||||||
PR: <url>
|
PR: <url>
|
||||||
Changelog:
|
What it does:
|
||||||
- ...
|
- ...
|
||||||
Good:
|
Good:
|
||||||
- ...
|
- ...
|
||||||
@@ -31,11 +29,9 @@ Bad:
|
|||||||
- ...
|
- ...
|
||||||
Ugly:
|
Ugly:
|
||||||
- ...
|
- ...
|
||||||
Questions or Assumptions:
|
|
||||||
- ...
|
|
||||||
Change summary:
|
|
||||||
- ...
|
|
||||||
Tests:
|
Tests:
|
||||||
- ...
|
- ...
|
||||||
|
Open questions for you:
|
||||||
|
- ...
|
||||||
|
|
||||||
If no issues are found, say so under Bad and Ugly.
|
If no issues are found, say so under Bad and Ugly.
|
||||||
|
|||||||
@@ -3278,6 +3278,42 @@ export const MODELS = {
|
|||||||
contextWindow: 256000,
|
contextWindow: 256000,
|
||||||
maxTokens: 16384,
|
maxTokens: 16384,
|
||||||
} satisfies Model<"openai-completions">,
|
} satisfies Model<"openai-completions">,
|
||||||
|
"@cf/ibm-granite/granite-4.0-h-micro": {
|
||||||
|
id: "@cf/ibm-granite/granite-4.0-h-micro",
|
||||||
|
name: "Granite 4.0 H Micro",
|
||||||
|
api: "openai-completions",
|
||||||
|
provider: "cloudflare-workers-ai",
|
||||||
|
baseUrl: "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1",
|
||||||
|
compat: {"sendSessionAffinityHeaders":true},
|
||||||
|
reasoning: false,
|
||||||
|
input: ["text"],
|
||||||
|
cost: {
|
||||||
|
input: 0.017,
|
||||||
|
output: 0.112,
|
||||||
|
cacheRead: 0,
|
||||||
|
cacheWrite: 0,
|
||||||
|
},
|
||||||
|
contextWindow: 131000,
|
||||||
|
maxTokens: 131000,
|
||||||
|
} satisfies Model<"openai-completions">,
|
||||||
|
"@cf/meta/llama-3.3-70b-instruct-fp8-fast": {
|
||||||
|
id: "@cf/meta/llama-3.3-70b-instruct-fp8-fast",
|
||||||
|
name: "Llama 3.3 70B Instruct fp8 Fast",
|
||||||
|
api: "openai-completions",
|
||||||
|
provider: "cloudflare-workers-ai",
|
||||||
|
baseUrl: "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1",
|
||||||
|
compat: {"sendSessionAffinityHeaders":true},
|
||||||
|
reasoning: false,
|
||||||
|
input: ["text"],
|
||||||
|
cost: {
|
||||||
|
input: 0.293,
|
||||||
|
output: 2.253,
|
||||||
|
cacheRead: 0,
|
||||||
|
cacheWrite: 0,
|
||||||
|
},
|
||||||
|
contextWindow: 24000,
|
||||||
|
maxTokens: 24000,
|
||||||
|
} satisfies Model<"openai-completions">,
|
||||||
"@cf/meta/llama-4-scout-17b-16e-instruct": {
|
"@cf/meta/llama-4-scout-17b-16e-instruct": {
|
||||||
id: "@cf/meta/llama-4-scout-17b-16e-instruct",
|
id: "@cf/meta/llama-4-scout-17b-16e-instruct",
|
||||||
name: "Llama 4 Scout 17B 16E Instruct",
|
name: "Llama 4 Scout 17B 16E Instruct",
|
||||||
@@ -3293,9 +3329,27 @@ export const MODELS = {
|
|||||||
cacheRead: 0,
|
cacheRead: 0,
|
||||||
cacheWrite: 0,
|
cacheWrite: 0,
|
||||||
},
|
},
|
||||||
contextWindow: 128000,
|
contextWindow: 131000,
|
||||||
maxTokens: 16384,
|
maxTokens: 16384,
|
||||||
} satisfies Model<"openai-completions">,
|
} satisfies Model<"openai-completions">,
|
||||||
|
"@cf/mistralai/mistral-small-3.1-24b-instruct": {
|
||||||
|
id: "@cf/mistralai/mistral-small-3.1-24b-instruct",
|
||||||
|
name: "Mistral Small 3.1 24B Instruct",
|
||||||
|
api: "openai-completions",
|
||||||
|
provider: "cloudflare-workers-ai",
|
||||||
|
baseUrl: "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1",
|
||||||
|
compat: {"sendSessionAffinityHeaders":true},
|
||||||
|
reasoning: false,
|
||||||
|
input: ["text"],
|
||||||
|
cost: {
|
||||||
|
input: 0.351,
|
||||||
|
output: 0.555,
|
||||||
|
cacheRead: 0,
|
||||||
|
cacheWrite: 0,
|
||||||
|
},
|
||||||
|
contextWindow: 128000,
|
||||||
|
maxTokens: 128000,
|
||||||
|
} satisfies Model<"openai-completions">,
|
||||||
"@cf/moonshotai/kimi-k2.5": {
|
"@cf/moonshotai/kimi-k2.5": {
|
||||||
id: "@cf/moonshotai/kimi-k2.5",
|
id: "@cf/moonshotai/kimi-k2.5",
|
||||||
name: "Kimi K2.5",
|
name: "Kimi K2.5",
|
||||||
@@ -3329,7 +3383,7 @@ export const MODELS = {
|
|||||||
cacheRead: 0.16,
|
cacheRead: 0.16,
|
||||||
cacheWrite: 0,
|
cacheWrite: 0,
|
||||||
},
|
},
|
||||||
contextWindow: 256000,
|
contextWindow: 262144,
|
||||||
maxTokens: 256000,
|
maxTokens: 256000,
|
||||||
} satisfies Model<"openai-completions">,
|
} satisfies Model<"openai-completions">,
|
||||||
"@cf/nvidia/nemotron-3-120b-a12b": {
|
"@cf/nvidia/nemotron-3-120b-a12b": {
|
||||||
@@ -3386,6 +3440,24 @@ export const MODELS = {
|
|||||||
contextWindow: 128000,
|
contextWindow: 128000,
|
||||||
maxTokens: 16384,
|
maxTokens: 16384,
|
||||||
} satisfies Model<"openai-completions">,
|
} satisfies Model<"openai-completions">,
|
||||||
|
"@cf/qwen/qwen3-30b-a3b-fp8": {
|
||||||
|
id: "@cf/qwen/qwen3-30b-a3b-fp8",
|
||||||
|
name: "Qwen3 30B A3b fp8",
|
||||||
|
api: "openai-completions",
|
||||||
|
provider: "cloudflare-workers-ai",
|
||||||
|
baseUrl: "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1",
|
||||||
|
compat: {"sendSessionAffinityHeaders":true},
|
||||||
|
reasoning: true,
|
||||||
|
input: ["text"],
|
||||||
|
cost: {
|
||||||
|
input: 0.0509,
|
||||||
|
output: 0.335,
|
||||||
|
cacheRead: 0,
|
||||||
|
cacheWrite: 0,
|
||||||
|
},
|
||||||
|
contextWindow: 32768,
|
||||||
|
maxTokens: 32768,
|
||||||
|
} satisfies Model<"openai-completions">,
|
||||||
"@cf/zai-org/glm-4.7-flash": {
|
"@cf/zai-org/glm-4.7-flash": {
|
||||||
id: "@cf/zai-org/glm-4.7-flash",
|
id: "@cf/zai-org/glm-4.7-flash",
|
||||||
name: "GLM-4.7-Flash",
|
name: "GLM-4.7-Flash",
|
||||||
@@ -3396,7 +3468,7 @@ export const MODELS = {
|
|||||||
reasoning: true,
|
reasoning: true,
|
||||||
input: ["text"],
|
input: ["text"],
|
||||||
cost: {
|
cost: {
|
||||||
input: 0.06,
|
input: 0.0605,
|
||||||
output: 0.4,
|
output: 0.4,
|
||||||
cacheRead: 0,
|
cacheRead: 0,
|
||||||
cacheWrite: 0,
|
cacheWrite: 0,
|
||||||
@@ -4169,57 +4241,6 @@ export const MODELS = {
|
|||||||
} satisfies Model<"openai-completions">,
|
} satisfies Model<"openai-completions">,
|
||||||
},
|
},
|
||||||
"google": {
|
"google": {
|
||||||
"gemini-1.5-flash": {
|
|
||||||
id: "gemini-1.5-flash",
|
|
||||||
name: "Gemini 1.5 Flash",
|
|
||||||
api: "google-generative-ai",
|
|
||||||
provider: "google",
|
|
||||||
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
|
|
||||||
reasoning: false,
|
|
||||||
input: ["text", "image"],
|
|
||||||
cost: {
|
|
||||||
input: 0.075,
|
|
||||||
output: 0.3,
|
|
||||||
cacheRead: 0.01875,
|
|
||||||
cacheWrite: 0,
|
|
||||||
},
|
|
||||||
contextWindow: 1000000,
|
|
||||||
maxTokens: 8192,
|
|
||||||
} satisfies Model<"google-generative-ai">,
|
|
||||||
"gemini-1.5-flash-8b": {
|
|
||||||
id: "gemini-1.5-flash-8b",
|
|
||||||
name: "Gemini 1.5 Flash-8B",
|
|
||||||
api: "google-generative-ai",
|
|
||||||
provider: "google",
|
|
||||||
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
|
|
||||||
reasoning: false,
|
|
||||||
input: ["text", "image"],
|
|
||||||
cost: {
|
|
||||||
input: 0.0375,
|
|
||||||
output: 0.15,
|
|
||||||
cacheRead: 0.01,
|
|
||||||
cacheWrite: 0,
|
|
||||||
},
|
|
||||||
contextWindow: 1000000,
|
|
||||||
maxTokens: 8192,
|
|
||||||
} satisfies Model<"google-generative-ai">,
|
|
||||||
"gemini-1.5-pro": {
|
|
||||||
id: "gemini-1.5-pro",
|
|
||||||
name: "Gemini 1.5 Pro",
|
|
||||||
api: "google-generative-ai",
|
|
||||||
provider: "google",
|
|
||||||
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
|
|
||||||
reasoning: false,
|
|
||||||
input: ["text", "image"],
|
|
||||||
cost: {
|
|
||||||
input: 1.25,
|
|
||||||
output: 5,
|
|
||||||
cacheRead: 0.3125,
|
|
||||||
cacheWrite: 0,
|
|
||||||
},
|
|
||||||
contextWindow: 1000000,
|
|
||||||
maxTokens: 8192,
|
|
||||||
} satisfies Model<"google-generative-ai">,
|
|
||||||
"gemini-2.0-flash": {
|
"gemini-2.0-flash": {
|
||||||
id: "gemini-2.0-flash",
|
id: "gemini-2.0-flash",
|
||||||
name: "Gemini 2.0 Flash",
|
name: "Gemini 2.0 Flash",
|
||||||
@@ -4239,7 +4260,7 @@ export const MODELS = {
|
|||||||
} satisfies Model<"google-generative-ai">,
|
} satisfies Model<"google-generative-ai">,
|
||||||
"gemini-2.0-flash-lite": {
|
"gemini-2.0-flash-lite": {
|
||||||
id: "gemini-2.0-flash-lite",
|
id: "gemini-2.0-flash-lite",
|
||||||
name: "Gemini 2.0 Flash Lite",
|
name: "Gemini 2.0 Flash-Lite",
|
||||||
api: "google-generative-ai",
|
api: "google-generative-ai",
|
||||||
provider: "google",
|
provider: "google",
|
||||||
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
|
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
|
||||||
@@ -4273,7 +4294,7 @@ export const MODELS = {
|
|||||||
} satisfies Model<"google-generative-ai">,
|
} satisfies Model<"google-generative-ai">,
|
||||||
"gemini-2.5-flash-lite": {
|
"gemini-2.5-flash-lite": {
|
||||||
id: "gemini-2.5-flash-lite",
|
id: "gemini-2.5-flash-lite",
|
||||||
name: "Gemini 2.5 Flash Lite",
|
name: "Gemini 2.5 Flash-Lite",
|
||||||
api: "google-generative-ai",
|
api: "google-generative-ai",
|
||||||
provider: "google",
|
provider: "google",
|
||||||
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
|
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
|
||||||
@@ -4288,91 +4309,6 @@ export const MODELS = {
|
|||||||
contextWindow: 1048576,
|
contextWindow: 1048576,
|
||||||
maxTokens: 65536,
|
maxTokens: 65536,
|
||||||
} satisfies Model<"google-generative-ai">,
|
} satisfies Model<"google-generative-ai">,
|
||||||
"gemini-2.5-flash-lite-preview-06-17": {
|
|
||||||
id: "gemini-2.5-flash-lite-preview-06-17",
|
|
||||||
name: "Gemini 2.5 Flash Lite Preview 06-17",
|
|
||||||
api: "google-generative-ai",
|
|
||||||
provider: "google",
|
|
||||||
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
|
|
||||||
reasoning: true,
|
|
||||||
input: ["text", "image"],
|
|
||||||
cost: {
|
|
||||||
input: 0.1,
|
|
||||||
output: 0.4,
|
|
||||||
cacheRead: 0.025,
|
|
||||||
cacheWrite: 0,
|
|
||||||
},
|
|
||||||
contextWindow: 1048576,
|
|
||||||
maxTokens: 65536,
|
|
||||||
} satisfies Model<"google-generative-ai">,
|
|
||||||
"gemini-2.5-flash-lite-preview-09-2025": {
|
|
||||||
id: "gemini-2.5-flash-lite-preview-09-2025",
|
|
||||||
name: "Gemini 2.5 Flash Lite Preview 09-25",
|
|
||||||
api: "google-generative-ai",
|
|
||||||
provider: "google",
|
|
||||||
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
|
|
||||||
reasoning: true,
|
|
||||||
input: ["text", "image"],
|
|
||||||
cost: {
|
|
||||||
input: 0.1,
|
|
||||||
output: 0.4,
|
|
||||||
cacheRead: 0.025,
|
|
||||||
cacheWrite: 0,
|
|
||||||
},
|
|
||||||
contextWindow: 1048576,
|
|
||||||
maxTokens: 65536,
|
|
||||||
} satisfies Model<"google-generative-ai">,
|
|
||||||
"gemini-2.5-flash-preview-04-17": {
|
|
||||||
id: "gemini-2.5-flash-preview-04-17",
|
|
||||||
name: "Gemini 2.5 Flash Preview 04-17",
|
|
||||||
api: "google-generative-ai",
|
|
||||||
provider: "google",
|
|
||||||
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
|
|
||||||
reasoning: true,
|
|
||||||
input: ["text", "image"],
|
|
||||||
cost: {
|
|
||||||
input: 0.15,
|
|
||||||
output: 0.6,
|
|
||||||
cacheRead: 0.0375,
|
|
||||||
cacheWrite: 0,
|
|
||||||
},
|
|
||||||
contextWindow: 1048576,
|
|
||||||
maxTokens: 65536,
|
|
||||||
} satisfies Model<"google-generative-ai">,
|
|
||||||
"gemini-2.5-flash-preview-05-20": {
|
|
||||||
id: "gemini-2.5-flash-preview-05-20",
|
|
||||||
name: "Gemini 2.5 Flash Preview 05-20",
|
|
||||||
api: "google-generative-ai",
|
|
||||||
provider: "google",
|
|
||||||
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
|
|
||||||
reasoning: true,
|
|
||||||
input: ["text", "image"],
|
|
||||||
cost: {
|
|
||||||
input: 0.15,
|
|
||||||
output: 0.6,
|
|
||||||
cacheRead: 0.0375,
|
|
||||||
cacheWrite: 0,
|
|
||||||
},
|
|
||||||
contextWindow: 1048576,
|
|
||||||
maxTokens: 65536,
|
|
||||||
} satisfies Model<"google-generative-ai">,
|
|
||||||
"gemini-2.5-flash-preview-09-2025": {
|
|
||||||
id: "gemini-2.5-flash-preview-09-2025",
|
|
||||||
name: "Gemini 2.5 Flash Preview 09-25",
|
|
||||||
api: "google-generative-ai",
|
|
||||||
provider: "google",
|
|
||||||
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
|
|
||||||
reasoning: true,
|
|
||||||
input: ["text", "image"],
|
|
||||||
cost: {
|
|
||||||
input: 0.3,
|
|
||||||
output: 2.5,
|
|
||||||
cacheRead: 0.075,
|
|
||||||
cacheWrite: 0,
|
|
||||||
},
|
|
||||||
contextWindow: 1048576,
|
|
||||||
maxTokens: 65536,
|
|
||||||
} satisfies Model<"google-generative-ai">,
|
|
||||||
"gemini-2.5-pro": {
|
"gemini-2.5-pro": {
|
||||||
id: "gemini-2.5-pro",
|
id: "gemini-2.5-pro",
|
||||||
name: "Gemini 2.5 Pro",
|
name: "Gemini 2.5 Pro",
|
||||||
@@ -4390,40 +4326,6 @@ export const MODELS = {
|
|||||||
contextWindow: 1048576,
|
contextWindow: 1048576,
|
||||||
maxTokens: 65536,
|
maxTokens: 65536,
|
||||||
} satisfies Model<"google-generative-ai">,
|
} satisfies Model<"google-generative-ai">,
|
||||||
"gemini-2.5-pro-preview-05-06": {
|
|
||||||
id: "gemini-2.5-pro-preview-05-06",
|
|
||||||
name: "Gemini 2.5 Pro Preview 05-06",
|
|
||||||
api: "google-generative-ai",
|
|
||||||
provider: "google",
|
|
||||||
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
|
|
||||||
reasoning: true,
|
|
||||||
input: ["text", "image"],
|
|
||||||
cost: {
|
|
||||||
input: 1.25,
|
|
||||||
output: 10,
|
|
||||||
cacheRead: 0.31,
|
|
||||||
cacheWrite: 0,
|
|
||||||
},
|
|
||||||
contextWindow: 1048576,
|
|
||||||
maxTokens: 65536,
|
|
||||||
} satisfies Model<"google-generative-ai">,
|
|
||||||
"gemini-2.5-pro-preview-06-05": {
|
|
||||||
id: "gemini-2.5-pro-preview-06-05",
|
|
||||||
name: "Gemini 2.5 Pro Preview 06-05",
|
|
||||||
api: "google-generative-ai",
|
|
||||||
provider: "google",
|
|
||||||
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
|
|
||||||
reasoning: true,
|
|
||||||
input: ["text", "image"],
|
|
||||||
cost: {
|
|
||||||
input: 1.25,
|
|
||||||
output: 10,
|
|
||||||
cacheRead: 0.31,
|
|
||||||
cacheWrite: 0,
|
|
||||||
},
|
|
||||||
contextWindow: 1048576,
|
|
||||||
maxTokens: 65536,
|
|
||||||
} satisfies Model<"google-generative-ai">,
|
|
||||||
"gemini-3-flash-preview": {
|
"gemini-3-flash-preview": {
|
||||||
id: "gemini-3-flash-preview",
|
id: "gemini-3-flash-preview",
|
||||||
name: "Gemini 3 Flash Preview",
|
name: "Gemini 3 Flash Preview",
|
||||||
@@ -4457,8 +4359,8 @@ export const MODELS = {
|
|||||||
cacheRead: 0.2,
|
cacheRead: 0.2,
|
||||||
cacheWrite: 0,
|
cacheWrite: 0,
|
||||||
},
|
},
|
||||||
contextWindow: 1000000,
|
contextWindow: 1048576,
|
||||||
maxTokens: 64000,
|
maxTokens: 65536,
|
||||||
} satisfies Model<"google-generative-ai">,
|
} satisfies Model<"google-generative-ai">,
|
||||||
"gemini-3.1-flash-lite": {
|
"gemini-3.1-flash-lite": {
|
||||||
id: "gemini-3.1-flash-lite",
|
id: "gemini-3.1-flash-lite",
|
||||||
@@ -4584,60 +4486,9 @@ export const MODELS = {
|
|||||||
contextWindow: 1048576,
|
contextWindow: 1048576,
|
||||||
maxTokens: 65536,
|
maxTokens: 65536,
|
||||||
} satisfies Model<"google-generative-ai">,
|
} satisfies Model<"google-generative-ai">,
|
||||||
"gemini-live-2.5-flash": {
|
|
||||||
id: "gemini-live-2.5-flash",
|
|
||||||
name: "Gemini Live 2.5 Flash",
|
|
||||||
api: "google-generative-ai",
|
|
||||||
provider: "google",
|
|
||||||
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
|
|
||||||
reasoning: true,
|
|
||||||
input: ["text", "image"],
|
|
||||||
cost: {
|
|
||||||
input: 0.5,
|
|
||||||
output: 2,
|
|
||||||
cacheRead: 0,
|
|
||||||
cacheWrite: 0,
|
|
||||||
},
|
|
||||||
contextWindow: 128000,
|
|
||||||
maxTokens: 8000,
|
|
||||||
} satisfies Model<"google-generative-ai">,
|
|
||||||
"gemini-live-2.5-flash-preview-native-audio": {
|
|
||||||
id: "gemini-live-2.5-flash-preview-native-audio",
|
|
||||||
name: "Gemini Live 2.5 Flash Preview Native Audio",
|
|
||||||
api: "google-generative-ai",
|
|
||||||
provider: "google",
|
|
||||||
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
|
|
||||||
reasoning: true,
|
|
||||||
input: ["text"],
|
|
||||||
cost: {
|
|
||||||
input: 0.5,
|
|
||||||
output: 2,
|
|
||||||
cacheRead: 0,
|
|
||||||
cacheWrite: 0,
|
|
||||||
},
|
|
||||||
contextWindow: 131072,
|
|
||||||
maxTokens: 65536,
|
|
||||||
} satisfies Model<"google-generative-ai">,
|
|
||||||
"gemma-3-27b-it": {
|
|
||||||
id: "gemma-3-27b-it",
|
|
||||||
name: "Gemma 3 27B",
|
|
||||||
api: "google-generative-ai",
|
|
||||||
provider: "google",
|
|
||||||
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
|
|
||||||
reasoning: false,
|
|
||||||
input: ["text", "image"],
|
|
||||||
cost: {
|
|
||||||
input: 0,
|
|
||||||
output: 0,
|
|
||||||
cacheRead: 0,
|
|
||||||
cacheWrite: 0,
|
|
||||||
},
|
|
||||||
contextWindow: 131072,
|
|
||||||
maxTokens: 8192,
|
|
||||||
} satisfies Model<"google-generative-ai">,
|
|
||||||
"gemma-4-26b-a4b-it": {
|
"gemma-4-26b-a4b-it": {
|
||||||
id: "gemma-4-26b-a4b-it",
|
id: "gemma-4-26b-a4b-it",
|
||||||
name: "Gemma 4 26B",
|
name: "Gemma 4 26B A4B IT",
|
||||||
api: "google-generative-ai",
|
api: "google-generative-ai",
|
||||||
provider: "google",
|
provider: "google",
|
||||||
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
|
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
|
||||||
@@ -4650,12 +4501,12 @@ export const MODELS = {
|
|||||||
cacheRead: 0,
|
cacheRead: 0,
|
||||||
cacheWrite: 0,
|
cacheWrite: 0,
|
||||||
},
|
},
|
||||||
contextWindow: 256000,
|
contextWindow: 262144,
|
||||||
maxTokens: 8192,
|
maxTokens: 32768,
|
||||||
} satisfies Model<"google-generative-ai">,
|
} satisfies Model<"google-generative-ai">,
|
||||||
"gemma-4-31b-it": {
|
"gemma-4-31b-it": {
|
||||||
id: "gemma-4-31b-it",
|
id: "gemma-4-31b-it",
|
||||||
name: "Gemma 4 31B",
|
name: "Gemma 4 31B IT",
|
||||||
api: "google-generative-ai",
|
api: "google-generative-ai",
|
||||||
provider: "google",
|
provider: "google",
|
||||||
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
|
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
|
||||||
@@ -4668,8 +4519,8 @@ export const MODELS = {
|
|||||||
cacheRead: 0,
|
cacheRead: 0,
|
||||||
cacheWrite: 0,
|
cacheWrite: 0,
|
||||||
},
|
},
|
||||||
contextWindow: 256000,
|
contextWindow: 262144,
|
||||||
maxTokens: 8192,
|
maxTokens: 32768,
|
||||||
} satisfies Model<"google-generative-ai">,
|
} satisfies Model<"google-generative-ai">,
|
||||||
},
|
},
|
||||||
"google-vertex": {
|
"google-vertex": {
|
||||||
@@ -7511,6 +7362,24 @@ export const MODELS = {
|
|||||||
contextWindow: 1048576,
|
contextWindow: 1048576,
|
||||||
maxTokens: 65536,
|
maxTokens: 65536,
|
||||||
} satisfies Model<"google-generative-ai">,
|
} satisfies Model<"google-generative-ai">,
|
||||||
|
"gemini-3.5-flash": {
|
||||||
|
id: "gemini-3.5-flash",
|
||||||
|
name: "Gemini 3.5 Flash",
|
||||||
|
api: "google-generative-ai",
|
||||||
|
provider: "opencode",
|
||||||
|
baseUrl: "https://opencode.ai/zen/v1",
|
||||||
|
reasoning: true,
|
||||||
|
thinkingLevelMap: {"off":null},
|
||||||
|
input: ["text", "image"],
|
||||||
|
cost: {
|
||||||
|
input: 1.5,
|
||||||
|
output: 9,
|
||||||
|
cacheRead: 0.15,
|
||||||
|
cacheWrite: 0,
|
||||||
|
},
|
||||||
|
contextWindow: 1048576,
|
||||||
|
maxTokens: 65536,
|
||||||
|
} satisfies Model<"google-generative-ai">,
|
||||||
"glm-5": {
|
"glm-5": {
|
||||||
id: "glm-5",
|
id: "glm-5",
|
||||||
name: "GLM-5",
|
name: "GLM-5",
|
||||||
@@ -7833,6 +7702,23 @@ export const MODELS = {
|
|||||||
contextWindow: 1050000,
|
contextWindow: 1050000,
|
||||||
maxTokens: 128000,
|
maxTokens: 128000,
|
||||||
} satisfies Model<"openai-responses">,
|
} satisfies Model<"openai-responses">,
|
||||||
|
"grok-build-0.1": {
|
||||||
|
id: "grok-build-0.1",
|
||||||
|
name: "Grok Build 0.1",
|
||||||
|
api: "openai-completions",
|
||||||
|
provider: "opencode",
|
||||||
|
baseUrl: "https://opencode.ai/zen/v1",
|
||||||
|
reasoning: true,
|
||||||
|
input: ["text", "image"],
|
||||||
|
cost: {
|
||||||
|
input: 1,
|
||||||
|
output: 2,
|
||||||
|
cacheRead: 0.2,
|
||||||
|
cacheWrite: 0,
|
||||||
|
},
|
||||||
|
contextWindow: 256000,
|
||||||
|
maxTokens: 256000,
|
||||||
|
} satisfies Model<"openai-completions">,
|
||||||
"kimi-k2.5": {
|
"kimi-k2.5": {
|
||||||
id: "kimi-k2.5",
|
id: "kimi-k2.5",
|
||||||
name: "Kimi K2.5",
|
name: "Kimi K2.5",
|
||||||
@@ -7884,23 +7770,6 @@ export const MODELS = {
|
|||||||
contextWindow: 204800,
|
contextWindow: 204800,
|
||||||
maxTokens: 131072,
|
maxTokens: 131072,
|
||||||
} satisfies Model<"openai-completions">,
|
} satisfies Model<"openai-completions">,
|
||||||
"minimax-m2.5-free": {
|
|
||||||
id: "minimax-m2.5-free",
|
|
||||||
name: "MiniMax M2.5 Free",
|
|
||||||
api: "anthropic-messages",
|
|
||||||
provider: "opencode",
|
|
||||||
baseUrl: "https://opencode.ai/zen",
|
|
||||||
reasoning: true,
|
|
||||||
input: ["text"],
|
|
||||||
cost: {
|
|
||||||
input: 0,
|
|
||||||
output: 0,
|
|
||||||
cacheRead: 0,
|
|
||||||
cacheWrite: 0,
|
|
||||||
},
|
|
||||||
contextWindow: 204800,
|
|
||||||
maxTokens: 131072,
|
|
||||||
} satisfies Model<"anthropic-messages">,
|
|
||||||
"minimax-m2.7": {
|
"minimax-m2.7": {
|
||||||
id: "minimax-m2.7",
|
id: "minimax-m2.7",
|
||||||
name: "MiniMax M2.7",
|
name: "MiniMax M2.7",
|
||||||
@@ -8544,23 +8413,6 @@ export const MODELS = {
|
|||||||
contextWindow: 1000000,
|
contextWindow: 1000000,
|
||||||
maxTokens: 128000,
|
maxTokens: 128000,
|
||||||
} satisfies Model<"openai-completions">,
|
} satisfies Model<"openai-completions">,
|
||||||
"arcee-ai/trinity-large-preview": {
|
|
||||||
id: "arcee-ai/trinity-large-preview",
|
|
||||||
name: "Arcee AI: Trinity Large Preview",
|
|
||||||
api: "openai-completions",
|
|
||||||
provider: "openrouter",
|
|
||||||
baseUrl: "https://openrouter.ai/api/v1",
|
|
||||||
reasoning: false,
|
|
||||||
input: ["text"],
|
|
||||||
cost: {
|
|
||||||
input: 0.15,
|
|
||||||
output: 0.44999999999999996,
|
|
||||||
cacheRead: 0,
|
|
||||||
cacheWrite: 0,
|
|
||||||
},
|
|
||||||
contextWindow: 131000,
|
|
||||||
maxTokens: 4096,
|
|
||||||
} satisfies Model<"openai-completions">,
|
|
||||||
"arcee-ai/trinity-large-thinking": {
|
"arcee-ai/trinity-large-thinking": {
|
||||||
id: "arcee-ai/trinity-large-thinking",
|
id: "arcee-ai/trinity-large-thinking",
|
||||||
name: "Arcee AI: Trinity Large Thinking",
|
name: "Arcee AI: Trinity Large Thinking",
|
||||||
@@ -9023,7 +8875,7 @@ export const MODELS = {
|
|||||||
cacheRead: 0.024999999999999998,
|
cacheRead: 0.024999999999999998,
|
||||||
cacheWrite: 0.08333333333333334,
|
cacheWrite: 0.08333333333333334,
|
||||||
},
|
},
|
||||||
contextWindow: 1048576,
|
contextWindow: 1000000,
|
||||||
maxTokens: 8192,
|
maxTokens: 8192,
|
||||||
} satisfies Model<"openai-completions">,
|
} satisfies Model<"openai-completions">,
|
||||||
"google/gemini-2.0-flash-lite-001": {
|
"google/gemini-2.0-flash-lite-001": {
|
||||||
@@ -9393,9 +9245,9 @@ export const MODELS = {
|
|||||||
reasoning: false,
|
reasoning: false,
|
||||||
input: ["text"],
|
input: ["text"],
|
||||||
cost: {
|
cost: {
|
||||||
input: 0.3,
|
input: 0.075,
|
||||||
output: 2.5,
|
output: 0.625,
|
||||||
cacheRead: 0.06,
|
cacheRead: 0.015,
|
||||||
cacheWrite: 0,
|
cacheWrite: 0,
|
||||||
},
|
},
|
||||||
contextWindow: 262144,
|
contextWindow: 262144,
|
||||||
@@ -11940,7 +11792,7 @@ export const MODELS = {
|
|||||||
cost: {
|
cost: {
|
||||||
input: 0.39,
|
input: 0.39,
|
||||||
output: 2.34,
|
output: 2.34,
|
||||||
cacheRead: 0.195,
|
cacheRead: 0,
|
||||||
cacheWrite: 0,
|
cacheWrite: 0,
|
||||||
},
|
},
|
||||||
contextWindow: 262144,
|
contextWindow: 262144,
|
||||||
@@ -12023,13 +11875,13 @@ export const MODELS = {
|
|||||||
reasoning: true,
|
reasoning: true,
|
||||||
input: ["text", "image"],
|
input: ["text", "image"],
|
||||||
cost: {
|
cost: {
|
||||||
input: 0.32,
|
input: 0.317,
|
||||||
output: 3.1999999999999997,
|
output: 3.1999999999999997,
|
||||||
cacheRead: 0,
|
cacheRead: 0,
|
||||||
cacheWrite: 0,
|
cacheWrite: 0,
|
||||||
},
|
},
|
||||||
contextWindow: 262144,
|
contextWindow: 262144,
|
||||||
maxTokens: 81920,
|
maxTokens: 262140,
|
||||||
} satisfies Model<"openai-completions">,
|
} satisfies Model<"openai-completions">,
|
||||||
"qwen/qwen3.6-35b-a3b": {
|
"qwen/qwen3.6-35b-a3b": {
|
||||||
id: "qwen/qwen3.6-35b-a3b",
|
id: "qwen/qwen3.6-35b-a3b",
|
||||||
@@ -12099,6 +11951,23 @@ export const MODELS = {
|
|||||||
contextWindow: 1000000,
|
contextWindow: 1000000,
|
||||||
maxTokens: 65536,
|
maxTokens: 65536,
|
||||||
} satisfies Model<"openai-completions">,
|
} satisfies Model<"openai-completions">,
|
||||||
|
"qwen/qwen3.7-max": {
|
||||||
|
id: "qwen/qwen3.7-max",
|
||||||
|
name: "Qwen: Qwen3.7 Max",
|
||||||
|
api: "openai-completions",
|
||||||
|
provider: "openrouter",
|
||||||
|
baseUrl: "https://openrouter.ai/api/v1",
|
||||||
|
reasoning: true,
|
||||||
|
input: ["text"],
|
||||||
|
cost: {
|
||||||
|
input: 2.5,
|
||||||
|
output: 7.5,
|
||||||
|
cacheRead: 0,
|
||||||
|
cacheWrite: 3.125,
|
||||||
|
},
|
||||||
|
contextWindow: 1000000,
|
||||||
|
maxTokens: 65536,
|
||||||
|
} satisfies Model<"openai-completions">,
|
||||||
"rekaai/reka-edge": {
|
"rekaai/reka-edge": {
|
||||||
id: "rekaai/reka-edge",
|
id: "rekaai/reka-edge",
|
||||||
name: "Reka Edge",
|
name: "Reka Edge",
|
||||||
@@ -12176,13 +12045,13 @@ export const MODELS = {
|
|||||||
reasoning: true,
|
reasoning: true,
|
||||||
input: ["text"],
|
input: ["text"],
|
||||||
cost: {
|
cost: {
|
||||||
input: 0.09999999999999999,
|
input: 0.09,
|
||||||
output: 0.3,
|
output: 0.3,
|
||||||
cacheRead: 0,
|
cacheRead: 0.02,
|
||||||
cacheWrite: 0,
|
cacheWrite: 0,
|
||||||
},
|
},
|
||||||
contextWindow: 262144,
|
contextWindow: 262144,
|
||||||
maxTokens: 65536,
|
maxTokens: 16384,
|
||||||
} satisfies Model<"openai-completions">,
|
} satisfies Model<"openai-completions">,
|
||||||
"tencent/hy3-preview": {
|
"tencent/hy3-preview": {
|
||||||
id: "tencent/hy3-preview",
|
id: "tencent/hy3-preview",
|
||||||
@@ -12286,6 +12155,23 @@ export const MODELS = {
|
|||||||
contextWindow: 1000000,
|
contextWindow: 1000000,
|
||||||
maxTokens: 4096,
|
maxTokens: 4096,
|
||||||
} satisfies Model<"openai-completions">,
|
} satisfies Model<"openai-completions">,
|
||||||
|
"x-ai/grok-build-0.1": {
|
||||||
|
id: "x-ai/grok-build-0.1",
|
||||||
|
name: "xAI: Grok Build 0.1",
|
||||||
|
api: "openai-completions",
|
||||||
|
provider: "openrouter",
|
||||||
|
baseUrl: "https://openrouter.ai/api/v1",
|
||||||
|
reasoning: true,
|
||||||
|
input: ["text", "image"],
|
||||||
|
cost: {
|
||||||
|
input: 1,
|
||||||
|
output: 2,
|
||||||
|
cacheRead: 0.19999999999999998,
|
||||||
|
cacheWrite: 0,
|
||||||
|
},
|
||||||
|
contextWindow: 256000,
|
||||||
|
maxTokens: 4096,
|
||||||
|
} satisfies Model<"openai-completions">,
|
||||||
"xiaomi/mimo-v2-flash": {
|
"xiaomi/mimo-v2-flash": {
|
||||||
id: "xiaomi/mimo-v2-flash",
|
id: "xiaomi/mimo-v2-flash",
|
||||||
name: "Xiaomi: MiMo-V2-Flash",
|
name: "Xiaomi: MiMo-V2-Flash",
|
||||||
@@ -12567,13 +12453,13 @@ export const MODELS = {
|
|||||||
reasoning: true,
|
reasoning: true,
|
||||||
input: ["text"],
|
input: ["text"],
|
||||||
cost: {
|
cost: {
|
||||||
input: 0,
|
input: 0.98,
|
||||||
output: 0,
|
output: 3.08,
|
||||||
cacheRead: 0,
|
cacheRead: 0.182,
|
||||||
cacheWrite: 0,
|
cacheWrite: 0,
|
||||||
},
|
},
|
||||||
contextWindow: 202800,
|
contextWindow: 202752,
|
||||||
maxTokens: 202800,
|
maxTokens: 4096,
|
||||||
} satisfies Model<"openai-completions">,
|
} satisfies Model<"openai-completions">,
|
||||||
"z-ai/glm-5v-turbo": {
|
"z-ai/glm-5v-turbo": {
|
||||||
id: "z-ai/glm-5v-turbo",
|
id: "z-ai/glm-5v-turbo",
|
||||||
@@ -13358,6 +13244,23 @@ export const MODELS = {
|
|||||||
contextWindow: 1000000,
|
contextWindow: 1000000,
|
||||||
maxTokens: 64000,
|
maxTokens: 64000,
|
||||||
} satisfies Model<"anthropic-messages">,
|
} satisfies Model<"anthropic-messages">,
|
||||||
|
"alibaba/qwen3.7-max": {
|
||||||
|
id: "alibaba/qwen3.7-max",
|
||||||
|
name: "Qwen 3.7 Max",
|
||||||
|
api: "anthropic-messages",
|
||||||
|
provider: "vercel-ai-gateway",
|
||||||
|
baseUrl: "https://ai-gateway.vercel.sh",
|
||||||
|
reasoning: true,
|
||||||
|
input: ["text", "image"],
|
||||||
|
cost: {
|
||||||
|
input: 2.5,
|
||||||
|
output: 7.5,
|
||||||
|
cacheRead: 0.5,
|
||||||
|
cacheWrite: 3.125,
|
||||||
|
},
|
||||||
|
contextWindow: 991000,
|
||||||
|
maxTokens: 64000,
|
||||||
|
} satisfies Model<"anthropic-messages">,
|
||||||
"anthropic/claude-3-haiku": {
|
"anthropic/claude-3-haiku": {
|
||||||
id: "anthropic/claude-3-haiku",
|
id: "anthropic/claude-3-haiku",
|
||||||
name: "Claude 3 Haiku",
|
name: "Claude 3 Haiku",
|
||||||
@@ -14397,6 +14300,23 @@ export const MODELS = {
|
|||||||
contextWindow: 128000,
|
contextWindow: 128000,
|
||||||
maxTokens: 64000,
|
maxTokens: 64000,
|
||||||
} satisfies Model<"anthropic-messages">,
|
} satisfies Model<"anthropic-messages">,
|
||||||
|
"mistral/mistral-medium-3.5": {
|
||||||
|
id: "mistral/mistral-medium-3.5",
|
||||||
|
name: "Mistral Medium Latest",
|
||||||
|
api: "anthropic-messages",
|
||||||
|
provider: "vercel-ai-gateway",
|
||||||
|
baseUrl: "https://ai-gateway.vercel.sh",
|
||||||
|
reasoning: true,
|
||||||
|
input: ["text"],
|
||||||
|
cost: {
|
||||||
|
input: 1.5,
|
||||||
|
output: 7.5,
|
||||||
|
cacheRead: 0,
|
||||||
|
cacheWrite: 0,
|
||||||
|
},
|
||||||
|
contextWindow: 256000,
|
||||||
|
maxTokens: 256000,
|
||||||
|
} satisfies Model<"anthropic-messages">,
|
||||||
"mistral/mistral-small": {
|
"mistral/mistral-small": {
|
||||||
id: "mistral/mistral-small",
|
id: "mistral/mistral-small",
|
||||||
name: "Mistral Small",
|
name: "Mistral Small",
|
||||||
@@ -15412,6 +15332,23 @@ export const MODELS = {
|
|||||||
contextWindow: 1000000,
|
contextWindow: 1000000,
|
||||||
maxTokens: 1000000,
|
maxTokens: 1000000,
|
||||||
} satisfies Model<"anthropic-messages">,
|
} satisfies Model<"anthropic-messages">,
|
||||||
|
"xai/grok-build-0.1": {
|
||||||
|
id: "xai/grok-build-0.1",
|
||||||
|
name: "Grok Build 0.1",
|
||||||
|
api: "anthropic-messages",
|
||||||
|
provider: "vercel-ai-gateway",
|
||||||
|
baseUrl: "https://ai-gateway.vercel.sh",
|
||||||
|
reasoning: true,
|
||||||
|
input: ["text", "image"],
|
||||||
|
cost: {
|
||||||
|
input: 1,
|
||||||
|
output: 2,
|
||||||
|
cacheRead: 0.19999999999999998,
|
||||||
|
cacheWrite: 0,
|
||||||
|
},
|
||||||
|
contextWindow: 256000,
|
||||||
|
maxTokens: 256000,
|
||||||
|
} satisfies Model<"anthropic-messages">,
|
||||||
"xiaomi/mimo-v2-flash": {
|
"xiaomi/mimo-v2-flash": {
|
||||||
id: "xiaomi/mimo-v2-flash",
|
id: "xiaomi/mimo-v2-flash",
|
||||||
name: "MiMo V2 Flash",
|
name: "MiMo V2 Flash",
|
||||||
@@ -15703,108 +15640,6 @@ export const MODELS = {
|
|||||||
} satisfies Model<"anthropic-messages">,
|
} satisfies Model<"anthropic-messages">,
|
||||||
},
|
},
|
||||||
"xai": {
|
"xai": {
|
||||||
"grok-2": {
|
|
||||||
id: "grok-2",
|
|
||||||
name: "Grok 2",
|
|
||||||
api: "openai-completions",
|
|
||||||
provider: "xai",
|
|
||||||
baseUrl: "https://api.x.ai/v1",
|
|
||||||
reasoning: false,
|
|
||||||
input: ["text"],
|
|
||||||
cost: {
|
|
||||||
input: 2,
|
|
||||||
output: 10,
|
|
||||||
cacheRead: 2,
|
|
||||||
cacheWrite: 0,
|
|
||||||
},
|
|
||||||
contextWindow: 131072,
|
|
||||||
maxTokens: 8192,
|
|
||||||
} satisfies Model<"openai-completions">,
|
|
||||||
"grok-2-1212": {
|
|
||||||
id: "grok-2-1212",
|
|
||||||
name: "Grok 2 (1212)",
|
|
||||||
api: "openai-completions",
|
|
||||||
provider: "xai",
|
|
||||||
baseUrl: "https://api.x.ai/v1",
|
|
||||||
reasoning: false,
|
|
||||||
input: ["text"],
|
|
||||||
cost: {
|
|
||||||
input: 2,
|
|
||||||
output: 10,
|
|
||||||
cacheRead: 2,
|
|
||||||
cacheWrite: 0,
|
|
||||||
},
|
|
||||||
contextWindow: 131072,
|
|
||||||
maxTokens: 8192,
|
|
||||||
} satisfies Model<"openai-completions">,
|
|
||||||
"grok-2-latest": {
|
|
||||||
id: "grok-2-latest",
|
|
||||||
name: "Grok 2 Latest",
|
|
||||||
api: "openai-completions",
|
|
||||||
provider: "xai",
|
|
||||||
baseUrl: "https://api.x.ai/v1",
|
|
||||||
reasoning: false,
|
|
||||||
input: ["text"],
|
|
||||||
cost: {
|
|
||||||
input: 2,
|
|
||||||
output: 10,
|
|
||||||
cacheRead: 2,
|
|
||||||
cacheWrite: 0,
|
|
||||||
},
|
|
||||||
contextWindow: 131072,
|
|
||||||
maxTokens: 8192,
|
|
||||||
} satisfies Model<"openai-completions">,
|
|
||||||
"grok-2-vision": {
|
|
||||||
id: "grok-2-vision",
|
|
||||||
name: "Grok 2 Vision",
|
|
||||||
api: "openai-completions",
|
|
||||||
provider: "xai",
|
|
||||||
baseUrl: "https://api.x.ai/v1",
|
|
||||||
reasoning: false,
|
|
||||||
input: ["text", "image"],
|
|
||||||
cost: {
|
|
||||||
input: 2,
|
|
||||||
output: 10,
|
|
||||||
cacheRead: 2,
|
|
||||||
cacheWrite: 0,
|
|
||||||
},
|
|
||||||
contextWindow: 8192,
|
|
||||||
maxTokens: 4096,
|
|
||||||
} satisfies Model<"openai-completions">,
|
|
||||||
"grok-2-vision-1212": {
|
|
||||||
id: "grok-2-vision-1212",
|
|
||||||
name: "Grok 2 Vision (1212)",
|
|
||||||
api: "openai-completions",
|
|
||||||
provider: "xai",
|
|
||||||
baseUrl: "https://api.x.ai/v1",
|
|
||||||
reasoning: false,
|
|
||||||
input: ["text", "image"],
|
|
||||||
cost: {
|
|
||||||
input: 2,
|
|
||||||
output: 10,
|
|
||||||
cacheRead: 2,
|
|
||||||
cacheWrite: 0,
|
|
||||||
},
|
|
||||||
contextWindow: 8192,
|
|
||||||
maxTokens: 4096,
|
|
||||||
} satisfies Model<"openai-completions">,
|
|
||||||
"grok-2-vision-latest": {
|
|
||||||
id: "grok-2-vision-latest",
|
|
||||||
name: "Grok 2 Vision Latest",
|
|
||||||
api: "openai-completions",
|
|
||||||
provider: "xai",
|
|
||||||
baseUrl: "https://api.x.ai/v1",
|
|
||||||
reasoning: false,
|
|
||||||
input: ["text", "image"],
|
|
||||||
cost: {
|
|
||||||
input: 2,
|
|
||||||
output: 10,
|
|
||||||
cacheRead: 2,
|
|
||||||
cacheWrite: 0,
|
|
||||||
},
|
|
||||||
contextWindow: 8192,
|
|
||||||
maxTokens: 4096,
|
|
||||||
} satisfies Model<"openai-completions">,
|
|
||||||
"grok-3": {
|
"grok-3": {
|
||||||
id: "grok-3",
|
id: "grok-3",
|
||||||
name: "Grok 3",
|
name: "Grok 3",
|
||||||
@@ -15848,8 +15683,8 @@ export const MODELS = {
|
|||||||
reasoning: false,
|
reasoning: false,
|
||||||
input: ["text", "image"],
|
input: ["text", "image"],
|
||||||
cost: {
|
cost: {
|
||||||
input: 2,
|
input: 1.25,
|
||||||
output: 6,
|
output: 2.5,
|
||||||
cacheRead: 0.2,
|
cacheRead: 0.2,
|
||||||
cacheWrite: 0,
|
cacheWrite: 0,
|
||||||
},
|
},
|
||||||
@@ -15865,8 +15700,8 @@ export const MODELS = {
|
|||||||
reasoning: true,
|
reasoning: true,
|
||||||
input: ["text", "image"],
|
input: ["text", "image"],
|
||||||
cost: {
|
cost: {
|
||||||
input: 2,
|
input: 1.25,
|
||||||
output: 6,
|
output: 2.5,
|
||||||
cacheRead: 0.2,
|
cacheRead: 0.2,
|
||||||
cacheWrite: 0,
|
cacheWrite: 0,
|
||||||
},
|
},
|
||||||
@@ -15890,22 +15725,22 @@ export const MODELS = {
|
|||||||
contextWindow: 1000000,
|
contextWindow: 1000000,
|
||||||
maxTokens: 30000,
|
maxTokens: 30000,
|
||||||
} satisfies Model<"openai-completions">,
|
} satisfies Model<"openai-completions">,
|
||||||
"grok-beta": {
|
"grok-build-0.1": {
|
||||||
id: "grok-beta",
|
id: "grok-build-0.1",
|
||||||
name: "Grok Beta",
|
name: "Grok Build 0.1",
|
||||||
api: "openai-completions",
|
api: "openai-completions",
|
||||||
provider: "xai",
|
provider: "xai",
|
||||||
baseUrl: "https://api.x.ai/v1",
|
baseUrl: "https://api.x.ai/v1",
|
||||||
reasoning: false,
|
reasoning: true,
|
||||||
input: ["text"],
|
input: ["text", "image"],
|
||||||
cost: {
|
cost: {
|
||||||
input: 5,
|
input: 1,
|
||||||
output: 15,
|
output: 2,
|
||||||
cacheRead: 5,
|
cacheRead: 0.2,
|
||||||
cacheWrite: 0,
|
cacheWrite: 0,
|
||||||
},
|
},
|
||||||
contextWindow: 131072,
|
contextWindow: 256000,
|
||||||
maxTokens: 4096,
|
maxTokens: 256000,
|
||||||
} satisfies Model<"openai-completions">,
|
} satisfies Model<"openai-completions">,
|
||||||
"grok-code-fast-1": {
|
"grok-code-fast-1": {
|
||||||
id: "grok-code-fast-1",
|
id: "grok-code-fast-1",
|
||||||
@@ -15924,23 +15759,6 @@ export const MODELS = {
|
|||||||
contextWindow: 32768,
|
contextWindow: 32768,
|
||||||
maxTokens: 8192,
|
maxTokens: 8192,
|
||||||
} satisfies Model<"openai-completions">,
|
} satisfies Model<"openai-completions">,
|
||||||
"grok-vision-beta": {
|
|
||||||
id: "grok-vision-beta",
|
|
||||||
name: "Grok Vision Beta",
|
|
||||||
api: "openai-completions",
|
|
||||||
provider: "xai",
|
|
||||||
baseUrl: "https://api.x.ai/v1",
|
|
||||||
reasoning: false,
|
|
||||||
input: ["text", "image"],
|
|
||||||
cost: {
|
|
||||||
input: 5,
|
|
||||||
output: 15,
|
|
||||||
cacheRead: 5,
|
|
||||||
cacheWrite: 0,
|
|
||||||
},
|
|
||||||
contextWindow: 8192,
|
|
||||||
maxTokens: 4096,
|
|
||||||
} satisfies Model<"openai-completions">,
|
|
||||||
},
|
},
|
||||||
"xiaomi": {
|
"xiaomi": {
|
||||||
"mimo-v2-flash": {
|
"mimo-v2-flash": {
|
||||||
|
|||||||
Reference in New Issue
Block a user