mirror of
https://github.com/getpaseo/paseo.git
synced 2026-10-23 17:52:49 +00:00
* feat(terminals): expose workspace ownership through the SDK and CLI Directory-based terminal creation selected the oldest workspace sharing that path. Expose explicit workspace ownership in the shared public API and CLI, retain ownership and process directories in listings, and acknowledge terminal deletion after teardown. * fix(file-observer): preserve nested shallow reconciliation scopes A parent directory scan does not visit its descendants. Collapsing change scopes discarded nested scans and left coalesced native deletions unseen until a full audit. * test(terminals): extract output waits from end-to-end scenarios
126 lines
6.0 KiB
JSON
126 lines
6.0 KiB
JSON
{
|
|
"name": "@getpaseo/server",
|
|
"version": "0.7.2",
|
|
"description": "Paseo backend server",
|
|
"files": [
|
|
"dist/server",
|
|
"dist/src",
|
|
"dist/scripts",
|
|
"!dist/**/*.map",
|
|
"README.md",
|
|
".env.example"
|
|
],
|
|
"type": "module",
|
|
"types": "./dist/server/server/exports.d.ts",
|
|
"exports": {
|
|
".": {
|
|
"types": "./dist/server/server/exports.d.ts",
|
|
"source": "./src/server/exports.ts",
|
|
"default": "./dist/server/server/exports.js"
|
|
},
|
|
"./utils/tool-call-parsers": {
|
|
"types": "./dist/server/utils/tool-call-parsers.d.ts",
|
|
"source": "./src/utils/tool-call-parsers.ts",
|
|
"default": "./dist/server/utils/tool-call-parsers.js"
|
|
},
|
|
"./agent-hooks": {
|
|
"types": "./dist/server/terminal/agent-hooks/provider-registry.d.ts",
|
|
"source": "./src/terminal/agent-hooks/provider-registry.ts",
|
|
"default": "./dist/server/terminal/agent-hooks/provider-registry.js"
|
|
}
|
|
},
|
|
"publishConfig": {
|
|
"access": "public"
|
|
},
|
|
"scripts": {
|
|
"dev": "cross-env PASEO_NODE_ENV=development node --import tsx scripts/dev-runner.ts",
|
|
"dev:tsx": "cross-env PASEO_NODE_ENV=development tsx watch --ignore '**/*.timestamp-*' scripts/dev-runner.ts",
|
|
"clean": "node ../../scripts/clean-package-dist.mjs",
|
|
"build": "npm run build:lib && npm run build:scripts",
|
|
"build:clean": "npm run clean && npm run build",
|
|
"build:lib": "tsc -p tsconfig.server.json --incremental false && node scripts/build-opencode-bridge-plugin.mjs && node -e \"const fs=require('node:fs'); fs.mkdirSync('dist/server/server/speech/providers/local/sherpa/assets',{recursive:true}); fs.copyFileSync('src/server/speech/providers/local/sherpa/assets/silero_vad.onnx','dist/server/server/speech/providers/local/sherpa/assets/silero_vad.onnx'); fs.cpSync('src/terminal/shell-integration','dist/server/terminal/shell-integration',{recursive:true}); fs.cpSync('src/terminal/shell-integration','dist/src/terminal/shell-integration',{recursive:true}); fs.copyFileSync('src/terminal/terminal-ts-loader.mjs','dist/server/terminal/terminal-ts-loader.mjs'); fs.rmSync('dist/server/skills',{recursive:true,force:true}); fs.cpSync('../../skills','dist/server/skills',{recursive:true});\"",
|
|
"build:scripts": "tsc -p tsconfig.scripts.json --incremental false && node -e \"const fs=require('node:fs'); fs.mkdirSync('dist/scripts',{recursive:true}); fs.copyFileSync('scripts/mcp-stdio-socket-bridge-cli.mjs','dist/scripts/mcp-stdio-socket-bridge-cli.mjs');\"",
|
|
"prepack": "npm run build:clean && npm --prefix ../.. run build:daemon-web-ui",
|
|
"start": "node dist/scripts/supervisor-entrypoint.js",
|
|
"typecheck": "tsgo -p tsconfig.server.typecheck.json --noEmit",
|
|
"generate:config-schema": "tsx scripts/generate-config-schema.ts",
|
|
"measure:agent-tools": "tsx scripts/measure-agent-tools-context.ts",
|
|
"measure:git-observation": "tsx scripts/measure-git-observation.ts",
|
|
"measure:file-observer": "tsx scripts/measure-file-observer.ts",
|
|
"repro:file-observer-teardown": "tsx scripts/reproduce-file-observer-teardown.ts",
|
|
"speech:models": "tsx scripts/list-speech-models.ts",
|
|
"speech:download": "tsx scripts/download-speech-models.ts",
|
|
"speech:transcribe:local": "tsx scripts/transcribe-local-wav.ts",
|
|
"test": "npm run test:unit && npm run test:integration",
|
|
"test:unit": "vitest run --fileParallelism --exclude \"**/*.e2e.test.ts\"",
|
|
"test:integration": "vitest run --maxWorkers=1 src/server/daemon-e2e/terminal-workspace-sdk.e2e.test.ts src/server/daemon-e2e/models.e2e.test.ts src/server/daemon-e2e/live-preferences.e2e.test.ts src/server/agent/model-catalog.e2e.test.ts && vitest run --maxWorkers=1 src/server/session.create-agent-worktree-autoarchive.e2e.test.ts -t \"creates a worktree and auto-archives both\"",
|
|
"test:hub-cli-contract": "vitest run --maxWorkers=1 src/server/hub/hub-cli-contract.test.ts",
|
|
"test:integration:all": "npm run test:e2e",
|
|
"test:integration:real": "vitest run real.e2e.test.ts",
|
|
"test:integration:local": "vitest run local.e2e.test.ts",
|
|
"test:watch": "vitest",
|
|
"test:ui": "vitest --ui",
|
|
"test:e2e": "vitest run e2e.test.ts --maxWorkers=1 --exclude \"**/*.real.e2e.test.ts\" --exclude \"**/*.local.e2e.test.ts\"",
|
|
"test:e2e:all": "vitest run e2e.test.ts --maxWorkers=1",
|
|
"test:e2e:real": "npm run test:integration:real",
|
|
"test:e2e:local": "npm run test:integration:local",
|
|
"test:e2e:relay:live": "cross-env RUN_LIVE_RELAY_E2E=1 vitest run src/server/daemon-e2e/live-relay.real.e2e.test.ts --maxWorkers=1",
|
|
"test:e2e:ui": "vitest --ui e2e.test.ts"
|
|
},
|
|
"dependencies": {
|
|
"@agentclientprotocol/sdk": "^0.17.1",
|
|
"@anthropic-ai/claude-agent-sdk": "0.3.246",
|
|
"@anthropic-ai/sdk": "^0.104.2",
|
|
"@getpaseo/client": "0.7.2",
|
|
"@getpaseo/highlight": "0.7.2",
|
|
"@getpaseo/plugin": "0.7.2",
|
|
"@getpaseo/protocol": "0.7.2",
|
|
"@getpaseo/relay": "0.7.2",
|
|
"@isaacs/ttlcache": "^2.1.4",
|
|
"@modelcontextprotocol/sdk": "1.29.0",
|
|
"@opencode-ai/sdk": "1.14.46",
|
|
"@xterm/headless": "^6.0.0",
|
|
"ai": "5.0.78",
|
|
"ajv": "^8.20.0",
|
|
"bcryptjs": "^3.0.3",
|
|
"dotenv": "^17.2.3",
|
|
"esbuild": "^0.25.12",
|
|
"express": "^4.18.2",
|
|
"fast-deep-equal": "^3.1.3",
|
|
"lru-cache": "^11.5.1",
|
|
"mnemonic-id": "^3.2.7",
|
|
"node-pty": "1.2.0-beta.15",
|
|
"openai": "^6.44.0",
|
|
"p-limit": "^7.3.0",
|
|
"p-memoize": "^8.0.0",
|
|
"p-throttle": "^8.1.0",
|
|
"pino": "^10.2.0",
|
|
"pino-pretty": "^13.1.3",
|
|
"qrcode": "^1.5.4",
|
|
"rotating-file-stream": "^3.2.9",
|
|
"sherpa-onnx-node": "1.12.28",
|
|
"strip-ansi": "^7.1.2",
|
|
"tree-kill": "^1.2.2",
|
|
"uuid": "^9.0.1",
|
|
"which": "^5.0.0",
|
|
"ws": "^8.14.2",
|
|
"zod": "^4.4.3"
|
|
},
|
|
"devDependencies": {
|
|
"@playwright/test": "^1.56.1",
|
|
"@types/express": "^4.17.20",
|
|
"@types/node": "^20.9.0",
|
|
"@types/qrcode": "^1.5.6",
|
|
"@types/uuid": "^9.0.7",
|
|
"@types/ws": "^8.5.8",
|
|
"@vitest/ui": "^4.1.6",
|
|
"cross-env": "^10.1.0",
|
|
"tsx": "^4.6.0",
|
|
"typescript": "^5.2.2",
|
|
"vitest": "^4.1.6"
|
|
},
|
|
"overrides": {
|
|
"lightningcss": "1.30.1"
|
|
}
|
|
}
|