agent-ide 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,678 +1,163 @@
1
1
  # Agent IDE
2
2
 
3
- Agent IDE 是一個為 AI 代理(如 Claude Code CLI)設計的程式碼智能工具集,提供高效的程式碼操作和分析功能。
3
+ AI 代理設計的程式碼智能工具集,提供索引、搜尋、重構、依賴分析等功能。
4
4
 
5
- ## 🚀 特色功能
5
+ ## 🚀 快速開始
6
6
 
7
- ### 核心功能
8
- - **🔍 智能搜尋**:文字搜尋、正則表達式搜尋、符號搜尋
9
- - **📝 重新命名**:智能重新命名變數、函式、類別等程式碼元素
10
- - **📁 檔案移動**:自動更新 import 路徑的檔案移動
11
- - **🔗 依賴分析**:分析程式碼依賴關係和影響範圍
12
- - **📚 程式碼索引**:建立高效的程式碼索引系統
13
- - **🔌 可插拔 Parser**:支援多種程式語言的可插拔 Parser 系統
7
+ ### Claude Code 整合(推薦)
14
8
 
15
- ### 支援語言
16
- - TypeScript
17
- - JavaScript
18
- - Swift(計畫中)
19
-
20
- ### AI 工具整合
21
- - **Claude Code**:透過 MCP Server 直接使用
22
- - **其他 AI 工具**:支援 CLI 和程式化 API
23
-
24
- ## 🔌 Claude Code 整合
25
-
26
- Agent IDE 可以直接在 Claude Code 中使用,透過 MCP (Model Context Protocol) 提供所有功能。
27
-
28
- ### 快速設定
29
-
30
- 1. **安裝 Agent IDE**:
31
- ```bash
32
- npm install -g agent-ide
33
- # 或從原始碼: cd agent-ide && pnpm install && pnpm build && npm link
34
- ```
35
-
36
- 2. **設定 Claude Code MCP**:
9
+ 一行指令安裝:
10
+ ```bash
11
+ claude mcp add agent-ide npx https://github.com/vivalalova/agent-ide.git agent-ide-mcp
12
+ ```
37
13
 
38
- 編輯設定檔(根據你的作業系統):
39
- - **macOS/Linux**: `~/.config/claude/mcp_settings.json`
40
- - **Windows**: `%APPDATA%\Claude\mcp_settings.json`
14
+ 重新啟動 Claude Code,輸入「請列出所有可用的 agent-ide 工具」驗證安裝。
41
15
 
42
- 加入以下設定:
43
- ```json
44
- {
45
- "mcpServers": {
46
- "agent-ide": {
47
- "command": "agent-ide-mcp",
48
- "args": [],
49
- "env": {}
50
- }
51
- }
52
- }
53
- ```
16
+ <details>
17
+ <summary>手動設定 MCP(Claude Desktop / 其他)</summary>
54
18
 
55
- 3. **重新啟動 Claude Code**
19
+ 編輯設定檔:
20
+ - **Claude Desktop**: `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) 或 `%APPDATA%/Claude/claude_desktop_config.json` (Windows)
21
+ - **Claude Code**: `~/.config/claude/mcp_settings.json` (macOS/Linux) 或 `%APPDATA%\Claude\mcp_settings.json` (Windows)
56
22
 
57
- 4. **驗證安裝**,在 Claude Code 中詢問:
58
- ```
59
- 請列出所有可用的 agent-ide 工具
60
- ```
23
+ 加入:
24
+ ```json
25
+ {
26
+ "mcpServers": {
27
+ "agent-ide": {
28
+ "command": "npx",
29
+ "args": ["https://github.com/vivalalova/agent-ide.git", "agent-ide-mcp"],
30
+ "env": {}
31
+ }
32
+ }
33
+ }
34
+ ```
35
+ </details>
61
36
 
62
37
  ### 可用工具
63
38
 
64
- 在 Claude Code 中,你可以使用以下 7 個工具:
65
-
66
39
  | 工具 | 功能 |
67
40
  |------|------|
68
- | `code_index` | 建立和查詢程式碼索引 |
69
- | `code_search` | 搜尋符號、文字或模式 |
70
- | `code_rename` | 安全重新命名符號 |
41
+ | `code_index` | 建立程式碼索引 |
42
+ | `code_search` | 搜尋符號、文字 |
43
+ | `code_rename` | 重新命名符號 |
71
44
  | `code_move` | 移動檔案並更新 import |
72
- | `code_analyze` | 分析程式碼品質與複雜度 |
73
- | `code_deps` | 分析依賴關係與循環依賴 |
74
- | `parser_plugins` | 管理 Parser 插件 |
45
+ | `code_analyze` | 分析程式碼品質 |
46
+ | `code_deps` | 依賴關係分析 |
47
+ | `parser_plugins` | Parser 插件管理 |
75
48
 
76
- ### 使用範例
77
-
78
- ```
79
- # 索引專案
80
- 請使用 agent-ide 索引 /path/to/my/project
81
-
82
- # 搜尋符號
83
- 在專案中搜尋 UserService 類別
84
-
85
- # 分析依賴
86
- 分析專案的依賴關係並檢查循環依賴
87
-
88
- # 重新命名
89
- 將 src/user.ts 第 10 行第 14 列的符號重新命名為 CustomerService(預覽模式)
90
- ```
91
-
92
- 📖 **完整設定指南**:查看 [MCP_SETUP.md](./MCP_SETUP.md) 瞭解詳細步驟和疑難排解
49
+ 📖 完整設定指南:[MCP_SETUP.md](./MCP_SETUP.md)
93
50
 
94
51
  ---
95
52
 
96
- ## 📦 安裝
53
+ ## 💻 CLI 使用
97
54
 
98
- ### 方法一:從 npm 安裝(推薦)
55
+ ### 安裝
99
56
 
100
57
  ```bash
101
- # 使用 npm
58
+ # npm(發布後)
102
59
  npm install -g agent-ide
103
60
 
104
- # 使用 pnpm
105
- pnpm add -g agent-ide
106
- ```
107
-
108
- ### 方法二:從原始碼安裝(開發版)
109
-
110
- ```bash
111
- # 1. Clone 專案
61
+ # 從原始碼
112
62
  git clone https://github.com/vivalalova/agent-ide.git
113
63
  cd agent-ide
114
-
115
- # 2. 安裝依賴
116
- pnpm install
117
-
118
- # 3. 建置專案
119
- pnpm build
120
-
121
- # 4. 連結到全域(開發模式)
122
- npm link
123
-
124
- # 5. 驗證安裝
125
- agent-ide --version
126
- agent-ide --help
127
- ```
128
-
129
- ### 方法三:直接使用(不安裝)
130
-
131
- ```bash
132
- # 在專案目錄中執行
133
- cd agent-ide
134
- pnpm install
135
- pnpm build
136
-
137
- # 使用 npx 執行
138
- npx agent-ide index
139
- npx agent-ide search "pattern"
64
+ pnpm install && pnpm build && npm link
140
65
  ```
141
66
 
142
- ### 解除安裝
143
-
144
- ```bash
145
- # 解除全域連結
146
- npm unlink -g agent-ide
147
-
148
- # 或使用 npm
149
- npm uninstall -g agent-ide
150
- ```
151
-
152
- ## 🛠️ 使用方法
153
-
154
- ### 建立索引
67
+ ### 基本用法
155
68
 
156
69
  ```bash
157
- # 索引當前專案
70
+ # 索引專案
158
71
  agent-ide index
159
72
 
160
- # 索引指定路徑
161
- agent-ide index --path ./src
162
-
163
- # 增量更新索引
164
- agent-ide index --update
165
-
166
- # 自訂檔案類型
167
- agent-ide index --extensions ".ts,.tsx,.js,.jsx"
168
- ```
169
-
170
- ### 程式碼搜尋
171
-
172
- ```bash
173
- # 文字搜尋
174
- agent-ide search "function getUserById"
175
-
176
- # 正則表達式搜尋
177
- agent-ide search "export.*function" --regex
178
-
179
- # 大小寫敏感搜尋
180
- agent-ide search "User" --case-sensitive
181
-
182
- # 全字匹配
183
- agent-ide search "user" --whole-word
184
-
185
- # 限制結果數量
186
- agent-ide search "import" --max-results 10
187
-
188
- # 顯示上下文
189
- agent-ide search "class" --context 3
190
-
191
- # JSON 輸出格式
192
- agent-ide search "interface" --format json
193
- ```
73
+ # 搜尋程式碼
74
+ agent-ide search "UserService" --format json
194
75
 
195
- ### 重新命名
196
-
197
- ```bash
198
- # 重新命名變數
199
- agent-ide rename --from oldName --to newName
200
-
201
- # 重新命名類別
202
- agent-ide rename --from OldClass --to NewClass --type class
203
-
204
- # 預覽變更(不實際修改)
76
+ # 重新命名(預覽)
205
77
  agent-ide rename --from oldName --to newName --dry-run
206
- ```
207
-
208
- ### 檔案移動
209
78
 
210
- ```bash
211
79
  # 移動檔案
212
- agent-ide move src/old/path.ts src/new/path.ts
80
+ agent-ide move src/old.ts src/new.ts
213
81
 
214
- # 移動目錄
215
- agent-ide move src/components src/ui/components
216
- ```
217
-
218
- ### 依賴分析
219
-
220
- ```bash
221
- # 分析專案依賴
222
- agent-ide deps
223
-
224
- # 分析特定檔案的依賴
225
- agent-ide deps --file src/utils.ts
226
-
227
- # 檢查循環依賴
82
+ # 依賴分析
228
83
  agent-ide deps --check-cycles
