JARVIS Atomic Executor implementation for the ARP Standard (spec/v1).
Project description
JARVIS Atomic Executor
First-party OSS reference implementation of the ARP spec/v1 Atomic Executor.
This JARVIS component implements the Atomic Executor API using the SDK packages:
arp-standard-server, arp-standard-model, and arp-standard-client.
Implements: ARP Standard spec/v1 Atomic Executor API (contract: ARP_Standard/spec/v1/openapi/atomic-executor.openapi.yaml).
Requirements
- Python >= 3.11
Install
python3 -m pip install -e .
Local configuration (optional)
For local dev convenience, copy the example env file:
cp .env.example .env.local
src/scripts/dev_server.sh auto-loads .env.local (or .env).
Run
- Atomic Executor listens on
http://127.0.0.1:8082by default.
python3 -m pip install -e .
jarvis-atomic-executor
[!TIP] Use
bash src/scripts/dev_server.sh --host ... --port ... --reloadfor dev convenience.
Using this repo
This repo is the maintained JARVIS reference for atomic execution. Add or replace handlers while preserving ARP request/response semantics.
This executor auto-loads installed node packs via the jarvis.nodepacks entry point group (see arp-jarvis-atomic-nodes).
If you want to override the default handler registry, pass handlers=... when constructing AtomicExecutor.
Default behavior
- Loads handlers from installed node packs (entry points).
- Includes
jarvis.core.echofrom the core pack. execute_atomic_node_runreturnssucceededwithoutputs={"echo": inputs}for the echo node.- Unknown
node_type_idreturnsfailedwith an error payload. cancel_atomic_node_runcancels in-flight handler execution (best-effort).
Common extensions
- Add more node packs or override the handler registry explicitly.
- Customize cancellation behavior (cooperative cancellation, idempotency, timeouts).
- Configure timeouts/concurrency controls around handler execution.
Implementation overview
Request flow:
- Inbound request hits the Atomic Executor (
arp-standard-server). - Auth middleware validates the
Authorization: Bearer <JWT>header (when enabled). - The executor routes by
node_type_ref.node_type_idand calls the matching handler. - The executor returns
AtomicExecuteResultwith outputs and timing metadata.
System-of-record:
- The Atomic Executor does not store run state or emit durable run events.
- The Run Coordinator is responsible for orchestration, durability, and emitting
atomic_executed.
Quick health check
curl http://127.0.0.1:8082/v1/health
Configuration
CLI flags:
--host(default127.0.0.1)--port(default8082)--reload(dev only)
Environment variables:
- Incoming JWT validation is configured via
ARP_AUTH_PROFILEandARP_AUTH_*overrides (see.env.example). - Optional execution controls:
JARVIS_DEFAULT_TIMEOUT_SECS(coarse per-request timeout)JARVIS_MAX_CONCURRENCY(cap concurrent executions)
Validate conformance (arp-conformance)
python3 -m pip install arp-conformance
arp-conformance check atomic-executor --url http://127.0.0.1:8082 --tier smoke
arp-conformance check atomic-executor --url http://127.0.0.1:8082 --tier surface
Helper scripts
-
src/scripts/dev_server.sh: run the server (flags:--host,--port,--reload). -
src/scripts/send_request.py: execute an atomic NodeRun from a JSON file.python3 src/scripts/send_request.py --request src/scripts/request.json
Note: this helper does not include an
Authorizationheader. For a quick local run, setARP_AUTH_PROFILE=dev-insecure(dev only), or call the Atomic Executor via the Run Coordinator (recommended).
Authentication
This service validates incoming JWTs (authn). It does not perform token exchange.
Auth is enabled by default (JWT). To disable for local dev, set ARP_AUTH_PROFILE=dev-insecure.
If no ARP_AUTH_* env vars are set, the service defaults to required JWT auth with the dev Keycloak issuer.
To enable local Keycloak defaults, set:
ARP_AUTH_PROFILE=dev-secure-keycloakARP_AUTH_AUDIENCE=arp-atomic-executorARP_AUTH_ISSUER=http://localhost:8080/realms/arp-dev
Coordinator → Atomic Executor calls
In the JARVIS stack, the Run Coordinator is expected to:
- mint/exchange a service-scoped JWT for the Atomic Executor audience via STS (OIDC/RFC 8693)
- call
POST /v1/atomic-node-runs:executewithAuthorization: Bearer <token>
The Atomic Executor validates the JWT (signature + optional iss/aud) and executes the handler.
Upgrading
When upgrading to a new ARP Standard SDK release, bump pinned versions in pyproject.toml (arp-standard-*==...) and re-run conformance.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file arp_jarvis_atomic_executor-0.3.8.tar.gz.
File metadata
- Download URL: arp_jarvis_atomic_executor-0.3.8.tar.gz
- Upload date:
- Size: 9.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e244175d74b9e72ccf49f51404c249392c1adc0d0975440c05fd64cda1c34098
|
|
| MD5 |
0e287ceee71a68fdebd7923a9567ddce
|
|
| BLAKE2b-256 |
cbef43cacd02760da8a6d7b7b32ad6a66a17b4bb866b736c870677254ab6e4ff
|
Provenance
The following attestation bundles were made for arp_jarvis_atomic_executor-0.3.8.tar.gz:
Publisher:
publish.yml on AgentRuntimeProtocol/JARVIS_AtomicExecutor
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
arp_jarvis_atomic_executor-0.3.8.tar.gz -
Subject digest:
e244175d74b9e72ccf49f51404c249392c1adc0d0975440c05fd64cda1c34098 - Sigstore transparency entry: 790399605
- Sigstore integration time:
-
Permalink:
AgentRuntimeProtocol/JARVIS_AtomicExecutor@98fb5c644b90289c855b1f62514906b6a9a7ad52 -
Branch / Tag:
refs/tags/v0.3.8 - Owner: https://github.com/AgentRuntimeProtocol
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@98fb5c644b90289c855b1f62514906b6a9a7ad52 -
Trigger Event:
push
-
Statement type:
File details
Details for the file arp_jarvis_atomic_executor-0.3.8-py3-none-any.whl.
File metadata
- Download URL: arp_jarvis_atomic_executor-0.3.8-py3-none-any.whl
- Upload date:
- Size: 10.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cf6fb32bc0eec7eb2d4e60a96c2f258db7a4e79263f3d92bad6983783efbd62b
|
|
| MD5 |
cfc1a823358d9a31b5a7e1e63cbaa335
|
|
| BLAKE2b-256 |
4d6c97c371de98abbd57a5d4d30e91f26eee44861caa1646676a3d7b4378e878
|
Provenance
The following attestation bundles were made for arp_jarvis_atomic_executor-0.3.8-py3-none-any.whl:
Publisher:
publish.yml on AgentRuntimeProtocol/JARVIS_AtomicExecutor
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
arp_jarvis_atomic_executor-0.3.8-py3-none-any.whl -
Subject digest:
cf6fb32bc0eec7eb2d4e60a96c2f258db7a4e79263f3d92bad6983783efbd62b - Sigstore transparency entry: 790399611
- Sigstore integration time:
-
Permalink:
AgentRuntimeProtocol/JARVIS_AtomicExecutor@98fb5c644b90289c855b1f62514906b6a9a7ad52 -
Branch / Tag:
refs/tags/v0.3.8 - Owner: https://github.com/AgentRuntimeProtocol
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@98fb5c644b90289c855b1f62514906b6a9a7ad52 -
Trigger Event:
push
-
Statement type: