@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.
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/src/auth/auth-integration.spec.d.ts +6 -0
- package/dist/src/auth/auth-integration.spec.js +384 -0
- package/dist/src/auth/auth-integration.spec.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/precedence.test.d.ts +6 -0
- package/dist/src/auth/precedence.test.js +374 -0
- package/dist/src/auth/precedence.test.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/qwen-device-flow.spec.d.ts +6 -0
- package/dist/src/auth/qwen-device-flow.spec.js +793 -0
- package/dist/src/auth/qwen-device-flow.spec.js.map +1 -0
- package/dist/src/auth/token-store.d.ts +66 -0
- package/dist/src/auth/token-store.js +147 -0
- package/dist/src/auth/token-store.js.map +1 -0
- package/dist/src/auth/token-store.spec.d.ts +6 -0
- package/dist/src/auth/token-store.spec.js +405 -0
- package/dist/src/auth/token-store.spec.js.map +1 -0
- package/dist/src/auth/types.d.ts +130 -0
- package/dist/src/auth/types.js +60 -0
- package/dist/src/auth/types.js.map +1 -0
- package/dist/src/code_assist/converter.d.ts +2 -1
- package/dist/src/code_assist/converter.js +1 -1
- package/dist/src/code_assist/converter.js.map +1 -1
- package/dist/src/code_assist/converter.test.js +48 -1
- package/dist/src/code_assist/converter.test.js.map +1 -1
- package/dist/src/code_assist/oauth2.js +2 -1
- package/dist/src/code_assist/oauth2.js.map +1 -1
- package/dist/src/code_assist/server.test.js +4 -1
- package/dist/src/code_assist/server.test.js.map +1 -1
- package/dist/src/config/config.d.ts +71 -2
- package/dist/src/config/config.ephemeral.test.d.ts +6 -0
- package/dist/src/config/config.ephemeral.test.js +152 -0
- package/dist/src/config/config.ephemeral.test.js.map +1 -0
- package/dist/src/config/config.js +117 -2
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +8 -0
- package/dist/src/config/config.test.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/endpoints.test.d.ts +6 -0
- package/dist/src/config/endpoints.test.js +196 -0
- package/dist/src/config/endpoints.test.js.map +1 -0
- package/dist/src/core/client.js +16 -16
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/client.test.js +13 -7
- package/dist/src/core/client.test.js.map +1 -1
- package/dist/src/core/contentGenerator.d.ts +3 -1
- package/dist/src/core/contentGenerator.js +2 -0
- package/dist/src/core/contentGenerator.js.map +1 -1
- package/dist/src/core/logger.d.ts +1 -0
- package/dist/src/core/logger.js +18 -0
- package/dist/src/core/logger.js.map +1 -1
- package/dist/src/core/logger.test.js +29 -0
- package/dist/src/core/logger.test.js.map +1 -1
- package/dist/src/core/loggingContentGenerator.d.ts +24 -0
- package/dist/src/core/loggingContentGenerator.js +89 -0
- package/dist/src/core/loggingContentGenerator.js.map +1 -0
- package/dist/src/core/nonInteractiveToolExecutor.js +17 -0
- package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
- package/dist/src/core/subagent.js +12 -10
- package/dist/src/core/subagent.js.map +1 -1
- package/dist/src/core/subagent.test.js +8 -17
- package/dist/src/core/subagent.test.js.map +1 -1
- package/dist/src/ide/ide-client.d.ts +2 -2
- package/dist/src/ide/ide-client.js +56 -18
- package/dist/src/ide/ide-client.js.map +1 -1
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.js +7 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/integration-tests/oauth-integration.spec.d.ts +6 -0
- package/dist/src/integration-tests/oauth-integration.spec.js +518 -0
- package/dist/src/integration-tests/oauth-integration.spec.js.map +1 -0
- package/dist/src/integration-tests/oauth-simple-test.spec.d.ts +1 -0
- package/dist/src/integration-tests/oauth-simple-test.spec.js +88 -0
- package/dist/src/integration-tests/oauth-simple-test.spec.js.map +1 -0
- package/dist/src/providers/BaseProvider.d.ts +98 -0
- package/dist/src/providers/BaseProvider.js +180 -0
- package/dist/src/providers/BaseProvider.js.map +1 -0
- package/dist/src/providers/BaseProvider.test.d.ts +6 -0
- package/dist/src/providers/BaseProvider.test.js +472 -0
- package/dist/src/providers/BaseProvider.test.js.map +1 -0
- package/dist/src/providers/IProviderManager.d.ts +5 -0
- package/dist/src/providers/LoggingProviderWrapper.d.ts +53 -0
- package/dist/src/providers/LoggingProviderWrapper.js +347 -0
- package/dist/src/providers/LoggingProviderWrapper.js.map +1 -0
- package/dist/src/providers/ProviderManager.d.ts +20 -0
- package/dist/src/providers/ProviderManager.js +214 -1
- package/dist/src/providers/ProviderManager.js.map +1 -1
- package/dist/src/providers/gemini/GeminiProvider.d.ts +12 -7
- package/dist/src/providers/gemini/GeminiProvider.js +130 -147
- package/dist/src/providers/gemini/GeminiProvider.js.map +1 -1
- package/dist/src/providers/integration/multi-provider.integration.test.js +18 -2
- package/dist/src/providers/integration/multi-provider.integration.test.js.map +1 -1
- package/dist/src/providers/logging/ProviderContentExtractor.d.ts +27 -0
- package/dist/src/providers/logging/ProviderContentExtractor.js +198 -0
- package/dist/src/providers/logging/ProviderContentExtractor.js.map +1 -0
- package/dist/src/providers/logging/ProviderPerformanceTracker.d.ts +43 -0
- package/dist/src/providers/logging/ProviderPerformanceTracker.js +98 -0
- package/dist/src/providers/logging/ProviderPerformanceTracker.js.map +1 -0
- package/dist/src/providers/openai/OpenAIProvider.d.ts +21 -6
- package/dist/src/providers/openai/OpenAIProvider.js +173 -27
- package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
- package/dist/src/providers/openai/OpenAIProvider.test.js +3 -2
- package/dist/src/providers/openai/OpenAIProvider.test.js.map +1 -1
- package/dist/src/providers/openai/openai-oauth.spec.d.ts +16 -0
- package/dist/src/providers/openai/openai-oauth.spec.js +544 -0
- package/dist/src/providers/openai/openai-oauth.spec.js.map +1 -0
- package/dist/src/providers/types.d.ts +47 -0
- package/dist/src/services/git-stats-service.d.ts +32 -0
- package/dist/src/services/git-stats-service.js +22 -0
- package/dist/src/services/git-stats-service.js.map +1 -0
- package/dist/src/services/loopDetectionService.js +10 -6
- package/dist/src/services/loopDetectionService.js.map +1 -1
- package/dist/src/services/loopDetectionService.test.js +139 -0
- package/dist/src/services/loopDetectionService.test.js.map +1 -1
- package/dist/src/services/shellExecutionService.js +44 -8
- package/dist/src/services/shellExecutionService.js.map +1 -1
- package/dist/src/storage/ConversationFileWriter.d.ts +16 -0
- package/dist/src/storage/ConversationFileWriter.js +69 -0
- package/dist/src/storage/ConversationFileWriter.js.map +1 -0
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +8 -0
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +56 -3
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.d.ts +6 -0
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +187 -0
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -0
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +5 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +11 -0
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
- package/dist/src/telemetry/constants.d.ts +5 -0
- package/dist/src/telemetry/constants.js +5 -0
- package/dist/src/telemetry/constants.js.map +1 -1
- package/dist/src/telemetry/loggers.d.ts +5 -1
- package/dist/src/telemetry/loggers.js +87 -1
- package/dist/src/telemetry/loggers.js.map +1 -1
- package/dist/src/telemetry/loggers.test.js +2 -1
- package/dist/src/telemetry/loggers.test.js.map +1 -1
- package/dist/src/telemetry/metrics.d.ts +2 -1
- package/dist/src/telemetry/metrics.js +7 -1
- package/dist/src/telemetry/metrics.js.map +1 -1
- package/dist/src/telemetry/metrics.test.js +50 -0
- package/dist/src/telemetry/metrics.test.js.map +1 -1
- package/dist/src/telemetry/tool-call-decision.d.ts +13 -0
- package/dist/src/telemetry/tool-call-decision.js +29 -0
- package/dist/src/telemetry/tool-call-decision.js.map +1 -0
- package/dist/src/telemetry/types.d.ts +56 -1
- package/dist/src/telemetry/types.js +123 -0
- package/dist/src/telemetry/types.js.map +1 -1
- package/dist/src/telemetry/uiTelemetry.d.ts +2 -1
- package/dist/src/telemetry/uiTelemetry.js +1 -1
- package/dist/src/telemetry/uiTelemetry.js.map +1 -1
- package/dist/src/telemetry/uiTelemetry.test.js +2 -1
- package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
- package/dist/src/tools/diffOptions.d.ts +2 -0
- package/dist/src/tools/diffOptions.js +28 -0
- package/dist/src/tools/diffOptions.js.map +1 -1
- package/dist/src/tools/diffOptions.test.d.ts +6 -0
- package/dist/src/tools/diffOptions.test.js +119 -0
- package/dist/src/tools/diffOptions.test.js.map +1 -0
- package/dist/src/tools/edit.d.ts +8 -32
- package/dist/src/tools/edit.js +153 -136
- package/dist/src/tools/edit.js.map +1 -1
- package/dist/src/tools/edit.test.js +77 -51
- package/dist/src/tools/edit.test.js.map +1 -1
- package/dist/src/tools/glob.d.ts +3 -10
- package/dist/src/tools/glob.js +97 -99
- package/dist/src/tools/glob.js.map +1 -1
- package/dist/src/tools/glob.test.js +37 -26
- package/dist/src/tools/glob.test.js.map +1 -1
- package/dist/src/tools/grep.d.ts +3 -35
- package/dist/src/tools/grep.js +117 -88
- package/dist/src/tools/grep.js.map +1 -1
- package/dist/src/tools/grep.test.js +36 -22
- package/dist/src/tools/grep.test.js.map +1 -1
- package/dist/src/tools/mcp-client.d.ts +4 -3
- package/dist/src/tools/mcp-client.js +23 -6
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/mcp-client.test.js +44 -2
- package/dist/src/tools/mcp-client.test.js.map +1 -1
- package/dist/src/tools/read-file.js +37 -9
- package/dist/src/tools/read-file.js.map +1 -1
- package/dist/src/tools/read-file.test.js +8 -2
- package/dist/src/tools/read-file.test.js.map +1 -1
- package/dist/src/tools/shell.test.js +17 -0
- package/dist/src/tools/shell.test.js.map +1 -1
- package/dist/src/tools/todo-pause.d.ts +22 -0
- package/dist/src/tools/todo-pause.js +93 -0
- package/dist/src/tools/todo-pause.js.map +1 -0
- package/dist/src/tools/todo-pause.spec.d.ts +6 -0
- package/dist/src/tools/todo-pause.spec.js +287 -0
- package/dist/src/tools/todo-pause.spec.js.map +1 -0
- package/dist/src/tools/tool-error.d.ts +4 -0
- package/dist/src/tools/tool-error.js +4 -0
- package/dist/src/tools/tool-error.js.map +1 -1
- package/dist/src/tools/tool-registry.js +3 -3
- package/dist/src/tools/tool-registry.js.map +1 -1
- package/dist/src/tools/tool-registry.test.js +2 -2
- package/dist/src/tools/tool-registry.test.js.map +1 -1
- package/dist/src/tools/tools.d.ts +18 -0
- package/dist/src/tools/tools.js +15 -0
- package/dist/src/tools/tools.js.map +1 -1
- package/dist/src/tools/web-search.test.js +1 -0
- package/dist/src/tools/web-search.test.js.map +1 -1
- package/dist/src/tools/write-file.d.ts +4 -0
- package/dist/src/tools/write-file.js +90 -16
- package/dist/src/tools/write-file.js.map +1 -1
- package/dist/src/tools/write-file.test.js +5 -4
- package/dist/src/tools/write-file.test.js.map +1 -1
- package/dist/src/types/modelParams.d.ts +2 -0
- package/dist/src/utils/environmentContext.js +1 -1
- package/dist/src/utils/errors.d.ts +3 -0
- package/dist/src/utils/errors.js +6 -0
- package/dist/src/utils/errors.js.map +1 -1
- package/dist/src/utils/fileUtils.d.ts +7 -0
- package/dist/src/utils/fileUtils.js +9 -0
- package/dist/src/utils/fileUtils.js.map +1 -1
- package/dist/src/utils/filesearch/fileSearch.d.ts +1 -0
- package/dist/src/utils/filesearch/fileSearch.js +27 -19
- package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
- package/package.json +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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"}
|