synaps 0.1.4

Terminal-native AI agent runtime — parallel orchestration, reactive subagents, MCP, autonomous supervision
Documentation
use synaps_cli::{Runtime, Result};

fn load_agent_prompt(name: &str) -> std::result::Result<String, String> {
    synaps_cli::tools::resolve_agent_prompt(name)
}

pub async fn run(prompt: String, agent: Option<String>, system: Option<String>) -> Result<()> {
    let _log_guard = synaps_cli::logging::init_logging();
    let mut runtime = Runtime::new().await?;

    if let Some(ref agent_name) = agent {
        match load_agent_prompt(agent_name) {
            Ok(p) => {
                eprintln!("🎭 Agent: {}", agent_name);
                runtime.set_system_prompt(p);
            }
            Err(e) => {
                eprintln!("{}", e);
                std::process::exit(1);
            }
        }
    } else if let Some(ref val) = system {
        let prompt = synaps_cli::config::resolve_system_prompt(Some(val));
        eprintln!("📋 System prompt loaded");
        runtime.set_system_prompt(prompt);
    }

    println!("🤖 Calling {}...", runtime.model());
    let response = runtime.run_single(&prompt).await?;
    println!("{}", response);
    Ok(())
}