codemate-ai 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (531) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +314 -0
  3. package/dist/src/agents/base/Agent.d.ts +13 -0
  4. package/dist/src/agents/base/Agent.d.ts.map +1 -0
  5. package/dist/src/agents/base/Agent.js +10 -0
  6. package/dist/src/agents/base/Agent.js.map +1 -0
  7. package/dist/src/agents/builtin/ExploreAgent.d.ts +13 -0
  8. package/dist/src/agents/builtin/ExploreAgent.d.ts.map +1 -0
  9. package/dist/src/agents/builtin/ExploreAgent.js +71 -0
  10. package/dist/src/agents/builtin/ExploreAgent.js.map +1 -0
  11. package/dist/src/agents/builtin/GeneralAgent.d.ts +13 -0
  12. package/dist/src/agents/builtin/GeneralAgent.d.ts.map +1 -0
  13. package/dist/src/agents/builtin/GeneralAgent.js +80 -0
  14. package/dist/src/agents/builtin/GeneralAgent.js.map +1 -0
  15. package/dist/src/agents/builtin/PlanAgent.d.ts +15 -0
  16. package/dist/src/agents/builtin/PlanAgent.d.ts.map +1 -0
  17. package/dist/src/agents/builtin/PlanAgent.js +85 -0
  18. package/dist/src/agents/builtin/PlanAgent.js.map +1 -0
  19. package/dist/src/application/Application.d.ts +28 -0
  20. package/dist/src/application/Application.d.ts.map +1 -0
  21. package/dist/src/application/Application.js +209 -0
  22. package/dist/src/application/Application.js.map +1 -0
  23. package/dist/src/application/Container.d.ts +14 -0
  24. package/dist/src/application/Container.d.ts.map +1 -0
  25. package/dist/src/application/Container.js +47 -0
  26. package/dist/src/application/Container.js.map +1 -0
  27. package/dist/src/cli.d.ts +3 -0
  28. package/dist/src/cli.d.ts.map +1 -0
  29. package/dist/src/cli.js +54 -0
  30. package/dist/src/cli.js.map +1 -0
  31. package/dist/src/code/CodeEditor.d.ts +9 -0
  32. package/dist/src/code/CodeEditor.d.ts.map +1 -0
  33. package/dist/src/code/CodeEditor.js +61 -0
  34. package/dist/src/code/CodeEditor.js.map +1 -0
  35. package/dist/src/code/CodeLocator.d.ts +8 -0
  36. package/dist/src/code/CodeLocator.d.ts.map +1 -0
  37. package/dist/src/code/CodeLocator.js +111 -0
  38. package/dist/src/code/CodeLocator.js.map +1 -0
  39. package/dist/src/code/CodeParser.d.ts +6 -0
  40. package/dist/src/code/CodeParser.d.ts.map +1 -0
  41. package/dist/src/code/CodeParser.js +32 -0
  42. package/dist/src/code/CodeParser.js.map +1 -0
  43. package/dist/src/code/types.d.ts +21 -0
  44. package/dist/src/code/types.d.ts.map +1 -0
  45. package/dist/src/code/types.js +2 -0
  46. package/dist/src/code/types.js.map +1 -0
  47. package/dist/src/commands/base/SlashCommand.d.ts +14 -0
  48. package/dist/src/commands/base/SlashCommand.d.ts.map +1 -0
  49. package/dist/src/commands/base/SlashCommand.js +14 -0
  50. package/dist/src/commands/base/SlashCommand.js.map +1 -0
  51. package/dist/src/commands/model/ModelCommand.d.ts +10 -0
  52. package/dist/src/commands/model/ModelCommand.d.ts.map +1 -0
  53. package/dist/src/commands/model/ModelCommand.js +20 -0
  54. package/dist/src/commands/model/ModelCommand.js.map +1 -0
  55. package/dist/src/commands/performance/PerformanceCommand.d.ts +12 -0
  56. package/dist/src/commands/performance/PerformanceCommand.d.ts.map +1 -0
  57. package/dist/src/commands/performance/PerformanceCommand.js +22 -0
  58. package/dist/src/commands/performance/PerformanceCommand.js.map +1 -0
  59. package/dist/src/commands/session/ClearCommand.d.ts +9 -0
  60. package/dist/src/commands/session/ClearCommand.d.ts.map +1 -0
  61. package/dist/src/commands/session/ClearCommand.js +19 -0
  62. package/dist/src/commands/session/ClearCommand.js.map +1 -0
  63. package/dist/src/commands/session/ExitCommand.d.ts +9 -0
  64. package/dist/src/commands/session/ExitCommand.d.ts.map +1 -0
  65. package/dist/src/commands/session/ExitCommand.js +12 -0
  66. package/dist/src/commands/session/ExitCommand.js.map +1 -0
  67. package/dist/src/commands/session/HelpCommand.d.ts +9 -0
  68. package/dist/src/commands/session/HelpCommand.d.ts.map +1 -0
  69. package/dist/src/commands/session/HelpCommand.js +44 -0
  70. package/dist/src/commands/session/HelpCommand.js.map +1 -0
  71. package/dist/src/commands/session/SessionsCommand.d.ts +9 -0
  72. package/dist/src/commands/session/SessionsCommand.d.ts.map +1 -0
  73. package/dist/src/commands/session/SessionsCommand.js +26 -0
  74. package/dist/src/commands/session/SessionsCommand.js.map +1 -0
  75. package/dist/src/commands/snapshot/RewindCommand.d.ts +9 -0
  76. package/dist/src/commands/snapshot/RewindCommand.d.ts.map +1 -0
  77. package/dist/src/commands/snapshot/RewindCommand.js +43 -0
  78. package/dist/src/commands/snapshot/RewindCommand.js.map +1 -0
  79. package/dist/src/commands/snapshot/SnapshotsCommand.d.ts +9 -0
  80. package/dist/src/commands/snapshot/SnapshotsCommand.d.ts.map +1 -0
  81. package/dist/src/commands/snapshot/SnapshotsCommand.js +25 -0
  82. package/dist/src/commands/snapshot/SnapshotsCommand.js.map +1 -0
  83. package/dist/src/commands/spec/SpecCreateCommand.d.ts +9 -0
  84. package/dist/src/commands/spec/SpecCreateCommand.d.ts.map +1 -0
  85. package/dist/src/commands/spec/SpecCreateCommand.js +22 -0
  86. package/dist/src/commands/spec/SpecCreateCommand.js.map +1 -0
  87. package/dist/src/commands/spec/SpecListCommand.d.ts +9 -0
  88. package/dist/src/commands/spec/SpecListCommand.d.ts.map +1 -0
  89. package/dist/src/commands/spec/SpecListCommand.js +15 -0
  90. package/dist/src/commands/spec/SpecListCommand.js.map +1 -0
  91. package/dist/src/commands/spec/SpecShowCommand.d.ts +9 -0
  92. package/dist/src/commands/spec/SpecShowCommand.d.ts.map +1 -0
  93. package/dist/src/commands/spec/SpecShowCommand.js +21 -0
  94. package/dist/src/commands/spec/SpecShowCommand.js.map +1 -0
  95. package/dist/src/managers/AgentManager.d.ts +19 -0
  96. package/dist/src/managers/AgentManager.d.ts.map +1 -0
  97. package/dist/src/managers/AgentManager.js +47 -0
  98. package/dist/src/managers/AgentManager.js.map +1 -0
  99. package/dist/src/managers/PluginManager.d.ts +23 -0
  100. package/dist/src/managers/PluginManager.d.ts.map +1 -0
  101. package/dist/src/managers/PluginManager.js +80 -0
  102. package/dist/src/managers/PluginManager.js.map +1 -0
  103. package/dist/src/managers/SlashCommandManager.d.ts +19 -0
  104. package/dist/src/managers/SlashCommandManager.d.ts.map +1 -0
  105. package/dist/src/managers/SlashCommandManager.js +80 -0
  106. package/dist/src/managers/SlashCommandManager.js.map +1 -0
  107. package/dist/src/managers/SpecManager.d.ts +26 -0
  108. package/dist/src/managers/SpecManager.d.ts.map +1 -0
  109. package/dist/src/managers/SpecManager.js +134 -0
  110. package/dist/src/managers/SpecManager.js.map +1 -0
  111. package/dist/src/managers/ToolManager.d.ts +24 -0
  112. package/dist/src/managers/ToolManager.d.ts.map +1 -0
  113. package/dist/src/managers/ToolManager.js +97 -0
  114. package/dist/src/managers/ToolManager.js.map +1 -0
  115. package/dist/src/mcp/MCPClient.d.ts +17 -0
  116. package/dist/src/mcp/MCPClient.d.ts.map +1 -0
  117. package/dist/src/mcp/MCPClient.js +117 -0
  118. package/dist/src/mcp/MCPClient.js.map +1 -0
  119. package/dist/src/mcp/MCPManager.d.ts +12 -0
  120. package/dist/src/mcp/MCPManager.d.ts.map +1 -0
  121. package/dist/src/mcp/MCPManager.js +63 -0
  122. package/dist/src/mcp/MCPManager.js.map +1 -0
  123. package/dist/src/mcp/MCPTool.d.ts +15 -0
  124. package/dist/src/mcp/MCPTool.d.ts.map +1 -0
  125. package/dist/src/mcp/MCPTool.js +73 -0
  126. package/dist/src/mcp/MCPTool.js.map +1 -0
  127. package/dist/src/mcp/types.d.ts +42 -0
  128. package/dist/src/mcp/types.d.ts.map +1 -0
  129. package/dist/src/mcp/types.js +2 -0
  130. package/dist/src/mcp/types.js.map +1 -0
  131. package/dist/src/optimization/CompactionService.d.ts +10 -0
  132. package/dist/src/optimization/CompactionService.d.ts.map +1 -0
  133. package/dist/src/optimization/CompactionService.js +82 -0
  134. package/dist/src/optimization/CompactionService.js.map +1 -0
  135. package/dist/src/optimization/CompressionService.d.ts +18 -0
  136. package/dist/src/optimization/CompressionService.d.ts.map +1 -0
  137. package/dist/src/optimization/CompressionService.js +95 -0
  138. package/dist/src/optimization/CompressionService.js.map +1 -0
  139. package/dist/src/optimization/PerformanceMonitor.d.ts +22 -0
  140. package/dist/src/optimization/PerformanceMonitor.d.ts.map +1 -0
  141. package/dist/src/optimization/PerformanceMonitor.js +90 -0
  142. package/dist/src/optimization/PerformanceMonitor.js.map +1 -0
  143. package/dist/src/optimization/PruningService.d.ts +5 -0
  144. package/dist/src/optimization/PruningService.d.ts.map +1 -0
  145. package/dist/src/optimization/PruningService.js +59 -0
  146. package/dist/src/optimization/PruningService.js.map +1 -0
  147. package/dist/src/optimization/types.d.ts +49 -0
  148. package/dist/src/optimization/types.d.ts.map +1 -0
  149. package/dist/src/optimization/types.js +2 -0
  150. package/dist/src/optimization/types.js.map +1 -0
  151. package/dist/src/plugins/base/Plugin.d.ts +17 -0
  152. package/dist/src/plugins/base/Plugin.d.ts.map +1 -0
  153. package/dist/src/plugins/base/Plugin.js +19 -0
  154. package/dist/src/plugins/base/Plugin.js.map +1 -0
  155. package/dist/src/plugins/builtin/LoggerPlugin.d.ts +13 -0
  156. package/dist/src/plugins/builtin/LoggerPlugin.d.ts.map +1 -0
  157. package/dist/src/plugins/builtin/LoggerPlugin.js +19 -0
  158. package/dist/src/plugins/builtin/LoggerPlugin.js.map +1 -0
  159. package/dist/src/plugins/builtin/PerformancePlugin.d.ts +16 -0
  160. package/dist/src/plugins/builtin/PerformancePlugin.d.ts.map +1 -0
  161. package/dist/src/plugins/builtin/PerformancePlugin.js +50 -0
  162. package/dist/src/plugins/builtin/PerformancePlugin.js.map +1 -0
  163. package/dist/src/plugins/builtin/SecurityPlugin.d.ts +18 -0
  164. package/dist/src/plugins/builtin/SecurityPlugin.d.ts.map +1 -0
  165. package/dist/src/plugins/builtin/SecurityPlugin.js +42 -0
  166. package/dist/src/plugins/builtin/SecurityPlugin.js.map +1 -0
  167. package/dist/src/server/HTTPServer.d.ts +25 -0
  168. package/dist/src/server/HTTPServer.d.ts.map +1 -0
  169. package/dist/src/server/HTTPServer.js +231 -0
  170. package/dist/src/server/HTTPServer.js.map +1 -0
  171. package/dist/src/server/WebSocketServer.d.ts +16 -0
  172. package/dist/src/server/WebSocketServer.d.ts.map +1 -0
  173. package/dist/src/server/WebSocketServer.js +118 -0
  174. package/dist/src/server/WebSocketServer.js.map +1 -0
  175. package/dist/src/services/ConfigService.d.ts +23 -0
  176. package/dist/src/services/ConfigService.d.ts.map +1 -0
  177. package/dist/src/services/ConfigService.js +169 -0
  178. package/dist/src/services/ConfigService.js.map +1 -0
  179. package/dist/src/services/EventBus.d.ts +12 -0
  180. package/dist/src/services/EventBus.d.ts.map +1 -0
  181. package/dist/src/services/EventBus.js +63 -0
  182. package/dist/src/services/EventBus.js.map +1 -0
  183. package/dist/src/services/ModelService.d.ts +24 -0
  184. package/dist/src/services/ModelService.d.ts.map +1 -0
  185. package/dist/src/services/ModelService.js +188 -0
  186. package/dist/src/services/ModelService.js.map +1 -0
  187. package/dist/src/services/Paths.d.ts +17 -0
  188. package/dist/src/services/Paths.d.ts.map +1 -0
  189. package/dist/src/services/Paths.js +125 -0
  190. package/dist/src/services/Paths.js.map +1 -0
  191. package/dist/src/services/SessionService.d.ts +19 -0
  192. package/dist/src/services/SessionService.d.ts.map +1 -0
  193. package/dist/src/services/SessionService.js +137 -0
  194. package/dist/src/services/SessionService.js.map +1 -0
  195. package/dist/src/snapshot/FileHistory.d.ts +18 -0
  196. package/dist/src/snapshot/FileHistory.d.ts.map +1 -0
  197. package/dist/src/snapshot/FileHistory.js +118 -0
  198. package/dist/src/snapshot/FileHistory.js.map +1 -0
  199. package/dist/src/snapshot/types.d.ts +19 -0
  200. package/dist/src/snapshot/types.d.ts.map +1 -0
  201. package/dist/src/snapshot/types.js +2 -0
  202. package/dist/src/snapshot/types.js.map +1 -0
  203. package/dist/src/specs/types.d.ts +54 -0
  204. package/dist/src/specs/types.d.ts.map +1 -0
  205. package/dist/src/specs/types.js +8 -0
  206. package/dist/src/specs/types.js.map +1 -0
  207. package/dist/src/specs/utils/generator.d.ts +4 -0
  208. package/dist/src/specs/utils/generator.d.ts.map +1 -0
  209. package/dist/src/specs/utils/generator.js +106 -0
  210. package/dist/src/specs/utils/generator.js.map +1 -0
  211. package/dist/src/specs/utils/parser.d.ts +3 -0
  212. package/dist/src/specs/utils/parser.d.ts.map +1 -0
  213. package/dist/src/specs/utils/parser.js +152 -0
  214. package/dist/src/specs/utils/parser.js.map +1 -0
  215. package/dist/src/styles/base/OutputStyle.d.ts +15 -0
  216. package/dist/src/styles/base/OutputStyle.d.ts.map +1 -0
  217. package/dist/src/styles/base/OutputStyle.js +16 -0
  218. package/dist/src/styles/base/OutputStyle.js.map +1 -0
  219. package/dist/src/styles/builtin/index.d.ts +8 -0
  220. package/dist/src/styles/builtin/index.d.ts.map +1 -0
  221. package/dist/src/styles/builtin/index.js +61 -0
  222. package/dist/src/styles/builtin/index.js.map +1 -0
  223. package/dist/src/styles/managers/OutputStyleManager.d.ts +20 -0
  224. package/dist/src/styles/managers/OutputStyleManager.d.ts.map +1 -0
  225. package/dist/src/styles/managers/OutputStyleManager.js +110 -0
  226. package/dist/src/styles/managers/OutputStyleManager.js.map +1 -0
  227. package/dist/src/styles/utils/markdown.d.ts +18 -0
  228. package/dist/src/styles/utils/markdown.d.ts.map +1 -0
  229. package/dist/src/styles/utils/markdown.js +107 -0
  230. package/dist/src/styles/utils/markdown.js.map +1 -0
  231. package/dist/src/tools/base/Tool.d.ts +17 -0
  232. package/dist/src/tools/base/Tool.d.ts.map +1 -0
  233. package/dist/src/tools/base/Tool.js +31 -0
  234. package/dist/src/tools/base/Tool.js.map +1 -0
  235. package/dist/src/tools/code/EditCodeTool.d.ts +50 -0
  236. package/dist/src/tools/code/EditCodeTool.d.ts.map +1 -0
  237. package/dist/src/tools/code/EditCodeTool.js +38 -0
  238. package/dist/src/tools/code/EditCodeTool.js.map +1 -0
  239. package/dist/src/tools/file/DeleteFileTool.d.ts +18 -0
  240. package/dist/src/tools/file/DeleteFileTool.d.ts.map +1 -0
  241. package/dist/src/tools/file/DeleteFileTool.js +45 -0
  242. package/dist/src/tools/file/DeleteFileTool.js.map +1 -0
  243. package/dist/src/tools/file/EditFileTool.d.ts +24 -0
  244. package/dist/src/tools/file/EditFileTool.d.ts.map +1 -0
  245. package/dist/src/tools/file/EditFileTool.js +53 -0
  246. package/dist/src/tools/file/EditFileTool.js.map +1 -0
  247. package/dist/src/tools/file/ListFilesTool.d.ts +29 -0
  248. package/dist/src/tools/file/ListFilesTool.d.ts.map +1 -0
  249. package/dist/src/tools/file/ListFilesTool.js +34 -0
  250. package/dist/src/tools/file/ListFilesTool.js.map +1 -0
  251. package/dist/src/tools/file/ReadFileTool.d.ts +25 -0
  252. package/dist/src/tools/file/ReadFileTool.d.ts.map +1 -0
  253. package/dist/src/tools/file/ReadFileTool.js +38 -0
  254. package/dist/src/tools/file/ReadFileTool.js.map +1 -0
  255. package/dist/src/tools/file/WriteFileTool.d.ts +30 -0
  256. package/dist/src/tools/file/WriteFileTool.d.ts.map +1 -0
  257. package/dist/src/tools/file/WriteFileTool.js +39 -0
  258. package/dist/src/tools/file/WriteFileTool.js.map +1 -0
  259. package/dist/src/tools/interactive/AskUserTool.d.ts +18 -0
  260. package/dist/src/tools/interactive/AskUserTool.d.ts.map +1 -0
  261. package/dist/src/tools/interactive/AskUserTool.js +43 -0
  262. package/dist/src/tools/interactive/AskUserTool.js.map +1 -0
  263. package/dist/src/tools/interactive/ConfirmTool.d.ts +18 -0
  264. package/dist/src/tools/interactive/ConfirmTool.d.ts.map +1 -0
  265. package/dist/src/tools/interactive/ConfirmTool.js +53 -0
  266. package/dist/src/tools/interactive/ConfirmTool.js.map +1 -0
  267. package/dist/src/tools/network/FetchTool.d.ts +24 -0
  268. package/dist/src/tools/network/FetchTool.d.ts.map +1 -0
  269. package/dist/src/tools/network/FetchTool.js +56 -0
  270. package/dist/src/tools/network/FetchTool.js.map +1 -0
  271. package/dist/src/tools/network/WebSearchTool.d.ts +20 -0
  272. package/dist/src/tools/network/WebSearchTool.d.ts.map +1 -0
  273. package/dist/src/tools/network/WebSearchTool.js +69 -0
  274. package/dist/src/tools/network/WebSearchTool.js.map +1 -0
  275. package/dist/src/tools/search/GlobTool.d.ts +20 -0
  276. package/dist/src/tools/search/GlobTool.d.ts.map +1 -0
  277. package/dist/src/tools/search/GlobTool.js +62 -0
  278. package/dist/src/tools/search/GlobTool.js.map +1 -0
  279. package/dist/src/tools/search/GrepTool.d.ts +26 -0
  280. package/dist/src/tools/search/GrepTool.d.ts.map +1 -0
  281. package/dist/src/tools/search/GrepTool.js +97 -0
  282. package/dist/src/tools/search/GrepTool.js.map +1 -0
  283. package/dist/src/tools/spec/SpecReadTool.d.ts +16 -0
  284. package/dist/src/tools/spec/SpecReadTool.d.ts.map +1 -0
  285. package/dist/src/tools/spec/SpecReadTool.js +79 -0
  286. package/dist/src/tools/spec/SpecReadTool.js.map +1 -0
  287. package/dist/src/tools/spec/SpecUpdateTaskTool.d.ts +23 -0
  288. package/dist/src/tools/spec/SpecUpdateTaskTool.d.ts.map +1 -0
  289. package/dist/src/tools/spec/SpecUpdateTaskTool.js +42 -0
  290. package/dist/src/tools/spec/SpecUpdateTaskTool.js.map +1 -0
  291. package/dist/src/tools/special/ExitPlanTool.d.ts +15 -0
  292. package/dist/src/tools/special/ExitPlanTool.d.ts.map +1 -0
  293. package/dist/src/tools/special/ExitPlanTool.js +32 -0
  294. package/dist/src/tools/special/ExitPlanTool.js.map +1 -0
  295. package/dist/src/tools/special/SkillTool.d.ts +19 -0
  296. package/dist/src/tools/special/SkillTool.d.ts.map +1 -0
  297. package/dist/src/tools/special/SkillTool.js +45 -0
  298. package/dist/src/tools/special/SkillTool.js.map +1 -0
  299. package/dist/src/tools/system/BashTool.d.ts +18 -0
  300. package/dist/src/tools/system/BashTool.d.ts.map +1 -0
  301. package/dist/src/tools/system/BashTool.js +29 -0
  302. package/dist/src/tools/system/BashTool.js.map +1 -0
  303. package/dist/src/tools/system/EnvTool.d.ts +15 -0
  304. package/dist/src/tools/system/EnvTool.d.ts.map +1 -0
  305. package/dist/src/tools/system/EnvTool.js +47 -0
  306. package/dist/src/tools/system/EnvTool.js.map +1 -0
  307. package/dist/src/tools/system/ExecTool.d.ts +21 -0
  308. package/dist/src/tools/system/ExecTool.d.ts.map +1 -0
  309. package/dist/src/tools/system/ExecTool.js +41 -0
  310. package/dist/src/tools/system/ExecTool.js.map +1 -0
  311. package/dist/src/tools/task/TaskTool.d.ts +34 -0
  312. package/dist/src/tools/task/TaskTool.d.ts.map +1 -0
  313. package/dist/src/tools/task/TaskTool.js +105 -0
  314. package/dist/src/tools/task/TaskTool.js.map +1 -0
  315. package/dist/src/tools/task/TodoReadTool.d.ts +16 -0
  316. package/dist/src/tools/task/TodoReadTool.d.ts.map +1 -0
  317. package/dist/src/tools/task/TodoReadTool.js +43 -0
  318. package/dist/src/tools/task/TodoReadTool.js.map +1 -0
  319. package/dist/src/tools/task/TodoWriteTool.d.ts +25 -0
  320. package/dist/src/tools/task/TodoWriteTool.d.ts.map +1 -0
  321. package/dist/src/tools/task/TodoWriteTool.js +82 -0
  322. package/dist/src/tools/task/TodoWriteTool.js.map +1 -0
  323. package/dist/src/types/index.d.ts +175 -0
  324. package/dist/src/types/index.d.ts.map +1 -0
  325. package/dist/src/types/index.js +31 -0
  326. package/dist/src/types/index.js.map +1 -0
  327. package/dist/src/ui/App.d.ts +8 -0
  328. package/dist/src/ui/App.d.ts.map +1 -0
  329. package/dist/src/ui/App.js +100 -0
  330. package/dist/src/ui/App.js.map +1 -0
  331. package/dist/src/ui/components/MessageList.d.ts +8 -0
  332. package/dist/src/ui/components/MessageList.d.ts.map +1 -0
  333. package/dist/src/ui/components/MessageList.js +13 -0
  334. package/dist/src/ui/components/MessageList.js.map +1 -0
  335. package/dist/src/ui/components/SessionList.d.ts +10 -0
  336. package/dist/src/ui/components/SessionList.d.ts.map +1 -0
  337. package/dist/src/ui/components/SessionList.js +23 -0
  338. package/dist/src/ui/components/SessionList.js.map +1 -0
  339. package/dist/src/ui/context/AppContext.d.ts +18 -0
  340. package/dist/src/ui/context/AppContext.d.ts.map +1 -0
  341. package/dist/src/ui/context/AppContext.js +22 -0
  342. package/dist/src/ui/context/AppContext.js.map +1 -0
  343. package/dist/src/ui/hooks/useSession.d.ts +6 -0
  344. package/dist/src/ui/hooks/useSession.d.ts.map +1 -0
  345. package/dist/src/ui/hooks/useSession.js +59 -0
  346. package/dist/src/ui/hooks/useSession.js.map +1 -0
  347. package/dist/src/utils/calculator.d.ts +3 -0
  348. package/dist/src/utils/calculator.d.ts.map +1 -0
  349. package/dist/src/utils/calculator.js +13 -0
  350. package/dist/src/utils/calculator.js.map +1 -0
  351. package/dist/src/utils/firstRun.d.ts +4 -0
  352. package/dist/src/utils/firstRun.d.ts.map +1 -0
  353. package/dist/src/utils/firstRun.js +32 -0
  354. package/dist/src/utils/firstRun.js.map +1 -0
  355. package/dist/src/utils/math.d.ts +2 -0
  356. package/dist/src/utils/math.d.ts.map +1 -0
  357. package/dist/src/utils/math.js +4 -0
  358. package/dist/src/utils/math.js.map +1 -0
  359. package/dist/src/utils/setup.d.ts +2 -0
  360. package/dist/src/utils/setup.d.ts.map +1 -0
  361. package/dist/src/utils/setup.js +87 -0
  362. package/dist/src/utils/setup.js.map +1 -0
  363. package/dist/src/utils/tokenCounter.d.ts +4 -0
  364. package/dist/src/utils/tokenCounter.d.ts.map +1 -0
  365. package/dist/src/utils/tokenCounter.js +27 -0
  366. package/dist/src/utils/tokenCounter.js.map +1 -0
  367. package/dist/tests/integration/agents.test.d.ts +2 -0
  368. package/dist/tests/integration/agents.test.d.ts.map +1 -0
  369. package/dist/tests/integration/agents.test.js +34 -0
  370. package/dist/tests/integration/agents.test.js.map +1 -0
  371. package/dist/tests/integration/cli.test.d.ts +2 -0
  372. package/dist/tests/integration/cli.test.d.ts.map +1 -0
  373. package/dist/tests/integration/cli.test.js +70 -0
  374. package/dist/tests/integration/cli.test.js.map +1 -0
  375. package/dist/tests/integration/commands.test.d.ts +2 -0
  376. package/dist/tests/integration/commands.test.d.ts.map +1 -0
  377. package/dist/tests/integration/commands.test.js +35 -0
  378. package/dist/tests/integration/commands.test.js.map +1 -0
  379. package/dist/tests/integration/mcp.test.d.ts +2 -0
  380. package/dist/tests/integration/mcp.test.d.ts.map +1 -0
  381. package/dist/tests/integration/mcp.test.js +44 -0
  382. package/dist/tests/integration/mcp.test.js.map +1 -0
  383. package/dist/tests/integration/output-styles.test.d.ts +2 -0
  384. package/dist/tests/integration/output-styles.test.d.ts.map +1 -0
  385. package/dist/tests/integration/output-styles.test.js +88 -0
  386. package/dist/tests/integration/output-styles.test.js.map +1 -0
  387. package/dist/tests/integration/plugins.test.d.ts +2 -0
  388. package/dist/tests/integration/plugins.test.d.ts.map +1 -0
  389. package/dist/tests/integration/plugins.test.js +42 -0
  390. package/dist/tests/integration/plugins.test.js.map +1 -0
  391. package/dist/tests/integration/specs.test.d.ts +2 -0
  392. package/dist/tests/integration/specs.test.d.ts.map +1 -0
  393. package/dist/tests/integration/specs.test.js +102 -0
  394. package/dist/tests/integration/specs.test.js.map +1 -0
  395. package/dist/tests/integration/ui.test.d.ts +2 -0
  396. package/dist/tests/integration/ui.test.d.ts.map +1 -0
  397. package/dist/tests/integration/ui.test.js +71 -0
  398. package/dist/tests/integration/ui.test.js.map +1 -0
  399. package/dist/tests/mocks/mock-mcp-server.d.ts +3 -0
  400. package/dist/tests/mocks/mock-mcp-server.d.ts.map +1 -0
  401. package/dist/tests/mocks/mock-mcp-server.js +127 -0
  402. package/dist/tests/mocks/mock-mcp-server.js.map +1 -0
  403. package/dist/tests/unit/application/Application.test.d.ts +2 -0
  404. package/dist/tests/unit/application/Application.test.d.ts.map +1 -0
  405. package/dist/tests/unit/application/Application.test.js +21 -0
  406. package/dist/tests/unit/application/Application.test.js.map +1 -0
  407. package/dist/tests/unit/application/Container.test.d.ts +2 -0
  408. package/dist/tests/unit/application/Container.test.d.ts.map +1 -0
  409. package/dist/tests/unit/application/Container.test.js +38 -0
  410. package/dist/tests/unit/application/Container.test.js.map +1 -0
  411. package/dist/tests/unit/code/CodeEditor.test.d.ts +2 -0
  412. package/dist/tests/unit/code/CodeEditor.test.d.ts.map +1 -0
  413. package/dist/tests/unit/code/CodeEditor.test.js +56 -0
  414. package/dist/tests/unit/code/CodeEditor.test.js.map +1 -0
  415. package/dist/tests/unit/code/CodeLocator.test.d.ts +2 -0
  416. package/dist/tests/unit/code/CodeLocator.test.d.ts.map +1 -0
  417. package/dist/tests/unit/code/CodeLocator.test.js +50 -0
  418. package/dist/tests/unit/code/CodeLocator.test.js.map +1 -0
  419. package/dist/tests/unit/code/CodeParser.test.d.ts +2 -0
  420. package/dist/tests/unit/code/CodeParser.test.d.ts.map +1 -0
  421. package/dist/tests/unit/code/CodeParser.test.js +27 -0
  422. package/dist/tests/unit/code/CodeParser.test.js.map +1 -0
  423. package/dist/tests/unit/managers/AgentManager.test.d.ts +2 -0
  424. package/dist/tests/unit/managers/AgentManager.test.d.ts.map +1 -0
  425. package/dist/tests/unit/managers/AgentManager.test.js +68 -0
  426. package/dist/tests/unit/managers/AgentManager.test.js.map +1 -0
  427. package/dist/tests/unit/managers/PluginManager.test.d.ts +2 -0
  428. package/dist/tests/unit/managers/PluginManager.test.d.ts.map +1 -0
  429. package/dist/tests/unit/managers/PluginManager.test.js +76 -0
  430. package/dist/tests/unit/managers/PluginManager.test.js.map +1 -0
  431. package/dist/tests/unit/managers/SlashCommandManager.test.d.ts +2 -0
  432. package/dist/tests/unit/managers/SlashCommandManager.test.d.ts.map +1 -0
  433. package/dist/tests/unit/managers/SlashCommandManager.test.js +47 -0
  434. package/dist/tests/unit/managers/SlashCommandManager.test.js.map +1 -0
  435. package/dist/tests/unit/managers/SpecManager.test.d.ts +2 -0
  436. package/dist/tests/unit/managers/SpecManager.test.d.ts.map +1 -0
  437. package/dist/tests/unit/managers/SpecManager.test.js +97 -0
  438. package/dist/tests/unit/managers/SpecManager.test.js.map +1 -0
  439. package/dist/tests/unit/managers/ToolManager.test.d.ts +2 -0
  440. package/dist/tests/unit/managers/ToolManager.test.d.ts.map +1 -0
  441. package/dist/tests/unit/managers/ToolManager.test.js +69 -0
  442. package/dist/tests/unit/managers/ToolManager.test.js.map +1 -0
  443. package/dist/tests/unit/mcp/MCPClient.test.d.ts +2 -0
  444. package/dist/tests/unit/mcp/MCPClient.test.d.ts.map +1 -0
  445. package/dist/tests/unit/mcp/MCPClient.test.js +40 -0
  446. package/dist/tests/unit/mcp/MCPClient.test.js.map +1 -0
  447. package/dist/tests/unit/services/ConfigService.test.d.ts +2 -0
  448. package/dist/tests/unit/services/ConfigService.test.d.ts.map +1 -0
  449. package/dist/tests/unit/services/ConfigService.test.js +104 -0
  450. package/dist/tests/unit/services/ConfigService.test.js.map +1 -0
  451. package/dist/tests/unit/services/EventBus.test.d.ts +2 -0
  452. package/dist/tests/unit/services/EventBus.test.d.ts.map +1 -0
  453. package/dist/tests/unit/services/EventBus.test.js +117 -0
  454. package/dist/tests/unit/services/EventBus.test.js.map +1 -0
  455. package/dist/tests/unit/services/ModelService.test.d.ts +2 -0
  456. package/dist/tests/unit/services/ModelService.test.d.ts.map +1 -0
  457. package/dist/tests/unit/services/ModelService.test.js +63 -0
  458. package/dist/tests/unit/services/ModelService.test.js.map +1 -0
  459. package/dist/tests/unit/services/Paths.test.d.ts +2 -0
  460. package/dist/tests/unit/services/Paths.test.d.ts.map +1 -0
  461. package/dist/tests/unit/services/Paths.test.js +33 -0
  462. package/dist/tests/unit/services/Paths.test.js.map +1 -0
  463. package/dist/tests/unit/services/SessionService.test.d.ts +2 -0
  464. package/dist/tests/unit/services/SessionService.test.d.ts.map +1 -0
  465. package/dist/tests/unit/services/SessionService.test.js +80 -0
  466. package/dist/tests/unit/services/SessionService.test.js.map +1 -0
  467. package/dist/tests/unit/snapshot/FileHistory.test.d.ts +2 -0
  468. package/dist/tests/unit/snapshot/FileHistory.test.d.ts.map +1 -0
  469. package/dist/tests/unit/snapshot/FileHistory.test.js +101 -0
  470. package/dist/tests/unit/snapshot/FileHistory.test.js.map +1 -0
  471. package/dist/tests/unit/specs/generator.test.d.ts +2 -0
  472. package/dist/tests/unit/specs/generator.test.d.ts.map +1 -0
  473. package/dist/tests/unit/specs/generator.test.js +70 -0
  474. package/dist/tests/unit/specs/generator.test.js.map +1 -0
  475. package/dist/tests/unit/specs/parser.test.d.ts +2 -0
  476. package/dist/tests/unit/specs/parser.test.d.ts.map +1 -0
  477. package/dist/tests/unit/specs/parser.test.js +85 -0
  478. package/dist/tests/unit/specs/parser.test.js.map +1 -0
  479. package/dist/tests/unit/styles/OutputStyle.test.d.ts +2 -0
  480. package/dist/tests/unit/styles/OutputStyle.test.d.ts.map +1 -0
  481. package/dist/tests/unit/styles/OutputStyle.test.js +33 -0
  482. package/dist/tests/unit/styles/OutputStyle.test.js.map +1 -0
  483. package/dist/tests/unit/styles/OutputStyleManager.test.d.ts +2 -0
  484. package/dist/tests/unit/styles/OutputStyleManager.test.d.ts.map +1 -0
  485. package/dist/tests/unit/styles/OutputStyleManager.test.js +75 -0
  486. package/dist/tests/unit/styles/OutputStyleManager.test.js.map +1 -0
  487. package/dist/tests/unit/tools/BashTool.test.d.ts +2 -0
  488. package/dist/tests/unit/tools/BashTool.test.d.ts.map +1 -0
  489. package/dist/tests/unit/tools/BashTool.test.js +35 -0
  490. package/dist/tests/unit/tools/BashTool.test.js.map +1 -0
  491. package/dist/tests/unit/tools/EditFileTool.test.d.ts +2 -0
  492. package/dist/tests/unit/tools/EditFileTool.test.d.ts.map +1 -0
  493. package/dist/tests/unit/tools/EditFileTool.test.js +48 -0
  494. package/dist/tests/unit/tools/EditFileTool.test.js.map +1 -0
  495. package/dist/tests/unit/tools/GrepTool.test.d.ts +2 -0
  496. package/dist/tests/unit/tools/GrepTool.test.d.ts.map +1 -0
  497. package/dist/tests/unit/tools/GrepTool.test.js +46 -0
  498. package/dist/tests/unit/tools/GrepTool.test.js.map +1 -0
  499. package/dist/tests/unit/tools/ListFilesTool.test.d.ts +2 -0
  500. package/dist/tests/unit/tools/ListFilesTool.test.d.ts.map +1 -0
  501. package/dist/tests/unit/tools/ListFilesTool.test.js +58 -0
  502. package/dist/tests/unit/tools/ListFilesTool.test.js.map +1 -0
  503. package/dist/tests/unit/tools/ReadFileTool.test.d.ts +2 -0
  504. package/dist/tests/unit/tools/ReadFileTool.test.d.ts.map +1 -0
  505. package/dist/tests/unit/tools/ReadFileTool.test.js +42 -0
  506. package/dist/tests/unit/tools/ReadFileTool.test.js.map +1 -0
  507. package/dist/tests/unit/tools/TodoWriteTool.test.d.ts +2 -0
  508. package/dist/tests/unit/tools/TodoWriteTool.test.d.ts.map +1 -0
  509. package/dist/tests/unit/tools/TodoWriteTool.test.js +54 -0
  510. package/dist/tests/unit/tools/TodoWriteTool.test.js.map +1 -0
  511. package/dist/tests/unit/tools/WriteFileTool.test.d.ts +2 -0
  512. package/dist/tests/unit/tools/WriteFileTool.test.d.ts.map +1 -0
  513. package/dist/tests/unit/tools/WriteFileTool.test.js +69 -0
  514. package/dist/tests/unit/tools/WriteFileTool.test.js.map +1 -0
  515. package/dist/tests/unit/ui/App.test.d.ts +2 -0
  516. package/dist/tests/unit/ui/App.test.d.ts.map +1 -0
  517. package/dist/tests/unit/ui/App.test.js +46 -0
  518. package/dist/tests/unit/ui/App.test.js.map +1 -0
  519. package/dist/tests/unit/ui/AppContext.test.d.ts +2 -0
  520. package/dist/tests/unit/ui/AppContext.test.d.ts.map +1 -0
  521. package/dist/tests/unit/ui/AppContext.test.js +39 -0
  522. package/dist/tests/unit/ui/AppContext.test.js.map +1 -0
  523. package/dist/tests/unit/ui/MessageList.test.d.ts +2 -0
  524. package/dist/tests/unit/ui/MessageList.test.d.ts.map +1 -0
  525. package/dist/tests/unit/ui/MessageList.test.js +23 -0
  526. package/dist/tests/unit/ui/MessageList.test.js.map +1 -0
  527. package/dist/tests/unit/ui/SessionList.test.d.ts +2 -0
  528. package/dist/tests/unit/ui/SessionList.test.d.ts.map +1 -0
  529. package/dist/tests/unit/ui/SessionList.test.js +49 -0
  530. package/dist/tests/unit/ui/SessionList.test.js.map +1 -0
  531. package/package.json +84 -0
