cyber/specs/cli.md

cyber CLI

Product owner: cyber. Implementation: cyber/src/main.rs. This document specifies the public executable boundary; specs/worker owns computation jobs and specs/cyb-node owns the existing cyb HTTP connection.

The implemented baseline describes the current unpublished 0.8.0 source, including the neuron-convergence launcher and migration revision. Sections labelled target specify later interfaces. MUST, SHOULD and MAY express implementation requirements; profile acceptance and release evidence remain separate.

responsibility

cyber owns node configuration, storage lifecycle, network participation, job scheduling and acceptance of results into network state. It composes soft3 libraries. Joy provides warrior capabilities through a selected backend; workers are running instances, following the soft3 execution model. The named robot attaches neurons with explicit keys, networks and device access. Vault owns private custody; neuron executes durable progs under those subjects. GraphSession retains multi-neuron state without a process signer. These roles follow cyb architecture.

implemented baseline

cyber [--home PATH] init [--bind IP:PORT] [--moniker NAME]
cyber [--home PATH] node
cyber [--home PATH] status [--json]
cyber [--home PATH] config
cyber [--home PATH] cyb [--live]
cyber [--home PATH] storage import-legacy
cyber [--home PATH] auth enable [--import-legacy]
cyber --help
cyber --version

start is an alias for node; --home is global and may follow a command. The home is resolved as flag → CYBER_HOME$HOME/.cyber/spacepussy-test. Relative paths resolve from the caller's working directory. Missing commands and invalid argument syntax use Clap exit code 2; help/version succeed with 0; application errors use 1.

command behavior stdout
init validate and exclusively create config; preserve existing files config path
node hold home/database writer locks, recover native BBG state, serve until termination no command result
status bounded GET configured /status; validate document cybermark, or JSON with --json
config load and validate config without contacting the node effective TOML
cyb describe configuration without opening graph or contacting endpoint cyber/connection/v2 JSON
cyb --live add bounded validated /capabilities observation; graph remains unopened cyber/connection/v2 JSON
storage import-legacy offline strict import of retained log into the shared BBG owner cyber/legacy-import/1 JSON
auth enable offline permanent activation of signed native publication; optional strict import first cyber/authentication/1 JSON

All commands except init/help/version require valid config.toml. Errors and server diagnostics go to stderr. Status success establishes a valid local status response, while the descriptor reports configuration. Neither command establishes distributed finality.

Configuration v1 contains exactly these fields; unknown fields fail:

version = 1
network = "spacepussy-test"
bind = "127.0.0.1:7780"
moniker = "cyber-local"

Only loopback IP addresses and nonzero ports are accepted. Monikers contain 1–256 bytes, non-whitespace content and no control characters. Config reads accept at most 16 KiB of a regular UTF-8 file. init creates parent directories and refuses to overwrite config. Other files already in the home remain intact. A fresh home starts independent local state.

Current status --json emits the cybermark field map: height is a JSON number; other values, including counters and catching-up, remain strings. This shape stays unchanged. Descriptor cyber/connection/v2 explicitly supersedes v1: network_label is presentation, network is a native ID or null, and cyb_commands is a list. Old v1's label-valued network, unsigned submit and singular cyb_command must not be treated as v2.

Offline descriptors use observation: configuration-only and null network, profile, submit, native_capabilities and capabilities.authenticated_writes. The endpoints map is a supported route catalogue, independently of live activation. cyb --live uses observation: endpoint-capabilities and retains validated endpoint metadata. Only a compatible signed profile supplies submit: /v3/action and a net pin command. Both forms state receipt_meaning: endpoint-acceptance and consensus_finality: false.

Status and live capabilities use a five-second HTTP timeout, a 64-KiB body limit and zero redirects. Non-200, malformed, oversized or inconsistent responses fail with nonzero exit. Neither command opens NativeNode, creates keys or changes a profile.

Offline import/auth and the running product hold node.lock and auth-upgrade.lock; BBG additionally fences its writer. Operators stop the node and all older writers before migration. Import verifies the complete bounded retained source and returns its hash, event/signal counts, height and root. Authentication optionally imports first, then promotes the persistent reader generation and retires incompatible genesis-reader paths. The upgrade is monotonic, preserves native network identity and creates no subject key. Its JSON reports profile/network/authentication and the optional import result.

These current reports are distinct from the target generic envelope below.

