@vybestack/llxprt-code-providers 0.10.0-nightly.260608.a9c742716

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 (324) hide show
  1. package/dist/.last_build +0 -0
  2. package/dist/index.d.ts +11 -0
  3. package/dist/index.js +12 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/src/BaseProvider.d.ts +297 -0
  6. package/dist/src/BaseProvider.js +751 -0
  7. package/dist/src/BaseProvider.js.map +1 -0
  8. package/dist/src/BaseProviderNormalization.d.ts +39 -0
  9. package/dist/src/BaseProviderNormalization.js +164 -0
  10. package/dist/src/BaseProviderNormalization.js.map +1 -0
  11. package/dist/src/ContentGeneratorRole.d.ts +14 -0
  12. package/dist/src/ContentGeneratorRole.js +16 -0
  13. package/dist/src/ContentGeneratorRole.js.map +1 -0
  14. package/dist/src/IModel.d.ts +23 -0
  15. package/dist/src/IModel.js +17 -0
  16. package/dist/src/IModel.js.map +1 -0
  17. package/dist/src/IProvider.d.ts +96 -0
  18. package/dist/src/IProvider.js +17 -0
  19. package/dist/src/IProvider.js.map +1 -0
  20. package/dist/src/IProviderManager.d.ts +94 -0
  21. package/dist/src/IProviderManager.js +7 -0
  22. package/dist/src/IProviderManager.js.map +1 -0
  23. package/dist/src/ITool.d.ts +23 -0
  24. package/dist/src/ITool.js +17 -0
  25. package/dist/src/ITool.js.map +1 -0
  26. package/dist/src/LoadBalancingProvider.d.ts +334 -0
  27. package/dist/src/LoadBalancingProvider.js +916 -0
  28. package/dist/src/LoadBalancingProvider.js.map +1 -0
  29. package/dist/src/LoggingProviderWrapper.d.ts +187 -0
  30. package/dist/src/LoggingProviderWrapper.js +1048 -0
  31. package/dist/src/LoggingProviderWrapper.js.map +1 -0
  32. package/dist/src/ProviderContentGenerator.d.ts +22 -0
  33. package/dist/src/ProviderContentGenerator.js +54 -0
  34. package/dist/src/ProviderContentGenerator.js.map +1 -0
  35. package/dist/src/ProviderManager.d.ts +218 -0
  36. package/dist/src/ProviderManager.js +1293 -0
  37. package/dist/src/ProviderManager.js.map +1 -0
  38. package/dist/src/RetryOrchestrator.d.ts +157 -0
  39. package/dist/src/RetryOrchestrator.js +550 -0
  40. package/dist/src/RetryOrchestrator.js.map +1 -0
  41. package/dist/src/anthropic/AnthropicApiExecution.d.ts +65 -0
  42. package/dist/src/anthropic/AnthropicApiExecution.js +109 -0
  43. package/dist/src/anthropic/AnthropicApiExecution.js.map +1 -0
  44. package/dist/src/anthropic/AnthropicMessageNormalizer.d.ts +83 -0
  45. package/dist/src/anthropic/AnthropicMessageNormalizer.js +451 -0
  46. package/dist/src/anthropic/AnthropicMessageNormalizer.js.map +1 -0
  47. package/dist/src/anthropic/AnthropicMessageValidator.d.ts +36 -0
  48. package/dist/src/anthropic/AnthropicMessageValidator.js +284 -0
  49. package/dist/src/anthropic/AnthropicMessageValidator.js.map +1 -0
  50. package/dist/src/anthropic/AnthropicModelData.d.ts +46 -0
  51. package/dist/src/anthropic/AnthropicModelData.js +232 -0
  52. package/dist/src/anthropic/AnthropicModelData.js.map +1 -0
  53. package/dist/src/anthropic/AnthropicProvider.d.ts +121 -0
  54. package/dist/src/anthropic/AnthropicProvider.js +489 -0
  55. package/dist/src/anthropic/AnthropicProvider.js.map +1 -0
  56. package/dist/src/anthropic/AnthropicRateLimitHandler.d.ts +58 -0
  57. package/dist/src/anthropic/AnthropicRateLimitHandler.js +180 -0
  58. package/dist/src/anthropic/AnthropicRateLimitHandler.js.map +1 -0
  59. package/dist/src/anthropic/AnthropicRequestBuilder.d.ts +101 -0
  60. package/dist/src/anthropic/AnthropicRequestBuilder.js +225 -0
  61. package/dist/src/anthropic/AnthropicRequestBuilder.js.map +1 -0
  62. package/dist/src/anthropic/AnthropicRequestPreparation.d.ts +51 -0
  63. package/dist/src/anthropic/AnthropicRequestPreparation.js +398 -0
  64. package/dist/src/anthropic/AnthropicRequestPreparation.js.map +1 -0
  65. package/dist/src/anthropic/AnthropicResponseParser.d.ts +23 -0
  66. package/dist/src/anthropic/AnthropicResponseParser.js +104 -0
  67. package/dist/src/anthropic/AnthropicResponseParser.js.map +1 -0
  68. package/dist/src/anthropic/AnthropicStreamProcessor.d.ts +35 -0
  69. package/dist/src/anthropic/AnthropicStreamProcessor.js +321 -0
  70. package/dist/src/anthropic/AnthropicStreamProcessor.js.map +1 -0
  71. package/dist/src/anthropic/schemaConverter.d.ts +63 -0
  72. package/dist/src/anthropic/schemaConverter.js +202 -0
  73. package/dist/src/anthropic/schemaConverter.js.map +1 -0
  74. package/dist/src/anthropic/test-utils/anthropicTestUtils.d.ts +38 -0
  75. package/dist/src/anthropic/test-utils/anthropicTestUtils.js +2 -0
  76. package/dist/src/anthropic/test-utils/anthropicTestUtils.js.map +1 -0
  77. package/dist/src/anthropic/usageInfo.d.ts +211 -0
  78. package/dist/src/anthropic/usageInfo.js +156 -0
  79. package/dist/src/anthropic/usageInfo.js.map +1 -0
  80. package/dist/src/apiKeyQuotaResolver.d.ts +41 -0
  81. package/dist/src/apiKeyQuotaResolver.js +137 -0
  82. package/dist/src/apiKeyQuotaResolver.js.map +1 -0
  83. package/dist/src/chutes/usageInfo.d.ts +116 -0
  84. package/dist/src/chutes/usageInfo.js +169 -0
  85. package/dist/src/chutes/usageInfo.js.map +1 -0
  86. package/dist/src/customHeaders.d.ts +8 -0
  87. package/dist/src/customHeaders.js +35 -0
  88. package/dist/src/customHeaders.js.map +1 -0
  89. package/dist/src/errors.d.ts +223 -0
  90. package/dist/src/errors.js +276 -0
  91. package/dist/src/errors.js.map +1 -0
  92. package/dist/src/fake/FakeProvider.d.ts +56 -0
  93. package/dist/src/fake/FakeProvider.js +214 -0
  94. package/dist/src/fake/FakeProvider.js.map +1 -0
  95. package/dist/src/gemini/GeminiProvider.d.ts +286 -0
  96. package/dist/src/gemini/GeminiProvider.js +1362 -0
  97. package/dist/src/gemini/GeminiProvider.js.map +1 -0
  98. package/dist/src/gemini/thoughtSignatures.d.ts +51 -0
  99. package/dist/src/gemini/thoughtSignatures.js +217 -0
  100. package/dist/src/gemini/thoughtSignatures.js.map +1 -0
  101. package/dist/src/gemini/usageInfo.d.ts +82 -0
  102. package/dist/src/gemini/usageInfo.js +116 -0
  103. package/dist/src/gemini/usageInfo.js.map +1 -0
  104. package/dist/src/index.d.ts +56 -0
  105. package/dist/src/index.js +41 -0
  106. package/dist/src/index.js.map +1 -0
  107. package/dist/src/integration/TEST_INSTRUCTIONS.md +197 -0
  108. package/dist/src/kimi/usageInfo.d.ts +304 -0
  109. package/dist/src/kimi/usageInfo.js +295 -0
  110. package/dist/src/kimi/usageInfo.js.map +1 -0
  111. package/dist/src/logging/ProviderContentExtractor.d.ts +33 -0
  112. package/dist/src/logging/ProviderContentExtractor.js +254 -0
  113. package/dist/src/logging/ProviderContentExtractor.js.map +1 -0
  114. package/dist/src/logging/ProviderPerformanceTracker.d.ts +57 -0
  115. package/dist/src/logging/ProviderPerformanceTracker.js +170 -0
  116. package/dist/src/logging/ProviderPerformanceTracker.js.map +1 -0
  117. package/dist/src/openai/ConversationCache.d.ts +22 -0
  118. package/dist/src/openai/ConversationCache.js +170 -0
  119. package/dist/src/openai/ConversationCache.js.map +1 -0
  120. package/dist/src/openai/IChatGenerateParams.d.ts +16 -0
  121. package/dist/src/openai/IChatGenerateParams.js +2 -0
  122. package/dist/src/openai/IChatGenerateParams.js.map +1 -0
  123. package/dist/src/openai/OpenAIApiExecution.d.ts +37 -0
  124. package/dist/src/openai/OpenAIApiExecution.js +157 -0
  125. package/dist/src/openai/OpenAIApiExecution.js.map +1 -0
  126. package/dist/src/openai/OpenAIClientFactory.d.ts +68 -0
  127. package/dist/src/openai/OpenAIClientFactory.js +182 -0
  128. package/dist/src/openai/OpenAIClientFactory.js.map +1 -0
  129. package/dist/src/openai/OpenAINonStreamHandler.d.ts +29 -0
  130. package/dist/src/openai/OpenAINonStreamHandler.js +286 -0
  131. package/dist/src/openai/OpenAINonStreamHandler.js.map +1 -0
  132. package/dist/src/openai/OpenAIProvider.d.ts +130 -0
  133. package/dist/src/openai/OpenAIProvider.js +541 -0
  134. package/dist/src/openai/OpenAIProvider.js.map +1 -0
  135. package/dist/src/openai/OpenAIRequestBuilder.d.ts +71 -0
  136. package/dist/src/openai/OpenAIRequestBuilder.js +412 -0
  137. package/dist/src/openai/OpenAIRequestBuilder.js.map +1 -0
  138. package/dist/src/openai/OpenAIRequestPreparation.d.ts +33 -0
  139. package/dist/src/openai/OpenAIRequestPreparation.js +181 -0
  140. package/dist/src/openai/OpenAIRequestPreparation.js.map +1 -0
  141. package/dist/src/openai/OpenAIResponseParser.d.ts +62 -0
  142. package/dist/src/openai/OpenAIResponseParser.js +226 -0
  143. package/dist/src/openai/OpenAIResponseParser.js.map +1 -0
  144. package/dist/src/openai/OpenAIStreamProcessor.d.ts +38 -0
  145. package/dist/src/openai/OpenAIStreamProcessor.js +520 -0
  146. package/dist/src/openai/OpenAIStreamProcessor.js.map +1 -0
  147. package/dist/src/openai/OpenAIStreamProcessorState.d.ts +119 -0
  148. package/dist/src/openai/OpenAIStreamProcessorState.js +324 -0
  149. package/dist/src/openai/OpenAIStreamProcessorState.js.map +1 -0
  150. package/dist/src/openai/RESPONSES_API_MODELS.d.ts +2 -0
  151. package/dist/src/openai/RESPONSES_API_MODELS.js +15 -0
  152. package/dist/src/openai/RESPONSES_API_MODELS.js.map +1 -0
  153. package/dist/src/openai/ToolCallCollector.d.ts +79 -0
  154. package/dist/src/openai/ToolCallCollector.js +152 -0
  155. package/dist/src/openai/ToolCallCollector.js.map +1 -0
  156. package/dist/src/openai/ToolCallNormalizer.d.ts +64 -0
  157. package/dist/src/openai/ToolCallNormalizer.js +115 -0
  158. package/dist/src/openai/ToolCallNormalizer.js.map +1 -0
  159. package/dist/src/openai/ToolCallPipeline.d.ts +76 -0
  160. package/dist/src/openai/ToolCallPipeline.js +182 -0
  161. package/dist/src/openai/ToolCallPipeline.js.map +1 -0
  162. package/dist/src/openai/ToolNameValidator.d.ts +38 -0
  163. package/dist/src/openai/ToolNameValidator.js +88 -0
  164. package/dist/src/openai/ToolNameValidator.js.map +1 -0
  165. package/dist/src/openai/buildResponsesRequest.d.ts +77 -0
  166. package/dist/src/openai/buildResponsesRequest.js +220 -0
  167. package/dist/src/openai/buildResponsesRequest.js.map +1 -0
  168. package/dist/src/openai/codexUsageInfo.d.ts +388 -0
  169. package/dist/src/openai/codexUsageInfo.js +219 -0
  170. package/dist/src/openai/codexUsageInfo.js.map +1 -0
  171. package/dist/src/openai/docs/accessing-provider-info.md +172 -0
  172. package/dist/src/openai/docs/params-mapping.md +91 -0
  173. package/dist/src/openai/docs/responses-api-tool-calls.md +96 -0
  174. package/dist/src/openai/estimateRemoteTokens.d.ts +26 -0
  175. package/dist/src/openai/estimateRemoteTokens.js +92 -0
  176. package/dist/src/openai/estimateRemoteTokens.js.map +1 -0
  177. package/dist/src/openai/finishReasonMapping.d.ts +22 -0
  178. package/dist/src/openai/finishReasonMapping.js +51 -0
  179. package/dist/src/openai/finishReasonMapping.js.map +1 -0
  180. package/dist/src/openai/getOpenAIProviderInfo.d.ts +46 -0
  181. package/dist/src/openai/getOpenAIProviderInfo.js +115 -0
  182. package/dist/src/openai/getOpenAIProviderInfo.js.map +1 -0
  183. package/dist/src/openai/openaiRequestParams.d.ts +7 -0
  184. package/dist/src/openai/openaiRequestParams.js +113 -0
  185. package/dist/src/openai/openaiRequestParams.js.map +1 -0
  186. package/dist/src/openai/parseResponsesStream.d.ts +21 -0
  187. package/dist/src/openai/parseResponsesStream.js +486 -0
  188. package/dist/src/openai/parseResponsesStream.js.map +1 -0
  189. package/dist/src/openai/schemaConverter.d.ts +67 -0
  190. package/dist/src/openai/schemaConverter.js +201 -0
  191. package/dist/src/openai/schemaConverter.js.map +1 -0
  192. package/dist/src/openai/syntheticToolResponses.d.ts +20 -0
  193. package/dist/src/openai/syntheticToolResponses.js +218 -0
  194. package/dist/src/openai/syntheticToolResponses.js.map +1 -0
  195. package/dist/src/openai/test-types.d.ts +37 -0
  196. package/dist/src/openai/test-types.js +3 -0
  197. package/dist/src/openai/test-types.js.map +1 -0
  198. package/dist/src/openai/toolNameUtils.d.ts +57 -0
  199. package/dist/src/openai/toolNameUtils.js +189 -0
  200. package/dist/src/openai/toolNameUtils.js.map +1 -0
  201. package/dist/src/openai-responses/CODEX_MODELS.d.ts +23 -0
  202. package/dist/src/openai-responses/CODEX_MODELS.js +73 -0
  203. package/dist/src/openai-responses/CODEX_MODELS.js.map +1 -0
  204. package/dist/src/openai-responses/OpenAIResponsesInputBuilder.d.ts +24 -0
  205. package/dist/src/openai-responses/OpenAIResponsesInputBuilder.js +158 -0
  206. package/dist/src/openai-responses/OpenAIResponsesInputBuilder.js.map +1 -0
  207. package/dist/src/openai-responses/OpenAIResponsesProvider.d.ts +21 -0
  208. package/dist/src/openai-responses/OpenAIResponsesProvider.js +22 -0
  209. package/dist/src/openai-responses/OpenAIResponsesProvider.js.map +1 -0
  210. package/dist/src/openai-responses/OpenAIResponsesProviderBase.d.ts +120 -0
  211. package/dist/src/openai-responses/OpenAIResponsesProviderBase.js +302 -0
  212. package/dist/src/openai-responses/OpenAIResponsesProviderBase.js.map +1 -0
  213. package/dist/src/openai-responses/OpenAIResponsesProviderCore.d.ts +48 -0
  214. package/dist/src/openai-responses/OpenAIResponsesProviderCore.js +378 -0
  215. package/dist/src/openai-responses/OpenAIResponsesProviderCore.js.map +1 -0
  216. package/dist/src/openai-responses/OpenAIResponsesTypes.d.ts +69 -0
  217. package/dist/src/openai-responses/OpenAIResponsesTypes.js +17 -0
  218. package/dist/src/openai-responses/OpenAIResponsesTypes.js.map +1 -0
  219. package/dist/src/openai-responses/buildResponsesInputFromContent.d.ts +43 -0
  220. package/dist/src/openai-responses/buildResponsesInputFromContent.js +136 -0
  221. package/dist/src/openai-responses/buildResponsesInputFromContent.js.map +1 -0
  222. package/dist/src/openai-responses/index.d.ts +1 -0
  223. package/dist/src/openai-responses/index.js +2 -0
  224. package/dist/src/openai-responses/index.js.map +1 -0
  225. package/dist/src/openai-responses/schemaConverter.d.ts +64 -0
  226. package/dist/src/openai-responses/schemaConverter.js +201 -0
  227. package/dist/src/openai-responses/schemaConverter.js.map +1 -0
  228. package/dist/src/openai-vercel/OpenAIVercelProvider.d.ts +147 -0
  229. package/dist/src/openai-vercel/OpenAIVercelProvider.js +1303 -0
  230. package/dist/src/openai-vercel/OpenAIVercelProvider.js.map +1 -0
  231. package/dist/src/openai-vercel/errors.d.ts +46 -0
  232. package/dist/src/openai-vercel/errors.js +143 -0
  233. package/dist/src/openai-vercel/errors.js.map +1 -0
  234. package/dist/src/openai-vercel/index.d.ts +21 -0
  235. package/dist/src/openai-vercel/index.js +22 -0
  236. package/dist/src/openai-vercel/index.js.map +1 -0
  237. package/dist/src/openai-vercel/messageConversion.d.ts +30 -0
  238. package/dist/src/openai-vercel/messageConversion.js +406 -0
  239. package/dist/src/openai-vercel/messageConversion.js.map +1 -0
  240. package/dist/src/openai-vercel/schemaConverter.d.ts +66 -0
  241. package/dist/src/openai-vercel/schemaConverter.js +201 -0
  242. package/dist/src/openai-vercel/schemaConverter.js.map +1 -0
  243. package/dist/src/providerConfigKeys.d.ts +8 -0
  244. package/dist/src/providerConfigKeys.js +10 -0
  245. package/dist/src/providerConfigKeys.js.map +1 -0
  246. package/dist/src/reasoning/reasoningUtils.d.ts +68 -0
  247. package/dist/src/reasoning/reasoningUtils.js +277 -0
  248. package/dist/src/reasoning/reasoningUtils.js.map +1 -0
  249. package/dist/src/synthetic/usageInfo.d.ts +303 -0
  250. package/dist/src/synthetic/usageInfo.js +142 -0
  251. package/dist/src/synthetic/usageInfo.js.map +1 -0
  252. package/dist/src/test-utils/providerTestConfig.d.ts +21 -0
  253. package/dist/src/test-utils/providerTestConfig.js +23 -0
  254. package/dist/src/test-utils/providerTestConfig.js.map +1 -0
  255. package/dist/src/tokenizers/AnthropicTokenizer.d.ts +19 -0
  256. package/dist/src/tokenizers/AnthropicTokenizer.js +37 -0
  257. package/dist/src/tokenizers/AnthropicTokenizer.js.map +1 -0
  258. package/dist/src/tokenizers/ITokenizer.d.ts +18 -0
  259. package/dist/src/tokenizers/ITokenizer.js +17 -0
  260. package/dist/src/tokenizers/ITokenizer.js.map +1 -0
  261. package/dist/src/tokenizers/OpenAITokenizer.d.ts +26 -0
  262. package/dist/src/tokenizers/OpenAITokenizer.js +64 -0
  263. package/dist/src/tokenizers/OpenAITokenizer.js.map +1 -0
  264. package/dist/src/types/IProviderConfig.d.ts +113 -0
  265. package/dist/src/types/IProviderConfig.js +17 -0
  266. package/dist/src/types/IProviderConfig.js.map +1 -0
  267. package/dist/src/types/providerRuntime.d.ts +17 -0
  268. package/dist/src/types/providerRuntime.js +7 -0
  269. package/dist/src/types/providerRuntime.js.map +1 -0
  270. package/dist/src/types.d.ts +78 -0
  271. package/dist/src/types.js +8 -0
  272. package/dist/src/types.js.map +1 -0
  273. package/dist/src/utils/authToken.d.ts +12 -0
  274. package/dist/src/utils/authToken.js +17 -0
  275. package/dist/src/utils/authToken.js.map +1 -0
  276. package/dist/src/utils/cacheMetricsExtractor.d.ts +6 -0
  277. package/dist/src/utils/cacheMetricsExtractor.js +38 -0
  278. package/dist/src/utils/cacheMetricsExtractor.js.map +1 -0
  279. package/dist/src/utils/containerSandbox.d.ts +6 -0
  280. package/dist/src/utils/containerSandbox.js +13 -0
  281. package/dist/src/utils/containerSandbox.js.map +1 -0
  282. package/dist/src/utils/contentPreview.d.ts +22 -0
  283. package/dist/src/utils/contentPreview.js +64 -0
  284. package/dist/src/utils/contentPreview.js.map +1 -0
  285. package/dist/src/utils/dumpContext.d.ts +36 -0
  286. package/dist/src/utils/dumpContext.js +90 -0
  287. package/dist/src/utils/dumpContext.js.map +1 -0
  288. package/dist/src/utils/dumpSDKContext.d.ts +13 -0
  289. package/dist/src/utils/dumpSDKContext.js +39 -0
  290. package/dist/src/utils/dumpSDKContext.js.map +1 -0
  291. package/dist/src/utils/localEndpoint.d.ts +39 -0
  292. package/dist/src/utils/localEndpoint.js +123 -0
  293. package/dist/src/utils/localEndpoint.js.map +1 -0
  294. package/dist/src/utils/mediaUtils.d.ts +24 -0
  295. package/dist/src/utils/mediaUtils.js +64 -0
  296. package/dist/src/utils/mediaUtils.js.map +1 -0
  297. package/dist/src/utils/qwenEndpoint.d.ts +22 -0
  298. package/dist/src/utils/qwenEndpoint.js +55 -0
  299. package/dist/src/utils/qwenEndpoint.js.map +1 -0
  300. package/dist/src/utils/retryStrategy.d.ts +28 -0
  301. package/dist/src/utils/retryStrategy.js +81 -0
  302. package/dist/src/utils/retryStrategy.js.map +1 -0
  303. package/dist/src/utils/textSanitizer.d.ts +25 -0
  304. package/dist/src/utils/textSanitizer.js +49 -0
  305. package/dist/src/utils/textSanitizer.js.map +1 -0
  306. package/dist/src/utils/thinkingExtraction.d.ts +30 -0
  307. package/dist/src/utils/thinkingExtraction.js +70 -0
  308. package/dist/src/utils/thinkingExtraction.js.map +1 -0
  309. package/dist/src/utils/toolFormatDetection.d.ts +61 -0
  310. package/dist/src/utils/toolFormatDetection.js +107 -0
  311. package/dist/src/utils/toolFormatDetection.js.map +1 -0
  312. package/dist/src/utils/toolNameNormalization.d.ts +25 -0
  313. package/dist/src/utils/toolNameNormalization.js +34 -0
  314. package/dist/src/utils/toolNameNormalization.js.map +1 -0
  315. package/dist/src/utils/toolResponsePayload.d.ts +25 -0
  316. package/dist/src/utils/toolResponsePayload.js +185 -0
  317. package/dist/src/utils/toolResponsePayload.js.map +1 -0
  318. package/dist/src/utils/userMemory.d.ts +8 -0
  319. package/dist/src/utils/userMemory.js +34 -0
  320. package/dist/src/utils/userMemory.js.map +1 -0
  321. package/dist/src/zai/usageInfo.d.ts +669 -0
  322. package/dist/src/zai/usageInfo.js +177 -0
  323. package/dist/src/zai/usageInfo.js.map +1 -0
  324. package/package.json +68 -0
