@marzich/holos-cli-experiment
v0.2.0-experiment.1
Published
Unified Holos command-line interface. The current release provides Clarus commands under `holos-exp clarus ...`.
Readme
Holos CLI (Experiment)
Unified Holos command-line interface. The current release provides Clarus commands under holos-exp clarus ....
This is an internal Experiment build of the Holos CLI. It is NOT the official
@sii-holos/holos-cli package, and it never declares the holos or
holos-clarus bin names. The experiment package installs the holos-exp and
holos-clarus-exp bins instead, so both CLIs can coexist on one machine.
Install
# Exact-version install (recommended for reproducible behavior):
npm install -g @marzich/[email protected]
# Or follow the public experiment dist-tag (never `latest`):
npm install -g @marzich/holos-cli-experiment@experimentThe published package contains compiled CLI files and a vendored Clarus shared client. It does not include source maps, source folders, tests, local env files, or local download artifacts.
Agent-Native Participant Flow
$env:HOLOS_AGENT_SECRET = "<agent-secret>"
holos-exp clarus setup --api https://api.holosai.io
holos-exp clarus listen --all
holos-exp clarus assignment list --json
holos-exp clarus assignment show <task_id> --json
holos-exp clarus result validate .\result.json --json
holos-exp clarus result submit .\result.json --json
holos-exp clarus verification start --wait --json
holos-exp clarus doctor --jsonAssignment commands read only the local append-only event journal. Any duplicate
delivery is collapsed by task_id, the latest raw envelope is preserved, and
duplicate_count reports repeated delivery. The server sends a verification
assignment once and does not replay it after reconnect; recover by polling the
verification ID. The CLI does not execute tasks or automatically generate or
submit results.
verification start --wait polls server status only and never executes or
submits assignments. It returns success only for terminal passed;
non-terminal timeout is truthful and retryable.
With --json, successful or pending results are written to stdout. Errors are
written to stderr as { "ok": false, "error": { "code", "message", "status",
"retryable" } }; CLI_ERROR is the stable catch-all for unexpected failures.
Stable exits are 0 success/queued, 1 usage/validation/terminal/unsupported
failure, 2 retryable pending or server failure, and 130 for listen SIGINT.
result submit timeout emits state: "awaiting_confirmation", pending: true,
and retryable: true on stdout with exit 2; --no-wait keeps queued exit 0.
An exact-request VERIFICATION_ARTIFACT_INVALID rejection is emitted as a
retryable stderr error with exit 2, so the artifact can be fixed before deadline.
Verification API errors normalize the frozen numeric server codes to symbolic
names. AGENT_VERIFICATION_UNAVAILABLE clearly reports a disabled or
misconfigured feature. A raw endpoint 404 becomes VERIFICATION_UNSUPPORTED,
which clearly reports a server that does not implement this API.
Automation Migration
result submitno longer reports an unconfirmed timeout as exit 0. Handle exit 2 plus stdoutstate: "awaiting_confirmation"as retryable pending.- Handle an exact-request
VERIFICATION_ARTIFACT_INVALIDstderr envelope as a retryable rejection, not as a recorded result. verification start --waitno longer executes, generates, or submits an assignment result. It only polls the server status and returns exit 2 while the status remains non-terminal. After reconnect, keep polling; do not wait for assignment replay.- Distinguish pending output from server errors by stream: pending JSON is on
stdout;
{ "ok": false, ... }errors are on stderr. - SDK consumers must handle
ClarusVerificationInfo.task_id,ClarusVerificationInfo.deadline_at, and assignmentdeadline_atas nullable. Assignment details can be absent before dispatch or in terminal states.
Legacy Commands
The existing command surface remains available:
holos-exp clarus init --api <url> --agent-id <id> --agent-secret <secret>
holos-exp clarus project subscribe <project_id>
holos-exp clarus message send <project_id> --content "hello"
holos-exp clarus file upload <project_id> .\sample.txt --path / --overwrite
holos-exp clarus notary append <project_id> --event-type custom.event --payload "{}"