feat: add Claude and OpenRouter AI providers
OpenRouter is used when no provider flag is set. Claude is selected with .cl, and GLM stays available via .glm.
This commit is contained in:
@@ -46,6 +46,8 @@ class ConfigAiTests(unittest.TestCase):
|
||||
{
|
||||
"glm": {"api_key": "glm-key", "model": "glm-model"},
|
||||
"deepseek": {"api_key": "ds-key", "model": "ds-model"},
|
||||
"claude": {"api_key": "claude-key", "model": "claude-haiku-5-5"},
|
||||
"openrouter": {"api_key": "or-key", "model": "anthropic/claude-haiku-5.5"},
|
||||
"web_page_timeout_seconds": 20,
|
||||
"web_page_max_chars": 12345,
|
||||
}
|
||||
@@ -55,6 +57,12 @@ class ConfigAiTests(unittest.TestCase):
|
||||
self.assertEqual(config.glm.model, "glm-model")
|
||||
self.assertEqual(config.deepseek.api_key, "ds-key")
|
||||
self.assertEqual(config.deepseek.model, "ds-model")
|
||||
self.assertEqual(config.claude.api_url, "https://api.anthropic.com")
|
||||
self.assertEqual(config.claude.api_key, "claude-key")
|
||||
self.assertEqual(config.claude.model, "claude-haiku-5-5")
|
||||
self.assertEqual(config.openrouter.api_url, "https://openrouter.ai/api/v1")
|
||||
self.assertEqual(config.openrouter.api_key, "or-key")
|
||||
self.assertEqual(config.openrouter.model, "anthropic/claude-haiku-5.5")
|
||||
self.assertEqual(config.web_page_timeout_seconds, 20)
|
||||
self.assertEqual(config.web_page_max_chars, 12345)
|
||||
|
||||
@@ -64,6 +72,10 @@ class ConfigAiTests(unittest.TestCase):
|
||||
"GLM_MODEL": "env-glm-model",
|
||||
"DEEPSEEK_API_KEY": "env-ds",
|
||||
"DEEPSEEK_MODEL": "env-ds-model",
|
||||
"CLAUDE_API_KEY": "env-claude",
|
||||
"CLAUDE_MODEL": "claude-haiku-5-5",
|
||||
"OPENROUTER_API_KEY": "env-or",
|
||||
"OPENROUTER_MODEL": "anthropic/claude-haiku-5.5",
|
||||
"AI_WEB_PAGE_TIMEOUT_SECONDS": "30",
|
||||
"AI_WEB_PAGE_MAX_CHARS": "54321",
|
||||
"AI_PROMPT_DIR": "alternate-prompts",
|
||||
@@ -75,6 +87,12 @@ class ConfigAiTests(unittest.TestCase):
|
||||
self.assertEqual(config.glm.model, "env-glm-model")
|
||||
self.assertEqual(config.deepseek.api_key, "env-ds")
|
||||
self.assertEqual(config.deepseek.model, "env-ds-model")
|
||||
self.assertEqual(config.claude.api_key, "env-claude")
|
||||
self.assertEqual(config.claude.model, "claude-haiku-5-5")
|
||||
self.assertEqual(config.claude.api_url, "https://api.anthropic.com")
|
||||
self.assertEqual(config.openrouter.api_key, "env-or")
|
||||
self.assertEqual(config.openrouter.model, "anthropic/claude-haiku-5.5")
|
||||
self.assertEqual(config.openrouter.api_url, "https://openrouter.ai/api/v1")
|
||||
self.assertEqual(config.web_page_timeout_seconds, 30)
|
||||
self.assertEqual(config.web_page_max_chars, 54321)
|
||||
self.assertEqual(config.prompt_dir, Path("alternate-prompts"))
|
||||
|
||||
Reference in New Issue
Block a user