@link-assistant/hive-mind 1.50.1 → 1.50.3
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 +32 -0
- package/README.hi.md +876 -0
- package/README.md +1 -1
- package/README.ru.md +876 -0
- package/README.zh.md +876 -0
- package/package.json +1 -1
- package/src/session-monitor.lib.mjs +56 -3
- package/src/solve.auto-merge-helpers.lib.mjs +552 -0
- package/src/solve.auto-merge.lib.mjs +62 -456
- package/src/telegram-bot.mjs +4 -0
package/README.ru.md
ADDED
|
@@ -0,0 +1,876 @@
|
|
|
1
|
+
[](https://npmjs.com/@link-assistant/hive-mind)
|
|
2
|
+
[](https://github.com/link-assistant/hive-mind/blob/main/LICENSE)
|
|
3
|
+
[](https://github.com/link-assistant/hive-mind/stargazers)
|
|
4
|
+
|
|
5
|
+
[](https://gitpod.io/#https://github.com/link-assistant/hive-mind)
|
|
6
|
+
[](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=link-assistant/hive-mind)
|
|
7
|
+
|
|
8
|
+
# Hive Mind 🧠 (languages: [en](README.md) • [zh](README.zh.md) • [hi](README.hi.md) • ru)
|
|
9
|
+
|
|
10
|
+
**Главный ИИ, управляющий роем ИИ.** Оркестрирующий ИИ, который управляет другими ИИ. HIVE MIND. SWARM MIND.
|
|
11
|
+
|
|
12
|
+
Также возможно подключить этот ИИ к коллективному человеческому интеллекту — система умеет общаться с людьми для уточнения требований, получения экспертных знаний и обратной связи.
|
|
13
|
+
|
|
14
|
+
[](https://github.com/konard/problem-solving)
|
|
15
|
+
|
|
16
|
+
Вдохновлено проектом [konard/problem-solving](https://github.com/konard/problem-solving)
|
|
17
|
+
|
|
18
|
+
## Зачем нужен Hive Mind?
|
|
19
|
+
|
|
20
|
+
**Hive Mind — наиболее автономный, облачно-ориентированный ИИ-решатель задач, который устраняет необходимость постоянного контроля со стороны разработчика, сохраняя при этом человеческий надзор над критически важными решениями.**
|
|
21
|
+
|
|
22
|
+
Hive Mind — это **универсальный ИИ** (мини-AGI), способный работать над широким спектром задач, а не только над программированием. Практически всё, что можно сделать с файлами в репозитории, поддаётся автоматизации.
|
|
23
|
+
|
|
24
|
+
| Возможность | Что это означает для вас |
|
|
25
|
+
| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
26
|
+
| **Без постоянного контроля** | Полный автономный режим с правами sudo. ИИ обладает творческой свободой, как настоящий программист. |
|
|
27
|
+
| **Изоляция в облаке** | Работает на выделенных виртуальных машинах или в Docker. Легко восстановить в случае поломки. |
|
|
28
|
+
| **Полный доступ к интернету + Sudo** | ИИ может устанавливать пакеты, получать документацию и настраивать систему по мере необходимости. |
|
|
29
|
+
| **Предустановленный инструментарий** | Более 25 ГБ готово к работе: 10 языковых сред выполнения, 2 средства доказательства теорем, инструменты сборки. Можно установить дополнительные. |
|
|
30
|
+
| **Эффективность токенов** | Рутинные задачи автоматизированы в коде, поэтому токены ИИ сосредоточены на творческом решении проблем. |
|
|
31
|
+
| **Свобода времени** | То, что занимает у людей 2–8 часов, ИИ выполняет за 10–25 минут за рабочую сессию. Возможно массовое выполнение задач в репозитории. «Код пишется, пока вы спите». |
|
|
32
|
+
| **Масштабирование с оркестрацией** | Параллельные воркеры ощущаются как команда разработчиков — всё примерно за $200 в месяц. |
|
|
33
|
+
| **Контроль со стороны человека** | ИИ создаёт черновые PR — вы решаете, что вливать. Контроль качества там, где это важно. |
|
|
34
|
+
| **Программирование с любого устройства** | Управляйте ИИ с любого устройства через `/solve` и `/hive` посредством Telegram-бота. ПК, IDE или ноутбук не нужны. |
|
|
35
|
+
| **100% открытый исходный код** | Лицензия Unlicense (общественное достояние). Полная прозрачность, без привязки к поставщику. |
|
|
36
|
+
|
|
37
|
+
> _«По сравнению с Codex за $200, это решение — огонь.»_ — отзыв пользователя
|
|
38
|
+
|
|
39
|
+
**Стоимость**: подписка Claude MAX (~$200 в месяц, сейчас со скидкой 50% = ценность $400) обеспечивает практически неограниченное использование для Hive Mind — лучшее соотношение цены и качества на рынке.
|
|
40
|
+
|
|
41
|
+
Hive Mind обладает высоким уровнем творчества, неотличимым от среднего программиста. Он задаёт вопросы, если требования неясны, и вы можете уточнять их на ходу через комментарии к PR.
|
|
42
|
+
|
|
43
|
+
Подробные возможности и сравнения см. в [docs/FEATURES.ru.md](./docs/FEATURES.ru.md) и [docs/COMPARISON.ru.md](./docs/COMPARISON.ru.md).
|
|
44
|
+
|
|
45
|
+
## ⚠️ ПРЕДУПРЕЖДЕНИЕ
|
|
46
|
+
|
|
47
|
+
Запускать это программное обеспечение на вашей рабочей машине НЕБЕЗОПАСНО.
|
|
48
|
+
|
|
49
|
+
Рекомендуется использовать Docker для установки (как локально, так и на серверах). Смотрите раздел [Установка через Docker](#использование-docker) ниже.
|
|
50
|
+
|
|
51
|
+
Это программное обеспечение использует полностью автономный режим Claude Code, а значит, оно может выполнять любые команды по своему усмотрению.
|
|
52
|
+
|
|
53
|
+
Это может привести к непредвиденным побочным эффектам.
|
|
54
|
+
|
|
55
|
+
Также существует известная проблема утечки дискового пространства. Убедитесь, что вы в состоянии переустановить виртуальную машину для освобождения места и/или устранения любых повреждений.
|
|
56
|
+
|
|
57
|
+
### ⚠️ КРИТИЧЕСКИ ВАЖНО: Безопасность токенов и конфиденциальных данных
|
|
58
|
+
|
|
59
|
+
**ЭТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ НЕ МОЖЕТ ГАРАНТИРОВАТЬ БЕЗОПАСНОСТЬ ВАШИХ ТОКЕНОВ ИЛИ ДРУГИХ КОНФИДЕНЦИАЛЬНЫХ ДАННЫХ НА ВИРТУАЛЬНОЙ МАШИНЕ.**
|
|
60
|
+
|
|
61
|
+
Существует бесконечное множество способов извлечь токены с виртуальной машины, подключённой к интернету. Это включает, но не ограничивается:
|
|
62
|
+
|
|
63
|
+
- **Токены Claude MAX** — необходимы для работы ИИ
|
|
64
|
+
- **Токены GitHub** — необходимы для доступа к репозиториям
|
|
65
|
+
- **API-ключи и учётные данные** — любые конфиденциальные данные в системе
|
|
66
|
+
|
|
67
|
+
**ВАЖНЫЕ СООБРАЖЕНИЯ ПО БЕЗОПАСНОСТИ:**
|
|
68
|
+
|
|
69
|
+
- Запуск на рабочей машине разработчика **АБСОЛЮТНО НЕБЕЗОПАСЕН**
|
|
70
|
+
- Запуск на виртуальной машине **МЕНЕЕ НЕБЕЗОПАСЕН**, но всё ещё несёт риски
|
|
71
|
+
- Даже если данные вашей рабочей машины не подвергаются прямому воздействию, виртуальная машина всё равно содержит конфиденциальные токены
|
|
72
|
+
- Любой токен, хранящийся в системе, подключённой к интернету, потенциально может быть скомпрометирован
|
|
73
|
+
|
|
74
|
+
**ИСПОЛЬЗУЙТЕ ЭТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ИСКЛЮЧИТЕЛЬНО НА СВОЙ СТРАХ И РИСК.**
|
|
75
|
+
|
|
76
|
+
Мы настоятельно рекомендуем:
|
|
77
|
+
|
|
78
|
+
- Использовать выделенные изолированные виртуальные машины
|
|
79
|
+
- Регулярно ротировать токены
|
|
80
|
+
- Отслеживать использование токенов на предмет подозрительной активности
|
|
81
|
+
- Никогда не использовать производственные токены или учётные данные
|
|
82
|
+
- Быть готовыми отозвать и заменить все токены, используемые в этой системе
|
|
83
|
+
|
|
84
|
+
Минимальные системные требования для запуска `hive.mjs`:
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
1 ядро CPU
|
|
88
|
+
1 ГБ ОЗУ
|
|
89
|
+
> 4 ГБ SWAP
|
|
90
|
+
50 ГБ дискового пространства
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## 🚀 Быстрый старт
|
|
94
|
+
|
|
95
|
+
### Глобальная установка
|
|
96
|
+
|
|
97
|
+
#### С помощью Bun (рекомендуется)
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
bun install -g @link-assistant/hive-mind
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
#### С помощью Node.js
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
npm install -g @link-assistant/hive-mind
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Установка Docker
|
|
110
|
+
|
|
111
|
+
Если у вас ещё не установлен Docker, выполните следующие шаги для установки Docker Engine на Ubuntu:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
# Install prerequisites
|
|
115
|
+
sudo apt update
|
|
116
|
+
sudo apt install ca-certificates curl
|
|
117
|
+
|
|
118
|
+
# Add Docker's official GPG key
|
|
119
|
+
sudo install -m 0755 -d /etc/apt/keyrings
|
|
120
|
+
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
|
|
121
|
+
sudo chmod a+r /etc/apt/keyrings/docker.asc
|
|
122
|
+
|
|
123
|
+
# Add Docker repository
|
|
124
|
+
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
|
|
125
|
+
Types: deb
|
|
126
|
+
URIs: https://download.docker.com/linux/ubuntu
|
|
127
|
+
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
|
|
128
|
+
Components: stable
|
|
129
|
+
Signed-By: /etc/apt/keyrings/docker.asc
|
|
130
|
+
EOF
|
|
131
|
+
|
|
132
|
+
# Install Docker
|
|
133
|
+
sudo apt update
|
|
134
|
+
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
|
135
|
+
|
|
136
|
+
# Verify installation
|
|
137
|
+
sudo docker run hello-world
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
**Для других операционных систем** или подробных инструкций см. [официальную документацию Docker](https://docs.docker.com/engine/install/).
|
|
141
|
+
|
|
142
|
+
### Использование Docker
|
|
143
|
+
|
|
144
|
+
Запустите Hive Mind с помощью Docker для более безопасной локальной установки — ручная настройка не требуется:
|
|
145
|
+
|
|
146
|
+
**Примечание:** Docker значительно безопаснее для локальной установки и позволяет запускать несколько изолированных экземпляров на сервере или в кластере Kubernetes. Для развёртывания в Kubernetes см. раздел [Установка через Helm](#установка-через-helm-kubernetes-экспериментально) ниже.
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
# Pull the latest image from Docker Hub
|
|
150
|
+
docker pull konard/hive-mind:latest
|
|
151
|
+
|
|
152
|
+
# Start hive-mind container
|
|
153
|
+
docker run -dit --name hive-mind konard/hive-mind:latest
|
|
154
|
+
|
|
155
|
+
# Verify container started
|
|
156
|
+
docker ps -a
|
|
157
|
+
|
|
158
|
+
# Enter additional terminal process to do installation
|
|
159
|
+
docker exec -it hive-mind /bin/bash
|
|
160
|
+
|
|
161
|
+
# Inside the container, authenticate with GitHub
|
|
162
|
+
gh-setup-git-identity
|
|
163
|
+
|
|
164
|
+
# Authenticate with Claude
|
|
165
|
+
claude
|
|
166
|
+
|
|
167
|
+
# Optionally set configuration like this:
|
|
168
|
+
# Use /config command and set:
|
|
169
|
+
# Reduce motion true # Will save your ssh trafic, and make Claude Code more responsive (less latency)
|
|
170
|
+
# Thinking mode false # Anthropic models perform better and cheaper without thinking
|
|
171
|
+
# Model haiku # chepear for connection testing manually
|
|
172
|
+
# Claude in Chrome enabled by default false # No need for Chrome support on server
|
|
173
|
+
|
|
174
|
+
# Optionally test Claude connection
|
|
175
|
+
claude -p hi --model haiku
|
|
176
|
+
|
|
177
|
+
# You might need to update hive-mind and agent to latest versions:
|
|
178
|
+
bun install -g @link-assistant/hive-mind
|
|
179
|
+
bun install -g @link-assistant/agent
|
|
180
|
+
|
|
181
|
+
# Now you can use hive and solve commands
|
|
182
|
+
solve https://github.com/owner/repo/issues/123
|
|
183
|
+
|
|
184
|
+
# Or you can run telegram bot:
|
|
185
|
+
|
|
186
|
+
# Exit from additional bash session
|
|
187
|
+
exit
|
|
188
|
+
|
|
189
|
+
# Attach to main bash process
|
|
190
|
+
docker attach hive-mind
|
|
191
|
+
|
|
192
|
+
# Run bot here
|
|
193
|
+
|
|
194
|
+
# Press Ctrl + P, Ctrl + Q to detach without destroying the container (no stopping of main bash process)
|
|
195
|
+
|
|
196
|
+
# --- Persisting auth data across restarts ---
|
|
197
|
+
|
|
198
|
+
# Extract auth data from a running (or stopped) container to the host:
|
|
199
|
+
mkdir -p ~/.hive-mind
|
|
200
|
+
docker cp hive-mind:/workspace/.claude ~/.hive-mind/claude
|
|
201
|
+
docker cp hive-mind:/workspace/.claude.json ~/.hive-mind/claude.json
|
|
202
|
+
docker cp hive-mind:/workspace/.config/gh ~/.hive-mind/gh
|
|
203
|
+
|
|
204
|
+
# Fix ownership to match the sandbox user inside the container:
|
|
205
|
+
SANDBOX_UID=$(docker exec hive-mind id -u sandbox)
|
|
206
|
+
chown -R $SANDBOX_UID:$SANDBOX_UID ~/.hive-mind/claude ~/.hive-mind/gh
|
|
207
|
+
chown $SANDBOX_UID:$SANDBOX_UID ~/.hive-mind/claude.json
|
|
208
|
+
|
|
209
|
+
# On subsequent runs, mount the auth data to keep it between restarts:
|
|
210
|
+
docker run -dit \
|
|
211
|
+
--name hive-mind \
|
|
212
|
+
--restart unless-stopped \
|
|
213
|
+
-v /root/.hive-mind/claude:/workspace/.claude \
|
|
214
|
+
-v /root/.hive-mind/claude.json:/workspace/.claude.json \
|
|
215
|
+
-v /root/.hive-mind/gh:/workspace/.config/gh \
|
|
216
|
+
konard/hive-mind:latest
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
**Преимущества Docker:**
|
|
220
|
+
|
|
221
|
+
- ✅ Предварительно настроенная среда Ubuntu 24.04
|
|
222
|
+
- ✅ Все зависимости предустановлены
|
|
223
|
+
- ✅ Изолирован от хост-системы
|
|
224
|
+
- ✅ Легко запускать несколько экземпляров с разными аккаунтами GitHub
|
|
225
|
+
- ✅ Единообразная среда на разных машинах
|
|
226
|
+
|
|
227
|
+
См. [docs/DOCKER.ru.md](./docs/DOCKER.ru.md) для расширенного использования Docker.
|
|
228
|
+
|
|
229
|
+
#### Остановка и удаление контейнера Docker
|
|
230
|
+
|
|
231
|
+
```
|
|
232
|
+
# Attach to main docker process to stop the container
|
|
233
|
+
docker attach hive-mind
|
|
234
|
+
|
|
235
|
+
^C # stop the telegram bot
|
|
236
|
+
|
|
237
|
+
exit # exit/stop the container
|
|
238
|
+
|
|
239
|
+
docker ps -a # show list of docker containers
|
|
240
|
+
# CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
|
241
|
+
# fd0fd4470ec3 konard/hive-mind:latest "/bin/bash" 5 days ago Exited (130) 16 seconds ago hive-mind
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
df -h # check disk space
|
|
245
|
+
# Filesystem Size Used Avail Use% Mounted on
|
|
246
|
+
# tmpfs 1.2G 1.1M 1.2G 1% /run
|
|
247
|
+
# /dev/sda1 96G 87G 9.8G 90% /
|
|
248
|
+
# tmpfs 5.9G 0 5.9G 0% /dev/shm
|
|
249
|
+
# tmpfs 5.0M 0 5.0M 0% /run/lock
|
|
250
|
+
# /dev/sda16 881M 117M 703M 15% /boot
|
|
251
|
+
# /dev/sda15 105M 6.2M 99M 6% /boot/efi
|
|
252
|
+
# tmpfs 1.2G 12K 1.2G 1% /run/user/0
|
|
253
|
+
|
|
254
|
+
docker rm hive-mind # remove docker container frees space used by the container, does not delete image
|
|
255
|
+
|
|
256
|
+
df -h # check disk space (to confirm space is freed)
|
|
257
|
+
# Filesystem Size Used Avail Use% Mounted on
|
|
258
|
+
# tmpfs 1.2G 1.1M 1.2G 1% /run
|
|
259
|
+
# /dev/sda1 96G 26G 71G 27% /
|
|
260
|
+
# tmpfs 5.9G 0 5.9G 0% /dev/shm
|
|
261
|
+
# tmpfs 5.0M 0 5.0M 0% /run/lock
|
|
262
|
+
# /dev/sda16 881M 117M 703M 15% /boot
|
|
263
|
+
# /dev/sda15 105M 6.2M 99M 6% /boot/efi
|
|
264
|
+
# tmpfs 1.2G 12K 1.2G 1% /run/user/0
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
### Установка через Helm (Kubernetes) (Экспериментально)
|
|
268
|
+
|
|
269
|
+
> ⚠️ **ЭКСПЕРИМЕНТАЛЬНО:** Метод установки через Helm/Kubernetes является экспериментальным и может быть нестабильным.
|
|
270
|
+
>
|
|
271
|
+
> Для более надёжной установки рекомендуем использовать [Docker](#использование-docker).
|
|
272
|
+
>
|
|
273
|
+
> См. [docs/HELM.ru.md](./docs/HELM.ru.md) для полных инструкций по установке через Helm и параметров конфигурации.
|
|
274
|
+
|
|
275
|
+
### Установка на сервер Ubuntu 24.04 (Устарело)
|
|
276
|
+
|
|
277
|
+
> ⚠️ **УСТАРЕЛО:** Данный метод установки больше не рекомендуется.
|
|
278
|
+
>
|
|
279
|
+
> **Теперь мы рекомендуем использовать Docker для всех установок** — как на машинах разработчиков, так и на серверах.
|
|
280
|
+
> Docker обеспечивает лучшую изоляцию, более простое управление и единообразные среды.
|
|
281
|
+
>
|
|
282
|
+
> Пожалуйста, используйте [метод установки через Docker](#использование-docker) выше.
|
|
283
|
+
> Для развёртывания в Kubernetes см. раздел [Установка через Helm](#установка-через-helm-kubernetes-экспериментально).
|
|
284
|
+
>
|
|
285
|
+
> Устаревшие инструкции по установке на «голое железо» перенесены в [docs/UBUNTU-SERVER.ru.md](./docs/UBUNTU-SERVER.ru.md) для справки.
|
|
286
|
+
|
|
287
|
+
### Основные операции
|
|
288
|
+
|
|
289
|
+
```bash
|
|
290
|
+
# Solve using maximum power
|
|
291
|
+
solve https://github.com/Veronika89-lang/index.html/issues/1 --attach-logs --verbose --model opus --think max
|
|
292
|
+
|
|
293
|
+
# Solve GitHub issues automatically
|
|
294
|
+
solve https://github.com/owner/repo/issues/123 --model sonnet
|
|
295
|
+
|
|
296
|
+
# Solve issue with PR to custom branch (manual fork mode)
|
|
297
|
+
solve https://github.com/owner/repo/issues/123 --base-branch develop --fork
|
|
298
|
+
|
|
299
|
+
# Continue working on existing PR
|
|
300
|
+
solve https://github.com/owner/repo/pull/456 --model opus
|
|
301
|
+
|
|
302
|
+
# Resume from Claude session when limit is reached
|
|
303
|
+
solve https://github.com/owner/repo/issues/123 --resume session-id
|
|
304
|
+
|
|
305
|
+
# Start hive orchestration (monitor and solve issues automatically)
|
|
306
|
+
hive https://github.com/owner/repo --monitor-tag "help wanted" --concurrency 3
|
|
307
|
+
|
|
308
|
+
# Monitor all issues in organization
|
|
309
|
+
hive https://github.com/microsoft --all-issues --max-issues 10
|
|
310
|
+
|
|
311
|
+
# Run collaborative review process
|
|
312
|
+
review --repo owner/repo --pr 456
|
|
313
|
+
|
|
314
|
+
# Multiple AI reviewers for consensus
|
|
315
|
+
./reviewers-hive.mjs --agents 3 --consensus-threshold 0.8
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
## 📋 Основные компоненты
|
|
319
|
+
|
|
320
|
+
| Скрипт | Назначение | Ключевые возможности |
|
|
321
|
+
| ------------------------------------------ | ------------------------------- | ----------------------------------------------------------------------------------- |
|
|
322
|
+
| `solve.mjs` (стабильный) | Решатель задач GitHub | Автофорк, создание веток, генерация PR, возобновление сессий, поддержка форков |
|
|
323
|
+
| `hive.mjs` (стабильный) | Оркестрация и мониторинг ИИ | Мониторинг нескольких репозиториев, параллельные воркеры, управление очередью задач |
|
|
324
|
+
| `review.mjs` (альфа) | Автоматизация проверки кода | Совместные проверки ИИ, автоматизированная обратная связь |
|
|
325
|
+
| `reviewers-hive.mjs` (альфа / эксперимент) | Управление командой проверяющих | Консенсус мультиагентов, назначение проверяющих |
|
|
326
|
+
| `telegram-bot.mjs` (стабильный) | Интерфейс Telegram-бота | Удалённое выполнение команд, поддержка групповых чатов, диагностические инструменты |
|
|
327
|
+
|
|
328
|
+
## 🔧 Параметры solve
|
|
329
|
+
|
|
330
|
+
```bash
|
|
331
|
+
solve <issue-url> [options]
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
**Наиболее часто используемые параметры:**
|
|
335
|
+
|
|
336
|
+
| Параметр | Сокр. | Описание | По умолчанию |
|
|
337
|
+
| --------------- | ----- | -------------------------------------------- | -------------- |
|
|
338
|
+
| `--model` | `-m` | Используемая модель ИИ (sonnet, opus, haiku) | sonnet |
|
|
339
|
+
| `--think` | | Уровень мышления (low, medium, high, max) | - |
|
|
340
|
+
| `--base-branch` | `-b` | Целевая ветка для PR | (по умолчанию) |
|
|
341
|
+
|
|
342
|
+
**Другие полезные параметры:**
|
|
343
|
+
|
|
344
|
+
| Параметр | Сокр. | Описание | По умолчанию |
|
|
345
|
+
| ------------------------ | ----- | --------------------------------------------------------------------- | ------------ |
|
|
346
|
+
| `--tool` | | Инструмент ИИ (claude, opencode, codex, agent) | claude |
|
|
347
|
+
| `--verbose` | `-v` | Включить подробное логирование | false |
|
|
348
|
+
| `--attach-logs` | | Прикрепить логи к PR (⚠️ может раскрыть конфиденциальные данные) | false |
|
|
349
|
+
| `--auto-init-repository` | | Автоматически инициализировать пустые репозитории (создаёт README.md) | false |
|
|
350
|
+
| `--help` | `-h` | Показать все доступные параметры | - |
|
|
351
|
+
|
|
352
|
+
> **📖 Полный список параметров**: см. [docs/CONFIGURATION.ru.md](./docs/CONFIGURATION.ru.md#solve-options), включая форкинг, автопродолжение, режим наблюдения и экспериментальные функции.
|
|
353
|
+
|
|
354
|
+
## 🔧 Параметры hive
|
|
355
|
+
|
|
356
|
+
```bash
|
|
357
|
+
hive <github-url> [options]
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
**Наиболее часто используемые параметры:**
|
|
361
|
+
|
|
362
|
+
| Параметр | Сокр. | Описание | По умолчанию |
|
|
363
|
+
| -------------- | ----- | ----------------------------------------------- | ------------ |
|
|
364
|
+
| `--model` | `-m` | Используемая модель ИИ (sonnet, opus, haiku) | sonnet |
|
|
365
|
+
| `--think` | | Уровень мышления (low, medium, high, max) | - |
|
|
366
|
+
| `--all-issues` | `-a` | Мониторинг всех задач (игнорировать метки) | false |
|
|
367
|
+
| `--once` | | Одиночный запуск (без непрерывного мониторинга) | false |
|
|
368
|
+
|
|
369
|
+
**Другие полезные параметры:**
|
|
370
|
+
|
|
371
|
+
| Параметр | Сокр. | Описание | По умолчанию |
|
|
372
|
+
| ------------------------ | ----- | ----------------------------------------------------------------- | ------------ |
|
|
373
|
+
| `--tool` | | Инструмент ИИ (claude, opencode, agent) | claude |
|
|
374
|
+
| `--concurrency` | `-c` | Количество параллельных воркеров | 2 |
|
|
375
|
+
| `--skip-issues-with-prs` | `-s` | Пропускать задачи с существующими PR | false |
|
|
376
|
+
| `--verbose` | `-v` | Включить подробное логирование | false |
|
|
377
|
+
| `--attach-logs` | | Прикреплять логи к PR (⚠️ может раскрыть конфиденциальные данные) | false |
|
|
378
|
+
| `--help` | `-h` | Показать все доступные параметры | - |
|
|
379
|
+
|
|
380
|
+
> **📖 Полный список параметров**: см. [docs/CONFIGURATION.ru.md](./docs/CONFIGURATION.ru.md#hive-options), включая мониторинг проектов, интеграцию с YouTrack и экспериментальные функции.
|
|
381
|
+
|
|
382
|
+
## 🤖 Telegram-бот
|
|
383
|
+
|
|
384
|
+
Hive Mind включает интерфейс Telegram-бота (SwarmMindBot) для удалённого выполнения команд.
|
|
385
|
+
|
|
386
|
+
### 🚀 Тест-драйв
|
|
387
|
+
|
|
388
|
+
Хотите увидеть Hive Mind в действии? Запросите бесплатную демонстрацию или получите более быструю поддержку, написав разработчику напрямую в Telegram:
|
|
389
|
+
|
|
390
|
+
**[Написать @drakonard в Telegram](https://t.me/drakonard)**
|
|
391
|
+
|
|
392
|
+
### Настройка
|
|
393
|
+
|
|
394
|
+
1. **Получить токен бота**
|
|
395
|
+
- Напишите [@BotFather](https://t.me/BotFather) в Telegram
|
|
396
|
+
- Создайте нового бота и получите токен
|
|
397
|
+
- Добавьте бота в групповой чат и назначьте его администратором
|
|
398
|
+
|
|
399
|
+
2. **Настроить окружение**
|
|
400
|
+
|
|
401
|
+
```bash
|
|
402
|
+
# Copy the example configuration
|
|
403
|
+
cp .env.example .env
|
|
404
|
+
|
|
405
|
+
# Edit and add your bot token
|
|
406
|
+
echo "TELEGRAM_BOT_TOKEN=your_bot_token_here" >> .env
|
|
407
|
+
|
|
408
|
+
# Optional: Restrict to specific chats
|
|
409
|
+
# Get chat ID using /help command, then add:
|
|
410
|
+
echo "TELEGRAM_ALLOWED_CHATS=123456789,987654321" >> .env
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
3. **Запустить бота**
|
|
414
|
+
|
|
415
|
+
```bash
|
|
416
|
+
hive-telegram-bot
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
**Рекомендуется: захват логов с помощью tee**
|
|
420
|
+
|
|
421
|
+
При длительной работе бота рекомендуется сохранять логи в файл с помощью `tee`. Это позволит просмотреть логи позже, даже если буфер терминала переполнится:
|
|
422
|
+
|
|
423
|
+
```bash
|
|
424
|
+
hive-telegram-bot 2>&1 | tee -a logs/bot-$(date +%Y%m%d).log
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
Или создайте директорию для логов и запустите с автоматической ротацией:
|
|
428
|
+
|
|
429
|
+
```bash
|
|
430
|
+
mkdir -p logs
|
|
431
|
+
hive-telegram-bot 2>&1 | tee -a "logs/bot-$(date +%Y%m%d-%H%M%S).log"
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
### Команды бота
|
|
435
|
+
|
|
436
|
+
Все команды работают **только в групповых чатах** (не в личных сообщениях боту):
|
|
437
|
+
|
|
438
|
+
#### `/solve` — Решение задач GitHub
|
|
439
|
+
|
|
440
|
+
```
|
|
441
|
+
/solve <github-url> [options]
|
|
442
|
+
|
|
443
|
+
Examples:
|
|
444
|
+
/solve https://github.com/owner/repo/issues/123 --model sonnet
|
|
445
|
+
/solve https://github.com/owner/repo/issues/123 --model opus --think max
|
|
446
|
+
|
|
447
|
+
Free Models (with --tool agent):
|
|
448
|
+
/solve https://github.com/owner/repo/issues/123 --tool agent --model nemotron-3-super-free
|
|
449
|
+
/solve https://github.com/owner/repo/issues/123 --tool agent --model opencode/nemotron-3-super-free
|
|
450
|
+
/solve https://github.com/owner/repo/issues/123 --tool agent --model minimax-m2.5-free
|
|
451
|
+
/solve https://github.com/owner/repo/issues/123 --tool agent --model gpt-5-nano
|
|
452
|
+
|
|
453
|
+
Free Models via Kilo Gateway (with --tool agent):
|
|
454
|
+
/solve https://github.com/owner/repo/issues/123 --tool agent --model kilo/glm-5-free
|
|
455
|
+
/solve https://github.com/owner/repo/issues/123 --tool agent --model kilo/glm-4.5-air-free
|
|
456
|
+
/solve https://github.com/owner/repo/issues/123 --tool agent --model kilo/deepseek-r1-free
|
|
457
|
+
```
|
|
458
|
+
|
|
459
|
+
> **📖 Руководство по бесплатным моделям**: см. [docs/FREE_MODELS.ru.md](./docs/FREE_MODELS.ru.md) для получения полной информации обо всех бесплатных моделях, включая провайдеры OpenCode Zen и Kilo Gateway.
|
|
460
|
+
|
|
461
|
+
#### `/hive` — Запуск оркестрации Hive
|
|
462
|
+
|
|
463
|
+
```
|
|
464
|
+
/hive <github-url> [options]
|
|
465
|
+
|
|
466
|
+
Examples:
|
|
467
|
+
/hive https://github.com/owner/repo
|
|
468
|
+
/hive https://github.com/owner/repo --all-issues --max-issues 10
|
|
469
|
+
/hive https://github.com/microsoft --all-issues --concurrency 3
|
|
470
|
+
```
|
|
471
|
+
|
|
472
|
+
#### `/limits` — Показать лимиты использования
|
|
473
|
+
|
|
474
|
+
```
|
|
475
|
+
/limits
|
|
476
|
+
|
|
477
|
+
Shows:
|
|
478
|
+
- CPU usage and load average
|
|
479
|
+
- RAM usage (used vs total)
|
|
480
|
+
- Disk space usage
|
|
481
|
+
- GitHub API rate limits
|
|
482
|
+
- Claude usage limits (session and weekly)
|
|
483
|
+
```
|
|
484
|
+
|
|
485
|
+
#### `/help` — Получить справку и диагностическую информацию
|
|
486
|
+
|
|
487
|
+
```
|
|
488
|
+
/help
|
|
489
|
+
|
|
490
|
+
Shows:
|
|
491
|
+
- Chat ID (needed for TELEGRAM_ALLOWED_CHATS)
|
|
492
|
+
- Chat type
|
|
493
|
+
- Available commands
|
|
494
|
+
- Usage examples
|
|
495
|
+
```
|
|
496
|
+
|
|
497
|
+
### Возможности
|
|
498
|
+
|
|
499
|
+
- ✅ **Только групповые чаты**: команды работают исключительно в групповых чатах (не в личных сообщениях)
|
|
500
|
+
- ✅ **Полная поддержка параметров**: все параметры командной строки работают в Telegram
|
|
501
|
+
- ✅ **Screen-сессии**: команды запускаются в отсоединённых screen-сессиях
|
|
502
|
+
- ✅ **Ограничения по чатам**: опциональный белый список разрешённых ID чатов
|
|
503
|
+
- ✅ **Диагностические инструменты**: получение ID чата и информации о конфигурации
|
|
504
|
+
|
|
505
|
+
### Замечания по безопасности
|
|
506
|
+
|
|
507
|
+
- Работает только в групповых чатах, где бот является администратором
|
|
508
|
+
- Опциональное ограничение по ID чата через `TELEGRAM_ALLOWED_CHATS`
|
|
509
|
+
- Команды выполняются от имени системного пользователя, запустившего бота
|
|
510
|
+
- Убедитесь в наличии надлежащей аутентификации (`gh auth login`, `claude-profiles`)
|
|
511
|
+
|
|
512
|
+
## 🏆 Лучшие практики
|
|
513
|
+
|
|
514
|
+
Hive Mind работает ещё лучше, когда в репозиториях есть надёжные CI/CD-пайплайны и чётко сформулированные требования к задачам. Смотрите:
|
|
515
|
+
|
|
516
|
+
- [BEST-PRACTICES.ru.md](./docs/BEST-PRACTICES.ru.md) — универсальные промпты, рекомендации по написанию задач, улучшение архитектуры и паттерны субагентов
|
|
517
|
+
- [CI-CD-BEST-PRACTICES.ru.md](./docs/CI-CD-BEST-PRACTICES.ru.md) — настройка CI/CD-пайплайнов, рекомендуемые шаблоны и стратегии применения
|
|
518
|
+
|
|
519
|
+
Ключевые преимущества правильного CI/CD:
|
|
520
|
+
|
|
521
|
+
- Решатели ИИ итерируют до тех пор, пока все проверки не пройдут
|
|
522
|
+
- Стабильное качество вне зависимости от состава команды (люди и/или ИИ)
|
|
523
|
+
- Ограничения на размер файлов обеспечивают читаемость кода как для ИИ, так и для людей
|
|
524
|
+
|
|
525
|
+
Готовые к использованию шаблоны доступны для JavaScript, Rust, Python, Go, C# и Java.
|
|
526
|
+
|
|
527
|
+
## 🏗️ Архитектура
|
|
528
|
+
|
|
529
|
+
Hive Mind работает на трёх уровнях:
|
|
530
|
+
|
|
531
|
+
1. **Уровень оркестрации** (`hive.mjs`) — координирует несколько агентов ИИ
|
|
532
|
+
2. **Уровень выполнения** (`solve.mjs`, `review.mjs`) — выполняет конкретные задачи
|
|
533
|
+
3. **Уровень взаимодействия с людьми** — обеспечивает сотрудничество между людьми и ИИ
|
|
534
|
+
|
|
535
|
+
### Потоки данных
|
|
536
|
+
|
|
537
|
+
#### Режим 1: Задача → Pull Request
|
|
538
|
+
|
|
539
|
+
```mermaid
|
|
540
|
+
sequenceDiagram
|
|
541
|
+
participant H as Человек
|
|
542
|
+
participant GH as GitHub
|
|
543
|
+
participant AI as Агент ИИ
|
|
544
|
+
participant HM as Hive Mind
|
|
545
|
+
|
|
546
|
+
H->>GH: Создаёт задачу
|
|
547
|
+
Note over H,GH: Основной ввод от человека
|
|
548
|
+
|
|
549
|
+
GH->>HM: Задача доступна
|
|
550
|
+
HM->>AI: Назначает задачу
|
|
551
|
+
AI->>GH: Анализирует задачу
|
|
552
|
+
AI->>AI: Разрабатывает решение
|
|
553
|
+
AI->>GH: Создаёт черновой PR
|
|
554
|
+
|
|
555
|
+
Note over H,GH: Точка принятия решения человеком
|
|
556
|
+
GH->>H: Уведомляет о создании PR
|
|
557
|
+
H->>GH: Проверяет PR
|
|
558
|
+
|
|
559
|
+
alt Одобрить и влить
|
|
560
|
+
H->>GH: Вливает PR
|
|
561
|
+
GH->>HM: PR влит
|
|
562
|
+
else Запросить изменения
|
|
563
|
+
H->>GH: Добавляет комментарии
|
|
564
|
+
Note over H,GH: Дополнительный ввод от человека
|
|
565
|
+
GH->>HM: Комментарии добавлены
|
|
566
|
+
HM->>AI: Обрабатывает обратную связь
|
|
567
|
+
AI->>GH: Обновляет PR
|
|
568
|
+
else Закрыть PR
|
|
569
|
+
H->>GH: Закрывает PR
|
|
570
|
+
GH->>HM: PR закрыт
|
|
571
|
+
end
|
|
572
|
+
```
|
|
573
|
+
|
|
574
|
+
#### Режим 2: Pull Request → Комментарии
|
|
575
|
+
|
|
576
|
+
```mermaid
|
|
577
|
+
sequenceDiagram
|
|
578
|
+
participant H as Человек
|
|
579
|
+
participant GH as GitHub
|
|
580
|
+
participant AI as Агент ИИ
|
|
581
|
+
participant HM as Hive Mind
|
|
582
|
+
|
|
583
|
+
Note over GH: Существующий PR
|
|
584
|
+
H->>GH: Добавляет комментарий
|
|
585
|
+
Note over H,GH: Основной ввод от человека
|
|
586
|
+
|
|
587
|
+
GH->>HM: Новый комментарий доступен
|
|
588
|
+
HM->>AI: Обрабатывает комментарий
|
|
589
|
+
AI->>GH: Анализирует обратную связь
|
|
590
|
+
AI->>AI: Обновляет решение
|
|
591
|
+
AI->>GH: Отправляет изменения
|
|
592
|
+
|
|
593
|
+
Note over H,GH: Точка принятия решения человеком
|
|
594
|
+
GH->>H: Уведомляет об изменениях
|
|
595
|
+
H->>GH: Проверяет обновления
|
|
596
|
+
|
|
597
|
+
alt Одобрить и влить
|
|
598
|
+
H->>GH: Вливает PR
|
|
599
|
+
GH->>HM: PR влит
|
|
600
|
+
else Нужно больше изменений
|
|
601
|
+
H->>GH: Добавляет ещё комментарии
|
|
602
|
+
Note over H,GH: Продолжение ввода от человека
|
|
603
|
+
GH->>HM: Комментарии добавлены
|
|
604
|
+
else Закрыть PR
|
|
605
|
+
H->>GH: Закрывает PR
|
|
606
|
+
GH->>HM: PR закрыт
|
|
607
|
+
end
|
|
608
|
+
```
|
|
609
|
+
|
|
610
|
+
📖 **Исчерпывающую документацию по потокам данных, включая точки интеграции обратной связи от людей, см. в [docs/flow.ru.md](./docs/flow.ru.md)**
|
|
611
|
+
|
|
612
|
+
## 📊 Примеры использования
|
|
613
|
+
|
|
614
|
+
### Автоматическое решение задач
|
|
615
|
+
|
|
616
|
+
```bash
|
|
617
|
+
# Solve issue (automatically forks if no write access)
|
|
618
|
+
solve https://github.com/owner/repo/issues/123 --model opus
|
|
619
|
+
|
|
620
|
+
# Manual fork and solve issue (works for both public and private repos)
|
|
621
|
+
solve https://github.com/owner/repo/issues/123 --fork --model opus
|
|
622
|
+
|
|
623
|
+
# Continue work on existing PR
|
|
624
|
+
solve https://github.com/owner/repo/pull/456 --verbose
|
|
625
|
+
|
|
626
|
+
# Solve with detailed logging and solution attachment
|
|
627
|
+
solve https://github.com/owner/repo/issues/123 --verbose --attach-logs
|
|
628
|
+
|
|
629
|
+
# Dry run to see what would happen
|
|
630
|
+
solve https://github.com/owner/repo/issues/123 --dry-run
|
|
631
|
+
```
|
|
632
|
+
|
|
633
|
+
### Оркестрация нескольких репозиториев
|
|
634
|
+
|
|
635
|
+
```bash
|
|
636
|
+
# Monitor single repository with specific label
|
|
637
|
+
hive https://github.com/owner/repo --monitor-tag "bug" --concurrency 4
|
|
638
|
+
|
|
639
|
+
# Monitor all issues in an organization
|
|
640
|
+
hive https://github.com/microsoft --all-issues --max-issues 20 --once
|
|
641
|
+
|
|
642
|
+
# Monitor user repositories with high concurrency
|
|
643
|
+
hive https://github.com/username --all-issues --concurrency 8 --interval 120
|
|
644
|
+
|
|
645
|
+
# Skip issues that already have PRs
|
|
646
|
+
hive https://github.com/org/repo --skip-issues-with-prs --verbose
|
|
647
|
+
|
|
648
|
+
# Auto-cleanup temporary files
|
|
649
|
+
hive https://github.com/org/repo --auto-cleanup --concurrency 5
|
|
650
|
+
```
|
|
651
|
+
|
|
652
|
+
### Управление сессиями
|
|
653
|
+
|
|
654
|
+
```bash
|
|
655
|
+
# Resume when Claude hits limit
|
|
656
|
+
solve https://github.com/owner/repo/issues/123 --resume 657e6db1-6eb3-4a8d
|
|
657
|
+
|
|
658
|
+
# Continue session interactively in Claude Code
|
|
659
|
+
(cd /tmp/gh-issue-solver-123456789 && claude --resume session-id)
|
|
660
|
+
```
|
|
661
|
+
|
|
662
|
+
## 🔍 Мониторинг и логирование
|
|
663
|
+
|
|
664
|
+
Найдите команды возобновления в логах:
|
|
665
|
+
|
|
666
|
+
```bash
|
|
667
|
+
grep -E '\(cd /tmp/gh-issue-solver-[0-9]+ && claude --resume [0-9a-f-]{36}\)' hive-*.log
|
|
668
|
+
```
|
|
669
|
+
|
|
670
|
+
## 🔧 Конфигурация
|
|
671
|
+
|
|
672
|
+
**Аутентификация:**
|
|
673
|
+
|
|
674
|
+
- `gh auth login` — аутентификация через GitHub CLI
|
|
675
|
+
- `claude-profiles` — миграция профиля аутентификации Claude на сервер
|
|
676
|
+
|
|
677
|
+
**Интеграция с OpenRouter:**
|
|
678
|
+
|
|
679
|
+
Используйте OpenRouter для доступа к 500+ моделям ИИ от 60+ провайдеров с одним API-ключом. См. [docs/OPENROUTER.ru.md](./docs/OPENROUTER.ru.md) для инструкций по настройке как для Claude Code CLI, так и для @link-assistant/agent.
|
|
680
|
+
|
|
681
|
+
**Переменные окружения и дополнительные параметры:**
|
|
682
|
+
|
|
683
|
+
Для исчерпывающей конфигурации, включая переменные окружения, тайм-ауты, лимиты повторных попыток, настройки Telegram-бота, интеграцию с YouTrack и все параметры CLI, см. [docs/CONFIGURATION.ru.md](./docs/CONFIGURATION.ru.md).
|
|
684
|
+
|
|
685
|
+
## 🐛 Сообщение об ошибках
|
|
686
|
+
|
|
687
|
+
### Ошибки Hive Mind
|
|
688
|
+
|
|
689
|
+
Если вы столкнулись с проблемами в **Hive Mind** (этом проекте), пожалуйста, сообщите о них на странице GitHub Issues:
|
|
690
|
+
|
|
691
|
+
- **Репозиторий**: https://github.com/link-assistant/hive-mind
|
|
692
|
+
- **Задачи**: https://github.com/link-assistant/hive-mind/issues
|
|
693
|
+
|
|
694
|
+
### Ошибки Claude Code CLI
|
|
695
|
+
|
|
696
|
+
Если вы столкнулись с проблемами в самом **Claude Code CLI** (например, ошибки команды `claude`, проблемы установки или ошибки CLI), пожалуйста, сообщите о них в официальный репозиторий Claude Code:
|
|
697
|
+
|
|
698
|
+
- **Репозиторий**: https://github.com/anthropics/claude-code
|
|
699
|
+
- **Задачи**: https://github.com/anthropics/claude-code/issues
|
|
700
|
+
|
|
701
|
+
## 🛡️ Контроль размера файлов
|
|
702
|
+
|
|
703
|
+
Все файлы документации автоматически проверяются:
|
|
704
|
+
|
|
705
|
+
```bash
|
|
706
|
+
find docs/ -name "*.md" -exec wc -l {} + | awk '$1 > 1000 {print "ERROR: " $2 " has " $1 " lines (max 1000)"}'
|
|
707
|
+
```
|
|
708
|
+
|
|
709
|
+
## Диагностика сервера
|
|
710
|
+
|
|
711
|
+
Определите screen-сессии, являющиеся родительскими для процессов, потребляющих ресурсы
|
|
712
|
+
|
|
713
|
+
```bash
|
|
714
|
+
TARGETS="62220 65988 63094 66606 1028071 4127023"
|
|
715
|
+
|
|
716
|
+
# build screen PID -> session name map
|
|
717
|
+
declare -A NAME
|
|
718
|
+
while read -r id; do spid=${id%%.*}; NAME[$spid]="$id"; done \
|
|
719
|
+
< <(screen -ls | awk '/(Detached|Attached)/{print $1}')
|
|
720
|
+
|
|
721
|
+
# check each PID's environment for STY and map back to session
|
|
722
|
+
for p in $TARGETS; do
|
|
723
|
+
sty=$(tr '\0' '\n' < /proc/$p/environ 2>/dev/null | awk -F= '$1=="STY"{print $2}')
|
|
724
|
+
if [ -n "$sty" ]; then
|
|
725
|
+
spid=${sty%%.*}
|
|
726
|
+
echo "$p -> ${NAME[$spid]:-$sty}"
|
|
727
|
+
else
|
|
728
|
+
echo "$p -> (no STY; not from screen or env cleared / double-forked)"
|
|
729
|
+
fi
|
|
730
|
+
done
|
|
731
|
+
```
|
|
732
|
+
|
|
733
|
+
Показать подробную информацию о процессе
|
|
734
|
+
|
|
735
|
+
```bash
|
|
736
|
+
procinfo() {
|
|
737
|
+
local pid=$1
|
|
738
|
+
if [ -z "$pid" ]; then
|
|
739
|
+
echo "Usage: procinfo <pid>"
|
|
740
|
+
return 1
|
|
741
|
+
fi
|
|
742
|
+
if [ ! -d "/proc/$pid" ]; then
|
|
743
|
+
echo "Process $pid not found."
|
|
744
|
+
return 1
|
|
745
|
+
fi
|
|
746
|
+
|
|
747
|
+
echo "=== Process $pid ==="
|
|
748
|
+
# Basic process info
|
|
749
|
+
ps -p "$pid" -o user=,uid=,pid=,ppid=,c=,stime=,etime=,tty=,time=,cmd=
|
|
750
|
+
|
|
751
|
+
echo
|
|
752
|
+
# Working directory
|
|
753
|
+
echo "CWD: $(readlink -f /proc/$pid/cwd 2>/dev/null)"
|
|
754
|
+
|
|
755
|
+
# Executable path
|
|
756
|
+
echo "EXE: $(readlink -f /proc/$pid/exe 2>/dev/null)"
|
|
757
|
+
|
|
758
|
+
# Root directory of the process
|
|
759
|
+
echo "ROOT: $(readlink -f /proc/$pid/root 2>/dev/null)"
|
|
760
|
+
|
|
761
|
+
# Command line (full, raw)
|
|
762
|
+
echo "CMDLINE:"
|
|
763
|
+
tr '\0' ' ' < /proc/$pid/cmdline 2>/dev/null
|
|
764
|
+
echo
|
|
765
|
+
|
|
766
|
+
# Environment variables
|
|
767
|
+
echo
|
|
768
|
+
echo "ENVIRONMENT (key=value):"
|
|
769
|
+
tr '\0' '\n' < /proc/$pid/environ 2>/dev/null | head -n 20
|
|
770
|
+
|
|
771
|
+
# Open files (first few)
|
|
772
|
+
echo
|
|
773
|
+
echo "OPEN FILES:"
|
|
774
|
+
ls -l /proc/$pid/fd 2>/dev/null | head -n 10
|
|
775
|
+
|
|
776
|
+
# Child processes
|
|
777
|
+
echo
|
|
778
|
+
echo "CHILDREN:"
|
|
779
|
+
ps --ppid "$pid" -o pid=,cmd= 2>/dev/null
|
|
780
|
+
}
|
|
781
|
+
procinfo 62220
|
|
782
|
+
```
|
|
783
|
+
|
|
784
|
+
## Обслуживание
|
|
785
|
+
|
|
786
|
+
### Войти в последнюю screen-сессию
|
|
787
|
+
|
|
788
|
+
```bash
|
|
789
|
+
s=$(screen -ls | awk '/Detached/ {print $1; exit}'); echo "Entering $s"; screen -r "$s"; echo "Left $s";
|
|
790
|
+
```
|
|
791
|
+
|
|
792
|
+
### Войти в старейшую screen-сессию
|
|
793
|
+
|
|
794
|
+
```bash
|
|
795
|
+
s=$(screen -ls | awk '/Detached/ {last=$1} END{print last}'); echo "Entering $s"; screen -r "$s"; echo "Left $s";
|
|
796
|
+
```
|
|
797
|
+
|
|
798
|
+
### Перезагрузить сервер.
|
|
799
|
+
|
|
800
|
+
```bash
|
|
801
|
+
sudo reboot
|
|
802
|
+
```
|
|
803
|
+
|
|
804
|
+
Это удалит все зависшие неиспользуемые процессы и screen-сессии, что освободит ОЗУ и снизит нагрузку на CPU. Перезагрузка также может очистить все временные файлы, поэтому следующий шаг может не дать результата, если перезагрузка уже была выполнена.
|
|
805
|
+
|
|
806
|
+
### Очистить дисковое пространство.
|
|
807
|
+
|
|
808
|
+
```bash
|
|
809
|
+
df -h
|
|
810
|
+
|
|
811
|
+
rm -rf /tmp
|
|
812
|
+
|
|
813
|
+
df -h
|
|
814
|
+
```
|
|
815
|
+
|
|
816
|
+
Эти команды следует выполнять от имени пользователя `hive`. Если вы случайно удалили папку `/tmp` под пользователем `root`, восстановите её следующим образом:
|
|
817
|
+
|
|
818
|
+
```bash
|
|
819
|
+
sudo mkdir -p /tmp
|
|
820
|
+
sudo chown root:root /tmp
|
|
821
|
+
sudo chmod 1777 /tmp
|
|
822
|
+
```
|
|
823
|
+
|
|
824
|
+
### Закрыть все screen-сессии для освобождения ОЗУ
|
|
825
|
+
|
|
826
|
+
```bash
|
|
827
|
+
# close all (Attached or Detached) sessions
|
|
828
|
+
screen -ls | awk '/(Detached|Attached)/{print $1}' \
|
|
829
|
+
| while read s; do screen -S "$s" -X quit; done
|
|
830
|
+
|
|
831
|
+
# remove any zombie sockets
|
|
832
|
+
screen -wipe
|
|
833
|
+
|
|
834
|
+
# verify
|
|
835
|
+
screen -ls
|
|
836
|
+
```
|
|
837
|
+
|
|
838
|
+
### Top с полными аргументами каждой команды
|
|
839
|
+
|
|
840
|
+
```bash
|
|
841
|
+
top -c
|
|
842
|
+
```
|
|
843
|
+
|
|
844
|
+
### Показать полное дерево процессов
|
|
845
|
+
|
|
846
|
+
```bash
|
|
847
|
+
ps -eo pid,ppid,user,args --forest
|
|
848
|
+
```
|
|
849
|
+
|
|
850
|
+
или
|
|
851
|
+
|
|
852
|
+
```bash
|
|
853
|
+
ps axjf
|
|
854
|
+
```
|
|
855
|
+
|
|
856
|
+
### Завершить все команды, порождённые конкретной задачей
|
|
857
|
+
|
|
858
|
+
```bash
|
|
859
|
+
pkill -f gh-issue-solver-1773073065743
|
|
860
|
+
```
|
|
861
|
+
|
|
862
|
+
### Завершить все headless-браузеры, порождённые ms-playwright
|
|
863
|
+
|
|
864
|
+
```bash
|
|
865
|
+
pkill -f ms-playwright/chromium_headless_shell-1200
|
|
866
|
+
```
|
|
867
|
+
|
|
868
|
+
Это можно сделать, но не рекомендуется, так как перезагрузка даёт лучший эффект.
|
|
869
|
+
|
|
870
|
+
## 📄 Лицензия
|
|
871
|
+
|
|
872
|
+
Лицензия Unlicense — см. [LICENSE](./LICENSE)
|
|
873
|
+
|
|
874
|
+
## 🤖 Участие в разработке
|
|
875
|
+
|
|
876
|
+
Этот проект использует разработку на основе ИИ. См. [CONTRIBUTING.ru.md](./docs/CONTRIBUTING.ru.md) для руководства по сотрудничеству людей и ИИ.
|