1pub mod claude_code;
4pub mod codex;
5pub mod kilo;
6pub mod opencode;
7pub mod runtime;
8
9pub const SUPPORTED_ADAPTERS: [&str; 4] = ["opencode", "codex", "claude-code", "kilo"];
11
12#[derive(Debug, Clone, Copy, PartialEq, Eq)]
14pub struct RuntimeDescriptor {
15 pub adapter_name: &'static str,
16 pub default_binary: &'static str,
17 pub opencode_compatible: bool,
18}
19
20#[must_use]
22pub fn runtime_descriptors() -> [RuntimeDescriptor; 4] {
23 [
24 RuntimeDescriptor {
25 adapter_name: "opencode",
26 default_binary: "opencode",
27 opencode_compatible: true,
28 },
29 RuntimeDescriptor {
30 adapter_name: "codex",
31 default_binary: "codex",
32 opencode_compatible: false,
33 },
34 RuntimeDescriptor {
35 adapter_name: "claude-code",
36 default_binary: "claude",
37 opencode_compatible: false,
38 },
39 RuntimeDescriptor {
40 adapter_name: "kilo",
41 default_binary: "kilo",
42 opencode_compatible: true,
43 },
44 ]
45}