cursor-feedback 1.0.9 → 1.1.1
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/.husky/pre-commit +2 -0
- package/.husky/pre-push +1 -0
- package/.versionrc.json +15 -0
- package/CHANGELOG.md +68 -2
- package/README.md +3 -3
- package/README_CN.md +3 -3
- package/dist/mcp-server.js +70 -9
- package/dist/mcp-server.js.map +1 -1
- package/package.json +16 -4
- package/scripts/check-changelog.js +42 -0
- package/src/mcp-server.ts +78 -9
package/.husky/pre-push
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
npm run check-changelog
|
package/.versionrc.json
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"types": [
|
|
3
|
+
{ "type": "feat", "section": "Features" },
|
|
4
|
+
{ "type": "fix", "section": "Bug Fixes" },
|
|
5
|
+
{ "type": "perf", "section": "Performance Improvements" },
|
|
6
|
+
{ "type": "revert", "section": "Reverts" },
|
|
7
|
+
{ "type": "docs", "section": "Documentation", "hidden": false },
|
|
8
|
+
{ "type": "style", "section": "Styles", "hidden": false },
|
|
9
|
+
{ "type": "chore", "section": "Chores", "hidden": false },
|
|
10
|
+
{ "type": "refactor", "section": "Code Refactoring", "hidden": false },
|
|
11
|
+
{ "type": "test", "section": "Tests", "hidden": false },
|
|
12
|
+
{ "type": "build", "section": "Build System", "hidden": false },
|
|
13
|
+
{ "type": "ci", "section": "Continuous Integration", "hidden": false }
|
|
14
|
+
]
|
|
15
|
+
}
|
package/CHANGELOG.md
CHANGED
|
@@ -1,8 +1,74 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
All notable changes to this project will be documented in this file.
|
|
3
|
+
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
### [1.1.1](https://github.com/jianger666/cursor-feedback-extension/compare/v1.1.0...v1.1.1) (2026-06-02)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* update check-changelog script to support standard-version format ([b605ed5](https://github.com/jianger666/cursor-feedback-extension/commit/b605ed5b937364fac7bd98892dfce78885e16877))
|
|
11
|
+
* 修复 Cursor 关闭后 MCP server 进程残留及 CPU 占满 ([59dafc0](https://github.com/jianger666/cursor-feedback-extension/commit/59dafc08a5284ac3eb9111b2b1a3592b4412554a))
|
|
12
|
+
|
|
13
|
+
## 1.1.0 (2026-01-29)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Features
|
|
17
|
+
|
|
18
|
+
* add i18n support and language auto-detection ([d2f054d](https://github.com/jianger666/cursor-feedback-extension/commit/d2f054de7d4dd94549a94a8b43a9a02b68cdd9f6))
|
|
19
|
+
* complete cursor-feedback extension ([4725c73](https://github.com/jianger666/cursor-feedback-extension/commit/4725c732c4370c8c87076932ce551adce184f179))
|
|
20
|
+
* v0.1.10 多项改进 ([f65c12e](https://github.com/jianger666/cursor-feedback-extension/commit/f65c12e9c6aa027fa23c3ca007ffdf824e2be69a))
|
|
21
|
+
* v1.0.0 - 简化 MCP Server 生命周期管理 ([7ad1545](https://github.com/jianger666/cursor-feedback-extension/commit/7ad1545859781ecfd4e9995b8223fb538a494925))
|
|
22
|
+
* 添加多项新功能 ([304a38a](https://github.com/jianger666/cursor-feedback-extension/commit/304a38ae3ba5172adcb48ab1ab828a2775dbf5c4))
|
|
23
|
+
* 添加调试信息显示功能,hover 调试图标可查看端口、路径等诊断信息 ([056c03c](https://github.com/jianger666/cursor-feedback-extension/commit/056c03c9b2f52d5e515348ff348283a67dd8c9cf))
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
### Bug Fixes
|
|
27
|
+
|
|
28
|
+
* correct button image size (126x28) ([6812364](https://github.com/jianger666/cursor-feedback-extension/commit/68123641416ee7e38bd33ff54e465f2953789322))
|
|
29
|
+
* replace VS Marketplace badges with Open VSX badges to fix parsing error ([eff0f9b](https://github.com/jianger666/cursor-feedback-extension/commit/eff0f9b691baacb80d67e57438f72016a8d8256f))
|
|
30
|
+
* specify image dimensions in HTML for consistent rendering ([ffc9be3](https://github.com/jianger666/cursor-feedback-extension/commit/ffc9be32a57e15680c68ac1c0004de91e3f203ab))
|
|
31
|
+
* 使用插件启动时间判断新旧请求,避免自动切换到旧请求 ([5b5eb48](https://github.com/jianger666/cursor-feedback-extension/commit/5b5eb48b2f877a898ddb810cb4a960dd5876b59e))
|
|
32
|
+
* 修复 tooltip 超出边界导致滚动条闪烁的问题 ([dd6ca14](https://github.com/jianger666/cursor-feedback-extension/commit/dd6ca147828552600f4bea6e1c8d35d074dc2d57))
|
|
33
|
+
* 修复多项目窗口互相抢占 feedback 的问题 ([ec3ae2c](https://github.com/jianger666/cursor-feedback-extension/commit/ec3ae2c7de01cfcd72fd97b6128e9b462879cd79))
|
|
34
|
+
* 修复调试信息 tooltip 导致滚动条闪烁的问题 ([4d562cc](https://github.com/jianger666/cursor-feedback-extension/commit/4d562ccd3370c3f284c1c2570ed12a18c60bb6bb))
|
|
35
|
+
* 修复重启后无法收到新feedback的问题 ([88e2905](https://github.com/jianger666/cursor-feedback-extension/commit/88e290517e6d341c20a2f0c7ede4d7686c22e5ba))
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
### Documentation
|
|
39
|
+
|
|
40
|
+
* improve description clarity for better understanding ([84d3b68](https://github.com/jianger666/cursor-feedback-extension/commit/84d3b685fe740364daebe96666b0a3e7f87d1be3))
|
|
41
|
+
* 更新 README,优化一键安装 MCP Server 的说明 ([8477ba1](https://github.com/jianger666/cursor-feedback-extension/commit/8477ba15e32a72ef741dfd873f8f7466680209d8))
|
|
42
|
+
* 更新 README,移除一键安装 MCP Server 的图像链接 ([84dacd0](https://github.com/jianger666/cursor-feedback-extension/commit/84dacd088458cded188e38a409cd64e6c0246a4d))
|
|
43
|
+
* 更新 README,移除禁止右侧窗口显示回复内容的规则 ([74ff72f](https://github.com/jianger666/cursor-feedback-extension/commit/74ff72f88f2bed8bcf6c72269c5418ba346b9c0f))
|
|
44
|
+
* 更新 README.md,修正插件名称并添加文件支持说明 ([d8c7b09](https://github.com/jianger666/cursor-feedback-extension/commit/d8c7b099c0724268f5357f2ed226461787ede551))
|
|
45
|
+
* 更新 User Rules,添加禁止右侧窗口回复的规则 ([e26fcca](https://github.com/jianger666/cursor-feedback-extension/commit/e26fcca082133805225b6544e0438b2f06d9927f))
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
### Chores
|
|
49
|
+
|
|
50
|
+
* add automatic changelog check with husky hooks ([2afac95](https://github.com/jianger666/cursor-feedback-extension/commit/2afac953cec125b5eab8c62f7f32fffda3b55d1f))
|
|
51
|
+
* add automatic changelog update script ([66a59d3](https://github.com/jianger666/cursor-feedback-extension/commit/66a59d3b2251ef2c98c65d1084a4932c0d2151c9))
|
|
52
|
+
* bump version to 0.1.25 and update README with user rules for better AI interaction ([c350f90](https://github.com/jianger666/cursor-feedback-extension/commit/c350f901e24aa10ed39ea208667042294fc60151))
|
|
53
|
+
* bump version to 0.1.33 and enhance feedback request handling with workspace and server start time tracking ([5f5d82c](https://github.com/jianger666/cursor-feedback-extension/commit/5f5d82c398f1505aa996e93f1043a09cb700b58d))
|
|
54
|
+
* bump version to 0.1.8 ([b77a2df](https://github.com/jianger666/cursor-feedback-extension/commit/b77a2dfb4c56a1743cc5d3301695854ac1ee165b))
|
|
55
|
+
* bump version to 1.0.9 and update icon ([ce1f310](https://github.com/jianger666/cursor-feedback-extension/commit/ce1f31081eaab77cd41769821fa06dc1b4c20fed))
|
|
56
|
+
* remove custom changelog script (replaced by standard-version) ([0f72cca](https://github.com/jianger666/cursor-feedback-extension/commit/0f72ccac85fef196ab13f3a5e16bbb25c0df36a3))
|
|
57
|
+
* replace custom script with standard-version for changelog automation ([3e9be86](https://github.com/jianger666/cursor-feedback-extension/commit/3e9be86c711be0f52012420f54825de32d341da1))
|
|
58
|
+
* replace SVG button with PNG for VSCE compatibility ([e821905](https://github.com/jianger666/cursor-feedback-extension/commit/e8219053382e4eefa918b95e3712badfa8ea2680))
|
|
59
|
+
* v1.0.1 - 优化工具描述 ([529088b](https://github.com/jianger666/cursor-feedback-extension/commit/529088b6e1c3b93139a2ceed87ec2ba9ef99ae84))
|
|
60
|
+
* v1.0.2 - 更新 WebView 结构与样式 ([4e91d00](https://github.com/jianger666/cursor-feedback-extension/commit/4e91d009f4224781eada94d4ab8389c01ea94fad))
|
|
61
|
+
* v1.0.4 - 更新版本与优化用户反馈体验 ([359f870](https://github.com/jianger666/cursor-feedback-extension/commit/359f8700dc527dc70123ea62e483628352fcd967))
|
|
62
|
+
* v1.0.5 - 更新版本并优化 README 中一键安装 MCP Server 的描述 ([7d21c8e](https://github.com/jianger666/cursor-feedback-extension/commit/7d21c8e9619ddb75603abc3b94c13237913df341))
|
|
63
|
+
* v1.0.6 - update version and add icon to package.json ([a7575b2](https://github.com/jianger666/cursor-feedback-extension/commit/a7575b258a92491bb7c1a9d3ede0f47decbbc7ad))
|
|
64
|
+
* 将并行端口扫描范围从30减少到20 ([d1e0ee5](https://github.com/jianger666/cursor-feedback-extension/commit/d1e0ee55c83701a4cbc98aa97c6032fc7e7ebdb7))
|
|
65
|
+
* 添加 .env 到 gitignore ([ed1065b](https://github.com/jianger666/cursor-feedback-extension/commit/ed1065b78ead0ad65565f84aa75dee40a6f620bd))
|
|
66
|
+
|
|
67
|
+
## [1.0.9](https://github.com/jianger666/cursor-feedback-extension/releases/tag/v1.0.9) (2026-01-29)
|
|
68
|
+
|
|
69
|
+
### Chores
|
|
70
|
+
|
|
71
|
+
* update icon and bump version to 1.0.9
|
|
6
72
|
|
|
7
73
|
## [1.0.6](https://github.com/jianger666/cursor-feedback-extension/releases/tag/v1.0.6) (2025-01-29)
|
|
8
74
|
|
package/README.md
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
[中文文档](./README_CN.md)
|
|
4
4
|
|
|
5
|
-
[](https://open-vsx.org/extension/jianger666/cursor-feedback)
|
|
6
|
+
[](https://open-vsx.org/extension/jianger666/cursor-feedback)
|
|
7
7
|
[](https://www.npmjs.com/package/cursor-feedback)
|
|
8
8
|
|
|
9
|
-
**Save your
|
|
9
|
+
**One Cursor conversation, unlimited AI interactions** - Save your monthly request quota! An interactive feedback tool for Cursor that enables unlimited interactions within a single conversation through MCP (Model Context Protocol).
|
|
10
10
|
|
|
11
11
|

|
|
12
12
|
|
package/README_CN.md
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
[English](./README.md)
|
|
4
4
|
|
|
5
|
-
[](https://open-vsx.org/extension/jianger666/cursor-feedback)
|
|
6
|
+
[](https://open-vsx.org/extension/jianger666/cursor-feedback)
|
|
7
7
|
[](https://www.npmjs.com/package/cursor-feedback)
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
**一次 Cursor 对话,无限 AI 交互** - 节省你的月度请求配额!通过 MCP(Model Context Protocol)实现一次对话内无限交互的交互式反馈工具。
|
|
10
10
|
|
|
11
11
|

|
|
12
12
|
|
package/dist/mcp-server.js
CHANGED
|
@@ -76,6 +76,11 @@ class McpFeedbackServer {
|
|
|
76
76
|
this.ownerWorkspace = null;
|
|
77
77
|
// Server 启动时间
|
|
78
78
|
this.startTime = Date.now();
|
|
79
|
+
// 最近一次活动时间(任意 HTTP 轮询 / MCP 调用都会刷新)
|
|
80
|
+
// 用于 watchdog 判定是否所有 Cursor 窗口都已关闭
|
|
81
|
+
this.lastActivityTime = Date.now();
|
|
82
|
+
// 看门狗定时器(兜底退出,防止进程残留 / CPU 占满)
|
|
83
|
+
this.watchdogTimer = null;
|
|
79
84
|
this.port = port;
|
|
80
85
|
this.server = new index_js_1.Server({
|
|
81
86
|
name: 'cursor-feedback-server',
|
|
@@ -149,6 +154,8 @@ class McpFeedbackServer {
|
|
|
149
154
|
});
|
|
150
155
|
// 处理工具调用
|
|
151
156
|
this.server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
|
|
157
|
+
// AI 发起调用,刷新活动时间,避免被 watchdog 误判为闲置
|
|
158
|
+
this.lastActivityTime = Date.now();
|
|
152
159
|
const { name, arguments: args } = request.params;
|
|
153
160
|
try {
|
|
154
161
|
switch (name) {
|
|
@@ -433,8 +440,8 @@ class McpFeedbackServer {
|
|
|
433
440
|
this.httpServer = http.createServer((req, res) => {
|
|
434
441
|
// 包裹整个请求处理逻辑,防止异常导致进程崩溃
|
|
435
442
|
try {
|
|
436
|
-
//
|
|
437
|
-
|
|
443
|
+
// 任何来自插件的 HTTP 请求都视为 Cursor 仍存活的心跳(供 watchdog 判定)
|
|
444
|
+
this.lastActivityTime = Date.now();
|
|
438
445
|
// 设置 CORS 头
|
|
439
446
|
res.setHeader('Access-Control-Allow-Origin', '*');
|
|
440
447
|
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
|
|
@@ -554,6 +561,8 @@ class McpFeedbackServer {
|
|
|
554
561
|
// 启动 MCP stdio 传输
|
|
555
562
|
const transport = new stdio_js_1.StdioServerTransport();
|
|
556
563
|
await this.server.connect(transport);
|
|
564
|
+
// 启动看门狗兜底退出(防止 Cursor 关闭后进程残留 / CPU 占满)
|
|
565
|
+
this.startWatchdog();
|
|
557
566
|
debugLog('MCP Server started successfully');
|
|
558
567
|
debugLog('Waiting for tool calls from AI agent...');
|
|
559
568
|
}
|
|
@@ -562,11 +571,50 @@ class McpFeedbackServer {
|
|
|
562
571
|
throw error;
|
|
563
572
|
}
|
|
564
573
|
}
|
|
574
|
+
/**
|
|
575
|
+
* 看门狗:兜底退出机制
|
|
576
|
+
*
|
|
577
|
+
* 背景:经 npx / npm exec 启动时,进程链为 Cursor → npm exec → node。
|
|
578
|
+
* Cursor 关闭后,stdin 的 EOF 在该中间层下不可靠,node 易变成孤儿进程残留;
|
|
579
|
+
* 叠加 HTTP server 是常驻 active handle,进程无法自然退出。
|
|
580
|
+
*
|
|
581
|
+
* 两道防线:
|
|
582
|
+
* 1) 父进程死亡(被 init/launchd 收养,ppid 变为 1)→ 立即退出;
|
|
583
|
+
* 2) 超过 IDLE_TIMEOUT 没有任何插件轮询 / MCP 调用 → 判定所有 Cursor 窗口已关闭 → 退出。
|
|
584
|
+
* (插件每秒轮询 HTTP,只要还有任意 Cursor 窗口存活就会持续刷新活动时间)
|
|
585
|
+
*/
|
|
586
|
+
startWatchdog() {
|
|
587
|
+
const IDLE_TIMEOUT = process.env.MCP_FEEDBACK_IDLE_TIMEOUT
|
|
588
|
+
? parseInt(process.env.MCP_FEEDBACK_IDLE_TIMEOUT, 10)
|
|
589
|
+
: 30000;
|
|
590
|
+
this.watchdogTimer = setInterval(() => {
|
|
591
|
+
// 防线 1:父进程已死,自己成了孤儿进程
|
|
592
|
+
if (process.ppid === 1) {
|
|
593
|
+
debugLog('Parent process gone (ppid=1), exiting...');
|
|
594
|
+
this.stop();
|
|
595
|
+
process.exit(0);
|
|
596
|
+
}
|
|
597
|
+
// 防线 2:长时间无任何活动 = Cursor 已全部关闭
|
|
598
|
+
const idle = Date.now() - this.lastActivityTime;
|
|
599
|
+
if (idle > IDLE_TIMEOUT) {
|
|
600
|
+
debugLog(`No activity for ${idle}ms (> ${IDLE_TIMEOUT}ms), assuming Cursor closed, exiting...`);
|
|
601
|
+
this.stop();
|
|
602
|
+
process.exit(0);
|
|
603
|
+
}
|
|
604
|
+
}, 5000);
|
|
605
|
+
// 不让 watchdog 自身阻止进程的自然退出
|
|
606
|
+
this.watchdogTimer.unref();
|
|
607
|
+
}
|
|
565
608
|
/**
|
|
566
609
|
* 停止服务器
|
|
567
610
|
*/
|
|
568
611
|
stop() {
|
|
569
612
|
debugLog('Stopping server...');
|
|
613
|
+
// 关闭看门狗定时器
|
|
614
|
+
if (this.watchdogTimer) {
|
|
615
|
+
clearInterval(this.watchdogTimer);
|
|
616
|
+
this.watchdogTimer = null;
|
|
617
|
+
}
|
|
570
618
|
// 关闭 HTTP 服务器
|
|
571
619
|
if (this.httpServer) {
|
|
572
620
|
this.httpServer.close();
|
|
@@ -610,15 +658,28 @@ async function main() {
|
|
|
610
658
|
server.stop();
|
|
611
659
|
setTimeout(() => process.exit(0), 100);
|
|
612
660
|
});
|
|
613
|
-
//
|
|
661
|
+
// stdin 出错(父进程经 npx 中间层异常断开时可能触发)同样退出,避免残留
|
|
662
|
+
process.stdin.on('error', (error) => {
|
|
663
|
+
debugLog(`stdin error, exiting: ${error}`);
|
|
664
|
+
server.stop();
|
|
665
|
+
setTimeout(() => process.exit(0), 100);
|
|
666
|
+
});
|
|
667
|
+
// 捕获未处理的异常:记录日志后退出。
|
|
668
|
+
// ⚠️ 绝不能“吞掉异常继续运行”——否则 stdin 在父进程断开后产生的反复错误会形成
|
|
669
|
+
// busy-loop,导致 CPU 占满且进程永不退出(本次修复的核心症状之一)。
|
|
614
670
|
process.on('uncaughtException', (error) => {
|
|
615
|
-
debugLog(`Uncaught exception
|
|
616
|
-
|
|
671
|
+
debugLog(`Uncaught exception, exiting: ${error?.stack || error}`);
|
|
672
|
+
try {
|
|
673
|
+
server.stop();
|
|
674
|
+
}
|
|
675
|
+
catch {
|
|
676
|
+
// ignore
|
|
677
|
+
}
|
|
678
|
+
process.exit(1);
|
|
617
679
|
});
|
|
618
|
-
// 捕获未处理的 Promise
|
|
619
|
-
process.on('unhandledRejection', (reason
|
|
620
|
-
debugLog(`Unhandled rejection
|
|
621
|
-
// 不退出进程,让 MCP 连接保持
|
|
680
|
+
// 捕获未处理的 Promise 拒绝(仅记录;Promise 拒绝本身不会造成 busy-loop)
|
|
681
|
+
process.on('unhandledRejection', (reason) => {
|
|
682
|
+
debugLog(`Unhandled rejection: ${reason}`);
|
|
622
683
|
});
|
|
623
684
|
await server.start();
|
|
624
685
|
}
|
package/dist/mcp-server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":";;AACA;;;;;;;;;;;;;;;;GAgBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,wEAAmE;AACnE,wEAAiF;AACjF,iEAG4C;AAC5C,2CAA6B;AAC7B,uCAAyB;AAEzB,+BAA+B;AAC/B,SAAS,QAAQ,CAAC,OAAe;IAC/B,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,OAAO,CAAC,KAAK,CAAC,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC,CAAC;AAC7C,CAAC;AA2BD;;GAEG;AACH,MAAM,iBAAiB;IAsBrB,YAAY,OAAe,IAAI;QApBvB,eAAU,GAAuB,IAAI,CAAC;QAG9C,WAAW;QACH,oBAAe,GAIlB,IAAI,GAAG,EAAE,CAAC;QAEf,SAAS;QACD,mBAAc,GAA2B,IAAI,CAAC;QAEtD,+BAA+B;QAC/B,uBAAuB;QACf,mBAAc,GAAkB,IAAI,CAAC;QAE7C,cAAc;QACG,cAAS,GAAW,IAAI,CAAC,GAAG,EAAE,CAAC;QAG9C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,IAAI,CAAC,MAAM,GAAG,IAAI,iBAAM,CACtB;YACE,IAAI,EAAE,wBAAwB;YAC9B,OAAO,EAAE,OAAO;SACjB,EACD;YACE,YAAY,EAAE;gBACZ,KAAK,EAAE,EAAE;aACV;SACF,CACF,CAAC;QAEF,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAEO,aAAa;QACnB,SAAS;QACT,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,iCAAsB,EAAE,KAAK,IAAI,EAAE;YAC/D,OAAO;gBACL,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,sBAAsB;wBAC5B,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;8CAoBqB;wBAClC,WAAW,EAAE;4BACX,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE;gCACV,iBAAiB,EAAE;oCACjB,IAAI,EAAE,QAAQ;oCACd,WAAW,EAAE,0HAA0H;iCACxI;gCACD,OAAO,EAAE;oCACP,IAAI,EAAE,QAAQ;oCACd,WAAW,EAAE,kEAAkE;oCAC/E,OAAO,EAAE,WAAW;iCACrB;gCACD,OAAO,EAAE;oCACP,IAAI,EAAE,QAAQ;oCACd,WAAW,EAAE,iFAAiF;oCAC9F,OAAO,EAAE,GAAG;iCACb;6BACF;4BACD,QAAQ,EAAE,CAAC,mBAAmB,CAAC;yBAChC;qBACF;oBACD;wBACE,IAAI,EAAE,iBAAiB;wBACvB,WAAW,EAAE,oCAAoC;wBACjD,WAAW,EAAE;4BACX,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE,EAAE;yBACf;qBACF;iBACF;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,SAAS;QACT,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,gCAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACrE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YAEjD,IAAI,CAAC;gBACH,QAAQ,IAAI,EAAE,CAAC;oBACb,KAAK,sBAAsB;wBACzB,OAAO,MAAM,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;oBACpD,KAAK,iBAAiB;wBACpB,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBACpC;wBACE,OAAO;4BACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,EAAE,CAAC;4BAC1D,OAAO,EAAE,IAAI;yBACd,CAAC;gBACN,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,QAAQ,CAAC,iBAAiB,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;gBAC5C,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,KAAK,EAAE,EAAE,CAAC;oBACzD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,yBAAyB,CAAC,IAAyC;QAI/E,8BAA8B;QAC9B,IAAI,CAAC,IAAI,EAAE,iBAAiB,EAAE,CAAC;YAC7B,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YAClD,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,qFAAqF,cAAc,EAAE;qBAC5G,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,iBAA2B,CAAC;QACpD,uBAAuB;QACvB,MAAM,OAAO,GAAI,IAAI,EAAE,OAAkB,IAAK,IAAI,EAAE,OAAkB,IAAI,WAAW,CAAC;QACtF,kCAAkC;QAClC,4BAA4B;QAC5B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5G,MAAM,OAAO,GAAG,UAAU,IAAK,IAAI,EAAE,OAAkB,IAAI,GAAG,CAAC;QAE/D,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAE3C,+CAA+C;QAC/C,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;QACzF,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;QAC5C,QAAQ,CAAC,2BAA2B,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QAE3D,SAAS;QACT,IAAI,CAAC,cAAc,GAAG;YACpB,EAAE,EAAE,SAAS;YACb,OAAO;YACP,UAAU;YACV,OAAO;YACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QAEF,QAAQ,CAAC,6BAA6B,SAAS,EAAE,CAAC,CAAC;QACnD,QAAQ,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;QAChC,QAAQ,CAAC,YAAY,UAAU,EAAE,CAAC,CAAC;QACnC,QAAQ,CAAC,YAAY,OAAO,GAAG,CAAC,CAAC;QACjC,QAAQ,CAAC,sDAAsD,CAAC,CAAC;QAEjE,IAAI,CAAC;YACH,SAAS;YACT,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC;YAErE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,QAAQ,CAAC,yCAAyC,CAAC,CAAC;gBACpD,wCAAwC;gBACxC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,OAAO,CAAC;gBACzD,MAAM,cAAc,GAAG,SAAS;oBAC9B,CAAC,CAAC,+DAA+D;oBACjE,CAAC,CAAC,yCAAyC,CAAC;gBAC9C,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,cAAc;yBACrB;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,QAAQ,CAAC,sBAAsB,MAAM,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YAEpF,MAAM,YAAY,GAA6E,EAAE,CAAC;YAElG,SAAS;YACT,IAAI,YAAY,GAAG,EAAE,CAAC;YAEtB,SAAS;YACT,IAAI,MAAM,CAAC,oBAAoB,EAAE,CAAC;gBAChC,YAAY,IAAI,0BAA0B,MAAM,CAAC,oBAAoB,EAAE,CAAC;YAC1E,CAAC;YAED,WAAW;YACX,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5D,QAAQ,CAAC,cAAc,MAAM,CAAC,aAAa,CAAC,MAAM,iBAAiB,CAAC,CAAC;gBACrE,YAAY,IAAI,8BAA8B,CAAC;gBAC/C,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;oBAC5C,YAAY,IAAI,GAAG,QAAQ,IAAI,CAAC;gBAClC,CAAC;gBACD,YAAY,IAAI,0DAA0D,CAAC;YAC7E,CAAC;YAED,IAAI,YAAY,EAAE,CAAC;gBACjB,YAAY,CAAC,IAAI,CAAC;oBAChB,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,YAAY;iBACnB,CAAC,CAAC;YACL,CAAC;YAED,OAAO;YACP,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9C,QAAQ,CAAC,cAAc,MAAM,CAAC,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;gBACtD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBAChC,YAAY,CAAC,IAAI,CAAC;wBAChB,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;qBACrC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,YAAY,CAAC,IAAI,CAAC;oBAChB,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,oCAAoC;iBAC3C,CAAC,CAAC;YACL,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,8BAA8B,KAAK,EAAE,CAAC,CAAC;YAChD,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,8BAA8B,KAAK,EAAE;qBAC5C;iBACF;aACF,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,SAAiB,EAAE,SAAiB;QAC1D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,QAAQ,CAAC,WAAW,SAAS,YAAY,CAAC,CAAC;gBAC3C,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACvC,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,EAAE,SAAS,CAAC,CAAC;YAEd,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE;gBAClC,OAAO;gBACP,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;gBAC3B,OAAO;aACR,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,mBAAmB;QAGzB,MAAM,UAAU,GAAG;YACjB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,WAAW,EAAE,OAAO,CAAC,OAAO;YAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;YACvB,aAAa,EAAE,mBAAmB;YAClC,aAAa,EAAE,IAAI,CAAC,IAAI;YACxB,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAC;QAEF,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;iBAC1C;aACF;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,QAAgB;QAClC,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QACpD,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,KAAK,CAAC;YACX,KAAK,MAAM;gBACT,OAAO,YAAY,CAAC;YACtB,KAAK,KAAK;gBACR,OAAO,WAAW,CAAC;YACrB,KAAK,KAAK;gBACR,OAAO,WAAW,CAAC;YACrB,KAAK,MAAM;gBACT,OAAO,YAAY,CAAC;YACtB;gBACE,OAAO,WAAW,CAAC;QACvB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,iBAAiB;QACvB,OAAO,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IACxE,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB,CAAC,IAAY;QAC1C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CACtB;gBACE,QAAQ,EAAE,WAAW;gBACrB,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,IAAI;aACd,EACD,CAAC,GAAG,EAAE,EAAE;gBACN,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC;gBAC3C,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;oBACjB,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAChC,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;4BAC3B,QAAQ,CAAC,qCAAqC,IAAI,0BAA0B,CAAC,CAAC;4BAC9E,WAAW;4BACX,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gCACnC,OAAO,CAAC,IAAI,CAAC,CAAC;4BAChB,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;gCACZ,OAAO,CAAC,KAAK,CAAC,CAAC;4BACjB,CAAC,CAAC,CAAC;wBACL,CAAC;6BAAM,CAAC;4BACN,OAAO,CAAC,KAAK,CAAC,CAAC;wBACjB,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,OAAO,CAAC,KAAK,CAAC,CAAC;oBACjB,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CACF,CAAC;YACF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YACtC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;gBACrB,GAAG,CAAC,OAAO,EAAE,CAAC;gBACd,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,eAAe,CAAC,IAAY;QACxC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CACtB;gBACE,QAAQ,EAAE,WAAW;gBACrB,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,IAAI;aACd,EACD,CAAC,GAAG,EAAE,EAAE;gBACN,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBACzB,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;oBACjB,QAAQ,CAAC,iCAAiC,IAAI,EAAE,CAAC,CAAC;oBAClD,UAAU;oBACV,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBAC3B,CAAC,CAAC,CAAC;YACL,CAAC,CACF,CAAC;YACF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACnB,aAAa;gBACb,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;gBACrB,GAAG,CAAC,OAAO,EAAE,CAAC;gBACd,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;YAChD,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBAC/C,wBAAwB;gBACxB,IAAI,CAAC;oBACH,wBAAwB;oBACxB,uBAAuB;oBAEvB,YAAY;oBACZ,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;oBAClD,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,oBAAoB,CAAC,CAAC;oBACpE,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,cAAc,CAAC,CAAC;oBAE9D,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;wBAC7B,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;wBACnB,GAAG,CAAC,GAAG,EAAE,CAAC;wBACV,OAAO;oBACT,CAAC;oBAED,WAAW;oBACX,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,uBAAuB,CAAC,EAAE,CAAC;wBAC3E,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;wBAC3D,oCAAoC;wBACpC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;4BACrB,OAAO,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI;4BACpC,cAAc,EAAE,IAAI,CAAC,cAAc;4BACnC,SAAS,EAAE,IAAI,CAAC,SAAS;yBAC1B,CAAC,CAAC,CAAC;wBACJ,OAAO;oBACT,CAAC;oBAED,OAAO;oBACP,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,sBAAsB,EAAE,CAAC;wBAChE,IAAI,IAAI,GAAG,EAAE,CAAC;wBACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE;4BACrB,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;wBAC3B,CAAC,CAAC,CAAC;wBACH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;4BACjB,IAAI,CAAC;gCACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAsD,CAAC;gCACnF,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;gCAErC,QAAQ,CAAC,6CAA6C,SAAS,EAAE,CAAC,CAAC;gCAEnE,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gCACpD,IAAI,OAAO,EAAE,CAAC;oCACZ,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oCAC9B,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oCAC1B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oCAEvC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;oCAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gCAC7C,CAAC;qCAAM,CAAC;oCACN,QAAQ,CAAC,WAAW,SAAS,YAAY,CAAC,CAAC;oCAC3C,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;oCAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC;gCAC1D,CAAC;4BACH,CAAC;4BAAC,OAAO,KAAK,EAAE,CAAC;gCACf,QAAQ,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;gCAC3C,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;gCAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;4BAC7D,CAAC;wBACH,CAAC,CAAC,CAAC;wBACH,OAAO;oBACT,CAAC;oBAED,OAAO;oBACP,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,GAAG,KAAK,aAAa,EAAE,CAAC;wBACtD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;wBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;4BACrB,MAAM,EAAE,IAAI;4BACZ,OAAO,EAAE,OAAO;4BAChB,iBAAiB,EAAE,IAAI,CAAC,cAAc,KAAK,IAAI;4BAC/C,GAAG,EAAE,OAAO,CAAC,GAAG;yBACjB,CAAC,CAAC,CAAC;wBACJ,OAAO;oBACT,CAAC;oBAED,oBAAoB;oBACpB,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,eAAe,EAAE,CAAC;wBACzD,QAAQ,CAAC,wDAAwD,CAAC,CAAC;wBACnE,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;wBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC;wBAExE,eAAe;wBACf,UAAU,CAAC,GAAG,EAAE;4BACd,IAAI,CAAC,IAAI,EAAE,CAAC;4BACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBAClB,CAAC,EAAE,GAAG,CAAC,CAAC;wBACR,OAAO;oBACT,CAAC;oBAEC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;oBACnB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACvB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,QAAQ,CAAC,uBAAuB,KAAK,EAAE,CAAC,CAAC;oBACzC,IAAI,CAAC;wBACH,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;wBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;oBAC9D,CAAC;oBAAC,MAAM,CAAC;wBACP,cAAc;oBAChB,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,GAA0B,EAAE,EAAE;gBAC/D,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAC9B,4CAA4C;oBAC5C,QAAQ,CAAC,QAAQ,IAAI,CAAC,IAAI,yCAAyC,CAAC,CAAC;oBACrE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC;oBACzB,IAAI,CAAC,IAAI,EAAE,CAAC;oBACZ,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACrD,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,GAAG,CAAC,CAAC;gBACd,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE;gBAClD,QAAQ,CAAC,6CAA6C,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBACnE,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,CAAC;YACH,QAAQ,CAAC,iCAAiC,CAAC,CAAC;YAE5C,cAAc;YACd,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAE7B,kBAAkB;YAClB,MAAM,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;YAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAErC,QAAQ,CAAC,iCAAiC,CAAC,CAAC;YAC5C,QAAQ,CAAC,yCAAyC,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;YAC7C,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI;QACF,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QAE/B,cAAc;QACd,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;QAED,WAAW;QACX,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC/C,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAE7B,aAAa;QACb,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC7B,CAAC;CACF;AAED,MAAM;AACN,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,KAAK,CAAC;IACnB,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAE3C,SAAS;IACT,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxB,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAC5B,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACzB,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAC7B,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,6BAA6B;IAC7B,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QAC7B,QAAQ,CAAC,0BAA0B,CAAC,CAAC;QACrC,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,kBAAkB;QAClB,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;QAC3B,QAAQ,CAAC,yBAAyB,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,sBAAsB;IACtB,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE;QACxC,QAAQ,CAAC,oCAAoC,KAAK,EAAE,CAAC,CAAC;QACtD,mBAAmB;IACrB,CAAC,CAAC,CAAC;IAEH,oBAAoB;IACpB,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;QACnD,QAAQ,CAAC,qCAAqC,MAAM,EAAE,CAAC,CAAC;QACxD,mBAAmB;IACrB,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;AACvB,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":";;AACA;;;;;;;;;;;;;;;;GAgBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,wEAAmE;AACnE,wEAAiF;AACjF,iEAG4C;AAC5C,2CAA6B;AAC7B,uCAAyB;AAEzB,+BAA+B;AAC/B,SAAS,QAAQ,CAAC,OAAe;IAC/B,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,OAAO,CAAC,KAAK,CAAC,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC,CAAC;AAC7C,CAAC;AA2BD;;GAEG;AACH,MAAM,iBAAiB;IA6BrB,YAAY,OAAe,IAAI;QA3BvB,eAAU,GAAuB,IAAI,CAAC;QAG9C,WAAW;QACH,oBAAe,GAIlB,IAAI,GAAG,EAAE,CAAC;QAEf,SAAS;QACD,mBAAc,GAA2B,IAAI,CAAC;QAEtD,+BAA+B;QAC/B,uBAAuB;QACf,mBAAc,GAAkB,IAAI,CAAC;QAE7C,cAAc;QACG,cAAS,GAAW,IAAI,CAAC,GAAG,EAAE,CAAC;QAEhD,oCAAoC;QACpC,mCAAmC;QAC3B,qBAAgB,GAAW,IAAI,CAAC,GAAG,EAAE,CAAC;QAE9C,+BAA+B;QACvB,kBAAa,GAA0B,IAAI,CAAC;QAGlD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,IAAI,CAAC,MAAM,GAAG,IAAI,iBAAM,CACtB;YACE,IAAI,EAAE,wBAAwB;YAC9B,OAAO,EAAE,OAAO;SACjB,EACD;YACE,YAAY,EAAE;gBACZ,KAAK,EAAE,EAAE;aACV;SACF,CACF,CAAC;QAEF,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAEO,aAAa;QACnB,SAAS;QACT,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,iCAAsB,EAAE,KAAK,IAAI,EAAE;YAC/D,OAAO;gBACL,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,sBAAsB;wBAC5B,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;8CAoBqB;wBAClC,WAAW,EAAE;4BACX,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE;gCACV,iBAAiB,EAAE;oCACjB,IAAI,EAAE,QAAQ;oCACd,WAAW,EAAE,0HAA0H;iCACxI;gCACD,OAAO,EAAE;oCACP,IAAI,EAAE,QAAQ;oCACd,WAAW,EAAE,kEAAkE;oCAC/E,OAAO,EAAE,WAAW;iCACrB;gCACD,OAAO,EAAE;oCACP,IAAI,EAAE,QAAQ;oCACd,WAAW,EAAE,iFAAiF;oCAC9F,OAAO,EAAE,GAAG;iCACb;6BACF;4BACD,QAAQ,EAAE,CAAC,mBAAmB,CAAC;yBAChC;qBACF;oBACD;wBACE,IAAI,EAAE,iBAAiB;wBACvB,WAAW,EAAE,oCAAoC;wBACjD,WAAW,EAAE;4BACX,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE,EAAE;yBACf;qBACF;iBACF;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,SAAS;QACT,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,gCAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACrE,oCAAoC;YACpC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACnC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YAEjD,IAAI,CAAC;gBACH,QAAQ,IAAI,EAAE,CAAC;oBACb,KAAK,sBAAsB;wBACzB,OAAO,MAAM,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;oBACpD,KAAK,iBAAiB;wBACpB,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBACpC;wBACE,OAAO;4BACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,EAAE,CAAC;4BAC1D,OAAO,EAAE,IAAI;yBACd,CAAC;gBACN,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,QAAQ,CAAC,iBAAiB,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;gBAC5C,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,KAAK,EAAE,EAAE,CAAC;oBACzD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,yBAAyB,CAAC,IAAyC;QAI/E,8BAA8B;QAC9B,IAAI,CAAC,IAAI,EAAE,iBAAiB,EAAE,CAAC;YAC7B,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YAClD,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,qFAAqF,cAAc,EAAE;qBAC5G,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,iBAA2B,CAAC;QACpD,uBAAuB;QACvB,MAAM,OAAO,GAAI,IAAI,EAAE,OAAkB,IAAK,IAAI,EAAE,OAAkB,IAAI,WAAW,CAAC;QACtF,kCAAkC;QAClC,4BAA4B;QAC5B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5G,MAAM,OAAO,GAAG,UAAU,IAAK,IAAI,EAAE,OAAkB,IAAI,GAAG,CAAC;QAE/D,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAE3C,+CAA+C;QAC/C,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;QACzF,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;QAC5C,QAAQ,CAAC,2BAA2B,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QAE3D,SAAS;QACT,IAAI,CAAC,cAAc,GAAG;YACpB,EAAE,EAAE,SAAS;YACb,OAAO;YACP,UAAU;YACV,OAAO;YACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QAEF,QAAQ,CAAC,6BAA6B,SAAS,EAAE,CAAC,CAAC;QACnD,QAAQ,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;QAChC,QAAQ,CAAC,YAAY,UAAU,EAAE,CAAC,CAAC;QACnC,QAAQ,CAAC,YAAY,OAAO,GAAG,CAAC,CAAC;QACjC,QAAQ,CAAC,sDAAsD,CAAC,CAAC;QAEjE,IAAI,CAAC;YACH,SAAS;YACT,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC;YAErE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,QAAQ,CAAC,yCAAyC,CAAC,CAAC;gBACpD,wCAAwC;gBACxC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,OAAO,CAAC;gBACzD,MAAM,cAAc,GAAG,SAAS;oBAC9B,CAAC,CAAC,+DAA+D;oBACjE,CAAC,CAAC,yCAAyC,CAAC;gBAC9C,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,cAAc;yBACrB;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,QAAQ,CAAC,sBAAsB,MAAM,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YAEpF,MAAM,YAAY,GAA6E,EAAE,CAAC;YAElG,SAAS;YACT,IAAI,YAAY,GAAG,EAAE,CAAC;YAEtB,SAAS;YACT,IAAI,MAAM,CAAC,oBAAoB,EAAE,CAAC;gBAChC,YAAY,IAAI,0BAA0B,MAAM,CAAC,oBAAoB,EAAE,CAAC;YAC1E,CAAC;YAED,WAAW;YACX,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5D,QAAQ,CAAC,cAAc,MAAM,CAAC,aAAa,CAAC,MAAM,iBAAiB,CAAC,CAAC;gBACrE,YAAY,IAAI,8BAA8B,CAAC;gBAC/C,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;oBAC5C,YAAY,IAAI,GAAG,QAAQ,IAAI,CAAC;gBAClC,CAAC;gBACD,YAAY,IAAI,0DAA0D,CAAC;YAC7E,CAAC;YAED,IAAI,YAAY,EAAE,CAAC;gBACjB,YAAY,CAAC,IAAI,CAAC;oBAChB,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,YAAY;iBACnB,CAAC,CAAC;YACL,CAAC;YAED,OAAO;YACP,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9C,QAAQ,CAAC,cAAc,MAAM,CAAC,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;gBACtD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBAChC,YAAY,CAAC,IAAI,CAAC;wBAChB,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;qBACrC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,YAAY,CAAC,IAAI,CAAC;oBAChB,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,oCAAoC;iBAC3C,CAAC,CAAC;YACL,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,8BAA8B,KAAK,EAAE,CAAC,CAAC;YAChD,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,8BAA8B,KAAK,EAAE;qBAC5C;iBACF;aACF,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,SAAiB,EAAE,SAAiB;QAC1D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,QAAQ,CAAC,WAAW,SAAS,YAAY,CAAC,CAAC;gBAC3C,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACvC,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,EAAE,SAAS,CAAC,CAAC;YAEd,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE;gBAClC,OAAO;gBACP,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;gBAC3B,OAAO;aACR,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,mBAAmB;QAGzB,MAAM,UAAU,GAAG;YACjB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,WAAW,EAAE,OAAO,CAAC,OAAO;YAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;YACvB,aAAa,EAAE,mBAAmB;YAClC,aAAa,EAAE,IAAI,CAAC,IAAI;YACxB,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAC;QAEF,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;iBAC1C;aACF;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,QAAgB;QAClC,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QACpD,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,KAAK,CAAC;YACX,KAAK,MAAM;gBACT,OAAO,YAAY,CAAC;YACtB,KAAK,KAAK;gBACR,OAAO,WAAW,CAAC;YACrB,KAAK,KAAK;gBACR,OAAO,WAAW,CAAC;YACrB,KAAK,MAAM;gBACT,OAAO,YAAY,CAAC;YACtB;gBACE,OAAO,WAAW,CAAC;QACvB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,iBAAiB;QACvB,OAAO,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IACxE,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB,CAAC,IAAY;QAC1C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CACtB;gBACE,QAAQ,EAAE,WAAW;gBACrB,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,IAAI;aACd,EACD,CAAC,GAAG,EAAE,EAAE;gBACN,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC;gBAC3C,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;oBACjB,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAChC,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;4BAC3B,QAAQ,CAAC,qCAAqC,IAAI,0BAA0B,CAAC,CAAC;4BAC9E,WAAW;4BACX,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gCACnC,OAAO,CAAC,IAAI,CAAC,CAAC;4BAChB,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;gCACZ,OAAO,CAAC,KAAK,CAAC,CAAC;4BACjB,CAAC,CAAC,CAAC;wBACL,CAAC;6BAAM,CAAC;4BACN,OAAO,CAAC,KAAK,CAAC,CAAC;wBACjB,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,OAAO,CAAC,KAAK,CAAC,CAAC;oBACjB,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CACF,CAAC;YACF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YACtC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;gBACrB,GAAG,CAAC,OAAO,EAAE,CAAC;gBACd,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,eAAe,CAAC,IAAY;QACxC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CACtB;gBACE,QAAQ,EAAE,WAAW;gBACrB,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,IAAI;aACd,EACD,CAAC,GAAG,EAAE,EAAE;gBACN,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBACzB,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;oBACjB,QAAQ,CAAC,iCAAiC,IAAI,EAAE,CAAC,CAAC;oBAClD,UAAU;oBACV,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBAC3B,CAAC,CAAC,CAAC;YACL,CAAC,CACF,CAAC;YACF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACnB,aAAa;gBACb,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;gBACrB,GAAG,CAAC,OAAO,EAAE,CAAC;gBACd,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;YAChD,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBAC/C,wBAAwB;gBACxB,IAAI,CAAC;oBACH,kDAAkD;oBAClD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAEnC,YAAY;oBACZ,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;oBAClD,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,oBAAoB,CAAC,CAAC;oBACpE,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,cAAc,CAAC,CAAC;oBAE9D,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;wBAC7B,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;wBACnB,GAAG,CAAC,GAAG,EAAE,CAAC;wBACV,OAAO;oBACT,CAAC;oBAED,WAAW;oBACX,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,uBAAuB,CAAC,EAAE,CAAC;wBAC3E,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;wBAC3D,oCAAoC;wBACpC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;4BACrB,OAAO,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI;4BACpC,cAAc,EAAE,IAAI,CAAC,cAAc;4BACnC,SAAS,EAAE,IAAI,CAAC,SAAS;yBAC1B,CAAC,CAAC,CAAC;wBACJ,OAAO;oBACT,CAAC;oBAED,OAAO;oBACP,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,sBAAsB,EAAE,CAAC;wBAChE,IAAI,IAAI,GAAG,EAAE,CAAC;wBACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE;4BACrB,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;wBAC3B,CAAC,CAAC,CAAC;wBACH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;4BACjB,IAAI,CAAC;gCACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAsD,CAAC;gCACnF,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;gCAErC,QAAQ,CAAC,6CAA6C,SAAS,EAAE,CAAC,CAAC;gCAEnE,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gCACpD,IAAI,OAAO,EAAE,CAAC;oCACZ,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oCAC9B,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oCAC1B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oCAEvC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;oCAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gCAC7C,CAAC;qCAAM,CAAC;oCACN,QAAQ,CAAC,WAAW,SAAS,YAAY,CAAC,CAAC;oCAC3C,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;oCAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC;gCAC1D,CAAC;4BACH,CAAC;4BAAC,OAAO,KAAK,EAAE,CAAC;gCACf,QAAQ,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;gCAC3C,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;gCAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;4BAC7D,CAAC;wBACH,CAAC,CAAC,CAAC;wBACH,OAAO;oBACT,CAAC;oBAED,OAAO;oBACP,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,GAAG,KAAK,aAAa,EAAE,CAAC;wBACtD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;wBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;4BACrB,MAAM,EAAE,IAAI;4BACZ,OAAO,EAAE,OAAO;4BAChB,iBAAiB,EAAE,IAAI,CAAC,cAAc,KAAK,IAAI;4BAC/C,GAAG,EAAE,OAAO,CAAC,GAAG;yBACjB,CAAC,CAAC,CAAC;wBACJ,OAAO;oBACT,CAAC;oBAED,oBAAoB;oBACpB,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,eAAe,EAAE,CAAC;wBACzD,QAAQ,CAAC,wDAAwD,CAAC,CAAC;wBACnE,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;wBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC;wBAExE,eAAe;wBACf,UAAU,CAAC,GAAG,EAAE;4BACd,IAAI,CAAC,IAAI,EAAE,CAAC;4BACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBAClB,CAAC,EAAE,GAAG,CAAC,CAAC;wBACR,OAAO;oBACT,CAAC;oBAEC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;oBACnB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACvB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,QAAQ,CAAC,uBAAuB,KAAK,EAAE,CAAC,CAAC;oBACzC,IAAI,CAAC;wBACH,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;wBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;oBAC9D,CAAC;oBAAC,MAAM,CAAC;wBACP,cAAc;oBAChB,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,GAA0B,EAAE,EAAE;gBAC/D,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAC9B,4CAA4C;oBAC5C,QAAQ,CAAC,QAAQ,IAAI,CAAC,IAAI,yCAAyC,CAAC,CAAC;oBACrE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC;oBACzB,IAAI,CAAC,IAAI,EAAE,CAAC;oBACZ,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACrD,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,GAAG,CAAC,CAAC;gBACd,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE;gBAClD,QAAQ,CAAC,6CAA6C,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBACnE,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,CAAC;YACH,QAAQ,CAAC,iCAAiC,CAAC,CAAC;YAE5C,cAAc;YACd,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAE7B,kBAAkB;YAClB,MAAM,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;YAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAErC,wCAAwC;YACxC,IAAI,CAAC,aAAa,EAAE,CAAC;YAErB,QAAQ,CAAC,iCAAiC,CAAC,CAAC;YAC5C,QAAQ,CAAC,yCAAyC,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;YAC7C,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACK,aAAa;QACnB,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB;YACxD,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,EAAE,CAAC;YACrD,CAAC,CAAC,KAAK,CAAC;QAEV,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE;YACpC,sBAAsB;YACtB,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACvB,QAAQ,CAAC,0CAA0C,CAAC,CAAC;gBACrD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,+BAA+B;YAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAChD,IAAI,IAAI,GAAG,YAAY,EAAE,CAAC;gBACxB,QAAQ,CAAC,mBAAmB,IAAI,SAAS,YAAY,yCAAyC,CAAC,CAAC;gBAChG,IAAI,CAAC,IAAI,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,0BAA0B;QAC1B,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,IAAI;QACF,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QAE/B,WAAW;QACX,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAClC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC5B,CAAC;QAED,cAAc;QACd,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;QAED,WAAW;QACX,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC/C,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAE7B,aAAa;QACb,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC7B,CAAC;CACF;AAED,MAAM;AACN,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,KAAK,CAAC;IACnB,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAE3C,SAAS;IACT,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxB,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAC5B,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACzB,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAC7B,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,6BAA6B;IAC7B,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QAC7B,QAAQ,CAAC,0BAA0B,CAAC,CAAC;QACrC,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,kBAAkB;QAClB,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;QAC3B,QAAQ,CAAC,yBAAyB,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,2CAA2C;IAC3C,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QAClC,QAAQ,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;QAC3C,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,oBAAoB;IACpB,+CAA+C;IAC/C,8CAA8C;IAC9C,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE;QACxC,QAAQ,CAAC,gCAAgC,KAAK,EAAE,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,oDAAoD;IACpD,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,EAAE;QAC1C,QAAQ,CAAC,wBAAwB,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;AACvB,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cursor-feedback",
|
|
3
3
|
"displayName": "Cursor Feedback",
|
|
4
|
-
"description": "Save your
|
|
5
|
-
"version": "1.
|
|
4
|
+
"description": "One Cursor conversation, unlimited AI interactions - Save your monthly request quota! Interactive feedback loop for AI chat via MCP",
|
|
5
|
+
"version": "1.1.1",
|
|
6
6
|
"icon": "icon.png",
|
|
7
7
|
"author": "jianger666",
|
|
8
8
|
"license": "MIT",
|
|
@@ -54,7 +54,11 @@
|
|
|
54
54
|
"cursorFeedback.language": {
|
|
55
55
|
"type": "string",
|
|
56
56
|
"default": "auto",
|
|
57
|
-
"enum": [
|
|
57
|
+
"enum": [
|
|
58
|
+
"auto",
|
|
59
|
+
"zh-CN",
|
|
60
|
+
"en"
|
|
61
|
+
],
|
|
58
62
|
"enumDescriptions": [
|
|
59
63
|
"Auto detect based on system language",
|
|
60
64
|
"简体中文",
|
|
@@ -107,7 +111,12 @@
|
|
|
107
111
|
"watch": "tsc -watch -p ./",
|
|
108
112
|
"lint": "eslint src --ext ts",
|
|
109
113
|
"start:mcp": "node dist/mcp-server.js",
|
|
110
|
-
"prepublishOnly": "npm run compile"
|
|
114
|
+
"prepublishOnly": "npm run check-changelog && npm run compile",
|
|
115
|
+
"check-changelog": "node scripts/check-changelog.js",
|
|
116
|
+
"release": "standard-version",
|
|
117
|
+
"release:minor": "standard-version --release-as minor",
|
|
118
|
+
"release:major": "standard-version --release-as major",
|
|
119
|
+
"prepare": "husky"
|
|
111
120
|
},
|
|
112
121
|
"devDependencies": {
|
|
113
122
|
"@types/node": "^20.10.0",
|
|
@@ -116,6 +125,9 @@
|
|
|
116
125
|
"@typescript-eslint/eslint-plugin": "^6.13.0",
|
|
117
126
|
"@typescript-eslint/parser": "^6.13.0",
|
|
118
127
|
"eslint": "^8.54.0",
|
|
128
|
+
"husky": "^9.1.7",
|
|
129
|
+
"release-please": "^17.2.0",
|
|
130
|
+
"standard-version": "^9.5.0",
|
|
119
131
|
"typescript": "^5.3.0"
|
|
120
132
|
},
|
|
121
133
|
"dependencies": {
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 检查 changelog 是否需要更新
|
|
5
|
+
* 如果 package.json 中的版本号不在 changelog 中,提示运行 npm run release
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
const fs = require('fs');
|
|
9
|
+
const path = require('path');
|
|
10
|
+
|
|
11
|
+
const packageJsonPath = path.join(__dirname, '..', 'package.json');
|
|
12
|
+
const changelogPath = path.join(__dirname, '..', 'CHANGELOG.md');
|
|
13
|
+
|
|
14
|
+
try {
|
|
15
|
+
// 读取 package.json 获取当前版本
|
|
16
|
+
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
|
|
17
|
+
const currentVersion = packageJson.version;
|
|
18
|
+
|
|
19
|
+
// 读取 CHANGELOG.md
|
|
20
|
+
const changelog = fs.readFileSync(changelogPath, 'utf8');
|
|
21
|
+
|
|
22
|
+
// 检查是否已经包含当前版本
|
|
23
|
+
// 支持两种格式:## [1.1.0] 或 ## 1.1.0
|
|
24
|
+
const escapedVersion = currentVersion.replace(/\./g, '\\.');
|
|
25
|
+
const versionPattern = new RegExp(`## (\\[${escapedVersion}\\]|${escapedVersion}\\s*\\([^)]+\\))`, 'i');
|
|
26
|
+
|
|
27
|
+
if (!versionPattern.test(changelog)) {
|
|
28
|
+
console.error('\n❌ 警告:CHANGELOG.md 中没有找到当前版本 ' + currentVersion);
|
|
29
|
+
console.error('📝 请运行以下命令更新 changelog:');
|
|
30
|
+
console.error(' npm run release # patch 版本');
|
|
31
|
+
console.error(' npm run release:minor # minor 版本');
|
|
32
|
+
console.error(' npm run release:major # major 版本');
|
|
33
|
+
console.error('');
|
|
34
|
+
process.exit(1);
|
|
35
|
+
} else {
|
|
36
|
+
console.log('✓ CHANGELOG.md 已包含版本 ' + currentVersion);
|
|
37
|
+
process.exit(0);
|
|
38
|
+
}
|
|
39
|
+
} catch (error) {
|
|
40
|
+
console.error('检查 changelog 时出错:', error.message);
|
|
41
|
+
process.exit(1);
|
|
42
|
+
}
|
package/src/mcp-server.ts
CHANGED
|
@@ -82,6 +82,13 @@ class McpFeedbackServer {
|
|
|
82
82
|
// Server 启动时间
|
|
83
83
|
private readonly startTime: number = Date.now();
|
|
84
84
|
|
|
85
|
+
// 最近一次活动时间(任意 HTTP 轮询 / MCP 调用都会刷新)
|
|
86
|
+
// 用于 watchdog 判定是否所有 Cursor 窗口都已关闭
|
|
87
|
+
private lastActivityTime: number = Date.now();
|
|
88
|
+
|
|
89
|
+
// 看门狗定时器(兜底退出,防止进程残留 / CPU 占满)
|
|
90
|
+
private watchdogTimer: NodeJS.Timeout | null = null;
|
|
91
|
+
|
|
85
92
|
constructor(port: number = 8766) {
|
|
86
93
|
this.port = port;
|
|
87
94
|
|
|
@@ -163,6 +170,8 @@ class McpFeedbackServer {
|
|
|
163
170
|
|
|
164
171
|
// 处理工具调用
|
|
165
172
|
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
173
|
+
// AI 发起调用,刷新活动时间,避免被 watchdog 误判为闲置
|
|
174
|
+
this.lastActivityTime = Date.now();
|
|
166
175
|
const { name, arguments: args } = request.params;
|
|
167
176
|
|
|
168
177
|
try {
|
|
@@ -480,8 +489,8 @@ class McpFeedbackServer {
|
|
|
480
489
|
this.httpServer = http.createServer((req, res) => {
|
|
481
490
|
// 包裹整个请求处理逻辑,防止异常导致进程崩溃
|
|
482
491
|
try {
|
|
483
|
-
//
|
|
484
|
-
|
|
492
|
+
// 任何来自插件的 HTTP 请求都视为 Cursor 仍存活的心跳(供 watchdog 判定)
|
|
493
|
+
this.lastActivityTime = Date.now();
|
|
485
494
|
|
|
486
495
|
// 设置 CORS 头
|
|
487
496
|
res.setHeader('Access-Control-Allow-Origin', '*');
|
|
@@ -612,6 +621,9 @@ class McpFeedbackServer {
|
|
|
612
621
|
// 启动 MCP stdio 传输
|
|
613
622
|
const transport = new StdioServerTransport();
|
|
614
623
|
await this.server.connect(transport);
|
|
624
|
+
|
|
625
|
+
// 启动看门狗兜底退出(防止 Cursor 关闭后进程残留 / CPU 占满)
|
|
626
|
+
this.startWatchdog();
|
|
615
627
|
|
|
616
628
|
debugLog('MCP Server started successfully');
|
|
617
629
|
debugLog('Waiting for tool calls from AI agent...');
|
|
@@ -621,12 +633,56 @@ class McpFeedbackServer {
|
|
|
621
633
|
}
|
|
622
634
|
}
|
|
623
635
|
|
|
636
|
+
/**
|
|
637
|
+
* 看门狗:兜底退出机制
|
|
638
|
+
*
|
|
639
|
+
* 背景:经 npx / npm exec 启动时,进程链为 Cursor → npm exec → node。
|
|
640
|
+
* Cursor 关闭后,stdin 的 EOF 在该中间层下不可靠,node 易变成孤儿进程残留;
|
|
641
|
+
* 叠加 HTTP server 是常驻 active handle,进程无法自然退出。
|
|
642
|
+
*
|
|
643
|
+
* 两道防线:
|
|
644
|
+
* 1) 父进程死亡(被 init/launchd 收养,ppid 变为 1)→ 立即退出;
|
|
645
|
+
* 2) 超过 IDLE_TIMEOUT 没有任何插件轮询 / MCP 调用 → 判定所有 Cursor 窗口已关闭 → 退出。
|
|
646
|
+
* (插件每秒轮询 HTTP,只要还有任意 Cursor 窗口存活就会持续刷新活动时间)
|
|
647
|
+
*/
|
|
648
|
+
private startWatchdog(): void {
|
|
649
|
+
const IDLE_TIMEOUT = process.env.MCP_FEEDBACK_IDLE_TIMEOUT
|
|
650
|
+
? parseInt(process.env.MCP_FEEDBACK_IDLE_TIMEOUT, 10)
|
|
651
|
+
: 30000;
|
|
652
|
+
|
|
653
|
+
this.watchdogTimer = setInterval(() => {
|
|
654
|
+
// 防线 1:父进程已死,自己成了孤儿进程
|
|
655
|
+
if (process.ppid === 1) {
|
|
656
|
+
debugLog('Parent process gone (ppid=1), exiting...');
|
|
657
|
+
this.stop();
|
|
658
|
+
process.exit(0);
|
|
659
|
+
}
|
|
660
|
+
|
|
661
|
+
// 防线 2:长时间无任何活动 = Cursor 已全部关闭
|
|
662
|
+
const idle = Date.now() - this.lastActivityTime;
|
|
663
|
+
if (idle > IDLE_TIMEOUT) {
|
|
664
|
+
debugLog(`No activity for ${idle}ms (> ${IDLE_TIMEOUT}ms), assuming Cursor closed, exiting...`);
|
|
665
|
+
this.stop();
|
|
666
|
+
process.exit(0);
|
|
667
|
+
}
|
|
668
|
+
}, 5000);
|
|
669
|
+
|
|
670
|
+
// 不让 watchdog 自身阻止进程的自然退出
|
|
671
|
+
this.watchdogTimer.unref();
|
|
672
|
+
}
|
|
673
|
+
|
|
624
674
|
/**
|
|
625
675
|
* 停止服务器
|
|
626
676
|
*/
|
|
627
677
|
stop(): void {
|
|
628
678
|
debugLog('Stopping server...');
|
|
629
679
|
|
|
680
|
+
// 关闭看门狗定时器
|
|
681
|
+
if (this.watchdogTimer) {
|
|
682
|
+
clearInterval(this.watchdogTimer);
|
|
683
|
+
this.watchdogTimer = null;
|
|
684
|
+
}
|
|
685
|
+
|
|
630
686
|
// 关闭 HTTP 服务器
|
|
631
687
|
if (this.httpServer) {
|
|
632
688
|
this.httpServer.close();
|
|
@@ -678,16 +734,29 @@ async function main() {
|
|
|
678
734
|
setTimeout(() => process.exit(0), 100);
|
|
679
735
|
});
|
|
680
736
|
|
|
681
|
-
//
|
|
737
|
+
// stdin 出错(父进程经 npx 中间层异常断开时可能触发)同样退出,避免残留
|
|
738
|
+
process.stdin.on('error', (error) => {
|
|
739
|
+
debugLog(`stdin error, exiting: ${error}`);
|
|
740
|
+
server.stop();
|
|
741
|
+
setTimeout(() => process.exit(0), 100);
|
|
742
|
+
});
|
|
743
|
+
|
|
744
|
+
// 捕获未处理的异常:记录日志后退出。
|
|
745
|
+
// ⚠️ 绝不能“吞掉异常继续运行”——否则 stdin 在父进程断开后产生的反复错误会形成
|
|
746
|
+
// busy-loop,导致 CPU 占满且进程永不退出(本次修复的核心症状之一)。
|
|
682
747
|
process.on('uncaughtException', (error) => {
|
|
683
|
-
debugLog(`Uncaught exception
|
|
684
|
-
|
|
748
|
+
debugLog(`Uncaught exception, exiting: ${error?.stack || error}`);
|
|
749
|
+
try {
|
|
750
|
+
server.stop();
|
|
751
|
+
} catch {
|
|
752
|
+
// ignore
|
|
753
|
+
}
|
|
754
|
+
process.exit(1);
|
|
685
755
|
});
|
|
686
756
|
|
|
687
|
-
// 捕获未处理的 Promise
|
|
688
|
-
process.on('unhandledRejection', (reason
|
|
689
|
-
debugLog(`Unhandled rejection
|
|
690
|
-
// 不退出进程,让 MCP 连接保持
|
|
757
|
+
// 捕获未处理的 Promise 拒绝(仅记录;Promise 拒绝本身不会造成 busy-loop)
|
|
758
|
+
process.on('unhandledRejection', (reason) => {
|
|
759
|
+
debugLog(`Unhandled rejection: ${reason}`);
|
|
691
760
|
});
|
|
692
761
|
|
|
693
762
|
await server.start();
|