Skip to main content

Command-line interface for Reliability Studio (Iso AI).

Project description

iso-obs-cli

Command-line interface for Reliability Studio. Installs the iso command.

Installation

pip install iso-obs-cli

Usage

# Store an API key (written to ~/.config/iso-obs/config.toml, mode 600).
iso auth login --api-key <YOUR_KEY>

# Show the masked key and the API base URL in use.
iso auth whoami

# Create a project and write iso-obs.toml in the current directory.
iso project init --name "lunar-lander"

# Register a system version.
iso system register \
    --project prj_1234567890abcdef12345678 \
    --name "lander-policy" \
    --version "1.2.0" \
    --artifact-uri s3://models/lander-1.2.0.pt

# Inspect a run and its metrics.
iso run inspect run_1234567890abcdef12345678

# Inspect and audit local dataset evidence without an API key.
iso dataset ingest trajectories.jsonl \
    --plan ingestion-plan.json \
    --output dataset-bundle.json \
    --report ingestion-report.json
iso dataset inspect dataset-bundle.json
iso dataset synchronize dataset-bundle.json --plan synchronization-plan.json
iso dataset audit dataset-bundle.json --plan reliability-audit-plan.json
iso dataset split split-request.json
iso dataset compile-replay replay-request.json \
    --bundle dataset-bundle.json \
    --synchronization synchronization-report.json \
    --adapter simulation-adapter.json \
    --output failure-replay-capsule.json

# Submit any SDK report produced with report.to_json().
iso evidence submit evidence-report.json --project-id prj_1234567890abcdef12345678

# Print the CLI version.
iso version

Configuration

Source Purpose
ISO_OBS_API_KEY API key; overrides the stored config.
ISO_OBS_BASE_URL API base URL; defaults to https://reliability-studio-5cmy6.ondigitalocean.app/api/v1.
~/.config/iso-obs/config.toml Key stored by iso auth login.

Dataset audit commands emit canonical JSON to stdout, or to a new file with --output. Ingestion creates a linked bundle/report pair at the required --output and --report paths. Existing files are never overwritten.

JSONL ingestion is available in the base installation. Install the optional Parquet or MCAP readers with:

pip install "iso-obs[parquet]"
pip install "iso-obs[mcap]"
pip install "iso-obs[mcap-ros2]"  # includes decoded ROS 2 messages
pip install "iso-obs[rosbag2]"     # split MCAP recordings + metadata.yaml

Ingestion requires explicit nested field paths, timestamp units, channel modalities, and clock identifiers. It hashes source bytes and payload content but does not infer labels, clock alignment, or dataset split roles.

MCAP plans additionally declare topic names, expected message and schema encodings, raw/JSON/decoded payload handling, timestamp source, and episode windows. The same command selects the MCAP contract by its schema version:

iso dataset ingest recording.mcap \
    --plan mcap-ingestion-plan.json \
    --output dataset-bundle.json \
    --report ingestion-report.json

The reader validates available chunk and data-section CRCs and preserves physical record order. Log time, publish time, and ROS header time are never substituted for one another.

For a rosbag2 directory containing metadata.yaml and split MCAP files, use a versioned iso-obs.rosbag2-mcap-ingestion-plan.v1 wrapper around the MCAP plan:

iso dataset ingest robot-run-42/ \
    --plan rosbag2-ingestion-plan.json \
    --output dataset-bundle.json \
    --report ingestion-report.json \
    --recording-report recording-evidence.json

The recording evidence is required. It retains the metadata digest, ordered file paths and digests, byte counts, declared and observed message/timing statistics, and topic-level type/serialization checks. File order comes from metadata, while physical order is preserved within each file. The CLI does not glob files, globally sort messages, or deduplicate repeated split-boundary messages. Manifest disagreement and overlapping file times produce exit code 3 with all three artifacts intact.

iso dataset compile-replay joins a strict replay request with its immutable dataset bundle, synchronization report, simulator adapter manifest, and optional rosbag2 recording evidence. It preserves a valid capsule at --output, including review and insufficient-evidence results. Exit code 3 means either reconstruction is approximate or the failure claim requires review; inspect the independent fidelity and failure_claim_qualification fields. Exit code 5 means replay construction is blocked. Cross-artifact digest or identity mismatches are invalid input and produce exit code 2 without an output capsule.

Exit codes:

Code Meaning
0 Operation succeeded; the scientific claim is supported within scope.
1 API or network failure.
2 Usage, local input, or authentication failure.
3 A valid report requires review.
4 The split audit demonstrates contamination.
5 The report abstains because evidence is insufficient.

Nonzero scientific outcomes still emit the full report. Automation should retain that artifact rather than relying on the exit code alone.

Evidence report submission

iso evidence submit <report.json> accepts SDK reports that use either the top-level report_schema_version or schema_version convention. It validates the report as an unambiguous JSON object, serializes it using the SDK's canonical JSON rules, computes the corresponding sha256: content digest, and posts the integrity envelope to /evidence/reports with the configured bearer API key.

Use --project-id to associate the report with a project. The command reports whether the platform created the content-addressed record (201) or returned the existing record (200). Conflicting versions, duplicate JSON keys, non-finite numbers, and malformed reports are rejected locally before a network request.

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

iso_obs_cli-0.1.0.tar.gz (16.0 kB view details)

Uploaded Source

Built Distribution

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

iso_obs_cli-0.1.0-py3-none-any.whl (23.4 kB view details)

Uploaded Python 3

File details

Details for the file iso_obs_cli-0.1.0.tar.gz.

File metadata

  • Download URL: iso_obs_cli-0.1.0.tar.gz
  • Upload date:
  • Size: 16.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.4

File hashes

Hashes for iso_obs_cli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5b24985b159f9791a7bb80b24917b81c4369b2712b55dd41c23a206985005104
MD5 58af42859923c4d6440d4822bf49050d
BLAKE2b-256 5641f62e729594fc0154412d70d993b73c9a2a31c09c3a7ccdd71a0882ecda26

See more details on using hashes here.

File details

Details for the file iso_obs_cli-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: iso_obs_cli-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 23.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.4

File hashes

Hashes for iso_obs_cli-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 98c2ac76de80cefc7bcbb4a73981474ad1f5044af012b9834b9254433b604fbf
MD5 cd4a7077e72ea581b4a4b3b46da8bfb3
BLAKE2b-256 70d1a286dc68a9b380957461ad8b416719ea96e82a1430334fadb6c7ee8f110e

See more details on using hashes here.

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