@office-ai/aioncli-core 0.1.21 → 0.2.3

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 (352) hide show
  1. package/dist/index.d.ts +3 -0
  2. package/dist/index.js +3 -0
  3. package/dist/index.js.map +1 -1
  4. package/dist/src/code_assist/converter.d.ts +3 -2
  5. package/dist/src/code_assist/converter.js +1 -0
  6. package/dist/src/code_assist/converter.js.map +1 -1
  7. package/dist/src/code_assist/oauth2.d.ts +2 -0
  8. package/dist/src/code_assist/oauth2.js +47 -25
  9. package/dist/src/code_assist/oauth2.js.map +1 -1
  10. package/dist/src/code_assist/oauth2.test.js +99 -8
  11. package/dist/src/code_assist/oauth2.test.js.map +1 -1
  12. package/dist/src/code_assist/server.js +1 -1
  13. package/dist/src/code_assist/server.js.map +1 -1
  14. package/dist/src/code_assist/setup.js +48 -17
  15. package/dist/src/code_assist/setup.js.map +1 -1
  16. package/dist/src/code_assist/setup.test.js +114 -8
  17. package/dist/src/code_assist/setup.test.js.map +1 -1
  18. package/dist/src/config/config.d.ts +27 -8
  19. package/dist/src/config/config.js +56 -25
  20. package/dist/src/config/config.js.map +1 -1
  21. package/dist/src/config/config.test.js +109 -1
  22. package/dist/src/config/config.test.js.map +1 -1
  23. package/dist/src/core/client.d.ts +18 -15
  24. package/dist/src/core/client.js +275 -63
  25. package/dist/src/core/client.js.map +1 -1
  26. package/dist/src/core/client.test.js +631 -36
  27. package/dist/src/core/client.test.js.map +1 -1
  28. package/dist/src/core/contentGenerator.js +20 -12
  29. package/dist/src/core/contentGenerator.js.map +1 -1
  30. package/dist/src/core/contentGenerator.test.js +39 -15
  31. package/dist/src/core/contentGenerator.test.js.map +1 -1
  32. package/dist/src/core/coreToolScheduler.d.ts +2 -1
  33. package/dist/src/core/coreToolScheduler.js +26 -4
  34. package/dist/src/core/coreToolScheduler.js.map +1 -1
  35. package/dist/src/core/coreToolScheduler.test.js +230 -71
  36. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  37. package/dist/src/core/geminiChat.d.ts +11 -1
  38. package/dist/src/core/geminiChat.js +85 -11
  39. package/dist/src/core/geminiChat.js.map +1 -1
  40. package/dist/src/core/logger.d.ts +22 -1
  41. package/dist/src/core/logger.js +103 -17
  42. package/dist/src/core/logger.js.map +1 -1
  43. package/dist/src/core/logger.test.js +86 -20
  44. package/dist/src/core/logger.test.js.map +1 -1
  45. package/dist/src/core/loggingContentGenerator.d.ts +1 -0
  46. package/dist/src/core/loggingContentGenerator.js +7 -1
  47. package/dist/src/core/loggingContentGenerator.js.map +1 -1
  48. package/dist/src/core/nonInteractiveToolExecutor.d.ts +2 -2
  49. package/dist/src/core/nonInteractiveToolExecutor.js +11 -3
  50. package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
  51. package/dist/src/core/nonInteractiveToolExecutor.test.js +95 -46
  52. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
  53. package/dist/src/core/openaiContentGenerator.js +71 -25
  54. package/dist/src/core/openaiContentGenerator.js.map +1 -1
  55. package/dist/src/core/openaiContentGenerator.test.js +1 -1
  56. package/dist/src/core/openaiContentGenerator.test.js.map +1 -1
  57. package/dist/src/core/prompts.js +4 -4
  58. package/dist/src/core/prompts.js.map +1 -1
  59. package/dist/src/core/subagent.js +5 -5
  60. package/dist/src/core/subagent.js.map +1 -1
  61. package/dist/src/core/subagent.test.js +3 -3
  62. package/dist/src/core/subagent.test.js.map +1 -1
  63. package/dist/src/generated/git-commit.d.ts +7 -0
  64. package/dist/src/generated/git-commit.js +10 -0
  65. package/dist/src/generated/git-commit.js.map +1 -0
  66. package/dist/src/ide/constants.d.ts +6 -0
  67. package/dist/src/ide/constants.js +7 -0
  68. package/dist/src/ide/constants.js.map +1 -0
  69. package/dist/src/ide/detect-ide.d.ts +12 -2
  70. package/dist/src/ide/detect-ide.js +64 -5
  71. package/dist/src/ide/detect-ide.js.map +1 -1
  72. package/dist/src/ide/detect-ide.test.d.ts +6 -0
  73. package/dist/src/ide/detect-ide.test.js +65 -0
  74. package/dist/src/ide/detect-ide.test.js.map +1 -0
  75. package/dist/src/ide/ide-client.d.ts +9 -1
  76. package/dist/src/ide/ide-client.js +113 -30
  77. package/dist/src/ide/ide-client.js.map +1 -1
  78. package/dist/src/ide/ide-client.test.d.ts +6 -0
  79. package/dist/src/ide/ide-client.test.js +43 -0
  80. package/dist/src/ide/ide-client.test.js.map +1 -0
  81. package/dist/src/ide/ide-installer.js +23 -34
  82. package/dist/src/ide/ide-installer.js.map +1 -1
  83. package/dist/src/ide/ide-installer.test.js +6 -8
  84. package/dist/src/ide/ide-installer.test.js.map +1 -1
  85. package/dist/src/ide/ideContext.d.ts +42 -42
  86. package/dist/src/ide/process-utils.d.ts +19 -0
  87. package/dist/src/ide/process-utils.js +140 -0
  88. package/dist/src/ide/process-utils.js.map +1 -0
  89. package/dist/src/index.d.ts +6 -1
  90. package/dist/src/index.js +6 -1
  91. package/dist/src/index.js.map +1 -1
  92. package/dist/src/mcp/google-auth-provider.js +9 -0
  93. package/dist/src/mcp/google-auth-provider.js.map +1 -1
  94. package/dist/src/mcp/google-auth-provider.test.js +45 -10
  95. package/dist/src/mcp/google-auth-provider.test.js.map +1 -1
  96. package/dist/src/mcp/oauth-provider.d.ts +0 -1
  97. package/dist/src/mcp/oauth-provider.js +176 -59
  98. package/dist/src/mcp/oauth-provider.js.map +1 -1
  99. package/dist/src/mcp/oauth-provider.test.js +132 -62
  100. package/dist/src/mcp/oauth-provider.test.js.map +1 -1
  101. package/dist/src/mcp/oauth-utils.d.ts +3 -1
  102. package/dist/src/mcp/oauth-utils.js +50 -12
  103. package/dist/src/mcp/oauth-utils.js.map +1 -1
  104. package/dist/src/mcp/oauth-utils.test.js +17 -2
  105. package/dist/src/mcp/oauth-utils.test.js.map +1 -1
  106. package/dist/src/mocks/msw.d.ts +6 -0
  107. package/dist/src/mocks/msw.js +8 -0
  108. package/dist/src/mocks/msw.js.map +1 -0
  109. package/dist/src/services/chatRecordingService.d.ts +150 -0
  110. package/dist/src/services/chatRecordingService.js +318 -0
  111. package/dist/src/services/chatRecordingService.js.map +1 -0
  112. package/dist/src/services/chatRecordingService.test.d.ts +6 -0
  113. package/dist/src/services/chatRecordingService.test.js +288 -0
  114. package/dist/src/services/chatRecordingService.test.js.map +1 -0
  115. package/dist/src/services/fileSystemService.d.ts +31 -0
  116. package/dist/src/services/fileSystemService.js +18 -0
  117. package/dist/src/services/fileSystemService.js.map +1 -0
  118. package/dist/src/services/fileSystemService.test.d.ts +6 -0
  119. package/dist/src/services/fileSystemService.test.js +41 -0
  120. package/dist/src/services/fileSystemService.test.js.map +1 -0
  121. package/dist/src/services/loopDetectionService.js +9 -10
  122. package/dist/src/services/loopDetectionService.js.map +1 -1
  123. package/dist/src/services/loopDetectionService.test.js +52 -0
  124. package/dist/src/services/loopDetectionService.test.js.map +1 -1
  125. package/dist/src/services/shellExecutionService.d.ts +8 -10
  126. package/dist/src/services/shellExecutionService.js +289 -133
  127. package/dist/src/services/shellExecutionService.js.map +1 -1
  128. package/dist/src/services/shellExecutionService.test.js +274 -30
  129. package/dist/src/services/shellExecutionService.test.js.map +1 -1
  130. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +61 -17
  131. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +211 -233
  132. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  133. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.d.ts +11 -0
  134. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +250 -94
  135. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
  136. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +9 -2
  137. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +19 -9
  138. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  139. package/dist/src/telemetry/constants.d.ts +1 -0
  140. package/dist/src/telemetry/constants.js +1 -0
  141. package/dist/src/telemetry/constants.js.map +1 -1
  142. package/dist/src/telemetry/index.d.ts +2 -2
  143. package/dist/src/telemetry/index.js +2 -2
  144. package/dist/src/telemetry/index.js.map +1 -1
  145. package/dist/src/telemetry/integration.test.circular.js +1 -0
  146. package/dist/src/telemetry/integration.test.circular.js.map +1 -1
  147. package/dist/src/telemetry/loggers.d.ts +3 -1
  148. package/dist/src/telemetry/loggers.js +39 -6
  149. package/dist/src/telemetry/loggers.js.map +1 -1
  150. package/dist/src/telemetry/loggers.test.js +37 -7
  151. package/dist/src/telemetry/loggers.test.js.map +1 -1
  152. package/dist/src/telemetry/metrics.d.ts +5 -1
  153. package/dist/src/telemetry/metrics.js +23 -9
  154. package/dist/src/telemetry/metrics.js.map +1 -1
  155. package/dist/src/telemetry/metrics.test.js +31 -1
  156. package/dist/src/telemetry/metrics.test.js.map +1 -1
  157. package/dist/src/telemetry/sdk.d.ts +1 -1
  158. package/dist/src/telemetry/sdk.js +80 -44
  159. package/dist/src/telemetry/sdk.js.map +1 -1
  160. package/dist/src/telemetry/sdk.test.d.ts +6 -0
  161. package/dist/src/telemetry/sdk.test.js +82 -0
  162. package/dist/src/telemetry/sdk.test.js.map +1 -0
  163. package/dist/src/telemetry/telemetry.test.js +2 -2
  164. package/dist/src/telemetry/telemetry.test.js.map +1 -1
  165. package/dist/src/telemetry/types.d.ts +41 -14
  166. package/dist/src/telemetry/types.js +52 -23
  167. package/dist/src/telemetry/types.js.map +1 -1
  168. package/dist/src/telemetry/uiTelemetry.d.ts +4 -0
  169. package/dist/src/telemetry/uiTelemetry.js +14 -1
  170. package/dist/src/telemetry/uiTelemetry.js.map +1 -1
  171. package/dist/src/telemetry/uiTelemetry.test.js +45 -9
  172. package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
  173. package/dist/src/test-utils/config.d.ts +16 -0
  174. package/dist/src/test-utils/config.js +32 -0
  175. package/dist/src/test-utils/config.js.map +1 -0
  176. package/dist/src/test-utils/tools.d.ts +29 -8
  177. package/dist/src/test-utils/tools.js +80 -16
  178. package/dist/src/test-utils/tools.js.map +1 -1
  179. package/dist/src/tools/edit.d.ts +1 -1
  180. package/dist/src/tools/edit.js +23 -19
  181. package/dist/src/tools/edit.js.map +1 -1
  182. package/dist/src/tools/edit.test.js +11 -3
  183. package/dist/src/tools/edit.test.js.map +1 -1
  184. package/dist/src/tools/glob.d.ts +1 -1
  185. package/dist/src/tools/glob.js +15 -16
  186. package/dist/src/tools/glob.js.map +1 -1
  187. package/dist/src/tools/glob.test.js +20 -0
  188. package/dist/src/tools/glob.test.js.map +1 -1
  189. package/dist/src/tools/grep.d.ts +1 -1
  190. package/dist/src/tools/grep.js +7 -13
  191. package/dist/src/tools/grep.js.map +1 -1
  192. package/dist/src/tools/ls.d.ts +4 -23
  193. package/dist/src/tools/ls.js +77 -79
  194. package/dist/src/tools/ls.js.map +1 -1
  195. package/dist/src/tools/ls.test.js +62 -34
  196. package/dist/src/tools/ls.test.js.map +1 -1
  197. package/dist/src/tools/mcp-client-manager.d.ts +38 -0
  198. package/dist/src/tools/mcp-client-manager.js +74 -0
  199. package/dist/src/tools/mcp-client-manager.js.map +1 -0
  200. package/dist/src/tools/mcp-client-manager.test.d.ts +6 -0
  201. package/dist/src/tools/mcp-client-manager.test.js +39 -0
  202. package/dist/src/tools/mcp-client-manager.test.js.map +1 -0
  203. package/dist/src/tools/mcp-client.d.ts +43 -0
  204. package/dist/src/tools/mcp-client.js +157 -11
  205. package/dist/src/tools/mcp-client.js.map +1 -1
  206. package/dist/src/tools/mcp-client.test.js +62 -276
  207. package/dist/src/tools/mcp-client.test.js.map +1 -1
  208. package/dist/src/tools/mcp-tool.d.ts +6 -13
  209. package/dist/src/tools/mcp-tool.js +62 -34
  210. package/dist/src/tools/mcp-tool.js.map +1 -1
  211. package/dist/src/tools/mcp-tool.test.js +118 -59
  212. package/dist/src/tools/mcp-tool.test.js.map +1 -1
  213. package/dist/src/tools/memoryTool.d.ts +9 -13
  214. package/dist/src/tools/memoryTool.js +122 -121
  215. package/dist/src/tools/memoryTool.js.map +1 -1
  216. package/dist/src/tools/memoryTool.test.js +38 -18
  217. package/dist/src/tools/memoryTool.test.js.map +1 -1
  218. package/dist/src/tools/read-file.d.ts +1 -1
  219. package/dist/src/tools/read-file.js +20 -18
  220. package/dist/src/tools/read-file.js.map +1 -1
  221. package/dist/src/tools/read-file.test.js +8 -0
  222. package/dist/src/tools/read-file.test.js.map +1 -1
  223. package/dist/src/tools/read-many-files.d.ts +3 -5
  224. package/dist/src/tools/read-many-files.js +121 -105
  225. package/dist/src/tools/read-many-files.js.map +1 -1
  226. package/dist/src/tools/read-many-files.test.js +94 -37
  227. package/dist/src/tools/read-many-files.test.js.map +1 -1
  228. package/dist/src/tools/shell.d.ts +4 -6
  229. package/dist/src/tools/shell.js +120 -124
  230. package/dist/src/tools/shell.js.map +1 -1
  231. package/dist/src/tools/shell.test.js +63 -65
  232. package/dist/src/tools/shell.test.js.map +1 -1
  233. package/dist/src/tools/tool-error.d.ts +1 -0
  234. package/dist/src/tools/tool-error.js +1 -0
  235. package/dist/src/tools/tool-error.js.map +1 -1
  236. package/dist/src/tools/tool-registry.d.ts +14 -18
  237. package/dist/src/tools/tool-registry.js +73 -106
  238. package/dist/src/tools/tool-registry.js.map +1 -1
  239. package/dist/src/tools/tool-registry.test.js +24 -192
  240. package/dist/src/tools/tool-registry.test.js.map +1 -1
  241. package/dist/src/tools/tools.d.ts +33 -89
  242. package/dist/src/tools/tools.js +76 -119
  243. package/dist/src/tools/tools.js.map +1 -1
  244. package/dist/src/tools/tools.test.js +91 -2
  245. package/dist/src/tools/tools.test.js.map +1 -1
  246. package/dist/src/tools/web-fetch.d.ts +4 -7
  247. package/dist/src/tools/web-fetch.js +58 -64
  248. package/dist/src/tools/web-fetch.js.map +1 -1
  249. package/dist/src/tools/web-fetch.test.js +8 -4
  250. package/dist/src/tools/web-fetch.test.js.map +1 -1
  251. package/dist/src/tools/web-search.d.ts +4 -5
  252. package/dist/src/tools/web-search.js +47 -51
  253. package/dist/src/tools/web-search.js.map +1 -1
  254. package/dist/src/tools/web-search.test.d.ts +6 -0
  255. package/dist/src/tools/web-search.test.js +139 -0
  256. package/dist/src/tools/web-search.test.js.map +1 -0
  257. package/dist/src/tools/write-file.d.ts +15 -10
  258. package/dist/src/tools/write-file.js +134 -145
  259. package/dist/src/tools/write-file.js.map +1 -1
  260. package/dist/src/tools/write-file.test.js +82 -127
  261. package/dist/src/tools/write-file.test.js.map +1 -1
  262. package/dist/src/utils/browser.js +4 -3
  263. package/dist/src/utils/browser.js.map +1 -1
  264. package/dist/src/utils/editCorrector.js +21 -22
  265. package/dist/src/utils/editCorrector.js.map +1 -1
  266. package/dist/src/utils/editor.js +1 -1
  267. package/dist/src/utils/editor.js.map +1 -1
  268. package/dist/src/utils/editor.test.js +10 -10
  269. package/dist/src/utils/editor.test.js.map +1 -1
  270. package/dist/src/utils/environmentContext.js +2 -2
  271. package/dist/src/utils/environmentContext.js.map +1 -1
  272. package/dist/src/utils/environmentContext.test.js +3 -2
  273. package/dist/src/utils/environmentContext.test.js.map +1 -1
  274. package/dist/src/utils/errorParsing.d.ts +8 -0
  275. package/dist/src/utils/errorParsing.js +93 -0
  276. package/dist/src/utils/errorParsing.js.map +1 -0
  277. package/dist/src/utils/errorParsing.test.d.ts +6 -0
  278. package/dist/src/utils/errorParsing.test.js +172 -0
  279. package/dist/src/utils/errorParsing.test.js.map +1 -0
  280. package/dist/src/utils/fileUtils.d.ts +2 -1
  281. package/dist/src/utils/fileUtils.js +3 -3
  282. package/dist/src/utils/fileUtils.js.map +1 -1
  283. package/dist/src/utils/fileUtils.test.js +18 -17
  284. package/dist/src/utils/fileUtils.test.js.map +1 -1
  285. package/dist/src/utils/filesearch/crawler.d.ts +15 -0
  286. package/dist/src/utils/filesearch/crawler.js +50 -0
  287. package/dist/src/utils/filesearch/crawler.js.map +1 -0
  288. package/dist/src/utils/filesearch/crawler.test.d.ts +6 -0
  289. package/dist/src/utils/filesearch/crawler.test.js +468 -0
  290. package/dist/src/utils/filesearch/crawler.test.js.map +1 -0
  291. package/dist/src/utils/filesearch/fileSearch.d.ts +9 -53
  292. package/dist/src/utils/filesearch/fileSearch.js +63 -118
  293. package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
  294. package/dist/src/utils/filesearch/fileSearch.test.js +95 -197
  295. package/dist/src/utils/filesearch/fileSearch.test.js.map +1 -1
  296. package/dist/src/utils/filesearch/ignore.d.ts +7 -0
  297. package/dist/src/utils/filesearch/ignore.js +25 -0
  298. package/dist/src/utils/filesearch/ignore.js.map +1 -1
  299. package/dist/src/utils/filesearch/ignore.test.js +89 -2
  300. package/dist/src/utils/filesearch/ignore.test.js.map +1 -1
  301. package/dist/src/utils/filesearch/result-cache.d.ts +1 -2
  302. package/dist/src/utils/filesearch/result-cache.js +1 -3
  303. package/dist/src/utils/filesearch/result-cache.js.map +1 -1
  304. package/dist/src/utils/filesearch/result-cache.test.js +3 -4
  305. package/dist/src/utils/filesearch/result-cache.test.js.map +1 -1
  306. package/dist/src/utils/getPty.d.ts +19 -0
  307. package/dist/src/utils/getPty.js +23 -0
  308. package/dist/src/utils/getPty.js.map +1 -0
  309. package/dist/src/utils/memoryDiscovery.js +3 -3
  310. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  311. package/dist/src/utils/memoryDiscovery.test.js +3 -2
  312. package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
  313. package/dist/src/utils/memoryImportProcessor.js +3 -7
  314. package/dist/src/utils/memoryImportProcessor.js.map +1 -1
  315. package/dist/src/utils/memoryImportProcessor.test.js +17 -20
  316. package/dist/src/utils/memoryImportProcessor.test.js.map +1 -1
  317. package/dist/src/utils/nextSpeakerChecker.js +3 -4
  318. package/dist/src/utils/nextSpeakerChecker.js.map +1 -1
  319. package/dist/src/utils/paths.d.ts +7 -0
  320. package/dist/src/utils/paths.js +15 -0
  321. package/dist/src/utils/paths.js.map +1 -1
  322. package/dist/src/utils/paths.test.js +74 -2
  323. package/dist/src/utils/paths.test.js.map +1 -1
  324. package/dist/src/utils/quotaErrorDetection.d.ts +1 -5
  325. package/dist/src/utils/quotaErrorDetection.js.map +1 -1
  326. package/dist/src/utils/retry.js +40 -0
  327. package/dist/src/utils/retry.js.map +1 -1
  328. package/dist/src/utils/schemaValidator.d.ts +1 -8
  329. package/dist/src/utils/schemaValidator.js +1 -32
  330. package/dist/src/utils/schemaValidator.js.map +1 -1
  331. package/dist/src/utils/secure-browser-launcher.js +4 -3
  332. package/dist/src/utils/secure-browser-launcher.js.map +1 -1
  333. package/dist/src/utils/shell-utils.d.ts +39 -0
  334. package/dist/src/utils/shell-utils.js +72 -2
  335. package/dist/src/utils/shell-utils.js.map +1 -1
  336. package/dist/src/utils/shell-utils.test.js +132 -4
  337. package/dist/src/utils/shell-utils.test.js.map +1 -1
  338. package/dist/src/utils/systemEncoding.js +1 -1
  339. package/dist/src/utils/systemEncoding.js.map +1 -1
  340. package/dist/src/utils/systemEncoding.test.js +23 -23
  341. package/dist/src/utils/systemEncoding.test.js.map +1 -1
  342. package/dist/src/utils/user_account.js +58 -48
  343. package/dist/src/utils/user_account.js.map +1 -1
  344. package/dist/src/utils/user_account.test.js +76 -9
  345. package/dist/src/utils/user_account.test.js.map +1 -1
  346. package/dist/src/utils/workspaceContext.d.ts +22 -7
  347. package/dist/src/utils/workspaceContext.js +81 -55
  348. package/dist/src/utils/workspaceContext.js.map +1 -1
  349. package/dist/src/utils/workspaceContext.test.js +221 -137
  350. package/dist/src/utils/workspaceContext.test.js.map +1 -1
  351. package/dist/tsconfig.tsbuildinfo +1 -1
  352. package/package.json +21 -8
