Skip to main content

orch/engine/runner/agents/
kimi.rs

1//! Kimi agent runner — extends the Claude-compatible runner.
2//!
3//! Kimi uses the `claude` CLI via a shell wrapper that sets
4//! `ANTHROPIC_BASE_URL` to the Kimi API. Like MiniMax, the underlying
5//! model may not emit `"type":"result"` events consistently.
6//!
7//! This runner delegates to `MiniMaxRunner` for stream parsing since
8//! both use the same claude CLI wrapper pattern and share the same
9//! output format differences from native Claude.
10
11use super::minimax::MiniMaxClaudeRunner;
12use super::{
13    delegate_agent_runner, AgentError, AgentRunner, ParsedResponse, PermissionRules, StreamEvent,
14};
15
16/// Runner for Kimi-via-Claude agents (same output handling as MiniMaxClaude).
17/// Named `KimiClaudeRunner` to distinguish from a future native Kimi CLI runner.
18pub struct KimiClaudeRunner {
19    inner: MiniMaxClaudeRunner,
20}
21
22impl KimiClaudeRunner {
23    pub fn new() -> Self {
24        Self {
25            inner: MiniMaxClaudeRunner::new("kimi"),
26        }
27    }
28}
29
30delegate_agent_runner!(KimiClaudeRunner, inner);
31
32#[cfg(test)]
33mod tests {
34    use super::*;
35
36    #[test]
37    fn kimi_name() {
38        let runner = KimiClaudeRunner::new();
39        assert_eq!(runner.name(), "kimi");
40    }
41}