add openrouter deepseek free

Kujtim Hoxha created

Change summary

internal/llm/models/openrouter.go |  14 ++
opencode-schema.json              | 210 ++++++++++++++++----------------
2 files changed, 122 insertions(+), 102 deletions(-)

Detailed changes

internal/llm/models/openrouter.go 🔗

@@ -22,6 +22,7 @@ const (
 	OpenRouterClaude37Sonnet ModelID = "openrouter.claude-3.7-sonnet"
 	OpenRouterClaude35Haiku  ModelID = "openrouter.claude-3.5-haiku"
 	OpenRouterClaude3Opus    ModelID = "openrouter.claude-3-opus"
+	OpenRouterDeepSeekR1Free ModelID = "openrouter.deepseek-r1-free"
 )
 
 var OpenRouterModels = map[ModelID]Model{
@@ -259,4 +260,17 @@ var OpenRouterModels = map[ModelID]Model{
 		ContextWindow:      AnthropicModels[Claude3Opus].ContextWindow,
 		DefaultMaxTokens:   AnthropicModels[Claude3Opus].DefaultMaxTokens,
 	},
+
+	OpenRouterDeepSeekR1Free: {
+		ID:                 OpenRouterDeepSeekR1Free,
+		Name:               "OpenRouter – DeepSeek R1 Free",
+		Provider:           ProviderOpenRouter,
+		APIModel:           "deepseek/deepseek-r1-0528:free",
+		CostPer1MIn:        0,
+		CostPer1MInCached:  0,
+		CostPer1MOut:       0,
+		CostPer1MOutCached: 0,
+		ContextWindow:      163_840,
+		DefaultMaxTokens:   10000,
+	},
 }

opencode-schema.json 🔗

@@ -12,69 +12,72 @@
         "model": {
           "description": "Model ID for the agent",
           "enum": [
-            "grok-3-fast-beta",
-            "claude-3-opus",
-            "gemini-2.5",
-            "openrouter.claude-3-haiku",
-            "grok-3-beta",
             "gpt-4.1",
-            "azure.gpt-4o-mini",
+            "llama-3.3-70b-versatile",
+            "azure.gpt-4.1",
             "openrouter.gpt-4o",
-            "openrouter.o4-mini",
-            "openrouter.o1-pro",
-            "gpt-4.1-nano",
-            "azure.gpt-4.5-preview",
-            "openrouter.gpt-4o-mini",
-            "claude-3.5-sonnet",
-            "claude-3-haiku",
-            "qwen-qwq",
-            "openrouter.claude-3.7-sonnet",
-            "gemini-2.5-flash",
-            "azure.o4-mini",
-            "openrouter.gpt-4.1-mini",
+            "openrouter.o1-mini",
+            "openrouter.claude-3-haiku",
+            "claude-3-opus",
             "gpt-4o",
-            "openrouter.gemini-2.5",
-            "gpt-4.1-mini",
-            "azure.gpt-4.1",
-            "azure.o1-mini",
-            "o1-pro",
-            "claude-3.7-sonnet",
-            "o3",
-            "gpt-4.5-preview",
+            "gpt-4o-mini",
+            "o1",
+            "meta-llama/llama-4-maverick-17b-128e-instruct",
             "azure.o3-mini",
-            "grok-3-mini-beta",
-            "openrouter.o1-mini",
-            "meta-llama/llama-4-scout-17b-16e-instruct",
+            "openrouter.gpt-4o-mini",
+            "openrouter.o1",
+            "claude-3.5-haiku",
+            "o4-mini",
+            "azure.gpt-4.1-mini",
+            "openrouter.o3",
+            "grok-3-beta",
+            "o3-mini",
+            "qwen-qwq",
             "azure.o1",
             "openrouter.gemini-2.5-flash",
-            "openrouter.claude-3-opus",
+            "openrouter.gemini-2.5",
             "o1-mini",
-            "gemini-2.0-flash",
-            "openrouter.gpt-4.1",
-            "openrouter.claude-3.5-haiku",
-            "deepseek-r1-distill-llama-70b",
-            "claude-3.5-haiku",
-            "o3-mini",
-            "llama-3.3-70b-versatile",
-            "azure.gpt-4.1-nano",
-            "openrouter.gpt-4.5-preview",
-            "gemini-2.0-flash-lite",
             "azure.gpt-4o",
+            "openrouter.gpt-4.1-mini",
+            "openrouter.claude-3.5-sonnet",
             "openrouter.o3-mini",
-            "openrouter.o1",
-            "openrouter.gpt-4.1-nano",
+            "gpt-4.1-mini",
+            "gpt-4.5-preview",
+            "gpt-4.1-nano",
+            "deepseek-r1-distill-llama-70b",
+            "azure.gpt-4o-mini",
+            "openrouter.gpt-4.1",
+            "bedrock.claude-3.7-sonnet",
+            "claude-3-haiku",
+            "o3",
+            "gemini-2.0-flash-lite",
+            "azure.o3",
+            "azure.gpt-4.5-preview",
+            "openrouter.claude-3-opus",
             "grok-3-mini-fast-beta",
+            "claude-4-sonnet",
+            "azure.o4-mini",
+            "grok-3-fast-beta",
+            "claude-3.5-sonnet",
+            "azure.o1-mini",
+            "openrouter.claude-3.7-sonnet",
+            "openrouter.gpt-4.5-preview",
+            "grok-3-mini-beta",
+            "claude-3.7-sonnet",
+            "gemini-2.0-flash",
+            "openrouter.deepseek-r1-free",
             "vertexai.gemini-2.5-flash",
-            "o4-mini",
-            "azure.o3",
-            "azure.gpt-4.1-mini",
-            "openrouter.o3",
-            "gpt-4o-mini",
-            "o1",
             "vertexai.gemini-2.5",
-            "bedrock.claude-3.7-sonnet",
-            "meta-llama/llama-4-maverick-17b-128e-instruct",
-            "openrouter.claude-3.5-sonnet"
+            "o1-pro",
+            "gemini-2.5",
+            "meta-llama/llama-4-scout-17b-16e-instruct",
+            "azure.gpt-4.1-nano",
+            "openrouter.gpt-4.1-nano",
+            "gemini-2.5-flash",
+            "openrouter.o4-mini",
+            "openrouter.claude-3.5-haiku",
+            "claude-4-opus",
+            "openrouter.o1-pro"
           ],
           "type": "string"
         },
