micro-models-agent 0.2.92 → 0.4.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.
Files changed (393) hide show
  1. package/README.md +436 -436
  2. package/dist/agent/error-escalation.d.ts +18 -0
  3. package/dist/agent/error-escalation.d.ts.map +1 -0
  4. package/dist/agent/error-escalation.js +122 -0
  5. package/dist/agent/error-escalation.js.map +1 -0
  6. package/dist/agent/loop.d.ts +6 -5
  7. package/dist/agent/loop.d.ts.map +1 -1
  8. package/dist/agent/loop.js +433 -510
  9. package/dist/agent/loop.js.map +1 -1
  10. package/dist/agent/modes/applier.d.ts +2 -2
  11. package/dist/agent/modes/applier.d.ts.map +1 -1
  12. package/dist/agent/modes/registry.d.ts.map +1 -1
  13. package/dist/agent/modes/registry.js.map +1 -1
  14. package/dist/agent/modes/types.d.ts +12 -2
  15. package/dist/agent/modes/types.d.ts.map +1 -1
  16. package/dist/agent/react-loop.d.ts +4 -0
  17. package/dist/agent/react-loop.d.ts.map +1 -1
  18. package/dist/agent/react-loop.js +5 -23
  19. package/dist/agent/react-loop.js.map +1 -1
  20. package/dist/agent/system-prompt.d.ts +4 -3
  21. package/dist/agent/system-prompt.d.ts.map +1 -1
  22. package/dist/agent/system-prompt.js +392 -278
  23. package/dist/agent/system-prompt.js.map +1 -1
  24. package/dist/agent/tool-executor.d.ts +2 -0
  25. package/dist/agent/tool-executor.d.ts.map +1 -1
  26. package/dist/agent/tool-executor.js +1 -1
  27. package/dist/agent/tool-executor.js.map +1 -1
  28. package/dist/agent/write-enforcer.d.ts +11 -0
  29. package/dist/agent/write-enforcer.d.ts.map +1 -0
  30. package/dist/agent/write-enforcer.js +92 -0
  31. package/dist/agent/write-enforcer.js.map +1 -0
  32. package/dist/cli/config.d.ts +1 -1
  33. package/dist/cli/config.d.ts.map +1 -1
  34. package/dist/cli/config.js +53 -28
  35. package/dist/cli/config.js.map +1 -1
  36. package/dist/cli.d.ts.map +1 -1
  37. package/dist/cli.js +19 -16
  38. package/dist/cli.js.map +1 -1
  39. package/dist/config/config.d.ts +2 -1
  40. package/dist/config/config.d.ts.map +1 -1
  41. package/dist/config/config.js +78 -54
  42. package/dist/config/config.js.map +1 -1
  43. package/dist/config/types.d.ts +8 -1
  44. package/dist/config/types.d.ts.map +1 -1
  45. package/dist/logger.d.ts +1 -0
  46. package/dist/logger.d.ts.map +1 -1
  47. package/dist/logger.js +5 -0
  48. package/dist/logger.js.map +1 -1
  49. package/dist/plugins/builtin/lint-on-write/index.ts +96 -96
  50. package/dist/plugins/builtin/notify/index.js +6 -6
  51. package/dist/plugins/builtin/notify/index.ts +104 -104
  52. package/dist/repl/commands.js +0 -5
  53. package/dist/repl/commands.js.map +1 -1
  54. package/dist/repl/history.d.ts +2 -1
  55. package/dist/repl/history.d.ts.map +1 -1
  56. package/dist/repl/history.js.map +1 -1
  57. package/dist/repl/index.d.ts +2 -0
  58. package/dist/repl/index.d.ts.map +1 -1
  59. package/dist/repl/index.js +2 -2
  60. package/dist/repl/index.js.map +1 -1
  61. package/dist/setup-wizard.d.ts +1 -1
  62. package/dist/setup-wizard.d.ts.map +1 -1
  63. package/dist/setup-wizard.js +137 -105
  64. package/dist/setup-wizard.js.map +1 -1
  65. package/dist/skills/builtin/agent-test/SKILL.md +68 -68
  66. package/dist/skills/builtin/grill-me/SKILL.md +46 -46
  67. package/dist/skills/builtin/web-scraping/SKILL.md +422 -422
  68. package/dist/skills/loader.d.ts +16 -0
  69. package/dist/skills/loader.d.ts.map +1 -1
  70. package/dist/skills/loader.js +110 -9
  71. package/dist/skills/loader.js.map +1 -1
  72. package/dist/tools/id-gen.d.ts +4 -0
  73. package/dist/tools/id-gen.d.ts.map +1 -0
  74. package/dist/tools/id-gen.js +12 -0
  75. package/dist/tools/id-gen.js.map +1 -0
  76. package/dist/tools/native/project-map.d.ts +2 -2
  77. package/dist/tools/native/project-map.d.ts.map +1 -1
  78. package/dist/tools/native/project-map.js +85 -57
  79. package/dist/tools/native/project-map.js.map +1 -1
  80. package/dist/tools/native/scaffold.js +113 -113
  81. package/dist/tools/native/theme.d.ts.map +1 -1
  82. package/dist/tools/native/theme.js +0 -5
  83. package/dist/tools/native/theme.js.map +1 -1
  84. package/dist/tools/parse-tool-call.d.ts +11 -0
  85. package/dist/tools/parse-tool-call.d.ts.map +1 -0
  86. package/dist/tools/parse-tool-call.js +85 -0
  87. package/dist/tools/parse-tool-call.js.map +1 -0
  88. package/dist/tools/plan.d.ts +2 -0
  89. package/dist/tools/plan.d.ts.map +1 -1
  90. package/dist/tools/plan.js +8 -2
  91. package/dist/tools/plan.js.map +1 -1
  92. package/dist/tools/subagent.d.ts +0 -8
  93. package/dist/tools/subagent.d.ts.map +1 -1
  94. package/dist/tools/subagent.js +15 -94
  95. package/dist/tools/subagent.js.map +1 -1
  96. package/dist/tools/todo.d.ts +2 -0
  97. package/dist/tools/todo.d.ts.map +1 -1
  98. package/dist/tools/todo.js +8 -2
  99. package/dist/tools/todo.js.map +1 -1
  100. package/dist/tools/web-browse.js +7 -7
  101. package/dist/ui/index.d.ts +1 -15
  102. package/dist/ui/index.d.ts.map +1 -1
  103. package/dist/ui/index.js +1 -12
  104. package/dist/ui/index.js.map +1 -1
  105. package/dist/ui/ink/components/App.d.ts +0 -1
  106. package/dist/ui/ink/components/App.d.ts.map +1 -1
  107. package/dist/ui/ink/components/App.js +2 -8
  108. package/dist/ui/ink/components/App.js.map +1 -1
  109. package/dist/ui/ink/components/Conversation.d.ts +1 -2
  110. package/dist/ui/ink/components/Conversation.d.ts.map +1 -1
  111. package/dist/ui/ink/components/Conversation.js +8 -2
  112. package/dist/ui/ink/components/Conversation.js.map +1 -1
  113. package/dist/ui/ink/components/MessageBlock.d.ts +13 -1
  114. package/dist/ui/ink/components/MessageBlock.d.ts.map +1 -1
  115. package/dist/ui/ink/components/MessageBlock.js +15 -27
  116. package/dist/ui/ink/components/MessageBlock.js.map +1 -1
  117. package/dist/ui/ink/components/PromptInput.d.ts +11 -0
  118. package/dist/ui/ink/components/PromptInput.d.ts.map +1 -1
  119. package/dist/ui/ink/components/PromptInput.js +18 -141
  120. package/dist/ui/ink/components/PromptInput.js.map +1 -1
  121. package/dist/ui/ink/components/SelectInput.d.ts.map +1 -1
  122. package/dist/ui/ink/components/SelectInput.js +3 -2
  123. package/dist/ui/ink/components/SelectInput.js.map +1 -1
  124. package/dist/ui/ink/components/StatusBar.d.ts.map +1 -1
  125. package/dist/ui/ink/components/StatusBar.js +14 -6
  126. package/dist/ui/ink/components/StatusBar.js.map +1 -1
  127. package/dist/ui/ink/components/StreamBlock.d.ts.map +1 -1
  128. package/dist/ui/ink/components/StreamBlock.js +3 -3
  129. package/dist/ui/ink/components/StreamBlock.js.map +1 -1
  130. package/dist/ui/ink/components/Tags.d.ts +8 -11
  131. package/dist/ui/ink/components/Tags.d.ts.map +1 -1
  132. package/dist/ui/ink/components/Tags.js +4 -16
  133. package/dist/ui/ink/components/Tags.js.map +1 -1
  134. package/dist/ui/ink/components/ToolCallBlock.d.ts +12 -0
  135. package/dist/ui/ink/components/ToolCallBlock.d.ts.map +1 -1
  136. package/dist/ui/ink/components/ToolCallBlock.js +8 -24
  137. package/dist/ui/ink/components/ToolCallBlock.js.map +1 -1
  138. package/dist/ui/ink/renderer.d.ts +0 -1
  139. package/dist/ui/ink/renderer.d.ts.map +1 -1
  140. package/dist/ui/ink/renderer.js +1 -4
  141. package/dist/ui/ink/renderer.js.map +1 -1
  142. package/dist/ui/renderer.d.ts +2 -2
  143. package/dist/ui/renderer.d.ts.map +1 -1
  144. package/dist/ui/renderer.js +1 -1
  145. package/package.json +4 -8
  146. package/dist/async-map.d.ts +0 -6
  147. package/dist/async-map.d.ts.map +0 -1
  148. package/dist/async-map.js +0 -16
  149. package/dist/async-map.js.map +0 -1
  150. package/dist/blog-api/types/index.d.ts +0 -2
  151. package/dist/blog-api/types/index.d.ts.map +0 -1
  152. package/dist/blog-api/types/index.js +0 -2
  153. package/dist/blog-api/types/index.js.map +0 -1
  154. package/dist/examples.d.ts +0 -22
  155. package/dist/examples.d.ts.map +0 -1
  156. package/dist/examples.js +0 -45
  157. package/dist/examples.js.map +0 -1
  158. package/dist/fibonacci.d.ts +0 -19
  159. package/dist/fibonacci.d.ts.map +0 -1
  160. package/dist/fibonacci.js +0 -61
  161. package/dist/fibonacci.js.map +0 -1
  162. package/dist/parfymerie-landing/src/App.d.ts +0 -4
  163. package/dist/parfymerie-landing/src/App.d.ts.map +0 -1
  164. package/dist/parfymerie-landing/src/App.js +0 -12
  165. package/dist/parfymerie-landing/src/App.js.map +0 -1
  166. package/dist/parfymerie-landing/src/main.d.ts +0 -2
  167. package/dist/parfymerie-landing/src/main.d.ts.map +0 -1
  168. package/dist/parfymerie-landing/src/main.js +0 -7
  169. package/dist/parfymerie-landing/src/main.js.map +0 -1
  170. package/dist/parfymerie-landing/vite.config.d.ts +0 -3
  171. package/dist/parfymerie-landing/vite.config.d.ts.map +0 -1
  172. package/dist/parfymerie-landing/vite.config.js +0 -7
  173. package/dist/parfymerie-landing/vite.config.js.map +0 -1
  174. package/dist/repl.d.ts +0 -5
  175. package/dist/repl.d.ts.map +0 -1
  176. package/dist/repl.js +0 -472
  177. package/dist/repl.js.map +0 -1
  178. package/dist/sort.d.ts +0 -8
  179. package/dist/sort.d.ts.map +0 -1
  180. package/dist/sort.js +0 -36
  181. package/dist/sort.js.map +0 -1
  182. package/dist/stack.d.ts +0 -9
  183. package/dist/stack.d.ts.map +0 -1
  184. package/dist/stack.js +0 -22
  185. package/dist/stack.js.map +0 -1
  186. package/dist/test-run.d.ts +0 -2
  187. package/dist/test-run.d.ts.map +0 -1
  188. package/dist/test-run.js +0 -13
  189. package/dist/test-run.js.map +0 -1
  190. package/dist/ui/components/diff-view.d.ts +0 -8
  191. package/dist/ui/components/diff-view.d.ts.map +0 -1
  192. package/dist/ui/components/diff-view.js +0 -25
  193. package/dist/ui/components/diff-view.js.map +0 -1
  194. package/dist/ui/double-press.d.ts +0 -9
  195. package/dist/ui/double-press.d.ts.map +0 -1
  196. package/dist/ui/double-press.js +0 -18
  197. package/dist/ui/double-press.js.map +0 -1
  198. package/dist/ui/ink/components/ActivityLog.d.ts +0 -12
  199. package/dist/ui/ink/components/ActivityLog.d.ts.map +0 -1
  200. package/dist/ui/ink/components/ActivityLog.js +0 -11
  201. package/dist/ui/ink/components/ActivityLog.js.map +0 -1
  202. package/dist/ui/ink/components/AgentStatus.d.ts +0 -13
  203. package/dist/ui/ink/components/AgentStatus.d.ts.map +0 -1
  204. package/dist/ui/ink/components/AgentStatus.js +0 -20
  205. package/dist/ui/ink/components/AgentStatus.js.map +0 -1
  206. package/dist/ui/ink/components/BottomBar.d.ts +0 -12
  207. package/dist/ui/ink/components/BottomBar.d.ts.map +0 -1
  208. package/dist/ui/ink/components/BottomBar.js +0 -22
  209. package/dist/ui/ink/components/BottomBar.js.map +0 -1
  210. package/dist/ui/ink/components/CheckboxInput.d.ts +0 -21
  211. package/dist/ui/ink/components/CheckboxInput.d.ts.map +0 -1
  212. package/dist/ui/ink/components/CheckboxInput.js +0 -36
  213. package/dist/ui/ink/components/CheckboxInput.js.map +0 -1
  214. package/dist/ui/ink/components/InputBox.d.ts +0 -25
  215. package/dist/ui/ink/components/InputBox.d.ts.map +0 -1
  216. package/dist/ui/ink/components/InputBox.js +0 -91
  217. package/dist/ui/ink/components/InputBox.js.map +0 -1
  218. package/dist/ui/ink/components/ModeSelector.d.ts +0 -8
  219. package/dist/ui/ink/components/ModeSelector.d.ts.map +0 -1
  220. package/dist/ui/ink/components/ModeSelector.js +0 -13
  221. package/dist/ui/ink/components/ModeSelector.js.map +0 -1
  222. package/dist/ui/ink/components/QuestionBox.d.ts +0 -14
  223. package/dist/ui/ink/components/QuestionBox.d.ts.map +0 -1
  224. package/dist/ui/ink/components/QuestionBox.js +0 -35
  225. package/dist/ui/ink/components/QuestionBox.js.map +0 -1
  226. package/dist/ui/ink/components/RadioInput.d.ts +0 -17
  227. package/dist/ui/ink/components/RadioInput.d.ts.map +0 -1
  228. package/dist/ui/ink/components/RadioInput.js +0 -30
  229. package/dist/ui/ink/components/RadioInput.js.map +0 -1
  230. package/dist/ui/ink/components/SliderInput.d.ts +0 -20
  231. package/dist/ui/ink/components/SliderInput.d.ts.map +0 -1
  232. package/dist/ui/ink/components/SliderInput.js +0 -40
  233. package/dist/ui/ink/components/SliderInput.js.map +0 -1
  234. package/dist/ui/ink/components/StartupScreen.d.ts +0 -19
  235. package/dist/ui/ink/components/StartupScreen.d.ts.map +0 -1
  236. package/dist/ui/ink/components/StartupScreen.js +0 -9
  237. package/dist/ui/ink/components/StartupScreen.js.map +0 -1
  238. package/dist/ui/ink/components/WelcomeScreen.d.ts +0 -10
  239. package/dist/ui/ink/components/WelcomeScreen.d.ts.map +0 -1
  240. package/dist/ui/ink/components/WelcomeScreen.js +0 -8
  241. package/dist/ui/ink/components/WelcomeScreen.js.map +0 -1
  242. package/dist/ui/ink/components/Window.d.ts +0 -30
  243. package/dist/ui/ink/components/Window.d.ts.map +0 -1
  244. package/dist/ui/ink/components/Window.js +0 -9
  245. package/dist/ui/ink/components/Window.js.map +0 -1
  246. package/dist/ui/ink/components/ui/_core.d.ts +0 -113
  247. package/dist/ui/ink/components/ui/_core.d.ts.map +0 -1
  248. package/dist/ui/ink/components/ui/_core.js +0 -83
  249. package/dist/ui/ink/components/ui/_core.js.map +0 -1
  250. package/dist/ui/ink/components/ui/autocomplete/Autocomplete.d.ts +0 -23
  251. package/dist/ui/ink/components/ui/autocomplete/Autocomplete.d.ts.map +0 -1
  252. package/dist/ui/ink/components/ui/autocomplete/Autocomplete.js +0 -56
  253. package/dist/ui/ink/components/ui/autocomplete/Autocomplete.js.map +0 -1
  254. package/dist/ui/ink/components/ui/autocomplete/index.d.ts +0 -3
  255. package/dist/ui/ink/components/ui/autocomplete/index.d.ts.map +0 -1
  256. package/dist/ui/ink/components/ui/autocomplete/index.js +0 -2
  257. package/dist/ui/ink/components/ui/autocomplete/index.js.map +0 -1
  258. package/dist/ui/ink/components/ui/badge/Badge.d.ts +0 -13
  259. package/dist/ui/ink/components/ui/badge/Badge.d.ts.map +0 -1
  260. package/dist/ui/ink/components/ui/badge/Badge.js +0 -17
  261. package/dist/ui/ink/components/ui/badge/Badge.js.map +0 -1
  262. package/dist/ui/ink/components/ui/badge/index.d.ts +0 -3
  263. package/dist/ui/ink/components/ui/badge/index.d.ts.map +0 -1
  264. package/dist/ui/ink/components/ui/badge/index.js +0 -2
  265. package/dist/ui/ink/components/ui/badge/index.js.map +0 -1
  266. package/dist/ui/ink/components/ui/divider/Divider.d.ts +0 -12
  267. package/dist/ui/ink/components/ui/divider/Divider.d.ts.map +0 -1
  268. package/dist/ui/ink/components/ui/divider/Divider.js +0 -27
  269. package/dist/ui/ink/components/ui/divider/Divider.js.map +0 -1
  270. package/dist/ui/ink/components/ui/divider/index.d.ts +0 -3
  271. package/dist/ui/ink/components/ui/divider/index.d.ts.map +0 -1
  272. package/dist/ui/ink/components/ui/divider/index.js +0 -2
  273. package/dist/ui/ink/components/ui/divider/index.js.map +0 -1
  274. package/dist/ui/ink/components/ui/header/Header.d.ts +0 -13
  275. package/dist/ui/ink/components/ui/header/Header.d.ts.map +0 -1
  276. package/dist/ui/ink/components/ui/header/Header.js +0 -33
  277. package/dist/ui/ink/components/ui/header/Header.js.map +0 -1
  278. package/dist/ui/ink/components/ui/header/index.d.ts +0 -3
  279. package/dist/ui/ink/components/ui/header/index.d.ts.map +0 -1
  280. package/dist/ui/ink/components/ui/header/index.js +0 -2
  281. package/dist/ui/ink/components/ui/header/index.js.map +0 -1
  282. package/dist/ui/ink/components/ui/json-viewer/JSONViewer.d.ts +0 -14
  283. package/dist/ui/ink/components/ui/json-viewer/JSONViewer.d.ts.map +0 -1
  284. package/dist/ui/ink/components/ui/json-viewer/JSONViewer.js +0 -144
  285. package/dist/ui/ink/components/ui/json-viewer/JSONViewer.js.map +0 -1
  286. package/dist/ui/ink/components/ui/json-viewer/index.d.ts +0 -3
  287. package/dist/ui/ink/components/ui/json-viewer/index.d.ts.map +0 -1
  288. package/dist/ui/ink/components/ui/json-viewer/index.js +0 -2
  289. package/dist/ui/ink/components/ui/json-viewer/index.js.map +0 -1
  290. package/dist/ui/ink/components/ui/key-hint/KeyHint.d.ts +0 -14
  291. package/dist/ui/ink/components/ui/key-hint/KeyHint.d.ts.map +0 -1
  292. package/dist/ui/ink/components/ui/key-hint/KeyHint.js +0 -5
  293. package/dist/ui/ink/components/ui/key-hint/KeyHint.js.map +0 -1
  294. package/dist/ui/ink/components/ui/key-hint/index.d.ts +0 -3
  295. package/dist/ui/ink/components/ui/key-hint/index.d.ts.map +0 -1
  296. package/dist/ui/ink/components/ui/key-hint/index.js +0 -2
  297. package/dist/ui/ink/components/ui/key-hint/index.js.map +0 -1
  298. package/dist/ui/ink/components/ui/markdown/Markdown.d.ts +0 -11
  299. package/dist/ui/ink/components/ui/markdown/Markdown.d.ts.map +0 -1
  300. package/dist/ui/ink/components/ui/markdown/Markdown.js +0 -129
  301. package/dist/ui/ink/components/ui/markdown/Markdown.js.map +0 -1
  302. package/dist/ui/ink/components/ui/markdown/index.d.ts +0 -3
  303. package/dist/ui/ink/components/ui/markdown/index.d.ts.map +0 -1
  304. package/dist/ui/ink/components/ui/markdown/index.js +0 -2
  305. package/dist/ui/ink/components/ui/markdown/index.js.map +0 -1
  306. package/dist/ui/ink/components/ui/scroll-area/ScrollArea.d.ts +0 -21
  307. package/dist/ui/ink/components/ui/scroll-area/ScrollArea.d.ts.map +0 -1
  308. package/dist/ui/ink/components/ui/scroll-area/ScrollArea.js +0 -42
  309. package/dist/ui/ink/components/ui/scroll-area/ScrollArea.js.map +0 -1
  310. package/dist/ui/ink/components/ui/scroll-area/index.d.ts +0 -3
  311. package/dist/ui/ink/components/ui/scroll-area/index.d.ts.map +0 -1
  312. package/dist/ui/ink/components/ui/scroll-area/index.js +0 -2
  313. package/dist/ui/ink/components/ui/scroll-area/index.js.map +0 -1
  314. package/dist/ui/ink/components/ui/select/Select.d.ts +0 -19
  315. package/dist/ui/ink/components/ui/select/Select.d.ts.map +0 -1
  316. package/dist/ui/ink/components/ui/select/Select.js +0 -73
  317. package/dist/ui/ink/components/ui/select/Select.js.map +0 -1
  318. package/dist/ui/ink/components/ui/select/index.d.ts +0 -3
  319. package/dist/ui/ink/components/ui/select/index.d.ts.map +0 -1
  320. package/dist/ui/ink/components/ui/select/index.js +0 -2
  321. package/dist/ui/ink/components/ui/select/index.js.map +0 -1
  322. package/dist/ui/ink/components/ui/spinner/Spinner.d.ts +0 -14
  323. package/dist/ui/ink/components/ui/spinner/Spinner.d.ts.map +0 -1
  324. package/dist/ui/ink/components/ui/spinner/Spinner.js +0 -16
  325. package/dist/ui/ink/components/ui/spinner/Spinner.js.map +0 -1
  326. package/dist/ui/ink/components/ui/spinner/index.d.ts +0 -3
  327. package/dist/ui/ink/components/ui/spinner/index.d.ts.map +0 -1
  328. package/dist/ui/ink/components/ui/spinner/index.js +0 -2
  329. package/dist/ui/ink/components/ui/spinner/index.js.map +0 -1
  330. package/dist/ui/ink/components/ui/status-indicator/StatusIndicator.d.ts +0 -12
  331. package/dist/ui/ink/components/ui/status-indicator/StatusIndicator.d.ts.map +0 -1
  332. package/dist/ui/ink/components/ui/status-indicator/StatusIndicator.js +0 -39
  333. package/dist/ui/ink/components/ui/status-indicator/StatusIndicator.js.map +0 -1
  334. package/dist/ui/ink/components/ui/status-indicator/index.d.ts +0 -3
  335. package/dist/ui/ink/components/ui/status-indicator/index.d.ts.map +0 -1
  336. package/dist/ui/ink/components/ui/status-indicator/index.js +0 -2
  337. package/dist/ui/ink/components/ui/status-indicator/index.js.map +0 -1
  338. package/dist/ui/ink/components/ui/streaming-text/StreamingText.d.ts +0 -13
  339. package/dist/ui/ink/components/ui/streaming-text/StreamingText.d.ts.map +0 -1
  340. package/dist/ui/ink/components/ui/streaming-text/StreamingText.js +0 -22
  341. package/dist/ui/ink/components/ui/streaming-text/StreamingText.js.map +0 -1
  342. package/dist/ui/ink/components/ui/streaming-text/index.d.ts +0 -3
  343. package/dist/ui/ink/components/ui/streaming-text/index.d.ts.map +0 -1
  344. package/dist/ui/ink/components/ui/streaming-text/index.js +0 -2
  345. package/dist/ui/ink/components/ui/streaming-text/index.js.map +0 -1
  346. package/dist/ui/ink/components/ui/tabs/Tabs.d.ts +0 -20
  347. package/dist/ui/ink/components/ui/tabs/Tabs.d.ts.map +0 -1
  348. package/dist/ui/ink/components/ui/tabs/Tabs.js +0 -53
  349. package/dist/ui/ink/components/ui/tabs/Tabs.js.map +0 -1
  350. package/dist/ui/ink/components/ui/tabs/index.d.ts +0 -3
  351. package/dist/ui/ink/components/ui/tabs/index.d.ts.map +0 -1
  352. package/dist/ui/ink/components/ui/tabs/index.js +0 -2
  353. package/dist/ui/ink/components/ui/tabs/index.js.map +0 -1
  354. package/dist/ui/ink/components/ui/text-input/TextInput.d.ts +0 -22
  355. package/dist/ui/ink/components/ui/text-input/TextInput.d.ts.map +0 -1
  356. package/dist/ui/ink/components/ui/text-input/TextInput.js +0 -57
  357. package/dist/ui/ink/components/ui/text-input/TextInput.js.map +0 -1
  358. package/dist/ui/ink/components/ui/text-input/index.d.ts +0 -3
  359. package/dist/ui/ink/components/ui/text-input/index.d.ts.map +0 -1
  360. package/dist/ui/ink/components/ui/text-input/index.js +0 -2
  361. package/dist/ui/ink/components/ui/text-input/index.js.map +0 -1
  362. package/dist/ui/ink/components/ui/token-counter/TokenCounter.d.ts +0 -17
  363. package/dist/ui/ink/components/ui/token-counter/TokenCounter.d.ts.map +0 -1
  364. package/dist/ui/ink/components/ui/token-counter/TokenCounter.js +0 -38
  365. package/dist/ui/ink/components/ui/token-counter/TokenCounter.js.map +0 -1
  366. package/dist/ui/ink/components/ui/token-counter/index.d.ts +0 -3
  367. package/dist/ui/ink/components/ui/token-counter/index.d.ts.map +0 -1
  368. package/dist/ui/ink/components/ui/token-counter/index.js +0 -2
  369. package/dist/ui/ink/components/ui/token-counter/index.js.map +0 -1
  370. package/dist/ui/ink/components/ui/typewriter/Typewriter.d.ts +0 -14
  371. package/dist/ui/ink/components/ui/typewriter/Typewriter.d.ts.map +0 -1
  372. package/dist/ui/ink/components/ui/typewriter/Typewriter.js +0 -57
  373. package/dist/ui/ink/components/ui/typewriter/Typewriter.js.map +0 -1
  374. package/dist/ui/ink/components/ui/typewriter/index.d.ts +0 -3
  375. package/dist/ui/ink/components/ui/typewriter/index.d.ts.map +0 -1
  376. package/dist/ui/ink/components/ui/typewriter/index.js +0 -2
  377. package/dist/ui/ink/components/ui/typewriter/index.js.map +0 -1
  378. package/dist/ui/opentui-renderer.d.ts +0 -53
  379. package/dist/ui/opentui-renderer.d.ts.map +0 -1
  380. package/dist/ui/opentui-renderer.js +0 -463
  381. package/dist/ui/opentui-renderer.js.map +0 -1
  382. package/dist/utils/memoize.d.ts +0 -14
  383. package/dist/utils/memoize.d.ts.map +0 -1
  384. package/dist/utils/memoize.js +0 -51
  385. package/dist/utils/memoize.js.map +0 -1
  386. package/dist/utils/types.d.ts +0 -6
  387. package/dist/utils/types.d.ts.map +0 -1
  388. package/dist/utils/types.js +0 -2
  389. package/dist/utils/types.js.map +0 -1
  390. package/dist/utils.d.ts +0 -22
  391. package/dist/utils.d.ts.map +0 -1
  392. package/dist/utils.js +0 -81
  393. package/dist/utils.js.map +0 -1
