1pub use clawft_types::config::KernelConfig;
8
9use crate::capability::AgentCapabilities;
10
11#[derive(Debug, Clone, Default)]
17pub struct KernelConfigExt {
18 pub base: KernelConfig,
20
21 pub default_capabilities: Option<AgentCapabilities>,
24}
25
26impl From<KernelConfig> for KernelConfigExt {
27 fn from(base: KernelConfig) -> Self {
28 Self {
29 base,
30 default_capabilities: None,
31 }
32 }
33}
34
35#[cfg(test)]
36mod tests {
37 use super::*;
38
39 #[test]
40 fn kernel_config_ext_from_base() {
41 let base = KernelConfig {
42 enabled: true,
43 max_processes: 128,
44 health_check_interval_secs: 10,
45 cluster: None,
46 chain: None,
47 resource_tree: None,
48 };
49 let ext = KernelConfigExt::from(base.clone());
50 assert_eq!(ext.base.enabled, true);
51 assert_eq!(ext.base.max_processes, 128);
52 assert!(ext.default_capabilities.is_none());
53 }
54
55 #[test]
56 fn kernel_config_ext_default() {
57 let ext = KernelConfigExt::default();
58 assert!(!ext.base.enabled);
59 assert_eq!(ext.base.max_processes, 64);
60 }
61
62 #[test]
63 fn kernel_config_reexport() {
64 let cfg = KernelConfig::default();
66 assert!(!cfg.enabled);
67 }
68}