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.
Files changed (19) hide show
  1. axio_tools_docker-0.2.2/PKG-INFO +106 -0
  2. {axio_tools_docker-0.2.0 → axio_tools_docker-0.2.2}/pyproject.toml +2 -1
  3. {axio_tools_docker-0.2.0 → axio_tools_docker-0.2.2}/uv.lock +4 -4
  4. axio_tools_docker-0.2.0/PKG-INFO +0 -8
  5. {axio_tools_docker-0.2.0 → axio_tools_docker-0.2.2}/.github/workflows/publish.yml +0 -0
  6. {axio_tools_docker-0.2.0 → axio_tools_docker-0.2.2}/.github/workflows/tests.yml +0 -0
  7. {axio_tools_docker-0.2.0 → axio_tools_docker-0.2.2}/LICENSE +0 -0
  8. {axio_tools_docker-0.2.0 → axio_tools_docker-0.2.2}/Makefile +0 -0
  9. {axio_tools_docker-0.2.0 → axio_tools_docker-0.2.2}/README.md +0 -0
  10. {axio_tools_docker-0.2.0 → axio_tools_docker-0.2.2}/src/axio_tools_docker/__init__.py +0 -0
  11. {axio_tools_docker-0.2.0 → axio_tools_docker-0.2.2}/src/axio_tools_docker/config.py +0 -0
  12. {axio_tools_docker-0.2.0 → axio_tools_docker-0.2.2}/src/axio_tools_docker/handler.py +0 -0
  13. {axio_tools_docker-0.2.0 → axio_tools_docker-0.2.2}/src/axio_tools_docker/manager.py +0 -0
  14. {axio_tools_docker-0.2.0 → axio_tools_docker-0.2.2}/src/axio_tools_docker/plugin.py +0 -0
  15. {axio_tools_docker-0.2.0 → axio_tools_docker-0.2.2}/src/axio_tools_docker/settings.py +0 -0
  16. {axio_tools_docker-0.2.0 → axio_tools_docker-0.2.2}/tests/test_config.py +0 -0
  17. {axio_tools_docker-0.2.0 → axio_tools_docker-0.2.2}/tests/test_handler.py +0 -0
  18. {axio_tools_docker-0.2.0 → axio_tools_docker-0.2.2}/tests/test_manager.py +0 -0
  19. {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
+ [![PyPI](https://img.shields.io/pypi/v/axio-tools-docker)](https://pypi.org/project/axio-tools-docker/)
14
+ [![Python](https://img.shields.io/pypi/pyversions/axio-tools-docker)](https://pypi.org/project/axio-tools-docker/)
15
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](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
@@ -1,7 +1,8 @@
1
1
  [project]
2
2
  name = "axio-tools-docker"
3
- version = "0.2.0"
3
+ version = "0.2.2"
4
4
  description = "Docker sandbox tools for Axio"
5
+ readme = "README.md"
5
6
  requires-python = ">=3.12"
6
7
  license = {text = "MIT"}
7
8
  dependencies = ["axio"]
@@ -13,19 +13,19 @@ wheels = [
13
13
 
14
14
  [[package]]
15
15
  name = "axio"
16
- version = "0.1.1"
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/d5/c4/9fb5beefc5fa3090de3bfbdbf761fa14b0467e04d60f464166ccc0e9ca4c/axio-0.1.1.tar.gz", hash = "sha256:c59d8b246355379653dc967306189d997328dbfe145bbddf8873ec5786f48420", size = 53962, upload-time = "2026-03-22T18:38:36.497Z" }
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/19/07/74deca7e757a5e66fe58ad0c54e605764e8407c49021dd5fe4d9947c9f8b/axio-0.1.1-py3-none-any.whl", hash = "sha256:b764858e311825e5648354fda579894cc522a10d3bc4cf939e8517ffc2fb1b54", size = 16836, upload-time = "2026-03-22T18:38:35.348Z" },
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.0"
28
+ version = "0.2.2"
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.0
4
- Summary: Docker sandbox tools for Axio
5
- License: MIT
6
- License-File: LICENSE
7
- Requires-Python: >=3.12
8
- Requires-Dist: axio