π File detail
utils/zodToJsonSchema.ts
π§© .tsπ 24 linesπΎ 761 bytesπ text
β Back to All Filesπ― Use case
This file lives under βutils/β, which covers cross-cutting helpers (shell, tempfiles, settings, messages, process input, β¦). On the API surface it exposes JsonSchema7Type and zodToJsonSchema β mainly functions, hooks, or classes. Dependencies touch schema validation. What the file header says: Converts Zod v4 schemas to JSON Schema using native toJSONSchema.
Generated from folder role, exports, dependency roots, and inline comments β not hand-reviewed for every path.
π§ Inline summary
Converts Zod v4 schemas to JSON Schema using native toJSONSchema.
π€ Exports (heuristic)
JsonSchema7TypezodToJsonSchema
π External import roots
Package roots from from "β¦" (relative paths omitted).
zod
π₯οΈ Source preview
/**
* 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
}