@vybestack/llxprt-code-core 0.1.18-nightly.250808.f9b79d74 → 0.1.18-nightly.250811.b0db22c6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/dist/index.d.ts +3 -0
  2. package/dist/index.js +3 -0
  3. package/dist/index.js.map +1 -1
  4. package/dist/src/auth/auth-integration.spec.d.ts +6 -0
  5. package/dist/src/auth/auth-integration.spec.js +384 -0
  6. package/dist/src/auth/auth-integration.spec.js.map +1 -0
  7. package/dist/src/auth/precedence.d.ts +55 -0
  8. package/dist/src/auth/precedence.js +211 -0
  9. package/dist/src/auth/precedence.js.map +1 -0
  10. package/dist/src/auth/precedence.test.d.ts +6 -0
  11. package/dist/src/auth/precedence.test.js +374 -0
  12. package/dist/src/auth/precedence.test.js.map +1 -0
  13. package/dist/src/auth/qwen-device-flow.d.ts +45 -0
  14. package/dist/src/auth/qwen-device-flow.js +179 -0
  15. package/dist/src/auth/qwen-device-flow.js.map +1 -0
  16. package/dist/src/auth/qwen-device-flow.spec.d.ts +6 -0
  17. package/dist/src/auth/qwen-device-flow.spec.js +793 -0
  18. package/dist/src/auth/qwen-device-flow.spec.js.map +1 -0
  19. package/dist/src/auth/token-store.d.ts +66 -0
  20. package/dist/src/auth/token-store.js +147 -0
  21. package/dist/src/auth/token-store.js.map +1 -0
  22. package/dist/src/auth/token-store.spec.d.ts +6 -0
  23. package/dist/src/auth/token-store.spec.js +405 -0
  24. package/dist/src/auth/token-store.spec.js.map +1 -0
  25. package/dist/src/auth/types.d.ts +130 -0
  26. package/dist/src/auth/types.js +60 -0
  27. package/dist/src/auth/types.js.map +1 -0
  28. package/dist/src/code_assist/converter.d.ts +2 -1
  29. package/dist/src/code_assist/converter.js +1 -1
  30. package/dist/src/code_assist/converter.js.map +1 -1
  31. package/dist/src/code_assist/converter.test.js +48 -1
  32. package/dist/src/code_assist/converter.test.js.map +1 -1
  33. package/dist/src/code_assist/oauth2.js +2 -1
  34. package/dist/src/code_assist/oauth2.js.map +1 -1
  35. package/dist/src/code_assist/server.test.js +4 -1
  36. package/dist/src/code_assist/server.test.js.map +1 -1
  37. package/dist/src/config/config.d.ts +71 -2
  38. package/dist/src/config/config.ephemeral.test.d.ts +6 -0
  39. package/dist/src/config/config.ephemeral.test.js +152 -0
  40. package/dist/src/config/config.ephemeral.test.js.map +1 -0
  41. package/dist/src/config/config.js +117 -2
  42. package/dist/src/config/config.js.map +1 -1
  43. package/dist/src/config/config.test.js +8 -0
  44. package/dist/src/config/config.test.js.map +1 -1
  45. package/dist/src/config/endpoints.d.ts +60 -0
  46. package/dist/src/config/endpoints.js +126 -0
  47. package/dist/src/config/endpoints.js.map +1 -0
  48. package/dist/src/config/endpoints.test.d.ts +6 -0
  49. package/dist/src/config/endpoints.test.js +196 -0
  50. package/dist/src/config/endpoints.test.js.map +1 -0
  51. package/dist/src/core/client.js +16 -16
  52. package/dist/src/core/client.js.map +1 -1
  53. package/dist/src/core/client.test.js +13 -7
  54. package/dist/src/core/client.test.js.map +1 -1
  55. package/dist/src/core/contentGenerator.d.ts +3 -1
  56. package/dist/src/core/contentGenerator.js +2 -0
  57. package/dist/src/core/contentGenerator.js.map +1 -1
  58. package/dist/src/core/logger.d.ts +1 -0
  59. package/dist/src/core/logger.js +18 -0
  60. package/dist/src/core/logger.js.map +1 -1
  61. package/dist/src/core/logger.test.js +29 -0
  62. package/dist/src/core/logger.test.js.map +1 -1
  63. package/dist/src/core/loggingContentGenerator.d.ts +24 -0
  64. package/dist/src/core/loggingContentGenerator.js +89 -0
  65. package/dist/src/core/loggingContentGenerator.js.map +1 -0
  66. package/dist/src/core/nonInteractiveToolExecutor.js +17 -0
  67. package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
  68. package/dist/src/core/subagent.js +12 -10
  69. package/dist/src/core/subagent.js.map +1 -1
  70. package/dist/src/core/subagent.test.js +8 -17
  71. package/dist/src/core/subagent.test.js.map +1 -1
  72. package/dist/src/ide/ide-client.d.ts +2 -2
  73. package/dist/src/ide/ide-client.js +56 -18
  74. package/dist/src/ide/ide-client.js.map +1 -1
  75. package/dist/src/index.d.ts +5 -0
  76. package/dist/src/index.js +7 -0
  77. package/dist/src/index.js.map +1 -1
  78. package/dist/src/integration-tests/oauth-integration.spec.d.ts +6 -0
  79. package/dist/src/integration-tests/oauth-integration.spec.js +518 -0
  80. package/dist/src/integration-tests/oauth-integration.spec.js.map +1 -0
  81. package/dist/src/integration-tests/oauth-simple-test.spec.d.ts +1 -0
  82. package/dist/src/integration-tests/oauth-simple-test.spec.js +88 -0
  83. package/dist/src/integration-tests/oauth-simple-test.spec.js.map +1 -0
  84. package/dist/src/providers/BaseProvider.d.ts +98 -0
  85. package/dist/src/providers/BaseProvider.js +180 -0
  86. package/dist/src/providers/BaseProvider.js.map +1 -0
  87. package/dist/src/providers/BaseProvider.test.d.ts +6 -0
  88. package/dist/src/providers/BaseProvider.test.js +472 -0
  89. package/dist/src/providers/BaseProvider.test.js.map +1 -0
  90. package/dist/src/providers/IProviderManager.d.ts +5 -0
  91. package/dist/src/providers/LoggingProviderWrapper.d.ts +53 -0
  92. package/dist/src/providers/LoggingProviderWrapper.js +347 -0
  93. package/dist/src/providers/LoggingProviderWrapper.js.map +1 -0
  94. package/dist/src/providers/ProviderManager.d.ts +20 -0
  95. package/dist/src/providers/ProviderManager.js +214 -1
  96. package/dist/src/providers/ProviderManager.js.map +1 -1
  97. package/dist/src/providers/gemini/GeminiProvider.d.ts +12 -7
  98. package/dist/src/providers/gemini/GeminiProvider.js +130 -147
  99. package/dist/src/providers/gemini/GeminiProvider.js.map +1 -1
  100. package/dist/src/providers/integration/multi-provider.integration.test.js +18 -2
  101. package/dist/src/providers/integration/multi-provider.integration.test.js.map +1 -1
  102. package/dist/src/providers/logging/ProviderContentExtractor.d.ts +27 -0
  103. package/dist/src/providers/logging/ProviderContentExtractor.js +198 -0
  104. package/dist/src/providers/logging/ProviderContentExtractor.js.map +1 -0
  105. package/dist/src/providers/logging/ProviderPerformanceTracker.d.ts +43 -0
  106. package/dist/src/providers/logging/ProviderPerformanceTracker.js +98 -0
  107. package/dist/src/providers/logging/ProviderPerformanceTracker.js.map +1 -0
  108. package/dist/src/providers/openai/OpenAIProvider.d.ts +21 -6
  109. package/dist/src/providers/openai/OpenAIProvider.js +173 -27
  110. package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
  111. package/dist/src/providers/openai/OpenAIProvider.test.js +3 -2
  112. package/dist/src/providers/openai/OpenAIProvider.test.js.map +1 -1
  113. package/dist/src/providers/openai/openai-oauth.spec.d.ts +16 -0
  114. package/dist/src/providers/openai/openai-oauth.spec.js +544 -0
  115. package/dist/src/providers/openai/openai-oauth.spec.js.map +1 -0
  116. package/dist/src/providers/types.d.ts +47 -0
  117. package/dist/src/services/git-stats-service.d.ts +32 -0
  118. package/dist/src/services/git-stats-service.js +22 -0
  119. package/dist/src/services/git-stats-service.js.map +1 -0
  120. package/dist/src/services/loopDetectionService.js +10 -6
  121. package/dist/src/services/loopDetectionService.js.map +1 -1
  122. package/dist/src/services/loopDetectionService.test.js +139 -0
  123. package/dist/src/services/loopDetectionService.test.js.map +1 -1
  124. package/dist/src/services/shellExecutionService.js +44 -8
  125. package/dist/src/services/shellExecutionService.js.map +1 -1
  126. package/dist/src/storage/ConversationFileWriter.d.ts +16 -0
  127. package/dist/src/storage/ConversationFileWriter.js +69 -0
  128. package/dist/src/storage/ConversationFileWriter.js.map +1 -0
  129. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +8 -0
  130. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +56 -3
  131. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  132. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.d.ts +6 -0
  133. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +187 -0
  134. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -0
  135. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +5 -1
  136. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +11 -0
  137. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  138. package/dist/src/telemetry/constants.d.ts +5 -0
  139. package/dist/src/telemetry/constants.js +5 -0
  140. package/dist/src/telemetry/constants.js.map +1 -1
  141. package/dist/src/telemetry/loggers.d.ts +5 -1
  142. package/dist/src/telemetry/loggers.js +87 -1
  143. package/dist/src/telemetry/loggers.js.map +1 -1
  144. package/dist/src/telemetry/loggers.test.js +2 -1
  145. package/dist/src/telemetry/loggers.test.js.map +1 -1
  146. package/dist/src/telemetry/metrics.d.ts +2 -1
  147. package/dist/src/telemetry/metrics.js +7 -1
  148. package/dist/src/telemetry/metrics.js.map +1 -1
  149. package/dist/src/telemetry/metrics.test.js +50 -0
  150. package/dist/src/telemetry/metrics.test.js.map +1 -1
  151. package/dist/src/telemetry/tool-call-decision.d.ts +13 -0
  152. package/dist/src/telemetry/tool-call-decision.js +29 -0
  153. package/dist/src/telemetry/tool-call-decision.js.map +1 -0
  154. package/dist/src/telemetry/types.d.ts +56 -1
  155. package/dist/src/telemetry/types.js +123 -0
  156. package/dist/src/telemetry/types.js.map +1 -1
  157. package/dist/src/telemetry/uiTelemetry.d.ts +2 -1
  158. package/dist/src/telemetry/uiTelemetry.js +1 -1
  159. package/dist/src/telemetry/uiTelemetry.js.map +1 -1
  160. package/dist/src/telemetry/uiTelemetry.test.js +2 -1
  161. package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
  162. package/dist/src/tools/diffOptions.d.ts +2 -0
  163. package/dist/src/tools/diffOptions.js +28 -0
  164. package/dist/src/tools/diffOptions.js.map +1 -1
  165. package/dist/src/tools/diffOptions.test.d.ts +6 -0
  166. package/dist/src/tools/diffOptions.test.js +119 -0
  167. package/dist/src/tools/diffOptions.test.js.map +1 -0
  168. package/dist/src/tools/edit.d.ts +8 -32
  169. package/dist/src/tools/edit.js +153 -136
  170. package/dist/src/tools/edit.js.map +1 -1
  171. package/dist/src/tools/edit.test.js +77 -51
  172. package/dist/src/tools/edit.test.js.map +1 -1
  173. package/dist/src/tools/glob.d.ts +3 -10
  174. package/dist/src/tools/glob.js +97 -99
  175. package/dist/src/tools/glob.js.map +1 -1
  176. package/dist/src/tools/glob.test.js +37 -26
  177. package/dist/src/tools/glob.test.js.map +1 -1
  178. package/dist/src/tools/grep.d.ts +3 -35
  179. package/dist/src/tools/grep.js +117 -88
  180. package/dist/src/tools/grep.js.map +1 -1
  181. package/dist/src/tools/grep.test.js +36 -22
  182. package/dist/src/tools/grep.test.js.map +1 -1
  183. package/dist/src/tools/mcp-client.d.ts +4 -3
  184. package/dist/src/tools/mcp-client.js +23 -6
  185. package/dist/src/tools/mcp-client.js.map +1 -1
  186. package/dist/src/tools/mcp-client.test.js +44 -2
  187. package/dist/src/tools/mcp-client.test.js.map +1 -1
  188. package/dist/src/tools/read-file.js +37 -9
  189. package/dist/src/tools/read-file.js.map +1 -1
  190. package/dist/src/tools/read-file.test.js +8 -2
  191. package/dist/src/tools/read-file.test.js.map +1 -1
  192. package/dist/src/tools/shell.test.js +17 -0
  193. package/dist/src/tools/shell.test.js.map +1 -1
  194. package/dist/src/tools/todo-pause.d.ts +22 -0
  195. package/dist/src/tools/todo-pause.js +93 -0
  196. package/dist/src/tools/todo-pause.js.map +1 -0
  197. package/dist/src/tools/todo-pause.spec.d.ts +6 -0
  198. package/dist/src/tools/todo-pause.spec.js +287 -0
  199. package/dist/src/tools/todo-pause.spec.js.map +1 -0
  200. package/dist/src/tools/tool-error.d.ts +4 -0
  201. package/dist/src/tools/tool-error.js +4 -0
  202. package/dist/src/tools/tool-error.js.map +1 -1
  203. package/dist/src/tools/tool-registry.js +3 -3
  204. package/dist/src/tools/tool-registry.js.map +1 -1
  205. package/dist/src/tools/tool-registry.test.js +2 -2
  206. package/dist/src/tools/tool-registry.test.js.map +1 -1
  207. package/dist/src/tools/tools.d.ts +18 -0
  208. package/dist/src/tools/tools.js +15 -0
  209. package/dist/src/tools/tools.js.map +1 -1
  210. package/dist/src/tools/web-search.test.js +1 -0
  211. package/dist/src/tools/web-search.test.js.map +1 -1
  212. package/dist/src/tools/write-file.d.ts +4 -0
  213. package/dist/src/tools/write-file.js +90 -16
  214. package/dist/src/tools/write-file.js.map +1 -1
  215. package/dist/src/tools/write-file.test.js +5 -4
  216. package/dist/src/tools/write-file.test.js.map +1 -1
  217. package/dist/src/types/modelParams.d.ts +2 -0
  218. package/dist/src/utils/environmentContext.js +1 -1
  219. package/dist/src/utils/errors.d.ts +3 -0
  220. package/dist/src/utils/errors.js +6 -0
  221. package/dist/src/utils/errors.js.map +1 -1
  222. package/dist/src/utils/fileUtils.d.ts +7 -0
  223. package/dist/src/utils/fileUtils.js +9 -0
  224. package/dist/src/utils/fileUtils.js.map +1 -1
  225. package/dist/src/utils/filesearch/fileSearch.d.ts +1 -0
  226. package/dist/src/utils/filesearch/fileSearch.js +27 -19
  227. package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
  228. package/package.json +1 -1
