OpenAI was rejecting tool definitions with error "schema must be a JSON Schema of 'type: "object"'". This was caused by AI SDK v5 not properly converting Zod schemas to JSON Schema format. **Changes:** - Upgrade AI SDK from v5.0.104 to v6.0.0-beta.124 - Upgrade @ai-sdk/openai from v2.0.74 to v3.0.0-beta.22 - Upgrade Zod from v3.25.76 to v4.1.13 across all packages **AI SDK v6 breaking changes:** - Tool definition API: `parameters` renamed to `inputSchema` - Removed `aiTool()` wrapper - use plain object with description, inputSchema, execute - Streaming API: Use `textStream` async iterator instead of onChunk callback - Zod schemas now properly converted to JSON Schema for OpenAI **Zod v4 breaking changes:** - `z.record()` now requires two arguments: `z.record(keySchema, valueSchema)` - `z.enum()` params changed: `errorMap` removed, use `message` instead - Type system improvements require explicit type parameters - Fixed type errors in @tpmjs/env, @tpmjs/npm-client, @tpmjs/types **Files changed:** - apps/web/src/lib/ai-agent/tool-executor-agent.ts - Updated tool definition to use `inputSchema` instead of `parameters` - Removed `aiTool()` wrapper - Fixed streaming to use `textStream` iterator - packages/env/src/index.ts - Updated type constraint from `z.ZodRawShape` to `Record<string, z.ZodTypeAny>` - packages/npm-client/src/package.ts - Fixed `z.record()` calls to include both key and value schemas - Added type assertions for record indexing - packages/types/src/tpmjs.ts - Changed `errorMap` to `message` in z.enum() calls **Testing:** - ✅ Type-check passes - ✅ Production build succeeds - ✅ All routes compile correctly This fixes the tool execution error where OpenAI rejected tool schemas with invalid format. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
34 lines
905 B
JSON
34 lines
905 B
JSON
{
|
|
"name": "@tpmjs/storybook",
|
|
"version": "0.0.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "storybook dev -p 6006",
|
|
"build": "storybook build",
|
|
"clean": "rm -rf storybook-static .turbo"
|
|
},
|
|
"dependencies": {
|
|
"@tpmjs/ui": "workspace:*",
|
|
"react": "^19.0.0",
|
|
"react-dom": "^19.0.0",
|
|
"zod": "^4.1.13"
|
|
},
|
|
"devDependencies": {
|
|
"@storybook/addon-essentials": "^8.5.0",
|
|
"@storybook/addon-interactions": "^8.5.0",
|
|
"@storybook/addon-links": "^8.5.0",
|
|
"@storybook/blocks": "^8.5.0",
|
|
"@storybook/react": "^8.5.0",
|
|
"@storybook/react-vite": "^8.5.0",
|
|
"@storybook/test": "^8.5.0",
|
|
"@tpmjs/tailwind-config": "workspace:*",
|
|
"@types/react": "^19.0.2",
|
|
"@types/react-dom": "^19.0.2",
|
|
"autoprefixer": "^10.4.20",
|
|
"postcss": "^8.5.1",
|
|
"storybook": "^8.5.0",
|
|
"tailwindcss": "^3.4.17",
|
|
"vite": "^6.0.7"
|
|
}
|
|
}
|