@google/gemini-cli-core 0.3.0-nightly.20250823.1a89d185 → 0.3.0-preview.2

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 (389) hide show
  1. package/dist/google-gemini-cli-core-0.3.0-preview.1.tgz +0 -0
  2. package/dist/index.d.ts +2 -0
  3. package/dist/index.js +2 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/code_assist/codeAssist.d.ts +4 -3
  6. package/dist/src/code_assist/codeAssist.js +1 -2
  7. package/dist/src/code_assist/codeAssist.js.map +1 -1
  8. package/dist/src/code_assist/converter.d.ts +2 -1
  9. package/dist/src/code_assist/converter.js +1 -1
  10. package/dist/src/code_assist/converter.js.map +1 -1
  11. package/dist/src/code_assist/converter.test.js.map +1 -1
  12. package/dist/src/code_assist/oauth2.d.ts +1 -1
  13. package/dist/src/code_assist/oauth2.js +8 -8
  14. package/dist/src/code_assist/oauth2.js.map +1 -1
  15. package/dist/src/code_assist/oauth2.test.js +5 -5
  16. package/dist/src/code_assist/oauth2.test.js.map +1 -1
  17. package/dist/src/code_assist/server.d.ts +5 -5
  18. package/dist/src/code_assist/server.js +1 -1
  19. package/dist/src/code_assist/server.js.map +1 -1
  20. package/dist/src/code_assist/setup.d.ts +4 -12
  21. package/dist/src/code_assist/setup.js +14 -97
  22. package/dist/src/code_assist/setup.js.map +1 -1
  23. package/dist/src/code_assist/setup.test.js +13 -11
  24. package/dist/src/code_assist/setup.test.js.map +1 -1
  25. package/dist/src/config/config.d.ts +22 -5
  26. package/dist/src/config/config.js +42 -11
  27. package/dist/src/config/config.js.map +1 -1
  28. package/dist/src/config/config.test.js +83 -2
  29. package/dist/src/config/config.test.js.map +1 -1
  30. package/dist/src/config/storage.js +3 -3
  31. package/dist/src/config/storage.js.map +1 -1
  32. package/dist/src/config/storage.test.js +1 -1
  33. package/dist/src/config/storage.test.js.map +1 -1
  34. package/dist/src/core/client.d.ts +15 -9
  35. package/dist/src/core/client.js +57 -14
  36. package/dist/src/core/client.js.map +1 -1
  37. package/dist/src/core/client.test.js +336 -82
  38. package/dist/src/core/client.test.js.map +1 -1
  39. package/dist/src/core/contentGenerator.d.ts +3 -4
  40. package/dist/src/core/contentGenerator.js +1 -4
  41. package/dist/src/core/contentGenerator.js.map +1 -1
  42. package/dist/src/core/contentGenerator.test.js.map +1 -1
  43. package/dist/src/core/coreToolScheduler.d.ts +11 -2
  44. package/dist/src/core/coreToolScheduler.js +60 -27
  45. package/dist/src/core/coreToolScheduler.js.map +1 -1
  46. package/dist/src/core/coreToolScheduler.test.js +148 -20
  47. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  48. package/dist/src/core/geminiChat.d.ts +10 -12
  49. package/dist/src/core/geminiChat.js +93 -74
  50. package/dist/src/core/geminiChat.js.map +1 -1
  51. package/dist/src/core/geminiChat.test.js +427 -270
  52. package/dist/src/core/geminiChat.test.js.map +1 -1
  53. package/dist/src/core/geminiRequest.js +1 -0
  54. package/dist/src/core/geminiRequest.js.map +1 -1
  55. package/dist/src/core/logger.d.ts +2 -2
  56. package/dist/src/core/logger.test.js.map +1 -1
  57. package/dist/src/core/loggingContentGenerator.d.ts +3 -3
  58. package/dist/src/core/nonInteractiveToolExecutor.d.ts +1 -1
  59. package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
  60. package/dist/src/core/nonInteractiveToolExecutor.test.js +11 -4
  61. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
  62. package/dist/src/core/subagent.d.ts +24 -18
  63. package/dist/src/core/subagent.js +120 -72
  64. package/dist/src/core/subagent.js.map +1 -1
  65. package/dist/src/core/subagent.test.js +26 -21
  66. package/dist/src/core/subagent.test.js.map +1 -1
  67. package/dist/src/core/turn.d.ts +15 -4
  68. package/dist/src/core/turn.js +12 -1
  69. package/dist/src/core/turn.js.map +1 -1
  70. package/dist/src/core/turn.test.js +1 -1
  71. package/dist/src/core/turn.test.js.map +1 -1
  72. package/dist/src/generated/git-commit.d.ts +2 -2
  73. package/dist/src/generated/git-commit.js +2 -2
  74. package/dist/src/generated/git-commit.js.map +1 -1
  75. package/dist/src/ide/detect-ide.d.ts +8 -3
  76. package/dist/src/ide/detect-ide.js +29 -11
  77. package/dist/src/ide/detect-ide.js.map +1 -1
  78. package/dist/src/ide/detect-ide.test.js +96 -52
  79. package/dist/src/ide/detect-ide.test.js.map +1 -1
  80. package/dist/src/ide/ide-client.d.ts +6 -5
  81. package/dist/src/ide/ide-client.js +19 -17
  82. package/dist/src/ide/ide-client.js.map +1 -1
  83. package/dist/src/ide/ide-client.test.js +14 -10
  84. package/dist/src/ide/ide-client.test.js.map +1 -1
  85. package/dist/src/ide/ide-installer.d.ts +1 -1
  86. package/dist/src/ide/ide-installer.js +29 -20
  87. package/dist/src/ide/ide-installer.js.map +1 -1
  88. package/dist/src/ide/ide-installer.test.js +82 -22
  89. package/dist/src/ide/ide-installer.test.js.map +1 -1
  90. package/dist/src/ide/ideContext.d.ts +11 -11
  91. package/dist/src/ide/process-utils.d.ts +7 -4
  92. package/dist/src/ide/process-utils.js +47 -34
  93. package/dist/src/ide/process-utils.js.map +1 -1
  94. package/dist/src/ide/process-utils.test.d.ts +6 -0
  95. package/dist/src/ide/process-utils.test.js +72 -0
  96. package/dist/src/ide/process-utils.test.js.map +1 -0
  97. package/dist/src/index.d.ts +7 -2
  98. package/dist/src/index.js +5 -1
  99. package/dist/src/index.js.map +1 -1
  100. package/dist/src/mcp/google-auth-provider.d.ts +3 -3
  101. package/dist/src/mcp/google-auth-provider.test.js.map +1 -1
  102. package/dist/src/mcp/oauth-provider.d.ts +2 -2
  103. package/dist/src/mcp/oauth-provider.js.map +1 -1
  104. package/dist/src/mcp/oauth-provider.test.js +1 -1
  105. package/dist/src/mcp/oauth-provider.test.js.map +1 -1
  106. package/dist/src/mcp/oauth-token-storage.d.ts +5 -25
  107. package/dist/src/mcp/oauth-token-storage.js.map +1 -1
  108. package/dist/src/mcp/oauth-token-storage.test.js +1 -1
  109. package/dist/src/mcp/oauth-token-storage.test.js.map +1 -1
  110. package/dist/src/mcp/oauth-utils.d.ts +9 -1
  111. package/dist/src/mcp/oauth-utils.js +41 -27
  112. package/dist/src/mcp/oauth-utils.js.map +1 -1
  113. package/dist/src/mcp/oauth-utils.test.js +41 -1
  114. package/dist/src/mcp/oauth-utils.test.js.map +1 -1
  115. package/dist/src/mcp/token-storage/base-token-storage.d.ts +19 -0
  116. package/dist/src/mcp/token-storage/base-token-storage.js +36 -0
  117. package/dist/src/mcp/token-storage/base-token-storage.js.map +1 -0
  118. package/dist/src/mcp/token-storage/base-token-storage.test.d.ts +6 -0
  119. package/dist/src/mcp/token-storage/base-token-storage.test.js +160 -0
  120. package/dist/src/mcp/token-storage/base-token-storage.test.js.map +1 -0
  121. package/dist/src/mcp/token-storage/types.d.ts +34 -0
  122. package/dist/src/mcp/token-storage/types.js +7 -0
  123. package/dist/src/mcp/token-storage/types.js.map +1 -0
  124. package/dist/src/prompts/mcp-prompts.d.ts +2 -2
  125. package/dist/src/prompts/prompt-registry.d.ts +1 -1
  126. package/dist/src/services/chatRecordingService.d.ts +1 -1
  127. package/dist/src/services/chatRecordingService.js +3 -0
  128. package/dist/src/services/chatRecordingService.js.map +1 -1
  129. package/dist/src/services/chatRecordingService.test.js +2 -2
  130. package/dist/src/services/chatRecordingService.test.js.map +1 -1
  131. package/dist/src/services/fileDiscoveryService.js +1 -1
  132. package/dist/src/services/fileDiscoveryService.js.map +1 -1
  133. package/dist/src/services/fileDiscoveryService.test.js +3 -3
  134. package/dist/src/services/fileDiscoveryService.test.js.map +1 -1
  135. package/dist/src/services/fileSystemService.js +1 -1
  136. package/dist/src/services/fileSystemService.js.map +1 -1
  137. package/dist/src/services/fileSystemService.test.js +1 -1
  138. package/dist/src/services/fileSystemService.test.js.map +1 -1
  139. package/dist/src/services/gitService.d.ts +1 -1
  140. package/dist/src/services/gitService.js +2 -2
  141. package/dist/src/services/gitService.js.map +1 -1
  142. package/dist/src/services/gitService.test.js +3 -3
  143. package/dist/src/services/gitService.test.js.map +1 -1
  144. package/dist/src/services/loopDetectionService.d.ts +2 -2
  145. package/dist/src/services/loopDetectionService.js +9 -3
  146. package/dist/src/services/loopDetectionService.js.map +1 -1
  147. package/dist/src/services/loopDetectionService.test.js +23 -1
  148. package/dist/src/services/loopDetectionService.test.js.map +1 -1
  149. package/dist/src/services/shellExecutionService.js +5 -4
  150. package/dist/src/services/shellExecutionService.js.map +1 -1
  151. package/dist/src/services/shellExecutionService.test.js +4 -3
  152. package/dist/src/services/shellExecutionService.test.js.map +1 -1
  153. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +11 -3
  154. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +77 -2
  155. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  156. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +11 -3
  157. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
  158. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +21 -5
  159. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +48 -7
  160. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  161. package/dist/src/telemetry/constants.d.ts +5 -0
  162. package/dist/src/telemetry/constants.js +5 -0
  163. package/dist/src/telemetry/constants.js.map +1 -1
  164. package/dist/src/telemetry/file-exporters.d.ts +5 -4
  165. package/dist/src/telemetry/file-exporters.js +1 -1
  166. package/dist/src/telemetry/file-exporters.js.map +1 -1
  167. package/dist/src/telemetry/index.d.ts +5 -2
  168. package/dist/src/telemetry/index.js +3 -2
  169. package/dist/src/telemetry/index.js.map +1 -1
  170. package/dist/src/telemetry/loggers.d.ts +7 -2
  171. package/dist/src/telemetry/loggers.js +96 -2
  172. package/dist/src/telemetry/loggers.js.map +1 -1
  173. package/dist/src/telemetry/loggers.test.circular.js.map +1 -1
  174. package/dist/src/telemetry/loggers.test.js +60 -4
  175. package/dist/src/telemetry/loggers.test.js.map +1 -1
  176. package/dist/src/telemetry/metrics.d.ts +3 -3
  177. package/dist/src/telemetry/metrics.js +1 -1
  178. package/dist/src/telemetry/metrics.js.map +1 -1
  179. package/dist/src/telemetry/sdk.d.ts +1 -1
  180. package/dist/src/telemetry/types.d.ts +37 -7
  181. package/dist/src/telemetry/types.js +51 -0
  182. package/dist/src/telemetry/types.js.map +1 -1
  183. package/dist/src/telemetry/uiTelemetry.d.ts +2 -2
  184. package/dist/src/telemetry/uiTelemetry.js +1 -1
  185. package/dist/src/telemetry/uiTelemetry.js.map +1 -1
  186. package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
  187. package/dist/src/test-utils/config.d.ts +2 -1
  188. package/dist/src/test-utils/config.js.map +1 -1
  189. package/dist/src/test-utils/mockWorkspaceContext.d.ts +1 -1
  190. package/dist/src/test-utils/tools.d.ts +3 -2
  191. package/dist/src/test-utils/tools.js.map +1 -1
  192. package/dist/src/tools/diffOptions.d.ts +1 -1
  193. package/dist/src/tools/edit.d.ts +4 -3
  194. package/dist/src/tools/edit.js +3 -3
  195. package/dist/src/tools/edit.js.map +1 -1
  196. package/dist/src/tools/edit.test.js +3 -3
  197. package/dist/src/tools/edit.test.js.map +1 -1
  198. package/dist/src/tools/glob.d.ts +3 -2
  199. package/dist/src/tools/glob.js +4 -4
  200. package/dist/src/tools/glob.js.map +1 -1
  201. package/dist/src/tools/glob.test.js +6 -3
  202. package/dist/src/tools/glob.test.js.map +1 -1
  203. package/dist/src/tools/grep.d.ts +3 -2
  204. package/dist/src/tools/grep.js +30 -15
  205. package/dist/src/tools/grep.js.map +1 -1
  206. package/dist/src/tools/grep.test.js +15 -3
  207. package/dist/src/tools/grep.test.js.map +1 -1
  208. package/dist/src/tools/ls.d.ts +3 -2
  209. package/dist/src/tools/ls.js +3 -3
  210. package/dist/src/tools/ls.js.map +1 -1
  211. package/dist/src/tools/ls.test.js +2 -2
  212. package/dist/src/tools/ls.test.js.map +1 -1
  213. package/dist/src/tools/mcp-client-manager.d.ts +4 -4
  214. package/dist/src/tools/mcp-client.d.ts +7 -7
  215. package/dist/src/tools/mcp-client.js +2 -2
  216. package/dist/src/tools/mcp-client.js.map +1 -1
  217. package/dist/src/tools/mcp-tool.d.ts +3 -2
  218. package/dist/src/tools/mcp-tool.js.map +1 -1
  219. package/dist/src/tools/mcp-tool.test.js +1 -2
  220. package/dist/src/tools/mcp-tool.test.js.map +1 -1
  221. package/dist/src/tools/memoryTool.d.ts +3 -2
  222. package/dist/src/tools/memoryTool.js +2 -2
  223. package/dist/src/tools/memoryTool.js.map +1 -1
  224. package/dist/src/tools/memoryTool.test.js +4 -4
  225. package/dist/src/tools/memoryTool.test.js.map +1 -1
  226. package/dist/src/tools/modifiable-tool.d.ts +2 -2
  227. package/dist/src/tools/modifiable-tool.js +3 -3
  228. package/dist/src/tools/modifiable-tool.js.map +1 -1
  229. package/dist/src/tools/modifiable-tool.test.js +4 -4
  230. package/dist/src/tools/modifiable-tool.test.js.map +1 -1
  231. package/dist/src/tools/read-file.d.ts +3 -2
  232. package/dist/src/tools/read-file.js +2 -2
  233. package/dist/src/tools/read-file.js.map +1 -1
  234. package/dist/src/tools/read-file.test.js +4 -4
  235. package/dist/src/tools/read-file.test.js.map +1 -1
  236. package/dist/src/tools/read-many-files.d.ts +3 -2
  237. package/dist/src/tools/read-many-files.js +14 -47
  238. package/dist/src/tools/read-many-files.js.map +1 -1
  239. package/dist/src/tools/read-many-files.test.js +18 -3
  240. package/dist/src/tools/read-many-files.test.js.map +1 -1
  241. package/dist/src/tools/ripGrep.d.ts +3 -2
  242. package/dist/src/tools/ripGrep.js +5 -5
  243. package/dist/src/tools/ripGrep.js.map +1 -1
  244. package/dist/src/tools/ripGrep.test.js +4 -4
  245. package/dist/src/tools/ripGrep.test.js.map +1 -1
  246. package/dist/src/tools/shell.d.ts +3 -2
  247. package/dist/src/tools/shell.js +16 -5
  248. package/dist/src/tools/shell.js.map +1 -1
  249. package/dist/src/tools/shell.test.js +21 -5
  250. package/dist/src/tools/shell.test.js.map +1 -1
  251. package/dist/src/tools/tool-error.d.ts +1 -0
  252. package/dist/src/tools/tool-error.js +2 -0
  253. package/dist/src/tools/tool-error.js.map +1 -1
  254. package/dist/src/tools/tool-registry.d.ts +8 -3
  255. package/dist/src/tools/tool-registry.js +7 -1
  256. package/dist/src/tools/tool-registry.js.map +1 -1
  257. package/dist/src/tools/tool-registry.test.js +15 -2
  258. package/dist/src/tools/tool-registry.test.js.map +1 -1
  259. package/dist/src/tools/tools.d.ts +8 -2
  260. package/dist/src/tools/tools.js +12 -0
  261. package/dist/src/tools/tools.js.map +1 -1
  262. package/dist/src/tools/tools.test.js +1 -1
  263. package/dist/src/tools/tools.test.js.map +1 -1
  264. package/dist/src/tools/web-fetch.d.ts +3 -2
  265. package/dist/src/tools/web-fetch.js +1 -1
  266. package/dist/src/tools/web-fetch.js.map +1 -1
  267. package/dist/src/tools/web-fetch.test.js.map +1 -1
  268. package/dist/src/tools/web-search.d.ts +4 -3
  269. package/dist/src/tools/web-search.js +2 -2
  270. package/dist/src/tools/web-search.js.map +1 -1
  271. package/dist/src/tools/web-search.test.js.map +1 -1
  272. package/dist/src/tools/write-file.d.ts +4 -3
  273. package/dist/src/tools/write-file.js +2 -2
  274. package/dist/src/tools/write-file.js.map +1 -1
  275. package/dist/src/tools/write-file.test.js +6 -5
  276. package/dist/src/tools/write-file.test.js.map +1 -1
  277. package/dist/src/utils/bfsFileSearch.d.ts +2 -2
  278. package/dist/src/utils/bfsFileSearch.js +2 -2
  279. package/dist/src/utils/bfsFileSearch.js.map +1 -1
  280. package/dist/src/utils/bfsFileSearch.test.js +3 -3
  281. package/dist/src/utils/bfsFileSearch.test.js.map +1 -1
  282. package/dist/src/utils/editCorrector.d.ts +2 -2
  283. package/dist/src/utils/editCorrector.js +1 -1
  284. package/dist/src/utils/editCorrector.js.map +1 -1
  285. package/dist/src/utils/editCorrector.test.js +2 -3
  286. package/dist/src/utils/editCorrector.test.js.map +1 -1
  287. package/dist/src/utils/editor.js +1 -1
  288. package/dist/src/utils/editor.js.map +1 -1
  289. package/dist/src/utils/editor.test.js +1 -1
  290. package/dist/src/utils/editor.test.js.map +1 -1
  291. package/dist/src/utils/environmentContext.d.ts +2 -2
  292. package/dist/src/utils/errorReporting.d.ts +1 -1
  293. package/dist/src/utils/errors.d.ts +19 -0
  294. package/dist/src/utils/errors.js +32 -0
  295. package/dist/src/utils/errors.js.map +1 -1
  296. package/dist/src/utils/fetch.js +1 -1
  297. package/dist/src/utils/fetch.js.map +1 -1
  298. package/dist/src/utils/fileUtils.d.ts +2 -2
  299. package/dist/src/utils/fileUtils.js +2 -30
  300. package/dist/src/utils/fileUtils.js.map +1 -1
  301. package/dist/src/utils/filesearch/crawler.d.ts +1 -1
  302. package/dist/src/utils/filesearch/crawler.test.js +2 -2
  303. package/dist/src/utils/filesearch/crawler.test.js.map +1 -1
  304. package/dist/src/utils/filesearch/fileSearch.js +12 -8
  305. package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
  306. package/dist/src/utils/generateContentResponseUtilities.d.ts +1 -2
  307. package/dist/src/utils/generateContentResponseUtilities.js +1 -13
  308. package/dist/src/utils/generateContentResponseUtilities.js.map +1 -1
  309. package/dist/src/utils/generateContentResponseUtilities.test.js +2 -40
  310. package/dist/src/utils/generateContentResponseUtilities.test.js.map +1 -1
  311. package/dist/src/utils/getFolderStructure.d.ts +2 -2
  312. package/dist/src/utils/getFolderStructure.js +2 -2
  313. package/dist/src/utils/getFolderStructure.js.map +1 -1
  314. package/dist/src/utils/getFolderStructure.test.js +4 -4
  315. package/dist/src/utils/getFolderStructure.test.js.map +1 -1
  316. package/dist/src/utils/gitIgnoreParser.js +3 -3
  317. package/dist/src/utils/gitIgnoreParser.js.map +1 -1
  318. package/dist/src/utils/gitIgnoreParser.test.js +3 -3
  319. package/dist/src/utils/gitIgnoreParser.test.js.map +1 -1
  320. package/dist/src/utils/gitUtils.js +2 -2
  321. package/dist/src/utils/gitUtils.js.map +1 -1
  322. package/dist/src/utils/ignorePatterns.d.ts +103 -0
  323. package/dist/src/utils/ignorePatterns.js +220 -0
  324. package/dist/src/utils/ignorePatterns.js.map +1 -0
  325. package/dist/src/utils/ignorePatterns.test.d.ts +6 -0
  326. package/dist/src/utils/ignorePatterns.test.js +250 -0
  327. package/dist/src/utils/ignorePatterns.test.js.map +1 -0
  328. package/dist/src/utils/installationManager.js +2 -2
  329. package/dist/src/utils/installationManager.js.map +1 -1
  330. package/dist/src/utils/installationManager.test.js +1 -1
  331. package/dist/src/utils/installationManager.test.js.map +1 -1
  332. package/dist/src/utils/language-detection.js +1 -1
  333. package/dist/src/utils/language-detection.js.map +1 -1
  334. package/dist/src/utils/memoryDiscovery.d.ts +2 -2
  335. package/dist/src/utils/memoryDiscovery.js +5 -5
  336. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  337. package/dist/src/utils/memoryDiscovery.test.js +3 -3
  338. package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
  339. package/dist/src/utils/memoryImportProcessor.js +2 -2
  340. package/dist/src/utils/memoryImportProcessor.js.map +1 -1
  341. package/dist/src/utils/memoryImportProcessor.test.js +2 -141
  342. package/dist/src/utils/memoryImportProcessor.test.js.map +1 -1
  343. package/dist/src/utils/messageInspectors.d.ts +1 -1
  344. package/dist/src/utils/nextSpeakerChecker.d.ts +2 -2
  345. package/dist/src/utils/nextSpeakerChecker.test.js.map +1 -1
  346. package/dist/src/utils/partUtils.d.ts +22 -1
  347. package/dist/src/utils/partUtils.js +68 -0
  348. package/dist/src/utils/partUtils.js.map +1 -1
  349. package/dist/src/utils/partUtils.test.js +112 -1
  350. package/dist/src/utils/partUtils.test.js.map +1 -1
  351. package/dist/src/utils/pathReader.d.ts +17 -0
  352. package/dist/src/utils/pathReader.js +92 -0
  353. package/dist/src/utils/pathReader.js.map +1 -0
  354. package/dist/src/utils/pathReader.test.d.ts +6 -0
  355. package/dist/src/utils/pathReader.test.js +363 -0
  356. package/dist/src/utils/pathReader.test.js.map +1 -0
  357. package/dist/src/utils/paths.js +2 -2
  358. package/dist/src/utils/paths.js.map +1 -1
  359. package/dist/src/utils/quotaErrorDetection.d.ts +1 -1
  360. package/dist/src/utils/retry.test.js +4 -1
  361. package/dist/src/utils/retry.test.js.map +1 -1
  362. package/dist/src/utils/schemaValidator.js +4 -0
  363. package/dist/src/utils/schemaValidator.js.map +1 -1
  364. package/dist/src/utils/session.js +1 -1
  365. package/dist/src/utils/session.js.map +1 -1
  366. package/dist/src/utils/shell-utils.d.ts +1 -1
  367. package/dist/src/utils/shell-utils.js +23 -29
  368. package/dist/src/utils/shell-utils.js.map +1 -1
  369. package/dist/src/utils/shell-utils.test.js +4 -0
  370. package/dist/src/utils/shell-utils.test.js.map +1 -1
  371. package/dist/src/utils/summarizer.d.ts +2 -2
  372. package/dist/src/utils/summarizer.test.js.map +1 -1
  373. package/dist/src/utils/systemEncoding.js +2 -2
  374. package/dist/src/utils/systemEncoding.js.map +1 -1
  375. package/dist/src/utils/systemEncoding.test.js +2 -2
  376. package/dist/src/utils/systemEncoding.test.js.map +1 -1
  377. package/dist/src/utils/tool-utils.d.ts +19 -0
  378. package/dist/src/utils/tool-utils.js +58 -0
  379. package/dist/src/utils/tool-utils.js.map +1 -0
  380. package/dist/src/utils/tool-utils.test.d.ts +6 -0
  381. package/dist/src/utils/tool-utils.test.js +61 -0
  382. package/dist/src/utils/tool-utils.test.js.map +1 -0
  383. package/dist/src/utils/userAccountManager.test.js.map +1 -1
  384. package/dist/src/utils/workspaceContext.js +3 -3
  385. package/dist/src/utils/workspaceContext.js.map +1 -1
  386. package/dist/src/utils/workspaceContext.test.js +3 -3
  387. package/dist/src/utils/workspaceContext.test.js.map +1 -1
  388. package/dist/tsconfig.tsbuildinfo +1 -1
  389. package/package.json +10 -7
