cursor-feedback 0.1.34 → 1.0.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/dist/extension.js +49 -49
- package/dist/extension.js.map +1 -1
- package/dist/mcp-server.js +13 -73
- package/dist/mcp-server.js.map +1 -1
- package/package.json +1 -1
- package/src/extension.ts +57 -53
- package/src/mcp-server.ts +15 -88
package/dist/extension.js
CHANGED
|
@@ -122,14 +122,12 @@ class FeedbackViewProvider {
|
|
|
122
122
|
this._activePort = null;
|
|
123
123
|
this._portScanRange = 20; // 扫描端口范围
|
|
124
124
|
this._seenRequestIds = new Set(); // 已处理过的请求 ID
|
|
125
|
-
this._latestServerStartTime = 0; // 当前工作区已知的最新 Server 启动时间
|
|
126
125
|
this._debugInfo = {
|
|
127
126
|
portRange: '',
|
|
128
127
|
workspacePath: '',
|
|
129
128
|
connectedPorts: [],
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
activePort: null
|
|
129
|
+
activePort: null,
|
|
130
|
+
lastStatus: '初始化中...'
|
|
133
131
|
};
|
|
134
132
|
this._basePort = port;
|
|
135
133
|
this._debugInfo.portRange = `${port}-${port + this._portScanRange - 1}`;
|
|
@@ -194,56 +192,63 @@ class FeedbackViewProvider {
|
|
|
194
192
|
}
|
|
195
193
|
/**
|
|
196
194
|
* 轮询检查是否有新的反馈请求
|
|
197
|
-
*
|
|
195
|
+
* 优化:如果已有活跃端口,先尝试该端口;失败则扫描所有端口
|
|
198
196
|
*/
|
|
199
197
|
async _pollForFeedbackRequest() {
|
|
200
198
|
try {
|
|
201
199
|
// 更新工作区路径
|
|
202
200
|
const workspacePaths = getWorkspacePaths();
|
|
203
201
|
this._debugInfo.workspacePath = workspacePaths.length > 0 ? workspacePaths[0] : '(无工作区)';
|
|
204
|
-
|
|
205
|
-
|
|
202
|
+
const currentWorkspace = workspacePaths[0] || '';
|
|
203
|
+
const normalize = (p) => p.replace(/\\/g, '/').replace(/\/+$/, '').toLowerCase();
|
|
204
|
+
const normalizedCurrentWorkspace = normalize(currentWorkspace);
|
|
205
|
+
// 如果有活跃端口,先尝试只轮询该端口
|
|
206
|
+
if (this._activePort) {
|
|
207
|
+
const result = await this._checkPortForRequest(this._activePort);
|
|
208
|
+
// 检查是否仍然是我们的 Server
|
|
209
|
+
if (result.connected) {
|
|
210
|
+
const serverOwner = result.ownerWorkspace ? normalize(result.ownerWorkspace) : '';
|
|
211
|
+
const isMyServer = !serverOwner || serverOwner === normalizedCurrentWorkspace;
|
|
212
|
+
if (isMyServer) {
|
|
213
|
+
// 端口仍然有效,保持使用
|
|
214
|
+
this._debugInfo.connectedPorts = [this._activePort];
|
|
215
|
+
this._debugInfo.activePort = this._activePort;
|
|
216
|
+
if (result.request && !this._seenRequestIds.has(result.request.id)) {
|
|
217
|
+
this._debugInfo.lastStatus = `监听端口 ${this._activePort}`;
|
|
218
|
+
this._handleNewRequest(result.request, this._activePort);
|
|
219
|
+
this._updateDebugInfo();
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
// 端口有效但无新请求,继续保持连接
|
|
223
|
+
this._debugInfo.lastStatus = `监听端口 ${this._activePort}`;
|
|
224
|
+
this._updateDebugInfo();
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
// 活跃端口失效(连接失败或工作区不匹配),重置并扫描所有端口
|
|
229
|
+
this._activePort = null;
|
|
230
|
+
this._debugInfo.activePort = null;
|
|
231
|
+
}
|
|
232
|
+
// 扫描所有端口
|
|
206
233
|
const ports = [];
|
|
207
234
|
for (let i = 0; i < this._portScanRange; i++) {
|
|
208
235
|
ports.push(this._basePort + i);
|
|
209
236
|
}
|
|
210
237
|
// 并行检查所有端口
|
|
211
238
|
const results = await Promise.all(ports.map(port => this._checkPortForRequest(port)));
|
|
212
|
-
//
|
|
239
|
+
// 更新已连接的端口列表
|
|
213
240
|
this._debugInfo.connectedPorts = results.filter(r => r.connected).map(r => r.port);
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
const normalizedCurrentWorkspace = normalize(currentWorkspace);
|
|
219
|
-
let maxStartTime = 0;
|
|
220
|
-
for (const r of results) {
|
|
221
|
-
if (r.connected && r.startTime) {
|
|
222
|
-
// 检查是否属于当前工作区(ownerWorkspace 匹配或未设置)
|
|
223
|
-
const serverOwner = r.ownerWorkspace ? normalize(r.ownerWorkspace) : '';
|
|
224
|
-
const isMyServer = !serverOwner || serverOwner === normalizedCurrentWorkspace;
|
|
225
|
-
if (isMyServer && r.startTime > maxStartTime) {
|
|
226
|
-
maxStartTime = r.startTime;
|
|
227
|
-
}
|
|
241
|
+
// 找出属于当前工作区的请求
|
|
242
|
+
const myRequests = results.filter(r => {
|
|
243
|
+
if (!r.request || this._seenRequestIds.has(r.request.id)) {
|
|
244
|
+
return false;
|
|
228
245
|
}
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
// 按请求的 timestamp 和 Server 的 startTime 排序,优先显示最新的
|
|
233
|
-
const validRequests = results
|
|
234
|
-
.filter(r => r.request && !this._seenRequestIds.has(r.request.id))
|
|
235
|
-
.sort((a, b) => {
|
|
236
|
-
// 首先按请求的 timestamp 排序(新的优先)
|
|
237
|
-
const timestampDiff = b.request.timestamp - a.request.timestamp;
|
|
238
|
-
if (timestampDiff !== 0) {
|
|
239
|
-
return timestampDiff;
|
|
240
|
-
}
|
|
241
|
-
// timestamp 相同时,按 Server 的 startTime 排序(新的优先)
|
|
242
|
-
return (b.startTime || 0) - (a.startTime || 0);
|
|
243
|
-
});
|
|
246
|
+
const serverOwner = r.ownerWorkspace ? normalize(r.ownerWorkspace) : '';
|
|
247
|
+
return !serverOwner || serverOwner === normalizedCurrentWorkspace;
|
|
248
|
+
}).sort((a, b) => b.request.timestamp - a.request.timestamp);
|
|
244
249
|
// 处理最新的请求
|
|
245
|
-
if (
|
|
246
|
-
const newest =
|
|
250
|
+
if (myRequests.length > 0) {
|
|
251
|
+
const newest = myRequests[0];
|
|
247
252
|
this._activePort = newest.port;
|
|
248
253
|
this._debugInfo.activePort = newest.port;
|
|
249
254
|
this._debugInfo.lastStatus = `找到请求 (端口 ${newest.port})`;
|
|
@@ -251,25 +256,20 @@ class FeedbackViewProvider {
|
|
|
251
256
|
this._updateDebugInfo();
|
|
252
257
|
return;
|
|
253
258
|
}
|
|
254
|
-
//
|
|
259
|
+
// 没有新请求,检查是否有当前请求
|
|
255
260
|
if (this._currentRequest && this._activePort) {
|
|
256
|
-
// 保持当前活跃端口
|
|
257
261
|
this._debugInfo.activePort = this._activePort;
|
|
258
262
|
this._debugInfo.lastStatus = `监听端口 ${this._activePort}`;
|
|
259
263
|
this._updateDebugInfo();
|
|
260
264
|
return;
|
|
261
265
|
}
|
|
262
|
-
//
|
|
266
|
+
// 没有任何请求
|
|
263
267
|
this._debugInfo.activePort = null;
|
|
264
|
-
// 更新调试状态
|
|
265
268
|
if (this._debugInfo.connectedPorts.length === 0) {
|
|
266
269
|
this._debugInfo.lastStatus = '未找到 MCP Server';
|
|
267
270
|
}
|
|
268
|
-
else if (this._debugInfo.mismatchCount > 0) {
|
|
269
|
-
this._debugInfo.lastStatus = `连接 ${this._debugInfo.connectedPorts.length} 个端口,${this._debugInfo.mismatchCount} 个路径不匹配`;
|
|
270
|
-
}
|
|
271
271
|
else {
|
|
272
|
-
this._debugInfo.lastStatus =
|
|
272
|
+
this._debugInfo.lastStatus = `已连接 ${this._debugInfo.connectedPorts.length} 个端口,等待请求`;
|
|
273
273
|
}
|
|
274
274
|
this._updateDebugInfo();
|
|
275
275
|
}
|
|
@@ -283,10 +283,10 @@ class FeedbackViewProvider {
|
|
|
283
283
|
*/
|
|
284
284
|
async _checkPortForRequest(port) {
|
|
285
285
|
try {
|
|
286
|
-
//
|
|
286
|
+
// 带上工作区路径用于匹配
|
|
287
287
|
const workspacePaths = getWorkspacePaths();
|
|
288
288
|
const workspacePath = workspacePaths.length > 0 ? workspacePaths[0] : '';
|
|
289
|
-
const url = `http://127.0.0.1:${port}/api/feedback/current?workspace=${encodeURIComponent(workspacePath)}
|
|
289
|
+
const url = `http://127.0.0.1:${port}/api/feedback/current?workspace=${encodeURIComponent(workspacePath)}`;
|
|
290
290
|
const response = await this._httpGet(url);
|
|
291
291
|
const parsed = JSON.parse(response);
|
|
292
292
|
// 兼容新旧两种响应格式
|
package/dist/extension.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,4BA2CC;AAED,gCAIC;AAvDD,+CAAiC;AACjC,2CAA6B;AAE7B,IAAI,oBAAoB,GAAgC,IAAI,CAAC;AAC7D,IAAI,eAAe,GAA0B,IAAI,CAAC;AAElD,SAAgB,QAAQ,CAAC,OAAgC;IACvD,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IAExD,kCAAkC;IAClC,oBAAoB,GAAG,IAAI,oBAAoB,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAC7E,OAAO,CAAC,aAAa,CAAC,IAAI,CACxB,MAAM,CAAC,MAAM,CAAC,2BAA2B,CACvC,6BAA6B,EAC7B,oBAAoB,CACrB,CACF,CAAC;IAEF,cAAc;IACd,OAAO,CAAC,aAAa,CAAC,IAAI,CACxB,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAC/D,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,mCAAmC,CAAC,CAAC;IACtE,CAAC,CAAC,CACH,CAAC;IAEF,YAAY;IACZ,OAAO,CAAC,aAAa,CAAC,IAAI,CACxB,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,6BAA6B,EAAE,GAAG,EAAE;QAClE,IAAI,oBAAoB,EAAE,CAAC;YACzB,oBAAoB,CAAC,YAAY,EAAE,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC;QACxD,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IAEF,YAAY;IACZ,OAAO,CAAC,aAAa,CAAC,IAAI,CACxB,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACjE,IAAI,oBAAoB,EAAE,CAAC;YACzB,oBAAoB,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IAEF,SAAS;IACT,UAAU,CAAC,GAAG,EAAE;QACd,oBAAoB,EAAE,YAAY,EAAE,CAAC;IACvC,CAAC,EAAE,IAAI,CAAC,CAAC;AACX,CAAC;AAED,SAAgB,UAAU;IACxB,IAAI,oBAAoB,EAAE,CAAC;QACzB,oBAAoB,CAAC,WAAW,EAAE,CAAC;IACrC,CAAC;AACH,CAAC;AAaD;;GAEG;AACH,SAAS,iBAAiB;IACxB,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC;IAClD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACxC,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,UAAkB;IAC3C,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAE3C,yBAAyB;IACzB,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACzF,MAAM,gBAAgB,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IAE/C,yBAAyB;IACzB,MAAM,WAAW,GAAG,CAAC,UAAU,IAAI,UAAU,KAAK,GAAG,IAAI,gBAAgB,KAAK,EAAE,IAAI,gBAAgB,KAAK,GAAG,CAAC;IAE7G,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,0BAA0B;QAC1B,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,kBAAkB;IAClB,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;QACpC,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACvC,kBAAkB;QAClB,IAAI,gBAAgB,KAAK,YAAY,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,oBAAoB;IAuBxB,YACmB,aAAyB,EAC1C,IAAY;QADK,kBAAa,GAAb,aAAa,CAAY;QArBpC,qBAAgB,GAA0B,IAAI,CAAC;QAC/C,oBAAe,GAA2B,IAAI,CAAC;QAE/C,gBAAW,GAAkB,IAAI,CAAC;QAClC,mBAAc,GAAG,EAAE,CAAC,CAAC,SAAS;QAC9B,oBAAe,GAAgB,IAAI,GAAG,EAAE,CAAC,CAAC,aAAa;QACvD,eAAU,GAMd;YACF,SAAS,EAAE,EAAE;YACb,aAAa,EAAE,EAAE;YACjB,cAAc,EAAE,EAAE;YAClB,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,SAAS;SACtB,CAAC;QAMA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;IAC1E,CAAC;IAEM,kBAAkB,CACvB,WAA+B,EAC/B,QAA0C,EAC1C,MAAgC;QAEhC,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;QAEzB,WAAW,CAAC,OAAO,CAAC,OAAO,GAAG;YAC5B,aAAa,EAAE,IAAI;YACnB,kBAAkB,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC;SACzC,CAAC;QAEF,WAAW,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAExE,mBAAmB;QACnB,WAAW,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAC,IAAI,EAAC,EAAE;YACnD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,KAAK,gBAAgB;oBACnB,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC/C,MAAM;gBACR,KAAK,OAAO;oBACV,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;oBACzC,4BAA4B;oBAC5B,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;wBACzB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAClD,CAAC;oBACD,MAAM;gBACR,KAAK,aAAa;oBAChB,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBAChC,MAAM;gBACR,KAAK,YAAY;oBACf,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBAC/B,MAAM;YACV,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,sBAAsB;QACtB,WAAW,CAAC,qBAAqB,CAAC,GAAG,EAAE;YACrC,IAAI,WAAW,CAAC,OAAO,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBAChD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAClD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACI,YAAY;QACjB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,yCAAyC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAEvE,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;YAC7C,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACvC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS;QAEnB,SAAS;QACT,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACjC,CAAC;IAED;;OAEG;IACI,WAAW;QAChB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACrC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC/B,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,uBAAuB;QACnC,IAAI,CAAC;YACH,UAAU;YACV,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACzF,MAAM,gBAAgB,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACjD,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YACzF,MAAM,0BAA0B,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAAC;YAE/D,oBAAoB;YACpB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAEjE,oBAAoB;gBACpB,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oBACrB,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAClF,MAAM,UAAU,GAAG,CAAC,WAAW,IAAI,WAAW,KAAK,0BAA0B,CAAC;oBAE9E,IAAI,UAAU,EAAE,CAAC;wBACf,cAAc;wBACd,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;wBACpD,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;wBAE9C,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;4BACnE,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;4BACxD,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;4BACzD,IAAI,CAAC,gBAAgB,EAAE,CAAC;4BACxB,OAAO;wBACT,CAAC;wBAED,mBAAmB;wBACnB,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;wBACxD,IAAI,CAAC,gBAAgB,EAAE,CAAC;wBACxB,OAAO;oBACT,CAAC;gBACH,CAAC;gBAED,gCAAgC;gBAChC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC;YACpC,CAAC;YAED,SAAS;YACT,MAAM,KAAK,GAAG,EAAE,CAAC;YACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YACjC,CAAC;YAED,WAAW;YACX,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAEtF,aAAa;YACb,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAEnF,eAAe;YACf,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBACpC,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;oBACzD,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,MAAM,WAAW,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxE,OAAO,CAAC,WAAW,IAAI,WAAW,KAAK,0BAA0B,CAAC;YACpE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,OAAQ,CAAC,SAAS,CAAC,CAAC;YAE/D,UAAU;YACV,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC7B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC;gBAC/B,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;gBACzC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,YAAY,MAAM,CAAC,IAAI,GAAG,CAAC;gBACxD,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBACrD,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,OAAO;YACT,CAAC;YAED,kBAAkB;YAClB,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC7C,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC9C,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;gBACxD,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,OAAO;YACT,CAAC;YAED,SAAS;YACT,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC;YAElC,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChD,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,gBAAgB,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,WAAW,CAAC;YACvF,CAAC;YACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,SAAS,KAAK,EAAE,CAAC;YAC9C,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,oBAAoB,CAAC,IAAY;QAQ7C,IAAI,CAAC;YACH,cAAc;YACd,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;YAC3C,MAAM,aAAa,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzE,MAAM,GAAG,GAAG,oBAAoB,IAAI,mCAAmC,kBAAkB,CAAC,aAAa,CAAC,EAAE,CAAC;YAC3G,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAEpC,aAAa;YACb,8CAA8C;YAC9C,8BAA8B;YAC9B,IAAI,OAA+B,CAAC;YACpC,IAAI,cAAc,GAAkB,IAAI,CAAC;YACzC,IAAI,SAAS,GAAW,CAAC,CAAC;YAE1B,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,WAAW,IAAI,MAAM,EAAE,CAAC;gBAClE,MAAM;gBACN,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBACzB,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;gBACvC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,oBAAoB;gBACpB,OAAO,GAAG,MAAgC,CAAC;YAC7C,CAAC;YAED,gBAAgB;YAChB,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBAEtD,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,oBAAoB;oBACpB,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC;gBAC7F,CAAC;YACH,CAAC;YAED,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC;QACvE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACnD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,OAAwB,EAAE,IAAY;QAC9D,iBAAiB;QACjB,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YACzC,OAAO;QACT,CAAC;QAED,2BAA2B;QAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;QAClD,MAAM,cAAc,GAAG,UAAU,GAAG,KAAK,CAAC,CAAC,OAAO;QAElD,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,GAAG,EAAE,OAAO,CAAC,EAAE,EACzD,QAAQ,UAAU,gBAAgB,cAAc,EAAE,CAAC,CAAC;QAEtD,SAAS;QACT,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAErC,wBAAwB;QACxB,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC7C,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC;YACpE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;YAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YAExB,SAAS;YACT,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAEnC,gBAAgB;YAChB,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,mCAAmC,CAAC,CAAC;gBACpE,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,kBAAkB;QAC9B,eAAe;QACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,oBAAoB,IAAI,aAAa,CAAC,CAAC;gBAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACpC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC;oBAC9B,IAAI,EAAE,cAAc;oBACpB,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE;iBAC9C,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC;YAC9B,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;SAC9B,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,OAAwB;QACjD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;gBAC7B,IAAI,EAAE,qBAAqB;gBAC7B,OAAO,EAAE;oBACP,SAAS,EAAE,OAAO,CAAC,EAAE;oBACrB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,SAAS,EAAE,OAAO,CAAC,SAAS;iBAC7B;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACK,iBAAiB;QACvB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;gBAC7B,IAAI,EAAE,aAAa;aACpB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB;QACtB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;gBAC7B,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,IAAI,CAAC,UAAU;aACzB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,qBAAqB,CAAC,OAMnC;QACC,aAAa;QACb,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC;QAEhD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CACnC,oBAAoB,IAAI,sBAAsB,EAC9C,IAAI,CAAC,SAAS,CAAC;gBACb,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,QAAQ,EAAE;oBACR,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;oBAClD,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,EAAE;oBAC1C,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;iBAC7C;aACF,CAAC,CACH,CAAC;YAEF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;gBAC9C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC5B,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB;QAC7B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC;YAChD,aAAa,EAAE,IAAI;YACnB,cAAc,EAAE,IAAI;YACpB,gBAAgB,EAAE,IAAI;YACtB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC;gBAC9B,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,EAAE,KAAK,EAAE;aACnB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACK,QAAQ,CAAC,GAAW;QAC1B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE;gBACnD,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;gBACvC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACxB,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;gBACrB,GAAG,CAAC,OAAO,EAAE,CAAC;gBACd,MAAM,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,SAAS,CAAC,GAAW,EAAE,IAAY;QACzC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,OAAO,GAAG;gBACd,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,IAAI,EAAE,MAAM,CAAC,QAAQ;gBACrB,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;iBAC1C;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;YAEF,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACxC,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;gBACvC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACxB,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;gBACrB,GAAG,CAAC,OAAO,EAAE,CAAC;gBACd,MAAM,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChB,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,kBAAkB,CAAC,OAAuB;QAChD,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAS,UAAU,EAAE,OAAO,CAAC,CAAC;QAEzD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAErC,yBAAyB;QACzB,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,CACtC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,CAAC,CAChF,CAAC;QAEF,OAAO;cACG,QAAQ;;;;kIAI4G,OAAO,CAAC,SAAS;;;iBAGlI,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCAgYQ,IAAI,CAAC,QAAQ;;;;;;;;WAQtC,IAAI,CAAC,OAAO;oEAC6C,IAAI,CAAC,WAAW;;;;;;;wCAO5C,IAAI,CAAC,OAAO;;;;;;;wCAOZ,IAAI,CAAC,YAAY;;;;yBAIhC,IAAI,CAAC,WAAW;;;;;;0EAMiC,IAAI,CAAC,WAAW;;;8EAGZ,IAAI,CAAC,UAAU;;;;;;;;;;;;;kDAa3C,IAAI,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBA6D1C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAkP/B,CAAC;IACP,CAAC;IAED;;OAEG;IACK,QAAQ,CAAC,IAAY;QAC3B,MAAM,YAAY,GAA2C;YAC3D,OAAO,EAAE;gBACP,OAAO,EAAE,eAAe;gBACxB,WAAW,EAAE,wBAAwB;gBACrC,OAAO,EAAE,SAAS;gBAClB,YAAY,EAAE,MAAM;gBACpB,WAAW,EAAE,YAAY;gBACzB,WAAW,EAAE,MAAM;gBACnB,UAAU,EAAE,UAAU;gBACtB,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,SAAS;gBACnB,SAAS,EAAE,gBAAgB;gBAC3B,YAAY,EAAE,gBAAgB;aAC/B;YACD,OAAO,EAAE;gBACP,OAAO,EAAE,eAAe;gBACxB,WAAW,EAAE,wBAAwB;gBACrC,OAAO,EAAE,SAAS;gBAClB,YAAY,EAAE,MAAM;gBACpB,WAAW,EAAE,YAAY;gBACzB,WAAW,EAAE,MAAM;gBACnB,UAAU,EAAE,UAAU;gBACtB,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,SAAS;gBACnB,SAAS,EAAE,gBAAgB;gBAC3B,YAAY,EAAE,gBAAgB;aAC/B;YACD,IAAI,EAAE;gBACJ,OAAO,EAAE,oCAAoC;gBAC7C,WAAW,EAAE,6DAA6D;gBAC1E,OAAO,EAAE,iBAAiB;gBAC1B,YAAY,EAAE,eAAe;gBAC7B,WAAW,EAAE,wBAAwB;gBACrC,WAAW,EAAE,cAAc;gBAC3B,UAAU,EAAE,oBAAoB;gBAChC,MAAM,EAAE,iBAAiB;gBACzB,OAAO,EAAE,gBAAgB;gBACzB,OAAO,EAAE,SAAS;gBAClB,QAAQ,EAAE,wBAAwB;gBAClC,SAAS,EAAE,sBAAsB;gBACjC,YAAY,EAAE,yBAAyB;aACxC;SACF,CAAC;QAEF,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;;AArwCsB,6BAAQ,GAAG,6BAA6B,AAAhC,CAAiC"}
|
package/dist/mcp-server.js
CHANGED
|
@@ -74,14 +74,8 @@ class McpFeedbackServer {
|
|
|
74
74
|
// 所属工作区(只在 AI 调用 feedback 时设置)
|
|
75
75
|
// 只有来自同一工作区的轮询才会更新活动时间
|
|
76
76
|
this.ownerWorkspace = null;
|
|
77
|
-
// Server
|
|
77
|
+
// Server 启动时间
|
|
78
78
|
this.startTime = Date.now();
|
|
79
|
-
// 最后活动时间(用于自动退出)
|
|
80
|
-
this.lastActivityTime = Date.now();
|
|
81
|
-
// 自动退出检查定时器
|
|
82
|
-
this.inactivityCheckInterval = null;
|
|
83
|
-
// 无活动退出时间(2 分钟)
|
|
84
|
-
this.INACTIVITY_TIMEOUT = 2 * 60 * 1000;
|
|
85
79
|
this.port = port;
|
|
86
80
|
this.server = new index_js_1.Server({
|
|
87
81
|
name: 'cursor-feedback-server',
|
|
@@ -194,8 +188,6 @@ class McpFeedbackServer {
|
|
|
194
188
|
const normalize = (p) => p.replace(/\\/g, '/').replace(/\/+$/, '').toLowerCase();
|
|
195
189
|
this.ownerWorkspace = normalize(projectDir);
|
|
196
190
|
debugLog(`Owner workspace set to: ${this.ownerWorkspace}`);
|
|
197
|
-
// AI 调用 feedback 时更新活动时间
|
|
198
|
-
this.updateActivity();
|
|
199
191
|
// 创建反馈请求
|
|
200
192
|
this.currentRequest = {
|
|
201
193
|
id: requestId,
|
|
@@ -438,26 +430,6 @@ class McpFeedbackServer {
|
|
|
438
430
|
}
|
|
439
431
|
// 获取当前反馈请求
|
|
440
432
|
if (req.method === 'GET' && req.url?.startsWith('/api/feedback/current')) {
|
|
441
|
-
// 解析 URL 参数
|
|
442
|
-
const urlObj = new URL(req.url, `http://127.0.0.1:${this.port}`);
|
|
443
|
-
const workspaceParam = urlObj.searchParams.get('workspace') || '';
|
|
444
|
-
const latestStartTimeParam = urlObj.searchParams.get('latestStartTime');
|
|
445
|
-
const latestStartTime = latestStartTimeParam ? parseInt(latestStartTimeParam, 10) : 0;
|
|
446
|
-
const normalize = (p) => p.replace(/\\/g, '/').replace(/\/+$/, '').toLowerCase();
|
|
447
|
-
const normalizedWorkspace = normalize(workspaceParam);
|
|
448
|
-
// 检查是否应该更新活动时间
|
|
449
|
-
const isWorkspaceMatch = !this.ownerWorkspace || normalizedWorkspace === this.ownerWorkspace;
|
|
450
|
-
// 更新活动时间的条件:
|
|
451
|
-
// 1. 工作区匹配
|
|
452
|
-
// 2. 并且满足以下任一条件:
|
|
453
|
-
// a. ownerWorkspace 未设置(从未被 AI 调用,保持活动)
|
|
454
|
-
// b. 是最新的 Server(latestStartTime > 0 且 startTime >= latestStartTime)
|
|
455
|
-
const shouldUpdateActivity = isWorkspaceMatch && (!this.ownerWorkspace ||
|
|
456
|
-
(latestStartTime > 0 && this.startTime >= latestStartTime));
|
|
457
|
-
if (shouldUpdateActivity) {
|
|
458
|
-
this.updateActivity();
|
|
459
|
-
}
|
|
460
|
-
// 不满足条件时不更新活动时间,旧的 Server 会在 2 分钟后自动退出
|
|
461
433
|
res.writeHead(200, { 'Content-Type': 'application/json' });
|
|
462
434
|
// 返回当前请求、ownerWorkspace 和 startTime
|
|
463
435
|
res.end(JSON.stringify({
|
|
@@ -469,8 +441,6 @@ class McpFeedbackServer {
|
|
|
469
441
|
}
|
|
470
442
|
// 提交反馈
|
|
471
443
|
if (req.method === 'POST' && req.url === '/api/feedback/submit') {
|
|
472
|
-
// 提交反馈一定是来自正确的工作区,更新活动时间
|
|
473
|
-
this.updateActivity();
|
|
474
444
|
let body = '';
|
|
475
445
|
req.on('data', chunk => {
|
|
476
446
|
body += chunk.toString();
|
|
@@ -557,40 +527,6 @@ class McpFeedbackServer {
|
|
|
557
527
|
});
|
|
558
528
|
});
|
|
559
529
|
}
|
|
560
|
-
/**
|
|
561
|
-
* 更新最后活动时间
|
|
562
|
-
*/
|
|
563
|
-
updateActivity() {
|
|
564
|
-
this.lastActivityTime = Date.now();
|
|
565
|
-
}
|
|
566
|
-
/**
|
|
567
|
-
* 启动无活动自动退出检查
|
|
568
|
-
*
|
|
569
|
-
* 退出条件:
|
|
570
|
-
* 1. 没有 currentRequest(即没有请求在等待用户反馈)
|
|
571
|
-
* 2. 超过 2 分钟没有来自对应工作区的轮询
|
|
572
|
-
*
|
|
573
|
-
* 这样:
|
|
574
|
-
* - 窗口打开时:插件轮询会更新活动时间,不会退出
|
|
575
|
-
* - 等待反馈时:有 currentRequest,不会退出
|
|
576
|
-
* - 窗口关闭后:没有轮询,2 分钟后退出
|
|
577
|
-
*/
|
|
578
|
-
startInactivityCheck() {
|
|
579
|
-
// 每分钟检查一次
|
|
580
|
-
this.inactivityCheckInterval = setInterval(() => {
|
|
581
|
-
// 如果有请求正在等待用户反馈,绝对不退出
|
|
582
|
-
if (this.currentRequest) {
|
|
583
|
-
debugLog('Request pending, skipping inactivity check');
|
|
584
|
-
return;
|
|
585
|
-
}
|
|
586
|
-
const inactiveTime = Date.now() - this.lastActivityTime;
|
|
587
|
-
if (inactiveTime > this.INACTIVITY_TIMEOUT) {
|
|
588
|
-
debugLog(`No activity for ${Math.round(inactiveTime / 1000)}s, auto-exiting...`);
|
|
589
|
-
this.stop();
|
|
590
|
-
process.exit(0);
|
|
591
|
-
}
|
|
592
|
-
}, 60 * 1000);
|
|
593
|
-
}
|
|
594
530
|
/**
|
|
595
531
|
* 启动服务器
|
|
596
532
|
*/
|
|
@@ -602,10 +538,7 @@ class McpFeedbackServer {
|
|
|
602
538
|
// 启动 MCP stdio 传输
|
|
603
539
|
const transport = new stdio_js_1.StdioServerTransport();
|
|
604
540
|
await this.server.connect(transport);
|
|
605
|
-
// 启动无活动自动退出检查
|
|
606
|
-
this.startInactivityCheck();
|
|
607
541
|
debugLog('MCP Server started successfully');
|
|
608
|
-
debugLog(`Auto-exit after ${this.INACTIVITY_TIMEOUT / 1000}s of inactivity`);
|
|
609
542
|
debugLog('Waiting for tool calls from AI agent...');
|
|
610
543
|
}
|
|
611
544
|
catch (error) {
|
|
@@ -618,11 +551,6 @@ class McpFeedbackServer {
|
|
|
618
551
|
*/
|
|
619
552
|
stop() {
|
|
620
553
|
debugLog('Stopping server...');
|
|
621
|
-
// 清理无活动检查定时器
|
|
622
|
-
if (this.inactivityCheckInterval) {
|
|
623
|
-
clearInterval(this.inactivityCheckInterval);
|
|
624
|
-
this.inactivityCheckInterval = null;
|
|
625
|
-
}
|
|
626
554
|
// 关闭 HTTP 服务器
|
|
627
555
|
if (this.httpServer) {
|
|
628
556
|
this.httpServer.close();
|
|
@@ -654,6 +582,18 @@ async function main() {
|
|
|
654
582
|
server.stop();
|
|
655
583
|
process.exit(0);
|
|
656
584
|
});
|
|
585
|
+
// 监听 stdin 关闭(Cursor 关闭时会触发)
|
|
586
|
+
process.stdin.on('close', () => {
|
|
587
|
+
debugLog('stdin closed, exiting...');
|
|
588
|
+
server.stop();
|
|
589
|
+
// 给 100ms 缓冲后强制退出
|
|
590
|
+
setTimeout(() => process.exit(0), 100);
|
|
591
|
+
});
|
|
592
|
+
process.stdin.on('end', () => {
|
|
593
|
+
debugLog('stdin ended, exiting...');
|
|
594
|
+
server.stop();
|
|
595
|
+
setTimeout(() => process.exit(0), 100);
|
|
596
|
+
});
|
|
657
597
|
// 捕获未处理的异常,记录日志但不退出进程
|
|
658
598
|
process.on('uncaughtException', (error) => {
|
|
659
599
|
debugLog(`Uncaught exception (continuing): ${error}`);
|
package/dist/mcp-server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "cursor-feedback",
|
|
3
3
|
"displayName": "Cursor Feedback",
|
|
4
4
|
"description": "Interactive feedback collection for AI agents in Cursor/VS Code - MCP Server with sidebar UI",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "1.0.0",
|
|
6
6
|
"author": "jianger666",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"repository": {
|
package/src/extension.ts
CHANGED
|
@@ -125,21 +125,18 @@ class FeedbackViewProvider implements vscode.WebviewViewProvider {
|
|
|
125
125
|
private _activePort: number | null = null;
|
|
126
126
|
private _portScanRange = 20; // 扫描端口范围
|
|
127
127
|
private _seenRequestIds: Set<string> = new Set(); // 已处理过的请求 ID
|
|
128
|
-
private _latestServerStartTime: number = 0; // 当前工作区已知的最新 Server 启动时间
|
|
129
128
|
private _debugInfo: {
|
|
130
129
|
portRange: string;
|
|
131
130
|
workspacePath: string;
|
|
132
|
-
connectedPorts: number[];
|
|
131
|
+
connectedPorts: number[]; // 所有窗口使用的端口
|
|
132
|
+
activePort: number | null; // 当前项目监听的端口
|
|
133
133
|
lastStatus: string;
|
|
134
|
-
mismatchCount: number; // 路径不匹配的端口数量
|
|
135
|
-
activePort: number | null; // 当前活跃端口
|
|
136
134
|
} = {
|
|
137
135
|
portRange: '',
|
|
138
136
|
workspacePath: '',
|
|
139
137
|
connectedPorts: [],
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
activePort: null
|
|
138
|
+
activePort: null,
|
|
139
|
+
lastStatus: '初始化中...'
|
|
143
140
|
};
|
|
144
141
|
|
|
145
142
|
constructor(
|
|
@@ -224,16 +221,51 @@ class FeedbackViewProvider implements vscode.WebviewViewProvider {
|
|
|
224
221
|
|
|
225
222
|
/**
|
|
226
223
|
* 轮询检查是否有新的反馈请求
|
|
227
|
-
*
|
|
224
|
+
* 优化:如果已有活跃端口,先尝试该端口;失败则扫描所有端口
|
|
228
225
|
*/
|
|
229
226
|
private async _pollForFeedbackRequest() {
|
|
230
227
|
try {
|
|
231
228
|
// 更新工作区路径
|
|
232
229
|
const workspacePaths = getWorkspacePaths();
|
|
233
230
|
this._debugInfo.workspacePath = workspacePaths.length > 0 ? workspacePaths[0] : '(无工作区)';
|
|
231
|
+
const currentWorkspace = workspacePaths[0] || '';
|
|
232
|
+
const normalize = (p: string) => p.replace(/\\/g, '/').replace(/\/+$/, '').toLowerCase();
|
|
233
|
+
const normalizedCurrentWorkspace = normalize(currentWorkspace);
|
|
234
|
+
|
|
235
|
+
// 如果有活跃端口,先尝试只轮询该端口
|
|
236
|
+
if (this._activePort) {
|
|
237
|
+
const result = await this._checkPortForRequest(this._activePort);
|
|
238
|
+
|
|
239
|
+
// 检查是否仍然是我们的 Server
|
|
240
|
+
if (result.connected) {
|
|
241
|
+
const serverOwner = result.ownerWorkspace ? normalize(result.ownerWorkspace) : '';
|
|
242
|
+
const isMyServer = !serverOwner || serverOwner === normalizedCurrentWorkspace;
|
|
243
|
+
|
|
244
|
+
if (isMyServer) {
|
|
245
|
+
// 端口仍然有效,保持使用
|
|
246
|
+
this._debugInfo.connectedPorts = [this._activePort];
|
|
247
|
+
this._debugInfo.activePort = this._activePort;
|
|
248
|
+
|
|
249
|
+
if (result.request && !this._seenRequestIds.has(result.request.id)) {
|
|
250
|
+
this._debugInfo.lastStatus = `监听端口 ${this._activePort}`;
|
|
251
|
+
this._handleNewRequest(result.request, this._activePort);
|
|
252
|
+
this._updateDebugInfo();
|
|
253
|
+
return;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
// 端口有效但无新请求,继续保持连接
|
|
257
|
+
this._debugInfo.lastStatus = `监听端口 ${this._activePort}`;
|
|
258
|
+
this._updateDebugInfo();
|
|
259
|
+
return;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
// 活跃端口失效(连接失败或工作区不匹配),重置并扫描所有端口
|
|
264
|
+
this._activePort = null;
|
|
265
|
+
this._debugInfo.activePort = null;
|
|
266
|
+
}
|
|
234
267
|
|
|
235
|
-
//
|
|
236
|
-
// 不再使用活跃端口优化,因为它会导致错过新 Server 的请求
|
|
268
|
+
// 扫描所有端口
|
|
237
269
|
const ports = [];
|
|
238
270
|
for (let i = 0; i < this._portScanRange; i++) {
|
|
239
271
|
ports.push(this._basePort + i);
|
|
@@ -242,45 +274,21 @@ class FeedbackViewProvider implements vscode.WebviewViewProvider {
|
|
|
242
274
|
// 并行检查所有端口
|
|
243
275
|
const results = await Promise.all(ports.map(port => this._checkPortForRequest(port)));
|
|
244
276
|
|
|
245
|
-
//
|
|
277
|
+
// 更新已连接的端口列表
|
|
246
278
|
this._debugInfo.connectedPorts = results.filter(r => r.connected).map(r => r.port);
|
|
247
|
-
this._debugInfo.mismatchCount = results.filter(r => r.mismatch).length;
|
|
248
279
|
|
|
249
|
-
//
|
|
250
|
-
const
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
let maxStartTime = 0;
|
|
255
|
-
for (const r of results) {
|
|
256
|
-
if (r.connected && r.startTime) {
|
|
257
|
-
// 检查是否属于当前工作区(ownerWorkspace 匹配或未设置)
|
|
258
|
-
const serverOwner = r.ownerWorkspace ? normalize(r.ownerWorkspace) : '';
|
|
259
|
-
const isMyServer = !serverOwner || serverOwner === normalizedCurrentWorkspace;
|
|
260
|
-
if (isMyServer && r.startTime > maxStartTime) {
|
|
261
|
-
maxStartTime = r.startTime;
|
|
262
|
-
}
|
|
280
|
+
// 找出属于当前工作区的请求
|
|
281
|
+
const myRequests = results.filter(r => {
|
|
282
|
+
if (!r.request || this._seenRequestIds.has(r.request.id)) {
|
|
283
|
+
return false;
|
|
263
284
|
}
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
// 收集所有有效请求
|
|
268
|
-
// 按请求的 timestamp 和 Server 的 startTime 排序,优先显示最新的
|
|
269
|
-
const validRequests = results
|
|
270
|
-
.filter(r => r.request && !this._seenRequestIds.has(r.request.id))
|
|
271
|
-
.sort((a, b) => {
|
|
272
|
-
// 首先按请求的 timestamp 排序(新的优先)
|
|
273
|
-
const timestampDiff = b.request!.timestamp - a.request!.timestamp;
|
|
274
|
-
if (timestampDiff !== 0) {
|
|
275
|
-
return timestampDiff;
|
|
276
|
-
}
|
|
277
|
-
// timestamp 相同时,按 Server 的 startTime 排序(新的优先)
|
|
278
|
-
return (b.startTime || 0) - (a.startTime || 0);
|
|
279
|
-
});
|
|
285
|
+
const serverOwner = r.ownerWorkspace ? normalize(r.ownerWorkspace) : '';
|
|
286
|
+
return !serverOwner || serverOwner === normalizedCurrentWorkspace;
|
|
287
|
+
}).sort((a, b) => b.request!.timestamp - a.request!.timestamp);
|
|
280
288
|
|
|
281
289
|
// 处理最新的请求
|
|
282
|
-
if (
|
|
283
|
-
const newest =
|
|
290
|
+
if (myRequests.length > 0) {
|
|
291
|
+
const newest = myRequests[0];
|
|
284
292
|
this._activePort = newest.port;
|
|
285
293
|
this._debugInfo.activePort = newest.port;
|
|
286
294
|
this._debugInfo.lastStatus = `找到请求 (端口 ${newest.port})`;
|
|
@@ -289,25 +297,21 @@ class FeedbackViewProvider implements vscode.WebviewViewProvider {
|
|
|
289
297
|
return;
|
|
290
298
|
}
|
|
291
299
|
|
|
292
|
-
//
|
|
300
|
+
// 没有新请求,检查是否有当前请求
|
|
293
301
|
if (this._currentRequest && this._activePort) {
|
|
294
|
-
// 保持当前活跃端口
|
|
295
302
|
this._debugInfo.activePort = this._activePort;
|
|
296
303
|
this._debugInfo.lastStatus = `监听端口 ${this._activePort}`;
|
|
297
304
|
this._updateDebugInfo();
|
|
298
305
|
return;
|
|
299
306
|
}
|
|
300
307
|
|
|
301
|
-
//
|
|
308
|
+
// 没有任何请求
|
|
302
309
|
this._debugInfo.activePort = null;
|
|
303
310
|
|
|
304
|
-
// 更新调试状态
|
|
305
311
|
if (this._debugInfo.connectedPorts.length === 0) {
|
|
306
312
|
this._debugInfo.lastStatus = '未找到 MCP Server';
|
|
307
|
-
} else if (this._debugInfo.mismatchCount > 0) {
|
|
308
|
-
this._debugInfo.lastStatus = `连接 ${this._debugInfo.connectedPorts.length} 个端口,${this._debugInfo.mismatchCount} 个路径不匹配`;
|
|
309
313
|
} else {
|
|
310
|
-
this._debugInfo.lastStatus =
|
|
314
|
+
this._debugInfo.lastStatus = `已连接 ${this._debugInfo.connectedPorts.length} 个端口,等待请求`;
|
|
311
315
|
}
|
|
312
316
|
this._updateDebugInfo();
|
|
313
317
|
} catch (error) {
|
|
@@ -328,10 +332,10 @@ class FeedbackViewProvider implements vscode.WebviewViewProvider {
|
|
|
328
332
|
startTime?: number; // Server 的启动时间
|
|
329
333
|
}> {
|
|
330
334
|
try {
|
|
331
|
-
//
|
|
335
|
+
// 带上工作区路径用于匹配
|
|
332
336
|
const workspacePaths = getWorkspacePaths();
|
|
333
337
|
const workspacePath = workspacePaths.length > 0 ? workspacePaths[0] : '';
|
|
334
|
-
const url = `http://127.0.0.1:${port}/api/feedback/current?workspace=${encodeURIComponent(workspacePath)}
|
|
338
|
+
const url = `http://127.0.0.1:${port}/api/feedback/current?workspace=${encodeURIComponent(workspacePath)}`;
|
|
335
339
|
const response = await this._httpGet(url);
|
|
336
340
|
const parsed = JSON.parse(response);
|
|
337
341
|
|
package/src/mcp-server.ts
CHANGED
|
@@ -79,16 +79,9 @@ class McpFeedbackServer {
|
|
|
79
79
|
// 只有来自同一工作区的轮询才会更新活动时间
|
|
80
80
|
private ownerWorkspace: string | null = null;
|
|
81
81
|
|
|
82
|
-
// Server
|
|
82
|
+
// Server 启动时间
|
|
83
83
|
private readonly startTime: number = Date.now();
|
|
84
84
|
|
|
85
|
-
// 最后活动时间(用于自动退出)
|
|
86
|
-
private lastActivityTime: number = Date.now();
|
|
87
|
-
// 自动退出检查定时器
|
|
88
|
-
private inactivityCheckInterval: NodeJS.Timeout | null = null;
|
|
89
|
-
// 无活动退出时间(2 分钟)
|
|
90
|
-
private readonly INACTIVITY_TIMEOUT = 2 * 60 * 1000;
|
|
91
|
-
|
|
92
85
|
constructor(port: number = 8766) {
|
|
93
86
|
this.port = port;
|
|
94
87
|
|
|
@@ -215,9 +208,6 @@ class McpFeedbackServer {
|
|
|
215
208
|
this.ownerWorkspace = normalize(projectDir);
|
|
216
209
|
debugLog(`Owner workspace set to: ${this.ownerWorkspace}`);
|
|
217
210
|
|
|
218
|
-
// AI 调用 feedback 时更新活动时间
|
|
219
|
-
this.updateActivity();
|
|
220
|
-
|
|
221
211
|
// 创建反馈请求
|
|
222
212
|
this.currentRequest = {
|
|
223
213
|
id: requestId,
|
|
@@ -488,33 +478,6 @@ class McpFeedbackServer {
|
|
|
488
478
|
|
|
489
479
|
// 获取当前反馈请求
|
|
490
480
|
if (req.method === 'GET' && req.url?.startsWith('/api/feedback/current')) {
|
|
491
|
-
// 解析 URL 参数
|
|
492
|
-
const urlObj = new URL(req.url, `http://127.0.0.1:${this.port}`);
|
|
493
|
-
const workspaceParam = urlObj.searchParams.get('workspace') || '';
|
|
494
|
-
const latestStartTimeParam = urlObj.searchParams.get('latestStartTime');
|
|
495
|
-
const latestStartTime = latestStartTimeParam ? parseInt(latestStartTimeParam, 10) : 0;
|
|
496
|
-
|
|
497
|
-
const normalize = (p: string) => p.replace(/\\/g, '/').replace(/\/+$/, '').toLowerCase();
|
|
498
|
-
const normalizedWorkspace = normalize(workspaceParam);
|
|
499
|
-
|
|
500
|
-
// 检查是否应该更新活动时间
|
|
501
|
-
const isWorkspaceMatch = !this.ownerWorkspace || normalizedWorkspace === this.ownerWorkspace;
|
|
502
|
-
|
|
503
|
-
// 更新活动时间的条件:
|
|
504
|
-
// 1. 工作区匹配
|
|
505
|
-
// 2. 并且满足以下任一条件:
|
|
506
|
-
// a. ownerWorkspace 未设置(从未被 AI 调用,保持活动)
|
|
507
|
-
// b. 是最新的 Server(latestStartTime > 0 且 startTime >= latestStartTime)
|
|
508
|
-
const shouldUpdateActivity = isWorkspaceMatch && (
|
|
509
|
-
!this.ownerWorkspace ||
|
|
510
|
-
(latestStartTime > 0 && this.startTime >= latestStartTime)
|
|
511
|
-
);
|
|
512
|
-
|
|
513
|
-
if (shouldUpdateActivity) {
|
|
514
|
-
this.updateActivity();
|
|
515
|
-
}
|
|
516
|
-
// 不满足条件时不更新活动时间,旧的 Server 会在 2 分钟后自动退出
|
|
517
|
-
|
|
518
481
|
res.writeHead(200, { 'Content-Type': 'application/json' });
|
|
519
482
|
// 返回当前请求、ownerWorkspace 和 startTime
|
|
520
483
|
res.end(JSON.stringify({
|
|
@@ -527,9 +490,6 @@ class McpFeedbackServer {
|
|
|
527
490
|
|
|
528
491
|
// 提交反馈
|
|
529
492
|
if (req.method === 'POST' && req.url === '/api/feedback/submit') {
|
|
530
|
-
// 提交反馈一定是来自正确的工作区,更新活动时间
|
|
531
|
-
this.updateActivity();
|
|
532
|
-
|
|
533
493
|
let body = '';
|
|
534
494
|
req.on('data', chunk => {
|
|
535
495
|
body += chunk.toString();
|
|
@@ -621,43 +581,6 @@ class McpFeedbackServer {
|
|
|
621
581
|
});
|
|
622
582
|
}
|
|
623
583
|
|
|
624
|
-
/**
|
|
625
|
-
* 更新最后活动时间
|
|
626
|
-
*/
|
|
627
|
-
private updateActivity(): void {
|
|
628
|
-
this.lastActivityTime = Date.now();
|
|
629
|
-
}
|
|
630
|
-
|
|
631
|
-
/**
|
|
632
|
-
* 启动无活动自动退出检查
|
|
633
|
-
*
|
|
634
|
-
* 退出条件:
|
|
635
|
-
* 1. 没有 currentRequest(即没有请求在等待用户反馈)
|
|
636
|
-
* 2. 超过 2 分钟没有来自对应工作区的轮询
|
|
637
|
-
*
|
|
638
|
-
* 这样:
|
|
639
|
-
* - 窗口打开时:插件轮询会更新活动时间,不会退出
|
|
640
|
-
* - 等待反馈时:有 currentRequest,不会退出
|
|
641
|
-
* - 窗口关闭后:没有轮询,2 分钟后退出
|
|
642
|
-
*/
|
|
643
|
-
private startInactivityCheck(): void {
|
|
644
|
-
// 每分钟检查一次
|
|
645
|
-
this.inactivityCheckInterval = setInterval(() => {
|
|
646
|
-
// 如果有请求正在等待用户反馈,绝对不退出
|
|
647
|
-
if (this.currentRequest) {
|
|
648
|
-
debugLog('Request pending, skipping inactivity check');
|
|
649
|
-
return;
|
|
650
|
-
}
|
|
651
|
-
|
|
652
|
-
const inactiveTime = Date.now() - this.lastActivityTime;
|
|
653
|
-
if (inactiveTime > this.INACTIVITY_TIMEOUT) {
|
|
654
|
-
debugLog(`No activity for ${Math.round(inactiveTime / 1000)}s, auto-exiting...`);
|
|
655
|
-
this.stop();
|
|
656
|
-
process.exit(0);
|
|
657
|
-
}
|
|
658
|
-
}, 60 * 1000);
|
|
659
|
-
}
|
|
660
|
-
|
|
661
584
|
/**
|
|
662
585
|
* 启动服务器
|
|
663
586
|
*/
|
|
@@ -672,11 +595,7 @@ class McpFeedbackServer {
|
|
|
672
595
|
const transport = new StdioServerTransport();
|
|
673
596
|
await this.server.connect(transport);
|
|
674
597
|
|
|
675
|
-
// 启动无活动自动退出检查
|
|
676
|
-
this.startInactivityCheck();
|
|
677
|
-
|
|
678
598
|
debugLog('MCP Server started successfully');
|
|
679
|
-
debugLog(`Auto-exit after ${this.INACTIVITY_TIMEOUT / 1000}s of inactivity`);
|
|
680
599
|
debugLog('Waiting for tool calls from AI agent...');
|
|
681
600
|
} catch (error) {
|
|
682
601
|
debugLog(`Failed to start server: ${error}`);
|
|
@@ -689,12 +608,6 @@ class McpFeedbackServer {
|
|
|
689
608
|
*/
|
|
690
609
|
stop(): void {
|
|
691
610
|
debugLog('Stopping server...');
|
|
692
|
-
|
|
693
|
-
// 清理无活动检查定时器
|
|
694
|
-
if (this.inactivityCheckInterval) {
|
|
695
|
-
clearInterval(this.inactivityCheckInterval);
|
|
696
|
-
this.inactivityCheckInterval = null;
|
|
697
|
-
}
|
|
698
611
|
|
|
699
612
|
// 关闭 HTTP 服务器
|
|
700
613
|
if (this.httpServer) {
|
|
@@ -733,6 +646,20 @@ async function main() {
|
|
|
733
646
|
process.exit(0);
|
|
734
647
|
});
|
|
735
648
|
|
|
649
|
+
// 监听 stdin 关闭(Cursor 关闭时会触发)
|
|
650
|
+
process.stdin.on('close', () => {
|
|
651
|
+
debugLog('stdin closed, exiting...');
|
|
652
|
+
server.stop();
|
|
653
|
+
// 给 100ms 缓冲后强制退出
|
|
654
|
+
setTimeout(() => process.exit(0), 100);
|
|
655
|
+
});
|
|
656
|
+
|
|
657
|
+
process.stdin.on('end', () => {
|
|
658
|
+
debugLog('stdin ended, exiting...');
|
|
659
|
+
server.stop();
|
|
660
|
+
setTimeout(() => process.exit(0), 100);
|
|
661
|
+
});
|
|
662
|
+
|
|
736
663
|
// 捕获未处理的异常,记录日志但不退出进程
|
|
737
664
|
process.on('uncaughtException', (error) => {
|
|
738
665
|
debugLog(`Uncaught exception (continuing): ${error}`);
|