denpex-mcp 0.1.0 → 0.2.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.
Files changed (3) hide show
  1. package/README.md +31 -9
  2. package/dist/index.js +710 -83
  3. package/package.json +5 -2
package/README.md CHANGED
@@ -7,7 +7,7 @@ straight off disk and hands back the root cause and the fix.
7
7
 
8
8
  - 🩺 **Root cause + escalating fix** (primary → fallback → emergency), verification command, and prevention.
9
9
  - 🧭 **Find the culprit rank** in a distributed/NCCL hang, and route GPU Xid faults to the right node action — offline, instantly.
10
- - 📚 **312-class failure encyclopedia** searchable by error code or symptom.
10
+ - 📚 **Bundled failure encyclopedia** (300+ classes offline; the full corpus runs online) searchable by error code or symptom.
11
11
  - 🔒 **Zero-egress mode** (`DENPEX_LOCAL=1`): diagnose entirely on-host, nothing leaves the machine. Plus client-side PII scrubbing even in cloud mode.
12
12
 
13
13
  ---
@@ -17,9 +17,10 @@ straight off disk and hands back the root cause and the fix.
17
17
  ### 1. Get an API key (optional but recommended)
18
18
 
19
19
  Sign in at **[denpex.com/dashboard](https://denpex.com/dashboard) → API Keys** and create a key (`dpx_…`).
20
- The key unlocks the cloud LLM fallback on novel errors, your diagnosis history, quota, and
21
- fleet incidents. *Without a key, `diagnose_crash`, `lookup_failure`, and `analyze_cascade`
22
- still work fully offline.*
20
+ The key unlocks authenticated cloud diagnosis, your diagnosis history, quota, and fleet
21
+ incidents. *Without a key, `diagnose_crash` uses the same canonical anonymous engine as
22
+ the homepage's three free diagnoses. Set `DENPEX_LOCAL=1` explicitly for zero-egress;
23
+ `lookup_failure` and `analyze_cascade` remain available from the bundled offline data.*
23
24
 
24
25
  ### 2. Add it to your client
25
26
 
@@ -91,8 +92,9 @@ secure data centers, and privacy-sensitive labs. Add `DENPEX_LOCAL=1`:
91
92
  } } }
92
93
  ```
93
94
 
94
- The bundled engine (31 fast patterns + the 312-class encyclopedia + Xid routing + cascade
95
- localization) covers the overwhelming majority of real failures. The LLM fallback for novel
95
+ The bundled engine (fast patterns + a 300+-class encyclopedia snapshot + Xid routing + cascade
96
+ localization) covers the common failure classes; the full, continuously-grown corpus and the
97
+ deep-analysis tiers run online. The LLM fallback for novel
96
98
  errors is cloud-only and simply unavailable offline.
97
99
 
98
100
  ---
@@ -101,19 +103,39 @@ errors is cloud-only and simply unavailable offline.
101
103
 
102
104
  | Tool | What it does | Needs |
103
105
  |------|--------------|-------|
104
- | `diagnose_crash` | Root cause + escalating fix from `logs` / `file` / `dir`. | works offline |
105
- | `lookup_failure` | Search the 312-class encyclopedia by code/keyword/symptom. | works offline |
106
+ | `diagnose_crash` | Root cause + escalating fix from `logs` / `file` / `dir`. Also accepts `telemetry` (dmesg / nvidia-smi / ibstat), `codeContext` and `topologyMap`. | canonical cloud by default; explicit offline mode |
107
+ | `lookup_failure` | Search the bundled encyclopedia (300+ classes) by code/keyword/symptom. | works offline |
106
108
  | `analyze_cascade` | Find the culprit rank in a distributed hang; route Xid faults. | works offline |
109
+ | `submit_fix_outcome` | Report whether a fix worked. **This is what makes the next diagnosis better.** | API key |
107
110
  | `check_quota` | Your plan and remaining diagnoses this month. | API key |
108
111
  | `recent_diagnoses` | Recall your recent diagnoses and their fixes. | API key |
109
112
  | `ask_followup` | Conversational follow-up on a diagnosis. | Team plan / trial |
110
113
  | `check_versions` | Flag known-bad CUDA/PyTorch/NCCL/driver combos. | Team plan / trial |
114
+ | `compare_runs` | "It worked yesterday" — isolate what changed between a good run and a bad one. | Team plan / trial |
115
+ | `diff_environments` | Diff torch/CUDA/NCCL/driver versions and env vars between two runs. | Team plan / trial |
116
+ | `validate_checkpoint` | Find the newest checkpoint that is actually safe to resume from. | Team plan / trial |
117
+ | `preflight_check` | "Is this cluster safe to launch on?" — blockers before you burn GPU-hours. | Scale plan |
118
+ | `node_health` | Score every monitored node, worst first. | Scale plan |
119
+ | `predict_failures` | Nodes trending toward a failure that has not happened yet. | Scale plan |
111
120
  | `list_incidents` | Incidents Denpex's monitor caught & escalated on your fleet. | Scale plan |
112
121
 
113
122
  Gated tools degrade gracefully — they tell you exactly which plan unlocks them and which
114
123
  tools work on your current plan. The failure encyclopedia is also exposed as resources at
115
124
  `denpex://failures/{slug}`.
116
125
 
126
+ **Structured output.** Every tool above returns `structuredContent` alongside its
127
+ markdown, validated against a declared output schema — so an agent branches on
128
+ `confidenceBand === "low"` or iterates `rankedHypotheses` instead of regexing prose.
129
+ Two fields deserve attention when you write the agent loop:
130
+
131
+ - **`confidence: null`** does not mean zero. It means the engine measured this band's
132
+ historical accuracy and declined to state a number. Treat the verdict as a lead. Do
133
+ not substitute the raw score.
134
+ - **`unfalsified: true`** means no falsification contract ran on the verdict. It is
135
+ always true offline (the offline engine has no contract layer), so an offline
136
+ `GPU_XID_ECC` has *not* been checked against telemetry that would contradict it.
137
+ Confirm before you drain a node or file an RMA.
138
+
117
139
  ---
118
140
 
119
141
  ## Environment variables
@@ -132,7 +154,7 @@ tools work on your current plan. The failure encyclopedia is also exposed as res
132
154
  ```bash
133
155
  npm install
134
156
  npm run build # regenerates the offline corpus, then bundles dist/index.js
135
- npm test # 48 unit + protocol-integration tests
157
+ npm test # 88 unit + protocol-integration tests
136
158
  npm run inspector # interactive protocol inspector (MCP Inspector)
137
159
  ```
138
160