Skip to main content

onepipeline

Execute a task DAG over oneagentgraph and onevcs, merging their event streams into one.

onepipeline is the composition layer. It owns the plan — a dependency graph mixing direct agent nodes, repository lifecycle nodes, and explicit human actions — schedules it in rounds, dispatches each node through a pluggable executor seam, and keeps a live channel open to the planner supervising the run. The agents come from oneagentgraph; the clones, worktrees, gates, and change requests come from onevcs. Dependency direction is one-way: neither sibling depends on this crate.

The public types, traits, config schemas, and CLI surface are the approved contract in docs/contract.md, compiled — and implemented behind it. onepipeline composes its two siblings by running their CLIs, so a build of either that still refuses will make the dispatches this crate starts refuse too; the composition layer itself is complete.

Install

pip install onepipeline-cli      # prebuilt binary, no Rust toolchain
npm install -g onepipeline-cli   # the same binary, via npm
cargo install onepipeline        # from crates.io, compiled locally

To install a revision that has not been released yet — which today is every revision, since the crate depends on its siblings by git and a git dependency cannot be published — build it from the repository:

cargo install --git https://github.com/nickderobertis/onepipeline --locked

Prebuilt archives for Linux (x86-64, arm64), macOS (Intel, Apple silicon), and Windows (x86-64) are attached to every release, with sha256 checksums.

What it does

onepipeline start plan.json --round-budget 14400 --heartbeat-interval 1800

start launches the run's dag-scope agent graph — a shipped default of an orchestrator member driving the engine, and a resettable-cron check-in member that surfaces a status when nobody has reported one for a while. Attached, it returns when the run settles; exit 3 means nothing is driving the run, and onepipeline adopt RUN attaches a fresh driver to the intact ledger.

The planner supervises over the channel:

onepipeline next run-1                                   # read the next surface
onepipeline reply run-1 <<<'{"version":1,"commands":[    # edit the live graph
  {"op":"retry","id":"failed","node":{"id":"retry","task":"..."}}]}'
onepipeline attest run-1 design-approval                 # complete a human action

Every edit is applied or rejected with a reason: reply exits 0 when the reconciler applied it, 1 when it is queued but not yet reconciled, and 2 when it was refused.

Read-only views — runs, status, host, monitor, results, goals, transcript, telemetry — report unread surfaces, driver liveness, and provider health without touching a run. status says what each in-flight node is doing right now, with an event count and an age; transcript RUN [NODE] renders a dispatched turn's tools and its words; telemetry reports what each party spent and where the wall clock went, in eight buckets that sum exactly. Anything nothing in the stack measures is reported absent, never as a zero.

Where a dispatch runs

The executor seam decides. v1 ships the local executor only; the trait and the rules grammar are shaped so a dispatch-server or Kubernetes executor is a config change rather than a code change.

executors:
  - {name: local, type: local, max_load1: 8.0, min_free_mem: 2GiB}
rules:
  - when: {executor_has_capacity: local}
    use: local
  - use: local

Ordered: the first rule whose when holds decides, and a rule with no when is the fallback. A when tests an executor's capacity, the node's own labels (when: {node_label: {persona: reviewer}}), or both — several conditions in one when all have to hold.

Development

just bootstrap   # from a clean clone
just check       # the deterministic gate
just gate        # check + the diff-scoped llmlint tier

just --list is the full command surface. docs/contract-divergences.md records every place the code could not compile the contract exactly as written, and what the planner who owns the contract ruled on each.

License

MIT.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

onepipeline_cli-0.1.5-py3-none-win_amd64.whl (1.2 MB view details)

Uploaded Python 3Windows x86-64

onepipeline_cli-0.1.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

onepipeline_cli-0.1.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

onepipeline_cli-0.1.5-py3-none-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

onepipeline_cli-0.1.5-py3-none-macosx_10_12_x86_64.whl (1.2 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file onepipeline_cli-0.1.5-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for onepipeline_cli-0.1.5-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 7c1d5567dc7c2eceaeb92778f43ca3873febe3c332f88e879805d2475e30e9ed
MD5 afe608580a3d639234f518471552e503
BLAKE2b-256 9f3fafd24124f40b12f0640957d8558aa11d81f5cf937d65f20793a2c25ab876

See more details on using hashes here.

File details

Details for the file onepipeline_cli-0.1.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for onepipeline_cli-0.1.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2be54d6c5ee7ae6c024c13ffe8ed2ca79f526c32ae620fc38db3acdb82b862b4
MD5 1e8e0970fee146dd103e6ba46a7a7215
BLAKE2b-256 e4cd1433a256129db2d8212059da93768fae6cb261d293451213fd5e72e36830

See more details on using hashes here.

File details

Details for the file onepipeline_cli-0.1.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for onepipeline_cli-0.1.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 19e817c76cfd8a655a804b9a86718d2a7d582303167cc541fae6050d0a59d3c5
MD5 e1d049ab5b4405f0a1abcde4a9fbd6c1
BLAKE2b-256 5e32af9eb04c2afc6fb139595ac0956cae02540c345e429c1671544fcdb37d5a

See more details on using hashes here.

File details

Details for the file onepipeline_cli-0.1.5-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for onepipeline_cli-0.1.5-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 25e56db096a876648708ff2a680ef8c4988709aeb2d8dd315abf95ef8255cbda
MD5 d83f4d45a9bf6d484bcbfe081609fcc9
BLAKE2b-256 c58b339e057076f47b4f9a1f8e5627525d530f27fe64f279f438f6ed26690bf9

See more details on using hashes here.

File details

Details for the file onepipeline_cli-0.1.5-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for onepipeline_cli-0.1.5-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a82ea02bda051013117becdf51ab535655d4d83e4681946149915d60630d8471
MD5 ee12afde5bfa22a274f4c0fb39b40c64
BLAKE2b-256 df22db5301a76c15f61db828d65540f50286237c96df19c9e71a1ed5b72052d0

See more details on using hashes here.

Release history Release notifications | RSS feed

0.18.3

5 files

0.18.2

5 files

0.18.1

5 files

0.18.0

5 files

0.17.5

5 files

0.17.4

5 files

0.17.3

5 files

0.17.2

5 files

0.17.1

5 files

0.16.4

5 files

0.16.3

5 files

0.16.2

5 files

0.16.1

5 files

0.15.2

5 files

0.15.1

5 files

0.15.0

5 files

0.14.2

5 files

0.14.1

5 files

0.14.0

5 files

0.13.0

5 files

0.12.4

5 files

0.12.3

5 files

0.12.2

5 files

0.12.1

5 files

0.12.0

5 files

0.11.0

5 files

0.10.1

5 files

0.10.0

5 files

0.9.0

5 files

0.8.6

5 files

0.8.5

5 files

0.8.4

5 files

0.8.3

5 files

0.8.2

5 files

0.8.1

5 files

0.8.0

5 files

0.7.5

5 files

0.7.4

5 files

0.7.3

5 files

0.7.2

5 files

0.7.1

5 files

0.7.0

5 files

0.6.3

5 files

0.6.2

5 files

0.6.1

5 files

0.6.0

5 files

0.5.0

5 files

0.4.0

5 files

0.3.1

5 files

0.3.0

5 files

0.2.0

5 files

0.1.15

5 files

0.1.14

5 files

0.1.13

5 files

0.1.12

5 files

0.1.11

5 files

0.1.10

5 files

0.1.9

5 files

0.1.8

5 files

0.1.7

5 files

0.1.6

5 files

This release

0.1.5 This release

5 files

0.1.4

5 files

0.1.3

5 files

0.1.2

5 files

0.1.1

5 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page