micro-models-agent 1.7.0 → 2.0.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 +33 -0
- package/dist/i18n/en.json +103 -10
- package/dist/i18n/ru.json +103 -10
- package/dist/main.js +1426 -259
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,39 @@ All notable changes to Micro Models Agent (MMA) will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/), and this project adheres to [Semantic Versioning](https://semver.org/).
|
|
6
6
|
|
|
7
|
+
## [2.0.0] - 2026-09-22
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- **`/config` get/set/reset** (`src/config/registry.ts`, `src/cli/repl-commands.ts`): one settings surface. Keys are literal `config.json` paths (`contextWindow`, `contextBudget.systemPrompt`, `showReasoning`, `reasoning.mode`, `ui.verbosity`, …) with short aliases, tab completion for keys/values, and `/config reset <key>` / `--all` restoring the session-start (boot) snapshot.
|
|
12
|
+
- **Session export** (`src/modules/session/export.ts`): `/export` and `mma session export` write `md` (default), `json`, or `jsonl`; default path `~/.mma/exports/`; secrets redacted by default (`--no-redact`); rotated `.jsonl.gz` supported.
|
|
13
|
+
- **Tab completion** (`src/cli/completer.ts`): config keys/values, `/provider add` flags, command names for `/help`, session names for `/delete` and `/export`, subcommands with descriptions for `map`/`context`/`lsp`/`reasoning`/`verbose`.
|
|
14
|
+
- **`/help <command>`**: per-command usage, aliases and examples.
|
|
15
|
+
- **Unified unknown-subcommand errors** across `provider`/`model`/`skill`/`lsp` and config-key suggestions ("did you mean …").
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
|
|
19
|
+
- **`/reasoning`** (`src/cli/repl-commands.ts`): with no argument it now shows status (display + effort) instead of toggling; use `/reasoning show|hide` (aliases `on|off`) and `/reasoning level <auto|default|none|low|medium|high|max>`. Setting a level warns that the auto policy is off.
|
|
20
|
+
- **`/verbose`**: with no argument it shows the current level instead of toggling; all changes persist.
|
|
21
|
+
- **Uniform persistence**: `/provider use`, `/model use`, `/verbose`, `/reasoning` now save `config.json` immediately and print `saved · reset: /config reset <key>`.
|
|
22
|
+
- **`/context`**: accepts fractions (`0.1`) and percentages (`10%`); unknown arguments yield a clear error instead of a bogus size error.
|
|
23
|
+
- **`/sysprompt`**: default output is token count + block list; the full prompt prints only with `--full`.
|
|
24
|
+
- **`/status`**: now a compact one-line summary (model · provider · session · context).
|
|
25
|
+
- **`/provider add` usage** documents every flag; flag values are validated.
|
|
26
|
+
- **`/config locale`** re-registers commands and completion, so `/help`/usage switch language without a restart.
|
|
27
|
+
- **`showReasoning`** overrides `ui.verbosity=quiet` for reasoning lines.
|
|
28
|
+
|
|
29
|
+
### Removed
|
|
30
|
+
|
|
31
|
+
- **`use` alias of `/resume`** (ambiguous with `/model use`, `/provider use`); an unknown `/use` now suggests `/resume`.
|
|
32
|
+
- **`/reasoning` and `/verbose` bare-argument toggles** (replaced by explicit status behavior).
|
|
33
|
+
|
|
34
|
+
## [1.7.1] - 2026-09-22
|
|
35
|
+
|
|
36
|
+
### Changed
|
|
37
|
+
|
|
38
|
+
- **Default completion token cap** (`src/llm/openai-compat.ts`): `max_tokens` fallback doubled from 4096 to 8192 (`DEFAULT_MAX_COMPLETION_TOKENS`), so long answers are less likely to be cut by the generation limit. Still overridable via `provider.maxCompletionTokens`.
|
|
39
|
+
|
|
7
40
|
## [1.7.0] - 2026-09-22
|
|
8
41
|
|
|
9
42
|
### Added
|
package/dist/i18n/en.json
CHANGED
|
@@ -347,6 +347,10 @@
|
|
|
347
347
|
"cli.list_sessions": "List all sessions",
|
|
348
348
|
"cli.show_details": "Show session details",
|
|
349
349
|
"cli.delete_session": "Delete a session",
|
|
350
|
+
"cli.export_session": "Export a session to a file (md, json, or jsonl)",
|
|
351
|
+
"cli.export_format": "Output format: md|json|jsonl (default md)",
|
|
352
|
+
"cli.export_out": "Output path ('-' for stdout)",
|
|
353
|
+
"cli.export_no_redact": "Do not redact secrets",
|
|
350
354
|
"cli.first_run": "First run detected. Running setup wizard...",
|
|
351
355
|
"cli.first_run_oneshot": "No configuration found — running with defaults. Run `mma` (no arguments) once to set up the wizard.",
|
|
352
356
|
"cli.setup_saved_restart": "Settings saved. Restarting with the new configuration...",
|
|
@@ -414,20 +418,21 @@
|
|
|
414
418
|
"repl.exit_usage": "Usage: /exit",
|
|
415
419
|
"repl.clear": "Clear the screen",
|
|
416
420
|
"repl.clear_usage": "Usage: /clear",
|
|
421
|
+
"repl.clear_hint": "Screen cleared. To start a fresh session and context: /new",
|
|
417
422
|
"repl.run": "Run a prompt through the agent",
|
|
418
423
|
"repl.run_usage": "Usage: /run <prompt>",
|
|
419
|
-
"repl.config": "Show
|
|
420
|
-
"repl.config_usage": "Usage: /config",
|
|
421
|
-
"repl.reasoning": "
|
|
422
|
-
"repl.reasoning_usage": "Usage: /reasoning [auto|none|low|medium|high|max]",
|
|
424
|
+
"repl.config": "Show or change settings (get / set / reset)",
|
|
425
|
+
"repl.config_usage": "Usage: /config [<key> [value]] | /config reset <key> | /config reset --all [--yes] | /config migrate",
|
|
426
|
+
"repl.reasoning": "Show reasoning status, toggle display, or set effort level",
|
|
427
|
+
"repl.reasoning_usage": "Usage: /reasoning [show|hide|level <auto|default|none|low|medium|high|max>]",
|
|
423
428
|
"repl.reasoning_level_set": "Reasoning level set to: {level}",
|
|
424
429
|
"repl.reasoning_invalid_level": "Invalid level '{level}'. Valid: {valid}",
|
|
425
|
-
"repl.verbose": "Chat verbosity
|
|
430
|
+
"repl.verbose": "Chat verbosity (quiet, normal, verbose)",
|
|
426
431
|
"repl.verbose_usage": "Usage: /verbose [quiet|normal|verbose]",
|
|
427
432
|
"repl.verbose_set": "Chat verbosity: {level}",
|
|
428
433
|
"repl.verbose_invalid_level": "Invalid level '{level}'. Valid: {valid}",
|
|
429
434
|
"repl.last_action_none": "No recent action to show.",
|
|
430
|
-
"repl.status": "Show
|
|
435
|
+
"repl.status": "Show a compact status line",
|
|
431
436
|
"repl.status_usage": "Usage: /status",
|
|
432
437
|
"repl.plugins": "List loaded plugins",
|
|
433
438
|
"repl.plugins_usage": "Usage: /plugins [--all]",
|
|
@@ -467,10 +472,12 @@
|
|
|
467
472
|
"repl.context": "Context:",
|
|
468
473
|
"repl.sysprompt_label": "System prompt:",
|
|
469
474
|
"repl.sysprompt_size": "{used} / {budget} tokens",
|
|
470
|
-
"repl.sysprompt_desc": "
|
|
475
|
+
"repl.sysprompt_desc": "System prompt size and blocks (use --full for the text)",
|
|
476
|
+
"repl.sysprompt_usage": "Usage: /sysprompt [--full]",
|
|
477
|
+
"repl.sysprompt_full_hint": "Full prompt text hidden — run /sysprompt --full to print it.",
|
|
471
478
|
"repl.sysprompt_tokens": "System prompt ({count} tokens):",
|
|
472
479
|
"repl.excluded_blocks": "\nExcluded blocks: {count}",
|
|
473
|
-
"repl.context_usage": "Usage: /context [<size> | system <
|
|
480
|
+
"repl.context_usage": "Usage: /context [<size, min 1024> | system <share> | reserve <share>] (share 0.05–0.9 or e.g. 10%; system+reserve ≤ 0.95)",
|
|
474
481
|
"repl.msgs": "msgs",
|
|
475
482
|
"repl.max_iters": "Max iters:",
|
|
476
483
|
"repl.stuck_thresh": "Stuck thresh:",
|
|
@@ -514,13 +521,99 @@
|
|
|
514
521
|
"repl.provider_list": "List configured providers or hot-swap the active one",
|
|
515
522
|
"repl.provider_current": "Current provider",
|
|
516
523
|
"repl.provider_set": "Provider set to: {name}",
|
|
517
|
-
"repl.provider_usage": "/provider list
|
|
524
|
+
"repl.provider_usage": "Usage: /provider list | /provider use <name> | /provider add <name> [flags]\n --url <url> base API URL (fallback: known presets)\n --key <key> API key\n --priority <n> fallback order; lower = tried first\n --context-window <n> per-provider context window (tokens)\n --rpm <n> max requests/minute (default 60)\n --parallel <n> max parallel tasks (default 1)",
|
|
518
525
|
"repl.provider_add_missing_value": "Missing value for {flag}",
|
|
526
|
+
"repl.provider_add_invalid_number": "Invalid number for {flag}: '{value}'",
|
|
519
527
|
"repl.provider_switch_hint": "Switch to it with: /provider use {name}",
|
|
528
|
+
"repl.provider_flag_url": "Base API URL (fallback: known presets)",
|
|
529
|
+
"repl.provider_flag_key": "API key",
|
|
530
|
+
"repl.provider_flag_priority": "Fallback order; lower = tried first",
|
|
531
|
+
"repl.provider_flag_context_window": "Per-provider context window (tokens)",
|
|
532
|
+
"repl.provider_flag_rpm": "Max requests per minute (default 60)",
|
|
533
|
+
"repl.provider_flag_parallel": "Max parallel tasks (default 1)",
|
|
520
534
|
"repl.model_list": "List models of the active provider or switch the model",
|
|
521
535
|
"repl.model_current": "Current model",
|
|
522
536
|
"repl.model_set": "Model set to: {name}",
|
|
523
|
-
"repl.model_usage": "/model list
|
|
537
|
+
"repl.model_usage": "Usage: /model list | /model use <name>",
|
|
538
|
+
"repl.unknown_sub": "Unknown subcommand '{sub}' for /{cmd}. See usage below.",
|
|
539
|
+
"repl.help_unknown": "Unknown command '/{name}'",
|
|
540
|
+
"repl.help_aliases": "Aliases: {names}",
|
|
541
|
+
"repl.help_examples": "Examples:",
|
|
542
|
+
"repl.export": "Export a session to a file",
|
|
543
|
+
"repl.export_usage": "Usage: /export [<id|name>] [--format md|json|jsonl] [--out <path>] [--no-redact]",
|
|
544
|
+
"config.header": "Managed settings",
|
|
545
|
+
"config.col_setting": "Setting",
|
|
546
|
+
"config.col_value": "Value",
|
|
547
|
+
"config.col_domain": "Domain",
|
|
548
|
+
"config.col_change": "Change with",
|
|
549
|
+
"config.session_line": "Session: {name} ({id}) — {count} messages",
|
|
550
|
+
"config.usage_hint": "Get: /config <key> · Set: /config <key> <value> · Reset: /config reset <key>",
|
|
551
|
+
"config.saved": "saved · reset: /config reset {key}",
|
|
552
|
+
"config.read_only_hint": "read-only",
|
|
553
|
+
"config.read_only": "'{key}' is read-only",
|
|
554
|
+
"config.unknown_key": "Unknown key '{key}'. {suggestion}",
|
|
555
|
+
"config.suggest": "Did you mean '{name}'?",
|
|
556
|
+
"config.valid_keys": "Valid keys: {keys}",
|
|
557
|
+
"config.invalid_value": "Invalid value for {key}. {hint}",
|
|
558
|
+
"config.range": "Value out of range for {key}",
|
|
559
|
+
"config.combined": "system + reserve must stay below 0.95",
|
|
560
|
+
"config.hint_string": "Expected a non-empty string",
|
|
561
|
+
"config.hint_enum": "Allowed: {values}",
|
|
562
|
+
"config.hint_bool": "Expected on/off",
|
|
563
|
+
"config.hint_share": "Expected 0.05–0.9 or a percentage (e.g. 10%)",
|
|
564
|
+
"config.hint_int": "Expected an integer ≥ {min}",
|
|
565
|
+
"config.reset_ok": "{key} restored to session-start value: {value} · saved",
|
|
566
|
+
"config.reset_unchanged": "{key} already at session value",
|
|
567
|
+
"config.reset_none": "No settings changed this session",
|
|
568
|
+
"config.reset_all_confirm": "Reset {count} changed setting(s) to session-start values? [y/N] ",
|
|
569
|
+
"config.reset_all_done": "Restored {count} setting(s) · saved",
|
|
570
|
+
"config.reset_all_needs_yes": "Refusing to reset without confirmation in non-interactive mode; pass --yes",
|
|
571
|
+
"config.reset_cancelled": "Reset cancelled",
|
|
572
|
+
"config.reset_usage": "Usage: /config reset <key> | /config reset --all [--yes]",
|
|
573
|
+
"config.alias_label": "alias of",
|
|
574
|
+
"config.group_label": "group",
|
|
575
|
+
"reasoning.status": "Reasoning: display {display} · effort {level} {auto}",
|
|
576
|
+
"reasoning.on": "on",
|
|
577
|
+
"reasoning.off": "off",
|
|
578
|
+
"reasoning.auto_on": "(auto policy)",
|
|
579
|
+
"reasoning.auto_off": "(auto policy off)",
|
|
580
|
+
"reasoning.auto_off_hint": "Auto policy off. Restore with: /config reset reasoning.mode",
|
|
581
|
+
"reasoning.display_set": "Reasoning display: {state}",
|
|
582
|
+
"reasoning.unknown_sub": "Unknown argument '{sub}'.",
|
|
583
|
+
"reasoning.sub_show": "Show reasoning content",
|
|
584
|
+
"reasoning.sub_hide": "Hide reasoning content",
|
|
585
|
+
"reasoning.sub_level": "Set reasoning effort level",
|
|
586
|
+
"verbose.status": "Verbosity: {level}",
|
|
587
|
+
"verbose.sub_quiet": "One line per action",
|
|
588
|
+
"verbose.sub_normal": "Add short result summaries",
|
|
589
|
+
"verbose.sub_verbose": "Full per-action detail",
|
|
590
|
+
"context.unknown_arg": "Unknown argument '{arg}'.",
|
|
591
|
+
"context.sub_system": "System-prompt share",
|
|
592
|
+
"context.sub_reserve": "Response-reserve share",
|
|
593
|
+
"model.not_in_list": "Note: '{name}' is not in the known model list",
|
|
594
|
+
"model.sub_list": "List models of the active provider",
|
|
595
|
+
"model.sub_use": "Switch model",
|
|
596
|
+
"provider.sub_list": "List configured providers",
|
|
597
|
+
"provider.sub_use": "Switch active provider",
|
|
598
|
+
"provider.sub_add": "Add a provider",
|
|
599
|
+
"map.sub_summary": "Show the project map summary",
|
|
600
|
+
"map.sub_refresh": "Rebuild the project index",
|
|
601
|
+
"map.sub_find": "Search the project map",
|
|
602
|
+
"lsp.sub_status": "Show LSP server status",
|
|
603
|
+
"lsp.sub_restart": "Reset disabled servers",
|
|
604
|
+
"lsp.sub_check": "Run an LSP check on a path",
|
|
605
|
+
"skill.sub_list": "List available skills",
|
|
606
|
+
"skill.sub_loaded": "List loaded skills",
|
|
607
|
+
"skill.sub_load": "Load a skill",
|
|
608
|
+
"skill.sub_unload": "Unload a skill",
|
|
609
|
+
"skill.sub_search": "Search skills",
|
|
610
|
+
"export.written": "Exported to {path}",
|
|
611
|
+
"export.redacted": "secrets redacted (--no-redact to disable)",
|
|
612
|
+
"export.raw": "secrets NOT redacted",
|
|
613
|
+
"export.empty": "session has no messages — nothing exported",
|
|
614
|
+
"export.invalid_format": "Unknown format '{format}'. Use md|json|jsonl",
|
|
615
|
+
"export.missing_value": "Missing value for {flag}",
|
|
616
|
+
"export.write_failed": "Failed to write export: {error}",
|
|
524
617
|
"repl.group.general": "General",
|
|
525
618
|
"repl.group.agent": "Agent",
|
|
526
619
|
"repl.group.session": "Sessions",
|
package/dist/i18n/ru.json
CHANGED
|
@@ -341,6 +341,10 @@
|
|
|
341
341
|
"cli.list_sessions": "Список всех сессий",
|
|
342
342
|
"cli.show_details": "Показать детали сессии",
|
|
343
343
|
"cli.delete_session": "Удалить сессию",
|
|
344
|
+
"cli.export_session": "Экспортировать сессию в файл (md, json или jsonl)",
|
|
345
|
+
"cli.export_format": "Формат вывода: md|json|jsonl (по умолчанию md)",
|
|
346
|
+
"cli.export_out": "Путь вывода ('-' для stdout)",
|
|
347
|
+
"cli.export_no_redact": "Не скрывать секреты",
|
|
344
348
|
"cli.first_run": "Первый запуск. Запускаем мастер настройки...",
|
|
345
349
|
"cli.first_run_oneshot": "Конфигурация не найдена — запуск с настройками по умолчанию. Запустите `mma` без аргументов один раз для настройки.",
|
|
346
350
|
"cli.setup_saved_restart": "Настройки сохранены. Перезапуск с новой конфигурацией...",
|
|
@@ -408,20 +412,21 @@
|
|
|
408
412
|
"repl.exit_usage": "Использование: /exit",
|
|
409
413
|
"repl.clear": "Очистить экран",
|
|
410
414
|
"repl.clear_usage": "Использование: /clear",
|
|
415
|
+
"repl.clear_hint": "Экран очищен. Новая сессия и контекст: /new",
|
|
411
416
|
"repl.run": "Выполнить запрос через агента",
|
|
412
417
|
"repl.run_usage": "Использование: /run <запрос>",
|
|
413
|
-
"repl.config": "Показать
|
|
414
|
-
"repl.config_usage": "Использование: /config",
|
|
415
|
-
"repl.reasoning": "
|
|
416
|
-
"repl.reasoning_usage": "Использование: /reasoning [auto|none|low|medium|high|max]",
|
|
418
|
+
"repl.config": "Показать или изменить настройки (get / set / reset)",
|
|
419
|
+
"repl.config_usage": "Использование: /config [<ключ> [значение]] | /config reset <ключ> | /config reset --all [--yes] | /config migrate",
|
|
420
|
+
"repl.reasoning": "Показать статус рассуждений, переключить показ или уровень",
|
|
421
|
+
"repl.reasoning_usage": "Использование: /reasoning [show|hide|level <auto|default|none|low|medium|high|max>]",
|
|
417
422
|
"repl.reasoning_level_set": "Уровень рассуждений установлен: {level}",
|
|
418
423
|
"repl.reasoning_invalid_level": "Неверный уровень '{level}'. Допустимые: {valid}",
|
|
419
|
-
"repl.verbose": "Подробность
|
|
424
|
+
"repl.verbose": "Подробность вывода (quiet, normal, verbose)",
|
|
420
425
|
"repl.verbose_usage": "Использование: /verbose [quiet|normal|verbose]",
|
|
421
426
|
"repl.verbose_set": "Подробность вывода: {level}",
|
|
422
427
|
"repl.verbose_invalid_level": "Неверный уровень '{level}'. Допустимые: {valid}",
|
|
423
428
|
"repl.last_action_none": "Нет недавнего действия для показа.",
|
|
424
|
-
"repl.status": "Показать
|
|
429
|
+
"repl.status": "Показать компактную строку статуса",
|
|
425
430
|
"repl.status_usage": "Использование: /status",
|
|
426
431
|
"repl.plugins": "Список загруженных плагинов",
|
|
427
432
|
"repl.plugins_usage": "Использование: /plugins [--all]",
|
|
@@ -461,10 +466,12 @@
|
|
|
461
466
|
"repl.context": "Контекст:",
|
|
462
467
|
"repl.sysprompt_label": "Системный промпт:",
|
|
463
468
|
"repl.sysprompt_size": "{used} / {budget} токенов",
|
|
464
|
-
"repl.sysprompt_desc": "
|
|
469
|
+
"repl.sysprompt_desc": "Размер системного промпта и блоки (текст — через --full)",
|
|
470
|
+
"repl.sysprompt_usage": "Использование: /sysprompt [--full]",
|
|
471
|
+
"repl.sysprompt_full_hint": "Полный текст промпта скрыт — выполните /sysprompt --full.",
|
|
465
472
|
"repl.sysprompt_tokens": "Системный промпт ({count} токенов):",
|
|
466
473
|
"repl.excluded_blocks": "\nИсключённые блоки: {count}",
|
|
467
|
-
"repl.context_usage": "Использование: /context [
|
|
474
|
+
"repl.context_usage": "Использование: /context [<размер, мин 1024> | system <доля> | reserve <доля>] (доля 0.05–0.9 или напр. 10%; system+reserve ≤ 0.95)",
|
|
468
475
|
"repl.msgs": "сообщ.",
|
|
469
476
|
"repl.max_iters": "Макс итераций:",
|
|
470
477
|
"repl.stuck_thresh": "Порог зависания:",
|
|
@@ -508,13 +515,99 @@
|
|
|
508
515
|
"repl.provider_list": "Список настроенных провайдеров или горячая смена активного",
|
|
509
516
|
"repl.provider_current": "Текущий провайдер",
|
|
510
517
|
"repl.provider_set": "Провайдер установлен: {name}",
|
|
511
|
-
"repl.provider_usage": "/provider list
|
|
518
|
+
"repl.provider_usage": "Использование: /provider list | /provider use <имя> | /provider add <имя> [флаги]\n --url <url> базовый URL API (иначе — из пресетов)\n --key <ключ> API-ключ\n --priority <n> порядок fallback; меньше = раньше\n --context-window <n> окно контекста провайдера (токены)\n --rpm <n> запросов/мин (по умолчанию 60)\n --parallel <n> параллельных задач (по умолчанию 1)",
|
|
512
519
|
"repl.provider_add_missing_value": "Нет значения для {flag}",
|
|
520
|
+
"repl.provider_add_invalid_number": "Неверное число для {flag}: '{value}'",
|
|
513
521
|
"repl.provider_switch_hint": "Переключитесь на него: /provider use {name}",
|
|
522
|
+
"repl.provider_flag_url": "Базовый URL API (иначе — из пресетов)",
|
|
523
|
+
"repl.provider_flag_key": "API-ключ",
|
|
524
|
+
"repl.provider_flag_priority": "Порядок fallback; меньше = раньше",
|
|
525
|
+
"repl.provider_flag_context_window": "Окно контекста провайдера (токены)",
|
|
526
|
+
"repl.provider_flag_rpm": "Запросов в минуту (по умолчанию 60)",
|
|
527
|
+
"repl.provider_flag_parallel": "Параллельных задач (по умолчанию 1)",
|
|
514
528
|
"repl.model_list": "Список моделей активного провайдера или смена модели",
|
|
515
529
|
"repl.model_current": "Текущая модель",
|
|
516
530
|
"repl.model_set": "Модель установлена: {name}",
|
|
517
|
-
"repl.model_usage": "/model list
|
|
531
|
+
"repl.model_usage": "Использование: /model list | /model use <имя>",
|
|
532
|
+
"repl.unknown_sub": "Неизвестная подкоманда '{sub}' для /{cmd}. См. использование ниже.",
|
|
533
|
+
"repl.help_unknown": "Неизвестная команда '/{name}'",
|
|
534
|
+
"repl.help_aliases": "Алиасы: {names}",
|
|
535
|
+
"repl.help_examples": "Примеры:",
|
|
536
|
+
"repl.export": "Экспортировать сессию в файл",
|
|
537
|
+
"repl.export_usage": "Использование: /export [<id|имя>] [--format md|json|jsonl] [--out <путь>] [--no-redact]",
|
|
538
|
+
"config.header": "Управляемые настройки",
|
|
539
|
+
"config.col_setting": "Настройка",
|
|
540
|
+
"config.col_value": "Значение",
|
|
541
|
+
"config.col_domain": "Домен",
|
|
542
|
+
"config.col_change": "Как менять",
|
|
543
|
+
"config.session_line": "Сессия: {name} ({id}) — {count} сообщений",
|
|
544
|
+
"config.usage_hint": "Чтение: /config <ключ> · Запись: /config <ключ> <значение> · Сброс: /config reset <ключ>",
|
|
545
|
+
"config.saved": "сохранено · сброс: /config reset {key}",
|
|
546
|
+
"config.read_only_hint": "только чтение",
|
|
547
|
+
"config.read_only": "'{key}' — только чтение",
|
|
548
|
+
"config.unknown_key": "Неизвестный ключ '{key}'. {suggestion}",
|
|
549
|
+
"config.suggest": "Возможно, вы имели в виду '{name}'?",
|
|
550
|
+
"config.valid_keys": "Допустимые ключи: {keys}",
|
|
551
|
+
"config.invalid_value": "Неверное значение для {key}. {hint}",
|
|
552
|
+
"config.range": "Значение вне диапазона для {key}",
|
|
553
|
+
"config.combined": "system + reserve должны оставаться ниже 0.95",
|
|
554
|
+
"config.hint_string": "Ожидается непустая строка",
|
|
555
|
+
"config.hint_enum": "Допустимые: {values}",
|
|
556
|
+
"config.hint_bool": "Ожидается on/off",
|
|
557
|
+
"config.hint_share": "Ожидается 0.05–0.9 или процент (напр. 10%)",
|
|
558
|
+
"config.hint_int": "Ожидается целое ≥ {min}",
|
|
559
|
+
"config.reset_ok": "{key} восстановлен к значению на старте сессии: {value} · сохранено",
|
|
560
|
+
"config.reset_unchanged": "{key} уже соответствует значению сессии",
|
|
561
|
+
"config.reset_none": "В этой сессии настройки не менялись",
|
|
562
|
+
"config.reset_all_confirm": "Сбросить {count} изменённых настроек к значениям на старте сессии? [y/N] ",
|
|
563
|
+
"config.reset_all_done": "Восстановлено настроек: {count} · сохранено",
|
|
564
|
+
"config.reset_all_needs_yes": "Отказ от сброса без подтверждения в неинтерактивном режиме; укажите --yes",
|
|
565
|
+
"config.reset_cancelled": "Сброс отменён",
|
|
566
|
+
"config.reset_usage": "Использование: /config reset <ключ> | /config reset --all [--yes]",
|
|
567
|
+
"config.alias_label": "алиас",
|
|
568
|
+
"config.group_label": "группа",
|
|
569
|
+
"reasoning.status": "Рассуждения: показ {display} · усилие {level} {auto}",
|
|
570
|
+
"reasoning.on": "вкл",
|
|
571
|
+
"reasoning.off": "выкл",
|
|
572
|
+
"reasoning.auto_on": "(авто-политика)",
|
|
573
|
+
"reasoning.auto_off": "(авто-политика выключена)",
|
|
574
|
+
"reasoning.auto_off_hint": "Авто-политика выключена. Вернуть: /config reset reasoning.mode",
|
|
575
|
+
"reasoning.display_set": "Показ рассуждений: {state}",
|
|
576
|
+
"reasoning.unknown_sub": "Неизвестный аргумент '{sub}'.",
|
|
577
|
+
"reasoning.sub_show": "Показывать рассуждения",
|
|
578
|
+
"reasoning.sub_hide": "Скрыть рассуждения",
|
|
579
|
+
"reasoning.sub_level": "Установить уровень рассуждений",
|
|
580
|
+
"verbose.status": "Подробность: {level}",
|
|
581
|
+
"verbose.sub_quiet": "Одна строка на действие",
|
|
582
|
+
"verbose.sub_normal": "Плюс короткие сводки результатов",
|
|
583
|
+
"verbose.sub_verbose": "Полная деталь по действиям",
|
|
584
|
+
"context.unknown_arg": "Неизвестный аргумент '{arg}'.",
|
|
585
|
+
"context.sub_system": "Доля системного промпта",
|
|
586
|
+
"context.sub_reserve": "Доля резерва ответа",
|
|
587
|
+
"model.not_in_list": "Примечание: '{name}' нет в списке известных моделей",
|
|
588
|
+
"model.sub_list": "Список моделей активного провайдера",
|
|
589
|
+
"model.sub_use": "Сменить модель",
|
|
590
|
+
"provider.sub_list": "Список настроенных провайдеров",
|
|
591
|
+
"provider.sub_use": "Сменить активного провайдера",
|
|
592
|
+
"provider.sub_add": "Добавить провайдера",
|
|
593
|
+
"map.sub_summary": "Показать сводку карты проекта",
|
|
594
|
+
"map.sub_refresh": "Перестроить индекс проекта",
|
|
595
|
+
"map.sub_find": "Поиск по карте проекта",
|
|
596
|
+
"lsp.sub_status": "Статус LSP-серверов",
|
|
597
|
+
"lsp.sub_restart": "Сбросить отключённые серверы",
|
|
598
|
+
"lsp.sub_check": "Запустить LSP-проверку пути",
|
|
599
|
+
"skill.sub_list": "Список доступных скиллов",
|
|
600
|
+
"skill.sub_loaded": "Список загруженных скиллов",
|
|
601
|
+
"skill.sub_load": "Загрузить скилл",
|
|
602
|
+
"skill.sub_unload": "Выгрузить скилл",
|
|
603
|
+
"skill.sub_search": "Поиск скиллов",
|
|
604
|
+
"export.written": "Экспортировано в {path}",
|
|
605
|
+
"export.redacted": "секреты скрыты (--no-redact чтобы отключить)",
|
|
606
|
+
"export.raw": "секреты НЕ скрыты",
|
|
607
|
+
"export.empty": "в сессии нет сообщений — экспорт не создан",
|
|
608
|
+
"export.invalid_format": "Неизвестный формат '{format}'. Используйте md|json|jsonl",
|
|
609
|
+
"export.missing_value": "Нет значения для {flag}",
|
|
610
|
+
"export.write_failed": "Не удалось записать экспорт: {error}",
|
|
518
611
|
"repl.reload": "Перезагрузить агента с текущим конфигом",
|
|
519
612
|
"repl.reload_usage": "Использование: /reload",
|
|
520
613
|
"repl.reloading": "Перезагрузка агента...",
|