{ "name": "maestro", "version": "0.1.0", "private": true, "workspaces": [ "packages/*" ], "license": "Apache-2.0", "type": "module", "description": "MAESTRO — Multi-Agent Execution System for Task Routing & Orchestration. A local-first control plane for coordinating AI agents, workers, tools, and gateways.", "main": "dist/main.js", "engines": { "node": ">=22" }, "scripts": { "setup": "node scripts/setup.mjs", "build": "npm run build:server", "build:contract": "tsc -p packages/answer-worker-contract/tsconfig.json", "build:script-child": "tsc -p tsconfig.script-child.json", "build:server": "npm run build:contract && bash scripts/generate-version.sh && tsc && npm run copy:assets && mkdir -p dist/node_modules/@aao/answer-worker-contract/dist && cp packages/answer-worker-contract/package.json dist/node_modules/@aao/answer-worker-contract/package.json && cp packages/answer-worker-contract/dist/index.js packages/answer-worker-contract/dist/index.d.ts dist/node_modules/@aao/answer-worker-contract/dist/", "build:ui": "npm run build:contract && npm --prefix ui run build && node scripts/copy-mermaid-vendor.mjs", "typecheck:ui": "npm --prefix ui run typecheck", "build:all": "./scripts/build-all.sh --skip-install", "copy:assets": "mkdir -p dist/db dist/bridge && cp src/db/schema.sql dist/db/schema.sql && cp src/bridge/auth-login.html dist/bridge/auth-login.html && cp src/bridge/auth-pending.html dist/bridge/auth-pending.html", "verify:worker-contract-runtime": "node scripts/verify-answer-worker-contract-runtime.mjs", "install:all": "npm ci && npm --prefix ui ci", "start": "node dist/main.js", "dev": "npm run build:contract && node --loader ts-node/esm src/main.ts", "test": "npm run build:contract && npm run build:script-child && vitest run", "test:watch": "npm run build:contract && npm run build:script-child && vitest", "test:e2e": "playwright test --config ui/playwright.config.ts", "test:e2e:auth": "playwright test --config ui/playwright.auth.config.ts", "lint:pieces": "node scripts/lint-pieces.mjs", "check:tailwind-opacity": "node scripts/check-tailwind-opacity.mjs", "check:dark-text": "node scripts/check-dark-text.mjs", "check:task-files-toolbar": "node scripts/check-task-files-toolbar.mjs", "bench": "tsx scripts/bench-run.ts", "bench:fixtures": "tsx scripts/build-bench-fixtures.ts", "vapid-rotate": "tsx scripts/vapid-rotate.ts", "security:egress-boundary": "node scripts/security/check-egress-boundary.mjs", "security:egress": "node scripts/security/check-egress-controls.mjs", "security:egress-settings": "node scripts/security/check-egress-settings.mjs", "security:ui-assets": "node scripts/security/check-local-ui-assets.mjs", "security:dependency-policy": "node scripts/security/dependency-policy.mjs package-lock.json ui/package-lock.json", "ci:rebuild-native": "node scripts/security/rebuild-native.mjs", "check:execution-conversations": "node scripts/check-execution-conversations.mjs", "check:transcription": "node --import tsx scripts/check-transcription.mjs" }, "dependencies": { "@aao/answer-worker-contract": "file:packages/answer-worker-contract", "@a2a-js/sdk": "^0.3.13", "@discordjs/rest": "^2.6.3", "@discordjs/ws": "^2.0.4", "@js-temporal/polyfill": "^0.5.1", "@kenjiuno/msgreader": "^1.28.0", "@modelcontextprotocol/sdk": "^1.30.0", "@mozilla/readability": "^0.6.0", "@novnc/novnc": "^1.6.0", "@types/ssh2": "^1.15.5", "@types/web-push": "^3.6.4", "@xterm/headless": "^5.5.0", "adm-zip": "^0.6.0", "better-sqlite3": "^12.6.2", "cron-parser": "^5.5.0", "exceljs": "^4.4.0", "express": "^4.18.3", "express-session": "^1.19.0", "fast-xml-parser": "^5.4.2", "gray-matter": "^4.0.3", "http-proxy": "^1.18.1", "iconv-lite": "^0.4.24", "linkedom": "^0.18.12", "mammoth": "^1.11.0", "oidc-provider": "^9.8.6", "on-headers": "^1.1.0", "p-queue": "^9.3.0", "passport": "^0.7.0", "passport-google-oauth20": "^2.0.0", "passport-oauth2": "^1.8.0", "pdf-parse": "^2.4.5", "playwright": "^1.59.1", "pptxgenjs": "^4.0.1", "prom-client": "^15.1.3", "proper-lockfile": "^4.1.2", "selfsigned": "^2.4.1", "sharp": "^0.35.3", "ssh2": "^1.17.0", "turndown": "^7.2.4", "turndown-plugin-gfm": "^1.0.2", "undici": "^7.29.0", "uuid": "^13.0.0", "web-push": "^3.6.7", "ws": "^8.20.1", "yaml": "^2.4.1" }, "devDependencies": { "@playwright/test": "^1.61.0", "@types/adm-zip": "^0.5.7", "@types/better-sqlite3": "^7.6.8", "@types/express": "^4.17.21", "@types/express-session": "^1.18.2", "@types/http-proxy": "^1.17.17", "@types/node": "^20.11.30", "@types/on-headers": "^1.0.4", "@types/passport": "^1.0.17", "@types/passport-google-oauth20": "^2.0.17", "@types/passport-oauth2": "^1.8.0", "@types/proper-lockfile": "^4.1.4", "@types/supertest": "^7.2.0", "@types/turndown": "^5.0.6", "@types/uuid": "^10.0.0", "@types/ws": "^8.18.1", "fast-check": "^3.23.2", "jsdom": "^29.1.1", "jszip": "^3.10.1", "supertest": "^7.2.2", "tsx": "^4.23.11", "typescript": "^5.4.3", "vitest": "^4.1.8" }, "overrides": { "exceljs": { "uuid": "11.1.1" } } }