- Simplified token type assignment in OAuth service. - Removed unused session_lock module and re-exported Session from zesdex_entities. - Cleaned up session entity by removing unnecessary comments and code. - Consolidated session handling in HTTP handlers for better readability. - Improved formatting and readability in OAuth repository tests. - Enhanced session lock repository with clearer match statements. - Streamlined session repository error handling. - Refined RNG tests for better clarity. - Adjusted module visibility and organization in lib.rs. - Updated IPC client and connection code for better error handling and clarity. - Improved frame handling in IPC for better readability. - Organized module imports and added test utilities for IPC. - Enhanced database connection error handling. - Simplified JWT token creation error handling. - Improved password verification error handling. - Cleaned up state management code for better readability. - Refactored middleware for session authentication and rate limiting. - Simplified clipboard utility for better error handling. - Enhanced logging initialization for better error reporting. - Improved pagination utility with clearer method annotations. - Cleaned up sanitization functions for filenames and paths. - Enhanced slug generation functions for better clarity and usability.
84 lines
3.3 KiB
Rust
84 lines
3.3 KiB
Rust
#![allow(dead_code)]
|
|
//! Hardcoded built-in subagent definitions (coder, reviewer, researcher, planner).
|
|
use crate::app::subagent::spawn::AgentDefinition;
|
|
|
|
/// Build the fixed list of built-in agent definitions shipped with zesdex.
|
|
///
|
|
/// Flow: construct each `AgentDefinition` with a name, system prompt, and
|
|
/// allowed tool list, then collect into a `Vec`.
|
|
///
|
|
/// Why: these agents are always available regardless of global/session
|
|
/// config, giving users a baseline set of roles out of the box.
|
|
///
|
|
/// Return: a freshly-built `Vec<AgentDefinition>` (coder, reviewer,
|
|
/// researcher, planner).
|
|
pub fn builtin_agents() -> Vec<AgentDefinition> {
|
|
vec![
|
|
AgentDefinition::new("coder".to_string(), "coder".to_string())
|
|
.with_system_prompt(
|
|
"You are a coding agent. Write correct, idiomatic Rust code.".to_string(),
|
|
)
|
|
.with_allowed_tools(vec![
|
|
"read".to_string(),
|
|
"write".to_string(),
|
|
"edit".to_string(),
|
|
"bash".to_string(),
|
|
"grep".to_string(),
|
|
"glob".to_string(),
|
|
"git_operator".to_string(),
|
|
"lsp_connect".to_string(),
|
|
"lsp_diagnostics".to_string(),
|
|
"lsp_hover".to_string(),
|
|
"lsp_definition".to_string(),
|
|
"lsp_references".to_string(),
|
|
"lsp_completion".to_string(),
|
|
"lsp_disconnect".to_string(),
|
|
])
|
|
.with_max_steps(usize::MAX),
|
|
AgentDefinition::new("reviewer".to_string(), "reviewer".to_string())
|
|
.with_system_prompt(
|
|
"You are a code reviewer. Focus on correctness, safety, and performance."
|
|
.to_string(),
|
|
)
|
|
.with_allowed_tools(vec![
|
|
"read".to_string(),
|
|
"grep".to_string(),
|
|
"glob".to_string(),
|
|
"recall".to_string(),
|
|
"remember".to_string(),
|
|
"lsp_diagnostics".to_string(),
|
|
"lsp_hover".to_string(),
|
|
"lsp_definition".to_string(),
|
|
"lsp_references".to_string(),
|
|
])
|
|
.with_max_steps(usize::MAX),
|
|
AgentDefinition::new("researcher".to_string(), "researcher".to_string())
|
|
.with_system_prompt(
|
|
"You are a research agent. Search for information and summarize findings."
|
|
.to_string(),
|
|
)
|
|
.with_allowed_tools(vec![
|
|
"read".to_string(),
|
|
"grep".to_string(),
|
|
"glob".to_string(),
|
|
"bash".to_string(),
|
|
"search_web".to_string(),
|
|
"fetch_url".to_string(),
|
|
])
|
|
.with_max_steps(usize::MAX),
|
|
AgentDefinition::new("planner".to_string(), "planner".to_string())
|
|
.with_system_prompt(
|
|
"You are a planning agent. Break down tasks into clear steps.".to_string(),
|
|
)
|
|
.with_allowed_tools(vec![
|
|
"read".to_string(),
|
|
"write".to_string(),
|
|
"edit".to_string(),
|
|
"bash".to_string(),
|
|
"todo_write".to_string(),
|
|
"todo_finish".to_string(),
|
|
])
|
|
.with_max_steps(usize::MAX),
|
|
]
|
|
}
|