Skip to main content

githubclaw/
constants.rs

1// Server
2pub const DEFAULT_MAX_CONCURRENT_AGENTS: usize = 8;
3pub const DEFAULT_MAX_CONCURRENT_ORCHESTRATORS: usize = 4;
4pub const DEFAULT_MAX_CONCURRENT_WORKERS: usize = 8;
5pub const GRACEFUL_DRAIN_TIMEOUT_SECONDS: f64 = 120.0;
6
7// Process manager
8pub const DEFAULT_PROCESS_TIMEOUT_SECONDS: u64 = 7200;
9pub const MONITOR_CHECK_INTERVAL_SECONDS: u64 = 2;
10pub const MONITOR_HISTORY_MINUTES: usize = 30;
11pub const SIGTERM_GRACE_PERIOD_SECONDS: f64 = 10.0;
12pub const GRACEFUL_DRAIN_POLL_SECONDS: f64 = 1.0;
13pub const DEFAULT_GRACEFUL_DRAIN_SECONDS: f64 = 300.0;
14
15// Scheduler
16pub const SCHEDULER_CHECK_INTERVAL_SECONDS: u64 = 60;
17pub const MAX_SCHEDULED_EVENT_RETRY_COUNT: u32 = 5;
18pub const MAX_RESCHEDULE_ITERATIONS: u32 = 1000;
19
20// Orchestrator session
21pub const DEFAULT_IDLE_TIMEOUT_SECONDS: u64 = 1800; // SPEC value, not Python's 300
22pub const IDLE_CHECK_INTERVAL_SECONDS: u64 = 30;
23pub const SOCKET_MESSAGE_MAX_BYTES: usize = 10 * 1024 * 1024;
24pub const SOCKET_LENGTH_PREFIX_BYTES: usize = 8;
25pub const CONNECTION_TIMEOUT_SECONDS: f64 = 5.0;
26pub const DEFAULT_ORCHESTRATOR_EVENT_TIMEOUT_SECONDS: f64 = 120.0;
27
28// Queue
29pub const DEFAULT_QUEUE_MAX_RETRY: u32 = 3;
30pub const QUEUE_FILENAME_LABEL_MAX_LENGTH: usize = 60;
31
32// Config defaults (SPEC values)
33pub const DEFAULT_SERVER_PORT: u16 = 8000;
34pub const DEFAULT_CONFIG_MAX_CONCURRENT_AGENTS: usize = 5;
35pub const DEFAULT_GLOBAL_TIMEOUT_SECONDS: u64 = 7200;
36pub const DEFAULT_ORCHESTRATOR_IDLE_TIMEOUT_SECONDS: u64 = 1800;
37pub const DEFAULT_CONFIG_DRAIN_TIMEOUT_SECONDS: u64 = 300;
38pub const DEFAULT_RECOVERY_PROBE_INTERVAL_SECONDS: u64 = 300;
39pub const DEFAULT_CONFIG_MAX_RETRY: u32 = 3;
40
41// SDK
42pub const MESSAGE_HISTORY_WARNING_THRESHOLD: usize = 500;
43
44// Tools
45pub const GH_CLI_TIMEOUT_SECONDS: f64 = 30.0;
46pub const SEARCH_QUERY_MAX_LENGTH: usize = 500;
47pub const ISSUES_LIST_LIMIT: u32 = 50;
48pub const PRS_LIST_LIMIT: u32 = 50;
49pub const SEARCH_RESULTS_LIMIT: u32 = 30;
50
51// Spawner
52pub const DEFAULT_AGENT_MAX_TURNS: u32 = 200;
53
54// Pipeline loop limits
55pub const IMPLEMENTER_VERIFIER_MAX_LOOP: u32 = 10;
56pub const IMPLEMENTER_REVIEWER_MAX_LOOP: u32 = 10;
57pub const BUG_REPRODUCER_MAX_INFO_REQUESTS: u32 = 3;
58
59// Agent types
60pub const AGENT_ORCHESTRATOR: &str = "orchestrator";
61pub const AGENT_IMPLEMENTER: &str = "implementer";
62pub const AGENT_VERIFIER: &str = "verifier";
63pub const AGENT_REVIEWER: &str = "reviewer";
64pub const AGENT_VISION_GAP_ANALYST: &str = "vision-gap-analyst";
65pub const AGENT_BUG_REPRODUCER: &str = "bug-reproducer";
66
67/// All valid agent types.
68pub const AGENT_TYPES: &[&str] = &[
69    AGENT_ORCHESTRATOR,
70    AGENT_IMPLEMENTER,
71    AGENT_VERIFIER,
72    AGENT_REVIEWER,
73    AGENT_VISION_GAP_ANALYST,
74    AGENT_BUG_REPRODUCER,
75];