The sibling true-cyber CLI now provides a signed native client over the shared GraphSession/Registry/Host: explicit neuron attachment, sync, link, relay, receipt, and legacy inspection/export. Its sync mirrors bounded endpoint observations and reports no consensus verification. It does not start this product's node. See the native client contract.

soft3 node remains a developer entry point to the same native coordinator. BBG fences the database writer; each home has one active state owner. Offline activation and import preserve exact legacy source and native network genesis. Product wrappers reuse the shared owner's migration boundary.

cy neuron manages robot attachments; the standalone neuron executable manages durable runtime/prog operations. cy task composes soma tasks over that runtime. Command names do not create another authority layer. A task, prog or invocation ID names retained work under a neuron and has no key.

target command surface

command effect availability
init, node, status, config, cyb, storage import-legacy, auth enable preserve documented baseline semantics implemented
doctor report configuration, storage, dependency and readiness checks planned
worker status query backend capabilities and active/queued work from running node planned
worker start --backend joy enable scheduling in the running node planned
worker stop disable new dispatch and request cancellation while retaining attempted/unknown outcomes planned

Worker commands control the existing node through an authenticated local control channel. They MUST NOT open its state independently or silently start a second node. The control-channel transport/authentication is a separate implementation prerequisite. The signed-native HTTP profile authorizes its declared graph actions; worker administration requires its own explicit grant and command contract. Standalone nox program execution belongs to joy run; neuron owns durable prog execution through supported workers.

In the cyber product, sync is reserved for verified peer replication. Its availability requires checkpoint, history, coverage and finality policies. An observation-mirror command in another client must report that narrower scope. No command may report verified synchronization after a mere HTTP probe.

target machine interface

Add opt-in --format json-v1 for finite commands. Human-readable output remains the default. Existing status --json and cyb output retain their baseline shapes; incompatible combinations of output flags fail with 2. Long-running node uses stderr logs and its API for readiness; it MUST reject --format json-v1 until an event-stream contract exists.

Exactly one UTF-8 JSON object plus newline is written to stdout:

{"schema":"cyber/cli/v1","command":"worker status","ok":true,"result":{"enabled":false,"jobs":[]},"error":null}

On application failure, ok is false, result is null and error contains code (stable snake_case), message and retryable (boolean). Diagnostics remain on stderr. Syntax errors detected before machine-mode selection may use stderr only. Successful commands MUST have a non-null result object.

In the new envelope, u64 values use canonical decimal strings to preserve precision for cyb/JavaScript. Booleans remain booleans; missing optional values are null, never fabricated zeros. Heights, roots and capabilities must describe the same observation. A root carries its encoding/profile. Secrets and witness contents MUST NOT appear in output or diagnostics.

Target application exits: 0 success; 1 operation failed; 2 usage/config validation failed; 3 requested capability unsupported; 4 service unavailable or resource busy; 5 verification or admission rejected. Cancellation uses 130 when handled; an OS-killed child retains its platform termination status. Consumers MUST accept unknown nonzero exits as failure. Baseline codes remain documented above until this target ships.

target lifecycle and configuration

Startup validates configuration, acquires the home lock, validates/replays durable state, binds listeners, then announces readiness. Startup failure MUST release resources and MUST NOT publish readiness. Corrupt journals fail closed with a recovery diagnostic; repair requires an explicit action.

Readiness MUST distinguish starting, local_ready, syncing, network_ready, draining and failed. network_ready requires the configured network's verification policy. Worker readiness is an additional capability, independent of HTTP liveness. Current /health is liveness only.

SIGINT/SIGTERM initiate a bounded drain: reject new writes/jobs, cancel workers, flush acknowledged state, release listeners and lock. Forced exit must preserve the recovery contract for acknowledged writes. The current server does not yet implement this drain protocol.

Future config mutation MUST validate the whole proposed config and replace it atomically. Changes to home, chain identity or commitment profile require explicit migration; a network label alone cannot establish compatibility. Any worker configuration extension requires config version 2, with an explicit v1 migration. Worker scheduling defaults to disabled.

conformance and ownership

Before claiming target conformance:

  • exercise init preservation, malformed configuration and competing homes;
  • run the same write/restart/root test against the released executable;
  • check exact JSON types, error envelopes and exits for every finite command;
  • distinguish offline node, live local node and verified network readiness;
  • prove worker start/stop never creates a second state owner;
  • reject unsupported proof/state modes without downgrading;
  • exercise cancellation, disk failure and corrupt replay without false success.

