Metadata-Version: 2.4
Name: exoclaw-tools-workspace
Version: 0.4.0
Summary: File, shell, and web tools for exoclaw
Requires-Python: >=3.11
Requires-Dist: exoclaw>=0.10.0
Requires-Dist: httpx<1.0.0,>=0.28.0
Requires-Dist: readability-lxml>=0.8.1
Requires-Dist: structlog>=25.0.0
Description-Content-Type: text/markdown

# exoclaw-tools-workspace

File system, shell, and web tools implementing the exoclaw `ToolBase` protocol — read/write/edit files, list directories, execute shell commands, search the web, and fetch URLs.

## Install

```
pip install exoclaw-tools-workspace
```

## Usage

```python
from pathlib import Path
from exoclaw_tools_workspace.filesystem import ReadFileTool, WriteFileTool, EditFileTool, ListDirTool
from exoclaw_tools_workspace.shell import ExecTool
from exoclaw_tools_workspace.web import WebSearchTool, WebFetchTool

workspace = Path("~/.nanobot/workspace").expanduser()

tools = [
    ReadFileTool(workspace=workspace),
    WriteFileTool(workspace=workspace),
    EditFileTool(workspace=workspace),
    ListDirTool(workspace=workspace),
    ExecTool(timeout=30, working_dir=str(workspace)),
    WebSearchTool(api_key="..."),   # Brave Search API key, or set BRAVE_API_KEY
    WebFetchTool(),
]
```

All tools accept an optional `allowed_dir` to restrict file operations to within a directory. `ExecTool` ships with a built-in deny-list of destructive shell patterns.
