mcp-swarm 1.0.11 β†’ 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,4 +1,4 @@
1
- > πŸ‡·πŸ‡Ί [Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π½Π° русском](./CHANGELOG.ru.md)
1
+ > <img src="https://flagcdn.com/20x15/ru.png" alt="RU" /> [Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π½Π° русском](./CHANGELOG.ru.md)
2
2
 
3
3
  # Changelog
4
4
 
@@ -9,6 +9,89 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
9
9
 
10
10
  ---
11
11
 
12
+ ## [1.1.0] - 2026-02-09
13
+
14
+ ### 🐝 Web Dashboard + DX Improvements
15
+
16
+ #### Added
17
+
18
+ - **Web Dashboard** β€” Beautiful dark-themed dashboard at `http://localhost:37373` with auto-refresh every 5s. Shows agent name, role, bridge status, uptime, PID, and all API endpoints.
19
+ - **PID file** β€” Companion now writes `~/.mcp-swarm/companion.pid` on startup and removes it on exit for process discovery.
20
+ - **Graceful shutdown** β€” SIGTERM/SIGINT handlers with PID cleanup.
21
+ - **`/health` endpoint** β€” Returns JSON with `{ ok, pid, uptime }` for monitoring.
22
+ - **`examples/`** β€” Ready-to-use configs for Claude Code, Cursor, Windsurf, OpenCode, and local mode.
23
+ - **Issue Templates** β€” Bug report, feature request, and question templates in `.github/ISSUE_TEMPLATE/`.
24
+ - **Unit tests** β€” Tests for `normalizeGitRemote` and PID file management (`src/tests/projectId.test.ts`).
25
+ - **New badges** β€” Node.js 18+, TypeScript 5.0, MCP Protocol added to README EN + RU.
26
+ - **Quick Demo** β€” ASCII workflow diagram added to README EN + RU showing multi-agent coordination.
27
+
28
+ #### Changed
29
+
30
+ - **`smartTools.ts`** β€” Legacy monolith renamed to `smartTools.legacy.ts` (unused, server uses modular `smartTools/`).
31
+ - **`--version` flag** β€” Added to `mcp-swarm-remote` CLI (`-v`, `-V`, `--version`).
32
+ - **`readFileSync` import** β€” Added to `remote/index.ts` for version reading.
33
+
34
+ ---
35
+
36
+ ## [1.0.11] - 2026-02-09
37
+
38
+ ### 🎨 Flag Badges & Community CTA
39
+
40
+ #### Changed
41
+
42
+ - **Flag badges** β€” Replaced Unicode country flag emoji (πŸ‡·πŸ‡Ί/πŸ‡¬πŸ‡§) with `<img>` badges from flagcdn.com. Flags now display correctly on npm, GitHub, and all platforms.
43
+ - **Community CTA section** β€” Added "⭐ Support the Project" section to both README (EN + RU) with links to Issues, Discussions, and Fork & PR.
44
+
45
+ ---
46
+
47
+ ## [1.0.10] - 2026-02-09
48
+
49
+ ### πŸ”„ CI/CD Auto-Publish & Docs Update
50
+
51
+ #### Changed
52
+
53
+ - **CI/CD fully automated** β€” GitHub Actions now auto-publishes to npm AND creates GitHub Release when a new version is pushed to `main`. Skips gracefully if version already exists.
54
+ - **README updated** β€” Both README.md and README.ru.md updated from v1.0.7 β†’ v1.0.10 with current feature descriptions.
55
+
56
+ ---
57
+
58
+ ## [1.0.9] - 2026-02-09
59
+
60
+ ### 🧭 Smart Project ID with Git Init Suggestions
61
+
62
+ #### Added
63
+
64
+ - **Git init suggestions** β€” When a project directory has no git repo, companion now prints step-by-step instructions: `git init` β†’ `git add -A` β†’ `git commit` β†’ `gh repo create`.
65
+ - **Remote-only suggestions** β€” When git exists but no remote origin, suggests `gh repo create` or `git remote add origin`.
66
+ - **`ProjectIdResult.suggestions`** β€” New `suggestions[]` field in project ID resolution result, available to tools and agents.
67
+
68
+ #### Changed
69
+
70
+ - **Clean folder-based IDs** β€” Path-based project IDs no longer include hash suffix. `Intop Saas` β†’ `intop_saas` (was `intop_saas_a1b2c3`).
71
+ - **`isGitInitialized()` and `hasRemoteOrigin()`** β€” New helper functions for granular git status detection.
72
+
73
+ ---
74
+
75
+ ## [1.0.8] - 2026-02-09
76
+
77
+ ### πŸ”§ Companion Bridge Auto-Restart
78
+
79
+ #### Fixed
80
+
81
+ - **Critical: Bridge auto-restart** β€” If companion is running but bridge is disconnected (e.g. old companion without `MCP_SERVER_URL`), `ensureCompanion()` now kills the old process and restarts with correct environment variables.
82
+ - **`isBridgeConnected()`** β€” New function to verify bridge WebSocket status via companion control API.
83
+ - **`killCompanion()`** β€” New function to gracefully shut down companion before restart.
84
+
85
+ #### Changed
86
+
87
+ - **ensureCompanion() logic rewritten:**
88
+ 1. Check if companion process is running
89
+ 2. Check if bridge is actually connected
90
+ 3. If running but disconnected β†’ kill + restart with `MCP_SERVER_URL`
91
+ 4. If not running β†’ start fresh
92
+
93
+ ---
94
+
12
95
  ## [1.0.7] - 2026-02-09
13
96
 
14
97
  ### πŸŒ‰ Full Bridge Coverage β€” All 26 Smart Tools via Remote
package/CHANGELOG.ru.md CHANGED
@@ -1,4 +1,4 @@
1
- > πŸ‡¬πŸ‡§ [Read in English](./CHANGELOG.md)
1
+ > <img src="https://flagcdn.com/20x15/gb.png" alt="EN" /> [Read in English](./CHANGELOG.md)
2
2
 
3
3
  # Changelog
4
4
 
@@ -9,6 +9,89 @@
9
9
 
10
10
  ---
11
11
 
