micro-models-agent 0.44.0 → 0.45.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/README.md +312 -312
- package/bin/mma.mjs +41 -41
- package/dist/main.js +241 -56
- package/dist/skills/builtin/git.md +36 -36
- package/dist/skills/builtin/typescript.md +35 -35
- package/package.json +1 -1
- package/dist/cli/commands.js +0 -333
- package/dist/cli/completer.js +0 -168
- package/dist/cli/index.js +0 -2
- package/dist/cli/main.js +0 -140
- package/dist/cli/repl-commands.js +0 -633
- package/dist/cli/repl.js +0 -486
- package/dist/cli/security-commands.js +0 -166
- package/dist/cli/setup.js +0 -249
- package/dist/config/config.js +0 -202
- package/dist/config/defaults.js +0 -100
- package/dist/config/experts.js +0 -15
- package/dist/config/index.js +0 -3
- package/dist/config/security.js +0 -200
- package/dist/config/types.js +0 -1
- package/dist/core/agent-moe.js +0 -110
- package/dist/core/agent.js +0 -695
- package/dist/core/bootstrap.js +0 -337
- package/dist/core/index.js +0 -2
- package/dist/core/prompt-builder.js +0 -55
- package/dist/core/session-logger.js +0 -155
- package/dist/core/types.js +0 -1
- package/dist/core/workspace.js +0 -76
- package/dist/i18n/en.json +0 -525
- package/dist/i18n/index.js +0 -46
- package/dist/i18n/ru.json +0 -525
- package/dist/index.js +0 -22
- package/dist/llm/image-utils.js +0 -144
- package/dist/llm/index.js +0 -4
- package/dist/llm/model-loader.js +0 -78
- package/dist/llm/openai-compat.js +0 -353
- package/dist/llm/orchestrator.js +0 -194
- package/dist/llm/provider.js +0 -10
- package/dist/llm/response.js +0 -39
- package/dist/llm/token-counter.js +0 -39
- package/dist/llm/types.js +0 -1
- package/dist/logger/app-logger.js +0 -143
- package/dist/logger/file-log.js +0 -151
- package/dist/logger/index.js +0 -1
- package/dist/migration/backup.js +0 -45
- package/dist/migration/detect.js +0 -50
- package/dist/migration/index.js +0 -2
- package/dist/modules/browser/actions.js +0 -46
- package/dist/modules/browser/cookie-store.js +0 -24
- package/dist/modules/browser/index.js +0 -5
- package/dist/modules/browser/module.js +0 -28
- package/dist/modules/browser/session.js +0 -335
- package/dist/modules/browser/snapshot.js +0 -114
- package/dist/modules/browser/types.js +0 -9
- package/dist/modules/certification/cli.js +0 -176
- package/dist/modules/certification/fact-checker.js +0 -84
- package/dist/modules/certification/loader.js +0 -111
- package/dist/modules/certification/manifest.js +0 -50
- package/dist/modules/certification/runner.js +0 -162
- package/dist/modules/certification/scenarios.js +0 -124
- package/dist/modules/certification/types.js +0 -1
- package/dist/modules/context/index.js +0 -1
- package/dist/modules/context/manager.js +0 -349
- package/dist/modules/execution/auditor.js +0 -66
- package/dist/modules/execution/index.js +0 -8
- package/dist/modules/execution/module.js +0 -779
- package/dist/modules/execution/moe-executor.js +0 -266
- package/dist/modules/execution/plan-coverage.js +0 -68
- package/dist/modules/execution/plan-persister.js +0 -46
- package/dist/modules/execution/plan-store.js +0 -159
- package/dist/modules/execution/plan-validator.js +0 -153
- package/dist/modules/execution/planner.js +0 -85
- package/dist/modules/execution/stuck-detector.js +0 -347
- package/dist/modules/execution/tracker.js +0 -67
- package/dist/modules/execution/types.js +0 -1
- package/dist/modules/execution/verifier.js +0 -178
- package/dist/modules/hallucination/confidence.js +0 -59
- package/dist/modules/hallucination/consistency.js +0 -26
- package/dist/modules/hallucination/detector.js +0 -46
- package/dist/modules/hallucination/factual.js +0 -190
- package/dist/modules/hallucination/index.js +0 -5
- package/dist/modules/hallucination/js-identifiers.js +0 -72
- package/dist/modules/hallucination/llm-judge.js +0 -103
- package/dist/modules/index.js +0 -5
- package/dist/modules/indexer/cache.js +0 -38
- package/dist/modules/indexer/index.js +0 -3
- package/dist/modules/indexer/module.js +0 -192
- package/dist/modules/indexer/walker.js +0 -101
- package/dist/modules/lsp/client.js +0 -235
- package/dist/modules/lsp/config.js +0 -81
- package/dist/modules/lsp/index.js +0 -3
- package/dist/modules/lsp/module.js +0 -68
- package/dist/modules/lsp/types.js +0 -1
- package/dist/modules/mcp/client.js +0 -399
- package/dist/modules/mcp/index.js +0 -3
- package/dist/modules/mcp/module.js +0 -146
- package/dist/modules/mcp/registry.js +0 -15
- package/dist/modules/memory/index.js +0 -1
- package/dist/modules/memory/module.js +0 -48
- package/dist/modules/memory/search.js +0 -40
- package/dist/modules/memory/store.js +0 -69
- package/dist/modules/pipelines/engine.js +0 -60
- package/dist/modules/pipelines/index.js +0 -3
- package/dist/modules/pipelines/parser.js +0 -53
- package/dist/modules/pipelines/template.js +0 -14
- package/dist/modules/plugins/builtin/lint-on-write.js +0 -226
- package/dist/modules/plugins/builtin/notify.js +0 -8
- package/dist/modules/plugins/index.js +0 -1
- package/dist/modules/plugins/loader.js +0 -28
- package/dist/modules/plugins/manager.js +0 -161
- package/dist/modules/plugins/types.js +0 -1
- package/dist/modules/processes/index.js +0 -2
- package/dist/modules/processes/registry.js +0 -238
- package/dist/modules/processes/runner.js +0 -23
- package/dist/modules/registry.js +0 -45
- package/dist/modules/security/audit-log.js +0 -136
- package/dist/modules/security/audit-notifier.js +0 -292
- package/dist/modules/security/command-validator.js +0 -211
- package/dist/modules/security/content-scanner.js +0 -53
- package/dist/modules/security/data-sanitizer.js +0 -97
- package/dist/modules/security/encryption.js +0 -240
- package/dist/modules/security/index.js +0 -14
- package/dist/modules/security/network-validator.js +0 -79
- package/dist/modules/security/path-validator.js +0 -209
- package/dist/modules/security/rate-limiter.js +0 -119
- package/dist/modules/security/security-policies.js +0 -547
- package/dist/modules/security/session-encryption.js +0 -210
- package/dist/modules/security/session-isolation.js +0 -95
- package/dist/modules/session/index.js +0 -3
- package/dist/modules/session/manager.js +0 -172
- package/dist/modules/session/module.js +0 -24
- package/dist/modules/session/store.js +0 -228
- package/dist/modules/session/types.js +0 -1
- package/dist/modules/skills/index.js +0 -2
- package/dist/modules/skills/loader.js +0 -72
- package/dist/modules/skills/module.js +0 -130
- package/dist/modules/types.js +0 -1
- package/dist/modules/updater/checker.js +0 -32
- package/dist/modules/updater/index.js +0 -1
- package/dist/modules/user-profile/compressor.js +0 -16
- package/dist/modules/user-profile/index.js +0 -1
- package/dist/modules/user-profile/profile.js +0 -68
- package/dist/tools/approve.js +0 -32
- package/dist/tools/attach-image.js +0 -89
- package/dist/tools/bash.js +0 -337
- package/dist/tools/browser.js +0 -97
- package/dist/tools/create-dir.js +0 -55
- package/dist/tools/delete-file.js +0 -62
- package/dist/tools/edit-file.js +0 -79
- package/dist/tools/executor.js +0 -145
- package/dist/tools/file-info.js +0 -45
- package/dist/tools/filter-tools.js +0 -10
- package/dist/tools/glob-tool.js +0 -26
- package/dist/tools/grep-tool.js +0 -86
- package/dist/tools/index.js +0 -67
- package/dist/tools/list-dir.js +0 -47
- package/dist/tools/load-skill.js +0 -44
- package/dist/tools/mcp-call.js +0 -68
- package/dist/tools/move-file.js +0 -85
- package/dist/tools/path-utils.js +0 -51
- package/dist/tools/pipeline-run.js +0 -144
- package/dist/tools/preview.js +0 -2
- package/dist/tools/process-kill.js +0 -29
- package/dist/tools/process-list.js +0 -38
- package/dist/tools/process-log.js +0 -41
- package/dist/tools/question.js +0 -142
- package/dist/tools/read-file.js +0 -83
- package/dist/tools/recall.js +0 -110
- package/dist/tools/registry.js +0 -36
- package/dist/tools/remember.js +0 -67
- package/dist/tools/scope-check.js +0 -30
- package/dist/tools/search-history.js +0 -84
- package/dist/tools/subagent.js +0 -151
- package/dist/tools/types.js +0 -1
- package/dist/tools/user-input.js +0 -123
- package/dist/tools/web-browse.js +0 -86
- package/dist/tools/web-fetch.js +0 -98
- package/dist/tools/web-search.js +0 -78
- package/dist/tools/write-file.js +0 -83
- package/dist/ui/box.js +0 -81
- package/dist/ui/colors.js +0 -4
- package/dist/ui/diff.js +0 -178
- package/dist/ui/index.js +0 -6
- package/dist/ui/md-formatter.js +0 -212
- package/dist/ui/output.js +0 -13
- package/dist/ui/renderer.js +0 -204
- package/dist/ui/spinner.js +0 -70
- package/dist/ui/table.js +0 -144
package/dist/i18n/ru.json
DELETED
|
@@ -1,525 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"file.created": "Создан {path}",
|
|
3
|
-
"file.deleted": "Удалён {path}",
|
|
4
|
-
"file.updated": "Обновлён {path}",
|
|
5
|
-
"file.written": "Записан {path}",
|
|
6
|
-
"file.notfound": "Файл не найден: {path}",
|
|
7
|
-
"file.dir_notfound": "Каталог не найден: {path}",
|
|
8
|
-
"file.path_not_allowed": "Путь недопустим: {path}",
|
|
9
|
-
"file.path_not_allowed_short": "Путь недопустим",
|
|
10
|
-
"file.is_directory": "Это каталог, используйте rmdir: {path}",
|
|
11
|
-
"file.replaced_in": "Заменено в {path}",
|
|
12
|
-
"file.string_not_found": "Строка не найдена в файле:\n{str}",
|
|
13
|
-
"file.moved": "Перемещён {from} → {to}",
|
|
14
|
-
"file.not_found_short": "Не найдено: {path}",
|
|
15
|
-
"file.empty": "(пусто)",
|
|
16
|
-
"file.no_matches": "Нет совпадений",
|
|
17
|
-
"file.truncated": "\n... (обрезано)",
|
|
18
|
-
"file.read_header": "── {path} ({ext}, {total} строк, строки {from}-{to})",
|
|
19
|
-
"file.read_truncated": "\n\n[Обрезано: ещё {remaining} строк. Продолжите чтение через read_file с offset={next}]",
|
|
20
|
-
"file.empty_page": "(пустая страница)",
|
|
21
|
-
"error.timeout": "Таймаут запроса",
|
|
22
|
-
"error.unknown": "Неизвестная ошибка",
|
|
23
|
-
"error.notfound": "Не найдено: {path}",
|
|
24
|
-
"error.prefix": "Ошибка: ",
|
|
25
|
-
"error.command_error": "Ошибка команды: {message}",
|
|
26
|
-
"error.llm": "Ошибка LLM: {message}",
|
|
27
|
-
"error.response_blocked": "Ответ заблокирован: {reason}",
|
|
28
|
-
"error.max_iters": "Достигнут максимум итераций ({max})",
|
|
29
|
-
"error.empty_response": "Модель вернула пустой ответ после повторных попыток",
|
|
30
|
-
"error.grep_failed": "Ошибка grep: {message}",
|
|
31
|
-
"error.search_failed": "Ошибка поиска: {message}",
|
|
32
|
-
"error.fetch_failed": "Ошибка загрузки: {message}",
|
|
33
|
-
"error.fetch_url_failed": "Не удалось загрузить {url}: {message}",
|
|
34
|
-
"error.http": "HTTP {status}: {statusText}",
|
|
35
|
-
"error.llm_api": "Ошибка LLM API {status} ({statusText}): {errorText}",
|
|
36
|
-
"error.llm_retries": "Запрос LLM не удался после повторов",
|
|
37
|
-
"error.no_response_body": "Нет потока тела ответа",
|
|
38
|
-
"session.started": "Сессия начата: {id}",
|
|
39
|
-
"session.ended": "Сессия завершена: {id}",
|
|
40
|
-
"session.not_found": "Сессия не найдена: {id}",
|
|
41
|
-
"session.no_active": "Нет активной сессии",
|
|
42
|
-
"session.deleted": "Сессия удалена: {id}",
|
|
43
|
-
"session.renamed": "Сессия переименована в: {name}",
|
|
44
|
-
"session.created": "Создана сессия: {name}",
|
|
45
|
-
"session.resumed": "Возобновлена сессия: {name}",
|
|
46
|
-
"session.chat_cleared": "Чат очищен. Начните вводить.",
|
|
47
|
-
"session.chat_loaded": "История чата загружена. Продолжите с места остановки.",
|
|
48
|
-
"session.chat_history": "История чата:",
|
|
49
|
-
"session.user_label": "Пользователь",
|
|
50
|
-
"session.assistant_label": "Ассистент",
|
|
51
|
-
"session.no_history": "История чата пуста",
|
|
52
|
-
"session.no_sessions": "Сессии не найдены",
|
|
53
|
-
"session.no_sessions_hint": "Сессии не найдены. Создайте одну командой /new <имя>",
|
|
54
|
-
"session.available": "Доступные сессии:",
|
|
55
|
-
"session.no_match": "Нет сессии подходящей по \"{query}\"",
|
|
56
|
-
"session.default_name": "Сессия {date}",
|
|
57
|
-
"session.info": "[Сессия: \"{name}\" ({id}) — {count} сообщений]",
|
|
58
|
-
"session.col_active": "",
|
|
59
|
-
"session.col_id": "ID",
|
|
60
|
-
"session.col_name": "Имя",
|
|
61
|
-
"session.col_updated": "Обновлена",
|
|
62
|
-
"session.col_msgs": "Сообщ.",
|
|
63
|
-
"tool.executed": "Выполнен {name}",
|
|
64
|
-
"tool.failed": "Инструмент {name} упал: {error}",
|
|
65
|
-
"tool.unknown": "Неизвестный инструмент: {name}",
|
|
66
|
-
"tool.blocked": "Заблокировано плагином: {plugin}",
|
|
67
|
-
"tool.blocked_reason": "Заблокировано плагином: {plugin}. Причина: {reason}",
|
|
68
|
-
"tool.using": "[{label}]",
|
|
69
|
-
"tool.friendly.write_file": "Запись файла",
|
|
70
|
-
"tool.friendly.read_file": "Чтение файла",
|
|
71
|
-
"tool.friendly.edit_file": "Редактирование файла",
|
|
72
|
-
"tool.friendly.create_dir": "Создание папки",
|
|
73
|
-
"tool.friendly.delete_file": "Удаление файла",
|
|
74
|
-
"tool.friendly.move_file": "Перемещение файла",
|
|
75
|
-
"tool.friendly.list_dir": "Список файлов",
|
|
76
|
-
"tool.friendly.file_info": "Информация о файле",
|
|
77
|
-
"tool.friendly.glob": "Поиск файлов",
|
|
78
|
-
"tool.friendly.grep": "Поиск по содержимому",
|
|
79
|
-
"tool.friendly.bash": "Выполнение команды",
|
|
80
|
-
"tool.friendly.load_skill": "Загрузка скилла",
|
|
81
|
-
"tool.friendly.plan": "Планирование",
|
|
82
|
-
"tool.friendly.todo": "Обновление задач",
|
|
83
|
-
"tool.friendly.verify": "Проверка",
|
|
84
|
-
"tool.friendly.web_search": "Поиск в интернете",
|
|
85
|
-
"tool.friendly.web_fetch": "Загрузка страницы",
|
|
86
|
-
"tool.friendly.web_browse": "Просмотр страницы",
|
|
87
|
-
"tool.web_fetch_result": "Загружена страница: {url} — {chars} симв., {lines} строк{truncated}",
|
|
88
|
-
"tool.web_browse_result": "Просмотрена страница: {url} — {chars} симв., {lines} строк{truncated}",
|
|
89
|
-
"tool.web_search_result": "Результаты поиска \"{query}\" — {count} результатов",
|
|
90
|
-
"tool.friendly.browser": "Браузер",
|
|
91
|
-
"tool.friendly.subagent": "Задача подагенту",
|
|
92
|
-
"tool.friendly.question": "Вопрос пользователю",
|
|
93
|
-
"tool.friendly.approve": "Запрос подтверждения",
|
|
94
|
-
"tool.friendly.search_history": "Поиск в истории",
|
|
95
|
-
"tool.friendly.pipeline_run": "Запуск пайплайна",
|
|
96
|
-
"tool.friendly.mcp_call": "MCP вызов",
|
|
97
|
-
"tool.truncated": "[Обрезано: удалено {tokens} токенов]",
|
|
98
|
-
"tool.subagent_queued": "Задача подагенту добавлена: {task}",
|
|
99
|
-
"tool.pipeline_started": "Пайплайн \"{name}\" запущен. Движок пайплайнов — заглушка, задача отправлена.",
|
|
100
|
-
"tool.mcp_call": "MCP вызов: {server}/{tool} с {args}",
|
|
101
|
-
"tool.action_required": "Требуется действие.",
|
|
102
|
-
"tool.approve_prompt": "Одобрить? {action}",
|
|
103
|
-
"tool.approve_yes": "Да",
|
|
104
|
-
"tool.approve_yes_desc": "Одобрить действие",
|
|
105
|
-
"tool.approve_no": "Нет",
|
|
106
|
-
"tool.approve_no_desc": "Отклонить действие",
|
|
107
|
-
"tool.approved": "Одобрено",
|
|
108
|
-
"tool.rejected": "Отклонено пользователем",
|
|
109
|
-
"tool.user_input.custom_option": "Свой вариант",
|
|
110
|
-
"tool.user_input.choice_single": "Ваш выбор (1-{max}): ",
|
|
111
|
-
"tool.user_input.choice_multiple": "Ваш выбор (через запятую, напр. 1,3): ",
|
|
112
|
-
"tool.user_input.invalid": "Неверный выбор, попробуйте ещё раз.",
|
|
113
|
-
"tool.user_input.custom_prompt": "Ваш ответ: ",
|
|
114
|
-
"tool.question.progress": "Вопрос {current}/{total}",
|
|
115
|
-
"tool.question.no_questions": "Вопросы не указаны",
|
|
116
|
-
"tool.question.unanswered": "Без ответа",
|
|
117
|
-
"tool.question.answered": "Пользователь ответил на ваши вопросы: {formatted}. Теперь продолжайте с учётом ответов.",
|
|
118
|
-
"tool.name_or_task": "Укажите параметр \"name\" или \"task\"",
|
|
119
|
-
"tool.invalid_params": "Неверные параметры",
|
|
120
|
-
"tool.skill_budget": "Скилл \"{name}\" загружен ({tokens} токенов, осталось {remaining} в бюджете скиллов). Контент скилла теперь в системном промпте — перезагрузка после компрессии не нужна.",
|
|
121
|
-
"tool.skill_available_hint": "Доступные скиллы",
|
|
122
|
-
"tool.no_results": "Нет результатов по \"{query}\"",
|
|
123
|
-
"tool.search_results": "Результаты поиска \"{query}\":\n{results}",
|
|
124
|
-
"tool.history_results": "Результаты истории \"{query}\":\n{results}",
|
|
125
|
-
"tool.no_history": "Нет записей истории по \"{query}\"",
|
|
126
|
-
"tool.no_sessions_dir": "Каталог сессий не найден по {dir}",
|
|
127
|
-
"tool.history_error": "Ошибка поиска истории: {error}",
|
|
128
|
-
"tool.memory_error": "Ошибка памяти: {error}",
|
|
129
|
-
"tool.screenshot_unavailable": "[Скриншот сделан — изображение недоступно для текстовой модели]",
|
|
130
|
-
"tool.timeout": "Инструмент {name} превысил таймаут ({seconds} сек)",
|
|
131
|
-
"tool.aborted": "Инструмент {name} прерван пользователем",
|
|
132
|
-
"tool.interactive_disabled": "Интерактивный инструмент отключён в режиме exit-on-complete. Продолжай без вопроса пользователю.",
|
|
133
|
-
"proc.started": "Фоновый процесс запущен: {id} (PID {pid}).\nКоманда: {command}",
|
|
134
|
-
"proc.promoted_hint": "Команда всё ещё выполняется через {ms} мс — переведена в фоновый режим",
|
|
135
|
-
"proc.manage_hint": "Проверить вывод: process_log id={id}. Остановить: process_kill id={id}. Список всех: process_list.",
|
|
136
|
-
"proc.none": "Фоновых процессов нет.",
|
|
137
|
-
"proc.not_found": "Процесс не найден: {id}",
|
|
138
|
-
"proc.killed": "Процесс {id} (PID {pid}) остановлен.",
|
|
139
|
-
"proc.kill_failed": "Не удалось остановить процесс {id}",
|
|
140
|
-
"proc.list_header": "Фоновые процессы",
|
|
141
|
-
"proc.log_header": "Вывод процесса {id} ({status}):",
|
|
142
|
-
"proc.log_empty": "(вывода пока нет)",
|
|
143
|
-
"proc.hint": "Управление: {list}, {log}, {kill}.",
|
|
144
|
-
"proc.status_running": "работает",
|
|
145
|
-
"proc.status_exited": "завершён",
|
|
146
|
-
"proc.status_killed": "остановлен",
|
|
147
|
-
"tool.friendly.process_list": "Список фоновых процессов",
|
|
148
|
-
"tool.friendly.process_log": "Вывод процесса",
|
|
149
|
-
"tool.friendly.process_kill": "Остановка процесса",
|
|
150
|
-
"plan.no_steps": "Не указаны шаги плана. Укажите конкретные шаги с файлами и командами.",
|
|
151
|
-
"plan.created": "План создан: {title} ({steps} шагов)",
|
|
152
|
-
"plan.coverage_warning": "План может не покрывать требуемые файлы из постановки: {missing}. Добавьте шаги, покрывающие их.",
|
|
153
|
-
"plan.step_done": "Шаг {n}/{total}: {description} ✓",
|
|
154
|
-
"plan.complete": "Задача выполнена: {summary}",
|
|
155
|
-
"plan.title_steps": "План \"{title}\" создан с {count} шагами",
|
|
156
|
-
"plan.step_marked": "Шаг {step} отмечен как {status}",
|
|
157
|
-
"plan.aborted": "План отменён",
|
|
158
|
-
"plan.unknown_action": "Неизвестное действие плана: {action}",
|
|
159
|
-
"plan.updated": "План обновлён: {title} ({steps} шагов)",
|
|
160
|
-
"plan.acknowledged": "План {action}: принято",
|
|
161
|
-
"plan.step_status": "Шаг {step}: {status}",
|
|
162
|
-
"plan.no_active": "Нет активного плана",
|
|
163
|
-
"plan.step_not_found": "Шаг не найден",
|
|
164
|
-
"plan.show_header": "Статус плана:",
|
|
165
|
-
"plan.show_empty": "(в плане нет шагов)",
|
|
166
|
-
"plan.list_header": "Планы:",
|
|
167
|
-
"plan.list_empty": "Нет планов",
|
|
168
|
-
"plan.switch_no_id": "Укажите id плана для переключения",
|
|
169
|
-
"plan.not_found": "План не найден: {id}",
|
|
170
|
-
"plan.switched": "Переключено на план {id}: {title}",
|
|
171
|
-
"plan.replanned": "План перепланирован: {kept} выполненных шагов сохранено, {steps} новых шагов добавлено",
|
|
172
|
-
"plan.replan_no_steps": "Укажите новые шаги для перепланирования",
|
|
173
|
-
"todo.added": "Добавлено {count} задач: {items}",
|
|
174
|
-
"todo.marked_done": "Отмечено выполненными: {count}",
|
|
175
|
-
"todo.no_active": "Нет активных задач",
|
|
176
|
-
"todo.unknown_action": "Неизвестное действие todo: {action}",
|
|
177
|
-
"todo.acknowledged": "Todo принято",
|
|
178
|
-
"verify.passed": "Проверка пройдена",
|
|
179
|
-
"verify.failed": "Проверка не пройдена: {details}",
|
|
180
|
-
"verify.file_exists": "Файл существует: {path}",
|
|
181
|
-
"verify.file_not_found": "Файл не найден: {path}",
|
|
182
|
-
"verify.script_passed": "Скрипт '{script}' пройден",
|
|
183
|
-
"verify.script_failed": "Скрипт '{script}' не пройден: {message}",
|
|
184
|
-
"verify.syntax_error": "Синтаксическая ошибка в: {path}",
|
|
185
|
-
"cli.description": "Micro Models Agent — ИИ-агент для кодинга на малых моделях",
|
|
186
|
-
"cli.init": "Запустить мастер настройки",
|
|
187
|
-
"cli.config_saved": "Конфигурация сохранена в ~/.mma/config.json",
|
|
188
|
-
"cli.manage_config": "Управление конфигурацией",
|
|
189
|
-
"cli.config_key": "Ключ конфига (напр., model, provider.baseUrl)",
|
|
190
|
-
"cli.set_value": "Установить значение",
|
|
191
|
-
"cli.set_done": "Установлено {key}={value}",
|
|
192
|
-
"cli.show_config": "Показать текущий конфиг",
|
|
193
|
-
"cli.manage_models": "Управление моделями",
|
|
194
|
-
"cli.list_models": "Список доступных моделей",
|
|
195
|
-
"cli.current_model": "Текущая модель:",
|
|
196
|
-
"cli.model_hint": "(Используйте /model use <имя> для смены)",
|
|
197
|
-
"cli.model_fetch_failed": "Не удалось получить модели: {error}",
|
|
198
|
-
"cli.available_models": "Доступные модели:",
|
|
199
|
-
"cli.no_models_found": "Модели не найдены у провайдера",
|
|
200
|
-
"cli.fetching_models": "Загрузка списка моделей...",
|
|
201
|
-
"cli.manage_context": "Управление контекстным окном",
|
|
202
|
-
"cli.invalid_context_size": "Некорректный размер контекста. Должно быть число >= 1024",
|
|
203
|
-
"cli.context_set": "Контекстное окно установлено: {size} токенов",
|
|
204
|
-
"cli.set_model": "Установить модель по умолчанию",
|
|
205
|
-
"cli.model_set": "Модель установлена: {name}",
|
|
206
|
-
"cli.certify": "Запустить сертификационный набор для модели",
|
|
207
|
-
"cli.cert_provider_url": "Базовый URL провайдера для сертификации (по умолчанию — текущий конфиг)",
|
|
208
|
-
"cli.cert_provider_key": "API-ключ провайдера (необязательно)",
|
|
209
|
-
"cli.cert_context_window": "Размер контекстного окна в токенах",
|
|
210
|
-
"cli.cert_tags": "Теги сценариев через запятую (core, security, image, network, browser)",
|
|
211
|
-
"cli.cert_reps": "Повторов по умолчанию на сценарий (переопределяется сценарием)",
|
|
212
|
-
"cli.cert_force": "Перепрогнать существующую сертификацию",
|
|
213
|
-
"cli.cert_clean": "Удалить песочницы после успешного прогона",
|
|
214
|
-
"cli.cert_security_required": "Безопасность отключена. Включите её (например `mma security set-policy balanced`), чтобы запустить security-сьют.",
|
|
215
|
-
"cli.cert_no_scenarios": "Нет сценариев под теги: {tags}",
|
|
216
|
-
"cli.cert_exists": "Сертификация {model} на этом провайдере уже существует.",
|
|
217
|
-
"cli.cert_exists_hint": "Используйте --force для перепрогона.",
|
|
218
|
-
"cli.cert_started": "Сертификация {model} на {provider}...",
|
|
219
|
-
"cli.cert_done": "Сертификация завершена: {passed} pass, {failed} fail, {skipped} skipped ({total} всего)",
|
|
220
|
-
"cli.cert_rep_pass": "pass",
|
|
221
|
-
"cli.cert_rep_fail": "fail",
|
|
222
|
-
"cli.cert_status": "Показать статус сертификации модели",
|
|
223
|
-
"cli.cert_list": "Список всех сертификаций",
|
|
224
|
-
"cli.cert_uncertify": "Удалить сертификацию",
|
|
225
|
-
"cli.cert_not_found": "Сертификация {model} не найдена",
|
|
226
|
-
"cli.cert_uncertified": "Сертификация {model} удалена",
|
|
227
|
-
"cli.cert_empty": "Сертификаций пока нет. Запустите `mma model certify <модель>`.",
|
|
228
|
-
"cli.cert_provider_col": "провайдер",
|
|
229
|
-
"cli.cert_suite_col": "сьют",
|
|
230
|
-
"cli.cert_date_col": "дата",
|
|
231
|
-
"cli.cert_version_col": "версия MMA",
|
|
232
|
-
"cli.cert_stale_hint": "Запустите `mma model certify --force` для обновления.",
|
|
233
|
-
"cli.cert_fixture_missing": "Фикстура отсутствует для {id}: {path}",
|
|
234
|
-
"cli.cert_marks_hint": "Маркеры: ✔ сертифицировано на этом провайдере, ○ сертифицировано на старой версии MMA, · не сертифицировано",
|
|
235
|
-
"cli.manage_providers": "Управление провайдерами",
|
|
236
|
-
"cli.list_providers": "Список провайдеров",
|
|
237
|
-
"cli.current_provider": "Текущий провайдер:",
|
|
238
|
-
"cli.base_url": "Базовый URL:",
|
|
239
|
-
"cli.set_provider": "Установить активный провайдер",
|
|
240
|
-
"cli.provider_set": "Провайдер установлен: {name}",
|
|
241
|
-
"cli.manage_sessions": "Управление сессиями",
|
|
242
|
-
"cli.list_sessions": "Список всех сессий",
|
|
243
|
-
"cli.show_details": "Показать детали сессии",
|
|
244
|
-
"cli.delete_session": "Удалить сессию",
|
|
245
|
-
"cli.first_run": "Первый запуск. Запускаем мастер настройки...",
|
|
246
|
-
"cli.unknown_cmd": "Неизвестная команда: {name}.",
|
|
247
|
-
"cli.help_hint": "Введите /help для списка команд.",
|
|
248
|
-
"cli.available_cmds": "\nДоступные команды:",
|
|
249
|
-
"cli.no_output": "Агент завершил работу, но не выдал результата. Возможно, задача не выполнена до конца.",
|
|
250
|
-
"cli.no_agents_md": "Отключить загрузку AGENTS.md в системный промпт",
|
|
251
|
-
"cli.dir": "Рабочая директория агента (по умолчанию — текущая)",
|
|
252
|
-
"cli.exit_on_complete": "Завершить сразу после выполнения задачи; интерактивные тулзы (question/approve) не блокируют stdin, а возвращают ошибку",
|
|
253
|
-
"cli.json": "Вывести результат в формате JSON (режим однократного запуска)",
|
|
254
|
-
"cli.security.description": "Управление настройками безопасности",
|
|
255
|
-
"cli.security.status": "Показать текущую конфигурацию безопасности",
|
|
256
|
-
"cli.security.policies": "Список доступных политик безопасности",
|
|
257
|
-
"cli.security.set_policy": "Применить пресет политики безопасности",
|
|
258
|
-
"cli.security.preset": "Пресет политики (strict, balanced, permissive)",
|
|
259
|
-
"cli.security.invalid_preset": "Некорректный пресет. Доступные: {presets}",
|
|
260
|
-
"cli.security.policy_applied": "Политика безопасности применена: {name}",
|
|
261
|
-
"cli.security.policy_description": "Описание: {description}",
|
|
262
|
-
"cli.security.enable_encryption": "Включить шифрование файлов сессий",
|
|
263
|
-
"cli.security.disable_encryption": "Отключить шифрование файлов сессий",
|
|
264
|
-
"cli.security.encryption_enabled": "Шифрование файлов сессий включено",
|
|
265
|
-
"cli.security.encryption_disabled": "Шифрование файлов сессий отключено",
|
|
266
|
-
"cli.security.enable_audit": "Включить уведомления аудита",
|
|
267
|
-
"cli.security.disable_audit": "Отключить уведомления аудита",
|
|
268
|
-
"cli.security.audit_enabled": "Уведомления аудита включены",
|
|
269
|
-
"cli.security.audit_disabled": "Уведомления аудита отключены",
|
|
270
|
-
"cli.security.audit_stats": "Показать статистику уведомлений аудита",
|
|
271
|
-
"cli.security.audit_stats_title": "Статистика уведомлений аудита",
|
|
272
|
-
"cli.security.total_notifications": "Всего уведомлений",
|
|
273
|
-
"cli.security.by_severity": "По уровню серьезности",
|
|
274
|
-
"cli.security.by_type": "По типу",
|
|
275
|
-
"cli.security.low": "Низкий",
|
|
276
|
-
"cli.security.medium": "Средний",
|
|
277
|
-
"cli.security.high": "Высокий",
|
|
278
|
-
"cli.security.critical": "Критический",
|
|
279
|
-
"cli.security.current_policy": "Текущая конфигурация безопасности",
|
|
280
|
-
"cli.security.bash_enabled": "Проверка команд bash",
|
|
281
|
-
"cli.security.path_validation": "Проверка доступа к путям",
|
|
282
|
-
"cli.security.network_validation": "Проверка сетевых запросов",
|
|
283
|
-
"cli.security.content_scanning": "Сканирование содержимого",
|
|
284
|
-
"cli.security.max_recursion": "Максимальная глубина рекурсии",
|
|
285
|
-
"cli.security.max_file_ops": "Максимум операций с файлами",
|
|
286
|
-
"cli.security.rate_limit": "Ограничение запросов",
|
|
287
|
-
"cli.security.session_encryption": "Шифрование сессий",
|
|
288
|
-
"cli.security.audit_notifier": "Уведомления аудита",
|
|
289
|
-
"cli.security.available_policies": "Доступные политики безопасности",
|
|
290
|
-
"cli.security.recommended_for": "Рекомендуется для",
|
|
291
|
-
"cli.yes": "Да",
|
|
292
|
-
"cli.no": "Нет",
|
|
293
|
-
"repl.help": "Показать доступные команды",
|
|
294
|
-
"repl.help_usage": "Использование: /help",
|
|
295
|
-
"repl.exit": "Выйти из REPL",
|
|
296
|
-
"repl.exit_usage": "Использование: /exit",
|
|
297
|
-
"repl.clear": "Очистить экран",
|
|
298
|
-
"repl.clear_usage": "Использование: /clear",
|
|
299
|
-
"repl.run": "Выполнить запрос через агента",
|
|
300
|
-
"repl.run_usage": "Использование: /run <запрос>",
|
|
301
|
-
"repl.config": "Показать текущую конфигурацию",
|
|
302
|
-
"repl.config_usage": "Использование: /config",
|
|
303
|
-
"repl.reasoning": "Переключить показ рассуждений модели",
|
|
304
|
-
"repl.reasoning_usage": "Использование: /reasoning",
|
|
305
|
-
"repl.status": "Показать статус агента",
|
|
306
|
-
"repl.status_usage": "Использование: /status",
|
|
307
|
-
"repl.sessions": "Список всех сессий (* активная)",
|
|
308
|
-
"repl.sessions_usage": "Использование: /sessions",
|
|
309
|
-
"repl.new": "Создать новую сессию",
|
|
310
|
-
"repl.new_usage": "Использование: /new [имя]",
|
|
311
|
-
"repl.resume": "Переключиться на сессию по id или имени",
|
|
312
|
-
"repl.resume_usage": "Использование: /resume <id|имя>",
|
|
313
|
-
"repl.rename": "Переименовать текущую сессию",
|
|
314
|
-
"repl.rename_usage": "Использование: /rename <новое-имя>",
|
|
315
|
-
"repl.delete": "Удалить сессию по id",
|
|
316
|
-
"repl.delete_usage": "Использование: /delete <id-сессии>",
|
|
317
|
-
"repl.skill": "Управление скиллами (list, loaded, load, unload, search)",
|
|
318
|
-
"repl.no_skills": "Нет доступных скиллов",
|
|
319
|
-
"repl.available_skills": "Доступные скиллы:",
|
|
320
|
-
"repl.no_loaded": "Нет загруженных скиллов",
|
|
321
|
-
"repl.loaded_skills": "Загруженные скиллы:",
|
|
322
|
-
"repl.budget": "Бюджет: {used} / {total} токенов (осталось {remaining})",
|
|
323
|
-
"repl.skill_load_usage": "Использование: /skill load <имя>",
|
|
324
|
-
"repl.skill_unload_usage": "Использование: /skill unload <имя>",
|
|
325
|
-
"repl.skill_unloaded": "Скилл \"{name}\" выгружен",
|
|
326
|
-
"repl.skill_not_loaded": "Скилл \"{name}\" не загружен",
|
|
327
|
-
"repl.skill_search_usage": "Использование: /skill search <запрос>",
|
|
328
|
-
"repl.no_skill_match": "Нет скиллов по \"{query}\"",
|
|
329
|
-
"repl.skills_matching": "Скиллы по \"{query}\":",
|
|
330
|
-
"repl.skill_unknown_sub": "Неизвестная подкоманда скилла: {subcmd}",
|
|
331
|
-
"repl.skill_usage": "Использование: /skill [list|loaded|load|unload|search]",
|
|
332
|
-
"repl.agent": "Агент: ",
|
|
333
|
-
"repl.interrupt": "Прервано (Esc)",
|
|
334
|
-
"repl.title": "MMA REPL v{version}",
|
|
335
|
-
"repl.model": "Модель:",
|
|
336
|
-
"repl.provider": "Провайдер:",
|
|
337
|
-
"repl.context": "Контекст:",
|
|
338
|
-
"repl.sysprompt_label": "Системный промпт:",
|
|
339
|
-
"repl.sysprompt_size": "{used} / {budget} токенов",
|
|
340
|
-
"repl.sysprompt_desc": "Показать системный промпт",
|
|
341
|
-
"repl.max_iters": "Макс итераций:",
|
|
342
|
-
"repl.stuck_thresh": "Порог зависания:",
|
|
343
|
-
"repl.reasoning_label": "Рассуждения:",
|
|
344
|
-
"repl.log_level": "Уровень лога:",
|
|
345
|
-
"repl.locale": "Язык:",
|
|
346
|
-
"repl.session_label": "Сессия:",
|
|
347
|
-
"repl.skills_label": "Скиллы:",
|
|
348
|
-
"repl.plugins_label": "Плагины:",
|
|
349
|
-
"repl.mcp_label": "MCP:",
|
|
350
|
-
"repl.work_dir": "Директория:",
|
|
351
|
-
"repl.agents_label": "Инструкции:",
|
|
352
|
-
"repl.not_found": "не найден",
|
|
353
|
-
"repl.disabled": "отключено (--no-agents-md)",
|
|
354
|
-
"repl.show": "показ",
|
|
355
|
-
"repl.hide": "скрыть",
|
|
356
|
-
"repl.resume_hint": "Используйте /resume <id> или /resume <имя> для переключения между сессиями",
|
|
357
|
-
"repl.reasoning_status": "Рассуждения: {status}",
|
|
358
|
-
"repl.wizard": "Запустить мастер настройки",
|
|
359
|
-
"repl.wizard_usage": "Использование: /wizard",
|
|
360
|
-
"repl.wizard_running": "Запуск мастера настройки... (текущая конфигурация будет перезаписана)",
|
|
361
|
-
"repl.provider_list": "Показать/сменить провайдер",
|
|
362
|
-
"repl.provider_current": "Текущий провайдер",
|
|
363
|
-
"repl.provider_set": "Провайдер установлен: {name}",
|
|
364
|
-
"repl.provider_usage": "Использование: /provider list | /provider use <тип>",
|
|
365
|
-
"repl.model_list": "Показать/сменить модель",
|
|
366
|
-
"repl.model_current": "Текущая модель",
|
|
367
|
-
"repl.model_set": "Модель установлена: {name}",
|
|
368
|
-
"repl.model_usage": "Использование: /model list | /model use <имя>",
|
|
369
|
-
"repl.reload": "Перезагрузить агента с текущим конфигом",
|
|
370
|
-
"repl.reload_usage": "Использование: /reload",
|
|
371
|
-
"repl.reloading": "Перезагрузка агента...",
|
|
372
|
-
"repl.reloaded": "Агент перезагружен",
|
|
373
|
-
"repl.group.general": "Общее",
|
|
374
|
-
"repl.group.agent": "Агент",
|
|
375
|
-
"repl.group.session": "Сессии",
|
|
376
|
-
"repl.group.skill": "Скиллы",
|
|
377
|
-
"setup.title": "\n Мастер настройки MMA v2\n",
|
|
378
|
-
"setup.select_provider": "\n Выберите тип провайдера:",
|
|
379
|
-
"setup.select_provider_num": "\n Выберите провайдер (1-{max})",
|
|
380
|
-
"setup.scanning": " Сканирование локальных LLM-серверов...",
|
|
381
|
-
"setup.found_servers": " Найдено серверов: {count}",
|
|
382
|
-
"setup.no_servers": " Локальные серверы не найдены. Введите URL вручную.",
|
|
383
|
-
"setup.api_base": " API Base URL",
|
|
384
|
-
"setup.provider_type": " Тип провайдера",
|
|
385
|
-
"setup.api_key": " API ключ (нажмите Enter для пропуска)",
|
|
386
|
-
"setup.fetching_models": " Загрузка списка моделей...",
|
|
387
|
-
"setup.available_models": " Доступные модели:",
|
|
388
|
-
"setup.select_model": " Выберите модель (1-{max})",
|
|
389
|
-
"setup.model_name": " Имя модели",
|
|
390
|
-
"setup.testing": "\n Тестирование чата с моделью \"{model}\"...",
|
|
391
|
-
"setup.ok": " OK — соединение успешно",
|
|
392
|
-
"setup.warning": " ВНИМАНИЕ: не удалось подключиться — проверьте API endpoint и ключ",
|
|
393
|
-
"setup.agent_settings": "\n --- Настройки агента ---",
|
|
394
|
-
"setup.context_window": " Контекстное окно (токены)",
|
|
395
|
-
"setup.max_iters": " Макс итераций инструментов",
|
|
396
|
-
"setup.language": "\n --- Язык ---",
|
|
397
|
-
"setup.ui_lang": " Язык интерфейса (en/ru)",
|
|
398
|
-
"setup.complete": "\n Настройка завершена!\n",
|
|
399
|
-
"setup.select_server": "\n Выберите сервер (1-{max})",
|
|
400
|
-
"setup.custom_url": "Свой URL",
|
|
401
|
-
"setup.scanning_spinner": "Сканирование локальных LLM-серверов…",
|
|
402
|
-
"setup.fetching_spinner": "Загрузка списка моделей…",
|
|
403
|
-
"setup.testing_spinner": "Проверка чата с \"{model}\"…",
|
|
404
|
-
"setup.summary_setting": "Параметр",
|
|
405
|
-
"setup.summary_value": "Значение",
|
|
406
|
-
"setup.security_header": "\n --- Безопасность ---",
|
|
407
|
-
"setup.security_status_off": " Безопасность: ВЫКЛ (по умолчанию — все команды разрешены)",
|
|
408
|
-
"setup.security_configure": " Настроить безопасность? (y/N)",
|
|
409
|
-
"setup.security_bash_block": " Блокировать опасные команды (rm, sudo, ssh и т.д.)? (y/N)",
|
|
410
|
-
"setup.security_flags_block": " Блокировать опасные флаги (--force, -rf и т.д.)? (y/N)",
|
|
411
|
-
"setup.security_paths_deny": " Разрешить доступ к .git/, .env, node_modules/? (y/N)",
|
|
412
|
-
"skill.already_loaded": "Скилл \"{name}\" уже загружен",
|
|
413
|
-
"skill.not_found": "Скилл \"{name}\" не найден ни в одном каталоге",
|
|
414
|
-
"skill.no_match": "Нет скиллов подходящих для: {task}",
|
|
415
|
-
"skill.too_large": "Скилл \"{name}\" слишком большой ({tokens} токенов). Бюджет: {budget} токенов. Продолжайте задачу без этого скилла.",
|
|
416
|
-
"skill.exceeds_budget": "Скилл \"{name}\" ({tokens} токенов) превышает остаток бюджета ({remaining} токенов). Сначала выгрузите другие скиллы.",
|
|
417
|
-
"skill.loaded": "Скилл \"{name}\" загружен ({tokens} токенов, осталось {remaining})",
|
|
418
|
-
"skill.auto_loaded": "[Автозагружен скилл: {name}]",
|
|
419
|
-
"skill.prompt_hint": "НЕ загружайте скиллы автоматически. Загружайте скилл ТОЛЬКО когда пользователь явно об этом просит (например 'используй скилл X' или 'загрузи скилл Y'). Скиллы ниже перечислены только для справки — не угадывайте какой скилл подходит по описанию задачи.",
|
|
420
|
-
"skill.prompt_fallback": "Если load_skill не удался из-за большого размера скилла, продолжайте задачу без него — не останавливайтесь.",
|
|
421
|
-
"skill.loaded_content": "[Скилл загружен: {name}]\n{content}\n\nИспользуйте эти знания для ответа на вопрос пользователя.",
|
|
422
|
-
"exec.stuck": "Нет прогресса на шаге {stepId} ({description}) — {iterations} итераций.",
|
|
423
|
-
"exec.stuck_recovery": "Шаг {stepId} — \"{description}\" — без прогресса уже {iterations} итераций. Попробуйте другой подход: проверьте что нужно для этого шага, установлены ли зависимости, или создайте файлы напрямую через write_file вместо команд терминала. После завершения шага вызовите plan update step={stepId} status=done.",
|
|
424
|
-
"exec.tool_errors": "Инструмент {tool} упал {count} раз. Попробуйте другой инструмент.",
|
|
425
|
-
"exec.tool_errors_recovery": "Инструмент {tool} упал {count} раз подряд. Попробуйте альтернативу: создайте файлы напрямую через write_file, используйте другую команду, или пропустите этот шаг через plan update step=N status=skipped с пометкой почему.",
|
|
426
|
-
"exec.repetitive_tool": "Инструмент {tool} вызван {count} раз с одинаковыми аргументами и результатом. Попробуйте другой подход — создайте файлы напрямую, измените аргументы или проверьте статус процесса через process_log.",
|
|
427
|
-
"exec.consecutive_failures_recovery": "{count} инструментов подряд упали. Создавайте файлы напрямую через write_file вместо команд терминала. Проверьте что зависимости установлены (npm install). Не запускайте сборку/тесты пока не созданы все файлы.",
|
|
428
|
-
"exec.plan_warning": "Текущий шаг плана {step} — \"{description}\", но вызывается {tool} для файлов вне этого шага. Завершите текущий шаг, вызовите plan update step={step} status=done, затем переходите к следующему.",
|
|
429
|
-
"exec.plan_blocked": "{max} вызовов подряд вне текущего шага. Завершите шаг {step} — остальные шаги ждут пока этот не будет выполнен.",
|
|
430
|
-
"exec.off_track": "Шаг {stepId} — \"{description}\", но используется {tool} для другого пути. Вернитесь к текущему шагу.",
|
|
431
|
-
"exec.step_gate_deps": "[⚠ Шаг {step} \"{description}\": зависимости не установлены. Сначала выполните команду установки (npm install, pip install и т.д.). Проверьте что lock-файл или директория зависимостей существует. Если этот шаг на самом деле не нужен (внешних зависимостей нет) — пропусти его: plan update step={step} status=skipped note=\"зависимости не нужны\".]",
|
|
432
|
-
"exec.step_gate_deps_force": "[⚠ Шаг {step}: зависимости всё ещё не установлены (нет lock-файла) — второе предупреждение. Если этот шаг НЕ нужен — НЕМЕДЛЕННО вызови: plan update step={step} status=skipped note=\"зависимости не нужны\". Если нужен — выполни установку прямо сейчас. Не делай других вызовов инструментов до обновления плана.]",
|
|
433
|
-
"exec.step_gate_empty": "[⚠ Шаг {step}: файлы существуют, но выглядят пустыми: {files}. Добавьте реальный код в эти файлы перед тем как переходить к следующему шагу.]",
|
|
434
|
-
"exec.step_gate_ok": "[✓] Шаг {step} завершён и проверен. ПЕРЕХОДИМ к шагу {nextStep}: \"{nextDesc}\". Работайте ТОЛЬКО над этим шагом.",
|
|
435
|
-
"exec.step_gate_last": "[✓] Шаг {step} завершён — это был последний шаг. Проверьте всё вместе и предоставьте финальный ответ.]",
|
|
436
|
-
"exec.audit_pass": "[✓] Задача выполнена: {done}/{total} шагов, {files} файлов проверено",
|
|
437
|
-
"exec.audit_fail": "[✗] Задача не выполнена: {done}/{total} шагов, {files} файлов отсутствует",
|
|
438
|
-
"exec.audit_fail_typecheck": "[✗] Задача не выполнена: {done}/{total} шагов, {missing} файлов отсутствует, ошибка typecheck: {typeError}",
|
|
439
|
-
"exec.audit_incomplete": "[⚠ Финальная проверка не пройдена: {summary}. Задача НЕ завершена — продолжайте работу. Оставшиеся шаги: {steps}]",
|
|
440
|
-
"exec.mass_edit_warning": "⚠️ План затрагивает {count} файлов — проверьте полный список перед продолжением.",
|
|
441
|
-
"exec.escalation": "\n\n⚠️ Агент застрял на шаге {stepId} ({description}). Эскалация к пользователю — пожалуйста, подскажите как действовать.",
|
|
442
|
-
"exec.hints": "\n[Подсказки]\n{hints}",
|
|
443
|
-
"exec.file_rewrite_warning": "⚠️ Файл {file} был перезаписан {count} раз. Попробуйте другой подход — текущая стратегия исправлений не работает.",
|
|
444
|
-
"hall.max_retries_exhausted": "Модель вернула пустой или недостаточный ответ после нескольких попыток",
|
|
445
|
-
"hall.short_response": "Слишком короткий или пустой ответ",
|
|
446
|
-
"hall.repetitive": "Слишком повторяющийся ответ ({pct}% совпадение)",
|
|
447
|
-
"hall.uncertainty": "Маркеры неопределённости: {markers}",
|
|
448
|
-
"hall.unknown_paths": "Упомянутые файлы не найдены: {paths}",
|
|
449
|
-
"hall.contradiction_llm": "Противоречит ранее принятому решению{reason}",
|
|
450
|
-
"hall.uncertainty_prefix": "\n\n[⚠️ Неопределённость] ",
|
|
451
|
-
"browser.repeated_action": "Вы повторили то же действие ({action}) {threshold} раз. Попробуйте другой подход: используйте \"snapshot\" для перечитки страницы, другие номера элементов или другой URL.",
|
|
452
|
-
"browser.unknown_action": "Неизвестное действие: {action}",
|
|
453
|
-
"browser.error": "Ошибка браузера: {message}",
|
|
454
|
-
"browser.no_page": "Нет открытой страницы. Сначала выполните \"open\".",
|
|
455
|
-
"browser.url_required": "Требуется URL",
|
|
456
|
-
"browser.create_page_failed": "Не удалось создать страницу",
|
|
457
|
-
"browser.nav_failed": "Ошибка навигации: {message}",
|
|
458
|
-
"browser.invalid_target": "Неверный таргет. Укажите номер элемента из snapshot.",
|
|
459
|
-
"browser.click_failed": "Ошибка клика: {message}. Проверьте номер элемента.",
|
|
460
|
-
"browser.invalid_target_short": "Неверный таргет.",
|
|
461
|
-
"browser.text_required": "Требуется текст.",
|
|
462
|
-
"browser.type_failed": "Ошибка ввода: {message}",
|
|
463
|
-
"browser.direction_invalid": "Направление должно быть: up, down, top, bottom",
|
|
464
|
-
"browser.scroll_failed": "Ошибка прокрутки: {message}",
|
|
465
|
-
"browser.closed": "Браузер закрыт.",
|
|
466
|
-
"browser.no_page_short": "Нет страницы",
|
|
467
|
-
"browser.no_elements": "(нет интерактивных элементов на странице)",
|
|
468
|
-
"browser.more_elements": "... и другие элементы не показаны. Используйте прокрутку или поиск.",
|
|
469
|
-
"pipeline.invalid": "Невалидный пайплайн: требуются name и steps",
|
|
470
|
-
"pipeline.step_missing_fields": "Шаг не содержит обязательных полей (id, agent, prompt): {step}",
|
|
471
|
-
"pipeline.circular": "Циклическая зависимость: {stepId}",
|
|
472
|
-
"plugin.loaded": "Загружен плагин: {name}",
|
|
473
|
-
"plugin.skipped": "Пропущен несовместимый плагин: {entry} ({message})",
|
|
474
|
-
"migration.detected": "[MMA] Обнаружен старый конфиг. {summary}",
|
|
475
|
-
"migration.summary": "[MMA] {summary}",
|
|
476
|
-
"migration.config_bak": "- config → config.json.bak",
|
|
477
|
-
"migration.dir_bak": "- .mma/ → .mma.bak/ ({count} файлов)",
|
|
478
|
-
"migration.migrated": "Мигрировано:",
|
|
479
|
-
"migration.not_needed": "Миграция не требуется",
|
|
480
|
-
"ui.error_prefix": "Ошибка: ",
|
|
481
|
-
"ui.success_prefix": "✓ ",
|
|
482
|
-
"ui.warning_prefix": "⚠ ",
|
|
483
|
-
"ui.thinking": "Думаю…",
|
|
484
|
-
"indexer.map_header": "Карта проекта",
|
|
485
|
-
"indexer.top_directories": "Основные директории",
|
|
486
|
-
"indexer.files": "Файлы",
|
|
487
|
-
"indexer.empty": "Нет проиндексированных файлов",
|
|
488
|
-
"indexer.and_more": "... и ещё {count} файлов",
|
|
489
|
-
"indexer.project_map_desc": "Получить карту проекта: сводка по файлам, языкам и экспортам. Используйте действие 'find' для поиска файлов по пути или экспорту, 'refresh' для перестроения индекса.",
|
|
490
|
-
"indexer.project_map_action_desc": "Действие: summary, refresh или find",
|
|
491
|
-
"indexer.project_map_query_desc": "Строка поиска для действия find (совпадение по пути или экспортированным именам)",
|
|
492
|
-
"indexer.summary": "Карта проекта: {summary}",
|
|
493
|
-
"indexer.refreshed": "Карта проекта обновлена: {summary}",
|
|
494
|
-
"indexer.not_indexed": "Проект ещё не проиндексирован",
|
|
495
|
-
"indexer.find_results": "Найдено {count} совпадающих файлов:\n{results}",
|
|
496
|
-
"indexer.no_matches": "Нет совпадающих файлов для \"{query}\"",
|
|
497
|
-
"tool.friendly.project_map": "Карта проекта",
|
|
498
|
-
"config.decryption_warning": "Предупреждение: не удалось расшифровать конфигурацию: {error}",
|
|
499
|
-
"config.encryption_warning": "Предупреждение: не удалось зашифровать конфигурацию: {error}",
|
|
500
|
-
"image.source_required": "Укажите источник изображения: путь к файлу, URL или \"clipboard\".",
|
|
501
|
-
"image.clipboard_empty": "Буфер обмена не содержит изображение. Скопируйте изображение (например, скриншот через Win+Shift+S).",
|
|
502
|
-
"image.not_found": "Файл изображения не найден: {path}",
|
|
503
|
-
"image.no_context": "Менеджер контекста недоступен. Изображение можно прикрепить только во время активной сессии.",
|
|
504
|
-
"image.attached": "Изображение прикреплено из {source} ({size}). Оно будет включено в следующее сообщение.",
|
|
505
|
-
"image.error": "Не удалось загрузить изображение: {message}",
|
|
506
|
-
"tool.friendly.attach_image": "Прикрепить изображение",
|
|
507
|
-
"repl.image": "Прикрепить изображение",
|
|
508
|
-
"repl.image_usage": "/image <путь|URL|clipboard> — прикрепить изображение к следующему сообщению",
|
|
509
|
-
"tool.friendly.remember": "Запомнить",
|
|
510
|
-
"tool.friendly.recall": "Вспомнить",
|
|
511
|
-
"tool.remember.preference": "Запомнено: {key} = {value}",
|
|
512
|
-
"tool.remember.entry": "Запомнено: {category} — \"{entry}\"",
|
|
513
|
-
"tool.remember.key_required": "Для preferences требуется ключ (key)",
|
|
514
|
-
"tool.remember.entry_required": "Требуется текст записи",
|
|
515
|
-
"tool.recall.empty": "Ничего не найдено по \"{query}\"",
|
|
516
|
-
"tool.recall.no_memory": "Память пуста",
|
|
517
|
-
"tool.recall.search_results": "Результаты {category}:\n{results}",
|
|
518
|
-
"ctx.compactions": "сжатий: {count}",
|
|
519
|
-
"ctx.quality": "качество: {percent}%",
|
|
520
|
-
"ctx.delta_pos": "контекст +{tokens}",
|
|
521
|
-
"ctx.delta_neg": "контекст -{tokens} ↓",
|
|
522
|
-
"ctx.delta_zero": "контекст ±0",
|
|
523
|
-
"file.notfound_resolved": "Файл не найден: {path} (резолвится в {resolved})",
|
|
524
|
-
"bash.echo_write_blocked": "Запись файлов через echo/printf ненадёжна в Windows cmd.exe (кавычки и многострочность ломаются). Используй инструмент write_file вместо этого (цель: {path})."
|
|
525
|
-
}
|
package/dist/index.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export { DEFAULTS, loadConfig } from "./config/index";
|
|
2
|
-
export { Logger } from "./logger/index";
|
|
3
|
-
export { PromptBuilder } from "./core/index";
|
|
4
|
-
export { OpenAICompatProvider, TokenCounter, parseChunks, OrchestratorClient, } from "./llm/index";
|
|
5
|
-
export { ToolRegistry, ToolExecutor, readFileTool, writeFileTool, editFileTool, globTool, grepTool, listDirTool, createDirTool, deleteFileTool, moveFileTool, fileInfoTool, bashTool, subagentTool, webSearchTool, webFetchTool, webBrowseTool, createLoadSkillTool, pipelineRunTool, mcpCallTool, searchHistoryTool, registerAllTools, } from "./tools/index";
|
|
6
|
-
export { MigrationDetector, BackupManager } from "./migration/index";
|
|
7
|
-
import { MigrationDetector } from "./migration/detect";
|
|
8
|
-
import { BackupManager } from "./migration/backup";
|
|
9
|
-
import { t } from "./i18n/index";
|
|
10
|
-
import { homedir } from "os";
|
|
11
|
-
import { join } from "path";
|
|
12
|
-
export function checkMigration(configDir) {
|
|
13
|
-
const dir = configDir || join(homedir(), ".mma");
|
|
14
|
-
const detector = new MigrationDetector(dir);
|
|
15
|
-
if (detector.needsMigration()) {
|
|
16
|
-
const backup = new BackupManager(dir);
|
|
17
|
-
backup.backupConfig();
|
|
18
|
-
backup.backupAll();
|
|
19
|
-
const summary = backup.getBackupSummary();
|
|
20
|
-
console.log(t("migration.summary", { summary }));
|
|
21
|
-
}
|
|
22
|
-
}
|