@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
@@ -0,0 +1,149 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Vybestack LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * Base provider class with authentication precedence logic
8
+ */
9
+ import { IProvider } from './IProvider.js';
10
+ import { IModel } from './IModel.js';
11
+ import { ITool } from './ITool.js';
12
+ import { IMessage } from './IMessage.js';
13
+ import { AuthPrecedenceResolver, OAuthManager } from '../auth/precedence.js';
14
+ export interface BaseProviderConfig {
15
+ name: string;
16
+ apiKey?: string;
17
+ baseURL?: string;
18
+ commandKey?: string;
19
+ commandKeyfile?: string;
20
+ cliKey?: string;
21
+ cliKeyfile?: string;
22
+ envKeyNames?: string[];
23
+ isOAuthEnabled?: boolean;
24
+ oauthProvider?: string;
25
+ oauthManager?: OAuthManager;
26
+ }
27
+ /**
28
+ * Abstract base provider class that implements authentication precedence logic
29
+ * This class provides lazy OAuth triggering and proper authentication precedence
30
+ */
31
+ export declare abstract class BaseProvider implements IProvider {
32
+ readonly name: string;
33
+ protected authResolver: AuthPrecedenceResolver;
34
+ protected baseProviderConfig: BaseProviderConfig;
35
+ private cachedAuthToken?;
36
+ private authCacheTimestamp?;
37
+ private readonly AUTH_CACHE_DURATION;
38
+ constructor(config: BaseProviderConfig);
39
+ /**
40
+ * Gets authentication token using the precedence chain
41
+ * This method implements lazy OAuth triggering - only triggers OAuth when actually making API calls
42
+ */
43
+ protected getAuthToken(): Promise<string>;
44
+ /**
45
+ * Checks if OAuth is enabled for this provider
46
+ */
47
+ protected isOAuthEnabled(): boolean;
48
+ /**
49
+ * Abstract method to determine if this provider supports OAuth
50
+ * Must be implemented by concrete providers
51
+ */
52
+ protected abstract supportsOAuth(): boolean;
53
+ /**
54
+ * Checks if authentication is available without triggering OAuth
55
+ */
56
+ hasNonOAuthAuthentication(): Promise<boolean>;
57
+ /**
58
+ * Checks if OAuth is the only available authentication method
59
+ */
60
+ isOAuthOnlyAvailable(): Promise<boolean>;
61
+ /**
62
+ * Gets the current authentication method name for debugging
63
+ */
64
+ getAuthMethodName(): Promise<string | null>;
65
+ /**
66
+ * Updates the API key (used for CLI --key argument)
67
+ */
68
+ setApiKey?(apiKey: string): void;
69
+ /**
70
+ * Updates the base URL
71
+ */
72
+ setBaseUrl?(baseUrl?: string): void;
73
+ /**
74
+ * Updates OAuth configuration
75
+ */
76
+ protected updateOAuthConfig(isEnabled: boolean, provider?: string, manager?: OAuthManager): void;
77
+ /**
78
+ * Clears the authentication token cache
79
+ */
80
+ protected clearAuthCache(): void;
81
+ /**
82
+ * Checks if the provider is authenticated using any available method
83
+ */
84
+ isAuthenticated(): Promise<boolean>;
85
+ abstract getModels(): Promise<IModel[]>;
86
+ abstract getDefaultModel(): string;
87
+ abstract generateChatCompletion(messages: IMessage[], tools?: ITool[], toolFormat?: string): AsyncIterableIterator<unknown>;
88
+ setModel?(_modelId: string): void;
89
+ getCurrentModel?(): string;
90
+ getToolFormat?(): string;
91
+ setToolFormatOverride?(_format: string | null): void;
92
+ isPaidMode?(): boolean;
93
+ clearState?(): void;
94
+ setConfig?(_config: unknown): void;
95
+ getServerTools(): string[];
96
+ invokeServerTool(toolName: string, _params: unknown, _config?: unknown): Promise<unknown>;
97
+ setModelParams?(_params: Record<string, unknown> | undefined): void;
98
+ getModelParams?(): Record<string, unknown> | undefined;
99
+ /**
100
+ * Get setting value from SettingsService
101
+ */
102
+ protected getProviderSetting<T>(key: keyof ProviderSettings, fallback?: T): Promise<T | undefined>;
103
+ /**
104
+ * Set setting value in SettingsService
105
+ */
106
+ protected setProviderSetting<T>(key: keyof ProviderSettings, value: T): Promise<void>;
107
+ /**
108
+ * Get API key from SettingsService if available
109
+ */
110
+ protected getApiKeyFromSettings(): Promise<string | undefined>;
111
+ /**
112
+ * Set API key in SettingsService if available
113
+ */
114
+ protected setApiKeyInSettings(apiKey: string): Promise<void>;
115
+ /**
116
+ * Get model from SettingsService if available
117
+ */
118
+ protected getModelFromSettings(): Promise<string | undefined>;
119
+ /**
120
+ * Set model in SettingsService if available
121
+ */
122
+ protected setModelInSettings(model: string): Promise<void>;
123
+ /**
124
+ * Get base URL from SettingsService if available
125
+ */
126
+ protected getBaseUrlFromSettings(): Promise<string | undefined>;
127
+ /**
128
+ * Set base URL in SettingsService if available
129
+ */
130
+ protected setBaseUrlInSettings(baseUrl?: string): Promise<void>;
131
+ /**
132
+ * Get model parameters from SettingsService
133
+ */
134
+ protected getModelParamsFromSettings(): Promise<Record<string, unknown> | undefined>;
135
+ /**
136
+ * Set model parameters in SettingsService
137
+ */
138
+ protected setModelParamsInSettings(params: Record<string, unknown> | undefined): Promise<void>;
139
+ }
140
+ interface ProviderSettings {
141
+ enabled: boolean;
142
+ apiKey?: string;
143
+ baseUrl?: string;
144
+ model?: string;
145
+ maxTokens?: number;
146
+ temperature?: number;
147
+ [key: string]: unknown;
148
+ }
149
+ export {};
@@ -0,0 +1,315 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Vybestack LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { AuthPrecedenceResolver, } from '../auth/precedence.js';
7
+ import { getSettingsService } from '../settings/settingsServiceInstance.js';
8
+ import { UnauthorizedError } from '../utils/errors.js';
9
+ /**
10
+ * Abstract base provider class that implements authentication precedence logic
11
+ * This class provides lazy OAuth triggering and proper authentication precedence
12
+ */
13
+ export class BaseProvider {
14
+ name;
15
+ authResolver;
16
+ baseProviderConfig;
17
+ cachedAuthToken;
18
+ authCacheTimestamp;
19
+ AUTH_CACHE_DURATION = 60000; // 1 minute in milliseconds
20
+ constructor(config) {
21
+ this.name = config.name;
22
+ this.baseProviderConfig = config;
23
+ // Initialize auth precedence resolver
24
+ // OAuth enablement will be checked dynamically through the manager
25
+ const precedenceConfig = {
26
+ commandKey: config.commandKey,
27
+ commandKeyfile: config.commandKeyfile,
28
+ cliKey: config.cliKey,
29
+ cliKeyfile: config.cliKeyfile,
30
+ envKeyNames: config.envKeyNames || [],
31
+ isOAuthEnabled: true, // Always true if manager exists, manager will check settings
32
+ supportsOAuth: this.supportsOAuth(),
33
+ oauthProvider: config.oauthProvider,
34
+ };
35
+ this.authResolver = new AuthPrecedenceResolver(precedenceConfig, config.oauthManager);
36
+ }
37
+ /**
38
+ * Gets authentication token using the precedence chain
39
+ * This method implements lazy OAuth triggering - only triggers OAuth when actually making API calls
40
+ */
41
+ async getAuthToken() {
42
+ // Check cache first (short-lived cache to avoid repeated OAuth calls)
43
+ if (this.cachedAuthToken &&
44
+ this.authCacheTimestamp &&
45
+ Date.now() - this.authCacheTimestamp < this.AUTH_CACHE_DURATION) {
46
+ return this.cachedAuthToken;
47
+ }
48
+ // Clear stale cache
49
+ this.cachedAuthToken = undefined;
50
+ this.authCacheTimestamp = undefined;
51
+ // Resolve authentication using precedence chain
52
+ const token = await this.authResolver.resolveAuthentication();
53
+ if (!token) {
54
+ const isOAuthOnly = await this.authResolver.isOAuthOnlyAvailable();
55
+ if (isOAuthOnly) {
56
+ // Special message for Qwen explaining the OAuth limitation
57
+ if (this.baseProviderConfig.oauthProvider === 'qwen') {
58
+ throw new Error(`Qwen OAuth (chat.qwen.ai) doesn't provide API access to DashScope. ` +
59
+ `You need a DashScope API key from https://dashscope.console.aliyun.com/ ` +
60
+ `Use /key <your-api-key> to set it.`);
61
+ }
62
+ throw new UnauthorizedError(`No API key found and OAuth is available but not authenticated for ${this.name} provider. ` +
63
+ `Please authenticate using OAuth or provide an API key.`);
64
+ }
65
+ else {
66
+ throw new Error(`No authentication method available for ${this.name} provider`);
67
+ }
68
+ }
69
+ // Cache the token briefly
70
+ this.cachedAuthToken = token;
71
+ this.authCacheTimestamp = Date.now();
72
+ if (process.env.DEBUG) {
73
+ const authMethod = await this.authResolver.getAuthMethodName();
74
+ console.log(`[${this.name}] Authentication resolved using: ${authMethod}`);
75
+ }
76
+ return token;
77
+ }
78
+ /**
79
+ * Checks if OAuth is enabled for this provider
80
+ */
81
+ isOAuthEnabled() {
82
+ // OAuth is enabled if we have a manager AND it's enabled in settings
83
+ return !!this.baseProviderConfig.oauthManager;
84
+ }
85
+ /**
86
+ * Checks if authentication is available without triggering OAuth
87
+ */
88
+ async hasNonOAuthAuthentication() {
89
+ return this.authResolver.hasNonOAuthAuthentication();
90
+ }
91
+ /**
92
+ * Checks if OAuth is the only available authentication method
93
+ */
94
+ async isOAuthOnlyAvailable() {
95
+ return this.authResolver.isOAuthOnlyAvailable();
96
+ }
97
+ /**
98
+ * Gets the current authentication method name for debugging
99
+ */
100
+ async getAuthMethodName() {
101
+ return this.authResolver.getAuthMethodName();
102
+ }
103
+ /**
104
+ * Updates the API key (used for CLI --key argument)
105
+ */
106
+ setApiKey(apiKey) {
107
+ this.baseProviderConfig.cliKey = apiKey;
108
+ this.authResolver.updateConfig({ cliKey: apiKey });
109
+ this.clearAuthCache();
110
+ }
111
+ /**
112
+ * Updates the base URL
113
+ */
114
+ setBaseUrl(baseUrl) {
115
+ this.baseProviderConfig.baseURL = baseUrl;
116
+ // Providers may override to implement endpoint-specific OAuth logic
117
+ this.clearAuthCache();
118
+ }
119
+ /**
120
+ * Updates OAuth configuration
121
+ */
122
+ updateOAuthConfig(isEnabled, provider, manager) {
123
+ this.baseProviderConfig.isOAuthEnabled = isEnabled;
124
+ this.baseProviderConfig.oauthProvider = provider;
125
+ this.baseProviderConfig.oauthManager = manager;
126
+ this.authResolver.updateConfig({
127
+ isOAuthEnabled: isEnabled,
128
+ supportsOAuth: this.supportsOAuth(),
129
+ oauthProvider: provider,
130
+ });
131
+ if (manager) {
132
+ this.authResolver.updateOAuthManager(manager);
133
+ }
134
+ this.clearAuthCache();
135
+ }
136
+ /**
137
+ * Clears the authentication token cache
138
+ */
139
+ clearAuthCache() {
140
+ this.cachedAuthToken = undefined;
141
+ this.authCacheTimestamp = undefined;
142
+ }
143
+ /**
144
+ * Checks if the provider is authenticated using any available method
145
+ */
146
+ async isAuthenticated() {
147
+ try {
148
+ const token = await this.authResolver.resolveAuthentication();
149
+ return token !== null;
150
+ }
151
+ catch {
152
+ return false;
153
+ }
154
+ }
155
+ // Optional methods with default implementations
156
+ setModel(_modelId) { }
157
+ getCurrentModel() {
158
+ return 'default';
159
+ }
160
+ getToolFormat() {
161
+ return 'default';
162
+ }
163
+ setToolFormatOverride(_format) { }
164
+ isPaidMode() {
165
+ return false;
166
+ }
167
+ clearState() {
168
+ this.clearAuthCache();
169
+ }
170
+ setConfig(_config) { }
171
+ getServerTools() {
172
+ return [];
173
+ }
174
+ async invokeServerTool(toolName, _params, _config) {
175
+ throw new Error(`Server tool '${toolName}' not supported by ${this.name} provider`);
176
+ }
177
+ setModelParams(_params) { }
178
+ getModelParams() {
179
+ return undefined;
180
+ }
181
+ /**
182
+ * Get setting value from SettingsService
183
+ */
184
+ async getProviderSetting(key, fallback) {
185
+ const settingsService = getSettingsService();
186
+ try {
187
+ const settings = await settingsService.getSettings(this.name);
188
+ return settings[key] || fallback;
189
+ }
190
+ catch (error) {
191
+ if (process.env.DEBUG) {
192
+ console.error(`Failed to get ${key} from SettingsService for ${this.name}:`, error);
193
+ }
194
+ return fallback;
195
+ }
196
+ }
197
+ /**
198
+ * Set setting value in SettingsService
199
+ */
200
+ async setProviderSetting(key, value) {
201
+ const settingsService = getSettingsService();
202
+ try {
203
+ await settingsService.updateSettings(this.name, {
204
+ [key]: value,
205
+ });
206
+ }
207
+ catch (error) {
208
+ if (process.env.DEBUG) {
209
+ console.error(`Failed to set ${key} in SettingsService for ${this.name}:`, error);
210
+ }
211
+ }
212
+ }
213
+ /**
214
+ * Get API key from SettingsService if available
215
+ */
216
+ async getApiKeyFromSettings() {
217
+ return this.getProviderSetting('apiKey');
218
+ }
219
+ /**
220
+ * Set API key in SettingsService if available
221
+ */
222
+ async setApiKeyInSettings(apiKey) {
223
+ await this.setProviderSetting('apiKey', apiKey);
224
+ }
225
+ /**
226
+ * Get model from SettingsService if available
227
+ */
228
+ async getModelFromSettings() {
229
+ return this.getProviderSetting('model');
230
+ }
231
+ /**
232
+ * Set model in SettingsService if available
233
+ */
234
+ async setModelInSettings(model) {
235
+ await this.setProviderSetting('model', model);
236
+ }
237
+ /**
238
+ * Get base URL from SettingsService if available
239
+ */
240
+ async getBaseUrlFromSettings() {
241
+ return this.getProviderSetting('baseUrl');
242
+ }
243
+ /**
244
+ * Set base URL in SettingsService if available
245
+ */
246
+ async setBaseUrlInSettings(baseUrl) {
247
+ await this.setProviderSetting('baseUrl', baseUrl);
248
+ }
249
+ /**
250
+ * Get model parameters from SettingsService
251
+ */
252
+ async getModelParamsFromSettings() {
253
+ const settingsService = getSettingsService();
254
+ try {
255
+ const settings = await settingsService.getSettings(this.name);
256
+ // Extract model parameters from settings, excluding standard fields
257
+ const { enabled: _enabled, apiKey: _apiKey, baseUrl: _baseUrl, model: _model, maxTokens, temperature, ...modelParams } = settings;
258
+ // Include temperature and maxTokens as model params if they exist
259
+ const params = {};
260
+ if (temperature !== undefined)
261
+ params.temperature = temperature;
262
+ if (maxTokens !== undefined)
263
+ params.max_tokens = maxTokens;
264
+ return Object.keys(params).length > 0 ||
265
+ Object.keys(modelParams).length > 0
266
+ ? { ...params, ...modelParams }
267
+ : undefined;
268
+ }
269
+ catch (error) {
270
+ if (process.env.DEBUG) {
271
+ console.error(`Failed to get model params from SettingsService for ${this.name}:`, error);
272
+ }
273
+ return undefined;
274
+ }
275
+ }
276
+ /**
277
+ * Set model parameters in SettingsService
278
+ */
279
+ async setModelParamsInSettings(params) {
280
+ const settingsService = getSettingsService();
281
+ try {
282
+ if (params === undefined) {
283
+ // Clear model parameters by setting them to undefined
284
+ await settingsService.updateSettings(this.name, {
285
+ temperature: undefined,
286
+ maxTokens: undefined,
287
+ });
288
+ return;
289
+ }
290
+ // Convert standard model params to settings format
291
+ const updates = {};
292
+ if ('temperature' in params)
293
+ updates.temperature = params.temperature;
294
+ if ('max_tokens' in params)
295
+ updates.maxTokens = params.max_tokens;
296
+ if ('maxTokens' in params)
297
+ updates.maxTokens = params.maxTokens;
298
+ // Store other parameters as custom fields
299
+ for (const [key, value] of Object.entries(params)) {
300
+ if (!['temperature', 'max_tokens', 'maxTokens'].includes(key)) {
301
+ updates[key] = value;
302
+ }
303
+ }
304
+ if (Object.keys(updates).length > 0) {
305
+ await settingsService.updateSettings(this.name, updates);
306
+ }
307
+ }
308
+ catch (error) {
309
+ if (process.env.DEBUG) {
310
+ console.error(`Failed to set model params in SettingsService for ${this.name}:`, error);
311
+ }
312
+ }
313
+ }
314
+ }
315
+ //# sourceMappingURL=BaseProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseProvider.js","sourceRoot":"","sources":["../../../src/providers/BaseProvider.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,7 @@ export interface IProvider {
23
23
  generateChatCompletion(messages: IMessage[], tools?: ITool[], toolFormat?: string): AsyncIterableIterator<unknown>;
