{ "name": "maestro", "version": "0.10.0", "description": "Run AI coding agents autonomously for days.", "main": "dist/main/index.js", "author": { "name": "Pedram Amini", "email": "pedram@runmaestro.ai" }, "license": "AGPL 3.0", "repository": { "type": "git", "url": "https://github.com/pedramamini/maestro.git" }, "bin": { "maestro-cli": "./dist/cli/maestro-cli.js" }, "scripts": { "dev": "concurrently \"npm run dev:main\" \"npm run dev:renderer\"", "dev:demo": "MAESTRO_DEMO_DIR=/tmp/maestro-demo npm run dev", "dev:main": "tsc -p tsconfig.main.json && NODE_ENV=development electron .", "dev:renderer": "vite", "dev:web": "vite --config vite.config.web.mts", "build": "npm run build:main && npm run build:renderer && npm run build:web && npm run build:cli", "build:main": "tsc -p tsconfig.main.json", "build:cli": "node scripts/build-cli.mjs", "build:renderer": "vite build", "build:web": "vite build --config vite.config.web.mts", "package": "node scripts/set-version.mjs npm run build && node scripts/set-version.mjs electron-builder --mac --win --linux", "package:mac": "node scripts/set-version.mjs npm run build && node scripts/set-version.mjs electron-builder --mac", "package:win": "node scripts/set-version.mjs npm run build && node scripts/set-version.mjs electron-builder --win", "package:linux": "node scripts/set-version.mjs npm run build && node scripts/set-version.mjs electron-builder --linux", "start": "electron .", "clean": "rm -rf dist release node_modules/.vite", "postinstall": "electron-rebuild -f -w node-pty", "lint": "tsc -p tsconfig.lint.json", "test": "vitest run", "test:watch": "vitest", "test:coverage": "vitest run --coverage", "test:e2e": "npm run build:main && npm run build:renderer && playwright test", "test:e2e:ui": "npm run build:main && npm run build:renderer && playwright test --ui", "test:e2e:headed": "npm run build:main && npm run build:renderer && playwright test --headed", "test:integration": "vitest run --config vitest.integration.config.ts", "test:integration:watch": "vitest --config vitest.integration.config.ts" }, "build": { "appId": "com.maestro.app", "productName": "Maestro", "publish": { "provider": "github", "owner": "pedramamini", "repo": "Maestro" }, "directories": { "output": "release", "buildResources": "build" }, "files": [ "dist/**/*", "package.json" ], "mac": { "category": "public.app-category.developer-tools", "hardenedRuntime": true, "gatekeeperAssess": false, "notarize": false, "entitlements": "build/entitlements.mac.plist", "entitlementsInherit": "build/entitlements.mac.plist", "target": [ { "target": "dmg", "arch": [ "x64", "arm64" ] }, { "target": "zip", "arch": [ "x64", "arm64" ] } ], "icon": "build/icon.icns", "extraResources": [ { "from": "dist/cli/maestro-cli.js", "to": "maestro-cli.js" } ] }, "afterSign": "scripts/notarize.js", "win": { "target": [ { "target": "nsis", "arch": [ "x64" ] }, { "target": "portable", "arch": [ "x64" ] } ], "icon": "build/icon.ico", "extraResources": [ { "from": "dist/cli/maestro-cli.js", "to": "maestro-cli.js" } ] }, "linux": { "target": [ { "target": "AppImage", "arch": ["x64", "arm64"] }, { "target": "deb", "arch": ["x64", "arm64"] }, { "target": "rpm", "arch": ["x64", "arm64"] } ], "category": "Development", "icon": "build/icon.png", "extraResources": [ { "from": "dist/cli/maestro-cli.js", "to": "maestro-cli.js" } ] }, "rpm": { "depends": [ "gtk3", "libnotify", "nss", "libXScrnSaver", "(libXtst or libXtst6)", "xdg-utils", "at-spi2-core", "(libuuid or libuuid1)" ] }, "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", "@sentry/electron": "^7.5.0", "@tanstack/react-virtual": "^3.13.13", "@types/dompurify": "^3.0.5", "adm-zip": "^0.5.16", "ansi-to-html": "^0.7.2", "archiver": "^7.0.1", "canvas-confetti": "^1.9.4", "chokidar": "^3.6.0", "commander": "^14.0.2", "diff": "^8.0.2", "dompurify": "^3.3.0", "electron-store": "^8.1.0", "electron-updater": "^6.6.2", "fastify": "^4.25.2", "js-tiktoken": "^1.0.21", "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", "rehype-raw": "^7.0.0", "remark-frontmatter": "^5.0.0", "remark-gfm": "^4.0.1", "ws": "^8.16.0" }, "devDependencies": { "@electron/notarize": "^3.1.1", "@playwright/test": "^1.57.0", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.0", "@types/adm-zip": "^0.5.7", "@types/archiver": "^7.0.0", "@types/canvas-confetti": "^1.9.0", "@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", "@vitest/coverage-v8": "^4.0.15", "autoprefixer": "^10.4.16", "canvas": "^3.2.0", "concurrently": "^8.2.2", "electron": "^28.1.0", "electron-builder": "^24.9.1", "electron-playwright-helpers": "^2.0.1", "electron-rebuild": "^3.2.9", "esbuild": "^0.24.2", "jsdom": "^27.2.0", "lucide-react": "^0.303.0", "playwright": "^1.57.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", "vitest": "^4.0.15" } }