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}