@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.
- package/dist/.last_build +0 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/src/BaseProvider.d.ts +297 -0
- package/dist/src/BaseProvider.js +751 -0
- package/dist/src/BaseProvider.js.map +1 -0
- package/dist/src/BaseProviderNormalization.d.ts +39 -0
- package/dist/src/BaseProviderNormalization.js +164 -0
- package/dist/src/BaseProviderNormalization.js.map +1 -0
- package/dist/src/ContentGeneratorRole.d.ts +14 -0
- package/dist/src/ContentGeneratorRole.js +16 -0
- package/dist/src/ContentGeneratorRole.js.map +1 -0
- package/dist/src/IModel.d.ts +23 -0
- package/dist/src/IModel.js +17 -0
- package/dist/src/IModel.js.map +1 -0
- package/dist/src/IProvider.d.ts +96 -0
- package/dist/src/IProvider.js +17 -0
- package/dist/src/IProvider.js.map +1 -0
- package/dist/src/IProviderManager.d.ts +94 -0
- package/dist/src/IProviderManager.js +7 -0
- package/dist/src/IProviderManager.js.map +1 -0
- package/dist/src/ITool.d.ts +23 -0
- package/dist/src/ITool.js +17 -0
- package/dist/src/ITool.js.map +1 -0
- package/dist/src/LoadBalancingProvider.d.ts +334 -0
- package/dist/src/LoadBalancingProvider.js +916 -0
- package/dist/src/LoadBalancingProvider.js.map +1 -0
- package/dist/src/LoggingProviderWrapper.d.ts +187 -0
- package/dist/src/LoggingProviderWrapper.js +1048 -0
- package/dist/src/LoggingProviderWrapper.js.map +1 -0
- package/dist/src/ProviderContentGenerator.d.ts +22 -0
- package/dist/src/ProviderContentGenerator.js +54 -0
- package/dist/src/ProviderContentGenerator.js.map +1 -0
- package/dist/src/ProviderManager.d.ts +218 -0
- package/dist/src/ProviderManager.js +1293 -0
- package/dist/src/ProviderManager.js.map +1 -0
- package/dist/src/RetryOrchestrator.d.ts +157 -0
- package/dist/src/RetryOrchestrator.js +550 -0
- package/dist/src/RetryOrchestrator.js.map +1 -0
- package/dist/src/anthropic/AnthropicApiExecution.d.ts +65 -0
- package/dist/src/anthropic/AnthropicApiExecution.js +109 -0
- package/dist/src/anthropic/AnthropicApiExecution.js.map +1 -0
- package/dist/src/anthropic/AnthropicMessageNormalizer.d.ts +83 -0
- package/dist/src/anthropic/AnthropicMessageNormalizer.js +451 -0
- package/dist/src/anthropic/AnthropicMessageNormalizer.js.map +1 -0
- package/dist/src/anthropic/AnthropicMessageValidator.d.ts +36 -0
- package/dist/src/anthropic/AnthropicMessageValidator.js +284 -0
- package/dist/src/anthropic/AnthropicMessageValidator.js.map +1 -0
- package/dist/src/anthropic/AnthropicModelData.d.ts +46 -0
- package/dist/src/anthropic/AnthropicModelData.js +232 -0
- package/dist/src/anthropic/AnthropicModelData.js.map +1 -0
- package/dist/src/anthropic/AnthropicProvider.d.ts +121 -0
- package/dist/src/anthropic/AnthropicProvider.js +489 -0
- package/dist/src/anthropic/AnthropicProvider.js.map +1 -0
- package/dist/src/anthropic/AnthropicRateLimitHandler.d.ts +58 -0
- package/dist/src/anthropic/AnthropicRateLimitHandler.js +180 -0
- package/dist/src/anthropic/AnthropicRateLimitHandler.js.map +1 -0
- package/dist/src/anthropic/AnthropicRequestBuilder.d.ts +101 -0
- package/dist/src/anthropic/AnthropicRequestBuilder.js +225 -0
- package/dist/src/anthropic/AnthropicRequestBuilder.js.map +1 -0
- package/dist/src/anthropic/AnthropicRequestPreparation.d.ts +51 -0
- package/dist/src/anthropic/AnthropicRequestPreparation.js +398 -0
- package/dist/src/anthropic/AnthropicRequestPreparation.js.map +1 -0
- package/dist/src/anthropic/AnthropicResponseParser.d.ts +23 -0
- package/dist/src/anthropic/AnthropicResponseParser.js +104 -0
- package/dist/src/anthropic/AnthropicResponseParser.js.map +1 -0
- package/dist/src/anthropic/AnthropicStreamProcessor.d.ts +35 -0
- package/dist/src/anthropic/AnthropicStreamProcessor.js +321 -0
- package/dist/src/anthropic/AnthropicStreamProcessor.js.map +1 -0
- package/dist/src/anthropic/schemaConverter.d.ts +63 -0
- package/dist/src/anthropic/schemaConverter.js +202 -0
- package/dist/src/anthropic/schemaConverter.js.map +1 -0
- package/dist/src/anthropic/test-utils/anthropicTestUtils.d.ts +38 -0
- package/dist/src/anthropic/test-utils/anthropicTestUtils.js +2 -0
- package/dist/src/anthropic/test-utils/anthropicTestUtils.js.map +1 -0
- package/dist/src/anthropic/usageInfo.d.ts +211 -0
- package/dist/src/anthropic/usageInfo.js +156 -0
- package/dist/src/anthropic/usageInfo.js.map +1 -0
- package/dist/src/apiKeyQuotaResolver.d.ts +41 -0
- package/dist/src/apiKeyQuotaResolver.js +137 -0
- package/dist/src/apiKeyQuotaResolver.js.map +1 -0
- package/dist/src/chutes/usageInfo.d.ts +116 -0
- package/dist/src/chutes/usageInfo.js +169 -0
- package/dist/src/chutes/usageInfo.js.map +1 -0
- package/dist/src/customHeaders.d.ts +8 -0
- package/dist/src/customHeaders.js +35 -0
- package/dist/src/customHeaders.js.map +1 -0
- package/dist/src/errors.d.ts +223 -0
- package/dist/src/errors.js +276 -0
- package/dist/src/errors.js.map +1 -0
- package/dist/src/fake/FakeProvider.d.ts +56 -0
- package/dist/src/fake/FakeProvider.js +214 -0
- package/dist/src/fake/FakeProvider.js.map +1 -0
- package/dist/src/gemini/GeminiProvider.d.ts +286 -0
- package/dist/src/gemini/GeminiProvider.js +1362 -0
- package/dist/src/gemini/GeminiProvider.js.map +1 -0
- package/dist/src/gemini/thoughtSignatures.d.ts +51 -0
- package/dist/src/gemini/thoughtSignatures.js +217 -0
- package/dist/src/gemini/thoughtSignatures.js.map +1 -0
- package/dist/src/gemini/usageInfo.d.ts +82 -0
- package/dist/src/gemini/usageInfo.js +116 -0
- package/dist/src/gemini/usageInfo.js.map +1 -0
- package/dist/src/index.d.ts +56 -0
- package/dist/src/index.js +41 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/integration/TEST_INSTRUCTIONS.md +197 -0
- package/dist/src/kimi/usageInfo.d.ts +304 -0
- package/dist/src/kimi/usageInfo.js +295 -0
- package/dist/src/kimi/usageInfo.js.map +1 -0
- package/dist/src/logging/ProviderContentExtractor.d.ts +33 -0
- package/dist/src/logging/ProviderContentExtractor.js +254 -0
- package/dist/src/logging/ProviderContentExtractor.js.map +1 -0
- package/dist/src/logging/ProviderPerformanceTracker.d.ts +57 -0
- package/dist/src/logging/ProviderPerformanceTracker.js +170 -0
- package/dist/src/logging/ProviderPerformanceTracker.js.map +1 -0
- package/dist/src/openai/ConversationCache.d.ts +22 -0
- package/dist/src/openai/ConversationCache.js +170 -0
- package/dist/src/openai/ConversationCache.js.map +1 -0
- package/dist/src/openai/IChatGenerateParams.d.ts +16 -0
- package/dist/src/openai/IChatGenerateParams.js +2 -0
- package/dist/src/openai/IChatGenerateParams.js.map +1 -0
- package/dist/src/openai/OpenAIApiExecution.d.ts +37 -0
- package/dist/src/openai/OpenAIApiExecution.js +157 -0
- package/dist/src/openai/OpenAIApiExecution.js.map +1 -0
- package/dist/src/openai/OpenAIClientFactory.d.ts +68 -0
- package/dist/src/openai/OpenAIClientFactory.js +182 -0
- package/dist/src/openai/OpenAIClientFactory.js.map +1 -0
- package/dist/src/openai/OpenAINonStreamHandler.d.ts +29 -0
- package/dist/src/openai/OpenAINonStreamHandler.js +286 -0
- package/dist/src/openai/OpenAINonStreamHandler.js.map +1 -0
- package/dist/src/openai/OpenAIProvider.d.ts +130 -0
- package/dist/src/openai/OpenAIProvider.js +541 -0
- package/dist/src/openai/OpenAIProvider.js.map +1 -0
- package/dist/src/openai/OpenAIRequestBuilder.d.ts +71 -0
- package/dist/src/openai/OpenAIRequestBuilder.js +412 -0
- package/dist/src/openai/OpenAIRequestBuilder.js.map +1 -0
- package/dist/src/openai/OpenAIRequestPreparation.d.ts +33 -0
- package/dist/src/openai/OpenAIRequestPreparation.js +181 -0
- package/dist/src/openai/OpenAIRequestPreparation.js.map +1 -0
- package/dist/src/openai/OpenAIResponseParser.d.ts +62 -0
- package/dist/src/openai/OpenAIResponseParser.js +226 -0
- package/dist/src/openai/OpenAIResponseParser.js.map +1 -0
- package/dist/src/openai/OpenAIStreamProcessor.d.ts +38 -0
- package/dist/src/openai/OpenAIStreamProcessor.js +520 -0
- package/dist/src/openai/OpenAIStreamProcessor.js.map +1 -0
- package/dist/src/openai/OpenAIStreamProcessorState.d.ts +119 -0
- package/dist/src/openai/OpenAIStreamProcessorState.js +324 -0
- package/dist/src/openai/OpenAIStreamProcessorState.js.map +1 -0
- package/dist/src/openai/RESPONSES_API_MODELS.d.ts +2 -0
- package/dist/src/openai/RESPONSES_API_MODELS.js +15 -0
- package/dist/src/openai/RESPONSES_API_MODELS.js.map +1 -0
- package/dist/src/openai/ToolCallCollector.d.ts +79 -0
- package/dist/src/openai/ToolCallCollector.js +152 -0
- package/dist/src/openai/ToolCallCollector.js.map +1 -0
- package/dist/src/openai/ToolCallNormalizer.d.ts +64 -0
- package/dist/src/openai/ToolCallNormalizer.js +115 -0
- package/dist/src/openai/ToolCallNormalizer.js.map +1 -0
- package/dist/src/openai/ToolCallPipeline.d.ts +76 -0
- package/dist/src/openai/ToolCallPipeline.js +182 -0
- package/dist/src/openai/ToolCallPipeline.js.map +1 -0
- package/dist/src/openai/ToolNameValidator.d.ts +38 -0
- package/dist/src/openai/ToolNameValidator.js +88 -0
- package/dist/src/openai/ToolNameValidator.js.map +1 -0
- package/dist/src/openai/buildResponsesRequest.d.ts +77 -0
- package/dist/src/openai/buildResponsesRequest.js +220 -0
- package/dist/src/openai/buildResponsesRequest.js.map +1 -0
- package/dist/src/openai/codexUsageInfo.d.ts +388 -0
- package/dist/src/openai/codexUsageInfo.js +219 -0
- package/dist/src/openai/codexUsageInfo.js.map +1 -0
- package/dist/src/openai/docs/accessing-provider-info.md +172 -0
- package/dist/src/openai/docs/params-mapping.md +91 -0
- package/dist/src/openai/docs/responses-api-tool-calls.md +96 -0
- package/dist/src/openai/estimateRemoteTokens.d.ts +26 -0
- package/dist/src/openai/estimateRemoteTokens.js +92 -0
- package/dist/src/openai/estimateRemoteTokens.js.map +1 -0
- package/dist/src/openai/finishReasonMapping.d.ts +22 -0
- package/dist/src/openai/finishReasonMapping.js +51 -0
- package/dist/src/openai/finishReasonMapping.js.map +1 -0
- package/dist/src/openai/getOpenAIProviderInfo.d.ts +46 -0
- package/dist/src/openai/getOpenAIProviderInfo.js +115 -0
- package/dist/src/openai/getOpenAIProviderInfo.js.map +1 -0
- package/dist/src/openai/openaiRequestParams.d.ts +7 -0
- package/dist/src/openai/openaiRequestParams.js +113 -0
- package/dist/src/openai/openaiRequestParams.js.map +1 -0
- package/dist/src/openai/parseResponsesStream.d.ts +21 -0
- package/dist/src/openai/parseResponsesStream.js +486 -0
- package/dist/src/openai/parseResponsesStream.js.map +1 -0
- package/dist/src/openai/schemaConverter.d.ts +67 -0
- package/dist/src/openai/schemaConverter.js +201 -0
- package/dist/src/openai/schemaConverter.js.map +1 -0
- package/dist/src/openai/syntheticToolResponses.d.ts +20 -0
- package/dist/src/openai/syntheticToolResponses.js +218 -0
- package/dist/src/openai/syntheticToolResponses.js.map +1 -0
- package/dist/src/openai/test-types.d.ts +37 -0
- package/dist/src/openai/test-types.js +3 -0
- package/dist/src/openai/test-types.js.map +1 -0
- package/dist/src/openai/toolNameUtils.d.ts +57 -0
- package/dist/src/openai/toolNameUtils.js +189 -0
- package/dist/src/openai/toolNameUtils.js.map +1 -0
- package/dist/src/openai-responses/CODEX_MODELS.d.ts +23 -0
- package/dist/src/openai-responses/CODEX_MODELS.js +73 -0
- package/dist/src/openai-responses/CODEX_MODELS.js.map +1 -0
- package/dist/src/openai-responses/OpenAIResponsesInputBuilder.d.ts +24 -0
- package/dist/src/openai-responses/OpenAIResponsesInputBuilder.js +158 -0
- package/dist/src/openai-responses/OpenAIResponsesInputBuilder.js.map +1 -0
- package/dist/src/openai-responses/OpenAIResponsesProvider.d.ts +21 -0
- package/dist/src/openai-responses/OpenAIResponsesProvider.js +22 -0
- package/dist/src/openai-responses/OpenAIResponsesProvider.js.map +1 -0
- package/dist/src/openai-responses/OpenAIResponsesProviderBase.d.ts +120 -0
- package/dist/src/openai-responses/OpenAIResponsesProviderBase.js +302 -0
- package/dist/src/openai-responses/OpenAIResponsesProviderBase.js.map +1 -0
- package/dist/src/openai-responses/OpenAIResponsesProviderCore.d.ts +48 -0
- package/dist/src/openai-responses/OpenAIResponsesProviderCore.js +378 -0
- package/dist/src/openai-responses/OpenAIResponsesProviderCore.js.map +1 -0
- package/dist/src/openai-responses/OpenAIResponsesTypes.d.ts +69 -0
- package/dist/src/openai-responses/OpenAIResponsesTypes.js +17 -0
- package/dist/src/openai-responses/OpenAIResponsesTypes.js.map +1 -0
- package/dist/src/openai-responses/buildResponsesInputFromContent.d.ts +43 -0
- package/dist/src/openai-responses/buildResponsesInputFromContent.js +136 -0
- package/dist/src/openai-responses/buildResponsesInputFromContent.js.map +1 -0
- package/dist/src/openai-responses/index.d.ts +1 -0
- package/dist/src/openai-responses/index.js +2 -0
- package/dist/src/openai-responses/index.js.map +1 -0
- package/dist/src/openai-responses/schemaConverter.d.ts +64 -0
- package/dist/src/openai-responses/schemaConverter.js +201 -0
- package/dist/src/openai-responses/schemaConverter.js.map +1 -0
- package/dist/src/openai-vercel/OpenAIVercelProvider.d.ts +147 -0
- package/dist/src/openai-vercel/OpenAIVercelProvider.js +1303 -0
- package/dist/src/openai-vercel/OpenAIVercelProvider.js.map +1 -0
- package/dist/src/openai-vercel/errors.d.ts +46 -0
- package/dist/src/openai-vercel/errors.js +143 -0
- package/dist/src/openai-vercel/errors.js.map +1 -0
- package/dist/src/openai-vercel/index.d.ts +21 -0
- package/dist/src/openai-vercel/index.js +22 -0
- package/dist/src/openai-vercel/index.js.map +1 -0
- package/dist/src/openai-vercel/messageConversion.d.ts +30 -0
- package/dist/src/openai-vercel/messageConversion.js +406 -0
- package/dist/src/openai-vercel/messageConversion.js.map +1 -0
- package/dist/src/openai-vercel/schemaConverter.d.ts +66 -0
- package/dist/src/openai-vercel/schemaConverter.js +201 -0
- package/dist/src/openai-vercel/schemaConverter.js.map +1 -0
- package/dist/src/providerConfigKeys.d.ts +8 -0
- package/dist/src/providerConfigKeys.js +10 -0
- package/dist/src/providerConfigKeys.js.map +1 -0
- package/dist/src/reasoning/reasoningUtils.d.ts +68 -0
- package/dist/src/reasoning/reasoningUtils.js +277 -0
- package/dist/src/reasoning/reasoningUtils.js.map +1 -0
- package/dist/src/synthetic/usageInfo.d.ts +303 -0
- package/dist/src/synthetic/usageInfo.js +142 -0
- package/dist/src/synthetic/usageInfo.js.map +1 -0
- package/dist/src/test-utils/providerTestConfig.d.ts +21 -0
- package/dist/src/test-utils/providerTestConfig.js +23 -0
- package/dist/src/test-utils/providerTestConfig.js.map +1 -0
- package/dist/src/tokenizers/AnthropicTokenizer.d.ts +19 -0
- package/dist/src/tokenizers/AnthropicTokenizer.js +37 -0
- package/dist/src/tokenizers/AnthropicTokenizer.js.map +1 -0
- package/dist/src/tokenizers/ITokenizer.d.ts +18 -0
- package/dist/src/tokenizers/ITokenizer.js +17 -0
- package/dist/src/tokenizers/ITokenizer.js.map +1 -0
- package/dist/src/tokenizers/OpenAITokenizer.d.ts +26 -0
- package/dist/src/tokenizers/OpenAITokenizer.js +64 -0
- package/dist/src/tokenizers/OpenAITokenizer.js.map +1 -0
- package/dist/src/types/IProviderConfig.d.ts +113 -0
- package/dist/src/types/IProviderConfig.js +17 -0
- package/dist/src/types/IProviderConfig.js.map +1 -0
- package/dist/src/types/providerRuntime.d.ts +17 -0
- package/dist/src/types/providerRuntime.js +7 -0
- package/dist/src/types/providerRuntime.js.map +1 -0
- package/dist/src/types.d.ts +78 -0
- package/dist/src/types.js +8 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/utils/authToken.d.ts +12 -0
- package/dist/src/utils/authToken.js +17 -0
- package/dist/src/utils/authToken.js.map +1 -0
- package/dist/src/utils/cacheMetricsExtractor.d.ts +6 -0
- package/dist/src/utils/cacheMetricsExtractor.js +38 -0
- package/dist/src/utils/cacheMetricsExtractor.js.map +1 -0
- package/dist/src/utils/containerSandbox.d.ts +6 -0
- package/dist/src/utils/containerSandbox.js +13 -0
- package/dist/src/utils/containerSandbox.js.map +1 -0
- package/dist/src/utils/contentPreview.d.ts +22 -0
- package/dist/src/utils/contentPreview.js +64 -0
- package/dist/src/utils/contentPreview.js.map +1 -0
- package/dist/src/utils/dumpContext.d.ts +36 -0
- package/dist/src/utils/dumpContext.js +90 -0
- package/dist/src/utils/dumpContext.js.map +1 -0
- package/dist/src/utils/dumpSDKContext.d.ts +13 -0
- package/dist/src/utils/dumpSDKContext.js +39 -0
- package/dist/src/utils/dumpSDKContext.js.map +1 -0
- package/dist/src/utils/localEndpoint.d.ts +39 -0
- package/dist/src/utils/localEndpoint.js +123 -0
- package/dist/src/utils/localEndpoint.js.map +1 -0
- package/dist/src/utils/mediaUtils.d.ts +24 -0
- package/dist/src/utils/mediaUtils.js +64 -0
- package/dist/src/utils/mediaUtils.js.map +1 -0
- package/dist/src/utils/qwenEndpoint.d.ts +22 -0
- package/dist/src/utils/qwenEndpoint.js +55 -0
- package/dist/src/utils/qwenEndpoint.js.map +1 -0
- package/dist/src/utils/retryStrategy.d.ts +28 -0
- package/dist/src/utils/retryStrategy.js +81 -0
- package/dist/src/utils/retryStrategy.js.map +1 -0
- package/dist/src/utils/textSanitizer.d.ts +25 -0
- package/dist/src/utils/textSanitizer.js +49 -0
- package/dist/src/utils/textSanitizer.js.map +1 -0
- package/dist/src/utils/thinkingExtraction.d.ts +30 -0
- package/dist/src/utils/thinkingExtraction.js +70 -0
- package/dist/src/utils/thinkingExtraction.js.map +1 -0
- package/dist/src/utils/toolFormatDetection.d.ts +61 -0
- package/dist/src/utils/toolFormatDetection.js +107 -0
- package/dist/src/utils/toolFormatDetection.js.map +1 -0
- package/dist/src/utils/toolNameNormalization.d.ts +25 -0
- package/dist/src/utils/toolNameNormalization.js +34 -0
- package/dist/src/utils/toolNameNormalization.js.map +1 -0
- package/dist/src/utils/toolResponsePayload.d.ts +25 -0
- package/dist/src/utils/toolResponsePayload.js +185 -0
- package/dist/src/utils/toolResponsePayload.js.map +1 -0
- package/dist/src/utils/userMemory.d.ts +8 -0
- package/dist/src/utils/userMemory.js +34 -0
- package/dist/src/utils/userMemory.js.map +1 -0
- package/dist/src/zai/usageInfo.d.ts +669 -0
- package/dist/src/zai/usageInfo.js +177 -0
- package/dist/src/zai/usageInfo.js.map +1 -0
- package/package.json +68 -0
package/dist/.last_build
ADDED
|
File without changes
|
package/dist/index.d.ts
ADDED
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
|
+
}
|