micro-models-agent 0.2.87 → 0.2.89

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.
Files changed (212) hide show
  1. package/dist/agent/loop.d.ts.map +1 -1
  2. package/dist/agent/loop.js +58 -1
  3. package/dist/agent/loop.js.map +1 -1
  4. package/dist/agent/system-prompt.d.ts.map +1 -1
  5. package/dist/agent/system-prompt.js +17 -2
  6. package/dist/agent/system-prompt.js.map +1 -1
  7. package/dist/agent/tool-executor.d.ts +2 -0
  8. package/dist/agent/tool-executor.d.ts.map +1 -1
  9. package/dist/agent/tool-executor.js +55 -1
  10. package/dist/agent/tool-executor.js.map +1 -1
  11. package/dist/cli/config.js +1 -1
  12. package/dist/cli/config.js.map +1 -1
  13. package/dist/config/config.d.ts +9 -0
  14. package/dist/config/config.d.ts.map +1 -1
  15. package/dist/config/config.js +25 -0
  16. package/dist/config/config.js.map +1 -1
  17. package/dist/config/types.d.ts +13 -0
  18. package/dist/config/types.d.ts.map +1 -1
  19. package/dist/repl/commands.d.ts.map +1 -1
  20. package/dist/repl/commands.js +132 -74
  21. package/dist/repl/commands.js.map +1 -1
  22. package/dist/setup-wizard.js +1 -1
  23. package/dist/setup-wizard.js.map +1 -1
  24. package/dist/ui/ink/components/ActivityLog.d.ts +12 -0
  25. package/dist/ui/ink/components/ActivityLog.d.ts.map +1 -0
  26. package/dist/ui/ink/components/ActivityLog.js +11 -0
  27. package/dist/ui/ink/components/ActivityLog.js.map +1 -0
  28. package/dist/ui/ink/components/AgentStatus.d.ts +13 -0
  29. package/dist/ui/ink/components/AgentStatus.d.ts.map +1 -0
  30. package/dist/ui/ink/components/AgentStatus.js +20 -0
  31. package/dist/ui/ink/components/AgentStatus.js.map +1 -0
  32. package/dist/ui/ink/components/BottomBar.d.ts +12 -0
  33. package/dist/ui/ink/components/BottomBar.d.ts.map +1 -0
  34. package/dist/ui/ink/components/BottomBar.js +22 -0
  35. package/dist/ui/ink/components/BottomBar.js.map +1 -0
  36. package/dist/ui/ink/components/CheckboxInput.d.ts +21 -0
  37. package/dist/ui/ink/components/CheckboxInput.d.ts.map +1 -0
  38. package/dist/ui/ink/components/CheckboxInput.js +36 -0
  39. package/dist/ui/ink/components/CheckboxInput.js.map +1 -0
  40. package/dist/ui/ink/components/InputBox.d.ts +25 -0
  41. package/dist/ui/ink/components/InputBox.d.ts.map +1 -0
  42. package/dist/ui/ink/components/InputBox.js +91 -0
  43. package/dist/ui/ink/components/InputBox.js.map +1 -0
  44. package/dist/ui/ink/components/ModeSelector.d.ts +8 -0
  45. package/dist/ui/ink/components/ModeSelector.d.ts.map +1 -0
  46. package/dist/ui/ink/components/ModeSelector.js +13 -0
  47. package/dist/ui/ink/components/ModeSelector.js.map +1 -0
  48. package/dist/ui/ink/components/QuestionBox.d.ts +14 -0
  49. package/dist/ui/ink/components/QuestionBox.d.ts.map +1 -0
  50. package/dist/ui/ink/components/QuestionBox.js +35 -0
  51. package/dist/ui/ink/components/QuestionBox.js.map +1 -0
  52. package/dist/ui/ink/components/RadioInput.d.ts +17 -0
  53. package/dist/ui/ink/components/RadioInput.d.ts.map +1 -0
  54. package/dist/ui/ink/components/RadioInput.js +30 -0
  55. package/dist/ui/ink/components/RadioInput.js.map +1 -0
  56. package/dist/ui/ink/components/SliderInput.d.ts +20 -0
  57. package/dist/ui/ink/components/SliderInput.d.ts.map +1 -0
  58. package/dist/ui/ink/components/SliderInput.js +40 -0
  59. package/dist/ui/ink/components/SliderInput.js.map +1 -0
  60. package/dist/ui/ink/components/StartupScreen.d.ts +19 -0
  61. package/dist/ui/ink/components/StartupScreen.d.ts.map +1 -0
  62. package/dist/ui/ink/components/StartupScreen.js +9 -0
  63. package/dist/ui/ink/components/StartupScreen.js.map +1 -0
  64. package/dist/ui/ink/components/WelcomeScreen.d.ts +10 -0
  65. package/dist/ui/ink/components/WelcomeScreen.d.ts.map +1 -0
  66. package/dist/ui/ink/components/WelcomeScreen.js +8 -0
  67. package/dist/ui/ink/components/WelcomeScreen.js.map +1 -0
  68. package/dist/ui/ink/components/Window.d.ts +30 -0
  69. package/dist/ui/ink/components/Window.d.ts.map +1 -0
  70. package/dist/ui/ink/components/Window.js +9 -0
  71. package/dist/ui/ink/components/Window.js.map +1 -0
  72. package/dist/ui/ink/components/ui/_core.d.ts +113 -0
  73. package/dist/ui/ink/components/ui/_core.d.ts.map +1 -0
  74. package/dist/ui/ink/components/ui/_core.js +83 -0
  75. package/dist/ui/ink/components/ui/_core.js.map +1 -0
  76. package/dist/ui/ink/components/ui/autocomplete/Autocomplete.d.ts +23 -0
  77. package/dist/ui/ink/components/ui/autocomplete/Autocomplete.d.ts.map +1 -0
  78. package/dist/ui/ink/components/ui/autocomplete/Autocomplete.js +56 -0
  79. package/dist/ui/ink/components/ui/autocomplete/Autocomplete.js.map +1 -0
  80. package/dist/ui/ink/components/ui/autocomplete/index.d.ts +3 -0
  81. package/dist/ui/ink/components/ui/autocomplete/index.d.ts.map +1 -0
  82. package/dist/ui/ink/components/ui/autocomplete/index.js +2 -0
  83. package/dist/ui/ink/components/ui/autocomplete/index.js.map +1 -0
  84. package/dist/ui/ink/components/ui/badge/Badge.d.ts +13 -0
  85. package/dist/ui/ink/components/ui/badge/Badge.d.ts.map +1 -0
  86. package/dist/ui/ink/components/ui/badge/Badge.js +17 -0
  87. package/dist/ui/ink/components/ui/badge/Badge.js.map +1 -0
  88. package/dist/ui/ink/components/ui/badge/index.d.ts +3 -0
  89. package/dist/ui/ink/components/ui/badge/index.d.ts.map +1 -0
  90. package/dist/ui/ink/components/ui/badge/index.js +2 -0
  91. package/dist/ui/ink/components/ui/badge/index.js.map +1 -0
  92. package/dist/ui/ink/components/ui/divider/Divider.d.ts +12 -0
  93. package/dist/ui/ink/components/ui/divider/Divider.d.ts.map +1 -0
  94. package/dist/ui/ink/components/ui/divider/Divider.js +27 -0
  95. package/dist/ui/ink/components/ui/divider/Divider.js.map +1 -0
  96. package/dist/ui/ink/components/ui/divider/index.d.ts +3 -0
  97. package/dist/ui/ink/components/ui/divider/index.d.ts.map +1 -0
  98. package/dist/ui/ink/components/ui/divider/index.js +2 -0
  99. package/dist/ui/ink/components/ui/divider/index.js.map +1 -0
  100. package/dist/ui/ink/components/ui/header/Header.d.ts +13 -0
  101. package/dist/ui/ink/components/ui/header/Header.d.ts.map +1 -0
  102. package/dist/ui/ink/components/ui/header/Header.js +33 -0
  103. package/dist/ui/ink/components/ui/header/Header.js.map +1 -0
  104. package/dist/ui/ink/components/ui/header/index.d.ts +3 -0
  105. package/dist/ui/ink/components/ui/header/index.d.ts.map +1 -0
  106. package/dist/ui/ink/components/ui/header/index.js +2 -0
  107. package/dist/ui/ink/components/ui/header/index.js.map +1 -0
  108. package/dist/ui/ink/components/ui/json-viewer/JSONViewer.d.ts +14 -0
  109. package/dist/ui/ink/components/ui/json-viewer/JSONViewer.d.ts.map +1 -0
  110. package/dist/ui/ink/components/ui/json-viewer/JSONViewer.js +144 -0
  111. package/dist/ui/ink/components/ui/json-viewer/JSONViewer.js.map +1 -0
  112. package/dist/ui/ink/components/ui/json-viewer/index.d.ts +3 -0
  113. package/dist/ui/ink/components/ui/json-viewer/index.d.ts.map +1 -0
  114. package/dist/ui/ink/components/ui/json-viewer/index.js +2 -0
  115. package/dist/ui/ink/components/ui/json-viewer/index.js.map +1 -0
  116. package/dist/ui/ink/components/ui/key-hint/KeyHint.d.ts +14 -0
  117. package/dist/ui/ink/components/ui/key-hint/KeyHint.d.ts.map +1 -0
  118. package/dist/ui/ink/components/ui/key-hint/KeyHint.js +5 -0
  119. package/dist/ui/ink/components/ui/key-hint/KeyHint.js.map +1 -0
  120. package/dist/ui/ink/components/ui/key-hint/index.d.ts +3 -0
  121. package/dist/ui/ink/components/ui/key-hint/index.d.ts.map +1 -0
  122. package/dist/ui/ink/components/ui/key-hint/index.js +2 -0
  123. package/dist/ui/ink/components/ui/key-hint/index.js.map +1 -0
  124. package/dist/ui/ink/components/ui/markdown/Markdown.d.ts +11 -0
  125. package/dist/ui/ink/components/ui/markdown/Markdown.d.ts.map +1 -0
  126. package/dist/ui/ink/components/ui/markdown/Markdown.js +129 -0
  127. package/dist/ui/ink/components/ui/markdown/Markdown.js.map +1 -0
  128. package/dist/ui/ink/components/ui/markdown/index.d.ts +3 -0
  129. package/dist/ui/ink/components/ui/markdown/index.d.ts.map +1 -0
  130. package/dist/ui/ink/components/ui/markdown/index.js +2 -0
  131. package/dist/ui/ink/components/ui/markdown/index.js.map +1 -0
  132. package/dist/ui/ink/components/ui/scroll-area/ScrollArea.d.ts +21 -0
  133. package/dist/ui/ink/components/ui/scroll-area/ScrollArea.d.ts.map +1 -0
  134. package/dist/ui/ink/components/ui/scroll-area/ScrollArea.js +42 -0
  135. package/dist/ui/ink/components/ui/scroll-area/ScrollArea.js.map +1 -0
  136. package/dist/ui/ink/components/ui/scroll-area/index.d.ts +3 -0
  137. package/dist/ui/ink/components/ui/scroll-area/index.d.ts.map +1 -0
  138. package/dist/ui/ink/components/ui/scroll-area/index.js +2 -0
  139. package/dist/ui/ink/components/ui/scroll-area/index.js.map +1 -0
  140. package/dist/ui/ink/components/ui/select/Select.d.ts +19 -0
  141. package/dist/ui/ink/components/ui/select/Select.d.ts.map +1 -0
  142. package/dist/ui/ink/components/ui/select/Select.js +73 -0
  143. package/dist/ui/ink/components/ui/select/Select.js.map +1 -0
  144. package/dist/ui/ink/components/ui/select/index.d.ts +3 -0
  145. package/dist/ui/ink/components/ui/select/index.d.ts.map +1 -0
  146. package/dist/ui/ink/components/ui/select/index.js +2 -0
  147. package/dist/ui/ink/components/ui/select/index.js.map +1 -0
  148. package/dist/ui/ink/components/ui/spinner/Spinner.d.ts +14 -0
  149. package/dist/ui/ink/components/ui/spinner/Spinner.d.ts.map +1 -0
  150. package/dist/ui/ink/components/ui/spinner/Spinner.js +16 -0
  151. package/dist/ui/ink/components/ui/spinner/Spinner.js.map +1 -0
  152. package/dist/ui/ink/components/ui/spinner/index.d.ts +3 -0
  153. package/dist/ui/ink/components/ui/spinner/index.d.ts.map +1 -0
  154. package/dist/ui/ink/components/ui/spinner/index.js +2 -0
  155. package/dist/ui/ink/components/ui/spinner/index.js.map +1 -0
  156. package/dist/ui/ink/components/ui/status-indicator/StatusIndicator.d.ts +12 -0
  157. package/dist/ui/ink/components/ui/status-indicator/StatusIndicator.d.ts.map +1 -0
  158. package/dist/ui/ink/components/ui/status-indicator/StatusIndicator.js +39 -0
  159. package/dist/ui/ink/components/ui/status-indicator/StatusIndicator.js.map +1 -0
  160. package/dist/ui/ink/components/ui/status-indicator/index.d.ts +3 -0
  161. package/dist/ui/ink/components/ui/status-indicator/index.d.ts.map +1 -0
  162. package/dist/ui/ink/components/ui/status-indicator/index.js +2 -0
  163. package/dist/ui/ink/components/ui/status-indicator/index.js.map +1 -0
  164. package/dist/ui/ink/components/ui/streaming-text/StreamingText.d.ts +13 -0
  165. package/dist/ui/ink/components/ui/streaming-text/StreamingText.d.ts.map +1 -0
  166. package/dist/ui/ink/components/ui/streaming-text/StreamingText.js +22 -0
  167. package/dist/ui/ink/components/ui/streaming-text/StreamingText.js.map +1 -0
  168. package/dist/ui/ink/components/ui/streaming-text/index.d.ts +3 -0
  169. package/dist/ui/ink/components/ui/streaming-text/index.d.ts.map +1 -0
  170. package/dist/ui/ink/components/ui/streaming-text/index.js +2 -0
  171. package/dist/ui/ink/components/ui/streaming-text/index.js.map +1 -0
  172. package/dist/ui/ink/components/ui/tabs/Tabs.d.ts +20 -0
  173. package/dist/ui/ink/components/ui/tabs/Tabs.d.ts.map +1 -0
  174. package/dist/ui/ink/components/ui/tabs/Tabs.js +53 -0
  175. package/dist/ui/ink/components/ui/tabs/Tabs.js.map +1 -0
  176. package/dist/ui/ink/components/ui/tabs/index.d.ts +3 -0
  177. package/dist/ui/ink/components/ui/tabs/index.d.ts.map +1 -0
  178. package/dist/ui/ink/components/ui/tabs/index.js +2 -0
  179. package/dist/ui/ink/components/ui/tabs/index.js.map +1 -0
  180. package/dist/ui/ink/components/ui/text-input/TextInput.d.ts +22 -0
  181. package/dist/ui/ink/components/ui/text-input/TextInput.d.ts.map +1 -0
  182. package/dist/ui/ink/components/ui/text-input/TextInput.js +57 -0
  183. package/dist/ui/ink/components/ui/text-input/TextInput.js.map +1 -0
  184. package/dist/ui/ink/components/ui/text-input/index.d.ts +3 -0
  185. package/dist/ui/ink/components/ui/text-input/index.d.ts.map +1 -0
  186. package/dist/ui/ink/components/ui/text-input/index.js +2 -0
  187. package/dist/ui/ink/components/ui/text-input/index.js.map +1 -0
  188. package/dist/ui/ink/components/ui/token-counter/TokenCounter.d.ts +17 -0
  189. package/dist/ui/ink/components/ui/token-counter/TokenCounter.d.ts.map +1 -0
  190. package/dist/ui/ink/components/ui/token-counter/TokenCounter.js +38 -0
  191. package/dist/ui/ink/components/ui/token-counter/TokenCounter.js.map +1 -0
  192. package/dist/ui/ink/components/ui/token-counter/index.d.ts +3 -0
  193. package/dist/ui/ink/components/ui/token-counter/index.d.ts.map +1 -0
  194. package/dist/ui/ink/components/ui/token-counter/index.js +2 -0
  195. package/dist/ui/ink/components/ui/token-counter/index.js.map +1 -0
  196. package/dist/ui/ink/components/ui/typewriter/Typewriter.d.ts +14 -0
  197. package/dist/ui/ink/components/ui/typewriter/Typewriter.d.ts.map +1 -0
  198. package/dist/ui/ink/components/ui/typewriter/Typewriter.js +57 -0
  199. package/dist/ui/ink/components/ui/typewriter/Typewriter.js.map +1 -0
  200. package/dist/ui/ink/components/ui/typewriter/index.d.ts +3 -0
  201. package/dist/ui/ink/components/ui/typewriter/index.d.ts.map +1 -0
  202. package/dist/ui/ink/components/ui/typewriter/index.js +2 -0
  203. package/dist/ui/ink/components/ui/typewriter/index.js.map +1 -0
  204. package/dist/ui/md-formatter.d.ts +16 -0
  205. package/dist/ui/md-formatter.d.ts.map +1 -0
  206. package/dist/ui/md-formatter.js +448 -0
  207. package/dist/ui/md-formatter.js.map +1 -0
  208. package/dist/ui/readline-renderer.d.ts +1 -1
  209. package/dist/ui/readline-renderer.d.ts.map +1 -1
  210. package/dist/ui/readline-renderer.js +11 -14
  211. package/dist/ui/readline-renderer.js.map +1 -1
  212. package/package.json +2 -2
