micro-models-agent 0.6.4 → 0.7.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 (472) hide show
  1. package/README.md +286 -436
  2. package/dist/main.js +11744 -0
  3. package/dist/skills/builtin/git.md +36 -0
  4. package/dist/skills/builtin/typescript.md +35 -0
  5. package/package.json +41 -47
  6. package/dist/agent/context.d.ts +0 -73
  7. package/dist/agent/context.d.ts.map +0 -1
  8. package/dist/agent/context.js +0 -262
  9. package/dist/agent/context.js.map +0 -1
  10. package/dist/agent/error-escalation.d.ts +0 -19
  11. package/dist/agent/error-escalation.d.ts.map +0 -1
  12. package/dist/agent/error-escalation.js +0 -168
  13. package/dist/agent/error-escalation.js.map +0 -1
  14. package/dist/agent/loop.d.ts +0 -46
  15. package/dist/agent/loop.d.ts.map +0 -1
  16. package/dist/agent/loop.js +0 -1043
  17. package/dist/agent/loop.js.map +0 -1
  18. package/dist/agent/memory.d.ts +0 -40
  19. package/dist/agent/memory.d.ts.map +0 -1
  20. package/dist/agent/memory.js +0 -231
  21. package/dist/agent/memory.js.map +0 -1
  22. package/dist/agent/modes/applier.d.ts +0 -43
  23. package/dist/agent/modes/applier.d.ts.map +0 -1
  24. package/dist/agent/modes/applier.js +0 -30
  25. package/dist/agent/modes/applier.js.map +0 -1
  26. package/dist/agent/modes/registry.d.ts +0 -35
  27. package/dist/agent/modes/registry.d.ts.map +0 -1
  28. package/dist/agent/modes/registry.js +0 -169
  29. package/dist/agent/modes/registry.js.map +0 -1
  30. package/dist/agent/modes/types.d.ts +0 -61
  31. package/dist/agent/modes/types.d.ts.map +0 -1
  32. package/dist/agent/modes/types.js +0 -13
  33. package/dist/agent/modes/types.js.map +0 -1
  34. package/dist/agent/react-loop.d.ts +0 -65
  35. package/dist/agent/react-loop.d.ts.map +0 -1
  36. package/dist/agent/react-loop.js +0 -101
  37. package/dist/agent/react-loop.js.map +0 -1
  38. package/dist/agent/system-prompt.d.ts +0 -26
  39. package/dist/agent/system-prompt.d.ts.map +0 -1
  40. package/dist/agent/system-prompt.js +0 -478
  41. package/dist/agent/system-prompt.js.map +0 -1
  42. package/dist/agent/tool-executor.d.ts +0 -36
  43. package/dist/agent/tool-executor.d.ts.map +0 -1
  44. package/dist/agent/tool-executor.js +0 -346
  45. package/dist/agent/tool-executor.js.map +0 -1
  46. package/dist/agent/user-profile.d.ts +0 -26
  47. package/dist/agent/user-profile.d.ts.map +0 -1
  48. package/dist/agent/user-profile.js +0 -169
  49. package/dist/agent/user-profile.js.map +0 -1
  50. package/dist/agent/write-enforcer.d.ts +0 -7
  51. package/dist/agent/write-enforcer.d.ts.map +0 -1
  52. package/dist/agent/write-enforcer.js +0 -8
  53. package/dist/agent/write-enforcer.js.map +0 -1
  54. package/dist/cli/config.d.ts +0 -13
  55. package/dist/cli/config.d.ts.map +0 -1
  56. package/dist/cli/config.js +0 -82
  57. package/dist/cli/config.js.map +0 -1
  58. package/dist/cli/model.d.ts +0 -13
  59. package/dist/cli/model.d.ts.map +0 -1
  60. package/dist/cli/model.js +0 -170
  61. package/dist/cli/model.js.map +0 -1
  62. package/dist/cli/provider.d.ts +0 -12
  63. package/dist/cli/provider.d.ts.map +0 -1
  64. package/dist/cli/provider.js +0 -90
  65. package/dist/cli/provider.js.map +0 -1
  66. package/dist/cli/update.d.ts +0 -12
  67. package/dist/cli/update.d.ts.map +0 -1
  68. package/dist/cli/update.js +0 -69
  69. package/dist/cli/update.js.map +0 -1
  70. package/dist/cli.d.ts +0 -3
  71. package/dist/cli.d.ts.map +0 -1
  72. package/dist/cli.js +0 -310
  73. package/dist/cli.js.map +0 -1
  74. package/dist/config/config.d.ts +0 -59
  75. package/dist/config/config.d.ts.map +0 -1
  76. package/dist/config/config.js +0 -232
  77. package/dist/config/config.js.map +0 -1
  78. package/dist/config/types.d.ts +0 -122
  79. package/dist/config/types.d.ts.map +0 -1
  80. package/dist/config/types.js +0 -13
  81. package/dist/config/types.js.map +0 -1
  82. package/dist/file-loader.d.ts +0 -20
  83. package/dist/file-loader.d.ts.map +0 -1
  84. package/dist/file-loader.js +0 -121
  85. package/dist/file-loader.js.map +0 -1
  86. package/dist/index.d.ts +0 -9
  87. package/dist/index.d.ts.map +0 -1
  88. package/dist/index.js +0 -11
  89. package/dist/index.js.map +0 -1
  90. package/dist/indexer/cache.d.ts +0 -34
  91. package/dist/indexer/cache.d.ts.map +0 -1
  92. package/dist/indexer/cache.js +0 -221
  93. package/dist/indexer/cache.js.map +0 -1
  94. package/dist/indexer/code-index.d.ts +0 -27
  95. package/dist/indexer/code-index.d.ts.map +0 -1
  96. package/dist/indexer/code-index.js +0 -219
  97. package/dist/indexer/code-index.js.map +0 -1
  98. package/dist/indexer/project-map.d.ts +0 -23
  99. package/dist/indexer/project-map.d.ts.map +0 -1
  100. package/dist/indexer/project-map.js +0 -264
  101. package/dist/indexer/project-map.js.map +0 -1
  102. package/dist/llm/lmstudio-native.d.ts +0 -10
  103. package/dist/llm/lmstudio-native.d.ts.map +0 -1
  104. package/dist/llm/lmstudio-native.js +0 -179
  105. package/dist/llm/lmstudio-native.js.map +0 -1
  106. package/dist/llm/openai-compat.d.ts +0 -11
  107. package/dist/llm/openai-compat.d.ts.map +0 -1
  108. package/dist/llm/openai-compat.js +0 -161
  109. package/dist/llm/openai-compat.js.map +0 -1
  110. package/dist/llm/provider.d.ts +0 -46
  111. package/dist/llm/provider.d.ts.map +0 -1
  112. package/dist/llm/provider.js +0 -13
  113. package/dist/llm/provider.js.map +0 -1
  114. package/dist/llm/token-counter.d.ts +0 -15
  115. package/dist/llm/token-counter.d.ts.map +0 -1
  116. package/dist/llm/token-counter.js +0 -51
  117. package/dist/llm/token-counter.js.map +0 -1
  118. package/dist/logger.d.ts +0 -24
  119. package/dist/logger.d.ts.map +0 -1
  120. package/dist/logger.js +0 -156
  121. package/dist/logger.js.map +0 -1
  122. package/dist/plugins/adapters/hooks-adapter.d.ts +0 -12
  123. package/dist/plugins/adapters/hooks-adapter.d.ts.map +0 -1
  124. package/dist/plugins/adapters/hooks-adapter.js +0 -23
  125. package/dist/plugins/adapters/hooks-adapter.js.map +0 -1
  126. package/dist/plugins/builtin/lint-on-write/index.d.ts +0 -12
  127. package/dist/plugins/builtin/lint-on-write/index.d.ts.map +0 -1
  128. package/dist/plugins/builtin/lint-on-write/index.js +0 -98
  129. package/dist/plugins/builtin/lint-on-write/index.js.map +0 -1
  130. package/dist/plugins/builtin/lint-on-write/index.ts +0 -97
  131. package/dist/plugins/builtin/lint-on-write/manifest.json +0 -13
  132. package/dist/plugins/builtin/notify/index.d.ts +0 -11
  133. package/dist/plugins/builtin/notify/index.d.ts.map +0 -1
  134. package/dist/plugins/builtin/notify/index.js +0 -102
  135. package/dist/plugins/builtin/notify/index.js.map +0 -1
  136. package/dist/plugins/builtin/notify/index.ts +0 -105
  137. package/dist/plugins/builtin/notify/manifest.json +0 -16
  138. package/dist/plugins/loader.d.ts +0 -18
  139. package/dist/plugins/loader.d.ts.map +0 -1
  140. package/dist/plugins/loader.js +0 -182
  141. package/dist/plugins/loader.js.map +0 -1
  142. package/dist/plugins/manager.d.ts +0 -55
  143. package/dist/plugins/manager.d.ts.map +0 -1
  144. package/dist/plugins/manager.js +0 -190
  145. package/dist/plugins/manager.js.map +0 -1
  146. package/dist/plugins/types.d.ts +0 -76
  147. package/dist/plugins/types.d.ts.map +0 -1
  148. package/dist/plugins/types.js +0 -8
  149. package/dist/plugins/types.js.map +0 -1
  150. package/dist/repl/commands.d.ts +0 -63
  151. package/dist/repl/commands.d.ts.map +0 -1
  152. package/dist/repl/commands.js +0 -1070
  153. package/dist/repl/commands.js.map +0 -1
  154. package/dist/repl/history.d.ts +0 -32
  155. package/dist/repl/history.d.ts.map +0 -1
  156. package/dist/repl/history.js +0 -40
  157. package/dist/repl/history.js.map +0 -1
  158. package/dist/repl/index.d.ts +0 -14
  159. package/dist/repl/index.d.ts.map +0 -1
  160. package/dist/repl/index.js +0 -235
  161. package/dist/repl/index.js.map +0 -1
  162. package/dist/session/store.d.ts +0 -46
  163. package/dist/session/store.d.ts.map +0 -1
  164. package/dist/session/store.js +0 -154
  165. package/dist/session/store.js.map +0 -1
  166. package/dist/setup-wizard.d.ts +0 -3
  167. package/dist/setup-wizard.d.ts.map +0 -1
  168. package/dist/setup-wizard.js +0 -410
  169. package/dist/setup-wizard.js.map +0 -1
  170. package/dist/skills/builtin/agent-test/SKILL.md +0 -68
  171. package/dist/skills/builtin/cli-expert/SKILL.md +0 -848
  172. package/dist/skills/builtin/code-review/SKILL.md +0 -424
  173. package/dist/skills/builtin/git-expert/SKILL.md +0 -522
  174. package/dist/skills/builtin/grill-me/SKILL.md +0 -46
  175. package/dist/skills/builtin/jest-testing-expert/SKILL.md +0 -957
  176. package/dist/skills/builtin/nodejs-expert/SKILL.md +0 -192
  177. package/dist/skills/builtin/systematic-debugging/SKILL.md +0 -296
  178. package/dist/skills/builtin/test-driven-development/SKILL.md +0 -371
  179. package/dist/skills/builtin/typescript-expert/SKILL.md +0 -429
  180. package/dist/skills/builtin/web-scraping/SKILL.md +0 -422
  181. package/dist/skills/loader.d.ts +0 -49
  182. package/dist/skills/loader.d.ts.map +0 -1
  183. package/dist/skills/loader.js +0 -401
  184. package/dist/skills/loader.js.map +0 -1
  185. package/dist/styling/engine.d.ts +0 -39
  186. package/dist/styling/engine.d.ts.map +0 -1
  187. package/dist/styling/engine.js +0 -122
  188. package/dist/styling/engine.js.map +0 -1
  189. package/dist/styling/index.d.ts +0 -15
  190. package/dist/styling/index.d.ts.map +0 -1
  191. package/dist/styling/index.js +0 -40
  192. package/dist/styling/index.js.map +0 -1
  193. package/dist/styling/loader.d.ts +0 -9
  194. package/dist/styling/loader.d.ts.map +0 -1
  195. package/dist/styling/loader.js +0 -169
  196. package/dist/styling/loader.js.map +0 -1
  197. package/dist/styling/types.d.ts +0 -64
  198. package/dist/styling/types.d.ts.map +0 -1
  199. package/dist/styling/types.js +0 -12
  200. package/dist/styling/types.js.map +0 -1
  201. package/dist/subagent/chat.d.ts +0 -19
  202. package/dist/subagent/chat.d.ts.map +0 -1
  203. package/dist/subagent/chat.js +0 -279
  204. package/dist/subagent/chat.js.map +0 -1
  205. package/dist/subagent/context.d.ts +0 -9
  206. package/dist/subagent/context.d.ts.map +0 -1
  207. package/dist/subagent/context.js +0 -75
  208. package/dist/subagent/context.js.map +0 -1
  209. package/dist/subagent/definition.d.ts +0 -7
  210. package/dist/subagent/definition.d.ts.map +0 -1
  211. package/dist/subagent/definition.js +0 -26
  212. package/dist/subagent/definition.js.map +0 -1
  213. package/dist/subagent/errors.d.ts +0 -24
  214. package/dist/subagent/errors.d.ts.map +0 -1
  215. package/dist/subagent/errors.js +0 -85
  216. package/dist/subagent/errors.js.map +0 -1
  217. package/dist/subagent/validation.d.ts +0 -17
  218. package/dist/subagent/validation.d.ts.map +0 -1
  219. package/dist/subagent/validation.js +0 -83
  220. package/dist/subagent/validation.js.map +0 -1
  221. package/dist/tools/adapters/bash-to-fs.d.ts +0 -20
  222. package/dist/tools/adapters/bash-to-fs.d.ts.map +0 -1
  223. package/dist/tools/adapters/bash-to-fs.js +0 -74
  224. package/dist/tools/adapters/bash-to-fs.js.map +0 -1
  225. package/dist/tools/adapters/content-sanitizer.d.ts +0 -13
  226. package/dist/tools/adapters/content-sanitizer.d.ts.map +0 -1
  227. package/dist/tools/adapters/content-sanitizer.js +0 -73
  228. package/dist/tools/adapters/content-sanitizer.js.map +0 -1
  229. package/dist/tools/adapters/grounding-fixer.d.ts +0 -15
  230. package/dist/tools/adapters/grounding-fixer.d.ts.map +0 -1
  231. package/dist/tools/adapters/grounding-fixer.js +0 -57
  232. package/dist/tools/adapters/grounding-fixer.js.map +0 -1
  233. package/dist/tools/adapters/index.d.ts +0 -6
  234. package/dist/tools/adapters/index.d.ts.map +0 -1
  235. package/dist/tools/adapters/index.js +0 -5
  236. package/dist/tools/adapters/index.js.map +0 -1
  237. package/dist/tools/adapters/pipeline.d.ts +0 -34
  238. package/dist/tools/adapters/pipeline.d.ts.map +0 -1
  239. package/dist/tools/adapters/pipeline.js +0 -58
  240. package/dist/tools/adapters/pipeline.js.map +0 -1
  241. package/dist/tools/adapters/types.d.ts +0 -46
  242. package/dist/tools/adapters/types.d.ts.map +0 -1
  243. package/dist/tools/adapters/types.js +0 -2
  244. package/dist/tools/adapters/types.js.map +0 -1
  245. package/dist/tools/approve.d.ts +0 -27
  246. package/dist/tools/approve.d.ts.map +0 -1
  247. package/dist/tools/approve.js +0 -45
  248. package/dist/tools/approve.js.map +0 -1
  249. package/dist/tools/bash.d.ts +0 -25
  250. package/dist/tools/bash.d.ts.map +0 -1
  251. package/dist/tools/bash.js +0 -292
  252. package/dist/tools/bash.js.map +0 -1
  253. package/dist/tools/fs/copy-file.d.ts +0 -13
  254. package/dist/tools/fs/copy-file.d.ts.map +0 -1
  255. package/dist/tools/fs/copy-file.js +0 -54
  256. package/dist/tools/fs/copy-file.js.map +0 -1
  257. package/dist/tools/fs/create-dir.d.ts +0 -13
  258. package/dist/tools/fs/create-dir.d.ts.map +0 -1
  259. package/dist/tools/fs/create-dir.js +0 -44
  260. package/dist/tools/fs/create-dir.js.map +0 -1
  261. package/dist/tools/fs/delete-file.d.ts +0 -13
  262. package/dist/tools/fs/delete-file.d.ts.map +0 -1
  263. package/dist/tools/fs/delete-file.js +0 -52
  264. package/dist/tools/fs/delete-file.js.map +0 -1
  265. package/dist/tools/fs/edit-file.d.ts +0 -15
  266. package/dist/tools/fs/edit-file.d.ts.map +0 -1
  267. package/dist/tools/fs/edit-file.js +0 -95
  268. package/dist/tools/fs/edit-file.js.map +0 -1
  269. package/dist/tools/fs/file-info.d.ts +0 -13
  270. package/dist/tools/fs/file-info.d.ts.map +0 -1
  271. package/dist/tools/fs/file-info.js +0 -50
  272. package/dist/tools/fs/file-info.js.map +0 -1
  273. package/dist/tools/fs/glob-search.d.ts +0 -13
  274. package/dist/tools/fs/glob-search.d.ts.map +0 -1
  275. package/dist/tools/fs/glob-search.js +0 -112
  276. package/dist/tools/fs/glob-search.js.map +0 -1
  277. package/dist/tools/fs/grep-search.d.ts +0 -14
  278. package/dist/tools/fs/grep-search.d.ts.map +0 -1
  279. package/dist/tools/fs/grep-search.js +0 -135
  280. package/dist/tools/fs/grep-search.js.map +0 -1
  281. package/dist/tools/fs/list-dir.d.ts +0 -13
  282. package/dist/tools/fs/list-dir.d.ts.map +0 -1
  283. package/dist/tools/fs/list-dir.js +0 -74
  284. package/dist/tools/fs/list-dir.js.map +0 -1
  285. package/dist/tools/fs/move-file.d.ts +0 -13
  286. package/dist/tools/fs/move-file.d.ts.map +0 -1
  287. package/dist/tools/fs/move-file.js +0 -54
  288. package/dist/tools/fs/move-file.js.map +0 -1
  289. package/dist/tools/fs/path-utils.d.ts +0 -51
  290. package/dist/tools/fs/path-utils.d.ts.map +0 -1
  291. package/dist/tools/fs/path-utils.js +0 -103
  292. package/dist/tools/fs/path-utils.js.map +0 -1
  293. package/dist/tools/fs/read-file.d.ts +0 -13
  294. package/dist/tools/fs/read-file.d.ts.map +0 -1
  295. package/dist/tools/fs/read-file.js +0 -64
  296. package/dist/tools/fs/read-file.js.map +0 -1
  297. package/dist/tools/fs/tree.d.ts +0 -13
  298. package/dist/tools/fs/tree.d.ts.map +0 -1
  299. package/dist/tools/fs/tree.js +0 -89
  300. package/dist/tools/fs/tree.js.map +0 -1
  301. package/dist/tools/fs/types.d.ts +0 -14
  302. package/dist/tools/fs/types.d.ts.map +0 -1
  303. package/dist/tools/fs/types.js +0 -11
  304. package/dist/tools/fs/types.js.map +0 -1
  305. package/dist/tools/fs/write-file.d.ts +0 -14
  306. package/dist/tools/fs/write-file.d.ts.map +0 -1
  307. package/dist/tools/fs/write-file.js +0 -83
  308. package/dist/tools/fs/write-file.js.map +0 -1
  309. package/dist/tools/hooks.d.ts +0 -44
  310. package/dist/tools/hooks.d.ts.map +0 -1
  311. package/dist/tools/hooks.js +0 -217
  312. package/dist/tools/hooks.js.map +0 -1
  313. package/dist/tools/id-gen.d.ts +0 -4
  314. package/dist/tools/id-gen.d.ts.map +0 -1
  315. package/dist/tools/id-gen.js +0 -12
  316. package/dist/tools/id-gen.js.map +0 -1
  317. package/dist/tools/mcp.d.ts +0 -36
  318. package/dist/tools/mcp.d.ts.map +0 -1
  319. package/dist/tools/mcp.js +0 -93
  320. package/dist/tools/mcp.js.map +0 -1
  321. package/dist/tools/native/approve.d.ts +0 -11
  322. package/dist/tools/native/approve.d.ts.map +0 -1
  323. package/dist/tools/native/approve.js +0 -39
  324. package/dist/tools/native/approve.js.map +0 -1
  325. package/dist/tools/native/plan.d.ts +0 -10
  326. package/dist/tools/native/plan.d.ts.map +0 -1
  327. package/dist/tools/native/plan.js +0 -115
  328. package/dist/tools/native/plan.js.map +0 -1
  329. package/dist/tools/native/project-map.d.ts +0 -15
  330. package/dist/tools/native/project-map.d.ts.map +0 -1
  331. package/dist/tools/native/project-map.js +0 -203
  332. package/dist/tools/native/project-map.js.map +0 -1
  333. package/dist/tools/native/question.d.ts +0 -11
  334. package/dist/tools/native/question.d.ts.map +0 -1
  335. package/dist/tools/native/question.js +0 -41
  336. package/dist/tools/native/question.js.map +0 -1
  337. package/dist/tools/native/scaffold.d.ts +0 -5
  338. package/dist/tools/native/scaffold.d.ts.map +0 -1
  339. package/dist/tools/native/scaffold.js +0 -246
  340. package/dist/tools/native/scaffold.js.map +0 -1
  341. package/dist/tools/native/theme.d.ts +0 -10
  342. package/dist/tools/native/theme.d.ts.map +0 -1
  343. package/dist/tools/native/theme.js +0 -101
  344. package/dist/tools/native/theme.js.map +0 -1
  345. package/dist/tools/native/todo.d.ts +0 -10
  346. package/dist/tools/native/todo.d.ts.map +0 -1
  347. package/dist/tools/native/todo.js +0 -58
  348. package/dist/tools/native/todo.js.map +0 -1
  349. package/dist/tools/native/user-profile.d.ts +0 -10
  350. package/dist/tools/native/user-profile.d.ts.map +0 -1
  351. package/dist/tools/native/user-profile.js +0 -58
  352. package/dist/tools/native/user-profile.js.map +0 -1
  353. package/dist/tools/parse-tool-call.d.ts +0 -11
  354. package/dist/tools/parse-tool-call.d.ts.map +0 -1
  355. package/dist/tools/parse-tool-call.js +0 -87
  356. package/dist/tools/parse-tool-call.js.map +0 -1
  357. package/dist/tools/plan.d.ts +0 -40
  358. package/dist/tools/plan.d.ts.map +0 -1
  359. package/dist/tools/plan.js +0 -143
  360. package/dist/tools/plan.js.map +0 -1
  361. package/dist/tools/question.d.ts +0 -33
  362. package/dist/tools/question.d.ts.map +0 -1
  363. package/dist/tools/question.js +0 -62
  364. package/dist/tools/question.js.map +0 -1
  365. package/dist/tools/registry.d.ts +0 -37
  366. package/dist/tools/registry.d.ts.map +0 -1
  367. package/dist/tools/registry.js +0 -97
  368. package/dist/tools/registry.js.map +0 -1
  369. package/dist/tools/sanitizer.d.ts +0 -30
  370. package/dist/tools/sanitizer.d.ts.map +0 -1
  371. package/dist/tools/sanitizer.js +0 -77
  372. package/dist/tools/sanitizer.js.map +0 -1
  373. package/dist/tools/subagent.d.ts +0 -39
  374. package/dist/tools/subagent.d.ts.map +0 -1
  375. package/dist/tools/subagent.js +0 -225
  376. package/dist/tools/subagent.js.map +0 -1
  377. package/dist/tools/syntax-check.d.ts +0 -32
  378. package/dist/tools/syntax-check.d.ts.map +0 -1
  379. package/dist/tools/syntax-check.js +0 -272
  380. package/dist/tools/syntax-check.js.map +0 -1
  381. package/dist/tools/todo.d.ts +0 -28
  382. package/dist/tools/todo.d.ts.map +0 -1
  383. package/dist/tools/todo.js +0 -125
  384. package/dist/tools/todo.js.map +0 -1
  385. package/dist/tools/types.d.ts +0 -51
  386. package/dist/tools/types.d.ts.map +0 -1
  387. package/dist/tools/types.js +0 -2
  388. package/dist/tools/types.js.map +0 -1
  389. package/dist/tools/web-browse.d.ts +0 -5
  390. package/dist/tools/web-browse.d.ts.map +0 -1
  391. package/dist/tools/web-browse.js +0 -757
  392. package/dist/tools/web-browse.js.map +0 -1
  393. package/dist/tools/web-fetch.d.ts +0 -19
  394. package/dist/tools/web-fetch.d.ts.map +0 -1
  395. package/dist/tools/web-fetch.js +0 -90
  396. package/dist/tools/web-fetch.js.map +0 -1
  397. package/dist/tools/web-search.d.ts +0 -19
  398. package/dist/tools/web-search.d.ts.map +0 -1
  399. package/dist/tools/web-search.js +0 -97
  400. package/dist/tools/web-search.js.map +0 -1
  401. package/dist/ui/components/status-bar.d.ts +0 -11
  402. package/dist/ui/components/status-bar.d.ts.map +0 -1
  403. package/dist/ui/components/status-bar.js +0 -20
  404. package/dist/ui/components/status-bar.js.map +0 -1
  405. package/dist/ui/index.d.ts +0 -8
  406. package/dist/ui/index.d.ts.map +0 -1
  407. package/dist/ui/index.js +0 -9
  408. package/dist/ui/index.js.map +0 -1
  409. package/dist/ui/ink/components/App.d.ts +0 -98
  410. package/dist/ui/ink/components/App.d.ts.map +0 -1
  411. package/dist/ui/ink/components/App.js +0 -212
  412. package/dist/ui/ink/components/App.js.map +0 -1
  413. package/dist/ui/ink/components/Conversation.d.ts +0 -20
  414. package/dist/ui/ink/components/Conversation.d.ts.map +0 -1
  415. package/dist/ui/ink/components/Conversation.js +0 -15
  416. package/dist/ui/ink/components/Conversation.js.map +0 -1
  417. package/dist/ui/ink/components/MessageBlock.d.ts +0 -27
  418. package/dist/ui/ink/components/MessageBlock.d.ts.map +0 -1
  419. package/dist/ui/ink/components/MessageBlock.js +0 -41
  420. package/dist/ui/ink/components/MessageBlock.js.map +0 -1
  421. package/dist/ui/ink/components/PromptInput.d.ts +0 -25
  422. package/dist/ui/ink/components/PromptInput.d.ts.map +0 -1
  423. package/dist/ui/ink/components/PromptInput.js +0 -167
  424. package/dist/ui/ink/components/PromptInput.js.map +0 -1
  425. package/dist/ui/ink/components/SelectInput.d.ts +0 -9
  426. package/dist/ui/ink/components/SelectInput.d.ts.map +0 -1
  427. package/dist/ui/ink/components/SelectInput.js +0 -30
  428. package/dist/ui/ink/components/SelectInput.js.map +0 -1
  429. package/dist/ui/ink/components/StatusBar.d.ts +0 -14
  430. package/dist/ui/ink/components/StatusBar.d.ts.map +0 -1
  431. package/dist/ui/ink/components/StatusBar.js +0 -20
  432. package/dist/ui/ink/components/StatusBar.js.map +0 -1
  433. package/dist/ui/ink/components/StreamBlock.d.ts +0 -8
  434. package/dist/ui/ink/components/StreamBlock.d.ts.map +0 -1
  435. package/dist/ui/ink/components/StreamBlock.js +0 -15
  436. package/dist/ui/ink/components/StreamBlock.js.map +0 -1
  437. package/dist/ui/ink/components/Tags.d.ts +0 -26
  438. package/dist/ui/ink/components/Tags.d.ts.map +0 -1
  439. package/dist/ui/ink/components/Tags.js +0 -37
  440. package/dist/ui/ink/components/Tags.js.map +0 -1
  441. package/dist/ui/ink/components/ToolCallBlock.d.ts +0 -31
  442. package/dist/ui/ink/components/ToolCallBlock.d.ts.map +0 -1
  443. package/dist/ui/ink/components/ToolCallBlock.js +0 -17
  444. package/dist/ui/ink/components/ToolCallBlock.js.map +0 -1
  445. package/dist/ui/ink/renderer.d.ts +0 -69
  446. package/dist/ui/ink/renderer.d.ts.map +0 -1
  447. package/dist/ui/ink/renderer.js +0 -142
  448. package/dist/ui/ink/renderer.js.map +0 -1
  449. package/dist/ui/ink/theme.d.ts +0 -28
  450. package/dist/ui/ink/theme.d.ts.map +0 -1
  451. package/dist/ui/ink/theme.js +0 -45
  452. package/dist/ui/ink/theme.js.map +0 -1
  453. package/dist/ui/md-formatter.d.ts +0 -16
  454. package/dist/ui/md-formatter.d.ts.map +0 -1
  455. package/dist/ui/md-formatter.js +0 -448
  456. package/dist/ui/md-formatter.js.map +0 -1
  457. package/dist/ui/readline-renderer.d.ts +0 -45
  458. package/dist/ui/readline-renderer.d.ts.map +0 -1
  459. package/dist/ui/readline-renderer.js +0 -181
  460. package/dist/ui/readline-renderer.js.map +0 -1
  461. package/dist/ui/renderer.d.ts +0 -66
  462. package/dist/ui/renderer.d.ts.map +0 -1
  463. package/dist/ui/renderer.js +0 -16
  464. package/dist/ui/renderer.js.map +0 -1
  465. package/dist/ui/subagent-renderer.d.ts +0 -58
  466. package/dist/ui/subagent-renderer.d.ts.map +0 -1
  467. package/dist/ui/subagent-renderer.js +0 -100
  468. package/dist/ui/subagent-renderer.js.map +0 -1
  469. package/dist/updater.d.ts +0 -15
  470. package/dist/updater.d.ts.map +0 -1
  471. package/dist/updater.js +0 -166
  472. package/dist/updater.js.map +0 -1
