feat(provider): add GPT-6 Astra (#170)
- commit
- 73d68646d333a27a1695993a1dedd0efc055bdc1
- author
- bnema · · 2026-09-03 16:13 UTC
- committer
- GitHub · · 2026-09-03 16:13 UTC
- parent
- b482fc2
- signature
- GPG Unverified
B5690EEEBB952194The key is unknown - refs
- tag: v0.29.0
2 files · +14 -1
M packages/provider/models.go +11 -0
| @@ -355,6 +355,12 @@ var Catalog = []Model{ | |||
| 355 | 355 | PriceInput: 2.5, PriceOutput: 15, PriceCacheRead: 0.25, PriceCacheWrite: 3.125, | |
| 356 | 356 | Speculative: true, | |
| 357 | 357 | }, | |
| 358 | + | { | |
| 359 | + | Provider: "openai", ID: "gpt-6-astra", DisplayName: "GPT-6 Astra", API: APIResponses, | |
| 360 | + | ContextWindow: openAIContextWindowTarget, MaxOutput: 128000, Reasoning: true, | |
| 361 | + | PriceInput: 5, PriceOutput: 30, PriceCacheRead: 0.5, PriceCacheWrite: 6.25, | |
| 362 | + | Speculative: true, | |
| 363 | + | }, | |
| 358 | 364 | // ---- OpenAI Codex / ChatGPT subscription backend ---- | |
| 359 | 365 | // Same model ids as the OpenAI family, but routed through the | |
| 360 | 366 | // ChatGPT Codex OAuth backend rather than api.openai.com. | |
| @@ -397,6 +403,11 @@ var Catalog = []Model{ | |||
| 397 | 403 | ContextWindow: openAIContextWindowTarget, MaxOutput: 128000, Reasoning: true, | |
| 398 | 404 | PriceInput: 2.5, PriceOutput: 15, PriceCacheRead: 0.25, PriceCacheWrite: 3.125, | |
| 399 | 405 | }, | |
| 406 | + | { | |
| 407 | + | Provider: "openai-codex", ID: "gpt-6-astra", DisplayName: "GPT-6 Astra", | |
| 408 | + | ContextWindow: openAIContextWindowTarget, MaxOutput: 128000, Reasoning: true, | |
| 409 | + | PriceInput: 5, PriceOutput: 30, PriceCacheRead: 0.5, PriceCacheWrite: 6.25, | |
| 410 | + | }, | |
| 400 | 411 | } | |
| 401 | 412 | ||
| 402 | 413 | // DefaultModel is used when the user does not specify one. | |
| @@ -355,6 +355,12 @@ var Catalog = []Model{ | |||||
| 355 | PriceInput: 2.5, PriceOutput: 15, PriceCacheRead: 0.25, PriceCacheWrite: 3.125, | 355 | PriceInput: 2.5, PriceOutput: 15, PriceCacheRead: 0.25, PriceCacheWrite: 3.125, | ||
| 356 | Speculative: true, | 356 | Speculative: true, | ||
| 357 | }, | 357 | }, | ||
| 358 | + | { | |||
| 359 | + | Provider: "openai", ID: "gpt-6-astra", DisplayName: "GPT-6 Astra", API: APIResponses, | |||
| 360 | + | ContextWindow: openAIContextWindowTarget, MaxOutput: 128000, Reasoning: true, | |||
| 361 | + | PriceInput: 5, PriceOutput: 30, PriceCacheRead: 0.5, PriceCacheWrite: 6.25, | |||
| 362 | + | Speculative: true, | |||
| 363 | + | }, | |||
| 358 | // ---- OpenAI Codex / ChatGPT subscription backend ---- | 364 | // ---- OpenAI Codex / ChatGPT subscription backend ---- | ||
| 359 | // Same model ids as the OpenAI family, but routed through the | 365 | // Same model ids as the OpenAI family, but routed through the | ||
| 360 | // ChatGPT Codex OAuth backend rather than api.openai.com. | 366 | // ChatGPT Codex OAuth backend rather than api.openai.com. | ||
| @@ -397,6 +403,11 @@ var Catalog = []Model{ | |||||
| 397 | ContextWindow: openAIContextWindowTarget, MaxOutput: 128000, Reasoning: true, | 403 | ContextWindow: openAIContextWindowTarget, MaxOutput: 128000, Reasoning: true, | ||
| 398 | PriceInput: 2.5, PriceOutput: 15, PriceCacheRead: 0.25, PriceCacheWrite: 3.125, | 404 | PriceInput: 2.5, PriceOutput: 15, PriceCacheRead: 0.25, PriceCacheWrite: 3.125, | ||
| 399 | }, | 405 | }, | ||
| 406 | + | { | |||
| 407 | + | Provider: "openai-codex", ID: "gpt-6-astra", DisplayName: "GPT-6 Astra", | |||
| 408 | + | ContextWindow: openAIContextWindowTarget, MaxOutput: 128000, Reasoning: true, | |||
| 409 | + | PriceInput: 5, PriceOutput: 30, PriceCacheRead: 0.5, PriceCacheWrite: 6.25, | |||
| 410 | + | }, | |||
| 400 | } | 411 | } | ||
| 401 | 412 | ||||
| 402 | // DefaultModel is used when the user does not specify one. | 413 | // DefaultModel is used when the user does not specify one. | ||
M packages/provider/provider_test.go +3 -1
| @@ -645,7 +645,7 @@ func TestDiscoverOpenRouter(t *testing.T) { | |||
| 645 | 645 | } | |
| 646 | 646 | } | |
| 647 | 647 | ||
| 648 | - | func TestGPT56CatalogEntries(t *testing.T) { | |
| 648 | + | func TestGPT56AndGPT6CatalogEntries(t *testing.T) { | |
| 649 | 649 | cases := []struct { | |
| 650 | 650 | provider string | |
| 651 | 651 | id string | |
| @@ -658,9 +658,11 @@ func TestGPT56CatalogEntries(t *testing.T) { | |||
| 658 | 658 | {"openai", "gpt-5.6-luna", 500000, 1, 6, 0.1, 1.25}, | |
| 659 | 659 | {"openai", "gpt-5.6-sol", 500000, 5, 30, 0.5, 6.25}, | |
| 660 | 660 | {"openai", "gpt-5.6-terra", 500000, 2.5, 15, 0.25, 3.125}, | |
| 661 | + | {"openai", "gpt-6-astra", 500000, 5, 30, 0.5, 6.25}, | |
| 661 | 662 | {"openai-codex", "gpt-5.6-luna", 500000, 1, 6, 0.1, 1.25}, | |
| 662 | 663 | {"openai-codex", "gpt-5.6-sol", 500000, 5, 30, 0.5, 6.25}, | |
| 663 | 664 | {"openai-codex", "gpt-5.6-terra", 500000, 2.5, 15, 0.25, 3.125}, | |
| 665 | + | {"openai-codex", "gpt-6-astra", 500000, 5, 30, 0.5, 6.25}, | |
| 664 | 666 | {"azure-openai-responses", "gpt-5.6-luna", 1050000, 1, 6, 0.1, 1.25}, | |
| 665 | 667 | {"azure-openai-responses", "gpt-5.6-sol", 1050000, 5, 30, 0.5, 6.25}, | |
| 666 | 668 | {"azure-openai-responses", "gpt-5.6-terra", 1050000, 2.5, 15, 0.25, 3.125}, | |
| @@ -645,7 +645,7 @@ func TestDiscoverOpenRouter(t *testing.T) { | |||||
| 645 | } | 645 | } | ||
| 646 | } | 646 | } | ||
| 647 | 647 | ||||
| 648 | - | func TestGPT56CatalogEntries(t *testing.T) { | 648 | + | func TestGPT56AndGPT6CatalogEntries(t *testing.T) { |
| 649 | cases := []struct { | 649 | cases := []struct { | ||
| 650 | provider string | 650 | provider string | ||
| 651 | id string | 651 | id string | ||
| @@ -658,9 +658,11 @@ func TestGPT56CatalogEntries(t *testing.T) { | |||||
| 658 | {"openai", "gpt-5.6-luna", 500000, 1, 6, 0.1, 1.25}, | 658 | {"openai", "gpt-5.6-luna", 500000, 1, 6, 0.1, 1.25}, | ||
| 659 | {"openai", "gpt-5.6-sol", 500000, 5, 30, 0.5, 6.25}, | 659 | {"openai", "gpt-5.6-sol", 500000, 5, 30, 0.5, 6.25}, | ||
| 660 | {"openai", "gpt-5.6-terra", 500000, 2.5, 15, 0.25, 3.125}, | 660 | {"openai", "gpt-5.6-terra", 500000, 2.5, 15, 0.25, 3.125}, | ||
| 661 | + | {"openai", "gpt-6-astra", 500000, 5, 30, 0.5, 6.25}, | |||
| 661 | {"openai-codex", "gpt-5.6-luna", 500000, 1, 6, 0.1, 1.25}, | 662 | {"openai-codex", "gpt-5.6-luna", 500000, 1, 6, 0.1, 1.25}, | ||
| 662 | {"openai-codex", "gpt-5.6-sol", 500000, 5, 30, 0.5, 6.25}, | 663 | {"openai-codex", "gpt-5.6-sol", 500000, 5, 30, 0.5, 6.25}, | ||
| 663 | {"openai-codex", "gpt-5.6-terra", 500000, 2.5, 15, 0.25, 3.125}, | 664 | {"openai-codex", "gpt-5.6-terra", 500000, 2.5, 15, 0.25, 3.125}, | ||
| 665 | + | {"openai-codex", "gpt-6-astra", 500000, 5, 30, 0.5, 6.25}, | |||
| 664 | {"azure-openai-responses", "gpt-5.6-luna", 1050000, 1, 6, 0.1, 1.25}, | 666 | {"azure-openai-responses", "gpt-5.6-luna", 1050000, 1, 6, 0.1, 1.25}, | ||
| 665 | {"azure-openai-responses", "gpt-5.6-sol", 1050000, 5, 30, 0.5, 6.25}, | 667 | {"azure-openai-responses", "gpt-5.6-sol", 1050000, 5, 30, 0.5, 6.25}, | ||
| 666 | {"azure-openai-responses", "gpt-5.6-terra", 1050000, 2.5, 15, 0.25, 3.125}, | 668 | {"azure-openai-responses", "gpt-5.6-terra", 1050000, 2.5, 15, 0.25, 3.125}, | ||