{
  "name": "officer",
  "version": "0.1.0",
  "private": true,
  "type": "module",
  "workspaces": [
    "src/databases/*",
    "src/workspaces/*"
  ],
  "scripts": {
    "preinstall": "node -e \"var v = +process.versions.node.split('.')[0]; if (v < 22 || v > 22) { console.error('Node 22 required (got ' + process.versions.node + '). Run: nvm use 22'); process.exit(1); }\"",
    "gen:index": "bun run ./scripts/gen-index.ts",
    "predev": "bun run ./scripts/gen-index.ts",
    "dev": "bun --env-file=.env --watch src/server.tsx",
    "prestart": "bun run ./scripts/gen-index.ts",
    "start": "NODE_ENV=production bun src/server.tsx",
    "prebuild": "bun run ./scripts/prebuild.ts",
    "build:web": "bun run ./scripts/build/web.ts",
    "build:dashboard": "bun run ./scripts/build/dashboard.ts",
    "build:editor": "bun run ./scripts/build/editor.ts",
    "build:editor:app": "bun run ./scripts/build/editor.ts --app",
    "build:editor:extension": "bun run ./scripts/build/editor.ts --extension",
    "build:editor:runtime": "bun run ./scripts/build/editor.ts --runtime",
    "build:landing": "bun run ./scripts/build/landing.ts",
    "db:gen": "cd src/databases/officer_db && bun run generate",
    "db:push": "cd src/databases/officer_db && bun run push",
    "db:migrate": "cd src/databases/officer_db && bun run migrate",
    "dev:emailer": "cd src/workspaces/emailer && bun run dev",
    "format": "{ git diff --name-only HEAD -- 'src/**/*.ts' 'src/**/*.tsx'; git ls-files --others --exclude-standard -- 'src/**/*.ts' 'src/**/*.tsx'; } | xargs -r prettier --write",
    "format:all": "prettier --write \"src/**/*.{ts,tsx}\"",
    "format:check": "prettier --check \"src/**/*.{ts,tsx}\"",
    "setup": "bash scripts/setup.sh",
    "start:sidecar": "sudo systemctl start officer-pty-sidecar",
    "stop:sidecar": "sudo systemctl stop officer-pty-sidecar",
    "restart:sidecar": "sudo systemctl restart officer-pty-sidecar",
    "logs:sidecar": "journalctl -u officer-pty-sidecar -f"
  },
  "dependencies": {
    "@anthropic-ai/claude-agent-sdk": "^0.2.41",
    "@hookform/resolvers": "^5.2.2",
    "@modelcontextprotocol/sdk": "^1.27.1",
    "@monaco-editor/react": "^4.7.0",
    "@radix-ui/react-accordion": "^1.2.12",
    "@radix-ui/react-alert-dialog": "^1.1.15",
    "@radix-ui/react-aspect-ratio": "^1.1.7",
    "@radix-ui/react-avatar": "^1.1.10",
    "@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-hover-card": "^1.1.15",
    "@radix-ui/react-label": "^2.1.7",
    "@radix-ui/react-menubar": "^1.1.16",
    "@radix-ui/react-navigation-menu": "^1.2.14",
    "@radix-ui/react-popover": "^1.1.15",
    "@radix-ui/react-progress": "^1.1.7",
    "@radix-ui/react-radio-group": "^1.3.8",
    "@radix-ui/react-scroll-area": "^1.2.10",
    "@radix-ui/react-select": "^2.2.6",
    "@radix-ui/react-separator": "^1.1.7",
    "@radix-ui/react-slider": "^1.3.6",
    "@radix-ui/react-slot": "^1.2.3",
    "@radix-ui/react-switch": "^1.2.6",
    "@radix-ui/react-tabs": "^1.1.13",
    "@radix-ui/react-toggle": "^1.1.10",
    "@radix-ui/react-toggle-group": "^1.1.11",
    "@radix-ui/react-tooltip": "^1.2.8",
    "@react-oauth/google": "^0.13.4",
    "@react-three/drei": "^10.7.7",
    "@react-three/fiber": "^9.5.0",
    "@simplewebauthn/browser": "^13.2.2",
    "@simplewebauthn/server": "^13.2.2",
    "@tabler/icons-react": "^3.36.0",
    "@tanstack/react-query": "^5.90.5",
    "@tanstack/react-virtual": "^3.13.18",
    "@tiptap/extension-text-align": "^3.15.3",
    "@types/mailparser": "^3.4.6",
    "@types/three": "^0.182.0",
    "@typescript/native-preview": "^7.0.0-dev.20260107.1",
    "@uiw/react-textarea-code-editor": "^3.1.1",
    "@visual-json/core": "^0.1.1",
    "@visual-json/react": "^0.1.1",
    "@xterm/addon-fit": "^0.11.0",
    "@xterm/xterm": "^6.0.0",
    "argon2": "^0.44.0",
    "bun-plugin-tailwind": "^0.1.2",
    "check-password-strength": "^3.0.0",
    "class-variance-authority": "^0.7.1",
    "clsx": "^2.1.1",
    "cmdk": "^1.1.1",
    "config": "workspace:*",
    "cron": "^4.3.3",
    "date-fns": "^4.1.0",
    "definitions": "workspace:*",
    "discord.js": "^14.25.1",
    "dotenv": "^17.2.3",
    "drizzle-orm": "^0.45.1",
    "emailer": "workspace:*",
    "embla-carousel-react": "^8.6.0",
    "googleapis": "^169.0.0",
    "helpers": "workspace:*",
    "hono": "^4.11.1",
    "hooks": "workspace:*",
    "html-to-image": "^1.11.13",
    "html2canvas": "^1.4.1",
    "i18n": "workspace:*",
    "idb-keyval": "^6.2.2",
    "imapflow": "^1.2.10",
    "injector": "workspace:*",
    "input-otp": "^1.4.2",
    "js-beautify": "^1.15.4",
    "jwt-decode": "^4.0.0",
    "lucide-react": "^0.562.0",
    "mailparser": "^3.9.3",
    "markdown-it": "^14.1.0",
    "material-file-icons": "^2.4.0",
    "monaco-editor": "^0.55.1",
    "next-themes": "^0.4.6",
    "node-pty": "^1.1.0",
    "node-telegram-bot-api": "^0.67.0",
    "nodemailer": "^7.0.12",
    "officerdb": "workspace:*",
    "officerdev": "workspace:*",
    "pg": "^8.16.3",
    "postgres": "^3.4.5",
    "qrcode": "^1.5.4",
    "react": "^19",
    "react-countup": "^6.5.3",
    "react-day-picker": "^9.13.0",
    "react-dom": "^19",
    "react-hook-form": "^7.69.0",
    "react-markdown": "^10.1.0",
    "react-resizable-panels": "^4.0.15",
    "react-router": "^7.11.0",
    "react-spinners": "^0.17.0",
    "recharts": "3.6.0",
    "redis": "^5.8.3",
    "rehype-raw": "^7.0.0",
    "rehype-sanitize": "^6.0.0",
    "rehype-slug": "^6.0.0",
    "remark-gfm": "^4.0.1",
    "shiki": "^3.22.0",
    "sonner": "^2.0.7",
    "sounds": "workspace:*",
    "state": "workspace:*",
    "tailwind-merge": "^3.3.1",
    "tailwindcss-animate": "^1.0.7",
    "three": "^0.182.0",
    "types": "workspace:*",
    "vaul": "^1.1.2",
    "whatsapp-web.js": "^1.34.6",
    "widgets": "workspace:*",
    "ws": "^8.18.1",
    "zod": "^4.2.1"
  },
  "devDependencies": {
    "@playwright/test": "^1.57.0",
    "@testing-library/dom": "^10.4.1",
    "@testing-library/react": "^16.3.2",
    "@types/bun": "1.3.5",
    "@types/chrome": "^0.1.36",
    "@types/markdown-it": "^14.1.2",
    "@types/node-telegram-bot-api": "^0.64.14",
    "@types/nodemailer": "^7.0.5",
    "@types/pg": "^8.15.5",
    "@types/qrcode": "^1.5.6",
    "@types/react": "^19",
    "@types/react-dom": "^19",
    "drizzle-kit": "^0.31.8",
    "happy-dom": "^20.3.7",
    "playwright": "^1.57.0",
    "prettier": "^3.6.2",
    "tailwindcss": "^4.1.11",
    "tsx": "^4.20.6",
    "tw-animate-css": "^1.4.0",
    "typescript": "^5.9.3",
    "vite": "^7.3.0",
    "vite-plugin-compression": "^0.5.1"
  }
}