12
+ ## [1.1.0] - 2026-02-09
13
+
14
+ ### 🐝 Web Dashboard + DX ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ
15
+
16
+ #### Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ
17
+
18
+ - **Web Dashboard** β€” ΠšΡ€Π°ΡΠΈΠ²Ρ‹ΠΉ dark-theme Π΄Π°ΡˆΠ±ΠΎΡ€Π΄ Π½Π° `http://localhost:37373` с Π°Π²Ρ‚ΠΎΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 5с. ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ имя Π°Π³Π΅Π½Ρ‚Π°, Ρ€ΠΎΠ»ΡŒ, статус bridge, uptime, PID ΠΈ всС API endpoints.
19
+ - **PID-Ρ„Π°ΠΉΠ»** β€” Companion записываСт `~/.mcp-swarm/companion.pid` ΠΏΡ€ΠΈ запускС ΠΈ удаляСт ΠΏΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅.
20
+ - **Graceful shutdown** β€” ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ SIGTERM/SIGINT с очисткой PID-Ρ„Π°ΠΉΠ»Π°.
21
+ - **`/health` endpoint** β€” Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ JSON `{ ok, pid, uptime }` для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°.
22
+ - **`examples/`** β€” Π“ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΈ для Claude Code, Cursor, Windsurf, OpenCode ΠΈ локального Ρ€Π΅ΠΆΠΈΠΌΠ°.
23
+ - **Issue Templates** β€” Π¨Π°Π±Π»ΠΎΠ½Ρ‹ Π±Π°Π³-Ρ€Π΅ΠΏΠΎΡ€Ρ‚ΠΎΠ², запросов Ρ„ΠΈΡ‡ ΠΈ вопросов Π² `.github/ISSUE_TEMPLATE/`.
24
+ - **Unit-тСсты** β€” ВСсты для `normalizeGitRemote` ΠΈ PID-Ρ„Π°ΠΉΠ»Π° (`src/tests/projectId.test.ts`).
25
+ - **НовыС Π±Π΅ΠΉΠ΄ΠΆΠΈ** β€” Node.js 18+, TypeScript 5.0, MCP Protocol Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π² README EN + RU.
26
+ - **Quick Demo** β€” ASCII-Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΌΡƒΠ»ΡŒΡ‚ΠΈ-Π°Π³Π΅Π½Ρ‚Π½ΠΎΠ³ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ процСсса Π² README EN + RU.
27
+
28
+ #### ИзмСнСно
29
+
30
+ - **`smartTools.ts`** β€” Legacy-ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ Π² `smartTools.legacy.ts` (Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, сСрвСр Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΌ `smartTools/`).
31
+ - **Π€Π»Π°Π³ `--version`** β€” Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π² CLI `mcp-swarm-remote` (`-v`, `-V`, `--version`).
32
+ - **Π˜ΠΌΠΏΠΎΡ€Ρ‚ `readFileSync`** β€” Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π² `remote/index.ts` для чтСния вСрсии.
33
+
34
+ ---
35
+
36
+ ## [1.0.11] - 2026-02-09
37
+
38
+ ### 🎨 Π‘Π΅ΠΉΠ΄ΠΆΠΈ Ρ„Π»Π°Π³ΠΎΠ² ΠΈ CTA-сСкция
39
+
40
+ #### ИзмСнСно
41
+
42
+ - **Π‘Π΅ΠΉΠ΄ΠΆΠΈ Ρ„Π»Π°Π³ΠΎΠ²** β€” Unicode emoji Ρ„Π»Π°Π³ΠΎΠ² (πŸ‡·πŸ‡Ί/πŸ‡¬πŸ‡§) Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ‹ Π½Π° `<img>` Π±Π΅ΠΉΠ΄ΠΆΠΈ с flagcdn.com. Π€Π»Π°Π³ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π½Π° npm, GitHub ΠΈ всСх ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ….
43
+ - **CTA-сСкция** β€” Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° сСкция «⭐ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Β» Π² ΠΎΠ±Π° README (EN + RU) со ссылками Π½Π° Issues, Discussions ΠΈ Fork & PR.
44
+
45
+ ---
46
+
47
+ ## [1.0.10] - 2026-02-09
48
+
49
+ ### πŸ”„ CI/CD Π°Π²Ρ‚ΠΎ-публикация ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ
50
+
51
+ #### ИзмСнСно
52
+
53
+ - **CI/CD ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½** β€” GitHub Actions Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π°Π²Ρ‚ΠΎ-ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅Ρ‚ Π² npm И создаёт GitHub Release ΠΏΡ€ΠΈ push Π½ΠΎΠ²ΠΎΠΉ вСрсии Π² `main`. ΠŸΡ€ΠΎΠΏΡƒΡΠΊΠ°Π΅Ρ‚, Ссли вСрсия ΡƒΠΆΠ΅ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π°.
54
+ - **README ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½** β€” README.md ΠΈ README.ru.md ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ с v1.0.7 β†’ v1.0.10 с Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ описаниСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.
55
+
56
+ ---
57
+
58
+ ## [1.0.9] - 2026-02-09
59
+
60
+ ### 🧭 Smart Project ID с прСдлоТСниями git init
61
+
62
+ #### Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ
63
+
64
+ - **ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ git init** β€” Если Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π΅Ρ‚ git-рСпозитория, companion Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎΡˆΠ°Π³ΠΎΠ²ΡƒΡŽ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ: `git init` β†’ `git add -A` β†’ `git commit` β†’ `gh repo create`.
65
+ - **ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ для remote** β€” Если git Π΅ΡΡ‚ΡŒ, Π½ΠΎ Π½Π΅Ρ‚ remote origin, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ `gh repo create` ΠΈΠ»ΠΈ `git remote add origin`.
66
+ - **`ProjectIdResult.suggestions`** β€” НовоС ΠΏΠΎΠ»Π΅ `suggestions[]` Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ опрСдСлСния Project ID, доступноС инструмСнтам ΠΈ Π°Π³Π΅Π½Ρ‚Π°ΠΌ.
67
+
68
+ #### ИзмСнСно
69
+
70
+ - **ЧистыС folder-based ID** β€” Project ID Π½Π° основС ΠΏΡƒΡ‚ΠΈ большС Π½Π΅ содСрТит hash-суффикс. `Intop Saas` β†’ `intop_saas` (Π±Ρ‹Π»ΠΎ `intop_saas_a1b2c3`).
71
+ - **`isGitInitialized()` ΠΈ `hasRemoteOrigin()`** β€” НовыС helper-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ статуса git.
72
+
73
+ ---
74
+
75
+ ## [1.0.8] - 2026-02-09
76
+
77
+ ### πŸ”§ Авто-пСрСзапуск Companion Bridge
78
+
79
+ #### Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ
80
+
81
+ - **ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ: Авто-пСрСзапуск bridge** β€” Если companion Π·Π°ΠΏΡƒΡ‰Π΅Π½, Π½ΠΎ bridge ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Ρ‘Π½ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, старый companion Π±Π΅Π· `MCP_SERVER_URL`), `ensureCompanion()` Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡƒΠ±ΠΈΠ²Π°Π΅Ρ‚ старый процСсс ΠΈ пСрСзапускаСт с ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ окруТСния.
82
+ - **`isBridgeConnected()`** β€” Новая функция для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ состояния WebSocket bridge Ρ‡Π΅Ρ€Π΅Π· companion control API.
83
+ - **`killCompanion()`** β€” Новая функция для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ companion ΠΏΠ΅Ρ€Π΅Π΄ пСрСзапуском.
84
+
85
+ #### ИзмСнСно
86
+
87
+ - **Π›ΠΎΠ³ΠΈΠΊΠ° ensureCompanion() пСрСписана:**
88
+ 1. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°: Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π»ΠΈ процСсс companion
89
+ 2. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°: ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Ρ‘Π½ Π»ΠΈ bridge
90
+ 3. Если Π·Π°ΠΏΡƒΡ‰Π΅Π½, Π½ΠΎ bridge ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Ρ‘Π½ β†’ ΡƒΠ±ΠΈΡ‚ΡŒ + ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ с `MCP_SERVER_URL`
91
+ 4. Если Π½Π΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½ β†’ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ с нуля
92
+
93
+ ---
94
+
12
95
  ## [1.0.7] - 2026-02-09
13
96
 
14
97
  ### πŸŒ‰ ПолноС ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Bridge β€” ВсС 26 Smart Tools Ρ‡Π΅Ρ€Π΅Π· Remote