229
-
230
- # 影響分析
231
- agent-ide deps --impact src/api.ts
232
- ```
233
-
234
- ### 插件管理
235
-
236
- ```bash
237
- # 查看已安裝的插件
238
- agent-ide plugins list
239
-
240
- # 啟用插件
241
- agent-ide plugins enable typescript
242
-
243
- # 停用插件
244
- agent-ide plugins disable javascript
245
- ```
246
-
247
- ## 🔧 配置
248
-
249
- Agent IDE 支援多種配置選項,可以透過配置檔案或命令列參數設定。
250
-
251
- ### 配置檔案
252
-
253
- 在專案根目錄建立 `agent-ide.config.json`:
254
-
255
- ```json
256
- {
257
- "indexing": {
258
- "extensions": [".ts", ".tsx", ".js", ".jsx"],
259
- "exclude": ["node_modules/**", "dist/**", "*.test.*"],
260
- "maxDepth": 10
261
- },
262
- "search": {
263
- "maxResults": 100,
264
- "contextLines": 2,
265
- "caseSensitive": false
266
- },
267
- "rename": {
268
- "safeMode": true,
269
- "backupFiles": false
270
- },
271
- "plugins": {
272
- "typescript": {
273
- "enabled": true,
274
- "strictMode": true
275
- },
276
- "swift": {
277
- "enabled": false
278
- }
279
- }
280
- }
281
- ```
282
-
283
- ### 環境變數
284
-
285
- ```bash
286
- # 設定預設專案路徑
287
- export AGENT_IDE_PROJECT_PATH=/path/to/project
288
-
289
- # 設定快取目錄
290
- export AGENT_IDE_CACHE_DIR=~/.agent-ide
291
-
292
- # 啟用除錯模式
293
- export AGENT_IDE_DEBUG=true
294
84
  ```
295
85
 
296
- ## 🏗️ 架構設計
86
+ ---
297
87
 
298
- ### 模組化架構
88
+ ## 🏗️ 架構
299
89
 
300
90
  ```
301
91
  Agent IDE
302
- ├── 核心模組
303
- ├── 索引引擎 # 程式碼索引和符號管理
304
- ├── 搜尋引擎 # 多種搜尋策略實作
305
- │ ├── 重新命名引擎 # 智能重新命名邏輯
306
- │ ├── 移動服務 # 檔案移動和路徑更新
307
- │ └── 依賴分析器 # 依賴關係分析
308
- ├── 基礎設施
309
- │ ├── Parser 框架 # 可插拔 Parser 系統
310
- │ ├── 快取管理 # 多層快取策略
311
- │ └── 儲存抽象 # 統一儲存介面
312
- ├── 插件系統
313
- │ ├── TypeScript Parser
314
- │ ├── JavaScript Parser
315
- │ └── Swift Parser (計畫中)
316
- └── 介面層
317
- ├── CLI 介面 # 命令列工具
318
- └── MCP 介面 (計畫中) # MCP 協議支援
92
+ ├── 核心模組:索引、搜尋、重構、移動、依賴分析
93
+ ├── 基礎設施:Parser 框架、快取、儲存
94
+ ├── 插件系統:TypeScript、JavaScript、Swift
95
+ └── 介面層:CLI、MCP
319
96
  ```
320
97
 
321
- ### 效能特色
322
-
323
- - **增量索引**:只重新索引變更的檔案
324
- - **智能快取**:多層快取系統,減少重複計算
325
- - **並行處理**:支援多檔案並行處理
326
- - **記憶體優化**:使用 LRU 快取控制記憶體使用
327
-
328
- ## 🔌 插件開發
329
-
330
- ### 建立新的 Parser 插件
331
-
332
- ```typescript
333
- import { ParserPlugin } from 'agent-ide';
334
-
335
- export class MyLanguageParser implements ParserPlugin {
336
- readonly name = 'my-language';
337
- readonly version = '1.0.0';
338
- readonly supportedExtensions = ['.my'];
339
- readonly supportedLanguages = ['mylang'];
340
-
341
- async parse(code: string, filePath: string): Promise<AST> {
342
- // 實作語法解析邏輯
343
- }
344
-
345
- async extractSymbols(ast: AST): Promise<Symbol[]> {
346
- // 實作符號提取邏輯
347
- }
348
-
349
- async extractDependencies(ast: AST): Promise<Dependency[]> {
350
- // 實作依賴提取邏輯
351
- }
352
-
353
- async rename(ast: AST, position: Position, newName: string): Promise<CodeEdit[]> {
354
- // 實作重新命名邏輯
355
- }
98
+ **效能特色**:
99
+ - 增量索引(~1000 檔案/秒)
100
+ - 多層快取(查詢 <50ms)
101
+ - 並行處理
102
+ - 記憶體優化(~100MB / 10k 檔案)
356
103
 
357
- async validate(): Promise<ValidationResult> {
358
- return { valid: true, errors: [] };
359
- }
360
-
361
- async dispose(): Promise<void> {
362
- // 清理資源
363
- }
364
- }
365
- ```
366
-
367
- ### 註冊插件
368
-
369
- ```typescript
370
- import { ParserRegistry } from 'agent-ide';
371
- import { MyLanguageParser } from './my-language-parser';
372
-
373
- const registry = ParserRegistry.getInstance();
374
- const parser = new MyLanguageParser();
375
- registry.register(parser);
376
- ```
377
-
378
- ## 🧪 測試
379
-
380
- ```bash
381
- # 執行所有測試
382
- npm test
383
-
384
- # 執行特定測試
385
- npm test -- tests/core/search
386
-
387
- # 監看模式
388
- npm run test:watch
389
-
390
- # 型別檢查
391
- npm run typecheck
392
-
393
- # 建置專案
394
- npm run build
395
- ```
396
-
397
- ## 🤖 AI 代理使用指南
398
-
399
- ### 給 Claude Code、Cursor、Copilot 等 AI 工具的完整使用指南
400
-
401
- #### 1️⃣ 安裝(給 AI 的步驟)
402
-
403
- 如果用戶想讓你使用 Agent IDE,請依序執行:
404
-
405
- ```bash
406
- # 檢查是否已安裝
407
- which agent-ide
408
-
409
- # 如果未安裝,從專案目錄安裝
410
- cd /path/to/agent-ide
411
- pnpm install
412
- pnpm build
413
- npm link
414
-
415
- # 驗證安裝
416
- agent-ide --version
417
- ```
418
-
419
- #### 2️⃣ 基本工作流程
420
-
421
- ```bash
422
- # Step 1: 在用戶專案中建立索引(只需執行一次)
423
- cd /path/to/user/project
424
- agent-ide index
425
-
426
- # Step 2: 搜尋程式碼
427
- agent-ide search "目標關鍵字" --format json
428
-
429
- # Step 3: 分析影響範圍
430
- agent-ide deps --impact src/target-file.ts
431
-
432
- # Step 4: 預覽變更
433
- agent-ide rename --from oldName --to newName --dry-run
434
-
435
- # Step 5: 執行變更
436
- agent-ide rename --from oldName --to newName
437
- ```
438
-
439
- #### 3️⃣ Token 優化技巧
440
-
441
- **始終使用 JSON 格式輸出**:
442
- ```bash
443
- agent-ide search "pattern" --format json
444
- agent-ide deps --format json
445
- ```
446
-
447
- **限制結果數量**:
448
- ```bash
449
- agent-ide search "pattern" --max-results 5
450
- ```
451
-
452
- **使用 dry-run 預覽**:
453
- ```bash
454
- agent-ide rename --from old --to new --dry-run
455
- agent-ide move old.ts new.ts --dry-run
456
- ```
457
-
458
- #### 4️⃣ 完整重構範例
459
-
460
- ```bash
461
- # 場景:重新命名類別並移動檔案
462
-
463
- # 1. 搜尋現有使用
464
- agent-ide search "OldClassName" --format json --max-results 20
465
-
466
- # 2. 分析依賴
467
- agent-ide deps --impact src/models/old-class.ts
468
-
469
- # 3. 預覽重新命名
470
- agent-ide rename --from OldClassName --to NewClassName --dry-run
471
-
472
- # 4. 執行重新命名
473
- agent-ide rename --from OldClassName --to NewClassName
474
-
475
- # 5. 移動檔案
476
- agent-ide move src/models/old-class.ts src/models/new-class.ts
477
-
478
- # 6. 驗證
479
- agent-ide search "NewClassName" --format json
480
- agent-ide deps --check-cycles
481
- ```
482
-
483
- #### 5️⃣ 常用命令速查
484
-
485
- | 目的 | 命令 |
486
- |------|------|
487
- | 建立索引 | `agent-ide index` |
488
- | 更新索引 | `agent-ide index --update` |
489
- | 搜尋程式碼 | `agent-ide search "pattern" --format json` |
490
- | 重新命名 | `agent-ide rename --from A --to B` |
491
- | 移動檔案 | `agent-ide move old.ts new.ts` |
492
- | 依賴分析 | `agent-ide deps --check-cycles` |
493
- | 影響分析 | `agent-ide deps --impact file.ts` |
494
- | 複雜度分析 | `agent-ide analyze --type complexity` |
495
-
496
- #### 6️⃣ 輸出格式範例
497
-
498
- **JSON 格式**(推薦):
499
- ```json
500
- {
501
- "results": [
502
- {
503
- "file": "src/user.ts",
504
- "line": 10,
505
- "match": "export class User"
506
- }
507
- ]
508
- }
509
- ```
510
-
511
- **Minimal 格式**(最省 token):
512
- ```
513
- src/user.ts:10: export class User
514
- ```
515
-
516
- #### 7️⃣ 錯誤處理
517
-
518
- 如果命令失敗,檢查:
519
- 1. 索引是否已建立:`agent-ide index`
520
- 2. 路徑是否正確:使用絕對路徑
521
- 3. 語法是否正確:查看 `agent-ide --help`
104
+ **支援語言**:TypeScript、JavaScript、Swift(開發中)
522
105
 
523
106
  ---
524
107
 
525
- ## 🔌 程式化 API 使用
526
-
527
- Agent IDE 也可以在你的程式碼中使用:
108
+ ## 🔌 程式化 API
528
109
 
529
110
  ```typescript
