micro-models-agent 2.9.0 → 2.10.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.
@@ -412,6 +412,9 @@ body.light .imgcard .ph { background: var(--ph-light); }
412
412
  .startbanner b { font-weight: 400; color: var(--dim-a); }
413
413
  .errline { color: var(--err); padding-left: 26px; overflow-wrap: anywhere; }
414
414
  .errline .hint { color: var(--dim-a); display: block; }
415
+ /* settings JSON validation hint — own class so global `.errline` queries
416
+ (chat turn errors, e2e) never match hidden settings rows. */
417
+ .json-err { color: var(--err); overflow-wrap: anywhere; }
415
418
  .grouped { color: var(--dim-a); padding-left: 8px; overflow-wrap: anywhere; }
416
419
  .grouped .pipe { color: var(--pipe); }
417
420
  .msgs .busy { color: var(--think); display: flex; gap: 8px; align-items: baseline; font-size: 12.5px; }
@@ -669,20 +672,22 @@ body.light .kv .wn { color: var(--yellow); }
669
672
  .confirm-actions .linkbtn.danger { border-color: var(--red-strong); color: var(--red-strong); }
670
673
  .confirm-actions .linkbtn.danger:hover { background: var(--x-hover-bg); }
671
674
 
672
- /* nested provider add/edit dialog (opens above the settings modal) */
675
+ /* nested sub-dialog (provider / MCP / LSP edit; opens above settings) */
673
676
  .overlay.overlay-nested { z-index: 60; }
