mcp-swarm 1.1.6 → 1.2.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.
Files changed (85) hide show
  1. package/CHANGELOG.md +130 -0
  2. package/CHANGELOG.ru.md +130 -0
  3. package/README.md +51 -5
  4. package/README.ru.md +51 -5
  5. package/TELEGRAM.md +26 -0
  6. package/dist/bridge.js +7 -7
  7. package/dist/bridge.js.map +1 -1
  8. package/dist/companion.js +16 -18
  9. package/dist/companion.js.map +1 -1
  10. package/dist/doctor.js +113 -6
  11. package/dist/doctor.js.map +1 -1
  12. package/dist/integrations/telegram.js +1 -1
  13. package/dist/integrations/telegram.js.map +1 -1
  14. package/dist/serverSmart.js +1 -0
  15. package/dist/serverSmart.js.map +1 -1
  16. package/dist/smartTools/analytics.js +1 -0
  17. package/dist/smartTools/analytics.js.map +1 -1
  18. package/dist/smartTools/collaboration.js +1 -0
  19. package/dist/smartTools/collaboration.js.map +1 -1
  20. package/dist/smartTools/core.js +1 -0
  21. package/dist/smartTools/core.js.map +1 -1
  22. package/dist/smartTools/files.js +38 -37
  23. package/dist/smartTools/files.js.map +1 -1
  24. package/dist/smartTools/git.js +1 -0
  25. package/dist/smartTools/git.js.map +1 -1
  26. package/dist/smartTools/index.js +30 -8
  27. package/dist/smartTools/index.js.map +1 -1
  28. package/dist/smartTools/infra.js +1 -0
  29. package/dist/smartTools/infra.js.map +1 -1
  30. package/dist/smartTools/intelligence.js +1 -0
  31. package/dist/smartTools/intelligence.js.map +1 -1
  32. package/dist/smartTools/security.js +33 -0
  33. package/dist/smartTools/security.js.map +1 -1
  34. package/dist/smartTools/tasks.js +62 -63
  35. package/dist/smartTools/tasks.js.map +1 -1
  36. package/dist/smartTools/v120.js +422 -0
  37. package/dist/smartTools/v120.js.map +1 -0
  38. package/dist/utils/errorUtils.js +45 -0
  39. package/dist/utils/errorUtils.js.map +1 -0
  40. package/dist/workflows/agentBooster.js.map +1 -1
  41. package/dist/workflows/agentProfiles.js +126 -0
  42. package/dist/workflows/agentProfiles.js.map +1 -0
  43. package/dist/workflows/aiDefence.js.map +1 -1
  44. package/dist/workflows/analyticsStore.js +228 -0
  45. package/dist/workflows/analyticsStore.js.map +1 -0
  46. package/dist/workflows/autoIndex.js +225 -0
  47. package/dist/workflows/autoIndex.js.map +1 -0
  48. package/dist/workflows/batching.js +2 -1
  49. package/dist/workflows/batching.js.map +1 -1
  50. package/dist/workflows/brainstorming.js.map +1 -1
  51. package/dist/workflows/briefings.js +1 -1
  52. package/dist/workflows/briefings.js.map +1 -1
  53. package/dist/workflows/consensus.js +1 -1
  54. package/dist/workflows/consensus.js.map +1 -1
  55. package/dist/workflows/dependencySync.js +5 -4
  56. package/dist/workflows/dependencySync.js.map +1 -1
  57. package/dist/workflows/embeddings.js +293 -0
  58. package/dist/workflows/embeddings.js.map +1 -0
  59. package/dist/workflows/externalSync.js +6 -5
  60. package/dist/workflows/externalSync.js.map +1 -1
  61. package/dist/workflows/ghostMode.js +2 -1
  62. package/dist/workflows/ghostMode.js.map +1 -1
  63. package/dist/workflows/git.js +4 -2
  64. package/dist/workflows/git.js.map +1 -1
  65. package/dist/workflows/githubApi.js +213 -0
  66. package/dist/workflows/githubApi.js.map +1 -0
  67. package/dist/workflows/githubPr.js +2 -1
  68. package/dist/workflows/githubPr.js.map +1 -1
  69. package/dist/workflows/immuneSystem.js +3 -1
  70. package/dist/workflows/immuneSystem.js.map +1 -1
  71. package/dist/workflows/moeRouter.js.map +1 -1
  72. package/dist/workflows/pluginLoader.js +222 -0
  73. package/dist/workflows/pluginLoader.js.map +1 -0
  74. package/dist/workflows/qualityGate.js +4 -3
  75. package/dist/workflows/qualityGate.js.map +1 -1
  76. package/dist/workflows/scheduledTasks.js +281 -0
  77. package/dist/workflows/scheduledTasks.js.map +1 -0
  78. package/dist/workflows/setupWizard.js +246 -0
  79. package/dist/workflows/setupWizard.js.map +1 -0
  80. package/dist/workflows/sona.js.map +1 -1
  81. package/dist/workflows/vault.js +502 -0
  82. package/dist/workflows/vault.js.map +1 -0
  83. package/dist/workflows/vectorBackend.js +681 -0
  84. package/dist/workflows/vectorBackend.js.map +1 -0
  85. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -9,6 +9,136 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
9
9
 
10
10
  ---
11
11
 
12
+ ## [1.2.0] - 2026-02-10
13
+
14
+ ### What's New
15
+
16
+ #### 🔐 Swarm Vault
17
+ - **Encrypted secret storage** — AES-256-GCM encryption with PBKDF2 key derivation
18
+ - **Session management** — Keys decrypted in memory during process, cleared on exit
19
+ - **Cloud backup** — Export/import vault to Telegram, GitHub Gist, Google Drive, S3, or local file
20
+ - **New Smart Tool** — `swarm_vault` with actions: init, unlock, get, set, delete, list, export, import, lock, status
21
+
22
+ #### 🧙 Setup Wizard
23
+ - **Interactive first-time setup** — Triggered on `swarm_agent init` if no config exists
24
+ - **Multi-lingual** — Auto-detects system locale (Russian/English)
25
+ - **Standard mode** — Skip all, v1.1.x compatible out of the box
26
+ - **Configured mode** — Choose Vault, Vector DB, Embeddings, GitHub, Profiles, Plugins
27
+ - **New Smart Tool** — `swarm_setup` with actions: wizard_prompt, wizard_run, config_get, config_exists
28
+
29
+ #### 🧠 Embedding Cascade
30
+ - **Provider cascade** — Ollama (free/local) → OpenAI (paid) → simpleEmbed v2 (offline)
31
+ - **simpleEmbed v2** — Enhanced with bi-grams, char n-grams, TF-IDF weighting, positional encoding
32
+ - **Semantic caching** — 5000-entry LRU cache, eliminates redundant API calls
33
+ - **Rate limiting** — Per-provider request throttling
34
+ - **Cost tracking** — Session-level token and USD tracking for OpenAI
35
+ - **New Smart Tool** — `swarm_embeddings` with actions: embed, health, costs, reset_costs, backend_health, backend_migrate, backend_health_all
36
+
37
+ #### 🗄️ Vector Backends
38
+ - **6 adapters** — Local HNSW, ChromaDB, Supabase pgvector, Qdrant Cloud, Pinecone, Turso
39
+ - **Backend migration** — Migrate all documents between any two backends
40
+ - **Health-check & fallback** — Auto-fallback to local if external backend is unavailable
41
+ - **TTL / data retention** — Automatic cleanup of old vectors by configurable TTL
42
+
43
+ #### 🧲 Auto-Index & Smart Memory
44
+ - **Auto-indexing** — Completed tasks, file changes, and code reviews are indexed automatically
45
+ - **Smart context injection** — Searches memory before task assignment for relevant past solutions
46
+ - **Self-correction loop** — Finds past error fixes and applies them to new similar errors
47
+ - **Conflict resolution memory** — Remembers merge conflict resolution patterns for automated resolution
48
+ - **New Smart Tool** — `swarm_memory` with 8 actions
49
+
50
+ #### 📊 Analytics
51
+ - **Local persistent storage** — Task history and agent metrics in JSON (`.swarm/analytics.json`)
52
+ - **Agent performance** — Tasks completed, avg duration, specializations per agent
53
+ - **New Smart Tool** — `swarm_analytics` with actions: log_task, log_event, get_tasks, get_events, get_metrics, summary, cleanup
54
+
55
+ #### 👤 Agent Profiles
56
+ - **6 specialist profiles** — frontend, backend, security, devops, fullstack, custom
57
+ - **Context-aware instructions** — Each profile provides priorities and skill lists
58
+ - **New Smart Tool** — `swarm_profiles` with actions: get, list, default, instructions
59
+
60
+ #### ⏰ Scheduled Tasks
61
+ - **Cron-like scheduler** — Define recurring tasks with standard cron syntax
62
+ - **Due-check system** — Tasks checked on agent heartbeat
63
+ - **New Smart Tool** — `swarm_scheduler` with actions: add, list, check_due, remove
64
+
65
+ #### 🔌 Plugin System
66
+ - **User extensions** — Load custom plugins from `~/.swarm/plugins/`
67
+ - **Plugin types** — embedding, vectorBackend, hook, command
68
+ - **Dynamic import** — Auto-discovers and loads `.js`/`.mjs` plugins
69
+ - **New Smart Tool** — `swarm_plugins` with actions: discover, load, load_all, init_dir
70
+
71
+ #### 🔄 GitHub Sync
72
+ - **Auth auto-detection** — gh CLI → git credential → GITHUB_TOKEN env → Vault
73
+ - **Two-way sync** — GitHub Issues ↔ Swarm Tasks with label filtering
74
+ - **Issue CRUD** — Create, close, and comment on issues directly from agent
75
+ - **New Smart Tool** — `swarm_github` with actions: auth_status, list_issues, create_issue, close_issue, sync_from_github
76
+
77
+ ### Changed
78
+ - **Smart Tools: 27 → 35** — Eight new tools added for v1.2.0 features
79
+ - **Tool index** — New `v120.ts` module houses all v1.2.0 tool definitions
80
+ - **Full type safety in v120.ts** — All `any` types replaced with `z.infer` schemas and explicit type assertions
81
+
82
+ ### Improved (Round 2)
83
+
84
+ #### 🔐 Vault Password Rotation
85
+ - **`swarm_vault rotate`** — Re-encrypts vault with new password, preserves all keys
86
+ - **Fresh salt** — New PBKDF2 salt generated on each rotation for maximum security
87
+
88
+ #### ⏰ Scheduled Tasks Persistence
89
+ - **`lastRun` persistence** — Task execution timestamps saved to `config.json`, survive restarts
90
+ - **`check_missed` action** — Detects tasks that were due while Companion was offline
91
+ - **Trailing space fix** — Generated task IDs no longer contain trailing spaces
92
+
93
+ #### 🔌 Plugin Lifecycle
94
+ - **`onUnload` hook** — Plugins can now clean up resources (timers, connections) on unload
95
+ - **Cross-platform imports** — Fixed path normalization using `pathToFileURL` for safe dynamic imports
96
+
97
+ #### 🗄️ Vector Backend Switch
98
+ - **`backend_switch` action** — Change active backend via `swarm_embeddings`
99
+ - **Migration suggestion** — Warns if old backend has data and suggests migration to prevent data loss
100
+
101
+ ### Improved (Round 3 — Type Safety & Code Quality)
102
+
103
+ #### 🛡️ Full Type Safety
104
+ - **`err: any` → `err: unknown`** — All ~15 catch blocks migrated to safe `unknown` error handling
105
+ - **`getErrorMessage()` utility** — Centralized error-to-string conversion with stack trace support (`utils/errors.ts`)
106
+ - **`as any` elimination** — 12 typed interfaces for vector backends (Qdrant, Supabase, Pinecone, Chroma, Turso, HNSW) replace all `as any` in `vectorBackend.ts`
107
+ - **`wrapResult(unknown)`** — Changed from `any` to `unknown` in all 9 smartTools files
108
+ - **Zod schema extraction** — Smart tool schemas moved to `const` objects for reuse and IDE autocomplete
109
+
110
+ #### 🔐 Vault Audit & Auto-Lock
111
+ - **Audit trail** — `swarm_vault({ action: "audit" })` returns last 500 operations with timestamps, agent names, and details
112
+ - **Auto-lock timer** — Vault auto-locks after configurable idle timeout (`SWARM_VAULT_TIMEOUT`, default 30 min)
113
+ - **`VaultAuditEntry` type** — Fully typed audit log entries
114
+
115
+ #### ⏰ Scheduled Task Pause/Resume
116
+ - **`pauseScheduledTask()`** — Pause individual scheduled tasks without removing them
117
+ - **`resumeScheduledTask()`** — Resume paused tasks, preserving next execution time
118
+ - **Per-task `enabled` field** — Tasks can be selectively disabled/enabled
119
+
120
+ #### 🩺 Doctor JSON Output
121
+ - **`mcp-swarm-doctor --json`** — Machine-readable diagnostic output for CI/CD pipelines
122
+ - **`DoctorResult` type** — Structured check results: `{ name, status, message, details }`
123
+ - **`runDoctorChecks()` export** — Programmatic access to all health checks
124
+
125
+ #### 🔄 100% ESM Migration
126
+ - **`require("node:crypto")` → `import { createHmac }`** — in `githubApi.ts`
127
+ - **`require("node:os")` → `import os`** — in `briefings.ts`
128
+ - **`require("ws")` → `import WebSocket`** — in `companion.ts` with safe `wsState` wrapper
129
+ - **Zero `require()` calls remaining** — Project is now fully ESM-only
130
+
131
+ #### 🧪 New Tests
132
+ - **`companionBridge.test.ts`** — 18 tests covering BridgeManager, CompanionControl, verifyWebhookSignature, Briefings exports, and Bridge type safety
133
+ - **HMAC verification tests** — Valid/invalid/wrong-secret/empty-payload scenarios
134
+
135
+ #### 📝 Code Quality
136
+ - **File-level `eslint-disable`** — Clean annotation for MCP SDK `input: any` limitation (10 smartTools files)
137
+ - **Debug log cleanup** — Removed `console.log` artifacts from test files
138
+ - **`companion.ts` WebSocket safety** — Extracted `wsState` object to prevent null-reference errors
139
+
140
+ ---
141
+
12
142
  ## [1.1.6] - 2026-02-10
