centaurus-cli 3.0.0 → 3.1.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 (552) hide show
  1. package/dist/ai/types.js +0 -1
  2. package/dist/ai/types.js.map +1 -1
  3. package/dist/cli-adapter.js +5047 -5037
  4. package/dist/cli-adapter.js.map +1 -1
  5. package/dist/commands/CommandParser.js +372 -315
  6. package/dist/commands/CommandParser.js.map +1 -1
  7. package/dist/config/build-config.js +11 -42
  8. package/dist/config/build-config.js.map +1 -1
  9. package/dist/config/defaultConfig.js +94 -82
  10. package/dist/config/defaultConfig.js.map +1 -1
  11. package/dist/config/manager.js +144 -160
  12. package/dist/config/manager.js.map +1 -1
  13. package/dist/config/mcp-config-manager.js +411 -364
  14. package/dist/config/mcp-config-manager.js.map +1 -1
  15. package/dist/config/models.js +118 -185
  16. package/dist/config/models.js.map +1 -1
  17. package/dist/config/slash-commands.js +186 -184
  18. package/dist/config/slash-commands.js.map +1 -1
  19. package/dist/config/types.js +33 -26
  20. package/dist/config/types.js.map +1 -1
  21. package/dist/context/command-detector.js +63 -67
  22. package/dist/context/command-detector.js.map +1 -1
  23. package/dist/context/context-manager.js +533 -518
  24. package/dist/context/context-manager.js.map +1 -1
  25. package/dist/context/handlers/docker-handler.js +518 -576
  26. package/dist/context/handlers/docker-handler.js.map +1 -1
  27. package/dist/context/handlers/ssh-handler.js +1050 -1109
  28. package/dist/context/handlers/ssh-handler.js.map +1 -1
  29. package/dist/context/handlers/wsl-handler.js +558 -630
  30. package/dist/context/handlers/wsl-handler.js.map +1 -1
  31. package/dist/context/index.js +42 -6
  32. package/dist/context/index.js.map +1 -1
  33. package/dist/context/subshell-handler.js +0 -4
  34. package/dist/context/subshell-handler.js.map +1 -1
  35. package/dist/context/types.js +20 -31
  36. package/dist/context/types.js.map +1 -1
  37. package/dist/hooks/useConnectivity.js +13 -10
  38. package/dist/hooks/useConnectivity.js.map +1 -1
  39. package/dist/hooks/useTerminalDimensions.js +67 -79
  40. package/dist/hooks/useTerminalDimensions.js.map +1 -1
  41. package/dist/index.js +228 -251
  42. package/dist/index.js.map +1 -1
  43. package/dist/mcp/mcp-command-handler.js +297 -260
  44. package/dist/mcp/mcp-command-handler.js.map +1 -1
  45. package/dist/mcp/mcp-server-manager.js +139 -155
  46. package/dist/mcp/mcp-server-manager.js.map +1 -1
  47. package/dist/mcp/mcp-tool-wrapper.js +74 -94
  48. package/dist/mcp/mcp-tool-wrapper.js.map +1 -1
  49. package/dist/services/ai-autocomplete-agent.js +169 -181
  50. package/dist/services/ai-autocomplete-agent.js.map +1 -1
  51. package/dist/services/ai-context-injector.js +180 -93
  52. package/dist/services/ai-context-injector.js.map +1 -1
  53. package/dist/services/ai-service-client.js +513 -456
  54. package/dist/services/ai-service-client.js.map +1 -1
  55. package/dist/services/api-client.js +443 -441
  56. package/dist/services/api-client.js.map +1 -1
  57. package/dist/services/auth-handler.js +162 -198
  58. package/dist/services/auth-handler.js.map +1 -1
  59. package/dist/services/background-task-manager.js +258 -282
  60. package/dist/services/background-task-manager.js.map +1 -1
  61. package/dist/services/checkpoint-manager.js +1513 -973
  62. package/dist/services/checkpoint-manager.js.map +1 -1
  63. package/dist/services/clipboard-service.js +151 -200
  64. package/dist/services/clipboard-service.js.map +1 -1
  65. package/dist/services/connectivity-manager.js +63 -65
  66. package/dist/services/connectivity-manager.js.map +1 -1
  67. package/dist/services/conversation-manager.js +118 -121
  68. package/dist/services/conversation-manager.js.map +1 -1
  69. package/dist/services/environment-context-injector.js +160 -187
  70. package/dist/services/environment-context-injector.js.map +1 -1
  71. package/dist/services/fast-context-agent.js +203 -243
  72. package/dist/services/fast-context-agent.js.map +1 -1
  73. package/dist/services/input-detection-agent.js +190 -202
  74. package/dist/services/input-detection-agent.js.map +1 -1
  75. package/dist/services/input-requirement-detector.js +155 -189
  76. package/dist/services/input-requirement-detector.js.map +1 -1
  77. package/dist/services/local-chat-storage.js +342 -365
  78. package/dist/services/local-chat-storage.js.map +1 -1
  79. package/dist/services/monitored-shell-manager.js +225 -233
  80. package/dist/services/monitored-shell-manager.js.map +1 -1
  81. package/dist/services/ollama-service.js +293 -310
  82. package/dist/services/ollama-service.js.map +1 -1
  83. package/dist/services/rules-storage.js +142 -0
  84. package/dist/services/rules-storage.js.map +1 -0
  85. package/dist/services/session-quota-manager.js +219 -235
  86. package/dist/services/session-quota-manager.js.map +1 -1
  87. package/dist/services/shell-input-agent.js +299 -334
  88. package/dist/services/shell-input-agent.js.map +1 -1
  89. package/dist/services/sub-agent-manager.js +459 -501
  90. package/dist/services/sub-agent-manager.js.map +1 -1
  91. package/dist/services/warpify-detector.js +133 -183
  92. package/dist/services/warpify-detector.js.map +1 -1
  93. package/dist/services/workflow-storage.js +202 -217
  94. package/dist/services/workflow-storage.js.map +1 -1
  95. package/dist/test-ssh-handler.js +148 -193
  96. package/dist/test-ssh-handler.js.map +1 -1
  97. package/dist/tools/add-mcp.js +161 -0
  98. package/dist/tools/add-mcp.js.map +1 -0
  99. package/dist/tools/background-command.js +240 -273
  100. package/dist/tools/background-command.js.map +1 -1
  101. package/dist/tools/command.js +447 -440
  102. package/dist/tools/command.js.map +1 -1
  103. package/dist/tools/create-image.js +172 -202
  104. package/dist/tools/create-image.js.map +1 -1
  105. package/dist/tools/enter-remote-session.js +169 -215
  106. package/dist/tools/enter-remote-session.js.map +1 -1
  107. package/dist/tools/fast-context.js +60 -67
  108. package/dist/tools/fast-context.js.map +1 -1
  109. package/dist/tools/file-ops.js +605 -537
  110. package/dist/tools/file-ops.js.map +1 -1
  111. package/dist/tools/find-files.js +262 -303
  112. package/dist/tools/find-files.js.map +1 -1
  113. package/dist/tools/get-diff.js +423 -400
  114. package/dist/tools/get-diff.js.map +1 -1
  115. package/dist/tools/grep-search.js +966 -948
  116. package/dist/tools/grep-search.js.map +1 -1
  117. package/dist/tools/inspect-symbol.js +308 -323
  118. package/dist/tools/inspect-symbol.js.map +1 -1
  119. package/dist/tools/plan-mode.js +459 -503
  120. package/dist/tools/plan-mode.js.map +1 -1
  121. package/dist/tools/read-binary-file.js +160 -190
  122. package/dist/tools/read-binary-file.js.map +1 -1
  123. package/dist/tools/registry.js +100 -84
  124. package/dist/tools/registry.js.map +1 -1
  125. package/dist/tools/reproduce_issue.js +170 -151
  126. package/dist/tools/reproduce_issue.js.map +1 -1
  127. package/dist/tools/sub-agent.js +223 -228
  128. package/dist/tools/sub-agent.js.map +1 -1
  129. package/dist/tools/task-complete.js +28 -27
  130. package/dist/tools/task-complete.js.map +1 -1
  131. package/dist/tools/types.js +0 -1
  132. package/dist/tools/types.js.map +1 -1
  133. package/dist/tools/validation.js +96 -118
  134. package/dist/tools/validation.js.map +1 -1
  135. package/dist/tools/web-search.js +194 -194
  136. package/dist/tools/web-search.js.map +1 -1
  137. package/dist/tools/workflow-tool.js +77 -82
  138. package/dist/tools/workflow-tool.js.map +1 -1
  139. package/dist/types/index.js +0 -1
  140. package/dist/types/index.js.map +1 -1
  141. package/dist/types/rule.js +1 -0
  142. package/dist/types/rule.js.map +1 -0
  143. package/dist/types/workflow.js +0 -7
  144. package/dist/types/workflow.js.map +1 -1
  145. package/dist/ui/components/AgentTimer.js +24 -25
  146. package/dist/ui/components/AgentTimer.js.map +1 -1
  147. package/dist/ui/components/App.js +3266 -3249
  148. package/dist/ui/components/App.js.map +1 -1
  149. package/dist/ui/components/AuthScreen.js +22 -34
  150. package/dist/ui/components/AuthScreen.js.map +1 -1
  151. package/dist/ui/components/AuthWelcomeScreen.js +30 -24
  152. package/dist/ui/components/AuthWelcomeScreen.js.map +1 -1
  153. package/dist/ui/components/Breadcrumbs.js +53 -82
  154. package/dist/ui/components/Breadcrumbs.js.map +1 -1
  155. package/dist/ui/components/CircularSelectInput.js +59 -67
  156. package/dist/ui/components/CircularSelectInput.js.map +1 -1
  157. package/dist/ui/components/ClipboardFileAutocomplete.js +78 -39
  158. package/dist/ui/components/ClipboardFileAutocomplete.js.map +1 -1
  159. package/dist/ui/components/CodeBlock.js +24 -42
  160. package/dist/ui/components/CodeBlock.js.map +1 -1
  161. package/dist/ui/components/ConfigViewer.js +18 -25
  162. package/dist/ui/components/ConfigViewer.js.map +1 -1
  163. package/dist/ui/components/ConfirmPrompt.js +49 -71
  164. package/dist/ui/components/ConfirmPrompt.js.map +1 -1
  165. package/dist/ui/components/ConnectionStatusMessage.js +32 -83
  166. package/dist/ui/components/ConnectionStatusMessage.js.map +1 -1
  167. package/dist/ui/components/ContextWindowIndicator.js +34 -49
  168. package/dist/ui/components/ContextWindowIndicator.js.map +1 -1
  169. package/dist/ui/components/DetailedPlanReviewScreen.js +104 -106
  170. package/dist/ui/components/DetailedPlanReviewScreen.js.map +1 -1
  171. package/dist/ui/components/DiffViewer.js +68 -121
  172. package/dist/ui/components/DiffViewer.js.map +1 -1
  173. package/dist/ui/components/ErrorBoundary.js +40 -48
  174. package/dist/ui/components/ErrorBoundary.js.map +1 -1
  175. package/dist/ui/components/FileCreationPreview.js +29 -60
  176. package/dist/ui/components/FileCreationPreview.js.map +1 -1
  177. package/dist/ui/components/FileOperation.js +34 -29
  178. package/dist/ui/components/FileOperation.js.map +1 -1
  179. package/dist/ui/components/FileTagAutocomplete.js +55 -25
  180. package/dist/ui/components/FileTagAutocomplete.js.map +1 -1
  181. package/dist/ui/components/FontRecommendation.js.map +1 -1
  182. package/dist/ui/components/GitDiffBreadcrumb.js +29 -0
  183. package/dist/ui/components/GitDiffBreadcrumb.js.map +1 -0
  184. package/dist/ui/components/InputBox.js +1620 -2150
  185. package/dist/ui/components/InputBox.js.map +1 -1
  186. package/dist/ui/components/InteractiveShell.js +234 -352
  187. package/dist/ui/components/InteractiveShell.js.map +1 -1
  188. package/dist/ui/components/KeyboardHelp.js +34 -35
  189. package/dist/ui/components/KeyboardHelp.js.map +1 -1
  190. package/dist/ui/components/LoadingIndicator.js +22 -25
  191. package/dist/ui/components/LoadingIndicator.js.map +1 -1
  192. package/dist/ui/components/MCPAddScreen.js +40 -51
  193. package/dist/ui/components/MCPAddScreen.js.map +1 -1
  194. package/dist/ui/components/MCPListScreen.js +40 -48
  195. package/dist/ui/components/MCPListScreen.js.map +1 -1
  196. package/dist/ui/components/MCPServerListScreen.js +49 -56
  197. package/dist/ui/components/MCPServerListScreen.js.map +1 -1
  198. package/dist/ui/components/MarkdownRenderer.js +69 -96
  199. package/dist/ui/components/MarkdownRenderer.js.map +1 -1
  200. package/dist/ui/components/MessageBox.js +66 -48
  201. package/dist/ui/components/MessageBox.js.map +1 -1
  202. package/dist/ui/components/MessageDisplay.js +150 -142
  203. package/dist/ui/components/MessageDisplay.js.map +1 -1
  204. package/dist/ui/components/MonitorModeAIPanel.js +46 -65
  205. package/dist/ui/components/MonitorModeAIPanel.js.map +1 -1
  206. package/dist/ui/components/MultiLineInput.js +243 -277
  207. package/dist/ui/components/MultiLineInput.js.map +1 -1
  208. package/dist/ui/components/PasswordPrompt.js +37 -18
  209. package/dist/ui/components/PasswordPrompt.js.map +1 -1
  210. package/dist/ui/components/PlanAcceptedMessage.js +27 -38
  211. package/dist/ui/components/PlanAcceptedMessage.js.map +1 -1
  212. package/dist/ui/components/PlanReviewScreen.js +46 -50
  213. package/dist/ui/components/PlanReviewScreen.js.map +1 -1
  214. package/dist/ui/components/RulesEditorScreen.js +81 -0
  215. package/dist/ui/components/RulesEditorScreen.js.map +1 -0
  216. package/dist/ui/components/SelectPrompt.js +19 -8
  217. package/dist/ui/components/SelectPrompt.js.map +1 -1
  218. package/dist/ui/components/ShimmerText.js +44 -0
  219. package/dist/ui/components/ShimmerText.js.map +1 -0
  220. package/dist/ui/components/SlashCommandAutocomplete.js +49 -22
  221. package/dist/ui/components/SlashCommandAutocomplete.js.map +1 -1
  222. package/dist/ui/components/StatusBar.js +56 -87
  223. package/dist/ui/components/StatusBar.js.map +1 -1
  224. package/dist/ui/components/StreamingMessageDisplay.js +116 -99
  225. package/dist/ui/components/StreamingMessageDisplay.js.map +1 -1
  226. package/dist/ui/components/TaskCompletedMessage.js +28 -23
  227. package/dist/ui/components/TaskCompletedMessage.js.map +1 -1
  228. package/dist/ui/components/TaskProgressIndicator.js +44 -70
  229. package/dist/ui/components/TaskProgressIndicator.js.map +1 -1
  230. package/dist/ui/components/ThinkingDisplay.js +44 -41
  231. package/dist/ui/components/ThinkingDisplay.js.map +1 -1
  232. package/dist/ui/components/ToolExecutionMessage.js +772 -1326
  233. package/dist/ui/components/ToolExecutionMessage.js.map +1 -1
  234. package/dist/ui/components/ToolExecutionStatus.js +53 -84
  235. package/dist/ui/components/ToolExecutionStatus.js.map +1 -1
  236. package/dist/ui/components/ToolResult.js +22 -15
  237. package/dist/ui/components/ToolResult.js.map +1 -1
  238. package/dist/ui/components/VersionUpdatePrompt.js +88 -120
  239. package/dist/ui/components/VersionUpdatePrompt.js.map +1 -1
  240. package/dist/ui/components/WelcomeBanner.js +176 -26
  241. package/dist/ui/components/WelcomeBanner.js.map +1 -1
  242. package/dist/ui/components/WorkflowCreatorScreen.js +94 -161
  243. package/dist/ui/components/WorkflowCreatorScreen.js.map +1 -1
  244. package/dist/utils/ansi-encoder.js +30 -61
  245. package/dist/utils/ansi-encoder.js.map +1 -1
  246. package/dist/utils/chat-formatter.js +327 -305
  247. package/dist/utils/chat-formatter.js.map +1 -1
  248. package/dist/utils/command-history.js +152 -174
  249. package/dist/utils/command-history.js.map +1 -1
  250. package/dist/utils/context-sanitizer.js +49 -112
  251. package/dist/utils/context-sanitizer.js.map +1 -1
  252. package/dist/utils/conversation-logger.js +292 -324
  253. package/dist/utils/conversation-logger.js.map +1 -1
  254. package/dist/utils/custom-commands-manager.js +126 -131
  255. package/dist/utils/custom-commands-manager.js.map +1 -1
  256. package/dist/utils/editor-utils.js +732 -837
  257. package/dist/utils/editor-utils.js.map +1 -1
  258. package/dist/utils/file.js +174 -213
  259. package/dist/utils/file.js.map +1 -1
  260. package/dist/utils/git-stats.js +169 -0
  261. package/dist/utils/git-stats.js.map +1 -0
  262. package/dist/utils/input-classifier.js +960 -482
  263. package/dist/utils/input-classifier.js.map +1 -1
  264. package/dist/utils/logger.js +48 -73
  265. package/dist/utils/logger.js.map +1 -1
  266. package/dist/utils/markdown-parser.js +277 -310
  267. package/dist/utils/markdown-parser.js.map +1 -1
  268. package/dist/utils/rule-reference-resolver.js +54 -0
  269. package/dist/utils/rule-reference-resolver.js.map +1 -0
  270. package/dist/utils/shell.js +144 -156
  271. package/dist/utils/shell.js.map +1 -1
  272. package/dist/utils/state.js +23 -22
  273. package/dist/utils/state.js.map +1 -1
  274. package/dist/utils/syntax-checker.js +279 -327
  275. package/dist/utils/syntax-checker.js.map +1 -1
  276. package/dist/utils/terminal-output.js +199 -302
  277. package/dist/utils/terminal-output.js.map +1 -1
  278. package/dist/utils/text-clipboard.js +47 -70
  279. package/dist/utils/text-clipboard.js.map +1 -1
  280. package/dist/utils/unicode-sanitizer.js +134 -197
  281. package/dist/utils/unicode-sanitizer.js.map +1 -1
  282. package/dist/utils/version-checker.js +46 -56
  283. package/dist/utils/version-checker.js.map +1 -1
  284. package/package.json +6 -4
  285. package/dist/ai/types.d.ts +0 -20
  286. package/dist/ai/types.d.ts.map +0 -1
  287. package/dist/cli-adapter.d.ts +0 -511
  288. package/dist/cli-adapter.d.ts.map +0 -1
  289. package/dist/commands/CommandParser.d.ts +0 -27
  290. package/dist/commands/CommandParser.d.ts.map +0 -1
  291. package/dist/config/build-config.d.ts +0 -42
  292. package/dist/config/build-config.d.ts.map +0 -1
  293. package/dist/config/defaultConfig.d.ts +0 -79
  294. package/dist/config/defaultConfig.d.ts.map +0 -1
  295. package/dist/config/manager.d.ts +0 -62
  296. package/dist/config/manager.d.ts.map +0 -1
  297. package/dist/config/mcp-config-manager.d.ts +0 -79
  298. package/dist/config/mcp-config-manager.d.ts.map +0 -1
  299. package/dist/config/models.d.ts +0 -83
  300. package/dist/config/models.d.ts.map +0 -1
  301. package/dist/config/slash-commands.d.ts +0 -23
  302. package/dist/config/slash-commands.d.ts.map +0 -1
  303. package/dist/config/types.d.ts +0 -35
  304. package/dist/config/types.d.ts.map +0 -1
  305. package/dist/context/command-detector.d.ts +0 -50
  306. package/dist/context/command-detector.d.ts.map +0 -1
  307. package/dist/context/context-manager.d.ts +0 -157
  308. package/dist/context/context-manager.d.ts.map +0 -1
  309. package/dist/context/handlers/docker-handler.d.ts +0 -130
  310. package/dist/context/handlers/docker-handler.d.ts.map +0 -1
  311. package/dist/context/handlers/ssh-handler.d.ts +0 -201
  312. package/dist/context/handlers/ssh-handler.d.ts.map +0 -1
  313. package/dist/context/handlers/wsl-handler.d.ts +0 -146
  314. package/dist/context/handlers/wsl-handler.d.ts.map +0 -1
  315. package/dist/context/index.d.ts +0 -8
  316. package/dist/context/index.d.ts.map +0 -1
  317. package/dist/context/subshell-handler.d.ts +0 -165
  318. package/dist/context/subshell-handler.d.ts.map +0 -1
  319. package/dist/context/types.d.ts +0 -70
  320. package/dist/context/types.d.ts.map +0 -1
  321. package/dist/hooks/useConnectivity.d.ts +0 -2
  322. package/dist/hooks/useConnectivity.d.ts.map +0 -1
  323. package/dist/hooks/useTerminalDimensions.d.ts +0 -41
  324. package/dist/hooks/useTerminalDimensions.d.ts.map +0 -1
  325. package/dist/index.d.ts +0 -9
  326. package/dist/index.d.ts.map +0 -1
  327. package/dist/mcp/mcp-command-handler.d.ts +0 -47
  328. package/dist/mcp/mcp-command-handler.d.ts.map +0 -1
  329. package/dist/mcp/mcp-server-manager.d.ts +0 -30
  330. package/dist/mcp/mcp-server-manager.d.ts.map +0 -1
  331. package/dist/mcp/mcp-tool-wrapper.d.ts +0 -12
  332. package/dist/mcp/mcp-tool-wrapper.d.ts.map +0 -1
  333. package/dist/services/ai-autocomplete-agent.d.ts +0 -39
  334. package/dist/services/ai-autocomplete-agent.d.ts.map +0 -1
  335. package/dist/services/ai-context-injector.d.ts +0 -41
  336. package/dist/services/ai-context-injector.d.ts.map +0 -1
  337. package/dist/services/ai-service-client.d.ts +0 -128
  338. package/dist/services/ai-service-client.d.ts.map +0 -1
  339. package/dist/services/api-client.d.ts +0 -353
  340. package/dist/services/api-client.d.ts.map +0 -1
  341. package/dist/services/auth-handler.d.ts +0 -30
  342. package/dist/services/auth-handler.d.ts.map +0 -1
  343. package/dist/services/background-task-manager.d.ts +0 -114
  344. package/dist/services/background-task-manager.d.ts.map +0 -1
  345. package/dist/services/checkpoint-manager.d.ts +0 -167
  346. package/dist/services/checkpoint-manager.d.ts.map +0 -1
  347. package/dist/services/clipboard-service.d.ts +0 -37
  348. package/dist/services/clipboard-service.d.ts.map +0 -1
  349. package/dist/services/connectivity-manager.d.ts +0 -18
  350. package/dist/services/connectivity-manager.d.ts.map +0 -1
  351. package/dist/services/conversation-manager.d.ts +0 -73
  352. package/dist/services/conversation-manager.d.ts.map +0 -1
  353. package/dist/services/environment-context-injector.d.ts +0 -69
  354. package/dist/services/environment-context-injector.d.ts.map +0 -1
  355. package/dist/services/fast-context-agent.d.ts +0 -12
  356. package/dist/services/fast-context-agent.d.ts.map +0 -1
  357. package/dist/services/input-detection-agent.d.ts +0 -40
  358. package/dist/services/input-detection-agent.d.ts.map +0 -1
  359. package/dist/services/input-requirement-detector.d.ts +0 -28
  360. package/dist/services/input-requirement-detector.d.ts.map +0 -1
  361. package/dist/services/local-chat-storage.d.ts +0 -182
  362. package/dist/services/local-chat-storage.d.ts.map +0 -1
  363. package/dist/services/monitored-shell-manager.d.ts +0 -120
  364. package/dist/services/monitored-shell-manager.d.ts.map +0 -1
  365. package/dist/services/ollama-service.d.ts +0 -197
  366. package/dist/services/ollama-service.d.ts.map +0 -1
  367. package/dist/services/session-quota-manager.d.ts +0 -101
  368. package/dist/services/session-quota-manager.d.ts.map +0 -1
  369. package/dist/services/shell-input-agent.d.ts +0 -89
  370. package/dist/services/shell-input-agent.d.ts.map +0 -1
  371. package/dist/services/sub-agent-manager.d.ts +0 -140
  372. package/dist/services/sub-agent-manager.d.ts.map +0 -1
  373. package/dist/services/warpify-detector.d.ts +0 -43
  374. package/dist/services/warpify-detector.d.ts.map +0 -1
  375. package/dist/services/workflow-storage.d.ts +0 -72
  376. package/dist/services/workflow-storage.d.ts.map +0 -1
  377. package/dist/test-ssh-handler.d.ts +0 -8
  378. package/dist/test-ssh-handler.d.ts.map +0 -1
  379. package/dist/tools/background-command.d.ts +0 -11
  380. package/dist/tools/background-command.d.ts.map +0 -1
  381. package/dist/tools/command.d.ts +0 -3
  382. package/dist/tools/command.d.ts.map +0 -1
  383. package/dist/tools/create-image.d.ts +0 -10
  384. package/dist/tools/create-image.d.ts.map +0 -1
  385. package/dist/tools/enter-remote-session.d.ts +0 -48
  386. package/dist/tools/enter-remote-session.d.ts.map +0 -1
  387. package/dist/tools/fast-context.d.ts +0 -3
  388. package/dist/tools/fast-context.d.ts.map +0 -1
  389. package/dist/tools/file-ops.d.ts +0 -7
  390. package/dist/tools/file-ops.d.ts.map +0 -1
  391. package/dist/tools/find-files.d.ts +0 -49
  392. package/dist/tools/find-files.d.ts.map +0 -1
  393. package/dist/tools/get-diff.d.ts +0 -14
  394. package/dist/tools/get-diff.d.ts.map +0 -1
  395. package/dist/tools/grep-search.d.ts +0 -155
  396. package/dist/tools/grep-search.d.ts.map +0 -1
  397. package/dist/tools/inspect-symbol.d.ts +0 -32
  398. package/dist/tools/inspect-symbol.d.ts.map +0 -1
  399. package/dist/tools/plan-mode.d.ts +0 -140
  400. package/dist/tools/plan-mode.d.ts.map +0 -1
  401. package/dist/tools/read-binary-file.d.ts +0 -10
  402. package/dist/tools/read-binary-file.d.ts.map +0 -1
  403. package/dist/tools/registry.d.ts +0 -31
  404. package/dist/tools/registry.d.ts.map +0 -1
  405. package/dist/tools/reproduce_issue.d.ts +0 -2
  406. package/dist/tools/reproduce_issue.d.ts.map +0 -1
  407. package/dist/tools/sub-agent.d.ts +0 -9
  408. package/dist/tools/sub-agent.d.ts.map +0 -1
  409. package/dist/tools/task-complete.d.ts +0 -3
  410. package/dist/tools/task-complete.d.ts.map +0 -1
  411. package/dist/tools/types.d.ts +0 -40
  412. package/dist/tools/types.d.ts.map +0 -1
  413. package/dist/tools/validation.d.ts +0 -47
  414. package/dist/tools/validation.d.ts.map +0 -1
  415. package/dist/tools/web-search.d.ts +0 -24
  416. package/dist/tools/web-search.d.ts.map +0 -1
  417. package/dist/tools/workflow-tool.d.ts +0 -11
  418. package/dist/tools/workflow-tool.d.ts.map +0 -1
  419. package/dist/types/index.d.ts +0 -123
  420. package/dist/types/index.d.ts.map +0 -1
  421. package/dist/types/workflow.d.ts +0 -110
  422. package/dist/types/workflow.d.ts.map +0 -1
  423. package/dist/ui/components/AgentTimer.d.ts +0 -7
  424. package/dist/ui/components/AgentTimer.d.ts.map +0 -1
  425. package/dist/ui/components/App.d.ts +0 -197
  426. package/dist/ui/components/App.d.ts.map +0 -1
  427. package/dist/ui/components/AuthScreen.d.ts +0 -8
  428. package/dist/ui/components/AuthScreen.d.ts.map +0 -1
  429. package/dist/ui/components/AuthWelcomeScreen.d.ts +0 -8
  430. package/dist/ui/components/AuthWelcomeScreen.d.ts.map +0 -1
  431. package/dist/ui/components/Breadcrumbs.d.ts +0 -13
  432. package/dist/ui/components/Breadcrumbs.d.ts.map +0 -1
  433. package/dist/ui/components/CircularSelectInput.d.ts +0 -24
  434. package/dist/ui/components/CircularSelectInput.d.ts.map +0 -1
  435. package/dist/ui/components/ClipboardFileAutocomplete.d.ts +0 -10
  436. package/dist/ui/components/ClipboardFileAutocomplete.d.ts.map +0 -1
  437. package/dist/ui/components/CodeBlock.d.ts +0 -9
  438. package/dist/ui/components/CodeBlock.d.ts.map +0 -1
  439. package/dist/ui/components/ConfigViewer.d.ts +0 -11
  440. package/dist/ui/components/ConfigViewer.d.ts.map +0 -1
  441. package/dist/ui/components/ConfirmPrompt.d.ts +0 -13
  442. package/dist/ui/components/ConfirmPrompt.d.ts.map +0 -1
  443. package/dist/ui/components/ConnectionStatusMessage.d.ts +0 -17
  444. package/dist/ui/components/ConnectionStatusMessage.d.ts.map +0 -1
  445. package/dist/ui/components/ContextWindowIndicator.d.ts +0 -8
  446. package/dist/ui/components/ContextWindowIndicator.d.ts.map +0 -1
  447. package/dist/ui/components/DetailedPlanReviewScreen.d.ts +0 -17
  448. package/dist/ui/components/DetailedPlanReviewScreen.d.ts.map +0 -1
  449. package/dist/ui/components/DiffViewer.d.ts +0 -9
  450. package/dist/ui/components/DiffViewer.d.ts.map +0 -1
  451. package/dist/ui/components/ErrorBoundary.d.ts +0 -17
  452. package/dist/ui/components/ErrorBoundary.d.ts.map +0 -1
  453. package/dist/ui/components/FileCreationPreview.d.ts +0 -8
  454. package/dist/ui/components/FileCreationPreview.d.ts.map +0 -1
  455. package/dist/ui/components/FileOperation.d.ts +0 -10
  456. package/dist/ui/components/FileOperation.d.ts.map +0 -1
  457. package/dist/ui/components/FileTagAutocomplete.d.ts +0 -11
  458. package/dist/ui/components/FileTagAutocomplete.d.ts.map +0 -1
  459. package/dist/ui/components/FontRecommendation.d.ts +0 -1
  460. package/dist/ui/components/FontRecommendation.d.ts.map +0 -1
  461. package/dist/ui/components/InputBox.d.ts +0 -42
  462. package/dist/ui/components/InputBox.d.ts.map +0 -1
  463. package/dist/ui/components/InteractiveShell.d.ts +0 -30
  464. package/dist/ui/components/InteractiveShell.d.ts.map +0 -1
  465. package/dist/ui/components/KeyboardHelp.d.ts +0 -7
  466. package/dist/ui/components/KeyboardHelp.d.ts.map +0 -1
  467. package/dist/ui/components/LoadingIndicator.d.ts +0 -3
  468. package/dist/ui/components/LoadingIndicator.d.ts.map +0 -1
  469. package/dist/ui/components/MCPAddScreen.d.ts +0 -13
  470. package/dist/ui/components/MCPAddScreen.d.ts.map +0 -1
  471. package/dist/ui/components/MCPListScreen.d.ts +0 -17
  472. package/dist/ui/components/MCPListScreen.d.ts.map +0 -1
  473. package/dist/ui/components/MCPServerListScreen.d.ts +0 -16
  474. package/dist/ui/components/MCPServerListScreen.d.ts.map +0 -1
  475. package/dist/ui/components/MarkdownRenderer.d.ts +0 -8
  476. package/dist/ui/components/MarkdownRenderer.d.ts.map +0 -1
  477. package/dist/ui/components/MessageBox.d.ts +0 -10
  478. package/dist/ui/components/MessageBox.d.ts.map +0 -1
  479. package/dist/ui/components/MessageDisplay.d.ts +0 -14
  480. package/dist/ui/components/MessageDisplay.d.ts.map +0 -1
  481. package/dist/ui/components/MonitorModeAIPanel.d.ts +0 -23
  482. package/dist/ui/components/MonitorModeAIPanel.d.ts.map +0 -1
  483. package/dist/ui/components/MultiLineInput.d.ts +0 -13
  484. package/dist/ui/components/MultiLineInput.d.ts.map +0 -1
  485. package/dist/ui/components/PasswordPrompt.d.ts +0 -9
  486. package/dist/ui/components/PasswordPrompt.d.ts.map +0 -1
  487. package/dist/ui/components/PlanAcceptedMessage.d.ts +0 -20
  488. package/dist/ui/components/PlanAcceptedMessage.d.ts.map +0 -1
  489. package/dist/ui/components/PlanReviewScreen.d.ts +0 -14
  490. package/dist/ui/components/PlanReviewScreen.d.ts.map +0 -1
  491. package/dist/ui/components/SelectPrompt.d.ts +0 -12
  492. package/dist/ui/components/SelectPrompt.d.ts.map +0 -1
  493. package/dist/ui/components/SlashCommandAutocomplete.d.ts +0 -13
  494. package/dist/ui/components/SlashCommandAutocomplete.d.ts.map +0 -1
  495. package/dist/ui/components/StatusBar.d.ts +0 -14
  496. package/dist/ui/components/StatusBar.d.ts.map +0 -1
  497. package/dist/ui/components/StreamingMessageDisplay.d.ts +0 -15
  498. package/dist/ui/components/StreamingMessageDisplay.d.ts.map +0 -1
  499. package/dist/ui/components/TaskCompletedMessage.d.ts +0 -14
  500. package/dist/ui/components/TaskCompletedMessage.d.ts.map +0 -1
  501. package/dist/ui/components/TaskProgressIndicator.d.ts +0 -18
  502. package/dist/ui/components/TaskProgressIndicator.d.ts.map +0 -1
  503. package/dist/ui/components/ThinkingDisplay.d.ts +0 -15
  504. package/dist/ui/components/ThinkingDisplay.d.ts.map +0 -1
  505. package/dist/ui/components/ToolExecutionMessage.d.ts +0 -8
  506. package/dist/ui/components/ToolExecutionMessage.d.ts.map +0 -1
  507. package/dist/ui/components/ToolExecutionStatus.d.ts +0 -10
  508. package/dist/ui/components/ToolExecutionStatus.d.ts.map +0 -1
  509. package/dist/ui/components/ToolResult.d.ts +0 -10
  510. package/dist/ui/components/ToolResult.d.ts.map +0 -1
  511. package/dist/ui/components/VersionUpdatePrompt.d.ts +0 -9
  512. package/dist/ui/components/VersionUpdatePrompt.d.ts.map +0 -1
  513. package/dist/ui/components/WelcomeBanner.d.ts +0 -3
  514. package/dist/ui/components/WelcomeBanner.d.ts.map +0 -1
  515. package/dist/ui/components/WorkflowCreatorScreen.d.ts +0 -25
  516. package/dist/ui/components/WorkflowCreatorScreen.d.ts.map +0 -1
  517. package/dist/utils/ansi-encoder.d.ts +0 -7
  518. package/dist/utils/ansi-encoder.d.ts.map +0 -1
  519. package/dist/utils/chat-formatter.d.ts +0 -12
  520. package/dist/utils/chat-formatter.d.ts.map +0 -1
  521. package/dist/utils/command-history.d.ts +0 -24
  522. package/dist/utils/command-history.d.ts.map +0 -1
  523. package/dist/utils/context-sanitizer.d.ts +0 -50
  524. package/dist/utils/context-sanitizer.d.ts.map +0 -1
  525. package/dist/utils/conversation-logger.d.ts +0 -142
  526. package/dist/utils/conversation-logger.d.ts.map +0 -1
  527. package/dist/utils/custom-commands-manager.d.ts +0 -59
  528. package/dist/utils/custom-commands-manager.d.ts.map +0 -1
  529. package/dist/utils/editor-utils.d.ts +0 -101
  530. package/dist/utils/editor-utils.d.ts.map +0 -1
  531. package/dist/utils/file.d.ts +0 -61
  532. package/dist/utils/file.d.ts.map +0 -1
  533. package/dist/utils/input-classifier.d.ts +0 -25
  534. package/dist/utils/input-classifier.d.ts.map +0 -1
  535. package/dist/utils/logger.d.ts +0 -17
  536. package/dist/utils/logger.d.ts.map +0 -1
  537. package/dist/utils/markdown-parser.d.ts +0 -60
  538. package/dist/utils/markdown-parser.d.ts.map +0 -1
  539. package/dist/utils/shell.d.ts +0 -47
  540. package/dist/utils/shell.d.ts.map +0 -1
  541. package/dist/utils/state.d.ts +0 -13
  542. package/dist/utils/state.d.ts.map +0 -1
  543. package/dist/utils/syntax-checker.d.ts +0 -24
  544. package/dist/utils/syntax-checker.d.ts.map +0 -1
  545. package/dist/utils/terminal-output.d.ts +0 -25
  546. package/dist/utils/terminal-output.d.ts.map +0 -1
  547. package/dist/utils/text-clipboard.d.ts +0 -12
  548. package/dist/utils/text-clipboard.d.ts.map +0 -1
  549. package/dist/utils/unicode-sanitizer.d.ts +0 -44
  550. package/dist/utils/unicode-sanitizer.d.ts.map +0 -1
  551. package/dist/utils/version-checker.d.ts +0 -14
  552. package/dist/utils/version-checker.d.ts.map +0 -1
