1use app::{agents, tools};
9use clap::{Parser, Subcommand};
10
11#[derive(Debug, Parser)]
12#[command(name = "pet-resort")]
13#[command(about = "Pet resort agent-foundation design CLI")]
14struct Cli {
15 #[command(subcommand)]
16 command: Command,
17}
18
19#[derive(Debug, Subcommand)]
20enum Command {
21 Agents,
23 Tools,
25}
26
27fn main() -> anyhow::Result<()> {
28 let cli = Cli::parse();
29 match cli.command {
30 Command::Agents => println!(
31 "{}",
32 serde_json::to_string_pretty(&agents::baseline_agent_specs())?
33 ),
34 Command::Tools => {
35 let tools = vec![
36 tools::ExternalToolCandidate::GingrPortal,
37 tools::ExternalToolCandidate::PaymentProvider,
38 tools::ExternalToolCandidate::SmsProvider,
39 tools::ExternalToolCandidate::EmailProvider,
40 tools::ExternalToolCandidate::FileStorage,
41 tools::ExternalToolCandidate::OcrOrDocumentAi,
42 tools::ExternalToolCandidate::CameraOrWebcamProvider,
43 tools::ExternalToolCandidate::HermesKanban,
44 tools::ExternalToolCandidate::HermesCronOrWebhook,
45 tools::ExternalToolCandidate::Postgres,
46 ];
47 println!("{}", serde_json::to_string_pretty(&tools)?);
48 }
49 }
50 Ok(())
51}