13
143
 
14
144
  ### What's New
package/CHANGELOG.ru.md CHANGED
@@ -9,6 +9,136 @@
9
9
 
10
10
  ---
11
11
 
12
+ ## [1.2.0] - 2026-02-10
13
+
14
+ ### Что нового
15
+
16
+ #### 🔐 Swarm Vault
17
+ - **Шифрованное хранилище секретов** — AES-256-GCM шифрование с PBKDF2 деривацией ключа
18
+ - **Управление сессиями** — Ключи расшифровываются в памяти, очищаются при завершении
19
+ - **Облачный бэкап** — Экспорт/импорт хранилища в Telegram, GitHub Gist, Google Drive, S3 или локальный файл
20
+ - **Новый Smart Tool** — `swarm_vault` с действиями: init, unlock, get, set, delete, list, export, import, lock, status
21
+
22
+ #### 🧙 Мастер настройки
23
+ - **Интерактивная первичная настройка** — Запускается при `swarm_agent init` если конфиг не существует
24
+ - **Мультиязычность** — Автоопределение локали системы (русский/английский)
25
+ - **Стандартный режим** — Пропустить всё, совместимость с v1.1.x из коробки
26
+ - **Режим настройки** — Выбор Vault, Vector DB, Embeddings, GitHub, Профили, Плагины
27
+ - **Новый Smart Tool** — `swarm_setup` с действиями: wizard_prompt, wizard_run, config_get, config_exists
28
+
29
+ #### 🧠 Каскад эмбеддингов
30
+ - **Каскад провайдеров** — Ollama (бесплатно/локально) → OpenAI (платно) → simpleEmbed v2 (оффлайн)
31
+ - **simpleEmbed v2** — Улучшен: биграммы, char n-граммы, TF-IDF веса, позиционное кодирование
32
+ - **Семантическое кэширование** — LRU-кэш на 5000 записей, устраняет повторные API-вызовы
33
+ - **Rate limiting** — Ограничение запросов по провайдерам
34
+ - **Трекинг расходов** — Отслеживание токенов и USD за сессию для OpenAI
35
+ - **Новый Smart Tool** — `swarm_embeddings` с 7 действиями
36
+
37
+ #### 🗄️ Векторные бэкенды
38
+ - **6 адаптеров** — Local HNSW, ChromaDB, Supabase pgvector, Qdrant Cloud, Pinecone, Turso
39
+ - **Миграция** — Перенос всех документов между любыми двумя бэкендами
40
+ - **Health-check и фоллбэк** — Автоматический откат на локальный при недоступности внешнего
41
+ - **TTL / очистка данных** — Автоматическое удаление старых векторов по настраиваемому TTL
42
+
43
+ #### 🧲 Авто-индексация и Smart Memory
44
+ - **Авто-индексация** — Завершённые задачи, изменения файлов и ревью индексируются автоматически
45
+ - **Smart Context Injection** — Поиск по памяти перед назначением задачи
46
+ - **Self-Correction Loop** — Поиск прошлых исправлений ошибок для новых похожих ошибок
47
+ - **Conflict Memory** — Запоминание паттернов разрешения merge-конфликтов
48
+ - **Новый Smart Tool** — `swarm_memory` с 8 действиями
49
+
50
+ #### 📊 Аналитика
51
+ - **Локальное хранение** — История задач и метрики агентов в JSON (`.swarm/analytics.json`)
52
+ - **Производительность агентов** — Количество задач, среднее время, специализации
53
+ - **Новый Smart Tool** — `swarm_analytics` с действиями: log_task, log_event, get_tasks, get_events, get_metrics, summary, cleanup
54
+
55
+ #### 👤 Профили агентов
56
+ - **6 профилей-специалистов** — frontend, backend, security, devops, fullstack, custom
57
+ - **Контекстные инструкции** — Каждый профиль имеет приоритеты и список навыков
58
+ - **Новый Smart Tool** — `swarm_profiles` с действиями: get, list, default, instructions
59
+
60
+ #### ⏰ Запланированные задачи
61
+ - **Крон-подобный планировщик** — Определение повторяющихся задач стандартным cron-синтаксисом
62
+ - **Система проверки** — Задачи проверяются при heartbeat агента
63
+ - **Новый Smart Tool** — `swarm_scheduler` с действиями: add, list, check_due, remove
64
+
65
+ #### 🔌 Система плагинов
66
+ - **Пользовательские расширения** — Загрузка плагинов из `~/.swarm/plugins/`
67
+ - **Типы плагинов** — embedding, vectorBackend, hook, command
68
+ - **Динамический импорт** — Автоматическое обнаружение и загрузка .js/.mjs файлов
69
+ - **Новый Smart Tool** — `swarm_plugins` с действиями: discover, load, load_all, init_dir
70
+
71
+ #### 🔄 GitHub синхронизация
72
+ - **Автоопределение авторизации** — gh CLI → git credential → GITHUB_TOKEN env → Vault
73
+ - **Двусторонняя синхронизация** — GitHub Issues ↔ Swarm Tasks с фильтрацией по лейблам
74
+ - **CRUD для Issues** — Создание, закрытие и комментирование из агента
75
+ - **Новый Smart Tool** — `swarm_github` с действиями: auth_status, list_issues, create_issue, close_issue, sync_from_github
76
+
77
+ ### Изменено
78
+ - **Smart Tools: 27 → 35** — Добавлены 8 новых тулов для фич v1.2.0
79
+ - **Индекс тулов** — Новый модуль `v120.ts` содержит все определения тулов v1.2.0
80
+ - **Полная типобезопасность v120.ts** — Все `any` заменены на `z.infer` схемы и явные type assertions
81
+
82
+ ### Улучшено (Раунд 2)
83
+
84
+ #### 🔐 Ротация пароля Vault
85
+ - **`swarm_vault rotate`** — Перешифрование хранилища новым паролем, все ключи сохраняются
86
+ - **Свежий salt** — Новый PBKDF2 salt генерируется при каждой ротации
87
+
88
+ #### ⏰ Персистентность запланированных задач
89
+ - **`lastRun` персистентность** — Время выполнения задач сохраняется в `config.json`, переживает перезапуски
90
+ - **`check_missed` действие** — Обнаружение задач, пропущенных пока Companion был оффлайн
91
+ - **Исправление пробелов** — Сгенерированные ID задач больше не содержат хвостовых пробелов
92
+
93
+ #### 🔌 Жизненный цикл плагинов
94
+ - **`onUnload` хук** — Плагины теперь могут освобождать ресурсы (таймеры, соединения) при выгрузке
95
+ - **Кросс-платформенный импорт** — Исправлена нормализация путей через `pathToFileURL`
96
+
97
+ #### 🗄️ Переключение векторного бэкенда
98
+ - **`backend_switch` действие** — Смена активного бэкенда через `swarm_embeddings`
99
+ - **Предложение миграции** — Предупреждает если у старого бэкенда есть данные
100
+
101
+ ### Улучшено (Раунд 3 — Типобезопасность и качество кода)
102
+
103
+ #### 🛡️ Полная типобезопасность
104
+ - **`err: any` → `err: unknown`** — Все ~15 catch-блоков мигрированы на безопасную обработку `unknown`
105
+ - **Утилита `getErrorMessage()`** — Централизованная конвертация ошибок в строку с поддержкой stack trace (`utils/errors.ts`)
106
+ - **Удаление `as any`** — 12 типизированных интерфейсов для векторных бэкендов (Qdrant, Supabase, Pinecone, Chroma, Turso, HNSW) заменяют все `as any` в `vectorBackend.ts`
107
+ - **`wrapResult(unknown)`** — Изменён с `any` на `unknown` во всех 9 файлах smartTools
108
+ - **Извлечение Zod-схем** — Схемы Smart Tools вынесены в `const`-объекты для переиспользования и автодополнения IDE
109
+
110
+ #### 🔐 Vault Audit и авто-блокировка
111
+ - **Аудит-трейл** — `swarm_vault({ action: "audit" })` возвращает последние 500 операций с метками времени, именами агентов и деталями
112
+ - **Таймер авто-блокировки** — Vault автоматически блокируется после настраиваемого таймаута простоя (`SWARM_VAULT_TIMEOUT`, по умолчанию 30 мин)
113
+ - **Тип `VaultAuditEntry`** — Полностью типизированные записи аудит-лога
114
+
115
+ #### ⏰ Пауза/возобновление планируемых задач
116
+ - **`pauseScheduledTask()`** — Приостановка отдельных задач без удаления
117
+ - **`resumeScheduledTask()`** — Возобновление приостановленных задач с сохранением времени следующего запуска
118
+ - **Поле `enabled` для каждой задачи** — Задачи можно выборочно отключать/включать
119
+
120
+ #### 🩺 Doctor JSON-вывод
121
+ - **`mcp-swarm-doctor --json`** — Машиночитаемый диагностический вывод для CI/CD пайплайнов
122
+ - **Тип `DoctorResult`** — Структурированные результаты проверок: `{ name, status, message, details }`
123
+ - **Экспорт `runDoctorChecks()`** — Программный доступ ко всем проверкам здоровья
124
+
125
+ #### 🔄 100% ESM миграция
126
+ - **`require("node:crypto")` → `import { createHmac }`** — в `githubApi.ts`
127
+ - **`require("node:os")` → `import os`** — в `briefings.ts`
128
+ - **`require("ws")` → `import WebSocket`** — в `companion.ts` с безопасной обёрткой `wsState`
129
+ - **Ноль `require()` вызовов** — Проект теперь полностью ESM-only
130
+
131
+ #### 🧪 Новые тесты
132
+ - **`companionBridge.test.ts`** — 18 тестов: BridgeManager, CompanionControl, verifyWebhookSignature, экспорты Briefings, типобезопасность Bridge
133
+ - **Тесты HMAC-верификации** — Сценарии: валидная/невалидная/чужой-секрет/пустой-payload
134
+
135
+ #### 📝 Качество кода
136
+ - **File-level `eslint-disable`** — Чистая аннотация для ограничения MCP SDK `input: any` (10 файлов smartTools)
137
+ - **Очистка debug-логов** — Удалены артефакты `console.log` из тестовых файлов
138
+ - **`companion.ts` WebSocket safety** — Извлечён объект `wsState` для предотвращения null-reference ошибок
139
+
140
+ ---
141
+
12
142
  ## [1.1.6] - 2026-02-10
