Finalize OpenAI Codex compatibility (#737)

- align Codex Responses provider with Pi static instructions
- simplify Codex request/stream handling and cleanup exports
- keep legacy OpenCode Codex prompt for testing until Pi prompt is allowlisted
This commit is contained in:
Mario Zechner 2026-01-16 00:58:36 +01:00 committed by GitHub
parent 3ed0d1bde7
commit 6484ae279d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
17 changed files with 613 additions and 1779 deletions

View file

@ -1723,24 +1723,6 @@ export const MODELS = {
contextWindow: 128000,
maxTokens: 64000,
} satisfies Model<"openai-completions">,
"oswe-vscode-prime": {
id: "oswe-vscode-prime",
name: "Raptor Mini (Preview)",
api: "openai-responses",
provider: "github-copilot",
baseUrl: "https://api.individual.githubcopilot.com",
headers: {"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"},
reasoning: true,
input: ["text", "image"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 200000,
maxTokens: 64000,
} satisfies Model<"openai-responses">,
},
"google": {
"gemini-1.5-flash": {
@ -4434,23 +4416,6 @@ export const MODELS = {
contextWindow: 131072,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"allenai/olmo-3-7b-instruct": {
id: "allenai/olmo-3-7b-instruct",
name: "AllenAI: Olmo 3 7B Instruct",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: false,
input: ["text"],
cost: {
input: 0.09999999999999999,
output: 0.19999999999999998,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 65536,
maxTokens: 65536,
} satisfies Model<"openai-completions">,
"allenai/olmo-3.1-32b-instruct": {
id: "allenai/olmo-3.1-32b-instruct",
name: "AllenAI: Olmo 3.1 32B Instruct",
@ -5005,12 +4970,12 @@ export const MODELS = {
input: ["text"],
cost: {
input: 0.7,
output: 2.4,
output: 2.5,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 163840,
maxTokens: 163840,
contextWindow: 64000,
maxTokens: 16000,
} satisfies Model<"openai-completions">,
"deepseek/deepseek-r1-0528": {
id: "deepseek/deepseek-r1-0528",
@ -5210,12 +5175,29 @@ export const MODELS = {
cost: {
input: 0.09999999999999999,
output: 0.39999999999999997,
cacheRead: 0,
cacheWrite: 0,
cacheRead: 0.01,
cacheWrite: 1,
},
contextWindow: 1048576,
maxTokens: 65536,
} satisfies Model<"openai-completions">,
"google/gemini-2.5-flash-preview-09-2025": {
id: "google/gemini-2.5-flash-preview-09-2025",
name: "Google: Gemini 2.5 Flash Preview 09-2025",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: true,
input: ["text", "image"],
cost: {
input: 0.3,
output: 2.5,
cacheRead: 0.075,
cacheWrite: 0.3833,
},
contextWindow: 1048576,
maxTokens: 65535,
} satisfies Model<"openai-completions">,
"google/gemini-2.5-pro": {
id: "google/gemini-2.5-pro",
name: "Google: Gemini 2.5 Pro",
@ -5386,23 +5368,6 @@ export const MODELS = {
contextWindow: 256000,
maxTokens: 128000,
} satisfies Model<"openai-completions">,
"meta-llama/llama-3-70b-instruct": {
id: "meta-llama/llama-3-70b-instruct",
name: "Meta: Llama 3 70B Instruct",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: false,
input: ["text"],
cost: {
input: 0.3,
output: 0.39999999999999997,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 8192,
maxTokens: 16384,
} satisfies Model<"openai-completions">,
"meta-llama/llama-3-8b-instruct": {
id: "meta-llama/llama-3-8b-instruct",
name: "Meta: Llama 3 8B Instruct",
@ -5667,12 +5632,12 @@ export const MODELS = {
reasoning: false,
input: ["text"],
cost: {
input: 0.07,
output: 0.28,
input: 0.09999999999999999,
output: 0.3,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 128000,
contextWindow: 131072,
maxTokens: 4096,
} satisfies Model<"openai-completions">,
"mistralai/ministral-14b-2512": {
@ -5760,40 +5725,6 @@ export const MODELS = {
contextWindow: 262144,
maxTokens: 4096,
} satisfies Model<"openai-completions">,
"mistralai/mistral-7b-instruct": {
id: "mistralai/mistral-7b-instruct",
name: "Mistral: Mistral 7B Instruct",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: false,
input: ["text"],
cost: {
input: 0.028,
output: 0.054,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 32768,
maxTokens: 16384,
} satisfies Model<"openai-completions">,
"mistralai/mistral-7b-instruct:free": {
id: "mistralai/mistral-7b-instruct:free",
name: "Mistral: Mistral 7B Instruct (free)",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: false,
input: ["text"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 32768,
maxTokens: 16384,
} satisfies Model<"openai-completions">,
"mistralai/mistral-large": {
id: "mistralai/mistral-large",
name: "Mistral Large",
@ -5911,7 +5842,7 @@ export const MODELS = {
cacheWrite: 0,
},
contextWindow: 131072,
maxTokens: 16384,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"mistralai/mistral-saba": {
id: "mistralai/mistral-saba",
@ -7290,108 +7221,6 @@ export const MODELS = {
contextWindow: 32768,
maxTokens: 4096,
} satisfies Model<"openai-completions">,
"qwen/qwen-max": {
id: "qwen/qwen-max",
name: "Qwen: Qwen-Max ",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: false,
input: ["text"],
cost: {
input: 1.5999999999999999,
output: 6.3999999999999995,
cacheRead: 0.64,
cacheWrite: 0,
},
contextWindow: 32768,
maxTokens: 8192,
} satisfies Model<"openai-completions">,
"qwen/qwen-plus": {
id: "qwen/qwen-plus",
name: "Qwen: Qwen-Plus",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: false,
input: ["text"],
cost: {
input: 0.39999999999999997,
output: 1.2,
cacheRead: 0.16,
cacheWrite: 0,
},
contextWindow: 131072,
maxTokens: 8192,
} satisfies Model<"openai-completions">,
"qwen/qwen-plus-2025-07-28": {
id: "qwen/qwen-plus-2025-07-28",
name: "Qwen: Qwen Plus 0728",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: false,
input: ["text"],
cost: {
input: 0.39999999999999997,
output: 1.2,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 1000000,
maxTokens: 32768,
} satisfies Model<"openai-completions">,
"qwen/qwen-plus-2025-07-28:thinking": {
id: "qwen/qwen-plus-2025-07-28:thinking",
name: "Qwen: Qwen Plus 0728 (thinking)",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: true,
input: ["text"],
cost: {
input: 0.39999999999999997,
output: 4,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 1000000,
maxTokens: 32768,
} satisfies Model<"openai-completions">,
"qwen/qwen-turbo": {
id: "qwen/qwen-turbo",
name: "Qwen: Qwen-Turbo",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: false,
input: ["text"],
cost: {
input: 0.049999999999999996,
output: 0.19999999999999998,
cacheRead: 0.02,
cacheWrite: 0,
},
contextWindow: 1000000,
maxTokens: 8192,
} satisfies Model<"openai-completions">,
"qwen/qwen-vl-max": {
id: "qwen/qwen-vl-max",
name: "Qwen: Qwen VL Max",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: false,
input: ["text", "image"],
cost: {
input: 0.7999999999999999,
output: 3.1999999999999997,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 131072,
maxTokens: 8192,
} satisfies Model<"openai-completions">,
"qwen/qwen3-14b": {
id: "qwen/qwen3-14b",
name: "Qwen: Qwen3 14B",
@ -7418,13 +7247,13 @@ export const MODELS = {
reasoning: true,
input: ["text"],
cost: {
input: 0.18,
output: 0.54,
input: 0.19999999999999998,
output: 0.6,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 40960,
maxTokens: 40960,
maxTokens: 4096,
} satisfies Model<"openai-completions">,
"qwen/qwen3-235b-a22b-2507": {
id: "qwen/qwen3-235b-a22b-2507",
@ -7596,40 +7425,6 @@ export const MODELS = {
contextWindow: 160000,
maxTokens: 32768,
} satisfies Model<"openai-completions">,
"qwen/qwen3-coder-flash": {
id: "qwen/qwen3-coder-flash",
name: "Qwen: Qwen3 Coder Flash",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: false,
input: ["text"],
cost: {
input: 0.3,
output: 1.5,
cacheRead: 0.08,
cacheWrite: 0,
},
contextWindow: 128000,
maxTokens: 65536,
} satisfies Model<"openai-completions">,
"qwen/qwen3-coder-plus": {
id: "qwen/qwen3-coder-plus",
name: "Qwen: Qwen3 Coder Plus",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: false,
input: ["text"],
cost: {
input: 1,
output: 5,
cacheRead: 0.09999999999999999,
cacheWrite: 0,
},
contextWindow: 128000,
maxTokens: 65536,
} satisfies Model<"openai-completions">,
"qwen/qwen3-coder:exacto": {
id: "qwen/qwen3-coder:exacto",
name: "Qwen: Qwen3 Coder 480B A35B (exacto)",
@ -7664,23 +7459,6 @@ export const MODELS = {
contextWindow: 262000,
maxTokens: 262000,
} satisfies Model<"openai-completions">,
"qwen/qwen3-max": {
id: "qwen/qwen3-max",
name: "Qwen: Qwen3 Max",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: false,
input: ["text"],
cost: {
input: 1.2,
output: 6,
cacheRead: 0.24,
cacheWrite: 0,
},
contextWindow: 256000,
maxTokens: 32768,
} satisfies Model<"openai-completions">,
"qwen/qwen3-next-80b-a3b-instruct": {
id: "qwen/qwen3-next-80b-a3b-instruct",
name: "Qwen: Qwen3 Next 80B A3B Instruct",
@ -7698,6 +7476,23 @@ export const MODELS = {
contextWindow: 262144,
maxTokens: 4096,
} satisfies Model<"openai-completions">,
"qwen/qwen3-next-80b-a3b-instruct:free": {
id: "qwen/qwen3-next-80b-a3b-instruct:free",
name: "Qwen: Qwen3 Next 80B A3B Instruct (free)",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: false,
input: ["text"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 4096,
} satisfies Model<"openai-completions">,
"qwen/qwen3-next-80b-a3b-thinking": {
id: "qwen/qwen3-next-80b-a3b-thinking",
name: "Qwen: Qwen3 Next 80B A3B Thinking",
@ -7800,23 +7595,6 @@ export const MODELS = {
contextWindow: 131072,
maxTokens: 32768,
} satisfies Model<"openai-completions">,
"qwen/qwen3-vl-8b-thinking": {
id: "qwen/qwen3-vl-8b-thinking",
name: "Qwen: Qwen3 VL 8B Thinking",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: true,
input: ["text", "image"],
cost: {
input: 0.18,
output: 2.0999999999999996,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 256000,
maxTokens: 32768,
} satisfies Model<"openai-completions">,
"qwen/qwq-32b": {
id: "qwen/qwq-32b",
name: "Qwen: QwQ 32B",