源码: main.rs:3027-3077
| 145 | # ============================================================ |
| 146 | |
| 147 | class CliToolExecutor: |
| 148 | """源码: main.rs:3027-3077""" |
| 149 | |
| 150 | def __init__(self, registry: ToolRegistry): |
| 151 | self._registry = registry |
| 152 | |
| 153 | def execute(self, tool_name: str, input_str: str) -> str: |
| 154 | """源码: main.rs:3044-3076""" |
| 155 | # 打印执行信息 — CC 的 emit_output 渲染 |
| 156 | print(f"\n \033[2m[tool: {tool_name}]\033[0m") |
| 157 | |
| 158 | result = self._registry.execute(tool_name, input_str) |
| 159 | |
| 160 | # 检查是否为错误 |
| 161 | if isinstance(result, str) and result.startswith("ERROR:"): |
| 162 | print(f" \033[31m{result}\033[0m") |
| 163 | raise ToolError(result) |
| 164 | |
| 165 | # 截断长输出的显示 |
| 166 | display = result if len(result) <= 200 else result[:200] + "..." |
| 167 | print(f" \033[2m{display}\033[0m") |
| 168 | return result |
| 169 | |
| 170 | |
| 171 | # ============================================================ |