@vybestack/llxprt-code 0.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (575) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +256 -0
  3. package/dist/.last_build +0 -0
  4. package/dist/index.d.ts +7 -0
  5. package/dist/index.js +21 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/package.json +95 -0
  8. package/dist/src/config/auth.d.ts +6 -0
  9. package/dist/src/config/auth.js +42 -0
  10. package/dist/src/config/auth.js.map +1 -0
  11. package/dist/src/config/config.d.ts +41 -0
  12. package/dist/src/config/config.js +345 -0
  13. package/dist/src/config/config.js.map +1 -0
  14. package/dist/src/config/extension.d.ts +21 -0
  15. package/dist/src/config/extension.js +109 -0
  16. package/dist/src/config/extension.js.map +1 -0
  17. package/dist/src/config/sandboxConfig.d.ts +13 -0
  18. package/dist/src/config/sandboxConfig.js +75 -0
  19. package/dist/src/config/sandboxConfig.js.map +1 -0
  20. package/dist/src/config/settings.d.ts +88 -0
  21. package/dist/src/config/settings.js +263 -0
  22. package/dist/src/config/settings.js.map +1 -0
  23. package/dist/src/gemini.d.ts +6 -0
  24. package/dist/src/gemini.js +420 -0
  25. package/dist/src/gemini.js.map +1 -0
  26. package/dist/src/generated/git-commit.d.ts +6 -0
  27. package/dist/src/generated/git-commit.js +9 -0
  28. package/dist/src/generated/git-commit.js.map +1 -0
  29. package/dist/src/nonInteractiveCli.d.ts +7 -0
  30. package/dist/src/nonInteractiveCli.js +131 -0
  31. package/dist/src/nonInteractiveCli.js.map +1 -0
  32. package/dist/src/providers/IMessage.d.ts +38 -0
  33. package/dist/src/providers/IMessage.js +17 -0
  34. package/dist/src/providers/IMessage.js.map +1 -0
  35. package/dist/src/providers/IModel.d.ts +23 -0
  36. package/dist/src/providers/IModel.js +17 -0
  37. package/dist/src/providers/IModel.js.map +1 -0
  38. package/dist/src/providers/IProvider.d.ts +32 -0
  39. package/dist/src/providers/IProvider.js +17 -0
  40. package/dist/src/providers/IProvider.js.map +1 -0
  41. package/dist/src/providers/ITool.d.ts +23 -0
  42. package/dist/src/providers/ITool.js +17 -0
  43. package/dist/src/providers/ITool.js.map +1 -0
  44. package/dist/src/providers/ProviderAwareContentGenerator.d.ts +6 -0
  45. package/dist/src/providers/ProviderAwareContentGenerator.js +9 -0
  46. package/dist/src/providers/ProviderAwareContentGenerator.js.map +1 -0
  47. package/dist/src/providers/ProviderManager.d.ts +19 -0
  48. package/dist/src/providers/ProviderManager.js +63 -0
  49. package/dist/src/providers/ProviderManager.js.map +1 -0
  50. package/dist/src/providers/ProviderManagerAdapter.d.ts +17 -0
  51. package/dist/src/providers/ProviderManagerAdapter.js +113 -0
  52. package/dist/src/providers/ProviderManagerAdapter.js.map +1 -0
  53. package/dist/src/providers/README-qwen3.md +60 -0
  54. package/dist/src/providers/README.md +203 -0
  55. package/dist/src/providers/adapters/IStreamAdapter.d.ts +18 -0
  56. package/dist/src/providers/adapters/IStreamAdapter.js +7 -0
  57. package/dist/src/providers/adapters/IStreamAdapter.js.map +1 -0
  58. package/dist/src/providers/anthropic/AnthropicProvider.d.ts +46 -0
  59. package/dist/src/providers/anthropic/AnthropicProvider.js +478 -0
  60. package/dist/src/providers/anthropic/AnthropicProvider.js.map +1 -0
  61. package/dist/src/providers/contentGeneratorProvider.d.ts +13 -0
  62. package/dist/src/providers/contentGeneratorProvider.js +17 -0
  63. package/dist/src/providers/contentGeneratorProvider.js.map +1 -0
  64. package/dist/src/providers/enhanceConfigWithProviders.d.ts +12 -0
  65. package/dist/src/providers/enhanceConfigWithProviders.js +16 -0
  66. package/dist/src/providers/enhanceConfigWithProviders.js.map +1 -0
  67. package/dist/src/providers/gemini/GeminiProvider.d.ts +72 -0
  68. package/dist/src/providers/gemini/GeminiProvider.js +454 -0
  69. package/dist/src/providers/gemini/GeminiProvider.js.map +1 -0
  70. package/dist/src/providers/index.d.ts +13 -0
  71. package/dist/src/providers/index.js +18 -0
  72. package/dist/src/providers/index.js.map +1 -0
  73. package/dist/src/providers/integration/TEST_INSTRUCTIONS.md +197 -0
  74. package/dist/src/providers/openai/ConversationCache.d.ts +20 -0
  75. package/dist/src/providers/openai/ConversationCache.js +109 -0
  76. package/dist/src/providers/openai/ConversationCache.js.map +1 -0
  77. package/dist/src/providers/openai/IChatGenerateParams.d.ts +11 -0
  78. package/dist/src/providers/openai/IChatGenerateParams.js +2 -0
  79. package/dist/src/providers/openai/IChatGenerateParams.js.map +1 -0
  80. package/dist/src/providers/openai/OpenAIProvider.d.ts +71 -0
  81. package/dist/src/providers/openai/OpenAIProvider.js +486 -0
  82. package/dist/src/providers/openai/OpenAIProvider.js.map +1 -0
  83. package/dist/src/providers/openai/Qwen3FireworksProvider.d.ts +39 -0
  84. package/dist/src/providers/openai/Qwen3FireworksProvider.js +209 -0
  85. package/dist/src/providers/openai/Qwen3FireworksProvider.js.map +1 -0
  86. package/dist/src/providers/openai/RESPONSES_API_MODELS.d.ts +2 -0
  87. package/dist/src/providers/openai/RESPONSES_API_MODELS.js +14 -0
  88. package/dist/src/providers/openai/RESPONSES_API_MODELS.js.map +1 -0
  89. package/dist/src/providers/openai/buildResponsesRequest.d.ts +67 -0
  90. package/dist/src/providers/openai/buildResponsesRequest.js +144 -0
  91. package/dist/src/providers/openai/buildResponsesRequest.js.map +1 -0
  92. package/dist/src/providers/openai/docs/accessing-provider-info.md +172 -0
  93. package/dist/src/providers/openai/docs/params-mapping.md +91 -0
  94. package/dist/src/providers/openai/docs/qwen3-fireworks.md +47 -0
  95. package/dist/src/providers/openai/docs/responses-api-tool-calls.md +96 -0
  96. package/dist/src/providers/openai/estimateRemoteTokens.d.ts +26 -0
  97. package/dist/src/providers/openai/estimateRemoteTokens.js +75 -0
  98. package/dist/src/providers/openai/estimateRemoteTokens.js.map +1 -0
  99. package/dist/src/providers/openai/getOpenAIProviderInfo.d.ts +46 -0
  100. package/dist/src/providers/openai/getOpenAIProviderInfo.js +74 -0
  101. package/dist/src/providers/openai/getOpenAIProviderInfo.js.map +1 -0
  102. package/dist/src/providers/openai/parseResponsesStream.d.ts +3 -0
  103. package/dist/src/providers/openai/parseResponsesStream.js +444 -0
  104. package/dist/src/providers/openai/parseResponsesStream.js.map +1 -0
  105. package/dist/src/providers/parsers/TextToolCallParser.d.ts +35 -0
  106. package/dist/src/providers/parsers/TextToolCallParser.js +248 -0
  107. package/dist/src/providers/parsers/TextToolCallParser.js.map +1 -0
  108. package/dist/src/providers/providerConfigUtils.d.ts +26 -0
  109. package/dist/src/providers/providerConfigUtils.js +173 -0
  110. package/dist/src/providers/providerConfigUtils.js.map +1 -0
  111. package/dist/src/providers/providerManagerInstance.d.ts +9 -0
  112. package/dist/src/providers/providerManagerInstance.js +109 -0
  113. package/dist/src/providers/providerManagerInstance.js.map +1 -0
  114. package/dist/src/providers/tokenizers/AnthropicTokenizer.d.ts +19 -0
  115. package/dist/src/providers/tokenizers/AnthropicTokenizer.js +37 -0
  116. package/dist/src/providers/tokenizers/AnthropicTokenizer.js.map +1 -0
  117. package/dist/src/providers/tokenizers/ITokenizer.d.ts +18 -0
  118. package/dist/src/providers/tokenizers/ITokenizer.js +17 -0
  119. package/dist/src/providers/tokenizers/ITokenizer.js.map +1 -0
  120. package/dist/src/providers/tokenizers/OpenAITokenizer.d.ts +24 -0
  121. package/dist/src/providers/tokenizers/OpenAITokenizer.js +56 -0
  122. package/dist/src/providers/tokenizers/OpenAITokenizer.js.map +1 -0
  123. package/dist/src/providers/types.d.ts +14 -0
  124. package/dist/src/providers/types.js +16 -0
  125. package/dist/src/providers/types.js.map +1 -0
  126. package/dist/src/services/CommandService.d.ts +13 -0
  127. package/dist/src/services/CommandService.js +38 -0
  128. package/dist/src/services/CommandService.js.map +1 -0
  129. package/dist/src/tools/IToolFormatter.d.ts +40 -0
  130. package/dist/src/tools/IToolFormatter.js +17 -0
  131. package/dist/src/tools/IToolFormatter.js.map +1 -0
  132. package/dist/src/tools/ToolFormatter.d.ts +45 -0
  133. package/dist/src/tools/ToolFormatter.js +216 -0
  134. package/dist/src/tools/ToolFormatter.js.map +1 -0
  135. package/dist/src/ui/App.d.ts +15 -0
  136. package/dist/src/ui/App.js +468 -0
  137. package/dist/src/ui/App.js.map +1 -0
  138. package/dist/src/ui/colors.d.ts +25 -0
  139. package/dist/src/ui/colors.js +126 -0
  140. package/dist/src/ui/colors.js.map +1 -0
  141. package/dist/src/ui/commands/aboutCommand.d.ts +7 -0
  142. package/dist/src/ui/commands/aboutCommand.js +61 -0
  143. package/dist/src/ui/commands/aboutCommand.js.map +1 -0
  144. package/dist/src/ui/commands/authCommand.d.ts +7 -0
  145. package/dist/src/ui/commands/authCommand.js +14 -0
  146. package/dist/src/ui/commands/authCommand.js.map +1 -0
  147. package/dist/src/ui/commands/clearCommand.d.ts +7 -0
  148. package/dist/src/ui/commands/clearCommand.js +15 -0
  149. package/dist/src/ui/commands/clearCommand.js.map +1 -0
  150. package/dist/src/ui/commands/helpCommand.d.ts +7 -0
  151. package/dist/src/ui/commands/helpCommand.js +18 -0
  152. package/dist/src/ui/commands/helpCommand.js.map +1 -0
  153. package/dist/src/ui/commands/memoryCommand.d.ts +7 -0
  154. package/dist/src/ui/commands/memoryCommand.js +81 -0
  155. package/dist/src/ui/commands/memoryCommand.js.map +1 -0
  156. package/dist/src/ui/commands/privacyCommand.d.ts +7 -0
  157. package/dist/src/ui/commands/privacyCommand.js +14 -0
  158. package/dist/src/ui/commands/privacyCommand.js.map +1 -0
  159. package/dist/src/ui/commands/themeCommand.d.ts +7 -0
  160. package/dist/src/ui/commands/themeCommand.js +14 -0
  161. package/dist/src/ui/commands/themeCommand.js.map +1 -0
  162. package/dist/src/ui/commands/types.d.ts +63 -0
  163. package/dist/src/ui/commands/types.js +7 -0
  164. package/dist/src/ui/commands/types.js.map +1 -0
  165. package/dist/src/ui/components/AboutBox.d.ts +16 -0
  166. package/dist/src/ui/components/AboutBox.js +6 -0
  167. package/dist/src/ui/components/AboutBox.js.map +1 -0
  168. package/dist/src/ui/components/AsciiArt.d.ts +7 -0
  169. package/dist/src/ui/components/AsciiArt.js +24 -0
  170. package/dist/src/ui/components/AsciiArt.js.map +1 -0
  171. package/dist/src/ui/components/AuthDialog.d.ts +15 -0
  172. package/dist/src/ui/components/AuthDialog.js +102 -0
  173. package/dist/src/ui/components/AuthDialog.js.map +1 -0
  174. package/dist/src/ui/components/AuthInProgress.d.ts +11 -0
  175. package/dist/src/ui/components/AuthInProgress.js +27 -0
  176. package/dist/src/ui/components/AuthInProgress.js.map +1 -0
  177. package/dist/src/ui/components/AutoAcceptIndicator.d.ts +12 -0
  178. package/dist/src/ui/components/AutoAcceptIndicator.js +26 -0
  179. package/dist/src/ui/components/AutoAcceptIndicator.js.map +1 -0
  180. package/dist/src/ui/components/ConsoleSummaryDisplay.d.ts +11 -0
  181. package/dist/src/ui/components/ConsoleSummaryDisplay.js +11 -0
  182. package/dist/src/ui/components/ConsoleSummaryDisplay.js.map +1 -0
  183. package/dist/src/ui/components/ContextSummaryDisplay.d.ts +15 -0
  184. package/dist/src/ui/components/ContextSummaryDisplay.js +41 -0
  185. package/dist/src/ui/components/ContextSummaryDisplay.js.map +1 -0
  186. package/dist/src/ui/components/DetailedMessagesDisplay.d.ts +14 -0
  187. package/dist/src/ui/components/DetailedMessagesDisplay.js +34 -0
  188. package/dist/src/ui/components/DetailedMessagesDisplay.js.map +1 -0
  189. package/dist/src/ui/components/EditorSettingsDialog.d.ts +15 -0
  190. package/dist/src/ui/components/EditorSettingsDialog.js +73 -0
  191. package/dist/src/ui/components/EditorSettingsDialog.js.map +1 -0
  192. package/dist/src/ui/components/ErrorBoundary.d.ts +46 -0
  193. package/dist/src/ui/components/ErrorBoundary.js +115 -0
  194. package/dist/src/ui/components/ErrorBoundary.js.map +1 -0
  195. package/dist/src/ui/components/Footer.d.ts +22 -0
  196. package/dist/src/ui/components/Footer.js +32 -0
  197. package/dist/src/ui/components/Footer.js.map +1 -0
  198. package/dist/src/ui/components/GeminiRespondingSpinner.d.ts +17 -0
  199. package/dist/src/ui/components/GeminiRespondingSpinner.js +16 -0
  200. package/dist/src/ui/components/GeminiRespondingSpinner.js.map +1 -0
  201. package/dist/src/ui/components/Header.d.ts +14 -0
  202. package/dist/src/ui/components/Header.js +20 -0
  203. package/dist/src/ui/components/Header.js.map +1 -0
  204. package/dist/src/ui/components/Help.d.ts +12 -0
  205. package/dist/src/ui/components/Help.js +10 -0
  206. package/dist/src/ui/components/Help.js.map +1 -0
  207. package/dist/src/ui/components/HistoryItemDisplay.d.ts +18 -0
  208. package/dist/src/ui/components/HistoryItemDisplay.js +17 -0
  209. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -0
  210. package/dist/src/ui/components/InputPrompt.d.ts +25 -0
  211. package/dist/src/ui/components/InputPrompt.js +350 -0
  212. package/dist/src/ui/components/InputPrompt.js.map +1 -0
  213. package/dist/src/ui/components/LayoutManager.d.ts +24 -0
  214. package/dist/src/ui/components/LayoutManager.js +58 -0
  215. package/dist/src/ui/components/LayoutManager.js.map +1 -0
  216. package/dist/src/ui/components/LoadingIndicator.d.ts +15 -0
  217. package/dist/src/ui/components/LoadingIndicator.js +20 -0
  218. package/dist/src/ui/components/LoadingIndicator.js.map +1 -0
  219. package/dist/src/ui/components/MemoryUsageDisplay.d.ts +7 -0
  220. package/dist/src/ui/components/MemoryUsageDisplay.js +27 -0
  221. package/dist/src/ui/components/MemoryUsageDisplay.js.map +1 -0
  222. package/dist/src/ui/components/ModelStatsDisplay.d.ts +7 -0
  223. package/dist/src/ui/components/ModelStatsDisplay.js +33 -0
  224. package/dist/src/ui/components/ModelStatsDisplay.js.map +1 -0
  225. package/dist/src/ui/components/ProviderDialog.d.ts +9 -0
  226. package/dist/src/ui/components/ProviderDialog.js +54 -0
  227. package/dist/src/ui/components/ProviderDialog.js.map +1 -0
  228. package/dist/src/ui/components/ProviderModelDialog.d.ts +15 -0
  229. package/dist/src/ui/components/ProviderModelDialog.js +54 -0
  230. package/dist/src/ui/components/ProviderModelDialog.js.map +1 -0
  231. package/dist/src/ui/components/SessionSummaryDisplay.d.ts +11 -0
  232. package/dist/src/ui/components/SessionSummaryDisplay.js +4 -0
  233. package/dist/src/ui/components/SessionSummaryDisplay.js.map +1 -0
  234. package/dist/src/ui/components/ShellModeIndicator.d.ts +7 -0
  235. package/dist/src/ui/components/ShellModeIndicator.js +5 -0
  236. package/dist/src/ui/components/ShellModeIndicator.js.map +1 -0
  237. package/dist/src/ui/components/ShowMoreLines.d.ts +10 -0
  238. package/dist/src/ui/components/ShowMoreLines.js +24 -0
  239. package/dist/src/ui/components/ShowMoreLines.js.map +1 -0
  240. package/dist/src/ui/components/StatsDisplay.d.ts +12 -0
  241. package/dist/src/ui/components/StatsDisplay.js +42 -0
  242. package/dist/src/ui/components/StatsDisplay.js.map +1 -0
  243. package/dist/src/ui/components/SuggestionsDisplay.d.ts +21 -0
  244. package/dist/src/ui/components/SuggestionsDisplay.js +32 -0
  245. package/dist/src/ui/components/SuggestionsDisplay.js.map +1 -0
  246. package/dist/src/ui/components/ThemeDialog.d.ts +19 -0
  247. package/dist/src/ui/components/ThemeDialog.js +127 -0
  248. package/dist/src/ui/components/ThemeDialog.js.map +1 -0
  249. package/dist/src/ui/components/Tips.d.ts +12 -0
  250. package/dist/src/ui/components/Tips.js +8 -0
  251. package/dist/src/ui/components/Tips.js.map +1 -0
  252. package/dist/src/ui/components/ToolStatsDisplay.d.ts +7 -0
  253. package/dist/src/ui/components/ToolStatsDisplay.js +41 -0
  254. package/dist/src/ui/components/ToolStatsDisplay.js.map +1 -0
  255. package/dist/src/ui/components/UpdateNotification.d.ts +10 -0
  256. package/dist/src/ui/components/UpdateNotification.js +10 -0
  257. package/dist/src/ui/components/UpdateNotification.js.map +1 -0
  258. package/dist/src/ui/components/messages/CompressionMessage.d.ts +11 -0
  259. package/dist/src/ui/components/messages/CompressionMessage.js +16 -0
  260. package/dist/src/ui/components/messages/CompressionMessage.js.map +1 -0
  261. package/dist/src/ui/components/messages/DiffRenderer.d.ts +15 -0
  262. package/dist/src/ui/components/messages/DiffRenderer.js +212 -0
  263. package/dist/src/ui/components/messages/DiffRenderer.js.map +1 -0
  264. package/dist/src/ui/components/messages/ErrorMessage.d.ts +11 -0
  265. package/dist/src/ui/components/messages/ErrorMessage.js +9 -0
  266. package/dist/src/ui/components/messages/ErrorMessage.js.map +1 -0
  267. package/dist/src/ui/components/messages/GeminiMessage.d.ts +15 -0
  268. package/dist/src/ui/components/messages/GeminiMessage.js +10 -0
  269. package/dist/src/ui/components/messages/GeminiMessage.js.map +1 -0
  270. package/dist/src/ui/components/messages/GeminiMessageContent.d.ts +14 -0
  271. package/dist/src/ui/components/messages/GeminiMessageContent.js +15 -0
  272. package/dist/src/ui/components/messages/GeminiMessageContent.js.map +1 -0
  273. package/dist/src/ui/components/messages/InfoMessage.d.ts +11 -0
  274. package/dist/src/ui/components/messages/InfoMessage.js +9 -0
  275. package/dist/src/ui/components/messages/InfoMessage.js.map +1 -0
  276. package/dist/src/ui/components/messages/ToolConfirmationMessage.d.ts +15 -0
  277. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +117 -0
  278. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -0
  279. package/dist/src/ui/components/messages/ToolGroupMessage.d.ts +18 -0
  280. package/dist/src/ui/components/messages/ToolGroupMessage.js +53 -0
  281. package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -0
  282. package/dist/src/ui/components/messages/ToolMessage.d.ts +15 -0
  283. package/dist/src/ui/components/messages/ToolMessage.js +61 -0
  284. package/dist/src/ui/components/messages/ToolMessage.js.map +1 -0
  285. package/dist/src/ui/components/messages/UserMessage.d.ts +11 -0
  286. package/dist/src/ui/components/messages/UserMessage.js +9 -0
  287. package/dist/src/ui/components/messages/UserMessage.js.map +1 -0
  288. package/dist/src/ui/components/messages/UserShellMessage.d.ts +11 -0
  289. package/dist/src/ui/components/messages/UserShellMessage.js +9 -0
  290. package/dist/src/ui/components/messages/UserShellMessage.js.map +1 -0
  291. package/dist/src/ui/components/shared/MaxSizedBox.d.ts +61 -0
  292. package/dist/src/ui/components/shared/MaxSizedBox.js +384 -0
  293. package/dist/src/ui/components/shared/MaxSizedBox.js.map +1 -0
  294. package/dist/src/ui/components/shared/RadioButtonSelect.d.ts +44 -0
  295. package/dist/src/ui/components/shared/RadioButtonSelect.js +77 -0
  296. package/dist/src/ui/components/shared/RadioButtonSelect.js.map +1 -0
  297. package/dist/src/ui/components/shared/text-buffer.d.ts +184 -0
  298. package/dist/src/ui/components/shared/text-buffer.js +1021 -0
  299. package/dist/src/ui/components/shared/text-buffer.js.map +1 -0
  300. package/dist/src/ui/constants.d.ts +8 -0
  301. package/dist/src/ui/constants.js +12 -0
  302. package/dist/src/ui/constants.js.map +1 -0
  303. package/dist/src/ui/containers/SessionController.d.ts +26 -0
  304. package/dist/src/ui/containers/SessionController.js +314 -0
  305. package/dist/src/ui/containers/SessionController.js.map +1 -0
  306. package/dist/src/ui/containers/UIStateShell.d.ts +6 -0
  307. package/dist/src/ui/containers/UIStateShell.js +4 -0
  308. package/dist/src/ui/containers/UIStateShell.js.map +1 -0
  309. package/dist/src/ui/contexts/AppDispatchContext.d.ts +12 -0
  310. package/dist/src/ui/contexts/AppDispatchContext.js +17 -0
  311. package/dist/src/ui/contexts/AppDispatchContext.js.map +1 -0
  312. package/dist/src/ui/contexts/OpenAIProviderContext.d.ts +29 -0
  313. package/dist/src/ui/contexts/OpenAIProviderContext.js +63 -0
  314. package/dist/src/ui/contexts/OpenAIProviderContext.js.map +1 -0
  315. package/dist/src/ui/contexts/OverflowContext.d.ts +19 -0
  316. package/dist/src/ui/contexts/OverflowContext.js +43 -0
  317. package/dist/src/ui/contexts/OverflowContext.js.map +1 -0
  318. package/dist/src/ui/contexts/SessionContext.d.ts +36 -0
  319. package/dist/src/ui/contexts/SessionContext.js +66 -0
  320. package/dist/src/ui/contexts/SessionContext.js.map +1 -0
  321. package/dist/src/ui/contexts/SessionStateContext.d.ts +15 -0
  322. package/dist/src/ui/contexts/SessionStateContext.js +26 -0
  323. package/dist/src/ui/contexts/SessionStateContext.js.map +1 -0
  324. package/dist/src/ui/contexts/StreamingContext.d.ts +9 -0
  325. package/dist/src/ui/contexts/StreamingContext.js +15 -0
  326. package/dist/src/ui/contexts/StreamingContext.js.map +1 -0
  327. package/dist/src/ui/editors/editorSettingsManager.d.ts +19 -0
  328. package/dist/src/ui/editors/editorSettingsManager.js +54 -0
  329. package/dist/src/ui/editors/editorSettingsManager.js.map +1 -0
  330. package/dist/src/ui/hooks/atCommandProcessor.d.ts +31 -0
  331. package/dist/src/ui/hooks/atCommandProcessor.js +310 -0
  332. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -0
  333. package/dist/src/ui/hooks/index.d.ts +2 -0
  334. package/dist/src/ui/hooks/index.js +3 -0
  335. package/dist/src/ui/hooks/index.js.map +1 -0
  336. package/dist/src/ui/hooks/shellCommandProcessor.d.ts +16 -0
  337. package/dist/src/ui/hooks/shellCommandProcessor.js +263 -0
  338. package/dist/src/ui/hooks/shellCommandProcessor.js.map +1 -0
  339. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +27 -0
  340. package/dist/src/ui/hooks/slashCommandProcessor.js +1413 -0
  341. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -0
  342. package/dist/src/ui/hooks/useAuthCommand.d.ts +15 -0
  343. package/dist/src/ui/hooks/useAuthCommand.js +76 -0
  344. package/dist/src/ui/hooks/useAuthCommand.js.map +1 -0
  345. package/dist/src/ui/hooks/useAutoAcceptIndicator.d.ts +10 -0
  346. package/dist/src/ui/hooks/useAutoAcceptIndicator.js +37 -0
  347. package/dist/src/ui/hooks/useAutoAcceptIndicator.js.map +1 -0
  348. package/dist/src/ui/hooks/useBracketedPaste.d.ts +12 -0
  349. package/dist/src/ui/hooks/useBracketedPaste.js +32 -0
  350. package/dist/src/ui/hooks/useBracketedPaste.js.map +1 -0
  351. package/dist/src/ui/hooks/useCompletion.d.ts +21 -0
  352. package/dist/src/ui/hooks/useCompletion.js +375 -0
  353. package/dist/src/ui/hooks/useCompletion.js.map +1 -0
  354. package/dist/src/ui/hooks/useConsoleMessages.d.ts +12 -0
  355. package/dist/src/ui/hooks/useConsoleMessages.js +60 -0
  356. package/dist/src/ui/hooks/useConsoleMessages.js.map +1 -0
  357. package/dist/src/ui/hooks/useEditorSettings.d.ts +17 -0
  358. package/dist/src/ui/hooks/useEditorSettings.js +48 -0
  359. package/dist/src/ui/hooks/useEditorSettings.js.map +1 -0
  360. package/dist/src/ui/hooks/useGeminiStream.d.ts +23 -0
  361. package/dist/src/ui/hooks/useGeminiStream.js +607 -0
  362. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -0
  363. package/dist/src/ui/hooks/useGitBranchName.d.ts +6 -0
  364. package/dist/src/ui/hooks/useGitBranchName.js +61 -0
  365. package/dist/src/ui/hooks/useGitBranchName.js.map +1 -0
  366. package/dist/src/ui/hooks/useHistoryManager.d.ts +22 -0
  367. package/dist/src/ui/hooks/useHistoryManager.js +74 -0
  368. package/dist/src/ui/hooks/useHistoryManager.js.map +1 -0
  369. package/dist/src/ui/hooks/useInputHistory.d.ts +19 -0
  370. package/dist/src/ui/hooks/useInputHistory.js +84 -0
  371. package/dist/src/ui/hooks/useInputHistory.js.map +1 -0
  372. package/dist/src/ui/hooks/useKeypress.d.ts +29 -0
  373. package/dist/src/ui/hooks/useKeypress.js +162 -0
  374. package/dist/src/ui/hooks/useKeypress.js.map +1 -0
  375. package/dist/src/ui/hooks/useLoadingIndicator.d.ts +10 -0
  376. package/dist/src/ui/hooks/useLoadingIndicator.js +44 -0
  377. package/dist/src/ui/hooks/useLoadingIndicator.js.map +1 -0
  378. package/dist/src/ui/hooks/useLogger.d.ts +10 -0
  379. package/dist/src/ui/hooks/useLogger.js +29 -0
  380. package/dist/src/ui/hooks/useLogger.js.map +1 -0
  381. package/dist/src/ui/hooks/useOpenAIProviderInfo.d.ts +17 -0
  382. package/dist/src/ui/hooks/useOpenAIProviderInfo.js +43 -0
  383. package/dist/src/ui/hooks/useOpenAIProviderInfo.js.map +1 -0
  384. package/dist/src/ui/hooks/usePhraseCycler.d.ts +14 -0
  385. package/dist/src/ui/hooks/usePhraseCycler.js +197 -0
  386. package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -0
  387. package/dist/src/ui/hooks/usePrivacySettings.d.ts +16 -0
  388. package/dist/src/ui/hooks/usePrivacySettings.js +115 -0
  389. package/dist/src/ui/hooks/usePrivacySettings.js.map +1 -0
  390. package/dist/src/ui/hooks/useProviderDialog.d.ts +25 -0
  391. package/dist/src/ui/hooks/useProviderDialog.js +61 -0
  392. package/dist/src/ui/hooks/useProviderDialog.js.map +1 -0
  393. package/dist/src/ui/hooks/useProviderModelDialog.d.ts +26 -0
  394. package/dist/src/ui/hooks/useProviderModelDialog.js +62 -0
  395. package/dist/src/ui/hooks/useProviderModelDialog.js.map +1 -0
  396. package/dist/src/ui/hooks/useReactToolScheduler.d.ts +33 -0
  397. package/dist/src/ui/hooks/useReactToolScheduler.js +186 -0
  398. package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -0
  399. package/dist/src/ui/hooks/useRefreshMemoryCommand.d.ts +6 -0
  400. package/dist/src/ui/hooks/useRefreshMemoryCommand.js +7 -0
  401. package/dist/src/ui/hooks/useRefreshMemoryCommand.js.map +1 -0
  402. package/dist/src/ui/hooks/useSession.d.ts +11 -0
  403. package/dist/src/ui/hooks/useSession.js +19 -0
  404. package/dist/src/ui/hooks/useSession.js.map +1 -0
  405. package/dist/src/ui/hooks/useShellHistory.d.ts +11 -0
  406. package/dist/src/ui/hooks/useShellHistory.js +89 -0
  407. package/dist/src/ui/hooks/useShellHistory.js.map +1 -0
  408. package/dist/src/ui/hooks/useShowMemoryCommand.d.ts +9 -0
  409. package/dist/src/ui/hooks/useShowMemoryCommand.js +50 -0
  410. package/dist/src/ui/hooks/useShowMemoryCommand.js.map +1 -0
  411. package/dist/src/ui/hooks/useStableCallback.d.ts +40 -0
  412. package/dist/src/ui/hooks/useStableCallback.js +58 -0
  413. package/dist/src/ui/hooks/useStableCallback.js.map +1 -0
  414. package/dist/src/ui/hooks/useStateAndRef.d.ts +7 -0
  415. package/dist/src/ui/hooks/useStateAndRef.js +26 -0
  416. package/dist/src/ui/hooks/useStateAndRef.js.map +1 -0
  417. package/dist/src/ui/hooks/useTerminalSize.d.ts +9 -0
  418. package/dist/src/ui/hooks/useTerminalSize.js +27 -0
  419. package/dist/src/ui/hooks/useTerminalSize.js.map +1 -0
  420. package/dist/src/ui/hooks/useThemeCommand.d.ts +16 -0
  421. package/dist/src/ui/hooks/useThemeCommand.js +94 -0
  422. package/dist/src/ui/hooks/useThemeCommand.js.map +1 -0
  423. package/dist/src/ui/hooks/useTimer.d.ts +12 -0
  424. package/dist/src/ui/hooks/useTimer.js +58 -0
  425. package/dist/src/ui/hooks/useTimer.js.map +1 -0
  426. package/dist/src/ui/privacy/CloudFreePrivacyNotice.d.ts +12 -0
  427. package/dist/src/ui/privacy/CloudFreePrivacyNotice.js +42 -0
  428. package/dist/src/ui/privacy/CloudFreePrivacyNotice.js.map +1 -0
  429. package/dist/src/ui/privacy/CloudPaidPrivacyNotice.d.ts +10 -0
  430. package/dist/src/ui/privacy/CloudPaidPrivacyNotice.js +17 -0
  431. package/dist/src/ui/privacy/CloudPaidPrivacyNotice.js.map +1 -0
  432. package/dist/src/ui/privacy/GeminiPrivacyNotice.d.ts +10 -0
  433. package/dist/src/ui/privacy/GeminiPrivacyNotice.js +17 -0
  434. package/dist/src/ui/privacy/GeminiPrivacyNotice.js.map +1 -0
  435. package/dist/src/ui/privacy/PrivacyNotice.d.ts +12 -0
  436. package/dist/src/ui/privacy/PrivacyNotice.js +25 -0
  437. package/dist/src/ui/privacy/PrivacyNotice.js.map +1 -0
  438. package/dist/src/ui/reducers/appReducer.d.ts +59 -0
  439. package/dist/src/ui/reducers/appReducer.js +91 -0
  440. package/dist/src/ui/reducers/appReducer.js.map +1 -0
  441. package/dist/src/ui/reducers/sessionReducer.d.ts +36 -0
  442. package/dist/src/ui/reducers/sessionReducer.js +30 -0
  443. package/dist/src/ui/reducers/sessionReducer.js.map +1 -0
  444. package/dist/src/ui/themes/ansi-light.d.ts +7 -0
  445. package/dist/src/ui/themes/ansi-light.js +139 -0
  446. package/dist/src/ui/themes/ansi-light.js.map +1 -0
  447. package/dist/src/ui/themes/ansi.d.ts +7 -0
  448. package/dist/src/ui/themes/ansi.js +149 -0
  449. package/dist/src/ui/themes/ansi.js.map +1 -0
  450. package/dist/src/ui/themes/atom-one-dark.d.ts +7 -0
  451. package/dist/src/ui/themes/atom-one-dark.js +136 -0
  452. package/dist/src/ui/themes/atom-one-dark.js.map +1 -0
  453. package/dist/src/ui/themes/ayu-light.d.ts +7 -0
  454. package/dist/src/ui/themes/ayu-light.js +128 -0
  455. package/dist/src/ui/themes/ayu-light.js.map +1 -0
  456. package/dist/src/ui/themes/ayu.d.ts +7 -0
  457. package/dist/src/ui/themes/ayu.js +102 -0
  458. package/dist/src/ui/themes/ayu.js.map +1 -0
  459. package/dist/src/ui/themes/default-light.d.ts +7 -0
  460. package/dist/src/ui/themes/default-light.js +100 -0
  461. package/dist/src/ui/themes/default-light.js.map +1 -0
  462. package/dist/src/ui/themes/default.d.ts +7 -0
  463. package/dist/src/ui/themes/default.js +143 -0
  464. package/dist/src/ui/themes/default.js.map +1 -0
  465. package/dist/src/ui/themes/dracula.d.ts +7 -0
  466. package/dist/src/ui/themes/dracula.js +113 -0
  467. package/dist/src/ui/themes/dracula.js.map +1 -0
  468. package/dist/src/ui/themes/github-dark.d.ts +7 -0
  469. package/dist/src/ui/themes/github-dark.js +136 -0
  470. package/dist/src/ui/themes/github-dark.js.map +1 -0
  471. package/dist/src/ui/themes/github-light.d.ts +7 -0
  472. package/dist/src/ui/themes/github-light.js +138 -0
  473. package/dist/src/ui/themes/github-light.js.map +1 -0
  474. package/dist/src/ui/themes/googlecode.d.ts +7 -0
  475. package/dist/src/ui/themes/googlecode.js +135 -0
  476. package/dist/src/ui/themes/googlecode.js.map +1 -0
  477. package/dist/src/ui/themes/green-screen.d.ts +7 -0
  478. package/dist/src/ui/themes/green-screen.js +113 -0
  479. package/dist/src/ui/themes/green-screen.js.map +1 -0
  480. package/dist/src/ui/themes/no-color.d.ts +7 -0
  481. package/dist/src/ui/themes/no-color.js +84 -0
  482. package/dist/src/ui/themes/no-color.js.map +1 -0
  483. package/dist/src/ui/themes/shades-of-purple.d.ts +11 -0
  484. package/dist/src/ui/themes/shades-of-purple.js +302 -0
  485. package/dist/src/ui/themes/shades-of-purple.js.map +1 -0
  486. package/dist/src/ui/themes/theme-manager.d.ts +33 -0
  487. package/dist/src/ui/themes/theme-manager.js +111 -0
  488. package/dist/src/ui/themes/theme-manager.js.map +1 -0
  489. package/dist/src/ui/themes/theme.d.ts +83 -0
  490. package/dist/src/ui/themes/theme.js +304 -0
  491. package/dist/src/ui/themes/theme.js.map +1 -0
  492. package/dist/src/ui/themes/xcode.d.ts +7 -0
  493. package/dist/src/ui/themes/xcode.js +143 -0
  494. package/dist/src/ui/themes/xcode.js.map +1 -0
  495. package/dist/src/ui/types.d.ts +174 -0
  496. package/dist/src/ui/types.js +43 -0
  497. package/dist/src/ui/types.js.map +1 -0
  498. package/dist/src/ui/utils/CodeColorizer.d.ts +14 -0
  499. package/dist/src/ui/utils/CodeColorizer.js +97 -0
  500. package/dist/src/ui/utils/CodeColorizer.js.map +1 -0
  501. package/dist/src/ui/utils/ConsolePatcher.d.ts +23 -0
  502. package/dist/src/ui/utils/ConsolePatcher.js +42 -0
  503. package/dist/src/ui/utils/ConsolePatcher.js.map +1 -0
  504. package/dist/src/ui/utils/InlineMarkdownRenderer.d.ts +16 -0
  505. package/dist/src/ui/utils/InlineMarkdownRenderer.js +104 -0
  506. package/dist/src/ui/utils/InlineMarkdownRenderer.js.map +1 -0
  507. package/dist/src/ui/utils/MarkdownDisplay.d.ts +14 -0
  508. package/dist/src/ui/utils/MarkdownDisplay.js +205 -0
  509. package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -0
  510. package/dist/src/ui/utils/TableRenderer.d.ts +17 -0
  511. package/dist/src/ui/utils/TableRenderer.js +84 -0
  512. package/dist/src/ui/utils/TableRenderer.js.map +1 -0
  513. package/dist/src/ui/utils/clipboardUtils.d.ts +22 -0
  514. package/dist/src/ui/utils/clipboardUtils.js +127 -0
  515. package/dist/src/ui/utils/clipboardUtils.js.map +1 -0
  516. package/dist/src/ui/utils/commandUtils.d.ts +22 -0
  517. package/dist/src/ui/utils/commandUtils.js +25 -0
  518. package/dist/src/ui/utils/commandUtils.js.map +1 -0
  519. package/dist/src/ui/utils/computeStats.d.ts +10 -0
  520. package/dist/src/ui/utils/computeStats.js +55 -0
  521. package/dist/src/ui/utils/computeStats.js.map +1 -0
  522. package/dist/src/ui/utils/displayUtils.d.ts +17 -0
  523. package/dist/src/ui/utils/displayUtils.js +24 -0
  524. package/dist/src/ui/utils/displayUtils.js.map +1 -0
  525. package/dist/src/ui/utils/errorParsing.d.ts +7 -0
  526. package/dist/src/ui/utils/errorParsing.js +106 -0
  527. package/dist/src/ui/utils/errorParsing.js.map +1 -0
  528. package/dist/src/ui/utils/formatters.d.ts +13 -0
  529. package/dist/src/ui/utils/formatters.js +56 -0
  530. package/dist/src/ui/utils/formatters.js.map +1 -0
  531. package/dist/src/ui/utils/markdownUtilities.d.ts +6 -0
  532. package/dist/src/ui/utils/markdownUtilities.js +110 -0
  533. package/dist/src/ui/utils/markdownUtilities.js.map +1 -0
  534. package/dist/src/ui/utils/renderLoopDetector.d.ts +52 -0
  535. package/dist/src/ui/utils/renderLoopDetector.js +146 -0
  536. package/dist/src/ui/utils/renderLoopDetector.js.map +1 -0
  537. package/dist/src/ui/utils/textUtils.d.ts +22 -0
  538. package/dist/src/ui/utils/textUtils.js +58 -0
  539. package/dist/src/ui/utils/textUtils.js.map +1 -0
  540. package/dist/src/ui/utils/updateCheck.d.ts +6 -0
  541. package/dist/src/ui/utils/updateCheck.js +50 -0
  542. package/dist/src/ui/utils/updateCheck.js.map +1 -0
  543. package/dist/src/utils/ConversationContext.d.ts +55 -0
  544. package/dist/src/utils/ConversationContext.js +85 -0
  545. package/dist/src/utils/ConversationContext.js.map +1 -0
  546. package/dist/src/utils/cleanup.d.ts +8 -0
  547. package/dist/src/utils/cleanup.js +34 -0
  548. package/dist/src/utils/cleanup.js.map +1 -0
  549. package/dist/src/utils/package.d.ts +12 -0
  550. package/dist/src/utils/package.js +24 -0
  551. package/dist/src/utils/package.js.map +1 -0
  552. package/dist/src/utils/readStdin.d.ts +6 -0
  553. package/dist/src/utils/readStdin.js +34 -0
  554. package/dist/src/utils/readStdin.js.map +1 -0
  555. package/dist/src/utils/sandbox-macos-permissive-closed.sb +26 -0
  556. package/dist/src/utils/sandbox-macos-permissive-open.sb +19 -0
  557. package/dist/src/utils/sandbox-macos-permissive-proxied.sb +31 -0
  558. package/dist/src/utils/sandbox-macos-restrictive-closed.sb +87 -0
  559. package/dist/src/utils/sandbox-macos-restrictive-open.sb +90 -0
  560. package/dist/src/utils/sandbox-macos-restrictive-proxied.sb +92 -0
  561. package/dist/src/utils/sandbox.d.ts +7 -0
  562. package/dist/src/utils/sandbox.js +680 -0
  563. package/dist/src/utils/sandbox.js.map +1 -0
  564. package/dist/src/utils/startupWarnings.d.ts +6 -0
  565. package/dist/src/utils/startupWarnings.js +40 -0
  566. package/dist/src/utils/startupWarnings.js.map +1 -0
  567. package/dist/src/utils/userStartupWarnings.d.ts +6 -0
  568. package/dist/src/utils/userStartupWarnings.js +48 -0
  569. package/dist/src/utils/userStartupWarnings.js.map +1 -0
  570. package/dist/src/utils/version.d.ts +6 -0
  571. package/dist/src/utils/version.js +11 -0
  572. package/dist/src/utils/version.js.map +1 -0
  573. package/dist/tsconfig.tsbuildinfo +1 -0
  574. package/dist/vybestack-llxprt-code-0.1.12.tgz +0 -0
  575. package/package.json +95 -0
