agentix-runtime-basic 0.1.0__tar.gz → 0.1.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.
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentix-runtime-basic
3
- Version: 0.1.0
3
+ Version: 0.1.3
4
4
  Summary: Shell + file I/O primitives for Agentix sandboxes
5
5
  Project-URL: Homepage, https://github.com/Agentiix/Agentix-Runtime-Basic
6
6
  Author: Agentiix
7
7
  License: MIT
8
8
  License-File: LICENSE
9
9
  Requires-Python: >=3.11
10
- Requires-Dist: agentix>=0.1.0
10
+ Requires-Dist: agentixx>=0.1.3
11
11
  Provides-Extra: dev
12
12
  Requires-Dist: pyright>=1.1.380; extra == 'dev'
13
13
  Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "agentix-runtime-basic"
7
- version = "0.1.0"
7
+ version = "0.1.3"
8
8
  description = "Shell + file I/O primitives for Agentix sandboxes"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -16,7 +16,7 @@ dependencies = [
16
16
  # only here so `pip install agentix-runtime-basic` brings agentix
17
17
  # along as a peer (entry-point discovery needs the framework
18
18
  # installed in the same venv).
19
- "agentix>=0.1.0",
19
+ "agentixx>=0.1.3",
20
20
  ]
21
21
 
22
22
  [project.optional-dependencies]
@@ -43,6 +43,14 @@ files = "agentix.files"
43
43
  # `agentix/files/` in the wheel.
44
44
  packages = ["src/agentix"]
45
45
 
46
+ # Plugin Nix expressions ship as wheel data next to each namespace's
47
+ # Python module. `agentix build` discovers them via
48
+ # `importlib.resources.files('agentix.<short>') / 'default.nix'` and
49
+ # composes them into the bundle image's runtime.
50
+ [tool.hatch.build.targets.wheel.force-include]
51
+ "src/agentix/bash/default.nix" = "agentix/bash/default.nix"
52
+ "src/agentix/files/default.nix" = "agentix/files/default.nix"
53
+
46
54
  [tool.ruff]
47
55
  line-length = 120
48
56
  target-version = "py311"
@@ -0,0 +1,18 @@
1
+ # System binaries the `agentix.bash` namespace expects on PATH inside
2
+ # the sandbox. `agentix build` discovers this file via
3
+ # `importlib.resources.files('agentix.bash') / 'default.nix'` after
4
+ # `pip install agentix-runtime-basic` lands it next to __init__.py.
5
+ #
6
+ # The function form `{ pkgs }: drv` is the plugin Nix convention: the
7
+ # builder hands every plugin the same Nixpkgs, so all plugins share one
8
+ # revision (no per-plugin version drift).
9
+
10
+ { pkgs }:
11
+
12
+ pkgs.symlinkJoin {
13
+ name = "agentix-bash-sys";
14
+ paths = with pkgs; [
15
+ bashInteractive
16
+ coreutils
17
+ ];
18
+ }
@@ -0,0 +1,13 @@
1
+ # `agentix.files` is pure-Python (stdlib path ops on /workspace), so it
2
+ # brings no system binaries of its own. The file exists for symmetry with
3
+ # `agentix.bash` — `agentix build`'s plugin scanner picks up every
4
+ # `agentix/<short>/default.nix` it finds, and shipping an explicit empty
5
+ # derivation here documents "this namespace deliberately needs nothing"
6
+ # instead of relying on absence.
7
+
8
+ { pkgs }:
9
+
10
+ pkgs.symlinkJoin {
11
+ name = "agentix-files-sys";
12
+ paths = [ ];
13
+ }
@@ -1,40 +0,0 @@
1
- # Runtime image — Python slim + framework venv + uv.
2
- #
3
- # `agentix build` auto-builds this image (from the repo root) when it's
4
- # missing locally. You don't normally run `docker build` directly.
5
- #
6
- # The runtime image carries:
7
- # /nix/runtime/ — framework venv (uv-managed); ENTRYPOINT runs from here
8
- # /nix/.wheels/ — the framework wheel, stashed for bundle stages to reuse
9
- # uv on $PATH — used by `agentix build`'s generated Dockerfile to
10
- # create one venv per namespace at /nix/<short>/
11
- #
12
- # Namespace bundles extend this image: each namespace gets `/nix/<short>/`
13
- # with its own uv venv + (optional) Nix sys-deps symlinked into bin/.
14
- # The multiplexer spawns one worker subprocess per namespace using that
15
- # namespace's interpreter and prepends `/nix/<short>/bin` to PATH so
16
- # `subprocess.run("git", ...)` in user code resolves transparently.
17
-
18
- FROM python:3.11-slim AS builder
19
- WORKDIR /build
20
- RUN pip install --no-cache-dir build
21
- COPY pyproject.toml README.md ./
22
- COPY agentix ./agentix
23
- RUN python -m build --wheel --outdir /dist
24
-
25
- FROM python:3.11-slim
26
- RUN pip install --no-cache-dir uv
27
-
28
- # Framework wheel — kept so each bundled namespace's venv can install it
29
- # without reaching PyPI.
30
- RUN mkdir -p /nix/.wheels
31
- COPY --from=builder /dist/*.whl /nix/.wheels/
32
-
33
- # Runtime's own venv. /nix/runtime owns the framework dispatcher;
34
- # the multiplexer is what spawns per-namespace workers.
35
- RUN uv venv /nix/runtime && \
36
- /nix/runtime/bin/pip install --no-cache-dir /nix/.wheels/agentix-*.whl
37
-
38
- EXPOSE 8000
39
- ENV AGENTIX_BIND_PORT=8000
40
- ENTRYPOINT ["/nix/runtime/bin/agentix-server"]