Description
Description
The "NemoClaw Plugin" section of docs/reference/architecture.md (rendered at
https://docs.nvidia.com/nemoclaw/latest/reference/architecture.html under the
"NemoClaw Plugin" heading) describes the plugin source layout as a directory
tree. On NemoClaw v0.0.44, 8 of the 13 source files listed in that tree do
not exist; the actual src/commands/ and src/blueprint/ contents are different
sets of files. Readers who grep / open the listed paths will hit "No such
file or directory" for the majority of entries.
Two other file-tree blocks lower on the same page — the nemoclaw-blueprint/
repo tree and the nemoclaw/src/blueprint/ runner tree — are accurate; drift
is isolated to the plugin-source tree under "NemoClaw Plugin".
Environment
Device: ipp2-1558 (10.176.178.100), x86_64 server, 32 vCPU / 125 GB RAM, NVIDIA A100 80GB PCIe
OS: Ubuntu 24.04.4 LTS (Linux 6.17.0-23-generic)
Architecture: x86_64
Node.js: v22.x (installed via nvm by NemoClaw installer)
npm: bundled
Docker: 29.5.0
OpenShell CLI: 0.0.39
NemoClaw: v0.0.44
OpenClaw: N/A (docs-only bug; sandbox was onboarded with --agent hermes for unrelated verification)
Steps to Reproduce
1. Open https://docs.nvidia.com/nemoclaw/latest/reference/architecture.html
and scroll to the "NemoClaw Plugin" section.
2. For each src/* path listed in the directory tree, check whether it exists
in the v0.0.44 source:
cd ~/.nemoclaw/source/nemoclaw
for f in src/cli.ts src/commands/launch.ts src/commands/connect.ts \
src/commands/status.ts src/commands/logs.ts \
src/blueprint/resolve.ts src/blueprint/fetch.ts \
src/blueprint/verify.ts src/blueprint/exec.ts; do
[ -e "$f" ] && echo "OK $f" || echo "MISSING $f"
done
3. Compare the documented tree against the real directory contents:
ls src/commands/ # actual: config-show.ts migration-state.ts shields-status.ts slash.ts
ls src/blueprint/ # actual: private-networks.ts runner.ts snapshot.ts ssrf.ts state.ts
Expected Result
Every src/* path listed in the architecture.md plugin tree exists in the
source tree at the documented version, OR the section is rewritten in
language that does not pin specific file names.
Actual Result
Step 2 output:
MISSING src/cli.ts
MISSING src/commands/launch.ts
MISSING src/commands/connect.ts
MISSING src/commands/status.ts
MISSING src/commands/logs.ts
MISSING src/blueprint/resolve.ts
MISSING src/blueprint/fetch.ts
MISSING src/blueprint/verify.ts
MISSING src/blueprint/exec.ts
Step 3 output (real layout):
src/commands/ config-show.ts migration-state.ts shields-status.ts slash.ts
src/blueprint/ private-networks.ts runner.ts snapshot.ts ssrf.ts state.ts
Of the 13 entries in the documented tree, only 5 exist as written:
✓ src/index.ts
✓ src/runtime-context.ts
✓ src/commands/slash.ts
✓ src/blueprint/state.ts
✓ openclaw.plugin.json
✓ package.json
(2 of these are non-src entries that are stable.)
Logs
Not captured — documentation accuracy bug, no runtime logs.
Suggested Fix
Two options:
1. Refresh the tree to match the v0.0.44 layout, e.g.:
nemoclaw/
├── src/
│ ├── index.ts Plugin entry: registers commands + runtime context
│ ├── runtime-context.ts Sandbox and policy context injection
│ ├── commands/
│ │ ├── slash.ts /nemoclaw chat command handler
│ │ ├── shields-status.ts /nemoclaw shields status in-sandbox readout
│ │ ├── config-show.ts /nemoclaw config show readout
│ │ └── migration-state.ts state-migration helper for in-sandbox use
│ └── blueprint/
│ ├── runner.ts CLI runner: plan / apply / status / rollback
│ ├── ssrf.ts SSRF endpoint validation
│ ├── private-networks.ts RFC1918 / link-local guard
│ ├── snapshot.ts Migration snapshot / restore lifecycle
│ └── state.ts Persistent run state management
├── openclaw.plugin.json Plugin manifest
└── package.json Commands declared under openclaw.extensions
2. Drop the explicit file-by-file tree and replace it with a 2-sentence
description that names only the entry points (index.ts, runtime-context.ts)
and the conceptual sub-folders (commands/, blueprint/). This style is what
the rest of the page already uses for the gateway / sandbox modules and
does not rot when files are reorganized.
Bug Details
| Field |
Value |
| Priority |
Unprioritized |
| Action |
Dev - Open - To fix |
| Disposition |
Open issue |
| Module |
Machine Learning - NemoClaw |
| Keyword |
NemoClaw, NemoClaw_Docs, NEMOCLAW_GH_SYNC_APPROVAL |
[NVB#6186437]
Description
Description
Environment Steps to Reproduce1. Open https://docs.nvidia.com/nemoclaw/latest/reference/architecture.html and scroll to the "NemoClaw Plugin" section. 2. For each src/* path listed in the directory tree, check whether it exists in the v0.0.44 source: cd ~/.nemoclaw/source/nemoclaw for f in src/cli.ts src/commands/launch.ts src/commands/connect.ts \ src/commands/status.ts src/commands/logs.ts \ src/blueprint/resolve.ts src/blueprint/fetch.ts \ src/blueprint/verify.ts src/blueprint/exec.ts; do [ -e "$f" ] && echo "OK $f" || echo "MISSING $f" done 3. Compare the documented tree against the real directory contents: ls src/commands/ # actual: config-show.ts migration-state.ts shields-status.ts slash.ts ls src/blueprint/ # actual: private-networks.ts runner.ts snapshot.ts ssrf.ts state.tsExpected Result Actual Result Logs Suggested FixBug Details
[NVB#6186437]