674
- .modal.modal-provider {
675
- width: min(520px, 92vw); height: auto; max-height: 88vh; border-radius: 8px;
677
+ .modal.modal-sub {
678
+ width: min(560px, 92vw); height: auto; max-height: 88vh; border-radius: 8px;
676
679
  }
677
680
  .provider-body { display: block; padding: 20px 22px 22px; overflow-y: auto; }
678
681
  .provider-body .pform {
679
682
  margin: 0; padding: 0; border: 0; background: none;
680
683
  }
684
+ #subHost .pform-title { display: none; }
681
685
  .menu-col {
682
- width: 200px; min-width: 200px; padding: 12px 8px;
683
- border-right: 1px solid var(--border); overflow-y: auto;
684
- min-height: 0; flex: 0 0 auto;
686
+ width: 210px; min-width: 210px; padding: 12px 8px 8px;
687
+ border-right: 1px solid var(--border);
688
+ display: flex; flex-direction: column; min-height: 0; flex: 0 0 auto;
685
689
  }
690
+ .menu-col #setMenu { overflow-y: auto; min-height: 0; flex: 1 1 auto; }
686
691
  .menu-col .mi {
687
692
  padding: 7px 12px; border-radius: 4px; cursor: pointer;
688
693
  color: var(--muted); margin-bottom: 2px; font-size: 13px;
@@ -879,6 +884,93 @@ body.light .toggle { background: var(--toggle-off); }
879
884
  .pform-adv { margin-top: 18px; }
880
885
  .pform-adv summary { cursor: pointer; font-size: 11.5px; color: var(--dim-a); text-transform: uppercase; letter-spacing: .04em; }
881
886
  .pform-adv .pform-grid { margin-top: 12px; }
887
+
888
+ .sec-desc { color: var(--dim-a); font-size: 11.5px; line-height: 1.4; padding: 6px 0 0; max-width: 70ch; }
889
+
890
+ /* structured editors (tags / checkboxes / table) own the full row width */
891
+ .row > .ctl-block { flex-basis: 100%; min-width: 0; }
892
+
893
+ .tagsctl, .checksctl, .tablectl { display: flex; flex-direction: column; gap: 8px; padding-top: 4px; }
894
+ .tags-list { display: flex; flex-wrap: wrap; gap: 6px; }
895
+ .tags-empty { color: var(--dim-b); font-size: 12px; }
896
+ .tag-chip {
897
+ display: inline-flex; align-items: center; gap: 4px; max-width: 100%;
898
+ background: var(--surface); border: 1px solid var(--border-2); border-radius: 999px;
899
+ padding: 2px 6px 2px 10px; font-size: 12px; color: var(--fg);
900
+ }
901
+ .tag-chip .tag-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 320px; }
902
+ .tag-chip .tag-rm { color: var(--dim-a); padding: 0 2px; }
903
+ .tag-chip .tag-rm:hover { color: var(--red-strong); }
904
+ .tags-add, .table-add { display: flex; gap: 6px; align-items: center; }
905
+ .tags-add input, .table-add input {
906
+ flex: 1 1 160px; min-width: 0; max-width: 320px;
907
+ background: var(--input-surface); border: 1px solid var(--border-2); border-radius: 4px;
908
+ color: var(--fg); font: inherit; font-size: 12.5px; padding: 5px 8px; text-align: left;
909
+ }
910
+ .tags-plus, .table-plus { color: var(--accent); font-size: 14px; }
911
+
912
+ /* `.row input` is a right-aligned 120px field — checkboxes must not inherit it. */
913
+ .checksctl { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 6px 18px; }
914
+ .check-line { display: inline-flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--muted); cursor: pointer; min-width: 0; }
915
+ .check-line input[type="checkbox"] { width: auto; flex: 0 0 auto; margin: 0; text-align: left; accent-color: var(--accent); }
916
+ .check-line span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
917
+
918
+ .tablectl { gap: 4px; overflow-x: auto; }
919
+ .table-head, .table-row {
920
+ display: grid; grid-template-columns: minmax(120px, 1.4fr) repeat(auto-fit, minmax(84px, 1fr)) 28px;
921
+ gap: 6px; align-items: center; min-width: 0;
922
+ }
923
+ .table-head .table-th { font-size: 10.5px; text-transform: uppercase; letter-spacing: .04em; color: var(--dim-a); }
924
+ .table-row { padding: 3px 0; }
925
+ .table-row input {
926
+ width: 100%; min-width: 0;
927
+ background: var(--input-surface); border: 1px solid var(--border-2); border-radius: 4px;
928
+ color: var(--fg); font: inherit; font-size: 12px; padding: 4px 6px; text-align: left;
929
+ }
930
+ .table-row input[type="checkbox"] { width: auto; justify-self: start; accent-color: var(--accent); }
931
+ .table-row .table-rm { color: var(--dim-a); }
932
+ .table-row .table-rm:hover { color: var(--red-strong); }
933
+ .table-body:empty::after { content: "—"; color: var(--dim-b); font-size: 12px; }
934
+
935
+ /* settings search */
936
+ .set-search {
937
+ position: relative; display: flex; align-items: center; gap: 6px;
938
+ margin: 0 4px 10px; padding: 0 8px;
939
+ background: var(--input-surface); border: 1px solid var(--border-2); border-radius: 5px;
940
+ }
941
+ .set-search .set-search-icon { display: inline-flex; color: var(--dim-a); flex: 0 0 auto; }
942
+ .set-search .set-search-icon .svg-icon { width: 13px; height: 13px; }
943
+ .set-search input {
944
+ flex: 1 1 auto; min-width: 0; background: none; border: 0; outline: none;
945
+ color: var(--fg); font: inherit; font-size: 12.5px; padding: 7px 0;
946
+ }
947
+ .set-search input::-webkit-search-cancel-button { display: none; }
948
+ .set-search .set-search-clear { color: var(--dim-a); flex: 0 0 auto; }
949
+ .set-search:focus-within { border-color: var(--inp-focus); box-shadow: 0 0 0 2px var(--input-shadow); }
950
+ .set-results { display: flex; flex-direction: column; gap: 1px; }
951
+ .set-result {
952
+ display: grid; grid-template-columns: 1fr auto; gap: 2px 8px;
953
+ padding: 6px 8px; border-radius: 4px; cursor: pointer;
954
+ }
955
+ .set-result:hover, .set-result.on { background: var(--accent-bg); }
956
+ .set-result .sr-label { color: var(--fg); font-size: 12.5px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
957
+ .set-result .sr-panel { grid-column: 2; grid-row: 1; color: var(--dim-a); font-size: 11px; white-space: nowrap; }
958
+ .set-result .sr-key {
959
+ grid-column: 1 / -1; color: var(--dim-b); font-size: 10.5px;
960
+ overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
961
+ }
962
+ .set-results-empty { color: var(--dim-b); font-size: 12px; padding: 8px; }
963
+
964
+ /* a searched setting blinks so the eye lands on it after navigation */
965
+ .row-flash { animation: rowflash 1.2s ease-out; }
966
+ @keyframes rowflash {
967
+ 0%, 40% { background: var(--accent-bg); }
968
+ 100% { background: transparent; }
969
+ }
970
+
971
+ /* sub-dialog (nested edit: provider / MCP / LSP) */
972
+ #subHost .pform { margin: 0; padding: 0; border: 0; background: none; }
973
+ #subHost .pform-title { display: none; }
882
974
  .pform-actions { display: flex; gap: 14px; align-items: center; padding-top: 22px; }
883
975
  .pform-actions .linkbtn.dim { color: var(--dim-a); }
884
976
  .settings-note { color: var(--dim-b); font-size: 11.5px; line-height: 1.7; padding: 8px 0 4px; }
@@ -1012,12 +1104,14 @@ button.toggle:disabled { opacity: .5; cursor: default; }
1012
1104
  }
1013
1105
  .modal-body { flex-direction: column; min-width: 0; }
1014
1106
  .menu-col {
1015
- width: 100%; min-width: 0; display: flex; flex-direction: row;
1016
- gap: 6px; overflow-x: auto; overflow-y: hidden;
1017
- border-right: none; border-bottom: 1px solid var(--border);
1107
+ width: 100%; min-width: 0; display: flex; flex-direction: column;
1108
+ gap: 6px; border-right: none; border-bottom: 1px solid var(--border);
1018
1109
  padding: 8px 10px; flex: 0 0 auto;
1019
1110
  }
1111
+ .menu-col #setMenu { display: flex; flex-direction: row; gap: 6px; overflow-x: auto; overflow-y: hidden; }
1020
1112
  .menu-col .mi { white-space: nowrap; margin-bottom: 0; flex: 0 0 auto; width: auto; }
