@vybestack/llxprt-code-core 0.1.19-beta → 0.1.19
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 +6 -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 -2
- package/dist/src/code_assist/converter.js +1 -1
- package/dist/src/code_assist/converter.js.map +1 -1
- package/dist/src/config/config.d.ts +7 -1
- package/dist/src/config/config.js +46 -5
- 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.d.ts +5 -2
- package/dist/src/core/client.js +164 -44
- 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/loggingContentGenerator.d.ts +5 -0
- package/dist/src/core/loggingContentGenerator.js +9 -1
- package/dist/src/core/loggingContentGenerator.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/detect-ide.d.ts +10 -2
- package/dist/src/ide/detect-ide.js +48 -5
- package/dist/src/ide/detect-ide.js.map +1 -1
- package/dist/src/ide/ide-client.js +22 -15
- package/dist/src/ide/ide-client.js.map +1 -1
- package/dist/src/index.d.ts +10 -1
- package/dist/src/index.js +10 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/prompt-config/defaults/core-defaults.d.ts +1 -1
- package/dist/src/prompt-config/defaults/core-defaults.js +21 -326
- package/dist/src/prompt-config/defaults/core-defaults.js.map +1 -1
- package/dist/src/prompt-config/defaults/core.md +1 -1
- package/dist/src/prompt-config/defaults/provider-defaults.d.ts +1 -1
- package/dist/src/prompt-config/defaults/provider-defaults.js +16 -19
- package/dist/src/prompt-config/defaults/provider-defaults.js.map +1 -1
- package/dist/src/prompt-config/defaults/providers/gemini/models/gemini-2.5-flash/core.md +273 -10
- package/dist/src/prompt-config/defaults/providers/gemini/models/gemini-2.5-flash/gemini-2-5-flash/core.md +278 -0
- package/dist/src/prompt-config/defaults/tool-defaults.d.ts +1 -1
- package/dist/src/prompt-config/defaults/tool-defaults.js +27 -75
- package/dist/src/prompt-config/defaults/tool-defaults.js.map +1 -1
- package/dist/src/prompt-config/defaults/tools/read-file.md +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/LoggingProviderWrapper.d.ts +1 -0
- package/dist/src/providers/LoggingProviderWrapper.js +3 -0
- package/dist/src/providers/LoggingProviderWrapper.js.map +1 -1
- package/dist/src/providers/ProviderManager.d.ts +0 -1
- package/dist/src/providers/ProviderManager.js +23 -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 +173 -27
- package/dist/src/providers/anthropic/AnthropicProvider.js.map +1 -1
- package/dist/src/providers/gemini/GeminiProvider.d.ts +20 -7
- package/dist/src/providers/gemini/GeminiProvider.js +182 -147
- package/dist/src/providers/gemini/GeminiProvider.js.map +1 -1
- 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/services/loopDetectionService.js +4 -5
- package/dist/src/services/loopDetectionService.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/tools/edit.js +6 -7
- package/dist/src/tools/edit.js.map +1 -1
- package/dist/src/tools/glob.js +7 -8
- package/dist/src/tools/glob.js.map +1 -1
- package/dist/src/tools/grep.js +6 -7
- package/dist/src/tools/grep.js.map +1 -1
- package/dist/src/tools/ls.js +9 -10
- package/dist/src/tools/ls.js.map +1 -1
- package/dist/src/tools/mcp-tool.d.ts +3 -8
- package/dist/src/tools/mcp-tool.js +5 -18
- package/dist/src/tools/mcp-tool.js.map +1 -1
- package/dist/src/tools/memoryTool.js +4 -5
- package/dist/src/tools/memoryTool.js.map +1 -1
- package/dist/src/tools/read-file.js +5 -6
- package/dist/src/tools/read-file.js.map +1 -1
- package/dist/src/tools/read-many-files.js +17 -18
- package/dist/src/tools/read-many-files.js.map +1 -1
- package/dist/src/tools/shell.js +8 -9
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/tool-registry.d.ts +1 -15
- package/dist/src/tools/tool-registry.js +4 -72
- package/dist/src/tools/tool-registry.js.map +1 -1
- package/dist/src/tools/tools.d.ts +6 -6
- package/dist/src/tools/tools.js +2 -2
- package/dist/src/tools/tools.js.map +1 -1
- package/dist/src/tools/web-fetch.js +3 -4
- package/dist/src/tools/web-fetch.js.map +1 -1
- package/dist/src/tools/web-search.js +3 -4
- package/dist/src/tools/web-search.js.map +1 -1
- package/dist/src/tools/write-file.js +4 -5
- package/dist/src/tools/write-file.js.map +1 -1
- package/dist/src/utils/editCorrector.js +8 -9
- package/dist/src/utils/editCorrector.js.map +1 -1
- package/dist/src/utils/nextSpeakerChecker.js +3 -4
- package/dist/src/utils/nextSpeakerChecker.js.map +1 -1
- package/dist/src/utils/schemaValidator.d.ts +1 -9
- package/dist/src/utils/schemaValidator.js +1 -109
- package/dist/src/utils/schemaValidator.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 -279
- 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 -134
- 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.ephemeral.test.d.ts +0 -6
- package/dist/src/config/config.ephemeral.test.js +0 -152
- package/dist/src/config/config.ephemeral.test.js.map +0 -1
- package/dist/src/config/config.test.d.ts +0 -6
- package/dist/src/config/config.test.js +0 -369
- 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 -1322
- 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 -467
- 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 -484
- 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/clearcut-logger/clearcut-logger.test.d.ts +0 -6
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +0 -187
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +0 -1
- package/dist/src/telemetry/loggers.test.d.ts +0 -6
- package/dist/src/telemetry/loggers.test.js +0 -573
- 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 -212
- 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 -518
- 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/diffOptions.test.d.ts +0 -6
- package/dist/src/tools/diffOptions.test.js +0 -119
- package/dist/src/tools/diffOptions.test.js.map +0 -1
- package/dist/src/tools/edit.test.d.ts +0 -6
- package/dist/src/tools/edit.test.js +0 -689
- 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 -332
- 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 -272
- 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 -617
- 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 -319
- 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 -367
- package/dist/src/tools/shell.test.js.map +0 -1
- package/dist/src/tools/todo-pause.spec.d.ts +0 -6
- package/dist/src/tools/todo-pause.spec.js +0 -287
- package/dist/src/tools/todo-pause.spec.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 -230
- 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 -465
- 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
|
@@ -1,81 +1,33 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Tool-specific default prompts
|
|
3
|
-
* These constants
|
|
3
|
+
* These constants reference the corresponding .md files for default content
|
|
4
4
|
*/
|
|
5
|
+
import { readFileSync } from 'node:fs';
|
|
6
|
+
import { join, dirname } from 'node:path';
|
|
7
|
+
import { fileURLToPath } from 'node:url';
|
|
8
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
9
|
+
function loadMarkdownFile(filename) {
|
|
10
|
+
try {
|
|
11
|
+
return readFileSync(join(__dirname, filename), 'utf-8');
|
|
12
|
+
}
|
|
13
|
+
catch (_error) {
|
|
14
|
+
console.warn(`Warning: Could not load ${filename}, using empty content`);
|
|
15
|
+
return '';
|
|
16
|
+
}
|
|
17
|
+
}
|
|
5
18
|
export const TOOL_DEFAULTS = {
|
|
6
|
-
'tools/shell.md':
|
|
7
|
-
-
|
|
8
|
-
|
|
9
|
-
-
|
|
10
|
-
|
|
11
|
-
'tools/
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
-
|
|
15
|
-
'tools/
|
|
16
|
-
-
|
|
17
|
-
'tools/
|
|
18
|
-
-
|
|
19
|
-
- Some tools you may especially find useful are '\${WriteFileTool.Name}', '\${EditTool.Name}' and '\${ShellTool.Name}'.
|
|
20
|
-
- When asked to create files, use the '\${WriteFileTool.Name}' tool`,
|
|
21
|
-
'tools/grep.md': `- Use '\${GrepTool.Name}' and '\${GlobTool.Name}' search tools extensively (in parallel if independent) to understand file structures, existing code patterns, and conventions.
|
|
22
|
-
- When asked to search for patterns in files, use the '\${GrepTool.Name}' tool`,
|
|
23
|
-
'tools/glob.md': `- Use '\${GrepTool.Name}' and '\${GlobTool.Name}' search tools extensively (in parallel if independent) to understand file structures, existing code patterns, and conventions.
|
|
24
|
-
- When asked to find files by name, use the '\${GlobTool.Name}' tool`,
|
|
25
|
-
'tools/ls.md': `- When asked to list files or directories, use the '\${LSTool.Name}' tool`,
|
|
26
|
-
'tools/memory.md': `- **Remembering Facts:** Use the '\${MemoryTool.Name}' tool to remember specific, *user-related* facts or preferences when the user explicitly asks, or when they state a clear, concise piece of information that would help personalize or streamline *your future interactions with them* (e.g., preferred coding style, common project paths they use, personal tool aliases). This tool is for user-specific information that should persist across sessions. Do *not* use it for general project context or information. If unsure whether to save something, you can ask the user, "Should I remember that for you?"`,
|
|
27
|
-
'tools/read-many-files.md': `- Use '\${ReadFileTool.Name}' and '\${ReadManyFilesTool.Name}' to understand context and validate any assumptions you may have.
|
|
28
|
-
- Never make assumptions about the contents of files; instead use '\${ReadFileTool.Name}' or '\${ReadManyFilesTool.Name}' to ensure you aren't making broad assumptions.`,
|
|
29
|
-
'tools/todo-read.md': `# Task Management
|
|
30
|
-
You have access to the TodoWrite and TodoRead tools to help you manage and plan tasks. Use these tools VERY frequently to ensure that you are tracking your tasks and giving the user visibility into your progress.`,
|
|
31
|
-
'tools/todo-write.md': `# Task Management
|
|
32
|
-
You have access to the TodoWrite and TodoRead tools to help you manage and plan tasks. Use these tools VERY frequently to ensure that you are tracking your tasks and giving the user visibility into your progress.
|
|
33
|
-
|
|
34
|
-
## When to Use This Tool
|
|
35
|
-
Use this tool proactively in these scenarios:
|
|
36
|
-
|
|
37
|
-
1. Complex multi-step tasks - When a task requires 3 or more distinct steps or actions
|
|
38
|
-
2. Non-trivial and complex tasks - Tasks that require careful planning or multiple operations
|
|
39
|
-
3. User explicitly requests todo list - When the user directly asks you to use the todo list
|
|
40
|
-
4. User provides multiple tasks - When users provide a list of things to be done (numbered or comma-separated)
|
|
41
|
-
5. After receiving new instructions - Immediately capture user requirements as todos
|
|
42
|
-
6. When you start working on a task - Mark it as in_progress BEFORE beginning work
|
|
43
|
-
7. After completing a task - Mark it as completed and add any new follow-up tasks discovered during implementation
|
|
44
|
-
|
|
45
|
-
## When NOT to Use This Tool
|
|
46
|
-
Skip using this tool when:
|
|
47
|
-
1. There is only a single, straightforward task
|
|
48
|
-
2. The task is trivial and tracking it provides no organizational benefit
|
|
49
|
-
3. The task can be completed in less than 3 trivial steps
|
|
50
|
-
4. The task is purely conversational or informational
|
|
51
|
-
|
|
52
|
-
## Task States and Management
|
|
53
|
-
1. **Task States**: Use these states to track progress:
|
|
54
|
-
- pending: Task not yet started
|
|
55
|
-
- in_progress: Currently working on (limit to ONE task at a time)
|
|
56
|
-
- completed: Task finished successfully
|
|
57
|
-
|
|
58
|
-
2. **Task Management**:
|
|
59
|
-
- Update task status in real-time as you work
|
|
60
|
-
- Mark tasks complete IMMEDIATELY after finishing (don't batch completions)
|
|
61
|
-
- Only have ONE task in_progress at any time
|
|
62
|
-
- Complete current tasks before starting new ones
|
|
63
|
-
- Remove tasks that are no longer relevant from the list entirely
|
|
64
|
-
|
|
65
|
-
3. **Task Completion Requirements**:
|
|
66
|
-
- ONLY mark a task as completed when you have FULLY accomplished it
|
|
67
|
-
- If you encounter errors, blockers, or cannot finish, keep the task as in_progress
|
|
68
|
-
- When blocked, create a new task describing what needs to be resolved
|
|
69
|
-
- Never mark a task as completed if:
|
|
70
|
-
- Tests are failing
|
|
71
|
-
- Implementation is partial
|
|
72
|
-
- You encountered unresolved errors
|
|
73
|
-
- You couldn't find necessary files or dependencies
|
|
74
|
-
|
|
75
|
-
When in doubt, use this tool. Being proactive with task management demonstrates attentiveness and ensures you complete all requirements successfully.`,
|
|
76
|
-
'tools/web-fetch.md': `# Web Fetch Tool
|
|
77
|
-
Use this tool to fetch content from URLs when needed.`,
|
|
78
|
-
'tools/web-search.md': `# Web Search Tool
|
|
79
|
-
Use this tool to search the web when needed.`,
|
|
19
|
+
'tools/shell.md': loadMarkdownFile('tools/shell.md'),
|
|
20
|
+
'tools/read-file.md': loadMarkdownFile('tools/read-file.md'),
|
|
21
|
+
'tools/edit.md': loadMarkdownFile('tools/edit.md'),
|
|
22
|
+
'tools/write-file.md': loadMarkdownFile('tools/write-file.md'),
|
|
23
|
+
'tools/grep.md': loadMarkdownFile('tools/grep.md'),
|
|
24
|
+
'tools/glob.md': loadMarkdownFile('tools/glob.md'),
|
|
25
|
+
'tools/ls.md': loadMarkdownFile('tools/ls.md'),
|
|
26
|
+
'tools/memory.md': loadMarkdownFile('tools/memory.md'),
|
|
27
|
+
'tools/read-many-files.md': loadMarkdownFile('tools/read-many-files.md'),
|
|
28
|
+
'tools/todo-read.md': loadMarkdownFile('tools/todo-read.md'),
|
|
29
|
+
'tools/todo-write.md': loadMarkdownFile('tools/todo-write.md'),
|
|
30
|
+
'tools/web-fetch.md': loadMarkdownFile('tools/web-fetch.md'),
|
|
31
|
+
'tools/web-search.md': loadMarkdownFile('tools/web-search.md'),
|
|
80
32
|
};
|
|
81
33
|
//# sourceMappingURL=tool-defaults.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-defaults.js","sourceRoot":"","sources":["../../../../src/prompt-config/defaults/tool-defaults.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,aAAa,GAA2B;IACnD,gBAAgB,EAAE
|
|
1
|
+
{"version":3,"file":"tool-defaults.js","sourceRoot":"","sources":["../../../../src/prompt-config/defaults/tool-defaults.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,SAAS,gBAAgB,CAAC,QAAgB;IACxC,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,2BAA2B,QAAQ,uBAAuB,CAAC,CAAC;QACzE,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAA2B;IACnD,gBAAgB,EAAE,gBAAgB,CAAC,gBAAgB,CAAC;IACpD,oBAAoB,EAAE,gBAAgB,CAAC,oBAAoB,CAAC;IAC5D,eAAe,EAAE,gBAAgB,CAAC,eAAe,CAAC;IAClD,qBAAqB,EAAE,gBAAgB,CAAC,qBAAqB,CAAC;IAC9D,eAAe,EAAE,gBAAgB,CAAC,eAAe,CAAC;IAClD,eAAe,EAAE,gBAAgB,CAAC,eAAe,CAAC;IAClD,aAAa,EAAE,gBAAgB,CAAC,aAAa,CAAC;IAC9C,iBAAiB,EAAE,gBAAgB,CAAC,iBAAiB,CAAC;IACtD,0BAA0B,EAAE,gBAAgB,CAAC,0BAA0B,CAAC;IACxE,oBAAoB,EAAE,gBAAgB,CAAC,oBAAoB,CAAC;IAC5D,qBAAqB,EAAE,gBAAgB,CAAC,qBAAqB,CAAC;IAC9D,oBAAoB,EAAE,gBAAgB,CAAC,oBAAoB,CAAC;IAC5D,qBAAqB,EAAE,gBAAgB,CAAC,qBAAqB,CAAC;CAC/D,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
- **File Paths:** Always use absolute paths when referring to files with tools like '${ReadFileTool.Name}' or '${WriteFileTool.Name}'. Relative paths are not supported. You must provide an absolute path.
|
|
2
|
-
- **Path Construction:** Before using any file system tool (e.g., ${ReadFileTool.Name}' or '${WriteFileTool.Name}'), you must construct the full absolute path for the
|
|
2
|
+
- **Path Construction:** Before using any file system tool (e.g., ${ReadFileTool.Name}' or '${WriteFileTool.Name}'), you must construct the full absolute path for the absolute_path argument. Always combine the absolute path of the project's root directory with the file's path relative to the root. For example, if the project root is /path/to/project/ and the file is foo/bar/baz.txt, the final path you must use is /path/to/project/foo/bar/baz.txt. If the user provides a relative path, you must resolve it against the root directory to create an absolute path.
|
|
3
3
|
- Use '${ReadFileTool.Name}' and '${ReadManyFilesTool.Name}' to understand context and validate any assumptions you may have.
|
|
4
4
|
- Never make assumptions about the contents of files; instead use '${ReadFileTool.Name}' or '${ReadManyFilesTool.Name}' to ensure you aren't making broad assumptions.
|
|
@@ -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: config.isOAuthEnabled ?? false, // Use the config value, which can be updated
|
|
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":"AAAA;;;;GAIG;AAUH,OAAO,EACL,sBAAsB,GAGvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAqBvD;;;GAGG;AACH,MAAM,OAAgB,YAAY;IACvB,IAAI,CAAS;IACZ,YAAY,CAAyB;IACrC,kBAAkB,CAAqB;IACzC,eAAe,CAAU;IACzB,kBAAkB,CAAU;IACnB,mBAAmB,GAAG,KAAK,CAAC,CAAC,2BAA2B;IAEzE,YAAY,MAA0B;QACpC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC;QAEjC,sCAAsC;QACtC,mEAAmE;QACnE,MAAM,gBAAgB,GAAyB;YAC7C,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;YACrC,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,KAAK,EAAE,6CAA6C;YAC7F,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE;YACnC,aAAa,EAAE,MAAM,CAAC,aAAa;SACpC,CAAC;QAEF,IAAI,CAAC,YAAY,GAAG,IAAI,sBAAsB,CAC5C,gBAAgB,EAChB,MAAM,CAAC,YAAY,CACpB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,YAAY;QAC1B,sEAAsE;QACtE,IACE,IAAI,CAAC,eAAe;YACpB,IAAI,CAAC,kBAAkB;YACvB,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,EAC/D,CAAC;YACD,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;QAED,oBAAoB;QACpB,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QACjC,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;QAEpC,gDAAgD;QAChD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,CAAC;QAE9D,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,CAAC;YAEnE,IAAI,WAAW,EAAE,CAAC;gBAChB,2DAA2D;gBAC3D,IAAI,IAAI,CAAC,kBAAkB,CAAC,aAAa,KAAK,MAAM,EAAE,CAAC;oBACrD,MAAM,IAAI,KAAK,CACb,qEAAqE;wBACnE,0EAA0E;wBAC1E,oCAAoC,CACvC,CAAC;gBACJ,CAAC;gBACD,MAAM,IAAI,iBAAiB,CACzB,qEAAqE,IAAI,CAAC,IAAI,aAAa;oBACzF,wDAAwD,CAC3D,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CACb,0CAA0C,IAAI,CAAC,IAAI,WAAW,CAC/D,CAAC;YACJ,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAErC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC;YAC/D,OAAO,CAAC,GAAG,CACT,IAAI,IAAI,CAAC,IAAI,oCAAoC,UAAU,EAAE,CAC9D,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACO,cAAc;QACtB,qEAAqE;QACrE,OAAO,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC;IAChD,CAAC;IAQD;;OAEG;IACH,KAAK,CAAC,yBAAyB;QAC7B,OAAO,IAAI,CAAC,YAAY,CAAC,yBAAyB,EAAE,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oBAAoB;QACxB,OAAO,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB;QACrB,OAAO,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,SAAS,CAAE,MAAc;QACvB,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,MAAM,CAAC;QACxC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,UAAU,CAAE,OAAgB;QAC1B,IAAI,CAAC,kBAAkB,CAAC,OAAO,GAAG,OAAO,CAAC;QAC1C,oEAAoE;QACpE,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IACO,iBAAiB,CACzB,SAAkB,EAClB,QAAiB,EACjB,OAAsB;QAEtB,IAAI,CAAC,kBAAkB,CAAC,cAAc,GAAG,SAAS,CAAC;QACnD,IAAI,CAAC,kBAAkB,CAAC,aAAa,GAAG,QAAQ,CAAC;QACjD,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,OAAO,CAAC;QAE/C,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YAC7B,cAAc,EAAE,SAAS;YACzB,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE;YACnC,aAAa,EAAE,QAAQ;SACxB,CAAC,CAAC;QAEH,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IACO,cAAc;QACtB,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QACjC,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe;QACnB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,CAAC;YAC9D,OAAO,KAAK,KAAK,IAAI,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAWD,gDAAgD;IAChD,QAAQ,CAAE,QAAgB,IAAS,CAAC;IACpC,eAAe;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,aAAa;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,qBAAqB,CAAE,OAAsB,IAAS,CAAC;IACvD,UAAU;QACR,OAAO,KAAK,CAAC;IACf,CAAC;IACD,UAAU;QACR,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IACD,SAAS,CAAE,OAAgB,IAAS,CAAC;IACrC,cAAc;QACZ,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,KAAK,CAAC,gBAAgB,CACpB,QAAgB,EAChB,OAAgB,EAChB,OAAiB;QAEjB,MAAM,IAAI,KAAK,CACb,gBAAgB,QAAQ,sBAAsB,IAAI,CAAC,IAAI,WAAW,CACnE,CAAC;IACJ,CAAC;IACD,cAAc,CAAE,OAA4C,IAAS,CAAC;IACtE,cAAc;QACZ,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,kBAAkB,CAChC,GAA2B,EAC3B,QAAY;QAEZ,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;QAE7C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9D,OAAQ,QAAQ,CAAC,GAAG,CAAO,IAAI,QAAQ,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;gBACtB,OAAO,CAAC,KAAK,CACX,iBAAiB,GAAG,6BAA6B,IAAI,CAAC,IAAI,GAAG,EAC7D,KAAK,CACN,CAAC;YACJ,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,kBAAkB,CAChC,GAA2B,EAC3B,KAAQ;QAER,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;QAE7C,IAAI,CAAC;YACH,MAAM,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE;gBAC9C,CAAC,GAAG,CAAC,EAAE,KAAK;aACb,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;gBACtB,OAAO,CAAC,KAAK,CACX,iBAAiB,GAAG,2BAA2B,IAAI,CAAC,IAAI,GAAG,EAC3D,KAAK,CACN,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,qBAAqB;QACnC,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,mBAAmB,CAAC,MAAc;QAChD,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,oBAAoB;QAClC,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,kBAAkB,CAAC,KAAa;QAC9C,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,sBAAsB;QACpC,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,oBAAoB,CAAC,OAAgB;QACnD,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,0BAA0B;QAGxC,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;QAE7C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE9D,oEAAoE;YACpE,MAAM,EACJ,OAAO,EAAE,QAAQ,EACjB,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,QAAQ,EACjB,KAAK,EAAE,MAAM,EACb,SAAS,EACT,WAAW,EACX,GAAG,WAAW,EACf,GAAG,QAAQ,CAAC;YAEb,kEAAkE;YAClE,MAAM,MAAM,GAA4B,EAAE,CAAC;YAC3C,IAAI,WAAW,KAAK,SAAS;gBAAE,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;YAChE,IAAI,SAAS,KAAK,SAAS;gBAAE,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC;YAE3D,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC;gBACnC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC;gBACnC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,WAAW,EAAE;gBAC/B,CAAC,CAAC,SAAS,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;gBACtB,OAAO,CAAC,KAAK,CACX,uDAAuD,IAAI,CAAC,IAAI,GAAG,EACnE,KAAK,CACN,CAAC;YACJ,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,wBAAwB,CACtC,MAA2C;QAE3C,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;QAE7C,IAAI,CAAC;YACH,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,sDAAsD;gBACtD,MAAM,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE;oBAC9C,WAAW,EAAE,SAAS;oBACtB,SAAS,EAAE,SAAS;iBACrB,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,mDAAmD;YACnD,MAAM,OAAO,GAA4B,EAAE,CAAC;YAC5C,IAAI,aAAa,IAAI,MAAM;gBAAE,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;YACtE,IAAI,YAAY,IAAI,MAAM;gBAAE,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC;YAClE,IAAI,WAAW,IAAI,MAAM;gBAAE,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;YAEhE,0CAA0C;YAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,IAAI,CAAC,CAAC,aAAa,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC9D,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACvB,CAAC;YACH,CAAC;YAED,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpC,MAAM,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;gBACtB,OAAO,CAAC,KAAK,CACX,qDAAqD,IAAI,CAAC,IAAI,GAAG,EACjE,KAAK,CACN,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -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;
|
|
@@ -29,6 +29,7 @@ export declare class LoggingProviderWrapper implements IProvider {
|
|
|
29
29
|
get name(): string;
|
|
30
30
|
get isDefault(): boolean | undefined;
|
|
31
31
|
getModels(): Promise<IModel[]>;
|
|
32
|
+
getDefaultModel(): string;
|
|
32
33
|
generateChatCompletion(messages: IMessage[], tools?: ITool[], toolFormat?: string): AsyncIterableIterator<unknown>;
|
|
33
34
|
private logRequest;
|
|
34
35
|
private logResponseStream;
|
|
@@ -131,6 +131,9 @@ export class LoggingProviderWrapper {
|
|
|
131
131
|
async getModels() {
|
|
132
132
|
return this.wrapped.getModels();
|
|
133
133
|
}
|
|
134
|
+
getDefaultModel() {
|
|
135
|
+
return this.wrapped.getDefaultModel();
|
|
136
|
+
}
|
|
134
137
|
// Only method that includes logging - everything else is passthrough
|
|
135
138
|
async *generateChatCompletion(messages, tools, toolFormat) {
|
|
136
139
|
const promptId = this.generatePromptId();
|