1mod chain;
8mod cli;
9pub mod detect;
10mod env;
11mod prompt;
12mod slots;
13
14pub use agent_call::Provider;
15pub use chain::AgentChain;
16pub use cli::{CliBackend, CliBackendConfig};
17pub use env::EnvScrub;
18pub use prompt::inline_system_prompt;
19pub use slots::{MachineSlots, Slot};
20
21pub fn parse_provider(name: &str) -> Option<Provider> {
23 match name {
24 "claude" => Some(Provider::Claude),
25 "codex" => Some(Provider::Codex),
26 "opencode" => Some(Provider::OpenCodeV2),
27 "devin" => Some(Provider::Devin),
28 _ => None,
29 }
30}
31
32pub fn provider_name(provider: Provider) -> &'static str {
34 match provider {
35 Provider::Claude => "claude",
36 Provider::Codex => "codex",
37 Provider::OpenCodeV2 => "opencode",
38 Provider::Devin => "devin",
39 }
40}
41
42pub const PROVIDERS: [Provider; 4] = [
44 Provider::Claude,
45 Provider::Codex,
46 Provider::OpenCodeV2,
47 Provider::Devin,
48];