Merge branch 'main' of github.com:NousResearch/hermes-agent into feat/ink-refactor
This commit is contained in:
33
run_agent.py
33
run_agent.py
@@ -6976,6 +6976,31 @@ class AIAgent:
|
||||
skip_pre_tool_call_hook=True,
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
def _wrap_verbose(label: str, text: str, indent: str = " ") -> str:
|
||||
"""Word-wrap verbose tool output to fit the terminal width.
|
||||
|
||||
Splits *text* on existing newlines and wraps each line individually,
|
||||
preserving intentional line breaks (e.g. pretty-printed JSON).
|
||||
Returns a ready-to-print string with *label* on the first line and
|
||||
continuation lines indented.
|
||||
"""
|
||||
import shutil as _shutil
|
||||
import textwrap as _tw
|
||||
cols = _shutil.get_terminal_size((120, 24)).columns
|
||||
wrap_width = max(40, cols - len(indent))
|
||||
out_lines: list[str] = []
|
||||
for raw_line in text.split("\n"):
|
||||
if len(raw_line) <= wrap_width:
|
||||
out_lines.append(raw_line)
|
||||
else:
|
||||
wrapped = _tw.wrap(raw_line, width=wrap_width,
|
||||
break_long_words=True,
|
||||
break_on_hyphens=False)
|
||||
out_lines.extend(wrapped or [raw_line])
|
||||
body = ("\n" + indent).join(out_lines)
|
||||
return f"{indent}{label}{body}"
|
||||
|
||||
def _execute_tool_calls_concurrent(self, assistant_message, messages: list, effective_task_id: str, api_call_count: int = 0) -> None:
|
||||
"""Execute multiple tool calls concurrently using a thread pool.
|
||||
|
||||
@@ -7046,7 +7071,7 @@ class AIAgent:
|
||||
args_str = json.dumps(args, ensure_ascii=False)
|
||||
if self.verbose_logging:
|
||||
print(f" 📞 Tool {i}: {name}({list(args.keys())})")
|
||||
print(f" Args: {args_str}")
|
||||
print(self._wrap_verbose("Args: ", json.dumps(args, indent=2, ensure_ascii=False)))
|
||||
else:
|
||||
args_preview = args_str[:self.log_prefix_chars] + "..." if len(args_str) > self.log_prefix_chars else args_str
|
||||
print(f" 📞 Tool {i}: {name}({list(args.keys())}) - {args_preview}")
|
||||
@@ -7144,7 +7169,7 @@ class AIAgent:
|
||||
elif not self.quiet_mode:
|
||||
if self.verbose_logging:
|
||||
print(f" ✅ Tool {i+1} completed in {tool_duration:.2f}s")
|
||||
print(f" Result: {function_result}")
|
||||
print(self._wrap_verbose("Result: ", function_result))
|
||||
else:
|
||||
response_preview = function_result[:self.log_prefix_chars] + "..." if len(function_result) > self.log_prefix_chars else function_result
|
||||
print(f" ✅ Tool {i+1} completed in {tool_duration:.2f}s - {response_preview}")
|
||||
@@ -7237,7 +7262,7 @@ class AIAgent:
|
||||
args_str = json.dumps(function_args, ensure_ascii=False)
|
||||
if self.verbose_logging:
|
||||
print(f" 📞 Tool {i}: {function_name}({list(function_args.keys())})")
|
||||
print(f" Args: {args_str}")
|
||||
print(self._wrap_verbose("Args: ", json.dumps(function_args, indent=2, ensure_ascii=False)))
|
||||
else:
|
||||
args_preview = args_str[:self.log_prefix_chars] + "..." if len(args_str) > self.log_prefix_chars else args_str
|
||||
print(f" 📞 Tool {i}: {function_name}({list(function_args.keys())}) - {args_preview}")
|
||||
@@ -7525,7 +7550,7 @@ class AIAgent:
|
||||
if not self.quiet_mode:
|
||||
if self.verbose_logging:
|
||||
print(f" ✅ Tool {i} completed in {tool_duration:.2f}s")
|
||||
print(f" Result: {function_result}")
|
||||
print(self._wrap_verbose("Result: ", function_result))
|
||||
else:
|
||||
response_preview = function_result[:self.log_prefix_chars] + "..." if len(function_result) > self.log_prefix_chars else function_result
|
||||
print(f" ✅ Tool {i} completed in {tool_duration:.2f}s - {response_preview}")
|
||||
|
||||
Reference in New Issue
Block a user