{
  "name": "neode-ui",
  "private": true,
  "version": "0.0.0",
  "type": "module",
  "scripts": {
    "start": "./start-dev.sh",
    "stop": "./stop-dev.sh",
    "dev": "vite",
    "dev:mock": "concurrently \"node mock-backend.js\" \"VITE_AIUI_URL=http://localhost:5173 vite\" \"cd ../../AIUI && pnpm dev 2>/dev/null || echo '[AIUI] Not found at ../../AIUI — chat will show placeholder'\"",
    "dev:real": "echo 'Start backend: cd ../core && cargo run --release' && vite",
    "backend:mock": "node mock-backend.js",
    "backend:real": "cd ../core && cargo run --release",
    "build": "vue-tsc -b && vite build",
    "build:docker": "vite build",
    "build:production": "NODE_ENV=production vue-tsc -b && vite build --mode production",
    "preview": "vite preview",
    "type-check": "vue-tsc --noEmit",
    "prebuild": "cp ../../loop-start.mp3 public/assets/audio/ 2>/dev/null || true",
    "generate-pwa-icons": "pwa-assets-generator --preset minimal-2023 public/assets/icon/favico-black.svg && cp public/assets/icon/favicon.ico public/favicon.ico",
    "generate-welcome-speech": "node scripts/generate-welcome-speech.js"
  },
  "dependencies": {
    "dockerode": "^4.0.9",
    "fast-json-patch": "^3.1.1",
    "fuse.js": "^7.1.0",
    "pinia": "^3.0.4",
    "vue": "^3.5.24",
    "vue-router": "^4.6.3"
  },
  "devDependencies": {
    "@types/node": "^24.10.0",
    "@vite-pwa/assets-generator": "^1.0.2",
    "@vitejs/plugin-vue": "^6.0.1",
    "@vue/tsconfig": "^0.8.1",
    "autoprefixer": "^10.4.22",
    "concurrently": "^9.1.2",
    "cookie-parser": "^1.4.7",
    "cors": "^2.8.5",
    "express": "^4.21.2",
    "postcss": "^8.5.6",
    "tailwindcss": "^3.4.18",
    "typescript": "~5.9.3",
    "vite": "^7.2.2",
    "vite-plugin-pwa": "^1.2.0",
    "vue-tsc": "^3.1.3",
    "ws": "^8.18.0"
  }
}
