ace-tool 0.1.5 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -6,18 +6,18 @@
6
6
 
7
7
  ## English
8
8
 
9
- MCP server for codebase indexing and semantic search.
9
+ MCP server for codebase indexing, semantic search, and AI prompt enhancement.
10
10
 
11
11
  ### Installation
12
12
 
13
13
  ```bash
14
- npm install -g ace-tool
14
+ npm install -g ace-tool@latest
15
15
  ```
16
16
 
17
17
  Or use directly with npx:
18
18
 
19
19
  ```bash
20
- npx ace-tool --base-url <URL> --token <TOKEN>
20
+ npx -y ace-tool@latest --base-url <URL> --token <TOKEN>
21
21
  ```
22
22
 
23
23
  ### Configuration
@@ -66,6 +66,35 @@ Search for relevant code context based on a natural language query.
66
66
  - "Find the initialization flow of message queue consumers during startup"
67
67
  - "How is the database connected to the application?"
68
68
 
69
+ #### enhance_prompt
70
+
71
+ Enhances user requirements by combining codebase context and conversation history to generate clearer, more specific, and actionable prompts. Opens a Web UI for user review and confirmation.
72
+
73
+ **Parameters:**
74
+
75
+ - `project_root_path` (optional): Absolute path to the project root directory (defaults to current working directory)
76
+ - `prompt` (required): The original prompt to enhance
77
+ - `conversation_history` (required): Recent conversation history (5-10 rounds) to help understand user intent
78
+
79
+ **Trigger Methods:**
80
+
81
+ 1. **Explicit markers** (recommended): Add `-enhance`, `-enhancer`, `-Enhance`, or `-Enhancer` to your message
82
+ - Example: "新加一个登录页面-Enhancer"
83
+ - Example: "Add login feature -enhance"
84
+
85
+ 2. **Explicit request**: Ask to "enhance my prompt" or "use enhance_prompt tool"
86
+
87
+ **Features:**
88
+
89
+ - Automatic language detection (Chinese input → Chinese output, English input → English output)
90
+ - Interactive Web UI with 4 actions:
91
+ - **Send Enhanced**: Use the enhanced version
92
+ - **Use Original**: Continue with original prompt
93
+ - **Continue Enhancing**: Iteratively refine the prompt
94
+ - **End Conversation**: Stop the AI conversation
95
+ - Automatic tool name mapping (converts `codebase-retrieval` to `search_context`)
96
+ - 8-minute timeout with automatic fallback to original prompt
97
+
69
98
  ### Project Data
70
99
 
71
100
  ace-tool stores index data in a `.ace-tool` directory within each project:
@@ -117,18 +146,18 @@ MIT
117
146
 
118
147
  ## 中文
119
148
 
120
- 用于代码库索引和语义搜索的 MCP 服务器。
149
+ 用于代码库索引、语义搜索和 AI prompt 增强的 MCP 服务器。
121
150
 
122
151
  ### 安装
123
152
 
124
153
  ```bash
125
- npm install -g ace-tool
154
+ npm install -g ace-tool@latest
126
155
  ```
127
156
 
128
157
  或直接使用 npx:
129
158
 
130
159
  ```bash
131
- npx ace-tool --base-url <URL> --token <TOKEN>
160
+ npx -y ace-tool@latest --base-url <URL> --token <TOKEN>
132
161
  ```
133
162
 
134
163
  ### 配置
@@ -177,6 +206,35 @@ npx ace-tool --base-url <URL> --token <TOKEN>
177
206
  - "查找启动时消息队列消费者的初始化流程"
178
207
  - "数据库是如何连接到应用程序的?"
179
208
 
