axio-tools-docker 0.2.1__tar.gz → 0.2.3__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.
Files changed (19) hide show
  1. axio_tools_docker-0.2.3/PKG-INFO +109 -0
  2. {axio_tools_docker-0.2.1 → axio_tools_docker-0.2.3}/pyproject.toml +7 -1
  3. {axio_tools_docker-0.2.1 → axio_tools_docker-0.2.3}/uv.lock +1 -1
  4. axio_tools_docker-0.2.1/PKG-INFO +0 -8
  5. {axio_tools_docker-0.2.1 → axio_tools_docker-0.2.3}/.github/workflows/publish.yml +0 -0
  6. {axio_tools_docker-0.2.1 → axio_tools_docker-0.2.3}/.github/workflows/tests.yml +0 -0
  7. {axio_tools_docker-0.2.1 → axio_tools_docker-0.2.3}/LICENSE +0 -0
  8. {axio_tools_docker-0.2.1 → axio_tools_docker-0.2.3}/Makefile +0 -0
  9. {axio_tools_docker-0.2.1 → axio_tools_docker-0.2.3}/README.md +0 -0
  10. {axio_tools_docker-0.2.1 → axio_tools_docker-0.2.3}/src/axio_tools_docker/__init__.py +0 -0
  11. {axio_tools_docker-0.2.1 → axio_tools_docker-0.2.3}/src/axio_tools_docker/config.py +0 -0
  12. {axio_tools_docker-0.2.1 → axio_tools_docker-0.2.3}/src/axio_tools_docker/handler.py +0 -0
  13. {axio_tools_docker-0.2.1 → axio_tools_docker-0.2.3}/src/axio_tools_docker/manager.py +0 -0
  14. {axio_tools_docker-0.2.1 → axio_tools_docker-0.2.3}/src/axio_tools_docker/plugin.py +0 -0
  15. {axio_tools_docker-0.2.1 → axio_tools_docker-0.2.3}/src/axio_tools_docker/settings.py +0 -0
  16. {axio_tools_docker-0.2.1 → axio_tools_docker-0.2.3}/tests/test_config.py +0 -0
  17. {axio_tools_docker-0.2.1 → axio_tools_docker-0.2.3}/tests/test_handler.py +0 -0
  18. {axio_tools_docker-0.2.1 → axio_tools_docker-0.2.3}/tests/test_manager.py +0 -0
  19. {axio_tools_docker-0.2.1 → axio_tools_docker-0.2.3}/tests/test_plugin.py +0 -0
