* feat(plugins): add local plugin surfaces and RPCs Keep plugin execution scoped to its daemon while allowing one local TypeScript entry point to contribute validated RPCs and native client surfaces. Paseo owns host selection, navigation chrome, and per-installation query caches. * feat(plugins): add Linear attachment source * fix(nix): refresh npm dependency hash * test(server): exclude internal sessions from Hub counts * test(server): distinguish Hub execution sessions * feat(plugins): make local plugins explicitly opt-in Keep plugin loading dormant until configuration enables it, and collect unsupported examples under one directory. * refactor(plugins): establish host boundaries * fix(nix): refresh plugin dependency hash * fix(plugins): complete packaging and startup rollback * feat(plugins): add managed local lifecycle Make trusted local plugins recoverable and authorable through daemon-owned lifecycle operations, host settings, and a capability-gated CLI. Reloads fully stop the previous plugin before starting new code, while generated projects provide strict TSX checking without changing runtime dependency ownership. * fix(nix): refresh plugin dependency hash
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": "concurrently --kill-others-on-fail --names highlight,plugin,relay,client --prefix-colors yellow,green,blue,cyan \"npm run build:highlight\" \"npm run build:plugin\" \"npm run build:relay\" \"npm run build:client\"",
|
|
"build:server-deps:clean": "npm run build:highlight:clean && npm run build:plugin:clean && npm run build:relay:clean && npm run build:client: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:plugin && npm run build:client && npm run build --workspace=@getpaseo/expo-two-way-audio",
|
|
"build:app-deps:clean": "npm run build:highlight:clean && npm run build:plugin:clean && npm run build:client: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"
|
|
}
|
|
}
|