@@ -3,15 +3,13 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- // DISCLAIMER: This is a copied version of https://github.com/googleapis/js-genai/blob/main/src/chats.ts with the intention of working around a key bug
7
- // where function responses are not treated as "valid" responses: https://b.corp.google.com/issues/420354090
8
- import { createUserContent, } from '@google/genai';
6
+ import { createUserContent } from '@google/genai';
9
7
  import { retryWithBackoff } from '../utils/retry.js';
10
- import { isFunctionResponse } from '../utils/messageInspectors.js';
11
8
  import { AuthType } from './contentGenerator.js';
12
9
  import { DEFAULT_GEMINI_FLASH_MODEL } from '../config/models.js';
13
10
  import { hasCycleInSchema } from '../tools/tools.js';
14
- import { recordContentRetry, recordContentRetryFailure, recordInvalidChunk, } from '../telemetry/metrics.js';
11
+ import { logContentRetry, logContentRetryFailure, logInvalidChunk, } from '../telemetry/loggers.js';
12
+ import { ContentRetryEvent, ContentRetryFailureEvent, InvalidChunkEvent, } from '../telemetry/types.js';
15
13
  const INVALID_CONTENT_RETRY_OPTIONS = {
16
14
  maxAttempts: 3, // 1 initial call + 2 retries
17
15
  initialDelayMs: 500,
@@ -179,7 +177,7 @@ export class GeminiChat {
179
177
  * ```ts
180
178
  * const chat = ai.chats.create({model: 'gemini-2.0-flash'});
181
179
  * const response = await chat.sendMessage({
182
- * message: 'Why is the sky blue?'
180
+ * message: 'Why is the sky blue?'
183
181
  * });
184
182
  * console.log(response.text);
185
183
  * ```
@@ -221,6 +219,7 @@ export class GeminiChat {
221
219
  });
222
220
  this.sendPromise = (async () => {
223
221
  const outputContent = response.candidates?.[0]?.content;
222
+ const modelOutput = outputContent ? [outputContent] : [];
224
223
  // Because the AFC input contains the entire curated chat history in
225
224
  // addition to the new user input, we need to truncate the AFC history
226
225
  // to deduplicate the existing chat history.
@@ -231,12 +230,13 @@ export class GeminiChat {
231
230
  automaticFunctionCallingHistory =
232
231
  fullAutomaticFunctionCallingHistory.slice(index) ?? [];
233
232
  }
234
- const modelOutput = outputContent ? [outputContent] : [];
235
233
  this.recordHistory(userContent, modelOutput, automaticFunctionCallingHistory);
236
234
  })();
237
- await this.sendPromise.catch(() => {
235
+ await this.sendPromise.catch((error) => {
238
236
  // Resets sendPromise to avoid subsequent calls failing
239
237
  this.sendPromise = Promise.resolve();
238
+ // Re-throw the error so the caller knows something went wrong.
239
+ throw error;
240
240
  });
241
241
  return response;
242
242
  }
@@ -260,10 +260,10 @@ export class GeminiChat {
260
260
  * ```ts
261
261
  * const chat = ai.chats.create({model: 'gemini-2.0-flash'});
262
262
  * const response = await chat.sendMessageStream({
263
- * message: 'Why is the sky blue?'
263
+ * message: 'Why is the sky blue?'
264
264
  * });
265
265
  * for await (const chunk of response) {
266
- * console.log(chunk.text);
266
+ * console.log(chunk.text);
267
267
  * }
268
268
  * ```
269
269
  */
@@ -298,7 +298,7 @@ export class GeminiChat {
298
298
  if (isContentError) {
299
299
  // Check if we have more attempts left.
300
300
  if (attempt < INVALID_CONTENT_RETRY_OPTIONS.maxAttempts - 1) {
301
- recordContentRetry(self.config);
301
+ logContentRetry(self.config, new ContentRetryEvent(attempt, 'EmptyStreamError', INVALID_CONTENT_RETRY_OPTIONS.initialDelayMs));
302
302
  await new Promise((res) => setTimeout(res, INVALID_CONTENT_RETRY_OPTIONS.initialDelayMs *
303
303
  (attempt + 1)));
304
304
  continue;
@@ -309,7 +309,7 @@ export class GeminiChat {
309
309
  }
310
310
  if (lastError) {
311
311
  if (lastError instanceof EmptyStreamError) {
312
- recordContentRetryFailure(self.config);
312
+ logContentRetryFailure(self.config, new ContentRetryFailureEvent(INVALID_CONTENT_RETRY_OPTIONS.maxAttempts, 'EmptyStreamError'));
313
313
  }
314
314
  // If the stream fails, remove the user message that was added.
315
315
  if (self.history[self.history.length - 1] === userContent) {
@@ -363,7 +363,7 @@ export class GeminiChat {
363
363
  * - The `curated history` contains only the valid turns between user and
364
364
  * model, which will be included in the subsequent requests sent to the model.
365
365
  * - The `comprehensive history` contains all turns, including invalid or
366
- * empty model outputs, providing a complete record of the history.
366
+ * empty model outputs, providing a complete record of the history.
367
367
  *
368
368
  * The history is updated after receiving the response from the model,
369
369
  * for streaming response, it means receiving the last chunk of the response.
@@ -372,9 +372,9 @@ export class GeminiChat {
372
372
  * history`, set the `curated` parameter to `true`.
373
373
  *
374
374
  * @param curated - whether to return the curated history or the comprehensive
375
- * history.
375
+ * history.
376
376
  * @return History contents alternating between user and model for the entire
377
- * chat session.
377
+ * chat session.
378
378
  */
379
379
  getHistory(curated = false) {
380
380
  const history = curated
@@ -432,90 +432,109 @@ export class GeminiChat {
432
432
  hasReceivedAnyChunk = true;
433
433
  if (isValidResponse(chunk)) {
434
434
  const content = chunk.candidates?.[0]?.content;
435
- if (content) {
436
- // Filter out thought parts from being added to history.
437
- if (!this.isThoughtContent(content) && content.parts) {
438
- modelResponseParts.push(...content.parts);
439
- }
435
+ if (content?.parts) {
436
+ modelResponseParts.push(...content.parts);
440
437
  }
441
438
  }
442
439
  else {
443
- recordInvalidChunk(this.config);
440
+ logInvalidChunk(this.config, new InvalidChunkEvent('Invalid chunk received from stream.'));
444
441
  isStreamInvalid = true;
445
442
  }
446
- yield chunk; // Yield every chunk to the UI immediately.
443
+ yield chunk;
447
444
  }
448
- // Now that the stream is finished, make a decision.
449
- // Throw an error if the stream was invalid OR if it was completely empty.
450
445
  if (isStreamInvalid || !hasReceivedAnyChunk) {
451
446
  throw new EmptyStreamError('Model stream was invalid or completed without valid content.');
452
447
  }
453
- // Use recordHistory to correctly save the conversation turn.
454
- const modelOutput = [
455
- { role: 'model', parts: modelResponseParts },
456
- ];
448
+ // Bundle all streamed parts into a single Content object
449
+ const modelOutput = modelResponseParts.length > 0
450
+ ? [{ role: 'model', parts: modelResponseParts }]
451
+ : [];
452
+ // Pass the raw, bundled data to the new, robust recordHistory
457
453
  this.recordHistory(userInput, modelOutput);
458
454
  }
459
455
  recordHistory(userInput, modelOutput, automaticFunctionCallingHistory) {
460
- const newHistoryEntries = [];
461
- // Part 1: Handle the user's part of the turn.
456
+ // Part 1: Handle the user's turn.
462
457
  if (automaticFunctionCallingHistory &&
463
458
  automaticFunctionCallingHistory.length > 0) {
464
- newHistoryEntries.push(...extractCuratedHistory(automaticFunctionCallingHistory));
459
+ this.history.push(...extractCuratedHistory(automaticFunctionCallingHistory));
465
460
  }
466
461
  else {
467
- // Guard for streaming calls where the user input might already be in the history.
468
462
  if (this.history.length === 0 ||
469
463
  this.history[this.history.length - 1] !== userInput) {
470
- newHistoryEntries.push(userInput);
464
+ const lastTurn = this.history[this.history.length - 1];
465
+ // The only time we don't push is if it's the *exact same* object,
466
+ // which happens in streaming where we add it preemptively.
467
+ if (lastTurn !== userInput) {
468
+ if (lastTurn?.role === 'user') {
469
+ // This is an invalid sequence.
470
+ throw new Error('Cannot add a user turn after another user turn.');
471
+ }
472
+ this.history.push(userInput);
473
+ }
471
474
  }
472
475
  }
473
- // Part 2: Handle the model's part of the turn, filtering out thoughts.
474
- const nonThoughtModelOutput = modelOutput.filter((content) => !this.isThoughtContent(content));
475
- let outputContents = [];
476
- if (nonThoughtModelOutput.length > 0) {
477
- outputContents = nonThoughtModelOutput;
478
- }
479
- else if (modelOutput.length === 0 &&
480
- !isFunctionResponse(userInput) &&
481
- !automaticFunctionCallingHistory) {
482
- // Add an empty model response if the model truly returned nothing.
483
- outputContents.push({ role: 'model', parts: [] });
476
+ // Part 2: Process the model output into a final, consolidated list of turns.
477
+ const finalModelTurns = [];
478
+ for (const content of modelOutput) {
479
+ // A. Preserve malformed content that has no 'parts' array.
480
+ if (!content.parts) {
481
+ finalModelTurns.push(content);
482
+ continue;
483
+ }
484
+ // B. Filter out 'thought' parts.
485
+ const visibleParts = content.parts.filter((part) => !part.thought);
486
+ const newTurn = { ...content, parts: visibleParts };
487
+ const lastTurnInFinal = finalModelTurns[finalModelTurns.length - 1];
488
+ // Consolidate this new turn with the PREVIOUS turn if they are adjacent model turns.
489
+ if (lastTurnInFinal &&
490
+ lastTurnInFinal.role === 'model' &&
491
+ newTurn.role === 'model' &&
492
+ lastTurnInFinal.parts && // SAFETY CHECK: Ensure the destination has a parts array.
493
+ newTurn.parts) {
494
+ lastTurnInFinal.parts.push(...newTurn.parts);
495
+ }
496
+ else {
497
+ finalModelTurns.push(newTurn);
498
+ }
484
499
  }
485
- // Part 3: Consolidate the parts of this turn's model response.
486
- const consolidatedOutputContents = [];
487
- if (outputContents.length > 0) {
488
- for (const content of outputContents) {
489
- const lastContent = consolidatedOutputContents[consolidatedOutputContents.length - 1];
490
- if (this.hasTextContent(lastContent) && this.hasTextContent(content)) {
491
- lastContent.parts[0].text += content.parts[0].text || '';
492
- if (content.parts.length > 1) {
493
- lastContent.parts.push(...content.parts.slice(1));
500
+ // Part 3: Add the processed model turns to the history, with one final consolidation pass.
501
+ if (finalModelTurns.length > 0) {
502
+ // Re-consolidate parts within any turns that were merged in the previous step.
503
+ for (const turn of finalModelTurns) {
504
+ if (turn.parts && turn.parts.length > 1) {
505
+ const consolidatedParts = [];
506
+ for (const part of turn.parts) {
507
+ const lastPart = consolidatedParts[consolidatedParts.length - 1];
508
+ if (lastPart &&
509
+ // Ensure lastPart is a pure text part
510
+ typeof lastPart.text === 'string' &&
511
+ !lastPart.functionCall &&
512
+ !lastPart.functionResponse &&
513
+ !lastPart.inlineData &&
514
+ !lastPart.fileData &&
515
+ !lastPart.thought &&
516
+ // Ensure current part is a pure text part
517
+ typeof part.text === 'string' &&
518
+ !part.functionCall &&
519
+ !part.functionResponse &&
520
+ !part.inlineData &&
521
+ !part.fileData &&
522
+ !part.thought) {
523
+ lastPart.text += part.text;
524
+ }
525
+ else {
526
+ consolidatedParts.push({ ...part });
527
+ }
494
528
  }
495
- }
496
- else {
497
- consolidatedOutputContents.push(content);
529
+ turn.parts = consolidatedParts;
498
530
  }
499
531
  }
532
+ this.history.push(...finalModelTurns);
533
+ }
534
+ else {
535
+ // If, after all processing, there's NO model output, add the placeholder.
536
+ this.history.push({ role: 'model', parts: [] });
500
537
  }
501
- // Part 4: Add the new turn (user and model parts) to the main history.
502
- this.history.push(...newHistoryEntries, ...consolidatedOutputContents);
503
- }
504
- hasTextContent(content) {
505
- return !!(content &&
506
- content.role === 'model' &&
507
- content.parts &&
508
- content.parts.length > 0 &&
509
- typeof content.parts[0].text === 'string' &&
510
- content.parts[0].text !== '');
511
- }
512
- isThoughtContent(content) {
513
- return !!(content &&
514
- content.role === 'model' &&
515
- content.parts &&
516
- content.parts.length > 0 &&
517
- typeof content.parts[0].thought === 'boolean' &&
518
- content.parts[0].thought === true);
519
538
  }
520
539
  }
521
540
  /** Visible for Testing */
@@ -1 +1 @@
1
- {"version":3,"file":"geminiChat.js","sourceRoot":"","sources":["../../../src/core/geminiChat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"geminiChat.js","sourceRoot":"","sources":["../../../src/core/geminiChat.ts"],"names":[],"mappings":"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"}