feat(provider): add vercel to all gateway-supported fallback entries
Adds vercel to every fallback entry where the model exists on the gateway (kimi-k2.5, glm-5, glm-4.6v, minimax-m2.7, grok-code-fast-1, gpt-5-nano). Adds inferSubProvider mappings for minimax, moonshotai, and zai. Updates librarian/explore special cases to prefer minimax via gateway over claude-haiku.
This commit is contained in:
@@ -4144,22 +4144,53 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin
|
|||||||
"agents": {
|
"agents": {
|
||||||
"atlas": {
|
"atlas": {
|
||||||
"fallback_models": [
|
"fallback_models": [
|
||||||
|
{
|
||||||
|
"model": "vercel/moonshotai/kimi-k2.5",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"model": "vercel/openai/gpt-5.4",
|
"model": "vercel/openai/gpt-5.4",
|
||||||
"variant": "medium",
|
"variant": "medium",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/minimax/minimax-m2.7",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
"model": "vercel/anthropic/claude-sonnet-4.6",
|
"model": "vercel/anthropic/claude-sonnet-4.6",
|
||||||
},
|
},
|
||||||
"explore": {
|
"explore": {
|
||||||
"model": "vercel/anthropic/claude-haiku-4.5",
|
"fallback_models": [
|
||||||
|
{
|
||||||
|
"model": "vercel/xai/grok-code-fast-1",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/minimax/minimax-m2.7",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/anthropic/claude-haiku-4.5",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/openai/gpt-5-nano",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
"model": "vercel/minimax/minimax-m2.7-highspeed",
|
||||||
},
|
},
|
||||||
"hephaestus": {
|
"hephaestus": {
|
||||||
"model": "vercel/openai/gpt-5.4",
|
"model": "vercel/openai/gpt-5.4",
|
||||||
"variant": "medium",
|
"variant": "medium",
|
||||||
},
|
},
|
||||||
"librarian": {
|
"librarian": {
|
||||||
"model": "vercel/anthropic/claude-haiku-4.5",
|
"fallback_models": [
|
||||||
|
{
|
||||||
|
"model": "vercel/minimax/minimax-m2.7-highspeed",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/anthropic/claude-haiku-4.5",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/openai/gpt-5-nano",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
"model": "vercel/minimax/minimax-m2.7",
|
||||||
},
|
},
|
||||||
"metis": {
|
"metis": {
|
||||||
"fallback_models": [
|
"fallback_models": [
|
||||||
@@ -4167,6 +4198,9 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin
|
|||||||
"model": "vercel/openai/gpt-5.4",
|
"model": "vercel/openai/gpt-5.4",
|
||||||
"variant": "high",
|
"variant": "high",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/zai/glm-5",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
"model": "vercel/anthropic/claude-opus-4.6",
|
"model": "vercel/anthropic/claude-opus-4.6",
|
||||||
"variant": "max",
|
"variant": "max",
|
||||||
@@ -4181,12 +4215,21 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin
|
|||||||
"model": "vercel/google/gemini-3.1-pro-preview",
|
"model": "vercel/google/gemini-3.1-pro-preview",
|
||||||
"variant": "high",
|
"variant": "high",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/zai/glm-5",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
"model": "vercel/openai/gpt-5.4",
|
"model": "vercel/openai/gpt-5.4",
|
||||||
"variant": "xhigh",
|
"variant": "xhigh",
|
||||||
},
|
},
|
||||||
"multimodal-looker": {
|
"multimodal-looker": {
|
||||||
"fallback_models": [
|
"fallback_models": [
|
||||||
|
{
|
||||||
|
"model": "vercel/moonshotai/kimi-k2.5",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/zai/glm-4.6v",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"model": "vercel/openai/gpt-5-nano",
|
"model": "vercel/openai/gpt-5-nano",
|
||||||
},
|
},
|
||||||
@@ -4204,6 +4247,9 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin
|
|||||||
"model": "vercel/anthropic/claude-opus-4.6",
|
"model": "vercel/anthropic/claude-opus-4.6",
|
||||||
"variant": "max",
|
"variant": "max",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/zai/glm-5",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
"model": "vercel/openai/gpt-5.4",
|
"model": "vercel/openai/gpt-5.4",
|
||||||
"variant": "high",
|
"variant": "high",
|
||||||
@@ -4214,6 +4260,9 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin
|
|||||||
"model": "vercel/openai/gpt-5.4",
|
"model": "vercel/openai/gpt-5.4",
|
||||||
"variant": "high",
|
"variant": "high",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/zai/glm-5",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"model": "vercel/google/gemini-3.1-pro-preview",
|
"model": "vercel/google/gemini-3.1-pro-preview",
|
||||||
},
|
},
|
||||||
@@ -4223,20 +4272,32 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin
|
|||||||
},
|
},
|
||||||
"sisyphus": {
|
"sisyphus": {
|
||||||
"fallback_models": [
|
"fallback_models": [
|
||||||
|
{
|
||||||
|
"model": "vercel/moonshotai/kimi-k2.5",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"model": "vercel/openai/gpt-5.4",
|
"model": "vercel/openai/gpt-5.4",
|
||||||
"variant": "medium",
|
"variant": "medium",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/zai/glm-5",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
"model": "vercel/anthropic/claude-opus-4.6",
|
"model": "vercel/anthropic/claude-opus-4.6",
|
||||||
"variant": "max",
|
"variant": "max",
|
||||||
},
|
},
|
||||||
"sisyphus-junior": {
|
"sisyphus-junior": {
|
||||||
"fallback_models": [
|
"fallback_models": [
|
||||||
|
{
|
||||||
|
"model": "vercel/moonshotai/kimi-k2.5",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"model": "vercel/openai/gpt-5.4",
|
"model": "vercel/openai/gpt-5.4",
|
||||||
"variant": "medium",
|
"variant": "medium",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/minimax/minimax-m2.7",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
"model": "vercel/anthropic/claude-sonnet-4.6",
|
"model": "vercel/anthropic/claude-sonnet-4.6",
|
||||||
},
|
},
|
||||||
@@ -4277,6 +4338,12 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin
|
|||||||
{
|
{
|
||||||
"model": "vercel/google/gemini-3-flash",
|
"model": "vercel/google/gemini-3-flash",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/minimax/minimax-m2.7",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/openai/gpt-5-nano",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
"model": "vercel/openai/gpt-5.4-mini",
|
"model": "vercel/openai/gpt-5.4-mini",
|
||||||
},
|
},
|
||||||
@@ -4290,6 +4357,9 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin
|
|||||||
"model": "vercel/anthropic/claude-opus-4.6",
|
"model": "vercel/anthropic/claude-opus-4.6",
|
||||||
"variant": "max",
|
"variant": "max",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/zai/glm-5",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
"model": "vercel/openai/gpt-5.4",
|
"model": "vercel/openai/gpt-5.4",
|
||||||
"variant": "xhigh",
|
"variant": "xhigh",
|
||||||
@@ -4300,9 +4370,15 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin
|
|||||||
"model": "vercel/openai/gpt-5.3-codex",
|
"model": "vercel/openai/gpt-5.3-codex",
|
||||||
"variant": "medium",
|
"variant": "medium",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/moonshotai/kimi-k2.5",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"model": "vercel/google/gemini-3-flash",
|
"model": "vercel/google/gemini-3-flash",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/minimax/minimax-m2.7",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
"model": "vercel/anthropic/claude-sonnet-4.6",
|
"model": "vercel/anthropic/claude-sonnet-4.6",
|
||||||
},
|
},
|
||||||
@@ -4312,14 +4388,23 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin
|
|||||||
"model": "vercel/openai/gpt-5.3-codex",
|
"model": "vercel/openai/gpt-5.3-codex",
|
||||||
"variant": "medium",
|
"variant": "medium",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/moonshotai/kimi-k2.5",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"model": "vercel/google/gemini-3-flash",
|
"model": "vercel/google/gemini-3-flash",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/minimax/minimax-m2.7",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
"model": "vercel/anthropic/claude-sonnet-4.6",
|
"model": "vercel/anthropic/claude-sonnet-4.6",
|
||||||
},
|
},
|
||||||
"visual-engineering": {
|
"visual-engineering": {
|
||||||
"fallback_models": [
|
"fallback_models": [
|
||||||
|
{
|
||||||
|
"model": "vercel/zai/glm-5",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"model": "vercel/anthropic/claude-opus-4.6",
|
"model": "vercel/anthropic/claude-opus-4.6",
|
||||||
"variant": "max",
|
"variant": "max",
|
||||||
@@ -4330,9 +4415,15 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin
|
|||||||
},
|
},
|
||||||
"writing": {
|
"writing": {
|
||||||
"fallback_models": [
|
"fallback_models": [
|
||||||
|
{
|
||||||
|
"model": "vercel/moonshotai/kimi-k2.5",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"model": "vercel/anthropic/claude-sonnet-4.6",
|
"model": "vercel/anthropic/claude-sonnet-4.6",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/minimax/minimax-m2.7",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
"model": "vercel/google/gemini-3-flash",
|
"model": "vercel/google/gemini-3-flash",
|
||||||
},
|
},
|
||||||
@@ -4346,22 +4437,53 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin
|
|||||||
"agents": {
|
"agents": {
|
||||||
"atlas": {
|
"atlas": {
|
||||||
"fallback_models": [
|
"fallback_models": [
|
||||||
|
{
|
||||||
|
"model": "vercel/moonshotai/kimi-k2.5",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"model": "vercel/openai/gpt-5.4",
|
"model": "vercel/openai/gpt-5.4",
|
||||||
"variant": "medium",
|
"variant": "medium",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/minimax/minimax-m2.7",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
"model": "vercel/anthropic/claude-sonnet-4.6",
|
"model": "vercel/anthropic/claude-sonnet-4.6",
|
||||||
},
|
},
|
||||||
"explore": {
|
"explore": {
|
||||||
"model": "vercel/anthropic/claude-haiku-4.5",
|
"fallback_models": [
|
||||||
|
{
|
||||||
|
"model": "vercel/xai/grok-code-fast-1",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/minimax/minimax-m2.7",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/anthropic/claude-haiku-4.5",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/openai/gpt-5-nano",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
"model": "vercel/minimax/minimax-m2.7-highspeed",
|
||||||
},
|
},
|
||||||
"hephaestus": {
|
"hephaestus": {
|
||||||
"model": "vercel/openai/gpt-5.4",
|
"model": "vercel/openai/gpt-5.4",
|
||||||
"variant": "medium",
|
"variant": "medium",
|
||||||
},
|
},
|
||||||
"librarian": {
|
"librarian": {
|
||||||
"model": "vercel/anthropic/claude-haiku-4.5",
|
"fallback_models": [
|
||||||
|
{
|
||||||
|
"model": "vercel/minimax/minimax-m2.7-highspeed",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/anthropic/claude-haiku-4.5",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/openai/gpt-5-nano",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
"model": "vercel/minimax/minimax-m2.7",
|
||||||
},
|
},
|
||||||
"metis": {
|
"metis": {
|
||||||
"fallback_models": [
|
"fallback_models": [
|
||||||
@@ -4369,6 +4491,9 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin
|
|||||||
"model": "vercel/openai/gpt-5.4",
|
"model": "vercel/openai/gpt-5.4",
|
||||||
"variant": "high",
|
"variant": "high",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/zai/glm-5",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
"model": "vercel/anthropic/claude-opus-4.6",
|
"model": "vercel/anthropic/claude-opus-4.6",
|
||||||
"variant": "max",
|
"variant": "max",
|
||||||
@@ -4383,12 +4508,21 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin
|
|||||||
"model": "vercel/google/gemini-3.1-pro-preview",
|
"model": "vercel/google/gemini-3.1-pro-preview",
|
||||||
"variant": "high",
|
"variant": "high",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/zai/glm-5",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
"model": "vercel/openai/gpt-5.4",
|
"model": "vercel/openai/gpt-5.4",
|
||||||
"variant": "xhigh",
|
"variant": "xhigh",
|
||||||
},
|
},
|
||||||
"multimodal-looker": {
|
"multimodal-looker": {
|
||||||
"fallback_models": [
|
"fallback_models": [
|
||||||
|
{
|
||||||
|
"model": "vercel/moonshotai/kimi-k2.5",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/zai/glm-4.6v",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"model": "vercel/openai/gpt-5-nano",
|
"model": "vercel/openai/gpt-5-nano",
|
||||||
},
|
},
|
||||||
@@ -4406,6 +4540,9 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin
|
|||||||
"model": "vercel/anthropic/claude-opus-4.6",
|
"model": "vercel/anthropic/claude-opus-4.6",
|
||||||
"variant": "max",
|
"variant": "max",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/zai/glm-5",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
"model": "vercel/openai/gpt-5.4",
|
"model": "vercel/openai/gpt-5.4",
|
||||||
"variant": "high",
|
"variant": "high",
|
||||||
@@ -4416,6 +4553,9 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin
|
|||||||
"model": "vercel/openai/gpt-5.4",
|
"model": "vercel/openai/gpt-5.4",
|
||||||
"variant": "high",
|
"variant": "high",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/zai/glm-5",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"model": "vercel/google/gemini-3.1-pro-preview",
|
"model": "vercel/google/gemini-3.1-pro-preview",
|
||||||
},
|
},
|
||||||
@@ -4425,20 +4565,32 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin
|
|||||||
},
|
},
|
||||||
"sisyphus": {
|
"sisyphus": {
|
||||||
"fallback_models": [
|
"fallback_models": [
|
||||||
|
{
|
||||||
|
"model": "vercel/moonshotai/kimi-k2.5",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"model": "vercel/openai/gpt-5.4",
|
"model": "vercel/openai/gpt-5.4",
|
||||||
"variant": "medium",
|
"variant": "medium",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/zai/glm-5",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
"model": "vercel/anthropic/claude-opus-4.6",
|
"model": "vercel/anthropic/claude-opus-4.6",
|
||||||
"variant": "max",
|
"variant": "max",
|
||||||
},
|
},
|
||||||
"sisyphus-junior": {
|
"sisyphus-junior": {
|
||||||
"fallback_models": [
|
"fallback_models": [
|
||||||
|
{
|
||||||
|
"model": "vercel/moonshotai/kimi-k2.5",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"model": "vercel/openai/gpt-5.4",
|
"model": "vercel/openai/gpt-5.4",
|
||||||
"variant": "medium",
|
"variant": "medium",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/minimax/minimax-m2.7",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
"model": "vercel/anthropic/claude-sonnet-4.6",
|
"model": "vercel/anthropic/claude-sonnet-4.6",
|
||||||
},
|
},
|
||||||
@@ -4479,6 +4631,12 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin
|
|||||||
{
|
{
|
||||||
"model": "vercel/google/gemini-3-flash",
|
"model": "vercel/google/gemini-3-flash",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/minimax/minimax-m2.7",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/openai/gpt-5-nano",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
"model": "vercel/openai/gpt-5.4-mini",
|
"model": "vercel/openai/gpt-5.4-mini",
|
||||||
},
|
},
|
||||||
@@ -4492,6 +4650,9 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin
|
|||||||
"model": "vercel/anthropic/claude-opus-4.6",
|
"model": "vercel/anthropic/claude-opus-4.6",
|
||||||
"variant": "max",
|
"variant": "max",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/zai/glm-5",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
"model": "vercel/openai/gpt-5.4",
|
"model": "vercel/openai/gpt-5.4",
|
||||||
"variant": "xhigh",
|
"variant": "xhigh",
|
||||||
@@ -4502,6 +4663,12 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin
|
|||||||
"model": "vercel/openai/gpt-5.4",
|
"model": "vercel/openai/gpt-5.4",
|
||||||
"variant": "high",
|
"variant": "high",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/zai/glm-5",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/moonshotai/kimi-k2.5",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
"model": "vercel/anthropic/claude-opus-4.6",
|
"model": "vercel/anthropic/claude-opus-4.6",
|
||||||
"variant": "max",
|
"variant": "max",
|
||||||
@@ -4512,14 +4679,23 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin
|
|||||||
"model": "vercel/openai/gpt-5.3-codex",
|
"model": "vercel/openai/gpt-5.3-codex",
|
||||||
"variant": "medium",
|
"variant": "medium",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/moonshotai/kimi-k2.5",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"model": "vercel/google/gemini-3-flash",
|
"model": "vercel/google/gemini-3-flash",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/minimax/minimax-m2.7",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
"model": "vercel/anthropic/claude-sonnet-4.6",
|
"model": "vercel/anthropic/claude-sonnet-4.6",
|
||||||
},
|
},
|
||||||
"visual-engineering": {
|
"visual-engineering": {
|
||||||
"fallback_models": [
|
"fallback_models": [
|
||||||
|
{
|
||||||
|
"model": "vercel/zai/glm-5",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"model": "vercel/anthropic/claude-opus-4.6",
|
"model": "vercel/anthropic/claude-opus-4.6",
|
||||||
"variant": "max",
|
"variant": "max",
|
||||||
@@ -4530,9 +4706,15 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin
|
|||||||
},
|
},
|
||||||
"writing": {
|
"writing": {
|
||||||
"fallback_models": [
|
"fallback_models": [
|
||||||
|
{
|
||||||
|
"model": "vercel/moonshotai/kimi-k2.5",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"model": "vercel/anthropic/claude-sonnet-4.6",
|
"model": "vercel/anthropic/claude-sonnet-4.6",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"model": "vercel/minimax/minimax-m2.7",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
"model": "vercel/google/gemini-3-flash",
|
"model": "vercel/google/gemini-3-flash",
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -631,26 +631,26 @@ describe("generateModelConfig", () => {
|
|||||||
expect(result).toMatchSnapshot()
|
expect(result).toMatchSnapshot()
|
||||||
})
|
})
|
||||||
|
|
||||||
test("explore uses vercel/anthropic/claude-haiku-4.5 when only gateway available", () => {
|
test("explore uses vercel/minimax/minimax-m2.7-highspeed when only gateway available", () => {
|
||||||
// #given only Vercel AI Gateway is available
|
// #given only Vercel AI Gateway is available
|
||||||
const config = createConfig({ hasVercelAiGateway: true })
|
const config = createConfig({ hasVercelAiGateway: true })
|
||||||
|
|
||||||
// #when generateModelConfig is called
|
// #when generateModelConfig is called
|
||||||
const result = generateModelConfig(config)
|
const result = generateModelConfig(config)
|
||||||
|
|
||||||
// #then explore should use gateway-routed claude-haiku
|
// #then explore should use gateway-routed minimax (preferred over claude-haiku)
|
||||||
expect(result.agents?.explore?.model).toBe("vercel/anthropic/claude-haiku-4.5")
|
expect(result.agents?.explore?.model).toBe("vercel/minimax/minimax-m2.7-highspeed")
|
||||||
})
|
})
|
||||||
|
|
||||||
test("librarian uses vercel/anthropic/claude-haiku-4.5 when only gateway available", () => {
|
test("librarian uses vercel/minimax/minimax-m2.7 when only gateway available", () => {
|
||||||
// #given only Vercel AI Gateway is available
|
// #given only Vercel AI Gateway is available
|
||||||
const config = createConfig({ hasVercelAiGateway: true })
|
const config = createConfig({ hasVercelAiGateway: true })
|
||||||
|
|
||||||
// #when generateModelConfig is called
|
// #when generateModelConfig is called
|
||||||
const result = generateModelConfig(config)
|
const result = generateModelConfig(config)
|
||||||
|
|
||||||
// #then librarian should use gateway-routed claude-haiku
|
// #then librarian should use gateway-routed minimax (preferred over claude-haiku)
|
||||||
expect(result.agents?.librarian?.model).toBe("vercel/anthropic/claude-haiku-4.5")
|
expect(result.agents?.librarian?.model).toBe("vercel/minimax/minimax-m2.7")
|
||||||
})
|
})
|
||||||
|
|
||||||
test("Hephaestus is created when only Vercel AI Gateway is available", () => {
|
test("Hephaestus is created when only Vercel AI Gateway is available", () => {
|
||||||
|
|||||||
@@ -129,10 +129,10 @@ export function generateModelConfig(config: InstallConfig): GeneratedOmoConfig {
|
|||||||
let agentConfig: AgentConfig | undefined
|
let agentConfig: AgentConfig | undefined
|
||||||
if (avail.opencodeGo) {
|
if (avail.opencodeGo) {
|
||||||
agentConfig = { model: "opencode-go/minimax-m2.7" }
|
agentConfig = { model: "opencode-go/minimax-m2.7" }
|
||||||
|
} else if (avail.vercelAiGateway) {
|
||||||
|
agentConfig = { model: "vercel/minimax/minimax-m2.7" }
|
||||||
} else if (avail.zai) {
|
} else if (avail.zai) {
|
||||||
agentConfig = { model: ZAI_MODEL }
|
agentConfig = { model: ZAI_MODEL }
|
||||||
} else if (avail.vercelAiGateway) {
|
|
||||||
agentConfig = { model: "vercel/anthropic/claude-haiku-4.5" }
|
|
||||||
}
|
}
|
||||||
if (agentConfig) {
|
if (agentConfig) {
|
||||||
agents[role] = attachAllFallbackModels(agentConfig, req.fallbackChain, avail)
|
agents[role] = attachAllFallbackModels(agentConfig, req.fallbackChain, avail)
|
||||||
@@ -149,7 +149,7 @@ export function generateModelConfig(config: InstallConfig): GeneratedOmoConfig {
|
|||||||
} else if (avail.opencodeGo) {
|
} else if (avail.opencodeGo) {
|
||||||
agentConfig = { model: "opencode-go/minimax-m2.7" }
|
agentConfig = { model: "opencode-go/minimax-m2.7" }
|
||||||
} else if (avail.vercelAiGateway) {
|
} else if (avail.vercelAiGateway) {
|
||||||
agentConfig = { model: "vercel/anthropic/claude-haiku-4.5" }
|
agentConfig = { model: "vercel/minimax/minimax-m2.7-highspeed" }
|
||||||
} else if (avail.copilot) {
|
} else if (avail.copilot) {
|
||||||
agentConfig = { model: "github-copilot/gpt-5-mini" }
|
agentConfig = { model: "github-copilot/gpt-5-mini" }
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -274,6 +274,33 @@ describe("transformModelForProvider", () => {
|
|||||||
expect(result).toBe("anthropic/claude-opus-4.6")
|
expect(result).toBe("anthropic/claude-opus-4.6")
|
||||||
})
|
})
|
||||||
|
|
||||||
|
test("prepends minimax/ for minimax models", () => {
|
||||||
|
// #given vercel provider and minimax-m2.7 model
|
||||||
|
// #when transformModelForProvider is called
|
||||||
|
const result = transformModelForProvider("vercel", "minimax-m2.7")
|
||||||
|
|
||||||
|
// #then should produce minimax/minimax-m2.7
|
||||||
|
expect(result).toBe("minimax/minimax-m2.7")
|
||||||
|
})
|
||||||
|
|
||||||
|
test("prepends moonshotai/ for kimi models", () => {
|
||||||
|
// #given vercel provider and kimi-k2.5 model
|
||||||
|
// #when transformModelForProvider is called
|
||||||
|
const result = transformModelForProvider("vercel", "kimi-k2.5")
|
||||||
|
|
||||||
|
// #then should produce moonshotai/kimi-k2.5
|
||||||
|
expect(result).toBe("moonshotai/kimi-k2.5")
|
||||||
|
})
|
||||||
|
|
||||||
|
test("prepends zai/ for glm models", () => {
|
||||||
|
// #given vercel provider and glm-5 model
|
||||||
|
// #when transformModelForProvider is called
|
||||||
|
const result = transformModelForProvider("vercel", "glm-5")
|
||||||
|
|
||||||
|
// #then should produce zai/glm-5
|
||||||
|
expect(result).toBe("zai/glm-5")
|
||||||
|
})
|
||||||
|
|
||||||
test("passes through unknown models without sub-provider prefix", () => {
|
test("passes through unknown models without sub-provider prefix", () => {
|
||||||
// #given vercel provider and an unknown model name
|
// #given vercel provider and an unknown model name
|
||||||
// #when transformModelForProvider is called
|
// #when transformModelForProvider is called
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ describe("AGENT_MODEL_REQUIREMENTS", () => {
|
|||||||
expect(primary.variant).toBe("max")
|
expect(primary.variant).toBe("max")
|
||||||
|
|
||||||
const second = sisyphus.fallbackChain[1]
|
const second = sisyphus.fallbackChain[1]
|
||||||
expect(second.providers).toEqual(["opencode-go"])
|
expect(second.providers).toEqual(["opencode-go", "vercel"])
|
||||||
expect(second.model).toBe("kimi-k2.5")
|
expect(second.model).toBe("kimi-k2.5")
|
||||||
|
|
||||||
const third = sisyphus.fallbackChain[2]
|
const third = sisyphus.fallbackChain[2]
|
||||||
@@ -137,7 +137,7 @@ describe("AGENT_MODEL_REQUIREMENTS", () => {
|
|||||||
expect(primary.variant).toBe("medium")
|
expect(primary.variant).toBe("medium")
|
||||||
|
|
||||||
const secondary = multimodalLooker.fallbackChain[1]
|
const secondary = multimodalLooker.fallbackChain[1]
|
||||||
expect(secondary.providers).toEqual(["opencode-go"])
|
expect(secondary.providers).toEqual(["opencode-go", "vercel"])
|
||||||
expect(secondary.model).toBe("kimi-k2.5")
|
expect(secondary.model).toBe("kimi-k2.5")
|
||||||
|
|
||||||
const tertiary = multimodalLooker.fallbackChain[2]
|
const tertiary = multimodalLooker.fallbackChain[2]
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ export const AGENT_MODEL_REQUIREMENTS: Record<string, ModelRequirement> = {
|
|||||||
model: "claude-opus-4-6",
|
model: "claude-opus-4-6",
|
||||||
variant: "max",
|
variant: "max",
|
||||||
},
|
},
|
||||||
{ providers: ["opencode-go"], model: "kimi-k2.5" },
|
{ providers: ["opencode-go", "vercel"], model: "kimi-k2.5" },
|
||||||
{ providers: ["kimi-for-coding"], model: "k2p5" },
|
{ providers: ["kimi-for-coding"], model: "k2p5" },
|
||||||
{
|
{
|
||||||
providers: [
|
providers: [
|
||||||
@@ -35,11 +35,12 @@ export const AGENT_MODEL_REQUIREMENTS: Record<string, ModelRequirement> = {
|
|||||||
"firmware",
|
"firmware",
|
||||||
"ollama-cloud",
|
"ollama-cloud",
|
||||||
"aihubmix",
|
"aihubmix",
|
||||||
|
"vercel",
|
||||||
],
|
],
|
||||||
model: "kimi-k2.5",
|
model: "kimi-k2.5",
|
||||||
},
|
},
|
||||||
{ providers: ["openai", "github-copilot", "opencode", "vercel"], model: "gpt-5.4", variant: "medium" },
|
{ providers: ["openai", "github-copilot", "opencode", "vercel"], model: "gpt-5.4", variant: "medium" },
|
||||||
{ providers: ["zai-coding-plan", "opencode"], model: "glm-5" },
|
{ providers: ["zai-coding-plan", "opencode", "vercel"], model: "glm-5" },
|
||||||
{ providers: ["opencode"], model: "big-pickle" },
|
{ providers: ["opencode"], model: "big-pickle" },
|
||||||
],
|
],
|
||||||
requiresAnyModel: true,
|
requiresAnyModel: true,
|
||||||
@@ -71,31 +72,31 @@ export const AGENT_MODEL_REQUIREMENTS: Record<string, ModelRequirement> = {
|
|||||||
model: "claude-opus-4-6",
|
model: "claude-opus-4-6",
|
||||||
variant: "max",
|
variant: "max",
|
||||||
},
|
},
|
||||||
{ providers: ["opencode-go"], model: "glm-5" },
|
{ providers: ["opencode-go", "vercel"], model: "glm-5" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
librarian: {
|
librarian: {
|
||||||
fallbackChain: [
|
fallbackChain: [
|
||||||
{ providers: ["opencode-go"], model: "minimax-m2.7" },
|
{ providers: ["opencode-go", "vercel"], model: "minimax-m2.7" },
|
||||||
{ providers: ["opencode"], model: "minimax-m2.7-highspeed" },
|
{ providers: ["opencode", "vercel"], model: "minimax-m2.7-highspeed" },
|
||||||
{ providers: ["anthropic", "opencode", "vercel"], model: "claude-haiku-4-5" },
|
{ providers: ["anthropic", "opencode", "vercel"], model: "claude-haiku-4-5" },
|
||||||
{ providers: ["opencode"], model: "gpt-5-nano" },
|
{ providers: ["opencode", "vercel"], model: "gpt-5-nano" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
explore: {
|
explore: {
|
||||||
fallbackChain: [
|
fallbackChain: [
|
||||||
{ providers: ["github-copilot", "xai"], model: "grok-code-fast-1" },
|
{ providers: ["github-copilot", "xai", "vercel"], model: "grok-code-fast-1" },
|
||||||
{ providers: ["opencode-go"], model: "minimax-m2.7-highspeed" },
|
{ providers: ["opencode-go", "vercel"], model: "minimax-m2.7-highspeed" },
|
||||||
{ providers: ["opencode"], model: "minimax-m2.7" },
|
{ providers: ["opencode", "vercel"], model: "minimax-m2.7" },
|
||||||
{ providers: ["anthropic", "opencode", "vercel"], model: "claude-haiku-4-5" },
|
{ providers: ["anthropic", "opencode", "vercel"], model: "claude-haiku-4-5" },
|
||||||
{ providers: ["opencode"], model: "gpt-5-nano" },
|
{ providers: ["opencode", "vercel"], model: "gpt-5-nano" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
"multimodal-looker": {
|
"multimodal-looker": {
|
||||||
fallbackChain: [
|
fallbackChain: [
|
||||||
{ providers: ["openai", "opencode", "vercel"], model: "gpt-5.4", variant: "medium" },
|
{ providers: ["openai", "opencode", "vercel"], model: "gpt-5.4", variant: "medium" },
|
||||||
{ providers: ["opencode-go"], model: "kimi-k2.5" },
|
{ providers: ["opencode-go", "vercel"], model: "kimi-k2.5" },
|
||||||
{ providers: ["zai-coding-plan"], model: "glm-4.6v" },
|
{ providers: ["zai-coding-plan", "vercel"], model: "glm-4.6v" },
|
||||||
{ providers: ["openai", "github-copilot", "opencode", "vercel"], model: "gpt-5-nano" },
|
{ providers: ["openai", "github-copilot", "opencode", "vercel"], model: "gpt-5-nano" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
@@ -111,7 +112,7 @@ export const AGENT_MODEL_REQUIREMENTS: Record<string, ModelRequirement> = {
|
|||||||
model: "gpt-5.4",
|
model: "gpt-5.4",
|
||||||
variant: "high",
|
variant: "high",
|
||||||
},
|
},
|
||||||
{ providers: ["opencode-go"], model: "glm-5" },
|
{ providers: ["opencode-go", "vercel"], model: "glm-5" },
|
||||||
{
|
{
|
||||||
providers: ["google", "github-copilot", "opencode", "vercel"],
|
providers: ["google", "github-copilot", "opencode", "vercel"],
|
||||||
model: "gemini-3.1-pro",
|
model: "gemini-3.1-pro",
|
||||||
@@ -130,7 +131,7 @@ export const AGENT_MODEL_REQUIREMENTS: Record<string, ModelRequirement> = {
|
|||||||
model: "gpt-5.4",
|
model: "gpt-5.4",
|
||||||
variant: "high",
|
variant: "high",
|
||||||
},
|
},
|
||||||
{ providers: ["opencode-go"], model: "glm-5" },
|
{ providers: ["opencode-go", "vercel"], model: "glm-5" },
|
||||||
{ providers: ["kimi-for-coding"], model: "k2p5" },
|
{ providers: ["kimi-for-coding"], model: "k2p5" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
@@ -151,31 +152,31 @@ export const AGENT_MODEL_REQUIREMENTS: Record<string, ModelRequirement> = {
|
|||||||
model: "gemini-3.1-pro",
|
model: "gemini-3.1-pro",
|
||||||
variant: "high",
|
variant: "high",
|
||||||
},
|
},
|
||||||
{ providers: ["opencode-go"], model: "glm-5" },
|
{ providers: ["opencode-go", "vercel"], model: "glm-5" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
atlas: {
|
atlas: {
|
||||||
fallbackChain: [
|
fallbackChain: [
|
||||||
{ providers: ["anthropic", "github-copilot", "opencode", "vercel"], model: "claude-sonnet-4-6" },
|
{ providers: ["anthropic", "github-copilot", "opencode", "vercel"], model: "claude-sonnet-4-6" },
|
||||||
{ providers: ["opencode-go"], model: "kimi-k2.5" },
|
{ providers: ["opencode-go", "vercel"], model: "kimi-k2.5" },
|
||||||
{
|
{
|
||||||
providers: ["openai", "github-copilot", "opencode", "vercel"],
|
providers: ["openai", "github-copilot", "opencode", "vercel"],
|
||||||
model: "gpt-5.4",
|
model: "gpt-5.4",
|
||||||
variant: "medium",
|
variant: "medium",
|
||||||
},
|
},
|
||||||
{ providers: ["opencode-go"], model: "minimax-m2.7" },
|
{ providers: ["opencode-go", "vercel"], model: "minimax-m2.7" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
"sisyphus-junior": {
|
"sisyphus-junior": {
|
||||||
fallbackChain: [
|
fallbackChain: [
|
||||||
{ providers: ["anthropic", "github-copilot", "opencode", "vercel"], model: "claude-sonnet-4-6" },
|
{ providers: ["anthropic", "github-copilot", "opencode", "vercel"], model: "claude-sonnet-4-6" },
|
||||||
{ providers: ["opencode-go"], model: "kimi-k2.5" },
|
{ providers: ["opencode-go", "vercel"], model: "kimi-k2.5" },
|
||||||
{
|
{
|
||||||
providers: ["openai", "github-copilot", "opencode", "vercel"],
|
providers: ["openai", "github-copilot", "opencode", "vercel"],
|
||||||
model: "gpt-5.4",
|
model: "gpt-5.4",
|
||||||
variant: "medium",
|
variant: "medium",
|
||||||
},
|
},
|
||||||
{ providers: ["opencode-go"], model: "minimax-m2.7" },
|
{ providers: ["opencode-go", "vercel"], model: "minimax-m2.7" },
|
||||||
{ providers: ["opencode"], model: "big-pickle" },
|
{ providers: ["opencode"], model: "big-pickle" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
@@ -189,13 +190,13 @@ export const CATEGORY_MODEL_REQUIREMENTS: Record<string, ModelRequirement> = {
|
|||||||
model: "gemini-3.1-pro",
|
model: "gemini-3.1-pro",
|
||||||
variant: "high",
|
variant: "high",
|
||||||
},
|
},
|
||||||
{ providers: ["zai-coding-plan", "opencode"], model: "glm-5" },
|
{ providers: ["zai-coding-plan", "opencode", "vercel"], model: "glm-5" },
|
||||||
{
|
{
|
||||||
providers: ["anthropic", "github-copilot", "opencode", "vercel"],
|
providers: ["anthropic", "github-copilot", "opencode", "vercel"],
|
||||||
model: "claude-opus-4-6",
|
model: "claude-opus-4-6",
|
||||||
variant: "max",
|
variant: "max",
|
||||||
},
|
},
|
||||||
{ providers: ["opencode-go"], model: "glm-5" },
|
{ providers: ["opencode-go", "vercel"], model: "glm-5" },
|
||||||
{ providers: ["kimi-for-coding"], model: "k2p5" },
|
{ providers: ["kimi-for-coding"], model: "k2p5" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
@@ -216,7 +217,7 @@ export const CATEGORY_MODEL_REQUIREMENTS: Record<string, ModelRequirement> = {
|
|||||||
model: "claude-opus-4-6",
|
model: "claude-opus-4-6",
|
||||||
variant: "max",
|
variant: "max",
|
||||||
},
|
},
|
||||||
{ providers: ["opencode-go"], model: "glm-5" },
|
{ providers: ["opencode-go", "vercel"], model: "glm-5" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
deep: {
|
deep: {
|
||||||
@@ -268,8 +269,8 @@ export const CATEGORY_MODEL_REQUIREMENTS: Record<string, ModelRequirement> = {
|
|||||||
providers: ["google", "github-copilot", "opencode", "vercel"],
|
providers: ["google", "github-copilot", "opencode", "vercel"],
|
||||||
model: "gemini-3-flash",
|
model: "gemini-3-flash",
|
||||||
},
|
},
|
||||||
{ providers: ["opencode-go"], model: "minimax-m2.7" },
|
{ providers: ["opencode-go", "vercel"], model: "minimax-m2.7" },
|
||||||
{ providers: ["opencode"], model: "gpt-5-nano" },
|
{ providers: ["opencode", "vercel"], model: "gpt-5-nano" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
"unspecified-low": {
|
"unspecified-low": {
|
||||||
@@ -283,12 +284,12 @@ export const CATEGORY_MODEL_REQUIREMENTS: Record<string, ModelRequirement> = {
|
|||||||
model: "gpt-5.3-codex",
|
model: "gpt-5.3-codex",
|
||||||
variant: "medium",
|
variant: "medium",
|
||||||
},
|
},
|
||||||
{ providers: ["opencode-go"], model: "kimi-k2.5" },
|
{ providers: ["opencode-go", "vercel"], model: "kimi-k2.5" },
|
||||||
{
|
{
|
||||||
providers: ["google", "github-copilot", "opencode", "vercel"],
|
providers: ["google", "github-copilot", "opencode", "vercel"],
|
||||||
model: "gemini-3-flash",
|
model: "gemini-3-flash",
|
||||||
},
|
},
|
||||||
{ providers: ["opencode-go"], model: "minimax-m2.7" },
|
{ providers: ["opencode-go", "vercel"], model: "minimax-m2.7" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
"unspecified-high": {
|
"unspecified-high": {
|
||||||
@@ -303,10 +304,10 @@ export const CATEGORY_MODEL_REQUIREMENTS: Record<string, ModelRequirement> = {
|
|||||||
model: "gpt-5.4",
|
model: "gpt-5.4",
|
||||||
variant: "high",
|
variant: "high",
|
||||||
},
|
},
|
||||||
{ providers: ["zai-coding-plan", "opencode"], model: "glm-5" },
|
{ providers: ["zai-coding-plan", "opencode", "vercel"], model: "glm-5" },
|
||||||
{ providers: ["kimi-for-coding"], model: "k2p5" },
|
{ providers: ["kimi-for-coding"], model: "k2p5" },
|
||||||
{ providers: ["opencode-go"], model: "glm-5" },
|
{ providers: ["opencode-go", "vercel"], model: "glm-5" },
|
||||||
{ providers: ["opencode"], model: "kimi-k2.5" },
|
{ providers: ["opencode", "vercel"], model: "kimi-k2.5" },
|
||||||
{
|
{
|
||||||
providers: [
|
providers: [
|
||||||
"opencode",
|
"opencode",
|
||||||
@@ -315,6 +316,7 @@ export const CATEGORY_MODEL_REQUIREMENTS: Record<string, ModelRequirement> = {
|
|||||||
"firmware",
|
"firmware",
|
||||||
"ollama-cloud",
|
"ollama-cloud",
|
||||||
"aihubmix",
|
"aihubmix",
|
||||||
|
"vercel",
|
||||||
],
|
],
|
||||||
model: "kimi-k2.5",
|
model: "kimi-k2.5",
|
||||||
},
|
},
|
||||||
@@ -326,12 +328,12 @@ export const CATEGORY_MODEL_REQUIREMENTS: Record<string, ModelRequirement> = {
|
|||||||
providers: ["google", "github-copilot", "opencode", "vercel"],
|
providers: ["google", "github-copilot", "opencode", "vercel"],
|
||||||
model: "gemini-3-flash",
|
model: "gemini-3-flash",
|
||||||
},
|
},
|
||||||
{ providers: ["opencode-go"], model: "kimi-k2.5" },
|
{ providers: ["opencode-go", "vercel"], model: "kimi-k2.5" },
|
||||||
{
|
{
|
||||||
providers: ["anthropic", "github-copilot", "opencode", "vercel"],
|
providers: ["anthropic", "github-copilot", "opencode", "vercel"],
|
||||||
model: "claude-sonnet-4-6",
|
model: "claude-sonnet-4-6",
|
||||||
},
|
},
|
||||||
{ providers: ["opencode-go"], model: "minimax-m2.7" },
|
{ providers: ["opencode-go", "vercel"], model: "minimax-m2.7" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -3,6 +3,9 @@ function inferSubProvider(model: string): string | undefined {
|
|||||||
if (model.startsWith("gpt-")) return "openai"
|
if (model.startsWith("gpt-")) return "openai"
|
||||||
if (model.startsWith("gemini-")) return "google"
|
if (model.startsWith("gemini-")) return "google"
|
||||||
if (model.startsWith("grok-")) return "xai"
|
if (model.startsWith("grok-")) return "xai"
|
||||||
|
if (model.startsWith("minimax-")) return "minimax"
|
||||||
|
if (model.startsWith("kimi-")) return "moonshotai"
|
||||||
|
if (model.startsWith("glm-")) return "zai"
|
||||||
return undefined
|
return undefined
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user