{ "name": "upage", "version": "1.0.1", "private": true, "description": "使用人工智能构建可视化网页", "sideEffects": false, "type": "module", "scripts": { "dev": "node pre-start.mjs && remix vite:dev", "build": "remix vite:build", "preview": "pnpm run build && pnpm run start", "start": "cross-env NODE_ENV=production node ./server.mjs", "check": "biome check --write --no-errors-on-unmatched .", "check:stage": "biome check --write --staged --no-errors-on-unmatched", "clean": "node scripts/clean.js", "setup": "prisma migrate deploy && prisma generate", "docker:build": "docker build -t upage-ai:production -t upage-ai:latest --target runtime .", "docker:dev:run": "docker compose -f docker-compose-dev.yaml up", "docker:prod:run": "docker compose -f docker-compose-prod.yaml up", "prepare": "husky || true", "test": "vitest --run", "test:watch": "vitest", "typecheck": "tsc", "docs:start": "pnpm --filter upage-docs run start", "docs:build": "pnpm --filter upage-docs run build", "docs:serve": "pnpm --filter upage-docs run serve" }, "dependencies": { "@agentic/ai-sdk": "^8.4.4", "@agentic/serper": "^8.4.4", "@agentic/weather": "^7.6.9", "@ai-sdk/amazon-bedrock": "^3.0.22", "@ai-sdk/anthropic": "^2.0.17", "@ai-sdk/cohere": "^2.0.10", "@ai-sdk/deepseek": "^1.0.18", "@ai-sdk/google": "^2.0.15", "@ai-sdk/mistral": "^2.0.15", "@ai-sdk/openai": "^2.0.32", "@ai-sdk/openai-compatible": "^1.0.19", "@ai-sdk/react": "^2.0.49", "@floating-ui/react": "^0.27.16", "@headlessui/react": "^2.2.8", "@iconify-json/svg-spinners": "^1.2.4", "@logto/node": "^3.1.6", "@logto/remix": "^3.0.10", "@nanostores/react": "^1.0.0", "@octokit/rest": "^22.0.0", "@openrouter/ai-sdk-provider": "^1.2.0", "@prisma/adapter-better-sqlite3": "^6.16.2", "@prisma/client": "^6.16.2", "@radix-ui/react-checkbox": "^1.3.3", "@radix-ui/react-collapsible": "^1.1.12", "@radix-ui/react-context-menu": "^2.2.16", "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-dropdown-menu": "^2.1.16", "@radix-ui/react-label": "^2.1.7", "@radix-ui/react-popover": "^1.1.15", "@radix-ui/react-progress": "^1.1.7", "@radix-ui/react-scroll-area": "^1.2.10", "@radix-ui/react-separator": "^1.1.7", "@radix-ui/react-switch": "^1.2.6", "@radix-ui/react-tabs": "^1.1.13", "@radix-ui/react-tooltip": "^1.2.8", "@remix-run/express": "^2.17.1", "@remix-run/node": "^2.17.1", "@remix-run/react": "^2.17.1", "ai": "^5.0.49", "chalk": "^5.6.2", "chart.js": "^4.5.0", "class-variance-authority": "^0.7.1", "classnames": "^2.5.1", "compression": "^1.8.1", "cors": "^2.8.5", "cross-env": "^10.0.0", "date-fns": "^4.1.0", "diff": "^8.0.2", "express": "^4.21.2", "express-rate-limit": "^8.1.0", "framer-motion": "^12.23.19", "isbot": "^5.1.30", "js-cookie": "^3.0.5", "js-tiktoken": "^1.0.21", "jspdf": "^3.0.3", "jszip": "^3.10.1", "lodash": "^4.17.21", "morgan": "^1.10.1", "nanostores": "^1.0.1", "node-fetch": "^3.3.2", "ollama-ai-provider-v2": "^1.3.1", "path-browserify": "^1.0.1", "prettier": "^3.6.2", "prisma": "^6.16.2", "qrcode": "1.5.1", "react": "^18.3.1", "react-chartjs-2": "^5.3.0", "react-dnd": "^16.0.1", "react-dnd-html5-backend": "^16.0.1", "react-dom": "^18.3.1", "react-frame-component": "^5.2.7", "react-markdown": "^10.1.0", "react-resizable-panels": "^3.0.6", "react-window": "^2.1.1", "rehype-raw": "^7.0.0", "rehype-sanitize": "^6.0.0", "remark-gfm": "^4.0.1", "remix-utils": "^9.0.0", "shiki": "^3.13.0", "sonner": "^2.0.7", "unified": "^11.0.5", "unist-util-visit": "^5.0.0", "winston": "^3.17.0", "winston-daily-rotate-file": "^5.0.0", "zod": "^4.1.11" }, "devDependencies": { "@biomejs/biome": "2.2.4", "@iconify/json": "^2.2.387", "@iconify/types": "^2.0.0", "@octokit/types": "^15.0.0", "@remix-run/dev": "^2.17.1", "@remix-run/serve": "^2.17.1", "@testing-library/jest-dom": "^6.8.0", "@testing-library/react": "^16.3.0", "@types/compression": "^1.8.1", "@types/express": "^5.0.3", "@types/js-cookie": "^3.0.6", "@types/lodash": "^4.17.20", "@types/path-browserify": "^1.0.3", "@types/react": "^18.3.1", "@types/react-dom": "^18.3.1", "@unocss/reset": "^66.5.2", "@vitejs/plugin-react": "^5.0.3", "concurrently": "^9.2.1", "crypto-browserify": "^3.12.1", "dotenv": "^17.2.2", "fast-glob": "^3.3.3", "husky": "9.1.7", "pnpm": "^10.17.1", "sass-embedded": "^1.93.1", "typescript": "^5.9.2", "unocss": "^66.5.2", "vite": "^5.4.19", "vite-tsconfig-paths": "^5.1.4", "vitest": "^3.2.4" }, "packageManager": "pnpm@9.4.0", "engines": { "node": ">=18.18.0" } }