@@ -1,341 +1,326 @@
1
- import * as fs from 'fs/promises';
2
- import * as path from 'path';
3
- export class InspectSymbolTool {
4
- MAX_SYMBOLS = 100;
5
- languageParsers = [
6
- {
7
- extensions: ['.ts', '.tsx', '.js', '.jsx'],
8
- name: 'TypeScript/JavaScript',
9
- parse: this.parseTypeScriptJavaScript.bind(this),
10
- },
11
- {
12
- extensions: ['.py'],
13
- name: 'Python',
14
- parse: this.parsePython.bind(this),
15
- },
16
- {
17
- extensions: ['.java'],
18
- name: 'Java',
19
- parse: this.parseJava.bind(this),
20
- },
21
- ];
22
- async execute(params, cwd) {
23
- const { filePath } = params;
24
- const fullPath = path.resolve(cwd, filePath);
25
- // Check if file exists
26
- try {
27
- await fs.access(fullPath);
28
- }
29
- catch (error) {
30
- throw new Error(`File not found: "${filePath}"\n` +
31
- `Suggestion: Use find_files to locate the file first, or check the file path.`);
32
- }
33
- // Detect language from extension
34
- const ext = path.extname(filePath).toLowerCase();
35
- const parser = this.languageParsers.find(p => p.extensions.includes(ext));
36
- if (!parser) {
37
- const supportedExts = this.languageParsers
38
- .flatMap(p => p.extensions)
39
- .join(', ');
40
- throw new Error(`Unsupported file type: ${ext}\n` +
41
- `Suggestion: inspect_symbol supports: ${supportedExts}`);
42
- }
43
- // Read file content
44
- const content = await fs.readFile(fullPath, 'utf-8');
45
- // Parse symbols
46
- const allSymbols = parser.parse(content);
47
- const truncated = allSymbols.length > this.MAX_SYMBOLS;
48
- const symbols = allSymbols.slice(0, this.MAX_SYMBOLS);
49
- return {
50
- symbols,
51
- filePath: this.normalizePath(filePath),
52
- language: parser.name,
53
- truncated,
54
- };
1
+ import * as fs from "fs/promises";
2
+ import * as path from "path";
3
+ class InspectSymbolTool {
4
+ MAX_SYMBOLS = 100;
5
+ languageParsers = [
6
+ {
7
+ extensions: [".ts", ".tsx", ".js", ".jsx"],
8
+ name: "TypeScript/JavaScript",
9
+ parse: this.parseTypeScriptJavaScript.bind(this)
10
+ },
11
+ {
12
+ extensions: [".py"],
13
+ name: "Python",
14
+ parse: this.parsePython.bind(this)
15
+ },
16
+ {
17
+ extensions: [".java"],
18
+ name: "Java",
19
+ parse: this.parseJava.bind(this)
55
20
  }
56
- parseTypeScriptJavaScript(content) {
57
- const symbols = [];
58
- const lines = content.split('\n');
59
- // Track current class context for methods
60
- let currentClass = null;
61
- let classDepth = 0;
62
- for (let i = 0; i < lines.length; i++) {
63
- const line = lines[i];
64
- const lineNumber = i + 1;
65
- // Track class context
66
- const classMatch = line.match(/^(export\s+)?(abstract\s+)?class\s+(\w+)(\s+extends\s+(\w+))?/);
67
- if (classMatch) {
68
- currentClass = classMatch[3];
69
- classDepth = this.getIndentLevel(line);
70
- const signature = line.trim();
71
- symbols.push({
72
- name: classMatch[3],
73
- type: 'class',
74
- signature,
75
- line: lineNumber,
76
- });
77
- continue;
78
- }
79
- // Reset class context when we exit the class
80
- if (currentClass && line.trim() === '}' && this.getIndentLevel(line) === classDepth) {
81
- currentClass = null;
82
- }
83
- // Interface declarations
84
- const interfaceMatch = line.match(/^(export\s+)?interface\s+(\w+)/);
85
- if (interfaceMatch) {
86
- symbols.push({
87
- name: interfaceMatch[2],
88
- type: 'interface',
89
- signature: line.trim(),
90
- line: lineNumber,
91
- });
92
- continue;
93
- }
94
- // Type declarations
95
- const typeMatch = line.match(/^(export\s+)?type\s+(\w+)/);
96
- if (typeMatch) {
97
- symbols.push({
98
- name: typeMatch[2],
99
- type: 'type',
100
- signature: line.trim(),
101
- line: lineNumber,
102
- });
103
- continue;
104
- }
105
- // Function declarations
106
- const functionMatch = line.match(/^(export\s+)?(async\s+)?function\s+(\w+)\s*(\([^)]*\))/);
107
- if (functionMatch) {
108
- symbols.push({
109
- name: functionMatch[3],
110
- type: 'function',
111
- signature: line.trim(),
112
- line: lineNumber,
113
- });
114
- continue;
115
- }
116
- // Arrow function exports
117
- const arrowMatch = line.match(/^export\s+const\s+(\w+)\s*=\s*(\([^)]*\))?\s*=>/);
118
- if (arrowMatch) {
119
- symbols.push({
120
- name: arrowMatch[1],
121
- type: 'export',
122
- signature: line.trim(),
123
- line: lineNumber,
124
- });
125
- continue;
126
- }
127
- // Const exports (non-arrow)
128
- const constExportMatch = line.match(/^export\s+const\s+(\w+)/);
129
- if (constExportMatch && !line.includes('=>')) {
130
- symbols.push({
131
- name: constExportMatch[1],
132
- type: 'export',
133
- signature: line.trim(),
134
- line: lineNumber,
135
- });
136
- continue;
137
- }
138
- // Method declarations (inside classes)
139
- if (currentClass) {
140
- const methodMatch = line.match(/^\s+(public\s+|private\s+|protected\s+)?(static\s+)?(async\s+)?(\w+)\s*(\([^)]*\))/);
141
- if (methodMatch && !line.includes('function') && methodMatch[4] !== 'if' && methodMatch[4] !== 'for' && methodMatch[4] !== 'while') {
142
- symbols.push({
143
- name: methodMatch[4],
144
- type: 'method',
145
- signature: line.trim(),
146
- line: lineNumber,
147
- parentClass: currentClass,
148
- });
149
- }
150
- }
151
- }
152
- return symbols;
21
+ ];
22
+ async execute(params, cwd) {
23
+ const { filePath } = params;
24
+ const fullPath = path.resolve(cwd, filePath);
25
+ try {
26
+ await fs.access(fullPath);
27
+ } catch (error) {
28
+ throw new Error(
29
+ `File not found: "${filePath}"
30
+ Suggestion: Use find_files to locate the file first, or check the file path.`
31
+ );
153
32
  }
154
- parsePython(content) {
155
- const symbols = [];
156
- const lines = content.split('\n');
157
- let currentClass = null;
158
- for (let i = 0; i < lines.length; i++) {
159
- const line = lines[i];
160
- const lineNumber = i + 1;
161
- // Class definitions
162
- const classMatch = line.match(/^class\s+(\w+)(\([^)]*\))?:/);
163
- if (classMatch) {
164
- currentClass = classMatch[1];
165
- symbols.push({
166
- name: classMatch[1],
167
- type: 'class',
168
- signature: line.trim(),
169
- line: lineNumber,
170
- });
171
- continue;
172
- }
173
- // Function definitions (top-level)
174
- const functionMatch = line.match(/^def\s+(\w+)\s*(\([^)]*\))/);
175
- if (functionMatch) {
176
- currentClass = null; // Reset class context for top-level functions
177
- symbols.push({
178
- name: functionMatch[1],
179
- type: 'function',
180
- signature: line.trim(),
181
- line: lineNumber,
182
- });
183
- continue;
184
- }
185
- // Method definitions (indented, inside classes)
186
- const methodMatch = line.match(/^\s+def\s+(\w+)\s*(\([^)]*\))/);
187
- if (methodMatch && currentClass) {
188
- symbols.push({
189
- name: methodMatch[1],
190
- type: 'method',
191
- signature: line.trim(),
192
- line: lineNumber,
193
- parentClass: currentClass,
194
- });
195
- }
196
- }
197
- return symbols;
33
+ const ext = path.extname(filePath).toLowerCase();
34
+ const parser = this.languageParsers.find((p) => p.extensions.includes(ext));
35
+ if (!parser) {
36
+ const supportedExts = this.languageParsers.flatMap((p) => p.extensions).join(", ");
37
+ throw new Error(
38
+ `Unsupported file type: ${ext}
39
+ Suggestion: inspect_symbol supports: ${supportedExts}`
40
+ );
198
41
  }