530
111
  import { AgentIdeMCP } from 'agent-ide';
531
112
 
532
113
  const mcp = new AgentIdeMCP();
533
114
 
534
- // 獲取所有可用工具
535
- const tools = mcp.getTools();
536
-
537
- // 執行工具
538
- const result = await mcp.executeTool('code_index', {
539
- action: 'create',
540
- path: '/path/to/project'
541
- });
542
-
543
- if (result.success) {
544
- console.log('索引成功:', result.data);
545
- }
546
- ```
547
-
548
- ### API 文件
549
-
550
- 完整的 MCP 工具參數和使用方式,請參考 [MCP_SETUP.md](./MCP_SETUP.md)
551
-
552
- ---
553
-
554
- ## 📚 MCP 工具快速參考
555
-
556
- | 工具 | 功能 | 主要參數 |
557
- |------|------|----------|
558
- | `code_index` | 程式碼索引 | `action`, `path`, `query` |
559
- | `code_search` | 程式碼搜尋 | `query`, `mode`, `limit` |
560
- | `code_rename` | 重新命名 | `file`, `line`, `column`, `newName` |
561
- | `code_move` | 檔案移動 | `source`, `destination` |
562
- | `code_analyze` | 程式碼分析 | `path`, `type` |
563
- | `code_deps` | 依賴分析 | `path` |
564
- | `parser_plugins` | Parser 管理 | `action`, `plugin` |
565
-
566
- ### 工作流程範例
567
-
568
- ```typescript
569
- const mcp = new AgentIdeMCP();
570
-
571
- // 1. 建立索引
115
+ // 建立索引
572
116
  await mcp.executeTool('code_index', {
573
117
  action: 'create',
574
- path: projectPath
118
+ path: '/path/to/project'
575
119
  });
576
120
 
