tpmjs/apps/web
Ajax Davis 78c72b85f3 feat: upgrade to AI SDK v6 beta and Zod v4 to fix tool schema errors
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>
2025-11-30 19:14:01 +10:00
..
src feat: upgrade to AI SDK v6 beta and Zod v4 to fix tool schema errors 2025-11-30 19:14:01 +10:00
.gitignore fix(ci): skip Lefthook installation in CI/Vercel environments 2025-11-30 05:00:00 +10:00
eslint.config.mjs fix(lint): configure Biome to properly ignore build directories 2025-11-26 22:49:45 +10:00
next-env.d.ts fix(ui): make RadioGroup SSR-compatible while preserving runtime validation 2025-11-27 02:38:55 +10:00
next.config.ts fix: remove VM2 sandboxing to resolve Next.js build errors 2025-11-30 00:57:32 +10:00
package.json feat: upgrade to AI SDK v6 beta and Zod v4 to fix tool schema errors 2025-11-30 19:14:01 +10:00
postcss.config.js feat: add complete monorepo structure and all packages 2025-11-25 21:59:40 +10:00
tailwind.config.ts fix(lint): configure Biome to properly ignore build directories 2025-11-26 22:49:45 +10:00
tsconfig.json feat(sync): implement Phase 3 Sync Workers with Vercel Cron integration 2025-11-28 02:57:54 +10:00
vercel.json fix(vercel): run install command from monorepo root to access workspace packages 2025-11-30 05:07:28 +10:00