Skip to main content

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}