{ "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", "test:integration": "INTEGRATION_TESTS=true vitest run --config vitest.integration.config.ts", "test:integration:watch": "INTEGRATION_TESTS=true vitest --config vitest.integration.config.ts", "test:setup-credentials": "tsx src/test/integration/_helpers/setup-test-credentials.ts", "test:setup-openai-key": "tsx src/test/integration/_helpers/setup-openai-key.ts", "test:cleanup-orphans": "tsx src/test/integration/_helpers/cleanup-orphans.ts", "generate-og": "tsx scripts/generate-og-images.ts" }, "dependencies": { "@ai-sdk/anthropic": "^3.0.9", "@ai-sdk/google": "^3.0.6", "@ai-sdk/groq": "^3.0.4", "@ai-sdk/mistral": "^3.0.5", "@ai-sdk/openai": "3.0.7", "@modelcontextprotocol/sdk": "^1.25.2", "@prisma/client": "^6.19.1", "@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.23", "better-auth": "^1.4.10", "bm25": "^0.1.1", "d3": "^7.9.0", "next": "^16.1.1", "next-themes": "^0.4.6", "openai": "^6.15.0", "prisma": "^6.19.1", "react": "^19.2.3", "react-dom": "^19.2.3", "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.7.0", "sonner": "^2.0.7", "zod": "^4.3.5" }, "devDependencies": { "@tailwindcss/typography": "^0.5.19", "@tpmjs/eslint-config": "workspace:*", "@tpmjs/tailwind-config": "workspace:*", "@tpmjs/tsconfig": "workspace:*", "@types/node": "^25.0.3", "@types/react": "^19.2.7", "@types/react-dom": "^19.2.3", "autoprefixer": "^10.4.23", "dotenv": "^17.2.3", "eslint": "^9.39.2", "eslint-config-next": "^16.1.1", "postcss": "^8.5.6", "tailwindcss": "^3.4.19", "tsx": "^4.21.0", "typescript": "^5.9.3", "vitest": "^4.0.16" } }