denpex-mcp 0.2.22 → 0.2.24

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 (2) hide show
  1. package/dist/index.js +15 -8
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -12351,7 +12351,7 @@ function registerFollowup(server, ctx) {
12351
12351
  });
12352
12352
  if (!reply.reply || typeof reply.reply !== "object" || Array.isArray(reply.reply)) return toolText("No complete follow-up report returned. Retry without treating this as a diagnosis.", true);
12353
12353
  const r = reply.reply;
12354
- const view = viewFromCloud({ fix: r, forensicReport: r.forensicReport, diagnosisId, meta: { failureType: r.failureType, confidence: r.confidence } });
12354
+ const view = viewFromCloud({ ...r, fix: r, forensicReport: r.forensicReport, diagnosisId, meta: { failureType: r.failureType, confidence: r.confidence } });
12355
12355
  const lines = [renderDiagnosis(view)];
12356
12356
  const cid = reply.conversationId;
12357
12357
  if (typeof cid === "string") lines.push("", `_conversationId: ${cid} (pass this back to continue)_`);
@@ -12741,9 +12741,9 @@ function registerFleetTools(server, ctx) {
12741
12741
  server.registerTool(
12742
12742
  "validate_checkpoint",
12743
12743
  {
12744
- title: "Find the newest checkpoint that is safe to resume from",
12744
+ title: "Inspect supplied checkpoint integrity evidence",
12745
12745
  annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: true },
12746
- description: "Before you resume a crashed job, check that the checkpoint you are about to resume FROM is not the one the crash corrupted. Give it `ls -la` of the checkpoint directory, and optionally `sha256sum -c` output and any load errors. Returns which checkpoints are valid, which are corrupt, and the newest safe resume point. Resuming from a mid-write checkpoint costs days and is the single most expensive avoidable mistake after a crash.",
12746
+ description: "Inspect directory listings, checksum output and load errors for signs of checkpoint corruption. Supplied metadata does not verify full shard coverage, compatible optimizer state or successful workload recovery. Validate actual loading and intended progress before resuming.",
12747
12747
  inputSchema: {
12748
12748
  directoryListing: z9.string().optional().describe("Output of `ls -la` (or `ls -la --time-style=full-iso`) on the checkpoint directory."),
12749
12749
  sha256Output: z9.string().optional().describe("Output of `sha256sum -c MANIFEST.sha256`, if you keep a manifest."),
@@ -12751,6 +12751,9 @@ function registerFleetTools(server, ctx) {
12751
12751
  failureType: z9.string().optional().describe("The diagnosed failure type, if you have one, it sharpens the verdict.")
12752
12752
  },
12753
12753
  outputSchema: {
12754
+ candidateArtifact: z9.string().nullable(),
12755
+ resumeVerified: z9.literal(false),
12756
+ workloadRecoveryVerified: z9.literal(false),
12754
12757
  latestValidCheckpoint: z9.string().nullable(),
12755
12758
  validCheckpoints: z9.array(z9.string()),
12756
12759
  corruptedCheckpoints: z9.array(z9.string()),
@@ -12776,13 +12779,17 @@ function registerFleetTools(server, ctx) {
12776
12779
  const latest = str2(r.latestValidCheckpoint);
12777
12780
  const recommendation = str2(r.recommendation) ?? "";
12778
12781
  const lines = [
12779
- latest ? `## Safe resume point: \`${latest}\`` : `## No verified-safe checkpoint found`,
12780
- ...bullets("Corrupted", corrupt),
12781
- ...bullets("Valid", valid.slice(0, 10)),
12782
- ...bullets("Issues", issues)
12782
+ "## Checkpoint evidence assessment",
12783
+ ...bullets("Corruption signals", corrupt),
12784
+ ...bullets("Checksum-passing entries supplied", valid.slice(0, 10)),
12785
+ ...bullets("Issues", issues),
12786
+ "Resume is not verified. Check the complete manifest, actual load, configuration compatibility and workload progress."
12783
12787
  ];
12784
12788
  if (recommendation) lines.push("", `**Recommendation:** ${recommendation}`);
12785
12789
  return toolResult(lines.join("\n"), {
12790
+ candidateArtifact: str2(r.candidateArtifact),
12791
+ resumeVerified: false,
12792
+ workloadRecoveryVerified: false,
12786
12793
  latestValidCheckpoint: latest,
12787
12794
  validCheckpoints: valid,
12788
12795
  corruptedCheckpoints: corrupt,
@@ -12968,7 +12975,7 @@ function registerPrompts(server) {
12968
12975
 
12969
12976
  // src/version.ts
12970
12977
  var SERVER_NAME = "denpex";
12971
- var SERVER_VERSION = "0.2.22";
12978
+ var SERVER_VERSION = "0.2.24";
12972
12979
 
12973
12980
  // src/server.ts
12974
12981
  function createServer() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "denpex-mcp",
3
- "version": "0.2.22",
3
+ "version": "0.2.24",
4
4
  "description": "Denpex MCP server, diagnose GPU/ML training failures (CUDA OOM, NCCL timeouts, Xid faults, NaN loss) from Claude Desktop, Cursor, or Claude Code, with optional explicit zero-egress mode.",
5
5
  "type": "module",
6
6
  "license": "MIT",