@openwop/cli 1.2.3 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -8
- package/dist/cli.js +800 -339
- package/dist/openwop.js +801 -340
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@ The CLI is a host-agnostic **control plane**: every group drives one protocol su
|
|
|
10
10
|
|
|
11
11
|
| Area | Groups |
|
|
12
12
|
|---|---|
|
|
13
|
-
| **Setup & health** | `onboard` · `doctor` · `demo` · `health` · `capabilities` · `config` · `completion` · `upgrade` |
|
|
13
|
+
| **Setup & health** | `onboard` · `login` · `logout` · `doctor` · `demo` · `health` · `capabilities` · `config` · `completion` · `upgrade` |
|
|
14
14
|
| **Run lifecycle** | `runs` · `chat` · `interrupts` · `workflows` · `catalog` · `media` |
|
|
15
15
|
| **Agents & orchestration** | `agents` · `roster` · `org-chart` · `kanban` (`boards`) · `workforces` (`fleet`) · `agent-profile` · `agent-packs` · `agent-allowlists` · `agent-ops` · `evals` · `twin` · `reviews` |
|
|
16
16
|
| **Governance & safety** | `approvals` · `governance` (`policy`) · `consent` · `toggles` |
|
|
@@ -120,6 +120,7 @@ Or directly: `npm i -g @openwop/cli` (needs Node 22+), then `openwop onboard`.
|
|
|
120
120
|
openwop --help
|
|
121
121
|
openwop doctor # check prerequisites
|
|
122
122
|
openwop onboard # guided setup (host + provider + key + model)
|
|
123
|
+
openwop login # sign this terminal in to an openwop-app host by a code (no key to copy)
|
|
123
124
|
openwop demo start # boot local backend + frontend (from inside an openwop checkout)
|
|
124
125
|
openwop demo status
|
|
125
126
|
openwop catalog nodes --search ai
|
|
@@ -211,18 +212,24 @@ only the returned reference.
|
|
|
211
212
|
```bash
|
|
212
213
|
openwop packs search ads # filter the catalog
|
|
213
214
|
openwop packs info community.openwop-team.demo # metadata + versions
|
|
214
|
-
openwop packs install community.openwop-team.demo@0.1.
|
|
215
|
+
openwop packs install community.openwop-team.demo@0.1.2 # download + verify (exact pin)
|
|
216
|
+
openwop packs install core.openwop.ai@^1.3.0 # highest unyanked match
|
|
215
217
|
openwop packs publish ./my-pack --key ~/key.pem --key-id me-1
|
|
216
218
|
openwop packs yank community.openwop-team.demo@0.1.0 # local registry edit
|
|
217
219
|
```
|
|
218
220
|
|
|
219
221
|
These talk to the signed node-pack registry — a **separate surface** from the host `--base-url`. The default registry is `https://packs.openwop.dev`; override with `--registry-url` or `OPENWOP_REGISTRY_URL`.
|
|
220
222
|
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
- **
|
|
224
|
-
- **
|
|
225
|
-
- **
|
|
223
|
+
Every registry path is resolved through the registry's `/.well-known/openwop-registry.json` `endpoints` map (`spec/v2/core/packs.md` §"The registry tree"). The CLI prefers the v2 tree (`endpoints.v2`). It uses the v1 tree only when the registry names no v2 tree or publishes no discovery document, or when you pass `--tree v1`.
|
|
224
|
+
|
|
225
|
+
- **search** reads the registry index (`/v2/index.json` on packs.openwop.dev) and filters the catalog client-side. The dynamic host `/v1/packs/-/search` only knows in-process nodes, not the published catalog.
|
|
226
|
+
- **info** reads the pack index. `--version v` also fetches that version's manifest.
|
|
227
|
+
- **install** resolves the version, downloads the tarball, checks its `sha256` against the manifest `integrity`, and verifies the signature. Skip verification with `--no-verify`. Artifacts land under `~/.openwop/packs/{name}/{version}/` (override with `--dir`).
|
|
228
|
+
- **v2 signature check:** `signing` must be exactly `{ keyId, scheme: "ed25519-canonical-json" }`. The detached 64-byte `.sig` must verify over the in-tarball `pack.json`, which must be RFC 8785 canonical JSON. The key is the registry's `signingKeys[]` entry for `keyId`, and its `permittedNamespaces` must cover the pack name. A key that is no longer `active` still verifies what it signed.
|
|
229
|
+
- **v1 signature check:** follows `signing.method` (`ed25519` signs the tarball, `manual` signs the in-tarball `pack.json`).
|
|
230
|
+
- **Lifecycle (RFC 0222):** no version means the latest *unyanked* version. A range (`^1.2.0`, `~1.2.0`, `1.x`, `>=1.0.0 <2.0.0`) means the highest unyanked match. An exact version is a pin and may install a yanked version, with a warning. A deprecated version installs with a warning.
|
|
231
|
+
- **publish** — the reference registry has **no write API** (`writeApi.supported=false`; you publish by opening a pull request against `openwop/openwop-registry`). This command does the local **packaging + Ed25519 signing** step: it writes a deterministic signed `.tgz`, a 64-byte `.sig`, and a sidecar manifest into `dist/packs/` (override with `--out`), ready to commit and PR. By default it writes the v2 signing block `{ keyId, scheme: "ed25519-canonical-json" }`; `--tree v1` writes the legacy block. The private key comes from `--key <pem>`, else `~/.openwop-keys/{keyId}.private.pem`. If neither exists, it generates an ephemeral key and prints its public half for pre-registration.
|
|
232
|
+
- **yank** edits a **local registry checkout**: it flips `"yanked": true` in the version manifest under `registry/v2/` (`--tree v1` for the frozen v1 tree; `--undo` reverses). Then run `registry/scripts/build-index.mjs --tree v2`, commit, and PR. Run it from inside the repo.
|
|
226
233
|
|
|
227
234
|
## Messaging & relay
|
|
228
235
|
|
|
@@ -621,7 +628,7 @@ openwop orgs decide --principal user:jo --action runs:read # exit 0 allowed
|
|
|
621
628
|
openwop users me security
|
|
622
629
|
openwop vault list
|
|
623
630
|
openwop vault set billing:stripe-key --scope host --value-file ./stripe.key
|
|
624
|
-
openwop developer-keys create --name "CI deploy" --scope runs:
|
|
631
|
+
openwop developer-keys create --name "CI deploy" --scope runs:create --scope runs:read
|
|
625
632
|
openwop environments promote --from dev # exit 3 when queued for approval
|
|
626
633
|
openwop billing portal # a Stripe-hosted URL; no card data
|
|
627
634
|
openwop governance egress-rules set --mode allowlist --host api.stripe.com
|