atomr_agents_coding_cli_harness/
spec.rs1use std::path::PathBuf;
2use std::time::Duration;
3
4use serde::{Deserialize, Serialize};
5
6#[derive(Debug, Clone, Serialize, Deserialize)]
8pub struct CodingCliHarnessSpec {
9 #[serde(default)]
11 pub default_model: Option<String>,
12 #[serde(default = "default_wall_clock")]
14 pub default_wall_clock: Duration,
15 #[serde(default = "default_max_runs")]
18 pub max_concurrent_runs: usize,
19 #[serde(default = "default_max_sessions")]
21 pub max_concurrent_sessions: usize,
22 #[serde(default = "default_channel_cap")]
24 pub event_channel_capacity: usize,
25 #[serde(default)]
27 pub state_dir: Option<PathBuf>,
28}
29
30impl Default for CodingCliHarnessSpec {
31 fn default() -> Self {
32 Self {
33 default_model: None,
34 default_wall_clock: default_wall_clock(),
35 max_concurrent_runs: default_max_runs(),
36 max_concurrent_sessions: default_max_sessions(),
37 event_channel_capacity: default_channel_cap(),
38 state_dir: None,
39 }
40 }
41}
42
43fn default_wall_clock() -> Duration {
44 Duration::from_secs(30 * 60)
45}
46fn default_max_runs() -> usize {
47 8
48}
49fn default_max_sessions() -> usize {
50 16
51}
52fn default_channel_cap() -> usize {
53 512
54}