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,401 +0,0 @@
1
- import { readFileSync, existsSync, readdirSync, mkdirSync, writeFileSync } from 'node:fs';
2
- import { join, dirname } from 'node:path';
3
- import { fileURLToPath } from 'node:url';
4
- import { homedir } from 'node:os';
5
- import { logDebug } from '../logger.js';
6
- /**
7
- * Загрузчик скилов агента.
8
- *
9
- * Скилы загружаются из нескольких источников (в порядке приоритета):
10
- * 1. Проектные скилы (.agents/skills/, .claude/skills/)
11
- * 2. Глобальные скилы (~/.claude/skills/, ~/.agents/skills/, ~/.mimocode/skills/)
12
- * 3. Встроенные скилы (dist/skills/builtin/)
13
- *
14
- * Каждый скил — это markdown-файл SKILL.md с инструкциями.
15
- * Скилы добавляются в system prompt агента.
16
- *
17
- * @module skills/loader
18
- */
19
- const SKILLS_DIR = join(homedir(), '.mma', 'skills');
20
- // Built-in skills bundled with MMA (shipped in dist/skills/builtin/)
21
- const __filename = fileURLToPath(import.meta.url);
22
- const __dirname = dirname(__filename);
23
- const BUILTIN_SKILLS_DIR = join(__dirname, 'builtin');
24
- // Global skill directories searched in order (project-local dirs checked first in loadSkill)
25
- const SKILLS_GLOBAL_DIRS = [
26
- join(homedir(), '.claude', 'skills'),
27
- join(homedir(), '.agents', 'skills'),
28
- join(homedir(), '.mimocode', 'skills'),
29
- join(homedir(), '.opencode', 'skills'),
30
- ];
31
- function ensureDir(dir) {
32
- if (!existsSync(dir))
33
- mkdirSync(dir, { recursive: true });
34
- }
35
- export function loadAgentsMd(cwd) {
36
- const candidates = [
37
- join(cwd, 'AGENTS.md'),
38
- join(cwd, '.agents', 'AGENTS.md'),
39
- join(cwd, '.claude', 'AGENTS.md'),
40
- ];
41
- for (const path of candidates) {
42
- if (existsSync(path)) {
43
- try {
44
- const content = readFileSync(path, 'utf-8').trim();
45
- if (content)
46
- return content;
47
- }
48
- catch { /* skip */ }
49
- }
50
- }
51
- return null;
52
- }
53
- export function loadSkill(name, cwd) {
54
- const start = performance.now();
55
- const candidates = [
56
- // Built-in skills (bundled with MMA, highest priority)
57
- join(BUILTIN_SKILLS_DIR, name, 'SKILL.md'),
58
- // Project-local directories
59
- join(cwd, '.claude', 'skills', name, 'SKILL.md'),
60
- join(cwd, '.agents', 'skills', name, 'SKILL.md'),
61
- join(cwd, '.opencode', 'skills', name, 'SKILL.md'),
62
- // User-local MMA skills
63
- join(SKILLS_DIR, name, 'SKILL.md'),
64
- // Global skill directories (shared across harnesses)
65
- ...SKILLS_GLOBAL_DIRS.map(dir => join(dir, name, 'SKILL.md')),
66
- ];
67
- for (const path of candidates) {
68
- if (existsSync(path)) {
69
- try {
70
- const content = readFileSync(path, 'utf-8').trim();
71
- if (content) {
72
- const elapsed = (performance.now() - start).toFixed(1);
73
- logDebug('SKILLS', `loaded skill "${name}" from ${path} in ${elapsed}ms`);
74
- return { name, path, content, tokens: Math.ceil(content.length / 4) };
75
- }
76
- }
77
- catch { /* skip */ }
78
- }
79
- }
80
- logDebug('SKILLS', `skill "${name}" not found`);
81
- return null;
82
- }
83
- export function loadSkillsFromRefs(text, cwd) {
84
- const skills = [];
85
- const refs = text.matchAll(/@(\w[\w-]*)/g);
86
- for (const match of refs) {
87
- const name = match[1];
88
- const skill = loadSkill(name, cwd);
89
- if (skill)
90
- skills.push(skill);
91
- }
92
- return skills;
93
- }
94
- function scanDirSkills(dir) {
95
- if (!existsSync(dir))
96
- return [];
97
- try {
98
- return readdirSync(dir, { withFileTypes: true })
99
- .filter(e => e.isDirectory() && existsSync(join(dir, e.name, 'SKILL.md')))
100
- .map(e => e.name);
101
- }
102
- catch {
103
- return [];
104
- }
105
- }
106
- export function listSkillsBySource(cwd) {
107
- const builtin = scanDirSkills(BUILTIN_SKILLS_DIR);
108
- const builtinSet = new Set(builtin);
109
- const project = [
110
- ...scanDirSkills(join(cwd, '.claude', 'skills')),
111
- ...scanDirSkills(join(cwd, '.agents', 'skills')),
112
- ...scanDirSkills(join(cwd, '.opencode', 'skills')),
113
- ].filter(s => !builtinSet.has(s));
114
- const projectSet = new Set(project);
115
- const global = [
116
- ...scanDirSkills(SKILLS_DIR),
117
- ...SKILLS_GLOBAL_DIRS.flatMap(d => scanDirSkills(d)),
118
- ].filter(s => !builtinSet.has(s) && !projectSet.has(s));
119
- return { builtin, project, global };
120
- }
121
- export function listInstalledSkills(cwd) {
122
- const bySource = listSkillsBySource(cwd ?? process.cwd());
123
- const all = [...new Set([...bySource.builtin, ...bySource.project, ...bySource.global])];
124
- return all.sort();
125
- }
126
- export function installSkillFromUrl(name, url) {
127
- ensureDir(SKILLS_DIR);
128
- const skillDir = join(SKILLS_DIR, name);
129
- try {
130
- // Simple HTTP fetch using built-in fetch (Node 18+)
131
- const response = fetchSync(url);
132
- if (!response)
133
- return false;
134
- ensureDir(skillDir);
135
- writeFileSync(join(skillDir, 'SKILL.md'), response, 'utf-8');
136
- return true;
137
- }
138
- catch {
139
- return false;
140
- }
141
- }
142
- function fetchSync(url) {
143
- try {
144
- const { execSync } = require('child_process');
145
- const result = execSync(`curl -sL "${url}"`, { encoding: 'utf-8', timeout: 10000 });
146
- return result || null;
147
- }
148
- catch {
149
- return null;
150
- }
151
- }
152
- /**
153
- * Ограничивает набор скилов по токен-бюджету.
154
- * Сортирует по размеру (меньшие优先), обрезает если превышен бюджет.
155
- * Возвращает обрезанный список + список отброшенных.
156
- */
157
- export function enforceSkillBudget(skills, tokenBudget) {
158
- const allowed = [];
159
- let usedTokens = 0;
160
- const dropped = [];
161
- // Сортируем по размеру — preferring smaller, more focused skills
162
- const sorted = [...skills].sort((a, b) => a.tokens - b.tokens);
163
- for (const skill of sorted) {
164
- if (usedTokens + skill.tokens <= tokenBudget) {
165
- allowed.push(skill);
166
- usedTokens += skill.tokens;
167
- }
168
- else {
169
- dropped.push(skill.name);
170
- }
171
- }
172
- return { allowed, dropped };
173
- }
174
- // ─── Description cache ───────────────────────────────────
175
- let descriptionCache = null;
176
- /**
177
- * Парсит YAML frontmatter из SKILL.md и возвращает все поля.
178
- */
179
- function parseSkillFrontmatter(content) {
180
- const fmMatch = content.match(/^---\n([\s\S]*?)\n---/);
181
- if (!fmMatch)
182
- return {};
183
- const fields = {};
184
- const lines = fmMatch[1].split('\n');
185
- for (let i = 0; i < lines.length; i++) {
186
- const line = lines[i];
187
- if (!line.startsWith('description:'))
188
- continue;
189
- let raw = line.slice('description:'.length).trim();
190
- // Block scalar (>-, >, |, |-)
191
- if (raw === '>-' || raw === '>' || raw === '|' || raw === '|-') {
192
- const parts = [];
193
- for (let j = i + 1; j < lines.length; j++) {
194
- const next = lines[j];
195
- if (next.startsWith(' ') || next.startsWith('\t')) {
196
- parts.push(next.trim());
197
- }
198
- else if (next === '') {
199
- if (parts.length > 0)
200
- parts.push('');
201
- }
202
- else {
203
- break;
204
- }
205
- }
206
- raw = raw.startsWith('>')
207
- ? parts.join(' ').replace(/\s+/g, ' ').trim()
208
- : parts.join('\n').trim();
209
- }
210
- else {
211
- raw = raw.replace(/^["']|["']$/g, '');
212
- }
213
- fields['description'] = raw || '';
214
- break;
215
- }
216
- // Also parse name from frontmatter if present
217
- const nameLine = lines.find(l => l.startsWith('name:'));
218
- if (nameLine) {
219
- fields['name'] = nameLine.slice('name:'.length).trim().replace(/^["']|["']$/g, '');
220
- }
221
- return fields;
222
- }
223
- /**
224
- * Возвращает описание скилла из его SKILL.md.
225
- * Результат кэшируется.
226
- */
227
- export function getSkillDescription(name, cwd) {
228
- if (descriptionCache) {
229
- const cached = descriptionCache.get(name);
230
- if (cached !== undefined)
231
- return cached['description'] || null;
232
- }
233
- const skill = loadSkill(name, cwd);
234
- if (!skill)
235
- return null;
236
- const fm = parseSkillFrontmatter(skill.content);
237
- if (descriptionCache) {
238
- descriptionCache.set(name, fm);
239
- }
240
- return fm['description'] || null;
241
- }
242
- /**
243
- * Строит кэш описаний для всех скиллов.
244
- */
245
- function buildDescriptionCache(cwd) {
246
- const names = listInstalledSkills(cwd);
247
- descriptionCache = new Map();
248
- for (const name of names) {
249
- const skill = loadSkill(name, cwd);
250
- if (skill) {
251
- descriptionCache.set(name, parseSkillFrontmatter(skill.content));
252
- }
253
- else {
254
- descriptionCache.set(name, {});
255
- }
256
- }
257
- }
258
- /**
259
- * Возвращает список всех установленных скиллов с описаниями.
260
- */
261
- export function listSkillsWithDescriptions(cwd) {
262
- const cw = cwd ?? process.cwd();
263
- if (!descriptionCache)
264
- buildDescriptionCache(cw);
265
- const names = listInstalledSkills(cw);
266
- return names.map(name => ({
267
- name,
268
- description: descriptionCache.get(name)?.description ?? null,
269
- }));
270
- }
271
- /**
272
- * Инвалидирует кэш описаний (вызывается при изменении конфига).
273
- */
274
- export function invalidateSkillCaches() {
275
- skillIndexCache = null;
276
- descriptionCache = null;
277
- }
278
- // ─── Keyword-based skill preloading (pre-load по ключевым словам) ──
279
- let skillIndexCache = null;
280
- /**
281
- * Извлекает ключевые слова из скилла: сегменты имени + слова из описания (frontmatter).
282
- */
283
- /**
284
- * Разбивает текст на слова через Intl.Segmenter — корректно для всех языков.
285
- */
286
- function splitWords(text) {
287
- const segmenter = new Intl.Segmenter('any', { granularity: 'word' });
288
- const words = [];
289
- for (const { segment, isWordLike } of segmenter.segment(text.toLowerCase())) {
290
- if (isWordLike && segment.length > 1) {
291
- words.push(segment);
292
- }
293
- }
294
- return words;
295
- }
296
- function getSkillKeywords(name, cwd) {
297
- const keywords = new Set();
298
- for (const seg of name.split('-')) {
299
- if (seg.length > 1)
300
- keywords.add(seg.toLowerCase());
301
- }
302
- const skill = loadSkill(name, cwd);
303
- if (skill) {
304
- const fm = parseSkillFrontmatter(skill.content);
305
- const desc = fm['description'];
306
- if (desc) {
307
- for (const w of splitWords(desc))
308
- keywords.add(w);
309
- }
310
- }
311
- return [...keywords];
312
- }
313
- function buildSkillIndex(cwd) {
314
- if (skillIndexCache)
315
- return skillIndexCache;
316
- const names = listInstalledSkills(cwd);
317
- const index = new Map();
318
- logDebug('SKILLS', `building keyword index for ${names.length} skills...`);
319
- for (const name of names) {
320
- index.set(name, getSkillKeywords(name, cwd));
321
- }
322
- logDebug('SKILLS', `keyword index built`);
323
- skillIndexCache = index;
324
- return index;
325
- }
326
- /**
327
- * Извлекает поисковые термы из текста — просто слова, никакой лингвистики.
328
- * Матчинг работает по совпадению слов в одном языке.
329
- * Поддерживает все языки через Intl.Segmenter.
330
- */
331
- function extractSearchTerms(text) {
332
- return new Set(splitWords(text));
333
- }
334
- /**
335
- * Проверяет, просит ли пользователь явно "используй скилл".
336
- */
337
- export function isSkillRequest(text) {
338
- const lower = text.toLowerCase();
339
- return /\b(skill|скилл|скил|навык|плаг(ин|ина?))\b/.test(lower);
340
- }
341
- /**
342
- * Pre-загружает скиллы на основе совпадения ключевых слов в запросе.
343
- *
344
- * Решает проблему: пользователь просит "используй скилл для дизайна",
345
- * но модель не догадывается упомянуть @ui-ux-pro-max в ответе.
346
- *
347
- * Алгоритм:
348
- * 1. Строит индекс ключевых слов (имя + описание) для всех скиллов (кэш)
349
- * 2. Извлекает термы из запроса (с русско-английским переводом)
350
- * 3. Ищет пересечение: совпадение в имени = +2 балла, в описании = +1
351
- * 4. Возвращает топ-3 скилла с наибольшим скором
352
- */
353
- const STOP_WORDS = new Set([
354
- 'en', 'by', 'it', 'is', 'to', 'of', 'in', 'at', 'on', 'be', 'he', 'as',
355
- 'an', 'or', 'we', 'us', 'my', 'do', 'no', 'go', 'up', 'if', 'am', 'me',
356
- 'so', 'by', 'tv', 'ok', 'hi', 'ex', 'vs', 'et', 'al', 'de', 'la', 'le',
357
- ]);
358
- export function preloadSkillsByKeywords(text, cwd) {
359
- const index = buildSkillIndex(cwd);
360
- const searchTerms = extractSearchTerms(text);
361
- logDebug('SKILLS', `keyword preload: "${text.slice(0, 60)}" (${searchTerms.size} terms)`);
362
- if (searchTerms.size === 0)
363
- return [];
364
- const matched = [];
365
- for (const [name, keywords] of index) {
366
- let score = 0;
367
- for (const term of searchTerms) {
368
- if (term.length >= 4) {
369
- if (name.includes(term)) {
370
- score += 1;
371
- }
372
- }
373
- if (!STOP_WORDS.has(term) && keywords.includes(term)) {
374
- score += 1;
375
- }
376
- }
377
- if (score > 0) {
378
- matched.push({ name, score });
379
- }
380
- }
381
- matched.sort((a, b) => b.score - a.score);
382
- const top = matched.slice(0, 3);
383
- if (top.length > 0) {
384
- logDebug('SKILLS', `keyword preload matched: ${top.map(m => `${m.name}(${m.score})`).join(', ')}`);
385
- }
386
- return top
387
- .map(m => loadSkill(m.name, cwd))
388
- .filter((s) => s !== null);
389
- }
390
- export function formatSkillsBlock(skills, maxContentLength) {
391
- if (skills.length === 0)
392
- return '';
393
- const parts = skills.map(s => {
394
- const content = maxContentLength && s.content.length > maxContentLength
395
- ? s.content.slice(0, maxContentLength) + '\n\n[...truncated, full skill has ' + s.tokens + ' tokens]'
396
- : s.content;
397
- return `### ${s.name}\n${content}`;
398
- });
399
- return `## Loaded Skills\n\n${parts.join('\n\n')}`;
400
- }
401
- //# sourceMappingURL=loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/skills/loader.ts"],"names":[],"mappings":"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"}
@@ -1,39 +0,0 @@
1
- import type { ThemeConfig, ThemeIcons } from './types.js';
2
- /** Интерфейс движка темы — предоставляет методы для стилизации вывода */
3
- export interface ThemeEngine {
4
- icon: ThemeIcons;
5
- indent: string;
6
- indentSize: number;
7
- prompt(text: string): string;
8
- success(text: string): string;
9
- error(text: string): string;
10
- warning(text: string): string;
11
- info(text: string): string;
12
- dim(text: string): string;
13
- toolName(text: string): string;
14
- timing(text: string): string;
15
- highlight(text: string): string;
16
- lineNumbers(text: string): string;
17
- filePath(text: string): string;
18
- link(text: string): string;
19
- heading(text: string): string;
20
- symbolName(text: string): string;
21
- symbolType(text: string): string;
22
- bracket(text: string): string;
23
- userRole(text: string): string;
24
- assistantRole(text: string): string;
25
- subagentRole(text: string): string;
26
- expertRole(text: string): string;
27
- bracketTag(tag: string, message: string): string;
28
- toolHeader(name: string): string;
29
- contextBar(pct: number, length?: number): string;
30
- stepIcon(status: string): string;
31
- successMsg(text: string): string;
32
- errorMsg(text: string): string;
33
- spinner(text?: string): string;
34
- timingLine(seconds: string, exitCode?: number): string;
35
- separatorLine(): string;
36
- }
37
- /** Создаёт экземпляр движка темы из конфигурации */
38
- export declare function createThemeEngine(config: ThemeConfig): ThemeEngine;
39
- //# sourceMappingURL=engine.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/styling/engine.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAe,UAAU,EAAe,MAAM,YAAY,CAAC;AAqCpF,yEAAyE;AACzE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IAEnB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACnC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACjD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACjD,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvD,aAAa,IAAI,MAAM,CAAC;CACzB;AAWD,oDAAoD;AACpD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAuFlE"}
@@ -1,122 +0,0 @@
1
- import pc from 'picocolors';
2
- /**
3
- * Движок тем — применяет цвета и иконки из конфигурации темы.
4
- *
5
- * Использует picocolors для terminal-цветов.
6
- * Все методы возвращают стилизованные строки.
7
- *
8
- * @module styling/engine
9
- */
10
- // ─── Маппинг имён цветов к функциям picocolors ───────────
11
- const COLOR_FN = {
12
- dim: pc.dim,
13
- bold: pc.bold,
14
- italic: pc.italic,
15
- underline: pc.underline,
16
- strikethrough: pc.strikethrough,
17
- reset: pc.reset,
18
- black: pc.black,
19
- red: pc.red,
20
- green: pc.green,
21
- yellow: pc.yellow,
22
- blue: pc.blue,
23
- magenta: pc.magenta,
24
- cyan: pc.cyan,
25
- white: pc.white,
26
- gray: pc.gray,
27
- bgRed: pc.bgRed,
28
- bgGreen: pc.bgGreen,
29
- bgYellow: pc.bgYellow,
30
- bgBlue: pc.bgBlue,
31
- bgMagenta: pc.bgMagenta,
32
- bgCyan: pc.bgCyan,
33
- bgWhite: pc.bgWhite,
34
- };
35
- /** Маппинг тегов bracket к цветам ролей */
36
- const ROLE_TAG_COLORS = {
37
- user: 'user',
38
- assistant: 'assistant',
39
- subagent: 'subagent',
40
- expert: 'expert',
41
- specialist: 'expert',
42
- };
43
- /** Создаёт экземпляр движка темы из конфигурации */
44
- export function createThemeEngine(config) {
45
- const color = {};
46
- for (const [key, val] of Object.entries(config.colors)) {
47
- color[key] = COLOR_FN[val] || ((s) => s);
48
- }
49
- const icons = { ...config.icons };
50
- const format = { ...config.format };
51
- function c(name) {
52
- return color[name] || ((s) => s);
53
- }
54
- return {
55
- get icon() { return icons; },
56
- get indent() { return format.indent; },
57
- get indentSize() { return format.indentSize; },
58
- prompt(text) { return c('prompt')(text); },
59
- success(text) { return c('success')(text); },
60
- error(text) { return c('error')(text); },
61
- warning(text) { return c('warning')(text); },
62
- info(text) { return c('info')(text); },
63
- dim(text) { return c('dim')(text); },
64
- toolName(text) { return c('toolName')(text); },
65
- timing(text) { return c('timing')(text); },
66
- highlight(text) { return c('highlight')(text); },
67
- lineNumbers(text) { return c('lineNumbers')(text); },
68
- filePath(text) { return c('filePath')(text); },
69
- link(text) { return c('link')(text); },
70
- heading(text) { return c('heading')(text); },
71
- symbolName(text) { return c('symbolName')(text); },
72
- symbolType(text) { return c('symbolType')(text); },
73
- bracket(text) { return c('bracket')(text); },
74
- userRole(text) { return c('user')(text); },
75
- assistantRole(text) { return c('assistant')(text); },
76
- subagentRole(text) { return c('subagent')(text); },
77
- expertRole(text) { return c('expert')(text); },
78
- bracketTag(tag, message) {
79
- const roleKey = ROLE_TAG_COLORS[tag];
80
- if (roleKey) {
81
- const tagStr = c(roleKey)('[' + tag + ']');
82
- const msgStr = roleKey === 'user' ? c('highlight')(message) : message;
83
- return tagStr + ' ' + msgStr;
84
- }
85
- return c('dim')('[' + tag + ']') + ' ' + message;
86
- },
87
- toolHeader(name) {
88
- return c('dim')(' ' + icons.separator + ' tool:') + ' ' + c('toolName')(name) + ' ' + c('dim')(icons.separator);
89
- },
90
- contextBar(pct, length = 20) {
91
- const clamped = Math.max(0, Math.min(100, Math.round(pct)));
92
- const filled = Math.round((clamped / 100) * length);
93
- const empty = Math.max(0, length - filled);
94
- const bar = icons.barFill.repeat(filled) + icons.barEmpty.repeat(empty);
95
- return c('contextBar')(bar);
96
- },
97
- stepIcon(status) {
98
- if (status === 'done')
99
- return c('success')(icons.check);
100
- if (status === 'in_progress')
101
- return c('warning')(icons.inProgress);
102
- return c('dim')(icons.pending);
103
- },
104
- successMsg(text) {
105
- return format.indent + c('success')(icons.success) + ' ' + text;
106
- },
107
- errorMsg(text) {
108
- return format.indent + c('error')(icons.failure) + ' ' + text;
109
- },
110
- spinner(text = '') {
111
- return format.indent + c('dim')(icons.spinner) + (text ? ' ' + text : '');
112
- },
113
- timingLine(seconds, exitCode) {
114
- const label = exitCode !== undefined ? ' · exit ' + exitCode : '';
115
- return format.indent + c('timing')('⏱ ' + seconds + 's' + label);
116
- },
117
- separatorLine() {
118
- return c('dim')(' ' + icons.separator.repeat(20));
119
- },
120
- };
121
- }
122
- //# sourceMappingURL=engine.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/styling/engine.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import type { ThemeEngine } from './engine.js';
2
- /** Инициализирует тему по имени (по умолчанию light) */
3
- export declare function initTheme(name?: string): ThemeEngine;
4
- /** Возвращает текущую тему (создаёт light если не инициализирована) */
5
- export declare function getTheme(): ThemeEngine;
6
- /** Возвращает список доступных тем */
7
- export declare function listThemes(): string[];
8
- /** Переключает тему по имени */
9
- export declare function switchTheme(name: string): ThemeEngine;
10
- /** Сбрасывает тему (следующий getTheme создаст light) */
11
- export declare function resetTheme(): void;
12
- export { loadTheme, loadThemeConfig, ensureThemeDir } from './loader.js';
13
- export type { ThemeEngine } from './engine.js';
14
- export type { ThemeConfig, ThemeColors, ThemeIcons, ThemeFormat } from './types.js';
15
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/styling/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAiB/C,wDAAwD;AACxD,wBAAgB,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,CAGpD;AAED,uEAAuE;AACvE,wBAAgB,QAAQ,IAAI,WAAW,CAKtC;AAED,sCAAsC;AACtC,wBAAgB,UAAU,IAAI,MAAM,EAAE,CAErC;AAED,gCAAgC;AAChC,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAGrD;AAED,yDAAyD;AACzD,wBAAgB,UAAU,IAAI,IAAI,CAEjC;AAED,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACzE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
@@ -1,40 +0,0 @@
1
- import { loadTheme, listThemes as listThemeNames } from './loader.js';
2
- /**
3
- * Публичный API модуля тем.
4
- *
5
- * Предоставляет глобальный доступ к текущей теме:
6
- * - initTheme() — инициализация темы
7
- * - getTheme() — получение текущей темы (lazy init)
8
- * - switchTheme() — переключение темы
9
- * - listThemes() — список доступных тем
10
- *
11
- * @module styling/index
12
- */
13
- let _theme = null;
14
- /** Инициализирует тему по имени (по умолчанию light) */
15
- export function initTheme(name) {
16
- _theme = loadTheme(name || 'light');
17
- return _theme;
18
- }
19
- /** Возвращает текущую тему (создаёт light если не инициализирована) */
20
- export function getTheme() {
21
- if (!_theme) {
22
- _theme = loadTheme('light');
23
- }
24
- return _theme;
25
- }
26
- /** Возвращает список доступных тем */
27
- export function listThemes() {
28
- return listThemeNames();
29
- }
30
- /** Переключает тему по имени */
31
- export function switchTheme(name) {
32
- _theme = loadTheme(name);
33
- return _theme;
34
- }
35
- /** Сбрасывает тему (следующий getTheme создаст light) */
36
- export function resetTheme() {
37
- _theme = null;
38
- }
39
- export { loadTheme, loadThemeConfig, ensureThemeDir } from './loader.js';
40
- //# sourceMappingURL=index.js.map