209
+ #### enhance_prompt
210
+
211
+ 通过结合代码库上下文和对话历史来增强用户需求,生成更清晰、更具体、更可执行的 prompt。打开 Web UI 供用户审查和确认。
212
+
213
+ **参数:**
214
+
215
+ - `project_root_path`(可选):项目根目录的绝对路径(默认使用当前工作目录)
216
+ - `prompt`(必填):需要增强的原始 prompt
217
+ - `conversation_history`(必填):最近的对话历史(5-10 轮对话),帮助理解用户意图
218
+
219
+ **触发方式:**
220
+
221
+ 1. **显式标记**(推荐):在消息中添加 `-enhance`、`-enhancer`、`-Enhance` 或 `-Enhancer`
222
+ - 示例:"新加一个登录页面-Enhancer"
223
+ - 示例:"Add login feature -enhance"
224
+
225
+ 2. **显式请求**:要求"增强我的 prompt"或"使用 enhance_prompt 工具"
226
+
227
+ **功能特性:**
228
+
229
+ - 自动语言检测(中文输入 → 中文输出,英文输入 → 英文输出)
230
+ - 交互式 Web UI,提供 4 个操作:
231
+ - **发送增强**:使用增强后的版本
232
+ - **使用原始**:继续使用原始 prompt
233
+ - **继续增强**:迭代式优化 prompt
234
+ - **结束对话**:停止 AI 对话
235
+ - 自动工具名称映射(将 `codebase-retrieval` 转换为 `search_context`)
236
+ - 8 分钟超时,自动回退到原始 prompt
237
+
180
238
  ### 项目数据
181
239
 
182
240
  ace-tool 在每个项目的 `.ace-tool` 目录中存储索引数据:
package/dist/config.d.ts CHANGED
@@ -31,4 +31,20 @@ export declare function initConfig(): Config;
31
31
  * 获取配置
32
32
  */
33
33
  export declare function getConfig(): Config;
