@@ -51,6 +51,7 @@ def __init__(self, *args, **kwargs):
5151 if kwargs .get ("uuid" , None ):
5252 self .uuid = kwargs .get ("uuid" )
5353
54+ self .start_up_errors = []
5455 self .recently_removed = {}
5556 self .tool_usage_history = []
5657 self .loaded_custom_tools = []
@@ -109,19 +110,26 @@ def __init__(self, *args, **kwargs):
109110
110111 def post_init (self ):
111112 super ().post_init ()
112- # Populate per-instance tool and server filters from config
113- self .registered_tools ["included" ] = set (
114- map (str .lower , self .agent_config .get ("tools_includelist" , []))
115- )
116- self .registered_tools ["excluded" ] = set (
117- map (str .lower , self .agent_config .get ("tools_excludelist" , []))
118- )
119- self .registered_servers ["included" ] = set (
120- map (str .lower , self .agent_config .get ("servers_includelist" , []))
121- )
122- self .registered_servers ["excluded" ] = set (
123- map (str .lower , self .agent_config .get ("servers_excludelist" , []))
124- )
113+
114+ if not self ._inherited_tools :
115+ # Populate per-instance tool and server filters from config
116+ self .registered_tools ["included" ] = set (
117+ map (str .lower , self .agent_config .get ("tools_includelist" , []))
118+ )
119+ self .registered_tools ["excluded" ] = set (
120+ map (str .lower , self .agent_config .get ("tools_excludelist" , []))
121+ )
122+ self .registered_servers ["included" ] = set (
123+ map (str .lower , self .agent_config .get ("servers_includelist" , []))
124+ )
125+ self .registered_servers ["excluded" ] = set (
126+ map (str .lower , self .agent_config .get ("servers_excludelist" , []))
127+ )
128+
129+ for err in self .start_up_errors :
130+ self .io .tool_warning (err )
131+
132+ self .start_up_errors = []
125133
126134 def _setup_agent (self ):
127135 os .makedirs (".cecli/temp" , exist_ok = True )
@@ -143,7 +151,7 @@ def _get_agent_config(self):
143151 try :
144152 config = json .loads (self .args .agent_config )
145153 except (json .JSONDecodeError , TypeError ) as e :
146- self .io . tool_warning (f"Failed to parse agent-config JSON: { e } " )
154+ self .start_up_errors . append (f"Failed to parse agent-config JSON: { e } " )
147155 return {}
148156
149157 config ["large_file_token_threshold" ] = nested .getter (
@@ -1531,15 +1539,20 @@ def get_child_agent_states(self):
15311539 try :
15321540 service = AgentService .get_instance (self )
15331541 children = service .get_children (self )
1534-
15351542 if not children :
15361543 return None
15371544
1545+ # Filter to non-independent children only
1546+ dependent_children = [info for info in children if not info .independent ]
1547+
1548+ if not dependent_children :
1549+ return None
1550+
15381551 result = '<context name="sub_agent_states" from="agent">\n '
15391552 result += "## Active Sub-Agent States\n \n "
1540- result += f"Found { len (children )} active child sub-agent(s):\n \n "
1553+ result += f"Found { len (dependent_children )} active child sub-agent(s):\n \n "
15411554
1542- for info in children :
1555+ for info in dependent_children :
15431556 result += f"**{ info .name } **:\n "
15441557 result += f" - UUID: `{ info .coder .uuid } `\n "
15451558 result += f" - Status: { info .status .value } \n "
0 commit comments