Jarvis miner orchestration with a shared Workstream API for personal operators.
Jarvis is the miner-facing/admin control plane and work-routing layer.
Personal operators do not use the CLI and do not join upstream networks directly. They call the shared Workstream HTTP API, submit candidate work, and Jarvis decides what becomes canonical truth for the matching internal adapter.
The active SN13 path is:
real Gravity/DD -> planner -> durable workstream
-> workstream API submissions -> SN13 intake + quality gate
-> canonical SQLite -> miner index / validator responses
-> upstream export + Jarvis archive
The current SN13 workstream model is open competitive intake:
- tasks are open to multiple operators
- operators submit against the published contract
- duplicates and out-of-contract data are rejected
- each task closes when accepted-cap is reached or the task expires
jarvis-orchestrator/
├── cli/ # CLI commands
│ └── README.md # CLI documentation
├── workstream/ # Shared task store, strict API models, FastAPI transport
├── subnets/ # Per-subnet miner implementations
│ ├── sn6/ # Numinous — forecasting
│ └── sn13/ # Data Universe — data scraping
├── miner_tools/ # Shared operational tooling
│ └── README.md # Tools documentation
├── tests/
├── docs/
└── pyproject.toml
For the current runnable local operator flow, read docs/RUN_SN13_LOCALLY.md first.
# Install
uv pip install --python .venv/bin/python -e .
ln -sf "$(pwd)/.venv/bin/jarvis-miner" ~/.local/bin/jarvis-miner
# CLI help
jarvis-miner --help
# Registration price monitor and old compatibility aliases
jarvis-miner monitor price 13
jarvis-miner monitor watch
jarvis-miner deregister-check
# Admin starts the workstream HTTP boundary
JARVIS_WORKSTREAM_OPERATOR_SECRETS_JSON='{"operator_1":"<shared-secret>"}' \
jarvis-miner workstream serve
# For local-only unsigned development
export JARVIS_WORKSTREAM_REQUIRE_AUTH=0
# Admin publishes planned SN13 work into the durable workstream
jarvis-miner sn13 plan publish --sample-dd --json-output \
--max-task-cost 20 --expected-reward 30 --expected-submitted 1200 \
--expected-accepted 900 --duplicate-rate 0.04 --rejection-rate 0.10 \
--validation-pass-probability 0.95 --payout-basis accepted_scorable_record
# Admin inspects workstream runtime state
jarvis-miner workstream status --json-output
jarvis-miner workstream tasks --status open --json-output
# Admin runs automated DD refresh + publication
jarvis-miner sn13 scheduler run --once \
--max-task-cost 20 --expected-reward 30 --expected-submitted 1200 \
--expected-accepted 900 --duplicate-rate 0.04 --rejection-rate 0.10 \
--validation-pass-probability 0.95 --payout-basis accepted_scorable_record
# SN13 readiness, real Gravity refresh, planning, and local simulation
jarvis-miner sn13 readiness --network testnet
jarvis-miner sn13 dd refresh
jarvis-miner sn13 dd show
jarvis-miner sn13 economics estimate --source X --label '#bittensor' --json-output
jarvis-miner sn13 plan tasks
jarvis-miner sn13 simulate cycle
jarvis-miner sn13 simulate operator --source X --label "#bittensor" --count 5
jarvis-miner sn13 simulate validator --query bucket --source X --label "#bittensor"Machine-readable admin commands accept both --json-output and the shorter --json.
Mainnet deployment package:
- deployment and cost brief:
docs/JARVIS_MAINNET_READINESS.md - Docker image:
Dockerfile - Compose stack:
docker-compose.yaml - deployment env:
deploy/jarvis.mainnet.env - monitor config:
deploy/monitor.mainnet.yaml
Runnable now:
- task publication into durable SQLite workstream
- workstream HTTP API for personal operators
- read-only human runtime dashboard at
/ - SN13 intake and quality gate into canonical SQLite
- operator stats and audit facts
Not end-to-end complete yet:
- live validator traffic verification on the SN13 listener
- upstream parquet export/upload
- Jarvis archive upload
- Engineering Gates
- Workstream Architecture
- Official Workstream Operator Skill
- CLI Admin Guide
- Miner Tools
- SN13 Architecture
- SN13 Operator Contract
- SN13 Economics
Project-local skills live in .agents/skills/ and are internal QA/development automation.
Current internal skills:
jarvis-test-runner: lint, focused tests, coverage gate, and integration gate executionjarvis-qa-review: architecture, economics, durability, and docs review
The external personal-operator instructions are published as Official Workstream Operator Skill, not as an internal project skill.
uv run pytest tests/ -v
uv run pytest -q -m integration tests/test_sn13_testcontainers.py
uv run ruff check cli/ miner_tools/ subnets/The integration test suite uses Testcontainers and requires Docker.
Current engineering rule:
- changes require tests
- economic decisions must be explicit
- architecture boundaries must remain consistent with the SN13 docs and workstream docs
CI runs through uv, verifies Docker availability, runs the SN13/CLI unit slice,
and then runs the Testcontainers-backed integration slice.
SN13's supported operator path is workstream-published scrape demand followed by intake enforcement. Old copied upstream docs, generated local state, mock query guides, and validator-query decomposition prototypes are removed from the repository.
Internal use only.