34
+ /**
35
+ * 获取文本扩展名集合
36
+ */
37
+ export declare function getTextExtensions(): Set<string>;
38
+ /**
39
+ * 获取排除模式
40
+ */
41
+ export declare function getExcludePatterns(): string[];
42
+ /**
43
+ * 获取批次大小
44
+ */
45
+ export declare function getBatchSize(): number;
46
+ /**
47
+ * 获取每个 blob 的最大行数
48
+ */
49
+ export declare function getMaxLinesPerBlob(): number;
34
50
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAkCnE;AA2GD;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CA6BnC;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAKlC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAkCnE;AA2GD;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAmCnC;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAKlC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,GAAG,CAAC,MAAM,CAAC,CAE/C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAE7C;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C"}
package/dist/config.js CHANGED
@@ -154,11 +154,17 @@ export function initConfig() {
154
154
  if (!args.token) {
155
155
  throw new Error('Missing required argument: --token');
156
156
  }
157
- // 确保 baseUrl 包含协议前缀
157
+ // 确保 baseUrl 使用 https:// 协议
158
158
  let baseUrl = args.baseUrl;
159
159
  if (!baseUrl.startsWith('http://') && !baseUrl.startsWith('https://')) {
160
160
  baseUrl = `https://${baseUrl}`;
161
161
  }
162
+ else if (baseUrl.startsWith('http://')) {
163
+ // ACE 服务器只支持 HTTPS,自动转换
164
+ const originalUrl = baseUrl;
165
+ baseUrl = baseUrl.replace('http://', 'https://');
166
+ console.log(`🔐 已自动将 http:// 转换为 https:// (${originalUrl} → ${baseUrl})`);
167
+ }
162
168
  baseUrl = baseUrl.replace(/\/$/, ''); // 移除末尾斜杠
163
169
  config = {
164
170
  baseUrl,
@@ -180,4 +186,28 @@ export function getConfig() {
180
186
  }
181
187
  return config;
182
188
  }
189
+ /**
190
+ * 获取文本扩展名集合
191
+ */
192
+ export function getTextExtensions() {
193
+ return config?.textExtensions || DEFAULT_TEXT_EXTENSIONS;
194
+ }
195
+ /**
196
+ * 获取排除模式
197
+ */
198
+ export function getExcludePatterns() {
199
+ return config?.excludePatterns || DEFAULT_EXCLUDE_PATTERNS;
200
+ }
201
+ /**
202
+ * 获取批次大小
203
+ */
204
+ export function getBatchSize() {
205
+ return config?.batchSize || 10;
206
+ }
207
+ /**
208
+ * 获取每个 blob 的最大行数
209
+ */
210
+ export function getMaxLinesPerBlob() {
211
+ return config?.maxLinesPerBlob || 800;
212
+ }
183
213
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Enhancer Server - HTTP 服务器和 Session 管理
3
+ * 提供 Web UI 交互界面
4
+ */
5
+ /**
6
+ * Enhancer HTTP 服务器
7
+ */
8
+ export declare class EnhancerServer {
9
+ private server;
10
+ private port;
11
+ private sessions;
12
+ private readonly TIMEOUT_MS;
13
+ /**
14
+ * 启动 HTTP 服务器
15
+ */
16
+ start(): Promise<void>;
17
+ /**
18
+ * 获取服务器端口
19
+ */
20
+ getPort(): number;
21
+ /**
22
+ * 创建新的 Session
23
+ */
24
+ createSession(enhancedPrompt: string, originalPrompt: string, conversationHistory: string, blobNames: string[]): string;
25
+ /**
26
+ * 等待 Session 完成
27
+ */
28
+ waitForSession(sessionId: string): Promise<string>;
29
+ /**
30
+ * 处理 HTTP 请求
31
+ */
32
+ private handleRequest;
33
+ /**
34
+ * 返回 Web UI HTML
35
+ */
36
+ private serveEnhancerUI;
37
+ /**
38
+ * 获取 Session 数据
39
+ */
40
+ private getSessionData;
41
+ /**
42
+ * 处理用户提交
43
+ */
44
+ private handleSubmit;
45
+ /**
46
+ * 处理继续增强请求
47
+ */
48
+ private handleReEnhance;
49
+ private enhanceCallback;
50
+ /**
51
+ * 设置增强回调函数
52
+ */
53
+ setEnhanceCallback(callback: (prompt: string, history: string, blobs: string[]) => Promise<string>): void;
54
+ /**
55
+ * 停止服务器
56
+ */
57
+ stop(): Promise<void>;
58
+ }
59
+ //# sourceMappingURL=EnhancerServer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnhancerServer.d.ts","sourceRoot":"","sources":["../../src/enhancer/EnhancerServer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAuBH;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,QAAQ,CAAuC;IACvD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;IAE5C;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B5B;;OAEG;IACH,OAAO,IAAI,MAAM;IAIjB;;OAEG;IACH,aAAa,CACX,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,EACtB,mBAAmB,EAAE,MAAM,EAC3B,SAAS,EAAE,MAAM,EAAE,GAClB,MAAM;IAoCT;;OAEG;IACG,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBxD;;OAEG;IACH,OAAO,CAAC,aAAa;IAmCrB;;OAEG;IACH,OAAO,CAAC,eAAe;IAKvB;;OAEG;IACH,OAAO,CAAC,cAAc;IAyBtB;;OAEG;IACH,OAAO,CAAC,YAAY;IA+DpB;;OAEG;IACH,OAAO,CAAC,eAAe;IAiEvB,OAAO,CAAC,eAAe,CAAwF;IAE/G;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI;IAIzG;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAa5B"}
@@ -0,0 +1,306 @@
1
+ /**
2
+ * Enhancer Server - HTTP 服务器和 Session 管理
3
+ * 提供 Web UI 交互界面
4
+ */
5
+ import http from 'http';
6
+ import crypto from 'crypto';
7
+ import { ENHANCER_UI_HTML } from './templates.js';
8
+ import { sendMcpLog } from '../mcpLogger.js';
9
+ /**
10
+ * Enhancer HTTP 服务器
11
+ */
12
+ export class EnhancerServer {
13
+ server = null;
14
+ port = 3000;
15
+ sessions = new Map();
16
+ TIMEOUT_MS = 8 * 60 * 1000; // 8 分钟
17
+ /**
18
+ * 启动 HTTP 服务器
19
+ */
20
+ async start() {
21
+ if (this.server) {
22
+ return; // 已启动
23
+ }
24
+ this.server = http.createServer((req, res) => {
25
+ this.handleRequest(req, res);
26
+ });
27
+ await new Promise((resolve, reject) => {
28
+ this.server.listen(this.port, () => {
29
+ sendMcpLog('info', `🌐 Enhancer 服务器已启动: http://localhost:${this.port}`);
30
+ resolve();
31
+ }).on('error', (error) => {
32
+ if (error.code === 'EADDRINUSE') {
33
+ sendMcpLog('warning', `⚠️ 端口 ${this.port} 已被占用,尝试使用其他端口`);
34
+ this.port++;
35
+ this.server = null;
36
+ this.start().then(resolve).catch(reject);
37
+ }
38
+ else {
39
+ reject(error);
40
+ }
41
+ });
42
+ });
43
+ }
44
+ /**
45
+ * 获取服务器端口
46
+ */
47
+ getPort() {
48
+ return this.port;
49
+ }
50
+ /**
51
+ * 创建新的 Session
52
+ */
53
+ createSession(enhancedPrompt, originalPrompt, conversationHistory, blobNames) {
54
+ const sessionId = crypto.randomUUID();
55
+ const session = {
56
+ id: sessionId,
57
+ enhancedPrompt,
58
+ originalPrompt,
59
+ conversationHistory,
60
+ blobNames,
61
+ status: 'pending',
62
+ createdAt: Date.now(),
63
+ promise: null,
64
+ resolve: null,
65
+ reject: null,
66
+ };
67
+ // 创建 Promise 用于等待用户操作
68
+ session.promise = new Promise((resolve, reject) => {
69
+ session.resolve = resolve;
70
+ session.reject = reject;
71
+ // 8 分钟超时
72
+ setTimeout(() => {
73
+ if (session.status === 'pending') {
74
+ session.status = 'timeout';
75
+ this.sessions.delete(sessionId);
76
+ reject(new Error('User interaction timeout (8 minutes)'));
77
+ }
78
+ }, this.TIMEOUT_MS);
79
+ });
80
+ this.sessions.set(sessionId, session);
81
+ sendMcpLog('info', `📝 创建 Session: ${sessionId}`);
82
+ return sessionId;
83
+ }
84
+ /**
85
+ * 等待 Session 完成
86
+ */
87
+ async waitForSession(sessionId) {
88
+ const session = this.sessions.get(sessionId);
89
+ if (!session) {
90
+ throw new Error('Session not found');
91
+ }
92
+ if (!session.promise) {
93
+ throw new Error('Session promise not initialized');
94
+ }
95
+ try {
96
+ const result = await session.promise;
97
+ return result;
98
+ }
99
+ finally {
100
+ this.sessions.delete(sessionId);
101
+ }
102
+ }
103
+ /**
104
+ * 处理 HTTP 请求
105
+ */
106
+ handleRequest(req, res) {
107
+ try {
108
+ const url = new URL(req.url, `http://localhost:${this.port}`);
109
+ // 设置 CORS 头
110
+ res.setHeader('Access-Control-Allow-Origin', '*');
111
+ res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
112
+ res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
113
+ // 处理 OPTIONS 请求
114
+ if (req.method === 'OPTIONS') {
115
+ res.writeHead(200);
116
+ res.end();
117
+ return;
118
+ }
119
+ if (url.pathname === '/enhance' && req.method === 'GET') {
120
+ this.serveEnhancerUI(res);
121
+ }
122
+ else if (url.pathname === '/api/session' && req.method === 'GET') {
123
+ this.getSessionData(url.searchParams.get('session'), res);
124
+ }
125
+ else if (url.pathname === '/api/submit' && req.method === 'POST') {
126
+ this.handleSubmit(req, res);
127
+ }
128
+ else if (url.pathname === '/api/re-enhance' && req.method === 'POST') {
129
+ this.handleReEnhance(req, res);
130
+ }
131
+ else {
132
+ res.writeHead(404, { 'Content-Type': 'text/plain' });
133
+ res.end('Not Found');
134
+ }
135
+ }
136
+ catch (error) {
137
+ sendMcpLog('error', `❌ 请求处理错误: ${error}`);
138
+ res.writeHead(500, { 'Content-Type': 'text/plain' });
139
+ res.end('Internal Server Error');
140
+ }
141
+ }
142
+ /**
143
+ * 返回 Web UI HTML
144
+ */
145
+ serveEnhancerUI(res) {
146
+ res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
147
+ res.end(ENHANCER_UI_HTML);
148
+ }
149
+ /**
150
+ * 获取 Session 数据
151
+ */
152
+ getSessionData(sessionId, res) {
153
+ if (!sessionId) {
154
+ res.writeHead(400, { 'Content-Type': 'application/json' });
155
+ res.end(JSON.stringify({ error: 'Session ID is required' }));
156
+ return;
157
+ }
158
+ const session = this.sessions.get(sessionId);
159
+ if (!session) {
160
+ res.writeHead(404, { 'Content-Type': 'application/json' });
161
+ res.end(JSON.stringify({ error: 'Session not found' }));
162
+ return;
163
+ }
164
+ res.writeHead(200, { 'Content-Type': 'application/json' });
165
+ res.end(JSON.stringify({
166
+ enhancedPrompt: session.enhancedPrompt,
167
+ status: session.status,
168
+ createdAt: session.createdAt,
169
+ timeoutMs: this.TIMEOUT_MS,
170
+ }));
171
+ }
172
+ /**
173
+ * 处理用户提交
174
+ */
175
+ handleSubmit(req, res) {
176
+ let body = '';
177
+ req.on('data', (chunk) => {
178
+ body += chunk.toString();
179
+ });
180
+ req.on('end', () => {
181
+ try {
182
+ const { sessionId, content } = JSON.parse(body);
183
+ if (!sessionId) {
184
+ res.writeHead(400, { 'Content-Type': 'application/json' });
185
+ res.end(JSON.stringify({ error: 'Session ID is required' }));
186
+ return;
187
+ }
188
+ const session = this.sessions.get(sessionId);
189
+ if (!session) {
190
+ res.writeHead(404, { 'Content-Type': 'application/json' });
191
+ res.end(JSON.stringify({ error: 'Session not found' }));
192
+ return;
193
+ }
194
+ if (session.status !== 'pending') {
195
+ res.writeHead(400, { 'Content-Type': 'application/json' });
196
+ res.end(JSON.stringify({ error: 'Session already completed or timed out' }));
197
+ return;
198
+ }
199
+ // 标记为完成
200
+ session.status = 'completed';
201
+ // 处理特殊标记
202
+ if (content === '__USE_ORIGINAL__') {
203
+ sendMcpLog('info', `📝 用户选择使用原始 prompt`);
204
+ session.resolve(session.originalPrompt);
205
+ }
206
+ else if (content === '__END_CONVERSATION__') {
207
+ sendMcpLog('info', `🛑 用户选择结束对话`);
208
+ session.resolve('__END_CONVERSATION__');
209
+ }
210
+ else {
211
+ session.resolve(content);
212
+ }
213
+ sendMcpLog('info', `✅ Session ${sessionId} 已完成`);
214
+ res.writeHead(200, { 'Content-Type': 'application/json' });
215
+ res.end(JSON.stringify({ success: true }));
216
+ }
217
+ catch (error) {
218
+ sendMcpLog('error', `❌ 提交处理错误: ${error}`);
219
+ res.writeHead(400, { 'Content-Type': 'application/json' });
220
+ res.end(JSON.stringify({ error: 'Invalid request body' }));
221
+ }
222
+ });
223
+ req.on('error', (error) => {
224
+ sendMcpLog('error', `❌ 请求错误: ${error}`);
225
+ res.writeHead(500, { 'Content-Type': 'application/json' });
226
+ res.end(JSON.stringify({ error: 'Request error' }));
227
+ });
228
+ }
229
+ /**
230
+ * 处理继续增强请求
231
+ */
232
+ handleReEnhance(req, res) {
233
+ let body = '';
234
+ req.on('data', (chunk) => {
235
+ body += chunk.toString();
236
+ });
237
+ req.on('end', async () => {
238
+ try {
239
+ const { sessionId, currentPrompt } = JSON.parse(body);
240
+ if (!sessionId) {
241
+ res.writeHead(400, { 'Content-Type': 'application/json' });
242
+ res.end(JSON.stringify({ error: 'Session ID is required' }));
243
+ return;
244
+ }
245
+ const session = this.sessions.get(sessionId);
246
+ if (!session) {
247
+ res.writeHead(404, { 'Content-Type': 'application/json' });
248
+ res.end(JSON.stringify({ error: 'Session not found' }));
249
+ return;
250
+ }
251
+ // 调用增强逻辑(需要从 PromptEnhancer 传入)
252
+ if (!this.enhanceCallback) {
253
+ res.writeHead(500, { 'Content-Type': 'application/json' });
254
+ res.end(JSON.stringify({ error: 'Enhance callback not configured' }));
255
+ return;
256
+ }
257
+ sendMcpLog('info', `🔄 继续增强 Session: ${sessionId}`);
258
+ try {
259
+ const newEnhancedPrompt = await this.enhanceCallback(currentPrompt, session.conversationHistory, session.blobNames);
260
+ // 更新 session 的增强内容
261
+ session.enhancedPrompt = newEnhancedPrompt;
262
+ res.writeHead(200, { 'Content-Type': 'application/json' });
263
+ res.end(JSON.stringify({ enhancedPrompt: newEnhancedPrompt }));
264
+ }
265
+ catch (error) {
266
+ sendMcpLog('error', `❌ 继续增强失败: ${error}`);
267
+ res.writeHead(500, { 'Content-Type': 'application/json' });
268
+ res.end(JSON.stringify({ error: 'Enhancement failed: ' + error.message }));
269
+ }
270
+ }
271
+ catch (error) {
272
+ sendMcpLog('error', `❌ 继续增强请求处理错误: ${error}`);
273
+ res.writeHead(400, { 'Content-Type': 'application/json' });
274
+ res.end(JSON.stringify({ error: 'Invalid request body' }));
275
+ }
276
+ });
277
+ req.on('error', (error) => {
278
+ sendMcpLog('error', `❌ 请求错误: ${error}`);
279
+ res.writeHead(500, { 'Content-Type': 'application/json' });
280
+ res.end(JSON.stringify({ error: 'Request error' }));
281
+ });
282
+ }
283
+ enhanceCallback = null;
284
+ /**
285
+ * 设置增强回调函数
286
+ */
287
+ setEnhanceCallback(callback) {
288
+ this.enhanceCallback = callback;
289
+ }
290
+ /**
291
+ * 停止服务器
292
+ */
293
+ async stop() {
294
+ if (!this.server) {
295
+ return;
296
+ }
297
+ return new Promise((resolve) => {
298
+ this.server.close(() => {
299
+ sendMcpLog('info', '🛑 Enhancer 服务器已停止');
300
+ this.server = null;
301
+ resolve();
302
+ });
303
+ });
304
+ }
305
+ }
306
+ //# sourceMappingURL=EnhancerServer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnhancerServer.js","sourceRoot":"","sources":["../../src/enhancer/EnhancerServer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Prompt Enhancer - 核心增强逻辑
3
+ * 基于 Augment VSCode 插件的实现
4
+ */
5
+ import { IndexManager } from '../index/manager.js';
6
+ import { EnhancerServer } from './EnhancerServer.js';
7
+ /**
8
+ * Prompt Enhancer 类
9
+ */
10
+ export declare class PromptEnhancer {
11
+ private indexManager;
12
+ private baseUrl;
13
+ private token;
14
+ private httpClient;
15
+ private server;
16
+ constructor(indexManager: IndexManager, baseUrl: string, token: string, server: EnhancerServer);
17
+ /**
18
+ * 增强 prompt
19
+ * @param originalPrompt 原始用户输入
20
+ * @param conversationHistory 对话历史(5-10轮)
21
+ * @returns 增强后的 prompt
22
+ */
23
+ enhance(originalPrompt: string, conversationHistory: string): Promise<string>;
24
+ /**
25
+ * 加载已索引的 blob 名称列表
26
+ */
27
+ private loadBlobNames;
28
+ /**
29
+ * 调用 prompt-enhancer API 生成增强内容
30
+ */
31
+ private callPromptEnhancerApi;
32
+ /**
33
+ * 替换 Augment 特定的工具名称为 ace-tool 的工具名称
34
+ */
35
+ private replaceToolNames;
36
+ /**
37
+ * 解析对话历史为 chat_history 格式
38
+ */
39
+ private parseChatHistory;
40
+ /**
41
+ * 通过 Web UI 与用户交互
42
+ */
43
+ private interactWithUser;
44
+ /**
45
+ * 打开浏览器
46
+ */
47
+ private openBrowser;
48
+ }
49
+ //# sourceMappingURL=PromptEnhancer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PromptEnhancer.d.ts","sourceRoot":"","sources":["../../src/enhancer/PromptEnhancer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD;;GAEG;AACH,qBAAa,cAAc;IAKvB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,KAAK;IANf,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,MAAM,CAAiB;gBAGrB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACrB,MAAM,EAAE,cAAc;IAcxB;;;;;OAKG;IACG,OAAO,CAAC,cAAc,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA8CnF;;OAEG;IACH,OAAO,CAAC,aAAa;IAkBrB;;OAEG;YACW,qBAAqB;IAuEnC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAiBxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAwBxB;;OAEG;YACW,gBAAgB;IA2C9B;;OAEG;IACH,OAAO,CAAC,WAAW;CAmBpB"}