199
- parseJava(content) {
200
- const symbols = [];
201
- const lines = content.split('\n');
202
- let currentClass = null;
203
- let classDepth = 0;
204
- for (let i = 0; i < lines.length; i++) {
205
- const line = lines[i];
206
- const lineNumber = i + 1;
207
- // Class declarations
208
- const classMatch = line.match(/^\s*(public\s+|private\s+|protected\s+)?(abstract\s+|final\s+)?class\s+(\w+)(\s+extends\s+(\w+))?/);
209
- if (classMatch) {
210
- currentClass = classMatch[3];
211
- classDepth = this.getIndentLevel(line);
212
- symbols.push({
213
- name: classMatch[3],
214
- type: 'class',
215
- signature: line.trim(),
216
- line: lineNumber,
217
- });
218
- continue;
219
- }
220
- // Interface declarations
221
- const interfaceMatch = line.match(/^\s*(public\s+)?interface\s+(\w+)/);
222
- if (interfaceMatch) {
223
- symbols.push({
224
- name: interfaceMatch[2],
225
- type: 'interface',
226
- signature: line.trim(),
227
- line: lineNumber,
228
- });
229
- continue;
230
- }
231
- // Reset class context when we exit
232
- if (currentClass && line.trim() === '}' && this.getIndentLevel(line) === classDepth) {
233
- currentClass = null;
234
- }
235
- // Method declarations (inside classes)
236
- if (currentClass) {
237
- const methodMatch = line.match(/^\s+(public\s+|private\s+|protected\s+)?(static\s+)?(final\s+)?(\w+)\s+(\w+)\s*(\([^)]*\))/);
238
- if (methodMatch && !line.includes('class') && !line.includes('interface')) {
239
- symbols.push({
240
- name: methodMatch[5],
241
- type: 'method',
242
- signature: line.trim(),
243
- line: lineNumber,
244
- parentClass: currentClass,
245
- });
246
- }
247
- }
42
+ const content = await fs.readFile(fullPath, "utf-8");
43
+ const allSymbols = parser.parse(content);
44
+ const truncated = allSymbols.length > this.MAX_SYMBOLS;
45
+ const symbols = allSymbols.slice(0, this.MAX_SYMBOLS);
46
+ return {
47
+ symbols,
48
+ filePath: this.normalizePath(filePath),
49
+ language: parser.name,
50
+ truncated
51
+ };
52
+ }
53
+ parseTypeScriptJavaScript(content) {
54
+ const symbols = [];
55
+ const lines = content.split("\n");
56
+ let currentClass = null;
57
+ let classDepth = 0;
58
+ for (let i = 0; i < lines.length; i++) {
59
+ const line = lines[i];
60
+ const lineNumber = i + 1;
61
+ const classMatch = line.match(/^(export\s+)?(abstract\s+)?class\s+(\w+)(\s+extends\s+(\w+))?/);
62
+ if (classMatch) {
63
+ currentClass = classMatch[3];
64
+ classDepth = this.getIndentLevel(line);
65
+ const signature = line.trim();
66
+ symbols.push({
67
+ name: classMatch[3],
68
+ type: "class",
69
+ signature,
70
+ line: lineNumber
71
+ });
72
+ continue;
73
+ }
74
+ if (currentClass && line.trim() === "}" && this.getIndentLevel(line) === classDepth) {
75
+ currentClass = null;
76
+ }
77
+ const interfaceMatch = line.match(/^(export\s+)?interface\s+(\w+)/);
78
+ if (interfaceMatch) {
79
+ symbols.push({
80
+ name: interfaceMatch[2],
81
+ type: "interface",
82
+ signature: line.trim(),
83
+ line: lineNumber
84
+ });
85
+ continue;
86
+ }
87
+ const typeMatch = line.match(/^(export\s+)?type\s+(\w+)/);
88
+ if (typeMatch) {
89
+ symbols.push({
90
+ name: typeMatch[2],
91
+ type: "type",
92
+ signature: line.trim(),
93
+ line: lineNumber
94
+ });
95
+ continue;
96
+ }
97
+ const functionMatch = line.match(/^(export\s+)?(async\s+)?function\s+(\w+)\s*(\([^)]*\))/);
98
+ if (functionMatch) {
99
+ symbols.push({
100
+ name: functionMatch[3],
101
+ type: "function",
102
+ signature: line.trim(),
103
+ line: lineNumber
104
+ });
105
+ continue;
106
+ }
107
+ const arrowMatch = line.match(/^export\s+const\s+(\w+)\s*=\s*(\([^)]*\))?\s*=>/);
108
+ if (arrowMatch) {
109
+ symbols.push({
110
+ name: arrowMatch[1],
111
+ type: "export",
112
+ signature: line.trim(),
113
+ line: lineNumber
114
+ });
115
+ continue;
116
+ }
117
+ const constExportMatch = line.match(/^export\s+const\s+(\w+)/);
118
+ if (constExportMatch && !line.includes("=>")) {
119
+ symbols.push({
120
+ name: constExportMatch[1],
121
+ type: "export",
122
+ signature: line.trim(),
123
+ line: lineNumber
124
+ });
125
+ continue;
126
+ }
127
+ if (currentClass) {
128
+ const methodMatch = line.match(/^\s+(public\s+|private\s+|protected\s+)?(static\s+)?(async\s+)?(\w+)\s*(\([^)]*\))/);
129
+ if (methodMatch && !line.includes("function") && methodMatch[4] !== "if" && methodMatch[4] !== "for" && methodMatch[4] !== "while") {
130
+ symbols.push({
131
+ name: methodMatch[4],
132
+ type: "method",
133
+ signature: line.trim(),
134
+ line: lineNumber,
135
+ parentClass: currentClass
136
+ });
248
137
  }
