nova-terminal-ai 0.3.4

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 (649) hide show
  1. package/README.md +84 -0
  2. package/bin/nova +38 -0
  3. package/bin/nova.js +11 -0
  4. package/dist/commands/SmartCompletion.d.ts +71 -0
  5. package/dist/commands/SmartCompletion.d.ts.map +1 -0
  6. package/dist/commands/SmartCompletion.js +377 -0
  7. package/dist/commands/SmartCompletion.js.map +1 -0
  8. package/dist/index.d.ts +2 -0
  9. package/dist/index.d.ts.map +1 -0
  10. package/dist/index.js +5 -0
  11. package/dist/index.js.map +1 -0
  12. package/dist/packages/cli/src/commands/SmartCompletion.d.ts +71 -0
  13. package/dist/packages/cli/src/commands/SmartCompletion.d.ts.map +1 -0
  14. package/dist/packages/cli/src/commands/SmartCompletion.js +377 -0
  15. package/dist/packages/cli/src/commands/SmartCompletion.js.map +1 -0
  16. package/dist/packages/cli/src/index.d.ts +2 -0
  17. package/dist/packages/cli/src/index.d.ts.map +1 -0
  18. package/dist/packages/cli/src/index.js +5 -0
  19. package/dist/packages/cli/src/index.js.map +1 -0
  20. package/dist/packages/cli/src/startup/IFlowRepl.d.ts +50 -0
  21. package/dist/packages/cli/src/startup/IFlowRepl.d.ts.map +1 -0
  22. package/dist/packages/cli/src/startup/IFlowRepl.js +178 -0
  23. package/dist/packages/cli/src/startup/IFlowRepl.js.map +1 -0
  24. package/dist/packages/cli/src/startup/InkBasedRepl.d.ts +151 -0
  25. package/dist/packages/cli/src/startup/InkBasedRepl.d.ts.map +1 -0
  26. package/dist/packages/cli/src/startup/InkBasedRepl.js +1415 -0
  27. package/dist/packages/cli/src/startup/InkBasedRepl.js.map +1 -0
  28. package/dist/packages/cli/src/startup/InteractiveRepl.d.ts +141 -0
  29. package/dist/packages/cli/src/startup/InteractiveRepl.d.ts.map +1 -0
  30. package/dist/packages/cli/src/startup/InteractiveRepl.js +2561 -0
  31. package/dist/packages/cli/src/startup/InteractiveRepl.js.map +1 -0
  32. package/dist/packages/cli/src/startup/NovaApp.d.ts +57 -0
  33. package/dist/packages/cli/src/startup/NovaApp.d.ts.map +1 -0
  34. package/dist/packages/cli/src/startup/NovaApp.js +1978 -0
  35. package/dist/packages/cli/src/startup/NovaApp.js.map +1 -0
  36. package/dist/packages/cli/src/startup/index.d.ts +5 -0
  37. package/dist/packages/cli/src/startup/index.d.ts.map +1 -0
  38. package/dist/packages/cli/src/startup/index.js +4 -0
  39. package/dist/packages/cli/src/startup/index.js.map +1 -0
  40. package/dist/packages/cli/src/startup/parseArgs.d.ts +47 -0
  41. package/dist/packages/cli/src/startup/parseArgs.d.ts.map +1 -0
  42. package/dist/packages/cli/src/startup/parseArgs.js +262 -0
  43. package/dist/packages/cli/src/startup/parseArgs.js.map +1 -0
  44. package/dist/packages/cli/src/ui/IFlowDropdown.d.ts +63 -0
  45. package/dist/packages/cli/src/ui/IFlowDropdown.d.ts.map +1 -0
  46. package/dist/packages/cli/src/ui/IFlowDropdown.js +362 -0
  47. package/dist/packages/cli/src/ui/IFlowDropdown.js.map +1 -0
  48. package/dist/packages/cli/src/ui/ModernReplUI.d.ts +55 -0
  49. package/dist/packages/cli/src/ui/ModernReplUI.d.ts.map +1 -0
  50. package/dist/packages/cli/src/ui/ModernReplUI.js +207 -0
  51. package/dist/packages/cli/src/ui/ModernReplUI.js.map +1 -0
  52. package/dist/packages/cli/src/ui/SimpleSelector2.d.ts +28 -0
  53. package/dist/packages/cli/src/ui/SimpleSelector2.d.ts.map +1 -0
  54. package/dist/packages/cli/src/ui/SimpleSelector2.js +181 -0
  55. package/dist/packages/cli/src/ui/SimpleSelector2.js.map +1 -0
  56. package/dist/packages/cli/src/ui/components/ActiveCursor.d.ts +128 -0
  57. package/dist/packages/cli/src/ui/components/ActiveCursor.d.ts.map +1 -0
  58. package/dist/packages/cli/src/ui/components/ActiveCursor.js +273 -0
  59. package/dist/packages/cli/src/ui/components/ActiveCursor.js.map +1 -0
  60. package/dist/packages/cli/src/ui/components/ConfirmDialog.d.ts +51 -0
  61. package/dist/packages/cli/src/ui/components/ConfirmDialog.d.ts.map +1 -0
  62. package/dist/packages/cli/src/ui/components/ConfirmDialog.js +147 -0
  63. package/dist/packages/cli/src/ui/components/ConfirmDialog.js.map +1 -0
  64. package/dist/packages/cli/src/ui/components/ErrorPanel.d.ts +33 -0
  65. package/dist/packages/cli/src/ui/components/ErrorPanel.d.ts.map +1 -0
  66. package/dist/packages/cli/src/ui/components/ErrorPanel.js +309 -0
  67. package/dist/packages/cli/src/ui/components/ErrorPanel.js.map +1 -0
  68. package/dist/packages/cli/src/ui/components/InkAppRunner.d.ts +18 -0
  69. package/dist/packages/cli/src/ui/components/InkAppRunner.d.ts.map +1 -0
  70. package/dist/packages/cli/src/ui/components/InkAppRunner.js +33 -0
  71. package/dist/packages/cli/src/ui/components/InkAppRunner.js.map +1 -0
  72. package/dist/packages/cli/src/ui/components/InkComponents.d.ts +126 -0
  73. package/dist/packages/cli/src/ui/components/InkComponents.d.ts.map +1 -0
  74. package/dist/packages/cli/src/ui/components/InkComponents.js +216 -0
  75. package/dist/packages/cli/src/ui/components/InkComponents.js.map +1 -0
  76. package/dist/packages/cli/src/ui/components/NovaInkApp.d.ts +11 -0
  77. package/dist/packages/cli/src/ui/components/NovaInkApp.d.ts.map +1 -0
  78. package/dist/packages/cli/src/ui/components/NovaInkApp.js +148 -0
  79. package/dist/packages/cli/src/ui/components/NovaInkApp.js.map +1 -0
  80. package/dist/packages/cli/src/ui/components/ProgressBar.d.ts +65 -0
  81. package/dist/packages/cli/src/ui/components/ProgressBar.d.ts.map +1 -0
  82. package/dist/packages/cli/src/ui/components/ProgressBar.js +135 -0
  83. package/dist/packages/cli/src/ui/components/ProgressBar.js.map +1 -0
  84. package/dist/packages/cli/src/ui/components/ProgressIndicator.d.ts +41 -0
  85. package/dist/packages/cli/src/ui/components/ProgressIndicator.d.ts.map +1 -0
  86. package/dist/packages/cli/src/ui/components/ProgressIndicator.js +235 -0
  87. package/dist/packages/cli/src/ui/components/ProgressIndicator.js.map +1 -0
  88. package/dist/packages/cli/src/ui/components/QuickActions.d.ts +36 -0
  89. package/dist/packages/cli/src/ui/components/QuickActions.d.ts.map +1 -0
  90. package/dist/packages/cli/src/ui/components/QuickActions.js +328 -0
  91. package/dist/packages/cli/src/ui/components/QuickActions.js.map +1 -0
  92. package/dist/packages/cli/src/ui/components/SimpleErrorPanel.d.ts +16 -0
  93. package/dist/packages/cli/src/ui/components/SimpleErrorPanel.d.ts.map +1 -0
  94. package/dist/packages/cli/src/ui/components/SimpleErrorPanel.js +193 -0
  95. package/dist/packages/cli/src/ui/components/SimpleErrorPanel.js.map +1 -0
  96. package/dist/packages/cli/src/ui/components/StatusBar.d.ts +30 -0
  97. package/dist/packages/cli/src/ui/components/StatusBar.d.ts.map +1 -0
  98. package/dist/packages/cli/src/ui/components/StatusBar.js +154 -0
  99. package/dist/packages/cli/src/ui/components/StatusBar.js.map +1 -0
  100. package/dist/packages/cli/src/ui/components/ThinkingBlockRenderer.d.ts +109 -0
  101. package/dist/packages/cli/src/ui/components/ThinkingBlockRenderer.d.ts.map +1 -0
  102. package/dist/packages/cli/src/ui/components/ThinkingBlockRenderer.js +335 -0
  103. package/dist/packages/cli/src/ui/components/ThinkingBlockRenderer.js.map +1 -0
  104. package/dist/packages/cli/src/ui/components/ThinkingContentDisplay.d.ts +59 -0
  105. package/dist/packages/cli/src/ui/components/ThinkingContentDisplay.d.ts.map +1 -0
  106. package/dist/packages/cli/src/ui/components/ThinkingContentDisplay.js +172 -0
  107. package/dist/packages/cli/src/ui/components/ThinkingContentDisplay.js.map +1 -0
  108. package/dist/packages/cli/src/ui/components/TodoProgressPanel.d.ts +91 -0
  109. package/dist/packages/cli/src/ui/components/TodoProgressPanel.d.ts.map +1 -0
  110. package/dist/packages/cli/src/ui/components/TodoProgressPanel.js +284 -0
  111. package/dist/packages/cli/src/ui/components/TodoProgressPanel.js.map +1 -0
  112. package/dist/packages/cli/src/ui/components/ToolCallStatusDisplay.d.ts +89 -0
  113. package/dist/packages/cli/src/ui/components/ToolCallStatusDisplay.d.ts.map +1 -0
  114. package/dist/packages/cli/src/ui/components/ToolCallStatusDisplay.js +246 -0
  115. package/dist/packages/cli/src/ui/components/ToolCallStatusDisplay.js.map +1 -0
  116. package/dist/packages/cli/src/ui/components/UserMessageHighlight.d.ts +48 -0
  117. package/dist/packages/cli/src/ui/components/UserMessageHighlight.d.ts.map +1 -0
  118. package/dist/packages/cli/src/ui/components/UserMessageHighlight.js +196 -0
  119. package/dist/packages/cli/src/ui/components/UserMessageHighlight.js.map +1 -0
  120. package/dist/packages/cli/src/ui/components/index.d.ts +17 -0
  121. package/dist/packages/cli/src/ui/components/index.d.ts.map +1 -0
  122. package/dist/packages/cli/src/ui/components/index.js +18 -0
  123. package/dist/packages/cli/src/ui/components/index.js.map +1 -0
  124. package/dist/packages/cli/src/ui/ink-prototype.d.ts +3 -0
  125. package/dist/packages/cli/src/ui/ink-prototype.d.ts.map +1 -0
  126. package/dist/packages/cli/src/ui/ink-prototype.js +160 -0
  127. package/dist/packages/cli/src/ui/ink-prototype.js.map +1 -0
  128. package/dist/packages/cli/src/utils/CliUI.d.ts +163 -0
  129. package/dist/packages/cli/src/utils/CliUI.d.ts.map +1 -0
  130. package/dist/packages/cli/src/utils/CliUI.js +292 -0
  131. package/dist/packages/cli/src/utils/CliUI.js.map +1 -0
  132. package/dist/packages/cli/src/utils/CompletionHelper.d.ts +112 -0
  133. package/dist/packages/cli/src/utils/CompletionHelper.d.ts.map +1 -0
  134. package/dist/packages/cli/src/utils/CompletionHelper.js +304 -0
  135. package/dist/packages/cli/src/utils/CompletionHelper.js.map +1 -0
  136. package/dist/packages/cli/src/utils/EnhancedCompleter.d.ts +107 -0
  137. package/dist/packages/cli/src/utils/EnhancedCompleter.d.ts.map +1 -0
  138. package/dist/packages/cli/src/utils/EnhancedCompleter.js +428 -0
  139. package/dist/packages/cli/src/utils/EnhancedCompleter.js.map +1 -0
  140. package/dist/packages/cli/src/utils/ErrorEnhancer.d.ts +103 -0
  141. package/dist/packages/cli/src/utils/ErrorEnhancer.d.ts.map +1 -0
  142. package/dist/packages/cli/src/utils/ErrorEnhancer.js +350 -0
  143. package/dist/packages/cli/src/utils/ErrorEnhancer.js.map +1 -0
  144. package/dist/packages/cli/src/utils/OutputFormatter.d.ts +65 -0
  145. package/dist/packages/cli/src/utils/OutputFormatter.d.ts.map +1 -0
  146. package/dist/packages/cli/src/utils/OutputFormatter.js +145 -0
  147. package/dist/packages/cli/src/utils/OutputFormatter.js.map +1 -0
  148. package/dist/packages/cli/src/utils/index.d.ts +5 -0
  149. package/dist/packages/cli/src/utils/index.d.ts.map +1 -0
  150. package/dist/packages/cli/src/utils/index.js +8 -0
  151. package/dist/packages/cli/src/utils/index.js.map +1 -0
  152. package/dist/packages/cli/tsconfig.tsbuildinfo +1 -0
  153. package/dist/packages/core/src/agents/AgentOrchestrator.d.ts +147 -0
  154. package/dist/packages/core/src/agents/AgentOrchestrator.d.ts.map +1 -0
  155. package/dist/packages/core/src/agents/AgentOrchestrator.js +358 -0
  156. package/dist/packages/core/src/agents/AgentOrchestrator.js.map +1 -0
  157. package/dist/packages/core/src/agents/index.d.ts +3 -0
  158. package/dist/packages/core/src/agents/index.d.ts.map +1 -0
  159. package/dist/packages/core/src/agents/index.js +5 -0
  160. package/dist/packages/core/src/agents/index.js.map +1 -0
  161. package/dist/packages/core/src/analysis/ProjectAnalyzer.d.ts +95 -0
  162. package/dist/packages/core/src/analysis/ProjectAnalyzer.d.ts.map +1 -0
  163. package/dist/packages/core/src/analysis/ProjectAnalyzer.js +656 -0
  164. package/dist/packages/core/src/analysis/ProjectAnalyzer.js.map +1 -0
  165. package/dist/packages/core/src/audit/AuditLogger.d.ts +140 -0
  166. package/dist/packages/core/src/audit/AuditLogger.d.ts.map +1 -0
  167. package/dist/packages/core/src/audit/AuditLogger.js +357 -0
  168. package/dist/packages/core/src/audit/AuditLogger.js.map +1 -0
  169. package/dist/packages/core/src/audit/index.d.ts +3 -0
  170. package/dist/packages/core/src/audit/index.d.ts.map +1 -0
  171. package/dist/packages/core/src/audit/index.js +5 -0
  172. package/dist/packages/core/src/audit/index.js.map +1 -0
  173. package/dist/packages/core/src/auth/AuthManager.d.ts +38 -0
  174. package/dist/packages/core/src/auth/AuthManager.d.ts.map +1 -0
  175. package/dist/packages/core/src/auth/AuthManager.js +120 -0
  176. package/dist/packages/core/src/auth/AuthManager.js.map +1 -0
  177. package/dist/packages/core/src/auth/index.d.ts +3 -0
  178. package/dist/packages/core/src/auth/index.d.ts.map +1 -0
  179. package/dist/packages/core/src/auth/index.js +2 -0
  180. package/dist/packages/core/src/auth/index.js.map +1 -0
  181. package/dist/packages/core/src/config/ConfigManager.d.ts +47 -0
  182. package/dist/packages/core/src/config/ConfigManager.d.ts.map +1 -0
  183. package/dist/packages/core/src/config/ConfigManager.js +1197 -0
  184. package/dist/packages/core/src/config/ConfigManager.js.map +1 -0
  185. package/dist/packages/core/src/config/index.d.ts +2 -0
  186. package/dist/packages/core/src/config/index.d.ts.map +1 -0
  187. package/dist/packages/core/src/config/index.js +2 -0
  188. package/dist/packages/core/src/config/index.js.map +1 -0
  189. package/dist/packages/core/src/context/ContextBuilder.d.ts +39 -0
  190. package/dist/packages/core/src/context/ContextBuilder.d.ts.map +1 -0
  191. package/dist/packages/core/src/context/ContextBuilder.js +132 -0
  192. package/dist/packages/core/src/context/ContextBuilder.js.map +1 -0
  193. package/dist/packages/core/src/context/ContextCompressor.d.ts +147 -0
  194. package/dist/packages/core/src/context/ContextCompressor.d.ts.map +1 -0
  195. package/dist/packages/core/src/context/ContextCompressor.js +451 -0
  196. package/dist/packages/core/src/context/ContextCompressor.js.map +1 -0
  197. package/dist/packages/core/src/context/LayeredMemoryManager.d.ts +160 -0
  198. package/dist/packages/core/src/context/LayeredMemoryManager.d.ts.map +1 -0
  199. package/dist/packages/core/src/context/LayeredMemoryManager.js +505 -0
  200. package/dist/packages/core/src/context/LayeredMemoryManager.js.map +1 -0
  201. package/dist/packages/core/src/context/MemoryDiscovery.d.ts +33 -0
  202. package/dist/packages/core/src/context/MemoryDiscovery.d.ts.map +1 -0
  203. package/dist/packages/core/src/context/MemoryDiscovery.js +146 -0
  204. package/dist/packages/core/src/context/MemoryDiscovery.js.map +1 -0
  205. package/dist/packages/core/src/context/defaultSystemPrompt.d.ts +12 -0
  206. package/dist/packages/core/src/context/defaultSystemPrompt.d.ts.map +1 -0
  207. package/dist/packages/core/src/context/defaultSystemPrompt.js +32 -0
  208. package/dist/packages/core/src/context/defaultSystemPrompt.js.map +1 -0
  209. package/dist/packages/core/src/context/index.d.ts +9 -0
  210. package/dist/packages/core/src/context/index.d.ts.map +1 -0
  211. package/dist/packages/core/src/context/index.js +5 -0
  212. package/dist/packages/core/src/context/index.js.map +1 -0
  213. package/dist/packages/core/src/extensions/SkillGenerator.d.ts +77 -0
  214. package/dist/packages/core/src/extensions/SkillGenerator.d.ts.map +1 -0
  215. package/dist/packages/core/src/extensions/SkillGenerator.js +323 -0
  216. package/dist/packages/core/src/extensions/SkillGenerator.js.map +1 -0
  217. package/dist/packages/core/src/extensions/SkillInstaller.d.ts +74 -0
  218. package/dist/packages/core/src/extensions/SkillInstaller.d.ts.map +1 -0
  219. package/dist/packages/core/src/extensions/SkillInstaller.js +216 -0
  220. package/dist/packages/core/src/extensions/SkillInstaller.js.map +1 -0
  221. package/dist/packages/core/src/extensions/SkillRegistry.d.ts +99 -0
  222. package/dist/packages/core/src/extensions/SkillRegistry.d.ts.map +1 -0
  223. package/dist/packages/core/src/extensions/SkillRegistry.js +263 -0
  224. package/dist/packages/core/src/extensions/SkillRegistry.js.map +1 -0
  225. package/dist/packages/core/src/extensions/SkillValidator.d.ts +51 -0
  226. package/dist/packages/core/src/extensions/SkillValidator.d.ts.map +1 -0
  227. package/dist/packages/core/src/extensions/SkillValidator.js +465 -0
  228. package/dist/packages/core/src/extensions/SkillValidator.js.map +1 -0
  229. package/dist/packages/core/src/extensions/index.d.ts +11 -0
  230. package/dist/packages/core/src/extensions/index.d.ts.map +1 -0
  231. package/dist/packages/core/src/extensions/index.js +8 -0
  232. package/dist/packages/core/src/extensions/index.js.map +1 -0
  233. package/dist/packages/core/src/index.d.ts +14 -0
  234. package/dist/packages/core/src/index.d.ts.map +1 -0
  235. package/dist/packages/core/src/index.js +30 -0
  236. package/dist/packages/core/src/index.js.map +1 -0
  237. package/dist/packages/core/src/mcp/McpManager.d.ts +94 -0
  238. package/dist/packages/core/src/mcp/McpManager.d.ts.map +1 -0
  239. package/dist/packages/core/src/mcp/McpManager.js +494 -0
  240. package/dist/packages/core/src/mcp/McpManager.js.map +1 -0
  241. package/dist/packages/core/src/mcp/index.d.ts +2 -0
  242. package/dist/packages/core/src/mcp/index.d.ts.map +1 -0
  243. package/dist/packages/core/src/mcp/index.js +3 -0
  244. package/dist/packages/core/src/mcp/index.js.map +1 -0
  245. package/dist/packages/core/src/model/ModelClient.d.ts +40 -0
  246. package/dist/packages/core/src/model/ModelClient.d.ts.map +1 -0
  247. package/dist/packages/core/src/model/ModelClient.js +163 -0
  248. package/dist/packages/core/src/model/ModelClient.js.map +1 -0
  249. package/dist/packages/core/src/model/ModelConnectionTester.d.ts +58 -0
  250. package/dist/packages/core/src/model/ModelConnectionTester.d.ts.map +1 -0
  251. package/dist/packages/core/src/model/ModelConnectionTester.js +311 -0
  252. package/dist/packages/core/src/model/ModelConnectionTester.js.map +1 -0
  253. package/dist/packages/core/src/model/ModelValidator.d.ts +39 -0
  254. package/dist/packages/core/src/model/ModelValidator.d.ts.map +1 -0
  255. package/dist/packages/core/src/model/ModelValidator.js +296 -0
  256. package/dist/packages/core/src/model/ModelValidator.js.map +1 -0
  257. package/dist/packages/core/src/model/index.d.ts +7 -0
  258. package/dist/packages/core/src/model/index.d.ts.map +1 -0
  259. package/dist/packages/core/src/model/index.js +5 -0
  260. package/dist/packages/core/src/model/index.js.map +1 -0
  261. package/dist/packages/core/src/model/providers/AnthropicProvider.d.ts +25 -0
  262. package/dist/packages/core/src/model/providers/AnthropicProvider.d.ts.map +1 -0
  263. package/dist/packages/core/src/model/providers/AnthropicProvider.js +258 -0
  264. package/dist/packages/core/src/model/providers/AnthropicProvider.js.map +1 -0
  265. package/dist/packages/core/src/model/providers/CodingPlanProvider.d.ts +66 -0
  266. package/dist/packages/core/src/model/providers/CodingPlanProvider.d.ts.map +1 -0
  267. package/dist/packages/core/src/model/providers/CodingPlanProvider.js +161 -0
  268. package/dist/packages/core/src/model/providers/CodingPlanProvider.js.map +1 -0
  269. package/dist/packages/core/src/model/providers/OllamaCloudProvider.d.ts +38 -0
  270. package/dist/packages/core/src/model/providers/OllamaCloudProvider.d.ts.map +1 -0
  271. package/dist/packages/core/src/model/providers/OllamaCloudProvider.js +365 -0
  272. package/dist/packages/core/src/model/providers/OllamaCloudProvider.js.map +1 -0
  273. package/dist/packages/core/src/model/providers/OllamaManager.d.ts +72 -0
  274. package/dist/packages/core/src/model/providers/OllamaManager.d.ts.map +1 -0
  275. package/dist/packages/core/src/model/providers/OllamaManager.js +144 -0
  276. package/dist/packages/core/src/model/providers/OllamaManager.js.map +1 -0
  277. package/dist/packages/core/src/model/providers/OllamaProvider.d.ts +23 -0
  278. package/dist/packages/core/src/model/providers/OllamaProvider.d.ts.map +1 -0
  279. package/dist/packages/core/src/model/providers/OllamaProvider.js +56 -0
  280. package/dist/packages/core/src/model/providers/OllamaProvider.js.map +1 -0
  281. package/dist/packages/core/src/model/providers/OpenAICompatibleProvider.d.ts +53 -0
  282. package/dist/packages/core/src/model/providers/OpenAICompatibleProvider.d.ts.map +1 -0
  283. package/dist/packages/core/src/model/providers/OpenAICompatibleProvider.js +383 -0
  284. package/dist/packages/core/src/model/providers/OpenAICompatibleProvider.js.map +1 -0
  285. package/dist/packages/core/src/model/providers/OpenAIProvider.d.ts +12 -0
  286. package/dist/packages/core/src/model/providers/OpenAIProvider.d.ts.map +1 -0
  287. package/dist/packages/core/src/model/providers/OpenAIProvider.js +19 -0
  288. package/dist/packages/core/src/model/providers/OpenAIProvider.js.map +1 -0
  289. package/dist/packages/core/src/model/providers/index.d.ts +13 -0
  290. package/dist/packages/core/src/model/providers/index.d.ts.map +1 -0
  291. package/dist/packages/core/src/model/providers/index.js +7 -0
  292. package/dist/packages/core/src/model/providers/index.js.map +1 -0
  293. package/dist/packages/core/src/model/types.d.ts +81 -0
  294. package/dist/packages/core/src/model/types.d.ts.map +1 -0
  295. package/dist/packages/core/src/model/types.js +12 -0
  296. package/dist/packages/core/src/model/types.js.map +1 -0
  297. package/dist/packages/core/src/security/ApprovalManager.d.ts +56 -0
  298. package/dist/packages/core/src/security/ApprovalManager.d.ts.map +1 -0
  299. package/dist/packages/core/src/security/ApprovalManager.js +122 -0
  300. package/dist/packages/core/src/security/ApprovalManager.js.map +1 -0
  301. package/dist/packages/core/src/security/FileFilter.d.ts +47 -0
  302. package/dist/packages/core/src/security/FileFilter.d.ts.map +1 -0
  303. package/dist/packages/core/src/security/FileFilter.js +111 -0
  304. package/dist/packages/core/src/security/FileFilter.js.map +1 -0
  305. package/dist/packages/core/src/security/HookExecutor.d.ts +37 -0
  306. package/dist/packages/core/src/security/HookExecutor.d.ts.map +1 -0
  307. package/dist/packages/core/src/security/HookExecutor.js +142 -0
  308. package/dist/packages/core/src/security/HookExecutor.js.map +1 -0
  309. package/dist/packages/core/src/security/SandboxExecutor.d.ts +90 -0
  310. package/dist/packages/core/src/security/SandboxExecutor.d.ts.map +1 -0
  311. package/dist/packages/core/src/security/SandboxExecutor.js +345 -0
  312. package/dist/packages/core/src/security/SandboxExecutor.js.map +1 -0
  313. package/dist/packages/core/src/security/index.d.ts +8 -0
  314. package/dist/packages/core/src/security/index.d.ts.map +1 -0
  315. package/dist/packages/core/src/security/index.js +6 -0
  316. package/dist/packages/core/src/security/index.js.map +1 -0
  317. package/dist/packages/core/src/session/AgentLoop.d.ts +75 -0
  318. package/dist/packages/core/src/session/AgentLoop.d.ts.map +1 -0
  319. package/dist/packages/core/src/session/AgentLoop.js +381 -0
  320. package/dist/packages/core/src/session/AgentLoop.js.map +1 -0
  321. package/dist/packages/core/src/session/SessionManager.d.ts +96 -0
  322. package/dist/packages/core/src/session/SessionManager.d.ts.map +1 -0
  323. package/dist/packages/core/src/session/SessionManager.js +390 -0
  324. package/dist/packages/core/src/session/SessionManager.js.map +1 -0
  325. package/dist/packages/core/src/session/index.d.ts +4 -0
  326. package/dist/packages/core/src/session/index.d.ts.map +1 -0
  327. package/dist/packages/core/src/session/index.js +3 -0
  328. package/dist/packages/core/src/session/index.js.map +1 -0
  329. package/dist/packages/core/src/telemetry/Telemetry.d.ts +25 -0
  330. package/dist/packages/core/src/telemetry/Telemetry.d.ts.map +1 -0
  331. package/dist/packages/core/src/telemetry/Telemetry.js +73 -0
  332. package/dist/packages/core/src/telemetry/Telemetry.js.map +1 -0
  333. package/dist/packages/core/src/telemetry/TelemetryService.d.ts +152 -0
  334. package/dist/packages/core/src/telemetry/TelemetryService.d.ts.map +1 -0
  335. package/dist/packages/core/src/telemetry/TelemetryService.js +410 -0
  336. package/dist/packages/core/src/telemetry/TelemetryService.js.map +1 -0
  337. package/dist/packages/core/src/telemetry/index.d.ts +5 -0
  338. package/dist/packages/core/src/telemetry/index.d.ts.map +1 -0
  339. package/dist/packages/core/src/telemetry/index.js +3 -0
  340. package/dist/packages/core/src/telemetry/index.js.map +1 -0
  341. package/dist/packages/core/src/testing/AutoFixer.d.ts +98 -0
  342. package/dist/packages/core/src/testing/AutoFixer.d.ts.map +1 -0
  343. package/dist/packages/core/src/testing/AutoFixer.js +262 -0
  344. package/dist/packages/core/src/testing/AutoFixer.js.map +1 -0
  345. package/dist/packages/core/src/testing/ErrorAnalyzer.d.ts +74 -0
  346. package/dist/packages/core/src/testing/ErrorAnalyzer.d.ts.map +1 -0
  347. package/dist/packages/core/src/testing/ErrorAnalyzer.js +407 -0
  348. package/dist/packages/core/src/testing/ErrorAnalyzer.js.map +1 -0
  349. package/dist/packages/core/src/testing/TestRunner.d.ts +57 -0
  350. package/dist/packages/core/src/testing/TestRunner.d.ts.map +1 -0
  351. package/dist/packages/core/src/testing/TestRunner.js +205 -0
  352. package/dist/packages/core/src/testing/TestRunner.js.map +1 -0
  353. package/dist/packages/core/src/testing/agent-cli-tests.d.ts +2 -0
  354. package/dist/packages/core/src/testing/agent-cli-tests.d.ts.map +1 -0
  355. package/dist/packages/core/src/testing/agent-cli-tests.js +493 -0
  356. package/dist/packages/core/src/testing/agent-cli-tests.js.map +1 -0
  357. package/dist/packages/core/src/testing/index.d.ts +7 -0
  358. package/dist/packages/core/src/testing/index.d.ts.map +1 -0
  359. package/dist/packages/core/src/testing/index.js +8 -0
  360. package/dist/packages/core/src/testing/index.js.map +1 -0
  361. package/dist/packages/core/src/tools/ToolRegistry.d.ts +72 -0
  362. package/dist/packages/core/src/tools/ToolRegistry.d.ts.map +1 -0
  363. package/dist/packages/core/src/tools/ToolRegistry.js +208 -0
  364. package/dist/packages/core/src/tools/ToolRegistry.js.map +1 -0
  365. package/dist/packages/core/src/tools/impl/EditFileTool.d.ts +3 -0
  366. package/dist/packages/core/src/tools/impl/EditFileTool.d.ts.map +1 -0
  367. package/dist/packages/core/src/tools/impl/EditFileTool.js +76 -0
  368. package/dist/packages/core/src/tools/impl/EditFileTool.js.map +1 -0
  369. package/dist/packages/core/src/tools/impl/FileProcessor.d.ts +85 -0
  370. package/dist/packages/core/src/tools/impl/FileProcessor.d.ts.map +1 -0
  371. package/dist/packages/core/src/tools/impl/FileProcessor.js +512 -0
  372. package/dist/packages/core/src/tools/impl/FileProcessor.js.map +1 -0
  373. package/dist/packages/core/src/tools/impl/FileProcessorTool.d.ts +151 -0
  374. package/dist/packages/core/src/tools/impl/FileProcessorTool.d.ts.map +1 -0
  375. package/dist/packages/core/src/tools/impl/FileProcessorTool.js +100 -0
  376. package/dist/packages/core/src/tools/impl/FileProcessorTool.js.map +1 -0
  377. package/dist/packages/core/src/tools/impl/ImageProcessorTool.d.ts +43 -0
  378. package/dist/packages/core/src/tools/impl/ImageProcessorTool.d.ts.map +1 -0
  379. package/dist/packages/core/src/tools/impl/ImageProcessorTool.js +104 -0
  380. package/dist/packages/core/src/tools/impl/ImageProcessorTool.js.map +1 -0
  381. package/dist/packages/core/src/tools/impl/ListDirectoryTool.d.ts +3 -0
  382. package/dist/packages/core/src/tools/impl/ListDirectoryTool.d.ts.map +1 -0
  383. package/dist/packages/core/src/tools/impl/ListDirectoryTool.js +120 -0
  384. package/dist/packages/core/src/tools/impl/ListDirectoryTool.js.map +1 -0
  385. package/dist/packages/core/src/tools/impl/MemoryTool.d.ts +4 -0
  386. package/dist/packages/core/src/tools/impl/MemoryTool.d.ts.map +1 -0
  387. package/dist/packages/core/src/tools/impl/MemoryTool.js +80 -0
  388. package/dist/packages/core/src/tools/impl/MemoryTool.js.map +1 -0
  389. package/dist/packages/core/src/tools/impl/ReadFileTool.d.ts +3 -0
  390. package/dist/packages/core/src/tools/impl/ReadFileTool.d.ts.map +1 -0
  391. package/dist/packages/core/src/tools/impl/ReadFileTool.js +223 -0
  392. package/dist/packages/core/src/tools/impl/ReadFileTool.js.map +1 -0
  393. package/dist/packages/core/src/tools/impl/SearchContentTool.d.ts +3 -0
  394. package/dist/packages/core/src/tools/impl/SearchContentTool.d.ts.map +1 -0
  395. package/dist/packages/core/src/tools/impl/SearchContentTool.js +65 -0
  396. package/dist/packages/core/src/tools/impl/SearchContentTool.js.map +1 -0
  397. package/dist/packages/core/src/tools/impl/SearchFileTool.d.ts +3 -0
  398. package/dist/packages/core/src/tools/impl/SearchFileTool.d.ts.map +1 -0
  399. package/dist/packages/core/src/tools/impl/SearchFileTool.js +48 -0
  400. package/dist/packages/core/src/tools/impl/SearchFileTool.js.map +1 -0
  401. package/dist/packages/core/src/tools/impl/ShellTool.d.ts +3 -0
  402. package/dist/packages/core/src/tools/impl/ShellTool.d.ts.map +1 -0
  403. package/dist/packages/core/src/tools/impl/ShellTool.js +92 -0
  404. package/dist/packages/core/src/tools/impl/ShellTool.js.map +1 -0
  405. package/dist/packages/core/src/tools/impl/TaskTool.d.ts +51 -0
  406. package/dist/packages/core/src/tools/impl/TaskTool.d.ts.map +1 -0
  407. package/dist/packages/core/src/tools/impl/TaskTool.js +172 -0
  408. package/dist/packages/core/src/tools/impl/TaskTool.js.map +1 -0
  409. package/dist/packages/core/src/tools/impl/TodoTool.d.ts +31 -0
  410. package/dist/packages/core/src/tools/impl/TodoTool.d.ts.map +1 -0
  411. package/dist/packages/core/src/tools/impl/TodoTool.js +102 -0
  412. package/dist/packages/core/src/tools/impl/TodoTool.js.map +1 -0
  413. package/dist/packages/core/src/tools/impl/WebFetchTool.d.ts +3 -0
  414. package/dist/packages/core/src/tools/impl/WebFetchTool.d.ts.map +1 -0
  415. package/dist/packages/core/src/tools/impl/WebFetchTool.js +77 -0
  416. package/dist/packages/core/src/tools/impl/WebFetchTool.js.map +1 -0
  417. package/dist/packages/core/src/tools/impl/WebSearchTool.d.ts +3 -0
  418. package/dist/packages/core/src/tools/impl/WebSearchTool.d.ts.map +1 -0
  419. package/dist/packages/core/src/tools/impl/WebSearchTool.js +67 -0
  420. package/dist/packages/core/src/tools/impl/WebSearchTool.js.map +1 -0
  421. package/dist/packages/core/src/tools/impl/WriteFileTool.d.ts +3 -0
  422. package/dist/packages/core/src/tools/impl/WriteFileTool.d.ts.map +1 -0
  423. package/dist/packages/core/src/tools/impl/WriteFileTool.js +41 -0
  424. package/dist/packages/core/src/tools/impl/WriteFileTool.js.map +1 -0
  425. package/dist/packages/core/src/tools/impl/index.d.ts +14 -0
  426. package/dist/packages/core/src/tools/impl/index.d.ts.map +1 -0
  427. package/dist/packages/core/src/tools/impl/index.js +21 -0
  428. package/dist/packages/core/src/tools/impl/index.js.map +1 -0
  429. package/dist/packages/core/src/tools/index.d.ts +16 -0
  430. package/dist/packages/core/src/tools/index.d.ts.map +1 -0
  431. package/dist/packages/core/src/tools/index.js +21 -0
  432. package/dist/packages/core/src/tools/index.js.map +1 -0
  433. package/dist/packages/core/src/tools/schemas/execution.d.ts +41 -0
  434. package/dist/packages/core/src/tools/schemas/execution.d.ts.map +1 -0
  435. package/dist/packages/core/src/tools/schemas/execution.js +42 -0
  436. package/dist/packages/core/src/tools/schemas/execution.js.map +1 -0
  437. package/dist/packages/core/src/tools/schemas/file.d.ts +113 -0
  438. package/dist/packages/core/src/tools/schemas/file.d.ts.map +1 -0
  439. package/dist/packages/core/src/tools/schemas/file.js +116 -0
  440. package/dist/packages/core/src/tools/schemas/file.js.map +1 -0
  441. package/dist/packages/core/src/tools/schemas/fileProcessorSchema.d.ts +278 -0
  442. package/dist/packages/core/src/tools/schemas/fileProcessorSchema.d.ts.map +1 -0
  443. package/dist/packages/core/src/tools/schemas/fileProcessorSchema.js +61 -0
  444. package/dist/packages/core/src/tools/schemas/fileProcessorSchema.js.map +1 -0
  445. package/dist/packages/core/src/tools/schemas/index.d.ts +8 -0
  446. package/dist/packages/core/src/tools/schemas/index.d.ts.map +1 -0
  447. package/dist/packages/core/src/tools/schemas/index.js +11 -0
  448. package/dist/packages/core/src/tools/schemas/index.js.map +1 -0
  449. package/dist/packages/core/src/tools/schemas/memory.d.ts +50 -0
  450. package/dist/packages/core/src/tools/schemas/memory.d.ts.map +1 -0
  451. package/dist/packages/core/src/tools/schemas/memory.js +51 -0
  452. package/dist/packages/core/src/tools/schemas/memory.js.map +1 -0
  453. package/dist/packages/core/src/tools/schemas/orchestration.d.ts +41 -0
  454. package/dist/packages/core/src/tools/schemas/orchestration.d.ts.map +1 -0
  455. package/dist/packages/core/src/tools/schemas/orchestration.js +44 -0
  456. package/dist/packages/core/src/tools/schemas/orchestration.js.map +1 -0
  457. package/dist/packages/core/src/tools/schemas/search.d.ts +111 -0
  458. package/dist/packages/core/src/tools/schemas/search.d.ts.map +1 -0
  459. package/dist/packages/core/src/tools/schemas/search.js +110 -0
  460. package/dist/packages/core/src/tools/schemas/search.js.map +1 -0
  461. package/dist/packages/core/src/tools/schemas/todo.d.ts +29 -0
  462. package/dist/packages/core/src/tools/schemas/todo.d.ts.map +1 -0
  463. package/dist/packages/core/src/tools/schemas/todo.js +32 -0
  464. package/dist/packages/core/src/tools/schemas/todo.js.map +1 -0
  465. package/dist/packages/core/src/tools/schemas/web.d.ts +84 -0
  466. package/dist/packages/core/src/tools/schemas/web.d.ts.map +1 -0
  467. package/dist/packages/core/src/tools/schemas/web.js +85 -0
  468. package/dist/packages/core/src/tools/schemas/web.js.map +1 -0
  469. package/dist/packages/core/src/types/config.d.ts +212 -0
  470. package/dist/packages/core/src/types/config.d.ts.map +1 -0
  471. package/dist/packages/core/src/types/config.js +5 -0
  472. package/dist/packages/core/src/types/config.js.map +1 -0
  473. package/dist/packages/core/src/types/errors.d.ts +92 -0
  474. package/dist/packages/core/src/types/errors.d.ts.map +1 -0
  475. package/dist/packages/core/src/types/errors.js +172 -0
  476. package/dist/packages/core/src/types/errors.js.map +1 -0
  477. package/dist/packages/core/src/types/index.d.ts +5 -0
  478. package/dist/packages/core/src/types/index.d.ts.map +1 -0
  479. package/dist/packages/core/src/types/index.js +8 -0
  480. package/dist/packages/core/src/types/index.js.map +1 -0
  481. package/dist/packages/core/src/types/session.d.ts +141 -0
  482. package/dist/packages/core/src/types/session.d.ts.map +1 -0
  483. package/dist/packages/core/src/types/session.js +16 -0
  484. package/dist/packages/core/src/types/session.js.map +1 -0
  485. package/dist/packages/core/src/types/tools.d.ts +126 -0
  486. package/dist/packages/core/src/types/tools.d.ts.map +1 -0
  487. package/dist/packages/core/src/types/tools.js +26 -0
  488. package/dist/packages/core/src/types/tools.js.map +1 -0
  489. package/dist/packages/core/src/utils/CheckpointManager.d.ts +100 -0
  490. package/dist/packages/core/src/utils/CheckpointManager.d.ts.map +1 -0
  491. package/dist/packages/core/src/utils/CheckpointManager.js +255 -0
  492. package/dist/packages/core/src/utils/CheckpointManager.js.map +1 -0
  493. package/dist/packages/core/src/utils/Logger.d.ts +29 -0
  494. package/dist/packages/core/src/utils/Logger.d.ts.map +1 -0
  495. package/dist/packages/core/src/utils/Logger.js +77 -0
  496. package/dist/packages/core/src/utils/Logger.js.map +1 -0
  497. package/dist/packages/core/src/utils/RetryManager.d.ts +125 -0
  498. package/dist/packages/core/src/utils/RetryManager.d.ts.map +1 -0
  499. package/dist/packages/core/src/utils/RetryManager.js +348 -0
  500. package/dist/packages/core/src/utils/RetryManager.js.map +1 -0
  501. package/dist/packages/core/src/utils/TokenCounter.d.ts +73 -0
  502. package/dist/packages/core/src/utils/TokenCounter.d.ts.map +1 -0
  503. package/dist/packages/core/src/utils/TokenCounter.js +338 -0
  504. package/dist/packages/core/src/utils/TokenCounter.js.map +1 -0
  505. package/dist/packages/core/src/utils/VectorMemoryStore.d.ts +110 -0
  506. package/dist/packages/core/src/utils/VectorMemoryStore.d.ts.map +1 -0
  507. package/dist/packages/core/src/utils/VectorMemoryStore.js +320 -0
  508. package/dist/packages/core/src/utils/VectorMemoryStore.js.map +1 -0
  509. package/dist/packages/core/src/utils/helpers.d.ts +24 -0
  510. package/dist/packages/core/src/utils/helpers.d.ts.map +1 -0
  511. package/dist/packages/core/src/utils/helpers.js +77 -0
  512. package/dist/packages/core/src/utils/helpers.js.map +1 -0
  513. package/dist/packages/core/src/utils/index.d.ts +11 -0
  514. package/dist/packages/core/src/utils/index.d.ts.map +1 -0
  515. package/dist/packages/core/src/utils/index.js +7 -0
  516. package/dist/packages/core/src/utils/index.js.map +1 -0
  517. package/dist/startup/IFlowRepl.d.ts +50 -0
  518. package/dist/startup/IFlowRepl.d.ts.map +1 -0
  519. package/dist/startup/IFlowRepl.js +178 -0
  520. package/dist/startup/IFlowRepl.js.map +1 -0
  521. package/dist/startup/InkBasedRepl.d.ts +151 -0
  522. package/dist/startup/InkBasedRepl.d.ts.map +1 -0
  523. package/dist/startup/InkBasedRepl.js +1415 -0
  524. package/dist/startup/InkBasedRepl.js.map +1 -0
  525. package/dist/startup/InteractiveRepl.d.ts +141 -0
  526. package/dist/startup/InteractiveRepl.d.ts.map +1 -0
  527. package/dist/startup/InteractiveRepl.js +2561 -0
  528. package/dist/startup/InteractiveRepl.js.map +1 -0
  529. package/dist/startup/NovaApp.d.ts +57 -0
  530. package/dist/startup/NovaApp.d.ts.map +1 -0
  531. package/dist/startup/NovaApp.js +1978 -0
  532. package/dist/startup/NovaApp.js.map +1 -0
  533. package/dist/startup/index.d.ts +5 -0
  534. package/dist/startup/index.d.ts.map +1 -0
  535. package/dist/startup/index.js +4 -0
  536. package/dist/startup/index.js.map +1 -0
  537. package/dist/startup/parseArgs.d.ts +47 -0
  538. package/dist/startup/parseArgs.d.ts.map +1 -0
  539. package/dist/startup/parseArgs.js +262 -0
  540. package/dist/startup/parseArgs.js.map +1 -0
  541. package/dist/ui/IFlowDropdown.d.ts +63 -0
  542. package/dist/ui/IFlowDropdown.d.ts.map +1 -0
  543. package/dist/ui/IFlowDropdown.js +362 -0
  544. package/dist/ui/IFlowDropdown.js.map +1 -0
  545. package/dist/ui/ModernReplUI.d.ts +55 -0
  546. package/dist/ui/ModernReplUI.d.ts.map +1 -0
  547. package/dist/ui/ModernReplUI.js +207 -0
  548. package/dist/ui/ModernReplUI.js.map +1 -0
  549. package/dist/ui/SimpleSelector2.d.ts +28 -0
  550. package/dist/ui/SimpleSelector2.d.ts.map +1 -0
  551. package/dist/ui/SimpleSelector2.js +181 -0
  552. package/dist/ui/SimpleSelector2.js.map +1 -0
  553. package/dist/ui/components/ActiveCursor.d.ts +128 -0
  554. package/dist/ui/components/ActiveCursor.d.ts.map +1 -0
  555. package/dist/ui/components/ActiveCursor.js +273 -0
  556. package/dist/ui/components/ActiveCursor.js.map +1 -0
  557. package/dist/ui/components/ConfirmDialog.d.ts +51 -0
  558. package/dist/ui/components/ConfirmDialog.d.ts.map +1 -0
  559. package/dist/ui/components/ConfirmDialog.js +147 -0
  560. package/dist/ui/components/ConfirmDialog.js.map +1 -0
  561. package/dist/ui/components/ErrorPanel.d.ts +33 -0
  562. package/dist/ui/components/ErrorPanel.d.ts.map +1 -0
  563. package/dist/ui/components/ErrorPanel.js +309 -0
  564. package/dist/ui/components/ErrorPanel.js.map +1 -0
  565. package/dist/ui/components/InkAppRunner.d.ts +18 -0
  566. package/dist/ui/components/InkAppRunner.d.ts.map +1 -0
  567. package/dist/ui/components/InkAppRunner.js +33 -0
  568. package/dist/ui/components/InkAppRunner.js.map +1 -0
  569. package/dist/ui/components/InkComponents.d.ts +126 -0
  570. package/dist/ui/components/InkComponents.d.ts.map +1 -0
  571. package/dist/ui/components/InkComponents.js +216 -0
  572. package/dist/ui/components/InkComponents.js.map +1 -0
  573. package/dist/ui/components/NovaInkApp.d.ts +11 -0
  574. package/dist/ui/components/NovaInkApp.d.ts.map +1 -0
  575. package/dist/ui/components/NovaInkApp.js +148 -0
  576. package/dist/ui/components/NovaInkApp.js.map +1 -0
  577. package/dist/ui/components/ProgressBar.d.ts +65 -0
  578. package/dist/ui/components/ProgressBar.d.ts.map +1 -0
  579. package/dist/ui/components/ProgressBar.js +135 -0
  580. package/dist/ui/components/ProgressBar.js.map +1 -0
  581. package/dist/ui/components/ProgressIndicator.d.ts +41 -0
  582. package/dist/ui/components/ProgressIndicator.d.ts.map +1 -0
  583. package/dist/ui/components/ProgressIndicator.js +235 -0
  584. package/dist/ui/components/ProgressIndicator.js.map +1 -0
  585. package/dist/ui/components/QuickActions.d.ts +36 -0
  586. package/dist/ui/components/QuickActions.d.ts.map +1 -0
  587. package/dist/ui/components/QuickActions.js +328 -0
  588. package/dist/ui/components/QuickActions.js.map +1 -0
  589. package/dist/ui/components/SimpleErrorPanel.d.ts +16 -0
  590. package/dist/ui/components/SimpleErrorPanel.d.ts.map +1 -0
  591. package/dist/ui/components/SimpleErrorPanel.js +193 -0
  592. package/dist/ui/components/SimpleErrorPanel.js.map +1 -0
  593. package/dist/ui/components/StatusBar.d.ts +30 -0
  594. package/dist/ui/components/StatusBar.d.ts.map +1 -0
  595. package/dist/ui/components/StatusBar.js +154 -0
  596. package/dist/ui/components/StatusBar.js.map +1 -0
  597. package/dist/ui/components/ThinkingBlockRenderer.d.ts +109 -0
  598. package/dist/ui/components/ThinkingBlockRenderer.d.ts.map +1 -0
  599. package/dist/ui/components/ThinkingBlockRenderer.js +335 -0
  600. package/dist/ui/components/ThinkingBlockRenderer.js.map +1 -0
  601. package/dist/ui/components/ThinkingContentDisplay.d.ts +59 -0
  602. package/dist/ui/components/ThinkingContentDisplay.d.ts.map +1 -0
  603. package/dist/ui/components/ThinkingContentDisplay.js +172 -0
  604. package/dist/ui/components/ThinkingContentDisplay.js.map +1 -0
  605. package/dist/ui/components/TodoProgressPanel.d.ts +91 -0
  606. package/dist/ui/components/TodoProgressPanel.d.ts.map +1 -0
  607. package/dist/ui/components/TodoProgressPanel.js +284 -0
  608. package/dist/ui/components/TodoProgressPanel.js.map +1 -0
  609. package/dist/ui/components/ToolCallStatusDisplay.d.ts +89 -0
  610. package/dist/ui/components/ToolCallStatusDisplay.d.ts.map +1 -0
  611. package/dist/ui/components/ToolCallStatusDisplay.js +246 -0
  612. package/dist/ui/components/ToolCallStatusDisplay.js.map +1 -0
  613. package/dist/ui/components/UserMessageHighlight.d.ts +48 -0
  614. package/dist/ui/components/UserMessageHighlight.d.ts.map +1 -0
  615. package/dist/ui/components/UserMessageHighlight.js +196 -0
  616. package/dist/ui/components/UserMessageHighlight.js.map +1 -0
  617. package/dist/ui/components/index.d.ts +17 -0
  618. package/dist/ui/components/index.d.ts.map +1 -0
  619. package/dist/ui/components/index.js +18 -0
  620. package/dist/ui/components/index.js.map +1 -0
  621. package/dist/ui/ink-prototype.d.ts +3 -0
  622. package/dist/ui/ink-prototype.d.ts.map +1 -0
  623. package/dist/ui/ink-prototype.js +160 -0
  624. package/dist/ui/ink-prototype.js.map +1 -0
  625. package/dist/utils/CliUI.d.ts +163 -0
  626. package/dist/utils/CliUI.d.ts.map +1 -0
  627. package/dist/utils/CliUI.js +292 -0
  628. package/dist/utils/CliUI.js.map +1 -0
  629. package/dist/utils/CompletionHelper.d.ts +112 -0
  630. package/dist/utils/CompletionHelper.d.ts.map +1 -0
  631. package/dist/utils/CompletionHelper.js +304 -0
  632. package/dist/utils/CompletionHelper.js.map +1 -0
  633. package/dist/utils/EnhancedCompleter.d.ts +107 -0
  634. package/dist/utils/EnhancedCompleter.d.ts.map +1 -0
  635. package/dist/utils/EnhancedCompleter.js +428 -0
  636. package/dist/utils/EnhancedCompleter.js.map +1 -0
  637. package/dist/utils/ErrorEnhancer.d.ts +103 -0
  638. package/dist/utils/ErrorEnhancer.d.ts.map +1 -0
  639. package/dist/utils/ErrorEnhancer.js +350 -0
  640. package/dist/utils/ErrorEnhancer.js.map +1 -0
  641. package/dist/utils/OutputFormatter.d.ts +65 -0
  642. package/dist/utils/OutputFormatter.d.ts.map +1 -0
  643. package/dist/utils/OutputFormatter.js +145 -0
  644. package/dist/utils/OutputFormatter.js.map +1 -0
  645. package/dist/utils/index.d.ts +5 -0
  646. package/dist/utils/index.d.ts.map +1 -0
  647. package/dist/utils/index.js +8 -0
  648. package/dist/utils/index.js.map +1 -0
  649. package/package.json +99 -0
