Something went wrong. Try again.
source dump of claude code forked from oppi.li/claude-code
Something went wrong. Try again.
761 B · 23 lines
TypeScript
at main
123456789101112131415161718192021222324/** * Converts Zod v4 schemas to JSON Schema using native toJSONSchema. */
import { toJSONSchema, type ZodTypeAny } from 'zod/v4'
export type JsonSchema7Type = Record<string, unknown>
// toolToAPISchema() runs this for every tool on every API request (~60-250// times/turn). Tool schemas are wrapped with lazySchema() which guarantees the// same ZodTypeAny reference per session, so we can cache by identity.const cache = new WeakMap<ZodTypeAny, JsonSchema7Type>()
/** * Converts a Zod v4 schema to JSON Schema format. */export function zodToJsonSchema(schema: ZodTypeAny): JsonSchema7Type { const hit = cache.get(schema) if (hit) return hit const result = toJSONSchema(schema) as JsonSchema7Type cache.set(schema, result) return result}