{
  "name": "rivet-design",
  "version": "0.13.5",
  "description": "Local visual web development tool with AI-powered code modification",
  "main": "dist/index.js",
  "workspaces": [
    "src/ui",
    "src/proxy",
    "desktop",
    "desktop/renderer"
  ],
  "bin": {
    "rivet": "./bin/rivet.js"
  },
  "scripts": {
    "preinstall": "node scripts/verify-node-version.cjs",
    "build": "npm run clean && tsc && npm run build:assets && npm run build:ui && npm run build:bin",
    "build:assets": "mkdir -p dist/services/templates/designmd && cp src/services/templates/designmd/*.md dist/services/templates/designmd/",
    "build:ui": "cd src/ui && vite build",
    "storybook:ui": "yarn workspace @rivet/ui storybook",
    "build-storybook:ui": "yarn workspace @rivet/ui build-storybook",
    "build:bin": "mkdir -p bin && cp src/bin-template.js bin/rivet.js && chmod +x bin/rivet.js",
    "dev": "tsc --watch",
    "clean": "rm -rf dist src/ui/dist bin",
    "pack": "npm run build && npm pack",
    "pack:verify": "npm run pack && tar -tzf rivet-design-*.tgz | sort && echo '\n✓ Package contents listed above'",
    "prepublishOnly": "git rev-parse --abbrev-ref HEAD | grep -qx main || (echo 'ERROR: npm publish must be run from the main branch' && exit 1) && cp README.npm.md README.md && npm run build || (git checkout README.md && exit 1)",
    "postpublish": "git checkout README.md",
    "lint": "eslint . --ext ts,tsx,js,jsx",
    "lint:fix": "eslint . --ext ts,tsx,js,jsx --fix",
    "format": "prettier --write .",
    "format:check": "prettier --check .",
    "test": "node --max-old-space-size=4096 ./node_modules/jest/bin/jest.js --config src/jest.config.ts",
    "test:install": "yarn build && node scripts/test-host-install.mjs",
    "test:watch": "jest --config src/jest.config.ts --watch",
    "test:coverage": "jest --config src/jest.config.ts --coverage",
    "deadcode": "knip",
    "deadcode:fix": "knip --fix",
    "prepare": "husky",
    "docs:sync": "node scripts/sync-external-docs.js",
    "deploy:supabase:functions": "bash scripts/deploy-supabase-functions.sh",
    "ratchet": "tsx scripts/ratchet.ts",
    "bench": "node --import tsx benchmarks/bench.ts",
    "bench:run": "node --import tsx benchmarks/runner.ts",
    "bench:compare": "node --import tsx benchmarks/compare.ts",
    "bench:review": "node --import tsx benchmarks/review/server.ts",
    "bench:review:hosted": "BENCH_REVIEW_HOSTED=true BENCH_REVIEW_OPEN=false node --import tsx benchmarks/review/server.ts --hosted",
    "bench:list": "node --import tsx benchmarks/list.ts",
    "bench:test": "node --import tsx --test benchmarks/*.test.ts benchmarks/agents/*.test.ts benchmarks/agents/prompts/*.test.ts benchmarks/review/*.test.ts",
    "bench:typecheck": "tsc -p benchmarks/tsconfig.json",
    "smoke:cli": "node scripts/smoke-cli.mjs",
    "perf:cli": "node scripts/bench-cli.mjs",
    "check:pre-commit": "npx lint-staged && yarn build && cd src/ui && yarn typecheck && cd ../.. && cd src/proxy && yarn build && cd ../.. && cd desktop/renderer && yarn build && cd ../..",
    "check:pre-push": "yarn test",
    "desktop": "yarn build && cd desktop && yarn dev",
    "start:hosted-demo": "node dist/hosted-demo.js",
    "start:prototype-host": "node dist/prototype-host.js"
  },
  "dependencies": {
    "@anthropic-ai/claude-agent-sdk": "^0.1.42",
    "@contextcompany/claude": "^1.0.0",
    "@modelcontextprotocol/sdk": "1.27.1",
    "@sentry/node": "10.44.0",
    "cors": "^2.8.5",
    "dotenv": "^17.4.2",
    "express": "^5.2.1",
    "glob": "^11.0.3",
    "http-proxy-middleware": "^3.0.5",
    "loglevel": "^1.9.2",
    "open": "^8.4.0",
    "posthog-node": "^5.28.1",
    "redis": "^5.12.1",
    "simple-git": "^3.19.1",
    "typescript": "^5.1.6",
    "zod": "^3.24.1"
  },
  "devDependencies": {
    "@anthropic-ai/sdk": "^0.74.0",
    "@eslint/js": "^9.36.0",
    "@testing-library/dom": "^10.4.1",
    "@testing-library/jest-dom": "^6.9.1",
    "@testing-library/react": "^16.3.0",
    "@types/chroma-js": "^3.1.2",
    "@types/cors": "^2.8.19",
    "@types/express": "^5.0.3",
    "@types/jest": "^30.0.0",
    "@types/js-yaml": "^4.0.9",
    "@types/node": "^25.4.0",
    "@types/react": "^18.2.43",
    "@types/react-dom": "^18.2.17",
    "@types/supertest": "^6.0.3",
    "@types/uuid": "^11.0.0",
    "@types/ws": "^8.18.1",
    "@typescript-eslint/eslint-plugin": "^8.44.0",
    "@typescript-eslint/parser": "^8.44.0",
    "@vitejs/plugin-react": "^4.2.1",
    "autoprefixer": "^10.4.16",
    "eslint": "^9.36.0",
    "eslint-config-prettier": "^10.1.8",
    "eslint-plugin-react": "^7.37.5",
    "eslint-plugin-react-hooks": "^5.2.0",
    "husky": "^9.1.7",
    "jest": "^30.1.3",
    "jest-environment-jsdom": "^30.2.0",
    "jiti": "^2.5.1",
    "js-yaml": "^4.1.1",
    "knip": "^6.16.1",
    "lint-staged": "^16.1.6",
    "playwright": "^1.58.2",
    "playwright-core": "^1.58.2",
    "postcss": "^8.4.32",
    "prettier": "^3.6.2",
    "prettier-plugin-tailwindcss": "^0.7.2",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "supabase": "^2.47.2",
    "supertest": "^7.1.4",
    "tailwindcss": "^3.4.0",
    "ts-api-utils": "^2.4.0",
    "ts-jest": "^29.4.4",
    "ts-node": "^10.9.2",
    "tsx": "^4.21.0",
    "vite": "^6.4.2",
    "ws": "^8.18.3"
  },
  "files": [
    "dist/",
    "src/ui/dist/",
    "bin/",
    "scripts/verify-node-version.cjs",
    "README.npm.md"
  ],
  "keywords": [
    "visual-editor",
    "frontend-development",
    "css-editor",
    "design-tools",
    "ui-development",
    "react-editor",
    "web-design",
    "css-visual-editor",
    "no-code",
    "low-code",
    "ai-powered",
    "product-design",
    "tailwind-css",
    "component-editor",
    "web-builder"
  ],
  "author": "Rivet Design",
  "license": "GPL-3.0-or-later",
  "repository": {
    "type": "git",
    "url": "https://github.com/rivet-design/rivet"
  },
  "bugs": {
    "url": "https://github.com/rivet-design/rivet/issues"
  },
  "homepage": "https://github.com/rivet-design/rivet#readme",
  "publishConfig": {
    "access": "public"
  },
  "prettier": {
    "printWidth": 80,
    "tabWidth": 2,
    "useTabs": false,
    "semi": true,
    "singleQuote": true,
    "trailingComma": "all",
    "bracketSpacing": true,
    "arrowParens": "always",
    "plugins": [
      "prettier-plugin-tailwindcss"
    ]
  },
  "lint-staged": {
    "*.{ts,tsx,js,jsx}": [
      "prettier --write",
      "eslint --fix",
      "eslint"
    ],
    "*.{json,md,css,scss,html}": [
      "prettier --write"
    ]
  },
  "packageManager": "yarn@4.12.0"
}