@@ -0,0 +1,203 @@
1
+ # Multi-Provider Support
2
+
3
+ This directory contains the implementation of multi-provider support for the Gemini CLI, allowing users to switch between different AI providers (Gemini, OpenAI, Anthropic, etc.) seamlessly.
4
+
5
+ ## Architecture
6
+
7
+ ### Overview
8
+
9
+ The multi-provider architecture uses a wrapper pattern to adapt different provider APIs to a common interface that's compatible with Gemini's streaming format:
10
+
11
+ ```
12
+ ┌─────────────────┐ ┌──────────────────┐ ┌─────────────────────┐
13
+ │ CLI/UI Layer │────▶│ ProviderManager │────▶│ IProvider Interface │
14
+ └─────────────────┘ └──────────────────┘ └─────────────────────┘
15
+
16
+ ┌───────────────────────────────────┼─────────────────┐
17
+ │ │ │
18
+ ┌──────▼────────┐ ┌──────────▼──────┐ ┌──────▼──────┐
19
+ │ GeminiProvider │ │ OpenAIProvider │ │ Anthropic │
20
+ └───────────────┘ └─────────────────┘ │ (planned) │
21
+ │ └─────────────┘
22
+
23
+ ┌──────────▼──────────────┐
24
+ │ GeminiCompatibleWrapper │
25
+ └─────────────────────────┘
26
+ ```
27
+
28
+ ### Key Components
29
+
30
+ 1. **IProvider Interface** (`IProvider.ts`): Common interface that all providers must implement
31
+ 2. **ProviderManager** (`ProviderManager.ts`): Singleton that manages provider registration and switching
32
+ 3. **GeminiCompatibleWrapper** (`core/src/providers/adapters/GeminiCompatibleWrapper.ts`): Adapts provider-specific formats to Gemini's expected format
33
+ 4. **Provider Implementations**:
34
+ - `GeminiProvider`: Native Gemini implementation
35
+ - `OpenAIProvider`: OpenAI API integration
36
+ - Additional providers can be added following the same pattern
37
+
38
+ ## Setup and Configuration
39
+
40
+ ### OpenAI Provider
41
+
42
+ 1. **API Key Setup**:
43
+
44
+ ```bash
45
+ # Option 1: Create a key file
46
+ echo "your-openai-api-key" > ~/.openai_key
47
+
48
+ # Option 2: Use environment variable
49
+ export OPENAI_API_KEY="your-openai-api-key"
50
+
51
+ # Option 3: Use /key command (coming in phase 08)
52
+ /key your-openai-api-key
53
+ ```
54
+
55
+ 2. **Custom Base URL** (for OpenAI-compatible endpoints):
56
+ ```bash
57
+ # Coming in phase 08
58
+ /baseurl https://your-custom-endpoint.com/v1
59
+ ```
60
+
61
+ ### Anthropic Provider (Planned)
62
+
63
+ Similar setup will be available for Anthropic once implemented.
64
+
65
+ ## Commands
66
+
67
+ ### Provider Management
68
+
69
+ - `/provider` - List available providers and show the active one
70
+ - `/provider <name>` - Switch to a different provider (e.g., `/provider openai`)
71
+ - `/provider gemini` - Switch back to the default Gemini provider
72
+
73
+ ### Model Management
74
+
75
+ - `/model` - List available models for the current provider
76
+ - `/model <name>` - Switch to a different model within the current provider
77
+
78
+ ### Configuration (Coming in Phase 08)
79
+
80
+ - `/key <api_key>` - Set the API key for the active provider
81
+ - `/keyfile <path>` - Load API key from a file
82
+ - `/baseurl <url>` - Set a custom base URL for OpenAI-compatible endpoints
83
+
84
+ ## Implementation Status
85
+
86
+ ### ✅ Completed
87
+
88
+ 1. Core provider architecture and interfaces
89
+ 2. ProviderManager implementation with singleton pattern
90
+ 3. OpenAI provider with model listing and chat completion
91
+ 4. GeminiCompatibleWrapper for adapting streaming formats
92
+ 5. Integration with `/provider` and `/model` commands
93
+ 6. Tool call support across providers
94
+
95
+ ### 🚧 In Progress
96
+
97
+ - Phase 08: API key and base URL configuration commands
98
+ - Phase 09-13: Tool formatter implementation
99
+ - Phase 14-21: Anthropic provider support
100
+
101
+ ### Current Limitations
102
+
103
+ - Chat completion is fully integrated and working with all providers
104
+ - Tool calls work but require proper formatting for each provider
105
+ - Some advanced features may be provider-specific
106
+
107
+ ## Troubleshooting
108
+
109
+ ### Common Issues
110
+
111
+ 1. **"No active provider set" error**:
112
+ - This can occur after using a non-Gemini provider
113
+ - Solution: Run `/provider gemini` to switch back to default
114
+
115
+ 2. **OpenAI 400 error "Missing parameter 'tool_call_id'"**:
116
+ - This happens when tool responses don't include the required ID
117
+ - The system now automatically handles this conversion
118
+
119
+ 3. **Model not found**:
120
+ - Different providers have different model names
121
+ - Use `/model` without arguments to see available models
122
+ - Example: OpenAI uses `gpt-4` while Gemini uses `gemini-pro`
123
+
124
+ 4. **Authentication errors**:
125
+ - Ensure your API key is correctly set up
126
+ - Check file permissions on `~/.openai_key` (should be readable)
127
+ - Verify the API key is valid and has appropriate permissions
128
+
129
+ 5. **Regex errors with search tools**:
130
+ - Some models (like o3) may not escape special regex characters
131
+ - The search tools expect regex patterns, not literal strings
132
+ - Special characters like `(`, `)`, `[`, `]` must be escaped with `\`
133
+
134
+ ### Debug Mode
135
+
136
+ Enable debug logging to troubleshoot provider issues:
137
+
138
+ ```bash
139
+ # Start CLI with debug flag
140
+ gemini-cli --debug
141
+
142
+ # Or set environment variable
143
+ export DEBUG=1
144
+ gemini-cli
145
+ ```
146
+
147
+ ## Development Guide
148
+
149
+ ### Adding a New Provider
150
+
151
+ 1. Create a new provider class implementing `IProvider`:
152
+
153
+ ```typescript
154
+ export class MyProvider implements IProvider {
155
+ name = 'myprovider';
156
+
157
+ async getModels(): Promise<IModel[]> {
158
+ // Implement model listing
159
+ }
160
+
161
+ async *generateChatCompletion(
162
+ messages: IMessage[],
163
+ tools?: ITool[],
164
+ ): AsyncIterableIterator<IMessage> {
165
+ // Implement streaming chat completion
166
+ }
167
+
168
+ setModel(modelId: string): void {
169
+ // Implement model switching
170
+ }
171
+
172
+ getCurrentModel(): string {
173
+ // Return current model
174
+ }
175
+ }
176
+ ```
177
+
178
+ 2. Register the provider in `enhanceConfigWithProviders.ts`
179
+ 3. Add any necessary authentication setup
180
+ 4. Test with existing commands
181
+
182
+ ### Testing
183
+
184
+ Run provider-specific tests:
185
+
186
+ ```bash
187
+ # Unit tests
188
+ npm test -- --grep "Provider"
189
+
190
+ # Integration tests
191
+ npm run test:integration -- --grep "provider"
192
+
193
+ # Test specific provider
194
+ npm test -- OpenAIProvider
195
+ ```
196
+
197
+ ## Future Enhancements
198
+
199
+ 1. **Persistent Configuration**: Save provider preferences and API keys securely
200
+ 2. **Provider-Specific Features**: Expose unique capabilities of each provider
201
+ 3. **Unified Tool Format**: Automatic conversion between tool formats
202
+ 4. **Performance Monitoring**: Track token usage and costs per provider
203
+ 5. **Fallback Providers**: Automatic failover when a provider is unavailable
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Vybestack LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { IMessage } from '../IMessage.js';
7
+ import { ServerGeminiStreamEvent } from '@vybestack/llxprt-code-core';
8
+ /**
9
+ * Interface for adapting provider-specific streams to Gemini event format
10
+ */
11
+ export interface IStreamAdapter {
12
+ /**
13
+ * Adapts a provider's stream format to Gemini's event stream format
14
+ * @param providerStream The provider-specific stream of messages
15
+ * @returns An async iterator of Gemini events
16
+ */
17
+ adaptStream(providerStream: AsyncIterableIterator<IMessage>): AsyncIterableIterator<ServerGeminiStreamEvent>;
18
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Vybestack LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=IStreamAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IStreamAdapter.js","sourceRoot":"","sources":["../../../../src/providers/adapters/IStreamAdapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,46 @@
1
+ import { IProvider, IModel, ITool, IMessage } from '../IProvider.js';
2
+ import { ToolFormat } from '../../tools/IToolFormatter.js';
3
+ export declare class AnthropicProvider implements IProvider {
4
+ name: string;
5
+ private anthropic;
6
+ private toolFormatter;
7
+ toolFormat: ToolFormat;
8
+ private apiKey;
9
+ private baseURL?;
10
+ private currentModel;
11
+ private modelCache;
12
+ private readonly modelCacheTTL;
13
+ private readonly retryableErrorMessages;
14
+ private modelTokenPatterns;
15
+ constructor(apiKey: string, baseURL?: string);
16
+ getModels(): Promise<IModel[]>;
17
+ generateChatCompletion(messages: IMessage[], tools?: ITool[], _toolFormat?: string): AsyncIterableIterator<unknown>;
18
+ setApiKey(apiKey: string): void;
19
+ setBaseUrl(baseUrl?: string): void;
20
+ setModel(modelId: string): void;
21
+ getCurrentModel(): string;
22
+ /**
23
+ * Helper method to get the latest Claude 4 model ID for a given tier.
24
+ * This can be used when you want to ensure you're using the latest model.
25
+ * @param tier - The model tier: 'opus', 'sonnet', or 'haiku'
26
+ * @returns The latest model ID for that tier
27
+ */
28
+ getLatestClaude4Model(tier?: 'opus' | 'sonnet' | 'haiku'): string;
29
+ /**
30
+ * Resolves a model ID that may contain "-latest" to the actual model ID.
31
+ * Caches the result to avoid frequent API calls.
32
+ */
33
+ private resolveLatestModel;
34
+ private getMaxTokensForModel;
35
+ private getContextWindowForModel;
36
+ private isRetryableError;
37
+ /**
38
+ * Validates and potentially fixes the message history to ensure proper tool_use/tool_result pairing.
39
+ * This prevents the "tool_use ids were found without tool_result blocks" error after a failed request.
40
+ */
41
+ private validateAndFixMessages;
42
+ /**
43
+ * Anthropic always requires payment (API key)
44
+ */
45
+ isPaidMode(): boolean;
46
+ }