@@ -1,7 +1,7 @@
1
- import { copyFileSync, mkdirSync, readFileSync, writeFileSync, existsSync } from 'node:fs';
2
- import { homedir } from 'node:os';
3
- import { dirname, join, resolve } from 'node:path';
4
- import { fileURLToPath } from 'node:url';
1
+ import { copyFileSync, mkdirSync, readFileSync, writeFileSync, existsSync, } from "node:fs";
2
+ import { homedir } from "node:os";
3
+ import { dirname, join, resolve } from "node:path";
4
+ import { fileURLToPath } from "node:url";
5
5
  /**
6
6
  * Загрузка и сохранение конфигурации.
7
7
  *
@@ -19,35 +19,42 @@ import { fileURLToPath } from 'node:url';
19
19
  const DEFAULT_CONFIG = {
20
20
  providers: {
21
21
  lmstudio: {
22
- type: 'openai-compat',
23
- url: 'http://localhost:1234/v1',
22
+ type: "openai-compat",
23
+ url: "http://localhost:1234/v1",
24
24
  apiKey: null,
25
25
  models: {
26
- 'qwen/qwen3.5-9b': {
27
- model: 'qwen/qwen3.5-9b',
26
+ "qwen/qwen3.5-9b": {
27
+ model: "qwen/qwen3.5-9b",
28
28
  contextWindow: 32768,
29
29
  params: { temperature: 0.7, top_p: 0.9, max_tokens: 4096 },
30
30
  },
31
31
  },
32
32
  },
33
33
  ollama: {
34
- type: 'openai-compat',
35
- url: 'http://localhost:11434/v1',
34
+ type: "openai-compat",
35
+ url: "http://localhost:11434/v1",
36
36
  apiKey: null,
37
37
  models: {
38
- 'qwen3.5:9b': {
39
- model: 'qwen3.5:9b',
38
+ "qwen3.5:9b": {
39
+ model: "qwen3.5:9b",
40
40
  contextWindow: 32768,
41
41
  params: { temperature: 0.7, top_p: 0.9, num_ctx: 32768 },
42
42
  },
43
43
  },
44
44
  },
45
45
  },
46
- active: { provider: 'lmstudio', model: 'qwen/qwen3.5-9b' },
46
+ active: { provider: "lmstudio", model: "qwen/qwen3.5-9b" },
47
47
  agent: {
48
- maxSteps: 100, autoCompact: true, compactThreshold: 0.70,
49
- toolTimeout: 120, maxOutputLength: 2000, showThinking: false, mode: 'base',
50
- skillTokenBudget: 4000, maxSkillsBase: 2, maxSkillsPro: 0,
48
+ maxSteps: 100,
49
+ autoCompact: true,
50
+ compactThreshold: 0.7,
51
+ toolTimeout: 120,
52
+ maxOutputLength: 2000,
53
+ showThinking: false,
54
+ mode: "base",
55
+ skillTokenBudget: 4000,
56
+ maxSkillsBase: 2,
57
+ maxSkillsPro: 0,
51
58
  llm: {
52
59
  retries: 1,
53
60
  retryWithoutThinking: true,
@@ -65,9 +72,10 @@ const DEFAULT_CONFIG = {
65
72
  },
66
73
  grounding: {
67
74
  enabled: true,
68
- strictMode: false,
75
+ strictMode: true,
69
76
  checkFiles: true,
70
- maxMissingGrounding: 3,
77
+ maxMissingGrounding: 2,
78
+ maxConsecutiveGroundingErrors: 5,
71
79
  },
72
80
  },
73
81
  };
@@ -75,9 +83,9 @@ const DEFAULT_CONFIG = {
75
83
  function findProjectRoot() {
76
84
  let dir = resolve(process.cwd());
77
85
  while (true) {
78
- if (existsSync(join(dir, '.mmrc')) || existsSync(join(dir, 'package.json')))
86
+ if (existsSync(join(dir, ".mmrc")) || existsSync(join(dir, "package.json")))
79
87
  return dir;
80
- const parent = resolve(dir, '..');
88
+ const parent = resolve(dir, "..");
81
89
  if (parent === dir)
82
90
  return null;
83
91
  dir = parent;
@@ -88,7 +96,10 @@ function deepAssign(target, source) {
88
96
  for (const key of Object.keys(source)) {
89
97
  const tv = target[key];
90
98
  const sv = source[key];
91
- if (tv && typeof tv === 'object' && !Array.isArray(tv) && sv && typeof sv === 'object' && !Array.isArray(sv)) {
99
+ if (Array.isArray(tv) || Array.isArray(sv)) {
100
+ target[key] = sv;
101
+ }
102
+ else if (tv && typeof tv === "object" && sv && typeof sv === "object") {
92
103
  deepAssign(tv, sv);
93
104
  }
94
105
  else {
@@ -104,22 +115,26 @@ export function loadConfig() {
104
115
  const config = JSON.parse(JSON.stringify(DEFAULT_CONFIG));
105
116
  const projectRoot = findProjectRoot();
106
117
  if (projectRoot) {
107
- const rcPath = join(projectRoot, '.mmrc');
118
+ const rcPath = join(projectRoot, ".mmrc");
108
119
  if (existsSync(rcPath)) {
109
120
  try {
110
- const rc = JSON.parse(readFileSync(rcPath, 'utf-8'));
121
+ const rc = JSON.parse(readFileSync(rcPath, "utf-8"));
111
122
  deepAssign(config, rc);
112
123
  }
113
- catch { /* ignore invalid config */ }
124
+ catch {
125
+ /* ignore invalid config */
126
+ }
114
127
  }
