{ "name": "@cap/web", "version": "0.3.1", "private": true, "scripts": { "dev": "cross-env NODE_OPTIONS=--disable-warning=DEP0169 dotenv -e ../../.env -- next dev", "build": "next build --turbopack", "build:web": "next build --turbopack", "build:docker": "cd ../.. && docker build -t cap-web-docker . --no-cache --progress=plain", "start": "cross-env NODE_OPTIONS=--disable-warning=DEP0169 next start", "compress-images": "bash tools/compress-images.sh", "mcp-card:generate": "bun scripts/build-mcp-card.mjs", "mcp-card:check": "bun scripts/build-mcp-card.mjs --check", "test": "vitest run", "test:agent-e2e": "CAP_AGENT_E2E=1 vitest run __tests__/e2e/agent-local-e2e.test.ts", "test:watch": "vitest", "test:coverage": "vitest run --coverage", "test:ui": "vitest --ui" }, "dependencies": { "@ai-sdk/anthropic": "^4.0.37", "@ai-sdk/groq": "^4.0.27", "@ai-sdk/openai": "^4.0.37", "@ai-sdk/openai-compatible": "^3.0.29", "@aws-sdk/client-cloudfront": "^3.565.0", "@aws-sdk/client-mediaconvert": "^3.565.0", "@aws-sdk/client-s3": "^3.485.0", "@aws-sdk/cloudfront-signer": "^3.821.0", "@aws-sdk/s3-presigned-post": "^3.485.0", "@aws-sdk/s3-request-presigner": "^3.485.0", "@cap/database": "workspace:*", "@cap/env": "workspace:*", "@cap/recorder-core": "workspace:*", "@cap/ui": "workspace:*", "@cap/utils": "workspace:*", "@cap/web-api-contract": "workspace:*", "@cap/web-api-contract-effect": "workspace:*", "@cap/web-backend": "workspace:*", "@cap/web-domain": "workspace:*", "@dnd-kit/core": "^6.3.1", "@dnd-kit/utilities": "^3.2.2", "@effect/experimental": "^0.56.0", "@effect/opentelemetry": "^0.58.0", "@effect/platform": "^0.92.1", "@effect/platform-node": "^0.98.3", "@effect/rpc": "^0.71.0", "@effect/sql-mysql2": "^0.47.0", "@fortawesome/free-brands-svg-icons": "^6.7.2", "@fortawesome/free-solid-svg-icons": "^6.7.2", "@fortawesome/react-fontawesome": "^0.2.2", "@headlessui/react": "^1.7.17", "@hono/zod-validator": "^0.7.1", "@hookform/resolvers": "^5.1.0", "@kubiks/otel-drizzle": "^2.1.0", "@modelcontextprotocol/ext-apps": "2.0.0", "@modelcontextprotocol/server": "2.3.1", "@mux/mux-node": "^8.5.1", "@number-flow/react": "^0.5.9", "@octokit/rest": "^20.0.2", "@openpanel/nextjs": "^1.5.1", "@openpanel/sdk": "^1.3.1", "@opentelemetry/api": "^1.9.0", "@opentelemetry/exporter-trace-otlp-http": "^0.206.0", "@opentelemetry/sdk-trace-base": "^2.1.0", "@opentelemetry/sdk-trace-node": "^2.1.0", "@opentelemetry/sdk-trace-web": "^2.1.0", "@radix-ui/colors": "^3.0.0", "@radix-ui/react-dialog": "^1.1.13", "@radix-ui/react-dropdown-menu": "^2.0.6", "@radix-ui/react-popover": "^1.0.7", "@radix-ui/react-select": "^2.2.5", "@radix-ui/react-slider": "^1.3.5", "@radix-ui/react-slot": "^1.2.3", "@radix-ui/react-tooltip": "^1.2.6", "@react-email/components": "^0.1.0", "@react-email/render": "1.1.2", "@remotion/media-parser": "^4.0.481", "@remotion/webcodecs": "^4.0.481", "@rive-app/react-canvas": "^4.18.7", "@sentry/nextjs": "10.75.3", "@stripe/react-stripe-js": "^7.0.1", "@stripe/stripe-js": "^10.2.0", "@t3-oss/env-nextjs": "^0.13.0", "@tanstack/react-devtools": "^0.7.0", "@tanstack/react-query": "^5.90.1", "@tanstack/react-query-devtools": "^5.90.1", "@tanstack/react-store": "^0.7.7", "@tanstack/store": "^0.7.7", "@uidotdev/usehooks": "^2.4.1", "@vercel/firewall": "^1.1.2", "@vercel/functions": "^3.1.0", "@virtual-grid/react": "^2.0.3", "@workos-inc/node": "^7.34.0", "ai": "^7.0.59", "assemblyai": "^4.36.4", "aws-sdk": "^2.1530.0", "canvas-confetti": "^1.9.3", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cookies-next": "^4.1.0", "country-flag-icons": "^1.5.21", "date-fns": "^4.1.0", "dompurify": "^3.4.17", "dotenv": "^16.3.1", "drizzle-orm": "0.45.2", "dub": "^0.64.0", "effect": "^3.18.4", "ffmpeg-static": "^5.3.0", "file-saver": "^2.0.5", "framer-motion": "^12.42.2", "geist": "^1.3.1", "gif.js": "0.2.0", "hls.js": "^1.5.3", "hono": "^4.13.16", "js-cookie": "^3.0.5", "jsdom": "^26.1.0", "jszip": "^3.10.1", "lodash": "^4.17.21", "lucide-react": "^0.525.0", "media-chrome": "^4.12.0", "mediabunny": "^1.45.2", "moment": "^2.31.0", "motion": "^12.18.1", "next": "16.4.5", "next-auth": "^4.24.15", "next-mdx-remote": "^6.0.0", "pdf-lib": "^1.17.1", "prettier": "^3.7.4", "react": "19.2.4", "react-dom": "19.2.4", "react-email": "^4.2.11", "react-hls-player": "^3.0.7", "react-hook-form": "^7.49.2", "react-hot-toast": "^2.4.1", "react-markdown": "^10.1.0", "react-rnd": "^10.4.1", "react-scroll-parallax": "^3.4.5", "react-tooltip": "^5.26.3", "react-tweet": "^3.3.1", "recharts": "^3.3.0", "rehype-pretty-code": "^0.14.1", "remark-gfm": "^4.0.1", "replicate": "^1.4.0", "resend": "4.6.0", "server-only": "^0.0.1", "shiki": "3", "sonner": "^2.0.3", "stripe-v23": "npm:stripe@23.0.1", "subtitles-parser-vtt": "^0.1.0", "supermemory": "^4.11.1", "tailwind-merge": "^2.6.0", "tailwindcss-animate": "^1.0.7", "tldts": "^7.0.11", "ua-parser-js": "^1.0.38", "uuid": "^11.1.1", "workflow": "4.6.0", "zod": "^4.6.7" }, "devDependencies": { "@smithy/types": "^4.3.1", "@types/canvas-confetti": "^1.9.0", "@types/file-saver": "^2.0.7", "@types/js-cookie": "^3.0.6", "@types/jsdom": "^21.1.7", "@types/lodash": "^4.17.5", "@types/node": "^20.11.5", "@types/react": "19.2.14", "@types/react-dom": "19.2.3", "@types/react-responsive-masonry": "^2.6.0", "@types/ua-parser-js": "^0.7.39", "@types/uuid": "^9.0.8", "@vitest/coverage-v8": "^3.2.0", "@vitest/ui": "^3.2.0", "autoprefixer": "^10.4.14", "cross-env": "^7.0.3", "eslint": "^9.30.1", "eslint-config-next": "16.4.5", "glob": "^14.0.4", "postcss": "^8.4.23", "tailwindcss": "^3", "typescript": "^5.8.3", "vitest": "^3.2.0" }, "engines": { "node": "24.x" } }