micro-models-agent 0.6.4 → 0.7.1

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 +11706 -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
@@ -1,89 +0,0 @@
1
- import { join } from 'node:path';
2
- import { resolvePath, IGNORE_DIRS, readDirEntries } from './path-utils.js';
3
- import { fsError, fsOk, MAX_OUTPUT_CHARS } from './types.js';
4
- /**
5
- * Инструмент отображения дерева директорий.
6
- * Показывает структуру файлов с ограничением глубины.
7
- *
8
- * @module tools/fs/tree
9
- */
10
- export const treeDefinition = {
11
- type: 'function',
12
- function: {
13
- name: 'tree',
14
- description: 'Show directory tree structure with depth limit.',
15
- parameters: {
16
- type: 'object',
17
- properties: {
18
- path: { type: 'string', description: 'Directory path (default: project root)' },
19
- depth: { type: 'number', description: 'Max depth (default: 3)' },
20
- max_files: { type: 'number', description: 'Max files to show (default: 200)' },
21
- },
22
- },
23
- },
24
- };
25
- /** Рекурсивно строит дерево директорий */
26
- function buildTree(dir, baseDir, prefix, depth, maxDepth, counter, maxFiles) {
27
- if (depth > maxDepth || counter.count >= maxFiles)
28
- return [];
29
- const lines = [];
30
- const entries = readDirEntries(dir);
31
- const sorted = entries
32
- .filter(e => {
33
- const name = String(e.name);
34
- return !IGNORE_DIRS.has(name) && !name.startsWith('.');
35
- })
36
- .sort((a, b) => {
37
- if (a.isDirectory() !== b.isDirectory())
38
- return a.isDirectory() ? -1 : 1;
39
- return String(a.name).localeCompare(String(b.name));
40
- });
41
- for (let i = 0; i < sorted.length; i++) {
42
- if (counter.count >= maxFiles)
43
- break;
44
- const entry = sorted[i];
45
- const name = String(entry.name);
46
- const isLast = i === sorted.length - 1;
47
- const connector = isLast ? '└── ' : '├── ';
48
- const fullPath = join(dir, name);
49
- if (entry.isDirectory()) {
50
- lines.push(`${prefix}${connector}${name}/`);
51
- const childPrefix = prefix + (isLast ? ' ' : '│ ');
52
- counter.count++;
53
- lines.push(...buildTree(fullPath, baseDir, childPrefix, depth + 1, maxDepth, counter, maxFiles));
54
- }
55
- else {
56
- lines.push(`${prefix}${connector}${name}`);
57
- counter.count++;
58
- }
59
- }
60
- return lines;
61
- }
62
- export function handleTree(args, cwd) {
63
- const rawPath = String(args.path ?? '.');
64
- const maxDepth = Math.min(10, Math.max(1, Number(args.depth ?? 3)));
65
- const maxFiles = Math.min(500, Math.max(10, Number(args.max_files ?? 200)));
66
- const resolved = resolvePath(rawPath, cwd);
67
- if (!resolved.ok)
68
- return fsError(resolved.error);
69
- const dirName = rawPath === '.' ? '.' : rawPath;
70
- const lines = [`${dirName}/`];
71
- const counter = { count: 0 };
72
- lines.push(...buildTree(resolved.abs, resolved.abs, '', 0, maxDepth, counter, maxFiles));
73
- if (counter.count >= maxFiles) {
74
- lines.push(`\n... (truncated at ${maxFiles} files)`);
75
- }
76
- const output = lines.join('\n');
77
- if (output.length > MAX_OUTPUT_CHARS) {
78
- return fsOk(output.slice(0, MAX_OUTPUT_CHARS) + `\n... (truncated)`, true);
79
- }
80
- return fsOk(output, counter.count >= maxFiles);
81
- }
82
- export const treeHandler = {
83
- name: 'tree',
84
- definition: treeDefinition,
85
- async execute(args, ctx) {
86
- return handleTree(args, ctx.cwd);
87
- },
88
- };
89
- //# sourceMappingURL=tree.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../../src/tools/fs/tree.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import type { ToolResult } from '../registry.js';
2
- /**
3
- * Общие типы и утилиты для файловых инструментов.
4
- *
5
- * @module tools/fs/types
6
- */
7
- export type FsToolResult = ToolResult;
8
- /** Создаёт результат ошибки для fs-инструмента */
9
- export declare function fsError(message: string): FsToolResult;
10
- /** Создаёт успешный результат для fs-инструмента */
11
- export declare function fsOk(stdout: string, truncated?: boolean): FsToolResult;
12
- export declare const MAX_OUTPUT_CHARS = 16000;
13
- export declare const MAX_LINE_COUNT = 500;
14
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tools/fs/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;;;GAIG;AAEH,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC;AAEtC,kDAAkD;AAClD,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAErD;AAED,oDAAoD;AACpD,wBAAgB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,UAAQ,GAAG,YAAY,CAEpE;AAED,eAAO,MAAM,gBAAgB,QAAQ,CAAC;AACtC,eAAO,MAAM,cAAc,MAAM,CAAC"}
@@ -1,11 +0,0 @@
1
- /** Создаёт результат ошибки для fs-инструмента */
2
- export function fsError(message) {
3
- return { stdout: '', stderr: message, exitCode: 1, truncated: false };
4
- }
5
- /** Создаёт успешный результат для fs-инструмента */
6
- export function fsOk(stdout, truncated = false) {
7
- return { stdout, stderr: '', exitCode: 0, truncated };
8
- }
9
- export const MAX_OUTPUT_CHARS = 16000; // максимальный вывод (символы)
10
- export const MAX_LINE_COUNT = 500; // максимальный вывод (строки)
11
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/tools/fs/types.ts"],"names":[],"mappings":"AAUA,kDAAkD;AAClD,MAAM,UAAU,OAAO,CAAC,OAAe;IACrC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACxE,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,IAAI,CAAC,MAAc,EAAE,SAAS,GAAG,KAAK;IACpD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC,CAAC,+BAA+B;AACtE,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC,CAAC,8BAA8B"}
@@ -1,14 +0,0 @@
1
- import type { ToolDefinition } from '../registry.js';
2
- import type { ToolHandler } from '../types.js';
3
- import { fsOk } from './types.js';
4
- /**
5
- * Инструмент записи файла.
6
- * Создаёт родительские директории автоматически.
7
- * Атомарная запись через временный файл (crash-safe).
8
- *
9
- * @module tools/fs/write-file
10
- */
11
- export declare const writeFileDefinition: ToolDefinition;
12
- export declare function handleWriteFile(args: Record<string, unknown>, cwd: string): ReturnType<typeof fsOk>;
13
- export declare const writeFileHandler: ToolHandler;
14
- //# sourceMappingURL=write-file.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"write-file.d.ts","sourceRoot":"","sources":["../../../src/tools/fs/write-file.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAW,IAAI,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;;;GAMG;AAEH,eAAO,MAAM,mBAAmB,EAAE,cAcjC,CAAC;AAEF,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,EAAE,MAAM,GACV,UAAU,CAAC,OAAO,IAAI,CAAC,CA6CzB;AAED,eAAO,MAAM,gBAAgB,EAAE,WAM9B,CAAC"}
@@ -1,83 +0,0 @@
1
- import { writeFileSync, readFileSync, mkdirSync, renameSync, unlinkSync, existsSync } from 'node:fs';
2
- import { dirname } from 'node:path';
3
- import { resolvePath, normalizePath } from './path-utils.js';
4
- import { fsError, fsOk } from './types.js';
5
- /**
6
- * Инструмент записи файла.
7
- * Создаёт родительские директории автоматически.
8
- * Атомарная запись через временный файл (crash-safe).
9
- *
10
- * @module tools/fs/write-file
11
- */
12
- export const writeFileDefinition = {
13
- type: 'function',
14
- function: {
15
- name: 'write_file',
16
- description: 'Create or overwrite a file. Creates parent directories automatically. Atomic write (crash-safe).',
17
- parameters: {
18
- type: 'object',
19
- properties: {
20
- path: { type: 'string', description: 'File path (relative to project root)' },
21
- content: { type: 'string', description: 'File content to write' },
22
- },
23
- required: ['path', 'content'],
24
- },
25
- },
26
- };
27
- export function handleWriteFile(args, cwd) {
28
- const path = String(args.path ?? '');
29
- const content = args.content;
30
- if (!path)
31
- return fsError('path is required. Usage: {"name":"write_file","arguments":{"path":"file.ts","content":"..."}}');
32
- if (typeof content !== 'string') {
33
- return fsError('Content must be a string');
34
- }
35
- const resolved = resolvePath(path, cwd);
36
- if (!resolved.ok)
37
- return fsError(resolved.error);
38
- const dir = dirname(resolved.abs);
39
- try {
40
- mkdirSync(dir, { recursive: true });
41
- }
42
- catch (e) {
43
- return fsError(`Cannot create directory: ${e.message}`);
44
- }
45
- // Если файл уже существует — предупреждаем (используй edit_file)
46
- let overwriteWarning = '';
47
- if (existsSync(resolved.abs)) {
48
- try {
49
- const existing = readFileSync(resolved.abs, 'utf-8');
50
- if (existing.trim().length > 0) {
51
- overwriteWarning = ` [WARN: File "${normalizePath(path)}" already exists (${existing.split('\n').length} lines). Consider using edit_file instead of overwriting.]`;
52
- }
53
- }
54
- catch { /* файл не читается — продолжаем с записью */ }
55
- }
56
- const tmpPath = resolved.abs + '.mma.tmp';
57
- try {
58
- writeFileSync(tmpPath, content, 'utf-8');
59
- if (existsSync(resolved.abs)) {
60
- unlinkSync(resolved.abs);
61
- }
62
- renameSync(tmpPath, resolved.abs);
63
- }
64
- catch (e) {
65
- // Cleanup tmp file on failure
66
- try {
67
- if (existsSync(tmpPath))
68
- unlinkSync(tmpPath);
69
- }
70
- catch { /* ignore */ }
71
- return fsError(`Write failed: ${e.message}`);
72
- }
73
- const lines = content.split('\n').length;
74
- return fsOk(`Written ${content.length} bytes (${lines} lines) to ${normalizePath(path)}${overwriteWarning}`);
75
- }
76
- export const writeFileHandler = {
77
- name: 'write_file',
78
- definition: writeFileDefinition,
79
- async execute(args, ctx) {
80
- return handleWriteFile(args, ctx.cwd);
81
- },
82
- };
83
- //# sourceMappingURL=write-file.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"write-file.js","sourceRoot":"","sources":["../../../src/tools/fs/write-file.ts"],"names":[],"mappings":"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"}
@@ -1,44 +0,0 @@
1
- /**
2
- * Хуки жизненного цикла инструментов.
3
- *
4
- * Позволяют выполнять пользовательские команды до/после вызова инструментов:
5
- * - preToolUse: перед вызовом любого инструмента
6
- * - postToolUse: после вызова любого инструмента
7
- * - postEdit: после записи/редактирования файла
8
- *
9
- * Конфигурация в .mma/hooks.json или .mmrc (секция hooks).
10
- * Хуки могут блокировать выполнение (exit code 1).
11
- *
12
- * Доступные переменные в шаблонах:
13
- * - {{tool}} — имя инструмента
14
- * - {{cmd}} — команда/аргументы
15
- * - {{file}} — путь к файлу
16
- * - {{output}} — вывод (postToolUse)
17
- * - {{exitCode}} — код возврата (postToolUse)
18
- * - {{cwd}} — текущая директория
19
- *
20
- * @module tools/hooks
21
- */
22
- /** Конфигурация хуков из .mma/hooks.json */
23
- export interface HookConfig {
24
- preToolUse?: string[];
25
- postToolUse?: string[];
26
- postEdit?: string[];
27
- }
28
- /** Результат выполнения хука: continue (продолжить) или блокировка */
29
- interface HookResult {
30
- continue: boolean;
31
- message?: string;
32
- }
33
- /** Запуск хуков перед вызовом инструмента. Возвращает false для блокировки. */
34
- export declare function runPreToolUseHooks(cwd: string, toolName: string, cmd: string): HookResult;
35
- /** Запуск хуков после вызова инструмента (с выводом и кодом возврата) */
36
- export declare function runPostToolUseHooks(cwd: string, toolName: string, cmd: string, output: string, exitCode: number): HookResult;
37
- /** Запуск хуков после записи/редактирования файла */
38
- export declare function runPostEditHooks(cwd: string, filePath: string): HookResult;
39
- /** Возвращает список всех зарегистрированных хуков */
40
- export declare function listHooks(cwd: string): string[];
41
- export declare function runLintAfterWrite(cwd: string, filePath: string): string | null;
42
- export declare function sendNotification(title: string, body: string): void;
43
- export {};
44
- //# sourceMappingURL=hooks.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/tools/hooks.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,4CAA4C;AAC5C,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,sEAAsE;AACtE,UAAU,UAAU;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA2DD,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GACV,UAAU,CAgBZ;AAED,yEAAyE;AACzE,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,UAAU,CAuBZ;AAED,qDAAqD;AACrD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,CAgB1E;AAED,sDAAsD;AACtD,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAW/C;AAyDD,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GACf,MAAM,GAAG,IAAI,CAKf;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAsClE"}
@@ -1,217 +0,0 @@
1
- import { readFileSync, existsSync, writeFileSync, unlinkSync } from "node:fs";
2
- import { join } from "node:path";
3
- import { tmpdir, platform } from "node:os";
4
- import { execSync } from "node:child_process";
5
- const DEFAULT_HOOKS = {};
6
- /** Загружает конфигурацию хуков из .mma/hooks.json или .mmrc */
7
- function loadHooksConfig(cwd) {
8
- // Check .mma/hooks.json
9
- const localPath = join(cwd, ".mma", "hooks.json");
10
- if (existsSync(localPath)) {
11
- try {
12
- return {
13
- ...DEFAULT_HOOKS,
14
- ...JSON.parse(readFileSync(localPath, "utf-8")),
15
- };
16
- }
17
- catch {
18
- /* ignore */
19
- }
20
- }
21
- // Check .mmrc hooks section
22
- const rcPath = join(cwd, ".mmrc");
23
- if (existsSync(rcPath)) {
24
- try {
25
- const rc = JSON.parse(readFileSync(rcPath, "utf-8"));
26
- if (rc.hooks)
27
- return { ...DEFAULT_HOOKS, ...rc.hooks };
28
- }
29
- catch {
30
- /* ignore */
31
- }
32
- }
33
- return DEFAULT_HOOKS;
34
- }
35
- /** Выполняет одну hook-команду с подстановкой переменных */
36
- function runHook(command, context) {
37
- try {
38
- // Replace {{variable}} placeholders
39
- let cmd = command;
40
- for (const [key, value] of Object.entries(context)) {
41
- cmd = cmd.replace(new RegExp(`\\{\\{${key}\\}\\}`, "g"), value);
42
- }
43
- const output = execSync(cmd, {
44
- encoding: "utf-8",
45
- timeout: 10000,
46
- cwd: context.cwd || process.cwd(),
47
- stdio: ["pipe", "pipe", "pipe"],
48
- });
49
- return { continue: true, message: output.trim() };
50
- }
51
- catch (e) {
52
- // Hook failed - check exit code
53
- if (e.status === 1) {
54
- return { continue: false, message: e.stderr || e.message };
55
- }
56
- return { continue: true, message: `[hook error: ${e.message}]` };
57
- }
58
- }
59
- /** Запуск хуков перед вызовом инструмента. Возвращает false для блокировки. */
60
- export function runPreToolUseHooks(cwd, toolName, cmd) {
61
- const config = loadHooksConfig(cwd);
62
- if (!config.preToolUse || config.preToolUse.length === 0) {
63
- return { continue: true };
64
- }
65
- const context = { cwd, tool: toolName, cmd, file: cmd };
66
- for (const hook of config.preToolUse) {
67
- const result = runHook(hook, context);
68
- if (!result.continue) {
69
- return result;
70
- }
71
- }
72
- return { continue: true };
73
- }
74
- /** Запуск хуков после вызова инструмента (с выводом и кодом возврата) */
75
- export function runPostToolUseHooks(cwd, toolName, cmd, output, exitCode) {
76
- const config = loadHooksConfig(cwd);
77
- if (!config.postToolUse || config.postToolUse.length === 0) {
78
- return { continue: true };
79
- }
80
- const context = {
81
- cwd,
82
- tool: toolName,
83
- cmd,
84
- output: output.slice(0, 1000),
85
- exitCode: exitCode.toString(),
86
- file: cmd,
87
- };
88
- for (const hook of config.postToolUse) {
89
- const result = runHook(hook, context);
90
- if (!result.continue) {
91
- return result;
92
- }
93
- }
94
- return { continue: true };
95
- }
96
- /** Запуск хуков после записи/редактирования файла */
97
- export function runPostEditHooks(cwd, filePath) {
98
- const config = loadHooksConfig(cwd);
99
- if (!config.postEdit || config.postEdit.length === 0) {
100
- return { continue: true };
101
- }
102
- const context = { cwd, file: filePath, cmd: "" };
103
- for (const hook of config.postEdit) {
104
- const result = runHook(hook, context);
105
- if (!result.continue) {
106
- return result;
107
- }
108
- }
109
- return { continue: true };
110
- }
111
- /** Возвращает список всех зарегистрированных хуков */
112
- export function listHooks(cwd) {
113
- const config = loadHooksConfig(cwd);
114
- const hooks = [];
115
- if (config.preToolUse)
116
- hooks.push(...config.preToolUse.map((h) => `[pre] ${h}`));
117
- if (config.postToolUse)
118
- hooks.push(...config.postToolUse.map((h) => `[post] ${h}`));
119
- if (config.postEdit)
120
- hooks.push(...config.postEdit.map((h) => `[edit] ${h}`));
121
- return hooks;
122
- }
123
- // ─── Builtin hooks (replaces old PluginManager) ─────────────────
124
- const LINTER_DETECT_COMMANDS = [
125
- { name: "eslint", cmd: "npx eslint --version" },
126
- { name: "biome", cmd: "npx @biomejs/biome --version" },
127
- { name: "prettier", cmd: "npx prettier --version" },
128
- ];
129
- let cachedLinter = null;
130
- function detectLinter(cwd) {
131
- for (const { name, cmd } of LINTER_DETECT_COMMANDS) {
132
- try {
133
- execSync(cmd, { cwd, timeout: 5000, windowsHide: true, stdio: "pipe" });
134
- cachedLinter = name;
135
- return name;
136
- }
137
- catch { }
138
- }
139
- return null;
140
- }
141
- function runLinter(linter, filePath, cwd) {
142
- try {
143
- let cmd;
144
- switch (linter) {
145
- case "eslint":
146
- cmd = `npx eslint "${filePath}" --format compact`;
147
- break;
148
- case "biome":
149
- cmd = `npx @biomejs/biome check "${filePath}"`;
150
- break;
151
- case "prettier":
152
- cmd = `npx prettier --check "${filePath}"`;
153
- break;
154
- default:
155
- return null;
156
- }
157
- execSync(cmd, {
158
- cwd,
159
- timeout: 15000,
160
- windowsHide: true,
161
- encoding: "utf-8",
162
- stdio: ["pipe", "pipe", "pipe"],
163
- });
164
- return null;
165
- }
166
- catch (e) {
167
- const output = e.stdout?.toString() || e.stderr?.toString() || "";
168
- return output ? output.slice(0, 1000) : null;
169
- }
170
- }
171
- export function runLintAfterWrite(cwd, filePath) {
172
- if (!filePath || !/\.(ts|tsx|js|jsx|mjs|cjs)$/.test(filePath))
173
- return null;
174
- const linter = cachedLinter ?? detectLinter(cwd);
175
- if (!linter)
176
- return null;
177
- return runLinter(linter, filePath, cwd);
178
- }
179
- export function sendNotification(title, body) {
180
- const p = platform();
181
- try {
182
- if (p === "win32") {
183
- const safeTitle = title.replace(/'/g, "''");
184
- const safeBody = body.replace(/'/g, "''");
185
- const psScript = `Add-Type -AssemblyName System.Windows.Forms
186
- $n = New-Object System.Windows.Forms.NotifyIcon
187
- $n.Icon = [System.Drawing.SystemIcons]::Information
188
- $n.Visible = $true
189
- $n.ShowBalloonTip(5000, '${safeTitle}', '${safeBody}', [System.Windows.Forms.ToolTipIcon]::Info)
190
- Start-Sleep -Seconds 2
191
- $n.Dispose()`;
192
- const tmpFile = join(tmpdir(), `mma-notify-${Date.now()}.ps1`);
193
- writeFileSync(tmpFile, psScript, "utf-8");
194
- try {
195
- execSync(`powershell -ExecutionPolicy Bypass -File "${tmpFile}"`, {
196
- timeout: 8000,
197
- windowsHide: true,
198
- stdio: "pipe",
199
- });
200
- }
201
- finally {
202
- try {
203
- unlinkSync(tmpFile);
204
- }
205
- catch { }
206
- }
207
- }
208
- else if (p === "darwin") {
209
- execSync(`osascript -e 'display notification "${body.replace(/"/g, '\\"')}" with title "${title.replace(/"/g, '\\"')}"'`, { timeout: 5000, stdio: "pipe" });
210
- }
211
- else {
212
- execSync(`notify-send "${title.replace(/"/g, '\\"')}" "${body.replace(/"/g, '\\"')}"`, { timeout: 5000, stdio: "pipe" });
213
- }
214
- }
215
- catch { }
216
- }
217
- //# sourceMappingURL=hooks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/tools/hooks.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export declare function generateToolCallId(prefix?: string): string;
2
- export declare function generateSubagentToolCallId(): string;
3
- export declare function generateReactToolCallId(): string;
4
- //# sourceMappingURL=id-gen.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"id-gen.d.ts","sourceRoot":"","sources":["../../src/tools/id-gen.ts"],"names":[],"mappings":"AAEA,wBAAgB,kBAAkB,CAAC,MAAM,SAAS,GAAG,MAAM,CAG1D;AAED,wBAAgB,0BAA0B,IAAI,MAAM,CAEnD;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD"}
@@ -1,12 +0,0 @@
1
- let counter = 0;
2
- export function generateToolCallId(prefix = 'call') {
3
- counter++;
4
- return `${prefix}-${Date.now()}-${counter}-${Math.random().toString(36).slice(2, 6)}`;
5
- }
6
- export function generateSubagentToolCallId() {
7
- return generateToolCallId('sub');
8
- }
9
- export function generateReactToolCallId() {
10
- return generateToolCallId('react');
11
- }
12
- //# sourceMappingURL=id-gen.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"id-gen.js","sourceRoot":"","sources":["../../src/tools/id-gen.ts"],"names":[],"mappings":"AAAA,IAAI,OAAO,GAAG,CAAC,CAAC;AAEhB,MAAM,UAAU,kBAAkB,CAAC,MAAM,GAAG,MAAM;IAChD,OAAO,EAAE,CAAC;IACV,OAAO,GAAG,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACxF,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC"}
@@ -1,36 +0,0 @@
1
- /**
2
- * Интеграция с MCP (Model Context Protocol) серверами.
3
- *
4
- * Позволяет агенту вызывать инструменты внешних MCP-серверов.
5
- * Конфигурация в .mma/mcp.json или .mmrc (секция mcp).
6
- *
7
- * Формат вызова: bash "mcp <server> <tool> [args_json]"
8
- *
9
- * @module tools/mcp
10
- */
11
- /** Определение MCP-сервера */
12
- export interface MCPServer {
13
- name: string;
14
- command: string;
15
- args?: string[];
16
- env?: Record<string, string>;
17
- }
18
- /** Определение MCP-инструмента */
19
- export interface MCPTool {
20
- name: string;
21
- description: string;
22
- server: string;
23
- parameters?: Record<string, unknown>;
24
- }
25
- /** Возвращает список MCP-серверов из конфигурации */
26
- export declare function listMCPServers(cwd: string): MCPServer[];
27
- /** Вызывает инструмент MCP-сервера через npx mcp-client */
28
- export declare function callMCPTool(cwd: string, serverName: string, toolName: string, args: Record<string, unknown>): string;
29
- export declare function parseMCPCommand(cmd: string): {
30
- server: string;
31
- tool: string;
32
- args: Record<string, unknown>;
33
- } | null;
34
- export declare function formatMCPToolList(servers: MCPServer[]): string;
35
- export declare function isMCPCommand(cmd: string): boolean;
36
- //# sourceMappingURL=mcp.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/tools/mcp.ts"],"names":[],"mappings":"AAIA;;;;;;;;;GASG;AAEH,8BAA8B;AAC9B,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,kCAAkC;AAClC,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AA4BD,qDAAqD;AACrD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,CAEvD;AAED,2DAA2D;AAC3D,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CA0BpH;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG,IAAI,CAuBnH;AAID,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,CAW9D;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEjD"}