1use crate::types::AgentMemory;
4use crate::types::{Agent, AgentKind, NodeStructuralType};
5use std::collections::HashMap;
6
7pub struct Node {
9 pub id: String,
10 pub agent: Option<AgentKind>, }
13
14pub fn print_node_topologies(nodes: &[Node]) {
16 for node in nodes {
17 let topology = NodeStructuralType::Simple;
18 let agent_str = match &node.agent {
19 Some(agent) => format!("{:?}", agent),
20 None => "None".to_string(),
21 };
22 println!(
23 "Node {}: Topology = {:?}, Agent = {}",
24 node.id, topology, agent_str
25 );
26 }
27}
28
29pub fn connect_agents() -> Vec<Agent> {
31 vec![
32 Agent {
33 id: "claude".into(),
34 kind: AgentKind::Claude,
35 capabilities: vec![
36 "meta-reflection".into(),
37 "ethical-alignment".into(),
38 "temporal-integrity".into(),
39 ],
40 capability_weight: HashMap::new(),
41 memory: AgentMemory { history: vec![] },
42 },
43 Agent {
44 id: "gemini".into(),
45 kind: AgentKind::Gemini,
46 capabilities: vec![
47 "recursive-design".into(),
48 "topology-planning".into(),
49 "schema-evolution".into(),
50 ],
51 capability_weight: HashMap::new(),
52 memory: AgentMemory { history: vec![] },
53 },
54 Agent {
55 id: "grok".into(),
56 kind: AgentKind::Grok,
57 capabilities: vec![
58 "manifesto-validation".into(),
59 "intent-detection".into(),
60 "truth-checks".into(),
61 ],
62 capability_weight: HashMap::new(),
63 memory: AgentMemory { history: vec![] },
64 },
65 ]
66}