@@ -96,9 +96,7 @@ def get_all_tools() -> list[ToolConfig]:
9696 return [ToolConfig .from_json (path ) for path in get_all_tool_paths ()]
9797
9898
99- def add_tool (
100- tool_name : str , path : Optional [str ] = None , agents : Optional [List [str ]] = []
101- ):
99+ def add_tool (tool_name : str , path : Optional [str ] = None , agents : Optional [List [str ]] = []):
102100 if path :
103101 path = path .endswith ('/' ) and path or path + '/'
104102 else :
@@ -116,9 +114,7 @@ def add_tool(
116114
117115 if tool_data .packages :
118116 packaging .install (' ' .join (tool_data .packages ))
119- shutil .copy (
120- tool_file_path , f'{ path } src/tools/{ tool_name } _tool.py'
121- ) # Move tool from package to project
117+ shutil .copy (tool_file_path , f'{ path } src/tools/{ tool_name } _tool.py' ) # Move tool from package to project
122118 add_tool_to_tools_init (tool_data , path ) # Export tool from tools dir
123119 add_tool_to_agent_definition (
124120 framework = framework , tool_data = tool_data , path = path , agents = agents
@@ -138,11 +134,7 @@ def add_tool(
138134 with agentstack_config as config :
139135 config .tools .append (tool_name )
140136
141- print (
142- term_color (
143- f'🔨 Tool { tool_name } added to agentstack project successfully' , 'green'
144- )
145- )
137+ print (term_color (f'🔨 Tool { tool_name } added to agentstack project successfully' , 'green' ))
146138 if tool_data .cta :
147139 print (term_color (f'🪩 { tool_data .cta } ' , 'blue' ))
148140
@@ -224,9 +216,7 @@ def add_tool_to_agent_definition(
224216 )
225217
226218
227- def remove_tool_from_agent_definition (
228- framework : str , tool_data : ToolConfig , path : str = ''
229- ):
219+ def remove_tool_from_agent_definition (framework : str , tool_data : ToolConfig , path : str = '' ):
230220 modify_agent_tools (
231221 framework = framework ,
232222 tool_data = tool_data ,
@@ -239,24 +229,18 @@ def remove_tool_from_agent_definition(
239229
240230def _create_tool_attribute (tool_name : str , base_name : str = 'tools' ) -> ast .Attribute :
241231 """Create an AST node for a tool attribute"""
242- return ast .Attribute (
243- value = ast .Name (id = base_name , ctx = ast .Load ()), attr = tool_name , ctx = ast .Load ()
244- )
232+ return ast .Attribute (value = ast .Name (id = base_name , ctx = ast .Load ()), attr = tool_name , ctx = ast .Load ())
245233
246234
247235def _create_starred_tool (tool_name : str , base_name : str = 'tools' ) -> ast .Starred :
248236 """Create an AST node for a starred tool expression"""
249237 return ast .Starred (
250- value = ast .Attribute (
251- value = ast .Name (id = base_name , ctx = ast .Load ()), attr = tool_name , ctx = ast .Load ()
252- ),
238+ value = ast .Attribute (value = ast .Name (id = base_name , ctx = ast .Load ()), attr = tool_name , ctx = ast .Load ()),
253239 ctx = ast .Load (),
254240 )
255241
256242
257- def _create_tool_attributes (
258- tool_names : List [str ], base_name : str = 'tools'
259- ) -> List [ast .Attribute ]:
243+ def _create_tool_attributes (tool_names : List [str ], base_name : str = 'tools' ) -> List [ast .Attribute ]:
260244 """Create AST nodes for multiple tool attributes"""
261245 return [_create_tool_attribute (name , base_name ) for name in tool_names ]
262246
@@ -266,16 +250,12 @@ def _create_tool_nodes(
266250) -> List [Union [ast .Attribute , ast .Starred ]]:
267251 """Create AST nodes for multiple tool attributes"""
268252 return [
269- _create_starred_tool (name , base_name )
270- if is_bundled
271- else _create_tool_attribute (name , base_name )
253+ _create_starred_tool (name , base_name ) if is_bundled else _create_tool_attribute (name , base_name )
272254 for name in tool_names
273255 ]
274256
275257
276- def _is_tool_node_match (
277- node : ast .AST , tool_name : str , base_name : str = 'tools'
278- ) -> bool :
258+ def _is_tool_node_match (node : ast .AST , tool_name : str , base_name : str = 'tools' ) -> bool :
279259 """
280260 Check if an AST node matches a tool reference, regardless of whether it's starred
281261
@@ -318,19 +298,15 @@ def _process_tools_list(
318298 if operation == 'add' :
319299 new_tools = current_tools .copy ()
320300 # Add new tools with bundling if specified
321- new_tools .extend (
322- _create_tool_nodes (tool_data .tools , tool_data .tools_bundled , base_name )
323- )
301+ new_tools .extend (_create_tool_nodes (tool_data .tools , tool_data .tools_bundled , base_name ))
324302 return new_tools
325303
326304 elif operation == 'remove' :
327305 # Filter out tools that match any in the removal list
328306 return [
329307 tool
330308 for tool in current_tools
331- if not any (
332- _is_tool_node_match (tool , name , base_name ) for name in tool_data .tools
333- )
309+ if not any (_is_tool_node_match (tool , name , base_name ) for name in tool_data .tools )
334310 ]
335311
336312 raise ValueError (f"Unsupported operation: { operation } " )
@@ -359,9 +335,7 @@ def _modify_agent_tools(
359335 return node
360336
361337 # Check if this is an agent-decorated function
362- if not any (
363- isinstance (d , ast .Name ) and d .id == 'agent' for d in node .decorator_list
364- ):
338+ if not any (isinstance (d , ast .Name ) and d .id == 'agent' for d in node .decorator_list ):
365339 return node
366340
367341 # Find the Return statement and modify tools
@@ -373,9 +347,7 @@ def _modify_agent_tools(
373347 if kw .arg == 'tools' :
374348 if isinstance (kw .value , ast .List ):
375349 # Process the tools list
376- new_tools = _process_tools_list (
377- kw .value .elts , tool_data , operation , base_name
378- )
350+ new_tools = _process_tools_list (kw .value .elts , tool_data , operation , base_name )
379351
380352 # Replace with new list
381353 kw .value = ast .List (elts = new_tools , ctx = ast .Load ())
0 commit comments