249
- return symbols;
138
+ }
250
139
  }
251
- getIndentLevel(line) {
252
- const match = line.match(/^(\s*)/);
253
- return match ? match[1].length : 0;
140
+ return symbols;
141
+ }
142
+ parsePython(content) {
143
+ const symbols = [];
144
+ const lines = content.split("\n");
145
+ let currentClass = null;
146
+ for (let i = 0; i < lines.length; i++) {
147
+ const line = lines[i];
148
+ const lineNumber = i + 1;
149
+ const classMatch = line.match(/^class\s+(\w+)(\([^)]*\))?:/);
150
+ if (classMatch) {
151
+ currentClass = classMatch[1];
152
+ symbols.push({
153
+ name: classMatch[1],
154
+ type: "class",
155
+ signature: line.trim(),
156
+ line: lineNumber
157
+ });
158
+ continue;
159
+ }
160
+ const functionMatch = line.match(/^def\s+(\w+)\s*(\([^)]*\))/);
161
+ if (functionMatch) {
162
+ currentClass = null;
163
+ symbols.push({
164
+ name: functionMatch[1],
165
+ type: "function",
166
+ signature: line.trim(),
167
+ line: lineNumber
168
+ });
169
+ continue;
170
+ }
171
+ const methodMatch = line.match(/^\s+def\s+(\w+)\s*(\([^)]*\))/);
172
+ if (methodMatch && currentClass) {
173
+ symbols.push({
174
+ name: methodMatch[1],
175
+ type: "method",
176
+ signature: line.trim(),
177
+ line: lineNumber,
178
+ parentClass: currentClass
179
+ });
180
+ }
254
181
  }
