fix(mcp): emit valid schemas for empty arrays (#535)

Replace empty tuples with a shared empty-array schema. Validate all input
and output schemas against Draft 2020-12 during catalog generation and
packaged MCP verification, with runtime and catalog regression coverage.

Closes #528

Assisted-by: Kogasa (gensokyo-skills:kogasa-surprise-testing)
This commit is contained in:
N0zoM1z0 authored and GitHub committed 2026-10-05 15:32:58 +08:00
1 parent 3e4d4d93fd
commit 4007b20fc2
18 files changed
+224 -22

No files matched your search

@@ -1,5 +1,6 @@
import { z } from "zod";
import { emptyArraySchema } from "./emptyArraySchema.js";
import { evidenceSchema } from "./evidence.js";
import { javascriptApplicationGraphSchema } from "./javascriptApplicationGraph.js";
import { JAVASCRIPT_APPLICATION_NODE_KINDS } from "./javascriptApplicationGraphSchemas.js";
@@ -37,7 +38,7 @@ export const compareApplicationVersionsInputSchema = z
}
});
const emptyCandidateNodesSchema = z.tuple([]);
const emptyCandidateNodesSchema = emptyArraySchema;
const candidateNodesSchema = z.tuple([nodeIdSchema]).rest(nodeIdSchema);
const exactMatchSchema = z.strictObject({
status: z.literal("matched"),