Files
Maestro/package.json
Pedram Amini 0ecec1cc75 refactor: Web interface as true remote control with code deduplication
Major architectural improvement to ensure web interface operations go through
the same code paths as desktop, eliminating duplicate logic and race conditions.

Key changes:
- Fix AgentDetector running 20+ times at startup via promise deduplication
- Web commands now forward to renderer's processInput instead of spawning directly
- Mode switching forwards to desktop instead of just acknowledging requests
- Interrupt forwards to desktop to properly update session state to idle
- Add IPC channels: remote:executeCommand, remote:switchMode, remote:interrupt
- Add mobile MessageHistory component for viewing session AI/shell logs

Architecture now ensures single source of truth:
  Web → IPC → Renderer (same code path as desktop)
2025-11-28 00:53:01 -06:00

143 lines
3.8 KiB
JSON

{
"name": "maestro",
"version": "0.1.0",
"description": "Multi-Instance AI Coding Console - Unified IDE for managing multiple AI coding assistants",
"main": "dist/main/index.js",
"author": {
"name": "Maestro Team",
"email": "maestro@example.com"
},
"license": "MIT",
"repository": {
"type": "git",
"url": "https://github.com/yourusername/maestro.git"
},
"scripts": {
"dev": "concurrently \"npm run dev:main\" \"npm run dev:renderer\"",
"dev:main": "tsc -p tsconfig.main.json && NODE_ENV=development electron .",
"dev:renderer": "vite",
"dev:web": "vite --config vite.config.web.mts",
"generate:pwa-icons": "node scripts/generate-pwa-icons.mjs",
"build": "npm run build:main && npm run build:renderer && npm run build:web",
"build:main": "tsc -p tsconfig.main.json",
"build:renderer": "vite build",
"build:web": "vite build --config vite.config.web.mts",
"package": "npm run build && electron-builder --mac --win --linux",
"package:mac": "npm run build && electron-builder --mac",
"package:win": "npm run build && electron-builder --win",
"package:linux": "npm run build && electron-builder --linux",
"start": "electron .",
"clean": "rm -rf dist release node_modules/.vite",
"postinstall": "electron-rebuild -f -w node-pty"
},
"build": {
"appId": "com.maestro.app",
"productName": "Maestro",
"directories": {
"output": "release",
"buildResources": "build"
},
"files": [
"dist/**/*",
"package.json"
],
"mac": {
"category": "public.app-category.developer-tools",
"identity": null,
"target": [
{
"target": "dmg",
"arch": [
"x64",
"arm64"
]
},
{
"target": "zip",
"arch": [
"x64",
"arm64"
]
}
],
"icon": "build/icon.icns"
},
"win": {
"target": [
{
"target": "nsis",
"arch": [
"x64"
]
},
{
"target": "portable",
"arch": [
"x64"
]
}
],
"icon": "build/icon.ico"
},
"linux": {
"target": [
"AppImage",
"deb",
"rpm"
],
"category": "Development",
"icon": "build/icon.png"
},
"nsis": {
"oneClick": false,
"allowToChangeInstallationDirectory": true
}
},
"dependencies": {
"@emoji-mart/data": "^1.2.1",
"@emoji-mart/react": "^1.1.1",
"@fastify/cors": "^8.5.0",
"@fastify/rate-limit": "^9.1.0",
"@fastify/static": "^7.0.4",
"@fastify/websocket": "^9.0.0",
"@types/dompurify": "^3.0.5",
"ansi-to-html": "^0.7.2",
"diff": "^8.0.2",
"dompurify": "^3.3.0",
"electron-store": "^8.1.0",
"fastify": "^4.25.2",
"mermaid": "^11.12.1",
"node-pty": "^1.0.0",
"qrcode": "^1.5.4",
"qrcode.react": "^4.2.0",
"react-diff-view": "^3.3.2",
"react-markdown": "^10.1.0",
"react-syntax-highlighter": "^16.1.0",
"react-virtuoso": "^4.15.0",
"remark-gfm": "^4.0.1",
"ws": "^8.16.0"
},
"devDependencies": {
"@types/node": "^20.10.6",
"@types/qrcode": "^1.5.6",
"@types/react": "^18.2.47",
"@types/react-dom": "^18.2.18",
"@types/react-syntax-highlighter": "^15.5.13",
"@types/ws": "^8.5.10",
"@vitejs/plugin-react": "^4.2.1",
"autoprefixer": "^10.4.16",
"concurrently": "^8.2.2",
"electron": "^28.1.0",
"electron-builder": "^24.9.1",
"electron-rebuild": "^3.2.9",
"lucide-react": "^0.303.0",
"postcss": "^8.4.33",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"tailwindcss": "^3.4.1",
"typescript": "^5.3.3",
"vite": "^5.0.11",
"vite-plugin-electron": "^0.28.2"
}
}