{ "name": "@tpmjs/web", "version": "0.0.0", "private": true, "scripts": { "postinstall": "prisma generate --schema=../../packages/db/prisma/schema.prisma", "dev": "npx @react-grab/claude-code@latest && next dev", "build": "prisma generate --schema=../../packages/db/prisma/schema.prisma && next build", "start": "next start", "lint": "eslint .", "type-check": "tsc --noEmit", "clean": "rm -rf .next .turbo", "test": "vitest run", "test:watch": "vitest", "generate-og": "tsx scripts/generate-og-images.ts" }, "dependencies": { "@ai-sdk/anthropic": "^3.0.2", "@ai-sdk/google": "^3.0.2", "@ai-sdk/groq": "^3.0.2", "@ai-sdk/mistral": "^3.0.2", "@ai-sdk/openai": "3.0.1", "@modelcontextprotocol/sdk": "^1.25.1", "@prisma/client": "^6.19.0", "@tpmjs/db": "workspace:*", "@tpmjs/env": "workspace:*", "@tpmjs/npm-client": "workspace:*", "@tpmjs/package-executor": "workspace:*", "@tpmjs/types": "workspace:*", "@tpmjs/ui": "workspace:*", "@tpmjs/utils": "workspace:*", "@types/d3": "^7.4.3", "@types/react-syntax-highlighter": "^15.5.13", "@vercel/analytics": "^1.6.1", "@vercel/blob": "^2.0.0", "@vercel/kv": "^3.0.0", "ai": "6.0.3", "better-auth": "^1.4.10", "bm25": "^0.1.1", "d3": "^7.9.0", "next": "^16.0.8", "next-themes": "^0.4.6", "openai": "^6.9.1", "prisma": "^6.19.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-markdown": "^10.1.0", "react-syntax-highlighter": "^16.1.0", "react-virtuoso": "^4.18.1", "rehype-raw": "^7.0.0", "rehype-sanitize": "^6.0.0", "remark-gfm": "^4.0.1", "resend": "^6.6.0", "zod": "^4.0.0" }, "devDependencies": { "@tailwindcss/typography": "^0.5.19", "@tpmjs/eslint-config": "workspace:*", "@tpmjs/tailwind-config": "workspace:*", "@tpmjs/tsconfig": "workspace:*", "@types/node": "^22.10.2", "@types/react": "^19.0.2", "@types/react-dom": "^19.0.2", "autoprefixer": "^10.4.20", "dotenv": "^17.2.3", "eslint": "^9.39.1", "eslint-config-next": "^16.0.4", "postcss": "^8.5.1", "tailwindcss": "^3.4.17", "tsx": "^4.21.0", "typescript": "^5.9.3", "vitest": "^2.1.9" } }