mirror of
https://github.com/getpaseo/paseo.git
synced 2026-10-31 21:52:54 +00:00
* fix(server): forward a created agent's current state, not its pre-prompt copy create_agent_request forwarded the snapshot createAgent returned when registration finished, after the initial prompt had already published the agent as running. Subscribers received that idle copy last, with an older updatedAt, and providers that report nothing until the turn ends left the agent listed as idle for the whole turn. Forward the agent manager's current state instead. Closes #8022 * test(server): drain agent persistence before fixture cleanup --------- Co-authored-by: luke <luopeihuan@gmail.com> Co-authored-by: paseo-bot[bot] <266920839+paseo-bot[bot]@users.noreply.github.com>
170 lines
9.0 KiB
JSON
170 lines
9.0 KiB
JSON
{
|
|
"name": "@getpaseo/server",
|
|
"version": "0.14.0",
|
|
"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"
|
|
},
|
|
"./daemon-control": {
|
|
"types": "./dist/server/server/daemon-instance.d.ts",
|
|
"source": "./src/server/daemon-instance.ts",
|
|
"default": "./dist/server/server/daemon-instance.js"
|
|
},
|
|
"./configuration": {
|
|
"types": "./dist/server/server/config.d.ts",
|
|
"source": "./src/server/config.ts",
|
|
"default": "./dist/server/server/config.js"
|
|
},
|
|
"./process": {
|
|
"types": "./dist/server/utils/spawn.d.ts",
|
|
"source": "./src/utils/spawn.ts",
|
|
"default": "./dist/server/utils/spawn.js"
|
|
},
|
|
"./auth": {
|
|
"types": "./dist/server/server/auth.d.ts",
|
|
"source": "./src/server/auth.ts",
|
|
"default": "./dist/server/server/auth.js"
|
|
},
|
|
"./pairing": {
|
|
"types": "./dist/server/server/pairing-offer.d.ts",
|
|
"source": "./src/server/pairing-offer.ts",
|
|
"default": "./dist/server/server/pairing-offer.js"
|
|
},
|
|
"./agent-activity": {
|
|
"types": "./dist/server/server/agent/activity-curator.d.ts",
|
|
"source": "./src/server/agent/activity-curator.ts",
|
|
"default": "./dist/server/server/agent/activity-curator.js"
|
|
},
|
|
"./agent-response": {
|
|
"types": "./dist/server/server/agent/agent-response-loop.d.ts",
|
|
"source": "./src/server/agent/agent-response-loop.ts",
|
|
"default": "./dist/server/server/agent/agent-response-loop.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 scripts/build-terminal-worker.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}); fs.rmSync('dist/server/builtin-plugins',{recursive:true,force:true}); fs.cpSync('../../plugins','dist/server/builtin-plugins',{recursive:true,filter:(source)=>!source.split(require('node:path').sep).some((segment)=>segment==='node_modules'||segment==='test')&&!/\\.(test|spec)\\.[cm]?[jt]sx?$/.test(source)&&!source.endsWith('.tsbuildinfo')});\"",
|
|
"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",
|
|
"analyze:observer-metrics": "tsx scripts/analyze-observer-metrics.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/git-filename-diffs.e2e.test.ts src/server/daemon-e2e/checkout-diff-content.e2e.test.ts src/server/daemon-e2e/filesystem.e2e.test.ts src/server/daemon-e2e/file-download.e2e.test.ts src/server/daemon-e2e/cli-logs-follow.e2e.test.ts src/server/creation/creation.e2e.test.ts src/server/daemon-e2e/creation-status.e2e.test.ts src/server/daemon-e2e/terminal-workspace-sdk.e2e.test.ts src/server/daemon-e2e/terminal-worker-lifecycle.e2e.test.ts src/server/workspace-create-worktree-source.e2e.test.ts src/server/daemon-e2e/models.e2e.test.ts src/server/daemon-e2e/live-preferences.e2e.test.ts src/server/daemon-e2e/oversized-message.e2e.test.ts src/server/agent/model-catalog.e2e.test.ts src/server/plugins/plugin-paseo-api.e2e.test.ts src/server/plugins/usage-sources.e2e.test.ts src/server/plugins/lifecycle.e2e.test.ts src/server/connected-hosts/hosts.e2e.test.ts src/server/owned-subscriptions.e2e.test.ts && vitest run --maxWorkers=1 src/server/agent/providers/omp/history.e2e.test.ts src/server/daemon-e2e/git-operations.e2e.test.ts src/server/session.create-agent-worktree-autoarchive.e2e.test.ts src/server/agent/providers/opencode-bridge.local.e2e.test.ts src/server/daemon-e2e/relay-transport.e2e.test.ts -t \"merges into|creates a worktree and auto-archives both|versioned runtime|oversized attachments|connected hosts|password-protected daemon refuses|replays selected OMP history\"",
|
|
"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.14.0",
|
|
"@getpaseo/highlight": "0.14.0",
|
|
"@getpaseo/plugin": "0.14.0",
|
|
"@getpaseo/protocol": "0.14.0",
|
|
"@getpaseo/relay": "0.14.0",
|
|
"@isaacs/ttlcache": "^2.1.4",
|
|
"@modelcontextprotocol/sdk": "1.29.0",
|
|
"@opencode-ai/sdk": "1.14.46",
|
|
"@opencode/client": "2.0.10",
|
|
"@xterm/addon-serialize": "0.14.0",
|
|
"@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",
|
|
"https-proxy-agent": "^7.0.6",
|
|
"lru-cache": "^11.5.1",
|
|
"markdown-it": "^10.0.0",
|
|
"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",
|
|
"semver": "^7.8.5",
|
|
"sherpa-onnx-node": "1.12.28",
|
|
"strip-ansi": "^7.1.2",
|
|
"tree-kill": "^1.2.2",
|
|
"typescript": "^5.9.3",
|
|
"undici": "^7.24.8",
|
|
"uuid": "^9.0.1",
|
|
"which": "^5.0.0",
|
|
"ws": "^8.14.2",
|
|
"yaml": "2.9.1",
|
|
"zod": "^4.4.3"
|
|
},
|
|
"devDependencies": {
|
|
"@playwright/test": "^1.56.1",
|
|
"@types/express": "^4.17.20",
|
|
"@types/markdown-it": "^14.2.0",
|
|
"@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",
|
|
"vitest": "^4.1.6"
|
|
},
|
|
"overrides": {
|
|
"lightningcss": "1.30.1"
|
|
}
|
|
}
|