File without changes
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @plan:PLAN-20260603-ISSUE1584.P06
3
+ * @requirement:REQ-PKG-001
4
+ * @pseudocode lines 13-14
5
+ */
6
+ /**
7
+ * @license
8
+ * Copyright 2025 Google LLC
9
+ * SPDX-License-Identifier: Apache-2.0
10
+ */
11
+ export * from './src/index.js';
package/dist/index.js ADDED
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @plan:PLAN-20260603-ISSUE1584.P06
3
+ * @requirement:REQ-PKG-001
4
+ * @pseudocode lines 13-14
5
+ */
6
+ /**
7
+ * @license
8
+ * Copyright 2025 Google LLC
9
+ * SPDX-License-Identifier: Apache-2.0
10
+ */
11
+ export * from './src/index.js';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;GAIG;AAEH,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,297 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Vybestack LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { type IProvider, type GenerateChatOptions, type ProviderToolset } from './IProvider.js';
7
+ import { type IModel } from './IModel.js';
8
+ import { type IContent } from '@vybestack/llxprt-code-core/services/history/IContent.js';
9
+ import { AuthPrecedenceResolver, type OAuthManager } from '@vybestack/llxprt-code-core/auth/precedence.js';
10
+ import type { Config } from '@vybestack/llxprt-code-core/config/config.js';
11
+ import { type IProviderConfig } from './types/IProviderConfig.js';
12
+ import type { ProviderRuntimeContext } from '@vybestack/llxprt-code-core/runtime/providerRuntimeContext.js';
13
+ import type { RuntimeInvocationContext } from '@vybestack/llxprt-code-core/runtime/RuntimeInvocationContext.js';
14
+ import { SettingsService } from '@vybestack/llxprt-code-core/settings/SettingsService.js';
15
+ import type { ProviderTelemetryContext, ResolvedAuthToken, UserMemoryInput } from './types/providerRuntime.js';
16
+ export interface BaseProviderConfig {
17
+ name: string;
18
+ apiKey?: string;
19
+ baseURL?: string;
20
+ envKeyNames?: string[];
21
+ isOAuthEnabled?: boolean;
22
+ oauthProvider?: string;
23
+ oauthManager?: OAuthManager;
24
+ supportsOAuth?: boolean;
25
+ }
26
+ export interface NormalizedGenerateChatOptions extends GenerateChatOptions {
27
+ settings: SettingsService;
28
+ config?: Config;
29
+ userMemory?: UserMemoryInput;
30
+ runtime?: ProviderRuntimeContext;
31
+ invocation: RuntimeInvocationContext;
32
+ tools?: ProviderToolset;
33
+ metadata: Record<string, unknown>;
34
+ resolved: {
35
+ model: string;
36
+ baseURL?: string;
37
+ authToken: ResolvedAuthToken;
38
+ telemetry?: ProviderTelemetryContext;
39
+ temperature?: number;
40
+ maxTokens?: number;
41
+ streaming?: boolean;
42
+ };
43
+ }
44
+ /**
45
+ * Abstract base provider class that implements authentication precedence logic
46
+ * This class provides lazy OAuth triggering and proper authentication precedence
47
+ */
48
+ export declare abstract class BaseProvider implements IProvider {
49
+ readonly name: string;
50
+ protected authResolver: AuthPrecedenceResolver;
51
+ protected baseProviderConfig: BaseProviderConfig;
52
+ protected providerConfig?: IProviderConfig;
53
+ /**
54
+ * @plan PLAN-20250218-STATELESSPROVIDER.P05
55
+ * @requirement REQ-SP-001
56
+ * @pseudocode provider-invocation.md lines 8-15
57
+ */
58
+ private defaultSettingsService;
59
+ private defaultConfig?;
60
+ private readonly activeCallContext;
61
+ protected throttleTracker?: (waitTimeMs: number) => void;
62
+ protected get globalConfig(): Config | undefined;
63
+ protected set globalConfig(config: Config | undefined);
64
+ constructor(config: BaseProviderConfig, providerConfig?: IProviderConfig, globalConfig?: Config, settingsService?: SettingsService);
65
+ /**
66
+ * @plan PLAN-20251018-STATELESSPROVIDER2.P06
67
+ * @plan:PLAN-20251018-STATELESSPROVIDER2.P06
68
+ * @requirement REQ-SP2-001
69
+ * @pseudocode base-provider-call-contract.md lines 1-2
70
+ */
71
+ setRuntimeSettingsService(settingsService: SettingsService | null | undefined): void;
72
+ /**
73
+ * @plan PLAN-20251018-STATELESSPROVIDER2.P06
74
+ * @plan:PLAN-20251023-STATELESS-HARDENING.P05
75
+ * @requirement REQ-SP2-001
76
+ * @requirement:REQ-SP4-001
77
+ * @pseudocode base-provider-call-contract.md lines 1-3
78
+ */
79
+ protected resolveSettingsService(): SettingsService;
80
+ /**
81
+ * Set throttle tracking callback (used by LoggingProviderWrapper)
82
+ */
83
+ setThrottleTracker(tracker: (waitTimeMs: number) => void): void;
84
+ /**
85
+ * @plan PLAN-20251018-STATELESSPROVIDER2.P06
86
+ * @requirement REQ-SP2-001
87
+ * @pseudocode base-provider-call-contract.md lines 2-3
88
+ * Gets the base URL with proper precedence:
89
+ * 1. Ephemeral settings (highest priority - from /baseurl or profile)
90
+ * 2. Provider-specific settings in SettingsService
91
+ * 3. Provider config (from IProviderConfig)
92
+ * 4. Base provider config (initial constructor value)
93
+ * 5. undefined (use provider default)
94
+ */
95
+ protected getBaseURL(): string | undefined;
96
+ /**
97
+ * @plan PLAN-20251018-STATELESSPROVIDER2.P06
98
+ * @requirement REQ-SP2-001
99
+ * @pseudocode base-provider-call-contract.md lines 2-3
100
+ * Gets the current model with proper precedence:
101
+ * 1. Ephemeral settings (highest priority)
102
+ * 2. Provider-specific settings in SettingsService
103
+ * 3. Provider config
104
+ * 4. Default model
105
+ */
106
+ protected getModel(): string;
107
+ private computeBaseURL;
108
+ private computeModel;
109
+ /**
110
+ * @plan PLAN-20251018-STATELESSPROVIDER2.P06
111
+ * @requirement REQ-SP2-001
112
+ * @pseudocode base-provider-call-contract.md lines 1-3
113
+ * Gets authentication token using the precedence chain
114
+ * This method implements lazy OAuth triggering - only triggers OAuth when actually making API calls
115
+ * Returns empty string if no auth is available (for local/self-hosted endpoints)
116
+ */
117
+ protected getAuthToken(): Promise<string>;
118
+ /**
119
+ * Get auth token for prompt send - CAN trigger OAuth if needed
120
+ * Use this method ONLY when actually sending a prompt to the API
121
+ */
122
+ protected getAuthTokenForPrompt(): Promise<string>;
123
+ /**
124
+ * Checks if OAuth is enabled for this provider
125
+ */
126
+ protected isOAuthEnabled(): boolean;
127
+ /**
128
+ * Abstract method to determine if this provider supports OAuth
129
+ * Must be implemented by concrete providers
130
+ */
131
+ protected abstract supportsOAuth(): boolean;
132
+ /**
133
+ * Classify whether a given auth token is an OAuth token.
134
+ * Default implementation always returns false; providers that support
135
+ * token-prefix-based OAuth detection (e.g., Anthropic) should override.
136
+ *
137
+ * @param _authToken - The resolved auth token string
138
+ * @returns true if the token should be treated as an OAuth token
139
+ */
140
+ protected classifyOAuthToken(_authToken: string): boolean;
141
+ /**
142
+ * @plan PLAN-20251018-STATELESSPROVIDER2.P06
143
+ * @requirement REQ-SP2-001
144
+ * @pseudocode base-provider-call-contract.md lines 1-3
145
+ * Checks if authentication is available without triggering OAuth
146
+ */
147
+ hasNonOAuthAuthentication(): Promise<boolean>;
148
+ /**
149
+ * @plan PLAN-20251018-STATELESSPROVIDER2.P06
150
+ * @requirement REQ-SP2-001
151
+ * @pseudocode base-provider-call-contract.md lines 1-3
152
+ * Checks if OAuth is the only available authentication method
153
+ */
154
+ isOAuthOnlyAvailable(): Promise<boolean>;
155
+ /**
156
+ * @plan PLAN-20251018-STATELESSPROVIDER2.P06
157
+ * @requirement REQ-SP2-001
158
+ * @pseudocode base-provider-call-contract.md lines 1-3
159
+ * Gets the current authentication method name for debugging
160
+ */
161
+ getAuthMethodName(): Promise<string | null>;
162
+ /**
163
+ * Clears authentication (used when removing keys/keyfiles)
164
+ */
165
+ clearAuth?(): void;
166
+ /**
167
+ * Updates OAuth configuration
168
+ */
169
+ protected updateOAuthConfig(isEnabled: boolean, provider?: string, manager?: OAuthManager): void;
170
+ /**
171
+ * Clears the authentication token cache.
172
+ * This ensures that after logout, fresh tokens are fetched on the next
173
+ * authentication attempt without requiring a provider switch.
174
+ *
175
+ * @plan PLAN-20251023-STATELESS-HARDENING
176
+ * @requirement Issue #975 - OAuth logout cache invalidation
177
+ */
178
+ clearAuthCache(): void;
179
+ /**
180
+ * Checks if the provider is authenticated using any available method
181
+ */
182
+ isAuthenticated(): Promise<boolean>;
183
+ abstract getModels(): Promise<IModel[]>;
184
+ abstract getDefaultModel(): string;
185
+ /**
186
+ * @plan PLAN-20250218-STATELESSPROVIDER.P04
187
+ * @requirement REQ-SP-001
188
+ * @pseudocode base-provider.md lines 4-15
189
+ */
190
+ generateChatCompletion(options: GenerateChatOptions): AsyncIterableIterator<IContent>;
191
+ generateChatCompletion(contents: IContent[], tools?: ProviderToolset): AsyncIterableIterator<IContent>;
192
+ /**
193
+ * @plan PLAN-20250218-STATELESSPROVIDER.P04
194
+ * @requirement REQ-SP-001
195
+ * @pseudocode base-provider.md lines 7-15
196
+ */
197
+ protected abstract generateChatCompletionWithOptions(options: NormalizedGenerateChatOptions): AsyncIterableIterator<IContent>;
198
+ /**
199
+ * @plan PLAN-20251018-STATELESSPROVIDER2.P06
200
+ * @requirement REQ-SP2-001
201
+ * @pseudocode base-provider-call-contract.md lines 3-5
202
+ */
203
+ private invokeWithNormalizedOptions;
204
+ /**
205
+ * @plan PLAN-20251018-STATELESSPROVIDER2.P06
206
+ * @plan:PLAN-20251023-STATELESS-HARDENING.P05
207
+ * @requirement REQ-SP2-001
208
+ * @requirement:REQ-SP4-001
209
+ * @pseudocode base-provider-call-contract.md lines 1-3
210
+ */
211
+ private normalizeGenerateChatOptions;
212
+ private buildEphemeralsSnapshot;
213
+ /**
214
+ * @plan:PLAN-20251023-STATELESS-HARDENING.P05
215
+ * @requirement:REQ-SP4-001
216
+ * @pseudocode base-provider-fallback-removal.md lines 11-14
217
+ */
218
+ protected assertRuntimeContext(input: {
219
+ providerKey: string;
220
+ settings?: SettingsService | null;
221
+ config?: Config | null;
222
+ runtime?: ProviderRuntimeContext;
223
+ metadata?: Record<string, unknown>;
224
+ resolved?: NormalizedGenerateChatOptions['resolved'];
225
+ stage: string;
226
+ }): {
227
+ runtime: ProviderRuntimeContext;
228
+ metadata: Record<string, unknown>;
229
+ };
230
+ getCurrentModel?(): string;
231
+ getToolFormat?(): string;
232
+ isPaidMode?(): boolean;
233
+ clearState?(): void;
234
+ setConfig?(config: unknown): void;
235
+ getServerTools(): string[];
236
+ invokeServerTool(toolName: string, _params: unknown, _config?: unknown, _signal?: AbortSignal): Promise<unknown>;
237
+ getModelParams?(): Record<string, unknown> | undefined;
238
+ /**
239
+ * Get setting value from SettingsService
240
+ */
241
+ protected getProviderSetting<T>(key: keyof ProviderSettings, fallback?: T): Promise<T | undefined>;
242
+ /**
243
+ * Set setting value in SettingsService
244
+ */
245
+ protected setProviderSetting<T>(key: keyof ProviderSettings, value: T): Promise<void>;
246
+ /**
247
+ * Get API key from SettingsService if available
248
+ */
249
+ protected getApiKeyFromSettings(): Promise<string | undefined>;
250
+ /**
251
+ * Set API key in SettingsService if available
252
+ */
253
+ protected setApiKeyInSettings(apiKey: string): Promise<void>;
254
+ /**
255
+ * Get model from SettingsService if available
256
+ */
257
+ protected getModelFromSettings(): Promise<string | undefined>;
258
+ /**
259
+ * Set model in SettingsService if available
260
+ */
261
+ protected setModelInSettings(model: string): Promise<void>;
262
+ /**
263
+ * Get base URL from SettingsService if available
264
+ */
265
+ protected getBaseUrlFromSettings(): Promise<string | undefined>;
266
+ /**
267
+ * Set base URL in SettingsService if available
268
+ */
269
+ protected setBaseUrlInSettings(baseUrl?: string): Promise<void>;
270
+ /**
271
+ * Get model parameters from SettingsService
272
+ */
273
+ protected getModelParamsFromSettings(): Promise<Record<string, unknown> | undefined>;
274
+ /**
275
+ * Set model parameters in SettingsService
276
+ */
277
+ protected setModelParamsInSettings(params: Record<string, unknown> | undefined): Promise<void>;
278
+ /**
279
+ * Get custom headers from provider configuration and ephemeral settings.
280
+ *
281
+ * This merges:
282
+ * - Provider config `customHeaders`
283
+ * - Ephemeral `custom-headers`
284
+ * - Ephemeral `user-agent` (mapped into a `User-Agent` header)
285
+ * - Invocation `customHeaders` (from separated settings)
286
+ */
287
+ protected getCustomHeaders(options?: NormalizedGenerateChatOptions): Record<string, string> | undefined;
288
+ }
289
+ export interface ProviderSettings {
290
+ enabled: boolean;
291
+ apiKey?: string;
292
+ baseUrl?: string;
293
+ model?: string;
294
+ maxTokens?: number;
295
+ temperature?: number;
296
+ [key: string]: unknown;
297
+ }