Skip to main content

onepipeline-ui

The read API and browser view for onepipeline runs: an axum server wrapping the onepipeline SDK, plus the frontend that reads it.

The contract

docs/contract.md is the source of truth, quoted verbatim from the task that commissioned this repository. tests/contract.rs reconciles the code against it, so a route that exists in one and not the other fails the gate.

GET /healthz
GET /api/v2/runs                      # list w/ session attribution
GET /api/v2/runs/{run}                ?include_conversations=bool
GET /api/v2/runs/{run}/timeline       ?scope=run|node&node=ID
GET /api/v2/runs/{run}/conversations/{id}
GET /api/v2/runs/{run}/artifacts/{id}
GET /api/v2/events                    # SSE; fresh snapshot per connection
GET /api/v2/projects                  # runs grouped by project, as `onepipeline runs` groups them
GET /api/v2/projects/{project}
GET /api/v2/runs/{run}/channel        # the channel, consuming nothing
POST /api/v2/runs/{run}/channel/next  # claim the next surface
POST /api/v2/runs/{run}/channel/reply # the envelope's bytes, verbatim; ?correlation=C
POST /api/v2/runs/{run}/channel/surface
POST /api/v2/runs/{run}/attest
POST /api/v2/runs/{run}/stop          # as the session `--session` names
POST /api/v2/runs/{run}/adopt         # retains this binary as the driver
GET /api/v2/runs/{run}/watch          # SSE over `onepipeline watch`
GET /api/v2/unwatched
GET /api/v2/host
GET /api/v2/runs/{run}/status
GET /api/v2/runs/{run}/results
GET /api/v2/goals
GET /api/v2/runs/{run}/goals
GET /api/v2/runs/{run}/transcript     ?node=ID
GET /api/v2/runs/{run}/telemetry
GET /api/v2/runs/{run}/agents         # every oneharness session the run launched
GET /api/v2/runs/{run}/nodes/{node}/agents
GET /api/v2/projects/{project}/agents # the union over the project's runs

The first seven are the read surface the browser view was written against; the rest are every verb the onepipeline CLI has once a plan is running, wrapped — each a thin call into onepipeline::verbs, never a re-implementation and never the binary. Launching a plan and driving the planning stage are outside this API; a reply on any run's channel is inside it. The server acts as one launching session (--session ID, else ONEPIPELINE_LAUNCHER_SESSION), which is what its stops and adoptions are judged by.

Every successful response carries the schema-version preamble — api_version, telemetry_schema_version (19), observed_at — with the payload flattened alongside it. Every failure carries {"error": {"code", "message"}}.

Payloads themselves come from the onepipeline SDK. Anything presentation-worthy lands there first, so the agent reading the CLI sees at least what the human in the UI sees; this crate owns the envelope, not the records.

The view

apps/dag-ui is the DAG Observatory: the browser view of the same runs, reading nothing but the contract above. It declares no schema, event name, or API path of its own — packages/dag-model holds the contract's client half, packages/telemetry-client is the only thing that speaks HTTP, and packages/dag-layout is the graph geometry. docs/dag-ui.md is its design record.

Install

Two deliverables, split by what they contain.

The read API, as the same prebuilt binary on three registries:

cargo install onepipeline-ui --locked  # from crates.io
pip install onepipeline-api-cli        # prebuilt wheel, no Rust toolchain
npm install -g onepipeline-api-cli     # prebuilt binary, no Rust toolchain

All three install one command, onepipeline-api:

onepipeline-api serve --runs-root ./runs        # the read API
onepipeline-api serve --runs-root ./runs --ui   # and the browser view, on the same address

--ui serves the DAG Observatory at / beside the API, with /api/v2/… and /healthz unchanged and every path the bundle has no file for answered with its index.html, so a deep link opens. The view is built into the binary — the prebuilt wheels, npm packages and release archives all carry the bundle of their own release — so a host that installed only the command needs no npm package to open it. cargo install from crates.io compiles from source and embeds the view only where apps/dag-ui/dist has been built beforehand; a binary without one refuses --ui and says so. --ui-dist DIR serves a bundle on disk instead, for developing the view against a real runs root.

