@office-ai/aioncli-core 0.1.18-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (567) hide show
  1. package/dist/.last_build +0 -0
  2. package/dist/index.d.ts +7 -0
  3. package/dist/index.js +8 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/src/__mocks__/fs/promises.d.ts +11 -0
  6. package/dist/src/__mocks__/fs/promises.js +17 -0
  7. package/dist/src/__mocks__/fs/promises.js.map +1 -0
  8. package/dist/src/code_assist/codeAssist.d.ts +9 -0
  9. package/dist/src/code_assist/codeAssist.js +19 -0
  10. package/dist/src/code_assist/codeAssist.js.map +1 -0
  11. package/dist/src/code_assist/converter.d.ts +70 -0
  12. package/dist/src/code_assist/converter.js +126 -0
  13. package/dist/src/code_assist/converter.js.map +1 -0
  14. package/dist/src/code_assist/converter.test.d.ts +6 -0
  15. package/dist/src/code_assist/converter.test.js +279 -0
  16. package/dist/src/code_assist/converter.test.js.map +1 -0
  17. package/dist/src/code_assist/oauth2.d.ts +20 -0
  18. package/dist/src/code_assist/oauth2.js +337 -0
  19. package/dist/src/code_assist/oauth2.js.map +1 -0
  20. package/dist/src/code_assist/oauth2.test.d.ts +6 -0
  21. package/dist/src/code_assist/oauth2.test.js +334 -0
  22. package/dist/src/code_assist/oauth2.test.js.map +1 -0
  23. package/dist/src/code_assist/server.d.ts +37 -0
  24. package/dist/src/code_assist/server.js +125 -0
  25. package/dist/src/code_assist/server.js.map +1 -0
  26. package/dist/src/code_assist/server.test.d.ts +6 -0
  27. package/dist/src/code_assist/server.test.js +134 -0
  28. package/dist/src/code_assist/server.test.js.map +1 -0
  29. package/dist/src/code_assist/setup.d.ts +20 -0
  30. package/dist/src/code_assist/setup.js +70 -0
  31. package/dist/src/code_assist/setup.js.map +1 -0
  32. package/dist/src/code_assist/setup.test.d.ts +6 -0
  33. package/dist/src/code_assist/setup.test.js +65 -0
  34. package/dist/src/code_assist/setup.test.js.map +1 -0
  35. package/dist/src/code_assist/types.d.ts +148 -0
  36. package/dist/src/code_assist/types.js +46 -0
  37. package/dist/src/code_assist/types.js.map +1 -0
  38. package/dist/src/config/config.d.ts +272 -0
  39. package/dist/src/config/config.js +554 -0
  40. package/dist/src/config/config.js.map +1 -0
  41. package/dist/src/config/config.test.d.ts +6 -0
  42. package/dist/src/config/config.test.js +365 -0
  43. package/dist/src/config/config.test.js.map +1 -0
  44. package/dist/src/config/flashFallback.test.d.ts +6 -0
  45. package/dist/src/config/flashFallback.test.js +87 -0
  46. package/dist/src/config/flashFallback.test.js.map +1 -0
  47. package/dist/src/config/models.d.ts +9 -0
  48. package/dist/src/config/models.js +10 -0
  49. package/dist/src/config/models.js.map +1 -0
  50. package/dist/src/core/client.d.ts +61 -0
  51. package/dist/src/core/client.js +485 -0
  52. package/dist/src/core/client.js.map +1 -0
  53. package/dist/src/core/client.test.d.ts +6 -0
  54. package/dist/src/core/client.test.js +1008 -0
  55. package/dist/src/core/client.test.js.map +1 -0
  56. package/dist/src/core/contentGenerator.d.ts +45 -0
  57. package/dist/src/core/contentGenerator.js +81 -0
  58. package/dist/src/core/contentGenerator.js.map +1 -0
  59. package/dist/src/core/contentGenerator.test.d.ts +6 -0
  60. package/dist/src/core/contentGenerator.test.js +100 -0
  61. package/dist/src/core/contentGenerator.test.js.map +1 -0
  62. package/dist/src/core/coreToolScheduler.d.ts +117 -0
  63. package/dist/src/core/coreToolScheduler.js +530 -0
  64. package/dist/src/core/coreToolScheduler.js.map +1 -0
  65. package/dist/src/core/coreToolScheduler.test.d.ts +6 -0
  66. package/dist/src/core/coreToolScheduler.test.js +625 -0
  67. package/dist/src/core/coreToolScheduler.test.js.map +1 -0
  68. package/dist/src/core/geminiChat.d.ts +118 -0
  69. package/dist/src/core/geminiChat.js +509 -0
  70. package/dist/src/core/geminiChat.js.map +1 -0
  71. package/dist/src/core/geminiChat.test.d.ts +6 -0
  72. package/dist/src/core/geminiChat.test.js +424 -0
  73. package/dist/src/core/geminiChat.test.js.map +1 -0
  74. package/dist/src/core/geminiRequest.d.ts +13 -0
  75. package/dist/src/core/geminiRequest.js +10 -0
  76. package/dist/src/core/geminiRequest.js.map +1 -0
  77. package/dist/src/core/logger.d.ts +37 -0
  78. package/dist/src/core/logger.js +273 -0
  79. package/dist/src/core/logger.js.map +1 -0
  80. package/dist/src/core/logger.test.d.ts +6 -0
  81. package/dist/src/core/logger.test.js +467 -0
  82. package/dist/src/core/logger.test.js.map +1 -0
  83. package/dist/src/core/loggingContentGenerator.d.ts +24 -0
  84. package/dist/src/core/loggingContentGenerator.js +89 -0
  85. package/dist/src/core/loggingContentGenerator.js.map +1 -0
  86. package/dist/src/core/modelCheck.d.ts +14 -0
  87. package/dist/src/core/modelCheck.js +62 -0
  88. package/dist/src/core/modelCheck.js.map +1 -0
  89. package/dist/src/core/nonInteractiveToolExecutor.d.ts +12 -0
  90. package/dist/src/core/nonInteractiveToolExecutor.js +124 -0
  91. package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -0
  92. package/dist/src/core/nonInteractiveToolExecutor.test.d.ts +6 -0
  93. package/dist/src/core/nonInteractiveToolExecutor.test.js +165 -0
  94. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -0
  95. package/dist/src/core/openaiContentGenerator.d.ts +77 -0
  96. package/dist/src/core/openaiContentGenerator.js +1395 -0
  97. package/dist/src/core/openaiContentGenerator.js.map +1 -0
  98. package/dist/src/core/openaiContentGenerator.test.d.ts +6 -0
  99. package/dist/src/core/openaiContentGenerator.test.js +1904 -0
  100. package/dist/src/core/openaiContentGenerator.test.js.map +1 -0
  101. package/dist/src/core/prompts.d.ts +12 -0
  102. package/dist/src/core/prompts.js +359 -0
  103. package/dist/src/core/prompts.js.map +1 -0
  104. package/dist/src/core/prompts.test.d.ts +6 -0
  105. package/dist/src/core/prompts.test.js +214 -0
  106. package/dist/src/core/prompts.test.js.map +1 -0
  107. package/dist/src/core/subagent.d.ts +230 -0
  108. package/dist/src/core/subagent.js +447 -0
  109. package/dist/src/core/subagent.js.map +1 -0
  110. package/dist/src/core/subagent.test.d.ts +6 -0
  111. package/dist/src/core/subagent.test.js +515 -0
  112. package/dist/src/core/subagent.test.js.map +1 -0
  113. package/dist/src/core/tokenLimits.d.ts +10 -0
  114. package/dist/src/core/tokenLimits.js +28 -0
  115. package/dist/src/core/tokenLimits.js.map +1 -0
  116. package/dist/src/core/turn.d.ts +114 -0
  117. package/dist/src/core/turn.js +143 -0
  118. package/dist/src/core/turn.js.map +1 -0
  119. package/dist/src/core/turn.test.d.ts +6 -0
  120. package/dist/src/core/turn.test.js +369 -0
  121. package/dist/src/core/turn.test.js.map +1 -0
  122. package/dist/src/ide/detect-ide.d.ts +10 -0
  123. package/dist/src/ide/detect-ide.js +27 -0
  124. package/dist/src/ide/detect-ide.js.map +1 -0
  125. package/dist/src/ide/ide-client.d.ts +56 -0
  126. package/dist/src/ide/ide-client.js +268 -0
  127. package/dist/src/ide/ide-client.js.map +1 -0
  128. package/dist/src/ide/ide-installer.d.ts +14 -0
  129. package/dist/src/ide/ide-installer.js +109 -0
  130. package/dist/src/ide/ide-installer.js.map +1 -0
  131. package/dist/src/ide/ide-installer.test.d.ts +6 -0
  132. package/dist/src/ide/ide-installer.test.js +55 -0
  133. package/dist/src/ide/ide-installer.test.js.map +1 -0
  134. package/dist/src/ide/ideContext.d.ts +374 -0
  135. package/dist/src/ide/ideContext.js +147 -0
  136. package/dist/src/ide/ideContext.js.map +1 -0
  137. package/dist/src/ide/ideContext.test.d.ts +6 -0
  138. package/dist/src/ide/ideContext.test.js +265 -0
  139. package/dist/src/ide/ideContext.test.js.map +1 -0
  140. package/dist/src/index.d.ts +68 -0
  141. package/dist/src/index.js +78 -0
  142. package/dist/src/index.js.map +1 -0
  143. package/dist/src/index.test.d.ts +6 -0
  144. package/dist/src/index.test.js +12 -0
  145. package/dist/src/index.test.js.map +1 -0
  146. package/dist/src/mcp/google-auth-provider.d.ts +23 -0
  147. package/dist/src/mcp/google-auth-provider.js +63 -0
  148. package/dist/src/mcp/google-auth-provider.js.map +1 -0
  149. package/dist/src/mcp/google-auth-provider.test.d.ts +6 -0
  150. package/dist/src/mcp/google-auth-provider.test.js +54 -0
  151. package/dist/src/mcp/google-auth-provider.test.js.map +1 -0
  152. package/dist/src/mcp/oauth-provider.d.ts +147 -0
  153. package/dist/src/mcp/oauth-provider.js +484 -0
  154. package/dist/src/mcp/oauth-provider.js.map +1 -0
  155. package/dist/src/mcp/oauth-provider.test.d.ts +6 -0
  156. package/dist/src/mcp/oauth-provider.test.js +602 -0
  157. package/dist/src/mcp/oauth-provider.test.js.map +1 -0
  158. package/dist/src/mcp/oauth-token-storage.d.ts +83 -0
  159. package/dist/src/mcp/oauth-token-storage.js +151 -0
  160. package/dist/src/mcp/oauth-token-storage.js.map +1 -0
  161. package/dist/src/mcp/oauth-token-storage.test.d.ts +6 -0
  162. package/dist/src/mcp/oauth-token-storage.test.js +205 -0
  163. package/dist/src/mcp/oauth-token-storage.test.js.map +1 -0
  164. package/dist/src/mcp/oauth-utils.d.ts +109 -0
  165. package/dist/src/mcp/oauth-utils.js +183 -0
  166. package/dist/src/mcp/oauth-utils.js.map +1 -0
  167. package/dist/src/mcp/oauth-utils.test.d.ts +6 -0
  168. package/dist/src/mcp/oauth-utils.test.js +144 -0
  169. package/dist/src/mcp/oauth-utils.test.js.map +1 -0
  170. package/dist/src/prompts/mcp-prompts.d.ts +8 -0
  171. package/dist/src/prompts/mcp-prompts.js +13 -0
  172. package/dist/src/prompts/mcp-prompts.js.map +1 -0
  173. package/dist/src/prompts/prompt-registry.d.ts +34 -0
  174. package/dist/src/prompts/prompt-registry.js +63 -0
  175. package/dist/src/prompts/prompt-registry.js.map +1 -0
  176. package/dist/src/services/fileDiscoveryService.d.ts +35 -0
  177. package/dist/src/services/fileDiscoveryService.js +91 -0
  178. package/dist/src/services/fileDiscoveryService.js.map +1 -0
  179. package/dist/src/services/fileDiscoveryService.test.d.ts +6 -0
  180. package/dist/src/services/fileDiscoveryService.test.js +143 -0
  181. package/dist/src/services/fileDiscoveryService.test.js.map +1 -0
  182. package/dist/src/services/gitService.d.ts +21 -0
  183. package/dist/src/services/gitService.js +101 -0
  184. package/dist/src/services/gitService.js.map +1 -0
  185. package/dist/src/services/gitService.test.d.ts +6 -0
  186. package/dist/src/services/gitService.test.js +209 -0
  187. package/dist/src/services/gitService.test.js.map +1 -0
  188. package/dist/src/services/loopDetectionService.d.ts +97 -0
  189. package/dist/src/services/loopDetectionService.js +340 -0
  190. package/dist/src/services/loopDetectionService.js.map +1 -0
  191. package/dist/src/services/loopDetectionService.test.d.ts +6 -0
  192. package/dist/src/services/loopDetectionService.test.js +484 -0
  193. package/dist/src/services/loopDetectionService.test.js.map +1 -0
  194. package/dist/src/services/shellExecutionService.d.ts +70 -0
  195. package/dist/src/services/shellExecutionService.js +175 -0
  196. package/dist/src/services/shellExecutionService.js.map +1 -0
  197. package/dist/src/services/shellExecutionService.test.d.ts +6 -0
  198. package/dist/src/services/shellExecutionService.test.js +272 -0
  199. package/dist/src/services/shellExecutionService.test.js.map +1 -0
  200. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +65 -0
  201. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +652 -0
  202. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -0
  203. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.d.ts +6 -0
  204. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +186 -0
  205. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -0
  206. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +59 -0
  207. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +159 -0
  208. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -0
  209. package/dist/src/telemetry/constants.d.ts +23 -0
  210. package/dist/src/telemetry/constants.js +24 -0
  211. package/dist/src/telemetry/constants.js.map +1 -0
  212. package/dist/src/telemetry/file-exporters.d.ts +28 -0
  213. package/dist/src/telemetry/file-exporters.js +62 -0
  214. package/dist/src/telemetry/file-exporters.js.map +1 -0
  215. package/dist/src/telemetry/index.d.ts +18 -0
  216. package/dist/src/telemetry/index.js +20 -0
  217. package/dist/src/telemetry/index.js.map +1 -0
  218. package/dist/src/telemetry/integration.test.circular.d.ts +6 -0
  219. package/dist/src/telemetry/integration.test.circular.js +53 -0
  220. package/dist/src/telemetry/integration.test.circular.js.map +1 -0
  221. package/dist/src/telemetry/loggers.d.ts +18 -0
  222. package/dist/src/telemetry/loggers.js +268 -0
  223. package/dist/src/telemetry/loggers.js.map +1 -0
  224. package/dist/src/telemetry/loggers.test.circular.d.ts +6 -0
  225. package/dist/src/telemetry/loggers.test.circular.js +107 -0
  226. package/dist/src/telemetry/loggers.test.circular.js.map +1 -0
  227. package/dist/src/telemetry/loggers.test.d.ts +6 -0
  228. package/dist/src/telemetry/loggers.test.js +568 -0
  229. package/dist/src/telemetry/loggers.test.js.map +1 -0
  230. package/dist/src/telemetry/metrics.d.ts +20 -0
  231. package/dist/src/telemetry/metrics.js +150 -0
  232. package/dist/src/telemetry/metrics.js.map +1 -0
  233. package/dist/src/telemetry/metrics.test.d.ts +6 -0
  234. package/dist/src/telemetry/metrics.test.js +212 -0
  235. package/dist/src/telemetry/metrics.test.js.map +1 -0
  236. package/dist/src/telemetry/sdk.d.ts +9 -0
  237. package/dist/src/telemetry/sdk.js +127 -0
  238. package/dist/src/telemetry/sdk.js.map +1 -0
  239. package/dist/src/telemetry/telemetry.test.d.ts +6 -0
  240. package/dist/src/telemetry/telemetry.test.js +50 -0
  241. package/dist/src/telemetry/telemetry.test.js.map +1 -0
  242. package/dist/src/telemetry/tool-call-decision.d.ts +13 -0
  243. package/dist/src/telemetry/tool-call-decision.js +29 -0
  244. package/dist/src/telemetry/tool-call-decision.js.map +1 -0
  245. package/dist/src/telemetry/types.d.ts +145 -0
  246. package/dist/src/telemetry/types.js +267 -0
  247. package/dist/src/telemetry/types.js.map +1 -0
  248. package/dist/src/telemetry/uiTelemetry.d.ts +71 -0
  249. package/dist/src/telemetry/uiTelemetry.js +140 -0
  250. package/dist/src/telemetry/uiTelemetry.js.map +1 -0
  251. package/dist/src/telemetry/uiTelemetry.test.d.ts +6 -0
  252. package/dist/src/telemetry/uiTelemetry.test.js +518 -0
  253. package/dist/src/telemetry/uiTelemetry.test.js.map +1 -0
  254. package/dist/src/test-utils/mockWorkspaceContext.d.ts +13 -0
  255. package/dist/src/test-utils/mockWorkspaceContext.js +24 -0
  256. package/dist/src/test-utils/mockWorkspaceContext.js.map +1 -0
  257. package/dist/src/test-utils/tools.d.ts +23 -0
  258. package/dist/src/test-utils/tools.js +41 -0
  259. package/dist/src/test-utils/tools.js.map +1 -0
  260. package/dist/src/tools/diffOptions.d.ts +9 -0
  261. package/dist/src/tools/diffOptions.js +38 -0
  262. package/dist/src/tools/diffOptions.js.map +1 -0
  263. package/dist/src/tools/diffOptions.test.d.ts +6 -0
  264. package/dist/src/tools/diffOptions.test.js +119 -0
  265. package/dist/src/tools/diffOptions.test.js.map +1 -0
  266. package/dist/src/tools/edit.d.ts +55 -0
  267. package/dist/src/tools/edit.js +398 -0
  268. package/dist/src/tools/edit.js.map +1 -0
  269. package/dist/src/tools/edit.test.d.ts +6 -0
  270. package/dist/src/tools/edit.test.js +681 -0
  271. package/dist/src/tools/edit.test.js.map +1 -0
  272. package/dist/src/tools/glob.d.ts +51 -0
  273. package/dist/src/tools/glob.js +226 -0
  274. package/dist/src/tools/glob.js.map +1 -0
  275. package/dist/src/tools/glob.test.d.ts +6 -0
  276. package/dist/src/tools/glob.test.js +330 -0
  277. package/dist/src/tools/glob.test.js.map +1 -0
  278. package/dist/src/tools/grep.d.ts +46 -0
  279. package/dist/src/tools/grep.js +503 -0
  280. package/dist/src/tools/grep.js.map +1 -0
  281. package/dist/src/tools/grep.test.d.ts +6 -0
  282. package/dist/src/tools/grep.test.js +272 -0
  283. package/dist/src/tools/grep.test.js.map +1 -0
  284. package/dist/src/tools/ls.d.ts +86 -0
  285. package/dist/src/tools/ls.js +224 -0
  286. package/dist/src/tools/ls.js.map +1 -0
  287. package/dist/src/tools/ls.test.d.ts +6 -0
  288. package/dist/src/tools/ls.test.js +356 -0
  289. package/dist/src/tools/ls.test.js.map +1 -0
  290. package/dist/src/tools/mcp-client.d.ts +149 -0
  291. package/dist/src/tools/mcp-client.js +844 -0
  292. package/dist/src/tools/mcp-client.js.map +1 -0
  293. package/dist/src/tools/mcp-client.test.d.ts +6 -0
  294. package/dist/src/tools/mcp-client.test.js +643 -0
  295. package/dist/src/tools/mcp-client.test.js.map +1 -0
  296. package/dist/src/tools/mcp-tool.d.ts +29 -0
  297. package/dist/src/tools/mcp-tool.js +202 -0
  298. package/dist/src/tools/mcp-tool.js.map +1 -0
  299. package/dist/src/tools/mcp-tool.test.d.ts +6 -0
  300. package/dist/src/tools/mcp-tool.test.js +501 -0
  301. package/dist/src/tools/mcp-tool.test.js.map +1 -0
  302. package/dist/src/tools/memoryTool.d.ts +43 -0
  303. package/dist/src/tools/memoryTool.js +290 -0
  304. package/dist/src/tools/memoryTool.js.map +1 -0
  305. package/dist/src/tools/memoryTool.test.d.ts +6 -0
  306. package/dist/src/tools/memoryTool.test.js +266 -0
  307. package/dist/src/tools/memoryTool.test.js.map +1 -0
  308. package/dist/src/tools/modifiable-tool.d.ts +32 -0
  309. package/dist/src/tools/modifiable-tool.js +88 -0
  310. package/dist/src/tools/modifiable-tool.js.map +1 -0
  311. package/dist/src/tools/modifiable-tool.test.d.ts +6 -0
  312. package/dist/src/tools/modifiable-tool.test.js +193 -0
  313. package/dist/src/tools/modifiable-tool.test.js.map +1 -0
  314. package/dist/src/tools/read-file.d.ts +34 -0
  315. package/dist/src/tools/read-file.js +152 -0
  316. package/dist/src/tools/read-file.js.map +1 -0
  317. package/dist/src/tools/read-file.test.d.ts +6 -0
  318. package/dist/src/tools/read-file.test.js +300 -0
  319. package/dist/src/tools/read-file.test.js.map +1 -0
  320. package/dist/src/tools/read-many-files.d.ts +61 -0
  321. package/dist/src/tools/read-many-files.js +421 -0
  322. package/dist/src/tools/read-many-files.js.map +1 -0
  323. package/dist/src/tools/read-many-files.test.d.ts +6 -0
  324. package/dist/src/tools/read-many-files.test.js +455 -0
  325. package/dist/src/tools/read-many-files.test.js.map +1 -0
  326. package/dist/src/tools/shell.d.ts +23 -0
  327. package/dist/src/tools/shell.js +313 -0
  328. package/dist/src/tools/shell.js.map +1 -0
  329. package/dist/src/tools/shell.test.d.ts +6 -0
  330. package/dist/src/tools/shell.test.js +321 -0
  331. package/dist/src/tools/shell.test.js.map +1 -0
  332. package/dist/src/tools/tool-error.d.ts +26 -0
  333. package/dist/src/tools/tool-error.js +31 -0
  334. package/dist/src/tools/tool-error.js.map +1 -0
  335. package/dist/src/tools/tool-registry.d.ts +85 -0
  336. package/dist/src/tools/tool-registry.js +390 -0
  337. package/dist/src/tools/tool-registry.js.map +1 -0
  338. package/dist/src/tools/tool-registry.test.d.ts +6 -0
  339. package/dist/src/tools/tool-registry.test.js +417 -0
  340. package/dist/src/tools/tool-registry.test.js.map +1 -0
  341. package/dist/src/tools/tools.d.ts +328 -0
  342. package/dist/src/tools/tools.js +281 -0
  343. package/dist/src/tools/tools.js.map +1 -0
  344. package/dist/src/tools/tools.test.d.ts +6 -0
  345. package/dist/src/tools/tools.test.js +117 -0
  346. package/dist/src/tools/tools.test.js.map +1 -0
  347. package/dist/src/tools/web-fetch.d.ts +29 -0
  348. package/dist/src/tools/web-fetch.js +246 -0
  349. package/dist/src/tools/web-fetch.js.map +1 -0
  350. package/dist/src/tools/web-fetch.test.d.ts +6 -0
  351. package/dist/src/tools/web-fetch.test.js +71 -0
  352. package/dist/src/tools/web-fetch.test.js.map +1 -0
  353. package/dist/src/tools/web-search.d.ts +49 -0
  354. package/dist/src/tools/web-search.js +120 -0
  355. package/dist/src/tools/web-search.js.map +1 -0
  356. package/dist/src/tools/write-file.d.ts +46 -0
  357. package/dist/src/tools/write-file.js +321 -0
  358. package/dist/src/tools/write-file.js.map +1 -0
  359. package/dist/src/tools/write-file.test.d.ts +6 -0
  360. package/dist/src/tools/write-file.test.js +572 -0
  361. package/dist/src/tools/write-file.test.js.map +1 -0
  362. package/dist/src/utils/LruCache.d.ts +13 -0
  363. package/dist/src/utils/LruCache.js +38 -0
  364. package/dist/src/utils/LruCache.js.map +1 -0
  365. package/dist/src/utils/bfsFileSearch.d.ts +24 -0
  366. package/dist/src/utils/bfsFileSearch.js +89 -0
  367. package/dist/src/utils/bfsFileSearch.js.map +1 -0
  368. package/dist/src/utils/bfsFileSearch.test.d.ts +6 -0
  369. package/dist/src/utils/bfsFileSearch.test.js +163 -0
  370. package/dist/src/utils/bfsFileSearch.test.js.map +1 -0
  371. package/dist/src/utils/browser.d.ts +13 -0
  372. package/dist/src/utils/browser.js +49 -0
  373. package/dist/src/utils/browser.js.map +1 -0
  374. package/dist/src/utils/editCorrector.d.ts +53 -0
  375. package/dist/src/utils/editCorrector.js +546 -0
  376. package/dist/src/utils/editCorrector.js.map +1 -0
  377. package/dist/src/utils/editCorrector.test.d.ts +6 -0
  378. package/dist/src/utils/editCorrector.test.js +564 -0
  379. package/dist/src/utils/editCorrector.test.js.map +1 -0
  380. package/dist/src/utils/editor.d.ts +28 -0
  381. package/dist/src/utils/editor.js +186 -0
  382. package/dist/src/utils/editor.js.map +1 -0
  383. package/dist/src/utils/editor.test.d.ts +6 -0
  384. package/dist/src/utils/editor.test.js +445 -0
  385. package/dist/src/utils/editor.test.js.map +1 -0
  386. package/dist/src/utils/environmentContext.d.ts +21 -0
  387. package/dist/src/utils/environmentContext.js +90 -0
  388. package/dist/src/utils/environmentContext.js.map +1 -0
  389. package/dist/src/utils/environmentContext.test.d.ts +6 -0
  390. package/dist/src/utils/environmentContext.test.js +139 -0
  391. package/dist/src/utils/environmentContext.test.js.map +1 -0
  392. package/dist/src/utils/errorReporting.d.ts +14 -0
  393. package/dist/src/utils/errorReporting.js +88 -0
  394. package/dist/src/utils/errorReporting.js.map +1 -0
  395. package/dist/src/utils/errorReporting.test.d.ts +6 -0
  396. package/dist/src/utils/errorReporting.test.js +130 -0
  397. package/dist/src/utils/errorReporting.test.js.map +1 -0
  398. package/dist/src/utils/errors.d.ts +14 -0
  399. package/dist/src/utils/errors.js +54 -0
  400. package/dist/src/utils/errors.js.map +1 -0
  401. package/dist/src/utils/fetch.d.ts +11 -0
  402. package/dist/src/utils/fetch.js +51 -0
  403. package/dist/src/utils/fetch.js.map +1 -0
  404. package/dist/src/utils/fileUtils.d.ts +56 -0
  405. package/dist/src/utils/fileUtils.js +314 -0
  406. package/dist/src/utils/fileUtils.js.map +1 -0
  407. package/dist/src/utils/fileUtils.test.d.ts +6 -0
  408. package/dist/src/utils/fileUtils.test.js +363 -0
  409. package/dist/src/utils/fileUtils.test.js.map +1 -0
  410. package/dist/src/utils/filesearch/crawlCache.d.ts +25 -0
  411. package/dist/src/utils/filesearch/crawlCache.js +57 -0
  412. package/dist/src/utils/filesearch/crawlCache.js.map +1 -0
  413. package/dist/src/utils/filesearch/crawlCache.test.d.ts +6 -0
  414. package/dist/src/utils/filesearch/crawlCache.test.js +103 -0
  415. package/dist/src/utils/filesearch/crawlCache.test.js.map +1 -0
  416. package/dist/src/utils/filesearch/fileSearch.d.ts +81 -0
  417. package/dist/src/utils/filesearch/fileSearch.js +241 -0
  418. package/dist/src/utils/filesearch/fileSearch.js.map +1 -0
  419. package/dist/src/utils/filesearch/fileSearch.test.d.ts +6 -0
  420. package/dist/src/utils/filesearch/fileSearch.test.js +654 -0
  421. package/dist/src/utils/filesearch/fileSearch.test.js.map +1 -0
  422. package/dist/src/utils/filesearch/ignore.d.ts +35 -0
  423. package/dist/src/utils/filesearch/ignore.js +81 -0
  424. package/dist/src/utils/filesearch/ignore.js.map +1 -0
  425. package/dist/src/utils/filesearch/ignore.test.d.ts +6 -0
  426. package/dist/src/utils/filesearch/ignore.test.js +57 -0
  427. package/dist/src/utils/filesearch/ignore.test.js.map +1 -0
  428. package/dist/src/utils/filesearch/result-cache.d.ts +34 -0
  429. package/dist/src/utils/filesearch/result-cache.js +61 -0
  430. package/dist/src/utils/filesearch/result-cache.js.map +1 -0
  431. package/dist/src/utils/filesearch/result-cache.test.d.ts +6 -0
  432. package/dist/src/utils/filesearch/result-cache.test.js +47 -0
  433. package/dist/src/utils/filesearch/result-cache.test.js.map +1 -0
  434. package/dist/src/utils/flashFallback.integration.test.d.ts +6 -0
  435. package/dist/src/utils/flashFallback.integration.test.js +118 -0
  436. package/dist/src/utils/flashFallback.integration.test.js.map +1 -0
  437. package/dist/src/utils/formatters.d.ts +6 -0
  438. package/dist/src/utils/formatters.js +16 -0
  439. package/dist/src/utils/formatters.js.map +1 -0
  440. package/dist/src/utils/generateContentResponseUtilities.d.ts +14 -0
  441. package/dist/src/utils/generateContentResponseUtilities.js +92 -0
  442. package/dist/src/utils/generateContentResponseUtilities.js.map +1 -0
  443. package/dist/src/utils/generateContentResponseUtilities.test.d.ts +6 -0
  444. package/dist/src/utils/generateContentResponseUtilities.test.js +273 -0
  445. package/dist/src/utils/generateContentResponseUtilities.test.js.map +1 -0
  446. package/dist/src/utils/getFolderStructure.d.ts +31 -0
  447. package/dist/src/utils/getFolderStructure.js +246 -0
  448. package/dist/src/utils/getFolderStructure.js.map +1 -0
  449. package/dist/src/utils/getFolderStructure.test.d.ts +6 -0
  450. package/dist/src/utils/getFolderStructure.test.js +282 -0
  451. package/dist/src/utils/getFolderStructure.test.js.map +1 -0
  452. package/dist/src/utils/gitIgnoreParser.d.ts +20 -0
  453. package/dist/src/utils/gitIgnoreParser.js +61 -0
  454. package/dist/src/utils/gitIgnoreParser.js.map +1 -0
  455. package/dist/src/utils/gitIgnoreParser.test.d.ts +6 -0
  456. package/dist/src/utils/gitIgnoreParser.test.js +154 -0
  457. package/dist/src/utils/gitIgnoreParser.test.js.map +1 -0
  458. package/dist/src/utils/gitUtils.d.ts +17 -0
  459. package/dist/src/utils/gitUtils.js +61 -0
  460. package/dist/src/utils/gitUtils.js.map +1 -0
  461. package/dist/src/utils/memoryDiscovery.d.ts +15 -0
  462. package/dist/src/utils/memoryDiscovery.js +219 -0
  463. package/dist/src/utils/memoryDiscovery.js.map +1 -0
  464. package/dist/src/utils/memoryDiscovery.test.d.ts +6 -0
  465. package/dist/src/utils/memoryDiscovery.test.js +181 -0
  466. package/dist/src/utils/memoryDiscovery.test.js.map +1 -0
  467. package/dist/src/utils/memoryImportProcessor.d.ts +42 -0
  468. package/dist/src/utils/memoryImportProcessor.js +300 -0
  469. package/dist/src/utils/memoryImportProcessor.js.map +1 -0
  470. package/dist/src/utils/memoryImportProcessor.test.d.ts +6 -0
  471. package/dist/src/utils/memoryImportProcessor.test.js +715 -0
  472. package/dist/src/utils/memoryImportProcessor.test.js.map +1 -0
  473. package/dist/src/utils/messageInspectors.d.ts +8 -0
  474. package/dist/src/utils/messageInspectors.js +16 -0
  475. package/dist/src/utils/messageInspectors.js.map +1 -0
  476. package/dist/src/utils/nextSpeakerChecker.d.ts +12 -0
  477. package/dist/src/utils/nextSpeakerChecker.js +92 -0
  478. package/dist/src/utils/nextSpeakerChecker.js.map +1 -0
  479. package/dist/src/utils/nextSpeakerChecker.test.d.ts +6 -0
  480. package/dist/src/utils/nextSpeakerChecker.test.js +168 -0
  481. package/dist/src/utils/nextSpeakerChecker.test.js.map +1 -0
  482. package/dist/src/utils/openaiLogger.d.ts +42 -0
  483. package/dist/src/utils/openaiLogger.js +123 -0
  484. package/dist/src/utils/openaiLogger.js.map +1 -0
  485. package/dist/src/utils/partUtils.d.ts +14 -0
  486. package/dist/src/utils/partUtils.js +65 -0
  487. package/dist/src/utils/partUtils.js.map +1 -0
  488. package/dist/src/utils/partUtils.test.d.ts +6 -0
  489. package/dist/src/utils/partUtils.test.js +130 -0
  490. package/dist/src/utils/partUtils.test.js.map +1 -0
  491. package/dist/src/utils/paths.d.ts +68 -0
  492. package/dist/src/utils/paths.js +170 -0
  493. package/dist/src/utils/paths.js.map +1 -0
  494. package/dist/src/utils/paths.test.d.ts +6 -0
  495. package/dist/src/utils/paths.test.js +153 -0
  496. package/dist/src/utils/paths.test.js.map +1 -0
  497. package/dist/src/utils/quotaErrorDetection.d.ts +22 -0
  498. package/dist/src/utils/quotaErrorDetection.js +65 -0
  499. package/dist/src/utils/quotaErrorDetection.js.map +1 -0
  500. package/dist/src/utils/retry.d.ts +30 -0
  501. package/dist/src/utils/retry.js +276 -0
  502. package/dist/src/utils/retry.js.map +1 -0
  503. package/dist/src/utils/retry.test.d.ts +6 -0
  504. package/dist/src/utils/retry.test.js +322 -0
  505. package/dist/src/utils/retry.test.js.map +1 -0
  506. package/dist/src/utils/safeJsonStringify.d.ts +13 -0
  507. package/dist/src/utils/safeJsonStringify.js +25 -0
  508. package/dist/src/utils/safeJsonStringify.js.map +1 -0
  509. package/dist/src/utils/safeJsonStringify.test.d.ts +6 -0
  510. package/dist/src/utils/safeJsonStringify.test.js +61 -0
  511. package/dist/src/utils/safeJsonStringify.test.js.map +1 -0
  512. package/dist/src/utils/schemaValidator.d.ts +22 -0
  513. package/dist/src/utils/schemaValidator.js +65 -0
  514. package/dist/src/utils/schemaValidator.js.map +1 -0
  515. package/dist/src/utils/secure-browser-launcher.d.ts +23 -0
  516. package/dist/src/utils/secure-browser-launcher.js +164 -0
  517. package/dist/src/utils/secure-browser-launcher.js.map +1 -0
  518. package/dist/src/utils/secure-browser-launcher.test.d.ts +6 -0
  519. package/dist/src/utils/secure-browser-launcher.test.js +149 -0
  520. package/dist/src/utils/secure-browser-launcher.test.js.map +1 -0
  521. package/dist/src/utils/session.d.ts +6 -0
  522. package/dist/src/utils/session.js +8 -0
  523. package/dist/src/utils/session.js.map +1 -0
  524. package/dist/src/utils/shell-utils.d.ts +78 -0
  525. package/dist/src/utils/shell-utils.js +306 -0
  526. package/dist/src/utils/shell-utils.js.map +1 -0
  527. package/dist/src/utils/shell-utils.test.d.ts +6 -0
  528. package/dist/src/utils/shell-utils.test.js +200 -0
  529. package/dist/src/utils/shell-utils.test.js.map +1 -0
  530. package/dist/src/utils/summarizer.d.ts +25 -0
  531. package/dist/src/utils/summarizer.js +51 -0
  532. package/dist/src/utils/summarizer.js.map +1 -0
  533. package/dist/src/utils/summarizer.test.d.ts +6 -0
  534. package/dist/src/utils/summarizer.test.js +131 -0
  535. package/dist/src/utils/summarizer.test.js.map +1 -0
  536. package/dist/src/utils/systemEncoding.d.ts +40 -0
  537. package/dist/src/utils/systemEncoding.js +149 -0
  538. package/dist/src/utils/systemEncoding.js.map +1 -0
  539. package/dist/src/utils/systemEncoding.test.d.ts +6 -0
  540. package/dist/src/utils/systemEncoding.test.js +368 -0
  541. package/dist/src/utils/systemEncoding.test.js.map +1 -0
  542. package/dist/src/utils/testUtils.d.ts +29 -0
  543. package/dist/src/utils/testUtils.js +70 -0
  544. package/dist/src/utils/testUtils.js.map +1 -0
  545. package/dist/src/utils/textUtils.d.ts +13 -0
  546. package/dist/src/utils/textUtils.js +28 -0
  547. package/dist/src/utils/textUtils.js.map +1 -0
  548. package/dist/src/utils/user_account.d.ts +9 -0
  549. package/dist/src/utils/user_account.js +99 -0
  550. package/dist/src/utils/user_account.js.map +1 -0
  551. package/dist/src/utils/user_account.test.d.ts +6 -0
  552. package/dist/src/utils/user_account.test.js +153 -0
  553. package/dist/src/utils/user_account.test.js.map +1 -0
  554. package/dist/src/utils/user_id.d.ts +11 -0
  555. package/dist/src/utils/user_id.js +49 -0
  556. package/dist/src/utils/user_id.js.map +1 -0
  557. package/dist/src/utils/user_id.test.d.ts +6 -0
  558. package/dist/src/utils/user_id.test.js +21 -0
  559. package/dist/src/utils/user_id.test.js.map +1 -0
  560. package/dist/src/utils/workspaceContext.d.ts +51 -0
  561. package/dist/src/utils/workspaceContext.js +139 -0
  562. package/dist/src/utils/workspaceContext.js.map +1 -0
  563. package/dist/src/utils/workspaceContext.test.d.ts +6 -0
  564. package/dist/src/utils/workspaceContext.test.js +209 -0
  565. package/dist/src/utils/workspaceContext.test.js.map +1 -0
  566. package/dist/tsconfig.tsbuildinfo +1 -0
  567. package/package.json +74 -0
