Skip to main content

First-party atomic node pack for the JARVIS stack (metadata + handlers).

Project description

JARVIS Atomic Nodes (Node Pack)

First-party “node pack” for the JARVIS stack. This package provides:

  • NodeType metadata for Node Registry + Selection
  • Atomic handler implementations for Atomic Executor

This is a trusted, in-process node pack (v0.x). It does not implement runtime code download.

Install

Metadata-only (safe for Node Registry):

python3 -m pip install arp-jarvis-atomic-nodes

Or explicitly:

python3 -m pip install "arp-jarvis-atomic-nodes[metadata]"

Runtime handlers (Atomic Executor):

python3 -m pip install "arp-jarvis-atomic-nodes[runtime]"

Usage

NodeType metadata (Node Registry)

from jarvis_atomic_nodes.catalog import node_types

node_type_list = node_types()

Handler registry (Atomic Executor)

from jarvis_atomic_nodes.handlers import handlers

handler_map = handlers(require_http=True)

Authoring nodes (JSON-first)

from typing import Any

from jarvis_atomic_nodes.sdk import atomic_node, NodeContext

HEALTH_INPUT_SCHEMA = {
    "type": "object",
    "additionalProperties": False,
    "properties": {
        "base_url": {"type": ["string", "null"]},
    },
    "required": ["base_url"],
}

HEALTH_OUTPUT_SCHEMA = {
    "type": "object",
    "additionalProperties": False,
    "properties": {
        "status_code": {"type": "integer"},
        "text": {"type": "string"},
    },
    "required": ["status_code", "text"],
}

@atomic_node(
    name="acme.api.health",
    side_effect="read",
    input_schema=HEALTH_INPUT_SCHEMA,
    output_schema=HEALTH_OUTPUT_SCHEMA,
)
async def acme_api_health(inputs: dict[str, Any], ctx: NodeContext) -> dict[str, Any]:
    """Call `GET /health` on an existing service and return the raw response text."""
    base_url = (inputs.get("base_url") or "").strip()
    if not base_url:
        raise ValueError("Missing base_url")
    resp = await ctx.http.get(f"{base_url.rstrip('/')}/health")
    return {"status_code": resp.status_code, "text": resp.text}

Entry point discovery

This package exposes a NodePack entry point:

  • group: jarvis.nodepacks
  • name: jarvis.core
  • object: jarvis_atomic_nodes.pack:core_pack
from jarvis_atomic_nodes.discovery import load_nodepacks, load_handlers, load_node_types

packs = load_nodepacks()
handlers = load_handlers()
node_types = load_node_types()

NodeType extensions metadata

Each NodeType emitted by this pack includes JARVIS metadata in NodeType.extensions, including:

  • jarvis.pack_id / jarvis.pack_version (provenance)
  • jarvis.node_name (stable node name)
  • jarvis.side_effect, jarvis.trust_tier (governance hints)
  • Optional: jarvis.egress_policy, jarvis.budget_hints, jarvis.tags

Node Registry stores these fields verbatim and Selection Service may use a subset to enrich candidate ranking.

Full cross-stack list: https://github.com/AgentRuntimeProtocol/BusinessDocs/blob/main/Business_Docs/JARVIS/Extensions.md.

Included nodes (v0.3.7 baseline)

Core:

  • jarvis.core.echo
  • jarvis.core.sleep
  • jarvis.core.uuid4
  • jarvis.core.time.now
  • jarvis.core.hash.sha256

HTTP:

  • jarvis.web.fetch

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

arp_jarvis_atomic_nodes-0.3.8.tar.gz (9.3 kB view details)

Uploaded Source

Built Distribution

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

arp_jarvis_atomic_nodes-0.3.8-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

Details for the file arp_jarvis_atomic_nodes-0.3.8.tar.gz.

File metadata

  • Download URL: arp_jarvis_atomic_nodes-0.3.8.tar.gz
  • Upload date:
  • Size: 9.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for arp_jarvis_atomic_nodes-0.3.8.tar.gz
Algorithm Hash digest
SHA256 1ae7a2419d69dab0682d9b51efcdb0e2db0329d52776b913ea43d8bf171fcb88
MD5 12d8790363ab583f052d09cdb4577889
BLAKE2b-256 6f97119482da88d1afa972246a297da8c1b723d51778c6273aad0737e5ae681f

See more details on using hashes here.

Provenance

The following attestation bundles were made for arp_jarvis_atomic_nodes-0.3.8.tar.gz:

Publisher: release.yml on AgentRuntimeProtocol/JARVIS_AtomicNodes

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

File details

Details for the file arp_jarvis_atomic_nodes-0.3.8-py3-none-any.whl.

File metadata

File hashes

Hashes for arp_jarvis_atomic_nodes-0.3.8-py3-none-any.whl
Algorithm Hash digest
SHA256 2ef97d34711220ee9f7d9d6fb087678ba325eec56eb889a28d29b3d751bb0da7
MD5 f3d2ecf6262064fdfb2ed9ee24490f9a
BLAKE2b-256 ffba8b1e70a238071cf3ef978e8b168fc098e41a405b9b94b1ab6eb1bf733818

See more details on using hashes here.

Provenance

The following attestation bundles were made for arp_jarvis_atomic_nodes-0.3.8-py3-none-any.whl:

Publisher: release.yml on AgentRuntimeProtocol/JARVIS_AtomicNodes

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

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page