package/README.md CHANGED
@@ -4,19 +4,47 @@
4
4
  [![npm downloads](https://img.shields.io/npm/dm/mcp-swarm.svg)](https://www.npmjs.com/package/mcp-swarm)
5
5
  [![license](https://img.shields.io/npm/l/mcp-swarm.svg)](https://github.com/AbdrAbdr/MCP-Swarm/blob/main/LICENSE)
6
6
  [![CI](https://github.com/AbdrAbdr/MCP-Swarm/actions/workflows/ci.yml/badge.svg)](https://github.com/AbdrAbdr/MCP-Swarm/actions/workflows/ci.yml)
7
+ [![Node.js](https://img.shields.io/badge/Node.js-18%2B-339933?logo=node.js)](https://nodejs.org)
8
+ [![TypeScript](https://img.shields.io/badge/TypeScript-5.0-3178C6?logo=typescript)](https://www.typescriptlang.org)
9
+ [![MCP Protocol](https://img.shields.io/badge/MCP-Protocol-blueviolet)](https://modelcontextprotocol.io)
7
10
 
8
11
  <p align="center">
9
12
  <img src="./assets/banner.png" alt="MCP Swarm Banner" width="800" />
10
13
  </p>
11
14
 
12
- # 🐝 MCP Swarm v1.0.10 β€” Universal AI Agent Coordination Platform
15
+ # 🐝 MCP Swarm v1.1.0 β€” Universal AI Agent Coordination Platform
13
16
 
14
- > πŸŒ‰ **v1.0.10 β€” Full Remote Bridge + Smart Project ID:** All **26 Smart Tools** through Remote Bridge. Auto-start companion with bridge health check. Smart Project ID with git init suggestions. Update: `npm install -g mcp-swarm@latest`
17
+ > 🐝 **v1.1.0 β€” Web Dashboard + DX Improvements:** Web Dashboard at `localhost:37373`, PID file management, `--version` support, IDE config examples, issue templates, additional badges. All **26 Smart Tools** via Remote Bridge. Update: `npm install -g mcp-swarm@latest`
15
18
 
16
19
  **MCP Swarm** is a global "nervous system" for your AI assistants. It turns separate agents (Claude, Cursor, Windsurf, OpenCode) into a coordinated team that can work on massive projects without conflicts or context loss.
17
20
 
18
21
  ---
19
22
 
23
+ ## 🎬 Quick Demo
24
+
25
+ ```
26
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
27
+ β”‚ Claude Code (Agent 1) Cursor (Agent 2) β”‚
28
+ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
29
+ β”‚ β”‚ swarm_task create β”‚ β”‚ swarm_task list β”‚ β”‚
30
+ β”‚ β”‚ "Fix auth module" │───────▢│ β†’ picks up task β”‚ β”‚
31
+ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚
32
+ β”‚ β”‚ swarm_file reserve β”‚ β”‚ swarm_file reserve β”‚ β”‚
33
+ β”‚ β”‚ auth.ts βœ… locked β”‚ β”‚ utils.ts βœ… locked β”‚ β”‚
34
+ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚
35
+ β”‚ β”‚ swarm_chat broadcast │◄──────▢│ swarm_chat broadcast β”‚ β”‚
36
+ β”‚ β”‚ "Auth fixed!" β”‚ β”‚ "Utils updated!" β”‚ β”‚
37
+ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
38
+ β”‚ β”‚
39
+ β”‚ 🌐 Hub (Cloudflare) ←→ 🐝 Companion (localhost:37373) β”‚
40
+ β”‚ Real-time sync Web Dashboard + Bridge β”‚
41
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
42
+ ```
43
+
44
+ **Open `http://localhost:37373` to see the live dashboard!**
45
+
46
+ ---
47
+
20
48
  ## 🧠 What Is This?
21
49
 
22
50
  When you use multiple AI tools simultaneously, they often collide: editing the same files, redoing each other's work, or simply not knowing what a colleague did five minutes ago.
package/README.ru.md CHANGED
@@ -4,19 +4,48 @@
4
4
  [![npm downloads](https://img.shields.io/npm/dm/mcp-swarm.svg)](https://www.npmjs.com/package/mcp-swarm)
5
5
  [![license](https://img.shields.io/npm/l/mcp-swarm.svg)](https://github.com/AbdrAbdr/MCP-Swarm/blob/main/LICENSE)
6
6
  [![CI](https://github.com/AbdrAbdr/MCP-Swarm/actions/workflows/ci.yml/badge.svg)](https://github.com/AbdrAbdr/MCP-Swarm/actions/workflows/ci.yml)
7
+ [![Node.js](https://img.shields.io/badge/Node.js-18%2B-339933?logo=node.js)](https://nodejs.org)
8
+ [![TypeScript](https://img.shields.io/badge/TypeScript-5.0-3178C6?logo=typescript)](https://www.typescriptlang.org)
9
+ [![MCP Protocol](https://img.shields.io/badge/MCP-Protocol-blueviolet)](https://modelcontextprotocol.io)
7
10
 
8
11
  <p align="center">
9
12
  <img src="./assets/banner.png" alt="MCP Swarm Banner" width="800" />
10
13
  </p>
11
14
 
12
- # 🐝 MCP Swarm v1.0.10 β€” Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π°Ρ ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΠΈ AI-АгСнтов
15
+ # 🐝 MCP Swarm v1.1.0 β€” Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π°Ρ ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΠΈ AI-АгСнтов
13
16
 
14
- > πŸŒ‰ **v1.0.10 β€” Full Remote Bridge + Smart Project ID:** ВсС **26 Smart Tools** Ρ‡Π΅Ρ€Π΅Π· Remote Bridge. Авто-запуск companion с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ bridge health. Smart Project ID с прСдлоТСниями git init. ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ΡΡŒ: `npm install -g mcp-swarm@latest`
17
+ > 🐝 **v1.1.0 β€” Web Dashboard + DX ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ:** Web Dashboard Π½Π° `localhost:37373`, PID-Ρ„Π°ΠΉΠ», `--version`, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΎΠ² IDE, issue templates, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±Π΅ΠΉΠ΄ΠΆΠΈ. ВсС **26 Smart Tools** Ρ‡Π΅Ρ€Π΅Π· Remote Bridge. ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ΡΡŒ: `npm install -g mcp-swarm@latest`
15
18
 
16
19
  **MCP Swarm** β€” это глобальная «нСрвная систСма» для Π²Π°ΡˆΠΈΡ… AI-ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΎΠ². Она ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€ΠΎΠ·Π½Π΅Π½Π½Ρ‹Ρ… Π°Π³Π΅Π½Ρ‚ΠΎΠ² (Claude, Cursor, Windsurf, OpenCode) Π² ΡΠ»Π°ΠΆΠ΅Π½Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, ΡΠΏΠΎΡΠΎΠ±Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π±Π΅Π· ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΈ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ контСкста.
17
20
 
18
21
  ---
19
22
 
23
+ ## 🎬 БыстроС Π΄Π΅ΠΌΠΎ
24
+
25
+ ```
26
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
27
+ β”‚ Claude Code (АгСнт 1) Cursor (АгСнт 2) β”‚
28
+ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
29
+ β”‚ β”‚ swarm_task create β”‚ β”‚ swarm_task list β”‚ β”‚
30
+ β”‚ β”‚ "ΠŸΠΎΡ‡ΠΈΠ½ΠΈΡ‚ΡŒ auth" │───────▢│ β†’ Π±Π΅Ρ€Ρ‘Ρ‚ Π·Π°Π΄Π°Ρ‡Ρƒ β”‚ β”‚
31
+ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚
32
+ β”‚ β”‚ swarm_file reserve β”‚ β”‚ swarm_file reserve β”‚ β”‚
33
+ β”‚ β”‚ auth.ts βœ… Π·Π°Π±Π»ΠΎΠΊ. β”‚ β”‚ utils.ts βœ… Π·Π°Π±Π»ΠΎΠΊ. β”‚ β”‚
34
+ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚
35
+ β”‚ β”‚ swarm_chat broadcast │◄──────▢│ swarm_chat broadcast β”‚ β”‚
36
+ β”‚ β”‚ "Auth Π³ΠΎΡ‚ΠΎΠ²!" β”‚ β”‚ "Utils Π³ΠΎΡ‚ΠΎΠ²Ρ‹!" β”‚ β”‚
37
+ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
38
+ β”‚ β”‚
39
+ β”‚ 🌐 Hub (Cloudflare) ←→ 🐝 Companion (localhost:37373) β”‚
40
+ β”‚ Бинхронизация Web Dashboard + Bridge β”‚
41
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
42
+ ```
43
+
44
+ **ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ `http://localhost:37373` Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π΄Π°ΡˆΠ±ΠΎΡ€Π΄ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ!**
45
+
46
+ ---
47
+
48
+
20
49
  ## 🧠 Π§Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅?
21
50
 
22
51
  Когда Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ нСсколько AI-инструмСнтов ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, ΠΎΠ½ΠΈ часто Β«ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ Π»Π±Π°ΠΌΠΈΒ»: Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‚ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Ρ‹Π²Π°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π° ΠΈΠ»ΠΈ просто Π½Π΅ Π·Π½Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ сдСлал ΠΊΠΎΠ»Π»Π΅Π³Π° ΠΏΡΡ‚ΡŒ ΠΌΠΈΠ½ΡƒΡ‚ Π½Π°Π·Π°Π΄.
package/dist/companion.js CHANGED
@@ -1,6 +1,8 @@
1
1
  import { createRequire } from "node:module";
2
2
  import http from "node:http";
3
3
  import path from "node:path";
4
+ import fs from "node:fs";
5
+ import os from "node:os";
4
6
  import { gitTry } from "./workflows/git.js";
5
7
  import { getRepoRoot } from "./workflows/repo.js";
6
8
  import { getStopState } from "./workflows/stopFlag.js";
@@ -90,9 +92,33 @@ function log(level, message) {
90
92
  // eslint-disable-next-line no-console
91
93
  console.log(`${colorMap[level]}[${timestamp}] ${prefix[level]} ${message}${colors.reset}`);
92
94
  }
95
+ // ============ PID FILE ============
96
+ const PID_DIR = path.join(os.homedir(), ".mcp-swarm");
97
+ const PID_FILE = path.join(PID_DIR, "companion.pid");
98
+ function writePidFile() {
99
+ try {
100
+ if (!fs.existsSync(PID_DIR))
101
+ fs.mkdirSync(PID_DIR, { recursive: true });
102
+ fs.writeFileSync(PID_FILE, String(process.pid), "utf-8");
103
+ }
104
+ catch {
105
+ // Non-critical β€” log and continue
106
+ }
107
+ }
108
+ function removePidFile() {
109
+ try {
110
+ if (fs.existsSync(PID_FILE))
111
+ fs.unlinkSync(PID_FILE);
112
+ }
113
+ catch {
114
+ // ignore
115
+ }
116
+ }
93
117
  async function run() {
94
118
  const cfg = getEnvConfig();
95
119
  const repoRoot = await getRepoRoot(cfg.repoPath);
120
+ // Write PID file for process discovery
121
+ writePidFile();
96
122
  // ============ SMART PROJECT ID ============
97
123
  const projectInfo = await getProjectIdSource(repoRoot);
98
124
  const projectId = projectInfo.id;
@@ -282,6 +308,121 @@ async function run() {
282
308
  res.end(JSON.stringify({ ok: true, removed: projectPath }));
283
309
  return;
284
310
  }
311
+ // ============ WEB DASHBOARD ============
312
+ // GET / β€” Beautiful HTML dashboard
313
+ if (req.method === "GET" && (req.url === "/" || req.url === "/dashboard")) {
314
+ res.statusCode = 200;
315
+ res.setHeader("content-type", "text/html; charset=utf-8");
316
+ const bridgeStatus = bridgeManager?.getStatus() ?? null;
317
+ const uptimeSeconds = Math.floor(process.uptime());
318
+ const uptimeStr = `${Math.floor(uptimeSeconds / 3600)}h ${Math.floor((uptimeSeconds % 3600) / 60)}m ${uptimeSeconds % 60}s`;
319
+ res.end(`<!DOCTYPE html>
320
+ <html lang="en">
321
+ <head>
322
+ <meta charset="UTF-8">
323
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
324
+ <meta http-equiv="refresh" content="5">
325
+ <title>🐝 MCP Swarm β€” Dashboard</title>
326
+ <style>
327
+ * { margin: 0; padding: 0; box-sizing: border-box; }
328
+ body { font-family: 'Segoe UI', system-ui, sans-serif; background: #0d1117; color: #e6edf3; min-height: 100vh; padding: 2rem; }
329
+ .container { max-width: 900px; margin: 0 auto; }
330
+ h1 { font-size: 2rem; margin-bottom: 0.5rem; }
331
+ h1 span { color: #58a6ff; }
332
+ .subtitle { color: #8b949e; margin-bottom: 2rem; font-size: 0.95rem; }
333
+ .cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1rem; margin-bottom: 2rem; }
334
+ .card { background: #161b22; border: 1px solid #30363d; border-radius: 12px; padding: 1.2rem; }
335
+ .card h3 { color: #8b949e; font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 0.5rem; }
336
+ .card .value { font-size: 1.4rem; font-weight: 600; }
337
+ .card .value.green { color: #3fb950; }
338
+ .card .value.blue { color: #58a6ff; }
339
+ .card .value.yellow { color: #d29922; }
340
+ .card .value.red { color: #f85149; }
341
+ .badge { display: inline-block; padding: 0.15rem 0.6rem; border-radius: 99px; font-size: 0.75rem; font-weight: 600; }
342
+ .badge.orch { background: #1f6feb33; color: #58a6ff; border: 1px solid #1f6feb; }
343
+ .badge.exec { background: #23863633; color: #3fb950; border: 1px solid #238636; }
344
+ .badge.running { background: #23863633; color: #3fb950; }
345
+ .badge.paused { background: #d2992233; color: #d29922; }
346
+ .badge.stopped { background: #f8514933; color: #f85149; }
347
+ .endpoints { margin-top: 1rem; }
348
+ .endpoints h2 { font-size: 1.1rem; margin-bottom: 0.8rem; color: #c9d1d9; }
349
+ .ep-list { list-style: none; }
350
+ .ep-list li { padding: 0.5rem 0.8rem; border-bottom: 1px solid #21262d; font-family: 'Cascadia Code', 'Fira Code', monospace; font-size: 0.85rem; display: flex; gap: 0.8rem; }
351
+ .ep-list .method { color: #3fb950; min-width: 3.5rem; font-weight: 600; }
352
+ .ep-list .path { color: #58a6ff; }
353
+ .ep-list .desc { color: #8b949e; margin-left: auto; }
354
+ .footer { margin-top: 2rem; color: #484f58; font-size: 0.8rem; text-align: center; }
355
+ .footer a { color: #58a6ff; text-decoration: none; }
356
+ </style>
357
+ </head>
358
+ <body>
359
+ <div class="container">
360
+ <h1>🐝 MCP <span>Swarm</span></h1>
361
+ <p class="subtitle">Companion Dashboard β€” auto-refreshes every 5s</p>
362
+ <div class="cards">
363
+ <div class="card">
364
+ <h3>Agent</h3>
365
+ <div class="value blue">${agentName}</div>
366
+ </div>
367
+ <div class="card">
368
+ <h3>Role</h3>
369
+ <div class="value"><span class="badge ${isOrchestrator ? 'orch' : 'exec'}">${role.toUpperCase()}</span></div>
370
+ </div>
371
+ <div class="card">
372
+ <h3>Status</h3>
373
+ <div class="value"><span class="badge ${stop ? 'stopped' : paused ? 'paused' : 'running'}">${stop ? '⏹ STOPPED' : paused ? '⏸ PAUSED' : 'β–Ά RUNNING'}</span></div>
374
+ </div>
375
+ <div class="card">
376
+ <h3>Bridge</h3>
377
+ <div class="value ${bridgeManager ? 'green' : 'yellow'}">${bridgeManager ? 'πŸŒ‰ Connected' : '⚠ Not enabled'}</div>
378
+ </div>
379
+ <div class="card">
380
+ <h3>Project ID</h3>
381
+ <div class="value" style="font-size:1rem;word-break:break-all;">${projectId}</div>
382
+ </div>
383
+ <div class="card">
384
+ <h3>Uptime</h3>
385
+ <div class="value green">${uptimeStr}</div>
386
+ </div>
387
+ <div class="card">
388
+ <h3>PID</h3>
389
+ <div class="value" style="font-size:1rem;">${process.pid}</div>
390
+ </div>
391
+ <div class="card">
392
+ <h3>Port</h3>
393
+ <div class="value">${controlPort}</div>
394
+ </div>
395
+ </div>
396
+ <div class="endpoints">
397
+ <h2>πŸ“‘ API Endpoints</h2>
398
+ <ul class="ep-list">
399
+ <li><span class="method">GET</span><span class="path">/</span><span class="desc">This dashboard</span></li>
400
+ <li><span class="method">GET</span><span class="path">/status</span><span class="desc">JSON status</span></li>
401
+ <li><span class="method">GET</span><span class="path">/health</span><span class="desc">Health check</span></li>
402
+ <li><span class="method">GET</span><span class="path">/bridge/status</span><span class="desc">Bridge status</span></li>
403
+ <li><span class="method">POST</span><span class="path">/stop</span><span class="desc">Stop companion</span></li>
404
+ <li><span class="method">POST</span><span class="path">/pause</span><span class="desc">Pause companion</span></li>
405
+ <li><span class="method">POST</span><span class="path">/resume</span><span class="desc">Resume companion</span></li>
406
+ <li><span class="method">POST</span><span class="path">/shutdown</span><span class="desc">Shutdown companion</span></li>
407
+ <li><span class="method">POST</span><span class="path">/bridge/add?project=</span><span class="desc">Add project to bridge</span></li>
408
+ <li><span class="method">POST</span><span class="path">/bridge/remove?project=</span><span class="desc">Remove project</span></li>
409
+ </ul>
410
+ </div>
411
+ <div class="footer">
412
+ MCP Swarm v1.0 β€’ <a href="https://github.com/AbdrAbdr/MCP-Swarm" target="_blank">GitHub</a> β€’ <a href="https://www.npmjs.com/package/mcp-swarm" target="_blank">npm</a>
413
+ </div>
414
+ </div>
415
+ </body>
416
+ </html>`);
417
+ return;
418
+ }
419
+ // GET /health
420
+ if (req.method === "GET" && req.url === "/health") {
421
+ res.statusCode = 200;
422
+ res.setHeader("content-type", "application/json");
423
+ res.end(JSON.stringify({ ok: true, pid: process.pid, uptime: process.uptime() }));
424
+ return;
425
+ }
285
426
  res.statusCode = 404;
286
427
  res.end("not found");
287
428
  });
@@ -506,9 +647,19 @@ async function run() {
506
647
  }
507
648
  log("info", `Companion stopped for agent ${agentName} (${role})`);
508
649
  }
650
+ // ============ GRACEFUL SHUTDOWN ============
651
+ function gracefulShutdown(signal) {
652
+ console.log(`\n[companion] Received ${signal}, shutting down gracefully...`);
653
+ removePidFile();
654
+ process.exit(0);
655
+ }
656
+ process.on("SIGTERM", () => gracefulShutdown("SIGTERM"));
657
+ process.on("SIGINT", () => gracefulShutdown("SIGINT"));
658
+ process.on("exit", () => removePidFile());
509
659
  run().catch(err => {
510
660
  // eslint-disable-next-line no-console
511
661
  console.error(err);
662
+ removePidFile();
512
663
  process.exit(1);
513
664
  });
514
665
  //# sourceMappingURL=companion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"companion.js","sourceRoot":"","sources":["../src/companion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,GAEnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,6CAA6C;AAC7C,yEAAyE;AACzE,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC;AAE5D;;;GAGG;AACH,KAAK,UAAU,yBAAyB,CACtC,MAAc,EACd,SAAiB,EACjB,WAAmB;IAEnB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,gBAAgB,WAAW,EAAE;YAC3D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC5B,SAAS;gBACT,IAAI,EAAE,WAAW;aAClB,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAcD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,8DAA8D;AAC9D,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAQ,CAAC;AAEhC,SAAS,YAAY;IACnB,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,IAAI,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO,CAAC,CAAC;IACtE,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,OAAO,CAAC,CAAC,eAAe;IAC7E,MAAM,qBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,MAAM,CAAC;IAC9E,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe;QACrC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,SAAS;QAC/C,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;QACjC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,2BAA2B;QACrE,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;QAC5D,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK;QAC/D,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB;QAC7C,UAAU;QACV,qBAAqB;KACtB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,QAAgB;IAC5C,MAAM,MAAM,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,uCAAuC;AACvC,MAAM,MAAM,GAAG;IACb,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;IACjB,GAAG,EAAE,UAAU;IACf,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,UAAU;IACnB,IAAI,EAAE,UAAU;CACjB,CAAC;AAEF,SAAS,GAAG,CAAC,KAA4C,EAAE,OAAe;IACxE,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG;QACf,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,MAAM,CAAC,MAAM;QACnB,KAAK,EAAE,MAAM,CAAC,GAAG;QACjB,OAAO,EAAE,MAAM,CAAC,KAAK;KACtB,CAAC;IACF,MAAM,MAAM,GAAG;QACb,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,GAAG;KACb,CAAC;IACF,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,SAAS,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAC7F,CAAC;AAED,KAAK,UAAU,GAAG;IAChB,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEjD,6CAA6C;IAC7C,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,WAAW,CAAC,EAAE,CAAC;IACjC,GAAG,CAAC,MAAM,EAAE,kBAAkB,MAAM,CAAC,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,KAAK,aAAa,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IAE1G,4CAA4C;IAC5C,IAAI,WAAW,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClE,GAAG,CAAC,MAAM,EAAE,KAAK,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED,kDAAkD;IAClD,iEAAiE;IACjE,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACpD,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAG,MAAM,yBAAyB,CAAC,cAAc,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAC3F,IAAI,UAAU,EAAE,CAAC;YACf,GAAG,CAAC,SAAS,EAAE,8CAA8C,cAAc,EAAE,CAAC,CAAC;QACjF,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,MAAM,EAAE,8DAA8D,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QACd,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QAC9G,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;QACnF,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5B,GAAG,CAAC,SAAS,EAAE,qBAAqB,UAAU,CAAC,KAAK,CAAC,SAAS,KAAK,QAAQ,GAAG,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,SAAS,GAAG,EAAE,CAAC,KAAK,EAAE,SAAS,IAAI,cAAc,CAAC;IACxD,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,IAAI,SAAS,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAE9G,GAAG,CAAC,MAAM,EAAE,iCAAiC,MAAM,CAAC,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAEzF,kDAAkD;IAClD,qEAAqE;IACrE,MAAM,cAAc,GAAG,MAAM,qBAAqB,CAAC;QACjD,QAAQ,EAAE,QAAQ;QAClB,OAAO;QACP,SAAS;QACT,QAAQ;KACT,CAAC,CAAC;IAEH,IAAI,IAAI,GAAc,cAAc,CAAC,IAAI,CAAC;IAC1C,MAAM,cAAc,GAAG,cAAc,CAAC,cAAc,CAAC;IAErD,IAAI,cAAc,EAAE,CAAC;QACnB,GAAG,CAAC,SAAS,EAAE,MAAM,MAAM,CAAC,MAAM,oBAAoB,MAAM,CAAC,KAAK,6BAA6B,CAAC,CAAC;QACjG,GAAG,CAAC,MAAM,EAAE,4EAA4E,CAAC,CAAC;IAC5F,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC,MAAM,gBAAgB,MAAM,CAAC,KAAK,oBAAoB,cAAc,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAClH,GAAG,CAAC,MAAM,EAAE,8CAA8C,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACzD,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,IAAI,KAAK,CAAC;IAC7C,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;IAEtC,IAAI,EAAE,GAAe,IAAI,CAAC;IAC1B,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,wCAAwC;IACxC,qEAAqE;IACrE,IAAI,aAAa,GAAyB,IAAI,CAAC;IAC/C,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;QACrB,GAAG,CAAC,MAAM,EAAE,2BAA2B,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;QAC3D,aAAa,GAAG,IAAI,aAAa,CAAC;YAChC,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB,CAAC,CAAC;QACH,aAAa,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YAChC,GAAG,CAAC,OAAO,EAAE,wBAAwB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS,UAAU,CAAC,GAAyB;QAC3C,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC;QAC/B,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAC5C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,YAAY;YAAE,OAAO,IAAI,CAAC;QACvE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACnD,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YAC5B,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACvB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;YACjD,8DAA8D;YAC9D,IAAI,cAAc,EAAE,CAAC;gBACnB,GAAG,CAAC,MAAM,EAAE,mFAAmF,CAAC,CAAC;gBACjG,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;gBACrB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;gBAClD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,uDAAuD,EAAE,CAAC,CAAC,CAAC;gBACzG,OAAO;YACT,CAAC;YACD,IAAI,GAAG,IAAI,CAAC;YACZ,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YAClD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YAClD,MAAM,GAAG,IAAI,CAAC;YACd,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YAClD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACpD,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YACnD,MAAM,GAAG,KAAK,CAAC;YACf,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YAClD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACrD,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAClD,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YAClD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;gBACrB,EAAE,EAAE,IAAI;gBACR,IAAI;gBACJ,MAAM;gBACN,SAAS;gBACT,IAAI;gBACJ,cAAc;gBACd,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,IAAI;aAC3C,CAAC,CAAC,CAAC;YACJ,OAAO;QACT,CAAC;QAED,4CAA4C;QAC5C,4CAA4C;QAC5C,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAChE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,oBAAoB,WAAW,EAAE,CAAC,CAAC;YAChE,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAEpD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;gBACrB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;gBAClD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC,CAAC,CAAC;gBAC7E,OAAO;YACT,CAAC;YAED,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;gBACrB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;gBAClD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,6CAA6C,EAAE,CAAC,CAAC,CAAC;gBAC7F,OAAO;YACT,CAAC;YAED,GAAG,CAAC,MAAM,EAAE,2BAA2B,WAAW,EAAE,CAAC,CAAC;YACtD,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC9C,GAAG,CAAC,SAAS,EAAE,qBAAqB,WAAW,EAAE,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;gBACb,GAAG,CAAC,OAAO,EAAE,6BAA6B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YAClD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;YAC1D,OAAO;QACT,CAAC;QAED,qBAAqB;QACrB,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,GAAG,KAAK,gBAAgB,EAAE,CAAC;YACzD,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YAClD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;gBACrB,EAAE,EAAE,IAAI;gBACR,OAAO,EAAE,CAAC,CAAC,aAAa;gBACxB,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE;aAC3C,CAAC,CAAC,CAAC;YACJ,OAAO;QACT,CAAC;QAED,+CAA+C;QAC/C,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACnE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,oBAAoB,WAAW,EAAE,CAAC,CAAC;YAChE,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAEpD,IAAI,CAAC,WAAW,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;gBACrB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;gBAClD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,uCAAuC,EAAE,CAAC,CAAC,CAAC;gBACvF,OAAO;YACT,CAAC;YAED,aAAa,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YACzC,GAAG,CAAC,MAAM,EAAE,uBAAuB,WAAW,EAAE,CAAC,CAAC;YAElD,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YAClD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QAED,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;QACrB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACpC,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,MAAM,EAAE,gDAAgD,WAAW,EAAE,CAAC,CAAC;IAE3E,kDAAkD;IAClD,wDAAwD;IACxD,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACzC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACvC,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBACvD,IAAI,cAAc,EAAE,CAAC;oBACnB,GAAG,CAAC,MAAM,EAAE,uCAAuC,CAAC,CAAC;oBACrD,GAAG,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;gBAC1C,CAAC;gBACD,IAAI,GAAG,IAAI,CAAC;YACd,CAAC;YACD,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;gBACpB,MAAM,GAAG,IAAI,CAAC;gBACd,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;YAClC,CAAC;YACD,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;gBACxC,MAAM,GAAG,KAAK,CAAC;gBACf,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;YACnC,CAAC;YACD,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACrB,GAAG,CAAC,MAAM,EAAE,SAAS,IAAI,aAAa,MAAM,WAAW,IAAI,EAAE,CAAC,CAAC;YACjE,CAAC;YACD,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBACnB,GAAG,CAAC,MAAM,EAAE,6CAA6C,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,SAAS;QACtB,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,6CAA6C;QACzF,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAEzC,EAAE,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE5B,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YACjB,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;YACpF,GAAG,CAAC,SAAS,EAAE,4BAA4B,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAClB,EAAE,GAAG,IAAI,CAAC;YACV,GAAG,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAa,EAAE,EAAE;YACjC,MAAM,IAAI,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAW,CAAC,CAAC,QAAQ,EAAE,CAAC;YACnF,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC7B,IAAI,GAAG,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;oBACzB,8CAA8C;oBAC9C,IAAI,CAAC,cAAc,EAAE,CAAC;wBACpB,IAAI,GAAG,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;gBAED,iDAAiD;gBACjD,uEAAuE;gBACvE,IAAI,aAAa,IAAI,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;oBAC5C,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,QAAkB,CAAC;oBACrD,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC;oBACzC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;wBAC3B,GAAG,CAAC,MAAM,EAAE,iCAAiC,aAAa,EAAE,CAAC,CAAC;wBAC9D,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;4BAClD,GAAG,CAAC,OAAO,EAAE,0BAA0B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;wBACxD,CAAC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,SAAS,EAAE,CAAC;IAElB,gEAAgE;IAChE,IAAI,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,MAAM,cAAc,GAAG,CAAC,CAAC;IACzB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,MAAM,kBAAkB,GAAG,MAAM,CAAC,CAAC,+BAA+B;IAElE,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IACrC,GAAG,CAAC,MAAM,EAAE,cAAc;QACxB,CAAC,CAAC,6CAA6C;QAC/C,CAAC,CAAC,uEAAuE,CAAC,CAAC;IAE7E,sCAAsC;IACtC,oDAAoD;IACpD,+CAA+C;IAC/C,OAAO,IAAI,EAAE,CAAC;QACZ,SAAS,EAAE,CAAC;QAEZ,2CAA2C;QAC3C,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,cAAc,EAAE,CAAC;gBACnB,GAAG,CAAC,MAAM,EAAE,0CAA0C,CAAC,CAAC;YAC1D,CAAC;YACD,MAAM;QACR,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;YACpB,SAAS;QACX,CAAC;QAED,kDAAkD;QAClD,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;QAE/B,+EAA+E;QAC/E,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,SAAS,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;YAC/C,GAAG,CAAC,MAAM,EAAE,iDAAiD,CAAC,CAAC;YAC/D,MAAM;QACR,CAAC;QAED,sCAAsC;QACtC,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,qBAAqB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,MAAM,iBAAiB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,wCAAwC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,GAAG,GAAG,cAAc,GAAG,kBAAkB,EAAE,CAAC;YAC9C,cAAc,GAAG,GAAG,CAAC;YAErB,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC;oBAClC,QAAQ,EAAE,QAAQ;oBAClB,SAAS;oBACT,KAAK,EAAE,EAAE;oBACT,UAAU,EAAE,KAAK;iBAClB,CAAC,CAAC;gBAEH,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrB,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,MAAM,6BAA6B,CAAC,CAAC;oBAE7D,oDAAoD;oBACpD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;wBACjC,IAAI,GAAG,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;4BACrD,GAAG,CAAC,MAAM,EAAE,cAAc,GAAG,CAAC,OAAO,SAAS,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;4BAC1D,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;gCACpB,MAAM,kBAAkB,CAAC;oCACvB,QAAQ,EAAE,QAAQ;oCAClB,SAAS;oCACT,SAAS,EAAE,GAAG,CAAC,EAAE;iCAClB,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,sBAAsB;YACxB,CAAC;QACH,CAAC;QAED,sCAAsC;QACtC,WAAW,GAAG,EAAE,IAAI,EAAE,CAAC,UAAU,KAAK,CAAC,CAAC;QAExC,IAAI,WAAW,EAAE,CAAC;YAChB,iCAAiC;YACjC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;YAClF,WAAW,GAAG,CAAC,CAAC;QAClB,CAAC;aAAM,IAAI,MAAM,EAAE,CAAC;YAClB,sBAAsB;YACtB,WAAW,EAAE,CAAC;YACd,IAAI,WAAW,IAAI,cAAc,EAAE,CAAC;gBAClC,MAAM,SAAS,EAAE,CAAC;YACpB,CAAC;QACH,CAAC;QAED,yCAAyC;QACzC,IAAI,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC,WAAW,IAAI,WAAW,GAAG,cAAc,CAAC,EAAE,CAAC;YACrE,IAAI,CAAC;gBACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,eAAe,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;gBACrF,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;oBACxB,0BAA0B;oBAC1B,IAAI,EAAE,CAAC,IAAI,KAAK,gBAAgB,IAAI,EAAE,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;wBAC/D,MAAM,OAAO,GAAG,EAAE,CAAC,OAAc,CAAC;wBAClC,mEAAmE;wBACnE,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,EAAE,CAAC;4BACxE,IAAI,GAAG,IAAI,CAAC;4BACZ,MAAM;wBACR,CAAC;oBACH,CAAC;oBACD,IAAI,EAAE,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;wBACjC,gCAAgC;wBAChC,IAAI,CAAC,cAAc,EAAE,CAAC;4BACpB,GAAG,CAAC,MAAM,EAAE,0BAA2B,EAAE,CAAC,OAAe,EAAE,MAAM,EAAE,CAAC,CAAC;wBACvE,CAAC;oBACH,CAAC;oBACD,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,qBAAqB;YACvB,CAAC;QACH,CAAC;QAED,4CAA4C;QAC5C,IAAI,SAAS,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,gCAAgC;YAC1D,GAAG,CAAC,MAAM,EAAE,0BAA0B,SAAS,WAAW,IAAI,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAED,oCAAoC;IACpC,IAAI,aAAa,EAAE,CAAC;QAClB,aAAa,CAAC,IAAI,EAAE,CAAC;QACrB,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,EAAE,EAAE,CAAC;QACP,IAAI,CAAC;YACH,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,aAAa,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,SAAS;IACX,CAAC;IAED,GAAG,CAAC,MAAM,EAAE,+BAA+B,SAAS,KAAK,IAAI,GAAG,CAAC,CAAC;AACpE,CAAC;AAED,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IAChB,sCAAsC;IACtC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"companion.js","sourceRoot":"","sources":["../src/companion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,GAEnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,6CAA6C;AAC7C,yEAAyE;AACzE,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC;AAE5D;;;GAGG;AACH,KAAK,UAAU,yBAAyB,CACtC,MAAc,EACd,SAAiB,EACjB,WAAmB;IAEnB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,gBAAgB,WAAW,EAAE;YAC3D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC5B,SAAS;gBACT,IAAI,EAAE,WAAW;aAClB,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAcD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,8DAA8D;AAC9D,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAQ,CAAC;AAEhC,SAAS,YAAY;IACnB,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,IAAI,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO,CAAC,CAAC;IACtE,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,OAAO,CAAC,CAAC,eAAe;IAC7E,MAAM,qBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,MAAM,CAAC;IAC9E,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe;QACrC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,SAAS;QAC/C,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;QACjC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,2BAA2B;QACrE,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;QAC5D,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK;QAC/D,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB;QAC7C,UAAU;QACV,qBAAqB;KACtB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,QAAgB;IAC5C,MAAM,MAAM,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,uCAAuC;AACvC,MAAM,MAAM,GAAG;IACb,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;IACjB,GAAG,EAAE,UAAU;IACf,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,UAAU;IACnB,IAAI,EAAE,UAAU;CACjB,CAAC;AAEF,SAAS,GAAG,CAAC,KAA4C,EAAE,OAAe;IACxE,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG;QACf,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,MAAM,CAAC,MAAM;QACnB,KAAK,EAAE,MAAM,CAAC,GAAG;QACjB,OAAO,EAAE,MAAM,CAAC,KAAK;KACtB,CAAC;IACF,MAAM,MAAM,GAAG;QACb,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,GAAG;KACb,CAAC;IACF,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,SAAS,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAC7F,CAAC;AAED,qCAAqC;AACrC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;AACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AAErD,SAAS,YAAY;IACnB,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,kCAAkC;IACpC,CAAC;AACH,CAAC;AAED,SAAS,aAAa;IACpB,IAAI,CAAC;QACH,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,SAAS;IACX,CAAC;AACH,CAAC;AAED,KAAK,UAAU,GAAG;IAChB,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEjD,uCAAuC;IACvC,YAAY,EAAE,CAAC;IAEf,6CAA6C;IAC7C,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,WAAW,CAAC,EAAE,CAAC;IACjC,GAAG,CAAC,MAAM,EAAE,kBAAkB,MAAM,CAAC,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,KAAK,aAAa,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IAE1G,4CAA4C;IAC5C,IAAI,WAAW,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClE,GAAG,CAAC,MAAM,EAAE,KAAK,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED,kDAAkD;IAClD,iEAAiE;IACjE,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACpD,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAG,MAAM,yBAAyB,CAAC,cAAc,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAC3F,IAAI,UAAU,EAAE,CAAC;YACf,GAAG,CAAC,SAAS,EAAE,8CAA8C,cAAc,EAAE,CAAC,CAAC;QACjF,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,MAAM,EAAE,8DAA8D,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QACd,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QAC9G,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;QACnF,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5B,GAAG,CAAC,SAAS,EAAE,qBAAqB,UAAU,CAAC,KAAK,CAAC,SAAS,KAAK,QAAQ,GAAG,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,SAAS,GAAG,EAAE,CAAC,KAAK,EAAE,SAAS,IAAI,cAAc,CAAC;IACxD,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,IAAI,SAAS,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAE9G,GAAG,CAAC,MAAM,EAAE,iCAAiC,MAAM,CAAC,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAEzF,kDAAkD;IAClD,qEAAqE;IACrE,MAAM,cAAc,GAAG,MAAM,qBAAqB,CAAC;QACjD,QAAQ,EAAE,QAAQ;QAClB,OAAO;QACP,SAAS;QACT,QAAQ;KACT,CAAC,CAAC;IAEH,IAAI,IAAI,GAAc,cAAc,CAAC,IAAI,CAAC;IAC1C,MAAM,cAAc,GAAG,cAAc,CAAC,cAAc,CAAC;IAErD,IAAI,cAAc,EAAE,CAAC;QACnB,GAAG,CAAC,SAAS,EAAE,MAAM,MAAM,CAAC,MAAM,oBAAoB,MAAM,CAAC,KAAK,6BAA6B,CAAC,CAAC;QACjG,GAAG,CAAC,MAAM,EAAE,4EAA4E,CAAC,CAAC;IAC5F,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC,MAAM,gBAAgB,MAAM,CAAC,KAAK,oBAAoB,cAAc,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAClH,GAAG,CAAC,MAAM,EAAE,8CAA8C,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACzD,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,IAAI,KAAK,CAAC;IAC7C,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;IAEtC,IAAI,EAAE,GAAe,IAAI,CAAC;IAC1B,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,wCAAwC;IACxC,qEAAqE;IACrE,IAAI,aAAa,GAAyB,IAAI,CAAC;IAC/C,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;QACrB,GAAG,CAAC,MAAM,EAAE,2BAA2B,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;QAC3D,aAAa,GAAG,IAAI,aAAa,CAAC;YAChC,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB,CAAC,CAAC;QACH,aAAa,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YAChC,GAAG,CAAC,OAAO,EAAE,wBAAwB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS,UAAU,CAAC,GAAyB;QAC3C,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC;QAC/B,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAC5C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,YAAY;YAAE,OAAO,IAAI,CAAC;QACvE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACnD,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YAC5B,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACvB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;YACjD,8DAA8D;YAC9D,IAAI,cAAc,EAAE,CAAC;gBACnB,GAAG,CAAC,MAAM,EAAE,mFAAmF,CAAC,CAAC;gBACjG,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;gBACrB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;gBAClD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,uDAAuD,EAAE,CAAC,CAAC,CAAC;gBACzG,OAAO;YACT,CAAC;YACD,IAAI,GAAG,IAAI,CAAC;YACZ,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YAClD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YAClD,MAAM,GAAG,IAAI,CAAC;YACd,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YAClD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACpD,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YACnD,MAAM,GAAG,KAAK,CAAC;YACf,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YAClD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACrD,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAClD,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YAClD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;gBACrB,EAAE,EAAE,IAAI;gBACR,IAAI;gBACJ,MAAM;gBACN,SAAS;gBACT,IAAI;gBACJ,cAAc;gBACd,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,IAAI;aAC3C,CAAC,CAAC,CAAC;YACJ,OAAO;QACT,CAAC;QAED,4CAA4C;QAC5C,4CAA4C;QAC5C,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAChE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,oBAAoB,WAAW,EAAE,CAAC,CAAC;YAChE,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAEpD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;gBACrB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;gBAClD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC,CAAC,CAAC;gBAC7E,OAAO;YACT,CAAC;YAED,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;gBACrB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;gBAClD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,6CAA6C,EAAE,CAAC,CAAC,CAAC;gBAC7F,OAAO;YACT,CAAC;YAED,GAAG,CAAC,MAAM,EAAE,2BAA2B,WAAW,EAAE,CAAC,CAAC;YACtD,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC9C,GAAG,CAAC,SAAS,EAAE,qBAAqB,WAAW,EAAE,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;gBACb,GAAG,CAAC,OAAO,EAAE,6BAA6B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YAClD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;YAC1D,OAAO;QACT,CAAC;QAED,qBAAqB;QACrB,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,GAAG,KAAK,gBAAgB,EAAE,CAAC;YACzD,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YAClD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;gBACrB,EAAE,EAAE,IAAI;gBACR,OAAO,EAAE,CAAC,CAAC,aAAa;gBACxB,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE;aAC3C,CAAC,CAAC,CAAC;YACJ,OAAO;QACT,CAAC;QAED,+CAA+C;QAC/C,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACnE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,oBAAoB,WAAW,EAAE,CAAC,CAAC;YAChE,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAEpD,IAAI,CAAC,WAAW,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;gBACrB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;gBAClD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,uCAAuC,EAAE,CAAC,CAAC,CAAC;gBACvF,OAAO;YACT,CAAC;YAED,aAAa,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YACzC,GAAG,CAAC,MAAM,EAAE,uBAAuB,WAAW,EAAE,CAAC,CAAC;YAElD,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YAClD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QAED,0CAA0C;QAC1C,mCAAmC;QACnC,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,YAAY,CAAC,EAAE,CAAC;YAC1E,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;YAC1D,MAAM,YAAY,GAAG,aAAa,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC;YACxD,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YACnD,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,aAAa,GAAG,EAAE,GAAG,CAAC;YAC5H,GAAG,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCA8CoB,SAAS;;;;gDAIK,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,WAAW,EAAE;;;;gDAIvD,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW;;;;4BAI/H,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe;;;;0EAIzC,SAAS;;;;mCAIhD,SAAS;;;;qDAIS,OAAO,CAAC,GAAG;;;;6BAInC,WAAW;;;;;;;;;;;;;;;;;;;;;;;QAuBhC,CAAC,CAAC;YACJ,OAAO;QACT,CAAC;QAED,gBAAgB;QAChB,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAClD,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YAClD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;YAClF,OAAO;QACT,CAAC;QAED,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;QACrB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACpC,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,MAAM,EAAE,gDAAgD,WAAW,EAAE,CAAC,CAAC;IAE3E,kDAAkD;IAClD,wDAAwD;IACxD,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACzC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACvC,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBACvD,IAAI,cAAc,EAAE,CAAC;oBACnB,GAAG,CAAC,MAAM,EAAE,uCAAuC,CAAC,CAAC;oBACrD,GAAG,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;gBAC1C,CAAC;gBACD,IAAI,GAAG,IAAI,CAAC;YACd,CAAC;YACD,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;gBACpB,MAAM,GAAG,IAAI,CAAC;gBACd,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;YAClC,CAAC;YACD,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;gBACxC,MAAM,GAAG,KAAK,CAAC;gBACf,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;YACnC,CAAC;YACD,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACrB,GAAG,CAAC,MAAM,EAAE,SAAS,IAAI,aAAa,MAAM,WAAW,IAAI,EAAE,CAAC,CAAC;YACjE,CAAC;YACD,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBACnB,GAAG,CAAC,MAAM,EAAE,6CAA6C,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,SAAS;QACtB,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,6CAA6C;QACzF,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAEzC,EAAE,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE5B,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YACjB,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;YACpF,GAAG,CAAC,SAAS,EAAE,4BAA4B,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAClB,EAAE,GAAG,IAAI,CAAC;YACV,GAAG,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAa,EAAE,EAAE;YACjC,MAAM,IAAI,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAW,CAAC,CAAC,QAAQ,EAAE,CAAC;YACnF,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC7B,IAAI,GAAG,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;oBACzB,8CAA8C;oBAC9C,IAAI,CAAC,cAAc,EAAE,CAAC;wBACpB,IAAI,GAAG,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;gBAED,iDAAiD;gBACjD,uEAAuE;gBACvE,IAAI,aAAa,IAAI,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;oBAC5C,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,QAAkB,CAAC;oBACrD,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC;oBACzC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;wBAC3B,GAAG,CAAC,MAAM,EAAE,iCAAiC,aAAa,EAAE,CAAC,CAAC;wBAC9D,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;4BAClD,GAAG,CAAC,OAAO,EAAE,0BAA0B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;wBACxD,CAAC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,SAAS,EAAE,CAAC;IAElB,gEAAgE;IAChE,IAAI,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,MAAM,cAAc,GAAG,CAAC,CAAC;IACzB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,MAAM,kBAAkB,GAAG,MAAM,CAAC,CAAC,+BAA+B;IAElE,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IACrC,GAAG,CAAC,MAAM,EAAE,cAAc;QACxB,CAAC,CAAC,6CAA6C;QAC/C,CAAC,CAAC,uEAAuE,CAAC,CAAC;IAE7E,sCAAsC;IACtC,oDAAoD;IACpD,+CAA+C;IAC/C,OAAO,IAAI,EAAE,CAAC;QACZ,SAAS,EAAE,CAAC;QAEZ,2CAA2C;QAC3C,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,cAAc,EAAE,CAAC;gBACnB,GAAG,CAAC,MAAM,EAAE,0CAA0C,CAAC,CAAC;YAC1D,CAAC;YACD,MAAM;QACR,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;YACpB,SAAS;QACX,CAAC;QAED,kDAAkD;QAClD,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;QAE/B,+EAA+E;QAC/E,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,SAAS,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;YAC/C,GAAG,CAAC,MAAM,EAAE,iDAAiD,CAAC,CAAC;YAC/D,MAAM;QACR,CAAC;QAED,sCAAsC;QACtC,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,qBAAqB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,MAAM,iBAAiB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,wCAAwC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,GAAG,GAAG,cAAc,GAAG,kBAAkB,EAAE,CAAC;YAC9C,cAAc,GAAG,GAAG,CAAC;YAErB,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC;oBAClC,QAAQ,EAAE,QAAQ;oBAClB,SAAS;oBACT,KAAK,EAAE,EAAE;oBACT,UAAU,EAAE,KAAK;iBAClB,CAAC,CAAC;gBAEH,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrB,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,MAAM,6BAA6B,CAAC,CAAC;oBAE7D,oDAAoD;oBACpD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;wBACjC,IAAI,GAAG,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;4BACrD,GAAG,CAAC,MAAM,EAAE,cAAc,GAAG,CAAC,OAAO,SAAS,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;4BAC1D,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;gCACpB,MAAM,kBAAkB,CAAC;oCACvB,QAAQ,EAAE,QAAQ;oCAClB,SAAS;oCACT,SAAS,EAAE,GAAG,CAAC,EAAE;iCAClB,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,sBAAsB;YACxB,CAAC;QACH,CAAC;QAED,sCAAsC;QACtC,WAAW,GAAG,EAAE,IAAI,EAAE,CAAC,UAAU,KAAK,CAAC,CAAC;QAExC,IAAI,WAAW,EAAE,CAAC;YAChB,iCAAiC;YACjC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;YAClF,WAAW,GAAG,CAAC,CAAC;QAClB,CAAC;aAAM,IAAI,MAAM,EAAE,CAAC;YAClB,sBAAsB;YACtB,WAAW,EAAE,CAAC;YACd,IAAI,WAAW,IAAI,cAAc,EAAE,CAAC;gBAClC,MAAM,SAAS,EAAE,CAAC;YACpB,CAAC;QACH,CAAC;QAED,yCAAyC;QACzC,IAAI,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC,WAAW,IAAI,WAAW,GAAG,cAAc,CAAC,EAAE,CAAC;YACrE,IAAI,CAAC;gBACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,eAAe,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;gBACrF,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;oBACxB,0BAA0B;oBAC1B,IAAI,EAAE,CAAC,IAAI,KAAK,gBAAgB,IAAI,EAAE,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;wBAC/D,MAAM,OAAO,GAAG,EAAE,CAAC,OAAc,CAAC;wBAClC,mEAAmE;wBACnE,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,EAAE,CAAC;4BACxE,IAAI,GAAG,IAAI,CAAC;4BACZ,MAAM;wBACR,CAAC;oBACH,CAAC;oBACD,IAAI,EAAE,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;wBACjC,gCAAgC;wBAChC,IAAI,CAAC,cAAc,EAAE,CAAC;4BACpB,GAAG,CAAC,MAAM,EAAE,0BAA2B,EAAE,CAAC,OAAe,EAAE,MAAM,EAAE,CAAC,CAAC;wBACvE,CAAC;oBACH,CAAC;oBACD,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,qBAAqB;YACvB,CAAC;QACH,CAAC;QAED,4CAA4C;QAC5C,IAAI,SAAS,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,gCAAgC;YAC1D,GAAG,CAAC,MAAM,EAAE,0BAA0B,SAAS,WAAW,IAAI,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAED,oCAAoC;IACpC,IAAI,aAAa,EAAE,CAAC;QAClB,aAAa,CAAC,IAAI,EAAE,CAAC;QACrB,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,EAAE,EAAE,CAAC;QACP,IAAI,CAAC;YACH,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,aAAa,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,SAAS;IACX,CAAC;IAED,GAAG,CAAC,MAAM,EAAE,+BAA+B,SAAS,KAAK,IAAI,GAAG,CAAC,CAAC;AACpE,CAAC;AAED,8CAA8C;AAC9C,SAAS,gBAAgB,CAAC,MAAc;IACtC,OAAO,CAAC,GAAG,CAAC,0BAA0B,MAAM,+BAA+B,CAAC,CAAC;IAC7E,aAAa,EAAE,CAAC;IAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;AACzD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC;AAE1C,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IAChB,sCAAsC;IACtC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,aAAa,EAAE,CAAC;IAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -24,6 +24,7 @@
24
24
  * }
25
25
  */
26
26
  import { spawn } from "child_process";
27
+ import { readFileSync } from "fs";
27
28
  import { fileURLToPath } from "url";
28
29
  import { dirname, join } from "path";
29
30
  const __filename = fileURLToPath(import.meta.url);
@@ -50,6 +51,17 @@ for (let i = 0; i < args.length; i++) {
50
51
  else if (args[i] === "--no-companion") {
51
52
  noCompanion = true;
52
53
  }
54
+ else if (args[i] === "--version" || args[i] === "-v" || args[i] === "-V") {
55
+ const pkgPath = join(__dirname, "..", "package.json");
56
+ try {
57
+ const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
58
+ console.log(`mcp-swarm-remote v${pkg.version}`);
59
+ }
60
+ catch {
61
+ console.log("mcp-swarm-remote (unknown version)");
62
+ }
63
+ process.exit(0);
64
+ }
53
65
  else if (args[i] === "--help" || args[i] === "-h") {
54
66
  console.error(`
55
67
  MCP Swarm Remote - Connect to your Cloudflare MCP Server