@vybestack/llxprt-code-core 0.2.25 → 0.3.4-nightly.250912.86a20bc3

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 (193) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.js +1 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/src/code_assist/converter.js +35 -3
  5. package/dist/src/code_assist/converter.js.map +1 -1
  6. package/dist/src/code_assist/oauth2.d.ts +1 -1
  7. package/dist/src/code_assist/oauth2.js +18 -25
  8. package/dist/src/code_assist/oauth2.js.map +1 -1
  9. package/dist/src/config/config.d.ts +33 -2
  10. package/dist/src/config/config.js +73 -13
  11. package/dist/src/config/config.js.map +1 -1
  12. package/dist/src/config/storage.d.ts +33 -0
  13. package/dist/src/config/storage.js +93 -0
  14. package/dist/src/config/storage.js.map +1 -0
  15. package/dist/src/core/client.d.ts +8 -5
  16. package/dist/src/core/client.js +119 -20
  17. package/dist/src/core/client.js.map +1 -1
  18. package/dist/src/core/contentGenerator.js +11 -0
  19. package/dist/src/core/contentGenerator.js.map +1 -1
  20. package/dist/src/core/coreToolScheduler.d.ts +18 -12
  21. package/dist/src/core/coreToolScheduler.js +235 -241
  22. package/dist/src/core/coreToolScheduler.js.map +1 -1
  23. package/dist/src/core/logger.d.ts +3 -1
  24. package/dist/src/core/logger.js +5 -3
  25. package/dist/src/core/logger.js.map +1 -1
  26. package/dist/src/core/nonInteractiveToolExecutor.js +2 -2
  27. package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
  28. package/dist/src/core/subagent.js +2 -12
  29. package/dist/src/core/subagent.js.map +1 -1
  30. package/dist/src/core/turn.d.ts +13 -2
  31. package/dist/src/core/turn.js +15 -4
  32. package/dist/src/core/turn.js.map +1 -1
  33. package/dist/src/filters/EmojiFilter.d.ts +5 -0
  34. package/dist/src/filters/EmojiFilter.js +14 -2
  35. package/dist/src/filters/EmojiFilter.js.map +1 -1
  36. package/dist/src/ide/detect-ide.d.ts +8 -3
  37. package/dist/src/ide/detect-ide.js +29 -11
  38. package/dist/src/ide/detect-ide.js.map +1 -1
  39. package/dist/src/ide/ide-client.d.ts +5 -4
  40. package/dist/src/ide/ide-client.js +21 -17
  41. package/dist/src/ide/ide-client.js.map +1 -1
  42. package/dist/src/ide/ide-installer.d.ts +1 -1
  43. package/dist/src/ide/ide-installer.js +29 -20
  44. package/dist/src/ide/ide-installer.js.map +1 -1
  45. package/dist/src/ide/process-utils.d.ts +7 -5
  46. package/dist/src/ide/process-utils.js +80 -47
  47. package/dist/src/ide/process-utils.js.map +1 -1
  48. package/dist/src/index.d.ts +6 -0
  49. package/dist/src/index.js +7 -0
  50. package/dist/src/index.js.map +1 -1
  51. package/dist/src/mcp/file-token-store.d.ts +58 -0
  52. package/dist/src/mcp/file-token-store.js +181 -0
  53. package/dist/src/mcp/file-token-store.js.map +1 -0
  54. package/dist/src/mcp/oauth-token-storage.d.ts +13 -28
  55. package/dist/src/mcp/oauth-token-storage.js +21 -87
  56. package/dist/src/mcp/oauth-token-storage.js.map +1 -1
  57. package/dist/src/mcp/oauth-utils.d.ts +8 -0
  58. package/dist/src/mcp/oauth-utils.js +41 -27
  59. package/dist/src/mcp/oauth-utils.js.map +1 -1
  60. package/dist/src/mcp/token-store.d.ts +99 -0
  61. package/dist/src/mcp/token-store.js +77 -0
  62. package/dist/src/mcp/token-store.js.map +1 -0
  63. package/dist/src/parsers/TextToolCallParser.d.ts +5 -0
  64. package/dist/src/parsers/TextToolCallParser.js +3 -13
  65. package/dist/src/parsers/TextToolCallParser.js.map +1 -1
  66. package/dist/src/providers/anthropic/AnthropicProvider.js +8 -9
  67. package/dist/src/providers/anthropic/AnthropicProvider.js.map +1 -1
  68. package/dist/src/providers/gemini/GeminiProvider.js +19 -1
  69. package/dist/src/providers/gemini/GeminiProvider.js.map +1 -1
  70. package/dist/src/providers/openai/OpenAIProvider.d.ts +14 -0
  71. package/dist/src/providers/openai/OpenAIProvider.js +36 -38
  72. package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
  73. package/dist/src/services/gitService.d.ts +3 -1
  74. package/dist/src/services/gitService.js +20 -10
  75. package/dist/src/services/gitService.js.map +1 -1
  76. package/dist/src/services/history/ContentConverters.js +40 -1
  77. package/dist/src/services/history/ContentConverters.js.map +1 -1
  78. package/dist/src/services/loopDetectionService.js +8 -2
  79. package/dist/src/services/loopDetectionService.js.map +1 -1
  80. package/dist/src/services/shellExecutionService.js +2 -1
  81. package/dist/src/services/shellExecutionService.js.map +1 -1
  82. package/dist/src/settings/SettingsService.d.ts +5 -0
  83. package/dist/src/settings/SettingsService.js +5 -0
  84. package/dist/src/settings/SettingsService.js.map +1 -1
  85. package/dist/src/settings/settingsServiceInstance.d.ts +5 -0
  86. package/dist/src/settings/settingsServiceInstance.js +5 -0
  87. package/dist/src/settings/settingsServiceInstance.js.map +1 -1
  88. package/dist/src/settings/types.d.ts +5 -0
  89. package/dist/src/settings/types.js +3 -1
  90. package/dist/src/settings/types.js.map +1 -1
  91. package/dist/src/tools/IToolFormatter.d.ts +5 -0
  92. package/dist/src/tools/IToolFormatter.js +3 -13
  93. package/dist/src/tools/IToolFormatter.js.map +1 -1
  94. package/dist/src/tools/ToolFormatter.d.ts +5 -0
  95. package/dist/src/tools/ToolFormatter.js +3 -13
  96. package/dist/src/tools/ToolFormatter.js.map +1 -1
  97. package/dist/src/tools/doubleEscapeUtils.d.ts +3 -13
  98. package/dist/src/tools/doubleEscapeUtils.js +5 -0
  99. package/dist/src/tools/doubleEscapeUtils.js.map +1 -1
  100. package/dist/src/tools/edit.js +10 -1
  101. package/dist/src/tools/edit.js.map +1 -1
  102. package/dist/src/tools/glob.d.ts +0 -4
  103. package/dist/src/tools/glob.js +18 -42
  104. package/dist/src/tools/glob.js.map +1 -1
  105. package/dist/src/tools/grep.d.ts +0 -4
  106. package/dist/src/tools/grep.js +41 -77
  107. package/dist/src/tools/grep.js.map +1 -1
  108. package/dist/src/tools/ls.d.ts +2 -6
  109. package/dist/src/tools/ls.js +18 -13
  110. package/dist/src/tools/ls.js.map +1 -1
  111. package/dist/src/tools/mcp-client.d.ts +7 -0
  112. package/dist/src/tools/mcp-client.js +38 -21
  113. package/dist/src/tools/mcp-client.js.map +1 -1
  114. package/dist/src/tools/mcp-tool.js +12 -2
  115. package/dist/src/tools/mcp-tool.js.map +1 -1
  116. package/dist/src/tools/memoryTool.js +7 -2
  117. package/dist/src/tools/memoryTool.js.map +1 -1
  118. package/dist/src/tools/read-file.js +2 -30
  119. package/dist/src/tools/read-file.js.map +1 -1
  120. package/dist/src/tools/read-many-files.js +29 -52
  121. package/dist/src/tools/read-many-files.js.map +1 -1
  122. package/dist/src/tools/ripGrep.d.ts +46 -0
  123. package/dist/src/tools/ripGrep.js +368 -0
  124. package/dist/src/tools/ripGrep.js.map +1 -0
  125. package/dist/src/tools/shell.js +13 -2
  126. package/dist/src/tools/shell.js.map +1 -1
  127. package/dist/src/tools/todo-pause.js +0 -1
  128. package/dist/src/tools/todo-pause.js.map +1 -1
  129. package/dist/src/tools/tool-error.d.ts +18 -2
  130. package/dist/src/tools/tool-error.js +27 -1
  131. package/dist/src/tools/tool-error.js.map +1 -1
  132. package/dist/src/tools/tool-registry.d.ts +13 -2
  133. package/dist/src/tools/tool-registry.js +36 -6
  134. package/dist/src/tools/tool-registry.js.map +1 -1
  135. package/dist/src/tools/tools.d.ts +7 -5
  136. package/dist/src/tools/tools.js +12 -0
  137. package/dist/src/tools/tools.js.map +1 -1
  138. package/dist/src/tools/web-fetch.js +101 -76
  139. package/dist/src/tools/web-fetch.js.map +1 -1
  140. package/dist/src/tools/web-search-invocation.js +13 -1
  141. package/dist/src/tools/web-search-invocation.js.map +1 -1
  142. package/dist/src/utils/deterministicEditCorrector.d.ts +28 -0
  143. package/dist/src/utils/deterministicEditCorrector.js +295 -0
  144. package/dist/src/utils/deterministicEditCorrector.js.map +1 -0
  145. package/dist/src/utils/editCorrector.d.ts +4 -4
  146. package/dist/src/utils/editCorrector.js +15 -213
  147. package/dist/src/utils/editCorrector.js.map +1 -1
  148. package/dist/src/utils/editor.js +1 -1
  149. package/dist/src/utils/editor.js.map +1 -1
  150. package/dist/src/utils/errors.d.ts +19 -0
  151. package/dist/src/utils/errors.js +32 -0
  152. package/dist/src/utils/errors.js.map +1 -1
  153. package/dist/src/utils/fileUtils.d.ts +2 -7
  154. package/dist/src/utils/fileUtils.js +16 -47
  155. package/dist/src/utils/fileUtils.js.map +1 -1
  156. package/dist/src/utils/filesearch/fileSearch.d.ts +1 -0
  157. package/dist/src/utils/filesearch/fileSearch.js +14 -9
  158. package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
  159. package/dist/src/utils/ignorePatterns.d.ts +103 -0
  160. package/dist/src/utils/ignorePatterns.js +220 -0
  161. package/dist/src/utils/ignorePatterns.js.map +1 -0
  162. package/dist/src/utils/installationManager.d.ts +16 -0
  163. package/dist/src/utils/installationManager.js +50 -0
  164. package/dist/src/utils/installationManager.js.map +1 -0
  165. package/dist/src/utils/memoryDiscovery.d.ts +1 -1
  166. package/dist/src/utils/memoryDiscovery.js +64 -43
  167. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  168. package/dist/src/utils/paths.d.ts +0 -17
  169. package/dist/src/utils/paths.js +0 -26
  170. package/dist/src/utils/paths.js.map +1 -1
  171. package/dist/src/utils/schemaValidator.js +4 -0
  172. package/dist/src/utils/schemaValidator.js.map +1 -1
  173. package/dist/src/utils/shell-utils.d.ts +1 -1
  174. package/dist/src/utils/shell-utils.js +23 -29
  175. package/dist/src/utils/shell-utils.js.map +1 -1
  176. package/dist/src/utils/tool-utils.d.ts +19 -0
  177. package/dist/src/utils/tool-utils.js +58 -0
  178. package/dist/src/utils/tool-utils.js.map +1 -0
  179. package/dist/src/utils/userAccountManager.d.ts +20 -0
  180. package/dist/src/utils/userAccountManager.js +122 -0
  181. package/dist/src/utils/userAccountManager.js.map +1 -0
  182. package/dist/src/utils/workspaceContext.js +11 -5
  183. package/dist/src/utils/workspaceContext.js.map +1 -1
  184. package/package.json +7 -3
  185. package/dist/src/utils/nextSpeakerChecker.d.ts +0 -12
  186. package/dist/src/utils/nextSpeakerChecker.js +0 -97
  187. package/dist/src/utils/nextSpeakerChecker.js.map +0 -1
  188. package/dist/src/utils/user_account.d.ts +0 -9
  189. package/dist/src/utils/user_account.js +0 -109
  190. package/dist/src/utils/user_account.js.map +0 -1
  191. package/dist/src/utils/user_id.d.ts +0 -11
  192. package/dist/src/utils/user_id.js +0 -49
  193. package/dist/src/utils/user_id.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"process-utils.js","sourceRoot":"","sources":["../../../src/ide/process-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"process-utils.js","sourceRoot":"","sources":["../../../src/ide/process-utils.ts"],"names":[],"mappings":"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"}
@@ -39,9 +39,11 @@ export * from './utils/textUtils.js';
39
39
  export * from './utils/formatters.js';
40
40
  export * from './utils/sanitization.js';
41
41
  export * from './utils/unicodeUtils.js';
42
+ export * from './utils/generateContentResponseUtilities.js';
42
43
  export * from './utils/filesearch/fileSearch.js';
43
44
  export * from './utils/secure-browser-launcher.js';
44
45
  export * from './utils/errorParsing.js';
46
+ export * from './utils/ignorePatterns.js';
45
47
  export * from './auth/token-store.js';
46
48
  export * from './auth/types.js';
47
49
  export * from './auth/qwen-device-flow.js';
@@ -68,6 +70,7 @@ export * from './prompt-config/types.js';
68
70
  export * from './tools/read-file.js';
69
71
  export * from './tools/ls.js';
70
72
  export * from './tools/grep.js';
73
+ export * from './tools/ripGrep.js';
71
74
  export * from './tools/glob.js';
72
75
  export * from './tools/edit.js';
73
76
  export * from './tools/write-file.js';
@@ -86,6 +89,8 @@ export * from './tools/todo-store.js';
86
89
  export * from './tools/todo-events.js';
87
90
  export { MCPOAuthProvider } from './mcp/oauth-provider.js';
88
91
  export { MCPOAuthToken, MCPOAuthCredentials, MCPOAuthTokenStorage, } from './mcp/oauth-token-storage.js';
92
+ export { BaseTokenStore, MCPOAuthToken as MCPOAuthTokenInterface, MCPOAuthCredentials as MCPOAuthCredentialsInterface, } from './mcp/token-store.js';
93
+ export { FileTokenStore } from './mcp/file-token-store.js';
89
94
  export type { MCPOAuthConfig } from './mcp/oauth-provider.js';
90
95
  export type { OAuthAuthorizationServerMetadata, OAuthProtectedResourceMetadata, } from './mcp/oauth-utils.js';
91
96
  export { OAuthUtils } from './mcp/oauth-utils.js';
@@ -127,3 +132,4 @@ export type { FilterConfiguration, FilterResult, EmojiFilterMode, } from './filt
127
132
  export { ConfigurationManager, DebugLogger, FileOutput, } from './debug/index.js';
128
133
  export type { DebugSettings, DebugOutputConfig } from './debug/index.js';
129
134
  export type { LogEntry as DebugLogEntry } from './debug/index.js';
135
+ export { Storage } from './config/storage.js';
package/dist/src/index.js CHANGED
@@ -44,9 +44,11 @@ export * from './utils/textUtils.js';
44
44
  export * from './utils/formatters.js';
45
45
  export * from './utils/sanitization.js';
46
46
  export * from './utils/unicodeUtils.js';
47
+ export * from './utils/generateContentResponseUtilities.js';
47
48
  export * from './utils/filesearch/fileSearch.js';
48
49
  export * from './utils/secure-browser-launcher.js';
49
50
  export * from './utils/errorParsing.js';
51
+ export * from './utils/ignorePatterns.js';
50
52
  // Export auth system
51
53
  export * from './auth/token-store.js';
52
54
  export * from './auth/types.js';
@@ -81,6 +83,7 @@ export * from './prompt-config/types.js';
81
83
  export * from './tools/read-file.js';
82
84
  export * from './tools/ls.js';
83
85
  export * from './tools/grep.js';
86
+ export * from './tools/ripGrep.js';
84
87
  export * from './tools/glob.js';
85
88
  export * from './tools/edit.js';
86
89
  export * from './tools/write-file.js';
@@ -100,6 +103,8 @@ export * from './tools/todo-events.js';
100
103
  // MCP OAuth
101
104
  export { MCPOAuthProvider } from './mcp/oauth-provider.js';
102
105
  export { MCPOAuthTokenStorage, } from './mcp/oauth-token-storage.js';
106
+ export { BaseTokenStore, } from './mcp/token-store.js';
107
+ export { FileTokenStore } from './mcp/file-token-store.js';
103
108
  export { OAuthUtils } from './mcp/oauth-utils.js';
104
109
  // Export telemetry functions
105
110
  export * from './telemetry/index.js';
@@ -144,4 +149,6 @@ export { getSettingsService, resetSettingsService, } from './settings/settingsSe
144
149
  export { EmojiFilter } from './filters/EmojiFilter.js';
145
150
  // Export debug system
146
151
  export { ConfigurationManager, DebugLogger, FileOutput, } from './debug/index.js';
152
+ // Export Storage
153
+ export { Storage } from './config/storage.js';
147
154
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { BaseTokenStore, MCPOAuthToken, MCPOAuthCredentials } from './token-store.js';
7
+ /**
8
+ * File-based implementation of the BaseTokenStore.
9
+ * Stores MCP OAuth tokens in a JSON file in the user's configuration directory.
10
+ */
11
+ export declare class FileTokenStore extends BaseTokenStore {
12
+ private readonly tokenFilePath;
13
+ constructor(tokenFilePath?: string);
14
+ /**
15
+ * Ensure the config directory exists.
16
+ */
17
+ private ensureConfigDir;
18
+ /**
19
+ * Load all stored MCP OAuth tokens.
20
+ *
21
+ * @returns A map of server names to credentials
22
+ */
23
+ loadTokens(): Promise<Map<string, MCPOAuthCredentials>>;
24
+ /**
25
+ * Save a token for a specific MCP server.
26
+ *
27
+ * @param serverName The name of the MCP server
28
+ * @param token The OAuth token to save
29
+ * @param clientId Optional client ID used for this token
30
+ * @param tokenUrl Optional token URL used for this token
31
+ * @param mcpServerUrl Optional MCP server URL
32
+ */
33
+ saveToken(serverName: string, token: MCPOAuthToken, clientId?: string, tokenUrl?: string, mcpServerUrl?: string): Promise<void>;
34
+ /**
35
+ * Get a token for a specific MCP server.
36
+ *
37
+ * @param serverName The name of the MCP server
38
+ * @returns The stored credentials or null if not found
39
+ */
40
+ getToken(serverName: string): Promise<MCPOAuthCredentials | null>;
41
+ /**
42
+ * Remove a token for a specific MCP server.
43
+ *
44
+ * @param serverName The name of the MCP server
45
+ */
46
+ removeToken(serverName: string): Promise<void>;
47
+ /**
48
+ * Clear all stored MCP OAuth tokens.
49
+ */
50
+ clearAllTokens(): Promise<void>;
51
+ /**
52
+ * Validate that credentials object has the required structure.
53
+ *
54
+ * @param credentials The credentials to validate
55
+ * @returns True if valid, false otherwise
56
+ */
57
+ private isValidCredentials;
58
+ }
@@ -0,0 +1,181 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { promises as fs } from 'node:fs';
7
+ import * as path from 'node:path';
8
+ import { Storage } from '../config/storage.js';
9
+ import { getErrorMessage } from '../utils/errors.js';
10
+ import { BaseTokenStore, } from './token-store.js';
11
+ /**
12
+ * File-based implementation of the BaseTokenStore.
13
+ * Stores MCP OAuth tokens in a JSON file in the user's configuration directory.
14
+ */
15
+ export class FileTokenStore extends BaseTokenStore {
16
+ tokenFilePath;
17
+ constructor(tokenFilePath) {
18
+ super();
19
+ this.tokenFilePath = tokenFilePath || Storage.getMcpOAuthTokensPath();
20
+ }
21
+ /**
22
+ * Ensure the config directory exists.
23
+ */
24
+ async ensureConfigDir() {
25
+ const configDir = path.dirname(this.tokenFilePath);
26
+ try {
27
+ await fs.mkdir(configDir, { recursive: true });
28
+ }
29
+ catch (error) {
30
+ console.error(`Failed to create config directory ${configDir}: ${getErrorMessage(error)}`);
31
+ throw error;
32
+ }
33
+ }
34
+ /**
35
+ * Load all stored MCP OAuth tokens.
36
+ *
37
+ * @returns A map of server names to credentials
38
+ */
39
+ async loadTokens() {
40
+ const tokenMap = new Map();
41
+ try {
42
+ const data = await fs.readFile(this.tokenFilePath, 'utf-8');
43
+ const tokens = JSON.parse(data);
44
+ // Validate the loaded data structure
45
+ if (!Array.isArray(tokens)) {
46
+ console.warn('Token file contains invalid data structure, ignoring');
47
+ return tokenMap;
48
+ }
49
+ for (const credential of tokens) {
50
+ if (this.isValidCredentials(credential)) {
51
+ tokenMap.set(credential.serverName, credential);
52
+ }
53
+ else {
54
+ console.warn(`Skipping invalid credential entry for server: ${credential?.serverName || 'unknown'}`);
55
+ }
56
+ }
57
+ }
58
+ catch (error) {
59
+ // File doesn't exist or is invalid, return empty map
60
+ if (error.code !== 'ENOENT') {
61
+ console.error(`Failed to load MCP OAuth tokens from ${this.tokenFilePath}: ${getErrorMessage(error)}`);
62
+ }
63
+ }
64
+ return tokenMap;
65
+ }
66
+ /**
67
+ * Save a token for a specific MCP server.
68
+ *
69
+ * @param serverName The name of the MCP server
70
+ * @param token The OAuth token to save
71
+ * @param clientId Optional client ID used for this token
72
+ * @param tokenUrl Optional token URL used for this token
73
+ * @param mcpServerUrl Optional MCP server URL
74
+ */
75
+ async saveToken(serverName, token, clientId, tokenUrl, mcpServerUrl) {
76
+ await this.ensureConfigDir();
77
+ const tokens = await this.loadTokens();
78
+ const credential = this.createCredentials(serverName, token, clientId, tokenUrl, mcpServerUrl);
79
+ tokens.set(serverName, credential);
80
+ const tokenArray = Array.from(tokens.values());
81
+ try {
82
+ await fs.writeFile(this.tokenFilePath, JSON.stringify(tokenArray, null, 2), { mode: 0o600 });
83
+ // Token saved successfully
84
+ }
85
+ catch (error) {
86
+ console.error(`Failed to save MCP OAuth token for ${serverName}: ${getErrorMessage(error)}`);
87
+ throw error;
88
+ }
89
+ }
90
+ /**
91
+ * Get a token for a specific MCP server.
92
+ *
93
+ * @param serverName The name of the MCP server
94
+ * @returns The stored credentials or null if not found
95
+ */
96
+ async getToken(serverName) {
97
+ this.validateServerName(serverName);
98
+ const tokens = await this.loadTokens();
99
+ const credential = tokens.get(serverName) || null;
100
+ // Return credential if found
101
+ return credential;
102
+ }
103
+ /**
104
+ * Remove a token for a specific MCP server.
105
+ *
106
+ * @param serverName The name of the MCP server
107
+ */
108
+ async removeToken(serverName) {
109
+ this.validateServerName(serverName);
110
+ const tokens = await this.loadTokens();
111
+ if (tokens.delete(serverName)) {
112
+ const tokenArray = Array.from(tokens.values());
113
+ try {
114
+ if (tokenArray.length === 0) {
115
+ // Remove file if no tokens left
116
+ await fs.unlink(this.tokenFilePath);
117
+ // Token file removed successfully
118
+ }
119
+ else {
120
+ await fs.writeFile(this.tokenFilePath, JSON.stringify(tokenArray, null, 2), { mode: 0o600 });
121
+ // Token removed successfully
122
+ }
123
+ }
124
+ catch (error) {
125
+ console.error(`Failed to remove MCP OAuth token for ${serverName}: ${getErrorMessage(error)}`);
126
+ // Don't throw - removal from memory map succeeded
127
+ }
128
+ }
129
+ else {
130
+ // No token found to remove
131
+ }
132
+ }
133
+ /**
134
+ * Clear all stored MCP OAuth tokens.
135
+ */
136
+ async clearAllTokens() {
137
+ try {
138
+ await fs.unlink(this.tokenFilePath);
139
+ // All tokens cleared successfully
140
+ }
141
+ catch (error) {
142
+ if (error.code === 'ENOENT') {
143
+ // No token file to clear
144
+ }
145
+ else {
146
+ console.error(`Failed to clear MCP OAuth tokens: ${getErrorMessage(error)}`);
147
+ }
148
+ }
149
+ }
150
+ /**
151
+ * Validate that credentials object has the required structure.
152
+ *
153
+ * @param credentials The credentials to validate
154
+ * @returns True if valid, false otherwise
155
+ */
156
+ isValidCredentials(credentials) {
157
+ if (!credentials || typeof credentials !== 'object') {
158
+ return false;
159
+ }
160
+ const cred = credentials;
161
+ // Check required fields
162
+ if (!cred.serverName || typeof cred.serverName !== 'string') {
163
+ return false;
164
+ }
165
+ if (!cred.token || typeof cred.token !== 'object') {
166
+ return false;
167
+ }
168
+ const token = cred.token;
169
+ if (!token.accessToken || typeof token.accessToken !== 'string') {
170
+ return false;
171
+ }
172
+ if (!token.tokenType || typeof token.tokenType !== 'string') {
173
+ return false;
174
+ }
175
+ if (typeof cred.updatedAt !== 'number') {
176
+ return false;
177
+ }
178
+ return true;
179
+ }
180
+ }
181
+ //# sourceMappingURL=file-token-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-token-store.js","sourceRoot":"","sources":["../../../src/mcp/file-token-store.ts"],"names":[],"mappings":"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"}
@@ -3,43 +3,28 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- /**
7
- * Interface for MCP OAuth tokens.
8
- */
9
- export interface MCPOAuthToken {
10
- accessToken: string;
11
- refreshToken?: string;
12
- expiresAt?: number;
13
- tokenType: string;
14
- scope?: string;
15
- }
16
- /**
17
- * Interface for stored MCP OAuth credentials.
18
- */
19
- export interface MCPOAuthCredentials {
20
- serverName: string;
21
- token: MCPOAuthToken;
22
- clientId?: string;
23
- tokenUrl?: string;
24
- mcpServerUrl?: string;
25
- updatedAt: number;
26
- }
6
+ import { BaseTokenStore, MCPOAuthToken, MCPOAuthCredentials } from './token-store.js';
7
+ export type { MCPOAuthToken, MCPOAuthCredentials };
27
8
  /**
28
9
  * Class for managing MCP OAuth token storage and retrieval.
10
+ * This class provides backward compatibility with the existing API while
11
+ * delegating to the new BaseTokenStore architecture.
29
12
  */
30
13
  export declare class MCPOAuthTokenStorage {
31
- private static readonly TOKEN_FILE;
32
- private static readonly CONFIG_DIR;
14
+ private static tokenStore;
33
15
  /**
34
- * Get the path to the token storage file.
16
+ * Set a custom token store implementation.
17
+ * This allows for dependency injection and testing with mock implementations.
35
18
  *
36
- * @returns The full path to the token storage file
19
+ * @param store The token store to use
37
20
  */
38
- private static getTokenFilePath;
21
+ static setTokenStore(store: BaseTokenStore): void;
39
22
  /**
40
- * Ensure the config directory exists.
23
+ * Get the current token store implementation.
24
+ *
25
+ * @returns The current token store
41
26
  */
42
- private static ensureConfigDir;
27
+ static getTokenStore(): BaseTokenStore;
43
28
  /**
44
29
  * Load all stored MCP OAuth tokens.
45
30
  *
@@ -3,31 +3,31 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { promises as fs } from 'node:fs';
7
- import * as path from 'node:path';
8
- import * as os from 'node:os';
9
- import { getErrorMessage } from '../utils/errors.js';
6
+ import { FileTokenStore } from './file-token-store.js';
7
+ import { BaseTokenStore, } from './token-store.js';
10
8
  /**
11
9
  * Class for managing MCP OAuth token storage and retrieval.
10
+ * This class provides backward compatibility with the existing API while
11
+ * delegating to the new BaseTokenStore architecture.
12
12
  */
13
13
  export class MCPOAuthTokenStorage {
14
- static TOKEN_FILE = 'mcp-oauth-tokens.json';
15
- static CONFIG_DIR = '.gemini';
14
+ static tokenStore = new FileTokenStore();
16
15
  /**
17
- * Get the path to the token storage file.
16
+ * Set a custom token store implementation.
17
+ * This allows for dependency injection and testing with mock implementations.
18
18
  *
19
- * @returns The full path to the token storage file
19
+ * @param store The token store to use
20
20
  */
21
- static getTokenFilePath() {
22
- const homeDir = os.homedir();
23
- return path.join(homeDir, this.CONFIG_DIR, this.TOKEN_FILE);
21
+ static setTokenStore(store) {
22
+ this.tokenStore = store;
24
23
  }
25
24
  /**
26
- * Ensure the config directory exists.
25
+ * Get the current token store implementation.
26
+ *
27
+ * @returns The current token store
27
28
  */
28
- static async ensureConfigDir() {
29
- const configDir = path.dirname(this.getTokenFilePath());
30
- await fs.mkdir(configDir, { recursive: true });
29
+ static getTokenStore() {
30
+ return this.tokenStore;
31
31
  }
32
32
  /**
33
33
  * Load all stored MCP OAuth tokens.
@@ -35,22 +35,7 @@ export class MCPOAuthTokenStorage {
35
35
  * @returns A map of server names to credentials
36
36
  */
37
37
  static async loadTokens() {
38
- const tokenMap = new Map();
39
- try {
40
- const tokenFile = this.getTokenFilePath();
41
- const data = await fs.readFile(tokenFile, 'utf-8');
42
- const tokens = JSON.parse(data);
43
- for (const credential of tokens) {
44
- tokenMap.set(credential.serverName, credential);
45
- }
46
- }
47
- catch (error) {
48
- // File doesn't exist or is invalid, return empty map
49
- if (error.code !== 'ENOENT') {
50
- console.error(`Failed to load MCP OAuth tokens: ${getErrorMessage(error)}`);
51
- }
52
- }
53
- return tokenMap;
38
+ return this.tokenStore.loadTokens();
54
39
  }
55
40
  /**
56
41
  * Save a token for a specific MCP server.
@@ -62,26 +47,7 @@ export class MCPOAuthTokenStorage {
62
47
  * @param mcpServerUrl Optional MCP server URL
63
48
  */
64
49
  static async saveToken(serverName, token, clientId, tokenUrl, mcpServerUrl) {
65
- await this.ensureConfigDir();
66
- const tokens = await this.loadTokens();
67
- const credential = {
68
- serverName,
69
- token,
70
- clientId,
71
- tokenUrl,
72
- mcpServerUrl,
73
- updatedAt: Date.now(),
74
- };
75
- tokens.set(serverName, credential);
76
- const tokenArray = Array.from(tokens.values());
77
- const tokenFile = this.getTokenFilePath();
78
- try {
79
- await fs.writeFile(tokenFile, JSON.stringify(tokenArray, null, 2), { mode: 0o600 });
80
- }
81
- catch (error) {
82
- console.error(`Failed to save MCP OAuth token: ${getErrorMessage(error)}`);
83
- throw error;
84
- }
50
+ return this.tokenStore.saveToken(serverName, token, clientId, tokenUrl, mcpServerUrl);
85
51
  }
86
52
  /**
87
53
  * Get a token for a specific MCP server.
@@ -90,8 +56,7 @@ export class MCPOAuthTokenStorage {
90
56
  * @returns The stored credentials or null if not found
91
57
  */
92
58
  static async getToken(serverName) {
93
- const tokens = await this.loadTokens();
94
- return tokens.get(serverName) || null;
59
+ return this.tokenStore.getToken(serverName);
95
60
  }
96
61
  /**
97
62
  * Remove a token for a specific MCP server.
@@ -99,25 +64,7 @@ export class MCPOAuthTokenStorage {
99
64
  * @param serverName The name of the MCP server
100
65
  */
101
66
  static async removeToken(serverName) {
102
- const tokens = await this.loadTokens();
103
- if (tokens.delete(serverName)) {
104
- const tokenArray = Array.from(tokens.values());
105
- const tokenFile = this.getTokenFilePath();
106
- try {
107
- if (tokenArray.length === 0) {
108
- // Remove file if no tokens left
109
- await fs.unlink(tokenFile);
110
- }
111
- else {
112
- await fs.writeFile(tokenFile, JSON.stringify(tokenArray, null, 2), {
113
- mode: 0o600,
114
- });
115
- }
116
- }
117
- catch (error) {
118
- console.error(`Failed to remove MCP OAuth token: ${getErrorMessage(error)}`);
119
- }
120
- }
67
+ return this.tokenStore.removeToken(serverName);
121
68
  }
122
69
  /**
123
70
  * Check if a token is expired.
@@ -126,26 +73,13 @@ export class MCPOAuthTokenStorage {
126
73
  * @returns True if the token is expired
127
74
  */
128
75
  static isTokenExpired(token) {
129
- if (!token.expiresAt) {
130
- return false; // No expiry, assume valid
131
- }
132
- // Add a 5-minute buffer to account for clock skew
133
- const bufferMs = 5 * 60 * 1000;
134
- return Date.now() + bufferMs >= token.expiresAt;
76
+ return BaseTokenStore.isTokenExpired(token);
135
77
  }
136
78
  /**
137
79
  * Clear all stored MCP OAuth tokens.
138
80
  */
139
81
  static async clearAllTokens() {
140
- try {
141
- const tokenFile = this.getTokenFilePath();
142
- await fs.unlink(tokenFile);
143
- }
144
- catch (error) {
145
- if (error.code !== 'ENOENT') {
146
- console.error(`Failed to clear MCP OAuth tokens: ${getErrorMessage(error)}`);
147
- }
148
- }
82
+ return this.tokenStore.clearAllTokens();
149
83
  }
150
84
  }
151
85
  //# sourceMappingURL=oauth-token-storage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-token-storage.js","sourceRoot":"","sources":["../../../src/mcp/oauth-token-storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth-token-storage.js","sourceRoot":"","sources":["../../../src/mcp/oauth-token-storage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EACL,cAAc,GAGf,MAAM,kBAAkB,CAAC;AAK1B;;;;GAIG;AACH,MAAM,OAAO,oBAAoB;IACvB,MAAM,CAAC,UAAU,GAAmB,IAAI,cAAc,EAAE,CAAC;IAEjE;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAAC,KAAqB;QACxC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,aAAa;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,UAAU;QACrB,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;IACtC,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAK,CAAC,SAAS,CACpB,UAAkB,EAClB,KAAoB,EACpB,QAAiB,EACjB,QAAiB,EACjB,YAAqB;QAErB,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAC9B,UAAU,EACV,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,YAAY,CACb,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,QAAQ,CACnB,UAAkB;QAElB,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,UAAkB;QACzC,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,cAAc,CAAC,KAAoB;QACxC,OAAO,cAAc,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,cAAc;QACzB,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;IAC1C,CAAC"}
@@ -66,6 +66,14 @@ export declare class OAuthUtils {
66
66
  * @returns The OAuth configuration
67
67
  */
68
68
  static metadataToOAuthConfig(metadata: OAuthAuthorizationServerMetadata): MCPOAuthConfig;
69
+ /**
70
+ * Discover Oauth Authorization server metadata given an Auth server URL, by
71
+ * trying the standard well-known endpoints.
72
+ *
73
+ * @param authServerUrl The authorization server URL
74
+ * @returns The authorization server metadata or null if not found
75
+ */
76
+ static discoverAuthorizationServerMetadata(authServerUrl: string): Promise<OAuthAuthorizationServerMetadata | null>;
69
77
  /**
70
78
  * Discover OAuth configuration using the standard well-known endpoints.
71
79
  *