Stack distribution that pins compatible JARVIS components.
Project description
JARVIS Release (Stack Distribution)
JARVIS_Release is the version-pinned, runnable stack distribution for JARVIS (ARP spec/v1).
It ships a lock file + Docker Compose setup that brings up a full local stack with sensible defaults.
What this repo ships
Core spec-facing services:
- Run Gateway
- Run Coordinator
- Atomic Executor
- Composite Executor
- Node Registry
- Selection Service
- PDP
Internal JARVIS services:
- Run Store
- Event Stream
- Artifact Store
Local dev STS (default profile):
- Keycloak (
dev-secure-keycloak)
Version pinning
stack.lock.jsonis the stack source of truth (component versions, node pack versions, helper libs).pyproject.tomlpins the same component versions for thearp-jarvismeta package.
Decision: Mode B / per-service GHCR images.
Each JARVIS component repo publishes a GHCR image on vX.Y.Z tags. This repo consumes those images
via Docker Compose and pins the references in stack.lock.json.
Quickstart (CLI-first, dev-secure-keycloak)
- Copy the env template:
Default (dev-secure-keycloak):
cp compose/.env.example compose/.env.local
Dev-insecure (no inbound JWT):
cp compose/.env.example.insecure compose/.env.local
Optional (dev-insecure, macOS/Linux or WSL) one-command bring-up:
bash ./start_dev.sh \
--llm-api-key "<your_openai_api_key>" \
--llm-chat-model "gpt-4.1-mini"
- Configure the LLM (required for Selection Service + Composite Executor):
- Set
ARP_LLM_API_KEYandARP_LLM_CHAT_MODELincompose/.env.local. - OpenAI is the default profile;
ARP_LLM_PROFILE=openaiis optional. - For offline tests, you can opt into
ARP_LLM_PROFILE=dev-mock(not the default).
- Install the meta CLI:
python3 -m pip install -e .
arp-jarvis versions
This installs the arp-jarvis CLI version from your local checkout, while the Docker images remain pinned separately via STACK_VERSION in compose/.env.local and stack.lock.json.
- Bring up the stack and verify wiring:
arp-jarvis stack pull
arp-jarvis stack up -d
arp-jarvis doctor
- If using
dev-secure-keycloak(default), log in once:
arp-jarvis auth login
This is a browser/device flow. The CLI never asks for your password directly. For the default local realm, a dev user is pre-seeded; the credentials are only for the Keycloak login page during the browser step.
- Start a run:
arp-jarvis runs start --goal "Generate a UUID, then return it."
Notes:
- Keycloak is exposed on
http://localhost:8080(issuer default). - Run Gateway is exposed on
8081. Run Coordinator is exposed on8082(configure viaRUN_COORDINATOR_HOST_PORT). - If you change
KEYCLOAK_HOST_PORT, updateARP_AUTH_ISSUERincompose/profiles/dev-secure-keycloak.env. dev-insecuredisables inbound JWT checks but still runs Keycloak for service-to-service token exchange.- Node Registry runs with
ARP_AUTH_MODE=optionalto allow Selection Service calls (current Selection client does not attach bearer tokens).
Docker Compose fallback (no CLI)
docker compose --env-file compose/.env.local -f compose/docker-compose.yml up -d
curl -s http://localhost:8081/v1/health
Stack profiles
Set STACK_PROFILE in compose/.env.local to one of:
dev-secure-keycloak(default)dev-insecureenterprise(template only)
Meta CLI (arp-jarvis)
Convenience commands for interacting with the running stack:
arp-jarvis doctor
arp-jarvis auth login
arp-jarvis nodes list
arp-jarvis runs start --goal "Generate a UUID, then return it."
Compose wrapper (does not replace docker compose):
arp-jarvis stack up -d --print-command
You can also invoke component CLIs via arp-jarvis:
arp-jarvis run-gateway --help
arp-jarvis run-coordinator --help
arp-jarvis atomic-executor --help
Repo layout
JARVIS_Release/
stack.lock.json
compose/
docker-compose.yml
.env.example
profiles/
dev-secure-keycloak.env
dev-insecure.env
enterprise.env
keycloak/
realm-arp-dev.json
assets/ (diagrams, logos)
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-0.3.7.tar.gz.
File metadata
- Download URL: arp_jarvis-0.3.7.tar.gz
- Upload date:
- Size: 22.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
00e7828b34cc67c567c3ad3491c03f9f45e74e8c159387c8acfcec69220c099d
|
|
| MD5 |
fe956df84b600dec120d968ea67fb018
|
|
| BLAKE2b-256 |
c61276a951dc492bd83382821d6a65d2500a9de5ef7f24e95fde9797e1ea4763
|
Provenance
The following attestation bundles were made for arp_jarvis-0.3.7.tar.gz:
Publisher:
publish.yml on AgentRuntimeProtocol/JARVIS_Release
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
arp_jarvis-0.3.7.tar.gz -
Subject digest:
00e7828b34cc67c567c3ad3491c03f9f45e74e8c159387c8acfcec69220c099d - Sigstore transparency entry: 789936437
- Sigstore integration time:
-
Permalink:
AgentRuntimeProtocol/JARVIS_Release@2e5190e92eb6db19244c0af80ef65362f39658a9 -
Branch / Tag:
refs/tags/v0.3.7 - Owner: https://github.com/AgentRuntimeProtocol
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@2e5190e92eb6db19244c0af80ef65362f39658a9 -
Trigger Event:
push
-
Statement type:
File details
Details for the file arp_jarvis-0.3.7-py3-none-any.whl.
File metadata
- Download URL: arp_jarvis-0.3.7-py3-none-any.whl
- Upload date:
- Size: 21.9 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 |
a2075aa89aba31b8710bda0885aa06350211b54cf84addb2404bf884095c5637
|
|
| MD5 |
014daf05f41be84851bcf8bf00e7269d
|
|
| BLAKE2b-256 |
a579c12c7eaedba389ea8ad6b2cc9ad56c895d9f59f6f16ebdd64ace8761aaab
|
Provenance
The following attestation bundles were made for arp_jarvis-0.3.7-py3-none-any.whl:
Publisher:
publish.yml on AgentRuntimeProtocol/JARVIS_Release
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
arp_jarvis-0.3.7-py3-none-any.whl -
Subject digest:
a2075aa89aba31b8710bda0885aa06350211b54cf84addb2404bf884095c5637 - Sigstore transparency entry: 789936442
- Sigstore integration time:
-
Permalink:
AgentRuntimeProtocol/JARVIS_Release@2e5190e92eb6db19244c0af80ef65362f39658a9 -
Branch / Tag:
refs/tags/v0.3.7 - Owner: https://github.com/AgentRuntimeProtocol
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@2e5190e92eb6db19244c0af80ef65362f39658a9 -
Trigger Event:
push
-
Statement type: