diff --git a/package.json b/package.json index 0ec95f6..a90ee83 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,9 @@ }, "scripts": { "start": "PROMPTX_ENV=development node src/bin/promptx.js", + "dacp:start": "node src/dacp/dacp-promptx-service/server.js", + "dacp:dev": "node src/dacp/dacp-promptx-service/server.js", + "dacp:test": "jest src/dacp/", "test": "jest", "test:unit": "jest --selectProjects unit", "test:integration": "jest --selectProjects integration", @@ -50,9 +53,11 @@ "dependencies": { "@modelcontextprotocol/sdk": "^1.12.1", "@reaxi/node-detect-runtime": "^0.1.0", + "body-parser": "^1.20.2", "boxen": "^5.1.2", "chalk": "^4.1.2", "commander": "^11.0.0", + "cors": "^2.8.5", "env-paths": "2.2.1", "express": "^5.1.0", "find-monorepo-root": "^1.0.3", @@ -61,6 +66,8 @@ "fs-extra": "^11.1.0", "glob": "^10.3.0", "inquirer": "^8.2.4", + "joi": "^17.11.0", + "nodemailer": "^7.0.3", "ora": "^5.4.1", "pkg-dir": "^8.0.0", "resolve": "^1.22.10", diff --git a/src/dacp/dacp-promptx-service/package.json b/src/dacp/dacp-promptx-service/package.json deleted file mode 100644 index fc6ae3b..0000000 --- a/src/dacp/dacp-promptx-service/package.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "dacp-promptx-service", - "version": "1.0.0", - "description": "Unified DACP service with multiple demo actions for PromptX", - "main": "server.js", - "scripts": { - "start": "node server.js", - "dev": "node server.js", - "test": "jest" - }, - "dependencies": { - "body-parser": "^1.20.2", - "cors": "^2.8.5", - "express": "^4.18.2", - "joi": "^17.11.0", - "nodemailer": "^7.0.3" - }, - "devDependencies": { - "jest": "^29.7.0", - "supertest": "^6.3.3" - } -} diff --git a/src/dacp/dacp-promptx-service/server.js b/src/dacp/dacp-promptx-service/server.js index c5742a0..35900b6 100644 --- a/src/dacp/dacp-promptx-service/server.js +++ b/src/dacp/dacp-promptx-service/server.js @@ -5,7 +5,7 @@ const fs = require('fs'); const path = require('path'); const app = express(); -const config = JSON.parse(fs.readFileSync('./dacp.config.json', 'utf8')); +const config = JSON.parse(fs.readFileSync(path.join(__dirname, 'dacp.config.json'), 'utf8')); const PORT = process.env.PORT || config.deployment.port || 3002; // Middleware diff --git a/src/lib/commands/MCPServerCommand.js b/src/lib/commands/MCPServerCommand.js index 292ae8e..36126cf 100644 --- a/src/lib/commands/MCPServerCommand.js +++ b/src/lib/commands/MCPServerCommand.js @@ -311,7 +311,7 @@ class MCPServerCommand { // 启动DACP服务作为子进程 // 注意:不能直接使用 'inherit',因为会干扰MCP的stdio通信 // 但我们需要看到DACP的启动信息 - this.dacpProcess = spawn('npm', ['start'], { + this.dacpProcess = spawn('node', ['server.js'], { cwd: dacpPath, stdio: ['ignore', 'pipe', 'pipe'], // stdin忽略, stdout和stderr都输出到pipe shell: true,