255
- normalizePath(filePath) {
256
- return filePath.replace(/\\/g, '/');
182
+ return symbols;
183
+ }
184
+ parseJava(content) {
185
+ const symbols = [];
186
+ const lines = content.split("\n");
187
+ let currentClass = null;
188
+ let classDepth = 0;
189
+ for (let i = 0; i < lines.length; i++) {
190
+ const line = lines[i];
191
+ const lineNumber = i + 1;
192
+ const classMatch = line.match(/^\s*(public\s+|private\s+|protected\s+)?(abstract\s+|final\s+)?class\s+(\w+)(\s+extends\s+(\w+))?/);
193
+ if (classMatch) {
194
+ currentClass = classMatch[3];
195
+ classDepth = this.getIndentLevel(line);
196
+ symbols.push({
197
+ name: classMatch[3],
198
+ type: "class",
199
+ signature: line.trim(),
200
+ line: lineNumber
201
+ });
202
+ continue;
203
+ }
204
+ const interfaceMatch = line.match(/^\s*(public\s+)?interface\s+(\w+)/);
205
+ if (interfaceMatch) {
206
+ symbols.push({
207
+ name: interfaceMatch[2],
208
+ type: "interface",
209
+ signature: line.trim(),
210
+ line: lineNumber
211
+ });
212
+ continue;
213
+ }
214
+ if (currentClass && line.trim() === "}" && this.getIndentLevel(line) === classDepth) {
215
+ currentClass = null;
216
+ }
217
+ if (currentClass) {
218
+ const methodMatch = line.match(/^\s+(public\s+|private\s+|protected\s+)?(static\s+)?(final\s+)?(\w+)\s+(\w+)\s*(\([^)]*\))/);
219
+ if (methodMatch && !line.includes("class") && !line.includes("interface")) {
220
+ symbols.push({
221
+ name: methodMatch[5],
222
+ type: "method",
223
+ signature: line.trim(),
224
+ line: lineNumber,
225
+ parentClass: currentClass
226
+ });
227
+ }
228
+ }
257
229
  }