@@ -0,0 +1,98 @@
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 generateChatCompletion(messages: IMessage[], tools?: ITool[], toolFormat?: string): AsyncIterableIterator<unknown>;
87
+ setModel?(_modelId: string): void;
88
+ getCurrentModel?(): string;
89
+ getToolFormat?(): string;
90
+ setToolFormatOverride?(_format: string | null): void;
91
+ isPaidMode?(): boolean;
92
+ clearState?(): void;
93
+ setConfig?(_config: unknown): void;
94
+ getServerTools(): string[];
95
+ invokeServerTool(toolName: string, _params: unknown, _config?: unknown): Promise<unknown>;
96
+ setModelParams?(_params: Record<string, unknown> | undefined): void;
97
+ getModelParams?(): Record<string, unknown> | undefined;
98
+ }
@@ -0,0 +1,180 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Vybestack LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { AuthPrecedenceResolver, } from '../auth/precedence.js';
7
+ /**
8
+ * Abstract base provider class that implements authentication precedence logic
9
+ * This class provides lazy OAuth triggering and proper authentication precedence
10
+ */
11
+ export class BaseProvider {
12
+ name;
13
+ authResolver;
14
+ baseProviderConfig;
15
+ cachedAuthToken;
16
+ authCacheTimestamp;
17
+ AUTH_CACHE_DURATION = 60000; // 1 minute in milliseconds
18
+ constructor(config) {
19
+ this.name = config.name;
20
+ this.baseProviderConfig = config;
21
+ // Initialize auth precedence resolver
22
+ // OAuth enablement will be checked dynamically through the manager
23
+ const precedenceConfig = {
24
+ commandKey: config.commandKey,
25
+ commandKeyfile: config.commandKeyfile,
26
+ cliKey: config.cliKey,
27
+ cliKeyfile: config.cliKeyfile,
28
+ envKeyNames: config.envKeyNames || [],
29
+ isOAuthEnabled: true, // Always true if manager exists, manager will check settings
30
+ supportsOAuth: this.supportsOAuth(),
31
+ oauthProvider: config.oauthProvider,
32
+ };
33
+ this.authResolver = new AuthPrecedenceResolver(precedenceConfig, config.oauthManager);
34
+ }
35
+ /**
36
+ * Gets authentication token using the precedence chain
37
+ * This method implements lazy OAuth triggering - only triggers OAuth when actually making API calls
38
+ */
39
+ async getAuthToken() {
40
+ // Check cache first (short-lived cache to avoid repeated OAuth calls)
41
+ if (this.cachedAuthToken &&
42
+ this.authCacheTimestamp &&
43
+ Date.now() - this.authCacheTimestamp < this.AUTH_CACHE_DURATION) {
44
+ return this.cachedAuthToken;
45
+ }
46
+ // Clear stale cache
47
+ this.cachedAuthToken = undefined;
48
+ this.authCacheTimestamp = undefined;
49
+ // Resolve authentication using precedence chain
50
+ const token = await this.authResolver.resolveAuthentication();
51
+ if (!token) {
52
+ const isOAuthOnly = await this.authResolver.isOAuthOnlyAvailable();
53
+ if (isOAuthOnly) {
54
+ // Special message for Qwen explaining the OAuth limitation
55
+ if (this.baseProviderConfig.oauthProvider === 'qwen') {
56
+ throw new Error(`Qwen OAuth (chat.qwen.ai) doesn't provide API access to DashScope. ` +
57
+ `You need a DashScope API key from https://dashscope.console.aliyun.com/ ` +
58
+ `Use /key <your-api-key> to set it.`);
59
+ }
60
+ throw new Error(`No API key found and OAuth is available but not authenticated for ${this.name} provider. ` +
61
+ `Please authenticate using OAuth or provide an API key.`);
62
+ }
63
+ else {
64
+ throw new Error(`No authentication method available for ${this.name} provider`);
65
+ }
66
+ }
67
+ // Cache the token briefly
68
+ this.cachedAuthToken = token;
69
+ this.authCacheTimestamp = Date.now();
70
+ if (process.env.DEBUG) {
71
+ const authMethod = await this.authResolver.getAuthMethodName();
72
+ console.log(`[${this.name}] Authentication resolved using: ${authMethod}`);
73
+ }
74
+ return token;
75
+ }
76
+ /**
77
+ * Checks if OAuth is enabled for this provider
78
+ */
79
+ isOAuthEnabled() {
80
+ // OAuth is enabled if we have a manager AND it's enabled in settings
81
+ return !!this.baseProviderConfig.oauthManager;
82
+ }
83
+ /**
84
+ * Checks if authentication is available without triggering OAuth
85
+ */
86
+ async hasNonOAuthAuthentication() {
87
+ return this.authResolver.hasNonOAuthAuthentication();
88
+ }
89
+ /**
90
+ * Checks if OAuth is the only available authentication method
91
+ */
92
+ async isOAuthOnlyAvailable() {
93
+ return this.authResolver.isOAuthOnlyAvailable();
94
+ }
95
+ /**
96
+ * Gets the current authentication method name for debugging
97
+ */
98
+ async getAuthMethodName() {
99
+ return this.authResolver.getAuthMethodName();
100
+ }
101
+ /**
102
+ * Updates the API key (used for CLI --key argument)
103
+ */
104
+ setApiKey(apiKey) {
105
+ this.baseProviderConfig.cliKey = apiKey;
106
+ this.authResolver.updateConfig({ cliKey: apiKey });
107
+ this.clearAuthCache();
108
+ }
109
+ /**
110
+ * Updates the base URL
111
+ */
112
+ setBaseUrl(baseUrl) {
113
+ this.baseProviderConfig.baseURL = baseUrl;
114
+ // Providers may override to implement endpoint-specific OAuth logic
115
+ this.clearAuthCache();
116
+ }
117
+ /**
118
+ * Updates OAuth configuration
119
+ */
120
+ updateOAuthConfig(isEnabled, provider, manager) {
121
+ this.baseProviderConfig.isOAuthEnabled = isEnabled;
122
+ this.baseProviderConfig.oauthProvider = provider;
123
+ this.baseProviderConfig.oauthManager = manager;
124
+ this.authResolver.updateConfig({
125
+ isOAuthEnabled: isEnabled,
126
+ supportsOAuth: this.supportsOAuth(),
127
+ oauthProvider: provider,
128
+ });
129
+ if (manager) {
130
+ this.authResolver.updateOAuthManager(manager);
131
+ }
132
+ this.clearAuthCache();
133
+ }
134
+ /**
135
+ * Clears the authentication token cache
136
+ */
137
+ clearAuthCache() {
138
+ this.cachedAuthToken = undefined;
139
+ this.authCacheTimestamp = undefined;
140
+ }
141
+ /**
142
+ * Checks if the provider is authenticated using any available method
143
+ */
144
+ async isAuthenticated() {
145
+ try {
146
+ const token = await this.authResolver.resolveAuthentication();
147
+ return token !== null;
148
+ }
149
+ catch {
150
+ return false;
151
+ }
152
+ }
153
+ // Optional methods with default implementations
154
+ setModel(_modelId) { }
155
+ getCurrentModel() {
156
+ return 'default';
157
+ }
158
+ getToolFormat() {
159
+ return 'default';
160
+ }
161
+ setToolFormatOverride(_format) { }
162
+ isPaidMode() {
163
+ return false;
164
+ }
165
+ clearState() {
166
+ this.clearAuthCache();
167
+ }
168
+ setConfig(_config) { }
169
+ getServerTools() {
170
+ return [];
171
+ }
172
+ async invokeServerTool(toolName, _params, _config) {
173
+ throw new Error(`Server tool '${toolName}' not supported by ${this.name} provider`);
174
+ }
175
+ setModelParams(_params) { }
176
+ getModelParams() {
177
+ return undefined;
178
+ }
179
+ }
180
+ //# 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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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Vybestack LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};