1113
+ .set-search { margin: 0 0 2px; }
1114
+ .set-results { max-height: 40vh; overflow-y: auto; }
1021
1115
  .content-col { padding: 14px; }
1022
1116
  .row { font-size: 12.5px; }
1023
1117
  .input-area { margin: 8px 10px 10px; }
package/dist/i18n/en.json CHANGED
@@ -315,7 +315,9 @@
315
315
  "cli.manage_config": "Manage configuration",
316
316
  "cli.config_key": "Config key (e.g., model, provider.baseUrl)",
317
317
  "cli.set_value": "Set a config value",
318
+ "cli.config_force": "Bypass validation and write the raw value as-is",
318
319
  "cli.set_done": "Set {key}={value}",
320
+ "cli.config_invalid": "Invalid value for '{key}' ({reason}). Config not changed.",
319
321
  "cli.show_config": "Show the effective configuration (secrets redacted; use --show-secrets to reveal)",
320
322
  "cli.migrate_config": "Migrate legacy config.json to domain format",
321
323
  "cli.manage_models": "Manage models",
@@ -514,6 +516,7 @@
514
516
  "repl.last_action_none": "No recent action to show.",
515
517
  "repl.status": "Show a compact status line",
516
518
  "repl.status_usage": "Usage: /status",
519
+ "repl.security": "Show security configuration (on/off per area)",
517
520
  "repl.plugins": "List loaded plugins",
518
521
  "repl.plugins_usage": "Usage: /plugins [--all]",
519
522
  "repl.sessions": "List all sessions (* active)",
@@ -1081,6 +1084,15 @@
1081
1084
  "config.enum.max": "max",
1082
1085
  "config.enum.en": "English",
1083
1086
  "config.enum.ru": "Russian",
1087
+ "config.enum.security_block": "security block",
1088
+ "config.enum.bash_command": "bash command",
1089
+ "config.enum.file_operation": "file operation",
1090
+ "config.enum.network_request": "network request",
1091
+ "config.enum.tool_call": "tool call",
1092
+ "config.enum.authentication": "authentication",
1093
+ "config.enum.configuration_change": "config change",
1094
+ "config.enum.session_start": "session start",
1095
+ "config.enum.session_end": "session end",
1084
1096
  "config.desc.model": "Model used for the main agent.",
1085
1097
  "config.desc.provider.active": "Which configured provider is used.",
1086
1098
  "config.desc.contextWindow": "Total context size in tokens (system prompt + history + reserve).",
@@ -1099,7 +1111,7 @@
1099
1111
  "config.desc.critic.timeoutMs": "Verifier call timeout (fail-open).",
1100
1112
  "config.desc.logLevel": "Diagnostic log verbosity.",
1101
1113
  "config.desc.locale": "Language of the interface and agent messages.",
1102
- "config.desc.version": "Installed MMA version (read-only).",
1114
+ "config.desc.version": "Installed MMA version.",
1103
1115
  "config.desc.security.enabled": "Master switch for the security module (path checks, content scans, limits).",
1104
1116
  "config.desc.security.paths.enabled": "Restrict file operations to the workspace and block paths outside it.",
1105
1117
  "config.desc.security.contentScan.enabled": "Scan file contents for dangerous patterns before writing.",
@@ -1111,12 +1123,99 @@
1111
1123
  "web.settings.context": "Context",
1112
1124
  "web.settings.reasoning": "Reasoning",
1113
1125
  "web.settings.agent": "Agent",
1126
+ "web.settings.network": "Network",
1127
+ "web.settings.browser": "Browser",
1128
+ "web.settings.sessions": "Sessions",
1114
1129
  "web.settings.ui": "UI & Theme",
1115
1130
  "web.settings.memory": "Memory",
1116
1131
  "web.settings.skills": "Skills",
1117
1132
  "web.settings.plugins": "Plugins · MCP",
1118
1133
  "web.settings.security": "Security",
1119
1134
  "web.settings.advanced": "Advanced",
