summaryrefslogtreecommitdiff
path: root/makima/src/llm/mod.rs
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2025-12-23 18:24:42 +0000
committersoryu <soryu@soryu.co>2025-12-23 18:24:42 +0000
commit3c0adec8e3a9dd3bc34251e87e0fb5314793426d (patch)
tree9dfe61e55bd703aa09df03abfcbf8e7a8b2babce /makima/src/llm/mod.rs
parent555061b179b8ec034cb70f9a2dd6c823ced0f637 (diff)
downloadsoryu-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.rs25
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,
+ }
+ }
+}