mirror of
https://github.com/getcompanion-ai/co-mono.git
synced 2026-04-16 23:01:56 +00:00
Replace Zod with TypeBox for schema validation
- Switch from Zod to TypeBox for tool parameter schemas - TypeBox schemas can be serialized/deserialized as JSON - Use AJV for runtime validation instead of Zod's parse - Add StringEnum helper for Google API compatibility (avoids anyOf/const patterns) - Export Type and Static from main package for convenience - Update all tests and documentation to reflect TypeBox usage
This commit is contained in:
parent
f5ac1ef521
commit
e8370436d7
16 changed files with 196 additions and 121 deletions
17
packages/ai/test/enum-test.ts
Normal file
17
packages/ai/test/enum-test.ts
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
import { Type } from "@sinclair/typebox";
|
||||
import { z } from "zod";
|
||||
import { zodToJsonSchema } from "zod-to-json-schema";
|
||||
import { StringEnum } from "../src/typebox-helpers.js";
|
||||
|
||||
// Zod version
|
||||
const zodSchema = z.object({
|
||||
operation: z.enum(["add", "subtract", "multiply", "divide"]),
|
||||
});
|
||||
|
||||
// TypeBox with our StringEnum helper
|
||||
const typeboxHelper = Type.Object({
|
||||
operation: StringEnum(["add", "subtract", "multiply", "divide"]),
|
||||
});
|
||||
|
||||
console.log("Zod:", JSON.stringify(zodToJsonSchema(zodSchema), null, 2));
|
||||
console.log("\nTypeBox.StringEnum:", JSON.stringify(typeboxHelper, null, 2));
|
||||
Loading…
Add table
Add a link
Reference in a new issue