1135
+ "web.settings.search_placeholder": "search settings",
1136
+ "web.settings.search_empty": "no matching setting",
1137
+ "web.settings.table_invalid": "fill the required fields first ({field})",
1138
+ "web.settings.sec.general.interface": "Interface",
1139
+ "web.settings.sec.general.agent": "Agent loop",
1140
+ "web.settings.sec.general.agent.desc": "How long and how persistently the agent works before it stops.",
1141
+ "web.settings.sec.general.provider": "Providers",
1142
+ "web.settings.sec.model.tuning": "Performance",
1143
+ "web.settings.sec.model.tuning.desc": "Token budget and how the model is loaded into memory.",
1144
+ "web.settings.sec.model.capabilities": "Capabilities",
1145
+ "web.settings.sec.model.capabilities.desc": "Manual overrides for vision/tools when probing a model gets it wrong.",
1146
+ "web.settings.sec.context.window": "Context window",
1147
+ "web.settings.sec.context.window.desc": "Total window and how it is split between the system prompt, the reply and history.",
1148
+ "web.settings.sec.context.compaction": "Compaction",
1149
+ "web.settings.sec.context.compaction.desc": "When old history is summarised to free space.",
1150
+ "web.settings.sec.context.instructions": "Instructions",
1151
+ "web.settings.sec.context.instructions.desc": "What happens when AGENTS.md or the project map is too large for the prompt.",
1152
+ "web.settings.sec.context.log": "Context log",
1153
+ "web.settings.sec.context.log.desc": "Write every prompt sent to the model to a diff file next to the session.",
1154
+ "web.settings.sec.reasoning.display": "Display",
1155
+ "web.settings.sec.reasoning.effort": "Effort",
1156
+ "web.settings.sec.reasoning.effort.desc": "Stop overrides the range — auto picks a level per step inside it.",
1157
+ "web.settings.sec.agent.moe": "Mixture of experts",
1158
+ "web.settings.sec.agent.moe.desc": "Split work into expert subtasks with a planner; slower but stronger on multi-step tasks.",
1159
+ "web.settings.sec.agent.critic": "Critic",
1160
+ "web.settings.sec.agent.critic.desc": "A second pass that reviews the agent's own work before it answers.",
1161
+ "web.settings.sec.agent.tools": "Tools & skills",
1162
+ "web.settings.sec.agent.tools.desc": "Which tools are visible up front and how much of the prompt skills may use.",
1163
+ "web.settings.sec.agent.subagent": "Sub-agents",
1164
+ "web.settings.sec.agent.subagent.desc": "How results from sub-agents come back and how they are parallelised.",
1165
+ "web.settings.sec.agent.hallucination": "Hallucination check",
1166
+ "web.settings.sec.agent.hallucination.desc": "Run a consistency pass on the reply before showing it.",
1167
+ "web.settings.sec.network.web": "Web search",
1168
+ "web.settings.sec.network.web.desc": "Master switch for the web_search tool.",
1169
+ "web.settings.sec.network.error": "Automatic error search",
1170
+ "web.settings.sec.network.error.desc": "Search the web when the same error repeats.",
1171
+ "web.settings.sec.browser.main": "Browser",
1172
+ "web.settings.sec.browser.limits": "Limits",
1173
+ "web.settings.sec.browser.limits.desc": "Caps that keep a page snapshot small enough for the context window.",
1174
+ "web.settings.sec.browser.viewport": "Viewport & timeouts",
1175
+ "web.settings.sec.sessions.main": "Sessions",
1176
+ "web.settings.sec.sessions.main.desc": "Saving, naming and how many past sessions are kept.",
1177
+ "web.settings.sec.sessions.isolation": "Isolation",
1178
+ "web.settings.sec.sessions.isolation.desc": "Keep plugins and temp files separate per session.",
1179
+ "web.settings.sec.ui.chat": "Chat output",
1180
+ "web.settings.sec.ui.chat.desc": "Status lines, progress and context meters in the chat feed.",
1181
+ "web.settings.sec.ui.theme": "Theme",
1182
+ "web.settings.sec.ui.theme.desc": "Colour scheme of this web UI. Stored in the browser, not in the config file.",
1183
+ "web.settings.sec.memory.add": "Add a note",
1184
+ "web.settings.memory_add_title": "new memory",
1185
+ "config.field.name": "name",
1186
+ "config.field.model": "model",
1187
+ "config.field.tool_tags": "tool tags",
1188
+ "config.field.max_attempts": "attempts",
1189
+ "config.field.description": "description",
1190
+ "config.field.input": "input $/1M",
1191
+ "config.field.output": "output $/1M",
1192
+ "config.field.cachedInput": "cached $/1M",
1193
+ "config.field.cacheWrite": "write $/1M",
1194
+ "config.field.vision": "vision",
1195
+ "config.field.tools": "tools",
1196
+ "web.settings.sec.security.switches": "Switches",
1197
+ "web.settings.sec.security.switches.desc": "Master switches per protection. Turning one off disables its whole group below.",
1198
+ "web.settings.sec.security.limits": "Limits",
1199
+ "web.settings.sec.security.limits.desc": "Depth, volume and rate caps for tool activity.",
1200
+ "web.settings.sec.security.bash": "Bash rules",
1201
+ "web.settings.sec.security.bash.desc": "Commands, flags and operators the bash tool refuses.",
1202
+ "web.settings.sec.security.paths": "Path rules",
1203
+ "web.settings.sec.security.paths.desc": "Glob patterns for paths that are denied or, if set, exclusively allowed.",
1204
+ "web.settings.sec.security.network": "Network rules",
1205
+ "web.settings.sec.security.network.desc": "Domains blocked or, if set, exclusively allowed.",
1206
+ "web.settings.sec.security.scan": "Content scan",
1207
+ "web.settings.sec.security.scan.desc": "Patterns searched in file contents before writing.",
1208
+ "web.settings.sec.security.audit": "Audit log",
1209
+ "web.settings.sec.security.audit.desc": "Send security events to a file or a webhook.",
1210
+ "web.settings.sec.security.encryption": "Session encryption",
1211
+ "web.settings.sec.security.encryption.desc": "Encrypt saved chat history and session log on disk.",
1212
+ "web.settings.sec.security.access": "Access",
1213
+ "web.settings.sec.advanced.diagnostics": "Diagnostics",
1214
+ "web.settings.sec.advanced.diagnostics.desc": "Log verbosity and the installed version.",
1215
+ "web.settings.sec.advanced.retry": "Retry",
1216
+ "web.settings.sec.advanced.retry.desc": "Backoff for failed or stalled provider requests.",
1217
+ "web.settings.sec.advanced.service": "Service",
1218
+ "web.settings.sec.advanced.service.desc": "Cost tracking, prices and the background update check.",
1120
1219
  "web.settings.add": "add",
