@vybestack/llxprt-code-core 0.1.18-nightly.250808.f9b79d74 → 0.1.18-nightly.250812.12fa8ad2

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 (563) hide show
  1. package/README.md +49 -2
  2. package/dist/index.d.ts +6 -0
  3. package/dist/index.js +5 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/auth/anthropic-device-flow.d.ts +53 -0
  6. package/dist/src/auth/anthropic-device-flow.js +208 -0
  7. package/dist/src/auth/anthropic-device-flow.js.map +1 -0
  8. package/dist/src/auth/precedence.d.ts +55 -0
  9. package/dist/src/auth/precedence.js +211 -0
  10. package/dist/src/auth/precedence.js.map +1 -0
  11. package/dist/src/auth/qwen-device-flow.d.ts +45 -0
  12. package/dist/src/auth/qwen-device-flow.js +179 -0
  13. package/dist/src/auth/qwen-device-flow.js.map +1 -0
  14. package/dist/src/auth/token-store.d.ts +66 -0
  15. package/dist/src/auth/token-store.js +151 -0
  16. package/dist/src/auth/token-store.js.map +1 -0
  17. package/dist/src/auth/types.d.ts +130 -0
  18. package/dist/src/auth/types.js +60 -0
  19. package/dist/src/auth/types.js.map +1 -0
  20. package/dist/src/code_assist/converter.d.ts +2 -1
  21. package/dist/src/code_assist/converter.js +1 -1
  22. package/dist/src/code_assist/converter.js.map +1 -1
  23. package/dist/src/code_assist/oauth2.js +2 -1
  24. package/dist/src/code_assist/oauth2.js.map +1 -1
  25. package/dist/src/config/config.d.ts +78 -3
  26. package/dist/src/config/config.js +159 -6
  27. package/dist/src/config/config.js.map +1 -1
  28. package/dist/src/config/endpoints.d.ts +60 -0
  29. package/dist/src/config/endpoints.js +126 -0
  30. package/dist/src/config/endpoints.js.map +1 -0
  31. package/dist/src/config/profileManager.d.ts +14 -4
  32. package/dist/src/config/profileManager.js +90 -11
  33. package/dist/src/config/profileManager.js.map +1 -1
  34. package/dist/src/core/client.js +16 -16
  35. package/dist/src/core/client.js.map +1 -1
  36. package/dist/src/core/contentGenerator.d.ts +4 -1
  37. package/dist/src/core/contentGenerator.js +3 -0
  38. package/dist/src/core/contentGenerator.js.map +1 -1
  39. package/dist/src/core/logger.d.ts +1 -0
  40. package/dist/src/core/logger.js +18 -0
  41. package/dist/src/core/logger.js.map +1 -1
  42. package/dist/src/core/loggingContentGenerator.d.ts +24 -0
  43. package/dist/src/core/loggingContentGenerator.js +89 -0
  44. package/dist/src/core/loggingContentGenerator.js.map +1 -0
  45. package/dist/src/core/nonInteractiveToolExecutor.js +17 -0
  46. package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
  47. package/dist/src/core/subagent.js +12 -10
  48. package/dist/src/core/subagent.js.map +1 -1
  49. package/dist/src/ide/ide-client.d.ts +2 -2
  50. package/dist/src/ide/ide-client.js +56 -18
  51. package/dist/src/ide/ide-client.js.map +1 -1
  52. package/dist/src/index.d.ts +11 -0
  53. package/dist/src/index.js +12 -0
  54. package/dist/src/index.js.map +1 -1
  55. package/dist/src/providers/BaseProvider.d.ts +149 -0
  56. package/dist/src/providers/BaseProvider.js +315 -0
  57. package/dist/src/providers/BaseProvider.js.map +1 -0
  58. package/dist/src/providers/IProvider.d.ts +1 -0
  59. package/dist/src/providers/IProviderManager.d.ts +5 -0
  60. package/dist/src/providers/LoggingProviderWrapper.d.ts +54 -0
  61. package/dist/src/providers/LoggingProviderWrapper.js +350 -0
  62. package/dist/src/providers/LoggingProviderWrapper.js.map +1 -0
  63. package/dist/src/providers/ProviderManager.d.ts +20 -1
  64. package/dist/src/providers/ProviderManager.js +236 -14
  65. package/dist/src/providers/ProviderManager.js.map +1 -1
  66. package/dist/src/providers/anthropic/AnthropicProvider.d.ts +20 -6
  67. package/dist/src/providers/anthropic/AnthropicProvider.js +172 -26
  68. package/dist/src/providers/anthropic/AnthropicProvider.js.map +1 -1
  69. package/dist/src/providers/gemini/GeminiProvider.d.ts +16 -7
  70. package/dist/src/providers/gemini/GeminiProvider.js +163 -148
  71. package/dist/src/providers/gemini/GeminiProvider.js.map +1 -1
  72. package/dist/src/providers/logging/ProviderContentExtractor.d.ts +27 -0
  73. package/dist/src/providers/logging/ProviderContentExtractor.js +198 -0
  74. package/dist/src/providers/logging/ProviderContentExtractor.js.map +1 -0
  75. package/dist/src/providers/logging/ProviderPerformanceTracker.d.ts +43 -0
  76. package/dist/src/providers/logging/ProviderPerformanceTracker.js +98 -0
  77. package/dist/src/providers/logging/ProviderPerformanceTracker.js.map +1 -0
  78. package/dist/src/providers/openai/OpenAIProvider.d.ts +53 -6
  79. package/dist/src/providers/openai/OpenAIProvider.js +373 -40
  80. package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
  81. package/dist/src/providers/openai/RESPONSES_API_MODELS.d.ts +1 -1
  82. package/dist/src/providers/openai/RESPONSES_API_MODELS.js +1 -0
  83. package/dist/src/providers/openai/RESPONSES_API_MODELS.js.map +1 -1
  84. package/dist/src/providers/openai/syntheticToolResponses.d.ts +52 -0
  85. package/dist/src/providers/openai/syntheticToolResponses.js +129 -0
  86. package/dist/src/providers/openai/syntheticToolResponses.js.map +1 -0
  87. package/dist/src/providers/types.d.ts +47 -0
  88. package/dist/src/services/git-stats-service.d.ts +32 -0
  89. package/dist/src/services/git-stats-service.js +22 -0
  90. package/dist/src/services/git-stats-service.js.map +1 -0
  91. package/dist/src/services/loopDetectionService.js +10 -6
  92. package/dist/src/services/loopDetectionService.js.map +1 -1
  93. package/dist/src/services/shellExecutionService.js +44 -8
  94. package/dist/src/services/shellExecutionService.js.map +1 -1
  95. package/dist/src/settings/SettingsService.d.ts +32 -0
  96. package/dist/src/settings/SettingsService.js +204 -0
  97. package/dist/src/settings/SettingsService.js.map +1 -0
  98. package/dist/src/settings/settingsServiceInstance.d.ts +12 -0
  99. package/dist/src/settings/settingsServiceInstance.js +24 -0
  100. package/dist/src/settings/settingsServiceInstance.js.map +1 -0
  101. package/dist/src/settings/types.d.ts +141 -0
  102. package/dist/src/settings/types.js +5 -0
  103. package/dist/src/settings/types.js.map +1 -0
  104. package/dist/src/storage/ConversationFileWriter.d.ts +16 -0
  105. package/dist/src/storage/ConversationFileWriter.js +69 -0
  106. package/dist/src/storage/ConversationFileWriter.js.map +1 -0
  107. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +8 -0
  108. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +56 -3
  109. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  110. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +5 -1
  111. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +11 -0
  112. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  113. package/dist/src/telemetry/constants.d.ts +5 -0
  114. package/dist/src/telemetry/constants.js +5 -0
  115. package/dist/src/telemetry/constants.js.map +1 -1
  116. package/dist/src/telemetry/loggers.d.ts +5 -1
  117. package/dist/src/telemetry/loggers.js +87 -1
  118. package/dist/src/telemetry/loggers.js.map +1 -1
  119. package/dist/src/telemetry/metrics.d.ts +2 -1
  120. package/dist/src/telemetry/metrics.js +7 -1
  121. package/dist/src/telemetry/metrics.js.map +1 -1
  122. package/dist/src/telemetry/tool-call-decision.d.ts +13 -0
  123. package/dist/src/telemetry/tool-call-decision.js +29 -0
  124. package/dist/src/telemetry/tool-call-decision.js.map +1 -0
  125. package/dist/src/telemetry/types.d.ts +56 -1
  126. package/dist/src/telemetry/types.js +123 -0
  127. package/dist/src/telemetry/types.js.map +1 -1
  128. package/dist/src/telemetry/uiTelemetry.d.ts +2 -1
  129. package/dist/src/telemetry/uiTelemetry.js +1 -1
  130. package/dist/src/telemetry/uiTelemetry.js.map +1 -1
  131. package/dist/src/tools/diffOptions.d.ts +2 -0
  132. package/dist/src/tools/diffOptions.js +28 -0
  133. package/dist/src/tools/diffOptions.js.map +1 -1
  134. package/dist/src/tools/edit.d.ts +8 -32
  135. package/dist/src/tools/edit.js +153 -136
  136. package/dist/src/tools/edit.js.map +1 -1
  137. package/dist/src/tools/glob.d.ts +3 -10
  138. package/dist/src/tools/glob.js +97 -99
  139. package/dist/src/tools/glob.js.map +1 -1
  140. package/dist/src/tools/grep.d.ts +3 -35
  141. package/dist/src/tools/grep.js +117 -88
  142. package/dist/src/tools/grep.js.map +1 -1
  143. package/dist/src/tools/mcp-client.d.ts +4 -3
  144. package/dist/src/tools/mcp-client.js +23 -6
  145. package/dist/src/tools/mcp-client.js.map +1 -1
  146. package/dist/src/tools/read-file.js +37 -9
  147. package/dist/src/tools/read-file.js.map +1 -1
  148. package/dist/src/tools/todo-pause.d.ts +22 -0
  149. package/dist/src/tools/todo-pause.js +93 -0
  150. package/dist/src/tools/todo-pause.js.map +1 -0
  151. package/dist/src/tools/tool-error.d.ts +4 -0
  152. package/dist/src/tools/tool-error.js +4 -0
  153. package/dist/src/tools/tool-error.js.map +1 -1
  154. package/dist/src/tools/tool-registry.js +3 -3
  155. package/dist/src/tools/tool-registry.js.map +1 -1
  156. package/dist/src/tools/tools.d.ts +18 -0
  157. package/dist/src/tools/tools.js +15 -0
  158. package/dist/src/tools/tools.js.map +1 -1
  159. package/dist/src/tools/write-file.d.ts +4 -0
  160. package/dist/src/tools/write-file.js +90 -16
  161. package/dist/src/tools/write-file.js.map +1 -1
  162. package/dist/src/types/modelParams.d.ts +2 -0
  163. package/dist/src/utils/environmentContext.js +1 -1
  164. package/dist/src/utils/errors.d.ts +3 -0
  165. package/dist/src/utils/errors.js +6 -0
  166. package/dist/src/utils/errors.js.map +1 -1
  167. package/dist/src/utils/fileUtils.d.ts +7 -0
  168. package/dist/src/utils/fileUtils.js +9 -0
  169. package/dist/src/utils/fileUtils.js.map +1 -1
  170. package/dist/src/utils/filesearch/fileSearch.d.ts +1 -0
  171. package/dist/src/utils/filesearch/fileSearch.js +27 -19
  172. package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
  173. package/package.json +4 -2
  174. package/dist/src/code_assist/converter.test.d.ts +0 -6
  175. package/dist/src/code_assist/converter.test.js +0 -232
  176. package/dist/src/code_assist/converter.test.js.map +0 -1
  177. package/dist/src/code_assist/oauth2.test.d.ts +0 -6
  178. package/dist/src/code_assist/oauth2.test.js +0 -370
  179. package/dist/src/code_assist/oauth2.test.js.map +0 -1
  180. package/dist/src/code_assist/server.test.d.ts +0 -6
  181. package/dist/src/code_assist/server.test.js +0 -131
  182. package/dist/src/code_assist/server.test.js.map +0 -1
  183. package/dist/src/code_assist/setup.test.d.ts +0 -6
  184. package/dist/src/code_assist/setup.test.js +0 -65
  185. package/dist/src/code_assist/setup.test.js.map +0 -1
  186. package/dist/src/config/config.alwaysAllow.test.d.ts +0 -6
  187. package/dist/src/config/config.alwaysAllow.test.js +0 -84
  188. package/dist/src/config/config.alwaysAllow.test.js.map +0 -1
  189. package/dist/src/config/config.test.d.ts +0 -6
  190. package/dist/src/config/config.test.js +0 -361
  191. package/dist/src/config/config.test.js.map +0 -1
  192. package/dist/src/config/flashFallback.test.d.ts +0 -6
  193. package/dist/src/config/flashFallback.test.js +0 -91
  194. package/dist/src/config/flashFallback.test.js.map +0 -1
  195. package/dist/src/core/client.test.d.ts +0 -6
  196. package/dist/src/core/client.test.js +0 -1317
  197. package/dist/src/core/client.test.js.map +0 -1
  198. package/dist/src/core/contentGenerator.test.d.ts +0 -6
  199. package/dist/src/core/contentGenerator.test.js +0 -103
  200. package/dist/src/core/contentGenerator.test.js.map +0 -1
  201. package/dist/src/core/coreToolScheduler.test.d.ts +0 -6
  202. package/dist/src/core/coreToolScheduler.test.js +0 -637
  203. package/dist/src/core/coreToolScheduler.test.js.map +0 -1
  204. package/dist/src/core/geminiChat.test.d.ts +0 -6
  205. package/dist/src/core/geminiChat.test.js +0 -425
  206. package/dist/src/core/geminiChat.test.js.map +0 -1
  207. package/dist/src/core/googleGenAIWrapper.test.d.ts +0 -6
  208. package/dist/src/core/googleGenAIWrapper.test.js +0 -104
  209. package/dist/src/core/googleGenAIWrapper.test.js.map +0 -1
  210. package/dist/src/core/logger.test.d.ts +0 -6
  211. package/dist/src/core/logger.test.js +0 -438
  212. package/dist/src/core/logger.test.js.map +0 -1
  213. package/dist/src/core/nonInteractiveToolExecutor.test.d.ts +0 -6
  214. package/dist/src/core/nonInteractiveToolExecutor.test.js +0 -165
  215. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +0 -1
  216. package/dist/src/core/prompts-async.test.d.ts +0 -6
  217. package/dist/src/core/prompts-async.test.js +0 -115
  218. package/dist/src/core/prompts-async.test.js.map +0 -1
  219. package/dist/src/core/prompts.test.d.ts +0 -6
  220. package/dist/src/core/prompts.test.js +0 -68
  221. package/dist/src/core/prompts.test.js.map +0 -1
  222. package/dist/src/core/subagent.test.d.ts +0 -6
  223. package/dist/src/core/subagent.test.js +0 -519
  224. package/dist/src/core/subagent.test.js.map +0 -1
  225. package/dist/src/core/tokenLimits.test.d.ts +0 -6
  226. package/dist/src/core/tokenLimits.test.js +0 -66
  227. package/dist/src/core/tokenLimits.test.js.map +0 -1
  228. package/dist/src/core/turn.test.d.ts +0 -6
  229. package/dist/src/core/turn.test.js +0 -366
  230. package/dist/src/core/turn.test.js.map +0 -1
  231. package/dist/src/hooks/tool-render-suppression-hook.test.d.ts +0 -6
  232. package/dist/src/hooks/tool-render-suppression-hook.test.js +0 -59
  233. package/dist/src/hooks/tool-render-suppression-hook.test.js.map +0 -1
  234. package/dist/src/ide/ide-installer.test.d.ts +0 -6
  235. package/dist/src/ide/ide-installer.test.js +0 -55
  236. package/dist/src/ide/ide-installer.test.js.map +0 -1
  237. package/dist/src/ide/ideContext.test.d.ts +0 -6
  238. package/dist/src/ide/ideContext.test.js +0 -265
  239. package/dist/src/ide/ideContext.test.js.map +0 -1
  240. package/dist/src/index.test.d.ts +0 -6
  241. package/dist/src/index.test.js +0 -12
  242. package/dist/src/index.test.js.map +0 -1
  243. package/dist/src/integration-tests/todo-system.test.d.ts +0 -6
  244. package/dist/src/integration-tests/todo-system.test.js +0 -46
  245. package/dist/src/integration-tests/todo-system.test.js.map +0 -1
  246. package/dist/src/mcp/google-auth-provider.test.d.ts +0 -6
  247. package/dist/src/mcp/google-auth-provider.test.js +0 -54
  248. package/dist/src/mcp/google-auth-provider.test.js.map +0 -1
  249. package/dist/src/mcp/oauth-provider.test.d.ts +0 -6
  250. package/dist/src/mcp/oauth-provider.test.js +0 -602
  251. package/dist/src/mcp/oauth-provider.test.js.map +0 -1
  252. package/dist/src/mcp/oauth-token-storage.test.d.ts +0 -6
  253. package/dist/src/mcp/oauth-token-storage.test.js +0 -205
  254. package/dist/src/mcp/oauth-token-storage.test.js.map +0 -1
  255. package/dist/src/mcp/oauth-utils.test.d.ts +0 -6
  256. package/dist/src/mcp/oauth-utils.test.js +0 -144
  257. package/dist/src/mcp/oauth-utils.test.js.map +0 -1
  258. package/dist/src/parsers/TextToolCallParser.multibyte.test.d.ts +0 -1
  259. package/dist/src/parsers/TextToolCallParser.multibyte.test.js +0 -42
  260. package/dist/src/parsers/TextToolCallParser.multibyte.test.js.map +0 -1
  261. package/dist/src/parsers/TextToolCallParser.test.d.ts +0 -1
  262. package/dist/src/parsers/TextToolCallParser.test.js +0 -225
  263. package/dist/src/parsers/TextToolCallParser.test.js.map +0 -1
  264. package/dist/src/prompt-config/TemplateEngine.test.d.ts +0 -1
  265. package/dist/src/prompt-config/TemplateEngine.test.js +0 -494
  266. package/dist/src/prompt-config/TemplateEngine.test.js.map +0 -1
  267. package/dist/src/prompt-config/prompt-cache.test.d.ts +0 -6
  268. package/dist/src/prompt-config/prompt-cache.test.js +0 -437
  269. package/dist/src/prompt-config/prompt-cache.test.js.map +0 -1
  270. package/dist/src/prompt-config/prompt-installer.test.d.ts +0 -7
  271. package/dist/src/prompt-config/prompt-installer.test.js +0 -503
  272. package/dist/src/prompt-config/prompt-installer.test.js.map +0 -1
  273. package/dist/src/prompt-config/prompt-loader.test.d.ts +0 -5
  274. package/dist/src/prompt-config/prompt-loader.test.js +0 -413
  275. package/dist/src/prompt-config/prompt-loader.test.js.map +0 -1
  276. package/dist/src/prompt-config/prompt-resolver.test.d.ts +0 -1
  277. package/dist/src/prompt-config/prompt-resolver.test.js +0 -529
  278. package/dist/src/prompt-config/prompt-resolver.test.js.map +0 -1
  279. package/dist/src/prompt-config/prompt-service.test.d.ts +0 -1
  280. package/dist/src/prompt-config/prompt-service.test.js +0 -811
  281. package/dist/src/prompt-config/prompt-service.test.js.map +0 -1
  282. package/dist/src/providers/ProviderManager.gemini-switch.test.d.ts +0 -6
  283. package/dist/src/providers/ProviderManager.gemini-switch.test.js +0 -57
  284. package/dist/src/providers/ProviderManager.gemini-switch.test.js.map +0 -1
  285. package/dist/src/providers/ProviderManager.test.d.ts +0 -6
  286. package/dist/src/providers/ProviderManager.test.js +0 -284
  287. package/dist/src/providers/ProviderManager.test.js.map +0 -1
  288. package/dist/src/providers/adapters/GeminiCompatibleWrapper.test.d.ts +0 -6
  289. package/dist/src/providers/adapters/GeminiCompatibleWrapper.test.js +0 -273
  290. package/dist/src/providers/adapters/GeminiCompatibleWrapper.test.js.map +0 -1
  291. package/dist/src/providers/anthropic/AnthropicProvider.modelParams.test.d.ts +0 -1
  292. package/dist/src/providers/anthropic/AnthropicProvider.modelParams.test.js +0 -48
  293. package/dist/src/providers/anthropic/AnthropicProvider.modelParams.test.js.map +0 -1
  294. package/dist/src/providers/anthropic/AnthropicProvider.test.d.ts +0 -1
  295. package/dist/src/providers/anthropic/AnthropicProvider.test.js +0 -487
  296. package/dist/src/providers/anthropic/AnthropicProvider.test.js.map +0 -1
  297. package/dist/src/providers/gemini/GeminiProvider.integration.test.d.ts +0 -6
  298. package/dist/src/providers/gemini/GeminiProvider.integration.test.js +0 -126
  299. package/dist/src/providers/gemini/GeminiProvider.integration.test.js.map +0 -1
  300. package/dist/src/providers/gemini/GeminiProvider.test.d.ts +0 -6
  301. package/dist/src/providers/gemini/GeminiProvider.test.js +0 -136
  302. package/dist/src/providers/gemini/GeminiProvider.test.js.map +0 -1
  303. package/dist/src/providers/integration/multi-provider.integration.test.d.ts +0 -6
  304. package/dist/src/providers/integration/multi-provider.integration.test.js +0 -292
  305. package/dist/src/providers/integration/multi-provider.integration.test.js.map +0 -1
  306. package/dist/src/providers/openai/ConversationCache.accumTokens.test.d.ts +0 -1
  307. package/dist/src/providers/openai/ConversationCache.accumTokens.test.js +0 -97
  308. package/dist/src/providers/openai/ConversationCache.accumTokens.test.js.map +0 -1
  309. package/dist/src/providers/openai/ConversationCache.test.d.ts +0 -1
  310. package/dist/src/providers/openai/ConversationCache.test.js +0 -113
  311. package/dist/src/providers/openai/ConversationCache.test.js.map +0 -1
  312. package/dist/src/providers/openai/OpenAIProvider.callResponses.stateless.test.d.ts +0 -1
  313. package/dist/src/providers/openai/OpenAIProvider.callResponses.stateless.test.js +0 -189
  314. package/dist/src/providers/openai/OpenAIProvider.callResponses.stateless.test.js.map +0 -1
  315. package/dist/src/providers/openai/OpenAIProvider.integration.test.d.ts +0 -6
  316. package/dist/src/providers/openai/OpenAIProvider.integration.test.js +0 -125
  317. package/dist/src/providers/openai/OpenAIProvider.integration.test.js.map +0 -1
  318. package/dist/src/providers/openai/OpenAIProvider.responses.test.d.ts +0 -1
  319. package/dist/src/providers/openai/OpenAIProvider.responses.test.js +0 -350
  320. package/dist/src/providers/openai/OpenAIProvider.responses.test.js.map +0 -1
  321. package/dist/src/providers/openai/OpenAIProvider.responsesIntegration.test.d.ts +0 -1
  322. package/dist/src/providers/openai/OpenAIProvider.responsesIntegration.test.js +0 -213
  323. package/dist/src/providers/openai/OpenAIProvider.responsesIntegration.test.js.map +0 -1
  324. package/dist/src/providers/openai/OpenAIProvider.shouldUseResponses.test.d.ts +0 -1
  325. package/dist/src/providers/openai/OpenAIProvider.shouldUseResponses.test.js +0 -59
  326. package/dist/src/providers/openai/OpenAIProvider.shouldUseResponses.test.js.map +0 -1
  327. package/dist/src/providers/openai/OpenAIProvider.stateful.integration.test.d.ts +0 -6
  328. package/dist/src/providers/openai/OpenAIProvider.stateful.integration.test.js +0 -105
  329. package/dist/src/providers/openai/OpenAIProvider.stateful.integration.test.js.map +0 -1
  330. package/dist/src/providers/openai/OpenAIProvider.switch.test.d.ts +0 -1
  331. package/dist/src/providers/openai/OpenAIProvider.switch.test.js +0 -256
  332. package/dist/src/providers/openai/OpenAIProvider.switch.test.js.map +0 -1
  333. package/dist/src/providers/openai/OpenAIProvider.test.d.ts +0 -16
  334. package/dist/src/providers/openai/OpenAIProvider.test.js +0 -620
  335. package/dist/src/providers/openai/OpenAIProvider.test.js.map +0 -1
  336. package/dist/src/providers/openai/ResponsesContextTrim.integration.test.d.ts +0 -1
  337. package/dist/src/providers/openai/ResponsesContextTrim.integration.test.js +0 -210
  338. package/dist/src/providers/openai/ResponsesContextTrim.integration.test.js.map +0 -1
  339. package/dist/src/providers/openai/__tests__/formatArrayResponse.test.d.ts +0 -1
  340. package/dist/src/providers/openai/__tests__/formatArrayResponse.test.js +0 -65
  341. package/dist/src/providers/openai/__tests__/formatArrayResponse.test.js.map +0 -1
  342. package/dist/src/providers/openai/buildResponsesRequest.stripToolCalls.test.d.ts +0 -1
  343. package/dist/src/providers/openai/buildResponsesRequest.stripToolCalls.test.js +0 -129
  344. package/dist/src/providers/openai/buildResponsesRequest.stripToolCalls.test.js.map +0 -1
  345. package/dist/src/providers/openai/buildResponsesRequest.test.d.ts +0 -1
  346. package/dist/src/providers/openai/buildResponsesRequest.test.js +0 -406
  347. package/dist/src/providers/openai/buildResponsesRequest.test.js.map +0 -1
  348. package/dist/src/providers/openai/buildResponsesRequest.undefined.test.d.ts +0 -1
  349. package/dist/src/providers/openai/buildResponsesRequest.undefined.test.js +0 -50
  350. package/dist/src/providers/openai/buildResponsesRequest.undefined.test.js.map +0 -1
  351. package/dist/src/providers/openai/estimateRemoteTokens.test.d.ts +0 -1
  352. package/dist/src/providers/openai/estimateRemoteTokens.test.js +0 -125
  353. package/dist/src/providers/openai/estimateRemoteTokens.test.js.map +0 -1
  354. package/dist/src/providers/openai/parseResponsesStream.responsesToolCalls.test.d.ts +0 -1
  355. package/dist/src/providers/openai/parseResponsesStream.responsesToolCalls.test.js +0 -192
  356. package/dist/src/providers/openai/parseResponsesStream.responsesToolCalls.test.js.map +0 -1
  357. package/dist/src/providers/openai/parseResponsesStream.test.d.ts +0 -1
  358. package/dist/src/providers/openai/parseResponsesStream.test.js +0 -151
  359. package/dist/src/providers/openai/parseResponsesStream.test.js.map +0 -1
  360. package/dist/src/services/fileDiscoveryService.test.d.ts +0 -6
  361. package/dist/src/services/fileDiscoveryService.test.js +0 -143
  362. package/dist/src/services/fileDiscoveryService.test.js.map +0 -1
  363. package/dist/src/services/gitService.test.d.ts +0 -6
  364. package/dist/src/services/gitService.test.js +0 -209
  365. package/dist/src/services/gitService.test.js.map +0 -1
  366. package/dist/src/services/loopDetectionService.test.d.ts +0 -6
  367. package/dist/src/services/loopDetectionService.test.js +0 -345
  368. package/dist/src/services/loopDetectionService.test.js.map +0 -1
  369. package/dist/src/services/shellExecutionService.multibyte.test.d.ts +0 -6
  370. package/dist/src/services/shellExecutionService.multibyte.test.js +0 -72
  371. package/dist/src/services/shellExecutionService.multibyte.test.js.map +0 -1
  372. package/dist/src/services/shellExecutionService.test.d.ts +0 -6
  373. package/dist/src/services/shellExecutionService.test.js +0 -272
  374. package/dist/src/services/shellExecutionService.test.js.map +0 -1
  375. package/dist/src/services/shellExecutionService.windows.multibyte.test.d.ts +0 -6
  376. package/dist/src/services/shellExecutionService.windows.multibyte.test.js +0 -98
  377. package/dist/src/services/shellExecutionService.windows.multibyte.test.js.map +0 -1
  378. package/dist/src/services/shellExecutionService.windows.test.d.ts +0 -6
  379. package/dist/src/services/shellExecutionService.windows.test.js +0 -79
  380. package/dist/src/services/shellExecutionService.windows.test.js.map +0 -1
  381. package/dist/src/services/tool-call-tracker-service.test.d.ts +0 -6
  382. package/dist/src/services/tool-call-tracker-service.test.js +0 -99
  383. package/dist/src/services/tool-call-tracker-service.test.js.map +0 -1
  384. package/dist/src/telemetry/loggers.test.d.ts +0 -6
  385. package/dist/src/telemetry/loggers.test.js +0 -572
  386. package/dist/src/telemetry/loggers.test.js.map +0 -1
  387. package/dist/src/telemetry/metrics.test.d.ts +0 -6
  388. package/dist/src/telemetry/metrics.test.js +0 -162
  389. package/dist/src/telemetry/metrics.test.js.map +0 -1
  390. package/dist/src/telemetry/telemetry.test.d.ts +0 -6
  391. package/dist/src/telemetry/telemetry.test.js +0 -54
  392. package/dist/src/telemetry/telemetry.test.js.map +0 -1
  393. package/dist/src/telemetry/uiTelemetry.test.d.ts +0 -6
  394. package/dist/src/telemetry/uiTelemetry.test.js +0 -517
  395. package/dist/src/telemetry/uiTelemetry.test.js.map +0 -1
  396. package/dist/src/tools/ToolFormatter.test.d.ts +0 -16
  397. package/dist/src/tools/ToolFormatter.test.js +0 -349
  398. package/dist/src/tools/ToolFormatter.test.js.map +0 -1
  399. package/dist/src/tools/ToolFormatter.toResponsesTool.test.d.ts +0 -1
  400. package/dist/src/tools/ToolFormatter.toResponsesTool.test.js +0 -241
  401. package/dist/src/tools/ToolFormatter.toResponsesTool.test.js.map +0 -1
  402. package/dist/src/tools/edit.test.d.ts +0 -6
  403. package/dist/src/tools/edit.test.js +0 -663
  404. package/dist/src/tools/edit.test.js.map +0 -1
  405. package/dist/src/tools/glob.test.d.ts +0 -6
  406. package/dist/src/tools/glob.test.js +0 -321
  407. package/dist/src/tools/glob.test.js.map +0 -1
  408. package/dist/src/tools/grep.test.d.ts +0 -6
  409. package/dist/src/tools/grep.test.js +0 -258
  410. package/dist/src/tools/grep.test.js.map +0 -1
  411. package/dist/src/tools/ls.test.d.ts +0 -6
  412. package/dist/src/tools/ls.test.js +0 -357
  413. package/dist/src/tools/ls.test.js.map +0 -1
  414. package/dist/src/tools/mcp-client.test.d.ts +0 -6
  415. package/dist/src/tools/mcp-client.test.js +0 -575
  416. package/dist/src/tools/mcp-client.test.js.map +0 -1
  417. package/dist/src/tools/mcp-tool.test.d.ts +0 -6
  418. package/dist/src/tools/mcp-tool.test.js +0 -501
  419. package/dist/src/tools/mcp-tool.test.js.map +0 -1
  420. package/dist/src/tools/memoryTool.test.d.ts +0 -6
  421. package/dist/src/tools/memoryTool.test.js +0 -266
  422. package/dist/src/tools/memoryTool.test.js.map +0 -1
  423. package/dist/src/tools/modifiable-tool.test.d.ts +0 -6
  424. package/dist/src/tools/modifiable-tool.test.js +0 -193
  425. package/dist/src/tools/modifiable-tool.test.js.map +0 -1
  426. package/dist/src/tools/read-file.test.d.ts +0 -6
  427. package/dist/src/tools/read-file.test.js +0 -313
  428. package/dist/src/tools/read-file.test.js.map +0 -1
  429. package/dist/src/tools/read-many-files.test.d.ts +0 -6
  430. package/dist/src/tools/read-many-files.test.js +0 -644
  431. package/dist/src/tools/read-many-files.test.js.map +0 -1
  432. package/dist/src/tools/shell.multibyte.test.d.ts +0 -6
  433. package/dist/src/tools/shell.multibyte.test.js +0 -75
  434. package/dist/src/tools/shell.multibyte.test.js.map +0 -1
  435. package/dist/src/tools/shell.test.d.ts +0 -6
  436. package/dist/src/tools/shell.test.js +0 -350
  437. package/dist/src/tools/shell.test.js.map +0 -1
  438. package/dist/src/tools/todo-read.test.d.ts +0 -6
  439. package/dist/src/tools/todo-read.test.js +0 -162
  440. package/dist/src/tools/todo-read.test.js.map +0 -1
  441. package/dist/src/tools/todo-schemas.test.d.ts +0 -6
  442. package/dist/src/tools/todo-schemas.test.js +0 -341
  443. package/dist/src/tools/todo-schemas.test.js.map +0 -1
  444. package/dist/src/tools/todo-store.test.d.ts +0 -6
  445. package/dist/src/tools/todo-store.test.js +0 -169
  446. package/dist/src/tools/todo-store.test.js.map +0 -1
  447. package/dist/src/tools/todo-write.test.d.ts +0 -6
  448. package/dist/src/tools/todo-write.test.js +0 -226
  449. package/dist/src/tools/todo-write.test.js.map +0 -1
  450. package/dist/src/tools/tool-registry.test.d.ts +0 -6
  451. package/dist/src/tools/tool-registry.test.js +0 -468
  452. package/dist/src/tools/tool-registry.test.js.map +0 -1
  453. package/dist/src/tools/tools.test.d.ts +0 -6
  454. package/dist/src/tools/tools.test.js +0 -117
  455. package/dist/src/tools/tools.test.js.map +0 -1
  456. package/dist/src/tools/web-fetch.integration.test.d.ts +0 -6
  457. package/dist/src/tools/web-fetch.integration.test.js +0 -532
  458. package/dist/src/tools/web-fetch.integration.test.js.map +0 -1
  459. package/dist/src/tools/web-search.test.d.ts +0 -6
  460. package/dist/src/tools/web-search.test.js +0 -229
  461. package/dist/src/tools/web-search.test.js.map +0 -1
  462. package/dist/src/tools/write-file.test.d.ts +0 -6
  463. package/dist/src/tools/write-file.test.js +0 -464
  464. package/dist/src/tools/write-file.test.js.map +0 -1
  465. package/dist/src/utils/bfsFileSearch.test.d.ts +0 -6
  466. package/dist/src/utils/bfsFileSearch.test.js +0 -191
  467. package/dist/src/utils/bfsFileSearch.test.js.map +0 -1
  468. package/dist/src/utils/editCorrector.test.d.ts +0 -6
  469. package/dist/src/utils/editCorrector.test.js +0 -564
  470. package/dist/src/utils/editCorrector.test.js.map +0 -1
  471. package/dist/src/utils/editor.test.d.ts +0 -6
  472. package/dist/src/utils/editor.test.js +0 -445
  473. package/dist/src/utils/editor.test.js.map +0 -1
  474. package/dist/src/utils/environmentContext.test.d.ts +0 -6
  475. package/dist/src/utils/environmentContext.test.js +0 -139
  476. package/dist/src/utils/environmentContext.test.js.map +0 -1
  477. package/dist/src/utils/errorReporting.test.d.ts +0 -6
  478. package/dist/src/utils/errorReporting.test.js +0 -130
  479. package/dist/src/utils/errorReporting.test.js.map +0 -1
  480. package/dist/src/utils/fileUtils.test.d.ts +0 -6
  481. package/dist/src/utils/fileUtils.test.js +0 -363
  482. package/dist/src/utils/fileUtils.test.js.map +0 -1
  483. package/dist/src/utils/filesearch/crawlCache.test.d.ts +0 -6
  484. package/dist/src/utils/filesearch/crawlCache.test.js +0 -103
  485. package/dist/src/utils/filesearch/crawlCache.test.js.map +0 -1
  486. package/dist/src/utils/filesearch/fileSearch.test.d.ts +0 -6
  487. package/dist/src/utils/filesearch/fileSearch.test.js +0 -654
  488. package/dist/src/utils/filesearch/fileSearch.test.js.map +0 -1
  489. package/dist/src/utils/filesearch/ignore.test.d.ts +0 -6
  490. package/dist/src/utils/filesearch/ignore.test.js +0 -57
  491. package/dist/src/utils/filesearch/ignore.test.js.map +0 -1
  492. package/dist/src/utils/filesearch/result-cache.test.d.ts +0 -6
  493. package/dist/src/utils/filesearch/result-cache.test.js +0 -47
  494. package/dist/src/utils/filesearch/result-cache.test.js.map +0 -1
  495. package/dist/src/utils/flashFallback.integration.test.d.ts +0 -6
  496. package/dist/src/utils/flashFallback.integration.test.js +0 -120
  497. package/dist/src/utils/flashFallback.integration.test.js.map +0 -1
  498. package/dist/src/utils/generateContentResponseUtilities.test.d.ts +0 -6
  499. package/dist/src/utils/generateContentResponseUtilities.test.js +0 -273
  500. package/dist/src/utils/generateContentResponseUtilities.test.js.map +0 -1
  501. package/dist/src/utils/getFolderStructure.test.d.ts +0 -6
  502. package/dist/src/utils/getFolderStructure.test.js +0 -282
  503. package/dist/src/utils/getFolderStructure.test.js.map +0 -1
  504. package/dist/src/utils/gitIgnoreParser.test.d.ts +0 -6
  505. package/dist/src/utils/gitIgnoreParser.test.js +0 -154
  506. package/dist/src/utils/gitIgnoreParser.test.js.map +0 -1
  507. package/dist/src/utils/memoryDiscovery.test.d.ts +0 -6
  508. package/dist/src/utils/memoryDiscovery.test.js +0 -181
  509. package/dist/src/utils/memoryDiscovery.test.js.map +0 -1
  510. package/dist/src/utils/memoryImportProcessor.test.d.ts +0 -6
  511. package/dist/src/utils/memoryImportProcessor.test.js +0 -715
  512. package/dist/src/utils/memoryImportProcessor.test.js.map +0 -1
  513. package/dist/src/utils/nextSpeakerChecker.test.d.ts +0 -6
  514. package/dist/src/utils/nextSpeakerChecker.test.js +0 -172
  515. package/dist/src/utils/nextSpeakerChecker.test.js.map +0 -1
  516. package/dist/src/utils/partUtils.test.d.ts +0 -6
  517. package/dist/src/utils/partUtils.test.js +0 -130
  518. package/dist/src/utils/partUtils.test.js.map +0 -1
  519. package/dist/src/utils/paths.test.d.ts +0 -6
  520. package/dist/src/utils/paths.test.js +0 -153
  521. package/dist/src/utils/paths.test.js.map +0 -1
  522. package/dist/src/utils/retry.test.d.ts +0 -6
  523. package/dist/src/utils/retry.test.js +0 -322
  524. package/dist/src/utils/retry.test.js.map +0 -1
  525. package/dist/src/utils/safeJsonStringify.test.d.ts +0 -6
  526. package/dist/src/utils/safeJsonStringify.test.js +0 -61
  527. package/dist/src/utils/safeJsonStringify.test.js.map +0 -1
  528. package/dist/src/utils/sanitization.test.d.ts +0 -6
  529. package/dist/src/utils/sanitization.test.js +0 -81
  530. package/dist/src/utils/sanitization.test.js.map +0 -1
  531. package/dist/src/utils/schemaValidator.test.d.ts +0 -6
  532. package/dist/src/utils/schemaValidator.test.js +0 -146
  533. package/dist/src/utils/schemaValidator.test.js.map +0 -1
  534. package/dist/src/utils/secure-browser-launcher.test.d.ts +0 -6
  535. package/dist/src/utils/secure-browser-launcher.test.js +0 -149
  536. package/dist/src/utils/secure-browser-launcher.test.js.map +0 -1
  537. package/dist/src/utils/shell-utils.shellReplacement.test.d.ts +0 -6
  538. package/dist/src/utils/shell-utils.shellReplacement.test.js +0 -149
  539. package/dist/src/utils/shell-utils.shellReplacement.test.js.map +0 -1
  540. package/dist/src/utils/shell-utils.test.d.ts +0 -6
  541. package/dist/src/utils/shell-utils.test.js +0 -200
  542. package/dist/src/utils/shell-utils.test.js.map +0 -1
  543. package/dist/src/utils/summarizer.test.d.ts +0 -6
  544. package/dist/src/utils/summarizer.test.js +0 -131
  545. package/dist/src/utils/summarizer.test.js.map +0 -1
  546. package/dist/src/utils/systemEncoding.test.d.ts +0 -6
  547. package/dist/src/utils/systemEncoding.test.js +0 -368
  548. package/dist/src/utils/systemEncoding.test.js.map +0 -1
  549. package/dist/src/utils/toolOutputLimiter.test.d.ts +0 -6
  550. package/dist/src/utils/toolOutputLimiter.test.js +0 -164
  551. package/dist/src/utils/toolOutputLimiter.test.js.map +0 -1
  552. package/dist/src/utils/unicodeUtils.test.d.ts +0 -6
  553. package/dist/src/utils/unicodeUtils.test.js +0 -120
  554. package/dist/src/utils/unicodeUtils.test.js.map +0 -1
  555. package/dist/src/utils/user_account.test.d.ts +0 -6
  556. package/dist/src/utils/user_account.test.js +0 -153
  557. package/dist/src/utils/user_account.test.js.map +0 -1
  558. package/dist/src/utils/user_id.test.d.ts +0 -6
  559. package/dist/src/utils/user_id.test.js +0 -21
  560. package/dist/src/utils/user_id.test.js.map +0 -1
  561. package/dist/src/utils/workspaceContext.test.d.ts +0 -6
  562. package/dist/src/utils/workspaceContext.test.js +0 -209
  563. package/dist/src/utils/workspaceContext.test.js.map +0 -1
