Files
Maestro/package.json
Pedram Amini d52660fca6 fix: remove explicit arch arrays from Linux targets to prevent cross-arch package contamination
Fixes #116 - electron-builder was building both x64 and arm64 packages on each
runner regardless of CLI flags, causing the ARM64 runner's amd64.deb (with ARM
binaries inside) to overwrite the correct x64 package during artifact deduplication.
2025-12-29 14:12:34 -06:00

293 lines
8.6 KiB
JSON

{
"name": "maestro",
"version": "0.13.1",
"description": "Maestro hones fractured attention into focused intent.",
"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:prod-data": "USE_PROD_DATA=1 concurrently \"npm run dev:main:prod-data\" \"npm run dev:renderer\"",
"dev:demo": "MAESTRO_DEMO_DIR=/tmp/maestro-demo npm run dev",
"dev:main": "npm run build:prompts && tsc -p tsconfig.main.json && NODE_ENV=development electron .",
"dev:main:prod-data": "npm run build:prompts && tsc -p tsconfig.main.json && NODE_ENV=development USE_PROD_DATA=1 electron .",
"dev:renderer": "vite",
"dev:web": "vite --config vite.config.web.mts",
"build": "npm run build:prompts && npm run build:main && npm run build:renderer && npm run build:web && npm run build:cli",
"build:prompts": "node scripts/generate-prompts.mjs",
"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,better-sqlite3",
"lint": "tsc -p tsconfig.lint.json && tsc -p tsconfig.main.json --noEmit && tsc -p tsconfig.cli.json --noEmit",
"lint:eslint": "eslint src/",
"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",
"test:performance": "vitest run --config vitest.performance.config.mts",
"refresh-speckit": "node scripts/refresh-speckit.mjs",
"refresh-openspec": "node scripts/refresh-openspec.mjs"
},
"build": {
"npmRebuild": false,
"appId": "com.maestro.app",
"productName": "Maestro",
"publish": {
"provider": "github",
"owner": "pedramamini",
"repo": "Maestro"
},
"directories": {
"output": "release",
"buildResources": "build"
},
"files": [
"dist/**/*",
"package.json"
],
"asarUnpack": [
"node_modules/node-pty/**/*",
"node_modules/better-sqlite3/**/*"
],
"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"
},
{
"from": "src/prompts/speckit",
"to": "prompts/speckit"
},
{
"from": "src/prompts/openspec",
"to": "prompts/openspec"
}
]
},
"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"
},
{
"from": "src/prompts/speckit",
"to": "prompts/speckit"
},
{
"from": "src/prompts/openspec",
"to": "prompts/openspec"
}
]
},
"linux": {
"target": [
"AppImage",
"deb",
"rpm"
],
"category": "Development",
"icon": "build/icon.png",
"extraResources": [
{
"from": "dist/cli/maestro-cli.js",
"to": "maestro-cli.js"
},
{
"from": "src/prompts/speckit",
"to": "prompts/speckit"
},
{
"from": "src/prompts/openspec",
"to": "prompts/openspec"
}
]
},
"deb": {
"depends": [
"libgtk-3-0",
"libnotify4",
"libnss3",
"libxss1",
"libxtst6",
"xdg-utils",
"libatspi2.0-0",
"libuuid1",
"libdrm2",
"libgbm1",
"libasound2"
]
},
"rpm": {
"depends": [
"gtk3",
"libnotify",
"nss",
"libXScrnSaver",
"(libXtst or libXtst6)",
"xdg-utils",
"at-spi2-core",
"(libuuid or libuuid1)",
"libdrm",
"mesa-libgbm",
"alsa-lib"
]
},
"nsis": {
"oneClick": false,
"allowToChangeInstallationDirectory": true
}
},
"dependencies": {
"@dagrejs/dagre": "^1.1.8",
"@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/d3-force": "^3.0.10",
"@types/dompurify": "^3.0.5",
"adm-zip": "^0.5.16",
"ansi-to-html": "^0.7.2",
"archiver": "^7.0.1",
"better-sqlite3": "^12.5.0",
"canvas-confetti": "^1.9.4",
"chokidar": "^3.6.0",
"commander": "^14.0.2",
"d3-force": "^3.0.0",
"date-fns": "^4.1.0",
"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",
"marked": "^17.0.1",
"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",
"reactflow": "^11.11.4",
"recharts": "^3.6.0",
"rehype-raw": "^7.0.0",
"rehype-slug": "^6.0.0",
"remark-frontmatter": "^5.0.0",
"remark-gfm": "^4.0.1",
"ws": "^8.16.0"
},
"devDependencies": {
"@electron/notarize": "^3.1.1",
"@eslint/js": "^9.39.2",
"@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/better-sqlite3": "^7.6.13",
"@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",
"@typescript-eslint/eslint-plugin": "^8.50.1",
"@typescript-eslint/parser": "^8.50.1",
"@vitejs/plugin-react": "^4.2.1",
"@vitest/coverage-v8": "^4.0.15",
"@welldone-software/why-did-you-render": "^8.0.3",
"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",
"eslint": "^9.39.2",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-hooks": "^7.0.1",
"globals": "^16.5.0",
"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",
"typescript-eslint": "^8.50.1",
"vite": "^5.0.11",
"vite-plugin-electron": "^0.28.2",
"vitest": "^4.0.15"
}
}