* feat(plugins): expose Paseo API to local plugins Plugin surfaces borrow the selected host connection while subprocess handlers receive an exclusively owned IPC session, so plugins can use normal workspace and agent operations without inventing another transport. * feat(plugins): reload global enablement safely Treat the global plugin switch as a live daemon setting and teach plugin automation to inspect it before acting. Enabling remains permission-gated because plugin backend code can access the daemon machine and client contributions execute inside the app. * feat(plugins): expose plugin logs Capture plugin stdout and stderr separately from IPC so authors can debug initialization, RPC, cleanup, and crash behavior from the app or CLI. Keep a bounded tail across lifecycle recovery while preserving structured output in the daemon log. * fix(build): order plugin dependency builds * test(plugins): align startup and CLI expectations
148 lines
11 KiB
JSON
148 lines
11 KiB
JSON
{
|
|
"name": "paseo",
|
|
"version": "0.4.0",
|
|
"private": true,
|
|
"description": "Paseo: voice-controlled development environment for local AI coding agents",
|
|
"keywords": [
|
|
"development",
|
|
"mcp",
|
|
"openai",
|
|
"voice",
|
|
"voice-assistant"
|
|
],
|
|
"homepage": "https://paseo.sh",
|
|
"license": "AGPL-3.0-or-later",
|
|
"author": {
|
|
"name": "Mohamed Boudra",
|
|
"email": "hello@moboudra.com"
|
|
},
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://github.com/getpaseo/paseo.git"
|
|
},
|
|
"workspaces": [
|
|
"packages/expo-two-way-audio",
|
|
"packages/highlight",
|
|
"packages/plugin",
|
|
"packages/protocol",
|
|
"packages/client",
|
|
"packages/server",
|
|
"packages/app",
|
|
"packages/relay",
|
|
"packages/website",
|
|
"packages/desktop",
|
|
"packages/cli"
|
|
],
|
|
"scripts": {
|
|
"dev": "npm run dev:server",
|
|
"dev:win": "powershell ./scripts/dev.ps1",
|
|
"dev:server": "cross-env PASEO_LISTEN=127.0.0.1:6768 ./scripts/dev-daemon.sh",
|
|
"dev:server:watch": "concurrently --kill-others --names protocol,client,server --prefix-colors yellow,blue,cyan \"npm run watch:protocol\" \"npm run watch:client\" \"npm run dev:server:raw\"",
|
|
"dev:server:raw": "npm run dev --workspace=@getpaseo/server",
|
|
"dev:app": "cross-env PASEO_LISTEN=127.0.0.1:6768 EXPO_PORT=8081 ./scripts/dev-app.sh",
|
|
"test:e2e:mobile": "./scripts/test-mobile-agent-device.sh",
|
|
"dev:website": "npm run dev --workspace=@getpaseo/website",
|
|
"postinstall": "node scripts/postinstall-patches.mjs",
|
|
"prepare": "lefthook install --force",
|
|
"build": "npm run build --workspaces --if-present",
|
|
"build:highlight": "npm run build --workspace=@getpaseo/highlight",
|
|
"build:highlight:clean": "npm run build:clean --workspace=@getpaseo/highlight",
|
|
"build:plugin": "npm run build --workspace=@paseo/plugin",
|
|
"build:plugin:clean": "npm run build:clean --workspace=@paseo/plugin",
|
|
"build:relay": "npm run build --workspace=@getpaseo/relay",
|
|
"build:relay:clean": "npm run build:clean --workspace=@getpaseo/relay",
|
|
"build:protocol": "npm run build --workspace=@getpaseo/protocol",
|
|
"build:protocol:clean": "npm run build:clean --workspace=@getpaseo/protocol",
|
|
"build:client": "npm run build --workspace=@getpaseo/client",
|
|
"build:client:clean": "npm run build:protocol:clean && npm run build:clean --workspace=@getpaseo/client",
|
|
"build:server-deps": "npm run build:client && concurrently --kill-others-on-fail --names highlight,plugin,relay --prefix-colors yellow,green,blue \"npm run build:highlight\" \"npm run build:plugin\" \"npm run build:relay\"",
|
|
"build:server-deps:clean": "npm run build:client:clean && npm run build:highlight:clean && npm run build:plugin:clean && npm run build:relay:clean",
|
|
"build:server": "npm run build:server-deps && npm run build --workspace=@getpaseo/server && npm run build --workspace=@getpaseo/cli",
|
|
"build:server:clean": "npm run build:server-deps:clean && npm run build:clean --workspace=@getpaseo/server && npm run build:clean --workspace=@getpaseo/cli",
|
|
"build:daemon-web-ui": "node scripts/build-daemon-web-ui.mjs",
|
|
"build:app-deps": "npm run build:highlight && npm run build:client && npm run build:plugin && npm run build --workspace=@getpaseo/expo-two-way-audio",
|
|
"build:app-deps:clean": "npm run build:highlight:clean && npm run build:client:clean && npm run build:plugin:clean && npm run build --workspace=@getpaseo/expo-two-way-audio",
|
|
"watch:protocol": "npm run watch --workspace=@getpaseo/protocol",
|
|
"watch:client": "tsc -p packages/client/tsconfig.json --watch --preserveWatchOutput",
|
|
"typecheck": "npm run typecheck --workspaces --if-present",
|
|
"typecheck:server": "npm run typecheck --workspace=@getpaseo/relay && npm run typecheck --workspace=@getpaseo/protocol && npm run typecheck --workspace=@getpaseo/client && npm run typecheck --workspace=@getpaseo/server && npm run typecheck --workspace=@getpaseo/cli",
|
|
"test": "npm run test --workspaces --if-present",
|
|
"format": "oxfmt .",
|
|
"format:files": "oxfmt",
|
|
"format:check": "oxfmt --check .",
|
|
"format:check:files": "oxfmt --check",
|
|
"lint": "oxlint",
|
|
"lint:fix": "oxlint --fix",
|
|
"knip": "knip",
|
|
"acp:version-drift": "node scripts/check-acp-catalog-version-drift.mjs",
|
|
"acp:version-drift:check": "node scripts/check-acp-catalog-version-drift.mjs --fail-on-drift",
|
|
"acp:version-drift:update": "node scripts/check-acp-catalog-version-drift.mjs --update",
|
|
"start": "npm run start --workspace=@getpaseo/server",
|
|
"android": "npm run android --workspace=@getpaseo/app",
|
|
"android:development": "npm run android:development --workspace=@getpaseo/app",
|
|
"android:production": "npm run android:production --workspace=@getpaseo/app",
|
|
"android:release": "npm run android:production --workspace=@getpaseo/app",
|
|
"android:clear": "npm run android:clear --workspace=@getpaseo/app",
|
|
"android:clean": "npm run android:clean --workspace=@getpaseo/app",
|
|
"ios": "npm run ios --workspace=@getpaseo/app",
|
|
"web": "npm run web --workspace=@getpaseo/app",
|
|
"dev:desktop": "cross-env PASEO_LISTEN=127.0.0.1:6768 npm run dev --workspace=@getpaseo/desktop",
|
|
"dev:win:desktop": "npm run dev:win --workspace=@getpaseo/desktop",
|
|
"build:desktop": "npm run build:app-deps:clean && cd packages/app && cross-env PASEO_WEB_PLATFORM=electron npx expo export --platform web && cd ../.. && npm run build --workspace=@getpaseo/desktop --",
|
|
"db:query": "npm run db:query --workspace=@getpaseo/server --",
|
|
"cli": "./scripts/dev-home.sh npx tsx packages/cli/src/index.js",
|
|
"version": "npm run version:sync-internal && npm run release:prepare && git add -A",
|
|
"version:sync-internal": "node scripts/sync-workspace-versions.mjs",
|
|
"release:prepare": "npm install --workspaces --include-workspace-root",
|
|
"version:all:patch": "node scripts/set-release-version.mjs --mode patch",
|
|
"version:all:minor": "node scripts/set-release-version.mjs --mode minor",
|
|
"version:all:major": "node scripts/set-release-version.mjs --mode major",
|
|
"version:all:beta:patch": "node scripts/set-release-version.mjs --mode beta-patch",
|
|
"version:all:beta:minor": "node scripts/set-release-version.mjs --mode beta-minor",
|
|
"version:all:beta:major": "node scripts/set-release-version.mjs --mode beta-major",
|
|
"version:all:beta:next": "node scripts/set-release-version.mjs --mode beta-next",
|
|
"version:all:promote": "node scripts/set-release-version.mjs --mode promote",
|
|
"release:check": "npm run release:prepare && npm run typecheck --workspace=@getpaseo/highlight && npm run typecheck --workspace=@getpaseo/relay && npm run typecheck --workspace=@getpaseo/protocol && npm run build:client:clean && npm run typecheck --workspace=@getpaseo/client && npm run build:server:clean && npm run typecheck --workspace=@getpaseo/server && npm run typecheck --workspace=@getpaseo/cli && npm pack --dry-run --workspace=@getpaseo/highlight && npm pack --dry-run --workspace=@getpaseo/relay && npm pack --dry-run --workspace=@getpaseo/protocol && npm pack --dry-run --workspace=@getpaseo/client && npm pack --dry-run --workspace=@getpaseo/server && npm pack --dry-run --workspace=@getpaseo/cli",
|
|
"release:publish:dry-run": "npm publish --dry-run --workspace=@getpaseo/highlight --access public && npm publish --dry-run --workspace=@getpaseo/relay --access public && npm publish --dry-run --workspace=@getpaseo/protocol --access public && npm publish --dry-run --workspace=@getpaseo/client --access public && npm publish --dry-run --workspace=@getpaseo/server --access public && npm publish --dry-run --workspace=@getpaseo/cli --access public",
|
|
"release:publish:beta:dry-run": "npm publish --dry-run --workspace=@getpaseo/highlight --access public --tag beta && npm publish --dry-run --workspace=@getpaseo/relay --access public --tag beta && npm publish --dry-run --workspace=@getpaseo/protocol --access public --tag beta && npm publish --dry-run --workspace=@getpaseo/client --access public --tag beta && npm publish --dry-run --workspace=@getpaseo/server --access public --tag beta && npm publish --dry-run --workspace=@getpaseo/cli --access public --tag beta",
|
|
"release:publish": "npm publish --workspace=@getpaseo/highlight --access public && npm publish --workspace=@getpaseo/relay --access public && npm publish --workspace=@getpaseo/protocol --access public && npm publish --workspace=@getpaseo/client --access public && npm publish --workspace=@getpaseo/server --access public && npm publish --workspace=@getpaseo/cli --access public",
|
|
"release:publish:beta": "npm publish --workspace=@getpaseo/highlight --access public --tag beta && npm publish --workspace=@getpaseo/relay --access public --tag beta && npm publish --workspace=@getpaseo/protocol --access public --tag beta && npm publish --workspace=@getpaseo/client --access public --tag beta && npm publish --workspace=@getpaseo/server --access public --tag beta && npm publish --workspace=@getpaseo/cli --access public --tag beta",
|
|
"release:push": "node scripts/push-current-release-tag.mjs",
|
|
"release:beta:patch": "npm run release:check && npm run version:all:beta:patch && npm run release:publish:beta && npm run release:push",
|
|
"release:beta:minor": "npm run release:check && npm run version:all:beta:minor && npm run release:publish:beta && npm run release:push",
|
|
"release:beta:major": "npm run release:check && npm run version:all:beta:major && npm run release:publish:beta && npm run release:push",
|
|
"release:beta:next": "npm run release:check && npm run version:all:beta:next && npm run release:publish:beta && npm run release:push",
|
|
"release:promote": "npm run release:check && npm run version:all:promote && npm run release:publish && npm run release:push",
|
|
"release:patch": "npm run release:check && npm run version:all:patch && npm run release:publish && npm run release:push",
|
|
"release:minor": "npm run release:check && npm run version:all:minor && npm run release:publish && npm run release:push",
|
|
"release:major": "npm run release:check && npm run version:all:major && npm run release:publish && npm run release:push"
|
|
},
|
|
"devDependencies": {
|
|
"@types/ws": "^8.5.14",
|
|
"@typescript/native-preview": "7.0.0-dev.20260423.1",
|
|
"@vercel/nft": "^1.5.0",
|
|
"concurrently": "^9.2.1",
|
|
"cross-env": "^10.1.0",
|
|
"get-port-cli": "^3.0.0",
|
|
"js-yaml": "^4.1.1",
|
|
"knip": "^5.82.1",
|
|
"lefthook": "^2.1.6",
|
|
"oxfmt": "0.46.0",
|
|
"oxlint": "1.61.0",
|
|
"oxlint-tsgolint": "^0.22.1",
|
|
"patch-package": "^8.0.1",
|
|
"playwright": "^1.56.1",
|
|
"typescript": "^5.9.3",
|
|
"ws": "^8.20.0"
|
|
},
|
|
"overrides": {
|
|
"@codemirror/language": "6.12.4",
|
|
"@codemirror/view": "6.43.6",
|
|
"lightningcss": "1.30.1",
|
|
"react": "19.1.0",
|
|
"react-dom": "19.1.0",
|
|
"react-native-reanimated": "4.3.1",
|
|
"react-native-worklets": "0.8.3"
|
|
}
|
|
}
|