@@ -63,6 +63,12 @@ const DEFAULT_CONFIG = {
63
63
  maxSteps: 10,
64
64
  minErrorLength: 15,
65
65
  },
66
+ grounding: {
67
+ enabled: true,
68
+ strictMode: false,
69
+ checkFiles: true,
70
+ maxMissingGrounding: 3,
71
+ },
66
72
  },
67
73
  };
68
74
  /** Ищет корень проекта (по .mmrc или package.json) */
@@ -195,6 +201,25 @@ export function getLLMConfig(config) {
195
201
  toolModel: src.toolModel ?? LLM_DEFAULTS.toolModel,
196
202
  };
197
203
  }
204
+ /** Grounding config defaults */
205
+ const GROUNDING_DEFAULTS = {
206
+ enabled: true,
207
+ strictMode: false,
208
+ checkFiles: true,
209
+ maxMissingGrounding: 3,
210
+ };
211
+ /** Получить grounding конфиг с заполненными defaults */
212
+ export function getGroundingConfig(config) {
213
+ const src = config?.agent?.grounding;
214
+ if (!src)
215
+ return { ...GROUNDING_DEFAULTS };
216
+ return {
217
+ enabled: src.enabled ?? GROUNDING_DEFAULTS.enabled,
218
+ strictMode: src.strictMode ?? GROUNDING_DEFAULTS.strictMode,
219
+ checkFiles: src.checkFiles ?? GROUNDING_DEFAULTS.checkFiles,
220
+ maxMissingGrounding: src.maxMissingGrounding ?? GROUNDING_DEFAULTS.maxMissingGrounding,
221
+ };
222
+ }
198
223
  /** Specialist config defaults */
