micro-models-agent 2.5.0 → 2.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +105 -0
- package/README.md +88 -38
- package/bin/mma.mjs +41 -41
- package/dist/assets/app.js +246 -3086
- package/dist/assets/hljs.js +1244 -0
- package/dist/assets/index.html +15 -1
- package/dist/assets/js/api.js +28 -0
- package/dist/assets/js/dialog.js +105 -0
- package/dist/assets/js/dom.js +157 -0
- package/dist/assets/js/feed.js +995 -0
- package/dist/assets/js/format.js +114 -0
- package/dist/assets/js/i18n.js +46 -0
- package/dist/assets/js/settings.js +1126 -0
- package/dist/assets/js/store.js +79 -0
- package/dist/assets/js/tabs.js +672 -0
- package/dist/assets/md.js +277 -0
- package/dist/assets/setup.js +557 -0
- package/dist/assets/smd.js +1665 -0
- package/dist/assets/styles.css +250 -16
- package/dist/i18n/en.json +174 -6
- package/dist/i18n/ru.json +174 -6
- package/dist/main.js +5198 -2651
- package/dist/modules/browser/bridge-server.mjs +3 -3
- package/package.json +10 -2
package/dist/i18n/ru.json
CHANGED
|
@@ -73,6 +73,9 @@
|
|
|
73
73
|
"session.not_found": "Сессия не найдена: {id}",
|
|
74
74
|
"session.no_active": "Нет активной сессии",
|
|
75
75
|
"session.deleted": "Сессия удалена: {id}",
|
|
76
|
+
"session.pruned": "Удалено пустых сессий: {n}",
|
|
77
|
+
"session.prune_dry": "Будет удалено пустых сессий: {n}",
|
|
78
|
+
"session.prune_empty": "Пустых сессий нет",
|
|
76
79
|
"session.renamed": "Сессия переименована в: {name}",
|
|
77
80
|
"session.created": "Создана сессия: {name}",
|
|
78
81
|
"session.resumed": "Возобновлена сессия: {name}",
|
|
@@ -87,6 +90,7 @@
|
|
|
87
90
|
"session.available": "Доступные сессии:",
|
|
88
91
|
"session.no_match": "Нет сессии подходящей по \"{query}\"",
|
|
89
92
|
"session.default_name": "Сессия {date}",
|
|
93
|
+
"session.auto_named": "Сессия названа: {name}",
|
|
90
94
|
"session.info_full": "[Сессия: \"{name}\" ({id}) | модель: {model} | контекст: {contextWindow} токенов]",
|
|
91
95
|
"session.col_active": "",
|
|
92
96
|
"session.col_id": "ID",
|
|
@@ -137,6 +141,8 @@
|
|
|
137
141
|
"tool.friendly.lsp_check": "Проверка кода",
|
|
138
142
|
"tool.friendly.meet_done": "Знакомство завершено",
|
|
139
143
|
"tool.truncated": "[Обрезано: удалено {tokens} токенов]",
|
|
144
|
+
"critic.repair": "Верификатор отметил критичные проблемы; исправь их до завершения:\n{issues}\nСводка: {summary}",
|
|
145
|
+
"critic.advice": "Верификатор отметил проблемы, которые стоит проверить до завершения:\n{issues}",
|
|
140
146
|
"tool.subagent_queued": "Задача подагенту добавлена: {task}",
|
|
141
147
|
"tool.subagent_artifact": "Суб-агент завершён. Полный результат сохранён в артефакт: {path}\nИтераций: {iterations}\nСводка:\n{summary}",
|
|
142
148
|
"tool.pipeline_started": "Пайплайн \"{name}\" запущен. Движок пайплайнов — заглушка, задача отправлена.",
|
|
@@ -161,6 +167,20 @@
|
|
|
161
167
|
"tool.name_or_task": "Укажите параметр \"name\" или \"task\"",
|
|
162
168
|
"tool.chunk_query_no_query": "chunk_query: требуется строка запроса.",
|
|
163
169
|
"tool.chunk_query_no_input": "chunk_query: укажите input_path или text.",
|
|
170
|
+
"tool.chunk_query_no_provider": "chunk_query: в контексте нет LLM-провайдера.",
|
|
171
|
+
"tool.chunk_query_path_not_allowed": "[SCOPE] {reason}",
|
|
172
|
+
"tool.chunk_query_read_failed": "Не удалось прочитать {path}: {error}",
|
|
173
|
+
"tool.subagent_cannot_run": "Субагент не может запуститься: в контексте нет LLM-провайдера или исполнителя тулов.",
|
|
174
|
+
"tool.subagent_failed": "Субагент упал: {error}\nЧастичный вывод: {text}",
|
|
175
|
+
"tool.subagent_completed": "Субагент завершил работу:\n{text}\n\nИтераций: {iterations}",
|
|
176
|
+
"tool.subagent_error": "Ошибка субагента: {error}",
|
|
177
|
+
"tool.pipeline_cannot_run": "Пайплайн не может запуститься: в контексте нет LLM-провайдера или исполнителя тулов.",
|
|
178
|
+
"tool.pipeline_failed": "Пайплайн \"{name}\" упал. Выполнено шагов: {done}/{total}.\n{logs}",
|
|
179
|
+
"tool.pipeline_completed": "Пайплайн \"{name}\" успешно завершён (шагов: {steps}).\n{logs}",
|
|
180
|
+
"tool.pipeline_error": "Ошибка пайплайна: {error}",
|
|
181
|
+
"tool.mcp_server_not_found": "MCP-сервер \"{server}\" не найден. Доступны: {available}",
|
|
182
|
+
"tool.mcp_call_failed": "Вызов MCP не удался: {error}",
|
|
183
|
+
"tool.meet_done": "Интервью отмечено завершённым.",
|
|
164
184
|
"tool.invalid_params": "Неверные параметры",
|
|
165
185
|
"tool.skill_budget": "Скилл \"{name}\" загружен ({tokens} токенов, осталось {remaining} в бюджете скиллов). Контент скилла теперь в системном промпте — перезагрузка после компрессии не нужна.",
|
|
166
186
|
"tool.skill_available_hint": "Доступные скиллы",
|
|
@@ -178,7 +198,7 @@
|
|
|
178
198
|
"tool.interactive_disabled": "Интерактивный инструмент отключён в режиме exit-on-complete. Продолжай без вопроса пользователю.",
|
|
179
199
|
"proc.started": "Фоновый процесс запущен: {id} (PID {pid}).\nКоманда: {command}",
|
|
180
200
|
"proc.promoted_hint": "Команда всё ещё выполняется через {ms} мс — переведена в фоновый режим",
|
|
181
|
-
"proc.manage_hint": "Проверить вывод: process_log id={id}. Остановить: process_kill id={id}. Список всех: process_list.",
|
|
201
|
+
"proc.manage_hint": "Проверить вывод: process_log id={id}. Дождаться завершения: process_wait id={id}. Остановить: process_kill id={id}. Список всех: process_list.",
|
|
182
202
|
"proc.output_preview": "Первые строки вывода:\n{lines}",
|
|
183
203
|
"proc.none": "Фоновых процессов нет.",
|
|
184
204
|
"proc.not_found": "Процесс не найден: {id}",
|
|
@@ -193,9 +213,13 @@
|
|
|
193
213
|
"proc.status_running": "работает",
|
|
194
214
|
"proc.status_exited": "завершён",
|
|
195
215
|
"proc.status_killed": "остановлен",
|
|
216
|
+
"proc.wait_exited": "Процесс {id} {status} за {ms} мс с кодом {code}.",
|
|
217
|
+
"proc.wait_running": "Процесс {id} всё ещё работает (ждали {ms} мс).",
|
|
218
|
+
"proc.wait_hint": "Подождать ещё: process_wait id={id}. Проверить вывод: process_log id={id}. Остановить: process_kill id={id}.",
|
|
196
219
|
"tool.friendly.process_list": "Список фоновых процессов",
|
|
197
220
|
"tool.friendly.process_log": "Вывод процесса",
|
|
198
221
|
"tool.friendly.process_kill": "Остановка процесса",
|
|
222
|
+
"tool.friendly.process_wait": "Ожидание процесса",
|
|
199
223
|
"plan.no_steps": "Не указаны шаги плана. Укажите конкретные шаги с файлами и командами.",
|
|
200
224
|
"plan.created": "План создан: {title} ({steps} шагов)",
|
|
201
225
|
"plan.coverage_warning": "План может не покрывать требуемые файлы из постановки: {missing}. Добавьте шаги, покрывающие их.",
|
|
@@ -211,6 +235,7 @@
|
|
|
211
235
|
"plan.step_status": "Шаг {step}: {status}",
|
|
212
236
|
"plan.no_active": "Нет активного плана",
|
|
213
237
|
"plan.step_not_found": "Шаг не найден",
|
|
238
|
+
"plan.bad_status": "Недопустимый статус «{status}». Используйте один из: {allowed}.",
|
|
214
239
|
"plan.step_already_done": "Шаг {step} уже выполнен — ничего делать не нужно. Прогресс плана:",
|
|
215
240
|
"plan.order_blocked": "Нельзя отметить шаг {step} выполненным: шаг {first} («{desc}») ещё не завершён. Сначала завершите предыдущие шаги или отметьте шаг {first} status=skipped, если он не нужен.",
|
|
216
241
|
"plan.deliverables_missing": "Нельзя отметить шаг {step} выполненным: указанные в нём файлы ещё не существуют: {files}. Сначала создайте эти файлы (или отметьте шаг status=skipped, если они на самом деле не нужны).",
|
|
@@ -242,6 +267,11 @@
|
|
|
242
267
|
"plan.readonly": "План {id} имеет статус {status} (только чтение) — обновить его нельзя. Используй \"plan switch\", чтобы активировать его, или создай новый план для новой задачи.",
|
|
243
268
|
"plan.list_legend": "[*] активный · [ ] черновик · [-] архив",
|
|
244
269
|
"exec.plan_nudge": "Ты сделал(а) {count} вызов(ов), изменяющих файлы, без плана. Для задач, создающих/изменяющих файлы или состоящих из нескольких шагов, сначала создай план (plan create) с конкретными шагами (точные имена файлов, команды, результаты), а потом продолжай.",
|
|
270
|
+
"exec.plan_summary_complete": "[{id}] \"{title}\" — {done}/{total} готово, план завершён. Можешь создать новый план для новой работы (plan create) или дать финальный ответ.",
|
|
271
|
+
"exec.plan_summary_continue": "[{id}] \"{title}\" — {done}/{total} готово, текущий: шаг {current} — продолжай его (plan show / re-plan), НЕ создавай новый план",
|
|
272
|
+
"exec.test_fail_summary": "{framework}: {failed} падающих тест(ов) ({passed} пройдено). НЕ отмечай текущий шаг как done — исправь падающие тесты (прочитай вывод, поправь код) и перезапусти до полного успеха.",
|
|
273
|
+
"exec.test_pass_summary": "{framework}: все {passed} тест(ов) пройдены для \"{cmd}\". Можно отметить текущий шаг как done через plan update step=N status=done.",
|
|
274
|
+
"exec.skills_hint": "Если доступны подходящие навыки, рассмотри загрузку одного через load_skill для экспертной подсказки.",
|
|
245
275
|
"todo.added": "Добавлено {count} задач: {items}",
|
|
246
276
|
"todo.marked_done": "Отмечено выполненными: {count}",
|
|
247
277
|
"todo.no_active": "Нет активных задач",
|
|
@@ -258,6 +288,12 @@
|
|
|
258
288
|
"verify.syntax_error": "Синтаксическая ошибка в: {path}",
|
|
259
289
|
"verify.file_still_exists": "Файл должен быть удалён, но всё ещё существует: {path}",
|
|
260
290
|
"verify.no_files": "Шаг {step} не содержит именованных файлов для проверки — выполни реальную проверку (bun run build / bun test / lsp_check) и подтверди результат.",
|
|
291
|
+
"verify.typecheck_skipped_no_tsconfig": "tsconfig.json не найден — проверка типов пропущена",
|
|
292
|
+
"verify.typecheck_skipped_no_tsc": "tsc не установлен — проверка типов пропущена",
|
|
293
|
+
"verify.typecheck_passed": "Проверка типов TypeScript пройдена",
|
|
294
|
+
"verify.typecheck_failed": "Проверка типов TypeScript не пройдена: {error}",
|
|
295
|
+
"verify.tests_skipped_no_package": "package.json не найден — тесты пропущены",
|
|
296
|
+
"verify.tests_skipped_no_script": "Скрипт тестов не задан — тесты пропущены",
|
|
261
297
|
"lsp.unavailable": "статические проверки недоступны (сервер не найден). Проверяйте через собственный build/test проекта.",
|
|
262
298
|
"lsp.check_disabled": "LSP-проверки отключены в конфигурации.",
|
|
263
299
|
"lsp.check_no_path": "Укажите путь (файл или каталог) для проверки.",
|
|
@@ -375,18 +411,22 @@
|
|
|
375
411
|
"cli.list_sessions": "Список всех сессий",
|
|
376
412
|
"cli.show_details": "Показать детали сессии",
|
|
377
413
|
"cli.delete_session": "Удалить сессию",
|
|
414
|
+
"cli.prune_sessions": "Удалить сессии без сообщений пользователя",
|
|
415
|
+
"cli.prune_dry_run": "Показать кандидатов без удаления",
|
|
378
416
|
"cli.export_session": "Экспортировать сессию в файл (md, json или jsonl)",
|
|
379
417
|
"cli.export_format": "Формат вывода: md|json|jsonl (по умолчанию md)",
|
|
380
418
|
"cli.export_out": "Путь вывода ('-' для stdout)",
|
|
381
419
|
"cli.export_no_redact": "Не скрывать секреты",
|
|
420
|
+
"cli.export_compact": "Пропустить тела результатов тулов (компактный читаемый экспорт)",
|
|
382
421
|
"cli.first_run": "Первый запуск. Запускаем мастер настройки...",
|
|
383
422
|
"cli.first_run_oneshot": "Конфигурация не найдена — запуск с настройками по умолчанию. Запустите `mma` без аргументов один раз для настройки.",
|
|
423
|
+
"cli.web_setup_required": "Конфигурация не найдена — открывается мастер настройки в браузере.",
|
|
384
424
|
"cli.web.description": "Запустить агента с браузерным интерфейсом",
|
|
385
425
|
"cli.web.port": "фиксированный порт (по умолчанию случайный)",
|
|
386
426
|
"cli.web.host": "адрес привязки (по умолчанию 127.0.0.1)",
|
|
387
427
|
"cli.web.token": "требовать этот токен (обязателен для не-loopback)",
|
|
388
428
|
"cli.web.no_open": "не открывать браузер автоматически",
|
|
389
|
-
"cli.web_started": "веб-интерфейс → {url}",
|
|
429
|
+
"cli.web_started": "веб-интерфейс → {url} (директория: {dir})",
|
|
390
430
|
"cli.setup_saved_restart": "Настройки сохранены. Перезапуск с новой конфигурацией...",
|
|
391
431
|
"cli.unknown_cmd": "Неизвестная команда: {name}.",
|
|
392
432
|
"cli.unknown_command": "Неизвестная команда \"{input}\". Возможно, вы имели в виду \"{suggestion}\"?",
|
|
@@ -513,6 +553,14 @@
|
|
|
513
553
|
"repl.excluded_blocks": "\nИсключённые блоки: {count}",
|
|
514
554
|
"repl.context_usage": "Использование: /context [<размер, мин 1024> | system <доля> | reserve <доля>] (доля 0.05–0.9 или напр. 10%; system+reserve ≤ 0.95)",
|
|
515
555
|
"repl.msgs": "сообщ.",
|
|
556
|
+
"repl.api_line": " API: {prompt} prompt + {completion} completion = {total} всего",
|
|
557
|
+
"repl.compacted": "Контекст сжат ({count})",
|
|
558
|
+
"repl.skills_available": "{count} доступно, бюджет: {budget} токенов",
|
|
559
|
+
"repl.plugins_active": "{count} активно ({names})",
|
|
560
|
+
"repl.plugins_hidden": "({count} встроенных скрыто — /plugins --all чтобы показать)",
|
|
561
|
+
"repl.loaded": "[загружен]",
|
|
562
|
+
"repl.yes": "да",
|
|
563
|
+
"repl.no": "нет",
|
|
516
564
|
"repl.max_iters": "Макс итераций:",
|
|
517
565
|
"repl.stuck_thresh": "Порог зависания:",
|
|
518
566
|
"repl.reasoning_label": "Рассуждения:",
|
|
@@ -574,7 +622,7 @@
|
|
|
574
622
|
"repl.help_aliases": "Алиасы: {names}",
|
|
575
623
|
"repl.help_examples": "Примеры:",
|
|
576
624
|
"repl.export": "Экспортировать сессию в файл",
|
|
577
|
-
"repl.export_usage": "Использование: /export [<id|имя>] [--format md|json|jsonl] [--out <путь>] [--no-redact]",
|
|
625
|
+
"repl.export_usage": "Использование: /export [<id|имя>] [--format md|json|jsonl] [--out <путь>] [--no-redact] [--compact]",
|
|
578
626
|
"config.header": "Управляемые настройки",
|
|
579
627
|
"config.col_setting": "Настройка",
|
|
580
628
|
"config.col_value": "Значение",
|
|
@@ -706,8 +754,11 @@
|
|
|
706
754
|
"exec.tool_errors": "Инструмент {tool} упал {count} раз. Попробуйте другой инструмент.",
|
|
707
755
|
"exec.tool_errors_recovery": "Инструмент {tool} упал {count} раз подряд. Попробуйте альтернативу: создайте файлы напрямую через write_file, используйте другую команду, или пропустите этот шаг через plan update step=N status=skipped с пометкой почему.",
|
|
708
756
|
"exec.repetitive_tool": "Инструмент {tool} вызван {count} раз с одинаковыми аргументами и результатом. Попробуйте другой подход — создайте файлы напрямую, измените аргументы или проверьте статус процесса через process_log.",
|
|
757
|
+
"exec.repetitive_process_log_hint": "Вы опрашиваете фоновый процесс в цикле — вызовите process_wait один раз вместо опроса через process_log.",
|
|
709
758
|
"exec.consecutive_failures_recovery": "{count} инструментов подряд упали. Создавайте файлы напрямую через write_file вместо команд терминала. Проверьте что зависимости установлены (npm install). Не запускайте сборку/тесты пока не созданы все файлы.",
|
|
710
759
|
"exec.bash_flailing_recovery": "bash упал в {fails} из последних {window} попыток. Хватит использовать шелл-команды для файловых операций на этой машине — они не работают. Используй специализированные инструменты: read_file (в заголовке число строк), write_file, edit_file, file_info (размер файла), glob/grep для поиска",
|
|
760
|
+
"exec.bash_flailing": "bash упал в {fails} из последних {window} попыток.",
|
|
761
|
+
"exec.consecutive_failures": "{count} подряд неудачных вызовов тулов.",
|
|
711
762
|
"exec.read_only_loop": "Нет записи/выполнения за {count} вызовов — агент только читает/исследует.",
|
|
712
763
|
"exec.read_only_loop_recovery": "{count} вызовов только для чтения подряд (read_file/glob/grep/browser) без записи. Хватит исследовать — внесите правку, которую требует задача: прочитайте файл, затем вызовите write_file или edit_file. Если не можете завершить задачу — спросите пользователя, а не перечитывайте одни и те же файлы.",
|
|
713
764
|
"exec.plan_warning": "Текущий шаг плана {step} — \"{description}\", но вызывается {tool} для файлов вне этого шага. Завершите текущий шаг, вызовите plan update step={step} status=done, затем переходите к следующему.",
|
|
@@ -746,6 +797,7 @@
|
|
|
746
797
|
"hall.uncertainty": "Маркеры неопределённости: {markers}",
|
|
747
798
|
"hall.unknown_paths": "Упомянутые файлы не найдены: {paths}",
|
|
748
799
|
"hall.contradiction_llm": "Противоречит ранее принятому решению{reason}",
|
|
800
|
+
"hall.claim_contradiction": "Ответ заявляет об успехе, но свежий результат тула указывает на проблему ({tool}: {snippet}). Либо проверь и исправь, затем перезапусти проверку — либо смягчи формулировку под факты (например, застейджено, появится в ближайшее время).",
|
|
749
801
|
"hall.uncertainty_prefix": "\n\n[⚠️ Неопределённость] ",
|
|
750
802
|
"browser.repeated_action": "Вы повторили то же действие ({action}) {threshold} раз. Попробуйте другой подход: используйте \"snapshot\" для перечитки страницы, другие номера элементов или другой URL.",
|
|
751
803
|
"browser.unknown_action": "Неизвестное действие: {action}",
|
|
@@ -792,6 +844,8 @@
|
|
|
792
844
|
"ui.thinking_label_3": "прикидываю",
|
|
793
845
|
"ui.action_fallback": "Действие",
|
|
794
846
|
"ui.actions_summary": "{count} действий",
|
|
847
|
+
"ui.critic_concern": "проверка · {count} замеч.",
|
|
848
|
+
"ui.critic_repair": "проверка · исправление",
|
|
795
849
|
"ui.plan_update": "шаг {step} → {status}",
|
|
796
850
|
"ui.todo_action": "{action} · {count}",
|
|
797
851
|
"ui.tool_running": "{tool}…",
|
|
@@ -873,6 +927,7 @@
|
|
|
873
927
|
"cli.provider_base_hint": "Базовый URL установлен: {baseUrl}",
|
|
874
928
|
"cli.add_provider": "Добавить провайдера в конфиг",
|
|
875
929
|
"cli.provider_no_url": "Нет базового URL для провайдера \"{name}\". Укажите --url.",
|
|
930
|
+
"cli.provider_name_conflict": "Провайдер \"{name}\" уже существует — выбери другое имя.",
|
|
876
931
|
"cli.provider_added": "Провайдер добавлен: {name}",
|
|
877
932
|
"cli.provider_switch_hint": "Переключитесь на него: mma provider use <имя>",
|
|
878
933
|
"repl.cost": "Итого потрачено: {cost}",
|
|
@@ -948,6 +1003,7 @@
|
|
|
948
1003
|
"web.topbar.new_chat": "новый чат",
|
|
949
1004
|
"web.topbar.settings": "настройки",
|
|
950
1005
|
"web.topbar.all_sessions": "все сессии",
|
|
1006
|
+
"web.topbar.sidebar": "сайдбар",
|
|
951
1007
|
"web.topbar.close": "закрыть",
|
|
952
1008
|
"web.conn.reconnecting": "переподключение…",
|
|
953
1009
|
"web.sidebar.plan": "план",
|
|
@@ -970,6 +1026,7 @@
|
|
|
970
1026
|
"web.env.tokens_few": "~{count} токена",
|
|
971
1027
|
"web.env.tokens_many": "~{count} токенов",
|
|
972
1028
|
"web.usage.session": "сессия",
|
|
1029
|
+
"web.usage.copy_id": "скопировать ID сессии",
|
|
973
1030
|
"web.usage.model": "модель",
|
|
974
1031
|
"web.usage.context": "контекст",
|
|
975
1032
|
"web.usage.cache": "кеш",
|
|
@@ -994,6 +1051,12 @@
|
|
|
994
1051
|
"config.key.ui.verbosity": "подробность",
|
|
995
1052
|
"config.key.maxToolIterations": "макс. итераций тулов",
|
|
996
1053
|
"config.key.stuckThreshold": "порог застревания",
|
|
1054
|
+
"config.key.moe.enabled": "MoE",
|
|
1055
|
+
"config.key.moe.maxReplanCycles": "циклы re-plan MoE",
|
|
1056
|
+
"config.key.critic.enabled": "проверяющий (критик)",
|
|
1057
|
+
"config.key.critic.maxCalls": "макс. вызовов критика",
|
|
1058
|
+
"config.key.critic.maxRepairCycles": "циклы исправления критика",
|
|
1059
|
+
"config.key.critic.timeoutMs": "таймаут критика (мс)",
|
|
997
1060
|
"config.key.logLevel": "уровень логов",
|
|
998
1061
|
"config.key.locale": "язык",
|
|
999
1062
|
"config.key.version": "версия",
|
|
@@ -1023,6 +1086,7 @@
|
|
|
1023
1086
|
"web.settings.model": "Модель и провайдер",
|
|
1024
1087
|
"web.settings.context": "Контекст",
|
|
1025
1088
|
"web.settings.reasoning": "Рассуждения",
|
|
1089
|
+
"web.settings.agent": "Агент",
|
|
1026
1090
|
"web.settings.ui": "Интерфейс и тема",
|
|
1027
1091
|
"web.settings.memory": "Память",
|
|
1028
1092
|
"web.settings.skills": "Навыки",
|
|
@@ -1042,6 +1106,16 @@
|
|
|
1042
1106
|
"web.settings.no_matches": "нет совпадений",
|
|
1043
1107
|
"web.settings.active_provider": "активный провайдер",
|
|
1044
1108
|
"web.settings.add_provider": "добавить провайдера",
|
|
1109
|
+
"web.settings.section_models": "Модель",
|
|
1110
|
+
"web.settings.section_providers": "Провайдеры",
|
|
1111
|
+
"web.settings.provider_add_title": "добавить провайдера",
|
|
1112
|
+
"web.settings.provider_preset": "шаблон",
|
|
1113
|
+
"web.settings.provider_custom": "свой / локальный",
|
|
1114
|
+
"web.settings.provider_name_conflict": "провайдер с таким именем уже существует — выбери другое имя",
|
|
1115
|
+
"web.settings.provider_edit_title": "изменить провайдера",
|
|
1116
|
+
"web.settings.provider_advanced": "дополнительно",
|
|
1117
|
+
"web.settings.provider_make_active": "сделать активным",
|
|
1118
|
+
"web.settings.providers_empty": "провайдеры не настроены",
|
|
1045
1119
|
"web.settings.edit": "изменить",
|
|
1046
1120
|
"web.settings.delete": "удалить",
|
|
1047
1121
|
"web.settings.cancel": "отмена",
|
|
@@ -1127,13 +1201,30 @@
|
|
|
1127
1201
|
"web.selectors.current": "текущее",
|
|
1128
1202
|
"web.selectors.context_prompt": "контекстное окно (токены)",
|
|
1129
1203
|
"web.action.thinking": "думаю",
|
|
1130
|
-
"web.action.hide": "
|
|
1131
|
-
"web.action.show": "
|
|
1204
|
+
"web.action.hide": "скрыть",
|
|
1205
|
+
"web.action.show": "показать",
|
|
1132
1206
|
"web.action.actions_one": "{count} действие",
|
|
1133
1207
|
"web.action.actions_few": "{count} действия",
|
|
1134
1208
|
"web.action.actions_many": "{count} действий",
|
|
1209
|
+
"web.critic_concern_one": "Проверка: {count} замечание",
|
|
1210
|
+
"web.critic_concern_few": "Проверка: {count} замечания",
|
|
1211
|
+
"web.critic_concern_many": "Проверка: {count} замечаний",
|
|
1212
|
+
"web.critic_repair": "Проверка: проблема — исправление",
|
|
1135
1213
|
"web.action.cancel": "отмена",
|
|
1136
1214
|
"web.cmdk.label": "команды",
|
|
1215
|
+
"web.command.help": "список веб-команд",
|
|
1216
|
+
"web.command.status": "модель · провайдер · контекст · сессия · детализация",
|
|
1217
|
+
"web.command.config": "прочитать или записать ключ конфига",
|
|
1218
|
+
"web.command.model": "показать модели или переключить модель",
|
|
1219
|
+
"web.command.provider": "показать провайдеры или переключить провайдер",
|
|
1220
|
+
"web.command.reasoning": "показ рассуждений и уровень",
|
|
1221
|
+
"web.command.verbose": "уровень детализации UI",
|
|
1222
|
+
"web.command.context": "показать или задать окно контекста",
|
|
1223
|
+
"web.command.session": "показать сессии или активировать сессию",
|
|
1224
|
+
"web.command.export": "экспорт активной сессии в файл",
|
|
1225
|
+
"web.command.memory": "просмотр и правка глобальной памяти",
|
|
1226
|
+
"web.command.clear": "очистить ленту (в браузере)",
|
|
1227
|
+
"web.command.new": "новая вкладка чата (в браузере)",
|
|
1137
1228
|
"web.turn.stopped": "остановлено",
|
|
1138
1229
|
"web.turn.failed": "ход не удался",
|
|
1139
1230
|
"web.turn.end": "ход завершён · ok · инструментов {count}",
|
|
@@ -1148,6 +1239,11 @@
|
|
|
1148
1239
|
"web.tool.output_few": "вывод · {count} символа",
|
|
1149
1240
|
"web.tool.output_many": "вывод · {count} символов",
|
|
1150
1241
|
"web.tool.collapse": "свернуть",
|
|
1242
|
+
"web.code.copy": "копировать",
|
|
1243
|
+
"web.code.copied": "скопировано",
|
|
1244
|
+
"web.code.copy_failed": "не скопировано",
|
|
1245
|
+
"web.msg.copy": "копировать",
|
|
1246
|
+
"web.msg.copy_md": "копировать как markdown",
|
|
1151
1247
|
"web.card.open": "открыть ↗",
|
|
1152
1248
|
"web.card.screenshot": "снимок экрана",
|
|
1153
1249
|
"web.card.attached_image": "прикреплённое изображение",
|
|
@@ -1174,6 +1270,12 @@
|
|
|
1174
1270
|
"config.desc.ui.verbosity": "Насколько подробно чат показывает действия и тулы.",
|
|
1175
1271
|
"config.desc.maxToolIterations": "Жёсткий лимит итераций вызова тулов за ход.",
|
|
1176
1272
|
"config.desc.stuckThreshold": "Сколько повторяющихся одинаковых действий до подсказки сменить подход.",
|
|
1273
|
+
"config.desc.moe.enabled": "Agent-level MoE: план → параллельные эксперты → проверка (через orchestrator-провайдер).",
|
|
1274
|
+
"config.desc.moe.maxReplanCycles": "Максимум циклов план→исполнение→проверка до принятия частичного результата.",
|
|
1275
|
+
"config.desc.critic.enabled": "Проверяющий в петле: ревью работы при мутациях и перед завершением.",
|
|
1276
|
+
"config.desc.critic.maxCalls": "Жёсткий лимит LLM-вызовов критика за прогон.",
|
|
1277
|
+
"config.desc.critic.maxRepairCycles": "Ограниченные циклы исправления по критическому вердикту.",
|
|
1278
|
+
"config.desc.critic.timeoutMs": "Таймаут вызова критика (fail-open).",
|
|
1177
1279
|
"config.desc.logLevel": "Подробность диагностических логов.",
|
|
1178
1280
|
"config.desc.locale": "Язык интерфейса и сообщений агента.",
|
|
1179
1281
|
"config.desc.version": "Установленная версия MMA (только чтение).",
|
|
@@ -1181,5 +1283,71 @@
|
|
|
1181
1283
|
"config.desc.security.paths.enabled": "Ограничивать файловые операции рабочей папкой и блокировать пути вне неё.",
|
|
1182
1284
|
"config.desc.security.contentScan.enabled": "Проверять содержимое файлов на опасные паттерны перед записью.",
|
|
1183
1285
|
"config.desc.security.sessionEncryption.enabled": "Шифровать сохранённые логи сессий на диске.",
|
|
1184
|
-
"config.desc.webToken": "Токен для доступа к веб-UI не с localhost (задаётся через --token / MMA_WEBUI_TOKEN)."
|
|
1286
|
+
"config.desc.webToken": "Токен для доступа к веб-UI не с localhost (задаётся через --token / MMA_WEBUI_TOKEN).",
|
|
1287
|
+
"web.setup.title": "Настройка MMA",
|
|
1288
|
+
"web.setup.subtitle": "Несколько коротких вопросов перед началом.",
|
|
1289
|
+
"web.setup.step.language": "Язык",
|
|
1290
|
+
"web.setup.step.provider": "Провайдер",
|
|
1291
|
+
"web.setup.step.key": "Ключ",
|
|
1292
|
+
"web.setup.step.model": "Модель",
|
|
1293
|
+
"web.setup.step.context": "Контекст",
|
|
1294
|
+
"web.setup.step.security": "Безопасность",
|
|
1295
|
+
"web.setup.step.review": "Проверка",
|
|
1296
|
+
"web.setup.language.title": "Выберите язык",
|
|
1297
|
+
"web.setup.language.hint": "Используется для интерфейса.",
|
|
1298
|
+
"web.setup.provider.title": "Выберите провайдера",
|
|
1299
|
+
"web.setup.provider.hint": "Для локальной модели выберите OpenAI-совместимый вариант и просканируйте сервер.",
|
|
1300
|
+
"web.setup.provider.base_url": "Базовый URL",
|
|
1301
|
+
"web.setup.provider.scan": "Найти локальные серверы",
|
|
1302
|
+
"web.setup.provider.scan_found_one": "Найден {count} сервер",
|
|
1303
|
+
"web.setup.provider.scan_found_few": "Найдено {count} сервера",
|
|
1304
|
+
"web.setup.provider.scan_found_many": "Найдено {count} серверов",
|
|
1305
|
+
"web.setup.provider.scan_none": "Локальные серверы не найдены — введите URL вручную.",
|
|
1306
|
+
"web.setup.provider.scan_failed": "Сканирование не удалось. Введите URL вручную.",
|
|
1307
|
+
"web.setup.provider.required": "Укажите базовый URL.",
|
|
1308
|
+
"web.setup.key.title": "API-ключ",
|
|
1309
|
+
"web.setup.key.hint": "Для локальных серверов можно оставить пустым. Хранится только в файле конфигурации и больше не показывается.",
|
|
1310
|
+
"web.setup.key.label": "Ключ",
|
|
1311
|
+
"web.setup.key.placeholder": "sk-…",
|
|
1312
|
+
"web.setup.model.title": "Выберите модель",
|
|
1313
|
+
"web.setup.model.hint": "Загрузите список у провайдера или введите имя модели.",
|
|
1314
|
+
"web.setup.model.name": "Имя модели",
|
|
1315
|
+
"web.setup.model.load": "Загрузить модели",
|
|
1316
|
+
"web.setup.model.load_found_one": "Загружена {count} модель",
|
|
1317
|
+
"web.setup.model.load_found_few": "Загружено {count} модели",
|
|
1318
|
+
"web.setup.model.load_found_many": "Загружено {count} моделей",
|
|
1319
|
+
"web.setup.model.load_none": "Модели не получены — введите имя вручную.",
|
|
1320
|
+
"web.setup.model.test": "Проверить подключение",
|
|
1321
|
+
"web.setup.model.testing": "Проверка…",
|
|
1322
|
+
"web.setup.model.test_ok": "Подключение работает.",
|
|
1323
|
+
"web.setup.model.test_fail": "Не удалось связаться с моделью.",
|
|
1324
|
+
"web.setup.model.required": "Выберите или введите модель.",
|
|
1325
|
+
"web.setup.context.title": "Контекст и итерации",
|
|
1326
|
+
"web.setup.context.hint": "Сколько контекста получает модель и сколько шагов с тулами она может сделать.",
|
|
1327
|
+
"web.setup.context.contextWindow": "Окно контекста (токены)",
|
|
1328
|
+
"web.setup.context.maxToolIterations": "Максимум итераций тулов",
|
|
1329
|
+
"web.setup.context.required": "Введите положительное число.",
|
|
1330
|
+
"web.setup.security.title": "Безопасность",
|
|
1331
|
+
"web.setup.security.hint": "Безопасные значения включены; отключайте только нужное.",
|
|
1332
|
+
"web.setup.security.paths": "Ограничить доступ к файлам рабочей папкой",
|
|
1333
|
+
"web.setup.security.bash": "Блокировать опасные shell-команды",
|
|
1334
|
+
"web.setup.security.flags": "Блокировать опасные флаги команд",
|
|
1335
|
+
"web.setup.review.title": "Проверка",
|
|
1336
|
+
"web.setup.review.hint": "Проверьте значения и завершите. Настройки сохранятся в конфиг.",
|
|
1337
|
+
"web.setup.review.provider": "Провайдер",
|
|
1338
|
+
"web.setup.review.baseUrl": "Базовый URL",
|
|
1339
|
+
"web.setup.review.apiKey": "API-ключ",
|
|
1340
|
+
"web.setup.review.model": "Модель",
|
|
1341
|
+
"web.setup.review.context": "Окно контекста",
|
|
1342
|
+
"web.setup.review.iterations": "Максимум итераций",
|
|
1343
|
+
"web.setup.review.locale": "Язык",
|
|
1344
|
+
"web.setup.review.security": "Безопасность",
|
|
1345
|
+
"web.setup.review.security_off": "выключено",
|
|
1346
|
+
"web.setup.review.not_needed": "не нужен",
|
|
1347
|
+
"web.setup.back": "Назад",
|
|
1348
|
+
"web.setup.next": "Далее",
|
|
1349
|
+
"web.setup.finish": "Завершить настройку",
|
|
1350
|
+
"web.setup.saving": "Сохранение…",
|
|
1351
|
+
"web.setup.saved_warning": "Сохранено с предупреждениями: {warning}",
|
|
1352
|
+
"web.setup.failed": "Не удалось завершить настройку. Проверьте значения и попробуйте снова."
|
|
1185
1353
|
}
|