diff options
| author | soryu <soryu@soryu.co> | 2025-12-23 18:24:42 +0000 |
|---|---|---|
| committer | soryu <soryu@soryu.co> | 2025-12-23 18:24:42 +0000 |
| commit | 3c0adec8e3a9dd3bc34251e87e0fb5314793426d (patch) | |
| tree | 9dfe61e55bd703aa09df03abfcbf8e7a8b2babce /makima/src/llm/mod.rs | |
| parent | 555061b179b8ec034cb70f9a2dd6c823ced0f637 (diff) | |
| download | soryu-3c0adec8e3a9dd3bc34251e87e0fb5314793426d.tar.gz soryu-3c0adec8e3a9dd3bc34251e87e0fb5314793426d.zip | |
Add claude opus/sonnet support
Diffstat (limited to 'makima/src/llm/mod.rs')
| -rw-r--r-- | makima/src/llm/mod.rs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/makima/src/llm/mod.rs b/makima/src/llm/mod.rs index 00f3333..7de8afe 100644 --- a/makima/src/llm/mod.rs +++ b/makima/src/llm/mod.rs @@ -1,7 +1,32 @@ //! LLM integration module for file editing via tool calling. +pub mod claude; pub mod groq; pub mod tools; +pub use claude::{ClaudeClient, ClaudeModel}; pub use groq::GroqClient; pub use tools::{execute_tool_call, Tool, ToolCall, ToolResult, AVAILABLE_TOOLS}; + +/// Available LLM providers and models +#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)] +pub enum LlmModel { + /// Claude Sonnet 4.5 - balanced speed and capability + ClaudeSonnet, + /// Claude Opus 4.5 (default) - most capable + #[default] + ClaudeOpus, + /// Groq Kimi - fast alternative provider + GroqKimi, +} + +impl LlmModel { + pub fn from_str(s: &str) -> Option<Self> { + match s.to_lowercase().as_str() { + "claude-sonnet" | "sonnet" | "claude" => Some(LlmModel::ClaudeSonnet), + "claude-opus" | "opus" => Some(LlmModel::ClaudeOpus), + "groq" | "kimi" | "groq-kimi" => Some(LlmModel::GroqKimi), + _ => None, + } + } +} |