@@ -108,69 +111,72 @@
           "model": {
             "description": "Model ID for the agent",
             "enum": [
-              "grok-3-fast-beta",
-              "claude-3-opus",
-              "gemini-2.5",
-              "openrouter.claude-3-haiku",
-              "grok-3-beta",
               "gpt-4.1",
-              "azure.gpt-4o-mini",
+              "llama-3.3-70b-versatile",
+              "azure.gpt-4.1",
               "openrouter.gpt-4o",
-              "openrouter.o4-mini",
-              "openrouter.o1-pro",
-              "gpt-4.1-nano",
-              "azure.gpt-4.5-preview",
-              "openrouter.gpt-4o-mini",
-              "claude-3.5-sonnet",
-              "claude-3-haiku",
-              "qwen-qwq",
-              "openrouter.claude-3.7-sonnet",
-              "gemini-2.5-flash",
-              "azure.o4-mini",
-              "openrouter.gpt-4.1-mini",
+              "openrouter.o1-mini",
+              "openrouter.claude-3-haiku",
+              "claude-3-opus",
               "gpt-4o",
-              "openrouter.gemini-2.5",
-              "gpt-4.1-mini",
-              "azure.gpt-4.1",
-              "azure.o1-mini",
-              "o1-pro",
-              "claude-3.7-sonnet",
-              "o3",
-              "gpt-4.5-preview",
+              "gpt-4o-mini",
+              "o1",
+              "meta-llama/llama-4-maverick-17b-128e-instruct",
               "azure.o3-mini",
-              "grok-3-mini-beta",
-              "openrouter.o1-mini",
-              "meta-llama/llama-4-scout-17b-16e-instruct",
+              "openrouter.gpt-4o-mini",
+              "openrouter.o1",
+              "claude-3.5-haiku",
+              "o4-mini",
+              "azure.gpt-4.1-mini",
+              "openrouter.o3",
+              "grok-3-beta",
+              "o3-mini",
+              "qwen-qwq",
               "azure.o1",
               "openrouter.gemini-2.5-flash",
-              "openrouter.claude-3-opus",
+              "openrouter.gemini-2.5",
               "o1-mini",
-              "gemini-2.0-flash",
-              "openrouter.gpt-4.1",
-              "openrouter.claude-3.5-haiku",
-              "deepseek-r1-distill-llama-70b",
-              "claude-3.5-haiku",
-              "o3-mini",
-              "llama-3.3-70b-versatile",
-              "azure.gpt-4.1-nano",
-              "openrouter.gpt-4.5-preview",
-              "gemini-2.0-flash-lite",
               "azure.gpt-4o",
+              "openrouter.gpt-4.1-mini",
+              "openrouter.claude-3.5-sonnet",
               "openrouter.o3-mini",
-              "openrouter.o1",
-              "openrouter.gpt-4.1-nano",
+              "gpt-4.1-mini",
+              "gpt-4.5-preview",
+              "gpt-4.1-nano",
+              "deepseek-r1-distill-llama-70b",
+              "azure.gpt-4o-mini",
+              "openrouter.gpt-4.1",
+              "bedrock.claude-3.7-sonnet",
+              "claude-3-haiku",
+              "o3",
+              "gemini-2.0-flash-lite",
+              "azure.o3",
+              "azure.gpt-4.5-preview",
+              "openrouter.claude-3-opus",
               "grok-3-mini-fast-beta",
+              "claude-4-sonnet",
+              "azure.o4-mini",
+              "grok-3-fast-beta",
+              "claude-3.5-sonnet",
+              "azure.o1-mini",
+              "openrouter.claude-3.7-sonnet",
+              "openrouter.gpt-4.5-preview",
+              "grok-3-mini-beta",
+              "claude-3.7-sonnet",
+              "gemini-2.0-flash",
+              "openrouter.deepseek-r1-free",
               "vertexai.gemini-2.5-flash",
-              "o4-mini",
-              "azure.o3",
-              "azure.gpt-4.1-mini",
-              "openrouter.o3",
-              "gpt-4o-mini",
-              "o1",
               "vertexai.gemini-2.5",
-              "bedrock.claude-3.7-sonnet",
-              "meta-llama/llama-4-maverick-17b-128e-instruct",
-              "openrouter.claude-3.5-sonnet"
+              "o1-pro",
+              "gemini-2.5",
+              "meta-llama/llama-4-scout-17b-16e-instruct",
+              "azure.gpt-4.1-nano",
+              "openrouter.gpt-4.1-nano",
+              "gemini-2.5-flash",
+              "openrouter.o4-mini",
+              "openrouter.claude-3.5-haiku",
+              "claude-4-opus",
+              "openrouter.o1-pro"
             ],
             "type": "string"
           },