* Improve mobile terminal typing and selection * Address mobile terminal review feedback * Remove dead native terminal input branch * Replay bracketed paste in terminal preamble * Stop per-key terminal resize claims * Stabilize terminal resize browser test * Use tracked terminal mode for native paste * Restore terminal toolbar focus handling * Adapt native terminal to active visibility state * Stabilize native mobile terminal interactions * Add native terminal fallback boundary * test(app): expect explicit terminal resize reclaim * fix(app): stabilize terminal buffer coordinates * fix(app): restrict terminal resize ownership * fix(terminal): gate restored input modes * fix(app): recover stalled terminal WebViews * chore(app): remove obsolete terminal harnesses * fix(app): make terminal resize claims explicit * test(app): stabilize native terminal device flows * test(app): track absolute scrollback coordinates * fix(app): isolate terminal WebView streams * fix(terminal): arbitrate size ownership across clients The daemon now distinguishes explicit ownership claims from passive geometry updates. This keeps the active client authoritative while allowing its split, viewport, and keyboard changes to resize the PTY without idle clients stealing it. * test(server): make worker resize assertion portable Query the worker's authoritative terminal snapshot instead of invoking a Unix-only shell command, so the resize regression exercises the same boundary on Windows and Unix.
145 lines
10 KiB
JSON
145 lines
10 KiB
JSON
{
|
|
"name": "paseo",
|
|
"version": "0.2.5",
|
|
"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/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: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,relay,client --prefix-colors yellow,blue,cyan \"npm run build:highlight\" \"npm run build:relay\" \"npm run build:client\"",
|
|
"build:server-deps:clean": "npm run build:highlight: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:client && 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 --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"
|
|
}
|
|
}
|