13
143
 
14
144
  ### Что нового
package/README.md CHANGED
@@ -12,9 +12,9 @@
12
12
  <img src="./assets/banner.png" alt="MCP Swarm Banner" width="800" />
13
13
  </p>
14
14
 
15
- # 🐝 MCP Swarm v1.1.6 — Universal AI Agent Coordination Platform
15
+ # 🐝 MCP Swarm v1.2.0 — Universal AI Agent Coordination Platform
16
16
 
17
- > 🐝 **v1.1.6Architecture & Security:** Hub refactored into modular services, Dashboard 2.0 with Chart.js graphs and WebSocket live updates, API security (X-Swarm-Secret + Rate Limiting), E2E tests, optional Ollama integration for swarm_booster. Update: `npm install -g mcp-swarm@latest`
17
+ > 🐝 **v1.2.0Platform Expansion:** 35 Smart Tools (9 new), Vault with audit trail & auto-lock, Setup Wizard, Analytics Store, Embeddings Cascade (multi-provider), Vector Backends (6 adapters: Local, Chroma, Supabase, Qdrant, Pinecone, Turso), Auto-Index, Agent Profiles, Scheduled Tasks with pause/resume, Plugin Loader, Doctor CLI (`--json`), 100% ESM, full type safety. Update: `npm install -g mcp-swarm@latest`
18
18
 