1121
1220
  "web.settings.forget": "forget",
1122
1221
  "web.settings.search": "search",
@@ -1154,6 +1253,11 @@
1154
1253
  "web.settings.provider_priority": "priority",
1155
1254
  "web.settings.provider_rpm": "requests / min",
1156
1255
  "web.settings.provider_parallel": "max parallel",
1256
+ "web.settings.provider_max_tokens": "max completion tokens",
1257
+ "web.settings.provider_cache_mechanism": "cache mechanism",
1258
+ "web.settings.provider_cache_report": "cache report format",
1259
+ "web.settings.provider_cache_flags": "cache flags",
1260
+ "web.settings.provider_retry": "retry",
1157
1261
  "web.settings.provider_required": "type and base URL are required",
1158
1262
  "web.settings.provider_invalid": "invalid numeric value",
1159
1263
  "web.settings.provider_active_guard": "cannot delete the active provider — switch first",
@@ -1186,6 +1290,14 @@
1186
1290
  "web.settings.disabled": "disabled",
1187
1291
  "web.settings.mcp_servers": "mcp servers",
1188
1292
  "web.settings.no_mcp": "no MCP servers configured",
1293
+ "web.settings.mcp_add": "add MCP server",
1294
+ "web.settings.mcp_edit_title": "edit MCP server",
1295
+ "web.settings.mcp_required": "name plus command (stdio) or URL (sse/http) is required",
1296
+ "web.settings.mcp_invalid": "invalid value: timeout 1000–300000 ms, args/env/headers as JSON",
1297
+ "web.settings.lsp_servers": "LSP servers",
1298
+ "web.settings.no_lsp": "no LSP servers configured",
1299
+ "web.settings.lsp_note": "LSP changes are saved to config and take effect on the next run.",
1300
+ "web.settings.lsp_unavailable": "LSP unavailable",
1189
1301
  "web.settings.loading": "loading…",
1190
1302
  "web.input.placeholder": "message… (/ for commands)",
1191
1303
  "web.input.enter": "Enter — send",
@@ -1244,6 +1356,8 @@
1244
1356
  "web.command.reasoning": "reasoning display and level",
1245
1357
  "web.command.verbose": "set UI verbosity",
1246
1358
  "web.command.context": "show or set the context window",
1359
+ "web.command.security": "show security toggles or write a security key",
1360
+ "web.security.unknown_sub": "unknown subcommand: security {sub}",
1247
1361
  "web.command.session": "list or activate a session",
1248
1362
  "web.command.export": "export the active session to a file",
1249
1363
  "web.command.memory": "inspect or edit global memory",
@@ -1349,5 +1463,190 @@
1349
1463
  "web.setup.finish": "Finish setup",
1350
1464
  "web.setup.saving": "Saving…",
1351
1465
  "web.setup.saved_warning": "Saved with warnings: {warning}",
