@vybestack/llxprt-code-core 0.1.12

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 (448) 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 +68 -0
  12. package/dist/src/code_assist/converter.js +125 -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 +229 -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 +339 -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 +249 -0
  22. package/dist/src/code_assist/oauth2.test.js.map +1 -0
  23. package/dist/src/code_assist/server.d.ts +39 -0
  24. package/dist/src/code_assist/server.js +191 -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 +123 -0
  28. package/dist/src/code_assist/server.test.js.map +1 -0
  29. package/dist/src/code_assist/setup.d.ts +15 -0
  30. package/dist/src/code_assist/setup.js +67 -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 +62 -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 +212 -0
  39. package/dist/src/config/config.js +454 -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 +291 -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 +115 -0
  46. package/dist/src/config/flashFallback.test.js.map +1 -0
  47. package/dist/src/config/models.d.ts +8 -0
  48. package/dist/src/config/models.js +9 -0
  49. package/dist/src/config/models.js.map +1 -0
  50. package/dist/src/core/client.d.ts +59 -0
  51. package/dist/src/core/client.js +503 -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 +1006 -0
  55. package/dist/src/core/client.test.js.map +1 -0
  56. package/dist/src/core/contentGenerator.d.ts +36 -0
  57. package/dist/src/core/contentGenerator.js +79 -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 +92 -0
  61. package/dist/src/core/contentGenerator.test.js.map +1 -0
  62. package/dist/src/core/coreToolScheduler.d.ts +104 -0
  63. package/dist/src/core/coreToolScheduler.js +413 -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 +347 -0
  67. package/dist/src/core/coreToolScheduler.test.js.map +1 -0
  68. package/dist/src/core/geminiChat.d.ts +116 -0
  69. package/dist/src/core/geminiChat.js +513 -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 +45 -0
  76. package/dist/src/core/geminiRequest.js.map +1 -0
  77. package/dist/src/core/geminiRequest.test.d.ts +6 -0
  78. package/dist/src/core/geminiRequest.test.js +72 -0
  79. package/dist/src/core/geminiRequest.test.js.map +1 -0
  80. package/dist/src/core/logger.d.ts +38 -0
  81. package/dist/src/core/logger.js +237 -0
  82. package/dist/src/core/logger.js.map +1 -0
  83. package/dist/src/core/logger.test.d.ts +6 -0
  84. package/dist/src/core/logger.test.js +387 -0
  85. package/dist/src/core/logger.test.js.map +1 -0
  86. package/dist/src/core/modelCheck.d.ts +14 -0
  87. package/dist/src/core/modelCheck.js +55 -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 +93 -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 +180 -0
  94. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -0
  95. package/dist/src/core/prompts.d.ts +12 -0
  96. package/dist/src/core/prompts.js +418 -0
  97. package/dist/src/core/prompts.js.map +1 -0
  98. package/dist/src/core/prompts.test.d.ts +6 -0
  99. package/dist/src/core/prompts.test.js +97 -0
  100. package/dist/src/core/prompts.test.js.map +1 -0
  101. package/dist/src/core/tokenLimits.d.ts +10 -0
  102. package/dist/src/core/tokenLimits.js +75 -0
  103. package/dist/src/core/tokenLimits.js.map +1 -0
  104. package/dist/src/core/tokenLimits.test.d.ts +6 -0
  105. package/dist/src/core/tokenLimits.test.js +66 -0
  106. package/dist/src/core/tokenLimits.test.js.map +1 -0
  107. package/dist/src/core/turn.d.ts +116 -0
  108. package/dist/src/core/turn.js +131 -0
  109. package/dist/src/core/turn.js.map +1 -0
  110. package/dist/src/core/turn.test.d.ts +6 -0
  111. package/dist/src/core/turn.test.js +237 -0
  112. package/dist/src/core/turn.test.js.map +1 -0
  113. package/dist/src/index.d.ts +57 -0
  114. package/dist/src/index.js +64 -0
  115. package/dist/src/index.js.map +1 -0
  116. package/dist/src/index.test.d.ts +6 -0
  117. package/dist/src/index.test.js +12 -0
  118. package/dist/src/index.test.js.map +1 -0
  119. package/dist/src/providers/ProviderContentGenerator.d.ts +21 -0
  120. package/dist/src/providers/ProviderContentGenerator.js +52 -0
  121. package/dist/src/providers/ProviderContentGenerator.js.map +1 -0
  122. package/dist/src/providers/adapters/GeminiCompatibleWrapper.d.ts +68 -0
  123. package/dist/src/providers/adapters/GeminiCompatibleWrapper.js +549 -0
  124. package/dist/src/providers/adapters/GeminiCompatibleWrapper.js.map +1 -0
  125. package/dist/src/providers/adapters/GeminiCompatibleWrapper.test.d.ts +6 -0
  126. package/dist/src/providers/adapters/GeminiCompatibleWrapper.test.js +253 -0
  127. package/dist/src/providers/adapters/GeminiCompatibleWrapper.test.js.map +1 -0
  128. package/dist/src/providers/types.d.ts +82 -0
  129. package/dist/src/providers/types.js +7 -0
  130. package/dist/src/providers/types.js.map +1 -0
  131. package/dist/src/services/fileDiscoveryService.d.ts +35 -0
  132. package/dist/src/services/fileDiscoveryService.js +91 -0
  133. package/dist/src/services/fileDiscoveryService.js.map +1 -0
  134. package/dist/src/services/fileDiscoveryService.test.d.ts +6 -0
  135. package/dist/src/services/fileDiscoveryService.test.js +102 -0
  136. package/dist/src/services/fileDiscoveryService.test.js.map +1 -0
  137. package/dist/src/services/gitService.d.ts +21 -0
  138. package/dist/src/services/gitService.js +102 -0
  139. package/dist/src/services/gitService.js.map +1 -0
  140. package/dist/src/services/gitService.test.d.ts +6 -0
  141. package/dist/src/services/gitService.test.js +246 -0
  142. package/dist/src/services/gitService.test.js.map +1 -0
  143. package/dist/src/services/ideContext.d.ts +124 -0
  144. package/dist/src/services/ideContext.js +90 -0
  145. package/dist/src/services/ideContext.js.map +1 -0
  146. package/dist/src/services/ideContext.test.d.ts +6 -0
  147. package/dist/src/services/ideContext.test.js +101 -0
  148. package/dist/src/services/ideContext.test.js.map +1 -0
  149. package/dist/src/services/loopDetectionService.d.ts +35 -0
  150. package/dist/src/services/loopDetectionService.js +117 -0
  151. package/dist/src/services/loopDetectionService.js.map +1 -0
  152. package/dist/src/services/loopDetectionService.test.d.ts +6 -0
  153. package/dist/src/services/loopDetectionService.test.js +232 -0
  154. package/dist/src/services/loopDetectionService.test.js.map +1 -0
  155. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +35 -0
  156. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +424 -0
  157. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -0
  158. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +47 -0
  159. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +123 -0
  160. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -0
  161. package/dist/src/telemetry/constants.d.ts +20 -0
  162. package/dist/src/telemetry/constants.js +21 -0
  163. package/dist/src/telemetry/constants.js.map +1 -0
  164. package/dist/src/telemetry/index.d.ts +18 -0
  165. package/dist/src/telemetry/index.js +20 -0
  166. package/dist/src/telemetry/index.js.map +1 -0
  167. package/dist/src/telemetry/integration.test.circular.d.ts +6 -0
  168. package/dist/src/telemetry/integration.test.circular.js +53 -0
  169. package/dist/src/telemetry/integration.test.circular.js.map +1 -0
  170. package/dist/src/telemetry/loggers.d.ts +15 -0
  171. package/dist/src/telemetry/loggers.js +229 -0
  172. package/dist/src/telemetry/loggers.js.map +1 -0
  173. package/dist/src/telemetry/loggers.test.circular.d.ts +6 -0
  174. package/dist/src/telemetry/loggers.test.circular.js +100 -0
  175. package/dist/src/telemetry/loggers.test.circular.js.map +1 -0
  176. package/dist/src/telemetry/loggers.test.d.ts +6 -0
  177. package/dist/src/telemetry/loggers.test.js +558 -0
  178. package/dist/src/telemetry/loggers.test.js.map +1 -0
  179. package/dist/src/telemetry/metrics.d.ts +19 -0
  180. package/dist/src/telemetry/metrics.js +144 -0
  181. package/dist/src/telemetry/metrics.js.map +1 -0
  182. package/dist/src/telemetry/metrics.test.d.ts +6 -0
  183. package/dist/src/telemetry/metrics.test.js +162 -0
  184. package/dist/src/telemetry/metrics.test.js.map +1 -0
  185. package/dist/src/telemetry/sdk.d.ts +9 -0
  186. package/dist/src/telemetry/sdk.js +120 -0
  187. package/dist/src/telemetry/sdk.js.map +1 -0
  188. package/dist/src/telemetry/telemetry.test.d.ts +6 -0
  189. package/dist/src/telemetry/telemetry.test.js +52 -0
  190. package/dist/src/telemetry/telemetry.test.js.map +1 -0
  191. package/dist/src/telemetry/types.d.ts +115 -0
  192. package/dist/src/telemetry/types.js +217 -0
  193. package/dist/src/telemetry/types.js.map +1 -0
  194. package/dist/src/telemetry/uiTelemetry.d.ts +67 -0
  195. package/dist/src/telemetry/uiTelemetry.js +131 -0
  196. package/dist/src/telemetry/uiTelemetry.js.map +1 -0
  197. package/dist/src/telemetry/uiTelemetry.test.d.ts +6 -0
  198. package/dist/src/telemetry/uiTelemetry.test.js +412 -0
  199. package/dist/src/telemetry/uiTelemetry.test.js.map +1 -0
  200. package/dist/src/tools/diffOptions.d.ts +7 -0
  201. package/dist/src/tools/diffOptions.js +10 -0
  202. package/dist/src/tools/diffOptions.js.map +1 -0
  203. package/dist/src/tools/edit.d.ts +73 -0
  204. package/dist/src/tools/edit.js +343 -0
  205. package/dist/src/tools/edit.js.map +1 -0
  206. package/dist/src/tools/edit.test.d.ts +6 -0
  207. package/dist/src/tools/edit.test.js +500 -0
  208. package/dist/src/tools/edit.test.js.map +1 -0
  209. package/dist/src/tools/glob.d.ts +58 -0
  210. package/dist/src/tools/glob.js +193 -0
  211. package/dist/src/tools/glob.js.map +1 -0
  212. package/dist/src/tools/glob.test.d.ts +6 -0
  213. package/dist/src/tools/glob.test.js +294 -0
  214. package/dist/src/tools/glob.test.js.map +1 -0
  215. package/dist/src/tools/grep.d.ts +78 -0
  216. package/dist/src/tools/grep.js +422 -0
  217. package/dist/src/tools/grep.js.map +1 -0
  218. package/dist/src/tools/grep.test.d.ts +6 -0
  219. package/dist/src/tools/grep.test.js +188 -0
  220. package/dist/src/tools/grep.test.js.map +1 -0
  221. package/dist/src/tools/ls.d.ts +83 -0
  222. package/dist/src/tools/ls.js +194 -0
  223. package/dist/src/tools/ls.js.map +1 -0
  224. package/dist/src/tools/mcp-client.d.ts +112 -0
  225. package/dist/src/tools/mcp-client.js +332 -0
  226. package/dist/src/tools/mcp-client.js.map +1 -0
  227. package/dist/src/tools/mcp-client.test.d.ts +6 -0
  228. package/dist/src/tools/mcp-client.test.js +227 -0
  229. package/dist/src/tools/mcp-client.test.js.map +1 -0
  230. package/dist/src/tools/mcp-tool.d.ts +23 -0
  231. package/dist/src/tools/mcp-tool.js +119 -0
  232. package/dist/src/tools/mcp-tool.js.map +1 -0
  233. package/dist/src/tools/mcp-tool.test.d.ts +6 -0
  234. package/dist/src/tools/mcp-tool.test.js +173 -0
  235. package/dist/src/tools/mcp-tool.test.js.map +1 -0
  236. package/dist/src/tools/memoryTool.d.ts +28 -0
  237. package/dist/src/tools/memoryTool.js +172 -0
  238. package/dist/src/tools/memoryTool.js.map +1 -0
  239. package/dist/src/tools/memoryTool.test.d.ts +6 -0
  240. package/dist/src/tools/memoryTool.test.js +181 -0
  241. package/dist/src/tools/memoryTool.test.js.map +1 -0
  242. package/dist/src/tools/modifiable-tool.d.ts +29 -0
  243. package/dist/src/tools/modifiable-tool.js +85 -0
  244. package/dist/src/tools/modifiable-tool.js.map +1 -0
  245. package/dist/src/tools/modifiable-tool.test.d.ts +6 -0
  246. package/dist/src/tools/modifiable-tool.test.js +204 -0
  247. package/dist/src/tools/modifiable-tool.test.js.map +1 -0
  248. package/dist/src/tools/read-file.d.ts +35 -0
  249. package/dist/src/tools/read-file.js +106 -0
  250. package/dist/src/tools/read-file.js.map +1 -0
  251. package/dist/src/tools/read-file.test.d.ts +6 -0
  252. package/dist/src/tools/read-file.test.js +181 -0
  253. package/dist/src/tools/read-file.test.js.map +1 -0
  254. package/dist/src/tools/read-many-files.d.ts +59 -0
  255. package/dist/src/tools/read-many-files.js +321 -0
  256. package/dist/src/tools/read-many-files.js.map +1 -0
  257. package/dist/src/tools/read-many-files.test.d.ts +6 -0
  258. package/dist/src/tools/read-many-files.test.js +312 -0
  259. package/dist/src/tools/read-many-files.test.js.map +1 -0
  260. package/dist/src/tools/shell.d.ts +43 -0
  261. package/dist/src/tools/shell.js +435 -0
  262. package/dist/src/tools/shell.js.map +1 -0
  263. package/dist/src/tools/shell.test.d.ts +6 -0
  264. package/dist/src/tools/shell.test.js +407 -0
  265. package/dist/src/tools/shell.test.js.map +1 -0
  266. package/dist/src/tools/todo-read.d.ts +15 -0
  267. package/dist/src/tools/todo-read.js +66 -0
  268. package/dist/src/tools/todo-read.js.map +1 -0
  269. package/dist/src/tools/todo-read.test.d.ts +6 -0
  270. package/dist/src/tools/todo-read.test.js +158 -0
  271. package/dist/src/tools/todo-read.test.js.map +1 -0
  272. package/dist/src/tools/todo-schemas.d.ts +43 -0
  273. package/dist/src/tools/todo-schemas.js +16 -0
  274. package/dist/src/tools/todo-schemas.js.map +1 -0
  275. package/dist/src/tools/todo-schemas.test.d.ts +6 -0
  276. package/dist/src/tools/todo-schemas.test.js +152 -0
  277. package/dist/src/tools/todo-schemas.test.js.map +1 -0
  278. package/dist/src/tools/todo-store.d.ts +15 -0
  279. package/dist/src/tools/todo-store.js +59 -0
  280. package/dist/src/tools/todo-store.js.map +1 -0
  281. package/dist/src/tools/todo-store.test.d.ts +6 -0
  282. package/dist/src/tools/todo-store.test.js +175 -0
  283. package/dist/src/tools/todo-store.test.js.map +1 -0
  284. package/dist/src/tools/todo-write.d.ts +17 -0
  285. package/dist/src/tools/todo-write.js +98 -0
  286. package/dist/src/tools/todo-write.js.map +1 -0
  287. package/dist/src/tools/todo-write.test.d.ts +6 -0
  288. package/dist/src/tools/todo-write.test.js +208 -0
  289. package/dist/src/tools/todo-write.test.js.map +1 -0
  290. package/dist/src/tools/tool-registry.d.ts +67 -0
  291. package/dist/src/tools/tool-registry.js +326 -0
  292. package/dist/src/tools/tool-registry.js.map +1 -0
  293. package/dist/src/tools/tool-registry.test.d.ts +6 -0
  294. package/dist/src/tools/tool-registry.test.js +398 -0
  295. package/dist/src/tools/tool-registry.test.js.map +1 -0
  296. package/dist/src/tools/tools.d.ts +184 -0
  297. package/dist/src/tools/tools.js +88 -0
  298. package/dist/src/tools/tools.js.map +1 -0
  299. package/dist/src/tools/web-fetch.d.ts +29 -0
  300. package/dist/src/tools/web-fetch.js +243 -0
  301. package/dist/src/tools/web-fetch.js.map +1 -0
  302. package/dist/src/tools/web-fetch.test.d.ts +6 -0
  303. package/dist/src/tools/web-fetch.test.js +70 -0
  304. package/dist/src/tools/web-fetch.test.js.map +1 -0
  305. package/dist/src/tools/web-search.d.ts +49 -0
  306. package/dist/src/tools/web-search.js +120 -0
  307. package/dist/src/tools/web-search.js.map +1 -0
  308. package/dist/src/tools/write-file.d.ts +42 -0
  309. package/dist/src/tools/write-file.js +248 -0
  310. package/dist/src/tools/write-file.js.map +1 -0
  311. package/dist/src/tools/write-file.test.d.ts +6 -0
  312. package/dist/src/tools/write-file.test.js +413 -0
  313. package/dist/src/tools/write-file.test.js.map +1 -0
  314. package/dist/src/utils/LruCache.d.ts +13 -0
  315. package/dist/src/utils/LruCache.js +38 -0
  316. package/dist/src/utils/LruCache.js.map +1 -0
  317. package/dist/src/utils/bfsFileSearch.d.ts +22 -0
  318. package/dist/src/utils/bfsFileSearch.js +62 -0
  319. package/dist/src/utils/bfsFileSearch.js.map +1 -0
  320. package/dist/src/utils/bfsFileSearch.test.d.ts +6 -0
  321. package/dist/src/utils/bfsFileSearch.test.js +129 -0
  322. package/dist/src/utils/bfsFileSearch.test.js.map +1 -0
  323. package/dist/src/utils/editCorrector.d.ts +53 -0
  324. package/dist/src/utils/editCorrector.js +546 -0
  325. package/dist/src/utils/editCorrector.js.map +1 -0
  326. package/dist/src/utils/editCorrector.test.d.ts +6 -0
  327. package/dist/src/utils/editCorrector.test.js +564 -0
  328. package/dist/src/utils/editCorrector.test.js.map +1 -0
  329. package/dist/src/utils/editor.d.ts +28 -0
  330. package/dist/src/utils/editor.js +163 -0
  331. package/dist/src/utils/editor.js.map +1 -0
  332. package/dist/src/utils/editor.test.d.ts +6 -0
  333. package/dist/src/utils/editor.test.js +293 -0
  334. package/dist/src/utils/editor.test.js.map +1 -0
  335. package/dist/src/utils/errorReporting.d.ts +14 -0
  336. package/dist/src/utils/errorReporting.js +88 -0
  337. package/dist/src/utils/errorReporting.js.map +1 -0
  338. package/dist/src/utils/errorReporting.test.d.ts +6 -0
  339. package/dist/src/utils/errorReporting.test.js +124 -0
  340. package/dist/src/utils/errorReporting.test.js.map +1 -0
  341. package/dist/src/utils/errors.d.ts +14 -0
  342. package/dist/src/utils/errors.js +54 -0
  343. package/dist/src/utils/errors.js.map +1 -0
  344. package/dist/src/utils/fetch.d.ts +11 -0
  345. package/dist/src/utils/fetch.js +51 -0
  346. package/dist/src/utils/fetch.js.map +1 -0
  347. package/dist/src/utils/fileUtils.d.ts +49 -0
  348. package/dist/src/utils/fileUtils.js +286 -0
  349. package/dist/src/utils/fileUtils.js.map +1 -0
  350. package/dist/src/utils/fileUtils.test.d.ts +6 -0
  351. package/dist/src/utils/fileUtils.test.js +321 -0
  352. package/dist/src/utils/fileUtils.test.js.map +1 -0
  353. package/dist/src/utils/flashFallback.integration.test.d.ts +6 -0
  354. package/dist/src/utils/flashFallback.integration.test.js +112 -0
  355. package/dist/src/utils/flashFallback.integration.test.js.map +1 -0
  356. package/dist/src/utils/generateContentResponseUtilities.d.ts +14 -0
  357. package/dist/src/utils/generateContentResponseUtilities.js +92 -0
  358. package/dist/src/utils/generateContentResponseUtilities.js.map +1 -0
  359. package/dist/src/utils/generateContentResponseUtilities.test.d.ts +6 -0
  360. package/dist/src/utils/generateContentResponseUtilities.test.js +273 -0
  361. package/dist/src/utils/generateContentResponseUtilities.test.js.map +1 -0
  362. package/dist/src/utils/getFolderStructure.d.ts +30 -0
  363. package/dist/src/utils/getFolderStructure.js +247 -0
  364. package/dist/src/utils/getFolderStructure.js.map +1 -0
  365. package/dist/src/utils/getFolderStructure.test.d.ts +6 -0
  366. package/dist/src/utils/getFolderStructure.test.js +298 -0
  367. package/dist/src/utils/getFolderStructure.test.js.map +1 -0
  368. package/dist/src/utils/gitIgnoreParser.d.ts +20 -0
  369. package/dist/src/utils/gitIgnoreParser.js +64 -0
  370. package/dist/src/utils/gitIgnoreParser.js.map +1 -0
  371. package/dist/src/utils/gitIgnoreParser.test.d.ts +6 -0
  372. package/dist/src/utils/gitIgnoreParser.test.js +145 -0
  373. package/dist/src/utils/gitIgnoreParser.test.js.map +1 -0
  374. package/dist/src/utils/gitUtils.d.ts +17 -0
  375. package/dist/src/utils/gitUtils.js +61 -0
  376. package/dist/src/utils/gitUtils.js.map +1 -0
  377. package/dist/src/utils/memoryDiscovery.d.ts +14 -0
  378. package/dist/src/utils/memoryDiscovery.js +219 -0
  379. package/dist/src/utils/memoryDiscovery.js.map +1 -0
  380. package/dist/src/utils/memoryDiscovery.test.d.ts +6 -0
  381. package/dist/src/utils/memoryDiscovery.test.js +432 -0
  382. package/dist/src/utils/memoryDiscovery.test.js.map +1 -0
  383. package/dist/src/utils/memoryImportProcessor.d.ts +35 -0
  384. package/dist/src/utils/memoryImportProcessor.js +141 -0
  385. package/dist/src/utils/memoryImportProcessor.js.map +1 -0
  386. package/dist/src/utils/memoryImportProcessor.test.d.ts +6 -0
  387. package/dist/src/utils/memoryImportProcessor.test.js +170 -0
  388. package/dist/src/utils/memoryImportProcessor.test.js.map +1 -0
  389. package/dist/src/utils/messageInspectors.d.ts +8 -0
  390. package/dist/src/utils/messageInspectors.js +16 -0
  391. package/dist/src/utils/messageInspectors.js.map +1 -0
  392. package/dist/src/utils/nextSpeakerChecker.d.ts +12 -0
  393. package/dist/src/utils/nextSpeakerChecker.js +113 -0
  394. package/dist/src/utils/nextSpeakerChecker.js.map +1 -0
  395. package/dist/src/utils/nextSpeakerChecker.test.d.ts +6 -0
  396. package/dist/src/utils/nextSpeakerChecker.test.js +168 -0
  397. package/dist/src/utils/nextSpeakerChecker.test.js.map +1 -0
  398. package/dist/src/utils/paths.d.ts +49 -0
  399. package/dist/src/utils/paths.js +145 -0
  400. package/dist/src/utils/paths.js.map +1 -0
  401. package/dist/src/utils/quotaErrorDetection.d.ts +22 -0
  402. package/dist/src/utils/quotaErrorDetection.js +67 -0
  403. package/dist/src/utils/quotaErrorDetection.js.map +1 -0
  404. package/dist/src/utils/retry.d.ts +21 -0
  405. package/dist/src/utils/retry.js +276 -0
  406. package/dist/src/utils/retry.js.map +1 -0
  407. package/dist/src/utils/retry.test.d.ts +6 -0
  408. package/dist/src/utils/retry.test.js +322 -0
  409. package/dist/src/utils/retry.test.js.map +1 -0
  410. package/dist/src/utils/safeJsonStringify.d.ts +13 -0
  411. package/dist/src/utils/safeJsonStringify.js +25 -0
  412. package/dist/src/utils/safeJsonStringify.js.map +1 -0
  413. package/dist/src/utils/safeJsonStringify.test.d.ts +6 -0
  414. package/dist/src/utils/safeJsonStringify.test.js +61 -0
  415. package/dist/src/utils/safeJsonStringify.test.js.map +1 -0
  416. package/dist/src/utils/schemaValidator.d.ts +23 -0
  417. package/dist/src/utils/schemaValidator.js +142 -0
  418. package/dist/src/utils/schemaValidator.js.map +1 -0
  419. package/dist/src/utils/schemaValidator.test.d.ts +6 -0
  420. package/dist/src/utils/schemaValidator.test.js +146 -0
  421. package/dist/src/utils/schemaValidator.test.js.map +1 -0
  422. package/dist/src/utils/session.d.ts +6 -0
  423. package/dist/src/utils/session.js +8 -0
  424. package/dist/src/utils/session.js.map +1 -0
  425. package/dist/src/utils/summarizer.d.ts +25 -0
  426. package/dist/src/utils/summarizer.js +80 -0
  427. package/dist/src/utils/summarizer.js.map +1 -0
  428. package/dist/src/utils/summarizer.test.d.ts +6 -0
  429. package/dist/src/utils/summarizer.test.js +131 -0
  430. package/dist/src/utils/summarizer.test.js.map +1 -0
  431. package/dist/src/utils/testUtils.d.ts +29 -0
  432. package/dist/src/utils/testUtils.js +70 -0
  433. package/dist/src/utils/testUtils.js.map +1 -0
  434. package/dist/src/utils/user_account.d.ts +9 -0
  435. package/dist/src/utils/user_account.js +99 -0
  436. package/dist/src/utils/user_account.js.map +1 -0
  437. package/dist/src/utils/user_account.test.d.ts +6 -0
  438. package/dist/src/utils/user_account.test.js +153 -0
  439. package/dist/src/utils/user_account.test.js.map +1 -0
  440. package/dist/src/utils/user_id.d.ts +11 -0
  441. package/dist/src/utils/user_id.js +49 -0
  442. package/dist/src/utils/user_id.js.map +1 -0
  443. package/dist/src/utils/user_id.test.d.ts +6 -0
  444. package/dist/src/utils/user_id.test.js +21 -0
  445. package/dist/src/utils/user_id.test.js.map +1 -0
  446. package/dist/tsconfig.tsbuildinfo +1 -0
  447. package/dist/vybestack-llxprt-code-core-0.1.12.tgz +0 -0
  448. package/package.json +62 -0