19
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.
20
20
 
@@ -57,9 +57,9 @@ When you use multiple AI tools simultaneously, they often collide: editing the s
57
57
 
58
58
  ---
59
59
 
60
- ## 🛠 26 Smart Tools: The Swarm Toolkit
60
+ ## 🛠 35 Smart Tools: The Swarm Toolkit
61
61
 
62
- In v1.0.2, we **consolidated 54 tools into 26**zero feature loss, fewer IDE tool slots used. Each tool uses an `action` parameter to expose multiple operations.
62
+ In v1.2.0, we expanded to **35 Smart Tools** (from 26 in v1.1.x) 9 new tools for secrets, analytics, embeddings, vector backends, auto-indexing, agent profiles, scheduled tasks, and plugins. Each tool uses an `action` parameter to expose multiple operations.
63
63
 
64
64
  ### 🚀 Core System (2)
65
65
 
@@ -127,6 +127,20 @@ In v1.0.2, we **consolidated 54 tools into 26** — zero feature loss, 2× fewer
127
127
  | 25 | **swarm_clusters** | clusters + conflict | `init`, `list`, `find`, `conflict_predict`, `conflict_hotspots` |
128
128
  | 26 | **swarm_telegram** | telegram + qa | `setup`, `send`, `notify_*`, `qa_start`, `qa_iterate`, `qa_report` |
