Files
docker-agent-sandbox/docker_agent_sandbox/tools/write_file.py
Matte23 80c2f9b159 feat: Initial library extraction from PIN LLM benchmark
DockerSandbox + LangChain file/shell tools extracted into a standalone package.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-02 11:47:44 +02:00

33 lines
983 B
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""write_file.py tool for writing files inside the sandbox."""
from __future__ import annotations
from typing import TYPE_CHECKING
from langchain_core.tools import BaseTool, tool
from loguru import logger
if TYPE_CHECKING:
from docker_agent_sandbox.sandbox import DockerSandbox
def make_write_file_tool(sandbox: "DockerSandbox") -> BaseTool:
"""Return a write_file tool bound to *sandbox*."""
@tool
def write_file(path: str, content: str) -> str:
"""
Write *content* to *path*.
*path* can be absolute or relative. Parent directories are created
automatically. Returns a confirmation message or an error.
"""
try:
logger.debug("Writing file inside sandbox: {}", path)
sandbox.write_file(path, content)
except Exception as exc:
return f"[ERROR writing {path!r}] {exc}"
return f"[OK] Written {len(content.encode())} bytes to {path}"
return write_file