@@ -0,0 +1,109 @@
1
+ Metadata-Version: 2.4
2
+ Name: axio-tools-docker
3
+ Version: 0.2.3
4
+ Summary: Docker sandbox tools for Axio
5
+ Project-URL: Homepage, https://github.com/axio-agent/axio-tools-docker
6
+ Project-URL: Repository, https://github.com/axio-agent/axio-tools-docker
7
+ License: MIT
8
+ License-File: LICENSE
9
+ Keywords: agent,ai,docker,llm,sandbox,tools
10
+ Requires-Python: >=3.12
11
+ Requires-Dist: axio
12
+ Description-Content-Type: text/markdown
13
+
14
+ # axio-tools-docker
15
+
16
+ [![PyPI](https://img.shields.io/pypi/v/axio-tools-docker)](https://pypi.org/project/axio-tools-docker/)
17
+ [![Python](https://img.shields.io/pypi/pyversions/axio-tools-docker)](https://pypi.org/project/axio-tools-docker/)
18
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
19
+
20
+ Docker sandbox tools for [axio](https://github.com/axio-agent/axio).
21
+
22
+ 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.
23
+
24
+ ## Features
25
+
26
+ - **Isolated execution** — code runs inside a Docker container, not on the host
27
+ - **Configurable image** — use any Docker image as the sandbox environment
28
+ - **Three sandboxed tools** — execute commands, write files, read files — all inside the container
29
+ - **Persistent sandbox** — container is reused across tool calls within a session for faster execution
30
+ - **TUI integration** — configure image, memory limits, and CPU from the `axio-tui` settings screen
31
+
32
+ ## Requirements
33
+
34
+ Docker must be installed and running:
35
+
36
+ ```bash
37
+ docker info # should succeed
38
+ ```
39
+
40
+ ## Installation
41
+
42
+ ```bash
43
+ pip install axio-tools-docker
44
+ ```
45
+
46
+ ## Usage
47
+
48
+ ```python
49
+ from axio import Agent
50
+ from axio.context import MemoryContextStore
51
+ from axio_transport_openai import OpenAITransport
52
+ from axio_tools_docker.plugin import DockerPlugin
53
+
54
+ async def main() -> None:
55
+ plugin = DockerPlugin()
56
+ await plugin.init() # uses default config (python:3.12-slim)
57
+
58
+ agent = Agent(
59
+ system=(
60
+ "You are a coding assistant. Use sandbox_exec to run code safely. "
61
+ "Never attempt to access the host filesystem directly."
62
+ ),
63
+ tools=plugin.all_tools,
64
+ transport=OpenAITransport(api_key="sk-...", model="gpt-4o"),
65
+ )
66
+
67
+ ctx = MemoryContextStore()
68
+ result = await agent.run(
69
+ "Write a Python script that computes the first 20 Fibonacci numbers and run it.",
70
+ ctx,
71
+ )
72
+ print(result)
73
+ ```
74
+
75
+ ## Sandbox tools
76
+
77
+ | Tool | Description |
78
+ |---|---|
79
+ | `sandbox_exec` | Run a shell command inside the container; returns stdout + stderr |
80
+ | `sandbox_write` | Write a file into the container's filesystem |
81
+ | `sandbox_read` | Read a file from the container's filesystem |
82
+
83
+ ## Configuration
84
+
85
+ ```python
86
+ from axio_tools_docker.config import SandboxConfig
87
+
88
+ config = SandboxConfig(
89
+ image="python:3.12-slim",
90
+ memory_limit="512m",
91
+ cpu_quota=100000, # 1 CPU
92
+ work_dir="/workspace",
93
+ )
94
+ ```
95
+
96
+ ## Plugin registration
97
+
98
+ ```toml
99
+ [project.entry-points."axio.tools.settings"]
100
+ docker = "axio_tools_docker.plugin:DockerPlugin"
101
+ ```
102
+
103
+ ## Part of the axio ecosystem
104
+
105
+ [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)
106
+
107
+ ## License
108
+
109
+ MIT
@@ -1,14 +1,20 @@
1
1
  [project]
2
2
  name = "axio-tools-docker"
3
- version = "0.2.1"
3
+ version = "0.2.3"
4
4
  description = "Docker sandbox tools for Axio"
5
+ readme = "README.md"
5
6
  requires-python = ">=3.12"
6
7
  license = {text = "MIT"}
8
+ keywords = ["llm", "agent", "ai", "docker", "sandbox", "tools"]
7
9
  dependencies = ["axio"]
8
10
 
9
11
  [project.entry-points."axio.tools.settings"]
10
12
  docker = "axio_tools_docker.plugin:DockerPlugin"
11
13
 
14
+
15
+ [project.urls]
16
+ Homepage = "https://github.com/axio-agent/axio-tools-docker"
17
+ Repository = "https://github.com/axio-agent/axio-tools-docker"
12
18
  [build-system]
13
19
  requires = ["hatchling"]
14
20
  build-backend = "hatchling.build"
@@ -25,7 +25,7 @@ wheels = [
25
25
 
26
26
  [[package]]
27
27
  name = "axio-tools-docker"
28
- version = "0.2.1"
28
+ version = "0.2.3"
29
29
  source = { editable = "." }
30
30
  dependencies = [
31
31
  { name = "axio" },
@@ -1,8 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: axio-tools-docker
3
- Version: 0.2.1
4
- Summary: Docker sandbox tools for Axio
5
- License: MIT
6
- License-File: LICENSE
7
- Requires-Python: >=3.12
8
- Requires-Dist: axio