Stop nesting github IM/cron under netxops (blockExoticSubdeps).

Profile pnpm rejects exotic subdependencies; install netxops + dsh-im-ops + dsh-ops-cron as one direct add line instead.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
oliver 2026-09-06 02:41:39 +08:00
parent fdda340477
commit eb8299d155
4 changed files with 18 additions and 19 deletions

View file

@ -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:

View file

@ -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:

View file

@ -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`.

View file

@ -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",