230
+ return symbols;
231
+ }
232
+ getIndentLevel(line) {
233
+ const match = line.match(/^(\s*)/);
234
+ return match ? match[1].length : 0;
235
+ }
236
+ normalizePath(filePath) {
237
+ return filePath.replace(/\\/g, "/");
238
+ }
258
239
  }
259
- /**
260
- * Format inspect symbol results for display
261
- */
262
240
  function formatInspectSymbolResults(result) {
263
- if (result.symbols.length === 0) {
264
- return `No symbols found in ${result.filePath}`;
265
- }
266
- let output = `## Symbol Outline: ${result.filePath}\n\n`;
267
- output += `**Language:** ${result.language}\n`;
268
- output += `**Symbols Found:** ${result.symbols.length}${result.truncated ? ` (showing first ${result.symbols.length})` : ''}\n\n`;
269
- // Group by type
270
- const byType = {};
271
- for (const symbol of result.symbols) {
272
- const type = symbol.type;
273
- if (!byType[type]) {
274
- byType[type] = [];
275
- }
276
- byType[type].push(symbol);
241
+ if (result.symbols.length === 0) {
242
+ return `No symbols found in ${result.filePath}`;
243
+ }
244
+ let output = `## Symbol Outline: ${result.filePath}
245
+
246
+ `;
247
+ output += `**Language:** ${result.language}
248
+ `;
249
+ output += `**Symbols Found:** ${result.symbols.length}${result.truncated ? ` (showing first ${result.symbols.length})` : ""}
250
+
251
+ `;
252
+ const byType = {};
253
+ for (const symbol of result.symbols) {
254
+ const type = symbol.type;
255
+ if (!byType[type]) {
256
+ byType[type] = [];
277
257
  }
278
- // Display in logical order
279
- const order = ['class', 'interface', 'type', 'function', 'export', 'method'];
280
- for (const type of order) {
281
- if (byType[type] && byType[type].length > 0) {
282
- output += `### ${type.charAt(0).toUpperCase() + type.slice(1)}s\n\n`;
283
- for (const symbol of byType[type]) {
284
- const parentInfo = symbol.parentClass ? ` (in ${symbol.parentClass})` : '';
285
- output += `- **${symbol.name}**${parentInfo} - Line ${symbol.line}\n`;
286
- if (symbol.signature) {
287
- output += ` \`${symbol.signature}\`\n`;
288
- }
289
- }
290
- output += '\n';
258
+ byType[type].push(symbol);
259
+ }
260
+ const order = ["class", "interface", "type", "function", "export", "method"];
261
+ for (const type of order) {
262
+ if (byType[type] && byType[type].length > 0) {
263
+ output += `### ${type.charAt(0).toUpperCase() + type.slice(1)}s
264
+
265
+ `;
266
+ for (const symbol of byType[type]) {
267
+ const parentInfo = symbol.parentClass ? ` (in ${symbol.parentClass})` : "";
268
+ output += `- **${symbol.name}**${parentInfo} - Line ${symbol.line}
269
+ `;
270
+ if (symbol.signature) {
271
+ output += ` \`${symbol.signature}\`
272
+ `;
291
273
  }
274
+ }
275
+ output += "\n";
292
276
  }
293
- return output;
277
+ }
278
+ return output;
294
279
  }
295
- /**
296
- * Tool wrapper for the registry
297
- */
298
- export const inspectSymbolTool = {
299
- schema: {
300
- name: 'inspect_symbol',
301
- description: `Get an outline of symbols (classes, functions, methods) in a file without reading the entire file.
302
-
303
- WHEN TO USE:
304
- - To understand file structure before reading details
305
- - To find specific functions or classes
306
- - To see what's exported from a module
307
- - To quickly scan a large file
308
-
309
- SUPPORTS: TypeScript, JavaScript, Python, Java
310
-
280
+ const inspectSymbolTool = {
281
+ schema: {
282
+ name: "inspect_symbol",
283
+ description: `Get an outline of symbols (classes, functions, methods) in a file without reading the entire file.
284
+
285
+ WHEN TO USE:
286
+ - To understand file structure before reading details
287
+ - To find specific functions or classes
288
+ - To see what's exported from a module
289
+ - To quickly scan a large file
290
+
291
+ SUPPORTS: TypeScript, JavaScript, Python, Java
292
+
311
293
  This is faster than reading the entire file when you only need to know what functions/classes exist.`,
312
- parameters: {
313
- type: 'object',
314
- properties: {
315
- reason_text: {
316
- type: 'string',
317
- description: 'REQUIRED: Brief explanation of why you need the symbol outline. Example: "Checking what functions are exported from this utility module"'
318
- },
319
- filePath: {
320
- type: 'string',
321
- description: 'Path to the file to inspect (relative to current working directory)'
322
- }
323
- },
324
- required: ['reason_text', 'filePath']
325
- }
326
- },
327
- async execute(args, context) {
328
- const tool = new InspectSymbolTool();
329
- const params = {
330
- filePath: args.filePath
331
- };
332
- try {
333
- const result = await tool.execute(params, context.cwd);
334
- return formatInspectSymbolResults(result);
335
- }
336
- catch (error) {
337
- throw new Error(`Inspect symbol failed: ${error.message}`);
294
+ parameters: {
295
+ type: "object",
296
+ properties: {
297
+ reason_text: {
298
+ type: "string",
299
+ description: 'REQUIRED: Brief explanation of why you need the symbol outline. Example: "Checking what functions are exported from this utility module"'
300
+ },
301
+ filePath: {
302
+ type: "string",
303
+ description: "Path to the file to inspect (relative to current working directory)"
338
304
  }
305
+ },
306
+ required: ["reason_text", "filePath"]
339
307
  }
308
+ },
309
+ async execute(args, context) {
310
+ const tool = new InspectSymbolTool();
311
+ const params = {
312
+ filePath: args.filePath
313
+ };
314
+ try {
315
+ const result = await tool.execute(params, context.cwd);
316
+ return formatInspectSymbolResults(result);
317
+ } catch (error) {
318
+ throw new Error(`Inspect symbol failed: ${error.message}`);
319
+ }
320
+ }
321
+ };
322
+ export {
323
+ InspectSymbolTool,
324
+ inspectSymbolTool
340
325
  };
341
326
  //# sourceMappingURL=inspect-symbol.js.map