axio-tools-docker 0.2.0__tar.gz → 0.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- axio_tools_docker-0.2.2/PKG-INFO +106 -0
- {axio_tools_docker-0.2.0 → axio_tools_docker-0.2.2}/pyproject.toml +2 -1
- {axio_tools_docker-0.2.0 → axio_tools_docker-0.2.2}/uv.lock +4 -4
- axio_tools_docker-0.2.0/PKG-INFO +0 -8
- {axio_tools_docker-0.2.0 → axio_tools_docker-0.2.2}/.github/workflows/publish.yml +0 -0
- {axio_tools_docker-0.2.0 → axio_tools_docker-0.2.2}/.github/workflows/tests.yml +0 -0
- {axio_tools_docker-0.2.0 → axio_tools_docker-0.2.2}/LICENSE +0 -0
- {axio_tools_docker-0.2.0 → axio_tools_docker-0.2.2}/Makefile +0 -0
- {axio_tools_docker-0.2.0 → axio_tools_docker-0.2.2}/README.md +0 -0
- {axio_tools_docker-0.2.0 → axio_tools_docker-0.2.2}/src/axio_tools_docker/__init__.py +0 -0
- {axio_tools_docker-0.2.0 → axio_tools_docker-0.2.2}/src/axio_tools_docker/config.py +0 -0
- {axio_tools_docker-0.2.0 → axio_tools_docker-0.2.2}/src/axio_tools_docker/handler.py +0 -0
- {axio_tools_docker-0.2.0 → axio_tools_docker-0.2.2}/src/axio_tools_docker/manager.py +0 -0
- {axio_tools_docker-0.2.0 → axio_tools_docker-0.2.2}/src/axio_tools_docker/plugin.py +0 -0
- {axio_tools_docker-0.2.0 → axio_tools_docker-0.2.2}/src/axio_tools_docker/settings.py +0 -0
- {axio_tools_docker-0.2.0 → axio_tools_docker-0.2.2}/tests/test_config.py +0 -0
- {axio_tools_docker-0.2.0 → axio_tools_docker-0.2.2}/tests/test_handler.py +0 -0
- {axio_tools_docker-0.2.0 → axio_tools_docker-0.2.2}/tests/test_manager.py +0 -0
- {axio_tools_docker-0.2.0 → axio_tools_docker-0.2.2}/tests/test_plugin.py +0 -0
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: axio-tools-docker
|
|
3
|
+
Version: 0.2.2
|
|
4
|
+
Summary: Docker sandbox tools for Axio
|
|
5
|
+
License: MIT
|
|
6
|
+
License-File: LICENSE
|
|
7
|
+
Requires-Python: >=3.12
|
|
8
|
+
Requires-Dist: axio
|
|
9
|
+
Description-Content-Type: text/markdown
|
|
10
|
+
|
|
11
|
+
# axio-tools-docker
|
|
12
|
+
|
|
13
|
+
[](https://pypi.org/project/axio-tools-docker/)
|
|
14
|
+
[](https://pypi.org/project/axio-tools-docker/)
|
|
15
|
+
[](LICENSE)
|
|
16
|
+
|
|
17
|
+
Docker sandbox tools for [axio](https://github.com/axio-agent/axio).
|
|
18
|
+
|
|
19
|
+
Run agent-generated code and commands inside isolated Docker containers. The agent gets `sandbox_exec`, `sandbox_write`, and `sandbox_read` tools that operate entirely within the sandbox — the host filesystem stays untouched.
|
|
20
|
+
|
|
21
|
+
## Features
|
|
22
|
+
|
|
23
|
+
- **Isolated execution** — code runs inside a Docker container, not on the host
|
|
24
|
+
- **Configurable image** — use any Docker image as the sandbox environment
|
|
25
|
+
- **Three sandboxed tools** — execute commands, write files, read files — all inside the container
|
|
26
|
+
- **Persistent sandbox** — container is reused across tool calls within a session for faster execution
|
|
27
|
+
- **TUI integration** — configure image, memory limits, and CPU from the `axio-tui` settings screen
|
|
28
|
+
|
|
29
|
+
## Requirements
|
|
30
|
+
|
|
31
|
+
Docker must be installed and running:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
docker info # should succeed
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Installation
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
pip install axio-tools-docker
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Usage
|
|
44
|
+
|
|
45
|
+
```python
|
|
46
|
+
from axio import Agent
|
|
47
|
+
from axio.context import MemoryContextStore
|
|
48
|
+
from axio_transport_openai import OpenAITransport
|
|
49
|
+
from axio_tools_docker.plugin import DockerPlugin
|
|
50
|
+
|
|
51
|
+
async def main() -> None:
|
|
52
|
+
plugin = DockerPlugin()
|
|
53
|
+
await plugin.init() # uses default config (python:3.12-slim)
|
|
54
|
+
|
|
55
|
+
agent = Agent(
|
|
56
|
+
system=(
|
|
57
|
+
"You are a coding assistant. Use sandbox_exec to run code safely. "
|
|
58
|
+
"Never attempt to access the host filesystem directly."
|
|
59
|
+
),
|
|
60
|
+
tools=plugin.all_tools,
|
|
61
|
+
transport=OpenAITransport(api_key="sk-...", model="gpt-4o"),
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
ctx = MemoryContextStore()
|
|
65
|
+
result = await agent.run(
|
|
66
|
+
"Write a Python script that computes the first 20 Fibonacci numbers and run it.",
|
|
67
|
+
ctx,
|
|
68
|
+
)
|
|
69
|
+
print(result)
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Sandbox tools
|
|
73
|
+
|
|
74
|
+
| Tool | Description |
|
|
75
|
+
|---|---|
|
|
76
|
+
| `sandbox_exec` | Run a shell command inside the container; returns stdout + stderr |
|
|
77
|
+
| `sandbox_write` | Write a file into the container's filesystem |
|
|
78
|
+
| `sandbox_read` | Read a file from the container's filesystem |
|
|
79
|
+
|
|
80
|
+
## Configuration
|
|
81
|
+
|
|
82
|
+
```python
|
|
83
|
+
from axio_tools_docker.config import SandboxConfig
|
|
84
|
+
|
|
85
|
+
config = SandboxConfig(
|
|
86
|
+
image="python:3.12-slim",
|
|
87
|
+
memory_limit="512m",
|
|
88
|
+
cpu_quota=100000, # 1 CPU
|
|
89
|
+
work_dir="/workspace",
|
|
90
|
+
)
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Plugin registration
|
|
94
|
+
|
|
95
|
+
```toml
|
|
96
|
+
[project.entry-points."axio.tools.settings"]
|
|
97
|
+
docker = "axio_tools_docker.plugin:DockerPlugin"
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Part of the axio ecosystem
|
|
101
|
+
|
|
102
|
+
[axio](https://github.com/axio-agent/axio) · [axio-tools-local](https://github.com/axio-agent/axio-tools-local) · [axio-tools-mcp](https://github.com/axio-agent/axio-tools-mcp) · [axio-tui](https://github.com/axio-agent/axio-tui)
|
|
103
|
+
|
|
104
|
+
## License
|
|
105
|
+
|
|
106
|
+
MIT
|
|
@@ -13,19 +13,19 @@ wheels = [
|
|
|
13
13
|
|
|
14
14
|
[[package]]
|
|
15
15
|
name = "axio"
|
|
16
|
-
version = "0.
|
|
16
|
+
version = "0.2.0"
|
|
17
17
|
source = { registry = "https://pypi.org/simple" }
|
|
18
18
|
dependencies = [
|
|
19
19
|
{ name = "pydantic" },
|
|
20
20
|
]
|
|
21
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
21
|
+
sdist = { url = "https://files.pythonhosted.org/packages/0b/df/df4f46276669df7bf3c62e5bef60fee611e9fa902ee714a3cbc77e510022/axio-0.2.0.tar.gz", hash = "sha256:10ae13271c3f097c0e20b1f3e5b039cfca04f52533fb926b8254828199f55206", size = 53963, upload-time = "2026-03-22T19:22:50.096Z" }
|
|
22
22
|
wheels = [
|
|
23
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
23
|
+
{ url = "https://files.pythonhosted.org/packages/26/c0/a27ce8b4ff865d15cbb45cd4f1a8d63cc8d3bd34295ee5091d8d5e1f9175/axio-0.2.0-py3-none-any.whl", hash = "sha256:a1372d44f1102d18d123ced7a5c70dda2bc007ee5f653250e7c65a68866c75a4", size = 16833, upload-time = "2026-03-22T19:22:48.974Z" },
|
|
24
24
|
]
|
|
25
25
|
|
|
26
26
|
[[package]]
|
|
27
27
|
name = "axio-tools-docker"
|
|
28
|
-
version = "0.2.
|
|
28
|
+
version = "0.2.2"
|
|
29
29
|
source = { editable = "." }
|
|
30
30
|
dependencies = [
|
|
31
31
|
{ name = "axio" },
|
axio_tools_docker-0.2.0/PKG-INFO
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|