Anolis commissioning workbench with handoff export tooling.
Project description
anolis-workbench
Commissioning shell repository for Anolis.
Repository structure:
anolis_workbench/core— pure domain library (projects, renderer, launcher, exporter, validators, paths)anolis_workbench/server— unified HTTP server (Compose + Commission + Operate/v0/*proxy)anolis_workbench/cli— CLI entry points (anolis-workbench,anolis-package,anolis-validate)
Developer references:
- Contributing guide:
CONTRIBUTING.md - Changelog:
CHANGELOG.md
Quick Start
Download and run (recommended)
Desktop app (recommended for commissioning):
Download the latest Tauri desktop installer from Releases. Run the installer — the desktop wrapper bundles the Python runtime and starts automatically.
CLI / server via PyPI:
pip install anolis-workbench
anolis-workbench # starts the commissioning server
anolis-package <project> # build a handoff package
anolis-validate <pkg> # validate a handoff package
Requires Python 3.11+. Open http://127.0.0.1:3010 in a browser after starting.
Build from source (contributors)
uv sync --locked --extra dev
./start.sh
Or via module entry point:
python -m anolis_workbench.server.app
Windows launcher: start.cmd.
CLI
Build handoff package:
anolis-package <project-name> [output.anpkg]
Validate handoff package:
anolis-validate <package.anpkg>
# or
python contracts/validate-handoff-packages.py <package.anpkg>
Frontend Tests
cd frontend
npm run test:unit:coverage
npm run test:components:coverage
The Vitest lanes enforce coverage thresholds for frontend/src/lib/*.
Desktop Wrapper
A native Tauri wrapper now lives under desktop/.
Runtime model:
- Tauri launches a frozen Python sidecar.
- Sidecar serves Workbench at
http://127.0.0.1:3010. - WebView consumes the same localhost HTTP/SSE surface as browser mode.
Important system requirement:
- Port
3010is reserved by the desktop wrapper. If another process is bound to that port, desktop startup fails with a native error dialog.
Desktop workflows/docs:
- Desktop release workflow:
.github/workflows/desktop-release.yml - Desktop wrapper source:
desktop/src-tauri/ - Desktop handoff guide:
docs/release-desktop-handoff.md
Repository Contracts
- Runtime HTTP snapshot:
contracts/runtime-http.openapi.v0.yaml - Workbench API OpenAPI:
contracts/workbench-api.openapi.v1.yaml - Handoff/control baselines:
docs/contracts/*.md - Runtime config schema:
anolis_workbench/schemas/runtime-config.schema.json - Machine profile schema:
anolis_workbench/schemas/machine-profile.schema.json
Handoff Docs
- Commissioning handoff runbook:
docs/commissioning-handoff-runbook.md - Handoff package v1 format:
docs/contracts/handoff-package-v1.md - PyPI/OIDC release handoff:
docs/release-pypi-handoff.md - Desktop release handoff:
docs/release-desktop-handoff.md
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file anolis_workbench-0.11.3.tar.gz.
File metadata
- Download URL: anolis_workbench-0.11.3.tar.gz
- Upload date:
- Size: 453.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9e83ff539b5dd4cebeb9d8e0674d54d9ff56614e3fa38cddfb472779b3ed2472
|
|
| MD5 |
a37c0e025d34b69945c9cf9de7e0ecda
|
|
| BLAKE2b-256 |
9fead533d4b9d25c836d31d7773632c085cacbd7c5877a7a7b98584c3e747c29
|
Provenance
The following attestation bundles were made for anolis_workbench-0.11.3.tar.gz:
Publisher:
release.yml on anolishq/anolis-workbench
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
anolis_workbench-0.11.3.tar.gz -
Subject digest:
9e83ff539b5dd4cebeb9d8e0674d54d9ff56614e3fa38cddfb472779b3ed2472 - Sigstore transparency entry: 1573503125
- Sigstore integration time:
-
Permalink:
anolishq/anolis-workbench@7ef141a12a4b788bb923b66694a14a0c03267452 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/anolishq
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7ef141a12a4b788bb923b66694a14a0c03267452 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file anolis_workbench-0.11.3-py3-none-any.whl.
File metadata
- Download URL: anolis_workbench-0.11.3-py3-none-any.whl
- Upload date:
- Size: 137.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be9d404375ef615f01b981d974723a85f3bdff93df4c405781db1f1dc745282b
|
|
| MD5 |
b7004db1ef68b467115363a2877c1150
|
|
| BLAKE2b-256 |
0ffcf7ab41d6742aa23a06bd66597e729576e71618a27bf829eb64f206360bab
|
Provenance
The following attestation bundles were made for anolis_workbench-0.11.3-py3-none-any.whl:
Publisher:
release.yml on anolishq/anolis-workbench
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
anolis_workbench-0.11.3-py3-none-any.whl -
Subject digest:
be9d404375ef615f01b981d974723a85f3bdff93df4c405781db1f1dc745282b - Sigstore transparency entry: 1573503151
- Sigstore integration time:
-
Permalink:
anolishq/anolis-workbench@7ef141a12a4b788bb923b66694a14a0c03267452 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/anolishq
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7ef141a12a4b788bb923b66694a14a0c03267452 -
Trigger Event:
workflow_dispatch
-
Statement type: