{ "name": "studio", "version": "0.0.9", "private": true, "type": "module", "scripts": { "preinstall": "npx only-allow pnpm", "predev": "node scripts/clean-turbopack-cache.mjs", "dev": "node scripts/dispatch.js dev", "build": "node scripts/dispatch.js build", "start": "node scripts/dispatch.js start", "dev:next": "next dev -p ${STUDIO_PORT:-8082}", "build:next": "next build && if [ \"$SKIP_ASSET_UPLOAD\" != \"1\" ]; then ./../../scripts/upload-static-assets.sh; fi", "start:next": "next start -p 8082", "dev:tanstack": "NODE_OPTIONS=--max-old-space-size=8192 vite dev --port ${STUDIO_PORT:-8082}", "build:tanstack": "vite build --mode ${MODE:-production}", "start:tanstack": "node --env-file-if-exists=.env --env-file-if-exists=.env.local --env-file-if-exists=.env.${MODE:-production} --env-file-if-exists=.env.${MODE:-production}.local .output/server/index.mjs", "lint": "eslint .", "lint:ratchet": "tsx scripts/ratchet-eslint-rules.ts --rules-file scripts/ratchet-rules.json", "clean": "rimraf .next .turbo tsconfig.tsbuildinfo", "test": "vitest --run --coverage", "test:watch": "vitest watch", "test:ui": "vitest --ui", "test:update": "vitest --run --update", "test:ci": "vitest --run --coverage", "test:report": "open coverage/lcov-report/index.html", "deploy:staging": "VERCEL_ORG_ID=team_E6KJ1W561hMTjon1QSwOh0WO VERCEL_PROJECT_ID=QmcmhbiAtCMFTAHCuGgQscNbke4TzgWULECctNcKmxWCoT vercel --prod -A .vercel/staging.json", "pretypecheck": "next typegen", "typecheck": "tsc --noEmit", "build:deno-types": "tsx scripts/deno-types.ts", "build:graphql-types": "tsx scripts/download-graphql-schema.mts && pnpm graphql-codegen --config scripts/codegen.ts", "build:graphql-types:watch": "pnpm graphql-codegen --config scripts/codegen.ts --watch", "evals:setup": "cp node_modules/libpg-query/wasm/libpg-query.wasm evals/libpg-query.wasm", "evals:preflight": "tsx evals/preflight.ts", "evals:run": "braintrust eval --no-send-logs evals/assistant.eval.ts", "evals:upload": "braintrust eval evals/assistant.eval.ts", "scorers:deploy": "IS_BRAINTRUST_PUSH=true braintrust push evals/scorer-online.ts" }, "dependencies": { "@ai-sdk/amazon-bedrock": "5.0.55", "@ai-sdk/mcp": "2.0.31", "@ai-sdk/openai": "4.0.41", "@ai-sdk/react": "4.0.62", "@aws-sdk/credential-providers": "^3.1041.0", "@configcat/sdk": "^1.1.0", "@dagrejs/dagre": "^1.0.4", "@dnd-kit/core": "^6.1.0", "@dnd-kit/modifiers": "^9.0.0", "@dnd-kit/sortable": "^8.0.0", "@dnd-kit/utilities": "^3.2.2", "@graphiql/react": "^0.37.3", "@graphiql/toolkit": "^0.11.3", "@hcaptcha/react-hcaptcha": "^1.12.0", "@heroicons/react": "^2.1.3", "@hookform/resolvers": "^3.1.1", "@lexical/code": "0.51.0", "@lexical/link": "0.51.0", "@lexical/list": "0.51.0", "@lexical/markdown": "0.51.0", "@lexical/react": "0.51.0", "@lexical/rich-text": "0.51.0", "@mjackson/multipart-parser": "^0.10.1", "@modelcontextprotocol/sdk": "^1.29.0", "@modelcontextprotocol/server": "^2.0.0", "@monaco-editor/react": "catalog:", "@next/bundle-analyzer": "16.2.3", "@number-flow/react": "^0.3.2", "@radix-ui/react-use-escape-keydown": "^1.1.1", "@react-pdf/renderer": "^4.9.0", "@sentry/nextjs": "catalog:", "@sentry/react": "^10.27.0", "@sentry/tanstackstart-react": "catalog:", "@smithy/property-provider": "^4.0.4", "@stripe/react-stripe-js": "6.1.0", "@stripe/stripe-js": "9.1.0", "@stripe/sync-engine": "1.0.32", "@supabase/auth-js": "catalog:", "@supabase/config": "^0.9.0", "@supabase/mcp-server-supabase": "^0.12.0", "@supabase/pg-meta": "workspace:*", "@supabase/realtime-js": "catalog:", "@supabase/shared-types": "0.1.96", "@supabase/supabase-js": "catalog:", "@tanstack/react-devtools": "^0.10.3", "@tanstack/react-hotkeys": "^0.10.0", "@tanstack/react-query": "~5.83.0", "@tanstack/react-query-devtools": "~5.90.2", "@tanstack/react-router": "catalog:", "@tanstack/react-router-devtools": "^1.166.13", "@tanstack/react-router-ssr-query": "^1.167.3", "@tanstack/react-start": "catalog:", "@tanstack/react-table": "catalog:", "@tanstack/react-virtual": "^3.13.24", "@types/d3-geo": "^3.1.0", "@uidotdev/usehooks": "^2.4.1", "@vercel/functions": "^2.1.0", "@xyflow/react": "^12.10.1", "@zip.js/zip.js": "^2.7.29", "ai": "7.0.59", "ai-commands": "workspace:*", "awesome-debounce-promise": "^2.1.0", "braintrust": "^3.9.0", "class-variance-authority": "^0.7.1", "common": "workspace:*", "common-tags": "^1.8.2", "config": "workspace:*", "cron-parser": "^4.9.0", "cronstrue": "^2.50.0", "crypto-js": "^4.2.0", "d3-geo": "^3.1.1", "dayjs": "^1.11.10", "dev-tools": "workspace:*", "effect": "4.0.0-rc.112", "file-saver": "^2.0.5", "framer-motion": "^11.18.2", "fuse.js": "^7.4.0", "generate-password-browser": "^1.1.0", "gqlmin": "^0.3.1", "graphiql": "^5.2.2", "html-to-image": "^1.11.13", "http-status": "^2.1.0", "icons": "workspace:*", "idb": "^8.0.2", "ip-num": "^1.5.1", "json-logic-js": "^2.0.2", "lexical": "0.51.0", "libpg-query": "17.6.0", "lodash": "catalog:", "lodash-es": "catalog:", "lucide-react": "^0.436.0", "markdown-table": "^3.0.3", "mime-db": "^1.53.0", "monaco-editor": "catalog:", "next": "catalog:", "next-themes": "catalog:", "nuqs": "2.7.1", "openai": "^4.104.0", "openapi-fetch": "0.12.4", "papaparse": "^5.3.1", "path-to-regexp": "^8.0.0", "radix-ui": "catalog:", "randombytes": "^2.1.0", "react": "catalog:", "react-data-grid": "7.0.0-beta.47", "react-day-picker": "^9.11.1", "react-dom": "catalog:", "react-error-boundary": "^4.0.13", "react-grid-layout": "^1.4.2", "react-hook-form": "^7.71.2", "react-inlinesvg": "^4.0.4", "react-intersection-observer": "^9.5.3", "react-markdown": "^10.1.0", "react-resizable": "3.0.5", "react-simple-maps": "4.0.0-beta.6", "react-use": "^17.5.0", "recharts": "catalog:", "remark-gfm": "^4.0.0", "remark-parse": "^11.0.0", "shared-data": "workspace:*", "sonner": "^1.5.0", "sql-formatter": "^15.0.0", "streamdown": "^1.3.0", "swiper": "^12.1.2", "tus-js-client": "^4.1.0", "ui": "workspace:*", "ui-patterns": "workspace:*", "unified": "^11.0.5", "use-debounce": "^7.0.1", "use-stick-to-bottom": "^1.1.1", "uuid": "^14.0.0", "valtio": "catalog:", "zod": "catalog:", "zxcvbn": "^4.4.2" }, "devDependencies": { "@babel/core": "*", "@eslint/compat": "^2.1.0", "@faker-js/faker": "^10.6.0", "@graphql-codegen/cli": "5.0.5", "@graphql-typed-document-node/core": "^3.2.0", "@lexical/headless": "0.51.0", "@tailwindcss/postcss": "^4.2.4", "@tailwindcss/vite": "4.2.4", "@tanstack/devtools-vite": "^0.6.0", "@testing-library/dom": "^10.0.0", "@testing-library/jest-dom": "^7.0.1", "@testing-library/react": "^16.3.3", "@testing-library/user-event": "^14.0.0", "@types/common-tags": "^1.8.1", "@types/crypto-js": "^4.2.2", "@types/file-saver": "^2.0.2", "@types/json-logic-js": "^1.2.1", "@types/lodash": "^4.14.172", "@types/mdast": "^4.0.4", "@types/mime-db": "^1.43.5", "@types/node": "catalog:", "@types/papaparse": "^5.3.1", "@types/randombytes": "^2.0.3", "@types/react": "catalog:", "@types/react-dom": "catalog:", "@types/react-grid-layout": "^1.3.0", "@types/react-simple-maps": "^3.0.1", "@types/zxcvbn": "^4.4.1", "@typescript/native": "catalog:", "@vercel/config": "^0.2.1", "@vitejs/plugin-react": "catalog:", "@vitest/coverage-v8": "catalog:", "@vitest/ui": "catalog:", "api-types": "workspace:*", "autoevals": "^0.0.132", "date-fns": "^2.30.0", "eslint-config-supabase": "workspace:*", "eslint-plugin-barrel-files": "^2.0.7", "eslint-plugin-react-hook-form": "^0.3.1", "eslint-plugin-valtio": "^0.8.0", "graphql-ws": "5.14.1", "import-in-the-middle": "^2.0.0", "jsdom-testing-mocks": "^1.13.1", "msw": "^2.3.0", "next-router-mock": "^0.9.13", "nitro": "3.0.260903-beta", "node-mocks-http": "^1.17.2", "postcss": "catalog:", "raw-loader": "^4.0.2", "require-in-the-middle": "^8.0.0", "tsconfig": "workspace:*", "tsx": "catalog:", "typescript": "catalog:", "vite": "catalog:", "vitest": "catalog:" } }