Skip to main content

JARVIS Component Implementations

This section documents how the first-party JARVIS components are implemented and how to run them locally.

ARP Standard vs. JARVIS

JARVIS is an implementation of the ARP Standard contracts. If you’re looking for normative endpoints and schemas (what every conformant service MUST implement), start with ARP Standard: Services.

How the pieces fit together

JARVIS is a node-centric execution fabric:

  • Run Gateway is the client entrypoint (stateless proxy).
  • Run Coordinator is the run authority (system-of-record; enforcement and dispatch).
  • Atomic Executor executes atomic NodeRuns.
  • Composite Executor executes composite NodeRuns (planning + binding + arg-gen).
  • Node Registry catalogs NodeTypes.
  • Selection Service produces bounded candidate sets.
  • PDP returns allow/deny decisions (optional).

Internal persistence/services used by the coordinator:

  • Run Store
  • Event Stream
  • Artifact Store

Components

Recommended local deployment is via the version-pinned JARVIS_Release stack managed with arp-jarvis stack (GHCR images).

ComponentCompose serviceInternal URLExposed host URLDocs
Run Gatewayrun-gatewayhttp://run-gateway:8080http://127.0.0.1:8081Run Gateway
Run Coordinatorrun-coordinatorhttp://run-coordinator:8081http://127.0.0.1:8082Run Coordinator
Atomic Executoratomic-executorhttp://atomic-executor:8082(not exposed)Atomic Executor
Composite Executorcomposite-executorhttp://composite-executor:8083(not exposed)Composite Executor
Node Registrynode-registryhttp://node-registry:8084(not exposed)Node Registry
Selection Serviceselection-servicehttp://selection-service:8085(not exposed)Selection Service
PDPpdphttp://pdp:8086(not exposed)PDP

Notes:

  • Exposed ports are the default JARVIS_Release host port mappings and may vary by profile.
  • To debug a non-exposed service, use arp-jarvis stack exec <service> -- <cmd> (or docker compose exec) or temporarily add a ports: mapping in compose/docker-compose.yml.

Common conventions

  • ARP Standard Python packages: components use arp-standard-model, arp-standard-client, and arp-standard-server for spec-aligned types and scaffolding.
  • Versioned HTTP APIs: ARP services use /v1/... endpoints and expose GET /v1/health + GET /v1/version.
  • Recommended bring-up: for most users, JARVIS_Release + arp-jarvis stack is the supported way to run JARVIS locally and in production-like environments.