use agy_bridge::{
AgyBridge, PolicyRule,
config::{AgentConfig, BuiltinTools, CapabilitiesConfig},
policies::confirm_run_command,
};
#[tokio::main]
async fn main() -> Result<(), agy_bridge::error::Error> {
agy_bridge::load_dotenv();
let bridge = AgyBridge::builder().build()?;
let cwd = std::env::current_dir().expect("failed to get current directory");
let config = AgentConfig::builder()
.capabilities(CapabilitiesConfig::with_tools(vec![
BuiltinTools::RunCommand,
BuiltinTools::Finish,
]))
.workspaces(&[cwd])
.policies([confirm_run_command(), PolicyRule::DenyAll])
.build();
let agent = bridge.agent(config).await?;
let prompt = "List the files in the current directory using a shell command.";
println!("User: {prompt}");
let text = agent.chat(prompt).await?.text().await?;
println!("Agent: {text}");
agent.shutdown().await?;
Ok(())
}