The view is also published on its own, as a static bundle on npm:

npm install onepipeline-ui             # the built frontend under dist/

That package installs no command — it is dist/, to be served statically or handed to --ui-dist. It is the same bundle --ui serves.

Prebuilt archives and their .sha256 checksums are also attached to every GitHub Release.

Develop

just bootstrap        # from a clean clone
just check            # the deterministic gate, every project
just gate             # `check` plus the llmlint LLM-judge tier — the pre-push bar
just dag-ui-screens   # photograph the view at every viewport into a gallery

just --list is the full command surface. AGENTS.md is the durable instruction layer for humans and agents working here.

License

MIT. See LICENSE.

Release files for onepipeline-api-cli 0.11.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for onepipeline-api-cli 0.11.1
File
onepipeline_api_cli-0.11.1-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
onepipeline_api_cli-0.11.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
onepipeline_api_cli-0.11.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
onepipeline_api_cli-0.11.1-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
onepipeline_api_cli-0.11.1-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details

Total release size: 56.2 MB

Release files / onepipeline_api_cli-0.11.1-py3-none-win_amd64.whl

Download URL onepipeline_api_cli-0.11.1-py3-none-win_amd64.whl
Size 12.3 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
b6a19c92d279785f9f2624d09b383b2e8d1bf56186447eb76ba7ff039f72fd64
BLAKE2b-256 checksum
How to use checksums
bc5f1a4cfc4536f6bf6ea8976e337ef3fde724487838cc1c3c6f2a3df3144e56
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / onepipeline_api_cli-0.11.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL onepipeline_api_cli-0.11.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 11.5 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
56793d73323b4fcdd56f280feb18253235fb2495d4bbe44ab845fcd9e5c7f7e1
BLAKE2b-256 checksum
How to use checksums
bb013c22839606667db3ec21ab4ed2d0ad7b411c3f7927315cfbf223632f8810
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / onepipeline_api_cli-0.11.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL onepipeline_api_cli-0.11.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 10.7 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
a8306ee57dea27b7d2de605c4b236206dbaea378357304522ad777f81ed753f0
BLAKE2b-256 checksum
How to use checksums
bc53d19bddad8d67fd9c14cb5ba5c4bd58a20c9b582ac018e3a41b7a4445c74b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / onepipeline_api_cli-0.11.1-py3-none-macosx_11_0_arm64.whl

Download URL onepipeline_api_cli-0.11.1-py3-none-macosx_11_0_arm64.whl
Size 10.5 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
afc72f304fa265b8bbc800237fa4693666b3fc87c6e94a48afc918a7dafe5664
BLAKE2b-256 checksum
How to use checksums
a86eebf2103c3afdb4cd0efceb10e0362f9bd19adf0c839deca060d84ee5ba00
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / onepipeline_api_cli-0.11.1-py3-none-macosx_10_12_x86_64.whl

Download URL onepipeline_api_cli-0.11.1-py3-none-macosx_10_12_x86_64.whl
Size 11.2 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
6a5069bf73a89e557ba12d85a79afe7efa3c7ccb653577f562d0c3ffe70dcd5e
BLAKE2b-256 checksum
How to use checksums
3c381f55261dc6304f1628037f9d9a3ed965207a4d792b2504b018c9e9151f19
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

0.13.0

5 release files

0.12.1

5 release files

0.11.2

5 release files

This release

0.11.1 This release

5 release files

0.11.0

5 release files

0.10.1

5 release files

0.9.0

5 release files

0.8.0

5 release files

0.7.3

5 release files

0.7.2

5 release files

0.7.1

5 release files

0.7.0

5 release files

0.6.5

5 release files

0.6.4

5 release files

0.6.3

5 release files

0.6.2

5 release files

0.6.1

5 release files

0.6.0

5 release files

0.5.0

5 release files

0.4.0

5 release files

0.3.4

5 release files

0.3.3

5 release files

0.3.2

5 release files

0.3.1

5 release 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