129
129
 
130
+ ### 🆕 New in v1.2.0 (8)
131
+
132
+ | # | Tool | Description | Key Actions |
133
+ |---|------|-------------|-------------|
134
+ | 27 | **swarm_vault** | Secret management (AES-256-GCM) | `init`, `unlock`, `set`, `get`, `delete`, `list`, `rotate`, `export`, `import`, `lock`, `status`, `audit` |
135
+ | 28 | **swarm_analytics** | Task/event metrics & storage | `log_task`, `log_event`, `get_tasks`, `get_events`, `get_metrics`, `summary`, `cleanup` |
136
+ | 29 | **swarm_memory** | Auto-index & smart context | `index_task`, `index_file`, `index_review`, `smart_context`, `find_error_solution`, `record_error_fix` |
137
+ | 30 | **swarm_embeddings** | Multi-provider embeddings + backends | `embed`, `health`, `costs`, `backend_status`, `backend_migrate`, `backend_switch`, `backend_health` |
138
+ | 31 | **swarm_profiles** | Agent profiles & specialization | `get`, `list`, `default`, `instructions` |
139
+ | 32 | **swarm_scheduler** | Cron-based task scheduler | `add`, `list`, `check_due`, `check_missed`, `remove` |
140
+ | 33 | **swarm_plugins** | Plugin loader & discovery | `discover`, `load`, `load_all`, `init_dir` |
141
+ | 34 | **swarm_github** | GitHub Issue ↔ Task sync | `auth_status`, `list_issues`, `create_issue`, `close_issue`, `sync_from_github` |
142
+ | 35 | **swarm_setup** | Setup wizard & config | `wizard_prompt`, `wizard_run`, `config_get`, `config_exists` |
143
+
130
144
  ---
131
145
 
132
146
  ### Usage Examples
@@ -1094,6 +1108,37 @@ cloudflare/
1094
1108
 
1095
1109
  ---
1096
1110
 
1111
+ ## 🩺 Doctor — Health Check CLI
1112
+
1113
+ ```bash
1114
+ # Human-readable output
1115
+ npx mcp-swarm-doctor
1116
+
1117
+ # JSON output for CI/CD pipelines
1118
+ npx mcp-swarm-doctor --json
1119
+ ```
1120
+
1121
+ **Example output:**
1122
+ ```
1123
+ 🩺 MCP Swarm Doctor
1124
+ ✅ Node.js version: v23.11.1 (>= 18.0.0)
1125
+ ✅ Package installed: mcp-swarm@1.2.0
1126
+ ✅ TypeScript compiled: dist/ exists
1127
+ ✅ Hub URL configured: wss://mcp-swarm-hub.example.workers.dev/ws
1128
+ ⚠️ Telegram not configured: TELEGRAM_USER_ID is missing
1129
+ ```
1130
+
1131
+ **JSON mode** (`--json`) returns structured results:
1132
+ ```json
1133
+ [
1134
+ { "name": "node-version", "status": "pass", "message": "v23.11.1 (>= 18.0.0)" },
1135
+ { "name": "package", "status": "pass", "message": "mcp-swarm@1.2.0" },
1136
+ { "name": "telegram", "status": "warn", "message": "TELEGRAM_USER_ID is missing" }
1137
+ ]
1138
+ ```
1139
+
1140
+ ---
1141
+
1097
1142
  ## 📝 Changelog
1098
1143
 
1099
1144
  See [CHANGELOG.md](./CHANGELOG.md)
@@ -1126,4 +1171,5 @@ Your feedback shapes the future of the project:
1126
1171
 
1127
1172
  ## 📜 License
1128
1173
 
1129
- MIT © 2025
1174
+ MIT © 2025–2026
1175
+
package/README.ru.md CHANGED
@@ -12,9 +12,9 @@
12
12
  <img src="./assets/banner.png" alt="MCP Swarm Banner" width="800" />
