@vybestack/llxprt-code-core 0.1.18-nightly.250808.f9b79d74 → 0.1.18-nightly.250812.12fa8ad2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +49 -2
- package/dist/index.d.ts +6 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/src/auth/anthropic-device-flow.d.ts +53 -0
- package/dist/src/auth/anthropic-device-flow.js +208 -0
- package/dist/src/auth/anthropic-device-flow.js.map +1 -0
- package/dist/src/auth/precedence.d.ts +55 -0
- package/dist/src/auth/precedence.js +211 -0
- package/dist/src/auth/precedence.js.map +1 -0
- package/dist/src/auth/qwen-device-flow.d.ts +45 -0
- package/dist/src/auth/qwen-device-flow.js +179 -0
- package/dist/src/auth/qwen-device-flow.js.map +1 -0
- package/dist/src/auth/token-store.d.ts +66 -0
- package/dist/src/auth/token-store.js +151 -0
- package/dist/src/auth/token-store.js.map +1 -0
- package/dist/src/auth/types.d.ts +130 -0
- package/dist/src/auth/types.js +60 -0
- package/dist/src/auth/types.js.map +1 -0
- package/dist/src/code_assist/converter.d.ts +2 -1
- package/dist/src/code_assist/converter.js +1 -1
- package/dist/src/code_assist/converter.js.map +1 -1
- package/dist/src/code_assist/oauth2.js +2 -1
- package/dist/src/code_assist/oauth2.js.map +1 -1
- package/dist/src/config/config.d.ts +78 -3
- package/dist/src/config/config.js +159 -6
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/endpoints.d.ts +60 -0
- package/dist/src/config/endpoints.js +126 -0
- package/dist/src/config/endpoints.js.map +1 -0
- package/dist/src/config/profileManager.d.ts +14 -4
- package/dist/src/config/profileManager.js +90 -11
- package/dist/src/config/profileManager.js.map +1 -1
- package/dist/src/core/client.js +16 -16
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/contentGenerator.d.ts +4 -1
- package/dist/src/core/contentGenerator.js +3 -0
- package/dist/src/core/contentGenerator.js.map +1 -1
- package/dist/src/core/logger.d.ts +1 -0
- package/dist/src/core/logger.js +18 -0
- package/dist/src/core/logger.js.map +1 -1
- package/dist/src/core/loggingContentGenerator.d.ts +24 -0
- package/dist/src/core/loggingContentGenerator.js +89 -0
- package/dist/src/core/loggingContentGenerator.js.map +1 -0
- package/dist/src/core/nonInteractiveToolExecutor.js +17 -0
- package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
- package/dist/src/core/subagent.js +12 -10
- package/dist/src/core/subagent.js.map +1 -1
- package/dist/src/ide/ide-client.d.ts +2 -2
- package/dist/src/ide/ide-client.js +56 -18
- package/dist/src/ide/ide-client.js.map +1 -1
- package/dist/src/index.d.ts +11 -0
- package/dist/src/index.js +12 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/providers/BaseProvider.d.ts +149 -0
- package/dist/src/providers/BaseProvider.js +315 -0
- package/dist/src/providers/BaseProvider.js.map +1 -0
- package/dist/src/providers/IProvider.d.ts +1 -0
- package/dist/src/providers/IProviderManager.d.ts +5 -0
- package/dist/src/providers/LoggingProviderWrapper.d.ts +54 -0
- package/dist/src/providers/LoggingProviderWrapper.js +350 -0
- package/dist/src/providers/LoggingProviderWrapper.js.map +1 -0
- package/dist/src/providers/ProviderManager.d.ts +20 -1
- package/dist/src/providers/ProviderManager.js +236 -14
- package/dist/src/providers/ProviderManager.js.map +1 -1
- package/dist/src/providers/anthropic/AnthropicProvider.d.ts +20 -6
- package/dist/src/providers/anthropic/AnthropicProvider.js +172 -26
- package/dist/src/providers/anthropic/AnthropicProvider.js.map +1 -1
- package/dist/src/providers/gemini/GeminiProvider.d.ts +16 -7
- package/dist/src/providers/gemini/GeminiProvider.js +163 -148
- package/dist/src/providers/gemini/GeminiProvider.js.map +1 -1
- package/dist/src/providers/logging/ProviderContentExtractor.d.ts +27 -0
- package/dist/src/providers/logging/ProviderContentExtractor.js +198 -0
- package/dist/src/providers/logging/ProviderContentExtractor.js.map +1 -0
- package/dist/src/providers/logging/ProviderPerformanceTracker.d.ts +43 -0
- package/dist/src/providers/logging/ProviderPerformanceTracker.js +98 -0
- package/dist/src/providers/logging/ProviderPerformanceTracker.js.map +1 -0
- package/dist/src/providers/openai/OpenAIProvider.d.ts +53 -6
- package/dist/src/providers/openai/OpenAIProvider.js +373 -40
- package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
- package/dist/src/providers/openai/RESPONSES_API_MODELS.d.ts +1 -1
- package/dist/src/providers/openai/RESPONSES_API_MODELS.js +1 -0
- package/dist/src/providers/openai/RESPONSES_API_MODELS.js.map +1 -1
- package/dist/src/providers/openai/syntheticToolResponses.d.ts +52 -0
- package/dist/src/providers/openai/syntheticToolResponses.js +129 -0
- package/dist/src/providers/openai/syntheticToolResponses.js.map +1 -0
- package/dist/src/providers/types.d.ts +47 -0
- package/dist/src/services/git-stats-service.d.ts +32 -0
- package/dist/src/services/git-stats-service.js +22 -0
- package/dist/src/services/git-stats-service.js.map +1 -0
- package/dist/src/services/loopDetectionService.js +10 -6
- package/dist/src/services/loopDetectionService.js.map +1 -1
- package/dist/src/services/shellExecutionService.js +44 -8
- package/dist/src/services/shellExecutionService.js.map +1 -1
- package/dist/src/settings/SettingsService.d.ts +32 -0
- package/dist/src/settings/SettingsService.js +204 -0
- package/dist/src/settings/SettingsService.js.map +1 -0
- package/dist/src/settings/settingsServiceInstance.d.ts +12 -0
- package/dist/src/settings/settingsServiceInstance.js +24 -0
- package/dist/src/settings/settingsServiceInstance.js.map +1 -0
- package/dist/src/settings/types.d.ts +141 -0
- package/dist/src/settings/types.js +5 -0
- package/dist/src/settings/types.js.map +1 -0
- package/dist/src/storage/ConversationFileWriter.d.ts +16 -0
- package/dist/src/storage/ConversationFileWriter.js +69 -0
- package/dist/src/storage/ConversationFileWriter.js.map +1 -0
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +8 -0
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +56 -3
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +5 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +11 -0
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
- package/dist/src/telemetry/constants.d.ts +5 -0
- package/dist/src/telemetry/constants.js +5 -0
- package/dist/src/telemetry/constants.js.map +1 -1
- package/dist/src/telemetry/loggers.d.ts +5 -1
- package/dist/src/telemetry/loggers.js +87 -1
- package/dist/src/telemetry/loggers.js.map +1 -1
- package/dist/src/telemetry/metrics.d.ts +2 -1
- package/dist/src/telemetry/metrics.js +7 -1
- package/dist/src/telemetry/metrics.js.map +1 -1
- package/dist/src/telemetry/tool-call-decision.d.ts +13 -0
- package/dist/src/telemetry/tool-call-decision.js +29 -0
- package/dist/src/telemetry/tool-call-decision.js.map +1 -0
- package/dist/src/telemetry/types.d.ts +56 -1
- package/dist/src/telemetry/types.js +123 -0
- package/dist/src/telemetry/types.js.map +1 -1
- package/dist/src/telemetry/uiTelemetry.d.ts +2 -1
- package/dist/src/telemetry/uiTelemetry.js +1 -1
- package/dist/src/telemetry/uiTelemetry.js.map +1 -1
- package/dist/src/tools/diffOptions.d.ts +2 -0
- package/dist/src/tools/diffOptions.js +28 -0
- package/dist/src/tools/diffOptions.js.map +1 -1
- package/dist/src/tools/edit.d.ts +8 -32
- package/dist/src/tools/edit.js +153 -136
- package/dist/src/tools/edit.js.map +1 -1
- package/dist/src/tools/glob.d.ts +3 -10
- package/dist/src/tools/glob.js +97 -99
- package/dist/src/tools/glob.js.map +1 -1
- package/dist/src/tools/grep.d.ts +3 -35
- package/dist/src/tools/grep.js +117 -88
- package/dist/src/tools/grep.js.map +1 -1
- package/dist/src/tools/mcp-client.d.ts +4 -3
- package/dist/src/tools/mcp-client.js +23 -6
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/read-file.js +37 -9
- package/dist/src/tools/read-file.js.map +1 -1
- package/dist/src/tools/todo-pause.d.ts +22 -0
- package/dist/src/tools/todo-pause.js +93 -0
- package/dist/src/tools/todo-pause.js.map +1 -0
- package/dist/src/tools/tool-error.d.ts +4 -0
- package/dist/src/tools/tool-error.js +4 -0
- package/dist/src/tools/tool-error.js.map +1 -1
- package/dist/src/tools/tool-registry.js +3 -3
- package/dist/src/tools/tool-registry.js.map +1 -1
- package/dist/src/tools/tools.d.ts +18 -0
- package/dist/src/tools/tools.js +15 -0
- package/dist/src/tools/tools.js.map +1 -1
- package/dist/src/tools/write-file.d.ts +4 -0
- package/dist/src/tools/write-file.js +90 -16
- package/dist/src/tools/write-file.js.map +1 -1
- package/dist/src/types/modelParams.d.ts +2 -0
- package/dist/src/utils/environmentContext.js +1 -1
- package/dist/src/utils/errors.d.ts +3 -0
- package/dist/src/utils/errors.js +6 -0
- package/dist/src/utils/errors.js.map +1 -1
- package/dist/src/utils/fileUtils.d.ts +7 -0
- package/dist/src/utils/fileUtils.js +9 -0
- package/dist/src/utils/fileUtils.js.map +1 -1
- package/dist/src/utils/filesearch/fileSearch.d.ts +1 -0
- package/dist/src/utils/filesearch/fileSearch.js +27 -19
- package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
- package/package.json +4 -2
- package/dist/src/code_assist/converter.test.d.ts +0 -6
- package/dist/src/code_assist/converter.test.js +0 -232
- package/dist/src/code_assist/converter.test.js.map +0 -1
- package/dist/src/code_assist/oauth2.test.d.ts +0 -6
- package/dist/src/code_assist/oauth2.test.js +0 -370
- package/dist/src/code_assist/oauth2.test.js.map +0 -1
- package/dist/src/code_assist/server.test.d.ts +0 -6
- package/dist/src/code_assist/server.test.js +0 -131
- package/dist/src/code_assist/server.test.js.map +0 -1
- package/dist/src/code_assist/setup.test.d.ts +0 -6
- package/dist/src/code_assist/setup.test.js +0 -65
- package/dist/src/code_assist/setup.test.js.map +0 -1
- package/dist/src/config/config.alwaysAllow.test.d.ts +0 -6
- package/dist/src/config/config.alwaysAllow.test.js +0 -84
- package/dist/src/config/config.alwaysAllow.test.js.map +0 -1
- package/dist/src/config/config.test.d.ts +0 -6
- package/dist/src/config/config.test.js +0 -361
- package/dist/src/config/config.test.js.map +0 -1
- package/dist/src/config/flashFallback.test.d.ts +0 -6
- package/dist/src/config/flashFallback.test.js +0 -91
- package/dist/src/config/flashFallback.test.js.map +0 -1
- package/dist/src/core/client.test.d.ts +0 -6
- package/dist/src/core/client.test.js +0 -1317
- package/dist/src/core/client.test.js.map +0 -1
- package/dist/src/core/contentGenerator.test.d.ts +0 -6
- package/dist/src/core/contentGenerator.test.js +0 -103
- package/dist/src/core/contentGenerator.test.js.map +0 -1
- package/dist/src/core/coreToolScheduler.test.d.ts +0 -6
- package/dist/src/core/coreToolScheduler.test.js +0 -637
- package/dist/src/core/coreToolScheduler.test.js.map +0 -1
- package/dist/src/core/geminiChat.test.d.ts +0 -6
- package/dist/src/core/geminiChat.test.js +0 -425
- package/dist/src/core/geminiChat.test.js.map +0 -1
- package/dist/src/core/googleGenAIWrapper.test.d.ts +0 -6
- package/dist/src/core/googleGenAIWrapper.test.js +0 -104
- package/dist/src/core/googleGenAIWrapper.test.js.map +0 -1
- package/dist/src/core/logger.test.d.ts +0 -6
- package/dist/src/core/logger.test.js +0 -438
- package/dist/src/core/logger.test.js.map +0 -1
- package/dist/src/core/nonInteractiveToolExecutor.test.d.ts +0 -6
- package/dist/src/core/nonInteractiveToolExecutor.test.js +0 -165
- package/dist/src/core/nonInteractiveToolExecutor.test.js.map +0 -1
- package/dist/src/core/prompts-async.test.d.ts +0 -6
- package/dist/src/core/prompts-async.test.js +0 -115
- package/dist/src/core/prompts-async.test.js.map +0 -1
- package/dist/src/core/prompts.test.d.ts +0 -6
- package/dist/src/core/prompts.test.js +0 -68
- package/dist/src/core/prompts.test.js.map +0 -1
- package/dist/src/core/subagent.test.d.ts +0 -6
- package/dist/src/core/subagent.test.js +0 -519
- package/dist/src/core/subagent.test.js.map +0 -1
- package/dist/src/core/tokenLimits.test.d.ts +0 -6
- package/dist/src/core/tokenLimits.test.js +0 -66
- package/dist/src/core/tokenLimits.test.js.map +0 -1
- package/dist/src/core/turn.test.d.ts +0 -6
- package/dist/src/core/turn.test.js +0 -366
- package/dist/src/core/turn.test.js.map +0 -1
- package/dist/src/hooks/tool-render-suppression-hook.test.d.ts +0 -6
- package/dist/src/hooks/tool-render-suppression-hook.test.js +0 -59
- package/dist/src/hooks/tool-render-suppression-hook.test.js.map +0 -1
- package/dist/src/ide/ide-installer.test.d.ts +0 -6
- package/dist/src/ide/ide-installer.test.js +0 -55
- package/dist/src/ide/ide-installer.test.js.map +0 -1
- package/dist/src/ide/ideContext.test.d.ts +0 -6
- package/dist/src/ide/ideContext.test.js +0 -265
- package/dist/src/ide/ideContext.test.js.map +0 -1
- package/dist/src/index.test.d.ts +0 -6
- package/dist/src/index.test.js +0 -12
- package/dist/src/index.test.js.map +0 -1
- package/dist/src/integration-tests/todo-system.test.d.ts +0 -6
- package/dist/src/integration-tests/todo-system.test.js +0 -46
- package/dist/src/integration-tests/todo-system.test.js.map +0 -1
- package/dist/src/mcp/google-auth-provider.test.d.ts +0 -6
- package/dist/src/mcp/google-auth-provider.test.js +0 -54
- package/dist/src/mcp/google-auth-provider.test.js.map +0 -1
- package/dist/src/mcp/oauth-provider.test.d.ts +0 -6
- package/dist/src/mcp/oauth-provider.test.js +0 -602
- package/dist/src/mcp/oauth-provider.test.js.map +0 -1
- package/dist/src/mcp/oauth-token-storage.test.d.ts +0 -6
- package/dist/src/mcp/oauth-token-storage.test.js +0 -205
- package/dist/src/mcp/oauth-token-storage.test.js.map +0 -1
- package/dist/src/mcp/oauth-utils.test.d.ts +0 -6
- package/dist/src/mcp/oauth-utils.test.js +0 -144
- package/dist/src/mcp/oauth-utils.test.js.map +0 -1
- package/dist/src/parsers/TextToolCallParser.multibyte.test.d.ts +0 -1
- package/dist/src/parsers/TextToolCallParser.multibyte.test.js +0 -42
- package/dist/src/parsers/TextToolCallParser.multibyte.test.js.map +0 -1
- package/dist/src/parsers/TextToolCallParser.test.d.ts +0 -1
- package/dist/src/parsers/TextToolCallParser.test.js +0 -225
- package/dist/src/parsers/TextToolCallParser.test.js.map +0 -1
- package/dist/src/prompt-config/TemplateEngine.test.d.ts +0 -1
- package/dist/src/prompt-config/TemplateEngine.test.js +0 -494
- package/dist/src/prompt-config/TemplateEngine.test.js.map +0 -1
- package/dist/src/prompt-config/prompt-cache.test.d.ts +0 -6
- package/dist/src/prompt-config/prompt-cache.test.js +0 -437
- package/dist/src/prompt-config/prompt-cache.test.js.map +0 -1
- package/dist/src/prompt-config/prompt-installer.test.d.ts +0 -7
- package/dist/src/prompt-config/prompt-installer.test.js +0 -503
- package/dist/src/prompt-config/prompt-installer.test.js.map +0 -1
- package/dist/src/prompt-config/prompt-loader.test.d.ts +0 -5
- package/dist/src/prompt-config/prompt-loader.test.js +0 -413
- package/dist/src/prompt-config/prompt-loader.test.js.map +0 -1
- package/dist/src/prompt-config/prompt-resolver.test.d.ts +0 -1
- package/dist/src/prompt-config/prompt-resolver.test.js +0 -529
- package/dist/src/prompt-config/prompt-resolver.test.js.map +0 -1
- package/dist/src/prompt-config/prompt-service.test.d.ts +0 -1
- package/dist/src/prompt-config/prompt-service.test.js +0 -811
- package/dist/src/prompt-config/prompt-service.test.js.map +0 -1
- package/dist/src/providers/ProviderManager.gemini-switch.test.d.ts +0 -6
- package/dist/src/providers/ProviderManager.gemini-switch.test.js +0 -57
- package/dist/src/providers/ProviderManager.gemini-switch.test.js.map +0 -1
- package/dist/src/providers/ProviderManager.test.d.ts +0 -6
- package/dist/src/providers/ProviderManager.test.js +0 -284
- package/dist/src/providers/ProviderManager.test.js.map +0 -1
- package/dist/src/providers/adapters/GeminiCompatibleWrapper.test.d.ts +0 -6
- package/dist/src/providers/adapters/GeminiCompatibleWrapper.test.js +0 -273
- package/dist/src/providers/adapters/GeminiCompatibleWrapper.test.js.map +0 -1
- package/dist/src/providers/anthropic/AnthropicProvider.modelParams.test.d.ts +0 -1
- package/dist/src/providers/anthropic/AnthropicProvider.modelParams.test.js +0 -48
- package/dist/src/providers/anthropic/AnthropicProvider.modelParams.test.js.map +0 -1
- package/dist/src/providers/anthropic/AnthropicProvider.test.d.ts +0 -1
- package/dist/src/providers/anthropic/AnthropicProvider.test.js +0 -487
- package/dist/src/providers/anthropic/AnthropicProvider.test.js.map +0 -1
- package/dist/src/providers/gemini/GeminiProvider.integration.test.d.ts +0 -6
- package/dist/src/providers/gemini/GeminiProvider.integration.test.js +0 -126
- package/dist/src/providers/gemini/GeminiProvider.integration.test.js.map +0 -1
- package/dist/src/providers/gemini/GeminiProvider.test.d.ts +0 -6
- package/dist/src/providers/gemini/GeminiProvider.test.js +0 -136
- package/dist/src/providers/gemini/GeminiProvider.test.js.map +0 -1
- package/dist/src/providers/integration/multi-provider.integration.test.d.ts +0 -6
- package/dist/src/providers/integration/multi-provider.integration.test.js +0 -292
- package/dist/src/providers/integration/multi-provider.integration.test.js.map +0 -1
- package/dist/src/providers/openai/ConversationCache.accumTokens.test.d.ts +0 -1
- package/dist/src/providers/openai/ConversationCache.accumTokens.test.js +0 -97
- package/dist/src/providers/openai/ConversationCache.accumTokens.test.js.map +0 -1
- package/dist/src/providers/openai/ConversationCache.test.d.ts +0 -1
- package/dist/src/providers/openai/ConversationCache.test.js +0 -113
- package/dist/src/providers/openai/ConversationCache.test.js.map +0 -1
- package/dist/src/providers/openai/OpenAIProvider.callResponses.stateless.test.d.ts +0 -1
- package/dist/src/providers/openai/OpenAIProvider.callResponses.stateless.test.js +0 -189
- package/dist/src/providers/openai/OpenAIProvider.callResponses.stateless.test.js.map +0 -1
- package/dist/src/providers/openai/OpenAIProvider.integration.test.d.ts +0 -6
- package/dist/src/providers/openai/OpenAIProvider.integration.test.js +0 -125
- package/dist/src/providers/openai/OpenAIProvider.integration.test.js.map +0 -1
- package/dist/src/providers/openai/OpenAIProvider.responses.test.d.ts +0 -1
- package/dist/src/providers/openai/OpenAIProvider.responses.test.js +0 -350
- package/dist/src/providers/openai/OpenAIProvider.responses.test.js.map +0 -1
- package/dist/src/providers/openai/OpenAIProvider.responsesIntegration.test.d.ts +0 -1
- package/dist/src/providers/openai/OpenAIProvider.responsesIntegration.test.js +0 -213
- package/dist/src/providers/openai/OpenAIProvider.responsesIntegration.test.js.map +0 -1
- package/dist/src/providers/openai/OpenAIProvider.shouldUseResponses.test.d.ts +0 -1
- package/dist/src/providers/openai/OpenAIProvider.shouldUseResponses.test.js +0 -59
- package/dist/src/providers/openai/OpenAIProvider.shouldUseResponses.test.js.map +0 -1
- package/dist/src/providers/openai/OpenAIProvider.stateful.integration.test.d.ts +0 -6
- package/dist/src/providers/openai/OpenAIProvider.stateful.integration.test.js +0 -105
- package/dist/src/providers/openai/OpenAIProvider.stateful.integration.test.js.map +0 -1
- package/dist/src/providers/openai/OpenAIProvider.switch.test.d.ts +0 -1
- package/dist/src/providers/openai/OpenAIProvider.switch.test.js +0 -256
- package/dist/src/providers/openai/OpenAIProvider.switch.test.js.map +0 -1
- package/dist/src/providers/openai/OpenAIProvider.test.d.ts +0 -16
- package/dist/src/providers/openai/OpenAIProvider.test.js +0 -620
- package/dist/src/providers/openai/OpenAIProvider.test.js.map +0 -1
- package/dist/src/providers/openai/ResponsesContextTrim.integration.test.d.ts +0 -1
- package/dist/src/providers/openai/ResponsesContextTrim.integration.test.js +0 -210
- package/dist/src/providers/openai/ResponsesContextTrim.integration.test.js.map +0 -1
- package/dist/src/providers/openai/__tests__/formatArrayResponse.test.d.ts +0 -1
- package/dist/src/providers/openai/__tests__/formatArrayResponse.test.js +0 -65
- package/dist/src/providers/openai/__tests__/formatArrayResponse.test.js.map +0 -1
- package/dist/src/providers/openai/buildResponsesRequest.stripToolCalls.test.d.ts +0 -1
- package/dist/src/providers/openai/buildResponsesRequest.stripToolCalls.test.js +0 -129
- package/dist/src/providers/openai/buildResponsesRequest.stripToolCalls.test.js.map +0 -1
- package/dist/src/providers/openai/buildResponsesRequest.test.d.ts +0 -1
- package/dist/src/providers/openai/buildResponsesRequest.test.js +0 -406
- package/dist/src/providers/openai/buildResponsesRequest.test.js.map +0 -1
- package/dist/src/providers/openai/buildResponsesRequest.undefined.test.d.ts +0 -1
- package/dist/src/providers/openai/buildResponsesRequest.undefined.test.js +0 -50
- package/dist/src/providers/openai/buildResponsesRequest.undefined.test.js.map +0 -1
- package/dist/src/providers/openai/estimateRemoteTokens.test.d.ts +0 -1
- package/dist/src/providers/openai/estimateRemoteTokens.test.js +0 -125
- package/dist/src/providers/openai/estimateRemoteTokens.test.js.map +0 -1
- package/dist/src/providers/openai/parseResponsesStream.responsesToolCalls.test.d.ts +0 -1
- package/dist/src/providers/openai/parseResponsesStream.responsesToolCalls.test.js +0 -192
- package/dist/src/providers/openai/parseResponsesStream.responsesToolCalls.test.js.map +0 -1
- package/dist/src/providers/openai/parseResponsesStream.test.d.ts +0 -1
- package/dist/src/providers/openai/parseResponsesStream.test.js +0 -151
- package/dist/src/providers/openai/parseResponsesStream.test.js.map +0 -1
- package/dist/src/services/fileDiscoveryService.test.d.ts +0 -6
- package/dist/src/services/fileDiscoveryService.test.js +0 -143
- package/dist/src/services/fileDiscoveryService.test.js.map +0 -1
- package/dist/src/services/gitService.test.d.ts +0 -6
- package/dist/src/services/gitService.test.js +0 -209
- package/dist/src/services/gitService.test.js.map +0 -1
- package/dist/src/services/loopDetectionService.test.d.ts +0 -6
- package/dist/src/services/loopDetectionService.test.js +0 -345
- package/dist/src/services/loopDetectionService.test.js.map +0 -1
- package/dist/src/services/shellExecutionService.multibyte.test.d.ts +0 -6
- package/dist/src/services/shellExecutionService.multibyte.test.js +0 -72
- package/dist/src/services/shellExecutionService.multibyte.test.js.map +0 -1
- package/dist/src/services/shellExecutionService.test.d.ts +0 -6
- package/dist/src/services/shellExecutionService.test.js +0 -272
- package/dist/src/services/shellExecutionService.test.js.map +0 -1
- package/dist/src/services/shellExecutionService.windows.multibyte.test.d.ts +0 -6
- package/dist/src/services/shellExecutionService.windows.multibyte.test.js +0 -98
- package/dist/src/services/shellExecutionService.windows.multibyte.test.js.map +0 -1
- package/dist/src/services/shellExecutionService.windows.test.d.ts +0 -6
- package/dist/src/services/shellExecutionService.windows.test.js +0 -79
- package/dist/src/services/shellExecutionService.windows.test.js.map +0 -1
- package/dist/src/services/tool-call-tracker-service.test.d.ts +0 -6
- package/dist/src/services/tool-call-tracker-service.test.js +0 -99
- package/dist/src/services/tool-call-tracker-service.test.js.map +0 -1
- package/dist/src/telemetry/loggers.test.d.ts +0 -6
- package/dist/src/telemetry/loggers.test.js +0 -572
- package/dist/src/telemetry/loggers.test.js.map +0 -1
- package/dist/src/telemetry/metrics.test.d.ts +0 -6
- package/dist/src/telemetry/metrics.test.js +0 -162
- package/dist/src/telemetry/metrics.test.js.map +0 -1
- package/dist/src/telemetry/telemetry.test.d.ts +0 -6
- package/dist/src/telemetry/telemetry.test.js +0 -54
- package/dist/src/telemetry/telemetry.test.js.map +0 -1
- package/dist/src/telemetry/uiTelemetry.test.d.ts +0 -6
- package/dist/src/telemetry/uiTelemetry.test.js +0 -517
- package/dist/src/telemetry/uiTelemetry.test.js.map +0 -1
- package/dist/src/tools/ToolFormatter.test.d.ts +0 -16
- package/dist/src/tools/ToolFormatter.test.js +0 -349
- package/dist/src/tools/ToolFormatter.test.js.map +0 -1
- package/dist/src/tools/ToolFormatter.toResponsesTool.test.d.ts +0 -1
- package/dist/src/tools/ToolFormatter.toResponsesTool.test.js +0 -241
- package/dist/src/tools/ToolFormatter.toResponsesTool.test.js.map +0 -1
- package/dist/src/tools/edit.test.d.ts +0 -6
- package/dist/src/tools/edit.test.js +0 -663
- package/dist/src/tools/edit.test.js.map +0 -1
- package/dist/src/tools/glob.test.d.ts +0 -6
- package/dist/src/tools/glob.test.js +0 -321
- package/dist/src/tools/glob.test.js.map +0 -1
- package/dist/src/tools/grep.test.d.ts +0 -6
- package/dist/src/tools/grep.test.js +0 -258
- package/dist/src/tools/grep.test.js.map +0 -1
- package/dist/src/tools/ls.test.d.ts +0 -6
- package/dist/src/tools/ls.test.js +0 -357
- package/dist/src/tools/ls.test.js.map +0 -1
- package/dist/src/tools/mcp-client.test.d.ts +0 -6
- package/dist/src/tools/mcp-client.test.js +0 -575
- package/dist/src/tools/mcp-client.test.js.map +0 -1
- package/dist/src/tools/mcp-tool.test.d.ts +0 -6
- package/dist/src/tools/mcp-tool.test.js +0 -501
- package/dist/src/tools/mcp-tool.test.js.map +0 -1
- package/dist/src/tools/memoryTool.test.d.ts +0 -6
- package/dist/src/tools/memoryTool.test.js +0 -266
- package/dist/src/tools/memoryTool.test.js.map +0 -1
- package/dist/src/tools/modifiable-tool.test.d.ts +0 -6
- package/dist/src/tools/modifiable-tool.test.js +0 -193
- package/dist/src/tools/modifiable-tool.test.js.map +0 -1
- package/dist/src/tools/read-file.test.d.ts +0 -6
- package/dist/src/tools/read-file.test.js +0 -313
- package/dist/src/tools/read-file.test.js.map +0 -1
- package/dist/src/tools/read-many-files.test.d.ts +0 -6
- package/dist/src/tools/read-many-files.test.js +0 -644
- package/dist/src/tools/read-many-files.test.js.map +0 -1
- package/dist/src/tools/shell.multibyte.test.d.ts +0 -6
- package/dist/src/tools/shell.multibyte.test.js +0 -75
- package/dist/src/tools/shell.multibyte.test.js.map +0 -1
- package/dist/src/tools/shell.test.d.ts +0 -6
- package/dist/src/tools/shell.test.js +0 -350
- package/dist/src/tools/shell.test.js.map +0 -1
- package/dist/src/tools/todo-read.test.d.ts +0 -6
- package/dist/src/tools/todo-read.test.js +0 -162
- package/dist/src/tools/todo-read.test.js.map +0 -1
- package/dist/src/tools/todo-schemas.test.d.ts +0 -6
- package/dist/src/tools/todo-schemas.test.js +0 -341
- package/dist/src/tools/todo-schemas.test.js.map +0 -1
- package/dist/src/tools/todo-store.test.d.ts +0 -6
- package/dist/src/tools/todo-store.test.js +0 -169
- package/dist/src/tools/todo-store.test.js.map +0 -1
- package/dist/src/tools/todo-write.test.d.ts +0 -6
- package/dist/src/tools/todo-write.test.js +0 -226
- package/dist/src/tools/todo-write.test.js.map +0 -1
- package/dist/src/tools/tool-registry.test.d.ts +0 -6
- package/dist/src/tools/tool-registry.test.js +0 -468
- package/dist/src/tools/tool-registry.test.js.map +0 -1
- package/dist/src/tools/tools.test.d.ts +0 -6
- package/dist/src/tools/tools.test.js +0 -117
- package/dist/src/tools/tools.test.js.map +0 -1
- package/dist/src/tools/web-fetch.integration.test.d.ts +0 -6
- package/dist/src/tools/web-fetch.integration.test.js +0 -532
- package/dist/src/tools/web-fetch.integration.test.js.map +0 -1
- package/dist/src/tools/web-search.test.d.ts +0 -6
- package/dist/src/tools/web-search.test.js +0 -229
- package/dist/src/tools/web-search.test.js.map +0 -1
- package/dist/src/tools/write-file.test.d.ts +0 -6
- package/dist/src/tools/write-file.test.js +0 -464
- package/dist/src/tools/write-file.test.js.map +0 -1
- package/dist/src/utils/bfsFileSearch.test.d.ts +0 -6
- package/dist/src/utils/bfsFileSearch.test.js +0 -191
- package/dist/src/utils/bfsFileSearch.test.js.map +0 -1
- package/dist/src/utils/editCorrector.test.d.ts +0 -6
- package/dist/src/utils/editCorrector.test.js +0 -564
- package/dist/src/utils/editCorrector.test.js.map +0 -1
- package/dist/src/utils/editor.test.d.ts +0 -6
- package/dist/src/utils/editor.test.js +0 -445
- package/dist/src/utils/editor.test.js.map +0 -1
- package/dist/src/utils/environmentContext.test.d.ts +0 -6
- package/dist/src/utils/environmentContext.test.js +0 -139
- package/dist/src/utils/environmentContext.test.js.map +0 -1
- package/dist/src/utils/errorReporting.test.d.ts +0 -6
- package/dist/src/utils/errorReporting.test.js +0 -130
- package/dist/src/utils/errorReporting.test.js.map +0 -1
- package/dist/src/utils/fileUtils.test.d.ts +0 -6
- package/dist/src/utils/fileUtils.test.js +0 -363
- package/dist/src/utils/fileUtils.test.js.map +0 -1
- package/dist/src/utils/filesearch/crawlCache.test.d.ts +0 -6
- package/dist/src/utils/filesearch/crawlCache.test.js +0 -103
- package/dist/src/utils/filesearch/crawlCache.test.js.map +0 -1
- package/dist/src/utils/filesearch/fileSearch.test.d.ts +0 -6
- package/dist/src/utils/filesearch/fileSearch.test.js +0 -654
- package/dist/src/utils/filesearch/fileSearch.test.js.map +0 -1
- package/dist/src/utils/filesearch/ignore.test.d.ts +0 -6
- package/dist/src/utils/filesearch/ignore.test.js +0 -57
- package/dist/src/utils/filesearch/ignore.test.js.map +0 -1
- package/dist/src/utils/filesearch/result-cache.test.d.ts +0 -6
- package/dist/src/utils/filesearch/result-cache.test.js +0 -47
- package/dist/src/utils/filesearch/result-cache.test.js.map +0 -1
- package/dist/src/utils/flashFallback.integration.test.d.ts +0 -6
- package/dist/src/utils/flashFallback.integration.test.js +0 -120
- package/dist/src/utils/flashFallback.integration.test.js.map +0 -1
- package/dist/src/utils/generateContentResponseUtilities.test.d.ts +0 -6
- package/dist/src/utils/generateContentResponseUtilities.test.js +0 -273
- package/dist/src/utils/generateContentResponseUtilities.test.js.map +0 -1
- package/dist/src/utils/getFolderStructure.test.d.ts +0 -6
- package/dist/src/utils/getFolderStructure.test.js +0 -282
- package/dist/src/utils/getFolderStructure.test.js.map +0 -1
- package/dist/src/utils/gitIgnoreParser.test.d.ts +0 -6
- package/dist/src/utils/gitIgnoreParser.test.js +0 -154
- package/dist/src/utils/gitIgnoreParser.test.js.map +0 -1
- package/dist/src/utils/memoryDiscovery.test.d.ts +0 -6
- package/dist/src/utils/memoryDiscovery.test.js +0 -181
- package/dist/src/utils/memoryDiscovery.test.js.map +0 -1
- package/dist/src/utils/memoryImportProcessor.test.d.ts +0 -6
- package/dist/src/utils/memoryImportProcessor.test.js +0 -715
- package/dist/src/utils/memoryImportProcessor.test.js.map +0 -1
- package/dist/src/utils/nextSpeakerChecker.test.d.ts +0 -6
- package/dist/src/utils/nextSpeakerChecker.test.js +0 -172
- package/dist/src/utils/nextSpeakerChecker.test.js.map +0 -1
- package/dist/src/utils/partUtils.test.d.ts +0 -6
- package/dist/src/utils/partUtils.test.js +0 -130
- package/dist/src/utils/partUtils.test.js.map +0 -1
- package/dist/src/utils/paths.test.d.ts +0 -6
- package/dist/src/utils/paths.test.js +0 -153
- package/dist/src/utils/paths.test.js.map +0 -1
- package/dist/src/utils/retry.test.d.ts +0 -6
- package/dist/src/utils/retry.test.js +0 -322
- package/dist/src/utils/retry.test.js.map +0 -1
- package/dist/src/utils/safeJsonStringify.test.d.ts +0 -6
- package/dist/src/utils/safeJsonStringify.test.js +0 -61
- package/dist/src/utils/safeJsonStringify.test.js.map +0 -1
- package/dist/src/utils/sanitization.test.d.ts +0 -6
- package/dist/src/utils/sanitization.test.js +0 -81
- package/dist/src/utils/sanitization.test.js.map +0 -1
- package/dist/src/utils/schemaValidator.test.d.ts +0 -6
- package/dist/src/utils/schemaValidator.test.js +0 -146
- package/dist/src/utils/schemaValidator.test.js.map +0 -1
- package/dist/src/utils/secure-browser-launcher.test.d.ts +0 -6
- package/dist/src/utils/secure-browser-launcher.test.js +0 -149
- package/dist/src/utils/secure-browser-launcher.test.js.map +0 -1
- package/dist/src/utils/shell-utils.shellReplacement.test.d.ts +0 -6
- package/dist/src/utils/shell-utils.shellReplacement.test.js +0 -149
- package/dist/src/utils/shell-utils.shellReplacement.test.js.map +0 -1
- package/dist/src/utils/shell-utils.test.d.ts +0 -6
- package/dist/src/utils/shell-utils.test.js +0 -200
- package/dist/src/utils/shell-utils.test.js.map +0 -1
- package/dist/src/utils/summarizer.test.d.ts +0 -6
- package/dist/src/utils/summarizer.test.js +0 -131
- package/dist/src/utils/summarizer.test.js.map +0 -1
- package/dist/src/utils/systemEncoding.test.d.ts +0 -6
- package/dist/src/utils/systemEncoding.test.js +0 -368
- package/dist/src/utils/systemEncoding.test.js.map +0 -1
- package/dist/src/utils/toolOutputLimiter.test.d.ts +0 -6
- package/dist/src/utils/toolOutputLimiter.test.js +0 -164
- package/dist/src/utils/toolOutputLimiter.test.js.map +0 -1
- package/dist/src/utils/unicodeUtils.test.d.ts +0 -6
- package/dist/src/utils/unicodeUtils.test.js +0 -120
- package/dist/src/utils/unicodeUtils.test.js.map +0 -1
- package/dist/src/utils/user_account.test.d.ts +0 -6
- package/dist/src/utils/user_account.test.js +0 -153
- package/dist/src/utils/user_account.test.js.map +0 -1
- package/dist/src/utils/user_id.test.d.ts +0 -6
- package/dist/src/utils/user_id.test.js +0 -21
- package/dist/src/utils/user_id.test.js.map +0 -1
- package/dist/src/utils/workspaceContext.test.d.ts +0 -6
- package/dist/src/utils/workspaceContext.test.js +0 -209
- package/dist/src/utils/workspaceContext.test.js.map +0 -1
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Vybestack LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Base provider class with authentication precedence logic
|
|
8
|
+
*/
|
|
9
|
+
import { IProvider } from './IProvider.js';
|
|
10
|
+
import { IModel } from './IModel.js';
|
|
11
|
+
import { ITool } from './ITool.js';
|
|
12
|
+
import { IMessage } from './IMessage.js';
|
|
13
|
+
import { AuthPrecedenceResolver, OAuthManager } from '../auth/precedence.js';
|
|
14
|
+
export interface BaseProviderConfig {
|
|
15
|
+
name: string;
|
|
16
|
+
apiKey?: string;
|
|
17
|
+
baseURL?: string;
|
|
18
|
+
commandKey?: string;
|
|
19
|
+
commandKeyfile?: string;
|
|
20
|
+
cliKey?: string;
|
|
21
|
+
cliKeyfile?: string;
|
|
22
|
+
envKeyNames?: string[];
|
|
23
|
+
isOAuthEnabled?: boolean;
|
|
24
|
+
oauthProvider?: string;
|
|
25
|
+
oauthManager?: OAuthManager;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Abstract base provider class that implements authentication precedence logic
|
|
29
|
+
* This class provides lazy OAuth triggering and proper authentication precedence
|
|
30
|
+
*/
|
|
31
|
+
export declare abstract class BaseProvider implements IProvider {
|
|
32
|
+
readonly name: string;
|
|
33
|
+
protected authResolver: AuthPrecedenceResolver;
|
|
34
|
+
protected baseProviderConfig: BaseProviderConfig;
|
|
35
|
+
private cachedAuthToken?;
|
|
36
|
+
private authCacheTimestamp?;
|
|
37
|
+
private readonly AUTH_CACHE_DURATION;
|
|
38
|
+
constructor(config: BaseProviderConfig);
|
|
39
|
+
/**
|
|
40
|
+
* Gets authentication token using the precedence chain
|
|
41
|
+
* This method implements lazy OAuth triggering - only triggers OAuth when actually making API calls
|
|
42
|
+
*/
|
|
43
|
+
protected getAuthToken(): Promise<string>;
|
|
44
|
+
/**
|
|
45
|
+
* Checks if OAuth is enabled for this provider
|
|
46
|
+
*/
|
|
47
|
+
protected isOAuthEnabled(): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Abstract method to determine if this provider supports OAuth
|
|
50
|
+
* Must be implemented by concrete providers
|
|
51
|
+
*/
|
|
52
|
+
protected abstract supportsOAuth(): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Checks if authentication is available without triggering OAuth
|
|
55
|
+
*/
|
|
56
|
+
hasNonOAuthAuthentication(): Promise<boolean>;
|
|
57
|
+
/**
|
|
58
|
+
* Checks if OAuth is the only available authentication method
|
|
59
|
+
*/
|
|
60
|
+
isOAuthOnlyAvailable(): Promise<boolean>;
|
|
61
|
+
/**
|
|
62
|
+
* Gets the current authentication method name for debugging
|
|
63
|
+
*/
|
|
64
|
+
getAuthMethodName(): Promise<string | null>;
|
|
65
|
+
/**
|
|
66
|
+
* Updates the API key (used for CLI --key argument)
|
|
67
|
+
*/
|
|
68
|
+
setApiKey?(apiKey: string): void;
|
|
69
|
+
/**
|
|
70
|
+
* Updates the base URL
|
|
71
|
+
*/
|
|
72
|
+
setBaseUrl?(baseUrl?: string): void;
|
|
73
|
+
/**
|
|
74
|
+
* Updates OAuth configuration
|
|
75
|
+
*/
|
|
76
|
+
protected updateOAuthConfig(isEnabled: boolean, provider?: string, manager?: OAuthManager): void;
|
|
77
|
+
/**
|
|
78
|
+
* Clears the authentication token cache
|
|
79
|
+
*/
|
|
80
|
+
protected clearAuthCache(): void;
|
|
81
|
+
/**
|
|
82
|
+
* Checks if the provider is authenticated using any available method
|
|
83
|
+
*/
|
|
84
|
+
isAuthenticated(): Promise<boolean>;
|
|
85
|
+
abstract getModels(): Promise<IModel[]>;
|
|
86
|
+
abstract getDefaultModel(): string;
|
|
87
|
+
abstract generateChatCompletion(messages: IMessage[], tools?: ITool[], toolFormat?: string): AsyncIterableIterator<unknown>;
|
|
88
|
+
setModel?(_modelId: string): void;
|
|
89
|
+
getCurrentModel?(): string;
|
|
90
|
+
getToolFormat?(): string;
|
|
91
|
+
setToolFormatOverride?(_format: string | null): void;
|
|
92
|
+
isPaidMode?(): boolean;
|
|
93
|
+
clearState?(): void;
|
|
94
|
+
setConfig?(_config: unknown): void;
|
|
95
|
+
getServerTools(): string[];
|
|
96
|
+
invokeServerTool(toolName: string, _params: unknown, _config?: unknown): Promise<unknown>;
|
|
97
|
+
setModelParams?(_params: Record<string, unknown> | undefined): void;
|
|
98
|
+
getModelParams?(): Record<string, unknown> | undefined;
|
|
99
|
+
/**
|
|
100
|
+
* Get setting value from SettingsService
|
|
101
|
+
*/
|
|
102
|
+
protected getProviderSetting<T>(key: keyof ProviderSettings, fallback?: T): Promise<T | undefined>;
|
|
103
|
+
/**
|
|
104
|
+
* Set setting value in SettingsService
|
|
105
|
+
*/
|
|
106
|
+
protected setProviderSetting<T>(key: keyof ProviderSettings, value: T): Promise<void>;
|
|
107
|
+
/**
|
|
108
|
+
* Get API key from SettingsService if available
|
|
109
|
+
*/
|
|
110
|
+
protected getApiKeyFromSettings(): Promise<string | undefined>;
|
|
111
|
+
/**
|
|
112
|
+
* Set API key in SettingsService if available
|
|
113
|
+
*/
|
|
114
|
+
protected setApiKeyInSettings(apiKey: string): Promise<void>;
|
|
115
|
+
/**
|
|
116
|
+
* Get model from SettingsService if available
|
|
117
|
+
*/
|
|
118
|
+
protected getModelFromSettings(): Promise<string | undefined>;
|
|
119
|
+
/**
|
|
120
|
+
* Set model in SettingsService if available
|
|
121
|
+
*/
|
|
122
|
+
protected setModelInSettings(model: string): Promise<void>;
|
|
123
|
+
/**
|
|
124
|
+
* Get base URL from SettingsService if available
|
|
125
|
+
*/
|
|
126
|
+
protected getBaseUrlFromSettings(): Promise<string | undefined>;
|
|
127
|
+
/**
|
|
128
|
+
* Set base URL in SettingsService if available
|
|
129
|
+
*/
|
|
130
|
+
protected setBaseUrlInSettings(baseUrl?: string): Promise<void>;
|
|
131
|
+
/**
|
|
132
|
+
* Get model parameters from SettingsService
|
|
133
|
+
*/
|
|
134
|
+
protected getModelParamsFromSettings(): Promise<Record<string, unknown> | undefined>;
|
|
135
|
+
/**
|
|
136
|
+
* Set model parameters in SettingsService
|
|
137
|
+
*/
|
|
138
|
+
protected setModelParamsInSettings(params: Record<string, unknown> | undefined): Promise<void>;
|
|
139
|
+
}
|
|
140
|
+
interface ProviderSettings {
|
|
141
|
+
enabled: boolean;
|
|
142
|
+
apiKey?: string;
|
|
143
|
+
baseUrl?: string;
|
|
144
|
+
model?: string;
|
|
145
|
+
maxTokens?: number;
|
|
146
|
+
temperature?: number;
|
|
147
|
+
[key: string]: unknown;
|
|
148
|
+
}
|
|
149
|
+
export {};
|
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Vybestack LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { AuthPrecedenceResolver, } from '../auth/precedence.js';
|
|
7
|
+
import { getSettingsService } from '../settings/settingsServiceInstance.js';
|
|
8
|
+
import { UnauthorizedError } from '../utils/errors.js';
|
|
9
|
+
/**
|
|
10
|
+
* Abstract base provider class that implements authentication precedence logic
|
|
11
|
+
* This class provides lazy OAuth triggering and proper authentication precedence
|
|
12
|
+
*/
|
|
13
|
+
export class BaseProvider {
|
|
14
|
+
name;
|
|
15
|
+
authResolver;
|
|
16
|
+
baseProviderConfig;
|
|
17
|
+
cachedAuthToken;
|
|
18
|
+
authCacheTimestamp;
|
|
19
|
+
AUTH_CACHE_DURATION = 60000; // 1 minute in milliseconds
|
|
20
|
+
constructor(config) {
|
|
21
|
+
this.name = config.name;
|
|
22
|
+
this.baseProviderConfig = config;
|
|
23
|
+
// Initialize auth precedence resolver
|
|
24
|
+
// OAuth enablement will be checked dynamically through the manager
|
|
25
|
+
const precedenceConfig = {
|
|
26
|
+
commandKey: config.commandKey,
|
|
27
|
+
commandKeyfile: config.commandKeyfile,
|
|
28
|
+
cliKey: config.cliKey,
|
|
29
|
+
cliKeyfile: config.cliKeyfile,
|
|
30
|
+
envKeyNames: config.envKeyNames || [],
|
|
31
|
+
isOAuthEnabled: true, // Always true if manager exists, manager will check settings
|
|
32
|
+
supportsOAuth: this.supportsOAuth(),
|
|
33
|
+
oauthProvider: config.oauthProvider,
|
|
34
|
+
};
|
|
35
|
+
this.authResolver = new AuthPrecedenceResolver(precedenceConfig, config.oauthManager);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Gets authentication token using the precedence chain
|
|
39
|
+
* This method implements lazy OAuth triggering - only triggers OAuth when actually making API calls
|
|
40
|
+
*/
|
|
41
|
+
async getAuthToken() {
|
|
42
|
+
// Check cache first (short-lived cache to avoid repeated OAuth calls)
|
|
43
|
+
if (this.cachedAuthToken &&
|
|
44
|
+
this.authCacheTimestamp &&
|
|
45
|
+
Date.now() - this.authCacheTimestamp < this.AUTH_CACHE_DURATION) {
|
|
46
|
+
return this.cachedAuthToken;
|
|
47
|
+
}
|
|
48
|
+
// Clear stale cache
|
|
49
|
+
this.cachedAuthToken = undefined;
|
|
50
|
+
this.authCacheTimestamp = undefined;
|
|
51
|
+
// Resolve authentication using precedence chain
|
|
52
|
+
const token = await this.authResolver.resolveAuthentication();
|
|
53
|
+
if (!token) {
|
|
54
|
+
const isOAuthOnly = await this.authResolver.isOAuthOnlyAvailable();
|
|
55
|
+
if (isOAuthOnly) {
|
|
56
|
+
// Special message for Qwen explaining the OAuth limitation
|
|
57
|
+
if (this.baseProviderConfig.oauthProvider === 'qwen') {
|
|
58
|
+
throw new Error(`Qwen OAuth (chat.qwen.ai) doesn't provide API access to DashScope. ` +
|
|
59
|
+
`You need a DashScope API key from https://dashscope.console.aliyun.com/ ` +
|
|
60
|
+
`Use /key <your-api-key> to set it.`);
|
|
61
|
+
}
|
|
62
|
+
throw new UnauthorizedError(`No API key found and OAuth is available but not authenticated for ${this.name} provider. ` +
|
|
63
|
+
`Please authenticate using OAuth or provide an API key.`);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
throw new Error(`No authentication method available for ${this.name} provider`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// Cache the token briefly
|
|
70
|
+
this.cachedAuthToken = token;
|
|
71
|
+
this.authCacheTimestamp = Date.now();
|
|
72
|
+
if (process.env.DEBUG) {
|
|
73
|
+
const authMethod = await this.authResolver.getAuthMethodName();
|
|
74
|
+
console.log(`[${this.name}] Authentication resolved using: ${authMethod}`);
|
|
75
|
+
}
|
|
76
|
+
return token;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Checks if OAuth is enabled for this provider
|
|
80
|
+
*/
|
|
81
|
+
isOAuthEnabled() {
|
|
82
|
+
// OAuth is enabled if we have a manager AND it's enabled in settings
|
|
83
|
+
return !!this.baseProviderConfig.oauthManager;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Checks if authentication is available without triggering OAuth
|
|
87
|
+
*/
|
|
88
|
+
async hasNonOAuthAuthentication() {
|
|
89
|
+
return this.authResolver.hasNonOAuthAuthentication();
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Checks if OAuth is the only available authentication method
|
|
93
|
+
*/
|
|
94
|
+
async isOAuthOnlyAvailable() {
|
|
95
|
+
return this.authResolver.isOAuthOnlyAvailable();
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Gets the current authentication method name for debugging
|
|
99
|
+
*/
|
|
100
|
+
async getAuthMethodName() {
|
|
101
|
+
return this.authResolver.getAuthMethodName();
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Updates the API key (used for CLI --key argument)
|
|
105
|
+
*/
|
|
106
|
+
setApiKey(apiKey) {
|
|
107
|
+
this.baseProviderConfig.cliKey = apiKey;
|
|
108
|
+
this.authResolver.updateConfig({ cliKey: apiKey });
|
|
109
|
+
this.clearAuthCache();
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Updates the base URL
|
|
113
|
+
*/
|
|
114
|
+
setBaseUrl(baseUrl) {
|
|
115
|
+
this.baseProviderConfig.baseURL = baseUrl;
|
|
116
|
+
// Providers may override to implement endpoint-specific OAuth logic
|
|
117
|
+
this.clearAuthCache();
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Updates OAuth configuration
|
|
121
|
+
*/
|
|
122
|
+
updateOAuthConfig(isEnabled, provider, manager) {
|
|
123
|
+
this.baseProviderConfig.isOAuthEnabled = isEnabled;
|
|
124
|
+
this.baseProviderConfig.oauthProvider = provider;
|
|
125
|
+
this.baseProviderConfig.oauthManager = manager;
|
|
126
|
+
this.authResolver.updateConfig({
|
|
127
|
+
isOAuthEnabled: isEnabled,
|
|
128
|
+
supportsOAuth: this.supportsOAuth(),
|
|
129
|
+
oauthProvider: provider,
|
|
130
|
+
});
|
|
131
|
+
if (manager) {
|
|
132
|
+
this.authResolver.updateOAuthManager(manager);
|
|
133
|
+
}
|
|
134
|
+
this.clearAuthCache();
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Clears the authentication token cache
|
|
138
|
+
*/
|
|
139
|
+
clearAuthCache() {
|
|
140
|
+
this.cachedAuthToken = undefined;
|
|
141
|
+
this.authCacheTimestamp = undefined;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Checks if the provider is authenticated using any available method
|
|
145
|
+
*/
|
|
146
|
+
async isAuthenticated() {
|
|
147
|
+
try {
|
|
148
|
+
const token = await this.authResolver.resolveAuthentication();
|
|
149
|
+
return token !== null;
|
|
150
|
+
}
|
|
151
|
+
catch {
|
|
152
|
+
return false;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// Optional methods with default implementations
|
|
156
|
+
setModel(_modelId) { }
|
|
157
|
+
getCurrentModel() {
|
|
158
|
+
return 'default';
|
|
159
|
+
}
|
|
160
|
+
getToolFormat() {
|
|
161
|
+
return 'default';
|
|
162
|
+
}
|
|
163
|
+
setToolFormatOverride(_format) { }
|
|
164
|
+
isPaidMode() {
|
|
165
|
+
return false;
|
|
166
|
+
}
|
|
167
|
+
clearState() {
|
|
168
|
+
this.clearAuthCache();
|
|
169
|
+
}
|
|
170
|
+
setConfig(_config) { }
|
|
171
|
+
getServerTools() {
|
|
172
|
+
return [];
|
|
173
|
+
}
|
|
174
|
+
async invokeServerTool(toolName, _params, _config) {
|
|
175
|
+
throw new Error(`Server tool '${toolName}' not supported by ${this.name} provider`);
|
|
176
|
+
}
|
|
177
|
+
setModelParams(_params) { }
|
|
178
|
+
getModelParams() {
|
|
179
|
+
return undefined;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Get setting value from SettingsService
|
|
183
|
+
*/
|
|
184
|
+
async getProviderSetting(key, fallback) {
|
|
185
|
+
const settingsService = getSettingsService();
|
|
186
|
+
try {
|
|
187
|
+
const settings = await settingsService.getSettings(this.name);
|
|
188
|
+
return settings[key] || fallback;
|
|
189
|
+
}
|
|
190
|
+
catch (error) {
|
|
191
|
+
if (process.env.DEBUG) {
|
|
192
|
+
console.error(`Failed to get ${key} from SettingsService for ${this.name}:`, error);
|
|
193
|
+
}
|
|
194
|
+
return fallback;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Set setting value in SettingsService
|
|
199
|
+
*/
|
|
200
|
+
async setProviderSetting(key, value) {
|
|
201
|
+
const settingsService = getSettingsService();
|
|
202
|
+
try {
|
|
203
|
+
await settingsService.updateSettings(this.name, {
|
|
204
|
+
[key]: value,
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
catch (error) {
|
|
208
|
+
if (process.env.DEBUG) {
|
|
209
|
+
console.error(`Failed to set ${key} in SettingsService for ${this.name}:`, error);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Get API key from SettingsService if available
|
|
215
|
+
*/
|
|
216
|
+
async getApiKeyFromSettings() {
|
|
217
|
+
return this.getProviderSetting('apiKey');
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Set API key in SettingsService if available
|
|
221
|
+
*/
|
|
222
|
+
async setApiKeyInSettings(apiKey) {
|
|
223
|
+
await this.setProviderSetting('apiKey', apiKey);
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Get model from SettingsService if available
|
|
227
|
+
*/
|
|
228
|
+
async getModelFromSettings() {
|
|
229
|
+
return this.getProviderSetting('model');
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Set model in SettingsService if available
|
|
233
|
+
*/
|
|
234
|
+
async setModelInSettings(model) {
|
|
235
|
+
await this.setProviderSetting('model', model);
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Get base URL from SettingsService if available
|
|
239
|
+
*/
|
|
240
|
+
async getBaseUrlFromSettings() {
|
|
241
|
+
return this.getProviderSetting('baseUrl');
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Set base URL in SettingsService if available
|
|
245
|
+
*/
|
|
246
|
+
async setBaseUrlInSettings(baseUrl) {
|
|
247
|
+
await this.setProviderSetting('baseUrl', baseUrl);
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Get model parameters from SettingsService
|
|
251
|
+
*/
|
|
252
|
+
async getModelParamsFromSettings() {
|
|
253
|
+
const settingsService = getSettingsService();
|
|
254
|
+
try {
|
|
255
|
+
const settings = await settingsService.getSettings(this.name);
|
|
256
|
+
// Extract model parameters from settings, excluding standard fields
|
|
257
|
+
const { enabled: _enabled, apiKey: _apiKey, baseUrl: _baseUrl, model: _model, maxTokens, temperature, ...modelParams } = settings;
|
|
258
|
+
// Include temperature and maxTokens as model params if they exist
|
|
259
|
+
const params = {};
|
|
260
|
+
if (temperature !== undefined)
|
|
261
|
+
params.temperature = temperature;
|
|
262
|
+
if (maxTokens !== undefined)
|
|
263
|
+
params.max_tokens = maxTokens;
|
|
264
|
+
return Object.keys(params).length > 0 ||
|
|
265
|
+
Object.keys(modelParams).length > 0
|
|
266
|
+
? { ...params, ...modelParams }
|
|
267
|
+
: undefined;
|
|
268
|
+
}
|
|
269
|
+
catch (error) {
|
|
270
|
+
if (process.env.DEBUG) {
|
|
271
|
+
console.error(`Failed to get model params from SettingsService for ${this.name}:`, error);
|
|
272
|
+
}
|
|
273
|
+
return undefined;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Set model parameters in SettingsService
|
|
278
|
+
*/
|
|
279
|
+
async setModelParamsInSettings(params) {
|
|
280
|
+
const settingsService = getSettingsService();
|
|
281
|
+
try {
|
|
282
|
+
if (params === undefined) {
|
|
283
|
+
// Clear model parameters by setting them to undefined
|
|
284
|
+
await settingsService.updateSettings(this.name, {
|
|
285
|
+
temperature: undefined,
|
|
286
|
+
maxTokens: undefined,
|
|
287
|
+
});
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
290
|
+
// Convert standard model params to settings format
|
|
291
|
+
const updates = {};
|
|
292
|
+
if ('temperature' in params)
|
|
293
|
+
updates.temperature = params.temperature;
|
|
294
|
+
if ('max_tokens' in params)
|
|
295
|
+
updates.maxTokens = params.max_tokens;
|
|
296
|
+
if ('maxTokens' in params)
|
|
297
|
+
updates.maxTokens = params.maxTokens;
|
|
298
|
+
// Store other parameters as custom fields
|
|
299
|
+
for (const [key, value] of Object.entries(params)) {
|
|
300
|
+
if (!['temperature', 'max_tokens', 'maxTokens'].includes(key)) {
|
|
301
|
+
updates[key] = value;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
if (Object.keys(updates).length > 0) {
|
|
305
|
+
await settingsService.updateSettings(this.name, updates);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
catch (error) {
|
|
309
|
+
if (process.env.DEBUG) {
|
|
310
|
+
console.error(`Failed to set model params in SettingsService for ${this.name}:`, error);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
//# sourceMappingURL=BaseProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseProvider.js","sourceRoot":"","sources":["../../../src/providers/BaseProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,7 @@ export interface IProvider {
|
|
|
23
23
|
generateChatCompletion(messages: IMessage[], tools?: ITool[], toolFormat?: string): AsyncIterableIterator<unknown>;
|
|
24
24
|
setModel?(modelId: string): void;
|
|
25
25
|
getCurrentModel?(): string;
|
|
26
|
+
getDefaultModel(): string;
|
|
26
27
|
setApiKey?(apiKey: string): void;
|
|
27
28
|
setBaseUrl?(baseUrl?: string): void;
|
|
28
29
|
getToolFormat?(): string;
|
|
@@ -5,10 +5,15 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { IProvider } from './IProvider.js';
|
|
7
7
|
import { IModel } from './IModel.js';
|
|
8
|
+
import { Config } from '../config/config.js';
|
|
8
9
|
/**
|
|
9
10
|
* Manager for handling multiple providers
|
|
10
11
|
*/
|
|
11
12
|
export interface IProviderManager {
|
|
13
|
+
/**
|
|
14
|
+
* Set the configuration for the provider manager
|
|
15
|
+
*/
|
|
16
|
+
setConfig(config: Config): void;
|
|
12
17
|
/**
|
|
13
18
|
* Register a provider
|
|
14
19
|
*/
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Vybestack LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { IProvider, IModel, ITool, IMessage } from './IProvider.js';
|
|
7
|
+
import { Config } from '../config/config.js';
|
|
8
|
+
export interface ConversationDataRedactor {
|
|
9
|
+
redactMessage(message: IMessage, provider: string): IMessage;
|
|
10
|
+
redactToolCall(tool: ITool): ITool;
|
|
11
|
+
redactResponseContent(content: string, provider: string): string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* A minimal logging wrapper that acts as a transparent passthrough to the wrapped provider.
|
|
15
|
+
* Only intercepts generateChatCompletion to log conversations while forwarding all other
|
|
16
|
+
* methods directly to the wrapped provider without modification.
|
|
17
|
+
*/
|
|
18
|
+
export declare class LoggingProviderWrapper implements IProvider {
|
|
19
|
+
private readonly wrapped;
|
|
20
|
+
private readonly config;
|
|
21
|
+
private conversationId;
|
|
22
|
+
private turnNumber;
|
|
23
|
+
private redactor;
|
|
24
|
+
constructor(wrapped: IProvider, config: Config, redactor?: ConversationDataRedactor);
|
|
25
|
+
/**
|
|
26
|
+
* Access to the wrapped provider for unwrapping if needed
|
|
27
|
+
*/
|
|
28
|
+
get wrappedProvider(): IProvider;
|
|
29
|
+
get name(): string;
|
|
30
|
+
get isDefault(): boolean | undefined;
|
|
31
|
+
getModels(): Promise<IModel[]>;
|
|
32
|
+
getDefaultModel(): string;
|
|
33
|
+
generateChatCompletion(messages: IMessage[], tools?: ITool[], toolFormat?: string): AsyncIterableIterator<unknown>;
|
|
34
|
+
private logRequest;
|
|
35
|
+
private logResponseStream;
|
|
36
|
+
private extractSimpleContent;
|
|
37
|
+
private logResponse;
|
|
38
|
+
private generateConversationId;
|
|
39
|
+
private generatePromptId;
|
|
40
|
+
private logToolCall;
|
|
41
|
+
setModel?(modelId: string): void;
|
|
42
|
+
getCurrentModel?(): string;
|
|
43
|
+
setApiKey?(apiKey: string): void;
|
|
44
|
+
setBaseUrl?(baseUrl?: string): void;
|
|
45
|
+
getToolFormat?(): string;
|
|
46
|
+
setToolFormatOverride?(format: string | null): void;
|
|
47
|
+
isPaidMode?(): boolean;
|
|
48
|
+
clearState?(): void;
|
|
49
|
+
setConfig?(config: unknown): void;
|
|
50
|
+
getServerTools(): string[];
|
|
51
|
+
invokeServerTool(toolName: string, params: unknown, config?: unknown): Promise<unknown>;
|
|
52
|
+
setModelParams?(params: Record<string, unknown> | undefined): void;
|
|
53
|
+
getModelParams?(): Record<string, unknown> | undefined;
|
|
54
|
+
}
|