@@ -7,106 +7,36 @@ import fs from 'fs';
7
7
  import path from 'path';
8
8
  import os from 'os';
9
9
  import crypto from 'crypto';
10
- import { BaseTool, ToolConfirmationOutcome, Icon, } from './tools.js';
11
- import { ToolErrorType } from './tool-error.js';
12
- import { Type } from '@google/genai';
13
- import { SchemaValidator } from '../utils/schemaValidator.js';
10
+ import { BaseDeclarativeTool, BaseToolInvocation, ToolConfirmationOutcome, Kind, } from './tools.js';
14
11
  import { getErrorMessage } from '../utils/errors.js';
15
12
  import { summarizeToolOutput } from '../utils/summarizer.js';
16
13
  import { ShellExecutionService, } from '../services/shellExecutionService.js';
17
14
  import { formatMemoryUsage } from '../utils/formatters.js';
18
15
  import { getCommandRoots, isCommandAllowed, stripShellWrapper, } from '../utils/shell-utils.js';
19
16
  export const OUTPUT_UPDATE_INTERVAL_MS = 1000;
20
- export class ShellTool extends BaseTool {
17
+ class ShellToolInvocation extends BaseToolInvocation {
21
18
  config;
22
- static Name = 'run_shell_command';
23
- allowlist = new Set();
24
- constructor(config) {
25
- super(ShellTool.Name, 'Shell', `This tool executes a given shell command as \`bash -c <command>\`. Command can start background processes using \`&\`. Command is executed as a subprocess that leads its own process group. Command process group can be terminated as \`kill -- -PGID\` or signaled as \`kill -s SIGNAL -- -PGID\`.
26
-
27
- The following information is returned:
28
-
29
- Command: Executed command.
30
- Directory: Directory (relative to project root) where command was executed, or \`(root)\`.
31
- Stdout: Output on stdout stream. Can be \`(empty)\` or partial on error and for any unwaited background processes.
32
- Stderr: Output on stderr stream. Can be \`(empty)\` or partial on error and for any unwaited background processes.
33
- Error: Error or \`(none)\` if no error was reported for the subprocess.
34
- Exit Code: Exit code or \`(none)\` if terminated by signal.
35
- Signal: Signal number or \`(none)\` if no signal was received.
36
- Background PIDs: List of background processes started or \`(none)\`.
37
- Process Group PGID: Process group started or \`(none)\``, Icon.Terminal, {
38
- type: Type.OBJECT,
39
- properties: {
40
- command: {
41
- type: Type.STRING,
42
- description: 'Exact bash command to execute as `bash -c <command>`',
43
- },
44
- description: {
45
- type: Type.STRING,
46
- description: 'Brief description of the command for the user. Be specific and concise. Ideally a single sentence. Can be up to 3 sentences for clarity. No line breaks.',
47
- },
48
- directory: {
49
- type: Type.STRING,
50
- description: '(OPTIONAL) Directory to run the command in, if not the project root directory. Must be relative to the project root directory and must already exist.',
51
- },
52
- },
53
- required: ['command'],
54
- }, false, // output is not markdown
55
- true);
19
+ allowlist;
20
+ constructor(config, params, allowlist) {
21
+ super(params);
56
22
  this.config = config;
23
+ this.allowlist = allowlist;
57
24
  }
58
- getDescription(params) {
59
- let description = `${params.command}`;
25
+ getDescription() {
26
+ let description = `${this.params.command}`;
60
27
  // append optional [in directory]
61
28
  // note description is needed even if validation fails due to absolute path
62
- if (params.directory) {
63
- description += ` [in ${params.directory}]`;
29
+ if (this.params.directory) {
30
+ description += ` [in ${this.params.directory}]`;
64
31
  }
65
32
  // append optional (description), replacing any line breaks with spaces
66
- if (params.description) {
67
- description += ` (${params.description.replace(/\n/g, ' ')})`;
33
+ if (this.params.description) {
34
+ description += ` (${this.params.description.replace(/\n/g, ' ')})`;
68
35
  }
69
36
  return description;
70
37
  }
71
- validateToolParams(params) {
72
- const commandCheck = isCommandAllowed(params.command, this.config);
73
- if (!commandCheck.allowed) {
74
- if (!commandCheck.reason) {
75
- console.error('Unexpected: isCommandAllowed returned false without a reason');
76
- return `Command is not allowed: ${params.command}`;
77
- }
78
- return commandCheck.reason;
79
- }
80
- const errors = SchemaValidator.validate(this.schema.parameters, params);
81
- if (errors) {
82
- return errors;
83
- }
84
- if (!params.command.trim()) {
85
- return 'Command cannot be empty.';
86
- }
87
- if (getCommandRoots(params.command).length === 0) {
88
- return 'Could not identify command root to obtain permission from user.';
89
- }
90
- if (params.directory) {
91
- if (path.isAbsolute(params.directory)) {
92
- return 'Directory cannot be absolute. Please refer to workspace directories by their name.';
93
- }
94
- const workspaceDirs = this.config.getWorkspaceContext().getDirectories();
95
- const matchingDirs = workspaceDirs.filter((dir) => path.basename(dir) === params.directory);
96
- if (matchingDirs.length === 0) {
97
- return `Directory '${params.directory}' is not a registered workspace directory.`;
98
- }
99
- if (matchingDirs.length > 1) {
100
- return `Directory name '${params.directory}' is ambiguous as it matches multiple workspace directories.`;
101
- }
102
- }
103
- return null;
104
- }
105
- async shouldConfirmExecute(params, _abortSignal) {
106
- if (this.validateToolParams(params)) {
107
- return false; // skip confirmation, execute call will fail immediately
108
- }
109
- const command = stripShellWrapper(params.command);
38
+ async shouldConfirmExecute(_abortSignal) {
39
+ const command = stripShellWrapper(this.params.command);
110
40
  const rootCommands = [...new Set(getCommandRoots(command))];
111
41
  const commandsToConfirm = rootCommands.filter((command) => !this.allowlist.has(command));
112
42
  if (commandsToConfirm.length === 0) {
@@ -115,7 +45,7 @@ export class ShellTool extends BaseTool {
115
45
  const confirmationDetails = {
116
46
  type: 'exec',
117
47
  title: 'Confirm Shell Command',
118
- command: params.command,
48
+ command: this.params.command,
119
49
  rootCommand: commandsToConfirm.join(', '),
120
50
  onConfirm: async (outcome) => {
121
51
  if (outcome === ToolConfirmationOutcome.ProceedAlways) {
@@ -125,22 +55,8 @@ export class ShellTool extends BaseTool {
125
55
  };
126
56
  return confirmationDetails;
127
57
  }
128
- async execute(params, signal, updateOutput) {
129
- const strippedCommand = stripShellWrapper(params.command);
130
- const validationError = this.validateToolParams({
131
- ...params,
132
- command: strippedCommand,
133
- });
134
- if (validationError) {
135
- return {
136
- llmContent: `Could not execute command due to invalid parameters: ${validationError}`,
137
- returnDisplay: validationError,
138
- error: {
139
- message: validationError,
140
- type: ToolErrorType.INVALID_TOOL_PARAMS,
141
- },
142
- };
143
- }
58
+ async execute(signal, updateOutput, terminalColumns, terminalRows) {
59
+ const strippedCommand = stripShellWrapper(this.params.command);
144
60
  if (signal.aborted) {
145
61
  return {
146
62
  llmContent: 'Command was cancelled by user before it could start.',
@@ -163,12 +79,11 @@ export class ShellTool extends BaseTool {
163
79
  command += ';';
164
80
  return `{ ${command} }; __code=$?; pgrep -g 0 >${tempFilePath} 2>&1; exit $__code;`;
165
81
  })();
166
- const cwd = path.resolve(this.config.getTargetDir(), params.directory || '');
167
- let cumulativeStdout = '';
168
- let cumulativeStderr = '';
82
+ const cwd = path.resolve(this.config.getTargetDir(), this.params.directory || '');
83
+ let cumulativeOutput = '';
169
84
  let lastUpdateTime = Date.now();
170
85
  let isBinaryStream = false;
171
- const { result: resultPromise } = ShellExecutionService.execute(commandToExecute, cwd, (event) => {
86
+ const { result: resultPromise } = await ShellExecutionService.execute(commandToExecute, cwd, (event) => {
172
87
  if (!updateOutput) {
173
88
  return;
174
89
  }
@@ -177,16 +92,9 @@ export class ShellTool extends BaseTool {
177
92
  switch (event.type) {
178
93
  case 'data':
179
94
  if (isBinaryStream)
180
- break; // Don't process text if we are in binary mode
181
- if (event.stream === 'stdout') {
182
- cumulativeStdout += event.chunk;
183
- }
184
- else {
185
- cumulativeStderr += event.chunk;
186
- }
187
- currentDisplayOutput =
188
- cumulativeStdout +
189
- (cumulativeStderr ? `\n${cumulativeStderr}` : '');
95
+ break;
96
+ cumulativeOutput = event.chunk;
97
+ currentDisplayOutput = cumulativeOutput;
190
98
  if (Date.now() - lastUpdateTime > OUTPUT_UPDATE_INTERVAL_MS) {
191
99
  shouldUpdate = true;
192
100
  }
@@ -212,7 +120,7 @@ export class ShellTool extends BaseTool {
212
120
  updateOutput(currentDisplayOutput);
213
121
  lastUpdateTime = Date.now();
214
122
  }
215
- }, signal);
123
+ }, signal, this.config.getShouldUseNodePtyShell(), terminalColumns, terminalRows);
216
124
  const result = await resultPromise;
217
125
  const backgroundPIDs = [];
218
126
  if (os.platform() !== 'win32') {
@@ -241,7 +149,7 @@ export class ShellTool extends BaseTool {
241
149
  if (result.aborted) {
242
150
  llmContent = 'Command was cancelled by user before it could complete.';
243
151
  if (result.output.trim()) {
244
- llmContent += ` Below is the output (on stdout and stderr) before it was cancelled:\n${result.output}`;
152
+ llmContent += ` Below is the output before it was cancelled:\n${result.output}`;
245
153
  }
246
154
  else {
247
155
  llmContent += ' There was no output before it was cancelled.';
@@ -251,13 +159,12 @@ export class ShellTool extends BaseTool {
251
159
  // Create a formatted error string for display, replacing the wrapper command
252
160
  // with the user-facing command.
253
161
  const finalError = result.error
254
- ? result.error.message.replace(commandToExecute, params.command)
162
+ ? result.error.message.replace(commandToExecute, this.params.command)
255
163
  : '(none)';
256
164
  llmContent = [
257
- `Command: ${params.command}`,
258
- `Directory: ${params.directory || '(root)'}`,
259
- `Stdout: ${result.stdout || '(empty)'}`,
260
- `Stderr: ${result.stderr || '(empty)'}`,
165
+ `Command: ${this.params.command}`,
166
+ `Directory: ${this.params.directory || '(root)'}`,
167
+ `Output: ${result.output || '(empty)'}`,
261
168
  `Error: ${finalError}`, // Use the cleaned error string.
262
169
  `Exit Code: ${result.exitCode ?? '(none)'}`,
263
170
  `Signal: ${result.signal ?? '(none)'}`,
@@ -291,8 +198,8 @@ export class ShellTool extends BaseTool {
291
198
  }
292
199
  }
293
200
  const summarizeConfig = this.config.getSummarizeToolOutputConfig();
294
- if (summarizeConfig && summarizeConfig[this.name]) {
295
- const summary = await summarizeToolOutput(llmContent, this.config.getGeminiClient(), signal, summarizeConfig[this.name].tokenBudget);
201
+ if (summarizeConfig && summarizeConfig[ShellTool.Name]) {
202
+ const summary = await summarizeToolOutput(llmContent, this.config.getGeminiClient(), signal, summarizeConfig[ShellTool.Name].tokenBudget);
296
203
  return {
297
204
  llmContent: summary,
298
205
  returnDisplay: returnDisplayMessage,
@@ -310,4 +217,93 @@ export class ShellTool extends BaseTool {
310
217
  }
311
218
  }
312
219
  }
220
+ function getShellToolDescription() {
221
+ const returnedInfo = `
222
+
223
+ The following information is returned:
224
+
225
+ Command: Executed command.
226
+ Directory: Directory (relative to project root) where command was executed, or \`(root)\`.
227
+ Stdout: Output on stdout stream. Can be \`(empty)\` or partial on error and for any unwaited background processes.
228
+ Stderr: Output on stderr stream. Can be \`(empty)\` or partial on error and for any unwaited background processes.
229
+ Error: Error or \`(none)\` if no error was reported for the subprocess.
230
+ Exit Code: Exit code or \`(none)\` if terminated by signal.
231
+ Signal: Signal number or \`(none)\` if no signal was received.
232
+ Background PIDs: List of background processes started or \`(none)\`.
233
+ Process Group PGID: Process group started or \`(none)\``;
234
+ if (os.platform() === 'win32') {
235
+ return `This tool executes a given shell command as \`cmd.exe /c <command>\`. Command can start background processes using \`start /b\`.${returnedInfo}`;
236
+ }
237
+ else {
238
+ return `This tool executes a given shell command as \`bash -c <command>\`. Command can start background processes using \`&\`. Command is executed as a subprocess that leads its own process group. Command process group can be terminated as \`kill -- -PGID\` or signaled as \`kill -s SIGNAL -- -PGID\`.${returnedInfo}`;
239
+ }
240
+ }
241
+ function getCommandDescription() {
242
+ if (os.platform() === 'win32') {
243
+ return 'Exact command to execute as `cmd.exe /c <command>`';
244
+ }
245
+ else {
246
+ return 'Exact bash command to execute as `bash -c <command>`';
247
+ }
248
+ }
249
+ export class ShellTool extends BaseDeclarativeTool {
250
+ config;
251
+ static Name = 'run_shell_command';
252
+ allowlist = new Set();
253
+ constructor(config) {
254
+ super(ShellTool.Name, 'Shell', getShellToolDescription(), Kind.Execute, {
255
+ type: 'object',
256
+ properties: {
257
+ command: {
258
+ type: 'string',
259
+ description: getCommandDescription(),
260
+ },
261
+ description: {
262
+ type: 'string',
263
+ description: 'Brief description of the command for the user. Be specific and concise. Ideally a single sentence. Can be up to 3 sentences for clarity. No line breaks.',
264
+ },
265
+ directory: {
266
+ type: 'string',
267
+ description: '(OPTIONAL) Directory to run the command in, if not the project root directory. Must be relative to the project root directory and must already exist.',
268
+ },
269
+ },
270
+ required: ['command'],
271
+ }, false, // output is not markdown
272
+ true);
273
+ this.config = config;
274
+ }
275
+ validateToolParamValues(params) {
276
+ const commandCheck = isCommandAllowed(params.command, this.config);
277
+ if (!commandCheck.allowed) {
278
+ if (!commandCheck.reason) {
279
+ console.error('Unexpected: isCommandAllowed returned false without a reason');
280
+ return `Command is not allowed: ${params.command}`;
281
+ }
282
+ return commandCheck.reason;
283
+ }
284
+ if (!params.command.trim()) {
285
+ return 'Command cannot be empty.';
286
+ }
287
+ if (getCommandRoots(params.command).length === 0) {
288
+ return 'Could not identify command root to obtain permission from user.';
289
+ }
290
+ if (params.directory) {
291
+ if (path.isAbsolute(params.directory)) {
292
+ return 'Directory cannot be absolute. Please refer to workspace directories by their name.';
293
+ }
294
+ const workspaceDirs = this.config.getWorkspaceContext().getDirectories();
295
+ const matchingDirs = workspaceDirs.filter((dir) => path.basename(dir) === params.directory);
296
+ if (matchingDirs.length === 0) {
297
+ return `Directory '${params.directory}' is not a registered workspace directory.`;
298
+ }
299
+ if (matchingDirs.length > 1) {
300
+ return `Directory name '${params.directory}' is ambiguous as it matches multiple workspace directories.`;
301
+ }
302
+ }
303
+ return null;
304
+ }
305
+ createInvocation(params) {
306
+ return new ShellToolInvocation(this.config, params, this.allowlist);
307
+ }
308
+ }
313
309
  //# sourceMappingURL=shell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../../src/tools/shell.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../../src/tools/shell.ts"],"names":[],"mappings":"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"}