{ "name": "ghadirsync-ai", "version": "1.0.0", "description": "GhadirSync-AI - AI-Powered Full-Stack Development Assistant with Persian Language Support", "main": "electron/main.js", "scripts": { "dev": "concurrently \"npm run next-dev\" \"wait-on http://localhost:3000 && npm run electron-dev\"", "next-dev": "next dev", "electron-dev": "electron .", "build": "next build", "start": "next start", "electron-build": "electron-builder", "pack": "electron-builder --dir", "dist": "electron-builder", "postinstall": "electron-builder install-app-deps", "test": "jest", "test:watch": "jest --watch", "test:e2e": "playwright test", "lint": "eslint . --ext .ts,.tsx,.js,.jsx", "lint:fix": "eslint . --ext .ts,.tsx,.js,.jsx --fix", "type-check": "tsc --noEmit" }, "build": { "appId": "com.ghadirsync.ai", "productName": "GhadirSync-AI", "directories": { "output": "dist" }, "files": [ "electron/**/*", "node_modules/**/*", ".next/**/*", "public/**/*", "package.json" ], "win": { "target": "nsis", "icon": "public/icon.ico", "artifactName": "GhadirSync-AI-Setup-${version}.${ext}" }, "mac": { "target": "dmg", "icon": "public/icon.icns" }, "linux": { "target": "AppImage", "icon": "public/icon.png" }, "nsis": { "oneClick": false, "allowToChangeInstallationDirectory": true, "createDesktopShortcut": true, "createStartMenuShortcut": true, "shortcutName": "GhadirSync-AI" } }, "dependencies": { "@monaco-editor/react": "^4.6.0", "@radix-ui/react-accordion": "^1.1.2", "@radix-ui/react-alert-dialog": "^1.0.5", "@radix-ui/react-avatar": "^1.0.4", "@radix-ui/react-checkbox": "^1.0.4", "@radix-ui/react-dialog": "^1.0.5", "@radix-ui/react-dropdown-menu": "^2.0.6", "@radix-ui/react-icons": "^1.3.0", "@radix-ui/react-label": "^2.0.2", "@radix-ui/react-progress": "^1.0.3", "@radix-ui/react-select": "^2.0.0", "@radix-ui/react-slider": "^1.1.2", "@radix-ui/react-switch": "^1.0.3", "@radix-ui/react-tabs": "^1.0.4", "@radix-ui/react-toast": "^1.1.5", "@radix-ui/react-tooltip": "^1.0.7", "@tensorflow/tfjs-node": "^4.17.0", "@types/better-sqlite3": "^7.6.9", "@types/ws": "^8.5.10", "axios": "^1.6.7", "better-sqlite3": "^9.4.0", "class-variance-authority": "^0.7.0", "clsx": "^2.1.0", "cmdk": "^0.2.1", "concurrently": "^8.2.2", "cors": "^2.8.5", "dockerode": "^4.0.2", "electron": "^28.2.0", "electron-builder": "^24.9.1", "electron-store": "^8.1.0", "express": "^4.18.2", "fluent-ffmpeg": "^2.1.2", "form-data": "^4.0.0", "glob": "^10.3.10", "i18next": "^23.8.2", "i18next-browser-languagedetector": "^7.2.0", "lucide-react": "^0.323.0", "monaco-editor": "^0.45.0", "next": "14.1.0", "node-llama-cpp": "^2.8.0", "onnxruntime-node": "^1.16.3", "openai": "^4.26.0", "react": "^18.2.0", "react-dom": "^18.2.0", "react-hook-form": "^7.49.3", "react-i18next": "^14.0.1", "react-resizable-panels": "^1.0.9", "rimraf": "^5.0.5", "socket.io": "^4.7.4", "socket.io-client": "^4.7.4", "tailwind-merge": "^2.2.1", "tailwindcss-animate": "^1.0.7", "vits": "^1.0.0", "wav": "^1.0.2", "wav-player": "^1.1.0", "whisper-node": "^1.1.1", "ws": "^8.16.0", "zod": "^3.22.4" }, "devDependencies": { "@playwright/test": "^1.41.1", "@testing-library/react": "^14.1.2", "@types/cors": "^2.8.17", "@types/express": "^4.17.21", "@types/fluent-ffmpeg": "^2.1.24", "@types/jest": "^29.5.11", "@types/node": "^20.11.5", "@types/react": "^18.2.48", "@types/react-dom": "^18.2.18", "@typescript-eslint/eslint-plugin": "^6.19.1", "@typescript-eslint/parser": "^6.19.1", "autoprefixer": "^10.4.17", "eslint": "^8.56.0", "eslint-config-next": "14.1.0", "jest": "^29.7.0", "postcss": "^8.4.33", "tailwindcss": "^3.4.1", "typescript": "^5.3.3", "wait-on": "^7.2.0" }, "keywords": [ "ai", "llm", "full-stack", "development", "persian", "farsi", "voice", "offline", "privacy", "electron" ], "author": "GhadirSync-AI Team", "license": "AGPL-3.0", "repository": { "type": "git", "url": "https://github.com/ghadirsync/ai-desktop.git" }, "bugs": { "url": "https://github.com/ghadirsync/ai-desktop/issues" }, "homepage": "https://ghadirsync.ai" }