diff --git a/src/agent/tools.py b/src/agent/tools.py index b87aa9e..4afd6e0 100644 --- a/src/agent/tools.py +++ b/src/agent/tools.py @@ -20,6 +20,10 @@ async def send_file(path: str) -> str: - пользователь просто хочет прочитать содержимое файла (используй read_file) - нужно создать или изменить файл (используй write_file/edit_file) + Пользователь не имеет доступа к файлам напрямую, ты ОБЯЗАН ему их отправлять. + Если пользователь просил сформировать файл - скорее всего, нужно его отправить. + Используй этот tool без явного запроса от пользователя. + Args: path: Путь к файлу относительно /workspace (например: 'report.pdf', 'docs/readme.txt', 'output/data.json') @@ -27,7 +31,12 @@ async def send_file(path: str) -> str: Подтверждение отправки или сообщение об ошибке """ workspace = os.environ.get("WORKSPACE_DIR", "/workspace") - full_path = Path(workspace) / path + + input_path = Path(path).as_posix().lstrip("/") + if input_path.startswith("workspace/"): + input_path = input_path[len("workspace/"):] + + full_path = Path(workspace) / input_path if not full_path.exists(): return f"Ошибка: файл '{path}' не найден в /workspace"