Baseline tests are in cyber/tests/node.rs and the current launcher/migration process tests. Target worker/drain/network cases retain their own release gates. Changes to command semantics are made here first, then in code/help/tests and specs/cyb-node. Additive JSON fields are allowed within a schema; consumers ignore unknown result fields. Changed meanings/types require a new schema. Requests/configurations reject unknown fields to expose typos.

discover all concepts

Homonyms

cyber/cli
feature of go-cyber cyber query bandwidth load: query the bandwidth load neuron: query the neuron bandwidth params: query the bostrom/bandwidth module parameters information price: query the bandwidth price total: query the total bandwidth
soft3/cli
soft3 CLI `soft3` — command-line interface to the soft3 stack. commands launch full operator guide: soft3/docs/launch|launch spacepussy-test. summary: product network is **spacepussy-test**, not cosmos space-pussy on cybernode today: local cybergraph + foculus components; `cyber sync` probes :7780…
cyb/cli
cli
soft3/lens/cli
cli
soft3/neuron/cli
cli
neural/eidos/cli
cli
warriors/trisha/cli
cli
neural/rs/cli
cli
soft3/strata/cli
cli
soft3/zheng/cli
cli
soft3/cybergraph/cli
cli
warriors/joy/cli
cli
soft3/hemera/cli
cli
neural/rune/cli
cli
warriors/erga/cli
cli
soft3/bbg/cli
cli
soft3/tru/cli
cli
soft3/nox/cli
cli
soft3/strata/trop/cli
cli
soft3/cybergraph/specs/cli
cybergraph cli a command-line console for the cyberlink processor: declare intents, seal and link signals, query the graph with inf, and inspect the per-neuron chains. `cybergraph`'s verb is **link** — the CLI is the processor's console, one layer above the bbg state store (`bbg` CLI). scope — the…
soft3/strata/kuro/cli
cli
soft3/strata/jali/cli
cli
neural/inf/rs/cli
cli
soft3/lens/specs/cli
lens cli command-line tool for the commitment layer. commit to a file as a polynomial, open evaluations, verify openings without the file. wraps the five constructions of commitment behind one binary. the tool lives in the `cli/` crate (package `lens-cli`, binary `lens`), a workspace member…
neural/trident/reference/cli
⌨️ CLI Reference [← Language Reference](/neural/trident/reference/language) Three-Register Flags Trident uses a **three-register** naming model for targets. Each register has two synonyms — one *geeky* (technical) and one *gamy* (metaphorical) — plus a *universal* shorthand for backward…
soft3/strata/nebu/cli
cli
soft3/zheng/specs/cli
cli the `zheng` command-line face of the proof system. drives the library's five entry points from a shell and emits results as a tape chunk stream. invocation output convention — one channel (stdout), two renderings of the same data: **interactive** (stdout is a terminal) — styled ANSI: a gradient…
soft3/bbg/specs/cli
bbg cli a command-line tool for the authenticated state layer: inspect the committed state, apply signals, finalize blocks, and prove/verify records. `bbg`'s verb is **store** — the CLI is the store's console, the way `redb`/`sqlite` ship a shell for their engine. scope — what it is, and is not bbg…
neural/trident/src/cli
cli
soft3/glia/run/cli
cli
soft3/strata/genies/cli
cli
cyb/wysm/crates/cli
The Wasmi CLI Application A lightweight **WebAssembly interpreter CLI** built on top of the [Wasmi crate]. This application provides a command-line interface for executing WebAssembly modules (`.wasm`) and WebAssembly script files (`.wast`). It supports WASI, configurable compilation strategies and…
warriors/joy/specs/cli
joy CLI Owner: joy. The baseline describes source version 0.4.0 at `6b8dfd3`. The working-tree integration below records concurrent target-package work separately from that committed baseline. Target sections define requirements for a subsequent interface revision and remain unimplemented until…
soft3/glia/import/specs/cli
import CLI surface What the `mi` binary (the CLI entry point of the `import` crate) exposes today. Subcommands | Subcommand | Purpose | Source | |---|---|---| | `mi import ` | Convert source directory → `~/llm/.model` | `main.rs::run_import` | | `mi list` | List HF cache entries under…

Graph