diff --git a/src/config.rs b/src/config.rs index b7ea597..6323aae 100644 --- a/src/config.rs +++ b/src/config.rs @@ -29,6 +29,9 @@ static CONFIG: OnceLock>> = OnceLock::new(); fn default_stream_timeout() -> u64 { 60 } fn default_scoring_interval_secs() -> u64 { 3600 } // 1 hour fn default_scoring_response_window() -> usize { 100 } +fn default_surface_hooks() -> Vec { + vec!["UserPromptSubmit".into(), "PostToolUse".into(), "Stop".into()] +} fn default_node_weight() -> f64 { 0.7 } fn default_edge_decay() -> f64 { 0.3 } fn default_max_hops() -> u32 { 3 } @@ -73,6 +76,10 @@ pub struct Config { /// Max conversation bytes to include in surface agent context. #[serde(default)] pub surface_conversation_bytes: Option, + /// Claude Code hook events that trigger agent cycles (surface-observe, + /// reflect, journal). Read by consciousness-claude/src/hook.rs. + #[serde(default = "default_surface_hooks")] + pub surface_hooks: Vec, // Spreading activation parameters #[serde(default = "default_node_weight")] @@ -104,6 +111,7 @@ impl Default for Config { "separator".into(), "split".into(), ], surface_conversation_bytes: None, + surface_hooks: default_surface_hooks(), mcp_servers: vec![], lsp_servers: vec![], default_node_weight: default_node_weight(),