Skip to main content

axor-proxy

Observe-only tool proxy (Starlette + httpx). Sits in front of the agent's tools; forwards auth byte-for-byte, and only ever does two things: inject a declared fault (armed scenario), record an observation (status/sizes/hashes — never raw bodies). It never blocks the agent.

Arm a run with manifests (the tool-manifest/v1 objects the Config Builder emits) and it also holds an axor_core.governor.ToolCallGovernor for that run: every call whose arguments it can see is evaluated and the verdict recorded, the per-value taint ledger carries across the run, and nothing is blocked — the posture axor-wrap spells enforcement="off", with the same governor. This is the one integration that is not that flag on a WrappedToolset: an HTTP boundary has no callable to wrap. Without manifests nothing is governed, and the trace keeps the shape it had — a tool's effect class is the operator's declaration, never guessed from its name.

Run: uv run axor-proxy --demo --backend-url http://127.0.0.1:8400 (--demo registers mock broken tools, zero creds; --backend-url auto-uploads runs so Eval/Replay/Regression light up).

Modules:

Module Responsibility
app.py routes: /t/{tool} passthrough, /axor/runs arm→claim, /axor/runs/{id}/simulate, /axor/governed/spawn, preflight/health
runs.py run lifecycle; fault semantics from axor_eval; the run's governor; EvidenceCase construction
vault.py sink-side credential injection (§14.2): opt-in per tool, fetched at call time, never cached, fail-closed. check_vault_colocation refuses to arm it against a backend in another failure domain — the mode's cost is that backend's uptime, and §14.2 answers availability with co-location
run_cli.py axor-proxy run -- <cmd>: arm, execute a CLI agent, submit its stdout as the claim. Not a wrapper — it gates nothing; wrapping is what axor_wrap.WrappedToolset does to tool callables
faults.py / mock_tools.py fault application; demo mock tools
agent.py scripted agent — drives a run to completion over the proxy's own HTTP surface (the in-app "run an experiment")
recorder.py / upload.py JSONL trace writer; best-effort upload + auto-pin to the backend
governed.py demo governed node: a real axor_core IntentLoop (per-value taint enforcement) that produces an adapter-fidelity trace and stays live on the plane (heartbeats + desired-state), so Control shows it and interventions reach it

Endpoints are disarmed (503) unless a run is armed; the trace file on disk is the system of record even if upload fails.

Tests: uv run pytest packages/axor-proxy.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

axor_proxy-0.2.0.tar.gz (67.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

axor_proxy-0.2.0-py3-none-any.whl (52.6 kB view details)

Uploaded Python 3

File details

Details for the file axor_proxy-0.2.0.tar.gz.

File metadata

  • Download URL: axor_proxy-0.2.0.tar.gz
  • Upload date:
  • Size: 67.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for axor_proxy-0.2.0.tar.gz
Algorithm Hash digest
SHA256 48305f401dd4615083a780493770e1bc8142a5b37d7613656541b01d77a28ba7
MD5 d2d7e8ca529cba89b26cfcb9cf7a6db9
BLAKE2b-256 092593d85f5fef19b42c0f7d0269ae2b4b8ec5d755b676a2ee93bd32f7dc76a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for axor_proxy-0.2.0.tar.gz:

Publisher: release.yml on Bucha11/axor-control-plane

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file axor_proxy-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: axor_proxy-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 52.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for axor_proxy-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8539295925454cb2a75fbed8ef607f511ab9519802ba1097b4fc1bdf7796087d
MD5 92cea014257c28a09dde4fe164ca3634
BLAKE2b-256 4e2d14894c8d82fde7dea498d997fa8fad6b431783e1883a07f2d407004d8556

See more details on using hashes here.

Provenance

The following attestation bundles were made for axor_proxy-0.2.0-py3-none-any.whl:

Publisher: release.yml on Bucha11/axor-control-plane

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page