Expand description
Adaptive mode system for Miyabi - inspired by Roo-Code
This crate provides a flexible mode system that allows users to define
custom AI agent behaviors through YAML configuration files, similar to
Roo-Code’s .roomodes system.
§Architecture
- MiyabiMode: Core mode definition with role, tools, and instructions
- ModeLoader: Loads modes from
.miyabi/modes/directory - ModeRegistry: Thread-safe registry for managing modes
- ModeValidator: Validates mode definitions
§Example Usage
use miyabi_modes::{ModeLoader, ModeRegistry};
use std::path::Path;
let loader = ModeLoader::new(Path::new("."));
let registry = ModeRegistry::new();
// Load all modes
let modes = loader.load_all()?;
registry.register_all(modes)?;
// Get a specific mode
if let Some(mode) = registry.get("codegen") {
println!("Found mode: {} ({})", mode.name, mode.character);
}Re-exports§
pub use error::ModeError;pub use error::ModeResult;pub use loader::ModeLoader;pub use mode::MiyabiMode;pub use mode::ToolGroup;pub use registry::ModeRegistry;pub use template::TemplateRenderer;pub use tool_config::ToolConfig;pub use tool_config::ToolConfigSet;pub use validator::ModeValidator;