mirror of
https://github.com/hansjone/netxops.git
synced 2026-10-20 02:33:15 +08:00
- Strip UTF-8 BOM before parsing MANIFEST.json (PowerShell 5.1 output).
- kb.reload force-republishes so edited SKILL.md / new local_skills / identity apply.
- Duplicate or rejected pack skills are skipped instead of unregistering the whole pack.
- kb-context and every pack skill carry resolved absolute paths.* anchors; KB_PATHS env.
- Inline {paths.local}/identity/*.md into kb-context (capped).
- New netx__kbSearch / netx__kbRead host tools, realpath-jailed to kbRoot.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
64 lines
3.5 KiB
Markdown
64 lines
3.5 KiB
Markdown
# Netx Ops tool map
|
|
|
|
Tools register by capability group. **One group ↔ one skill.**
|
|
|
|
| Group | Skill | Default in Ops preset |
|
|
|-------|-------|------------------------|
|
|
| **ops** | `netx-ops` | on |
|
|
| **topology** | `netx-topology` | off |
|
|
| **bizMonitor** | `netx-biz-monitor` | on |
|
|
|
|
Public flags mount the same group on the host for other presets.
|
|
Forced mounts: `dsh-netxops/tools-ops` | `tools-topology` | `tools-biz-monitor` (legacy aliases: `tools-nms` / `tools-common` → ops).
|
|
|
|
Model names: `netx__<stem>`. NMS tools use `Nms`; adapter `nmsProvider=zte-ume` still hits `/v1/ume/*`.
|
|
|
|
## ops → `netx-ops`
|
|
|
|
| Tool | Role |
|
|
|------|------|
|
|
| `queryNmsAlarms` … `sqlQueryNms` | Alarm + inventory + SQL |
|
|
| `listManagedNe` / `getManagedNe` / `execManagedNe` / `getNeExecJob` / `listCliTargets` | Managed CLI (login / show / async jobs) |
|
|
| `findTopologyPaths` | Fabric path lookup |
|
|
|
|
## bizMonitor → `netx-biz-monitor`
|
|
|
|
Host tools call netx REST directly (**not** netx-mcp). Token needs `biz-monitor:read`.
|
|
|
|
| Tool | Role |
|
|
|------|------|
|
|
| `listBizMonitors` | Catalog: cutover projects + biz_state tasks (no id required) |
|
|
| `listBizMonitorBatches` | Cutover / collect batch ids (+ optional evaluate runs) |
|
|
| `getBizMonitorContext` | Project + templates + normalize + port map + tasks |
|
|
| `getBizMonitorBoard` | Batch / evaluate progress |
|
|
| `listBizMonitorReds` / `getBizMonitorDiffs` | Reds & diffs with evidence (raw A/B + show cmd) |
|
|
| `getBizCollectBatch` / `getBizCollectCommandRaw` | Collect audit + full CLI raw |
|
|
|
|
## topology → `netx-topology`
|
|
|
|
| Tool | Role |
|
|
|------|------|
|
|
| Tree / view / folders / membership / neighbors | Canvas CRUD |
|
|
| Fabric query / classify / edges | Inventory + adjacency |
|
|
| `layoutTopologyView` | move_nodes / catalog / … |
|
|
| `suggestSinkHubs` / `analyzeTopologyViewLayout` / `sinkTopologyDualUnits` | Dual-unit / QA (may stub → MCP layout engine) |
|
|
|
|
Canonical skill bodies: sibling **`netx/skills/`**. DSH loads them at runtime (`NETX_SKILLS_ROOT` or `../netx/skills`) or from `presets/netxops/skills` after sync.
|
|
|
|
Execution: HTTP `apiUrl` + Bearer `NETX_API_TOKEN`.
|
|
|
|
## knowledge base → `groupKb*` (not ops/topology)
|
|
|
|
Registered when KB is configured and the KB in-preset / public toggle is on. Read tools are jailed to `kbRoot`; write tools additionally need MANIFEST `paths.local` and are jailed to `{kbLocal}/refs|memories|drafts|suggestions`. Host-side FS (bypass workspace sandbox).
|
|
|
|
| Tool | Role |
|
|
|------|------|
|
|
| `kbSearch` | Keyword (space-separated, case-insensitive) or regex search over the whole package or `scope` = MANIFEST paths key(s) / relative dir. Files ranked by distinct terms matched; ≤4 hit lines each. Stat-validated in-memory cache. |
|
|
| `kbRead` | Read one text file (offset/limit line paging) or list a directory. `path` = kbRoot-relative, absolute inside kbRoot, or a paths key (`neIndex`, `cmdLib`, `rca`, …). |
|
|
| `kbWriteRef` | Site product KB under `refs/{inventory\|devices\|topology\|business\|commands\|handbooks}/`. `devices` requires `device=host_name`; primary profile slug=`PROFILE`. |
|
|
| `kbWriteMemory` | Diary under `memories/{日常笔记\|排障复盘\|AI思维链}/` — write as soon as reusable experience appears. |
|
|
| `kbWriteDraft` | New `DRAFT-…` under `drafts/` (+ `status: draft`) |
|
|
| `kbWriteSuggestion` | New file under `suggestions/{theory\|improvement}/` |
|
|
| `kbUpdateLocal` | Replace body of an existing jailed file |
|
|
| `kbDeleteLocal` | Delete one jailed file |
|
|
| `kbListLocal` | List recent `.md` under writable trees (`root` may be `refs`) |
|