1352
- "web.setup.failed": "Setup failed. Check the values and try again."
1466
+ "web.setup.failed": "Setup failed. Check the values and try again.",
1467
+ "config.key.provider.fallback": "fallback providers",
1468
+ "config.desc.provider.fallback": "Fall back to the next provider entry when the active one fails.",
1469
+ "config.key.provider.maxCompletionTokens": "max completion tokens",
1470
+ "config.desc.provider.maxCompletionTokens": "Hard cap on completion tokens per request (512-128000).",
1471
+ "config.key.contextBudget.compactionThreshold": "compaction threshold",
1472
+ "config.desc.contextBudget.compactionThreshold": "History load share that allows periodic compaction (0.05-0.9).",
1473
+ "config.key.contextBudget.compactionMinLoad": "compaction min load",
1474
+ "config.desc.contextBudget.compactionMinLoad": "Minimum history load required before compaction may run (0.05-0.9).",
1475
+ "config.key.instructions.summarize": "summarize instructions",
1476
+ "config.desc.instructions.summarize": "Summarize oversized AGENTS.md/project-map blocks instead of truncating.",
1477
+ "config.key.contextLog.enabled": "context log",
1478
+ "config.desc.contextLog.enabled": "Write the LLM-bound context of every iteration to <session>/context.diff.",
1479
+ "config.key.contextLog.redact": "redact context log",
1480
+ "config.desc.contextLog.redact": "Redact recognizable secrets (tokens, keys) in the context log.",
1481
+ "config.key.reasoning.min": "min reasoning",
1482
+ "config.desc.reasoning.min": "Lower bound of the reasoning effort range.",
1483
+ "config.key.reasoning.max": "max reasoning",
1484
+ "config.desc.reasoning.max": "Upper bound of the reasoning effort range.",
1485
+ "config.key.reasoning.baseline": "baseline reasoning",
1486
+ "config.desc.reasoning.baseline": "Default reasoning effort used when the model gives no signal.",
1487
+ "config.key.reasoning.overrideCooldown": "reasoning override cooldown",
1488
+ "config.desc.reasoning.overrideCooldown": "Turns before a fresh reasoning override is accepted again (1-60).",
1489
+ "config.key.autoPlan": "auto-plan",
1490
+ "config.desc.autoPlan": "Let the agent draft a plan automatically for multi-step tasks.",
1491
+ "config.key.tools.enableOnDemand": "on-demand tools",
1492
+ "config.desc.tools.enableOnDemand": "Load narrow tool groups on demand instead of exposing all tools.",
1493
+ "config.key.session.autoSave": "auto-save session",
1494
+ "config.desc.session.autoSave": "Persist the session log after every turn.",
1495
+ "config.key.session.maxSessions": "max sessions",
1496
+ "config.desc.session.maxSessions": "How many recent sessions are kept on disk (1-500).",
1497
+ "config.key.session.isolateMemory": "isolate session memory",
1498
+ "config.desc.session.isolateMemory": "Keep session memory separate from the global one.",
1499
+ "config.key.session.autoName": "auto-name sessions",
1500
+ "config.desc.session.autoName": "Derive a session name from the first message (LLM-refined).",
1501
+ "config.key.sessionIsolation.enabled": "session isolation",
1502
+ "config.desc.sessionIsolation.enabled": "Master switch for per-session isolation (plugins, temp files).",
1503
+ "config.key.sessionIsolation.isolatePlugins": "isolate plugins",
1504
+ "config.desc.sessionIsolation.isolatePlugins": "Give each session its own plugin sandbox.",
1505
+ "config.key.sessionIsolation.isolateTempFiles": "isolate temp files",
1506
+ "config.desc.sessionIsolation.isolateTempFiles": "Give each session its own temp-file directory.",
1507
+ "config.key.ui.spinner": "spinner",
1508
+ "config.desc.ui.spinner": "Animate a progress spinner while tools run.",
1509
+ "config.key.ui.showContextStats": "context stats",
1510
+ "config.desc.ui.showContextStats": "Show context usage stats after each turn.",
1511
+ "config.key.ui.showCompaction": "compaction notice",
1512
+ "config.desc.ui.showCompaction": "Notify in chat when history compaction runs.",
1513
+ "config.key.retry.maxRetries": "max retries",
1514
+ "config.desc.retry.maxRetries": "Max retries for failed LLM requests (0-10).",
1515
+ "config.key.retry.baseDelay": "retry base delay",
1516
+ "config.desc.retry.baseDelay": "Base backoff delay between retries in ms (0-60000).",
1517
+ "config.key.retry.maxDelay": "retry max delay",
1518
+ "config.desc.retry.maxDelay": "Backoff delay cap between retries in ms (0-300000).",
1519
+ "config.key.retry.maxStreamRetries": "max stream retries",
1520
+ "config.desc.retry.maxStreamRetries": "Max retries for stalled or interrupted streams (0-10).",
1521
+ "config.key.retry.noDataTimeoutMs": "stream stall timeout (ms)",
1522
+ "config.desc.retry.noDataTimeoutMs": "Give up on a stream silent for this long, in ms (1000-600000).",
1523
+ "config.key.pricing.enabled": "cost tracking",
1524
+ "config.desc.pricing.enabled": "Track token usage and estimated cost per session.",
1525
+ "config.key.updater.enabled": "auto-update",
1526
+ "config.desc.updater.enabled": "Master switch for background update checks.",
1527
+ "config.key.updater.checkOnStart": "check on start",
1528
+ "config.desc.updater.checkOnStart": "Check for updates when the agent starts.",
1529
+ "config.key.updater.autoInstall": "auto-install updates",
1530
+ "config.desc.updater.autoInstall": "Install downloaded updates without asking.",
1531
+ "config.key.updater.intervalMs": "update check interval (ms)",
1532
+ "config.desc.updater.intervalMs": "Minimum time between update checks, in ms (0-86400000).",
1533
+ "config.key.skills.budget": "skills budget share",
1534
+ "config.desc.skills.budget": "Share of the system budget reserved for skill definitions (0.05-0.9).",
1535
+ "config.key.hallucination.judge.enabled": "hallucination judge",
1536
+ "config.desc.hallucination.judge.enabled": "Score answer confidence and flag likely hallucinations.",
1537
+ "config.key.subagent.resultMode": "subagent result mode",
1538
+ "config.desc.subagent.resultMode": "How subagent results return: inline text or via file.",
1539
+ "config.key.subagent.maxSummaryChars": "subagent summary limit",
1540
+ "config.desc.subagent.maxSummaryChars": "Max chars kept from a subagent summary (100-50000).",
1541
+ "config.key.subagent.maxParallelChunkQueries": "subagent parallel chunks",
1542
+ "config.desc.subagent.maxParallelChunkQueries": "Max parallel chunk queries per subagent wave (1-16).",
1543
+ "config.key.subagent.stableSystemPrompt": "stable subagent prompt",
1544
+ "config.desc.subagent.stableSystemPrompt": "Reuse one frozen system prompt for all subagents in a run.",
1545
+ "config.key.modelLoad.autoLoad": "auto-load model",
1546
+ "config.desc.modelLoad.autoLoad": "Load the model into the backend automatically on start.",
1547
+ "config.key.modelLoad.flashAttention": "flash attention",
1548
+ "config.desc.modelLoad.flashAttention": "Enable flash-attention kernels when loading the model.",
1549
+ "config.key.modelLoad.offloadKvCacheToGpu": "offload KV cache to GPU",
1550
+ "config.desc.modelLoad.offloadKvCacheToGpu": "Keep the KV cache in GPU memory when loading the model.",
1551
+ "config.key.modelLoad.evalBatchSize": "eval batch size",
1552
+ "config.desc.modelLoad.evalBatchSize": "Prompt-eval batch size at load time (1-4096).",
1553
+ "config.key.webSearch.enabled": "web search",
1554
+ "config.desc.webSearch.enabled": "Allow the agent to search the web.",
1555
+ "config.key.errorWebSearch.enabled": "search on error",
1556
+ "config.desc.errorWebSearch.enabled": "Search the web automatically when an error looks searchable.",
1557
+ "config.key.errorWebSearch.threshold": "error search threshold",
1558
+ "config.desc.errorWebSearch.threshold": "How many matching errors trigger a search (1-20).",
1559
+ "config.key.errorWebSearch.maxResults": "error search results",
1560
+ "config.desc.errorWebSearch.maxResults": "Max search results attached per error lookup (1-20).",
1561
+ "config.key.errorWebSearch.maxQueryChars": "error query limit",
1562
+ "config.desc.errorWebSearch.maxQueryChars": "Max chars of the error text sent per query (50-2000).",
1563
+ "config.key.errorWebSearch.maxSearchesPerSession": "error searches per session",
1564
+ "config.desc.errorWebSearch.maxSearchesPerSession": "Max automatic error searches per session (0-20).",
1565
+ "config.key.errorWebSearch.requestTimeoutMs": "error search timeout (ms)",
1566
+ "config.desc.errorWebSearch.requestTimeoutMs": "Timeout per automatic error-search request, in ms (1000-120000).",
1567
+ "config.key.browser.enabled": "browser tool",
1568
+ "config.desc.browser.enabled": "Allow the agent to drive a browser.",
1569
+ "config.key.browser.headless": "headless browser",
1570
+ "config.desc.browser.headless": "Run the browser without a visible window.",
1571
+ "config.key.browser.maxElements": "max page elements",
1572
+ "config.desc.browser.maxElements": "Max accessibility-tree elements per snapshot (1-200).",
1573
+ "config.key.browser.maxContentChars": "max page content",
1574
+ "config.desc.browser.maxContentChars": "Max chars of page content kept per snapshot (100-50000).",
1575
+ "config.key.browser.maxConsoleEntries": "max console entries",
1576
+ "config.desc.browser.maxConsoleEntries": "Max browser console entries collected per snapshot (1-200).",
1577
+ "config.key.browser.maxConsoleLineChars": "max console line",
1578
+ "config.desc.browser.maxConsoleLineChars": "Max chars per console line (50-5000).",
1579
+ "config.key.browser.viewportWidth": "viewport width",
1580
+ "config.desc.browser.viewportWidth": "Browser viewport width in px (320-4096).",
1581
+ "config.key.browser.viewportHeight": "viewport height",
1582
+ "config.desc.browser.viewportHeight": "Browser viewport height in px (200-2160).",
1583
+ "config.key.browser.navigationTimeout": "navigation timeout (ms)",
1584
+ "config.desc.browser.navigationTimeout": "Timeout per page navigation, in ms (1000-120000).",
1585
+ "config.key.security.maxRecursionDepth": "max recursion depth",
1586
+ "config.desc.security.maxRecursionDepth": "Max nested tool-call depth before refusal (0-20).",
1587
+ "config.key.security.maxFileOperations": "max file operations",
1588
+ "config.desc.security.maxFileOperations": "Max file operations per turn before refusal (0-10000).",
1589
+ "config.key.security.rateLimits.maxRequestsPerMinute": "max requests per minute",
1590
+ "config.desc.security.rateLimits.maxRequestsPerMinute": "LLM request rate cap per minute (1-1000).",
1591
+ "config.key.security.rateLimits.maxParallelTasks": "max parallel tasks",
1592
+ "config.desc.security.rateLimits.maxParallelTasks": "Cap on parallel subtasks (1-50).",
1593
+ "config.key.tools.defaultTags": "default tool tags",
1594
+ "config.desc.tools.defaultTags": "Tool groups always loaded without on-demand gating.",
1595
+ "config.key.security.bash.enabled": "bash command validation",
1596
+ "config.desc.security.bash.enabled": "Master switch for bash tool validation.",
1597
+ "config.key.security.bash.blockDangerousFlags": "block dangerous flags",
1598
+ "config.desc.security.bash.blockDangerousFlags": "Reject risky shell flags like --force in the bash tool.",
1599
+ "config.key.security.network.enabled": "network requests",
1600
+ "config.desc.security.network.enabled": "Master switch for outbound network checks (SSRF guard).",
1601
+ "config.key.security.bash.blacklist": "bash blacklist",
1602
+ "config.desc.security.bash.blacklist": "Commands always blocked in the bash tool (list).",
1603
+ "config.key.security.bash.whitelist": "bash whitelist",
1604
+ "config.desc.security.bash.whitelist": "Commands always allowed in the bash tool (list).",
1605
+ "config.key.security.bash.dangerousFlags": "dangerous flags",
1606
+ "config.desc.security.bash.dangerousFlags": "Command flags treated as dangerous (list).",
1607
+ "config.key.security.bash.dangerousOperators": "dangerous operators",
1608
+ "config.desc.security.bash.dangerousOperators": "Shell operators treated as dangerous (list).",
1609
+ "config.key.security.paths.denied": "denied paths",
1610
+ "config.desc.security.paths.denied": "Paths always off-limits for file tools (list).",
1611
+ "config.key.security.paths.allowed": "allowed paths",
1612
+ "config.desc.security.paths.allowed": "Extra paths allowed outside the workspace (list).",
1613
+ "config.key.security.network.deniedDomains": "denied domains",
1614
+ "config.desc.security.network.deniedDomains": "Domains the agent may never contact (list).",
1615
+ "config.key.security.network.allowedDomains": "allowed domains",
1616
+ "config.desc.security.network.allowedDomains": "Domains the agent may contact (list; empty means any).",
1617
+ "config.key.security.network.requestTimeout": "network timeout (ms)",
1618
+ "config.desc.security.network.requestTimeout": "Timeout per outbound tool request, in ms (1000-120000).",
1619
+ "config.key.security.network.maxResponseSize": "max response size",
1620
+ "config.desc.security.network.maxResponseSize": "Max bytes kept per outbound response (1024-1000000).",
1621
+ "config.key.security.contentScan.dangerousPatterns": "dangerous patterns",
1622
+ "config.desc.security.contentScan.dangerousPatterns": "Regular expressions searched in file contents before writing.",
1623
+ "config.key.security.auditNotifier.enabled": "audit notifier",
1624
+ "config.desc.security.auditNotifier.enabled": "Send security-audit events to a file or webhook.",
1625
+ "config.key.security.auditNotifier.filePath": "audit log path",
1626
+ "config.desc.security.auditNotifier.filePath": "File the audit events are appended to.",
1627
+ "config.key.security.auditNotifier.webhookUrl": "audit webhook URL",
1628
+ "config.desc.security.auditNotifier.webhookUrl": "Webhook the audit events are posted to.",
1629
+ "config.key.security.auditNotifier.webhookTimeout": "audit webhook timeout (ms)",
1630
+ "config.desc.security.auditNotifier.webhookTimeout": "Timeout per webhook post, in ms (1000-60000).",
1631
+ "config.key.security.auditNotifier.minSeverity": "audit min severity",
1632
+ "config.desc.security.auditNotifier.minSeverity": "Lowest severity that still notifies (low/medium/high/critical).",
1633
+ "config.key.security.auditNotifier.eventTypes": "audit event types",
1634
+ "config.desc.security.auditNotifier.eventTypes": "Which audit event types notify; none selected means all.",
1635
+ "config.key.security.auditNotifier.maxRetries": "audit max retries",
1636
+ "config.desc.security.auditNotifier.maxRetries": "Retries per failed notification post (0-10).",
1637
+ "config.key.security.sessionEncryption.keyPath": "encryption key path",
1638
+ "config.desc.security.sessionEncryption.keyPath": "File holding the session-encryption key.",
1639
+ "config.key.security.sessionEncryption.encryptHistory": "encrypt chat history",
1640
+ "config.desc.security.sessionEncryption.encryptHistory": "Encrypt the saved chat history on disk.",
1641
+ "config.key.security.sessionEncryption.encryptSessionLog": "encrypt session log",
1642
+ "config.desc.security.sessionEncryption.encryptSessionLog": "Encrypt the saved session.jsonl log on disk.",
1643
+ "config.key.pricing.overrides": "pricing overrides",
1644
+ "config.desc.pricing.overrides": "Per-model price table overriding built-ins.",
1645
+ "config.key.modelCapabilities": "model capabilities",
1646
+ "config.desc.modelCapabilities": "Manual vision/tools overrides per model id.",
1647
+ "config.key.experts": "MoE experts",
1648
+ "config.desc.experts": "Expert roster for the MoE orchestrator.",
1649
+ "config.enum.text": "text",
1650
+ "config.enum.file": "file",
1651
+ "config.enum.critical": "critical"
1353
1652
  }