tenseleyflow/loader / 2b80190

Browse files

fix: unpack tool arguments with ** when calling registry.execute()

Authored by espadonne
SHA
2b801903e04d49107b6f5b9e75ae4dd60a857a99
Parents
dc9c4ca
Tree
30f445e

1 changed file

StatusFile+-
M src/loader/agent/loop.py 9 5
src/loader/agent/loop.pymodified
@@ -1035,27 +1035,31 @@ class Agent:
10351035
                     ))
10361036
 
10371037
                     # Execute the tool
1038
+                    is_error = False
10381039
                     try:
1039
-                        result = await self.registry.execute(tc.name, tc.arguments)
1040
-                        result_text = str(result)
1040
+                        result = await self.registry.execute(tc.name, **tc.arguments)
1041
+                        result_text = result.output
1042
+                        is_error = result.is_error
10411043
                     except ConfirmationRequired as e:
10421044
                         if on_confirmation:
10431045
                             confirmed = await on_confirmation(tc.name, e.message, e.details)
10441046
                             if confirmed:
1045
-                                result = await self.registry.execute(tc.name, tc.arguments, confirmed=True)
1046
-                                result_text = str(result)
1047
+                                result = await self.registry.execute(tc.name, **tc.arguments, confirmed=True)
1048
+                                result_text = result.output
1049
+                                is_error = result.is_error
10471050
                             else:
10481051
                                 result_text = "Tool execution cancelled by user."
10491052
                         else:
10501053
                             result_text = f"Tool requires confirmation: {e.message}"
10511054
                     except Exception as e:
10521055
                         result_text = f"Error: {e}"
1056
+                        is_error = True
10531057
 
10541058
                     await emit(AgentEvent(
10551059
                         type="tool_result",
10561060
                         content=result_text,
10571061
                         tool_name=tc.name,
1058
-                        is_error="Error:" in result_text,
1062
+                        is_error=is_error,
10591063
                     ))
10601064
 
10611065
                     self.messages.append(Message(