diff --git a/README.md b/README.md index 637acd1..9bcf1a8 100644 --- a/README.md +++ b/README.md @@ -9,11 +9,14 @@ Public **DeepSeek Harness** package: native `netx__*` REST tools + Plugins card ## Install (one command) ```powershell -dsh plugin --profile web add github:hansjone/netxops +dsh plugin --profile web add ` + github:hansjone/netxops ` + github:hansjone/dsh-im-ops ` + github:hansjone/dsh-ops-cron dsh web ``` -Pulls **dsh-im-ops** + **dsh-ops-cron** automatically (dependencies + patch mounts). Details: [docs/INSTALL.md](docs/INSTALL.md). +IM + cron must be **direct** profile deps (same `add` line). Nesting `github:` under netxops hits `blockExoticSubdeps` / `ERR_PNPM_EXOTIC_SUBDEP`. Details: [docs/INSTALL.md](docs/INSTALL.md). Then: diff --git a/cordis.patch.yml b/cordis.patch.yml index 9d5a81a..4ab3163 100644 --- a/cordis.patch.yml +++ b/cordis.patch.yml @@ -3,19 +3,14 @@ # Capability groups: ops in preset; topology / public off. # Rule: one group ↔ one skill (netx-ops / netx-topology). # -# Companion bundles: `dsh-im-ops` + `dsh-ops-cron` are npm dependencies of this -# package and are inserted here so a single `dsh plugin add …/netxops` mounts -# IM delivery + scheduled tasks without separate profile adds. Same row ids as -# their own patches — safe if those packages are also listed as profile bundles. +# IM + cron are separate profile bundles (pnpm blockExoticSubdeps forbids +# github: packages as transitive deps of this package). Install them in the +# same `dsh plugin add` line — see docs/INSTALL.md. # # After install, open Settings → Plugins to edit apiUrl / lang / groups # (settings card client half; see docs/INSTALL.md). Token: credential NETX_API_TOKEN. - insert: - - id: dsh-im-ops - name: dsh-im-ops - - id: dsh-ops-cron - name: dsh-ops-cron - id: netxops name: dsh-netxops config: diff --git a/docs/INSTALL.md b/docs/INSTALL.md index 4bdf71f..4e75a20 100644 --- a/docs/INSTALL.md +++ b/docs/INSTALL.md @@ -7,7 +7,7 @@ One install wires **all of**: | Piece | How you use it | |-------|----------------| | Host tools | Capability groups **ops / topology** (one group ↔ one skill). Default ops in Ops preset; topology and all public off. Other agents may mount `dsh-netxops/tools-ops|topology` | -| Companion plugins | **dsh-im-ops** + **dsh-ops-cron** (npm deps of this package; mounted from this patch — no separate `dsh plugin add`) | +| Companion plugins | **dsh-im-ops** + **dsh-ops-cron** — add as **direct** profile deps in the same command (DSH/pnpm blocks `github:` as transitive deps) | | Plugins card | Settings → Plugins → **Netx Ops** (URL / lang / token / capability groups) | | Agent preset + skills | Settings → Agent presets → **Custom → Netx Ops** (copied into `~/.dsh/.agent-presets` on first boot); playbooks follow the same group toggles | @@ -23,13 +23,16 @@ No local Python / `netx_mcp` install is required for DSH. (OpenClaw and other MC ## Install ```powershell -dsh plugin --profile web add github:hansjone/netxops +dsh plugin --profile web add ` + github:hansjone/netxops ` + github:hansjone/dsh-im-ops ` + github:hansjone/dsh-ops-cron # or from DeepSeekHarness source: -# pnpm dsh plugin --profile web add github:hansjone/netxops +# pnpm dsh plugin --profile web add github:hansjone/netxops github:hansjone/dsh-im-ops github:hansjone/dsh-ops-cron dsh web # or: pnpm dsh web ``` -One add is enough: pnpm pulls **dsh-im-ops** and **dsh-ops-cron** as dependencies of `dsh-netxops`, and this package’s patch mounts them. If pnpm blocks a git `prepare` script, allowlist the printed package keys under `allowBuilds` in the profile’s `pnpm-workspace.yaml`, then re-run. You may still `add` IM/cron separately (same row ids); not required. +One command, three **direct** profile bundles. Do **not** nest IM/cron under netxops — profile pnpm enables `blockExoticSubdeps`, so `github:` subdependencies fail with `ERR_PNPM_EXOTIC_SUBDEP`. If pnpm blocks a git `prepare` script, allowlist the printed package keys under `allowBuilds` in the profile’s `pnpm-workspace.yaml`, then re-run. 1. **Settings → Plugins → Netx Ops** → API URL (+ token if the field is enabled). Token fallback: `scripts/set-netx-token.ps1` / `.sh`. diff --git a/package.json b/package.json index d4c6e87..d43d142 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "dsh-netxops", - "version": "0.1.23", - "description": "DeepSeek Harness Netx Ops: ops/topology tools + pulls dsh-im-ops and dsh-ops-cron", + "version": "0.1.24", + "description": "DeepSeek Harness Netx Ops: capability groups ops/topology (one group ↔ one skill)", "license": "MIT", "type": "module", "private": false, @@ -89,9 +89,7 @@ "react": "^18.2.0 || ^19.0.0" }, "dependencies": { - "@deepseek-ai/schemastery": "*", - "dsh-im-ops": "github:hansjone/dsh-im-ops", - "dsh-ops-cron": "github:hansjone/dsh-ops-cron" + "@deepseek-ai/schemastery": "*" }, "devDependencies": { "@types/react": "~18.3.1",