scripts / test-zod-json-schema.mjs
scripts / test-zod-json-schema.mjs
import { z } from "zod";
const CATEGORY_OPTIONS = [
"all", "orchestration", "investigation", "design", "principle", "build", "verification",
] as const;
// Try parsing each tool's parameters with zod-to-json-schema
const tools = [
{ name: "list_skills", schema: z.object({
category: z.enum(CATEGORY_OPTIONS).default("all").describe("Filter by category."),
})},
{ name: "search_skills", schema: z.object({
query: z.string().describe("Keyword."),
limit: z.number().int().min(1).max(10).default(5).describe("Max results."),
})},
{ name: "get_skill", schema: z.object({
name: z.string().describe("Skill name."),
mode: z.enum(["summary", "full"]).default("summary").describe("Return format."),
})},
{ name: "recommend_skills", schema: z.object({
task: z.string().describe("Task description."),
limit: z.number().int().min(1).max(5).default(3).describe("Max skills."),
})},
{ name: "get_principles", schema: z.object({
names: z.array(z.string()).optional().describe("Principle names."),
mode: z.enum(["summary", "full"]).default("summary").describe("Return format."),
})},
{ name: "get_playbook", schema: z.object({
name: z.string().describe("Playbook name."),
mode: z.enum(["summary", "full"]).default("summary").describe("Return format."),
})},
{ name: "playbook-route", schema: z.object({
task: z.string().describe("Task description."),
limit: z.number().int().min(1).max(10).default(3).describe("Max skills."),
})},
{ name: "skill-graph", schema: z.object({
skill_name: z.string().optional().describe("Skill name."),
include_principles: z.boolean().default(true).describe("Include principles."),
include_playbooks: z.boolean().default(true).describe("Include playbooks."),
})},
{ name: "search_skills_embedded", schema: z.object({
query: z.string().describe("Search phrase."),
limit: z.number().int().min(1).max(20).default(10).describe("Max results."),
})},
{ name: "skill-prompt", schema: z.object({
skill_name: z.string().describe("Skill name."),
task_context: z.string().optional().describe("Task context."),
})},
{ name: "principles-index", schema: z.object({
category: z.enum(["all", "core", "architecture", "verification", "delegation", "meta"]).default("all").describe("Category."),
})},
];
for (const t of tools) {
try {
const result = (await import("zod-to-json-schema")).default(t.schema);
console.log(`✅ ${t.name} → OK (${JSON.stringify(result).slice(0,60)}...)`);
} catch (e) {
console.error(`❌ ${t.name} → FAILED: ${(e as Error).message}`);
}
}
import { z } from "zod";
const CATEGORY_OPTIONS = [
"all", "orchestration", "investigation", "design", "principle", "build", "verification",
] as const;
// Try parsing each tool's parameters with zod-to-json-schema
const tools = [
{ name: "list_skills", schema: z.object({
category: z.enum(CATEGORY_OPTIONS).default("all").describe("Filter by category."),
})},
{ name: "search_skills", schema: z.object({
query: z.string().describe("Keyword."),
limit: z.number().int().min(1).max(10).default(5).describe("Max results."),
})},
{ name: "get_skill", schema: z.object({
name: z.string().describe("Skill name."),
mode: z.enum(["summary", "full"]).default("summary").describe("Return format."),
})},
{ name: "recommend_skills", schema: z.object({
task: z.string().describe("Task description."),
limit: z.number().int().min(1).max(5).default(3).describe("Max skills."),
})},
{ name: "get_principles", schema: z.object({
names: z.array(z.string()).optional().describe("Principle names."),
mode: z.enum(["summary", "full"]).default("summary").describe("Return format."),
})},
{ name: "get_playbook", schema: z.object({
name: z.string().describe("Playbook name."),
mode: z.enum(["summary", "full"]).default("summary").describe("Return format."),
})},
{ name: "playbook-route", schema: z.object({
task: z.string().describe("Task description."),
limit: z.number().int().min(1).max(10).default(3).describe("Max skills."),
})},
{ name: "skill-graph", schema: z.object({
skill_name: z.string().optional().describe("Skill name."),
include_principles: z.boolean().default(true).describe("Include principles."),
include_playbooks: z.boolean().default(true).describe("Include playbooks."),
})},
{ name: "search_skills_embedded", schema: z.object({
query: z.string().describe("Search phrase."),
limit: z.number().int().min(1).max(20).default(10).describe("Max results."),
})},
{ name: "skill-prompt", schema: z.object({
skill_name: z.string().describe("Skill name."),
task_context: z.string().optional().describe("Task context."),
})},
{ name: "principles-index", schema: z.object({
category: z.enum(["all", "core", "architecture", "verification", "delegation", "meta"]).default("all").describe("Category."),
})},
];
for (const t of tools) {
try {
const result = (await import("zod-to-json-schema")).default(t.schema);
console.log(`✅ ${t.name} → OK (${JSON.stringify(result).slice(0,60)}...)`);
} catch (e) {
console.error(`❌ ${t.name} → FAILED: ${(e as Error).message}`);
}
}