@@ -0,0 +1,656 @@
1
+ // ============================================================================
2
+ // ProjectAnalyzer - 快速项目分析工具
3
+ // 用于生成准确的项目简介文档,帮助智能体快速理解项目结构
4
+ // ============================================================================
5
+ import { readdir, readFile, stat } from 'node:fs/promises';
6
+ import { join, relative, basename, extname } from 'node:path';
7
+ // --- ProjectAnalyzer ---
8
+ export class ProjectAnalyzer {
9
+ rootDir;
10
+ options;
11
+ cache = new Map();
12
+ constructor(rootDir, options = {}) {
13
+ this.rootDir = rootDir;
14
+ this.options = {
15
+ maxDepth: options.maxDepth ?? 5,
16
+ includeTests: options.includeTests ?? true,
17
+ includeNodeModules: options.includeNodeModules ?? false,
18
+ analyzeImports: options.analyzeImports ?? true,
19
+ };
20
+ }
21
+ /**
22
+ * 分析项目并生成结构化报告
23
+ */
24
+ async analyze() {
25
+ console.log(' Analyzing project...');
26
+ const structure = {
27
+ name: basename(this.rootDir),
28
+ rootDir: this.rootDir,
29
+ type: await this.detectProjectType(),
30
+ techStack: await this.detectTechStack(),
31
+ directories: await this.analyzeDirectories(),
32
+ keyFiles: await this.identifyKeyFiles(),
33
+ dependencies: await this.analyzeDependencies(),
34
+ codeMetrics: await this.calculateCodeMetrics(),
35
+ patterns: await this.detectPatterns(),
36
+ };
37
+ return structure;
38
+ }
39
+ /**
40
+ * 生成 Markdown 格式的项目文档
41
+ */
42
+ generateMarkdown(structure) {
43
+ let md = '';
44
+ // 标题
45
+ md += `# ${structure.name} - Project Analysis\n\n`;
46
+ // 项目概览
47
+ md += '## Project Overview\n\n';
48
+ md += `- **Type**: ${this.formatProjectType(structure.type)}\n`;
49
+ md += `- **Root Directory**: \`${structure.rootDir}\`\n`;
50
+ if (structure.description) {
51
+ md += `- **Description**: ${structure.description}\n`;
52
+ }
53
+ md += '\n';
54
+ // 技术栈
55
+ md += '## Tech Stack\n\n';
56
+ md += '### Languages\n';
57
+ structure.techStack.languages.forEach(lang => md += `- ${lang}\n`);
58
+ md += '\n';
59
+ if (structure.techStack.frameworks.length > 0) {
60
+ md += '### Frameworks\n';
61
+ structure.techStack.frameworks.forEach(fw => md += `- ${fw}\n`);
62
+ md += '\n';
63
+ }
64
+ if (structure.techStack.tools.length > 0) {
65
+ md += '### Tools\n';
66
+ structure.techStack.tools.forEach(tool => md += `- ${tool}\n`);
67
+ md += '\n';
68
+ }
69
+ if (structure.techStack.testing.length > 0) {
70
+ md += '### Testing\n';
71
+ structure.techStack.testing.forEach(test => md += `- ${test}\n`);
72
+ md += '\n';
73
+ }
74
+ if (structure.techStack.buildTools.length > 0) {
75
+ md += '### Build Tools\n';
76
+ structure.techStack.buildTools.forEach(bt => md += `- ${bt}\n`);
77
+ md += '\n';
78
+ }
79
+ // 目录结构
80
+ md += '## Directory Structure\n\n';
81
+ structure.directories.forEach(dir => {
82
+ md += `### ${dir.name}/\n`;
83
+ md += `- **Purpose**: ${dir.purpose}\n`;
84
+ md += `- **Files**: ${dir.fileCount}\n`;
85
+ if (dir.subdirs.length > 0) {
86
+ md += `- **Subdirectories**: ${dir.subdirs.map(s => `\`${s}\``).join(', ')}\n`;
87
+ }
88
+ md += '\n';
89
+ });
90
+ // 关键文件
91
+ md += '## Key Files\n\n';
92
+ structure.keyFiles.forEach(file => {
93
+ md += `### ${file.name}\n`;
94
+ md += `- **Path**: \`${relative(this.rootDir, file.path)}\`\n`;
95
+ md += `- **Type**: ${file.type}\n`;
96
+ md += `- **Size**: ${(file.size / 1024).toFixed(2)} KB\n`;
97
+ if (file.description) {
98
+ md += `- **Description**: ${file.description}\n`;
99
+ }
100
+ md += '\n';
101
+ });
102
+ // 依赖关系
103
+ md += '## Dependencies\n\n';
104
+ if (Object.keys(structure.dependencies.production).length > 0) {
105
+ md += '### Production Dependencies\n';
106
+ Object.entries(structure.dependencies.production).forEach(([name, version]) => {
107
+ md += `- \`${name}\`: ${version}\n`;
108
+ });
109
+ md += '\n';
110
+ }
111
+ if (Object.keys(structure.dependencies.development).length > 0) {
112
+ md += '### Development Dependencies\n';
113
+ Object.entries(structure.dependencies.development).slice(0, 10).forEach(([name, version]) => {
114
+ md += `- \`${name}\`: ${version}\n`;
115
+ });
116
+ if (Object.keys(structure.dependencies.development).length > 10) {
117
+ md += `- ... and ${Object.keys(structure.dependencies.development).length - 10} more\n`;
118
+ }
119
+ md += '\n';
120
+ }
121
+ // 代码统计
122
+ md += '## Code Metrics\n\n';
123
+ md += `- **Total Files**: ${structure.codeMetrics.totalFiles}\n`;
124
+ md += `- **Total Lines**: ${structure.codeMetrics.totalLines.toLocaleString()}\n`;
125
+ md += '\n';
126
+ md += '### Language Breakdown\n';
127
+ Object.entries(structure.codeMetrics.languageBreakdown)
128
+ .sort((a, b) => b[1].lines - a[1].lines)
129
+ .forEach(([lang, stats]) => {
130
+ const percentage = ((stats.lines / structure.codeMetrics.totalLines) * 100).toFixed(1);
131
+ md += `- ${lang}: ${stats.files} files, ${stats.lines.toLocaleString()} lines (${percentage}%)\n`;
132
+ });
133
+ md += '\n';
134
+ if (structure.codeMetrics.largestFiles.length > 0) {
135
+ md += '### Largest Files\n';
136
+ structure.codeMetrics.largestFiles.slice(0, 5).forEach(file => {
137
+ md += `- \`${relative(this.rootDir, file.path)}\`: ${file.lines.toLocaleString()} lines\n`;
138
+ });
139
+ md += '\n';
140
+ }
141
+ // 架构模式
142
+ if (structure.patterns.length > 0) {
143
+ md += '## Architecture Patterns\n\n';
144
+ structure.patterns.forEach(pattern => {
145
+ md += `### ${pattern.type}: ${pattern.pattern}\n`;
146
+ md += `- **Confidence**: ${(pattern.confidence * 100).toFixed(0)}%\n`;
147
+ if (pattern.evidence.length > 0) {
148
+ md += '- **Evidence**:\n';
149
+ pattern.evidence.slice(0, 3).forEach(ev => md += ` - ${ev}\n`);
150
+ }
151
+ md += '\n';
152
+ });
153
+ }
154
+ // 重构建议
155
+ md += '## Refactoring Suggestions\n\n';
156
+ md += this.generateRefactoringSuggestions(structure);
157
+ md += '\n';
158
+ return md;
159
+ }
160
+ // --- Private Methods ---
161
+ async detectProjectType() {
162
+ const hasFile = async (path) => {
163
+ try {
164
+ await stat(join(this.rootDir, path));
165
+ return true;
166
+ }
167
+ catch {
168
+ return false;
169
+ }
170
+ };
171
+ const hasDir = async (path) => {
172
+ try {
173
+ const s = await stat(join(this.rootDir, path));
174
+ return s.isDirectory();
175
+ }
176
+ catch {
177
+ return false;
178
+ }
179
+ };
180
+ // Check for monorepo
181
+ if (await hasFile('pnpm-workspace.yaml') || await hasFile('lerna.json') || await hasFile('turbo.json')) {
182
+ return 'monorepo';
183
+ }
184
+ // Check for frontend
185
+ if (await hasFile('package.json')) {
186
+ const pkg = await this.readPackageJson();
187
+ const deps = { ...pkg.dependencies, ...pkg.devDependencies };
188
+ if (deps['react'] || deps['vue'] || deps['angular'] || deps['svelte']) {
189
+ if (deps['next'] || deps['nuxt'])
190
+ return 'fullstack';
191
+ if (deps['express'] || deps['koa'] || deps['fastify'])
192
+ return 'fullstack';
193
+ return 'frontend';
194
+ }
195
+ if (deps['electron'])
196
+ return 'desktop';
197
+ if (deps['react-native'] || deps['expo'])
198
+ return 'mobile';
199
+ if (deps['express'] || deps['koa'] || deps['fastify'] || deps['nest'])
200
+ return 'backend';
201
+ }
202
+ // Check for CLI tools
203
+ if (await hasFile('bin') || await hasFile('cli')) {
204
+ return 'cli';
205
+ }
206
+ // Check for library
207
+ if (await hasFile('package.json')) {
208
+ const pkg = await this.readPackageJson();
209
+ if (pkg.type === 'module' || pkg.main || pkg.exports) {
210
+ return 'library';
211
+ }
212
+ }
213
+ return 'unknown';
214
+ }
215
+ async detectTechStack() {
216
+ const stack = {
217
+ languages: [],
218
+ frameworks: [],
219
+ tools: [],
220
+ testing: [],
221
+ buildTools: [],
222
+ };
223
+ try {
224
+ const pkg = await this.readPackageJson();
225
+ const deps = { ...pkg.dependencies, ...pkg.devDependencies };
226
+ // Detect languages from file extensions
227
+ const files = await this.scanFiles('', 3);
228
+ const extensions = new Set(files.map(f => extname(f).toLowerCase()));
229
+ if (extensions.has('.ts') || extensions.has('.tsx'))
230
+ stack.languages.push('TypeScript');
231
+ if (extensions.has('.js') || extensions.has('.jsx'))
232
+ stack.languages.push('JavaScript');
233
+ if (extensions.has('.py'))
234
+ stack.languages.push('Python');
235
+ if (extensions.has('.java'))
236
+ stack.languages.push('Java');
237
+ if (extensions.has('.go'))
238
+ stack.languages.push('Go');
239
+ if (extensions.has('.rs'))
240
+ stack.languages.push('Rust');
241
+ // Detect frameworks
242
+ if (deps['react'])
243
+ stack.frameworks.push('React');
244
+ if (deps['vue'])
245
+ stack.frameworks.push('Vue');
246
+ if (deps['angular'])
247
+ stack.frameworks.push('Angular');
248
+ if (deps['svelte'])
249
+ stack.frameworks.push('Svelte');
250
+ if (deps['next'])
251
+ stack.frameworks.push('Next.js');
252
+ if (deps['nuxt'])
253
+ stack.frameworks.push('Nuxt');
254
+ if (deps['express'])
255
+ stack.frameworks.push('Express');
256
+ if (deps['nest'])
257
+ stack.frameworks.push('NestJS');
258
+ if (deps['koa'])
259
+ stack.frameworks.push('Koa');
260
+ if (deps['fastify'])
261
+ stack.frameworks.push('Fastify');
262
+ // Detect tools
263
+ if (deps['webpack'])
264
+ stack.tools.push('Webpack');
265
+ if (deps['vite'])
266
+ stack.tools.push('Vite');
267
+ if (deps['rollup'])
268
+ stack.tools.push('Rollup');
269
+ if (deps['esbuild'])
270
+ stack.tools.push('esbuild');
271
+ if (deps['typescript'])
272
+ stack.tools.push('TypeScript');
273
+ if (deps['eslint'])
274
+ stack.tools.push('ESLint');
275
+ if (deps['prettier'])
276
+ stack.tools.push('Prettier');
277
+ if (deps['babel'])
278
+ stack.tools.push('Babel');
279
+ // Detect testing
280
+ if (deps['jest'] || deps['@jest/globals'])
281
+ stack.testing.push('Jest');
282
+ if (deps['vitest'])
283
+ stack.testing.push('Vitest');
284
+ if (deps['mocha'])
285
+ stack.testing.push('Mocha');
286
+ if (deps['cypress'])
287
+ stack.testing.push('Cypress');
288
+ if (deps['playwright'])
289
+ stack.testing.push('Playwright');
290
+ if (deps['@testing-library/react'])
291
+ stack.testing.push('Testing Library');
292
+ // Detect build tools
293
+ if (await this.hasFile('webpack.config.js'))
294
+ stack.buildTools.push('Webpack');
295
+ if (await this.hasFile('vite.config.js') || await this.hasFile('vite.config.ts'))
296
+ stack.buildTools.push('Vite');
297
+ if (await this.hasFile('rollup.config.js'))
298
+ stack.buildTools.push('Rollup');
299
+ if (await this.hasFile('tsconfig.json'))
300
+ stack.buildTools.push('TypeScript');
301
+ if (await this.hasFile('babel.config.js'))
302
+ stack.buildTools.push('Babel');
303
+ if (await this.hasFile('.eslintrc.js') || await this.hasFile('.eslintrc.json'))
304
+ stack.buildTools.push('ESLint');
305
+ }
306
+ catch {
307
+ // No package.json found
308
+ }
309
+ return stack;
310
+ }
311
+ async analyzeDirectories() {
312
+ const dirs = [];
313
+ try {
314
+ const entries = await readdir(this.rootDir, { withFileTypes: true });
315
+ for (const entry of entries) {
316
+ if (!entry.isDirectory())
317
+ continue;
318
+ if (entry.name === 'node_modules' && !this.options.includeNodeModules)
319
+ continue;
320
+ if (entry.name.startsWith('.'))
321
+ continue;
322
+ const dirPath = join(this.rootDir, entry.name);
323
+ const stats = await this.analyzeDirectory(dirPath, entry.name);
324
+ dirs.push(stats);
325
+ }
326
+ }
327
+ catch {
328
+ // Error reading root directory
329
+ }
330
+ return dirs.sort((a, b) => b.fileCount - a.fileCount);
331
+ }
332
+ async analyzeDirectory(dirPath, name) {
333
+ const info = {
334
+ path: dirPath,
335
+ name,
336
+ fileCount: 0,
337
+ subdirs: [],
338
+ purpose: this.inferDirectoryPurpose(name),
339
+ };
340
+ try {
341
+ const entries = await readdir(dirPath, { withFileTypes: true });
342
+ for (const entry of entries) {
343
+ if (entry.isDirectory()) {
344
+ info.subdirs.push(entry.name);
345
+ }
346
+ else {
347
+ info.fileCount++;
348
+ }
349
+ }
350
+ }
351
+ catch {
352
+ // Error reading directory
353
+ }
354
+ return info;
355
+ }
356
+ inferDirectoryPurpose(name) {
357
+ const purposes = {
358
+ src: 'Source code directory',
359
+ lib: 'Library/build output',
360
+ dist: 'Distribution/build output',
361
+ build: 'Build output',
362
+ test: 'Test files',
363
+ tests: 'Test files',
364
+ spec: 'Test specifications',
365
+ __tests__: 'Test files',
366
+ docs: 'Documentation',
367
+ examples: 'Example files',
368
+ public: 'Public assets',
369
+ assets: 'Static assets',
370
+ styles: 'Style files',
371
+ components: 'React/Vue components',
372
+ hooks: 'React hooks',
373
+ utils: 'Utility functions',
374
+ helpers: 'Helper functions',
375
+ services: 'API/services layer',
376
+ api: 'API definitions',
377
+ types: 'TypeScript type definitions',
378
+ interfaces: 'TypeScript interfaces',
379
+ config: 'Configuration files',
380
+ scripts: 'Build and utility scripts',
381
+ bin: 'Executable binaries',
382
+ tools: 'Development tools',
383
+ middleware: 'Express middleware',
384
+ routes: 'Route definitions',
385
+ controllers: 'MVC controllers',
386
+ models: 'Data models',
387
+ store: 'State management',
388
+ state: 'State management',
389
+ contexts: 'React contexts',
390
+ reducers: 'Redux reducers',
391
+ actions: 'Redux actions',
392
+ effects: 'Side effects',
393
+ selectors: 'State selectors',
394
+ };
395
+ return purposes[name] || 'Directory';
396
+ }
397
+ async identifyKeyFiles() {
398
+ const keyFiles = [];
399
+ const keyFilePaths = [
400
+ { path: 'package.json', type: 'config', description: 'Node.js package configuration' },
401
+ { path: 'tsconfig.json', type: 'config', description: 'TypeScript configuration' },
402
+ { path: 'README.md', type: 'readme', description: 'Project documentation' },
403
+ { path: 'LICENSE', type: 'documentation', description: 'License information' },
404
+ { path: '.gitignore', type: 'config', description: 'Git ignore rules' },
405
+ { path: '.eslintrc.js', type: 'config', description: 'ESLint configuration' },
406
+ { path: '.prettierrc', type: 'config', description: 'Prettier configuration' },
407
+ { path: 'vite.config.js', type: 'config', description: 'Vite build configuration' },
408
+ { path: 'webpack.config.js', type: 'config', description: 'Webpack build configuration' },
409
+ { path: 'jest.config.js', type: 'config', description: 'Jest test configuration' },
410
+ { path: 'vitest.config.ts', type: 'config', description: 'Vitest test configuration' },
411
+ { path: 'src/index.ts', type: 'entry', description: 'Main entry point' },
412
+ { path: 'src/index.js', type: 'entry', description: 'Main entry point' },
413
+ { path: 'src/main.ts', type: 'entry', description: 'Main application file' },
414
+ { path: 'src/main.js', type: 'entry', description: 'Main application file' },
415
+ { path: 'src/App.tsx', type: 'entry', description: 'React root component' },
416
+ { path: 'src/App.jsx', type: 'entry', description: 'React root component' },
417
+ ];
418
+ for (const keyFile of keyFilePaths) {
419
+ try {
420
+ const filePath = join(this.rootDir, keyFile.path);
421
+ const stats = await stat(filePath);
422
+ keyFiles.push({
423
+ path: filePath,
424
+ name: basename(filePath),
425
+ type: keyFile.type,
426
+ description: keyFile.description,
427
+ size: stats.size,
428
+ });
429
+ }
430
+ catch {
431
+ // File doesn't exist
432
+ }
433
+ }
434
+ return keyFiles;
435
+ }
436
+ async analyzeDependencies() {
437
+ const deps = {
438
+ production: {},
439
+ development: {},
440
+ peer: {},
441
+ internal: [],
442
+ };
443
+ try {
444
+ const pkg = await this.readPackageJson();
445
+ if (pkg.dependencies) {
446
+ deps.production = pkg.dependencies;
447
+ }
448
+ if (pkg.devDependencies) {
449
+ deps.development = pkg.devDependencies;
450
+ }
451
+ if (pkg.peerDependencies) {
452
+ deps.peer = pkg.peerDependencies;
453
+ }
454
+ // Detect internal dependencies (monorepo workspaces)
455
+ if (pkg.workspaces || pkg.private) {
456
+ deps.internal = this.detectInternalDependencies();
457
+ }
458
+ }
459
+ catch {
460
+ // No package.json
461
+ }
462
+ return deps;
463
+ }
464
+ detectInternalDependencies() {
465
+ // This is a simplified version - real implementation would scan for workspace packages
466
+ return [];
467
+ }
468
+ async calculateCodeMetrics() {
469
+ const metrics = {
470
+ totalFiles: 0,
471
+ totalLines: 0,
472
+ languageBreakdown: {},
473
+ largestFiles: [],
474
+ };
475
+ try {
476
+ const files = await this.scanFiles('', this.options.maxDepth);
477
+ for (const file of files) {
478
+ const ext = extname(file).toLowerCase();
479
+ if (!['.js', '.jsx', '.ts', '.tsx', '.py', '.java', '.go', '.rs', '.c', '.cpp', '.h', '.hpp'].includes(ext)) {
480
+ continue;
481
+ }
482
+ try {
483
+ const content = await readFile(join(this.rootDir, file), 'utf-8');
484
+ const lines = content.split('\n').length;
485
+ metrics.totalFiles++;
486
+ metrics.totalLines += lines;
487
+ const lang = this.getLanguageFromExtension(ext);
488
+ if (!metrics.languageBreakdown[lang]) {
489
+ metrics.languageBreakdown[lang] = { files: 0, lines: 0 };
490
+ }
491
+ metrics.languageBreakdown[lang].files++;
492
+ metrics.languageBreakdown[lang].lines += lines;
493
+ metrics.largestFiles.push({ path: join(this.rootDir, file), lines });
494
+ }
495
+ catch {
496
+ // Error reading file
497
+ }
498
+ }
499
+ // Sort largest files
500
+ metrics.largestFiles.sort((a, b) => b.lines - a.lines);
501
+ metrics.largestFiles = metrics.largestFiles.slice(0, 10);
502
+ }
503
+ catch {
504
+ // Error scanning files
505
+ }
506
+ return metrics;
507
+ }
508
+ async detectPatterns() {
509
+ const patterns = [];
510
+ try {
511
+ const files = await this.scanFiles('', this.options.maxDepth);
512
+ // Detect React patterns
513
+ if (files.some(f => f.endsWith('.tsx') || f.endsWith('.jsx'))) {
514
+ patterns.push({
515
+ type: 'architecture',
516
+ pattern: 'Component-based architecture',
517
+ confidence: 0.9,
518
+ evidence: ['Found .tsx/.jsx files'],
519
+ });
520
+ }
521
+ // Detect Redux
522
+ if (files.some(f => f.includes('redux') || f.includes('store'))) {
523
+ patterns.push({
524
+ type: 'state-management',
525
+ pattern: 'Redux state management',
526
+ confidence: 0.8,
527
+ evidence: ['Found Redux-related files'],
528
+ });
529
+ }
530
+ // Detect API patterns
531
+ if (files.some(f => f.includes('api') || f.includes('service'))) {
532
+ patterns.push({
533
+ type: 'api',
534
+ pattern: 'Service layer pattern',
535
+ confidence: 0.7,
536
+ evidence: ['Found API/service files'],
537
+ });
538
+ }
539
+ // Detect testing patterns
540
+ if (files.some(f => f.includes('.test.') || f.includes('.spec.'))) {
541
+ patterns.push({
542
+ type: 'testing',
543
+ pattern: 'Unit testing',
544
+ confidence: 0.9,
545
+ evidence: ['Found test files'],
546
+ });
547
+ }
548
+ }
549
+ catch {
550
+ // Error detecting patterns
551
+ }
552
+ return patterns;
553
+ }
554
+ generateRefactoringSuggestions(structure) {
555
+ const suggestions = [];
556
+ // Check for large files
557
+ if (structure.codeMetrics.largestFiles.length > 0) {
558
+ const largest = structure.codeMetrics.largestFiles[0];
559
+ if (largest.lines > 500) {
560
+ suggestions.push(`- Consider splitting \`${relative(this.rootDir, largest.path)}\` (${largest.lines} lines) into smaller modules`);
561
+ }
562
+ }
563
+ // Check for testing
564
+ if (structure.techStack.testing.length === 0) {
565
+ suggestions.push('- Consider adding a testing framework (Jest, Vitest, etc.)');
566
+ }
567
+ // Check for linting
568
+ if (!structure.techStack.tools.includes('ESLint')) {
569
+ suggestions.push('- Consider adding ESLint for code quality');
570
+ }
571
+ // Check for TypeScript
572
+ if (!structure.techStack.languages.includes('TypeScript') && structure.techStack.languages.includes('JavaScript')) {
573
+ suggestions.push('- Consider migrating to TypeScript for better type safety');
574
+ }
575
+ if (suggestions.length === 0) {
576
+ return 'No immediate refactoring suggestions detected.';
577
+ }
578
+ return suggestions.join('\n');
579
+ }
580
+ // --- Helper Methods ---
581
+ async hasFile(path) {
582
+ try {
583
+ await stat(join(this.rootDir, path));
584
+ return true;
585
+ }
586
+ catch {
587
+ return false;
588
+ }
589
+ }
590
+ async readPackageJson() {
591
+ const content = await readFile(join(this.rootDir, 'package.json'), 'utf-8');
592
+ return JSON.parse(content);
593
+ }
594
+ async scanFiles(dir, maxDepth) {
595
+ const files = [];
596
+ if (maxDepth < 0)
597
+ return files;
598
+ try {
599
+ const dirPath = dir ? join(this.rootDir, dir) : this.rootDir;
600
+ const entries = await readdir(dirPath, { withFileTypes: true });
601
+ for (const entry of entries) {
602
+ if (entry.isDirectory()) {
603
+ if (entry.name === 'node_modules' && !this.options.includeNodeModules)
604
+ continue;
605
+ if (entry.name.startsWith('.'))
606
+ continue;
607
+ if (entry.name === 'dist' || entry.name === 'build' || entry.name === 'out')
608
+ continue;
609
+ const subPath = dir ? join(dir, entry.name) : entry.name;
610
+ const subFiles = await this.scanFiles(subPath, maxDepth - 1);
611
+ files.push(...subFiles);
612
+ }
613
+ else {
614
+ const filePath = dir ? join(dir, entry.name) : entry.name;
615
+ files.push(filePath);
616
+ }
617
+ }
618
+ }
619
+ catch {
620
+ // Error reading directory
621
+ }
622
+ return files;
623
+ }
624
+ getLanguageFromExtension(ext) {
625
+ const langMap = {
626
+ '.js': 'JavaScript',
627
+ '.jsx': 'JavaScript (React)',
628
+ '.ts': 'TypeScript',
629
+ '.tsx': 'TypeScript (React)',
630
+ '.py': 'Python',
631
+ '.java': 'Java',
632
+ '.go': 'Go',
633
+ '.rs': 'Rust',
634
+ '.c': 'C',
635
+ '.cpp': 'C++',
636
+ '.h': 'C/C++ Header',
637
+ '.hpp': 'C++ Header',
638
+ };
639
+ return langMap[ext] || ext.substring(1);
640
+ }
641
+ formatProjectType(type) {
642
+ const typeNames = {
643
+ unknown: 'Unknown',
644
+ frontend: 'Frontend Application',
645
+ backend: 'Backend Application',
646
+ fullstack: 'Full Stack Application',
647
+ mobile: 'Mobile Application',
648
+ desktop: 'Desktop Application',
649
+ library: 'Library/Package',
650
+ cli: 'CLI Tool',
651
+ monorepo: 'Monorepo',
652
+ };
653
+ return typeNames[type];
654
+ }
655
+ }
656
+ //# sourceMappingURL=ProjectAnalyzer.js.map