115
128
  }
116
- const globalPath = join(homedir(), '.mma', 'config.json');
129
+ const globalPath = join(homedir(), ".mma", "config.json");
117
130
  if (existsSync(globalPath)) {
118
131
  try {
119
- const global = JSON.parse(readFileSync(globalPath, 'utf-8'));
132
+ const global = JSON.parse(readFileSync(globalPath, "utf-8"));
120
133
  deepAssign(config, global);
121
134
  }
122
- catch { /* ignore */ }
135
+ catch {
136
+ /* ignore */
137
+ }
123
138
  }
124
139
  if (process.env.MMA_PROVIDER)
125
140
  config.active.provider = process.env.MMA_PROVIDER;
@@ -127,52 +142,58 @@ export function loadConfig() {
127
142
  config.active.model = process.env.MMA_MODEL;
128
143
  return config;
129
144
  }
130
- const MMA_DIR = join(homedir(), '.mma');
145
+ const MMA_DIR = join(homedir(), ".mma");
131
146
  /** Создаёт директории ~/.mma/ + subdirs если не существуют */
132
147
  export function ensureMmaDir() {
133
- const pluginsDir = join(MMA_DIR, 'plugins');
148
+ const pluginsDir = join(MMA_DIR, "plugins");
134
149
  const isFirstRun = !existsSync(pluginsDir);
135
- for (const dir of [MMA_DIR, join(MMA_DIR, 'state'), join(MMA_DIR, 'cache'), join(MMA_DIR, 'index'), pluginsDir]) {
150
+ for (const dir of [
151
+ MMA_DIR,
152
+ join(MMA_DIR, "state"),
153
+ join(MMA_DIR, "cache"),
154
+ join(MMA_DIR, "index"),
155
+ pluginsDir,
156
+ ]) {
136
157
  if (!existsSync(dir))
137
158
  mkdirSync(dir, { recursive: true });
138
159
  }
139
160
  if (isFirstRun) {
140
161
  const __filename = fileURLToPath(import.meta.url);
141
- const rootDir = resolve(dirname(__filename), '..', '..');
142
- const docsSrc = join(rootDir, 'docs', 'PLUGINS.md');
162
+ const rootDir = resolve(dirname(__filename), "..", "..");
163
+ const docsSrc = join(rootDir, "docs", "PLUGINS.md");
143
164
  try {
144
- copyFileSync(docsSrc, join(pluginsDir, 'PLUGINS.md'));
165
+ copyFileSync(docsSrc, join(pluginsDir, "PLUGINS.md"));
145
166
  }
146
167
  catch {
147
168
  /* docs могут отсутствовать в некоторых установках */
148
169
  }
149
- const testPluginDir = join(pluginsDir, 'test-plugin');
170
+ const testPluginDir = join(pluginsDir, "test-plugin");
150
171
  mkdirSync(testPluginDir, { recursive: true });
151
- writeFileSync(join(testPluginDir, 'manifest.json'), JSON.stringify({
152
- name: 'test-plugin',
153
- version: '0.1.0',
154
- description: 'Тестовый плагин (ничего не делает)',
155
- entry: 'index.ts',
172
+ writeFileSync(join(testPluginDir, "manifest.json"), JSON.stringify({
173
+ name: "test-plugin",
174
+ version: "0.1.0",
175
+ description: "Тестовый плагин (ничего не делает)",
176
+ entry: "index.ts",
156
177
  }, null, 2));
157
- writeFileSync(join(testPluginDir, 'index.ts'), `import type { AgentPlugin } from 'micro-models-agent';
158
-
159
- export default function createPlugin(): AgentPlugin {
160
- return {
161
- name: 'test-plugin',
162
- version: '0.1.0',
163
- onActivate() {
164
- // Ничего не делает
165
- },
166
- };
167
- }
178
+ writeFileSync(join(testPluginDir, "index.ts"), `import type { AgentPlugin } from 'micro-models-agent';
179
+
180
+ export default function createPlugin(): AgentPlugin {
181
+ return {
182
+ name: 'test-plugin',
183
+ version: '0.1.0',
184
+ onActivate() {
185
+ // Ничего не делает
186
+ },
187
+ };
188
+ }
168
189
  `);
169
190
  }
170
191
  }
171
192
  /** Сохраняет конфигурацию в ~/.mma/config.json */
172
193
  export function saveConfig(config) {
173
- const globalPath = join(MMA_DIR, 'config.json');
194
+ const globalPath = join(MMA_DIR, "config.json");
174
195
  ensureMmaDir();
175
- writeFileSync(globalPath, JSON.stringify(config, null, 2), 'utf-8');
196
+ writeFileSync(globalPath, JSON.stringify(config, null, 2), "utf-8");
176
197
  }
177
198
  /** LLM config defaults */
178
199
  const LLM_DEFAULTS = {
@@ -204,9 +225,10 @@ export function getLLMConfig(config) {
204
225
  /** Grounding config defaults */
205
226
  const GROUNDING_DEFAULTS = {
206
227
  enabled: true,
207
- strictMode: false,
228
+ strictMode: true,
208
229
  checkFiles: true,
209
- maxMissingGrounding: 3,
230
+ maxMissingGrounding: 2,
231
+ maxConsecutiveGroundingErrors: 5,
210
232
  };
211
233
  /** Получить grounding конфиг с заполненными defaults */
212
234
  export function getGroundingConfig(config) {
@@ -218,6 +240,8 @@ export function getGroundingConfig(config) {
218
240
  strictMode: src.strictMode ?? GROUNDING_DEFAULTS.strictMode,
219
241
  checkFiles: src.checkFiles ?? GROUNDING_DEFAULTS.checkFiles,
220
242
  maxMissingGrounding: src.maxMissingGrounding ?? GROUNDING_DEFAULTS.maxMissingGrounding,
243
+ maxConsecutiveGroundingErrors: src.maxConsecutiveGroundingErrors ??
244
+ GROUNDING_DEFAULTS.maxConsecutiveGroundingErrors,
221
245
  };
222
246
  }
223
247
  /** Specialist config defaults */
@@ -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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"}
@@ -91,6 +91,8 @@ export interface GroundingConfig {
91
91
  checkFiles?: boolean;
92
92
  /** Сколько раз можно пропустить токен до retry (default: 3) */
93
93
  maxMissingGrounding?: number;
94
+ /** Лимит CRITICAL retry-попыток подряд — после превышения grounding отключается до конца сессии (default: 5) */
95
+ maxConsecutiveGroundingErrors?: number;
94
96
  }
95
97
  /** Конфигурация auto-specialist (автоделегирование при повторяющихся ошибках) */
96
98
  export interface SpecialistConfig {
@@ -104,7 +106,12 @@ export interface SpecialistConfig {
104
106
  minErrorLength?: number;
105
107
  }
106
108
  /** Режимы работы агента: fast (без скилов), base (обычный), pro (с grill-me) */
107
- export type AgentMode = 'fast' | 'base' | 'pro';
109
+ export type AgentMode = "fast" | "base" | "pro";
110
+ /** Runtime-флаги сессии (не сохраняются, передаются через CLI) */
111
+ export interface RuntimeFlags {
112
+ dev?: boolean;
113
+ logs?: boolean;
114
+ }
108
115
  /** Полная конфигурация приложения */
109
116
  export interface AppConfig {
110
117
  providers: Record<string, ProviderConfig>;
@@ -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;IAC7B,gHAAgH;IAChH,6BAA6B,CAAC,EAAE,MAAM,CAAC;CACxC;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,kEAAkE;AAClE,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,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"}
package/dist/logger.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export declare function setStatusWriter(writer: ((msg: string) => void) | null): void;
2
+ export declare function setLogRenderer(renderer: ((level: string, tag: string, message: string) => void) | null): void;
2
3
  export declare function writeStatus(msg: string): void;
3
4
  export declare function initSessionLog(sessionId: string): void;
4
5
  export declare function getLogPath(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAsBA,wBAAgB,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAE5E;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE7C;AAMD,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAGtD;AAED,wBAAgB,UAAU,IAAI,MAAM,CAMnC;AAED,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AAMD,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAIlG;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAA+B;AAC1F,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAA+B;AAC1F,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAgC;AAC5F,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAgC;AAE5F,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAGhH;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAO9H;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAQhF;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAGnF;AAED,wBAAgB,cAAc,CAAC,OAAO,SAAI,GAAG,IAAI,CAYhD"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAuBA,wBAAgB,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAE5E;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAE7G;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE7C;AAMD,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAGtD;AAED,wBAAgB,UAAU,IAAI,MAAM,CAMnC;AAED,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AAMD,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAKlG;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAA+B;AAC1F,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAA+B;AAC1F,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAgC;AAC5F,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAgC;AAE5F,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAGhH;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAO9H;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAQhF;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAGnF;AAED,wBAAgB,cAAc,CAAC,OAAO,SAAI,GAAG,IAAI,CAYhD"}
package/dist/logger.js CHANGED
@@ -16,9 +16,13 @@ import { homedir } from 'node:os';
16
16
  const LOGS_DIR = join(homedir(), '.mma', 'logs');
17
17
  let _sessionLogPath = null;
18
18
  let _statusWriter = null;
19
+ let _logRenderer = null;
19
20
  export function setStatusWriter(writer) {
20
21
  _statusWriter = writer;
21
22
  }
23
+ export function setLogRenderer(renderer) {
24
+ _logRenderer = renderer;
25
+ }
22
26
  export function writeStatus(msg) {
23
27
  _statusWriter?.(msg);
24
28
  }
@@ -48,6 +52,7 @@ export function log(level, tag, message) {
48
52
  ensureDir();
49
53
  const line = `[${timestamp()}] [${level}] [${tag}] ${message}\n`;
50
54
  appendFileSync(getLogPath(), line, 'utf-8');
55
+ _logRenderer?.(level, tag, message);
51
56
  }
52
57
  export function logInfo(tag, message) { log('INFO', tag, message); }
53
58
  export function logWarn(tag, message) { log('WARN', tag, message); }
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
@@ -1,97 +1,97 @@
1
- import { execSync } from 'node:child_process';
2
- import { existsSync, readFileSync, writeFileSync } from 'node:fs';
3
- import { join } from 'node:path';
4
- import type { AgentPlugin, PluginContext } from '../../types.js';
5
-
6
- /**
7
- * Плагин lint-on-write.
8
- *
9
- * После каждого write_file/edit_file запускает линтер
10
- * и добавляет ошибки в tool result (модель видит их сразу).
11
- *
12
- * Линтер определяется автоматически (eslint → biome → prettier).
13
- *
14
- * @module plugins/builtin/lint-on-write
15
- */
16
-
17
- const LINTER_DETECT_COMMANDS = [
18
- { name: 'eslint', cmd: 'npx eslint --version' },
19
- { name: 'biome', cmd: 'npx @biomejs/biome --version' },
20
- { name: 'prettier', cmd: 'npx prettier --version' },
21
- ];
22
-
23
- function detectLinter(cwd: string, cacheFile: string): string | null {
24
- const cachePath = join(cwd, cacheFile);
25
- if (existsSync(cachePath)) {
26
- try {
27
- const cached = readFileSync(cachePath, 'utf-8').trim();
28
- if (cached) return cached;
29
- } catch { /* ignore */ }
30
- }
31
- for (const { name, cmd } of LINTER_DETECT_COMMANDS) {
32
- try {
33
- execSync(cmd, { cwd, timeout: 5000, windowsHide: true, stdio: 'pipe' });
34
- try { writeFileSync(cachePath, name, 'utf-8'); } catch { /* ignore */ }
35
- return name;
36
- } catch { /* not found */ }
37
- }
38
- return null;
39
- }
40
-
41
- function runLinter(linter: string, filePath: string, cwd: string): string | null {
42
- try {
43
- let cmd: string;
44
- switch (linter) {
45
- case 'eslint': cmd = `npx eslint "${filePath}" --format compact`; break;
46
- case 'biome': cmd = `npx @biomejs/biome check "${filePath}"`; break;
47
- case 'prettier': cmd = `npx prettier --check "${filePath}"`; break;
48
- default: return null;
49
- }
50
- execSync(cmd, { cwd, timeout: 15000, windowsHide: true, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] });
51
- return null;
52
- } catch (e: any) {
53
- const output = e.stdout?.toString() || e.stderr?.toString() || '';
54
- return output ? output.slice(0, 1000) : null;
55
- }
56
- }
57
-
58
- // Module-level linter cache
59
- let cachedLinter: string | null = null;
60
-
61
- export default function createLintOnWrite(): AgentPlugin {
62
- return {
63
- name: 'lint-on-write',
64
- version: '1.0.0',
65
- description: 'Auto-run linter after write_file/edit_file',
66
- onActivate(ctx: PluginContext) {
67
- ctx.logger.info('lint-on-write: active (linter detected on first file write)');
68
- },
69
- on(_event: string, _handler: any) { /* via PluginManager.on() */ },
70
- onDeactivate() { cachedLinter = null; },
71
- getPromptSection() {
72
- return '## Lint-on-Write Plugin\nAfter writing/editing .ts/.tsx/.js/.jsx files, lint errors (if any) are automatically appended to the tool result.';
73
- },
74
- };
75
- }
76
-
77
- /**
78
- * Обработчик tool:after — вызывается через PluginManager.on().
79
- * Экспортируется для регистрации в loop.ts.
80
- */
81
- export function handleToolAfter(
82
- toolName: string,
83
- args: Record<string, unknown>,
84
- _result: { stdout: string; stderr: string; exitCode: number },
85
- cwd: string,
86
- cacheFile: string,
87
- ): string | null {
88
- if (toolName !== 'write_file' && toolName !== 'edit_file') return null;
89
- const filePath = String(args.path ?? '');
90
- if (!filePath || !/\.(ts|tsx|js|jsx|mjs|cjs)$/.test(filePath)) return null;
91
-
92
- const linter = cachedLinter ?? detectLinter(cwd, cacheFile);
93
- if (!linter) return null;
94
- cachedLinter = linter;
95
-
96
- return runLinter(linter, filePath, cwd);
1
+ import { execSync } from 'node:child_process';
2
+ import { existsSync, readFileSync, writeFileSync } from 'node:fs';
3
+ import { join } from 'node:path';
4
+ import type { AgentPlugin, PluginContext } from '../../types.js';
5
+
6
+ /**
7
+ * Плагин lint-on-write.
8
+ *
9
+ * После каждого write_file/edit_file запускает линтер
10
+ * и добавляет ошибки в tool result (модель видит их сразу).
11
+ *
12
+ * Линтер определяется автоматически (eslint → biome → prettier).
13
+ *
14
+ * @module plugins/builtin/lint-on-write
15
+ */
16
+
17
+ const LINTER_DETECT_COMMANDS = [
18
+ { name: 'eslint', cmd: 'npx eslint --version' },
19
+ { name: 'biome', cmd: 'npx @biomejs/biome --version' },
20
+ { name: 'prettier', cmd: 'npx prettier --version' },
21
+ ];
22
+
23
+ function detectLinter(cwd: string, cacheFile: string): string | null {
24
+ const cachePath = join(cwd, cacheFile);
25
+ if (existsSync(cachePath)) {
26
+ try {
27
+ const cached = readFileSync(cachePath, 'utf-8').trim();
28
+ if (cached) return cached;
29
+ } catch { /* ignore */ }
30
+ }
31
+ for (const { name, cmd } of LINTER_DETECT_COMMANDS) {
32
+ try {
33
+ execSync(cmd, { cwd, timeout: 5000, windowsHide: true, stdio: 'pipe' });
34
+ try { writeFileSync(cachePath, name, 'utf-8'); } catch { /* ignore */ }
35
+ return name;
36
+ } catch { /* not found */ }
37
+ }
38
+ return null;
39
+ }
40
+
41
+ function runLinter(linter: string, filePath: string, cwd: string): string | null {
42
+ try {
43
+ let cmd: string;
44
+ switch (linter) {
45
+ case 'eslint': cmd = `npx eslint "${filePath}" --format compact`; break;
46
+ case 'biome': cmd = `npx @biomejs/biome check "${filePath}"`; break;
47
+ case 'prettier': cmd = `npx prettier --check "${filePath}"`; break;
48
+ default: return null;
49
+ }
50
+ execSync(cmd, { cwd, timeout: 15000, windowsHide: true, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] });
51
+ return null;
52
+ } catch (e: any) {
53
+ const output = e.stdout?.toString() || e.stderr?.toString() || '';
54
+ return output ? output.slice(0, 1000) : null;
55
+ }
56
+ }
57
+
58
+ // Module-level linter cache
59
+ let cachedLinter: string | null = null;
60
+
61
+ export default function createLintOnWrite(): AgentPlugin {
62
+ return {
63
+ name: 'lint-on-write',
64
+ version: '1.0.0',
65
+ description: 'Auto-run linter after write_file/edit_file',
66
+ onActivate(ctx: PluginContext) {
67
+ ctx.logger.info('lint-on-write: active (linter detected on first file write)');
68
+ },
69
+ on(_event: string, _handler: any) { /* via PluginManager.on() */ },
70
+ onDeactivate() { cachedLinter = null; },
71
+ getPromptSection() {
72
+ return '## Lint-on-Write Plugin\nAfter writing/editing .ts/.tsx/.js/.jsx files, lint errors (if any) are automatically appended to the tool result.';
73
+ },
74
+ };
75
+ }
76
+
77
+ /**
78
+ * Обработчик tool:after — вызывается через PluginManager.on().
79
+ * Экспортируется для регистрации в loop.ts.
80
+ */
81
+ export function handleToolAfter(
82
+ toolName: string,
83
+ args: Record<string, unknown>,
84
+ _result: { stdout: string; stderr: string; exitCode: number },
85
+ cwd: string,
86
+ cacheFile: string,
87
+ ): string | null {
88
+ if (toolName !== 'write_file' && toolName !== 'edit_file') return null;
89
+ const filePath = String(args.path ?? '');
90
+ if (!filePath || !/\.(ts|tsx|js|jsx|mjs|cjs)$/.test(filePath)) return null;
91
+
92
+ const linter = cachedLinter ?? detectLinter(cwd, cacheFile);
93
+ if (!linter) return null;
94
+ cachedLinter = linter;
95
+
96
+ return runLinter(linter, filePath, cwd);
97
97
  }
@@ -22,12 +22,12 @@ function sendNotification(title, body) {
22
22
  // Write temp .ps1 file to avoid $ escaping issues in shell
23
23
  const safeTitle = title.replace(/'/g, "''");
24
24
  const safeBody = body.replace(/'/g, "''");
25
- const psScript = `Add-Type -AssemblyName System.Windows.Forms
26
- $n = New-Object System.Windows.Forms.NotifyIcon
27
- $n.Icon = [System.Drawing.SystemIcons]::Information
28
- $n.Visible = $true
29
- $n.ShowBalloonTip(5000, '${safeTitle}', '${safeBody}', [System.Windows.Forms.ToolTipIcon]::Info)
30
- Start-Sleep -Seconds 2
25
+ const psScript = `Add-Type -AssemblyName System.Windows.Forms
26
+ $n = New-Object System.Windows.Forms.NotifyIcon
27
+ $n.Icon = [System.Drawing.SystemIcons]::Information
28
+ $n.Visible = $true
29
+ $n.ShowBalloonTip(5000, '${safeTitle}', '${safeBody}', [System.Windows.Forms.ToolTipIcon]::Info)
30
+ Start-Sleep -Seconds 2
31
31
  $n.Dispose()`;
32
32
  const tmpFile = join(tmpdir(), `mma-notify-${Date.now()}.ps1`);
33
33
  writeFileSync(tmpFile, psScript, 'utf-8');