@@ -4,65 +4,99 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { AuthType, ContentGeneratorRole, AuthenticationRequiredError, getCoreSystemPromptAsync, createCodeAssistContentGenerator, } from '@vybestack/llxprt-code-core';
7
- export class GeminiProvider {
8
- name = 'gemini';
9
- apiKey;
7
+ import { BaseProvider } from '../BaseProvider.js';
8
+ import { getSettingsService } from '../../settings/settingsServiceInstance.js';
9
+ export class GeminiProvider extends BaseProvider {
10
10
  authMode = 'none';
11
- config;
11
+ geminiConfig;
12
12
  currentModel = 'gemini-2.5-pro';
13
13
  modelExplicitlySet = false;
14
14
  authDetermined = false;
15
15
  baseURL;
16
16
  modelParams;
17
17
  toolSchemas;
18
- constructor(apiKey, baseURL, config) {
19
- // For consistency with other providers
20
- this.apiKey = apiKey;
21
- // baseURL is not used by Gemini but kept for consistent interface
22
- this.config = config;
18
+ geminiOAuthManager;
19
+ constructor(apiKey, baseURL, config, oauthManager) {
20
+ // Initialize base provider with auth configuration
21
+ // Check if OAuth is enabled for Gemini
22
+ let oauthEnabled = false;
23
+ if (oauthManager) {
24
+ // Cast to specific interface with isOAuthEnabled method
25
+ const manager = oauthManager;
26
+ if (manager.isOAuthEnabled &&
27
+ typeof manager.isOAuthEnabled === 'function') {
28
+ oauthEnabled = manager.isOAuthEnabled('gemini');
29
+ }
30
+ }
31
+ const baseConfig = {
32
+ name: 'gemini',
33
+ apiKey,
34
+ baseURL,
35
+ cliKey: apiKey, // CLI --key argument
36
+ envKeyNames: ['GEMINI_API_KEY', 'GOOGLE_API_KEY'],
37
+ isOAuthEnabled: oauthEnabled, // Check if OAuth is enabled
38
+ oauthProvider: 'gemini',
39
+ oauthManager, // Keep the manager for checking enablement
40
+ };
41
+ super(baseConfig);
42
+ // Store Gemini-specific configuration
43
+ this.geminiConfig = config;
44
+ this.baseURL = baseURL;
45
+ this.geminiOAuthManager = oauthManager;
23
46
  // Do not determine auth mode on instantiation.
24
47
  // This will be done lazily when a chat completion is requested.
25
48
  }
26
49
  /**
27
50
  * Determines the best available authentication method based on environment variables
28
- * and existing configuration. Follows the hierarchy: Vertex AI Gemini API key → OAuth
51
+ * and existing configuration. Now uses lazy evaluation with proper precedence chain.
29
52
  */
30
- determineBestAuth() {
31
- // Skip if already determined
32
- if (this.authDetermined) {
33
- return;
34
- }
35
- // Mark as determined early to prevent concurrent determinations
36
- this.authDetermined = true;
37
- // Check if user explicitly selected USE_NONE via the content generator config
38
- const authType = this.config?.getContentGeneratorConfig()?.authType;
39
- if (authType === AuthType.USE_NONE) {
40
- this.authMode = 'none';
41
- return;
42
- }
43
- // If authType is USE_PROVIDER and no credentials exist, fall back to OAuth
44
- if (authType === AuthType.USE_PROVIDER) {
45
- if (!this.hasVertexAICredentials() && !this.hasGeminiAPIKey()) {
53
+ async determineBestAuth() {
54
+ // Use the base provider's auth precedence resolution
55
+ try {
56
+ const token = await this.getAuthToken();
57
+ // Check for special OAuth signal
58
+ if (token === 'USE_LOGIN_WITH_GOOGLE') {
46
59
  this.authMode = 'oauth';
47
- return;
60
+ this.authDetermined = true;
61
+ return token; // Return the magic token
48
62
  }
49
- }
50
- // Check for Vertex AI credentials first
51
- if (this.hasVertexAICredentials()) {
52
- this.authMode = 'vertex-ai';
53
- this.setupVertexAIAuth();
54
- }
55
- // Check for Gemini API key second
56
- else if (this.hasGeminiAPIKey()) {
57
- this.authMode = 'gemini-api-key';
58
- // API key is already in environment, no additional setup needed
59
- }
60
- // Fall back to OAuth (will prompt user if needed)
61
- else {
62
- this.authMode = 'oauth';
63
- // OAuth will be handled by the existing auth system
63
+ // Determine auth mode based on resolved authentication method
64
+ const authMethodName = await this.getAuthMethodName();
65
+ if (authMethodName?.startsWith('oauth-')) {
66
+ this.authMode = 'oauth';
67
+ }
68
+ else if (this.hasVertexAICredentials()) {
69
+ this.authMode = 'vertex-ai';
70
+ this.setupVertexAIAuth();
71
+ }
72
+ else if (this.hasGeminiAPIKey() || authMethodName?.includes('key')) {
73
+ this.authMode = 'gemini-api-key';
74
+ }
75
+ else {
76
+ this.authMode = 'none';
77
+ }
78
+ this.authDetermined = true;
79
+ return token;
80
+ }
81
+ catch (error) {
82
+ // Handle case where no auth is available
83
+ const authType = this.geminiConfig?.getContentGeneratorConfig()?.authType;
84
+ if (authType === AuthType.USE_NONE) {
85
+ this.authMode = 'none';
86
+ this.authDetermined = true;
87
+ throw new AuthenticationRequiredError('Authentication is set to USE_NONE but no credentials are available', this.authMode, ['GEMINI_API_KEY', 'GOOGLE_API_KEY']);
88
+ }
89
+ throw error;
64
90
  }
65
91
  }
92
+ /**
93
+ * Implementation of BaseProvider abstract method
94
+ * Determines if this provider supports OAuth authentication
95
+ */
96
+ supportsOAuth() {
97
+ // Gemini always supports Google OAuth
98
+ return true;
99
+ }
66
100
  /**
67
101
  * Checks if Vertex AI credentials are available
68
102
  */
@@ -75,7 +109,7 @@ export class GeminiProvider {
75
109
  * Checks if Gemini API key is available
76
110
  */
77
111
  hasGeminiAPIKey() {
78
- return !!this.apiKey || !!process.env.GEMINI_API_KEY;
112
+ return !!process.env.GEMINI_API_KEY;
79
113
  }
80
114
  /**
81
115
  * Sets up environment variables for Vertex AI authentication
@@ -88,17 +122,18 @@ export class GeminiProvider {
88
122
  * Sets the config instance for reading OAuth credentials
89
123
  */
90
124
  setConfig(config) {
91
- this.config = config;
125
+ this.geminiConfig = config;
92
126
  // Sync with config model if user hasn't explicitly set a model
93
127
  // This ensures consistency between config and provider state
94
128
  const configModel = config.getModel();
95
129
  if (!this.modelExplicitlySet && configModel) {
96
130
  this.currentModel = configModel;
97
131
  }
132
+ // Update OAuth configuration based on config
133
+ const authType = config.getContentGeneratorConfig()?.authType;
134
+ this.updateOAuthConfig(authType === AuthType.LOGIN_WITH_GOOGLE, 'gemini', this.geminiOAuthManager);
98
135
  // Clear auth cache when config changes to allow re-determination
99
136
  this.authDetermined = false;
100
- // Re-determine auth after config is set
101
- this.determineBestAuth();
102
137
  }
103
138
  async getModels() {
104
139
  // For OAuth mode, return fixed list of models
@@ -126,7 +161,7 @@ export class GeminiProvider {
126
161
  }
127
162
  // For API key modes (gemini-api-key or vertex-ai), try to fetch real models
128
163
  if (this.authMode === 'gemini-api-key' || this.authMode === 'vertex-ai') {
129
- const apiKey = this.apiKey || process.env.GEMINI_API_KEY;
164
+ const apiKey = (await this.getAuthToken()) || process.env.GEMINI_API_KEY;
130
165
  if (apiKey) {
131
166
  try {
132
167
  const url = this.baseURL
@@ -206,39 +241,20 @@ export class GeminiProvider {
206
241
  console.log('DEBUG: GeminiProvider.generateChatCompletion called with messages:', JSON.stringify(messages, null, 2));
207
242
  }
208
243
  }
209
- // Check if we need to re-determine auth
210
- const oauthValid = await this.isOAuthValid();
211
- if (!oauthValid) {
212
- this.authDetermined = false;
213
- }
214
244
  // Lazily determine the best auth method now that it's needed.
215
- this.determineBestAuth();
216
- // Early authentication validation - check if we have the required credentials
217
- // for the determined auth mode BEFORE processing messages
218
- switch (this.authMode) {
219
- case 'gemini-api-key':
220
- if (!this.apiKey && !process.env.GEMINI_API_KEY) {
221
- throw new AuthenticationRequiredError('Gemini API key required but not found. Please set GEMINI_API_KEY environment variable or use /auth to login with Google OAuth.', this.authMode, ['GEMINI_API_KEY']);
222
- }
223
- break;
224
- case 'vertex-ai':
225
- if (!process.env.GOOGLE_API_KEY) {
226
- throw new AuthenticationRequiredError('Google API key required for Vertex AI. Please set GOOGLE_API_KEY environment variable or use /auth to login with Google OAuth.', this.authMode, ['GOOGLE_API_KEY', 'GOOGLE_CLOUD_PROJECT', 'GOOGLE_CLOUD_LOCATION']);
227
- }
228
- break;
229
- case 'oauth':
230
- // OAuth auth will be validated when creating the content generator
231
- break;
232
- case 'none':
233
- // In 'none' mode, check if ANY credentials are available
234
- if (!this.hasGeminiAPIKey() && !this.hasVertexAICredentials()) {
235
- throw new AuthenticationRequiredError('No authentication credentials found. Please use /auth to login with Google OAuth, set GEMINI_API_KEY, or configure Vertex AI credentials.', this.authMode, ['GEMINI_API_KEY', 'GOOGLE_API_KEY']);
236
- }
237
- break;
238
- default:
239
- // For any other auth mode, proceed without validation
240
- break;
245
+ // This implements lazy OAuth triggering - OAuth is only triggered when making API calls
246
+ let authToken;
247
+ try {
248
+ authToken = await this.determineBestAuth();
249
+ }
250
+ catch (error) {
251
+ if (error instanceof AuthenticationRequiredError) {
252
+ throw error;
253
+ }
254
+ throw new AuthenticationRequiredError('Failed to resolve authentication for Gemini provider', this.authMode, ['GEMINI_API_KEY', 'GOOGLE_API_KEY']);
241
255
  }
256
+ // Authentication has already been resolved by determineBestAuth()
257
+ // No need for additional validation since the auth token is already obtained
242
258
  // Import the necessary modules dynamically to avoid circular dependencies
243
259
  const { GoogleGenAI } = await import('@google/genai');
244
260
  // Create the appropriate client based on auth mode
@@ -250,11 +266,8 @@ export class GeminiProvider {
250
266
  };
251
267
  switch (this.authMode) {
252
268
  case 'gemini-api-key':
253
- if (!this.apiKey && !process.env.GEMINI_API_KEY) {
254
- throw new Error('Gemini API key required but not found');
255
- }
256
269
  genAI = new GoogleGenAI({
257
- apiKey: this.apiKey || process.env.GEMINI_API_KEY,
270
+ apiKey: authToken,
258
271
  httpOptions: this.baseURL
259
272
  ? {
260
273
  ...httpOptions,
@@ -264,11 +277,8 @@ export class GeminiProvider {
264
277
  });
265
278
  break;
266
279
  case 'vertex-ai':
267
- if (!process.env.GOOGLE_API_KEY) {
268
- throw new Error('Google API key required for Vertex AI');
269
- }
270
280
  genAI = new GoogleGenAI({
271
- apiKey: process.env.GOOGLE_API_KEY,
281
+ apiKey: authToken,
272
282
  vertexai: true,
273
283
  httpOptions: this.baseURL
274
284
  ? {
@@ -280,16 +290,16 @@ export class GeminiProvider {
280
290
  break;
281
291
  case 'oauth': {
282
292
  // For OAuth, we need to use the code assist server
283
- const contentGenerator = await createCodeAssistContentGenerator(httpOptions, AuthType.LOGIN_WITH_GOOGLE, this.config, this.baseURL);
293
+ const contentGenerator = await createCodeAssistContentGenerator(httpOptions, AuthType.LOGIN_WITH_GOOGLE, this.geminiConfig, this.baseURL);
284
294
  // Convert messages to Gemini request format
285
295
  // Use config model in OAuth mode to ensure synchronization
286
296
  const oauthModel = this.modelExplicitlySet
287
297
  ? this.currentModel
288
- : this.config?.getModel() || this.currentModel;
298
+ : this.geminiConfig?.getModel() || this.currentModel;
289
299
  // Generate systemInstruction using getCoreSystemPrompt
290
300
  // Get user memory from config if available
291
- const userMemory = this.config?.getUserMemory
292
- ? this.config.getUserMemory()
301
+ const userMemory = this.geminiConfig?.getUserMemory
302
+ ? this.geminiConfig.getUserMemory()
293
303
  : '';
294
304
  const systemInstruction = await getCoreSystemPromptAsync(userMemory, oauthModel);
295
305
  // Store tools if provided
@@ -314,7 +324,7 @@ export class GeminiProvider {
314
324
  },
315
325
  };
316
326
  // Use the content generator stream
317
- const streamResult = await contentGenerator.generateContentStream(request, this.config?.getSessionId() || 'default');
327
+ const streamResult = await contentGenerator.generateContentStream(request, this.geminiConfig?.getSessionId() || 'default');
318
328
  // Convert the stream to our format
319
329
  for await (const response of streamResult) {
320
330
  // Extract text from the response
@@ -351,34 +361,17 @@ export class GeminiProvider {
351
361
  return;
352
362
  }
353
363
  case 'none':
354
- // For 'none' mode, check what credentials are available
355
- if (this.hasGeminiAPIKey()) {
356
- genAI = new GoogleGenAI({
357
- apiKey: this.apiKey || process.env.GEMINI_API_KEY,
358
- httpOptions: this.baseURL
359
- ? {
360
- ...httpOptions,
361
- baseUrl: this.baseURL,
362
- }
363
- : httpOptions,
364
- });
365
- }
366
- else if (this.hasVertexAICredentials()) {
367
- this.setupVertexAIAuth();
368
- genAI = new GoogleGenAI({
369
- apiKey: process.env.GOOGLE_API_KEY,
370
- vertexai: true,
371
- httpOptions: this.baseURL
372
- ? {
373
- ...httpOptions,
374
- baseUrl: this.baseURL,
375
- }
376
- : httpOptions,
377
- });
378
- }
379
- else {
380
- throw new Error('No authentication credentials found. Please use /auth to login with Google OAuth, set GEMINI_API_KEY, or configure Vertex AI credentials.');
381
- }
364
+ // For 'none' mode, use the resolved auth token
365
+ genAI = new GoogleGenAI({
366
+ apiKey: authToken,
367
+ vertexai: this.hasVertexAICredentials(),
368
+ httpOptions: this.baseURL
369
+ ? {
370
+ ...httpOptions,
371
+ baseUrl: this.baseURL,
372
+ }
373
+ : httpOptions,
374
+ });
382
375
  break;
383
376
  default:
384
377
  throw new Error(`Unsupported auth mode: ${this.authMode}`);
@@ -399,15 +392,15 @@ export class GeminiProvider {
399
392
  // Use explicit model if set, otherwise fall back to config model
400
393
  const modelToUse = this.modelExplicitlySet
401
394
  ? this.currentModel
402
- : this.config?.getModel() || this.currentModel;
395
+ : this.geminiConfig?.getModel() || this.currentModel;
403
396
  // For Flash models, always include tools if available
404
397
  if (modelToUse.includes('flash') && !geminiTools && this.toolSchemas) {
405
398
  geminiTools = this.toolSchemas;
406
399
  }
407
400
  // Generate systemInstruction using getCoreSystemPrompt
408
401
  // Get user memory from config if available
409
- const userMemory = this.config?.getUserMemory
410
- ? this.config.getUserMemory()
402
+ const userMemory = this.geminiConfig?.getUserMemory
403
+ ? this.geminiConfig.getUserMemory()
411
404
  : '';
412
405
  const systemInstruction = await getCoreSystemPromptAsync(userMemory, modelToUse);
413
406
  const request = {
@@ -696,13 +689,12 @@ export class GeminiProvider {
696
689
  return result;
697
690
  }
698
691
  setApiKey(apiKey) {
699
- this.apiKey = apiKey;
692
+ // Call base provider implementation
693
+ super.setApiKey?.(apiKey);
700
694
  // Set the API key as an environment variable so it can be used by the core library
701
695
  process.env.GEMINI_API_KEY = apiKey;
702
696
  // Clear auth cache when API key changes
703
697
  this.authDetermined = false;
704
- // Re-determine auth after API key is set
705
- this.determineBestAuth();
706
698
  }
707
699
  setBaseUrl(baseUrl) {
708
700
  // If no baseUrl is provided or it's an empty string, clear to undefined
@@ -733,18 +725,49 @@ export class GeminiProvider {
733
725
  * Gets the current model ID
734
726
  */
735
727
  getCurrentModel() {
736
- return this.currentModel;
728
+ // Try to get from SettingsService first (source of truth)
729
+ try {
730
+ const settingsService = getSettingsService();
731
+ const providerSettings = settingsService.getProviderSettings(this.name);
732
+ if (providerSettings.model) {
733
+ return providerSettings.model;
734
+ }
735
+ }
736
+ catch (error) {
737
+ if (process.env.DEBUG) {
738
+ console.warn('Failed to get model from SettingsService:', error);
739
+ }
740
+ }
741
+ // Fall back to cached value or default
742
+ return this.currentModel || this.getDefaultModel();
743
+ }
744
+ /**
745
+ * Gets the default model for Gemini
746
+ */
747
+ getDefaultModel() {
748
+ return 'gemini-2.5-pro';
737
749
  }
738
750
  /**
739
751
  * Sets the current model ID
740
752
  */
741
753
  setModel(modelId) {
754
+ // Update SettingsService as the source of truth
755
+ try {
756
+ const settingsService = getSettingsService();
757
+ settingsService.setProviderSetting(this.name, 'model', modelId);
758
+ }
759
+ catch (error) {
760
+ if (process.env.DEBUG) {
761
+ console.warn('Failed to persist model to SettingsService:', error);
762
+ }
763
+ }
764
+ // Keep local cache for performance
742
765
  this.currentModel = modelId;
743
766
  this.modelExplicitlySet = true;
744
767
  // Always update config if available, not just in OAuth mode
745
768
  // This ensures the model is properly synchronized
746
- if (this.config) {
747
- this.config.setModel(modelId);
769
+ if (this.geminiConfig) {
770
+ this.geminiConfig.setModel(modelId);
748
771
  }
749
772
  }
750
773
  /**
@@ -811,13 +834,12 @@ export class GeminiProvider {
811
834
  },
812
835
  };
813
836
  let genAI;
837
+ // Get authentication token lazily
838
+ const authToken = await this.determineBestAuth();
814
839
  switch (this.authMode) {
815
840
  case 'gemini-api-key': {
816
- if (!this.apiKey && !process.env.GEMINI_API_KEY) {
817
- throw new Error('Gemini API key required for web search');
818
- }
819
841
  genAI = new GoogleGenAI({
820
- apiKey: this.apiKey || process.env.GEMINI_API_KEY,
842
+ apiKey: authToken,
821
843
  httpOptions: this.baseURL
822
844
  ? {
823
845
  ...httpOptions,
@@ -843,11 +865,8 @@ export class GeminiProvider {
843
865
  return apiKeyResult;
844
866
  }
845
867
  case 'vertex-ai': {
846
- if (!process.env.GOOGLE_API_KEY) {
847
- throw new Error('Google API key required for web search');
848
- }
849
868
  genAI = new GoogleGenAI({
850
- apiKey: process.env.GOOGLE_API_KEY,
869
+ apiKey: authToken,
851
870
  vertexai: true,
852
871
  httpOptions: this.baseURL
853
872
  ? {
@@ -875,7 +894,7 @@ export class GeminiProvider {
875
894
  }
876
895
  case 'oauth': {
877
896
  // For OAuth, use the code assist content generator
878
- const oauthContentGenerator = await createCodeAssistContentGenerator(httpOptions, AuthType.LOGIN_WITH_GOOGLE, this.config);
897
+ const oauthContentGenerator = await createCodeAssistContentGenerator(httpOptions, AuthType.LOGIN_WITH_GOOGLE, this.geminiConfig);
879
898
  // For web search, always use gemini-2.5-flash regardless of the active model
880
899
  const oauthRequest = {
881
900
  model: 'gemini-2.5-flash',
@@ -889,7 +908,7 @@ export class GeminiProvider {
889
908
  tools: [{ googleSearch: {} }],
890
909
  },
891
910
  };
892
- const result = await oauthContentGenerator.generateContent(oauthRequest, this.config?.getSessionId() || 'default');
911
+ const result = await oauthContentGenerator.generateContent(oauthRequest, this.geminiConfig?.getSessionId() || 'default');
893
912
  return result;
894
913
  }
895
914
  default:
@@ -908,13 +927,12 @@ export class GeminiProvider {
908
927
  },
909
928
  };
910
929
  let genAI;
930
+ // Get authentication token lazily
931
+ const authToken = await this.determineBestAuth();
911
932
  switch (this.authMode) {
912
933
  case 'gemini-api-key': {
913
- if (!this.apiKey && !process.env.GEMINI_API_KEY) {
914
- throw new Error('Gemini API key required for web fetch');
915
- }
916
934
  genAI = new GoogleGenAI({
917
- apiKey: this.apiKey || process.env.GEMINI_API_KEY,
935
+ apiKey: authToken,
918
936
  httpOptions: this.baseURL
919
937
  ? {
920
938
  ...httpOptions,
@@ -940,11 +958,8 @@ export class GeminiProvider {
940
958
  return apiKeyResult;
941
959
  }
942
960
  case 'vertex-ai': {
943
- if (!process.env.GOOGLE_API_KEY) {
944
- throw new Error('Google API key required for web fetch');
945
- }
946
961
  genAI = new GoogleGenAI({
947
- apiKey: process.env.GOOGLE_API_KEY,
962
+ apiKey: authToken,
948
963
  vertexai: true,
949
964
  httpOptions: this.baseURL
950
965
  ? {
@@ -972,7 +987,7 @@ export class GeminiProvider {
972
987
  }
973
988
  case 'oauth': {
974
989
  // For OAuth, use the code assist content generator
975
- const oauthContentGenerator = await createCodeAssistContentGenerator(httpOptions, AuthType.LOGIN_WITH_GOOGLE, this.config);
990
+ const oauthContentGenerator = await createCodeAssistContentGenerator(httpOptions, AuthType.LOGIN_WITH_GOOGLE, this.geminiConfig);
976
991
  // For web fetch, always use gemini-2.5-flash regardless of the active model
977
992
  const oauthRequest = {
978
993
  model: 'gemini-2.5-flash',
@@ -986,7 +1001,7 @@ export class GeminiProvider {
986
1001
  tools: [{ urlContext: {} }],
987
1002
  },
988
1003
  };
989
- const result = await oauthContentGenerator.generateContent(oauthRequest, this.config?.getSessionId() || 'default');
1004
+ const result = await oauthContentGenerator.generateContent(oauthRequest, this.geminiConfig?.getSessionId() || 'default');
990
1005
  return result;
991
1006
  }
992
1007
  default:
@@ -1 +1 @@
1
- {"version":3,"file":"GeminiProvider.js","sourceRoot":"","sources":["../../../../src/providers/gemini/GeminiProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GeminiProvider.js","sourceRoot":"","sources":["../../../../src/providers/gemini/GeminiProvider.ts"],"names":[],"mappings":"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"}