24
24
  setModel?(modelId: string): void;
25
25
  getCurrentModel?(): string;
26
+ getDefaultModel(): string;
26
27
  setApiKey?(apiKey: string): void;
27
28
  setBaseUrl?(baseUrl?: string): void;
28
29
  getToolFormat?(): string;
@@ -5,10 +5,15 @@
5
5
  */
6
6
  import { IProvider } from './IProvider.js';
7
7
  import { IModel } from './IModel.js';
8
+ import { Config } from '../config/config.js';
8
9
  /**
9
10
  * Manager for handling multiple providers
10
11
  */
11
12
  export interface IProviderManager {
13
+ /**
14
+ * Set the configuration for the provider manager
15
+ */
16
+ setConfig(config: Config): void;
12
17
  /**
13
18
  * Register a provider
14
19
  */
@@ -0,0 +1,54 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Vybestack LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { IProvider, IModel, ITool, IMessage } from './IProvider.js';
7
+ import { Config } from '../config/config.js';
8
+ export interface ConversationDataRedactor {
9
+ redactMessage(message: IMessage, provider: string): IMessage;
10
+ redactToolCall(tool: ITool): ITool;
11
+ redactResponseContent(content: string, provider: string): string;
12
+ }
13
+ /**
14
+ * A minimal logging wrapper that acts as a transparent passthrough to the wrapped provider.
15
+ * Only intercepts generateChatCompletion to log conversations while forwarding all other
16
+ * methods directly to the wrapped provider without modification.
17
+ */
18
+ export declare class LoggingProviderWrapper implements IProvider {
19
+ private readonly wrapped;
20
+ private readonly config;
21
+ private conversationId;
22
+ private turnNumber;
23
+ private redactor;
24
+ constructor(wrapped: IProvider, config: Config, redactor?: ConversationDataRedactor);
25
+ /**
26
+ * Access to the wrapped provider for unwrapping if needed
27
+ */
28
+ get wrappedProvider(): IProvider;
29
+ get name(): string;
30
+ get isDefault(): boolean | undefined;
31
+ getModels(): Promise<IModel[]>;
32
+ getDefaultModel(): string;
33
+ generateChatCompletion(messages: IMessage[], tools?: ITool[], toolFormat?: string): AsyncIterableIterator<unknown>;
34
+ private logRequest;
35
+ private logResponseStream;
36
+ private extractSimpleContent;
37
+ private logResponse;
38
+ private generateConversationId;
39
+ private generatePromptId;
40
+ private logToolCall;
41
+ setModel?(modelId: string): void;
42
+ getCurrentModel?(): string;
43
+ setApiKey?(apiKey: string): void;
44
+ setBaseUrl?(baseUrl?: string): void;
45
+ getToolFormat?(): string;
46
+ setToolFormatOverride?(format: string | null): void;
47
+ isPaidMode?(): boolean;
48
+ clearState?(): void;
49
+ setConfig?(config: unknown): void;
50
+ getServerTools(): string[];
51
+ invokeServerTool(toolName: string, params: unknown, config?: unknown): Promise<unknown>;
52
+ setModelParams?(params: Record<string, unknown> | undefined): void;
53
+ getModelParams?(): Record<string, unknown> | undefined;
54
+ }