13
13
  </p>
14
14
 
15
- # 🐝 MCP Swarm v1.1.6 — Универсальная Платформа Координации AI-Агентов
15
+ # 🐝 MCP Swarm v1.2.0 — Универсальная Платформа Координации AI-Агентов
16
16
 
17
- > 🐝 **v1.1.6Архитектура и Безопасность:** Hub рефакторнут в модульные сервисы, Dashboard 2.0 с Chart.js графиками и WebSocket обновлениями, API безопасность (X-Swarm-Secret + Rate Limiting), E2E тесты, опциональная интеграция Ollama для swarm_booster. Обновитесь: `npm install -g mcp-swarm@latest`
17
+ > 🐝 **v1.2.0Расширение платформы:** 35 Smart Tools (9 новых), Vault с аудит-трейлом и авто-блокировкой, Setup Wizard, Analytics Store, Embeddings Cascade (много-провайдерные эмбеддинги), Vector Backends (6 адаптеров: Local, Chroma, Supabase, Qdrant, Pinecone, Turso), Auto-Index, Профили агентов, Планировщик с паузой/возобновлением, Plugin Loader, Doctor CLI (`--json`), 100% ESM, полная типобезопасность. Обновитесь: `npm install -g mcp-swarm@latest`
18
18
 
19
19
  **MCP Swarm** — это глобальная «нервная система» для ваших AI-помощников. Она превращает разрозненных агентов (Claude, Cursor, Windsurf, OpenCode) в слаженную команду, способную работать над огромными проектами без конфликтов и потери контекста.
20
20
 
@@ -58,9 +58,9 @@
58
58
 
59
59
  ---
60
60
 
61
- ## 🛠 26 Smart Tools: Инструментарий Swarm
61
+ ## 🛠 35 Smart Tools: Инструментарий Swarm
62
62
 
63
- В v1.0.2 мы **консолидировали 54 инструмента в 26** — без потери функциональности, IDE загружает в меньше слотов. Каждый инструмент использует параметр `action` для доступа к нескольким операциям.
63
+ В v1.2.0 мы расширили набор до **35 Smart Tools** (с 26 в v1.1.x) 9 новых инструментов для секретов, аналитики, эмбеддингов, векторных бэкендов, авто-индексации, профилей агентов, планировщика задач и плагинов. Каждый инструмент использует параметр `action` для доступа к нескольким операциям.
64
64
 
65
65
  ### 🚀 Ядро системы (2)
66
66
 
@@ -128,6 +128,20 @@
128
128
  | 25 | **swarm_clusters** | clusters + conflict | `init`, `list`, `find`, `conflict_predict`, `conflict_hotspots` |
129
129
  | 26 | **swarm_telegram** | telegram + qa | `setup`, `send`, `notify_*`, `qa_start`, `qa_iterate`, `qa_report` |
130
130
 
131
+ ### 🆕 Новое в v1.2.0 (8)
132
+
133
+ | # | Инструмент | Описание | Основные действия |
134
+ |---|-----------|----------|-------------------|
135
+ | 27 | **swarm_vault** | Управление секретами (AES-256-GCM) | `init`, `unlock`, `set`, `get`, `delete`, `list`, `rotate`, `export`, `import`, `lock`, `status`, `audit` |
136
+ | 28 | **swarm_analytics** | Метрики задач/событий | `log_task`, `log_event`, `get_tasks`, `get_events`, `get_metrics`, `summary`, `cleanup` |
137
+ | 29 | **swarm_memory** | Авто-индексация и умный контекст | `index_task`, `index_file`, `index_review`, `smart_context`, `find_error_solution`, `record_error_fix` |
138
+ | 30 | **swarm_embeddings** | Много-провайдерные эмбеддинги + бэкенды | `embed`, `health`, `costs`, `backend_status`, `backend_migrate`, `backend_switch`, `backend_health` |
139
+ | 31 | **swarm_profiles** | Профили агентов и специализация | `get`, `list`, `default`, `instructions` |
140
+ | 32 | **swarm_scheduler** | Cron-планировщик задач | `add`, `list`, `check_due`, `check_missed`, `remove` |
141
+ | 33 | **swarm_plugins** | Загрузчик и обнаружение плагинов | `discover`, `load`, `load_all`, `init_dir` |
142
+ | 34 | **swarm_github** | GitHub Issue ↔ Task синх. | `auth_status`, `list_issues`, `create_issue`, `close_issue`, `sync_from_github` |
143
+ | 35 | **swarm_setup** | Мастер настройки и конфиг | `wizard_prompt`, `wizard_run`, `config_get`, `config_exists` |
144
+
131
145
  ---
132
146
 
133
147
  ### Примеры использования
@@ -895,6 +909,37 @@ cloudflare/
895
909
 
896
910
  ---
897
911
 