@@ -0,0 +1,328 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { FunctionDeclaration, PartListUnion, Schema } from '@google/genai';
7
+ import { ToolErrorType } from './tool-error.js';
8
+ import { DiffUpdateResult } from '../ide/ideContext.js';
9
+ /**
10
+ * Represents a validated and ready-to-execute tool call.
11
+ * An instance of this is created by a `ToolBuilder`.
12
+ */
13
+ export interface ToolInvocation<TParams extends object, TResult extends ToolResult> {
14
+ /**
15
+ * The validated parameters for this specific invocation.
16
+ */
17
+ params: TParams;
18
+ /**
19
+ * Gets a pre-execution description of the tool operation.
20
+ * @returns A markdown string describing what the tool will do.
21
+ */
22
+ getDescription(): string;
23
+ /**
24
+ * Determines what file system paths the tool will affect.
25
+ * @returns A list of such paths.
26
+ */
27
+ toolLocations(): ToolLocation[];
28
+ /**
29
+ * Determines if the tool should prompt for confirmation before execution.
30
+ * @returns Confirmation details or false if no confirmation is needed.
31
+ */
32
+ shouldConfirmExecute(abortSignal: AbortSignal): Promise<ToolCallConfirmationDetails | false>;
33
+ /**
34
+ * Executes the tool with the validated parameters.
35
+ * @param signal AbortSignal for tool cancellation.
36
+ * @param updateOutput Optional callback to stream output.
37
+ * @returns Result of the tool execution.
38
+ */
39
+ execute(signal: AbortSignal, updateOutput?: (output: string) => void): Promise<TResult>;
40
+ }
41
+ /**
42
+ * A convenience base class for ToolInvocation.
43
+ */
44
+ export declare abstract class BaseToolInvocation<TParams extends object, TResult extends ToolResult> implements ToolInvocation<TParams, TResult> {
45
+ readonly params: TParams;
46
+ constructor(params: TParams);
47
+ abstract getDescription(): string;
48
+ toolLocations(): ToolLocation[];
49
+ shouldConfirmExecute(_abortSignal: AbortSignal): Promise<ToolCallConfirmationDetails | false>;
50
+ abstract execute(signal: AbortSignal, updateOutput?: (output: string) => void): Promise<TResult>;
51
+ }
52
+ /**
53
+ * A type alias for a tool invocation where the specific parameter and result types are not known.
54
+ */
55
+ export type AnyToolInvocation = ToolInvocation<object, ToolResult>;
56
+ /**
57
+ * An adapter that wraps the legacy `Tool` interface to make it compatible
58
+ * with the new `ToolInvocation` pattern.
59
+ */
60
+ export declare class LegacyToolInvocation<TParams extends object, TResult extends ToolResult> implements ToolInvocation<TParams, TResult> {
61
+ private readonly legacyTool;
62
+ readonly params: TParams;
63
+ constructor(legacyTool: BaseTool<TParams, TResult>, params: TParams);
64
+ getDescription(): string;
65
+ toolLocations(): ToolLocation[];
66
+ shouldConfirmExecute(abortSignal: AbortSignal): Promise<ToolCallConfirmationDetails | false>;
67
+ execute(signal: AbortSignal, updateOutput?: (output: string) => void): Promise<TResult>;
68
+ }
69
+ /**
70
+ * Interface for a tool builder that validates parameters and creates invocations.
71
+ */
72
+ export interface ToolBuilder<TParams extends object, TResult extends ToolResult> {
73
+ /**
74
+ * The internal name of the tool (used for API calls).
75
+ */
76
+ name: string;
77
+ /**
78
+ * The user-friendly display name of the tool.
79
+ */
80
+ displayName: string;
81
+ /**
82
+ * Description of what the tool does.
83
+ */
84
+ description: string;
85
+ /**
86
+ * The icon to display when interacting via ACP.
87
+ */
88
+ icon: Icon;
89
+ /**
90
+ * Function declaration schema from @google/genai.
91
+ */
92
+ schema: FunctionDeclaration;
93
+ /**
94
+ * Whether the tool's output should be rendered as markdown.
95
+ */
96
+ isOutputMarkdown: boolean;
97
+ /**
98
+ * Whether the tool supports live (streaming) output.
99
+ */
100
+ canUpdateOutput: boolean;
101
+ /**
102
+ * Validates raw parameters and builds a ready-to-execute invocation.
103
+ * @param params The raw, untrusted parameters from the model.
104
+ * @returns A valid `ToolInvocation` if successful. Throws an error if validation fails.
105
+ */
106
+ build(params: TParams): ToolInvocation<TParams, TResult>;
107
+ }
108
+ /**
109
+ * New base class for tools that separates validation from execution.
110
+ * New tools should extend this class.
111
+ */
112
+ export declare abstract class DeclarativeTool<TParams extends object, TResult extends ToolResult> implements ToolBuilder<TParams, TResult> {
113
+ readonly name: string;
114
+ readonly displayName: string;
115
+ readonly description: string;
116
+ readonly icon: Icon;
117
+ readonly parameterSchema: Schema;
118
+ readonly isOutputMarkdown: boolean;
119
+ readonly canUpdateOutput: boolean;
120
+ constructor(name: string, displayName: string, description: string, icon: Icon, parameterSchema: Schema, isOutputMarkdown?: boolean, canUpdateOutput?: boolean);
121
+ get schema(): FunctionDeclaration;
122
+ /**
123
+ * Validates the raw tool parameters.
124
+ * Subclasses should override this to add custom validation logic
125
+ * beyond the JSON schema check.
126
+ * @param params The raw parameters from the model.
127
+ * @returns An error message string if invalid, null otherwise.
128
+ */
129
+ protected validateToolParams(_params: TParams): string | null;
130
+ /**
131
+ * The core of the new pattern. It validates parameters and, if successful,
132
+ * returns a `ToolInvocation` object that encapsulates the logic for the
133
+ * specific, validated call.
134
+ * @param params The raw, untrusted parameters from the model.
135
+ * @returns A `ToolInvocation` instance.
136
+ */
137
+ abstract build(params: TParams): ToolInvocation<TParams, TResult>;
138
+ /**
139
+ * A convenience method that builds and executes the tool in one step.
140
+ * Throws an error if validation fails.
141
+ * @param params The raw, untrusted parameters from the model.
142
+ * @param signal AbortSignal for tool cancellation.
143
+ * @param updateOutput Optional callback to stream output.
144
+ * @returns The result of the tool execution.
145
+ */
146
+ buildAndExecute(params: TParams, signal: AbortSignal, updateOutput?: (output: string) => void): Promise<TResult>;
147
+ }
148
+ /**
149
+ * New base class for declarative tools that separates validation from execution.
150
+ * New tools should extend this class, which provides a `build` method that
151
+ * validates parameters before deferring to a `createInvocation` method for
152
+ * the final `ToolInvocation` object instantiation.
153
+ */
154
+ export declare abstract class BaseDeclarativeTool<TParams extends object, TResult extends ToolResult> extends DeclarativeTool<TParams, TResult> {
155
+ build(params: TParams): ToolInvocation<TParams, TResult>;
156
+ protected abstract createInvocation(params: TParams): ToolInvocation<TParams, TResult>;
157
+ }
158
+ /**
159
+ * A type alias for a declarative tool where the specific parameter and result types are not known.
160
+ */
161
+ export type AnyDeclarativeTool = DeclarativeTool<object, ToolResult>;
162
+ /**
163
+ * Base implementation for tools with common functionality
164
+ * @deprecated Use `DeclarativeTool` for new tools.
165
+ */
166
+ export declare abstract class BaseTool<TParams extends object, TResult extends ToolResult = ToolResult> extends DeclarativeTool<TParams, TResult> {
167
+ readonly name: string;
168
+ readonly displayName: string;
169
+ readonly description: string;
170
+ readonly icon: Icon;
171
+ readonly parameterSchema: Schema;
172
+ readonly isOutputMarkdown: boolean;
173
+ readonly canUpdateOutput: boolean;
174
+ /**
175
+ * Creates a new instance of BaseTool
176
+ * @param name Internal name of the tool (used for API calls)
177
+ * @param displayName User-friendly display name of the tool
178
+ * @param description Description of what the tool does
179
+ * @param isOutputMarkdown Whether the tool's output should be rendered as markdown
180
+ * @param canUpdateOutput Whether the tool supports live (streaming) output
181
+ * @param parameterSchema Open API 3.0 Schema defining the parameters
182
+ */
183
+ constructor(name: string, displayName: string, description: string, icon: Icon, parameterSchema: Schema, isOutputMarkdown?: boolean, canUpdateOutput?: boolean);
184
+ build(params: TParams): ToolInvocation<TParams, TResult>;
185
+ /**
186
+ * Validates the parameters for the tool
187
+ * This is a placeholder implementation and should be overridden
188
+ * Should be called from both `shouldConfirmExecute` and `execute`
189
+ * `shouldConfirmExecute` should return false immediately if invalid
190
+ * @param params Parameters to validate
191
+ * @returns An error message string if invalid, null otherwise
192
+ */
193
+ validateToolParams(params: TParams): string | null;
194
+ /**
195
+ * Gets a pre-execution description of the tool operation
196
+ * Default implementation that should be overridden by derived classes
197
+ * @param params Parameters for the tool execution
198
+ * @returns A markdown string describing what the tool will do
199
+ */
200
+ getDescription(params: TParams): string;
201
+ /**
202
+ * Determines if the tool should prompt for confirmation before execution
203
+ * @param params Parameters for the tool execution
204
+ * @returns Whether or not execute should be confirmed by the user.
205
+ */
206
+ shouldConfirmExecute(params: TParams, abortSignal: AbortSignal): Promise<ToolCallConfirmationDetails | false>;
207
+ /**
208
+ * Determines what file system paths the tool will affect
209
+ * @param params Parameters for the tool execution
210
+ * @returns A list of such paths
211
+ */
212
+ toolLocations(params: TParams): ToolLocation[];
213
+ /**
214
+ * Abstract method to execute the tool with the given parameters
215
+ * Must be implemented by derived classes
216
+ * @param params Parameters for the tool execution
217
+ * @param signal AbortSignal for tool cancellation
218
+ * @returns Result of the tool execution
219
+ */
220
+ abstract execute(params: TParams, signal: AbortSignal, updateOutput?: (output: string) => void): Promise<TResult>;
221
+ }
222
+ export interface ToolResult {
223
+ /**
224
+ * A short, one-line summary of the tool's action and result.
225
+ * e.g., "Read 5 files", "Wrote 256 bytes to foo.txt"
226
+ */
227
+ summary?: string;
228
+ /**
229
+ * Content meant to be included in LLM history.
230
+ * This should represent the factual outcome of the tool execution.
231
+ */
232
+ llmContent: PartListUnion;
233
+ /**
234
+ * Markdown string for user display.
235
+ * This provides a user-friendly summary or visualization of the result.
236
+ * NOTE: This might also be considered UI-specific and could potentially be
237
+ * removed or modified in a further refactor if the server becomes purely API-driven.
238
+ * For now, we keep it as the core logic in ReadFileTool currently produces it.
239
+ */
240
+ returnDisplay: ToolResultDisplay;
241
+ /**
242
+ * If this property is present, the tool call is considered a failure.
243
+ */
244
+ error?: {
245
+ message: string;
246
+ type?: ToolErrorType;
247
+ };
248
+ }
249
+ /**
250
+ * Detects cycles in a JSON schemas due to `$ref`s.
251
+ * @param schema The root of the JSON schema.
252
+ * @returns `true` if a cycle is detected, `false` otherwise.
253
+ */
254
+ export declare function hasCycleInSchema(schema: object): boolean;
255
+ export type ToolResultDisplay = string | FileDiff;
256
+ export interface FileDiff {
257
+ fileDiff: string;
258
+ fileName: string;
259
+ originalContent: string | null;
260
+ newContent: string;
261
+ diffStat?: DiffStat;
262
+ }
263
+ export interface DiffStat {
264
+ ai_removed_lines: number;
265
+ ai_added_lines: number;
266
+ user_added_lines: number;
267
+ user_removed_lines: number;
268
+ }
269
+ export interface ToolEditConfirmationDetails {
270
+ type: 'edit';
271
+ title: string;
272
+ onConfirm: (outcome: ToolConfirmationOutcome, payload?: ToolConfirmationPayload) => Promise<void>;
273
+ fileName: string;
274
+ filePath: string;
275
+ fileDiff: string;
276
+ originalContent: string | null;
277
+ newContent: string;
278
+ isModifying?: boolean;
279
+ ideConfirmation?: Promise<DiffUpdateResult>;
280
+ }
281
+ export interface ToolConfirmationPayload {
282
+ newContent: string;
283
+ }
284
+ export interface ToolExecuteConfirmationDetails {
285
+ type: 'exec';
286
+ title: string;
287
+ onConfirm: (outcome: ToolConfirmationOutcome) => Promise<void>;
288
+ command: string;
289
+ rootCommand: string;
290
+ }
291
+ export interface ToolMcpConfirmationDetails {
292
+ type: 'mcp';
293
+ title: string;
294
+ serverName: string;
295
+ toolName: string;
296
+ toolDisplayName: string;
297
+ onConfirm: (outcome: ToolConfirmationOutcome) => Promise<void>;
298
+ }
299
+ export interface ToolInfoConfirmationDetails {
300
+ type: 'info';
301
+ title: string;
302
+ onConfirm: (outcome: ToolConfirmationOutcome) => Promise<void>;
303
+ prompt: string;
304
+ urls?: string[];
305
+ }
306
+ export type ToolCallConfirmationDetails = ToolEditConfirmationDetails | ToolExecuteConfirmationDetails | ToolMcpConfirmationDetails | ToolInfoConfirmationDetails;
307
+ export declare enum ToolConfirmationOutcome {
308
+ ProceedOnce = "proceed_once",
309
+ ProceedAlways = "proceed_always",
310
+ ProceedAlwaysServer = "proceed_always_server",
311
+ ProceedAlwaysTool = "proceed_always_tool",
312
+ ModifyWithEditor = "modify_with_editor",
313
+ Cancel = "cancel"
314
+ }
315
+ export declare enum Icon {
316
+ FileSearch = "fileSearch",
317
+ Folder = "folder",
318
+ Globe = "globe",
319
+ Hammer = "hammer",
320
+ LightBulb = "lightBulb",
321
+ Pencil = "pencil",
322
+ Regex = "regex",
323
+ Terminal = "terminal"
324
+ }
325
+ export interface ToolLocation {
326
+ path: string;
327
+ line?: number;
328
+ }
@@ -0,0 +1,281 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * A convenience base class for ToolInvocation.
8
+ */
9
+ export class BaseToolInvocation {
10
+ params;
11
+ constructor(params) {
12
+ this.params = params;
13
+ }
14
+ toolLocations() {
15
+ return [];
16
+ }
17
+ shouldConfirmExecute(_abortSignal) {
18
+ return Promise.resolve(false);
19
+ }
20
+ }
21
+ /**
22
+ * An adapter that wraps the legacy `Tool` interface to make it compatible
23
+ * with the new `ToolInvocation` pattern.
24
+ */
25
+ export class LegacyToolInvocation {
26
+ legacyTool;
27
+ params;
28
+ constructor(legacyTool, params) {
29
+ this.legacyTool = legacyTool;
30
+ this.params = params;
31
+ }
32
+ getDescription() {
33
+ return this.legacyTool.getDescription(this.params);
34
+ }
35
+ toolLocations() {
36
+ return this.legacyTool.toolLocations(this.params);
37
+ }
38
+ shouldConfirmExecute(abortSignal) {
39
+ return this.legacyTool.shouldConfirmExecute(this.params, abortSignal);
40
+ }
41
+ execute(signal, updateOutput) {
42
+ return this.legacyTool.execute(this.params, signal, updateOutput);
43
+ }
44
+ }
45
+ /**
46
+ * New base class for tools that separates validation from execution.
47
+ * New tools should extend this class.
48
+ */
49
+ export class DeclarativeTool {
50
+ name;
51
+ displayName;
52
+ description;
53
+ icon;
54
+ parameterSchema;
55
+ isOutputMarkdown;
56
+ canUpdateOutput;
57
+ constructor(name, displayName, description, icon, parameterSchema, isOutputMarkdown = true, canUpdateOutput = false) {
58
+ this.name = name;
59
+ this.displayName = displayName;
60
+ this.description = description;
61
+ this.icon = icon;
62
+ this.parameterSchema = parameterSchema;
63
+ this.isOutputMarkdown = isOutputMarkdown;
64
+ this.canUpdateOutput = canUpdateOutput;
65
+ }
66
+ get schema() {
67
+ return {
68
+ name: this.name,
69
+ description: this.description,
70
+ parameters: this.parameterSchema,
71
+ };
72
+ }
73
+ /**
74
+ * Validates the raw tool parameters.
75
+ * Subclasses should override this to add custom validation logic
76
+ * beyond the JSON schema check.
77
+ * @param params The raw parameters from the model.
78
+ * @returns An error message string if invalid, null otherwise.
79
+ */
80
+ validateToolParams(_params) {
81
+ // Base implementation can be extended by subclasses.
82
+ return null;
83
+ }
84
+ /**
85
+ * A convenience method that builds and executes the tool in one step.
86
+ * Throws an error if validation fails.
87
+ * @param params The raw, untrusted parameters from the model.
88
+ * @param signal AbortSignal for tool cancellation.
89
+ * @param updateOutput Optional callback to stream output.
90
+ * @returns The result of the tool execution.
91
+ */
92
+ async buildAndExecute(params, signal, updateOutput) {
93
+ const invocation = this.build(params);
94
+ return invocation.execute(signal, updateOutput);
95
+ }
96
+ }
97
+ /**
98
+ * New base class for declarative tools that separates validation from execution.
99
+ * New tools should extend this class, which provides a `build` method that
100
+ * validates parameters before deferring to a `createInvocation` method for
101
+ * the final `ToolInvocation` object instantiation.
102
+ */
103
+ export class BaseDeclarativeTool extends DeclarativeTool {
104
+ build(params) {
105
+ const validationError = this.validateToolParams(params);
106
+ if (validationError) {
107
+ throw new Error(validationError);
108
+ }
109
+ return this.createInvocation(params);
110
+ }
111
+ }
112
+ /**
113
+ * Base implementation for tools with common functionality
114
+ * @deprecated Use `DeclarativeTool` for new tools.
115
+ */
116
+ export class BaseTool extends DeclarativeTool {
117
+ name;
118
+ displayName;
119
+ description;
120
+ icon;
121
+ parameterSchema;
122
+ isOutputMarkdown;
123
+ canUpdateOutput;
124
+ /**
125
+ * Creates a new instance of BaseTool
126
+ * @param name Internal name of the tool (used for API calls)
127
+ * @param displayName User-friendly display name of the tool
128
+ * @param description Description of what the tool does
129
+ * @param isOutputMarkdown Whether the tool's output should be rendered as markdown
130
+ * @param canUpdateOutput Whether the tool supports live (streaming) output
131
+ * @param parameterSchema Open API 3.0 Schema defining the parameters
132
+ */
133
+ constructor(name, displayName, description, icon, parameterSchema, isOutputMarkdown = true, canUpdateOutput = false) {
134
+ super(name, displayName, description, icon, parameterSchema, isOutputMarkdown, canUpdateOutput);
135
+ this.name = name;
136
+ this.displayName = displayName;
137
+ this.description = description;
138
+ this.icon = icon;
139
+ this.parameterSchema = parameterSchema;
140
+ this.isOutputMarkdown = isOutputMarkdown;
141
+ this.canUpdateOutput = canUpdateOutput;
142
+ }
143
+ build(params) {
144
+ const validationError = this.validateToolParams(params);
145
+ if (validationError) {
146
+ throw new Error(validationError);
147
+ }
148
+ return new LegacyToolInvocation(this, params);
149
+ }
150
+ /**
151
+ * Validates the parameters for the tool
152
+ * This is a placeholder implementation and should be overridden
153
+ * Should be called from both `shouldConfirmExecute` and `execute`
154
+ * `shouldConfirmExecute` should return false immediately if invalid
155
+ * @param params Parameters to validate
156
+ * @returns An error message string if invalid, null otherwise
157
+ */
158
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
159
+ validateToolParams(params) {
160
+ // Implementation would typically use a JSON Schema validator
161
+ // This is a placeholder that should be implemented by derived classes
162
+ return null;
163
+ }
164
+ /**
165
+ * Gets a pre-execution description of the tool operation
166
+ * Default implementation that should be overridden by derived classes
167
+ * @param params Parameters for the tool execution
168
+ * @returns A markdown string describing what the tool will do
169
+ */
170
+ getDescription(params) {
171
+ return JSON.stringify(params);
172
+ }
173
+ /**
174
+ * Determines if the tool should prompt for confirmation before execution
175
+ * @param params Parameters for the tool execution
176
+ * @returns Whether or not execute should be confirmed by the user.
177
+ */
178
+ shouldConfirmExecute(
179
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
180
+ params,
181
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
182
+ abortSignal) {
183
+ return Promise.resolve(false);
184
+ }
185
+ /**
186
+ * Determines what file system paths the tool will affect
187
+ * @param params Parameters for the tool execution
188
+ * @returns A list of such paths
189
+ */
190
+ toolLocations(
191
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
192
+ params) {
193
+ return [];
194
+ }
195
+ }
196
+ /**
197
+ * Detects cycles in a JSON schemas due to `$ref`s.
198
+ * @param schema The root of the JSON schema.
199
+ * @returns `true` if a cycle is detected, `false` otherwise.
200
+ */
201
+ export function hasCycleInSchema(schema) {
202
+ function resolveRef(ref) {
203
+ if (!ref.startsWith('#/')) {
204
+ return null;
205
+ }
206
+ const path = ref.substring(2).split('/');
207
+ let current = schema;
208
+ for (const segment of path) {
209
+ if (typeof current !== 'object' ||
210
+ current === null ||
211
+ !Object.prototype.hasOwnProperty.call(current, segment)) {
212
+ return null;
213
+ }
214
+ current = current[segment];
215
+ }
216
+ return current;
217
+ }
218
+ function traverse(node, visitedRefs, pathRefs) {
219
+ if (typeof node !== 'object' || node === null) {
220
+ return false;
221
+ }
222
+ if (Array.isArray(node)) {
223
+ for (const item of node) {
224
+ if (traverse(item, visitedRefs, pathRefs)) {
225
+ return true;
226
+ }
227
+ }
228
+ return false;
229
+ }
230
+ if ('$ref' in node && typeof node.$ref === 'string') {
231
+ const ref = node.$ref;
232
+ if (ref === '#/' || pathRefs.has(ref)) {
233
+ // A ref to just '#/' is always a cycle.
234
+ return true; // Cycle detected!
235
+ }
236
+ if (visitedRefs.has(ref)) {
237
+ return false; // Bail early, we have checked this ref before.
238
+ }
239
+ const resolvedNode = resolveRef(ref);
240
+ if (resolvedNode) {
241
+ // Add it to both visited and the current path
242
+ visitedRefs.add(ref);
243
+ pathRefs.add(ref);
244
+ const hasCycle = traverse(resolvedNode, visitedRefs, pathRefs);
245
+ pathRefs.delete(ref); // Backtrack, leaving it in visited
246
+ return hasCycle;
247
+ }
248
+ }
249
+ // Crawl all the properties of node
250
+ for (const key in node) {
251
+ if (Object.prototype.hasOwnProperty.call(node, key)) {
252
+ if (traverse(node[key], visitedRefs, pathRefs)) {
253
+ return true;
254
+ }
255
+ }
256
+ }
257
+ return false;
258
+ }
259
+ return traverse(schema, new Set(), new Set());
260
+ }
261
+ export var ToolConfirmationOutcome;
262
+ (function (ToolConfirmationOutcome) {
263
+ ToolConfirmationOutcome["ProceedOnce"] = "proceed_once";
264
+ ToolConfirmationOutcome["ProceedAlways"] = "proceed_always";
265
+ ToolConfirmationOutcome["ProceedAlwaysServer"] = "proceed_always_server";
266
+ ToolConfirmationOutcome["ProceedAlwaysTool"] = "proceed_always_tool";
267
+ ToolConfirmationOutcome["ModifyWithEditor"] = "modify_with_editor";
268
+ ToolConfirmationOutcome["Cancel"] = "cancel";
269
+ })(ToolConfirmationOutcome || (ToolConfirmationOutcome = {}));
270
+ export var Icon;
271
+ (function (Icon) {
272
+ Icon["FileSearch"] = "fileSearch";
273
+ Icon["Folder"] = "folder";
274
+ Icon["Globe"] = "globe";
275
+ Icon["Hammer"] = "hammer";
276
+ Icon["LightBulb"] = "lightBulb";
277
+ Icon["Pencil"] = "pencil";
278
+ Icon["Regex"] = "regex";
279
+ Icon["Terminal"] = "terminal";
280
+ })(Icon || (Icon = {}));
281
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/tools/tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};