199
224
  const SPECIALIST_DEFAULTS = {
200
225
  enabled: true,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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"}
@@ -59,6 +59,8 @@ export interface AgentConfig {
59
59
  specialist?: SpecialistConfig;
60
60
  /** Список плагинов для активации (имена через запятую) */
61
61
  plugins?: string[];
62
+ /** Grounding-конфигурация (борьба с галлюцинациями) */
63
+ grounding?: GroundingConfig;
62
64
  }
63
65
  /** Параметры LLM для tuning (пустые значения = использовать defaults) */
64
66
  export interface LLMConfig {
@@ -79,6 +81,17 @@ export interface LLMConfig {
79
81
  /** Модель для tool execution в subagent (default: undefined = тот же模型) */
80
82
  toolModel?: string;
81
83
  }
84
+ /** Конфигурация grounding-проверок (борьба с галлюцинациями) */
85
+ export interface GroundingConfig {
86
+ /** Включить grounding-проверки (default: true) */
87
+ enabled?: boolean;
88
+ /** strict=retry LLM, false=только reminder (default: false) */
89
+ strictMode?: boolean;
90
+ /** Pre-flight валидация путей (default: true) */
91
+ checkFiles?: boolean;
92
+ /** Сколько раз можно пропустить токен до retry (default: 3) */
93
+ maxMissingGrounding?: number;
94
+ }
82
95
  /** Конфигурация auto-specialist (автоделегирование при повторяющихся ошибках) */
83
96
  export interface SpecialistConfig {
84
97
  /** Включить auto-specialist (default: true) */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,0BAA0B;AAC1B,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,iCAAiC;AACjC,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,kCAAkC;AAClC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACrC;AAED,iDAAiD;AACjD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,uBAAuB;AACvB,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,wDAAwD;IACxD,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,mCAAmC;IACnC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,uDAAuD;IACvD,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B;AAED,yEAAyE;AACzE,MAAM,WAAW,SAAS;IACxB,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,qFAAqF;IACrF,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,wDAAwD;IACxD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,6DAA6D;IAC7D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,wEAAwE;IACxE,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,gEAAgE;AAChE,MAAM,WAAW,eAAe;IAC9B,kDAAkD;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iDAAiD;IACjD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+DAA+D;IAC/D,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,iFAAiF;AACjF,MAAM,WAAW,gBAAgB;IAC/B,+CAA+C;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wDAAwD;IACxD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,gFAAgF;AAChF,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAEhD,qCAAqC;AACrC,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC1C,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACjD"}
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/repl/commands.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAWzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIxD;;;;;;;;;;;;;GAaG;AAEH,KAAK,YAAY,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAEpF,0CAA0C;AAC1C,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,WAAW,CAAC;IACtB,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC3D,mBAAmB,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,+BAA+B;AAC/B,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,mDAAmD;AACnD,wBAAgB,gBAAgB,IAAI,YAAY,EAAE,CA4BjD;AAED,sDAAsD;AACtD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAMpF;AA6FD,wBAAgB,aAAa;;;EAAgE;AAC7F,wBAAgB,eAAe,SAAmD;AAClF,wBAAgB,WAAW,YAAyC;AAWpE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI,CAc5E;AA4TD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAUzD;AAED,wBAAgB,UAAU,IAAI;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAS1F"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/repl/commands.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAWzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIxD;;;;;;;;;;;;;GAaG;AAEH,KAAK,YAAY,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAEpF,0CAA0C;AAC1C,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,WAAW,CAAC;IACtB,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC3D,mBAAmB,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,+BAA+B;AAC/B,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,mDAAmD;AACnD,wBAAgB,gBAAgB,IAAI,YAAY,EAAE,CA4BjD;AAED,sDAAsD;AACtD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAMpF;AAwHD,wBAAgB,aAAa;;;EAAgE;AAC7F,wBAAgB,eAAe,SAAmD;AAClF,wBAAgB,WAAW,YAAyC;AAWpE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI,CAc5E;AAqWD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAUzD;AAED,wBAAgB,UAAU,IAAI;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAS1F"}
@@ -62,6 +62,15 @@ function cmdExit(_args, ctx) {
62
62
  ctx.renderer.writeDim('Bye!');
63
63
  ctx.renderer.destroy();
64
64
  }
65
+ function formatHelpCmd(theme, cmd) {
66
+ const parts = cmd.split(/\s+/);
67
+ const cmdName = parts[0];
68
+ const rest = parts.slice(1).join(' ');
69
+ const styled = cmdName.startsWith('/') ? theme.toolName(cmdName) : theme.toolName(cmdName);
70
+ if (!rest)
71
+ return styled;
72
+ return `${styled} ${theme.dim(rest)}`;
73
+ }
65
74
  function cmdHelp(_args, ctx) {
66
75
  const theme = getTheme();
67
76
  const msgCount = ctx.conversationHistory.length;
@@ -75,46 +84,57 @@ function cmdHelp(_args, ctx) {
75
84
  ctx.renderer.writeDim(` messages: ${msgCount}`);
76
85
  ctx.renderer.writeDim(` cwd: ${cwd}`);
77
86
  ctx.renderer.writeNewline();
78
- ctx.renderer.writeDim(` ── / commands ──
79
- /bash <cmd> — run shell command
80
- /read <file> — display file with line numbers
81
- /edit <file> <n> — replace line N in file with rest of args
82
- /write <file> — write file (end with EOF on its own line)
83
- /find <pattern> — find files by glob pattern
84
- /search <pattern> — search file contents
85
- /git <args> — git operations
86
- /memory — memory management (show/add/search/remove/export)
87
- /skill — list installed skills
88
- /plugins — list plugins
89
- /tools — list agent tools
90
- /sessions — list saved sessions
91
- /resume <id> — resume a session
92
- /save [name] — save current session
93
- /clear — clear screen (visual only)
94
- /new — reset session (clear history)
95
- /export [mode] — export session (normal or debug)
96
- /init — analyze project & create AGENTS.md
97
- /index [cmd] — index status/show/map/rebuild
98
- /profile [note] — show profile or add note
99
- /profile name <n> — save your name
100
- /profile show — show profile content
101
- /mode fast|base|pro — switch agent mode
102
- /stop — stop agent loop
103
- /exit — exit MMA`);
104
- ctx.renderer.writeDim(` ── CLI commands (exit REPL, then run) ──
105
- mma provider list — list providers
106
- mma provider add <name> <url> — add provider (Ollama, vLLM, Together...)
107
- mma provider use <name> — switch active provider
108
- mma provider remove <name> — remove provider
109
- mma model list — list models
110
- mma model add <name> <id> <ctx> — add model (e.g. qwen3.5-9b ... 32768)
111
- mma model use <name> — switch active model
112
- mma model params [name] — show model parameters
113
- mma model set <name> k=v — change parameter (temperature=0.3)
114
- mma config show — show full configuration
115
- mma config reset — reset to defaults
116
- mma update — check for updates
117
- mma update install — install latest version`);
87
+ const slashHelp = [
88
+ { cmd: '/bash <cmd>', desc: 'run shell command' },
89
+ { cmd: '/read <file>', desc: 'display file with line numbers' },
90
+ { cmd: '/edit <file> <n>', desc: "replace line N in file with rest of args" },
91
+ { cmd: '/write <file>', desc: 'write file (end with EOF on its own line)' },
92
+ { cmd: '/find <pattern>', desc: 'find files by glob pattern' },
93
+ { cmd: '/search <pattern>', desc: 'search file contents' },
94
+ { cmd: '/git <args>', desc: 'git operations' },
95
+ { cmd: '/memory', desc: 'memory management (show/add/search/remove/export)' },
96
+ { cmd: '/skill', desc: 'list installed skills' },
97
+ { cmd: '/plugins', desc: 'list plugins' },
98
+ { cmd: '/tools', desc: 'list agent tools' },
99
+ { cmd: '/sessions', desc: 'list saved sessions' },
100
+ { cmd: '/resume <id>', desc: 'resume a session' },
101
+ { cmd: '/save [name]', desc: 'save current session' },
102
+ { cmd: '/clear', desc: 'clear screen (visual only)' },
103
+ { cmd: '/new', desc: 'reset session (clear history)' },
104
+ { cmd: '/export [mode]', desc: 'export session (normal or debug)' },
105
+ { cmd: '/init', desc: 'analyze project & create AGENTS.md' },
106
+ { cmd: '/index [cmd]', desc: 'index status/show/map/rebuild' },
107
+ { cmd: '/profile [note]', desc: 'show profile or add note' },
108
+ { cmd: '/profile name <n>', desc: 'save your name' },
109
+ { cmd: '/profile show', desc: 'show profile content' },
110
+ { cmd: '/mode fast|base|pro', desc: 'switch agent mode' },
111
+ { cmd: '/stop', desc: 'stop agent loop' },
112
+ { cmd: '/exit', desc: 'exit MMA' },
113
+ ];
114
+ ctx.renderer.writeLine(` ${theme.highlight('/ commands')}`);
115
+ for (const entry of slashHelp) {
116
+ ctx.renderer.writeLine(` ${formatHelpCmd(theme, entry.cmd)} ${theme.dim(`— ${entry.desc}`)}`);
117
+ }
118
+ ctx.renderer.writeNewline();
119
+ const cliHelp = [
120
+ { cmd: 'mma provider list', desc: 'list providers' },
121
+ { cmd: 'mma provider add <name> <url>', desc: 'add provider (Ollama, vLLM, Together...)' },
122
+ { cmd: 'mma provider use <name>', desc: 'switch active provider' },
123
+ { cmd: 'mma provider remove <name>', desc: 'remove provider' },
124
+ { cmd: 'mma model list', desc: 'list models' },
125
+ { cmd: 'mma model add <name> <id> <ctx>', desc: 'add model (e.g. qwen3.5-9b ... 32768)' },
126
+ { cmd: 'mma model use <name>', desc: 'switch active model' },
127
+ { cmd: 'mma model params [name]', desc: 'show model parameters' },
128
+ { cmd: 'mma model set <name> k=v', desc: 'change parameter (temperature=0.3)' },
129
+ { cmd: 'mma config show', desc: 'show full configuration' },
130
+ { cmd: 'mma config reset', desc: 'reset to defaults' },
131
+ { cmd: 'mma update', desc: 'check for updates' },
132
+ { cmd: 'mma update install', desc: 'install latest version' },
133
+ ];
134
+ ctx.renderer.writeLine(` ${theme.highlight('CLI commands')} ${theme.dim('(exit REPL, then run)')}`);
135
+ for (const entry of cliHelp) {
136
+ ctx.renderer.writeLine(` ${formatHelpCmd(theme, entry.cmd)} ${theme.dim(`— ${entry.desc}`)}`);
137
+ }
118
138
  }
119
139
  async function cmdBash(args, ctx) {
120
140
  const result = await executeBash(args);
@@ -222,17 +242,24 @@ function cmdFind(args, ctx) {
222
242
  function cmdSearch(args, ctx) {
223
243
  try {
224
244
  const result = execSync(`findstr /s /n /c:"${args}" *.ts *.js *.tsx *.jsx *.json *.md`, { encoding: 'utf-8', timeout: 10000 });
225
- const lines = result.trim().split('\n').slice(0, 30);
245
+ const allLines = result.trim().split('\n');
246
+ const lines = allLines.slice(0, 30);
226
247
  if (lines.length === 0 || (lines.length === 1 && lines[0] === '')) {
227
248
  ctx.renderer.writeDim(' No matches');
228
249
  return;
229
250
  }
230
251
  const theme = getTheme();
231
252
  for (const line of lines) {
232
- ctx.renderer.writeLine(`${theme.indent}${line}`);
253
+ const match = line.match(/^([^:]+):(\d+):(.*)/);
254
+ if (match) {
255
+ ctx.renderer.writeLine(` ${theme.filePath(match[1])}${theme.dim(':')}${theme.lineNumbers(match[2])}${theme.dim(':')}${match[3]}`);
256
+ }
257
+ else {
258
+ ctx.renderer.writeLine(`${theme.indent}${line}`);
259
+ }
233
260
  }
234
- if (result.trim().split('\n').length > 30) {
235
- ctx.renderer.writeDim(` ... (${result.trim().split('\n').length - 30} more)`);
261
+ if (allLines.length > 30) {
262
+ ctx.renderer.writeDim(` ... (${allLines.length - 30} more)`);
236
263
  }
237
264
  }
238
265
  catch (e) {
@@ -288,7 +315,7 @@ function cmdMemory(args, ctx) {
288
315
  return;
289
316
  }
290
317
  saveMemory(type, text.slice(0, 60), text);
291
- ctx.renderer.writeSuccess(`Saved to .mma/memory/${type}.md`);
318
+ ctx.renderer.writeSuccess(`Saved to ${theme.filePath(`.mma/memory/${type}.md`)}`);
292
319
  break;
293
320
  }
294
321
  case 'search': {
@@ -303,7 +330,7 @@ function cmdMemory(args, ctx) {
303
330
  }
304
331
  ctx.renderer.writeInfo(` Found ${results.length} matches:`);
305
332
  for (const r of results) {
306
- ctx.renderer.writeLine(` [${r.type}] ${r.match}`);
333
+ ctx.renderer.writeLine(` ${theme.highlight(`[${r.type}]`)} ${theme.dim(r.match)}`);
307
334
  }
308
335
  break;
309
336
  }
@@ -320,7 +347,7 @@ function cmdMemory(args, ctx) {
320
347
  }
321
348
  const removed = removeMemoryEntry(type, lineNum);
322
349
  if (removed) {
323
- ctx.renderer.writeSuccess(`Entry removed from ${type}.md`);
350
+ ctx.renderer.writeSuccess(`Entry removed from ${theme.filePath(`${type}.md`)}`);
324
351
  }
325
352
  else {
326
353
  ctx.renderer.writeError(' Could not remove entry (line number out of range?)');
@@ -330,7 +357,7 @@ function cmdMemory(args, ctx) {
330
357
  case 'export': {
331
358
  const exported = exportMemory();
332
359
  if (exported) {
333
- ctx.renderer.writeSuccess(`Memory exported to ${exported}`);
360
+ ctx.renderer.writeSuccess(`Memory exported to ${theme.filePath(exported)}`);
334
361
  }
335
362
  else {
336
363
  ctx.renderer.writeDim(' No memory to export');
@@ -344,6 +371,7 @@ function cmdMemory(args, ctx) {
344
371
  }
345
372
  function cmdSkill(args, ctx) {
346
373
  const subcmd = args.trim() || 'list';
374
+ const theme = getTheme();
347
375
  switch (subcmd) {
348
376
  case 'list': {
349
377
  const bySource = listSkillsBySource(process.cwd());
@@ -355,21 +383,21 @@ function cmdSkill(args, ctx) {
355
383
  }
356
384
  ctx.renderer.writeInfo(` Skills (${total} total):`);
357
385
  if (bySource.builtin.length > 0) {
358
- ctx.renderer.writeLine(` built-in:`);
386
+ ctx.renderer.writeLine(` ${theme.info('built-in:')}`);
359
387
  for (const s of bySource.builtin)
360
- ctx.renderer.writeLine(` @${s}`);
388
+ ctx.renderer.writeLine(` ${theme.toolName(`@${s}`)}`);
361
389
  }
362
390
  if (bySource.project.length > 0) {
363
- ctx.renderer.writeLine(` project:`);
391
+ ctx.renderer.writeLine(` ${theme.info('project:')}`);
364
392
  for (const s of bySource.project)
365
- ctx.renderer.writeLine(` @${s}`);
393
+ ctx.renderer.writeLine(` ${theme.toolName(`@${s}`)}`);
366
394
  }
367
395
  if (bySource.global.length > 0) {
368
- ctx.renderer.writeLine(` global:`);
396
+ ctx.renderer.writeLine(` ${theme.info('global:')}`);
369
397
  for (const s of bySource.global)
370
- ctx.renderer.writeLine(` @${s}`);
398
+ ctx.renderer.writeLine(` ${theme.toolName(`@${s}`)}`);
371
399
  }
372
- ctx.renderer.writeDim(' Reference: @skill-name');
400
+ ctx.renderer.writeDim(` ${theme.dim('Reference:')} ${theme.symbolName('@skill-name')}`);
373
401
  break;
374
402
  }
375
403
  default:
@@ -380,6 +408,7 @@ async function cmdPlugins(_args, ctx) {
380
408
  const pluginManager = new PluginManager();
381
409
  await loadAllPluginsWithInfo(pluginManager);
382
410
  const plugins = pluginManager.listPlugins();
411
+ const theme = getTheme();
383
412
  if (plugins.length === 0) {
384
413
  ctx.renderer.writeDim(' No plugins available.');
385
414
  ctx.renderer.writeDim(' Place plugins in .mma/plugins/<name>/');
@@ -387,23 +416,50 @@ async function cmdPlugins(_args, ctx) {
387
416
  }
388
417
  ctx.renderer.writeInfo(` Available plugins (${plugins.length}):`);
389
418
  for (const p of plugins) {
390
- const version = p.version ? ` v${p.version}` : '';
391
- const status = p.active ? 'active' : 'inactive';
392
- ctx.renderer.writeLine(` ${p.name}${version} [${p.source}] ${status}`);
419
+ const version = p.version ? ` ${theme.dim(`v${p.version}`)}` : '';
420
+ const source = theme.dim(`[${p.source}]`);
421
+ const status = p.active ? theme.success('active') : theme.dim('inactive');
422
+ ctx.renderer.writeLine(` ${theme.highlight(p.name)}${version} ${source} ${status}`);
393
423
  }
394
424
  }
395
425
  function cmdTools(_args, ctx) {
396
426
  const defs = ctx.registry.getDefinitions();
397
- ctx.renderer.writeInfo(` Available tools (${defs.length}):`);
398
- for (const d of defs) {
399
- ctx.renderer.writeLine(` ${d.function.name} — ${d.function.description.split('\n')[0]}`);
427
+ const theme = getTheme();
428
+ const categories = {
429
+ native: { names: new Set(['subagent', 'scaffold', 'project_map']), color: (s) => theme.toolName(s) },
430
+ bash: { names: new Set(['bash']), color: (s) => theme.symbolName(s) },
431
+ fs: { names: new Set(['read_file', 'write_file', 'edit_file', 'list_dir', 'create_dir', 'delete_file', 'copy_file', 'move_file', 'file_info', 'glob_search', 'grep_search', 'tree']), color: (s) => theme.filePath(s) },
432
+ web: { names: new Set(['web_search', 'web_fetch', 'web_browse']), color: (s) => theme.link(s) },
433
+ };
434
+ const categoryMeta = [
435
+ { key: 'native', label: 'native' },
436
+ { key: 'bash', label: 'exec' },
437
+ { key: 'fs', label: 'files' },
438
+ { key: 'web', label: 'web' },
439
+ ];
440
+ ctx.renderer.writeNewline();
441
+ ctx.renderer.writeInfo(` tools (${defs.length}):`);
442
+ for (const meta of categoryMeta) {
443
+ const cat = categories[meta.key];
444
+ const items = defs.filter(d => cat.names.has(d.function.name));
445
+ if (items.length === 0)
446
+ continue;
447
+ ctx.renderer.writeLine(` ${theme.dim(meta.label + ':')}`);
448
+ for (const d of items) {
449
+ const desc = d.function.description.split('\n')[0];
450
+ const shortDesc = desc.length > 55 ? desc.slice(0, 52) + '…' : desc;
451
+ ctx.renderer.writeLine(` ${cat.color(d.function.name)} ${theme.dim('—')} ${theme.dim(shortDesc)}`);
452
+ }
400
453
  }
454
+ ctx.renderer.writeNewline();
455
+ ctx.renderer.writeLine(theme.dim(` details: /help`));
401
456
  }
402
457
  function cmdSessions(_args, ctx) {
403
458
  const sessions = listSessions();
404
459
  ctx.renderer.writeLine(formatSessionList(sessions));
405
460
  }
406
461
  async function cmdResume(args, ctx) {
462
+ const theme = getTheme();
407
463
  if (!args.trim()) {
408
464
  ctx.renderer.writeInfo(' Usage: /resume <session-id>');
409
465
  ctx.renderer.writeInfo(' Use /sessions to see available sessions.');
@@ -411,11 +467,11 @@ async function cmdResume(args, ctx) {
411
467
  }
412
468
  const session = loadSession(args.trim());
413
469
  if (!session) {
414
- ctx.renderer.writeError(` Session "${args.trim()}" not found.`);
470
+ ctx.renderer.writeError(` Session ${theme.highlight(args.trim())} not found.`);
415
471
  return;
416
472
  }
417
473
  ctx.renderer.clear();
418
- ctx.renderer.writeInfo(` Resumed session: ${session.id} (${session.messages.length} messages)`);
474
+ ctx.renderer.writeInfo(` Resumed session: ${theme.highlight(session.id)} (${session.messages.length} messages)`);
419
475
  ctx.renderer.writeDim(` Provider: ${session.provider}`);
420
476
  ctx.renderer.writeNewline();
421
477
  // Display previous conversation and rebuild history
@@ -456,7 +512,8 @@ function cmdSave(args, ctx) {
456
512
  const providerLabel = `${ctx.provider.model}`;
457
513
  const filePath = createNamedSession(name, ctx.history, providerLabel, process.cwd(), { totalTokens: 0, compactCount: 0 });
458
514
  const id = filePath.split(/[/\\]/).pop()?.replace('.json', '') || '';
459
- ctx.renderer.writeSuccess(`Session saved: ${id}${name ? ` (${name})` : ''}`);
515
+ const theme = getTheme();
516
+ ctx.renderer.writeSuccess(`Session saved: ${theme.highlight(id)}${name ? ` (${theme.dim(name)})` : ''}`);
460
517
  }
461
518
  function cmdClear(_args, ctx) {
462
519
  ctx.renderer.clear();
@@ -728,7 +785,7 @@ function cmdProfile(args, ctx) {
728
785
  const rest = parts.slice(1).join(' ');
729
786
  if (subcmd === 'name' && rest) {
730
787
  appendNote(`Имя пользователя: ${rest}`, 'Notes');
731
- ctx.renderer.writeSuccess(` Name saved: ${rest}`);
788
+ ctx.renderer.writeSuccess(` Name saved: ${theme.highlight(rest)}`);
732
789
  return;
733
790
  }
734
791
  if (subcmd === 'show') {
@@ -775,7 +832,8 @@ function cmdExport(args, ctx) {
775
832
  const filename = `.mma/export-${Date.now()}.md`;
776
833
  mkdirSync('.mma', { recursive: true });
777
834
  writeFileSync(filename, output, 'utf-8');
778
- ctx.renderer.writeSuccess(` Exported to ${filename}`);
835
+ const theme = getTheme();
836
+ ctx.renderer.writeSuccess(` Exported to ${theme.filePath(filename)}`);
779
837
  }
780
838
  async function cmdTheme(args, ctx) {
781
839
  const theme = getTheme();
@@ -796,8 +854,8 @@ async function cmdTheme(args, ctx) {
796
854
  case 'show': {
797
855
  const config = loadThemeConfig();
798
856
  ctx.renderer.writeInfo(` Current theme: ${theme.highlight(config.name)}`);
799
- ctx.renderer.writeLine(` Colors: ${Object.keys(config.colors).length} keys`);
800
- ctx.renderer.writeLine(` Icons: ${Object.keys(config.icons).length} keys`);
857
+ ctx.renderer.writeLine(` ${theme.dim('Colors:')} ${theme.highlight(String(Object.keys(config.colors).length))} keys`);
858
+ ctx.renderer.writeLine(` ${theme.dim('Icons:')} ${theme.highlight(String(Object.keys(config.icons).length))} keys`);
801
859
  break;
802
860
  }
803
861
  case 'create': {
@@ -808,7 +866,7 @@ async function cmdTheme(args, ctx) {
808
866
  const current = loadThemeConfig();
809
867
  current.name = name;
810
868
  const filePath = installTheme(name, JSON.stringify(current, null, 2));
811
- ctx.renderer.writeSuccess(` Theme "${name}" created (${filePath})`);
869
+ ctx.renderer.writeSuccess(` Theme ${theme.highlight(name)} created (${theme.filePath(filePath)})`);
812
870
  break;
813
871
  }
814
872
  case 'install': {
@@ -817,12 +875,12 @@ async function cmdTheme(args, ctx) {
817
875
  ctx.renderer.writeInfo(' Usage: /theme install <name> <url>');
818
876
  break;
819
877
  }
820
- ctx.renderer.writeDim(` Downloading from ${url}...`);
878
+ ctx.renderer.writeDim(` Downloading from ${theme.link(url)}...`);
821
879
  try {
822
880
  const resp = execSync(`curl -s "${url}"`, { encoding: 'utf-8', timeout: 10000, windowsHide: true });
823
881
  JSON.parse(resp);
824
882
  const filePath = installTheme(themeName, resp);
825
- ctx.renderer.writeSuccess(` Theme "${themeName}" installed (${filePath})`);
883
+ ctx.renderer.writeSuccess(` Theme ${theme.highlight(themeName)} installed (${theme.filePath(filePath)})`);
826
884
  }
827
885
  catch (e) {
828
886
  ctx.renderer.writeError(` Failed to install: ${e.message}`);
@@ -835,16 +893,16 @@ async function cmdTheme(args, ctx) {
835
893
  break;
836
894
  }
837
895
  if (!removeTheme(name)) {
838
- ctx.renderer.writeError(` Theme "${name}" not found`);
896
+ ctx.renderer.writeError(` Theme ${theme.highlight(name)} not found`);
839
897
  break;
840
898
  }
841
- ctx.renderer.writeSuccess(` Theme "${name}" removed`);
899
+ ctx.renderer.writeSuccess(` Theme ${theme.highlight(name)} removed`);
842
900
  break;
843
901
  }
844
902
  default: {
845
903
  const allThemes = listThemes();
846
904
  if (!allThemes.includes(subcmd)) {
847
- ctx.renderer.writeError(` Unknown theme "${subcmd}". Use /theme list`);
905
+ ctx.renderer.writeError(` Unknown theme ${theme.highlight(subcmd)}. Use /theme list`);
848
906
  break;
849
907
  }
850
908
  const config = loadConfig();