mcp-swarm 1.0.12 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +42 -0
- package/CHANGELOG.ru.md +42 -0
- package/README.md +30 -2
- package/README.ru.md +31 -2
- package/dist/companion.js +217 -0
- package/dist/companion.js.map +1 -1
- package/dist/doctor.js +243 -0
- package/dist/doctor.js.map +1 -0
- package/dist/fileLogger.js +99 -0
- package/dist/fileLogger.js.map +1 -0
- package/dist/remote/index.js +12 -0
- package/dist/remote/index.js.map +1 -1
- package/dist/{smartTools.js → smartTools.legacy.js} +2 -2
- package/dist/smartTools.legacy.js.map +1 -0
- package/dist/tests/projectId.test.js +125 -0
- package/dist/tests/projectId.test.js.map +1 -0
- package/examples/README.md +31 -0
- package/examples/claude-code/mcp_config.json +18 -0
- package/examples/cursor/mcp_config.json +18 -0
- package/examples/local-mode/mcp_config.json +13 -0
- package/examples/opencode/opencode.json +18 -0
- package/examples/windsurf/mcp_config.json +18 -0
- package/package.json +2 -1
- package/dist/smartTools.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -9,6 +9,48 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
9
9
|
|
|
10
10
|
---
|
|
11
11
|
|
|
12
|
+
## [1.1.1] - 2026-02-09
|
|
13
|
+
|
|
14
|
+
### 🔭 Observability & Control
|
|
15
|
+
|
|
16
|
+
#### Added
|
|
17
|
+
|
|
18
|
+
- **File Logging** — All companion logs written to `~/.mcp-swarm/logs/companion-YYYY-MM-DD.log` with automatic 7-day rotation.
|
|
19
|
+
- **`mcp-swarm-doctor`** — New CLI self-diagnostics tool. Checks Node.js, Git, companion status, port, logs, Hub URL, IDE configs, and npm version.
|
|
20
|
+
- **Interactive Dashboard** — Buttons for Pause/Resume/Shutdown/Copy Project ID directly in the web dashboard at `http://localhost:37373`. Toast notifications for action feedback.
|
|
21
|
+
- **Auto-Update Notifier** — On startup, companion checks npm registry and warns if a newer version is available.
|
|
22
|
+
|
|
23
|
+
#### Changed
|
|
24
|
+
|
|
25
|
+
- **Graceful shutdown** now properly closes file log streams before exit.
|
|
26
|
+
- **Dashboard footer** updated to v1.1.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## [1.1.0] - 2026-02-09
|
|
31
|
+
|
|
32
|
+
### 🐝 Web Dashboard + DX Improvements
|
|
33
|
+
|
|
34
|
+
#### Added
|
|
35
|
+
|
|
36
|
+
- **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.
|
|
37
|
+
- **PID file** — Companion now writes `~/.mcp-swarm/companion.pid` on startup and removes it on exit for process discovery.
|
|
38
|
+
- **Graceful shutdown** — SIGTERM/SIGINT handlers with PID cleanup.
|
|
39
|
+
- **`/health` endpoint** — Returns JSON with `{ ok, pid, uptime }` for monitoring.
|
|
40
|
+
- **`examples/`** — Ready-to-use configs for Claude Code, Cursor, Windsurf, OpenCode, and local mode.
|
|
41
|
+
- **Issue Templates** — Bug report, feature request, and question templates in `.github/ISSUE_TEMPLATE/`.
|
|
42
|
+
- **Unit tests** — Tests for `normalizeGitRemote` and PID file management (`src/tests/projectId.test.ts`).
|
|
43
|
+
- **New badges** — Node.js 18+, TypeScript 5.0, MCP Protocol added to README EN + RU.
|
|
44
|
+
- **Quick Demo** — ASCII workflow diagram added to README EN + RU showing multi-agent coordination.
|
|
45
|
+
|
|
46
|
+
#### Changed
|
|
47
|
+
|
|
48
|
+
- **`smartTools.ts`** — Legacy monolith renamed to `smartTools.legacy.ts` (unused, server uses modular `smartTools/`).
|
|
49
|
+
- **`--version` flag** — Added to `mcp-swarm-remote` CLI (`-v`, `-V`, `--version`).
|
|
50
|
+
- **`readFileSync` import** — Added to `remote/index.ts` for version reading.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
12
54
|
## [1.0.11] - 2026-02-09
|
|
13
55
|
|
|
14
56
|
### 🎨 Flag Badges & Community CTA
|
package/CHANGELOG.ru.md
CHANGED
|
@@ -9,6 +9,48 @@
|
|
|
9
9
|
|
|
10
10
|
---
|
|
11
11
|
|
|
12
|
+
## [1.1.1] - 2026-02-09
|
|
13
|
+
|
|
14
|
+
### 🔭 Observability & Control
|
|
15
|
+
|
|
16
|
+
#### Добавлено
|
|
17
|
+
|
|
18
|
+
- **Файловое логирование** — Все логи companion пишутся в `~/.mcp-swarm/logs/companion-YYYY-MM-DD.log` с автоматической ротацией за 7 дней.
|
|
19
|
+
- **`mcp-swarm-doctor`** — Новая CLI-утилита самодиагностики. Проверяет Node.js, Git, статус companion, порт, логи, Hub URL, конфиги IDE и версию npm.
|
|
20
|
+
- **Интерактивный Dashboard** — Кнопки Pause/Resume/Shutdown/Copy Project ID прямо в веб-дашборде `http://localhost:37373`. Toast-уведомления для обратной связи.
|
|
21
|
+
- **Auto-Update Notifier** — При запуске companion проверяет npm-реестр и предупреждает, если доступна новая версия.
|
|
22
|
+
|
|
23
|
+
#### Изменено
|
|
24
|
+
|
|
25
|
+
- **Graceful shutdown** теперь корректно закрывает поток файлового лога перед выходом.
|
|
26
|
+
- **Footer дашборда** обновлён до v1.1.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## [1.1.0] - 2026-02-09
|
|
31
|
+
|
|
32
|
+
### 🐝 Web Dashboard + DX улучшения
|
|
33
|
+
|
|
34
|
+
#### Добавлено
|
|
35
|
+
|
|
36
|
+
- **Web Dashboard** — Красивый dark-theme дашборд на `http://localhost:37373` с автообновлением каждые 5с. Показывает имя агента, роль, статус bridge, uptime, PID и все API endpoints.
|
|
37
|
+
- **PID-файл** — Companion записывает `~/.mcp-swarm/companion.pid` при запуске и удаляет при выходе.
|
|
38
|
+
- **Graceful shutdown** — Обработчики SIGTERM/SIGINT с очисткой PID-файла.
|
|
39
|
+
- **`/health` endpoint** — Возвращает JSON `{ ok, pid, uptime }` для мониторинга.
|
|
40
|
+
- **`examples/`** — Готовые конфиги для Claude Code, Cursor, Windsurf, OpenCode и локального режима.
|
|
41
|
+
- **Issue Templates** — Шаблоны баг-репортов, запросов фич и вопросов в `.github/ISSUE_TEMPLATE/`.
|
|
42
|
+
- **Unit-тесты** — Тесты для `normalizeGitRemote` и PID-файла (`src/tests/projectId.test.ts`).
|
|
43
|
+
- **Новые бейджи** — Node.js 18+, TypeScript 5.0, MCP Protocol добавлены в README EN + RU.
|
|
44
|
+
- **Quick Demo** — ASCII-диаграмма мульти-агентного рабочего процесса в README EN + RU.
|
|
45
|
+
|
|
46
|
+
#### Изменено
|
|
47
|
+
|
|
48
|
+
- **`smartTools.ts`** — Legacy-монолит переименован в `smartTools.legacy.ts` (не используется, сервер работает с модульным `smartTools/`).
|
|
49
|
+
- **Флаг `--version`** — Добавлен в CLI `mcp-swarm-remote` (`-v`, `-V`, `--version`).
|
|
50
|
+
- **Импорт `readFileSync`** — Добавлен в `remote/index.ts` для чтения версии.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
12
54
|
## [1.0.11] - 2026-02-09
|
|
13
55
|
|
|
14
56
|
### 🎨 Бейджи флагов и CTA-секция
|
package/README.md
CHANGED
|
@@ -4,19 +4,47 @@
|
|
|
4
4
|
[](https://www.npmjs.com/package/mcp-swarm)
|
|
5
5
|
[](https://github.com/AbdrAbdr/MCP-Swarm/blob/main/LICENSE)
|
|
6
6
|
[](https://github.com/AbdrAbdr/MCP-Swarm/actions/workflows/ci.yml)
|
|
7
|
+
[](https://nodejs.org)
|
|
8
|
+
[](https://www.typescriptlang.org)
|
|
9
|
+
[](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
|
|
15
|
+
# 🐝 MCP Swarm v1.1.0 — Universal AI Agent Coordination Platform
|
|
13
16
|
|
|
14
|
-
>
|
|
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
|
[](https://www.npmjs.com/package/mcp-swarm)
|
|
5
5
|
[](https://github.com/AbdrAbdr/MCP-Swarm/blob/main/LICENSE)
|
|
6
6
|
[](https://github.com/AbdrAbdr/MCP-Swarm/actions/workflows/ci.yml)
|
|
7
|
+
[](https://nodejs.org)
|
|
8
|
+
[](https://www.typescriptlang.org)
|
|
9
|
+
[](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
|
|
15
|
+
# 🐝 MCP Swarm v1.1.0 — Универсальная Платформа Координации AI-Агентов
|
|
13
16
|
|
|
14
|
-
>
|
|
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,9 @@
|
|
|
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";
|
|
6
|
+
import { fileLog, closeFileLog, getLogFilePath } from "./fileLogger.js";
|
|
4
7
|
import { gitTry } from "./workflows/git.js";
|
|
5
8
|
import { getRepoRoot } from "./workflows/repo.js";
|
|
6
9
|
import { getStopState } from "./workflows/stopFlag.js";
|
|
@@ -89,10 +92,38 @@ function log(level, message) {
|
|
|
89
92
|
};
|
|
90
93
|
// eslint-disable-next-line no-console
|
|
91
94
|
console.log(`${colorMap[level]}[${timestamp}] ${prefix[level]} ${message}${colors.reset}`);
|
|
95
|
+
// Write to file log
|
|
96
|
+
fileLog(level, message);
|
|
97
|
+
}
|
|
98
|
+
// ============ PID FILE ============
|
|
99
|
+
const PID_DIR = path.join(os.homedir(), ".mcp-swarm");
|
|
100
|
+
const PID_FILE = path.join(PID_DIR, "companion.pid");
|
|
101
|
+
function writePidFile() {
|
|
102
|
+
try {
|
|
103
|
+
if (!fs.existsSync(PID_DIR))
|
|
104
|
+
fs.mkdirSync(PID_DIR, { recursive: true });
|
|
105
|
+
fs.writeFileSync(PID_FILE, String(process.pid), "utf-8");
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
// Non-critical — log and continue
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
function removePidFile() {
|
|
112
|
+
try {
|
|
113
|
+
if (fs.existsSync(PID_FILE))
|
|
114
|
+
fs.unlinkSync(PID_FILE);
|
|
115
|
+
}
|
|
116
|
+
catch {
|
|
117
|
+
// ignore
|
|
118
|
+
}
|
|
92
119
|
}
|
|
93
120
|
async function run() {
|
|
94
121
|
const cfg = getEnvConfig();
|
|
95
122
|
const repoRoot = await getRepoRoot(cfg.repoPath);
|
|
123
|
+
// Write PID file for process discovery
|
|
124
|
+
writePidFile();
|
|
125
|
+
// Check for updates (non-blocking)
|
|
126
|
+
checkForUpdates();
|
|
96
127
|
// ============ SMART PROJECT ID ============
|
|
97
128
|
const projectInfo = await getProjectIdSource(repoRoot);
|
|
98
129
|
const projectId = projectInfo.id;
|
|
@@ -282,6 +313,156 @@ async function run() {
|
|
|
282
313
|
res.end(JSON.stringify({ ok: true, removed: projectPath }));
|
|
283
314
|
return;
|
|
284
315
|
}
|
|
316
|
+
// ============ WEB DASHBOARD ============
|
|
317
|
+
// GET / — Beautiful HTML dashboard
|
|
318
|
+
if (req.method === "GET" && (req.url === "/" || req.url === "/dashboard")) {
|
|
319
|
+
res.statusCode = 200;
|
|
320
|
+
res.setHeader("content-type", "text/html; charset=utf-8");
|
|
321
|
+
const bridgeStatus = bridgeManager?.getStatus() ?? null;
|
|
322
|
+
const uptimeSeconds = Math.floor(process.uptime());
|
|
323
|
+
const uptimeStr = `${Math.floor(uptimeSeconds / 3600)}h ${Math.floor((uptimeSeconds % 3600) / 60)}m ${uptimeSeconds % 60}s`;
|
|
324
|
+
res.end(`<!DOCTYPE html>
|
|
325
|
+
<html lang="en">
|
|
326
|
+
<head>
|
|
327
|
+
<meta charset="UTF-8">
|
|
328
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
329
|
+
<meta http-equiv="refresh" content="5">
|
|
330
|
+
<title>🐝 MCP Swarm — Dashboard</title>
|
|
331
|
+
<style>
|
|
332
|
+
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
333
|
+
body { font-family: 'Segoe UI', system-ui, sans-serif; background: #0d1117; color: #e6edf3; min-height: 100vh; padding: 2rem; }
|
|
334
|
+
.container { max-width: 960px; margin: 0 auto; }
|
|
335
|
+
h1 { font-size: 2rem; margin-bottom: 0.5rem; }
|
|
336
|
+
h1 span { color: #58a6ff; }
|
|
337
|
+
.subtitle { color: #8b949e; margin-bottom: 2rem; font-size: 0.95rem; }
|
|
338
|
+
.cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1rem; margin-bottom: 2rem; }
|
|
339
|
+
.card { background: #161b22; border: 1px solid #30363d; border-radius: 12px; padding: 1.2rem; }
|
|
340
|
+
.card h3 { color: #8b949e; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 0.5rem; }
|
|
341
|
+
.card .value { font-size: 1.3rem; font-weight: 600; }
|
|
342
|
+
.card .value.green { color: #3fb950; }
|
|
343
|
+
.card .value.blue { color: #58a6ff; }
|
|
344
|
+
.card .value.yellow { color: #d29922; }
|
|
345
|
+
.badge { display: inline-block; padding: 0.15rem 0.6rem; border-radius: 99px; font-size: 0.75rem; font-weight: 600; }
|
|
346
|
+
.badge.orch { background: #1f6feb33; color: #58a6ff; border: 1px solid #1f6feb; }
|
|
347
|
+
.badge.exec { background: #23863633; color: #3fb950; border: 1px solid #238636; }
|
|
348
|
+
.badge.running { background: #23863633; color: #3fb950; }
|
|
349
|
+
.badge.paused { background: #d2992233; color: #d29922; }
|
|
350
|
+
.badge.stopped { background: #f8514933; color: #f85149; }
|
|
351
|
+
.controls { display: flex; gap: 0.6rem; margin-bottom: 2rem; flex-wrap: wrap; }
|
|
352
|
+
.btn { padding: 0.5rem 1.2rem; border: 1px solid #30363d; border-radius: 8px; background: #161b22; color: #e6edf3; cursor: pointer; font-size: 0.85rem; font-weight: 500; transition: all 0.15s; }
|
|
353
|
+
.btn:hover { background: #1f2937; border-color: #58a6ff; }
|
|
354
|
+
.btn.danger { border-color: #f85149; color: #f85149; }
|
|
355
|
+
.btn.danger:hover { background: #f8514922; }
|
|
356
|
+
.btn.warn { border-color: #d29922; color: #d29922; }
|
|
357
|
+
.btn.warn:hover { background: #d2992222; }
|
|
358
|
+
.btn.ok { border-color: #3fb950; color: #3fb950; }
|
|
359
|
+
.btn.ok:hover { background: #3fb95022; }
|
|
360
|
+
.toast { position: fixed; bottom: 2rem; right: 2rem; background: #161b22; border: 1px solid #30363d; border-radius: 8px; padding: 0.8rem 1.2rem; color: #e6edf3; font-size: 0.85rem; opacity: 0; transition: opacity 0.3s; z-index: 99; }
|
|
361
|
+
.toast.show { opacity: 1; }
|
|
362
|
+
.endpoints { margin-top: 1rem; }
|
|
363
|
+
.endpoints h2 { font-size: 1.1rem; margin-bottom: 0.8rem; color: #c9d1d9; }
|
|
364
|
+
.ep-list { list-style: none; }
|
|
365
|
+
.ep-list li { padding: 0.4rem 0.8rem; border-bottom: 1px solid #21262d; font-family: 'Cascadia Code', 'Fira Code', monospace; font-size: 0.8rem; display: flex; gap: 0.8rem; }
|
|
366
|
+
.ep-list .method { color: #3fb950; min-width: 3.5rem; font-weight: 600; }
|
|
367
|
+
.ep-list .path { color: #58a6ff; }
|
|
368
|
+
.ep-list .desc { color: #8b949e; margin-left: auto; }
|
|
369
|
+
.log-path { margin-top: 1rem; font-size: 0.8rem; color: #484f58; }
|
|
370
|
+
.log-path code { color: #8b949e; background: #161b22; padding: 0.15rem 0.4rem; border-radius: 4px; }
|
|
371
|
+
.footer { margin-top: 2rem; color: #484f58; font-size: 0.8rem; text-align: center; }
|
|
372
|
+
.footer a { color: #58a6ff; text-decoration: none; }
|
|
373
|
+
</style>
|
|
374
|
+
</head>
|
|
375
|
+
<body>
|
|
376
|
+
<div class="container">
|
|
377
|
+
<h1>🐝 MCP <span>Swarm</span></h1>
|
|
378
|
+
<p class="subtitle">Companion Dashboard — auto-refreshes every 5s</p>
|
|
379
|
+
<div class="cards">
|
|
380
|
+
<div class="card">
|
|
381
|
+
<h3>Agent</h3>
|
|
382
|
+
<div class="value blue">${agentName}</div>
|
|
383
|
+
</div>
|
|
384
|
+
<div class="card">
|
|
385
|
+
<h3>Role</h3>
|
|
386
|
+
<div class="value"><span class="badge ${isOrchestrator ? 'orch' : 'exec'}">${role.toUpperCase()}</span></div>
|
|
387
|
+
</div>
|
|
388
|
+
<div class="card">
|
|
389
|
+
<h3>Status</h3>
|
|
390
|
+
<div class="value"><span class="badge ${stop ? 'stopped' : paused ? 'paused' : 'running'}">${stop ? '⏹ STOPPED' : paused ? '⏸ PAUSED' : '▶ RUNNING'}</span></div>
|
|
391
|
+
</div>
|
|
392
|
+
<div class="card">
|
|
393
|
+
<h3>Bridge</h3>
|
|
394
|
+
<div class="value ${bridgeManager ? 'green' : 'yellow'}">${bridgeManager ? '🌉 Connected' : '⚠ Off'}</div>
|
|
395
|
+
</div>
|
|
396
|
+
<div class="card">
|
|
397
|
+
<h3>Project</h3>
|
|
398
|
+
<div class="value" style="font-size:0.9rem;word-break:break-all;" id="project-id">${projectId}</div>
|
|
399
|
+
</div>
|
|
400
|
+
<div class="card">
|
|
401
|
+
<h3>Uptime</h3>
|
|
402
|
+
<div class="value green">${uptimeStr}</div>
|
|
403
|
+
</div>
|
|
404
|
+
<div class="card">
|
|
405
|
+
<h3>PID</h3>
|
|
406
|
+
<div class="value" style="font-size:1rem;">${process.pid}</div>
|
|
407
|
+
</div>
|
|
408
|
+
<div class="card">
|
|
409
|
+
<h3>Log File</h3>
|
|
410
|
+
<div class="value" style="font-size:0.7rem;word-break:break-all;color:#8b949e;">${getLogFilePath()}</div>
|
|
411
|
+
</div>
|
|
412
|
+
</div>
|
|
413
|
+
<div class="controls">
|
|
414
|
+
<button class="btn ${paused ? 'ok' : 'warn'}" onclick="action('${paused ? 'resume' : 'pause'}')">${paused ? '▶ Resume' : '⏸ Pause'}</button>
|
|
415
|
+
<button class="btn danger" onclick="if(confirm('Shutdown companion?')) action('stop')">⏹ Shutdown</button>
|
|
416
|
+
<button class="btn" onclick="copyId()">📋 Copy Project ID</button>
|
|
417
|
+
</div>
|
|
418
|
+
<div class="endpoints">
|
|
419
|
+
<h2>📡 API Endpoints</h2>
|
|
420
|
+
<ul class="ep-list">
|
|
421
|
+
<li><span class="method">GET</span><span class="path">/</span><span class="desc">Dashboard</span></li>
|
|
422
|
+
<li><span class="method">GET</span><span class="path">/status</span><span class="desc">JSON status</span></li>
|
|
423
|
+
<li><span class="method">GET</span><span class="path">/health</span><span class="desc">Health check</span></li>
|
|
424
|
+
<li><span class="method">GET</span><span class="path">/bridge/status</span><span class="desc">Bridge info</span></li>
|
|
425
|
+
<li><span class="method">POST</span><span class="path">/pause</span><span class="desc">Pause</span></li>
|
|
426
|
+
<li><span class="method">POST</span><span class="path">/resume</span><span class="desc">Resume</span></li>
|
|
427
|
+
<li><span class="method">POST</span><span class="path">/stop</span><span class="desc">Stop</span></li>
|
|
428
|
+
</ul>
|
|
429
|
+
</div>
|
|
430
|
+
<div class="footer">
|
|
431
|
+
MCP Swarm v1.1 • <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>
|
|
432
|
+
</div>
|
|
433
|
+
</div>
|
|
434
|
+
<div class="toast" id="toast"></div>
|
|
435
|
+
<script>
|
|
436
|
+
function toast(msg) {
|
|
437
|
+
const t = document.getElementById('toast');
|
|
438
|
+
t.textContent = msg;
|
|
439
|
+
t.classList.add('show');
|
|
440
|
+
setTimeout(() => t.classList.remove('show'), 2500);
|
|
441
|
+
}
|
|
442
|
+
async function action(act) {
|
|
443
|
+
try {
|
|
444
|
+
const r = await fetch('/' + act, { method: 'POST' });
|
|
445
|
+
const j = await r.json();
|
|
446
|
+
toast(j.ok ? act + ' OK ✅' : 'Error: ' + (j.message || 'unknown'));
|
|
447
|
+
if (act !== 'stop') setTimeout(() => location.reload(), 500);
|
|
448
|
+
} catch(e) { toast('Error: ' + e.message); }
|
|
449
|
+
}
|
|
450
|
+
function copyId() {
|
|
451
|
+
const id = document.getElementById('project-id').textContent;
|
|
452
|
+
navigator.clipboard.writeText(id).then(() => toast('Copied: ' + id)).catch(() => toast('Copy failed'));
|
|
453
|
+
}
|
|
454
|
+
</script>
|
|
455
|
+
</body>
|
|
456
|
+
</html>`);
|
|
457
|
+
return;
|
|
458
|
+
}
|
|
459
|
+
// GET /health
|
|
460
|
+
if (req.method === "GET" && req.url === "/health") {
|
|
461
|
+
res.statusCode = 200;
|
|
462
|
+
res.setHeader("content-type", "application/json");
|
|
463
|
+
res.end(JSON.stringify({ ok: true, pid: process.pid, uptime: process.uptime() }));
|
|
464
|
+
return;
|
|
465
|
+
}
|
|
285
466
|
res.statusCode = 404;
|
|
286
467
|
res.end("not found");
|
|
287
468
|
});
|
|
@@ -506,9 +687,45 @@ async function run() {
|
|
|
506
687
|
}
|
|
507
688
|
log("info", `Companion stopped for agent ${agentName} (${role})`);
|
|
508
689
|
}
|
|
690
|
+
// ============ AUTO-UPDATE NOTIFIER ============
|
|
691
|
+
function checkForUpdates() {
|
|
692
|
+
try {
|
|
693
|
+
const pkgPath = new URL("../package.json", import.meta.url);
|
|
694
|
+
const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf-8"));
|
|
695
|
+
const currentVersion = pkg.version;
|
|
696
|
+
const req = http.get("http://registry.npmjs.org/mcp-swarm/latest", (res) => {
|
|
697
|
+
let data = "";
|
|
698
|
+
res.on("data", (chunk) => data += chunk.toString());
|
|
699
|
+
res.on("end", () => {
|
|
700
|
+
try {
|
|
701
|
+
const json = JSON.parse(data);
|
|
702
|
+
if (json.version && json.version !== currentVersion) {
|
|
703
|
+
log("warn", `🔄 Update available: ${currentVersion} → ${json.version} — run: npm install -g mcp-swarm@latest`);
|
|
704
|
+
}
|
|
705
|
+
}
|
|
706
|
+
catch { /* ignore parse errors */ }
|
|
707
|
+
});
|
|
708
|
+
});
|
|
709
|
+
req.on("error", () => { });
|
|
710
|
+
req.setTimeout(5000, () => req.destroy());
|
|
711
|
+
}
|
|
712
|
+
catch { /* ignore */ }
|
|
713
|
+
}
|
|
714
|
+
// ============ GRACEFUL SHUTDOWN ============
|
|
715
|
+
function gracefulShutdown(signal) {
|
|
716
|
+
console.log(`\n[companion] Received ${signal}, shutting down gracefully...`);
|
|
717
|
+
closeFileLog();
|
|
718
|
+
removePidFile();
|
|
719
|
+
process.exit(0);
|
|
720
|
+
}
|
|
721
|
+
process.on("SIGTERM", () => gracefulShutdown("SIGTERM"));
|
|
722
|
+
process.on("SIGINT", () => gracefulShutdown("SIGINT"));
|
|
723
|
+
process.on("exit", () => { closeFileLog(); removePidFile(); });
|
|
509
724
|
run().catch(err => {
|
|
510
725
|
// eslint-disable-next-line no-console
|
|
511
726
|
console.error(err);
|
|
727
|
+
closeFileLog();
|
|
728
|
+
removePidFile();
|
|
512
729
|
process.exit(1);
|
|
513
730
|
});
|
|
514
731
|
//# sourceMappingURL=companion.js.map
|
package/dist/companion.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"companion.js","sourceRoot":"","sources":["../src/companion.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"companion.js","sourceRoot":"","sources":["../src/companion.ts"],"names":[],"mappings":"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"}
|