@@ -0,0 +1,19 @@
1
+ import { Agent } from '../agents/base/Agent';
2
+ import type { Task, Result, AgentContext } from '../types/index';
3
+ export declare class AgentManager {
4
+ private agents;
5
+ private context;
6
+ constructor(context: AgentContext);
7
+ register(agent: Agent): void;
8
+ delegate(task: Task, agentName: string): Promise<Result>;
9
+ get(name: string): Agent | undefined;
10
+ has(name: string): boolean;
11
+ list(): string[];
12
+ getAllInfo(): Array<{
13
+ name: string;
14
+ description: string;
15
+ whenToUse: string;
16
+ }>;
17
+ count(): number;
18
+ }
19
+ //# sourceMappingURL=AgentManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentManager.d.ts","sourceRoot":"","sources":["../../../src/managers/AgentManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAUjE,qBAAa,YAAY;IAOvB,OAAO,CAAC,MAAM,CAA4B;IAK1C,OAAO,CAAC,OAAO,CAAe;gBAElB,OAAO,EAAE,YAAY;IAUjC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAiBtB,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA0B9D,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAUpC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAS1B,IAAI,IAAI,MAAM,EAAE;IAShB,UAAU,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAS7E,KAAK,IAAI,MAAM;CAGhB"}
@@ -0,0 +1,47 @@
1
+ export class AgentManager {
2
+ agents = new Map();
3
+ context;
4
+ constructor(context) {
5
+ this.context = context;
6
+ }
7
+ register(agent) {
8
+ if (this.agents.has(agent.name)) {
9
+ throw new Error(`Agent already registered: ${agent.name}`);
10
+ }
11
+ this.agents.set(agent.name, agent);
12
+ console.log(`✅ Agent registered: ${agent.name}`);
13
+ }
14
+ async delegate(task, agentName) {
15
+ const agent = this.agents.get(agentName);
16
+ if (!agent) {
17
+ throw new Error(`Agent not found: ${agentName}`);
18
+ }
19
+ console.log(`🤖 Delegating task to ${agentName}...`);
20
+ console.log(` Goal: ${task.goal}`);
21
+ try {
22
+ const result = await agent.execute(task, this.context);
23
+ console.log(`✅ Task completed by ${agentName}`);
24
+ return result;
25
+ }
26
+ catch (error) {
27
+ console.error(`❌ Task failed in ${agentName}:`, error);
28
+ throw error;
29
+ }
30
+ }
31
+ get(name) {
32
+ return this.agents.get(name);
33
+ }
34
+ has(name) {
35
+ return this.agents.has(name);
36
+ }
37
+ list() {
38
+ return Array.from(this.agents.keys());
39
+ }
40
+ getAllInfo() {
41
+ return Array.from(this.agents.values()).map((agent) => agent.getInfo());
42
+ }
43
+ count() {
44
+ return this.agents.size;
45
+ }
46
+ }
47
+ //# sourceMappingURL=AgentManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentManager.js","sourceRoot":"","sources":["../../../src/managers/AgentManager.ts"],"names":[],"mappings":"AAWA,MAAM,OAAO,YAAY;IAOf,MAAM,GAAG,IAAI,GAAG,EAAiB,CAAC;IAKlC,OAAO,CAAe;IAE9B,YAAY,OAAqB;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAQD,QAAQ,CAAC,KAAY;QACnB,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7D,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAUD,KAAK,CAAC,QAAQ,CAAC,IAAU,EAAE,SAAiB;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAEzC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,yBAAyB,SAAS,KAAK,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAErC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,uBAAuB,SAAS,EAAE,CAAC,CAAC;YAChD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,oBAAoB,SAAS,GAAG,EAAE,KAAK,CAAC,CAAC;YACvD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAQD,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAQD,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAOD,IAAI;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;IAOD,UAAU;QACR,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1E,CAAC;IAOD,KAAK;QACH,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;CACF"}
@@ -0,0 +1,23 @@
1
+ import { Plugin } from '../plugins/base/Plugin';
2
+ import type { Application } from '../application/Application';
3
+ import type { Tool } from '../tools/base/Tool';
4
+ export declare class PluginManager {
5
+ private plugins;
6
+ private app;
7
+ constructor(app: Application);
8
+ load(plugin: Plugin): Promise<void>;
9
+ unload(name: string): Promise<void>;
10
+ has(name: string): boolean;
11
+ get(name: string): Plugin | undefined;
12
+ list(): string[];
13
+ getAllInfo(): Array<{
14
+ name: string;
15
+ version: string;
16
+ description?: string;
17
+ }>;
18
+ count(): number;
19
+ triggerToolBefore(tool: Tool, input: any): Promise<void>;
20
+ triggerToolAfter(tool: Tool, result: any): Promise<void>;
21
+ unloadAll(): Promise<void>;
22
+ }
23
+ //# sourceMappingURL=PluginManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PluginManager.d.ts","sourceRoot":"","sources":["../../../src/managers/PluginManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAW/C,qBAAa,aAAa;IAOxB,OAAO,CAAC,OAAO,CAA6B;IAK5C,OAAO,CAAC,GAAG,CAAc;gBAEb,GAAG,EAAE,WAAW;IAUtB,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BnC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BzC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAU1B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IASrC,IAAI,IAAI,MAAM,EAAE;IAShB,UAAU,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAS5E,KAAK,IAAI,MAAM;IAUT,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBxD,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAcxD,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAMjC"}
@@ -0,0 +1,80 @@
1
+ export class PluginManager {
2
+ plugins = new Map();
3
+ app;
4
+ constructor(app) {
5
+ this.app = app;
6
+ }
7
+ async load(plugin) {
8
+ if (this.plugins.has(plugin.name)) {
9
+ throw new Error(`Plugin already loaded: ${plugin.name}`);
10
+ }
11
+ console.log(`🔌 Loading plugin: ${plugin.name} v${plugin.version}`);
12
+ try {
13
+ await plugin.onLoad(this.app);
14
+ this.plugins.set(plugin.name, plugin);
15
+ console.log(`✅ Plugin loaded: ${plugin.name}`);
16
+ }
17
+ catch (error) {
18
+ console.error(`❌ Failed to load plugin: ${plugin.name}`, error);
19
+ throw error;
20
+ }
21
+ }
22
+ async unload(name) {
23
+ const plugin = this.plugins.get(name);
24
+ if (!plugin) {
25
+ throw new Error(`Plugin not found: ${name}`);
26
+ }
27
+ console.log(`🔌 Unloading plugin: ${name}`);
28
+ try {
29
+ await plugin.onUnload(this.app);
30
+ this.plugins.delete(name);
31
+ console.log(`✅ Plugin unloaded: ${name}`);
32
+ }
33
+ catch (error) {
34
+ console.error(`❌ Failed to unload plugin: ${name}`, error);
35
+ throw error;
36
+ }
37
+ }
38
+ has(name) {
39
+ return this.plugins.has(name);
40
+ }
41
+ get(name) {
42
+ return this.plugins.get(name);
43
+ }
44
+ list() {
45
+ return Array.from(this.plugins.keys());
46
+ }
47
+ getAllInfo() {
48
+ return Array.from(this.plugins.values()).map((plugin) => plugin.getInfo());
49
+ }
50
+ count() {
51
+ return this.plugins.size;
52
+ }
53
+ async triggerToolBefore(tool, input) {
54
+ for (const plugin of this.plugins.values()) {
55
+ try {
56
+ await plugin.onToolBefore(tool, input);
57
+ }
58
+ catch (error) {
59
+ console.error(`❌ Plugin ${plugin.name} onToolBefore failed:`, error);
60
+ }
61
+ }
62
+ }
63
+ async triggerToolAfter(tool, result) {
64
+ for (const plugin of this.plugins.values()) {
65
+ try {
66
+ await plugin.onToolAfter(tool, result);
67
+ }
68
+ catch (error) {
69
+ console.error(`❌ Plugin ${plugin.name} onToolAfter failed:`, error);
70
+ }
71
+ }
72
+ }
73
+ async unloadAll() {
74
+ const names = this.list();
75
+ for (const name of names) {
76
+ await this.unload(name);
77
+ }
78
+ }
79
+ }
80
+ //# sourceMappingURL=PluginManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PluginManager.js","sourceRoot":"","sources":["../../../src/managers/PluginManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { SlashCommand } from '../commands/base/SlashCommand';
2
+ import type { Application } from '../application/Application';
3
+ export declare class SlashCommandManager {
4
+ private commands;
5
+ private aliases;
6
+ register(command: SlashCommand): void;
7
+ execute(input: string, app: Application): Promise<boolean>;
8
+ isCommand(input: string): boolean;
9
+ has(name: string): boolean;
10
+ get(name: string): SlashCommand | undefined;
11
+ list(): string[];
12
+ getAllInfo(): Array<{
13
+ name: string;
14
+ description: string;
15
+ aliases: string[];
16
+ }>;
17
+ count(): number;
18
+ }
19
+ //# sourceMappingURL=SlashCommandManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SlashCommandManager.d.ts","sourceRoot":"","sources":["../../../src/managers/SlashCommandManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAW9D,qBAAa,mBAAmB;IAO9B,OAAO,CAAC,QAAQ,CAAmC;IAQnD,OAAO,CAAC,OAAO,CAA6B;IAQ5C,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IA2B/B,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAsDhE,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAUjC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAU1B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAiB3C,IAAI,IAAI,MAAM,EAAE;IAShB,UAAU,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAS7E,KAAK,IAAI,MAAM;CAGhB"}
@@ -0,0 +1,80 @@
1
+ export class SlashCommandManager {
2
+ commands = new Map();
3
+ aliases = new Map();
4
+ register(command) {
5
+ if (this.commands.has(command.name)) {
6
+ throw new Error(`Command already registered: ${command.name}`);
7
+ }
8
+ this.commands.set(command.name, command);
9
+ for (const alias of command.aliases) {
10
+ if (this.aliases.has(alias)) {
11
+ throw new Error(`Alias already registered: ${alias}`);
12
+ }
13
+ this.aliases.set(alias, command.name);
14
+ }
15
+ console.log(`✅ Registered command: /${command.name}`);
16
+ }
17
+ async execute(input, app) {
18
+ if (!input.startsWith('/')) {
19
+ return false;
20
+ }
21
+ const parts = input.slice(1).trim().split(/\s+/);
22
+ const commandName = parts[0];
23
+ const args = parts.slice(1);
24
+ let command = this.commands.get(commandName);
25
+ if (!command) {
26
+ const realName = this.aliases.get(commandName);
27
+ if (realName) {
28
+ command = this.commands.get(realName);
29
+ }
30
+ }
31
+ if (!command) {
32
+ console.error(`❌ Unknown command: /${commandName}`);
33
+ console.log('💡 Type /help to see available commands');
34
+ return false;
35
+ }
36
+ if (!command.validate(args)) {
37
+ console.error(`❌ Invalid arguments for command: /${commandName}`);
38
+ return false;
39
+ }
40
+ try {
41
+ console.log(`🔧 Executing command: /${commandName}`);
42
+ await command.execute(args, app);
43
+ console.log(`✅ Command executed successfully: /${commandName}`);
44
+ return true;
45
+ }
46
+ catch (error) {
47
+ console.error(`❌ Command execution failed: /${commandName}`, error);
48
+ if (error instanceof Error) {
49
+ console.error(` Error: ${error.message}`);
50
+ }
51
+ return false;
52
+ }
53
+ }
54
+ isCommand(input) {
55
+ return input.trim().startsWith('/');
56
+ }
57
+ has(name) {
58
+ return this.commands.has(name) || this.aliases.has(name);
59
+ }
60
+ get(name) {
61
+ const command = this.commands.get(name);
62
+ if (command)
63
+ return command;
64
+ const realName = this.aliases.get(name);
65
+ if (realName) {
66
+ return this.commands.get(realName);
67
+ }
68
+ return undefined;
69
+ }
70
+ list() {
71
+ return Array.from(this.commands.keys());
72
+ }
73
+ getAllInfo() {
74
+ return Array.from(this.commands.values()).map((cmd) => cmd.getInfo());
75
+ }
76
+ count() {
77
+ return this.commands.size;
78
+ }
79
+ }
80
+ //# sourceMappingURL=SlashCommandManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SlashCommandManager.js","sourceRoot":"","sources":["../../../src/managers/SlashCommandManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { Paths } from '../services/Paths';
2
+ import type { EventBus } from '../services/EventBus';
3
+ import type { Spec, SpecMetadata, Task, TaskStatus } from '../specs/types';
4
+ export interface SpecManagerConfig {
5
+ paths: Paths;
6
+ eventBus: EventBus;
7
+ }
8
+ export declare class SpecManager {
9
+ private specs;
10
+ private paths;
11
+ private eventBus;
12
+ constructor(config: SpecManagerConfig);
13
+ create(title: string, description?: string): Promise<Spec>;
14
+ load(specId: string): Promise<Spec>;
15
+ save(spec: Spec): Promise<void>;
16
+ list(): Promise<SpecMetadata[]>;
17
+ brainstorm(spec: Spec, topic: string, questions: string[]): Promise<void>;
18
+ addBrainstormAnswer(spec: Spec, question: string, answer: string): Promise<void>;
19
+ writePlan(spec: Spec, tasks: Task[], dependencies?: Record<string, string[]>): Promise<void>;
20
+ updateTaskStatus(spec: Spec, taskId: string, status: TaskStatus): Promise<void>;
21
+ saveDesign(spec: Spec, architecture: string, dataModel: string, apiDesign?: string, uiDesign?: string): Promise<void>;
22
+ private getSpecPath;
23
+ private getSpecsDir;
24
+ private generateSpecId;
25
+ }
26
+ //# sourceMappingURL=SpecManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpecManager.d.ts","sourceRoot":"","sources":["../../../src/managers/SpecManager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAO1E,MAAM,WAAW,iBAAiB;IACjC,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAOA,qBAAa,WAAW;IACvB,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,QAAQ,CAAW;gBAEf,MAAM,EAAE,iBAAiB;IAQ/B,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB1D,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBnC,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB/B,IAAI,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAkC/B,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAezE,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYhF,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAa5F,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB/E,UAAU,CACd,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC;IAgBhB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,cAAc;CAKvB"}
@@ -0,0 +1,134 @@
1
+ import * as fs from 'node:fs/promises';
2
+ import * as path from 'node:path';
3
+ import { parseSpecMarkdown } from '../specs/utils/parser';
4
+ import { generateSpecMarkdown } from '../specs/utils/generator';
5
+ export class SpecManager {
6
+ specs = new Map();
7
+ paths;
8
+ eventBus;
9
+ constructor(config) {
10
+ this.paths = config.paths;
11
+ this.eventBus = config.eventBus;
12
+ }
13
+ async create(title, description) {
14
+ const specId = this.generateSpecId();
15
+ const now = new Date();
16
+ const spec = {
17
+ specId,
18
+ title,
19
+ description,
20
+ createdAt: now,
21
+ updatedAt: now,
22
+ };
23
+ this.specs.set(specId, spec);
24
+ await this.save(spec);
25
+ this.eventBus.emit('spec.created', spec);
26
+ return spec;
27
+ }
28
+ async load(specId) {
29
+ if (this.specs.has(specId)) {
30
+ return this.specs.get(specId);
31
+ }
32
+ const specPath = this.getSpecPath(specId);
33
+ const content = await fs.readFile(specPath, 'utf-8');
34
+ const spec = parseSpecMarkdown(content);
35
+ this.specs.set(specId, spec);
36
+ this.eventBus.emit('spec.loaded', spec);
37
+ return spec;
38
+ }
39
+ async save(spec) {
40
+ spec.updatedAt = new Date();
41
+ const specPath = this.getSpecPath(spec.specId);
42
+ const content = generateSpecMarkdown(spec);
43
+ await fs.mkdir(path.dirname(specPath), { recursive: true });
44
+ await fs.writeFile(specPath, content, 'utf-8');
45
+ this.specs.set(spec.specId, spec);
46
+ this.eventBus.emit('spec.saved', spec);
47
+ }
48
+ async list() {
49
+ const specsDir = this.getSpecsDir();
50
+ try {
51
+ const files = await fs.readdir(specsDir);
52
+ const specFiles = files.filter(f => f.endsWith('.md'));
53
+ const metadata = [];
54
+ for (const file of specFiles) {
55
+ const specId = file.replace('.md', '');
56
+ const spec = await this.load(specId);
57
+ metadata.push({
58
+ specId: spec.specId,
59
+ title: spec.title,
60
+ description: spec.description,
61
+ taskCount: spec.plan?.tasks.length || 0,
62
+ completedTaskCount: spec.plan?.tasks.filter(t => t.status === 'completed').length || 0,
63
+ createdAt: spec.createdAt,
64
+ updatedAt: spec.updatedAt,
65
+ });
66
+ }
67
+ return metadata.sort((a, b) => b.updatedAt.getTime() - a.updatedAt.getTime());
68
+ }
69
+ catch (error) {
70
+ return [];
71
+ }
72
+ }
73
+ async brainstorm(spec, topic, questions) {
74
+ spec.brainstorm = {
75
+ topic,
76
+ questions,
77
+ answers: {},
78
+ notes: [],
79
+ };
80
+ await this.save(spec);
81
+ this.eventBus.emit('spec.brainstorm', spec);
82
+ }
83
+ async addBrainstormAnswer(spec, question, answer) {
84
+ if (!spec.brainstorm) {
85
+ throw new Error('Brainstorm section not initialized');
86
+ }
87
+ spec.brainstorm.answers[question] = answer;
88
+ await this.save(spec);
89
+ }
90
+ async writePlan(spec, tasks, dependencies) {
91
+ spec.plan = {
92
+ tasks,
93
+ dependencies: dependencies || {},
94
+ };
95
+ await this.save(spec);
96
+ this.eventBus.emit('spec.plan.written', spec);
97
+ }
98
+ async updateTaskStatus(spec, taskId, status) {
99
+ if (!spec.plan) {
100
+ throw new Error('Plan section not initialized');
101
+ }
102
+ const task = spec.plan.tasks.find(t => t.id === taskId);
103
+ if (!task) {
104
+ throw new Error(`Task ${taskId} not found`);
105
+ }
106
+ task.status = status;
107
+ task.updatedAt = new Date();
108
+ await this.save(spec);
109
+ this.eventBus.emit('spec.task.updated', { spec, task });
110
+ }
111
+ async saveDesign(spec, architecture, dataModel, apiDesign, uiDesign) {
112
+ spec.design = {
113
+ architecture,
114
+ dataModel,
115
+ apiDesign,
116
+ uiDesign,
117
+ notes: [],
118
+ };
119
+ await this.save(spec);
120
+ this.eventBus.emit('spec.design.saved', spec);
121
+ }
122
+ getSpecPath(specId) {
123
+ return path.join(this.getSpecsDir(), `${specId}.md`);
124
+ }
125
+ getSpecsDir() {
126
+ return path.join(this.paths.projectConfigDir, 'specs');
127
+ }
128
+ generateSpecId() {
129
+ const timestamp = new Date().toISOString().replace(/[:.]/g, '-').slice(0, -5);
130
+ const random = Math.random().toString(36).substring(2, 6);
131
+ return `spec-${timestamp}-${random}`;
132
+ }
133
+ }
134
+ //# sourceMappingURL=SpecManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpecManager.js","sourceRoot":"","sources":["../../../src/managers/SpecManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { Tool } from '../tools/base/Tool';
2
+ import type { EventBus } from '../services/EventBus';
3
+ import type { PluginManager } from './PluginManager';
4
+ import type { Container } from '../application/Container';
5
+ export declare class ToolManager {
6
+ private tools;
7
+ private eventBus?;
8
+ private pluginManager?;
9
+ private container?;
10
+ setContainer(container: Container): void;
11
+ setPluginManager(pluginManager: PluginManager): void;
12
+ setEventBus(eventBus: EventBus): void;
13
+ register(tool: Tool): void;
14
+ get(name: string): Tool | undefined;
15
+ has(name: string): boolean;
16
+ execute(name: string, input: unknown): Promise<any>;
17
+ list(): string[];
18
+ getAllInfo(): Array<{
19
+ name: string;
20
+ description: string;
21
+ }>;
22
+ count(): number;
23
+ }
24
+ //# sourceMappingURL=ToolManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolManager.d.ts","sourceRoot":"","sources":["../../../src/managers/ToolManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAe1D,qBAAa,WAAW;IAQtB,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,QAAQ,CAAC,CAAW;IAC5B,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,SAAS,CAAC,CAAY;IAK9B,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAcxC,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI;IAUpD,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAerC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAmB1B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAUnC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAkBpB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAuEzD,IAAI,IAAI,MAAM,EAAE;IAchB,UAAU,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAS1D,KAAK,IAAI,MAAM;CAGhB"}
@@ -0,0 +1,97 @@
1
+ import { EventType } from '../types/index';
2
+ export class ToolManager {
3
+ tools = new Map();
4
+ eventBus;
5
+ pluginManager;
6
+ container;
7
+ setContainer(container) {
8
+ this.container = container;
9
+ for (const tool of this.tools.values()) {
10
+ tool.setContainer(container);
11
+ }
12
+ }
13
+ setPluginManager(pluginManager) {
14
+ this.pluginManager = pluginManager;
15
+ console.log('✅ PluginManager set for ToolManager');
16
+ }
17
+ setEventBus(eventBus) {
18
+ this.eventBus = eventBus;
19
+ console.log('✅ EventBus set for ToolManager');
20
+ }
21
+ register(tool) {
22
+ if (this.tools.has(tool.name)) {
23
+ throw new Error(`Tool already registered: ${tool.name}`);
24
+ }
25
+ if (this.container) {
26
+ tool.setContainer(this.container);
27
+ }
28
+ this.tools.set(tool.name, tool);
29
+ console.log(`✅ Registered tool: ${tool.name}`);
30
+ }
31
+ get(name) {
32
+ return this.tools.get(name);
33
+ }
34
+ has(name) {
35
+ return this.tools.has(name);
36
+ }
37
+ async execute(name, input) {
38
+ console.log(`🔧 Executing tool: ${name}`);
39
+ const tool = this.tools.get(name);
40
+ if (!tool) {
41
+ throw new Error(`Tool not found: ${name}`);
42
+ }
43
+ try {
44
+ if (this.pluginManager) {
45
+ await this.pluginManager.triggerToolBefore(tool, input);
46
+ }
47
+ if (this.eventBus) {
48
+ this.eventBus.emit(EventType.TOOL_BEFORE, {
49
+ name,
50
+ input,
51
+ timestamp: Date.now(),
52
+ });
53
+ }
54
+ const validInput = tool.validate(input);
55
+ const result = await tool.execute(validInput);
56
+ console.log(`✅ Tool executed successfully: ${name}`);
57
+ if (this.pluginManager) {
58
+ await this.pluginManager.triggerToolAfter(tool, result);
59
+ }
60
+ if (this.eventBus) {
61
+ this.eventBus.emit(EventType.TOOL_AFTER, {
62
+ name,
63
+ result,
64
+ timestamp: Date.now(),
65
+ });
66
+ }
67
+ return result;
68
+ }
69
+ catch (error) {
70
+ console.error(`❌ Tool execution failed: ${name}`, error);
71
+ if (this.pluginManager) {
72
+ await this.pluginManager.triggerToolAfter(tool, { error });
73
+ }
74
+ if (this.eventBus) {
75
+ this.eventBus.emit(EventType.TOOL_ERROR, {
76
+ name,
77
+ error: error instanceof Error ? error : new Error(String(error)),
78
+ timestamp: Date.now(),
79
+ });
80
+ }
81
+ if (error instanceof Error) {
82
+ throw new Error(`Tool execution failed (${name}): ${error.message}`);
83
+ }
84
+ throw new Error(`Tool execution failed (${name}): Unknown error`);
85
+ }
86
+ }
87
+ list() {
88
+ return Array.from(this.tools.keys());
89
+ }
90
+ getAllInfo() {
91
+ return Array.from(this.tools.values()).map((tool) => tool.getInfo());
92
+ }
93
+ count() {
94
+ return this.tools.size;
95
+ }
96
+ }
97
+ //# sourceMappingURL=ToolManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolManager.js","sourceRoot":"","sources":["../../../src/managers/ToolManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { MCPServerConfig, MCPToolDefinition, MCPToolResult } from './types';
2
+ export declare class MCPClient {
3
+ private process;
4
+ private requestId;
5
+ private pendingRequests;
6
+ private serverName;
7
+ private config;
8
+ constructor(serverName: string, config: MCPServerConfig);
9
+ connect(): Promise<void>;
10
+ private initialize;
11
+ listTools(): Promise<MCPToolDefinition[]>;
12
+ callTool(name: string, args: Record<string, any>): Promise<MCPToolResult>;
13
+ private sendRequest;
14
+ private handleResponse;
15
+ disconnect(): Promise<void>;
16
+ }
17
+ //# sourceMappingURL=MCPClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MCPClient.d.ts","sourceRoot":"","sources":["../../../src/mcp/MCPClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EAGf,iBAAiB,EACjB,aAAa,EACd,MAAM,SAAS,CAAC;AAWjB,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,eAAe,CAMnB;IAEJ,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAkB;gBAEpB,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe;IAQjD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAgDhB,UAAU;IAgBlB,SAAS,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAczC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;YAiBjE,WAAW;IAmCzB,OAAO,CAAC,cAAc;IAkBhB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAQlC"}