{ "name": "discobot", "version": "0.0.0-dev", "private": true, "type": "module", "packageManager": "pnpm@11.1.2", "scripts": { "dev": "concurrently -n backend,app -c cyan,yellow \"pnpm dev:backend\" \"pnpm dev:app\"", "dev:backend": "concurrently -n ui,server,agent,runtime -c cyan,green,magenta,yellow \"pnpm dev:frontend\" \"pnpm dev:server\" \"pnpm dev:agent\" \"pnpm dev:runtime\"", "dev:app": "node scripts/build-electron.mjs && cross-env NODE_OPTIONS=--import=tsx electron ./electron/main.ts", "dev:frontend": "pnpm ui:dev", "dev:server": "node scripts/dev-server.mjs", "dev:runtime": "node scripts/dev-runtime.mjs", "dev:agent": "tsx --watch scripts/agent-watcher/index.ts", "dev:db": "bash .discobot/services/db.sh", "dev:vz": "tsx --watch scripts/vz-watcher/index.ts", "dev:wsl": "tsx --watch scripts/wsl-watcher/index.ts", "dev:hcs": "tsx --watch scripts/hcs-watcher/index.ts", "ui:dev": "pnpm --dir ./ui dev", "ui:dev:backend": "concurrently -n ui,server,agent,runtime -c cyan,green,magenta,yellow \"pnpm ui:dev\" \"pnpm dev:server\" \"pnpm dev:agent\" \"pnpm dev:runtime\"", "ui:build": "cross-env NODE_OPTIONS=--max-old-space-size=4096 pnpm --dir ./ui build", "ui:check": "pnpm --dir ./ui check", "ui:check:fix": "pnpm --dir ./ui check:fix", "ui:format": "pnpm --dir ./ui format", "ui:typecheck": "pnpm --dir ./ui typecheck", "electron:format": "prettier \"electron/*.ts\" eslint.config.js --write", "electron:format:check": "prettier \"electron/*.ts\" eslint.config.js --check", "electron:lint": "eslint \"electron/*.ts\"", "electron:lint:fix": "eslint \"electron/*.ts\" --fix", "build": "pnpm build:app", "build:frontend": "pnpm ui:build", "build:server": "node scripts/build-server.mjs", "build:disco": "node scripts/build-disco.mjs", "build:app": "pnpm build:frontend && pnpm build:server && node scripts/build-electron.mjs && electron-builder --dir", "preview": "pnpm --dir ./ui preview", "test": "pnpm test:unit && pnpm test:integration", "test:unit": "concurrently \"pnpm test:server:unit\" \"pnpm test:proxy:unit\" \"pnpm test:agent-go:unit\" \"pnpm test:watcher\" \"pnpm test:ui\"", "test:integration": "concurrently \"pnpm test:server:integration\" \"pnpm test:proxy:integration\"", "test:ui": "pnpm test:ui:vitest", "test:e2e": "node scripts/check-e2e-server.mjs && playwright test", "test:e2e:headed": "node scripts/check-e2e-server.mjs && playwright test --headed", "test:e2e:ui": "node scripts/check-e2e-server.mjs && playwright test --ui", "test:ui:vitest": "pnpm --dir ./ui test:vitest", "test:watcher": "node --import tsx --test scripts/agent-watcher/watcher.test.ts scripts/wsl-watcher/index.test.ts scripts/hcs-watcher/index.test.ts", "test:server": "cd server && go test -v ./...", "test:server:unit": "node scripts/go-test-non-integration.mjs server", "test:server:integration": "cd server && go test -v ./internal/integration/...", "test:proxy": "cd proxy && go test -v ./...", "test:proxy:unit": "node scripts/go-test-non-integration.mjs proxy", "test:proxy:integration": "cd proxy && go test -v -run Integration ./internal/proxy/", "test:agent-go": "cd agent-go && go test -tags mcp_go_client_oauth -v ./...", "test:agent-go:unit": "node scripts/go-test-non-integration.mjs agent-go -- -tags mcp_go_client_oauth", "check": "pnpm check:frontend && pnpm check:electron && pnpm check:package-json && pnpm check:backend && pnpm check:workflows && pnpm check:shell && pnpm check:powershell", "check:fix": "pnpm check:frontend:fix && pnpm check:electron:fix && pnpm check:package-json:fix && pnpm check:backend:fix && pnpm check:workflows:fix && pnpm check:shell && pnpm check:powershell:fix", "check:shell": "node scripts/check-shell.mjs", "check:powershell": "node scripts/check-powershell.mjs check", "check:powershell:fix": "node scripts/check-powershell.mjs fix", "check:frontend": "pnpm ui:check", "check:frontend:fix": "pnpm ui:check:fix", "check:electron": "pnpm electron:format:check && pnpm electron:lint", "check:electron:fix": "pnpm electron:format && pnpm electron:lint:fix", "check:package-json": "pnpm --dir ./ui exec prettier --check ../package.json ../ui/package.json", "check:package-json:fix": "pnpm --dir ./ui exec prettier --write ../package.json ../ui/package.json", "check:workflows": "pnpm --dir ./ui exec prettier --check \"../.github/workflows/*.{yml,yaml}\"", "check:workflows:fix": "pnpm --dir ./ui exec prettier --write \"../.github/workflows/*.{yml,yaml}\"", "check:backend": "cd server && go tool golangci-lint run --allow-parallel-runners && cd ../proxy && go tool golangci-lint run --allow-parallel-runners && cd ../agent-go && go tool golangci-lint run --allow-parallel-runners --build-tags mcp_go_client_oauth", "check:backend:fix": "cd server && go tool golangci-lint run --allow-parallel-runners --fix && cd ../proxy && go tool golangci-lint run --allow-parallel-runners --fix && cd ../agent-go && go tool golangci-lint run --allow-parallel-runners --fix --build-tags mcp_go_client_oauth", "check:skills": ".claude/scripts/validate-skills.sh", "format": "pnpm ui:format && pnpm electron:format && pnpm format:powershell", "format:powershell": "node scripts/check-powershell.mjs format", "lint": "pnpm lint:frontend && pnpm lint:electron && pnpm lint:backend && pnpm lint:shell && pnpm lint:powershell", "lint:fix": "pnpm lint:frontend:fix && pnpm lint:electron:fix && pnpm lint:backend:fix && pnpm lint:shell && pnpm lint:powershell:fix", "lint:frontend": "pnpm --dir ./ui lint", "lint:frontend:fix": "pnpm --dir ./ui lint:fix", "lint:electron": "pnpm electron:lint", "lint:electron:fix": "pnpm electron:lint:fix", "lint:backend": "pnpm check:backend", "lint:backend:fix": "pnpm check:backend:fix", "lint:shell": "pnpm check:shell", "lint:powershell": "node scripts/check-powershell.mjs lint", "lint:powershell:fix": "node scripts/check-powershell.mjs fix", "ci": "pnpm check && pnpm test:unit && node scripts/run-ci-tail.mjs", "temproot": "scripts/temproot.sh", "refresh-models": "./scripts/refresh-models-data.sh", "dist:app": "pnpm build:frontend && pnpm build:server && node scripts/build-electron.mjs && electron-builder", "vscode-lite:web:dev": "pnpm --dir ./vscode-lite/web dev", "vscode-lite:web:build": "pnpm --dir ./vscode-lite/web build", "vscode-lite:web:check": "pnpm --dir ./vscode-lite/web check", "vscode-lite:server:dev": "go run ./vscode-lite/cmd/vscode-lite", "vscode-lite:server:build": "go build ./vscode-lite/cmd/vscode-lite", "vscode-lite:test": "go test ./vscode-lite/..." }, "dependencies": { "electron-updater": "^6.8.3" }, "devDependencies": { "@eslint/js": "10.0.1", "@playwright/test": "^1.60.0", "concurrently": "^9.2.1", "cross-env": "^10.1.0", "electron": "^42.3.0", "electron-builder": "^26.8.1", "esbuild": "^0.28.0", "eslint": "10.4.1", "globals": "17.6.0", "prettier": "3.8.3", "shellcheck": "^4.1.0", "tsx": "^4.22.4", "typescript": "^6.0.3", "typescript-eslint": "8.60.0" }, "main": ".electron-dist/main.js", "build": { "appId": "com.obot.discobot", "asar": true, "files": [ ".electron-dist/**/*", "server/static/ui/dist/**/*", "electron/assets/icons/**/*" ], "extraResources": [ { "from": "electron/binaries", "to": "binaries", "filter": [ "discobot-server-*" ] } ], "mac": { "category": "public.app-category.developer-tools", "icon": "electron/assets/icons/icon.icns", "target": [ "dir", "dmg", "zip" ], "artifactName": "${productName}-${version}-${arch}.${ext}", "entitlements": "electron/assets/entitlements.plist", "entitlementsInherit": "electron/assets/entitlements.plist", "extraResources": [ { "from": "electron/resources/vz", "to": "vz", "filter": [ "**/*" ] } ] }, "win": { "icon": "electron/assets/icons/icon.ico", "target": [ "nsis", "zip" ], "artifactName": "${productName}-${version}-win-${arch}.${ext}", "extraResources": [ { "from": "electron/resources/wsl", "to": "wsl", "filter": [ "**/*" ] }, { "from": "electron/resources/hcs", "to": "hcs", "filter": [ "**/*" ] }, { "from": "electron/assets/icons/icon.ico", "to": "icon.ico" } ] }, "publish": [ { "provider": "github" } ], "linux": { "category": "Development", "icon": "electron/assets/icons/icon.png", "maintainer": "Obot Platform ", "target": [ "AppImage", "deb", "tar.gz" ], "artifactName": "${productName}-${version}-${arch}.${ext}" } } }