372 lines
13 KiB
JSON
372 lines
13 KiB
JSON
{
|
|
"name": "agent-teams-ai",
|
|
"type": "module",
|
|
"version": "1.3.0",
|
|
"description": "Desktop app for managing AI agent teams, reviews, runtime logs, and provider-aware workflows",
|
|
"license": "AGPL-3.0",
|
|
"author": {
|
|
"name": "Илия (777genius)",
|
|
"email": "quantjumppro@gmail.com"
|
|
},
|
|
"homepage": "https://github.com/777genius/agent-teams-ai",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://github.com/777genius/agent-teams-ai.git"
|
|
},
|
|
"bugs": {
|
|
"url": "https://github.com/777genius/agent-teams-ai/issues"
|
|
},
|
|
"main": "dist-electron/main/index.cjs",
|
|
"scripts": {
|
|
"dev": "node ./scripts/dev-with-runtime.mjs",
|
|
"dev:web": "node ./scripts/dev-web.mjs",
|
|
"dev:kill": "node bin/kill-dev.js",
|
|
"opencode:prove-mixed-recovery": "node ./scripts/prove-opencode-mixed-recovery.mjs",
|
|
"opencode:prove-semantic-gauntlet": "node ./scripts/prove-opencode-semantic-gauntlet.mjs",
|
|
"opencode:prove-semantic-messaging": "node ./scripts/prove-opencode-semantic-messaging.mjs",
|
|
"opencode:prove-semantic-model-matrix": "node ./scripts/prove-opencode-semantic-model-matrix.mjs",
|
|
"opencode:prove-team-provisioning": "node ./scripts/prove-opencode-team-provisioning.mjs",
|
|
"team:prove-agent-cli-launch": "node ./scripts/prove-agent-cli-launch.mjs",
|
|
"team:prove-launch-matrix": "pnpm exec vitest run --maxWorkers 1 --minWorkers 1 test/main/services/team/TeamAgentLaunchMatrix.safe-e2e.test.ts",
|
|
"prebuild": "tsx scripts/fetch-pricing-data.ts && pnpm --filter agent-teams-controller build && pnpm --filter agent-teams-mcp build",
|
|
"build": "node --max-old-space-size=8192 ./node_modules/electron-vite/bin/electron-vite.js build",
|
|
"dist": "electron-builder --mac --win --linux",
|
|
"dist:mac": "electron-builder --mac",
|
|
"dist:mac:arm64": "electron-builder --mac --arm64",
|
|
"dist:mac:x64": "electron-builder --mac --x64",
|
|
"dist:win": "electron-builder --win",
|
|
"dist:linux": "electron-builder --linux",
|
|
"preview": "electron-vite preview",
|
|
"typecheck": "tsc --noEmit",
|
|
"typecheck:workspace": "pnpm typecheck && pnpm --filter agent-teams-mcp typecheck && pnpm --filter agent-teams-mcp typecheck:test",
|
|
"lint": "eslint src/ --cache --cache-location .eslintcache --cache-strategy content",
|
|
"lint:mcp": "pnpm --filter agent-teams-mcp lint",
|
|
"lint:fix": "eslint src/ --fix --cache --cache-location .eslintcache --cache-strategy content",
|
|
"format": "prettier --write \"src/**/*.{ts,tsx,js,jsx,json,css}\"",
|
|
"format:check": "prettier --check \"src/**/*.{ts,tsx,js,jsx,json,css}\"",
|
|
"build:workspace": "pnpm build && pnpm --filter agent-teams-controller build && pnpm --filter agent-teams-mcp build",
|
|
"test:workspace": "pnpm test && pnpm --filter agent-teams-controller test && pnpm --filter agent-teams-mcp test",
|
|
"test:workspace:ci": "pnpm test:ci && pnpm --filter agent-teams-controller test && pnpm --filter agent-teams-mcp test",
|
|
"check:workspace": "pnpm typecheck:workspace && pnpm test:workspace && pnpm build:workspace && pnpm --filter agent-teams-mcp test:e2e",
|
|
"check:workspace:ci": "pnpm typecheck:workspace && pnpm test:workspace:ci && pnpm build:workspace && pnpm --filter agent-teams-mcp test:e2e",
|
|
"check": "pnpm check:workspace && pnpm lint && pnpm lint:mcp",
|
|
"check:ci": "pnpm check:workspace:ci && pnpm lint && pnpm lint:mcp",
|
|
"fix": "pnpm lint:fix && pnpm format",
|
|
"quality": "pnpm check && pnpm format:check && npx knip",
|
|
"test:chunks": "tsx test/test-chunk-building.ts",
|
|
"test:semantic": "tsx test/test-semantic-steps.ts",
|
|
"test:noise": "tsx test/test-noise-filtering.ts",
|
|
"test:task-filtering": "tsx test/test-task-filtering.ts",
|
|
"test": "vitest run",
|
|
"test:ci": "vitest run --maxWorkers 1 --minWorkers 1",
|
|
"test:task-change-ledger": "vitest run test/main/services/team/TaskChangeLedgerReader.test.ts test/main/services/team/taskChangeLedgerFixtures.integration.test.ts test/main/services/team/ReviewApplierService.test.ts test/main/services/team/FileContentResolver.test.ts test/main/services/team/ChangeExtractorService.test.ts test/renderer/store/changeReviewSlice.test.ts test/renderer/utils/reviewKey.test.ts test/main/services/team/TeamLogSourceTracker.test.ts test/main/services/team/stallMonitor/TeamTaskLogFreshnessReader.test.ts",
|
|
"test:watch": "vitest",
|
|
"test:coverage": "vitest run --coverage",
|
|
"test:coverage:critical": "vitest run --coverage --config vitest.critical.config.ts",
|
|
"standalone": "tsx src/main/standalone.ts",
|
|
"standalone:build": "electron-vite build && vite build --config docker/vite.standalone.config.ts",
|
|
"standalone:start": "node dist-standalone/index.cjs",
|
|
"prepare": "husky",
|
|
"postinstall": "electron-rebuild -f -o node-pty,ssh2,cpu-features || echo 'native Electron rebuild failed (terminal/ssh features may be degraded)'"
|
|
},
|
|
"lint-staged": {
|
|
"src/**/*.{ts,tsx,js,jsx}": [
|
|
"prettier --write"
|
|
],
|
|
"src/**/*.{json,css}": [
|
|
"prettier --write"
|
|
]
|
|
},
|
|
"dependencies": {
|
|
"@claude-teams/agent-graph": "workspace:*",
|
|
"@codemirror/autocomplete": "^6.20.0",
|
|
"@codemirror/commands": "^6.10.2",
|
|
"@codemirror/lang-cpp": "^6.0.3",
|
|
"@codemirror/lang-css": "^6.3.1",
|
|
"@codemirror/lang-go": "^6.0.1",
|
|
"@codemirror/lang-html": "^6.4.11",
|
|
"@codemirror/lang-java": "^6.0.2",
|
|
"@codemirror/lang-javascript": "^6.2.4",
|
|
"@codemirror/lang-json": "^6.0.2",
|
|
"@codemirror/lang-less": "^6.0.2",
|
|
"@codemirror/lang-markdown": "^6.5.0",
|
|
"@codemirror/lang-php": "^6.0.2",
|
|
"@codemirror/lang-python": "^6.2.1",
|
|
"@codemirror/lang-rust": "^6.0.2",
|
|
"@codemirror/lang-sass": "^6.0.2",
|
|
"@codemirror/lang-sql": "^6.10.0",
|
|
"@codemirror/lang-xml": "^6.1.0",
|
|
"@codemirror/lang-yaml": "^6.1.2",
|
|
"@codemirror/language": "^6.12.1",
|
|
"@codemirror/language-data": "^6.5.2",
|
|
"@codemirror/lint": "^6.9.5",
|
|
"@codemirror/merge": "^6.12.0",
|
|
"@codemirror/search": "^6.6.0",
|
|
"@codemirror/state": "^6.5.4",
|
|
"@codemirror/theme-one-dark": "^6.1.3",
|
|
"@codemirror/view": "^6.39.15",
|
|
"@dnd-kit/core": "^6.3.1",
|
|
"@dnd-kit/sortable": "^10.0.0",
|
|
"@dnd-kit/utilities": "^3.2.2",
|
|
"@fastify/cors": "^11.2.0",
|
|
"@fastify/static": "^9.0.0",
|
|
"@floating-ui/dom": "^1.7.6",
|
|
"@radix-ui/react-alert-dialog": "^1.1.15",
|
|
"@radix-ui/react-checkbox": "^1.3.3",
|
|
"@radix-ui/react-collapsible": "^1.1.12",
|
|
"@radix-ui/react-context-menu": "^2.2.16",
|
|
"@radix-ui/react-dialog": "^1.1.15",
|
|
"@radix-ui/react-hover-card": "^1.1.15",
|
|
"@radix-ui/react-label": "^2.1.8",
|
|
"@radix-ui/react-popover": "^1.1.15",
|
|
"@radix-ui/react-select": "^2.2.6",
|
|
"@radix-ui/react-slot": "^1.2.4",
|
|
"@radix-ui/react-tabs": "^1.1.13",
|
|
"@radix-ui/react-tooltip": "^1.2.8",
|
|
"@sentry/electron": "^7.10.0",
|
|
"@sentry/react": "^10.45.0",
|
|
"@tanstack/react-virtual": "^3.10.8",
|
|
"@tiptap/extension-placeholder": "^3.20.4",
|
|
"@tiptap/markdown": "^3.20.4",
|
|
"@tiptap/pm": "^3.20.4",
|
|
"@tiptap/react": "^3.20.4",
|
|
"@tiptap/starter-kit": "^3.20.4",
|
|
"@xterm/addon-fit": "^0.11.0",
|
|
"@xterm/addon-web-links": "^0.12.0",
|
|
"@xterm/xterm": "^6.0.0",
|
|
"agent-teams-controller": "workspace:*",
|
|
"chokidar": "^4.0.3",
|
|
"class-variance-authority": "^0.7.1",
|
|
"clsx": "^2.1.1",
|
|
"cmdk": "1.0.4",
|
|
"croner": "^10.0.1",
|
|
"cronstrue": "^3.13.0",
|
|
"date-fns": "^3.6.0",
|
|
"diff": "^8.0.3",
|
|
"dompurify": "^3.3.1",
|
|
"electron-updater": "^6.7.3",
|
|
"fastify": "^5.7.4",
|
|
"highlight.js": "^11.11.1",
|
|
"idb-keyval": "^6.2.2",
|
|
"isbinaryfile": "^6.0.0",
|
|
"lucide-react": "^0.577.0",
|
|
"mdast-util-to-hast": "^13.2.1",
|
|
"mermaid": "^11.12.3",
|
|
"motion": "12.38.0",
|
|
"node-diff3": "^3.2.0",
|
|
"node-pty": "^1.1.0",
|
|
"pidusage": "4.0.1",
|
|
"react": "^19.0.0",
|
|
"react-dom": "^19.0.0",
|
|
"react-grid-layout": "^2.2.2",
|
|
"react-markdown": "^10.1.0",
|
|
"react-modal-sheet": "5.6.0",
|
|
"react-resizable": "^3.1.3",
|
|
"rehype-highlight": "^7.0.2",
|
|
"rehype-raw": "^7.0.0",
|
|
"rehype-sanitize": "^6.0.0",
|
|
"remark-gfm": "^4.0.1",
|
|
"remark-parse": "^11.0.0",
|
|
"simple-git": "^3.32.3",
|
|
"ssh-config": "^5.0.4",
|
|
"ssh2": "^1.17.0",
|
|
"strip-markdown": "^6.0.0",
|
|
"tailwind-merge": "^3.5.0",
|
|
"tailwindcss-animate": "^1.0.7",
|
|
"unified": "^11.0.5",
|
|
"yaml": "^2.8.2",
|
|
"yet-another-react-lightbox": "^3.29.1",
|
|
"zustand": "^4.5.0"
|
|
},
|
|
"devDependencies": {
|
|
"@electron/rebuild": "^4.0.3",
|
|
"@eslint-community/eslint-plugin-eslint-comments": "^4.6.0",
|
|
"@eslint/js": "^9.39.2",
|
|
"@sentry/vite-plugin": "^5.1.1",
|
|
"@tailwindcss/typography": "^0.5.19",
|
|
"@types/hast": "^3.0.4",
|
|
"@types/mdast": "^4.0.4",
|
|
"@types/node": "^25.0.7",
|
|
"@types/pidusage": "2.0.5",
|
|
"@types/react": "^19.0.0",
|
|
"@types/react-dom": "^19.0.0",
|
|
"@types/ssh2": "^1.15.5",
|
|
"@vitejs/plugin-react": "^4.3.1",
|
|
"@vitest/coverage-v8": "^3.1.4",
|
|
"autoprefixer": "^10.4.17",
|
|
"electron": "^40.3.0",
|
|
"electron-builder": "^26.8.1",
|
|
"electron-vite": "^5.0.0",
|
|
"eslint": "^9.39.2",
|
|
"eslint-config-prettier": "^10.1.8",
|
|
"eslint-import-resolver-typescript": "^4.4.4",
|
|
"eslint-plugin-boundaries": "^5.3.1",
|
|
"eslint-plugin-import": "^2.32.0",
|
|
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
"eslint-plugin-react": "^7.37.5",
|
|
"eslint-plugin-react-hooks": "^7.0.1",
|
|
"eslint-plugin-react-refresh": "^0.4.26",
|
|
"eslint-plugin-security": "^3.0.1",
|
|
"eslint-plugin-simple-import-sort": "^12.1.1",
|
|
"eslint-plugin-sonarjs": "^3.0.6",
|
|
"eslint-plugin-tailwindcss": "^3.18.2",
|
|
"globals": "^17.2.0",
|
|
"happy-dom": "^20.0.2",
|
|
"husky": "^9.1.7",
|
|
"knip": "^5.82.1",
|
|
"lint-staged": "^16.2.7",
|
|
"postcss": "^8.4.35",
|
|
"prettier": "^3.8.1",
|
|
"prettier-plugin-tailwindcss": "^0.7.2",
|
|
"tailwindcss": "^3.4.1",
|
|
"tsx": "^4.21.0",
|
|
"typescript": "^5.9.3",
|
|
"typescript-eslint": "^8.54.0",
|
|
"vite": "^5.4.2",
|
|
"vitest": "^3.1.4"
|
|
},
|
|
"build": {
|
|
"appId": "com.agent-teams.app",
|
|
"productName": "Agent Teams UI",
|
|
"directories": {
|
|
"output": "release"
|
|
},
|
|
"files": [
|
|
"out/renderer/**",
|
|
"dist-electron/**",
|
|
"package.json",
|
|
"!**/*.map"
|
|
],
|
|
"asar": true,
|
|
"asarUnpack": [
|
|
"out/renderer/**",
|
|
"**/node_modules/node-pty/**"
|
|
],
|
|
"extraResources": [
|
|
{
|
|
"from": "resources/pricing.json",
|
|
"to": "pricing.json"
|
|
},
|
|
{
|
|
"from": "resources/runtime",
|
|
"to": "runtime"
|
|
},
|
|
{
|
|
"from": "src/renderer/assets/participant-avatars",
|
|
"to": "participant-avatars"
|
|
},
|
|
{
|
|
"from": "mcp-server/dist/index.js",
|
|
"to": "mcp-server/index.js"
|
|
},
|
|
{
|
|
"from": "mcp-server/package.json",
|
|
"to": "mcp-server/package.json"
|
|
}
|
|
],
|
|
"npmRebuild": false,
|
|
"afterPack": "scripts/electron-builder/afterPack.cjs",
|
|
"extraMetadata": {
|
|
"main": "dist-electron/main/index.cjs"
|
|
},
|
|
"mac": {
|
|
"artifactName": "Agent.Teams.AI-${version}-${arch}-mac.${ext}",
|
|
"category": "public.app-category.developer-tools",
|
|
"minimumSystemVersion": "12.0",
|
|
"target": [
|
|
"dmg",
|
|
"zip"
|
|
],
|
|
"hardenedRuntime": true,
|
|
"gatekeeperAssess": false,
|
|
"notarize": true,
|
|
"entitlements": "resources/entitlements.mac.plist",
|
|
"entitlementsInherit": "resources/entitlements.mac.inherit.plist",
|
|
"icon": "resources/icons/mac/icon.icns"
|
|
},
|
|
"dmg": {
|
|
"sign": false,
|
|
"artifactName": "Agent.Teams.AI-${version}-${arch}.${ext}"
|
|
},
|
|
"win": {
|
|
"target": [
|
|
"nsis"
|
|
],
|
|
"icon": "resources/icons/win/icon.ico"
|
|
},
|
|
"linux": {
|
|
"target": [
|
|
"AppImage",
|
|
"deb",
|
|
"rpm",
|
|
"pacman"
|
|
],
|
|
"icon": "resources/icons/png",
|
|
"category": "Development"
|
|
},
|
|
"appImage": {
|
|
"artifactName": "Agent.Teams.AI-${version}.${ext}"
|
|
},
|
|
"deb": {
|
|
"afterInstall": "resources/afterInstall.sh"
|
|
},
|
|
"nsis": {
|
|
"artifactName": "Agent.Teams.AI.Setup.${version}.${ext}",
|
|
"oneClick": false,
|
|
"perMachine": false,
|
|
"allowToChangeInstallationDirectory": true
|
|
},
|
|
"publish": [
|
|
{
|
|
"provider": "github",
|
|
"owner": "777genius",
|
|
"repo": "agent-teams-ai",
|
|
"releaseType": "release"
|
|
}
|
|
]
|
|
},
|
|
"packageManager": "pnpm@10.33.0+sha512.10568bb4a6afb58c9eb3630da90cc9516417abebd3fabbe6739f0ae795728da1491e9db5a544c76ad8eb7570f5c4bb3d6c637b2cb41bfdcdb47fa823c8649319",
|
|
"pnpm": {
|
|
"onlyBuiltDependencies": [
|
|
"electron",
|
|
"node-pty",
|
|
"cpu-features"
|
|
]
|
|
},
|
|
"knip": {
|
|
"entry": [
|
|
"src/main/index.ts",
|
|
"src/main/standalone.ts",
|
|
"src/preload/index.ts",
|
|
"src/renderer/main.tsx",
|
|
"electron.vite.config.ts",
|
|
"docker/vite.standalone.config.ts"
|
|
],
|
|
"project": [
|
|
"src/**/*.{ts,tsx}!"
|
|
],
|
|
"ignore": [
|
|
"tsconfig*.json"
|
|
],
|
|
"paths": {
|
|
"@features/*": [
|
|
"./src/features/*"
|
|
],
|
|
"@main/*": [
|
|
"./src/main/*"
|
|
],
|
|
"@renderer/*": [
|
|
"./src/renderer/*"
|
|
],
|
|
"@preload/*": [
|
|
"./src/preload/*"
|
|
],
|
|
"@shared/*": [
|
|
"./src/shared/*"
|
|
]
|
|
},
|
|
"ignoreBinaries": [
|
|
"pkg"
|
|
]
|
|
}
|
|
}
|