@@ -0,0 +1,513 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
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';
9
+ import { retryWithBackoff } from '../utils/retry.js';
10
+ import { isFunctionResponse } from '../utils/messageInspectors.js';
11
+ import { AuthType } from './contentGenerator.js';
12
+ import { logApiRequest, logApiResponse, logApiError, } from '../telemetry/loggers.js';
13
+ import { getStructuredResponse, getStructuredResponseFromParts, } from '../utils/generateContentResponseUtilities.js';
14
+ import { ApiErrorEvent, ApiRequestEvent, ApiResponseEvent, } from '../telemetry/types.js';
15
+ import { DEFAULT_GEMINI_FLASH_MODEL } from '../config/models.js';
16
+ /**
17
+ * Returns true if the response is valid, false otherwise.
18
+ */
19
+ function isValidResponse(response) {
20
+ if (response.candidates === undefined || response.candidates.length === 0) {
21
+ return false;
22
+ }
23
+ const content = response.candidates[0]?.content;
24
+ if (content === undefined) {
25
+ return false;
26
+ }
27
+ return isValidContent(content);
28
+ }
29
+ function isValidContent(content) {
30
+ if (content.parts === undefined || content.parts.length === 0) {
31
+ return false;
32
+ }
33
+ for (const part of content.parts) {
34
+ if (part === undefined || Object.keys(part).length === 0) {
35
+ return false;
36
+ }
37
+ if (!part.thought && part.text !== undefined && part.text === '') {
38
+ return false;
39
+ }
40
+ }
41
+ return true;
42
+ }
43
+ /**
44
+ * Validates the history contains the correct roles.
45
+ *
46
+ * @throws Error if the history does not start with a user turn.
47
+ * @throws Error if the history contains an invalid role.
48
+ */
49
+ function validateHistory(history) {
50
+ for (const content of history) {
51
+ if (content.role !== 'user' && content.role !== 'model') {
52
+ throw new Error(`Role must be user or model, but got ${content.role}.`);
53
+ }
54
+ }
55
+ }
56
+ /**
57
+ * Extracts the curated (valid) history from a comprehensive history.
58
+ *
59
+ * @remarks
60
+ * The model may sometimes generate invalid or empty contents(e.g., due to safety
61
+ * filters or recitation). Extracting valid turns from the history
62
+ * ensures that subsequent requests could be accepted by the model.
63
+ */
64
+ function extractCuratedHistory(comprehensiveHistory) {
65
+ if (comprehensiveHistory === undefined || comprehensiveHistory.length === 0) {
66
+ return [];
67
+ }
68
+ const curatedHistory = [];
69
+ const length = comprehensiveHistory.length;
70
+ let i = 0;
71
+ while (i < length) {
72
+ if (comprehensiveHistory[i].role === 'user') {
73
+ curatedHistory.push(comprehensiveHistory[i]);
74
+ i++;
75
+ }
76
+ else {
77
+ const modelOutput = [];
78
+ let isValid = true;
79
+ while (i < length && comprehensiveHistory[i].role === 'model') {
80
+ modelOutput.push(comprehensiveHistory[i]);
81
+ if (isValid && !isValidContent(comprehensiveHistory[i])) {
82
+ isValid = false;
83
+ }
84
+ i++;
85
+ }
86
+ if (isValid) {
87
+ curatedHistory.push(...modelOutput);
88
+ }
89
+ else {
90
+ // Remove the last user input when model content is invalid.
91
+ curatedHistory.pop();
92
+ }
93
+ }
94
+ }
95
+ return curatedHistory;
96
+ }
97
+ /**
98
+ * Chat session that enables sending messages to the model with previous
99
+ * conversation context.
100
+ *
101
+ * @remarks
102
+ * The session maintains all the turns between user and model.
103
+ */
104
+ export class GeminiChat {
105
+ config;
106
+ contentGenerator;
107
+ generationConfig;
108
+ history;
109
+ // A promise to represent the current state of the message being sent to the
110
+ // model.
111
+ sendPromise = Promise.resolve();
112
+ constructor(config, contentGenerator, generationConfig = {}, history = []) {
113
+ this.config = config;
114
+ this.contentGenerator = contentGenerator;
115
+ this.generationConfig = generationConfig;
116
+ this.history = history;
117
+ validateHistory(history);
118
+ }
119
+ _getRequestTextFromContents(contents) {
120
+ return contents
121
+ .flatMap((content) => content.parts ?? [])
122
+ .map((part) => part.text)
123
+ .filter(Boolean)
124
+ .join('');
125
+ }
126
+ async _logApiRequest(contents, model, prompt_id) {
127
+ const requestText = this._getRequestTextFromContents(contents);
128
+ logApiRequest(this.config, new ApiRequestEvent(model, prompt_id, requestText));
129
+ }
130
+ async _logApiResponse(durationMs, prompt_id, usageMetadata, responseText) {
131
+ logApiResponse(this.config, new ApiResponseEvent(this.config.getModel(), durationMs, prompt_id, this.config.getContentGeneratorConfig()?.authType, usageMetadata, responseText));
132
+ }
133
+ _logApiError(durationMs, error, prompt_id) {
134
+ const errorMessage = error instanceof Error ? error.message : String(error);
135
+ const errorType = error instanceof Error ? error.name : 'unknown';
136
+ logApiError(this.config, new ApiErrorEvent(this.config.getModel(), errorMessage, durationMs, prompt_id, this.config.getContentGeneratorConfig()?.authType, errorType));
137
+ }
138
+ /**
139
+ * Handles fallback to Flash model when persistent 429 errors occur for OAuth users.
140
+ * Uses a fallback handler if provided by the config, otherwise returns null.
141
+ */
142
+ async handleFlashFallback(authType, error) {
143
+ // Only handle fallback for OAuth users, not for providers
144
+ if (authType !== AuthType.LOGIN_WITH_GOOGLE) {
145
+ return null;
146
+ }
147
+ const currentModel = this.config.getModel();
148
+ const fallbackModel = DEFAULT_GEMINI_FLASH_MODEL;
149
+ // Don't fallback if already using Flash model
150
+ if (currentModel === fallbackModel) {
151
+ return null;
152
+ }
153
+ // Check if config has a fallback handler (set by CLI package)
154
+ const fallbackHandler = this.config.flashFallbackHandler;
155
+ if (typeof fallbackHandler === 'function') {
156
+ try {
157
+ const accepted = await fallbackHandler(currentModel, fallbackModel, error);
158
+ if (accepted !== false && accepted !== null) {
159
+ this.config.setModel(fallbackModel);
160
+ return fallbackModel;
161
+ }
162
+ // Check if the model was switched manually in the handler
163
+ if (this.config.getModel() === fallbackModel) {
164
+ return null; // Model was switched but don't continue with current prompt
165
+ }
166
+ }
167
+ catch (error) {
168
+ console.warn('Flash fallback handler failed:', error);
169
+ }
170
+ }
171
+ return null;
172
+ }
173
+ /**
174
+ * Sends a message to the model and returns the response.
175
+ *
176
+ * @remarks
177
+ * This method will wait for the previous message to be processed before
178
+ * sending the next message.
179
+ *
180
+ * @see {@link Chat#sendMessageStream} for streaming method.
181
+ * @param params - parameters for sending messages within a chat session.
182
+ * @returns The model's response.
183
+ *
184
+ * @example
185
+ * ```ts
186
+ * const chat = ai.chats.create({model: 'gemini-2.0-flash'});
187
+ * const response = await chat.sendMessage({
188
+ * message: 'Why is the sky blue?'
189
+ * });
190
+ * console.log(response.text);
191
+ * ```
192
+ */
193
+ async sendMessage(params, prompt_id) {
194
+ await this.sendPromise;
195
+ const userContent = createUserContent(params.message);
196
+ const requestContents = this.getHistory(true).concat(userContent);
197
+ this._logApiRequest(requestContents, this.config.getModel(), prompt_id);
198
+ const startTime = Date.now();
199
+ let response;
200
+ try {
201
+ const apiCall = () => {
202
+ const modelToUse = this.config.getModel() || DEFAULT_GEMINI_FLASH_MODEL;
203
+ // Prevent Flash model calls immediately after quota error
204
+ if (this.config.getQuotaErrorOccurred() &&
205
+ modelToUse === DEFAULT_GEMINI_FLASH_MODEL) {
206
+ throw new Error('Please submit a new query to continue with the Flash model.');
207
+ }
208
+ return this.contentGenerator.generateContent({
209
+ model: modelToUse,
210
+ contents: requestContents,
211
+ config: { ...this.generationConfig, ...params.config },
212
+ });
213
+ };
214
+ response = await retryWithBackoff(apiCall, {
215
+ shouldRetry: (error) => {
216
+ if (error && error.message) {
217
+ if (error.message.includes('429'))
218
+ return true;
219
+ if (error.message.match(/5\d{2}/))
220
+ return true;
221
+ }
222
+ return false;
223
+ },
224
+ onPersistent429: async (authType, error) => await this.handleFlashFallback(authType, error),
225
+ authType: this.config.getContentGeneratorConfig()?.authType,
226
+ });
227
+ const durationMs = Date.now() - startTime;
228
+ await this._logApiResponse(durationMs, prompt_id, response.usageMetadata, getStructuredResponse(response));
229
+ this.sendPromise = (async () => {
230
+ const outputContent = response.candidates?.[0]?.content;
231
+ // Because the AFC input contains the entire curated chat history in
232
+ // addition to the new user input, we need to truncate the AFC history
233
+ // to deduplicate the existing chat history.
234
+ const fullAutomaticFunctionCallingHistory = response.automaticFunctionCallingHistory;
235
+ const index = this.getHistory(true).length;
236
+ let automaticFunctionCallingHistory = [];
237
+ if (fullAutomaticFunctionCallingHistory != null) {
238
+ automaticFunctionCallingHistory =
239
+ fullAutomaticFunctionCallingHistory.slice(index) ?? [];
240
+ }
241
+ const modelOutput = outputContent ? [outputContent] : [];
242
+ this.recordHistory(userContent, modelOutput, automaticFunctionCallingHistory);
243
+ })();
244
+ await this.sendPromise.catch(() => {
245
+ // Resets sendPromise to avoid subsequent calls failing
246
+ this.sendPromise = Promise.resolve();
247
+ });
248
+ return response;
249
+ }
250
+ catch (error) {
251
+ const durationMs = Date.now() - startTime;
252
+ this._logApiError(durationMs, error, prompt_id);
253
+ this.sendPromise = Promise.resolve();
254
+ throw error;
255
+ }
256
+ }
257
+ /**
258
+ * Sends a message to the model and returns the response in chunks.
259
+ *
260
+ * @remarks
261
+ * This method will wait for the previous message to be processed before
262
+ * sending the next message.
263
+ *
264
+ * @see {@link Chat#sendMessage} for non-streaming method.
265
+ * @param params - parameters for sending the message.
266
+ * @return The model's response.
267
+ *
268
+ * @example
269
+ * ```ts
270
+ * const chat = ai.chats.create({model: 'gemini-2.0-flash'});
271
+ * const response = await chat.sendMessageStream({
272
+ * message: 'Why is the sky blue?'
273
+ * });
274
+ * for await (const chunk of response) {
275
+ * console.log(chunk.text);
276
+ * }
277
+ * ```
278
+ */
279
+ async sendMessageStream(params, prompt_id) {
280
+ await this.sendPromise;
281
+ const userContent = createUserContent(params.message);
282
+ const requestContents = this.getHistory(true).concat(userContent);
283
+ this._logApiRequest(requestContents, this.config.getModel(), prompt_id);
284
+ const startTime = Date.now();
285
+ try {
286
+ const apiCall = () => {
287
+ const modelToUse = this.config.getModel();
288
+ const authType = this.config.getContentGeneratorConfig()?.authType;
289
+ // Prevent Flash model calls immediately after quota error (only for Gemini providers)
290
+ if (authType !== AuthType.USE_PROVIDER &&
291
+ this.config.getQuotaErrorOccurred() &&
292
+ modelToUse === DEFAULT_GEMINI_FLASH_MODEL) {
293
+ throw new Error('Please submit a new query to continue with the Flash model.');
294
+ }
295
+ return this.contentGenerator.generateContentStream({
296
+ model: modelToUse,
297
+ contents: requestContents,
298
+ config: { ...this.generationConfig, ...params.config },
299
+ });
300
+ };
301
+ // Note: Retrying streams can be complex. If generateContentStream itself doesn't handle retries
302
+ // for transient issues internally before yielding the async generator, this retry will re-initiate
303
+ // the stream. For simple 429/500 errors on initial call, this is fine.
304
+ // If errors occur mid-stream, this setup won't resume the stream; it will restart it.
305
+ const streamResponse = await retryWithBackoff(apiCall, {
306
+ shouldRetry: (error) => {
307
+ // Check error messages for status codes, or specific error names if known
308
+ if (error && error.message) {
309
+ if (error.message.includes('429'))
310
+ return true;
311
+ if (error.message.match(/5\d{2}/))
312
+ return true;
313
+ }
314
+ return false; // Don't retry other errors by default
315
+ },
316
+ onPersistent429: async (authType, error) => await this.handleFlashFallback(authType, error),
317
+ authType: this.config.getContentGeneratorConfig()?.authType,
318
+ });
319
+ // Resolve the internal tracking of send completion promise - `sendPromise`
320
+ // for both success and failure response. The actual failure is still
321
+ // propagated by the `await streamResponse`.
322
+ this.sendPromise = Promise.resolve(streamResponse)
323
+ .then(() => undefined)
324
+ .catch(() => undefined);
325
+ const result = this.processStreamResponse(streamResponse, userContent, startTime, prompt_id);
326
+ return result;
327
+ }
328
+ catch (error) {
329
+ const durationMs = Date.now() - startTime;
330
+ this._logApiError(durationMs, error, prompt_id);
331
+ this.sendPromise = Promise.resolve();
332
+ throw error;
333
+ }
334
+ }
335
+ /**
336
+ * Returns the chat history.
337
+ *
338
+ * @remarks
339
+ * The history is a list of contents alternating between user and model.
340
+ *
341
+ * There are two types of history:
342
+ * - The `curated history` contains only the valid turns between user and
343
+ * model, which will be included in the subsequent requests sent to the model.
344
+ * - The `comprehensive history` contains all turns, including invalid or
345
+ * empty model outputs, providing a complete record of the history.
346
+ *
347
+ * The history is updated after receiving the response from the model,
348
+ * for streaming response, it means receiving the last chunk of the response.
349
+ *
350
+ * The `comprehensive history` is returned by default. To get the `curated
351
+ * history`, set the `curated` parameter to `true`.
352
+ *
353
+ * @param curated - whether to return the curated history or the comprehensive
354
+ * history.
355
+ * @return History contents alternating between user and model for the entire
356
+ * chat session.
357
+ */
358
+ getHistory(curated = false) {
359
+ const history = curated
360
+ ? extractCuratedHistory(this.history)
361
+ : this.history;
362
+ // Deep copy the history to avoid mutating the history outside of the
363
+ // chat session.
364
+ return structuredClone(history);
365
+ }
366
+ /**
367
+ * Clears the chat history.
368
+ */
369
+ clearHistory() {
370
+ this.history = [];
371
+ }
372
+ /**
373
+ * Adds a new entry to the chat history.
374
+ *
375
+ * @param content - The content to add to the history.
376
+ */
377
+ addHistory(content) {
378
+ this.history.push(content);
379
+ }
380
+ setHistory(history) {
381
+ this.history = history;
382
+ }
383
+ getFinalUsageMetadata(chunks) {
384
+ const lastChunkWithMetadata = chunks
385
+ .slice()
386
+ .reverse()
387
+ .find((chunk) => chunk.usageMetadata);
388
+ return lastChunkWithMetadata?.usageMetadata;
389
+ }
390
+ async *processStreamResponse(streamResponse, inputContent, startTime, prompt_id) {
391
+ const outputContent = [];
392
+ const chunks = [];
393
+ let errorOccurred = false;
394
+ try {
395
+ for await (const chunk of streamResponse) {
396
+ if (isValidResponse(chunk)) {
397
+ chunks.push(chunk);
398
+ const content = chunk.candidates?.[0]?.content;
399
+ if (content !== undefined) {
400
+ if (this.isThoughtContent(content)) {
401
+ yield chunk;
402
+ continue;
403
+ }
404
+ outputContent.push(content);
405
+ }
406
+ }
407
+ yield chunk;
408
+ }
409
+ }
410
+ catch (error) {
411
+ errorOccurred = true;
412
+ const durationMs = Date.now() - startTime;
413
+ this._logApiError(durationMs, error, prompt_id);
414
+ throw error;
415
+ }
416
+ if (!errorOccurred) {
417
+ const durationMs = Date.now() - startTime;
418
+ const allParts = [];
419
+ for (const content of outputContent) {
420
+ if (content.parts) {
421
+ allParts.push(...content.parts);
422
+ }
423
+ }
424
+ const fullText = getStructuredResponseFromParts(allParts);
425
+ await this._logApiResponse(durationMs, prompt_id, this.getFinalUsageMetadata(chunks), fullText);
426
+ }
427
+ this.recordHistory(inputContent, outputContent);
428
+ }
429
+ recordHistory(userInput, modelOutput, automaticFunctionCallingHistory) {
430
+ const nonThoughtModelOutput = modelOutput.filter((content) => !this.isThoughtContent(content));
431
+ let outputContents = [];
432
+ if (nonThoughtModelOutput.length > 0 &&
433
+ nonThoughtModelOutput.every((content) => content.role !== undefined)) {
434
+ outputContents = nonThoughtModelOutput;
435
+ }
436
+ else if (nonThoughtModelOutput.length === 0 && modelOutput.length > 0) {
437
+ // This case handles when the model returns only a thought.
438
+ // We don't want to add an empty model response in this case.
439
+ }
440
+ else {
441
+ // When not a function response appends an empty content when model returns empty response, so that the
442
+ // history is always alternating between user and model.
443
+ // Workaround for: https://b.corp.google.com/issues/420354090
444
+ if (!isFunctionResponse(userInput)) {
445
+ outputContents.push({
446
+ role: 'model',
447
+ parts: [],
448
+ });
449
+ }
450
+ }
451
+ if (automaticFunctionCallingHistory &&
452
+ automaticFunctionCallingHistory.length > 0) {
453
+ this.history.push(...extractCuratedHistory(automaticFunctionCallingHistory));
454
+ }
455
+ else {
456
+ this.history.push(userInput);
457
+ }
458
+ // Consolidate adjacent model roles in outputContents
459
+ const consolidatedOutputContents = [];
460
+ for (const content of outputContents) {
461
+ if (this.isThoughtContent(content)) {
462
+ continue;
463
+ }
464
+ const lastContent = consolidatedOutputContents[consolidatedOutputContents.length - 1];
465
+ if (this.isTextContent(lastContent) && this.isTextContent(content)) {
466
+ // If both current and last are text, combine their text into the lastContent's first part
467
+ // and append any other parts from the current content.
468
+ lastContent.parts[0].text += content.parts[0].text || '';
469
+ if (content.parts.length > 1) {
470
+ lastContent.parts.push(...content.parts.slice(1));
471
+ }
472
+ }
473
+ else {
474
+ consolidatedOutputContents.push(content);
475
+ }
476
+ }
477
+ if (consolidatedOutputContents.length > 0) {
478
+ const lastHistoryEntry = this.history[this.history.length - 1];
479
+ const canMergeWithLastHistory = !automaticFunctionCallingHistory ||
480
+ automaticFunctionCallingHistory.length === 0;
481
+ if (canMergeWithLastHistory &&
482
+ this.isTextContent(lastHistoryEntry) &&
483
+ this.isTextContent(consolidatedOutputContents[0])) {
484
+ // If both current and last are text, combine their text into the lastHistoryEntry's first part
485
+ // and append any other parts from the current content.
486
+ lastHistoryEntry.parts[0].text +=
487
+ consolidatedOutputContents[0].parts[0].text || '';
488
+ if (consolidatedOutputContents[0].parts.length > 1) {
489
+ lastHistoryEntry.parts.push(...consolidatedOutputContents[0].parts.slice(1));
490
+ }
491
+ consolidatedOutputContents.shift(); // Remove the first element as it's merged
492
+ }
493
+ this.history.push(...consolidatedOutputContents);
494
+ }
495
+ }
496
+ isTextContent(content) {
497
+ return !!(content &&
498
+ content.role === 'model' &&
499
+ content.parts &&
500
+ content.parts.length > 0 &&
501
+ typeof content.parts[0].text === 'string' &&
502
+ content.parts[0].text !== '');
503
+ }
504
+ isThoughtContent(content) {
505
+ return !!(content &&
506
+ content.role === 'model' &&
507
+ content.parts &&
508
+ content.parts.length > 0 &&
509
+ typeof content.parts[0].thought === 'boolean' &&
510
+ content.parts[0].thought === true);
511
+ }
512
+ }
513
+ //# sourceMappingURL=geminiChat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geminiChat.js","sourceRoot":"","sources":["../../../src/core/geminiChat.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 {};