обработка путей в send_file для минимизации неудачных отправок

This commit is contained in:
Егор Кандрушин 2026-04-19 21:56:17 +03:00
parent 2d4a5d73c7
commit 62de4ff36c

View file

@ -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"