package/dist/logger.js DELETED
@@ -1,156 +0,0 @@
1
- import { appendFileSync, mkdirSync, existsSync, readdirSync, statSync, unlinkSync, renameSync, } from "node:fs";
2
- import { join } from "node:path";
3
- import { homedir } from "node:os";
4
- const LOGS_DIR = join(homedir(), ".mma", "logs");
5
- const MAX_LOG_SIZE = 5 * 1024 * 1024; // 5 MB на файл
6
- const MAX_LOG_FILES = 30; // макс. количество файлов в директории
7
- const DEFAULT_MAX_DAYS = 30; // макс. возраст файла в днях
8
- const TOOL_OUTPUT_LIMIT = 2000; // макс. символов вывода тула в логе
9
- let _sessionLogPath = null;
10
- let _statusWriter = null;
11
- let _logRenderer = null;
12
- export function setStatusWriter(writer) {
13
- _statusWriter = writer;
14
- }
15
- export function setLogRenderer(renderer) {
16
- _logRenderer = renderer;
17
- }
18
- export function writeStatus(msg) {
19
- _statusWriter?.(msg);
20
- }
21
- function ensureDir() {
22
- if (!existsSync(LOGS_DIR))
23
- mkdirSync(LOGS_DIR, { recursive: true });
24
- }
25
- export function initSessionLog(sessionId) {
26
- ensureDir();
27
- _sessionLogPath = join(LOGS_DIR, `${sessionId}.log`);
28
- cleanupOldLogs();
29
- }
30
- export function getLogPath() {
31
- if (_sessionLogPath)
32
- return _sessionLogPath;
33
- ensureDir();
34
- const now = new Date();
35
- const date = now.toISOString().slice(0, 10);
36
- return join(LOGS_DIR, `${date}.log`);
37
- }
38
- export function closeSessionLog() {
39
- _sessionLogPath = null;
40
- }
41
- function timestamp() {
42
- return new Date().toISOString();
43
- }
44
- /** Ротировать файл если превышен лимит размера */
45
- function rotateIfNeeded(filePath) {
46
- if (!existsSync(filePath))
47
- return;
48
- const size = statSync(filePath).size;
49
- if (size < MAX_LOG_SIZE)
50
- return;
51
- let idx = 1;
52
- while (existsSync(`${filePath}.${idx}`))
53
- idx++;
54
- renameSync(filePath, `${filePath}.${idx}`);
55
- }
56
- export function log(level, tag, message) {
57
- ensureDir();
58
- const fp = getLogPath();
59
- rotateIfNeeded(fp);
60
- const line = `[${timestamp()}] [${level}] [${tag}] ${message}\n`;
61
- appendFileSync(fp, line, "utf-8");
62
- _logRenderer?.(level, tag, message);
63
- }
64
- export function logInfo(tag, message) {
65
- log("INFO", tag, message);
66
- }
67
- export function logWarn(tag, message) {
68
- log("WARN", tag, message);
69
- }
70
- export function logError(tag, message) {
71
- log("ERROR", tag, message);
72
- }
73
- export function logDebug(tag, message) {
74
- log("DEBUG", tag, message);
75
- }
76
- export function logLLMRequest(model, messagesCount, promptPreview, caller) {
77
- const tag = caller ? `LLM/${caller}` : "LLM";
78
- logInfo(tag, `→ ${model} | ${messagesCount} messages | "${promptPreview.slice(0, 100)}"`);
79
- }
80
- export function logLLMResponse(model, responseLength, genTimeMs, error, caller) {
81
- const tag = caller ? `LLM/${caller}` : "LLM";
82
- if (error) {
83
- logError(tag, `← ${model} | ${responseLength} chars | ${genTimeMs}ms | ERROR: ${error}`);
84
- }
85
- else {
86
- logInfo(tag, `← ${model} | ${responseLength} chars | ${genTimeMs}ms`);
87
- }
88
- }
89
- export function logToolCall(tool, preview, result) {
90
- const previewTrimmed = preview.length > 200 ? preview.slice(0, 200) + "..." : preview;
91
- if (result !== undefined) {
92
- const resultTrimmed = result.length > 200 ? result.slice(0, 200) + "..." : result;
93
- logInfo("TOOL", `${tool} | ${previewTrimmed} → ${resultTrimmed}`);
94
- }
95
- else {
96
- logInfo("TOOL", `${tool} | ${previewTrimmed}`);
97
- }
98
- }
99
- /** Запись полного вывода тула в лог (уровень DEBUG) */
100
- export function logToolOutput(tool, output, exitCode) {
101
- const trimmed = output.length > TOOL_OUTPUT_LIMIT
102
- ? output.slice(0, TOOL_OUTPUT_LIMIT) +
103
- `\n... (truncated ${output.length - TOOL_OUTPUT_LIMIT} chars)`
104
- : output;
105
- logDebug("TOOL_OUTPUT", `${tool} exit:${exitCode}\n${trimmed}`);
106
- }
107
- export function logREPL(tag, content) {
108
- const trimmed = content.length > 400 ? content.slice(0, 400) + "..." : content;
109
- logInfo(`REPL/${tag}`, trimmed);
110
- }
111
- /**
112
- * Очистка старых логов.
113
- * - Удаляет файлы старше maxDays
114
- * - Оставляет не более maxFiles самых свежих .log файлов
115
- */
116
- export function cleanupOldLogs(maxDays = DEFAULT_MAX_DAYS, maxFiles = MAX_LOG_FILES) {
117
- ensureDir();
118
- const now = Date.now();
119
- // 1. Удалить по возрасту
120
- const files = readdirSync(LOGS_DIR)
121
- .filter((f) => f.endsWith(".log") || /\.log\.\d+$/.test(f))
122
- .map((f) => ({
123
- name: f,
124
- path: join(LOGS_DIR, f),
125
- mtime: statSync(join(LOGS_DIR, f)).mtimeMs,
126
- }))
127
- .sort((a, b) => b.mtime - a.mtime); // newest first
128
- for (const f of files) {
129
- if (now - f.mtime > maxDays * 24 * 60 * 60 * 1000) {
130
- try {
131
- unlinkSync(f.path);
132
- }
133
- catch {
134
- /* ignore */
135
- }
136
- }
137
- }
138
- // 2. Удалить лишние (свежие, но больше maxFiles штук)
139
- const remaining = readdirSync(LOGS_DIR)
140
- .filter((f) => f.endsWith(".log") || /\.log\.\d+$/.test(f))
141
- .map((f) => ({
142
- name: f,
143
- path: join(LOGS_DIR, f),
144
- mtime: statSync(join(LOGS_DIR, f)).mtimeMs,
145
- }))
146
- .sort((a, b) => b.mtime - a.mtime);
147
- for (let i = maxFiles; i < remaining.length; i++) {
148
- try {
149
- unlinkSync(remaining[i].path);
150
- }
151
- catch {
152
- /* ignore */
153
- }
154
- }
155
- }
156
- //# sourceMappingURL=logger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import type { AgentPlugin } from '../types.js';
2
- /**
3
- * Адаптер: оборачивает существующие hooks (.mma/hooks.json) как плагин.
4
- *
5
- * Позволяет перейти от hooks к plugin system без потери совместимости.
6
- * preToolUse → tool:before event
7
- * postToolUse → tool:after event
8
- *
9
- * @module plugins/adapters/hooks-adapter
10
- */
11
- export declare function createHooksAdapter(): AgentPlugin;
12
- //# sourceMappingURL=hooks-adapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hooks-adapter.d.ts","sourceRoot":"","sources":["../../../src/plugins/adapters/hooks-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,aAAa,CAAC;AAG9D;;;;;;;;GAQG;AAEH,wBAAgB,kBAAkB,IAAI,WAAW,CAchD"}
@@ -1,23 +0,0 @@
1
- /**
2
- * Адаптер: оборачивает существующие hooks (.mma/hooks.json) как плагин.
3
- *
4
- * Позволяет перейти от hooks к plugin system без потери совместимости.
5
- * preToolUse → tool:before event
6
- * postToolUse → tool:after event
7
- *
8
- * @module plugins/adapters/hooks-adapter
9
- */
10
- export function createHooksAdapter() {
11
- return {
12
- name: 'hooks-adapter',
13
- version: '1.0.0',
14
- description: 'Wraps .mma/hooks.json as a plugin',
15
- on(_event, handler) {
16
- // Not used — we register via the plugin's on() method
17
- },
18
- async onActivate(ctx) {
19
- ctx.logger.info('hooks-adapter: active (legacy hooks will run via ToolExecutor)');
20
- },
21
- };
22
- }
23
- //# sourceMappingURL=hooks-adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hooks-adapter.js","sourceRoot":"","sources":["../../../src/plugins/adapters/hooks-adapter.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AAEH,MAAM,UAAU,kBAAkB;IAChC,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,mCAAmC;QAEhD,EAAE,CAAC,MAAM,EAAE,OAAO;YAChB,sDAAsD;QACxD,CAAC;QAED,KAAK,CAAC,UAAU,CAAC,GAAkB;YACjC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;QACpF,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,12 +0,0 @@
1
- import type { AgentPlugin } from '../../types.js';
2
- export default function createLintOnWrite(): AgentPlugin;
3
- /**
4
- * Обработчик tool:after — вызывается через PluginManager.on().
5
- * Экспортируется для регистрации в loop.ts.
6
- */
7
- export declare function handleToolAfter(toolName: string, args: Record<string, unknown>, _result: {
8
- stdout: string;
9
- stderr: string;
10
- exitCode: number;
11
- }, cwd: string, cacheFile: string): string | null;
12
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/builtin/lint-on-write/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,gBAAgB,CAAC;AAyDjE,MAAM,CAAC,OAAO,UAAU,iBAAiB,IAAI,WAAW,CAcvD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAC7D,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,IAAI,CAUf"}
@@ -1,98 +0,0 @@
1
- import { execSync } from 'node:child_process';
2
- import { existsSync, readFileSync, writeFileSync } from 'node:fs';
3
- import { join } from 'node:path';
4
- /**
5
- * Плагин lint-on-write.
6
- *
7
- * После каждого write_file/edit_file запускает линтер
8
- * и добавляет ошибки в tool result (модель видит их сразу).
9
- *
10
- * Линтер определяется автоматически (eslint → biome → prettier).
11
- *
12
- * @module plugins/builtin/lint-on-write
13
- */
14
- const LINTER_DETECT_COMMANDS = [
15
- { name: 'eslint', cmd: 'npx eslint --version' },
16
- { name: 'biome', cmd: 'npx @biomejs/biome --version' },
17
- { name: 'prettier', cmd: 'npx prettier --version' },
18
- ];
19
- function detectLinter(cwd, cacheFile) {
20
- const cachePath = join(cwd, cacheFile);
21
- if (existsSync(cachePath)) {
22
- try {
23
- const cached = readFileSync(cachePath, 'utf-8').trim();
24
- if (cached)
25
- return cached;
26
- }
27
- catch { /* ignore */ }
28
- }
29
- for (const { name, cmd } of LINTER_DETECT_COMMANDS) {
30
- try {
31
- execSync(cmd, { cwd, timeout: 5000, windowsHide: true, stdio: 'pipe' });
32
- try {
33
- writeFileSync(cachePath, name, 'utf-8');
34
- }
35
- catch { /* ignore */ }
36
- return name;
37
- }
38
- catch { /* not found */ }
39
- }
40
- return null;
41
- }
42
- function runLinter(linter, filePath, cwd) {
43
- try {
44
- let cmd;
45
- switch (linter) {
46
- case 'eslint':
47
- cmd = `npx eslint "${filePath}" --format compact`;
48
- break;
49
- case 'biome':
50
- cmd = `npx @biomejs/biome check "${filePath}"`;
51
- break;
52
- case 'prettier':
53
- cmd = `npx prettier --check "${filePath}"`;
54
- break;
55
- default: return null;
56
- }
57
- execSync(cmd, { cwd, timeout: 15000, windowsHide: true, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] });
58
- return null;
59
- }
60
- catch (e) {
61
- const output = e.stdout?.toString() || e.stderr?.toString() || '';
62
- return output ? output.slice(0, 1000) : null;
63
- }
64
- }
65
- // Module-level linter cache
66
- let cachedLinter = null;
67
- export default function createLintOnWrite() {
68
- return {
69
- name: 'lint-on-write',
70
- version: '1.0.0',
71
- description: 'Auto-run linter after write_file/edit_file',
72
- onActivate(ctx) {
73
- ctx.logger.info('lint-on-write: active (linter detected on first file write)');
74
- },
75
- on(_event, _handler) { },
76
- onDeactivate() { cachedLinter = null; },
77
- getPromptSection() {
78
- return '## Lint-on-Write Plugin\nAfter writing/editing .ts/.tsx/.js/.jsx files, lint errors (if any) are automatically appended to the tool result.';
79
- },
80
- };
81
- }
82
- /**
83
- * Обработчик tool:after — вызывается через PluginManager.on().
84
- * Экспортируется для регистрации в loop.ts.
85
- */
86
- export function handleToolAfter(toolName, args, _result, cwd, cacheFile) {
87
- if (toolName !== 'write_file' && toolName !== 'edit_file')
88
- return null;
89
- const filePath = String(args.path ?? '');
90
- if (!filePath || !/\.(ts|tsx|js|jsx|mjs|cjs)$/.test(filePath))
91
- return null;
92
- const linter = cachedLinter ?? detectLinter(cwd, cacheFile);
93
- if (!linter)
94
- return null;
95
- cachedLinter = linter;
96
- return runLinter(linter, filePath, cwd);
97
- }
98
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/builtin/lint-on-write/index.ts"],"names":[],"mappings":"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"}
@@ -1,97 +0,0 @@
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
- }
@@ -1,13 +0,0 @@
1
- {
2
- "version": "1.0.0",
3
- "name": "lint-on-write",
4
- "events": [
5
- "tool:after"
6
- ],
7
- "description": "Auto-run linter after write_file/edit_file — informs model of lint errors",
8
- "config": {
9
- "lintCommand": null,
10
- "cacheFile": ".lint-detected"
11
- },
12
- "entry": "index.js"
13
- }
@@ -1,11 +0,0 @@
1
- import type { AgentPlugin } from '../../types.js';
2
- export default function createNotify(): AgentPlugin;
3
- /**
4
- * Обработчики событий — вызываются извне через PluginManager.on().
5
- */
6
- export declare function handleAgentDone(): void;
7
- export declare function handleToolBlocked(toolName: string, _args: unknown): void;
8
- export declare function handleToolAfter(toolName: string, _args: unknown, result: {
9
- exitCode: number;
10
- }): void;
11
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/builtin/notify/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,gBAAgB,CAAC;AAyDjE,MAAM,CAAC,OAAO,UAAU,YAAY,IAAI,WAAW,CAyBlD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAExE;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAIpG"}
@@ -1,102 +0,0 @@
1
- import { execSync } from 'node:child_process';
2
- import { writeFileSync, unlinkSync } from 'node:fs';
3
- import { join } from 'node:path';
4
- import { tmpdir } from 'node:os';
5
- import { platform } from 'node:os';
6
- /**
7
- * Плагин notify — OS desktop-уведомления.
8
- *
9
- * Отправляет toast-уведомление при:
10
- * - agent:done — задача выполнена
11
- * - tool:blocked — агент заблокирован
12
- * - tool:after (question) — агент ждёт ответа
13
- *
14
- * Zero-dependency: shell-out по платформе.
15
- *
16
- * @module plugins/builtin/notify
17
- */
18
- function sendNotification(title, body) {
19
- const p = platform();
20
- try {
21
- if (p === 'win32') {
22
- // Write temp .ps1 file to avoid $ escaping issues in shell
23
- const safeTitle = title.replace(/'/g, "''");
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
31
- $n.Dispose()`;
32
- const tmpFile = join(tmpdir(), `mma-notify-${Date.now()}.ps1`);
33
- writeFileSync(tmpFile, psScript, 'utf-8');
34
- try {
35
- execSync(`powershell -ExecutionPolicy Bypass -File "${tmpFile}"`, {
36
- timeout: 8000,
37
- windowsHide: true,
38
- stdio: 'pipe',
39
- });
40
- }
41
- finally {
42
- try {
43
- unlinkSync(tmpFile);
44
- }
45
- catch { /* ignore */ }
46
- }
47
- }
48
- else if (p === 'darwin') {
49
- execSync(`osascript -e 'display notification "${body.replace(/"/g, '\\"')}" with title "${title.replace(/"/g, '\\"')}"'`, {
50
- timeout: 5000,
51
- stdio: 'pipe',
52
- });
53
- }
54
- else {
55
- // Linux
56
- execSync(`notify-send "${title.replace(/"/g, '\\"')}" "${body.replace(/"/g, '\\"')}"`, {
57
- timeout: 5000,
58
- stdio: 'pipe',
59
- });
60
- }
61
- }
62
- catch {
63
- // Best-effort
64
- }
65
- }
66
- export default function createNotify() {
67
- let ctx = null;
68
- let config = { onDone: true, onBlocked: true, onQuestion: true };
69
- return {
70
- name: 'notify',
71
- version: '1.0.0',
72
- description: 'OS desktop notifications for agent events',
73
- onActivate(pluginCtx) {
74
- ctx = pluginCtx;
75
- if (pluginCtx.config) {
76
- config = { ...config, ...pluginCtx.config };
77
- }
78
- pluginCtx.logger.info(`notify: active (done=${config.onDone}, blocked=${config.onBlocked}, question=${config.onQuestion})`);
79
- },
80
- onDeactivate() {
81
- ctx = null;
82
- },
83
- getPromptSection() {
84
- return '## Notify Plugin\nDesktop notifications are enabled. You don\'t need to notify the user about completion — it happens automatically.';
85
- },
86
- };
87
- }
88
- /**
89
- * Обработчики событий — вызываются извне через PluginManager.on().
90
- */
91
- export function handleAgentDone() {
92
- sendNotification('MMA', 'Agent finished the task');
93
- }
94
- export function handleToolBlocked(toolName, _args) {
95
- sendNotification('MMA', `Tool blocked: ${toolName}`);
96
- }
97
- export function handleToolAfter(toolName, _args, result) {
98
- if (toolName === 'question') {
99
- sendNotification('MMA', 'Agent needs your answer');
100
- }
101
- }
102
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/builtin/notify/index.ts"],"names":[],"mappings":"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"}