{ "name": "yedir-ai", "version": "3.1.0", "description": "Production-oriented AI design workspace with Lovart-style home, Canvas/Agent workflows, image editing, 3D/CAD, and admin governance.", "private": true, "license": "Apache-2.0", "engines": { "node": ">=20", "pnpm": "9.12.3" }, "scripts": { "dev": "next dev --turbo", "pascal:dev": "node scripts/pascal-editor-dev.mjs", "pascal:deploy": "bash scripts/deploy-pascal-production.sh deploy", "pascal:check": "bash scripts/deploy-pascal-production.sh check", "pascal:smoke": "bash scripts/smoke-pascal-agent.sh", "zoo-modeling-app:vendor": "node scripts/vendor-zoo-modeling-app.mjs", "zoo-modeling-app:ws-proxy": "node scripts/ai-cad-zoo-ws-dev-proxy.mjs", "postinstall": "node scripts/security/auto-enable-perf-guard.mjs", "prebuild": "node scripts/security/auto-enable-perf-guard.mjs", "build": "next build", "build:with-migrate": "pnpm db:migrate && next build", "postbuild": "find \"${NEXT_DIST_DIR:-.next}/static\" -type f -name '*.map' -delete 2>/dev/null || true", "start": "next start", "lint": "pnpm exec ultracite check", "check:logs": "node scripts/check-log-hygiene.mjs && tsx scripts/check-log-redaction.ts", "check:artifacts": "node scripts/check-tracked-artifacts.mjs", "check:brand": "node scripts/check-brand-hygiene.mjs", "check:ci": "node scripts/check-ci-hygiene.mjs", "check:branch": "node scripts/check-branch-readiness.mjs", "check:env": "node scripts/check-env-example.mjs", "check:secrets": "node scripts/check-secrets.mjs", "check:metadata": "node scripts/check-package-metadata.mjs", "check:tests": "node scripts/check-test-hygiene.mjs", "test:helpers": "PLAYWRIGHT=True pnpm exec playwright test --config=playwright.helpers.config.ts", "check:quality": "pnpm lint && pnpm check:logs && pnpm check:brand && pnpm check:ci && pnpm check:env && pnpm check:secrets && pnpm check:metadata && pnpm check:tests && pnpm test:helpers && pnpm exec tsc --noEmit --pretty false && git diff --check && pnpm check:artifacts", "audit:security": "pnpm audit --registry=https://registry.npmjs.org --audit-level high", "audit:security:json": "pnpm audit --registry=https://registry.npmjs.org --audit-level high --json", "clean:artifacts": "node scripts/clean-local-artifacts.mjs", "smoke:routes": "node scripts/smoke-routes.mjs", "verify:release": "node scripts/verify-release.mjs", "backfill:agent-preview-images": "pnpm exec tsx scripts/backfill-agent-workflow-preview-images.ts", "rewrite:agent-preview-image-urls": "pnpm exec tsx scripts/rewrite-agent-workflow-preview-image-urls.ts", "format": "pnpm exec ultracite fix", "db:generate": "drizzle-kit generate", "db:migrate": "npx tsx lib/db/migrate.ts", "db:studio": "drizzle-kit studio", "db:push": "drizzle-kit push", "db:pull": "drizzle-kit pull", "db:check": "drizzle-kit check", "db:up": "drizzle-kit up", "db:snapshot:system-settings": "pnpm exec tsx scripts/system-settings/create-snapshot.ts", "db:restore:system-settings-snapshot": "pnpm exec tsx scripts/system-settings/restore-snapshot.ts", "poc:nanobanana": "pnpm exec tsx scripts/nanobanana-browser-poc.ts", "test": "export PLAYWRIGHT=True && pnpm exec playwright test", "storage:configure-upload-cors": "pnpm exec tsx scripts/storage/configure-direct-upload-cors.ts", "storage:configure-upload-lifecycle": "pnpm exec tsx scripts/storage/configure-multipart-lifecycle.ts", "storage:repair-model3d-qiniu": "pnpm exec tsx scripts/storage/repair-model3d-qiniu-assets.ts", "verify:ruxa-models": "pnpm exec tsx scripts/verify-ruxa-image-models.ts", "providers:consolidate": "pnpm exec tsx scripts/consolidate-ai-providers.ts", "providers:configure-image-allowlist": "pnpm exec tsx scripts/configure-image-provider-allowlist.ts", "providers:test-vip98k": "pnpm exec tsx scripts/test-vip98k-capability.ts", "providers:test-vip98k-images": "pnpm exec tsx scripts/test-vip98k-image-models.ts" }, "dependencies": { "@ai-sdk/gateway": "^1.0.15", "@ai-sdk/openai": "2.0.13", "@ai-sdk/provider": "2.0.0", "@ai-sdk/react": "2.0.26", "@ai-sdk/xai": "2.0.13", "@aws-sdk/client-s3": "^3.679.0", "@aws-sdk/s3-request-presigner": "^3.958.0", "@codemirror/lang-javascript": "^6.2.2", "@codemirror/lang-python": "^6.1.6", "@codemirror/state": "^6.5.0", "@codemirror/theme-one-dark": "^6.1.2", "@codemirror/view": "^6.35.3", "@drawnix/drawnix": "0.4.0-2", "@fal-ai/client": "^1.10.0", "@fal-ai/serverless-client": "^0.15.0", "@icons-pack/react-simple-icons": "^13.7.0", "@langchain/core": "^1.1.19", "@langchain/langgraph": "^1.1.3", "@modelcontextprotocol/sdk": "^1.29.0", "@opentelemetry/api": "^1.9.0", "@opentelemetry/api-logs": "^0.200.0", "@plait-board/markdown-to-drawnix": "0.0.7", "@plait-board/react-board": "0.4.0-2", "@plait-board/react-text": "0.4.0-2", "@plait/common": "^0.92.1", "@plait/core": "^0.92.1", "@plait/draw": "^0.92.1", "@plait/layouts": "^0.92.1", "@plait/mind": "^0.92.1", "@plait/text-plugins": "^0.92.1", "@radix-ui/react-dialog": "^1.1.4", "@radix-ui/react-icons": "^1.3.0", "@radix-ui/react-popover": "^1.1.15", "@radix-ui/react-select": "^2.2.6", "@radix-ui/react-slider": "^1.3.6", "@radix-ui/react-switch": "^1.1.2", "@radix-ui/react-tabs": "^1.1.13", "@radix-ui/react-use-controllable-state": "^1.2.2", "@radix-ui/react-visually-hidden": "^1.1.0", "@react-three/drei": "^10.7.7", "@react-three/fiber": "^9.5.0", "@sparkjsdev/spark": "^2.0.0", "@tanstack/react-virtual": "^3.13.24", "@types/form-data": "^2.5.2", "@vercel/analytics": "^1.3.1", "@vercel/blob": "^0.24.1", "@vercel/functions": "^2.0.0", "@vercel/otel": "^1.12.0", "@webtoon/psd": "^0.4.0", "@xenova/transformers": "^2.17.0", "ai": "^5.0.52", "bcrypt-ts": "^5.0.2", "bson": "^6.10.4", "class-variance-authority": "^0.7.1", "classnames": "^2.5.1", "clsx": "^2.1.1", "codemirror": "^6.0.1", "date-fns": "^4.1.0", "diff-match-patch": "^1.0.5", "dotenv": "^16.4.5", "drizzle-orm": "^0.45.2", "embla-carousel-react": "^8.6.0", "exceljs": "^4.4.0", "fast-deep-equal": "^3.1.3", "form-data": "^4.0.5", "framer-motion": "^11.18.2", "geist": "^1.3.1", "heic-convert": "^2.1.0", "immer": "^11.1.3", "is-hotkey": "^0.2.0", "jszip": "^3.10.1", "katex": "^0.16.25", "lucide-react": "^0.446.0", "matter-js": "^0.20.0", "mssql": "^12.2.1", "mysql2": "^3.22.3", "nanoid": "^5.0.8", "next": "^16.2.6", "next-auth": "^5.0.0-beta.30", "next-themes": "^0.3.0", "orderedmap": "^2.1.1", "papaparse": "^5.5.2", "postgres": "^3.4.4", "prosemirror-example-setup": "^1.2.3", "prosemirror-inputrules": "^1.4.0", "prosemirror-markdown": "^1.13.1", "prosemirror-model": "^1.23.0", "prosemirror-schema-basic": "^1.2.3", "prosemirror-schema-list": "^1.4.1", "prosemirror-state": "^1.4.3", "prosemirror-view": "^1.34.3", "radix-ui": "^1.4.3", "react": "19.0.0-rc-45804af1-20241021", "react-data-grid": "7.0.0-beta.47", "react-dom": "19.0.0-rc-45804af1-20241021", "react-resizable-panels": "^2.1.7", "react-rnd": "^10.5.2", "react-syntax-highlighter": "^15.6.6", "redis": "^5.0.0", "resumable-stream": "^2.0.0", "server-only": "^0.0.1", "sharp": "^0.34.5", "shiki": "^3.12.2", "slate": "^0.124.0", "slate-dom": "^0.124.0", "slate-history": "^0.115.0", "slate-react": "^0.124.0", "sonner": "^1.5.0", "streamdown": "^1.3.0", "swr": "^2.2.5", "tailwind-merge": "^2.5.2", "tailwindcss-animate": "^1.0.7", "three": "^0.182.0", "three-stdlib": "^2.36.1", "tokenlens": "1.3.0", "use-stick-to-bottom": "^1.1.1", "usehooks-ts": "^3.1.0", "ws": "^8.18.3", "zod": "^3.25.76", "zustand": "5.0.4" }, "devDependencies": { "@biomejs/biome": "2.2.2", "@playwright/test": "^1.55.1", "@tailwindcss/postcss": "^4.1.13", "@tailwindcss/typography": "^0.5.15", "@types/d3-scale": "^4.0.8", "@types/mssql": "^9.1.9", "@types/node": "^22.8.6", "@types/papaparse": "^5.3.15", "@types/pdf-parse": "^1.1.4", "@types/react": "^18", "@types/react-dom": "^18", "@types/react-syntax-highlighter": "^15.5.13", "@types/sharp": "^0.32.0", "@types/three": "^0.182.0", "@types/ws": "^8.18.1", "drizzle-kit": "^0.25.0", "postcss": "^8", "tailwindcss": "^4.1.13", "tsx": "^4.19.1", "typescript": "^5.6.3", "ultracite": "5.3.9" }, "packageManager": "pnpm@9.12.3", "pnpm": { "overrides": { "sharp": "^0.34.5", "fast-xml-parser": "^5.5.6", "protobufjs": "^7.5.6", "undici": "^6.24.0", "tmp": "^0.2.6", "js-cookie": "^3.0.7", "rollup": "^4.59.0", "vite": "^7.3.2", "picomatch": "^4.0.4", "@trpc/server": "^11.8.0", "lodash-es": "^4.18.1", "langsmith": "^0.6.0" } } }