912
+ ## 🩺 Doctor — CLI диагностики
913
+
914
+ ```bash
915
+ # Человекочитаемый вывод
916
+ npx mcp-swarm-doctor
917
+
918
+ # JSON-вывод для CI/CD пайплайнов
919
+ npx mcp-swarm-doctor --json
920
+ ```
921
+
922
+ **Пример вывода:**
923
+ ```
924
+ 🩺 MCP Swarm Doctor
925
+ ✅ Node.js version: v23.11.1 (>= 18.0.0)
926
+ ✅ Package installed: mcp-swarm@1.2.0
927
+ ✅ TypeScript compiled: dist/ exists
928
+ ✅ Hub URL configured: wss://mcp-swarm-hub.example.workers.dev/ws
929
+ ⚠️ Telegram not configured: TELEGRAM_USER_ID is missing
930
+ ```
931
+
932
+ **JSON-режим** (`--json`) возвращает структурированные результаты:
933
+ ```json
934
+ [
935
+ { "name": "node-version", "status": "pass", "message": "v23.11.1 (>= 18.0.0)" },
936
+ { "name": "package", "status": "pass", "message": "mcp-swarm@1.2.0" },
937
+ { "name": "telegram", "status": "warn", "message": "TELEGRAM_USER_ID is missing" }
938
+ ]
939
+ ```
940
+
941
+ ---
942
+
898
943
  ## 📝 Changelog
899
944
 
900
945
  См. [CHANGELOG.md](./CHANGELOG.md)
@@ -926,4 +971,5 @@ PRs welcome! Основные принципы:
926
971
 
927
972
  ## 📜 License
928
973
 
929
- MIT © 2025
974
+ MIT © 2025–2026
975
+
package/TELEGRAM.md CHANGED
@@ -150,6 +150,19 @@ IDE starts → Companion reads TELEGRAM_USER_ID + TELEGRAM_BOT_URL from env
150
150
 
151
151
  ---
152
152
 
153
+ ## Hub Auto-Notifications (v1.1.6)
154
+
155
+ Hub automatically sends real-time alerts to your Telegram:
156
+
157
+ - `task_created` — New task added
158
+ - `task_completed` — Task finished
159
+ - `swarm_stopped` — Swarm paused/stopped
160
+ - `swarm_resumed` — Swarm resumed
161
+ - `urgent` — Urgent preemption triggered
162
+ - `agent_died` — Agent disconnected unexpectedly
163
+
164
+ ---
165
+
153
166
  ## Deploy Your Own Bot (Optional)
154
167
 
155
168
  If you want your own Telegram bot instance, follow these steps:
@@ -375,6 +388,19 @@ IDE запускается → Companion читает TELEGRAM_USER_ID + TELEGRA
375
388
 
376
389
  ---
377
390
 
391
+ ## Авто-уведомления Hub (v1.1.6)
392
+
393
+ Hub автоматически шлёт уведомления в Telegram о критических событиях:
394
+
395
+ - `task_created` — Новая задача
396
+ - `task_completed` — Задача завершена
397
+ - `swarm_stopped` — Рой остановлен/на паузе
398
+ - `swarm_resumed` — Рой возобновил работу
399
+ - `urgent` — Срочное переназначение
400
+ - `agent_died` — Агент неожиданно отключился
401
+
402
+ ---
403
+
378
404
  ## Деплой своего бота (Опционально)
379
405
 
380
406
  Если вы хотите свой экземпляр Telegram-бота:
package/dist/bridge.js CHANGED
@@ -4,11 +4,9 @@
4
4
  * Обеспечивает доступ к локальным файлам для Remote MCP Server.
5
5
  * Поддерживает несколько проектов одновременно.
6
6
  */
7
- import { createRequire } from "node:module";
7
+ import WebSocket from "ws";
8
8
  import { getRepoRoot } from "./workflows/repo.js";
9
- const require = createRequire(import.meta.url);
10
- // eslint-disable-next-line @typescript-eslint/no-var-requires
11
- const WS = require("ws");
9
+ import { getErrorMessage } from "./utils/errorUtils.js";
12
10
  // ============ BRIDGE MANAGER ============
13
11
  export class BridgeManager {
14
12
  connections = new Map();
@@ -85,7 +83,7 @@ export class BridgeManager {
85
83
  url.pathname = "/bridge";
86
84
  url.protocol = url.protocol === "https:" ? "wss:" : "ws:";
87
85
  url.searchParams.set("repoPath", repoPath);
88
- const ws = new WS(url.toString());
86
+ const ws = new WebSocket(url.toString());
89
87
  connection.ws = ws;
90
88
  ws.on("open", () => {
91
89
  connection.connected = true;
@@ -158,7 +156,7 @@ export class BridgeManager {
158
156
  catch (err) {
159
157
  ws.send(JSON.stringify({
160
158
  requestId,
161
- result: { bridgeConnected: true, error: err.message },
159
+ result: { bridgeConnected: true, error: getErrorMessage(err) },
162
160
  }));
163
161
  }
164
162
  }
@@ -186,15 +184,17 @@ export class BridgeManager {
186
184
  return result;
187
185
  }
188
186
  catch (err) {
189
- return { ok: false, error: err.message || String(err) };
187
+ return { ok: false, error: getErrorMessage(err) };
190
188
  }
191
189
  }
190
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
192
191
  toolHandlers = null;
193
192
  async buildToolHandlers() {
194
193
  const { allSmartTools } = await import("./smartTools/index.js");
195
194
  this.toolHandlers = new Map();
196
195
  for (const tool of allSmartTools) {
197
196
  // Each smart tool is [name, schema, handler]
197
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
198
198
  const [name, , handler] = tool;
199
199
  this.toolHandlers.set(name, handler);
200
200
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"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"}