codetether_agent/agent/builtin/definitions.rs
1//! Built-in agent catalog entries.
2//!
3//! This module defines the static metadata for the built-in `build`, `plan`,
4//! and `explore` agents.
5//!
6//! # Examples
7//!
8//! ```ignore
9//! let info = build_agent();
10//! assert_eq!(info.name, "build");
11//! ```
12
13use crate::agent::{AgentInfo, AgentMode};
14
15/// Returns the default full-access build agent profile.
16///
17/// # Examples
18///
19/// ```ignore
20/// let info = build_agent();
21/// assert_eq!(info.mode, AgentMode::Primary);
22/// ```
23pub fn build_agent() -> AgentInfo {
24 AgentInfo {
25 name: "build".to_string(),
26 description: Some("Full access agent for development work".to_string()),
27 mode: AgentMode::Primary,
28 native: true,
29 hidden: false,
30 model: None,
31 temperature: None,
32 top_p: None,
33 max_steps: Some(100),
34 }
35}
36
37/// Returns the read-only planning agent profile.
38///
39/// # Examples
40///
41/// ```ignore
42/// let info = plan_agent();
43/// assert_eq!(info.name, "plan");
44/// ```
45pub fn plan_agent() -> AgentInfo {
46 AgentInfo {
47 name: "plan".to_string(),
48 description: Some("Read-only agent for analysis and code exploration".to_string()),
49 mode: AgentMode::Primary,
50 native: true,
51 hidden: false,
52 model: None,
53 temperature: None,
54 top_p: None,
55 max_steps: Some(50),
56 }
57}
58
59/// Returns the lightweight explore agent profile.
60///
61/// # Examples
62///
63/// ```ignore
64/// let info = explore_agent();
65/// assert_eq!(info.mode, AgentMode::Subagent);
66/// ```
67pub fn explore_agent() -> AgentInfo {
68 AgentInfo {
69 name: "explore".to_string(),
70 description: Some("Fast agent for exploring codebases".to_string()),
71 mode: AgentMode::Subagent,
72 native: true,
73 hidden: false,
74 model: None,
75 temperature: None,
76 top_p: None,
77 max_steps: Some(20),
78 }
79}