@link-assistant/hive-mind 1.72.1 → 1.72.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 +14 -0
- package/package.json +2 -1
- package/src/i18n.lib.mjs +35 -32
- package/src/locales/en.lino +878 -310
- package/src/locales/hi.lino +878 -310
- package/src/locales/ru.lino +878 -310
- package/src/locales/zh.lino +878 -310
- package/src/solve.results.lib.mjs +3 -2
- package/src/tool-comments.lib.mjs +15 -5
package/src/locales/ru.lino
CHANGED
|
@@ -1,312 +1,880 @@
|
|
|
1
1
|
ru
|
|
2
|
-
error
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
error
|
|
3
|
+
label "Ошибка"
|
|
4
|
+
invalid
|
|
5
|
+
github
|
|
6
|
+
url
|
|
7
|
+
label "Ошибка: Неверный формат URL GitHub"
|
|
8
|
+
monitoring "Ошибка: Неверный URL GitHub для мониторинга"
|
|
9
|
+
solve "Ошибка: Неверный URL GitHub для команды solve"
|
|
10
|
+
url
|
|
11
|
+
type "Ошибка: Неверный формат URL GitHub"
|
|
12
|
+
language "Неверный язык '{{value}}'. Поддерживаются: {{supported}}"
|
|
13
|
+
missing
|
|
14
|
+
required
|
|
15
|
+
url "Ошибка: Отсутствует обязательный URL проблемы или запроса на слияние GitHub"
|
|
16
|
+
unable
|
|
17
|
+
determine
|
|
18
|
+
version "Ошибка: Не удается определить версию"
|
|
19
|
+
url
|
|
20
|
+
type
|
|
21
|
+
not
|
|
22
|
+
supported "Тип URL '{{type}}' не поддерживается"
|
|
23
|
+
failed
|
|
24
|
+
to
|
|
25
|
+
get
|
|
26
|
+
current
|
|
27
|
+
user "Ошибка: Не удалось получить текущего пользователя"
|
|
28
|
+
branch "Не удалось получить текущую ветку"
|
|
29
|
+
default
|
|
30
|
+
branch "Не удалось получить имя ветки по умолчанию"
|
|
31
|
+
initialize
|
|
32
|
+
repository "Ошибка: Не удалось инициализировать репозиторий"
|
|
33
|
+
create
|
|
34
|
+
fork "Не удалось создать форк после всех попыток"
|
|
35
|
+
add
|
|
36
|
+
upstream
|
|
37
|
+
remote "Не удалось добавить удалённый репозиторий upstream"
|
|
38
|
+
pr
|
|
39
|
+
fork
|
|
40
|
+
remote "Не удалось добавить удалённый репозиторий pr-fork"
|
|
41
|
+
checkout "Не удалось переключиться на {{branch}}"
|
|
42
|
+
sync "Не удалось синхронизировать {{branch}} с upstream"
|
|
43
|
+
fetch
|
|
44
|
+
upstream "Не удалось получить данные из upstream"
|
|
45
|
+
from
|
|
46
|
+
pr
|
|
47
|
+
fork "Не удалось получить данные из pr-fork"
|
|
48
|
+
fork
|
|
49
|
+
not
|
|
50
|
+
accessible "Форк существует, но недоступен после нескольких попыток"
|
|
51
|
+
pr
|
|
52
|
+
does
|
|
53
|
+
not
|
|
54
|
+
exist "Ошибка: PR #{{prNumber}} не существует в {{owner}}/{{repo}}"
|
|
55
|
+
youtrack
|
|
56
|
+
url
|
|
57
|
+
detected
|
|
58
|
+
no
|
|
59
|
+
config "Ошибка: Обнаружен URL YouTrack, но конфигурация YouTrack не найдена"
|
|
60
|
+
telegram
|
|
61
|
+
bot
|
|
62
|
+
token
|
|
63
|
+
not
|
|
64
|
+
set "Ошибка: Переменная окружения TELEGRAM_BOT_TOKEN или опция --token не установлена"
|
|
65
|
+
success
|
|
66
|
+
label "Успешно"
|
|
67
|
+
readme
|
|
68
|
+
created "README.md успешно создан"
|
|
69
|
+
process
|
|
70
|
+
completed "Процесс завершён"
|
|
71
|
+
error
|
|
72
|
+
reported
|
|
73
|
+
to
|
|
74
|
+
sentry "Ошибка успешно отправлена в Sentry"
|
|
75
|
+
language
|
|
76
|
+
set "Язык установлен: {{language}}"
|
|
77
|
+
warning
|
|
78
|
+
label "Предупреждение"
|
|
79
|
+
session
|
|
80
|
+
log
|
|
81
|
+
not
|
|
82
|
+
found "Предупреждение: Журнал сеанса для {{session}} не найден, но продолжаем попытку возобновления"
|
|
83
|
+
failed
|
|
84
|
+
to
|
|
85
|
+
create
|
|
86
|
+
readme "Не удалось: Не удалось создать README.md"
|
|
87
|
+
fetch
|
|
88
|
+
branches "Предупреждение: Не удалось получить ветки из удалённого репозитория"
|
|
89
|
+
could
|
|
90
|
+
not
|
|
91
|
+
determine
|
|
92
|
+
root
|
|
93
|
+
repository "Не удалось определить корневой репозиторий"
|
|
94
|
+
token
|
|
95
|
+
scopes "Предупреждение: Не удалось определить области токена из статуса аутентификации"
|
|
96
|
+
check
|
|
97
|
+
fork
|
|
98
|
+
status "Предупреждение: Не удалось проверить статус форка: {{message}}"
|
|
99
|
+
github
|
|
100
|
+
permissions "Предупреждение: Не удалось проверить разрешения GitHub: {{message}}"
|
|
101
|
+
convert
|
|
102
|
+
pr
|
|
103
|
+
draft
|
|
104
|
+
status "Предупреждение: Не удалось проверить/преобразовать статус черновика PR"
|
|
105
|
+
search
|
|
106
|
+
for
|
|
107
|
+
existing
|
|
108
|
+
prs "Предупреждение: Не удалось найти существующие PR: {{message}}"
|
|
109
|
+
get
|
|
110
|
+
current
|
|
111
|
+
user "Предупреждение: Не удалось получить текущего пользователя GitHub"
|
|
112
|
+
convert
|
|
113
|
+
pr
|
|
114
|
+
to
|
|
115
|
+
draft "Предупреждение: Не удалось преобразовать PR в черновик"
|
|
116
|
+
ready
|
|
117
|
+
label "Предупреждение: Не удалось преобразовать PR в готовый"
|
|
118
|
+
status "Предупреждение: Не удалось преобразовать статус PR в готовый"
|
|
119
|
+
post
|
|
120
|
+
work
|
|
121
|
+
start
|
|
122
|
+
comment "Предупреждение: Не удалось опубликовать комментарий о начале работы"
|
|
123
|
+
end
|
|
124
|
+
comment "Предупреждение: Не удалось опубликовать комментарий о завершении работы"
|
|
125
|
+
assign
|
|
126
|
+
user "Не удалось назначить пользователя"
|
|
127
|
+
no
|
|
128
|
+
linked
|
|
129
|
+
issue
|
|
130
|
+
found "Предупреждение: Связанная проблема не найдена в теле PR"
|
|
131
|
+
error
|
|
132
|
+
during
|
|
133
|
+
auto
|
|
134
|
+
pr
|
|
135
|
+
creation "Предупреждение: Ошибка при автоматическом создании PR: {{message}}"
|
|
136
|
+
pr
|
|
137
|
+
created
|
|
138
|
+
but
|
|
139
|
+
no
|
|
140
|
+
url "Предупреждение: PR создан, но URL не возвращён"
|
|
5
141
|
failed "Не удалось"
|
|
6
|
-
info
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
telegram
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
142
|
+
info
|
|
143
|
+
label "Информация"
|
|
144
|
+
expected
|
|
145
|
+
github
|
|
146
|
+
url
|
|
147
|
+
format "Ожидается: https://github.com/owner или https://github.com/owner/repo"
|
|
148
|
+
you
|
|
149
|
+
can
|
|
150
|
+
use
|
|
151
|
+
formats "Вы можете использовать любой из этих форматов:"
|
|
152
|
+
format
|
|
153
|
+
https
|
|
154
|
+
owner
|
|
155
|
+
label "- https://github.com/owner"
|
|
156
|
+
repo "- https://github.com/owner/repo"
|
|
157
|
+
http
|
|
158
|
+
owner "- http://github.com/owner (будет преобразовано в https)"
|
|
159
|
+
github
|
|
160
|
+
owner "- github.com/owner (будет добавлено https://)"
|
|
161
|
+
owner
|
|
162
|
+
label "- owner (будет преобразовано в https://github.com/owner)"
|
|
163
|
+
repo "- owner/repo (будет преобразовано в https://github.com/owner/repo)"
|
|
164
|
+
full
|
|
165
|
+
log
|
|
166
|
+
file "Полный файл журнала: {{path}}"
|
|
167
|
+
process
|
|
168
|
+
exited
|
|
169
|
+
with
|
|
170
|
+
code "Процесс завершился с кодом {{code}}"
|
|
171
|
+
current
|
|
172
|
+
configuration "Текущая конфигурация:"
|
|
173
|
+
process
|
|
174
|
+
using
|
|
175
|
+
repository
|
|
176
|
+
fallback "Использование резервного метода репозиторий-за-репозиторием для {{scope}}: {{owner}}"
|
|
177
|
+
fetching
|
|
178
|
+
repository
|
|
179
|
+
list "Получение списка репозиториев..."
|
|
180
|
+
command "Команда: {{command}}"
|
|
181
|
+
check
|
|
182
|
+
number "Проверка #{{iteration}}:"
|
|
183
|
+
time
|
|
184
|
+
current "Текущее время: {{time}}"
|
|
185
|
+
limits
|
|
186
|
+
additional
|
|
187
|
+
codex
|
|
188
|
+
limits "Дополнительные лимиты Codex"
|
|
189
|
+
balance "баланс"
|
|
190
|
+
claude
|
|
191
|
+
5
|
|
192
|
+
hour
|
|
193
|
+
session "5-часовой сеанс Claude"
|
|
194
|
+
limits "Лимиты Claude"
|
|
195
|
+
codex
|
|
196
|
+
5
|
|
197
|
+
hour
|
|
198
|
+
session "5-часовой сеанс Codex"
|
|
199
|
+
credits "Кредиты Codex"
|
|
200
|
+
limits "Лимиты Codex"
|
|
201
|
+
cpu
|
|
202
|
+
label "CPU"
|
|
203
|
+
cores
|
|
204
|
+
used "используемых ядер CPU"
|
|
205
|
+
current
|
|
206
|
+
time "Текущее время"
|
|
207
|
+
week
|
|
208
|
+
all
|
|
209
|
+
models "Текущая неделя (все модели)"
|
|
210
|
+
sonnet
|
|
211
|
+
only "Текущая неделя (только Sonnet)"
|
|
212
|
+
disabled
|
|
213
|
+
by
|
|
214
|
+
admin "`--show-limits` отключён администратором бота."
|
|
215
|
+
disk
|
|
216
|
+
space "Дисковое пространство"
|
|
217
|
+
duration
|
|
218
|
+
day
|
|
219
|
+
short "д"
|
|
220
|
+
hour
|
|
221
|
+
short "ч"
|
|
222
|
+
minute
|
|
223
|
+
short "мин"
|
|
224
|
+
second
|
|
225
|
+
short "с"
|
|
226
|
+
end "Конец"
|
|
227
|
+
five
|
|
228
|
+
hour
|
|
229
|
+
session "5-часовой сеанс"
|
|
230
|
+
min
|
|
231
|
+
load
|
|
232
|
+
avg "средняя нагрузка за 5 мин"
|
|
233
|
+
github
|
|
234
|
+
api "GitHub API"
|
|
235
|
+
limits
|
|
236
|
+
at
|
|
237
|
+
end "Лимиты в конце"
|
|
238
|
+
start "Лимиты в начале"
|
|
239
|
+
change "Изменение лимитов"
|
|
240
|
+
na "Н/Д"
|
|
241
|
+
note
|
|
242
|
+
delta
|
|
243
|
+
approx "Примечание: дельта приблизительная (параллельные сеансы используют общий бюджет)."
|
|
244
|
+
passed "прошло"
|
|
245
|
+
plan "План"
|
|
246
|
+
ram "RAM"
|
|
247
|
+
reason
|
|
248
|
+
claude
|
|
249
|
+
5
|
|
250
|
+
hour
|
|
251
|
+
session "Лимит 5-часового сеанса Claude {{currentPercent}}% (порог: {{thresholdPercent}})"
|
|
252
|
+
running "Процесс Claude уже выполняется"
|
|
253
|
+
weekly "Недельный лимит Claude {{currentPercent}}% (порог: {{thresholdPercent}})"
|
|
254
|
+
codex
|
|
255
|
+
5
|
|
256
|
+
hour
|
|
257
|
+
session "Лимит 5-часового сеанса Codex {{currentPercent}}% (порог: {{thresholdPercent}})"
|
|
258
|
+
running "Процесс Codex уже выполняется"
|
|
259
|
+
weekly "Недельный лимит Codex {{currentPercent}}% (порог: {{thresholdPercent}})"
|
|
260
|
+
cpu
|
|
261
|
+
usage "Использование CPU {{currentPercent}}% (порог: {{thresholdPercent}})"
|
|
262
|
+
disk
|
|
263
|
+
usage "Использование диска {{currentPercent}}% (порог: {{thresholdPercent}})"
|
|
264
|
+
gemini
|
|
265
|
+
running "Процесс Gemini CLI уже выполняется"
|
|
266
|
+
github
|
|
267
|
+
api "Использование GitHub API {{currentPercent}}% (порог: {{thresholdPercent}})"
|
|
268
|
+
min
|
|
269
|
+
interval "Минимальный интервал между командами ещё не прошёл"
|
|
270
|
+
qwen
|
|
271
|
+
running "Процесс Qwen Code уже выполняется"
|
|
272
|
+
ram
|
|
273
|
+
usage "Использование RAM {{currentPercent}}% (порог: {{thresholdPercent}})"
|
|
274
|
+
threshold
|
|
275
|
+
exceeded "Превышен порог {{metric}}"
|
|
276
|
+
remaining "осталось {{duration}}"
|
|
277
|
+
requests "запросов"
|
|
278
|
+
resets
|
|
279
|
+
at "Сброс {{time}}"
|
|
280
|
+
in "Сброс через {{duration}}"
|
|
281
|
+
resource
|
|
282
|
+
limit
|
|
283
|
+
exceeded "Превышен лимит ресурсов"
|
|
284
|
+
solve
|
|
285
|
+
queue
|
|
286
|
+
status "Статус очереди solve"
|
|
287
|
+
queue
|
|
288
|
+
completed "Завершено"
|
|
289
|
+
failed "С ошибкой"
|
|
290
|
+
and
|
|
291
|
+
more "и ещё {{count}}"
|
|
292
|
+
pending "ожидает"
|
|
293
|
+
processing "выполняется"
|
|
294
|
+
processes "процессов: {{count}}"
|
|
295
|
+
status
|
|
296
|
+
cancelled "отменено"
|
|
297
|
+
failed "ошибка"
|
|
298
|
+
queued "в очереди"
|
|
299
|
+
started "запущено"
|
|
300
|
+
starting "запускается"
|
|
301
|
+
waiting "ожидание"
|
|
302
|
+
waiting
|
|
303
|
+
current
|
|
304
|
+
command "ожидание текущей команды"
|
|
305
|
+
in
|
|
306
|
+
queue "Ожидание в очереди"
|
|
307
|
+
queues "Очереди"
|
|
308
|
+
seven
|
|
309
|
+
day
|
|
310
|
+
all
|
|
311
|
+
models "7 дней, все модели"
|
|
312
|
+
sonnet
|
|
313
|
+
only "7 дней, только Sonnet"
|
|
314
|
+
session "сеанс"
|
|
315
|
+
start "Начало"
|
|
316
|
+
subscription
|
|
317
|
+
ends
|
|
318
|
+
label "Подписка заканчивается {{time}}"
|
|
319
|
+
in "Подписка заканчивается через {{duration}} ({{time}})"
|
|
320
|
+
status "Подписка: {{status}}"
|
|
321
|
+
trial
|
|
322
|
+
ends
|
|
323
|
+
label "Пробный период заканчивается {{time}}"
|
|
324
|
+
in "Пробный период заканчивается через {{duration}} ({{time}})"
|
|
325
|
+
unavailable "недоступно"
|
|
326
|
+
unlimited "без ограничений"
|
|
327
|
+
used "использовано"
|
|
328
|
+
week "неделя"
|
|
329
|
+
weekly "Неделя"
|
|
330
|
+
telegram
|
|
331
|
+
fetching
|
|
332
|
+
limits "🔄 Получение лимитов использования..."
|
|
333
|
+
gathering
|
|
334
|
+
version "🔄 Сбор информации о версии..."
|
|
335
|
+
usage
|
|
336
|
+
limits
|
|
337
|
+
title "📊 *Лимиты использования*"
|
|
338
|
+
version
|
|
339
|
+
information
|
|
340
|
+
title "🤖 *Информация о версиях*"
|
|
341
|
+
only
|
|
342
|
+
in
|
|
343
|
+
groups "❌ Команда /version работает только в групповых чатах. Добавьте бота в группу и сделайте его администратором."
|
|
344
|
+
formatting
|
|
345
|
+
fallback
|
|
346
|
+
warning "⚠️ Обнаружена ошибка форматирования. Показываю обычный текст."
|
|
347
|
+
limits
|
|
348
|
+
only
|
|
349
|
+
in
|
|
350
|
+
groups "❌ Команда /limits работает только в групповых чатах. Добавьте бота в группу и сделайте его администратором."
|
|
351
|
+
solve
|
|
352
|
+
only
|
|
353
|
+
in
|
|
354
|
+
groups "❌ Команда {{commandDisplay}} работает только в групповых чатах. Добавьте бота в группу и сделайте его администратором."
|
|
355
|
+
queue
|
|
356
|
+
only
|
|
357
|
+
in
|
|
358
|
+
groups "❌ Команда /solve_queue работает только в групповых чатах. Добавьте бота в группу и сделайте его администратором."
|
|
359
|
+
disabled "❌ Команда solve отключена в этом экземпляре бота."
|
|
360
|
+
rejected """
|
|
361
|
+
❌ Команда solve отклонена.
|
|
362
|
+
|
|
363
|
+
{{infoBlock}}
|
|
364
|
+
|
|
365
|
+
🚫 Причина: {{reason}}
|
|
366
|
+
"""
|
|
367
|
+
queued "📋 Команда solve поставлена в очередь (позиция #{{position}} в очереди {{tool}})"
|
|
368
|
+
waiting "⏳ Ожидание (очередь {{tool}} #{{position}})"
|
|
369
|
+
invalid
|
|
370
|
+
url
|
|
371
|
+
help """
|
|
372
|
+
Пример: `/solve https://github.com/owner/repo/issues/123`
|
|
373
|
+
|
|
374
|
+
Или ответьте `/solve` на сообщение со ссылкой GitHub
|
|
375
|
+
"""
|
|
376
|
+
hive
|
|
377
|
+
only
|
|
378
|
+
in
|
|
379
|
+
groups "❌ Команда /hive работает только в групповых чатах. Добавьте бота в группу и сделайте его администратором."
|
|
380
|
+
disabled "❌ Команда /hive отключена в этом экземпляре бота."
|
|
381
|
+
invalid
|
|
382
|
+
url
|
|
383
|
+
help "Пример: `/hive https://github.com/owner/repo`"
|
|
384
|
+
no
|
|
385
|
+
label "❌ Нет"
|
|
386
|
+
github
|
|
387
|
+
link
|
|
388
|
+
in
|
|
389
|
+
reply """
|
|
390
|
+
❌ В сообщении, на которое вы ответили, не найдена ссылка на проблему/PR GitHub.
|
|
391
|
+
|
|
392
|
+
Пример: Ответьте на сообщение со ссылкой на проблему GitHub командой `/solve`
|
|
393
|
+
|
|
394
|
+
Или с опциями: `/solve --model opus`
|
|
395
|
+
"""
|
|
396
|
+
invalid
|
|
397
|
+
options """
|
|
398
|
+
❌ Неверные опции: {{message}}
|
|
399
|
+
|
|
400
|
+
Используйте /help, чтобы увидеть доступные опции
|
|
401
|
+
"""
|
|
402
|
+
isolation "❌ Неверное значение --isolation '{{value}}'. Допустимо: screen, tmux или docker"
|
|
403
|
+
locked
|
|
404
|
+
isolation "❌ Неверное заблокированное значение --isolation '{{value}}'. Допустимо: screen, tmux или docker"
|
|
405
|
+
option
|
|
406
|
+
syntax
|
|
407
|
+
check "Проверьте синтаксис опций."
|
|
408
|
+
url
|
|
409
|
+
status
|
|
410
|
+
active """
|
|
411
|
+
❌ Этот URL имеет статус {{statusText}}.
|
|
412
|
+
|
|
413
|
+
URL: {{url}}
|
|
414
|
+
Статус: {{status}}
|
|
415
|
+
|
|
416
|
+
💡 Используйте /solve_queue для проверки очереди.
|
|
417
|
+
"""
|
|
418
|
+
session
|
|
419
|
+
running """
|
|
420
|
+
❌ Для этого URL уже выполняется рабочий сеанс.
|
|
421
|
+
|
|
422
|
+
URL: {{url}}
|
|
423
|
+
Сеанс: `{{session}}`
|
|
424
|
+
|
|
425
|
+
💡 Дождитесь завершения текущего сеанса или используйте /solve\_stop для отмены.
|
|
426
|
+
"""
|
|
427
|
+
issues
|
|
428
|
+
list
|
|
429
|
+
error """
|
|
430
|
+
URL ведет на список задач, но нужна конкретная задача
|
|
431
|
+
|
|
432
|
+
💡 Как исправить:
|
|
433
|
+
1. Откройте репозиторий: {{url}}
|
|
434
|
+
2. Нажмите на конкретную задачу
|
|
435
|
+
3. Скопируйте URL (он должен заканчиваться на /issues/NUMBER)
|
|
436
|
+
|
|
437
|
+
Пример: `{{example}}`
|
|
438
|
+
"""
|
|
439
|
+
pulls
|
|
440
|
+
list
|
|
441
|
+
error """
|
|
442
|
+
URL ведет на список pull request'ов, но нужен конкретный pull request
|
|
443
|
+
|
|
444
|
+
💡 Как исправить:
|
|
445
|
+
1. Откройте репозиторий: {{url}}
|
|
446
|
+
2. Нажмите на конкретный pull request
|
|
447
|
+
3. Скопируйте URL (он должен заканчиваться на /pull/NUMBER)
|
|
448
|
+
|
|
449
|
+
Пример: `{{example}}`
|
|
450
|
+
"""
|
|
451
|
+
repo
|
|
452
|
+
error """
|
|
453
|
+
URL ведет на репозиторий, но нужен конкретный {{allowedTypes}}
|
|
454
|
+
|
|
455
|
+
💡 Как исправить:
|
|
456
|
+
1. Перейдите: {{url}}/issues
|
|
457
|
+
2. Нажмите на задачу для решения
|
|
458
|
+
3. Используйте полный URL с номером задачи
|
|
459
|
+
|
|
460
|
+
Пример: `{{example}}`
|
|
461
|
+
"""
|
|
462
|
+
must
|
|
463
|
+
be
|
|
464
|
+
type "URL должен быть GitHub {{allowedTypes}} (не {{type}})"
|
|
465
|
+
language
|
|
466
|
+
invalid """
|
|
467
|
+
❌ Неверный язык. Поддерживаются: {{supported}}.
|
|
468
|
+
Использование: /language <код>
|
|
469
|
+
"""
|
|
470
|
+
set "✅ Язык установлен: *{{language}}*."
|
|
471
|
+
current """
|
|
472
|
+
🌐 Текущий язык: *{{language}}*.
|
|
473
|
+
Поддерживаются: {{supported}}.
|
|
474
|
+
Использование: /language <код>
|
|
475
|
+
"""
|
|
476
|
+
yes "✅ Да"
|
|
477
|
+
info
|
|
478
|
+
requested
|
|
479
|
+
by
|
|
480
|
+
label "Запросил"
|
|
481
|
+
issue
|
|
482
|
+
label "Задача"
|
|
483
|
+
pull
|
|
484
|
+
request
|
|
485
|
+
label "Pull request"
|
|
486
|
+
url
|
|
487
|
+
label "URL"
|
|
488
|
+
options
|
|
489
|
+
label "🛠 Опции"
|
|
490
|
+
locked
|
|
491
|
+
options
|
|
492
|
+
label "🔒 Заблокированные опции"
|
|
493
|
+
help
|
|
494
|
+
title "🤖 *Справка SwarmMindBot*"
|
|
495
|
+
status
|
|
496
|
+
stopped "🛑 *Статус бота: ОСТАНОВЛЕН*"
|
|
497
|
+
reason "Причина: {{reason}}"
|
|
498
|
+
stopped "Остановлен: {{stoppedAt}}"
|
|
499
|
+
resume "Используйте /start (только владелец чата), чтобы возобновить работу."
|
|
500
|
+
diagnostic
|
|
501
|
+
information "📋 *Диагностическая информация:*"
|
|
502
|
+
chat
|
|
503
|
+
id "• ID чата: `{{chatId}}`"
|
|
504
|
+
type "• Тип чата: {{chatType}}"
|
|
505
|
+
title "• Название чата: {{chatTitle}}"
|
|
506
|
+
topic
|
|
507
|
+
id "• ID темы: `{{topicId}}`"
|
|
508
|
+
available
|
|
509
|
+
commands "📝 *Доступные команды:*"
|
|
510
|
+
solve
|
|
511
|
+
enabled "*/solve* (алиасы: */do*, */continue*, */claude*, */codex*, */opencode*, */agent*, */gemini*, */qwen*) - Решить задачу GitHub"
|
|
512
|
+
usage "Использование: `/solve <github-url> [options]`"
|
|
513
|
+
example "Пример: `/solve https://github.com/owner/repo/issues/123 --model sonnet`"
|
|
514
|
+
alias
|
|
515
|
+
detail "Алиасы инструментов добавляют `--tool <tool>`: `/codex <github-url>` равно `/solve <github-url> --tool codex`"
|
|
516
|
+
reply "Или ответьте на сообщение со ссылкой GitHub: `/solve`"
|
|
517
|
+
disabled "*/solve* (алиасы: */do*, */continue*, */claude*, */codex*, */opencode*, */agent*, */gemini*, */qwen*) - ❌ Отключено"
|
|
518
|
+
queue "`/solve_queue` - Показать состояние очереди solve"
|
|
519
|
+
locked
|
|
520
|
+
options "🔒 Заблокированные опции: `{{options}}`"
|
|
521
|
+
task
|
|
522
|
+
enabled "*/task* - Создать задачу GitHub из ссылки на репозиторий и текста задачи"
|
|
523
|
+
usage "Использование: `/task <github-repository-url>` с текстом задачи после команды или ответом `/task`"
|
|
524
|
+
example "Пример: `/task https://github.com/owner/repo`, затем текст задачи на следующих строках"
|
|
525
|
+
disabled "*/task* / */split* - ❌ Отключено"
|
|
526
|
+
split
|
|
527
|
+
enabled "*/split* - Разделить задачу GitHub на меньшие задачи"
|
|
528
|
+
usage "Использование: `/split <github-issue-url> [options]` или `/task --split <github-issue-url>`"
|
|
529
|
+
example "Пример: `/split https://github.com/owner/repo/issues/123 --split-count 2`"
|
|
530
|
+
hive
|
|
531
|
+
enabled "*/hive* - Выполнить команду hive"
|
|
532
|
+
usage "Использование: `/hive <github-url> [options]`"
|
|
533
|
+
example "Пример: `/hive https://github.com/owner/repo`"
|
|
534
|
+
disabled "*/hive* - ❌ Отключено"
|
|
535
|
+
limits "*/limits* - Показать лимиты использования"
|
|
536
|
+
version "*/version* - Показать версии бота и среды выполнения"
|
|
537
|
+
language "*/language* `[en|ru|zh|hi]` - Установить или показать предпочитаемый язык ответов (в памяти, для пользователя)"
|
|
538
|
+
accept
|
|
539
|
+
invites "`/accept_invites` - Принять все ожидающие приглашения GitHub"
|
|
540
|
+
merge
|
|
541
|
+
label "*/merge* - Очередь слияния (экспериментально)"
|
|
542
|
+
usage "Использование: `/merge <github-repo-url>`"
|
|
543
|
+
description "Последовательно сливает все PR с меткой 'ready'."
|
|
544
|
+
subscribe "*/subscribe* / */unsubscribe* - 🔔 Получать личную пересылку завершения /solve (экспериментально, #1688)"
|
|
545
|
+
help "*/help* - Показать это справочное сообщение"
|
|
546
|
+
stop
|
|
547
|
+
start "*/stop* / */start* - Остановить или возобновить прием новых задач (только владелец)"
|
|
548
|
+
uuid "*/stop* `<uuid>` - Отправить CTRL+C в изолированный сеанс solve/hive (только владелец). Также работает ответом на сообщение с UUID."
|
|
549
|
+
log "*/log* - Получить лог изолированного сеанса (только владелец). Использование: `/log <uuid>` или ответ `/log`"
|
|
550
|
+
terminal
|
|
551
|
+
watch "*/terminal\\_watch* (псевдоним: */watch*) - Обновлять лог изолированного сеанса вживую (владелец чата или пользователь, запустивший сеанс). Использование: `/terminal_watch <uuid>`, `/watch <uuid>` или ответ одной из этих команд"
|
|
552
|
+
notifications "🔔 *Уведомления о сеансах:* Уведомления о завершении автоматические; используйте /subscribe для личных пересылок."
|
|
553
|
+
isolation
|
|
554
|
+
mode "🔒 *Режим изоляции:* `{{isolationBackend}}` (экспериментально)"
|
|
555
|
+
group
|
|
556
|
+
note "⚠️ *Замечание:* команды /solve, /do, /continue, /claude, /codex, /opencode, /agent, /gemini, /qwen, /task, /split, /hive, /solve\\_queue, /limits, /version, /accept\\_invites, /merge, /stop и /start работают только в групповых чатах. /terminal\\_watch, /watch, /subscribe и /unsubscribe работают в личных и групповых чатах."
|
|
557
|
+
common
|
|
558
|
+
options "🔧 *Общие опции:*"
|
|
559
|
+
model
|
|
560
|
+
option "• `--model <model>` или `-m` - {{modelDescription}}"
|
|
561
|
+
base
|
|
562
|
+
branch
|
|
563
|
+
option "• `--base-branch <branch>` или `-b` - Целевая ветка для PR (по умолчанию ветка репозитория)"
|
|
564
|
+
think
|
|
565
|
+
option "• `--think <level>` - уровень размышления (off/low/medium/high/xhigh/max) | `--thinking-budget <num>` - бюджет токенов (0-63999)"
|
|
566
|
+
verbose
|
|
567
|
+
option "• `--verbose` или `-v` - подробный вывод | `--attach-logs` - прикрепить логи к PR"
|
|
568
|
+
show
|
|
569
|
+
limits
|
|
570
|
+
option "• `--show-limits` - Экспериментально: добавить использование Claude/Codex в начале, в конце и дельту (#594)"
|
|
571
|
+
tip "💡 *Подсказка:* Доступно больше опций. Полный список смотрите в документации."
|
|
572
|
+
restricted
|
|
573
|
+
mode "🔒 *Ограниченный режим:* Авторизован: {{authorized}}"
|
|
574
|
+
allow
|
|
575
|
+
topic
|
|
576
|
+
hint "💡 Чтобы разрешить эту тему: `{{allowTopicHint}}`"
|
|
577
|
+
troubleshooting
|
|
578
|
+
header "🔧 *Диагностика:*"
|
|
579
|
+
body """
|
|
580
|
+
Если бот не получает сообщения:
|
|
581
|
+
1. Проверьте privacy mode в @BotFather
|
|
582
|
+
• Отправьте `/setprivacy` в @BotFather
|
|
583
|
+
• Выберите 'Disable' для вашего бота
|
|
584
|
+
• Удалите бота из группы и добавьте снова
|
|
585
|
+
2. Или сделайте бота администратором группы
|
|
586
|
+
3. Перезапустите бота с флагом `--verbose` для диагностики
|
|
587
|
+
"""
|
|
588
|
+
waiting
|
|
589
|
+
label "⏳ Ожидание"
|
|
590
|
+
reason
|
|
591
|
+
label "Причина"
|
|
592
|
+
did
|
|
593
|
+
you
|
|
594
|
+
mean "💡 Вы имели в виду: `{{suggestion}}`"
|
|
595
|
+
missing
|
|
596
|
+
github
|
|
597
|
+
url "Не указан GitHub URL. Использование: /{{commandName}} <github-url> [options]"
|
|
598
|
+
first
|
|
599
|
+
arg
|
|
600
|
+
must
|
|
601
|
+
be
|
|
602
|
+
github
|
|
603
|
+
url "Первый аргумент должен быть GitHub URL"
|
|
604
|
+
work
|
|
605
|
+
session
|
|
606
|
+
starting "🔄 Запуск..."
|
|
607
|
+
executing "⏳ Выполняется..."
|
|
608
|
+
finished "Рабочий сеанс успешно завершен"
|
|
609
|
+
failed "Рабочий сеанс завершился с ошибкой (код выхода: {{exitCode}})"
|
|
610
|
+
duration
|
|
611
|
+
label "Длительность"
|
|
612
|
+
session
|
|
613
|
+
label "Сеанс"
|
|
614
|
+
isolation
|
|
615
|
+
label "Изоляция"
|
|
616
|
+
error
|
|
617
|
+
executing
|
|
618
|
+
command "❌ Ошибка выполнения команды {{commandName}}"
|
|
619
|
+
language
|
|
620
|
+
en "Английский"
|
|
621
|
+
ru "Русский"
|
|
622
|
+
zh "Китайский"
|
|
623
|
+
hi "Хинди"
|
|
624
|
+
version
|
|
625
|
+
ai
|
|
626
|
+
agents "AI-агенты"
|
|
627
|
+
browsers "Браузеры"
|
|
628
|
+
browser
|
|
629
|
+
automation "Автоматизация браузера"
|
|
630
|
+
connected "подключено"
|
|
631
|
+
development
|
|
632
|
+
tools "Инструменты разработки"
|
|
633
|
+
environment "Среда"
|
|
634
|
+
architecture "Архитектура"
|
|
635
|
+
kernel "Ядро"
|
|
636
|
+
not
|
|
637
|
+
connected "не подключено"
|
|
638
|
+
os "ОС"
|
|
639
|
+
platform "Платформа"
|
|
640
|
+
process
|
|
641
|
+
running
|
|
642
|
+
restart
|
|
643
|
+
needed "Запущенный процесс: `{{processVersion}}` (требуется перезапуск)"
|
|
644
|
+
system "Система"
|
|
645
|
+
version "Версия"
|
|
646
|
+
prompt
|
|
647
|
+
user
|
|
648
|
+
issue
|
|
649
|
+
to
|
|
650
|
+
solve "Задача для решения: {{issueUrl}}"
|
|
651
|
+
linked
|
|
652
|
+
to
|
|
653
|
+
pr "Задача для решения: задача, связанная с PR #{{prNumber}}"
|
|
654
|
+
prepared
|
|
655
|
+
branch "Подготовленная ветка: {{branchName}}"
|
|
656
|
+
working
|
|
657
|
+
directory "Подготовленный рабочий каталог: {{tempDir}}"
|
|
658
|
+
tmp
|
|
659
|
+
directory "Подготовленный временный каталог для логов и загрузок: {{workspaceTmpDir}}"
|
|
660
|
+
pull
|
|
661
|
+
request "Подготовленный Pull Request: {{prUrl}}"
|
|
662
|
+
forked
|
|
663
|
+
repository "Ваш форк репозитория: {{forkedRepo}}"
|
|
664
|
+
original
|
|
665
|
+
repository "Исходный репозиторий (upstream): {{owner}}/{{repo}}"
|
|
666
|
+
fork
|
|
667
|
+
actions
|
|
668
|
+
url "GitHub Actions в вашем форке: {{forkActionsUrl}}"
|
|
669
|
+
continue "Продолжай."
|
|
670
|
+
proceed "Приступай."
|
|
671
|
+
system
|
|
672
|
+
intro "Ты ИИ-решатель задач. Когда исследуешь задачи, отдавай предпочтение анализу первопричин. Когда общаешься, опирайся на факты, которые ты сам проверил, либо ссылайся на источники, подтверждающие доказательства, такие как цитированный код или ссылки на документы или веб-страницы. Когда ты не уверен или работаешь на основе предположений, проверяй их сам или задавай уточняющие вопросы."
|
|
673
|
+
workspace
|
|
674
|
+
instructions """
|
|
675
|
+
Временный каталог рабочего пространства.
|
|
676
|
+
- Используй {{workspaceTmpDir}} для всех временных файлов, логов и загрузок.
|
|
677
|
+
- Когда сохраняешь вывод команд в файлы, сохраняй в {{workspaceTmpDir}}/command-output.log.
|
|
678
|
+
- Когда скачиваешь логи CI, сохраняй в {{workspaceTmpDir}}/ci-logs/.
|
|
679
|
+
- Когда сохраняешь diff для проверки, сохраняй в {{workspaceTmpDir}}/diffs/.
|
|
680
|
+
- Когда создаёшь отладочные файлы, сохраняй в {{workspaceTmpDir}}/debug/.
|
|
681
|
+
"""
|
|
682
|
+
general
|
|
683
|
+
guidelines
|
|
684
|
+
header "Общие рекомендации."
|
|
685
|
+
body """
|
|
686
|
+
- Когда выполняешь команды и вывод становится большим, сохраняй логи в файлы для удобного просмотра.
|
|
687
|
+
- Когда запускаешь команды, не задавай таймаут самостоятельно. Дай им работать столько, сколько нужно. Стандартного таймаута в 2 минуты обычно достаточно, и после завершения команды просмотри логи в файле.
|
|
688
|
+
- Когда запускаешь команды sudo, особенно установку пакетов вроде apt-get, yum или npm install, запускай их в фоне, чтобы избежать таймаутов и ошибок прав доступа при необходимости остановить процесс. Используй параметр run_in_background или добавляй & в конце команды.
|
|
689
|
+
"""
|
|
690
|
+
purpose
|
|
691
|
+
subagent " - Когда задача большая и требует обработки многих файлов или папок, используй `general-purpose` суб-агентов, чтобы делегировать работу. Каждый отдельный файл или папка может быть делегирован суб-агенту для более эффективной обработки."
|
|
692
|
+
issue
|
|
693
|
+
reporting " - Когда замечаешь ошибки, баги или мелкие проблемы во время рабочей сессии, не относящиеся к основным требованиям задачи, заводи issue для их отслеживания, если такие ещё не существуют. Issue должна включать воспроизводимые примеры, по возможности минимальный воспроизводимый пример, обходные пути и предложения по исправлению в коде. Для issue в текущем репозитории используй gh issue create --repo {{owner}}/{{repo}} --title \"Заголовок\" --body \"Описание\". Для issue в сторонних GitHub-репозиториях, используемых рабочим репозиторием, используй gh issue create --repo owner/repo --title \"Заголовок\" --body \"Описание\". Когда возможно существование похожих issue, сначала проверь с помощью gh issue list --repo owner/repo --search \"ключевые слова\", чтобы избежать дубликатов. Если похожая issue уже существует, добавь комментарий командой gh issue comment <issue-number> --repo owner/repo --body \"Текст комментария\", описывающий твой случай, включая обезличенные логи (с удалёнными личными или конфиденциальными данными), шаги воспроизведения, минимальный воспроизводимый пример, если это возможно, обходные пути и предложения по исправлению."
|
|
694
|
+
ci
|
|
695
|
+
investigation """
|
|
696
|
+
- Когда CI падает или пользователь сообщает о сбоях, добавляй в свой todo-лист подробный протокол расследования с такими шагами:
|
|
697
|
+
Шаг 1: Перечисли последние запуски с временными метками: gh run list --repo {{owner}}/{{repo}} --branch {{branchName}} --limit 5 --json databaseId,conclusion,createdAt,headSha
|
|
698
|
+
Шаг 2: Убедись, что запуски соответствуют последнему коммиту, проверив временные метки и SHA
|
|
699
|
+
Шаг 3: Для каждого непрошедшего запуска скачай логи, чтобы сохранить их: gh run view {run-id} --repo {{owner}}/{{repo}} --log > ci-logs/{workflow}-{run-id}.log
|
|
700
|
+
Шаг 4: Прочитай каждый скачанный лог-файл инструментом Read, чтобы понять реальные сбои
|
|
701
|
+
Шаг 5: Сообщи о находках с конкретными ошибками и номерами строк из логов
|
|
702
|
+
Это подробное расследование особенно полезно, когда пользователь упоминает падения CI, просит просмотреть логи, ты видишь непрошедшие статусы или финализируешь PR.
|
|
703
|
+
Замечание: Если пользователь говорит "не проходит", а инструменты показывают "проходит", это может означать устаревшие данные — скачай свежие логи и проверь временные метки, чтобы устранить расхождение.
|
|
704
|
+
"""
|
|
705
|
+
examples """
|
|
706
|
+
Расследование CI с использованием временного каталога рабочего пространства.
|
|
707
|
+
- Когда скачиваешь логи запусков CI:
|
|
708
|
+
gh run view RUN_ID --repo {{owner}}/{{repo}} --log > {{workspaceTmpDir}}/ci-logs/run-RUN_ID.log
|
|
709
|
+
- Когда скачиваешь логи неуспешных задач:
|
|
710
|
+
gh run view RUN_ID --repo {{owner}}/{{repo}} --log-failed > {{workspaceTmpDir}}/ci-logs/run-RUN_ID-failed.log
|
|
711
|
+
- Когда перечисляешь запуски CI с подробностями:
|
|
712
|
+
gh run list --repo {{owner}}/{{repo}} --branch {{branchName}} --limit 5 --json databaseId,conclusion,createdAt,headSha > {{workspaceTmpDir}}/ci-logs/recent-runs.json
|
|
713
|
+
- Когда сохраняешь PR diff для проверки:
|
|
714
|
+
gh pr diff {{prNumber}} --repo {{owner}}/{{repo}} > {{workspaceTmpDir}}/diffs/pr-{{prNumber}}.diff
|
|
715
|
+
- Когда сохраняешь вывод команды вместе с stderr:
|
|
716
|
+
npm test 2>&1 | tee {{workspaceTmpDir}}/test-output.log
|
|
717
|
+
- Когда исследуешь детали задачи:
|
|
718
|
+
gh issue view {{issueNumber}} --repo {{owner}}/{{repo}} --json body,comments > {{workspaceTmpDir}}/issue-{{issueNumber}}.json
|
|
719
|
+
"""
|
|
720
|
+
large
|
|
721
|
+
files " - Когда файл с кодом или логом длиннее 1500 строк, читай его кусками по 1500 строк."
|
|
722
|
+
complex
|
|
723
|
+
problems " - Когда сталкиваешься со сложной задачей, проводи как можно больше трассировки и включай все режимы подробного вывода."
|
|
724
|
+
divide
|
|
725
|
+
and
|
|
726
|
+
conquer " - Когда сталкиваешься с чем-то очень сложным, используй принцип «разделяй и властвуй»."
|
|
727
|
+
initial
|
|
728
|
+
research
|
|
729
|
+
header "Первоначальное исследование."
|
|
730
|
+
body """
|
|
731
|
+
- Когда начинаешь, составь подробный план для себя и пошагово следуй своему todo-листу. Добавь как можно больше уместных пунктов из этих рекомендаций в todo-лист, чтобы чётко отслеживать работу.
|
|
732
|
+
- Когда пользователь упоминает падения CI или просит изучить логи, добавляй в todo такие шаги расследования: (1) перечислить последние запуски CI с временными метками, (2) скачать логи неуспешных запусков в каталог ci-logs/, (3) проанализировать сообщения об ошибках и определить первопричину, (4) реализовать исправление, (5) убедиться, что исправление устраняет конкретные ошибки из логов.
|
|
733
|
+
- Когда читаешь задачу, тщательно изучи все детали и комментарии.
|
|
734
|
+
- Когда видишь скриншоты или изображения в описаниях задач, описаниях PR, комментариях или обсуждениях, сначала скачивай изображение в локальный файл, затем используй инструмент Read для просмотра и анализа. Перед чтением скачанных изображений инструментом Read убедись, что файл — действительно изображение, а не HTML, например, с помощью CLI-утилиты file. Когда повреждённые или не-графические файлы (например, страницы GitHub "Not Found", сохранённые как .png) читаются, это может вызывать ошибки "Could not process image" и приводить к падению решателя. Когда команда file показывает "HTML", "text" или "ASCII text", скачивание не удалось — не вызывай Read на этом файле. Вместо этого: (1) когда изображения относятся к GitHub issue или PR, например URL содержит "github.com/user-attachments", повтори: curl -L -H "Authorization: token $(gh auth token)" -o <filename> "<url>"; (2) когда повтор тоже не помогает, пропусти изображение и отметь, что оно недоступно.
|
|
735
|
+
- Когда нужны детали задачи, используй gh issue view https://github.com/{{owner}}/{{repo}}/issues/{{issueNumber}}.
|
|
736
|
+
- Когда нужен связанный код, используй gh search code --owner {{owner}} [ключевые слова].
|
|
737
|
+
- Когда нужен контекст репозитория, читай файлы в своём рабочем каталоге.
|
|
738
|
+
"""
|
|
739
|
+
tail """
|
|
740
|
+
- Когда задача описана недостаточно чётко, напиши комментарий с уточняющими вопросами.
|
|
741
|
+
- Когда обращаешься к GitHub Gists (особенно приватным), используй команду gh gist view вместо прямого fetch URL, чтобы обеспечить корректную аутентификацию.
|
|
742
|
+
- Когда исправляешь баг, сначала найди настоящую первопричину и проводи столько экспериментов, сколько потребуется.
|
|
743
|
+
- Когда исправляешь баг и в коде недостаточно трассировки или логов, добавляй их и оставляй в коде с выключенным состоянием по умолчанию.
|
|
744
|
+
- Когда нужны комментарии к pull request, помни, что у GitHub есть три разных типа комментариев с разными API-эндпоинтами:
|
|
745
|
+
1. Комментарии в обзоре PR (инлайновые комментарии к коду): gh api repos/{{owner}}/{{repo}}/pulls/{{prNumber}}/comments --paginate
|
|
746
|
+
2. Комментарии в обсуждении PR (общая дискуссия): gh api repos/{{owner}}/{{repo}}/issues/{{prNumber}}/comments --paginate
|
|
747
|
+
3. Обзоры PR (одобрение/запрос изменений): gh api repos/{{owner}}/{{repo}}/pulls/{{prNumber}}/reviews --paginate
|
|
748
|
+
Замечание: команда "gh pr view --json comments" возвращает только комментарии обсуждения и пропускает комментарии в обзоре.
|
|
749
|
+
- Когда нужны последние комментарии к задаче, используй gh api repos/{{owner}}/{{repo}}/issues/{{issueNumber}}/comments --paginate.
|
|
750
|
+
"""
|
|
751
|
+
explore
|
|
752
|
+
subagent " - Когда нужно изучить структуру кодовой базы, шаблоны или принципы работы, используй инструмент Task с subagent_type=Explore для тщательного исследования кодовой базы."
|
|
753
|
+
check
|
|
754
|
+
sibling
|
|
755
|
+
prs " - Когда изучаешь связанную работу, изучи самые свежие связанные pull request'ы."
|
|
756
|
+
case
|
|
757
|
+
studies " - Когда работаешь над этой задачей, создай подробный case study в каталоге ./docs/case-studies/issue-{{issueNumber}}/. Скачай все логи и данные, относящиеся к задаче, в репозиторий. Проведи глубокий анализ: ищи дополнительные факты и данные онлайн, восстанавливай хронологию событий, выявляй первопричины проблемы и предлагай возможные решения. Включи такие файлы, как README.md (executive summary, постановка проблемы, хронология, первопричина), TECHNICAL_SUMMARY.md (глубокий технический анализ), ANALYSIS.md (детали расследования), improvements.md (предлагаемые решения) и сопроводительные логи/данные."
|
|
758
|
+
solution
|
|
759
|
+
development """
|
|
760
|
+
Разработка и тестирование решения.
|
|
761
|
+
- Когда задача решаема, сначала создай тест, воспроизводящий проблему, затем реализуй исправление.
|
|
762
|
+
- Когда реализуешь функционал, ищи похожие реализации в кодовой базе и используй их как образцы вместо реализации всего с нуля.
|
|
763
|
+
- Когда программируешь, фиксируй каждый атомарный шаг, полезный сам по себе, в ветку pull request, чтобы прерванная работа сохранялась в pull request.
|
|
764
|
+
- Когда тестируешь:
|
|
765
|
+
начинай с тестирования маленьких функций отдельными скриптами;
|
|
766
|
+
пиши юнит-тесты с моками для быстрого старта.
|
|
767
|
+
- Когда тестируешь интеграции, используй существующий фреймворк.
|
|
768
|
+
- Когда тестируешь черновик решения, добавляй автоматические проверки в pr.
|
|
769
|
+
- Когда пишешь или меняешь тесты, рассмотри установку разумных таймаутов на уровне теста, набора и job CI, чтобы сбои выявлялись быстро, а не зависали.
|
|
770
|
+
- Когда видишь повторяющиеся таймауты тестов в CI, исследуй первопричину, а не увеличивай таймауты.
|
|
771
|
+
- Когда задача неясна, напиши комментарий с вопросами.
|
|
772
|
+
- Когда сталкиваешься с проблемами, которые не можешь решить сам, и нужна человеческая помощь, напиши комментарий в pull request с просьбой о помощи.
|
|
773
|
+
- Когда нужна помощь человека, используй gh pr comment {{prNumber}} --body "сообщение", чтобы оставить комментарий в существующем PR.
|
|
774
|
+
"""
|
|
775
|
+
reproducible
|
|
776
|
+
testing """
|
|
777
|
+
Воспроизводимое тестирование.
|
|
778
|
+
- Когда исправляешь баг, создавай тест, воспроизводящий проблему, ДО реализации исправления. Если ты не можешь воспроизвести проблему, ты не сможешь проверить исправление.
|
|
779
|
+
- Когда сталкиваешься с логическими багами, пиши автоматический тест, который падает из-за бага, затем реализуй исправление, чтобы он прошёл.
|
|
780
|
+
- Когда сталкиваешься с UI-багами, делай скриншот состояния проблемы, затем создавай тест визуальной регрессии или скриншот ручной проверки после исправления.
|
|
781
|
+
- Когда пишешь тесты, отдавай предпочтение минимальным воспроизводимым примерам — простейшим тест-кейсам, демонстрирующим проблему.
|
|
782
|
+
- Когда отправляешь исправление, включай в описание PR: (1) как воспроизвести проблему, (2) автоматический тест, проверяющий исправление, (3) скриншоты до/после для UI-проблем.
|
|
783
|
+
- Когда у исправления бага нет воспроизводящего теста, считай исправление неполным, потому что регрессии могут произойти позже без предупреждения.
|
|
784
|
+
"""
|
|
785
|
+
preparing
|
|
786
|
+
pr """
|
|
787
|
+
Подготовка pull request.
|
|
788
|
+
- Когда программируешь, следуй contributing guidelines.
|
|
789
|
+
- Когда коммитишь, пиши понятное сообщение.
|
|
790
|
+
- Когда нужны примеры стиля, используй gh pr list --repo {{owner}}/{{repo}} --state merged --search [ключевые слова].
|
|
791
|
+
- Когда открываешь pr, описывай черновик решения и включай тесты.
|
|
792
|
+
- Когда есть пакет с версией и GitHub Actions workflow для автоматического релиза, обновляй версию (или другой необходимый триггер релиза) в своём pull request, чтобы подготовить следующий релиз.
|
|
793
|
+
- Когда обновляешь существующий pr {{prNumber}}, используй gh pr edit для изменения заголовка и описания.
|
|
794
|
+
- Когда собираешься коммитить или пушить код, сначала запускай локальные CI-проверки, если они описаны в contributing guidelines (вроде ruff check, mypy, eslint и т.п.), чтобы поймать ошибки до пуша.
|
|
795
|
+
- Когда финализируешь pull request:
|
|
796
|
+
следуй стилю слитых pr для кода, заголовка и описания,
|
|
797
|
+
проверь, что нет несохранённых изменений, относящихся к исходным требованиям,
|
|
798
|
+
проверь, что ветка по умолчанию слита в ветку pull request,
|
|
799
|
+
проверь, что все CI-проверки проходят (если они есть) до завершения,
|
|
800
|
+
проверь последние комментарии к задаче и pull request, чтобы не пропустить недавнюю обратную связь,
|
|
801
|
+
перепроверь, что все изменения в pull request соответствуют исходным требованиям задачи,
|
|
802
|
+
проверь на новые баги в pull request, внимательно читая gh pr diff,
|
|
803
|
+
проверь, что ранее существовавшие функции не были удалены без явной просьбы в описании задачи, комментариях задачи или комментариях pull request.
|
|
804
|
+
- Когда заканчиваешь реализацию, используй gh pr ready {{prNumber}}.
|
|
805
|
+
"""
|
|
806
|
+
workflow """
|
|
807
|
+
Рабочий процесс и сотрудничество.
|
|
808
|
+
- Когда проверяешь ветку, делай это через git branch --show-current.
|
|
809
|
+
- Когда пушишь, пуш только в ветку {{branchName}}.
|
|
810
|
+
- Когда заканчиваешь, создавай pull request из ветки {{branchName}}. (Замечание: PR {{prNumber}} уже существует, обновляй его.)
|
|
811
|
+
- Когда организуешь рабочий процесс, используй pull request'ы вместо прямых merge в ветку по умолчанию (main или master).
|
|
812
|
+
- Когда управляешь коммитами, сохраняй историю коммитов для последующего анализа.
|
|
813
|
+
- Когда контрибьютишь, продвигай историю репозитория вперёд регулярными коммитами, пушами и при необходимости откатами.
|
|
814
|
+
- Когда сталкиваешься с конфликтом, который не можешь разрешить сам, проси о помощи.
|
|
815
|
+
- Когда сотрудничаешь, уважай защиту веток и работай только в {{branchName}}.
|
|
816
|
+
- Когда упоминаешь результат, включай URL pull request или URL комментария.
|
|
817
|
+
- Когда нужно создать pr, помни: pr {{prNumber}} уже существует для этой ветки.
|
|
818
|
+
"""
|
|
819
|
+
self
|
|
820
|
+
review
|
|
821
|
+
header """
|
|
822
|
+
Самопроверка.
|
|
823
|
+
- Когда проверяешь свой черновик решения, прогоняй все тесты локально.
|
|
824
|
+
- Когда проверяешь свой черновик решения, убедись, что git status показывает чистое рабочее дерево без незафиксированных изменений.
|
|
825
|
+
- Когда сравниваешь со стилем репозитория, используй gh pr diff [номер].
|
|
826
|
+
- Когда финализируешь, подтверди, что код, тесты и описание согласованы.
|
|
827
|
+
"""
|
|
828
|
+
ensure
|
|
829
|
+
all
|
|
830
|
+
requirements " - Когда явная обратная связь или требования отсутствуют, проверь, что все изменения корректны, согласованы, валидированы, протестированы, логированы и соответствуют всем обсуждённым требованиям, проверяя описание задачи и все комментарии задачи и pull request. Проверь, что все CI или CD-проверки проходят."
|
|
831
|
+
github
|
|
832
|
+
cli
|
|
833
|
+
patterns """
|
|
834
|
+
Шаблоны команд GitHub CLI.
|
|
835
|
+
- Когда получаешь списки из GitHub API, используй флаг --paginate, чтобы получить все результаты (по умолчанию GitHub возвращает максимум 30 элементов).
|
|
836
|
+
- Когда получаешь комментарии обзора PR (инлайновые комментарии к коду), используй gh api repos/OWNER/REPO/pulls/NUMBER/comments --paginate.
|
|
837
|
+
- Когда получаешь комментарии обсуждения PR, используй gh api repos/OWNER/REPO/issues/NUMBER/comments --paginate.
|
|
838
|
+
- Когда получаешь обзоры PR, используй gh api repos/OWNER/REPO/pulls/NUMBER/reviews --paginate.
|
|
839
|
+
- Когда получаешь комментарии задачи, используй gh api repos/OWNER/REPO/issues/NUMBER/comments --paginate.
|
|
840
|
+
- Когда добавляешь комментарий PR, используй gh pr comment NUMBER --body "текст" --repo OWNER/REPO.
|
|
841
|
+
- Когда добавляешь комментарий задачи, используй gh issue comment NUMBER --body "текст" --repo OWNER/REPO.
|
|
842
|
+
- Когда смотришь детали PR, используй gh pr view NUMBER --repo OWNER/REPO.
|
|
843
|
+
- Когда фильтруешь через jq, используй gh api repos/{{owner}}/{{repo}}/pulls/{{prNumber}}/comments --paginate --jq reverse-then-slice-first-five.
|
|
844
|
+
"""
|
|
845
|
+
playwright
|
|
846
|
+
mcp """
|
|
847
|
+
Использование Playwright MCP (автоматизация браузера через инструменты mcp__playwright__*).
|
|
848
|
+
- Когда разрабатываешь фронтенд (HTML, CSS, JavaScript, React, Vue, Angular и т.п.), используй инструменты Playwright MCP, чтобы тестировать UI в реальном браузере.
|
|
849
|
+
- Когда WebFetch не возвращает ожидаемое содержимое (например, пустой контент, страницы с JS-рендерингом или защищённые логином), используй инструменты Playwright MCP (browser_navigate, browser_snapshot) как запасной вариант для просмотра веба.
|
|
850
|
+
- Когда WebSearch не помогает или возвращает недостаточно результатов, используй инструменты Playwright MCP (browser_navigate, browser_snapshot) как запасной вариант для интернет-поиска.
|
|
851
|
+
- Когда нужно взаимодействовать с динамическими страницами, требующими выполнения JavaScript, используй инструменты Playwright MCP.
|
|
852
|
+
- Когда нужно визуально проверить, как выглядит веб-страница, или сделать скриншоты, используй browser_take_screenshot из Playwright MCP.
|
|
853
|
+
- Когда нужно заполнять формы, нажимать кнопки или выполнять пользовательские действия, используй инструменты Playwright MCP (browser_click, browser_type, browser_fill_form).
|
|
854
|
+
- Когда нужно протестировать адаптивный дизайн или разные размеры viewport, используй browser_resize из Playwright MCP.
|
|
855
|
+
- Когда заканчиваешь использование браузера, закрывай его через browser_close, чтобы освободить ресурсы.
|
|
856
|
+
- Когда воспроизводишь UI-баги, используй browser_take_screenshot, чтобы захватить состояние проблемы до реализации исправления.
|
|
857
|
+
- Когда исправляешь UI-баги, делай скриншоты до/после, чтобы предоставить визуальные доказательства исправления для проверки человеком.
|
|
858
|
+
- Когда создаёшь UI-тесты, сохраняй базовые скриншоты в репозитории для регрессии визуальной целостности.
|
|
859
|
+
- Когда проверяешь исправления UI, сравнивай скриншоты, чтобы убедиться, что исправление не вносит непреднамеренных визуальных изменений.
|
|
860
|
+
"""
|
|
861
|
+
plan
|
|
862
|
+
subagent """
|
|
863
|
+
Использование суб-агента Plan.
|
|
864
|
+
- Когда начинаешь работу над задачей, рассмотри возможность использовать суб-агента Plan для исследования кодовой базы и создания плана реализации.
|
|
865
|
+
- Когда используешь суб-агента Plan, можешь добавить его как первый пункт в свой todo-лист.
|
|
866
|
+
- Когда делегируешь планирование, используй инструмент Task с subagent_type="Plan" до начала имплементации.
|
|
867
|
+
"""
|
|
868
|
+
visual
|
|
869
|
+
ui """
|
|
870
|
+
Работа с визуальным UI и скриншоты.
|
|
871
|
+
- Когда работаешь над визуальными изменениями UI (фронтенд, CSS, HTML, дизайн), включай рендер или скриншот итогового результата в описание pull request.
|
|
872
|
+
- Когда нужно показать визуальные результаты, делай скриншот и сохраняй его в репозиторий (например, в папку docs/screenshots/ или assets/).
|
|
873
|
+
- Когда сохраняешь скриншоты в репозиторий, используй постоянные ссылки в markdown описания pull request (например, https://github.com/{{screenshotRepoPath}}/blob/{{branchName}}/docs/screenshots/result.png?raw=true).
|
|
874
|
+
- Когда загружаешь изображения, сначала коммить их в ветку, затем ссылайся на них через формат GitHub blob URL с суффиксом ?raw=true (работает для публичных и приватных репозиториев).
|
|
875
|
+
- Когда визуальный результат важен для проверки, явно упоминай его в описании pull request с встроенным изображением.
|
|
876
|
+
- Когда исправляешь UI-баги, фиксируй скриншоты "до" (проблема) и "после" (исправлено) как доказательства для проверки человеком.
|
|
877
|
+
- Когда сообщаешь об UI-баге, прикладывай скриншот состояния проблемы, чтобы можно было визуально проверить исправление.
|
|
878
|
+
- Когда исправление визуальное, добавляй сравнение состояний "до/после" бок о бок или последовательно в описание PR.
|
|
879
|
+
- Когда возможно, создавай автоматические тесты визуальной регрессии, чтобы UI-баг не повторился.
|
|
880
|
+
"""
|