577
- // 2. 搜尋符號
578
- const searchResult = await mcp.executeTool('code_search', {
121
+ // 搜尋程式碼
122
+ const result = await mcp.executeTool('code_search', {
579
123
  query: 'UserService',
580
- path: projectPath
581
- });
582
-
583
- // 3. 分析依賴
584
- await mcp.executeTool('code_deps', {
585
- path: projectPath
586
- });
587
-
588
- // 4. 重新命名(預覽)
589
- const renameResult = await mcp.executeTool('code_rename', {
590
- file: filePath,
591
- line: 10,
592
- column: 14,
593
- newName: 'CustomerService',
594
- preview: true
124
+ path: '/path/to/project'
595
125
  });
596
-
597
- // 5. 執行重新命名
598
- if (renameResult.success) {
599
- await mcp.executeTool('code_rename', {
600
- file: filePath,
601
- line: 10,
602
- column: 14,
603
- newName: 'CustomerService',
604
- preview: false
605
- });
606
- }
607
126
  ```
608
127
 
609
- 📖 詳細的工具參數和範例,請參考 [CLAUDE_CODE_INTEGRATION.md](./CLAUDE_CODE_INTEGRATION.md)
610
-
611
- ## 📊 效能基準
612
-
613
- 在典型的 TypeScript 專案中:
614
-
615
- - **索引速度**:~1000 檔案/秒
616
- - **搜尋響應**:<50ms(已索引檔案)
617
- - **重新命名**:<200ms(中等複雜度)
618
- - **記憶體使用**:~100MB(10,000 檔案專案)
619
-
620
- ## 🤝 貢獻指南
621
-
622
- 1. Fork 專案
623
- 2. 建立功能分支:`git checkout -b feature/amazing-feature`
624
- 3. 提交變更:`git commit -m 'Add amazing feature'`
625
- 4. 推送到分支:`git push origin feature/amazing-feature`
626
- 5. 建立 Pull Request
128
+ ---
627
129
 
628
- ### 開發環境設定
130
+ ## 🧪 開發
629
131
 
630
132
  ```bash
631
- # 複製專案
632
- git clone https://github.com/vivalalova/agent-ide.git
633
- cd agent-ide
634
-
635
- # 安裝依賴
636
- pnpm install
637
-
638
- # 執行開發模式
639
- pnpm run dev
640
-
641
- # 執行測試
642
- pnpm test
133
+ pnpm install # 安裝依賴
134
+ pnpm build # 建置
135
+ pnpm test # 測試
136
+ pnpm typecheck # 型別檢查
643
137
  ```
644
138
 
645
- ## 🐛 疑難排解
646
-
647
- ### 常見問題
648
-
649
- **Q: 索引速度很慢**
650
- A: 檢查是否有大量檔案被包含,考慮調整 `exclude` 設定
651
-
652
- **Q: 搜尋結果不準確**
653
- A: 確保索引是最新的,執行 `agent-ide index --update`
654
-
655
- **Q: 重新命名後有錯誤**
656
- A: 使用 `--dry-run` 預覽變更,或啟用 `safeMode`
139
+ ---
657
140
 
658
- **Q: 記憶體使用過高**
659
- A: 調整快取設定或限制索引深度
141
+ ## 📖 文件
660
142
 
661
- ### 取得支援
143
+ - [MCP 設定指南](./MCP_SETUP.md) - 詳細安裝和疑難排解
144
+ - [API 文件](./API.md) - 完整 API 參考
145
+ - [貢獻指南](./CONTRIBUTING.md) - 開發指南
146
+ - [發布檢查清單](./PUBLISH_CHECKLIST.md) - 發布流程
662
147
 
663
- - 🐛 回報 [問題](https://github.com/vivalalova/agent-ide/issues)
664
- - 💬 加入 [討論](https://github.com/vivalalova/agent-ide/discussions)
148
+ ---
665
149
 
666
150
  ## 📄 授權
667
151
 
668
- 本專案採用 [MIT 授權條款](LICENSE)
152
+ MIT License - 查看 [LICENSE](LICENSE) 瞭解詳情
153
+
154
+ ## 🤝 貢獻
669
155
 
670
- ## 🙏 致謝
156
+ 歡迎貢獻!請查看 [CONTRIBUTING.md](./CONTRIBUTING.md)
671
157
 
672
- - TypeScript 團隊提供優秀的編譯器 API
673
- - 所有貢獻者的寶貴貢獻
674
- - 開源社群的持續支持
158
+ - 🐛 [回報問題](https://github.com/vivalalova/agent-ide/issues)
159
+ - 💬 [參與討論](https://github.com/vivalalova/agent-ide/discussions)
675
160
 
676
161
  ---
677
162
 
678
- **讓 AI 代理更聰明地理解和操作程式碼** 🤖✨
163
+ **讓 AI 代理更聰明地理解和操作程式碼** 🤖✨
@@ -21,6 +21,12 @@ export declare class AgentIdeMCP {
21
21
  private dependencyAnalyzer?;
22
22
  private renameEngine?;
23
23
  private importResolver?;
24
+ private parsersInitialized;
25
+ constructor();
26
+ /**
27
+ * 初始化 Parser
28
+ */
29
+ private initializeParsers;
24
30
  /**
25
31
  * 獲取所有可用的 MCP 工具定義
26
32
  */
@@ -34,7 +40,9 @@ export declare class AgentIdeMCP {
34
40
  private handleCodeMove;
35
41
  private handleCodeSearch;
36
42
  private handleCodeAnalyze;
43
+ private formatAnalysisSummary;
37
44
  private handleCodeDeps;
45
+ private formatDependencySummary;
38
46
  /**
39
47
  * 格式化相對路徑
40
48
  */
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../src/interfaces/mcp/mcp.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH;AAGD,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,kBAAkB,CAAC,CAAqB;IAChD,OAAO,CAAC,YAAY,CAAC,CAAe;IACpC,OAAO,CAAC,cAAc,CAAC,CAAiB;IAExC;;OAEG;IACH,QAAQ,IAAI,OAAO,EAAE;IAoNrB;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC;YAgC1D,eAAe;YAqFf,gBAAgB;YAmEhB,cAAc;YAcd,gBAAgB;YA2DhB,iBAAiB;YAcjB,cAAc;IAc5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;YASZ,mBAAmB;CA2DlC"}
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../src/interfaces/mcp/mcp.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkBH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH;AAGD,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,kBAAkB,CAAC,CAAqB;IAChD,OAAO,CAAC,YAAY,CAAC,CAAe;IACpC,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,kBAAkB,CAAS;;IAMnC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkBzB;;OAEG;IACH,QAAQ,IAAI,OAAO,EAAE;IAoNrB;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC;YAgC1D,eAAe;YAqFf,gBAAgB;YAmEhB,cAAc;YAiDd,gBAAgB;YA2FhB,iBAAiB;IAoG/B,OAAO,CAAC,qBAAqB;YAuBf,cAAc;IAqG5B,OAAO,CAAC,uBAAuB;IAuB/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;YASZ,mBAAmB;CAsElC"}
@@ -3,15 +3,43 @@
3
3
  * 提供給 Claude Code 等 AI 工具使用的 MCP 工具
4
4
  */
5
5
  import * as path from 'path';
6
+ import * as fs from 'fs/promises';
6
7
  import { IndexEngine } from '../../core/indexing/index-engine.js';
8
+ import { DependencyAnalyzer } from '../../core/dependency/dependency-analyzer.js';
7
9
  import { RenameEngine } from '../../core/rename/rename-engine.js';
10
+ import { MoveService } from '../../core/move/move-service.js';
11
+ import { ComplexityAnalyzer } from '../../core/analysis/complexity-analyzer.js';
12
+ import { QualityMetricsAnalyzer } from '../../core/analysis/quality-metrics.js';
8
13
  import { createIndexConfig } from '../../core/indexing/types.js';
9
14
  import { ParserRegistry } from '../../infrastructure/parser/registry.js';
15
+ import { TypeScriptParser } from '../../plugins/typescript/parser.js';
16
+ import { JavaScriptParser } from '../../plugins/javascript/parser.js';
17
+ import { glob } from 'glob';
10
18
  export class AgentIdeMCP {
11
19
  indexEngine;
12
20
  dependencyAnalyzer;
13
21
  renameEngine;
14
22
  importResolver;
23
+ parsersInitialized = false;
24
+ constructor() {
25
+ this.initializeParsers();
26
+ }
27
+ /**
28
+ * 初始化 Parser
29
+ */
30
+ initializeParsers() {
31
+ if (this.parsersInitialized) {
32
+ return;
33
+ }
34
+ const registry = ParserRegistry.getInstance();
35
+ // 註冊 TypeScript Parser
36
+ const tsParser = new TypeScriptParser();
37
+ registry.register(tsParser);
38
+ // 註冊 JavaScript Parser
39
+ const jsParser = new JavaScriptParser();
40
+ registry.register(jsParser);
41
+ this.parsersInitialized = true;
42
+ }
15
43
  /**
16
44
  * 獲取所有可用的 MCP 工具定義
17
45
  */
@@ -398,16 +426,45 @@ export class AgentIdeMCP {
398
426
  }
399
427
  }
400
428
  async handleCodeMove(params) {
401
- const { source, target, updateImports, preview } = params;
402
- // TODO: 實作檔案移動邏輯
403
- return {
404
- success: true,
405
- data: {
406
- message: `移動檔案 "${source}" → "${target}" 的功能開發中`,
407
- updateImports: updateImports !== false,
408
- preview: preview || false
429
+ const { source, target, updateImports = true, preview = false } = params;
430
+ if (!source || !target) {
431
+ return { success: false, error: '需要指定來源路徑和目標路徑' };
432
+ }
433
+ try {
434
+ const workspacePath = process.cwd();
435
+ const sourcePath = path.isAbsolute(source) ? source : path.resolve(workspacePath, source);
436
+ const targetPath = path.isAbsolute(target) ? target : path.resolve(workspacePath, target);
437
+ const moveService = new MoveService();
438
+ const result = await moveService.moveFile({ source: sourcePath, target: targetPath, updateImports }, { preview, projectRoot: workspacePath });
439
+ if (!result.success) {
440
+ return {
441
+ success: false,
442
+ error: result.error || result.message
443
+ };
409
444
  }
410
- };
445
+ return {
446
+ success: true,
447
+ data: {
448
+ from: this.formatRelativePath(sourcePath, workspacePath),
449
+ to: this.formatRelativePath(targetPath, workspacePath),
450
+ filesUpdated: result.pathUpdates.length,
451
+ importUpdates: result.pathUpdates.map(update => ({
452
+ file: this.formatRelativePath(update.filePath, workspacePath),
453
+ line: update.line,
454
+ oldImport: update.oldImport,
455
+ newImport: update.newImport
456
+ })),
457
+ preview,
458
+ message: result.message
459
+ }
460
+ };
461
+ }
462
+ catch (error) {
463
+ return {
464
+ success: false,
465
+ error: `移動檔案失敗: ${error instanceof Error ? error.message : String(error)}`
466
+ };
467
+ }
411
468
  }
412
469
  async handleCodeSearch(params) {
413
470
  const query = params.query;
@@ -448,13 +505,41 @@ export class AgentIdeMCP {
448
505
  };
449
506
  }
450
507
  else {
451
- // 文字搜尋 - 簡單實作
508
+ // 文字搜尋
509
+ const files = await glob('**/*.{ts,tsx,js,jsx}', {
510
+ cwd: workspacePath,
511
+ ignore: ['node_modules/**', 'dist/**', '*.test.*', '*.d.ts'],
512
+ absolute: true
513
+ });
514
+ const results = [];
515
+ for (const file of files.slice(0, 100)) {
516
+ try {
517
+ const content = await fs.readFile(file, 'utf-8');
518
+ const lines = content.split('\n');
519
+ lines.forEach((line, index) => {
520
+ if (line.includes(query)) {
521
+ results.push({
522
+ file: this.formatRelativePath(file, workspacePath),
523
+ line: index + 1,
524
+ column: line.indexOf(query) + 1,
525
+ content: line.trim()
526
+ });
527
+ }
528
+ });
529
+ }
530
+ catch (error) {
531
+ // 忽略讀取錯誤
532
+ }
533
+ if (results.length >= limit) {
534
+ break;
535
+ }
536
+ }
452
537
  return {
453
538
  success: true,
454
539
  data: {
455
540
  query,
456
541
  type: searchType,
457
- results: [] // TODO: 實作文字搜尋
542
+ results: results.slice(0, limit)
458
543
  }
459
544
  };
460
545
  }
@@ -467,28 +552,217 @@ export class AgentIdeMCP {
467
552
  }
468
553
  }
469
554
  async handleCodeAnalyze(params) {
470
- const { path, type, format } = params;
471
- // TODO: 實作程式碼分析邏輯
472
- return {
473
- success: true,
474
- data: {
475
- message: `分析路徑 "${path || '.'}" 的功能開發中`,
476
- type: type || 'all',
477
- format: format || 'summary'
555
+ const analyzePath = params.path || '.';
556
+ const analyzeType = params.type || 'all';
557
+ const format = params.format || 'summary';
558
+ try {
559
+ const workspacePath = process.cwd();
560
+ const targetPath = path.isAbsolute(analyzePath)
561
+ ? analyzePath
562
+ : path.resolve(workspacePath, analyzePath);
563
+ const results = {
564
+ path: this.formatRelativePath(targetPath, workspacePath),
565
+ type: analyzeType,
566
+ format
567
+ };
568
+ // 檢查路徑是否存在
569
+ try {
570
+ await fs.access(targetPath);
571
+ }
572
+ catch {
573
+ return { success: false, error: `路徑不存在: ${analyzePath}` };
574
+ }
575
+ const stat = await fs.stat(targetPath);
576
+ if (stat.isFile()) {
577
+ // 分析單一檔案
578
+ const content = await fs.readFile(targetPath, 'utf-8');
579
+ if (analyzeType === 'complexity' || analyzeType === 'all') {
580
+ const complexityAnalyzer = new ComplexityAnalyzer();
581
+ const complexityResult = await complexityAnalyzer.analyzeCode(content);
582
+ results.complexity = complexityResult;
583
+ }
584
+ if (analyzeType === 'quality' || analyzeType === 'all') {
585
+ const qualityAnalyzer = new QualityMetricsAnalyzer();
586
+ const qualityResult = await qualityAnalyzer.assess(content);
587
+ results.quality = qualityResult;
588
+ }
478
589
  }
479
- };
590
+ else if (stat.isDirectory()) {
591
+ // 分析目錄中的檔案
592
+ const files = await glob('**/*.{ts,tsx,js,jsx}', {
593
+ cwd: targetPath,
594
+ ignore: ['node_modules/**', 'dist/**', '*.test.*', '*.d.ts'],
595
+ absolute: true
596
+ });
597
+ const fileResults = [];
598
+ for (const file of files.slice(0, 10)) {
599
+ try {
600
+ const content = await fs.readFile(file, 'utf-8');
601
+ const fileResult = {
602
+ file: this.formatRelativePath(file, workspacePath)
603
+ };
604
+ if (analyzeType === 'complexity' || analyzeType === 'all') {
605
+ const complexityAnalyzer = new ComplexityAnalyzer();
606
+ fileResult.complexity = await complexityAnalyzer.analyzeCode(content);
607
+ }
608
+ if (analyzeType === 'quality' || analyzeType === 'all') {
609
+ const qualityAnalyzer = new QualityMetricsAnalyzer();
610
+ fileResult.quality = await qualityAnalyzer.assess(content);
611
+ }
612
+ fileResults.push(fileResult);
613
+ }
614
+ catch (error) {
615
+ // 忽略讀取錯誤
616
+ }
617
+ }
618
+ results.files = fileResults;
619
+ results.totalFiles = fileResults.length;
620
+ }
621
+ if (format === 'summary') {
622
+ return {
623
+ success: true,
624
+ data: {
625
+ ...results,
626
+ summary: this.formatAnalysisSummary(results)
627
+ }
628
+ };
629
+ }
630
+ return {
631
+ success: true,
632
+ data: results
633
+ };
634
+ }
635
+ catch (error) {
636
+ return {
637
+ success: false,
638
+ error: `分析失敗: ${error instanceof Error ? error.message : String(error)}`
639
+ };
640
+ }
641
+ }
642
+ formatAnalysisSummary(results) {
643
+ const lines = [];
644
+ if (results.complexity) {
645
+ lines.push(`複雜度: ${results.complexity.evaluation} (循環: ${results.complexity.cyclomaticComplexity}, 認知: ${results.complexity.cognitiveComplexity})`);
646
+ }
647
+ if (results.quality) {
648
+ lines.push(`品質: ${results.quality.grade} (可維護性指數: ${results.quality.maintainabilityIndex})`);
649
+ if (results.quality.codeSmells?.length > 0) {
650
+ lines.push(`程式碼異味: ${results.quality.codeSmells.length} 個`);
651
+ }
652
+ }
653
+ if (results.files) {
654
+ const avgComplexity = results.files.reduce((sum, f) => sum + (f.complexity?.cyclomaticComplexity || 0), 0) / results.files.length;
655
+ lines.push(`平均循環複雜度: ${avgComplexity.toFixed(2)}`);
656
+ }
657
+ return lines.join('\n');
480
658
  }
481
659
  async handleCodeDeps(params) {
482
- const { path, type, file, format } = params;
483
- // TODO: 實作依賴分析邏輯
484
- return {
485
- success: true,
486
- data: {
487
- message: `依賴分析 "${path || '.'}" 的功能開發中`,
488
- type: type || 'all',
489
- format: format || 'summary'
660
+ const analyzePath = params.path || '.';
661
+ const analyzeType = params.type || 'all';
662
+ const targetFile = params.file;
663
+ const format = params.format || 'summary';
664
+ try {
665
+ const workspacePath = process.cwd();
666
+ const projectPath = path.isAbsolute(analyzePath)
667
+ ? analyzePath
668
+ : path.resolve(workspacePath, analyzePath);
669
+ // 檢查路徑是否存在
670
+ try {
671
+ await fs.access(projectPath);
672
+ }
673
+ catch {
674
+ return { success: false, error: `路徑不存在: ${analyzePath}` };
675
+ }
676
+ const depAnalyzer = new DependencyAnalyzer({
677
+ includeNodeModules: false,
678
+ excludePatterns: ['node_modules', 'dist', '*.test.*', '*.d.ts'],
679
+ includePatterns: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx']
680
+ });
681
+ const results = {
682
+ path: this.formatRelativePath(projectPath, workspacePath),
683
+ type: analyzeType,
684
+ format
685
+ };
686
+ if (analyzeType === 'graph' || analyzeType === 'all') {
687
+ // 分析依賴圖
688
+ await depAnalyzer.analyzeProject(projectPath);
689
+ const stats = depAnalyzer.getStats();
690
+ results.graph = {
691
+ totalFiles: stats.totalFiles,
692
+ totalDependencies: stats.totalDependencies,
693
+ averageDependenciesPerFile: stats.averageDependenciesPerFile,
694
+ maxDependenciesInFile: stats.maxDependenciesInFile
695
+ };
696
+ }
697
+ if (analyzeType === 'cycles' || analyzeType === 'all') {
698
+ // 檢測循環依賴
699
+ await depAnalyzer.analyzeProject(projectPath);
700
+ const stats = depAnalyzer.getStats();
701
+ results.cycles = {
702
+ circularDependencies: stats.circularDependencies,
703
+ orphanedFiles: stats.orphanedFiles
704
+ };
705
+ }
706
+ if ((analyzeType === 'impact' || analyzeType === 'all') && targetFile) {
707
+ // 影響分析
708
+ const filePath = path.isAbsolute(targetFile)
709
+ ? targetFile
710
+ : path.resolve(projectPath, targetFile);
711
+ try {
712
+ await fs.access(filePath);
713
+ await depAnalyzer.analyzeProject(projectPath);
714
+ const impactAnalysis = depAnalyzer.getImpactAnalysis(filePath);
715
+ results.impact = {
716
+ targetFile: this.formatRelativePath(filePath, workspacePath),
717
+ directlyAffected: impactAnalysis.directlyAffected.length,
718
+ transitivelyAffected: impactAnalysis.transitivelyAffected.length,
719
+ affectedTests: impactAnalysis.affectedTests.length,
720
+ impactScore: impactAnalysis.impactScore,
721
+ directlyAffectedFiles: impactAnalysis.directlyAffected.map(f => this.formatRelativePath(f, workspacePath)).slice(0, 10)
722
+ };
723
+ }
724
+ catch {
725
+ results.impact = { error: `檔案不存在: ${targetFile}` };
726
+ }
727
+ }
728
+ if (format === 'summary') {
729
+ return {
730
+ success: true,
731
+ data: {
732
+ ...results,
733
+ summary: this.formatDependencySummary(results)
734
+ }
735
+ };
490
736
  }
491
- };
737
+ return {
738
+ success: true,
739
+ data: results
740
+ };
741
+ }
742
+ catch (error) {
743
+ return {
744
+ success: false,
745
+ error: `依賴分析失敗: ${error instanceof Error ? error.message : String(error)}`
746
+ };
747
+ }
748
+ }
749
+ formatDependencySummary(results) {
750
+ const lines = [];
751
+ if (results.graph) {
752
+ lines.push(`總檔案數: ${results.graph.totalFiles}`);
753
+ lines.push(`總依賴數: ${results.graph.totalDependencies}`);
754
+ lines.push(`平均每檔案依賴數: ${results.graph.averageDependenciesPerFile}`);
755
+ }
756
+ if (results.cycles) {
757
+ lines.push(`循環依賴: ${results.cycles.circularDependencies} 個`);
758
+ lines.push(`孤立檔案: ${results.cycles.orphanedFiles} 個`);
759
+ }
760
+ if (results.impact && !results.impact.error) {
761
+ lines.push(`直接影響: ${results.impact.directlyAffected} 個檔案`);
762
+ lines.push(`間接影響: ${results.impact.transitivelyAffected} 個檔案`);
763
+ lines.push(`影響分數: ${results.impact.impactScore.toFixed(2)}`);
764
+ }
765
+ return lines.join('\n');
492
766
  }
493
767
  /**
494
768
  * 格式化相對路徑
@@ -531,9 +805,19 @@ export class AgentIdeMCP {
531
805
  return { success: false, error: `找不到插件: ${plugin}` };
532
806
  }
533
807
  const pluginInfo = registry.listParsers().find(p => p.name === plugin);
808
+ if (!pluginInfo) {
809
+ return { success: false, error: `找不到插件資訊: ${plugin}` };
810
+ }
811
+ // 避免循環引用,只返回必要的資訊
534
812
  return {
535
813
  success: true,
536
- data: pluginInfo
814
+ data: {
815
+ name: pluginInfo.name,
816
+ version: pluginInfo.version,
817
+ supportedExtensions: pluginInfo.supportedExtensions,
818
+ supportedLanguages: pluginInfo.supportedLanguages,
819
+ registeredAt: pluginInfo.registeredAt.toISOString()
820
+ }
537
821
  };
538
822
  case 'enable':
539
823
  case 'disable':
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../src/interfaces/mcp/mcp.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAoBzE,MAAM,OAAO,WAAW;IACd,WAAW,CAAe;IAC1B,kBAAkB,CAAsB;IACxC,YAAY,CAAgB;IAC5B,cAAc,CAAkB;IAExC;;OAEG;IACH,QAAQ;QACN,OAAO;YACL;gBACE,IAAI,EAAE,YAAY;gBAClB,WAAW,EAAE,0BAA0B;gBACvC,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,MAAM,EAAE;4BACN,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC;4BAC7C,WAAW,EAAE,yDAAyD;yBACvE;wBACD,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,wBAAwB;yBACtC;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,iBAAiB;yBAC/B;wBACD,UAAU,EAAE;4BACV,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACzB,WAAW,EAAE,UAAU;4BACvB,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;yBACxC;wBACD,eAAe,EAAE;4BACf,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACzB,WAAW,EAAE,MAAM;4BACnB,OAAO,EAAE,CAAC,iBAAiB,EAAE,UAAU,CAAC;yBACzC;qBACF;oBACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;iBACrB;aACF;YACD;gBACE,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,uBAAuB;gBACpC,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC;4BAC5D,WAAW,EAAE,YAAY;yBAC1B;wBACD,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,MAAM;yBACpB;wBACD,EAAE,EAAE;4BACF,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,KAAK;yBACnB;wBACD,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,SAAS;4BACtB,OAAO,EAAE,GAAG;yBACb;wBACD,OAAO,EAAE;4BACP,IAAI,EAAE,SAAS;4BACf,WAAW,EAAE,aAAa;4BAC1B,OAAO,EAAE,KAAK;yBACf;qBACF;oBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC;iBACjC;aACF;YACD;gBACE,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,wBAAwB;gBACrC,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,MAAM,EAAE;4BACN,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,MAAM;yBACpB;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,MAAM;yBACpB;wBACD,aAAa,EAAE;4BACb,IAAI,EAAE,SAAS;4BACf,WAAW,EAAE,kBAAkB;4BAC/B,OAAO,EAAE,IAAI;yBACd;wBACD,OAAO,EAAE;4BACP,IAAI,EAAE,SAAS;4BACf,WAAW,EAAE,aAAa;4BAC1B,OAAO,EAAE,KAAK;yBACf;qBACF;oBACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;iBAC/B;aACF;YACD;gBACE,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,iBAAiB;gBAC9B,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,MAAM;yBACpB;wBACD,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;4BACjC,WAAW,EAAE,MAAM;4BACnB,OAAO,EAAE,QAAQ;yBAClB;wBACD,UAAU,EAAE;4BACV,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACzB,WAAW,EAAE,QAAQ;yBACtB;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,QAAQ;4BACrB,OAAO,EAAE,EAAE;yBACZ;qBACF;oBACD,QAAQ,EAAE,CAAC,OAAO,CAAC;iBACpB;aACF;YACD;gBACE,IAAI,EAAE,cAAc;gBACpB,WAAW,EAAE,kBAAkB;gBAC/B,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,MAAM;4BACnB,OAAO,EAAE,GAAG;yBACb;wBACD,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,CAAC;4BACtD,WAAW,EAAE,MAAM;4BACnB,OAAO,EAAE,KAAK;yBACf;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;4BACzB,WAAW,EAAE,MAAM;4BACnB,OAAO,EAAE,SAAS;yBACnB;qBACF;iBACF;aACF;YACD;gBACE,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,uBAAuB;gBACpC,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,MAAM;4BACnB,OAAO,EAAE,GAAG;yBACb;wBACD,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC;4BAC1C,WAAW,EAAE,MAAM;4BACnB,OAAO,EAAE,KAAK;yBACf;wBACD,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,gBAAgB;yBAC9B;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC;4BAChC,WAAW,EAAE,MAAM;4BACnB,OAAO,EAAE,SAAS;yBACnB;qBACF;iBACF;aACF;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EAAE,wBAAwB;gBACrC,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,MAAM,EAAE;4BACN,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC;4BAC3C,WAAW,EAAE,MAAM;yBACpB;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,8BAA8B;yBAC5C;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC;4BACpC,WAAW,EAAE,eAAe;4BAC5B,OAAO,EAAE,KAAK;yBACf;qBACF;oBACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;iBACrB;aACF;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,UAAe;QACjD,IAAI,CAAC;YACH,QAAQ,QAAQ,EAAE,CAAC;gBACnB,KAAK,YAAY;oBACf,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;gBAChD,KAAK,aAAa;oBAChB,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;gBACjD,KAAK,WAAW;oBACd,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;gBAC/C,KAAK,aAAa;oBAChB,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;gBACjD,KAAK,cAAc;oBACjB,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;gBAClD,KAAK,WAAW;oBACd,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;gBAC/C,KAAK,gBAAgB;oBACnB,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;gBACpD;oBACE,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,UAAU,QAAQ,EAAE;qBAC5B,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,SAAS;IACD,KAAK,CAAC,eAAe,CAAC,MAAW;QACvC,eAAe;QACf,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC;QACzC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC;QAChC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,OAAO,CAAC;QACvD,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,OAAO,CAAC;QAEjE,QAAQ,MAAM,EAAE,CAAC;YACjB,KAAK,QAAQ,CAAC;YACd,KAAK,QAAQ;gBACX,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;gBAC/C,CAAC;gBAED,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,iBAAiB,CAAC,WAAW,EAAE;wBAC5C,iBAAiB,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;wBAC/D,eAAe,EAAE,eAAe,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC;qBACpE,CAAC,CAAC;oBAEH,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;oBAC3C,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;oBACjD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;oBAEhD,OAAO;wBACL,OAAO,EAAE,IAAI;wBACb,IAAI,EAAE;4BACJ,MAAM,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;4BACzC,YAAY,EAAE,KAAK,CAAC,UAAU;4BAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;4BAChC,KAAK,EAAE;gCACL,UAAU,EAAE,KAAK,CAAC,UAAU;gCAC5B,YAAY,EAAE,KAAK,CAAC,YAAY;gCAChC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;6BACpC;yBACF;qBACF,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,WAAW,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;qBAC3E,CAAC;gBACJ,CAAC;YAEH,KAAK,QAAQ;gBACX,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;gBAC/C,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;oBACtB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC;gBAC5D,CAAC;gBAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACzD,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE;wBACJ,KAAK;wBACL,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;4BACzB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;4BACnB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;4BACnB,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ;4BACzB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI;4BACxC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM;4BAC5C,KAAK,EAAE,CAAC,CAAC,KAAK;yBACf,CAAC,CAAC;qBACJ;iBACF,CAAC;YAEJ,KAAK,OAAO;gBACV,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;oBACtB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;gBAC7C,CAAC;gBAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;gBACvD,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE,YAAY;iBACnB,CAAC;YAEJ;gBACE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,MAAM,EAAE,EAAE,CAAC;QACzD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,MAAW;QACxC,eAAe;QACf,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC;QAC1C,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC;QACvC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC;QACzC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,WAAW;QAErD,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;QACnD,CAAC;QAED,IAAI,CAAC;YACH,UAAU;YACV,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACtB,MAAM,MAAM,GAAG,iBAAiB,CAAC,aAAa,EAAE;oBAC9C,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;oBACjD,eAAe,EAAE,CAAC,iBAAiB,EAAE,UAAU,CAAC;iBACjD,CAAC,CAAC;gBACH,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC3C,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;YACrD,CAAC;YAED,YAAY;YACZ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACvB,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;YACzC,CAAC;YAED,OAAO;YACP,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAE9D,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,OAAO;oBACL,OAAO,EAAE,IAAI,EAAE,2BAA2B;oBAC1C,IAAI,EAAE;wBACJ,OAAO,EAAE,EAAE;wBACX,aAAa,EAAE,CAAC;qBACjB;iBACF,CAAC;YACJ,CAAC;YAED,SAAS;YACT,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACtC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ;gBACzB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI;gBACxC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM;gBAC5C,OAAO,EAAE,GAAG,IAAI,MAAM,EAAE,EAAE;gBAC1B,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,EAAE;aACZ,CAAC,CAAC,CAAC;YAEJ,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,OAAO;oBACP,aAAa,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;oBACrD,OAAO;iBACR;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,WAAW,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aAC3E,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,MAAW;QACtC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAE1D,iBAAiB;QACjB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE;gBACJ,OAAO,EAAE,SAAS,MAAM,QAAQ,MAAM,UAAU;gBAChD,aAAa,EAAE,aAAa,KAAK,KAAK;gBACtC,OAAO,EAAE,OAAO,IAAI,KAAK;aAC1B;SACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,MAAW;QACxC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC;QACzC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC;QACzC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;QAEjC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC;YACH,gBAAgB;YAChB,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;gBACjD,MAAM,MAAM,GAAG,iBAAiB,CAAC,aAAa,EAAE;oBAC9C,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;oBACjD,eAAe,EAAE,CAAC,iBAAiB,EAAE,UAAU,CAAC;iBACjD,CAAC,CAAC;gBACH,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC3C,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;YACrD,CAAC;YAED,IAAI,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBAChD,OAAO;gBACP,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACzD,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE;wBACJ,KAAK;wBACL,IAAI,EAAE,UAAU;wBAChB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;4BACzC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;4BACjE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI;4BACxC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM;4BAC5C,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;4BACtB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;4BACnB,KAAK,EAAE,CAAC,CAAC,KAAK;yBACf,CAAC,CAAC;qBACJ;iBACF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,cAAc;gBACd,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE;wBACJ,KAAK;wBACL,IAAI,EAAE,UAAU;wBAChB,OAAO,EAAE,EAAE,CAAC,eAAe;qBAC5B;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,SAAS,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aACzE,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,MAAW;QACzC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAEtC,kBAAkB;QAClB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE;gBACJ,OAAO,EAAE,SAAS,IAAI,IAAI,GAAG,UAAU;gBACvC,IAAI,EAAE,IAAI,IAAI,KAAK;gBACnB,MAAM,EAAE,MAAM,IAAI,SAAS;aAC5B;SACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,MAAW;QACtC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAE5C,iBAAiB;QACjB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE;gBACJ,OAAO,EAAE,SAAS,IAAI,IAAI,GAAG,UAAU;gBACvC,IAAI,EAAE,IAAI,IAAI,KAAK;gBACnB,MAAM,EAAE,MAAM,IAAI,SAAS;aAC5B;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,QAAgB,EAAE,QAAgB;QAC3D,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACvD,OAAO,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC;QACjE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,MAAW;QAC3C,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAE1C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC;YAE9C,QAAQ,MAAM,EAAE,CAAC;gBACjB,KAAK,MAAM;oBACT,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;oBACvC,OAAO;wBACL,OAAO,EAAE,IAAI;wBACb,IAAI,EAAE;4BACJ,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gCACzB,IAAI,EAAE,CAAC,CAAC,IAAI;gCACZ,OAAO,EAAE,CAAC,CAAC,OAAO;gCAClB,mBAAmB,EAAE,CAAC,CAAC,mBAAmB;gCAC1C,kBAAkB,EAAE,CAAC,CAAC,kBAAkB;gCACxC,YAAY,EAAE,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE;6BAC3C,CAAC,CAAC;4BACH,KAAK,EAAE,OAAO,CAAC,MAAM;yBACtB;qBACF,CAAC;gBAEJ,KAAK,MAAM;oBACT,IAAI,CAAC,MAAM,EAAE,CAAC;wBACZ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;oBAC/C,CAAC;oBAED,MAAM,cAAc,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;oBACxD,IAAI,CAAC,cAAc,EAAE,CAAC;wBACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,MAAM,EAAE,EAAE,CAAC;oBACvD,CAAC;oBAED,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;oBACvE,OAAO;wBACL,OAAO,EAAE,IAAI;wBACb,IAAI,EAAE,UAAU;qBACjB,CAAC;gBAEJ,KAAK,QAAQ,CAAC;gBACd,KAAK,SAAS;oBACZ,OAAO;wBACL,OAAO,EAAE,IAAI;wBACb,IAAI,EAAE;4BACJ,OAAO,EAAE,MAAM,MAAM,QAAQ;4BAC7B,MAAM;yBACP;qBACF,CAAC;gBAEJ;oBACE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,MAAM,EAAE,EAAE,CAAC;YACzD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,WAAW,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aAC3E,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../src/interfaces/mcp/mcp.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAoB5B,MAAM,OAAO,WAAW;IACd,WAAW,CAAe;IAC1B,kBAAkB,CAAsB;IACxC,YAAY,CAAgB;IAC5B,cAAc,CAAkB;IAChC,kBAAkB,GAAG,KAAK,CAAC;IAEnC;QACE,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACK,iBAAiB;QACvB,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC;QAE9C,uBAAuB;QACvB,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACxC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAE5B,uBAAuB;QACvB,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACxC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAE5B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO;YACL;gBACE,IAAI,EAAE,YAAY;gBAClB,WAAW,EAAE,0BAA0B;gBACvC,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,MAAM,EAAE;4BACN,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC;4BAC7C,WAAW,EAAE,yDAAyD;yBACvE;wBACD,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,wBAAwB;yBACtC;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,iBAAiB;yBAC/B;wBACD,UAAU,EAAE;4BACV,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACzB,WAAW,EAAE,UAAU;4BACvB,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;yBACxC;wBACD,eAAe,EAAE;4BACf,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACzB,WAAW,EAAE,MAAM;4BACnB,OAAO,EAAE,CAAC,iBAAiB,EAAE,UAAU,CAAC;yBACzC;qBACF;oBACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;iBACrB;aACF;YACD;gBACE,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,uBAAuB;gBACpC,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC;4BAC5D,WAAW,EAAE,YAAY;yBAC1B;wBACD,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,MAAM;yBACpB;wBACD,EAAE,EAAE;4BACF,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,KAAK;yBACnB;wBACD,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,SAAS;4BACtB,OAAO,EAAE,GAAG;yBACb;wBACD,OAAO,EAAE;4BACP,IAAI,EAAE,SAAS;4BACf,WAAW,EAAE,aAAa;4BAC1B,OAAO,EAAE,KAAK;yBACf;qBACF;oBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC;iBACjC;aACF;YACD;gBACE,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,wBAAwB;gBACrC,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,MAAM,EAAE;4BACN,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,MAAM;yBACpB;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,MAAM;yBACpB;wBACD,aAAa,EAAE;4BACb,IAAI,EAAE,SAAS;4BACf,WAAW,EAAE,kBAAkB;4BAC/B,OAAO,EAAE,IAAI;yBACd;wBACD,OAAO,EAAE;4BACP,IAAI,EAAE,SAAS;4BACf,WAAW,EAAE,aAAa;4BAC1B,OAAO,EAAE,KAAK;yBACf;qBACF;oBACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;iBAC/B;aACF;YACD;gBACE,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,iBAAiB;gBAC9B,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,MAAM;yBACpB;wBACD,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;4BACjC,WAAW,EAAE,MAAM;4BACnB,OAAO,EAAE,QAAQ;yBAClB;wBACD,UAAU,EAAE;4BACV,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACzB,WAAW,EAAE,QAAQ;yBACtB;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,QAAQ;4BACrB,OAAO,EAAE,EAAE;yBACZ;qBACF;oBACD,QAAQ,EAAE,CAAC,OAAO,CAAC;iBACpB;aACF;YACD;gBACE,IAAI,EAAE,cAAc;gBACpB,WAAW,EAAE,kBAAkB;gBAC/B,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,MAAM;4BACnB,OAAO,EAAE,GAAG;yBACb;wBACD,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,CAAC;4BACtD,WAAW,EAAE,MAAM;4BACnB,OAAO,EAAE,KAAK;yBACf;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;4BACzB,WAAW,EAAE,MAAM;4BACnB,OAAO,EAAE,SAAS;yBACnB;qBACF;iBACF;aACF;YACD;gBACE,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,uBAAuB;gBACpC,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,MAAM;4BACnB,OAAO,EAAE,GAAG;yBACb;wBACD,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC;4BAC1C,WAAW,EAAE,MAAM;4BACnB,OAAO,EAAE,KAAK;yBACf;wBACD,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,gBAAgB;yBAC9B;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC;4BAChC,WAAW,EAAE,MAAM;4BACnB,OAAO,EAAE,SAAS;yBACnB;qBACF;iBACF;aACF;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EAAE,wBAAwB;gBACrC,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,MAAM,EAAE;4BACN,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC;4BAC3C,WAAW,EAAE,MAAM;yBACpB;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,8BAA8B;yBAC5C;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC;4BACpC,WAAW,EAAE,eAAe;4BAC5B,OAAO,EAAE,KAAK;yBACf;qBACF;oBACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;iBACrB;aACF;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,UAAe;QACjD,IAAI,CAAC;YACH,QAAQ,QAAQ,EAAE,CAAC;gBACnB,KAAK,YAAY;oBACf,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;gBAChD,KAAK,aAAa;oBAChB,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;gBACjD,KAAK,WAAW;oBACd,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;gBAC/C,KAAK,aAAa;oBAChB,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;gBACjD,KAAK,cAAc;oBACjB,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;gBAClD,KAAK,WAAW;oBACd,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;gBAC/C,KAAK,gBAAgB;oBACnB,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;gBACpD;oBACE,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,UAAU,QAAQ,EAAE;qBAC5B,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,SAAS;IACD,KAAK,CAAC,eAAe,CAAC,MAAW;QACvC,eAAe;QACf,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC;QACzC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC;QAChC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,OAAO,CAAC;QACvD,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,OAAO,CAAC;QAEjE,QAAQ,MAAM,EAAE,CAAC;YACjB,KAAK,QAAQ,CAAC;YACd,KAAK,QAAQ;gBACX,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;gBAC/C,CAAC;gBAED,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,iBAAiB,CAAC,WAAW,EAAE;wBAC5C,iBAAiB,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;wBAC/D,eAAe,EAAE,eAAe,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC;qBACpE,CAAC,CAAC;oBAEH,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;oBAC3C,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;oBACjD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;oBAEhD,OAAO;wBACL,OAAO,EAAE,IAAI;wBACb,IAAI,EAAE;4BACJ,MAAM,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;4BACzC,YAAY,EAAE,KAAK,CAAC,UAAU;4BAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;4BAChC,KAAK,EAAE;gCACL,UAAU,EAAE,KAAK,CAAC,UAAU;gCAC5B,YAAY,EAAE,KAAK,CAAC,YAAY;gCAChC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;6BACpC;yBACF;qBACF,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,WAAW,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;qBAC3E,CAAC;gBACJ,CAAC;YAEH,KAAK,QAAQ;gBACX,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;gBAC/C,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;oBACtB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC;gBAC5D,CAAC;gBAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACzD,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE;wBACJ,KAAK;wBACL,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;4BACzB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;4BACnB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;4BACnB,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ;4BACzB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI;4BACxC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM;4BAC5C,KAAK,EAAE,CAAC,CAAC,KAAK;yBACf,CAAC,CAAC;qBACJ;iBACF,CAAC;YAEJ,KAAK,OAAO;gBACV,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;oBACtB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;gBAC7C,CAAC;gBAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;gBACvD,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE,YAAY;iBACnB,CAAC;YAEJ;gBACE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,MAAM,EAAE,EAAE,CAAC;QACzD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,MAAW;QACxC,eAAe;QACf,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC;QAC1C,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC;QACvC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC;QACzC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,WAAW;QAErD,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;QACnD,CAAC;QAED,IAAI,CAAC;YACH,UAAU;YACV,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACtB,MAAM,MAAM,GAAG,iBAAiB,CAAC,aAAa,EAAE;oBAC9C,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;oBACjD,eAAe,EAAE,CAAC,iBAAiB,EAAE,UAAU,CAAC;iBACjD,CAAC,CAAC;gBACH,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC3C,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;YACrD,CAAC;YAED,YAAY;YACZ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACvB,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;YACzC,CAAC;YAED,OAAO;YACP,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAE9D,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,OAAO;oBACL,OAAO,EAAE,IAAI,EAAE,2BAA2B;oBAC1C,IAAI,EAAE;wBACJ,OAAO,EAAE,EAAE;wBACX,aAAa,EAAE,CAAC;qBACjB;iBACF,CAAC;YACJ,CAAC;YAED,SAAS;YACT,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACtC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ;gBACzB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI;gBACxC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM;gBAC5C,OAAO,EAAE,GAAG,IAAI,MAAM,EAAE,EAAE;gBAC1B,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,EAAE;aACZ,CAAC,CAAC,CAAC;YAEJ,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,OAAO;oBACP,aAAa,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;oBACrD,OAAO;iBACR;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,WAAW,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aAC3E,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,MAAW;QACtC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,EAAE,OAAO,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC;QAEzE,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YACvB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;QACpD,CAAC;QAED,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YACpC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YAC1F,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YAE1F,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,QAAQ,CACvC,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,EACzD,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,CACxC,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO;iBACtC,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,aAAa,CAAC;oBACxD,EAAE,EAAE,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,aAAa,CAAC;oBACtD,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM;oBACvC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;wBAC/C,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;wBAC7D,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,SAAS,EAAE,MAAM,CAAC,SAAS;wBAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;qBAC5B,CAAC,CAAC;oBACH,OAAO;oBACP,OAAO,EAAE,MAAM,CAAC,OAAO;iBACxB;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,WAAW,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aAC3E,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,MAAW;QACxC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC;QACzC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC;QACzC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;QAEjC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC;YACH,gBAAgB;YAChB,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;gBACjD,MAAM,MAAM,GAAG,iBAAiB,CAAC,aAAa,EAAE;oBAC9C,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;oBACjD,eAAe,EAAE,CAAC,iBAAiB,EAAE,UAAU,CAAC;iBACjD,CAAC,CAAC;gBACH,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC3C,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;YACrD,CAAC;YAED,IAAI,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBAChD,OAAO;gBACP,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACzD,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE;wBACJ,KAAK;wBACL,IAAI,EAAE,UAAU;wBAChB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;4BACzC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;4BACjE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI;4BACxC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM;4BAC5C,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;4BACtB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;4BACnB,KAAK,EAAE,CAAC,CAAC,KAAK;yBACf,CAAC,CAAC;qBACJ;iBACF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO;gBACP,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE;oBAC/C,GAAG,EAAE,aAAa;oBAClB,MAAM,EAAE,CAAC,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC;oBAC5D,QAAQ,EAAE,IAAI;iBACf,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAU,EAAE,CAAC;gBAE1B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;oBACvC,IAAI,CAAC;wBACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;wBACjD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAElC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;4BAC5B,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gCACzB,OAAO,CAAC,IAAI,CAAC;oCACX,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,aAAa,CAAC;oCAClD,IAAI,EAAE,KAAK,GAAG,CAAC;oCACf,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;oCAC/B,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE;iCACrB,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC,CAAC,CAAC;oBACL,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,SAAS;oBACX,CAAC;oBAED,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;wBAC5B,MAAM;oBACR,CAAC;gBACH,CAAC;gBAED,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE;wBACJ,KAAK;wBACL,IAAI,EAAE,UAAU;wBAChB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;qBACjC;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,SAAS,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aACzE,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,MAAW;QACzC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC;QACvC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC;QAE1C,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YACpC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;gBAC7C,CAAC,CAAC,WAAW;gBACb,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;YAE7C,MAAM,OAAO,GAAQ;gBACnB,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,aAAa,CAAC;gBACxD,IAAI,EAAE,WAAW;gBACjB,MAAM;aACP,CAAC;YAEF,WAAW;YACX,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC9B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,WAAW,EAAE,EAAE,CAAC;YAC5D,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAEvC,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;gBAClB,SAAS;gBACT,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBAEvD,IAAI,WAAW,KAAK,YAAY,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;oBAC1D,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,EAAE,CAAC;oBACpD,MAAM,gBAAgB,GAAG,MAAM,kBAAkB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;oBACvE,OAAO,CAAC,UAAU,GAAG,gBAAgB,CAAC;gBACxC,CAAC;gBAED,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;oBACvD,MAAM,eAAe,GAAG,IAAI,sBAAsB,EAAE,CAAC;oBACrD,MAAM,aAAa,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBAC5D,OAAO,CAAC,OAAO,GAAG,aAAa,CAAC;gBAClC,CAAC;YACH,CAAC;iBAAM,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC9B,WAAW;gBACX,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE;oBAC/C,GAAG,EAAE,UAAU;oBACf,MAAM,EAAE,CAAC,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC;oBAC5D,QAAQ,EAAE,IAAI;iBACf,CAAC,CAAC;gBAEH,MAAM,WAAW,GAAU,EAAE,CAAC;gBAE9B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;oBACtC,IAAI,CAAC;wBACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;wBACjD,MAAM,UAAU,GAAQ;4BACtB,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,aAAa,CAAC;yBACnD,CAAC;wBAEF,IAAI,WAAW,KAAK,YAAY,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;4BAC1D,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,EAAE,CAAC;4BACpD,UAAU,CAAC,UAAU,GAAG,MAAM,kBAAkB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;wBACxE,CAAC;wBAED,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;4BACvD,MAAM,eAAe,GAAG,IAAI,sBAAsB,EAAE,CAAC;4BACrD,UAAU,CAAC,OAAO,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;wBAC7D,CAAC;wBAED,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBAC/B,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,SAAS;oBACX,CAAC;gBACH,CAAC;gBAED,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC;gBAC5B,OAAO,CAAC,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC;YAC1C,CAAC;YAED,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE;wBACJ,GAAG,OAAO;wBACV,OAAO,EAAE,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;qBAC7C;iBACF,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,OAAO;aACd,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,SAAS,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aACzE,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,qBAAqB,CAAC,OAAY;QACxC,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,QAAQ,OAAO,CAAC,UAAU,CAAC,UAAU,SAAS,OAAO,CAAC,UAAU,CAAC,oBAAoB,SAAS,OAAO,CAAC,UAAU,CAAC,mBAAmB,GAAG,CAAC,CAAC;QACtJ,CAAC;QAED,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,aAAa,OAAO,CAAC,OAAO,CAAC,oBAAoB,GAAG,CAAC,CAAC;YAC7F,IAAI,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3C,KAAK,CAAC,IAAI,CAAC,UAAU,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,CAAM,EAAE,EAAE,CACjE,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,oBAAoB,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;YAC7E,KAAK,CAAC,IAAI,CAAC,YAAY,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,MAAW;QACtC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC;QACvC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC;QACzC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC;QAE1C,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YACpC,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;gBAC9C,CAAC,CAAC,WAAW;gBACb,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;YAE7C,WAAW;YACX,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC/B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,WAAW,EAAE,EAAE,CAAC;YAC5D,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,kBAAkB,CAAC;gBACzC,kBAAkB,EAAE,KAAK;gBACzB,eAAe,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC;gBAC/D,eAAe,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC;aAChE,CAAC,CAAC;YAEH,MAAM,OAAO,GAAQ;gBACnB,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,aAAa,CAAC;gBACzD,IAAI,EAAE,WAAW;gBACjB,MAAM;aACP,CAAC;YAEF,IAAI,WAAW,KAAK,OAAO,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;gBACrD,QAAQ;gBACR,MAAM,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;gBAC9C,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;gBACrC,OAAO,CAAC,KAAK,GAAG;oBACd,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;oBAC1C,0BAA0B,EAAE,KAAK,CAAC,0BAA0B;oBAC5D,qBAAqB,EAAE,KAAK,CAAC,qBAAqB;iBACnD,CAAC;YACJ,CAAC;YAED,IAAI,WAAW,KAAK,QAAQ,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;gBACtD,SAAS;gBACT,MAAM,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;gBAC9C,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;gBACrC,OAAO,CAAC,MAAM,GAAG;oBACf,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;oBAChD,aAAa,EAAE,KAAK,CAAC,aAAa;iBACnC,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,WAAW,KAAK,QAAQ,IAAI,WAAW,KAAK,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC;gBACtE,OAAO;gBACP,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;oBAC1C,CAAC,CAAC,UAAU;oBACZ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;gBAE1C,IAAI,CAAC;oBACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAC1B,MAAM,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;oBAC9C,MAAM,cAAc,GAAG,WAAW,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;oBAE/D,OAAO,CAAC,MAAM,GAAG;wBACf,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,aAAa,CAAC;wBAC5D,gBAAgB,EAAE,cAAc,CAAC,gBAAgB,CAAC,MAAM;wBACxD,oBAAoB,EAAE,cAAc,CAAC,oBAAoB,CAAC,MAAM;wBAChE,aAAa,EAAE,cAAc,CAAC,aAAa,CAAC,MAAM;wBAClD,WAAW,EAAE,cAAc,CAAC,WAAW;wBACvC,qBAAqB,EAAE,cAAc,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAC7D,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,aAAa,CAAC,CAC1C,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;qBACf,CAAC;gBACJ,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,CAAC,MAAM,GAAG,EAAE,KAAK,EAAE,UAAU,UAAU,EAAE,EAAE,CAAC;gBACrD,CAAC;YACH,CAAC;YAED,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE;wBACJ,GAAG,OAAO;wBACV,OAAO,EAAE,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC;qBAC/C;iBACF,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,OAAO;aACd,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,WAAW,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aAC3E,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,uBAAuB,CAAC,OAAY;QAC1C,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;YAChD,KAAK,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC;YACvD,KAAK,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,KAAK,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,oBAAoB,IAAI,CAAC,CAAC;YAC7D,KAAK,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,gBAAgB,MAAM,CAAC,CAAC;YAC3D,KAAK,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,oBAAoB,MAAM,CAAC,CAAC;YAC/D,KAAK,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,QAAgB,EAAE,QAAgB;QAC3D,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACvD,OAAO,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC;QACjE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,MAAW;QAC3C,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAE1C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC;YAE9C,QAAQ,MAAM,EAAE,CAAC;gBACjB,KAAK,MAAM;oBACT,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;oBACvC,OAAO;wBACL,OAAO,EAAE,IAAI;wBACb,IAAI,EAAE;4BACJ,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gCACzB,IAAI,EAAE,CAAC,CAAC,IAAI;gCACZ,OAAO,EAAE,CAAC,CAAC,OAAO;gCAClB,mBAAmB,EAAE,CAAC,CAAC,mBAAmB;gCAC1C,kBAAkB,EAAE,CAAC,CAAC,kBAAkB;gCACxC,YAAY,EAAE,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE;6BAC3C,CAAC,CAAC;4BACH,KAAK,EAAE,OAAO,CAAC,MAAM;yBACtB;qBACF,CAAC;gBAEJ,KAAK,MAAM;oBACT,IAAI,CAAC,MAAM,EAAE,CAAC;wBACZ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;oBAC/C,CAAC;oBAED,MAAM,cAAc,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;oBACxD,IAAI,CAAC,cAAc,EAAE,CAAC;wBACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,MAAM,EAAE,EAAE,CAAC;oBACvD,CAAC;oBAED,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;oBACvE,IAAI,CAAC,UAAU,EAAE,CAAC;wBAChB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,MAAM,EAAE,EAAE,CAAC;oBACzD,CAAC;oBAED,kBAAkB;oBAClB,OAAO;wBACL,OAAO,EAAE,IAAI;wBACb,IAAI,EAAE;4BACJ,IAAI,EAAE,UAAU,CAAC,IAAI;4BACrB,OAAO,EAAE,UAAU,CAAC,OAAO;4BAC3B,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;4BACnD,kBAAkB,EAAE,UAAU,CAAC,kBAAkB;4BACjD,YAAY,EAAE,UAAU,CAAC,YAAY,CAAC,WAAW,EAAE;yBACpD;qBACF,CAAC;gBAEJ,KAAK,QAAQ,CAAC;gBACd,KAAK,SAAS;oBACZ,OAAO;wBACL,OAAO,EAAE,IAAI;wBACb,IAAI,EAAE;4BACJ,OAAO,EAAE,MAAM,MAAM,QAAQ;4BAC7B,MAAM;yBACP;qBACF,CAAC;gBAEJ;oBACE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,MAAM,EAAE,EAAE,CAAC;YACzD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,WAAW,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aAC3E,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-ide",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "程式碼智能工具集 for AI Agents",
5
5
  "type": "module",
6
6
  "main": "dist/shared/index.js",
@@ -10,6 +10,7 @@
10
10
  "agent-ide-mcp": "./bin/mcp-server.js"
11
11
  },
12
12
  "scripts": {
13
+ "prepare": "npm run build",
13
14
  "build": "tsc",
14
15
  "test": "NODE_OPTIONS='--expose-gc --max-old-space-size=4096' npx vitest run",
15
16
  "test:watch": "NODE_OPTIONS='--expose-gc --max-old-space-size=4096' npx vitest --watch",