@vybestack/llxprt-code-core 0.5.0 → 0.6.0-nightly.251128.1049d5f2b

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 (261) 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/agents/codebase-investigator.d.ts +46 -0
  5. package/dist/src/agents/codebase-investigator.js +136 -0
  6. package/dist/src/agents/codebase-investigator.js.map +1 -0
  7. package/dist/src/agents/executor.d.ts +92 -0
  8. package/dist/src/agents/executor.js +624 -0
  9. package/dist/src/agents/executor.js.map +1 -0
  10. package/dist/src/agents/invocation.d.ts +45 -0
  11. package/dist/src/agents/invocation.js +114 -0
  12. package/dist/src/agents/invocation.js.map +1 -0
  13. package/dist/src/agents/registry.d.ts +38 -0
  14. package/dist/src/agents/registry.js +64 -0
  15. package/dist/src/agents/registry.js.map +1 -0
  16. package/dist/src/agents/types.d.ts +145 -0
  17. package/dist/src/agents/types.js +17 -0
  18. package/dist/src/agents/types.js.map +1 -0
  19. package/dist/src/agents/utils.d.ts +15 -0
  20. package/dist/src/agents/utils.js +27 -0
  21. package/dist/src/agents/utils.js.map +1 -0
  22. package/dist/src/auth/types.d.ts +4 -4
  23. package/dist/src/code_assist/oauth-credential-storage.d.ts +27 -0
  24. package/dist/src/code_assist/oauth-credential-storage.js +115 -0
  25. package/dist/src/code_assist/oauth-credential-storage.js.map +1 -0
  26. package/dist/src/code_assist/oauth2.js +36 -9
  27. package/dist/src/code_assist/oauth2.js.map +1 -1
  28. package/dist/src/config/config.d.ts +72 -8
  29. package/dist/src/config/config.js +130 -23
  30. package/dist/src/config/config.js.map +1 -1
  31. package/dist/src/config/constants.d.ts +11 -0
  32. package/dist/src/config/constants.js +16 -0
  33. package/dist/src/config/constants.js.map +1 -0
  34. package/dist/src/config/storage.d.ts +1 -0
  35. package/dist/src/config/storage.js +2 -1
  36. package/dist/src/config/storage.js.map +1 -1
  37. package/dist/src/confirmation-bus/index.d.ts +2 -0
  38. package/dist/src/confirmation-bus/index.js +3 -0
  39. package/dist/src/confirmation-bus/index.js.map +1 -0
  40. package/dist/src/confirmation-bus/message-bus.d.ts +60 -0
  41. package/dist/src/confirmation-bus/message-bus.js +141 -0
  42. package/dist/src/confirmation-bus/message-bus.js.map +1 -0
  43. package/dist/src/confirmation-bus/types.d.ts +59 -0
  44. package/dist/src/confirmation-bus/types.js +10 -0
  45. package/dist/src/confirmation-bus/types.js.map +1 -0
  46. package/dist/src/core/baseLlmClient.d.ts +77 -0
  47. package/dist/src/core/baseLlmClient.js +175 -0
  48. package/dist/src/core/baseLlmClient.js.map +1 -0
  49. package/dist/src/core/client.d.ts +13 -1
  50. package/dist/src/core/client.js +98 -119
  51. package/dist/src/core/client.js.map +1 -1
  52. package/dist/src/core/coreToolScheduler.d.ts +20 -1
  53. package/dist/src/core/coreToolScheduler.js +160 -16
  54. package/dist/src/core/coreToolScheduler.js.map +1 -1
  55. package/dist/src/core/geminiChat.d.ts +8 -1
  56. package/dist/src/core/geminiChat.js +30 -21
  57. package/dist/src/core/geminiChat.js.map +1 -1
  58. package/dist/src/core/subagent.d.ts +16 -1
  59. package/dist/src/core/subagent.js +59 -3
  60. package/dist/src/core/subagent.js.map +1 -1
  61. package/dist/src/core/subagentOrchestrator.d.ts +2 -1
  62. package/dist/src/core/subagentOrchestrator.js +36 -6
  63. package/dist/src/core/subagentOrchestrator.js.map +1 -1
  64. package/dist/src/core/turn.d.ts +1 -4
  65. package/dist/src/core/turn.js +2 -12
  66. package/dist/src/core/turn.js.map +1 -1
  67. package/dist/src/ide/detect-ide.d.ts +44 -14
  68. package/dist/src/ide/detect-ide.js +35 -75
  69. package/dist/src/ide/detect-ide.js.map +1 -1
  70. package/dist/src/ide/ide-client.d.ts +5 -4
  71. package/dist/src/ide/ide-client.js +34 -25
  72. package/dist/src/ide/ide-client.js.map +1 -1
  73. package/dist/src/ide/ide-installer.d.ts +2 -2
  74. package/dist/src/ide/ide-installer.js +7 -9
  75. package/dist/src/ide/ide-installer.js.map +1 -1
  76. package/dist/src/index.d.ts +10 -2
  77. package/dist/src/index.js +12 -3
  78. package/dist/src/index.js.map +1 -1
  79. package/dist/src/mcp/oauth-provider.d.ts +5 -1
  80. package/dist/src/mcp/oauth-provider.js +56 -44
  81. package/dist/src/mcp/oauth-provider.js.map +1 -1
  82. package/dist/src/mcp/oauth-token-storage.d.ts +43 -40
  83. package/dist/src/mcp/oauth-token-storage.js +114 -44
  84. package/dist/src/mcp/oauth-token-storage.js.map +1 -1
  85. package/dist/src/mcp/oauth-utils.js +1 -0
  86. package/dist/src/mcp/oauth-utils.js.map +1 -1
  87. package/dist/src/mcp/sa-impersonation-provider.d.ts +33 -0
  88. package/dist/src/mcp/sa-impersonation-provider.js +130 -0
  89. package/dist/src/mcp/sa-impersonation-provider.js.map +1 -0
  90. package/dist/src/mcp/token-storage/hybrid-token-storage.js +1 -1
  91. package/dist/src/policy/config.d.ts +51 -0
  92. package/dist/src/policy/config.js +102 -0
  93. package/dist/src/policy/config.js.map +1 -0
  94. package/dist/src/policy/index.d.ts +5 -0
  95. package/dist/src/policy/index.js +6 -0
  96. package/dist/src/policy/index.js.map +1 -0
  97. package/dist/src/policy/policies/discovered.toml +9 -0
  98. package/dist/src/policy/policies/read-only.toml +68 -0
  99. package/dist/src/policy/policies/write.toml +69 -0
  100. package/dist/src/policy/policies/yolo.toml +8 -0
  101. package/dist/src/policy/policy-engine.d.ts +55 -0
  102. package/dist/src/policy/policy-engine.js +126 -0
  103. package/dist/src/policy/policy-engine.js.map +1 -0
  104. package/dist/src/policy/stable-stringify.d.ts +29 -0
  105. package/dist/src/policy/stable-stringify.js +111 -0
  106. package/dist/src/policy/stable-stringify.js.map +1 -0
  107. package/dist/src/policy/toml-loader.d.ts +37 -0
  108. package/dist/src/policy/toml-loader.js +183 -0
  109. package/dist/src/policy/toml-loader.js.map +1 -0
  110. package/dist/src/policy/types.d.ts +16 -0
  111. package/dist/src/policy/types.js +7 -0
  112. package/dist/src/policy/types.js.map +1 -0
  113. package/dist/src/providers/LoggingProviderWrapper.d.ts +2 -0
  114. package/dist/src/providers/LoggingProviderWrapper.js +27 -6
  115. package/dist/src/providers/LoggingProviderWrapper.js.map +1 -1
  116. package/dist/src/providers/ProviderManager.d.ts +18 -0
  117. package/dist/src/providers/ProviderManager.js +54 -3
  118. package/dist/src/providers/ProviderManager.js.map +1 -1
  119. package/dist/src/providers/anthropic/AnthropicProvider.d.ts +49 -0
  120. package/dist/src/providers/anthropic/AnthropicProvider.js +468 -30
  121. package/dist/src/providers/anthropic/AnthropicProvider.js.map +1 -1
  122. package/dist/src/providers/openai/OpenAIProvider.d.ts +3 -0
  123. package/dist/src/providers/openai/OpenAIProvider.js +12 -6
  124. package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
  125. package/dist/src/providers/utils/localEndpoint.d.ts +39 -0
  126. package/dist/src/providers/utils/localEndpoint.js +117 -0
  127. package/dist/src/providers/utils/localEndpoint.js.map +1 -0
  128. package/dist/src/runtime/AgentRuntimeLoader.d.ts +1 -0
  129. package/dist/src/runtime/AgentRuntimeLoader.js +6 -1
  130. package/dist/src/runtime/AgentRuntimeLoader.js.map +1 -1
  131. package/dist/src/runtime/createAgentRuntimeContext.js +8 -7
  132. package/dist/src/runtime/createAgentRuntimeContext.js.map +1 -1
  133. package/dist/src/services/fileSystemService.d.ts +9 -0
  134. package/dist/src/services/fileSystemService.js +12 -1
  135. package/dist/src/services/fileSystemService.js.map +1 -1
  136. package/dist/src/services/history/HistoryService.d.ts +4 -0
  137. package/dist/src/services/history/HistoryService.js +18 -0
  138. package/dist/src/services/history/HistoryService.js.map +1 -1
  139. package/dist/src/services/history/IContent.d.ts +6 -0
  140. package/dist/src/services/history/IContent.js.map +1 -1
  141. package/dist/src/services/shellExecutionService.js +0 -6
  142. package/dist/src/services/shellExecutionService.js.map +1 -1
  143. package/dist/src/settings/types.d.ts +7 -0
  144. package/dist/src/storage/sessionTypes.d.ts +27 -0
  145. package/dist/src/storage/sessionTypes.js +10 -0
  146. package/dist/src/storage/sessionTypes.js.map +1 -0
  147. package/dist/src/telemetry/constants.d.ts +8 -0
  148. package/dist/src/telemetry/constants.js +8 -0
  149. package/dist/src/telemetry/constants.js.map +1 -1
  150. package/dist/src/telemetry/loggers.d.ts +9 -1
  151. package/dist/src/telemetry/loggers.js +154 -2
  152. package/dist/src/telemetry/loggers.js.map +1 -1
  153. package/dist/src/telemetry/metrics.d.ts +5 -0
  154. package/dist/src/telemetry/metrics.js +4 -0
  155. package/dist/src/telemetry/metrics.js.map +1 -1
  156. package/dist/src/telemetry/types.d.ts +62 -1
  157. package/dist/src/telemetry/types.js +92 -0
  158. package/dist/src/telemetry/types.js.map +1 -1
  159. package/dist/src/telemetry/uiTelemetry.d.ts +1 -1
  160. package/dist/src/telemetry/uiTelemetry.js +2 -3
  161. package/dist/src/telemetry/uiTelemetry.js.map +1 -1
  162. package/dist/src/test-utils/config.js +14 -0
  163. package/dist/src/test-utils/config.js.map +1 -1
  164. package/dist/src/test-utils/mock-tool.d.ts +8 -4
  165. package/dist/src/test-utils/mock-tool.js +35 -18
  166. package/dist/src/test-utils/mock-tool.js.map +1 -1
  167. package/dist/src/test-utils/tools.d.ts +1 -1
  168. package/dist/src/test-utils/tools.js +4 -4
  169. package/dist/src/test-utils/tools.js.map +1 -1
  170. package/dist/src/tools/edit.d.ts +3 -2
  171. package/dist/src/tools/edit.js +29 -10
  172. package/dist/src/tools/edit.js.map +1 -1
  173. package/dist/src/tools/glob.d.ts +6 -4
  174. package/dist/src/tools/glob.js +3 -3
  175. package/dist/src/tools/glob.js.map +1 -1
  176. package/dist/src/tools/grep.d.ts +3 -2
  177. package/dist/src/tools/grep.js +2 -2
  178. package/dist/src/tools/grep.js.map +1 -1
  179. package/dist/src/tools/ls.d.ts +4 -3
  180. package/dist/src/tools/ls.js +3 -3
  181. package/dist/src/tools/ls.js.map +1 -1
  182. package/dist/src/tools/mcp-client.d.ts +9 -18
  183. package/dist/src/tools/mcp-client.js +60 -102
  184. package/dist/src/tools/mcp-client.js.map +1 -1
  185. package/dist/src/tools/mcp-tool.js +7 -1
  186. package/dist/src/tools/mcp-tool.js.map +1 -1
  187. package/dist/src/tools/memoryTool.d.ts +6 -2
  188. package/dist/src/tools/memoryTool.js +14 -4
  189. package/dist/src/tools/memoryTool.js.map +1 -1
  190. package/dist/src/tools/modifiable-tool.d.ts +1 -1
  191. package/dist/src/tools/modifiable-tool.js +9 -1
  192. package/dist/src/tools/modifiable-tool.js.map +1 -1
  193. package/dist/src/tools/read-file.d.ts +3 -2
  194. package/dist/src/tools/read-file.js +2 -2
  195. package/dist/src/tools/read-file.js.map +1 -1
  196. package/dist/src/tools/read-many-files.d.ts +3 -2
  197. package/dist/src/tools/read-many-files.js +2 -2
  198. package/dist/src/tools/read-many-files.js.map +1 -1
  199. package/dist/src/tools/ripGrep.d.ts +3 -2
  200. package/dist/src/tools/ripGrep.js +2 -2
  201. package/dist/src/tools/ripGrep.js.map +1 -1
  202. package/dist/src/tools/shell.d.ts +3 -2
  203. package/dist/src/tools/shell.js +69 -9
  204. package/dist/src/tools/shell.js.map +1 -1
  205. package/dist/src/tools/smart-edit.d.ts +22 -2
  206. package/dist/src/tools/smart-edit.js +124 -12
  207. package/dist/src/tools/smart-edit.js.map +1 -1
  208. package/dist/src/tools/task.d.ts +1 -0
  209. package/dist/src/tools/task.js +33 -16
  210. package/dist/src/tools/task.js.map +1 -1
  211. package/dist/src/tools/tool-confirmation-types.d.ts +20 -0
  212. package/dist/src/tools/tool-confirmation-types.js +15 -0
  213. package/dist/src/tools/tool-confirmation-types.js.map +1 -0
  214. package/dist/src/tools/tool-error.d.ts +2 -0
  215. package/dist/src/tools/tool-error.js +2 -0
  216. package/dist/src/tools/tool-error.js.map +1 -1
  217. package/dist/src/tools/tool-registry.d.ts +8 -1
  218. package/dist/src/tools/tool-registry.js +18 -4
  219. package/dist/src/tools/tool-registry.js.map +1 -1
  220. package/dist/src/tools/tools.d.ts +52 -14
  221. package/dist/src/tools/tools.js +71 -15
  222. package/dist/src/tools/tools.js.map +1 -1
  223. package/dist/src/tools/web-fetch.d.ts +3 -2
  224. package/dist/src/tools/web-fetch.js +11 -6
  225. package/dist/src/tools/web-fetch.js.map +1 -1
  226. package/dist/src/tools/web-search-invocation.d.ts +3 -1
  227. package/dist/src/tools/web-search-invocation.js +5 -2
  228. package/dist/src/tools/web-search-invocation.js.map +1 -1
  229. package/dist/src/tools/web-search.d.ts +3 -2
  230. package/dist/src/tools/web-search.js +6 -4
  231. package/dist/src/tools/web-search.js.map +1 -1
  232. package/dist/src/tools/write-file.d.ts +3 -2
  233. package/dist/src/tools/write-file.js +11 -6
  234. package/dist/src/tools/write-file.js.map +1 -1
  235. package/dist/src/utils/bfsFileSearch.d.ts +2 -2
  236. package/dist/src/utils/editor.js +5 -3
  237. package/dist/src/utils/editor.js.map +1 -1
  238. package/dist/src/utils/getFolderStructure.d.ts +2 -2
  239. package/dist/src/utils/getFolderStructure.js +1 -1
  240. package/dist/src/utils/getFolderStructure.js.map +1 -1
  241. package/dist/src/utils/llm-edit-fixer.js +10 -1
  242. package/dist/src/utils/llm-edit-fixer.js.map +1 -1
  243. package/dist/src/utils/memoryDiscovery.d.ts +2 -1
  244. package/dist/src/utils/memoryDiscovery.js +3 -2
  245. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  246. package/dist/src/utils/memoryImportProcessor.js +13 -20
  247. package/dist/src/utils/memoryImportProcessor.js.map +1 -1
  248. package/dist/src/utils/retry.d.ts +5 -1
  249. package/dist/src/utils/retry.js +31 -16
  250. package/dist/src/utils/retry.js.map +1 -1
  251. package/dist/src/utils/schemaValidator.js +11 -1
  252. package/dist/src/utils/schemaValidator.js.map +1 -1
  253. package/dist/src/utils/shell-utils.d.ts +1 -0
  254. package/dist/src/utils/shell-utils.js +6 -2
  255. package/dist/src/utils/shell-utils.js.map +1 -1
  256. package/dist/src/utils/thoughtUtils.d.ts +21 -0
  257. package/dist/src/utils/thoughtUtils.js +39 -0
  258. package/dist/src/utils/thoughtUtils.js.map +1 -0
  259. package/dist/src/utils/tool-utils.js +2 -2
  260. package/dist/src/utils/tool-utils.js.map +1 -1
  261. package/package.json +6 -4
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"oauth-token-storage.js","sourceRoot":"","sources":["../../../src/mcp/oauth-token-storage.ts"],"names":[],"mappings":"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"}
@@ -79,6 +79,7 @@ export class OAuthUtils {
79
79
  authorizationUrl: metadata.authorization_endpoint,
80
80
  tokenUrl: metadata.token_endpoint,
81
81
  scopes: metadata.scopes_supported || [],
82
+ registrationUrl: metadata.registration_endpoint,
82
83
  };
83
84
  }
84
85
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-utils.js","sourceRoot":"","sources":["../../../src/mcp/oauth-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth-utils.js","sourceRoot":"","sources":["../../../src/mcp/oauth-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { OAuthClientInformation, OAuthClientInformationFull, OAuthClientMetadata, OAuthTokens } from '@modelcontextprotocol/sdk/shared/auth.js';
7
+ import type { MCPServerConfig } from '../config/config.js';
8
+ import type { OAuthClientProvider } from '@modelcontextprotocol/sdk/client/auth.js';
9
+ export declare class ServiceAccountImpersonationProvider implements OAuthClientProvider {
10
+ private readonly config;
11
+ private readonly targetServiceAccount;
12
+ private readonly targetAudience;
13
+ private readonly auth;
14
+ private cachedToken?;
15
+ private tokenExpiryTime?;
16
+ readonly redirectUrl = "";
17
+ readonly clientMetadata: OAuthClientMetadata;
18
+ private _clientInformation?;
19
+ constructor(config: MCPServerConfig);
20
+ clientInformation(): OAuthClientInformation | undefined;
21
+ saveClientInformation(clientInformation: OAuthClientInformationFull): void;
22
+ tokens(): Promise<OAuthTokens | undefined>;
23
+ saveTokens(_tokens: OAuthTokens): void;
24
+ redirectToAuthorization(_authorizationUrl: URL): void;
25
+ saveCodeVerifier(_codeVerifier: string): void;
26
+ codeVerifier(): string;
27
+ /**
28
+ * Parses a JWT string to extract its expiry time.
29
+ * @param idToken The JWT ID token.
30
+ * @returns The expiry time in **milliseconds**, or undefined if parsing fails.
31
+ */
32
+ private parseTokenExpiry;
33
+ }
@@ -0,0 +1,130 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { GoogleAuth } from 'google-auth-library';
7
+ const fiveMinBufferMs = 5 * 60 * 1000;
8
+ function createIamApiUrl(targetSA) {
9
+ return `https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/${encodeURIComponent(targetSA)}:generateIdToken`;
10
+ }
11
+ export class ServiceAccountImpersonationProvider {
12
+ config;
13
+ targetServiceAccount;
14
+ targetAudience; // OAuth Client Id
15
+ auth;
16
+ cachedToken;
17
+ tokenExpiryTime;
18
+ // Properties required by OAuthClientProvider, with no-op values
19
+ redirectUrl = '';
20
+ clientMetadata = {
21
+ client_name: 'Gemini CLI (Service Account Impersonation)',
22
+ redirect_uris: [],
23
+ grant_types: [],
24
+ response_types: [],
25
+ token_endpoint_auth_method: 'none',
26
+ };
27
+ _clientInformation;
28
+ constructor(config) {
29
+ this.config = config;
30
+ // This check is done in mcp-client.ts. This is just an additional check.
31
+ if (!this.config.httpUrl && !this.config.url) {
32
+ throw new Error('A url or httpUrl must be provided for the Service Account Impersonation provider');
33
+ }
34
+ if (!config.targetAudience) {
35
+ throw new Error('targetAudience must be provided for the Service Account Impersonation provider');
36
+ }
37
+ this.targetAudience = config.targetAudience;
38
+ if (!config.targetServiceAccount) {
39
+ throw new Error('targetServiceAccount must be provided for the Service Account Impersonation provider');
40
+ }
41
+ this.targetServiceAccount = config.targetServiceAccount;
42
+ this.auth = new GoogleAuth();
43
+ }
44
+ clientInformation() {
45
+ return this._clientInformation;
46
+ }
47
+ saveClientInformation(clientInformation) {
48
+ this._clientInformation = clientInformation;
49
+ }
50
+ async tokens() {
51
+ // 1. Check if we have a valid, non-expired cached token.
52
+ if (this.cachedToken &&
53
+ this.tokenExpiryTime &&
54
+ Date.now() < this.tokenExpiryTime - fiveMinBufferMs) {
55
+ return this.cachedToken;
56
+ }
57
+ // 2. Clear any invalid/expired cache.
58
+ this.cachedToken = undefined;
59
+ this.tokenExpiryTime = undefined;
60
+ // 3. Fetch a new ID token.
61
+ const client = await this.auth.getClient();
62
+ const url = createIamApiUrl(this.targetServiceAccount);
63
+ let idToken;
64
+ try {
65
+ const res = await client.request({
66
+ url,
67
+ method: 'POST',
68
+ data: {
69
+ audience: this.targetAudience,
70
+ includeEmail: true,
71
+ },
72
+ });
73
+ idToken = res.data.token;
74
+ if (!idToken || idToken.length === 0) {
75
+ console.error('Failed to get ID token from Google');
76
+ return undefined;
77
+ }
78
+ }
79
+ catch (e) {
80
+ console.error('Failed to fetch ID token from Google:', e);
81
+ return undefined;
82
+ }
83
+ const expiryTime = this.parseTokenExpiry(idToken);
84
+ // Note: We are placing the OIDC ID Token into the `access_token` field.
85
+ // This is because the CLI uses this field to construct the
86
+ // `Authorization: Bearer <token>` header, which is the correct way to
87
+ // present an ID token.
88
+ const newTokens = {
89
+ access_token: idToken,
90
+ token_type: 'Bearer',
91
+ };
92
+ if (expiryTime) {
93
+ this.tokenExpiryTime = expiryTime;
94
+ this.cachedToken = newTokens;
95
+ }
96
+ return newTokens;
97
+ }
98
+ saveTokens(_tokens) {
99
+ // No-op
100
+ }
101
+ redirectToAuthorization(_authorizationUrl) {
102
+ // No-op
103
+ }
104
+ saveCodeVerifier(_codeVerifier) {
105
+ // No-op
106
+ }
107
+ codeVerifier() {
108
+ // No-op
109
+ return '';
110
+ }
111
+ /**
112
+ * Parses a JWT string to extract its expiry time.
113
+ * @param idToken The JWT ID token.
114
+ * @returns The expiry time in **milliseconds**, or undefined if parsing fails.
115
+ */
116
+ parseTokenExpiry(idToken) {
117
+ try {
118
+ const payload = JSON.parse(Buffer.from(idToken.split('.')[1], 'base64').toString());
119
+ if (payload && typeof payload.exp === 'number') {
120
+ return payload.exp * 1000; // Convert seconds to milliseconds
121
+ }
122
+ }
123
+ catch (e) {
124
+ console.error('Failed to parse ID token for expiry time with error:', e);
125
+ }
126
+ // Return undefined if try block fails or 'exp' is missing/invalid
127
+ return undefined;
128
+ }
129
+ }
130
+ //# sourceMappingURL=sa-impersonation-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sa-impersonation-provider.js","sourceRoot":"","sources":["../../../src/mcp/sa-impersonation-provider.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  import { BaseTokenStorage } from './base-token-storage.js';
7
7
  import { FileTokenStorage } from './file-token-storage.js';
8
8
  import { TokenStorageType } from './types.js';
9
- const FORCE_FILE_STORAGE_ENV_VAR = 'GEMINI_FORCE_FILE_STORAGE';
9
+ const FORCE_FILE_STORAGE_ENV_VAR = 'LLXPRT_FORCE_FILE_STORAGE';
10
10
  export class HybridTokenStorage extends BaseTokenStorage {
11
11
  storage = null;
12
12
  storageType = null;
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Policy Configuration
3
+ *
4
+ * Creates PolicyEngineConfig by merging:
5
+ * 1. Default TOML policy files (read-only, write)
6
+ * 2. Legacy ApprovalMode migration rules
7
+ * 3. User-defined TOML policies (if provided)
8
+ * 4. Runtime rules (e.g., "Always Allow" UI selections)
9
+ *
10
+ * Implements legacy migration from ApprovalMode and --allowed-tools to policy rules.
11
+ */
12
+ import { type PolicyRule, type PolicyEngineConfig } from './types.js';
13
+ import { ApprovalMode } from '../config/config.js';
14
+ /**
15
+ * Minimal Config interface for policy creation
16
+ * Avoids circular dependency by only requiring the methods we need
17
+ */
18
+ export interface PolicyConfigSource {
19
+ getApprovalMode(): ApprovalMode;
20
+ getAllowedTools(): string[] | undefined;
21
+ getNonInteractive(): boolean;
22
+ getUserPolicyPath?(): string | undefined;
23
+ }
24
+ /**
25
+ * Converts legacy ApprovalMode and --allowed-tools to policy rules.
26
+ *
27
+ * Priority bands:
28
+ * - 1.999: YOLO mode allow-all (wildcard)
29
+ * - 1.015: AUTO_EDIT mode write tools
30
+ * - 2.3: --allowed-tools CLI flag
31
+ *
32
+ * @param config - Config object with approval mode and allowed tools
33
+ * @returns Array of PolicyRule objects representing legacy settings
34
+ */
35
+ export declare function migrateLegacyApprovalMode(config: PolicyConfigSource): PolicyRule[];
36
+ /**
37
+ * Creates the full PolicyEngineConfig by merging:
38
+ * 1. Default TOML policy files (read-only.toml, write.toml)
39
+ * 2. Legacy ApprovalMode migration rules
40
+ * 3. User-defined TOML policies (if userPolicyPath provided)
41
+ * 4. Runtime rules (can be added later via PolicyEngine.addRule)
42
+ *
43
+ * Rules are evaluated by priority (highest wins), so:
44
+ * - User policies (Tier 2: 2.xxx) override defaults (Tier 1: 1.xxx)
45
+ * - Legacy migration rules slot into appropriate priority bands
46
+ * - Admin policies (Tier 3: 3.xxx, if added later) override all
47
+ *
48
+ * @param config - Config object with policy settings
49
+ * @returns PolicyEngineConfig ready for PolicyEngine construction
50
+ */
51
+ export declare function createPolicyEngineConfig(config: PolicyConfigSource): Promise<PolicyEngineConfig>;
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Policy Configuration
3
+ *
4
+ * Creates PolicyEngineConfig by merging:
5
+ * 1. Default TOML policy files (read-only, write)
6
+ * 2. Legacy ApprovalMode migration rules
7
+ * 3. User-defined TOML policies (if provided)
8
+ * 4. Runtime rules (e.g., "Always Allow" UI selections)
9
+ *
10
+ * Implements legacy migration from ApprovalMode and --allowed-tools to policy rules.
11
+ */
12
+ import { PolicyDecision, } from './types.js';
13
+ import { loadDefaultPolicies, loadPolicyFromToml } from './toml-loader.js';
14
+ import { ApprovalMode } from '../config/config.js';
15
+ /**
16
+ * Converts legacy ApprovalMode and --allowed-tools to policy rules.
17
+ *
18
+ * Priority bands:
19
+ * - 1.999: YOLO mode allow-all (wildcard)
20
+ * - 1.015: AUTO_EDIT mode write tools
21
+ * - 2.3: --allowed-tools CLI flag
22
+ *
23
+ * @param config - Config object with approval mode and allowed tools
24
+ * @returns Array of PolicyRule objects representing legacy settings
25
+ */
26
+ export function migrateLegacyApprovalMode(config) {
27
+ const rules = [];
28
+ // Map ApprovalMode
29
+ const approvalMode = config.getApprovalMode();
30
+ if (approvalMode === ApprovalMode.YOLO) {
31
+ // YOLO mode: allow all tools with wildcard rule
32
+ rules.push({
33
+ // toolName: undefined means wildcard - matches all tools
34
+ decision: PolicyDecision.ALLOW,
35
+ priority: 1.999,
36
+ });
37
+ }
38
+ else if (approvalMode === ApprovalMode.AUTO_EDIT) {
39
+ // AUTO_EDIT mode: allow write tools at priority 1.015
40
+ const writeTools = ['edit', 'smart_edit', 'write_file', 'shell', 'memory'];
41
+ for (const tool of writeTools) {
42
+ rules.push({
43
+ toolName: tool,
44
+ decision: PolicyDecision.ALLOW,
45
+ priority: 1.015,
46
+ });
47
+ }
48
+ }
49
+ // ApprovalMode.DEFAULT doesn't add any rules - standard policy stack applies
50
+ // Map --allowed-tools
51
+ const allowedTools = config.getAllowedTools() ?? [];
52
+ for (const tool of allowedTools) {
53
+ rules.push({
54
+ toolName: tool,
55
+ decision: PolicyDecision.ALLOW,
56
+ priority: 2.3,
57
+ });
58
+ }
59
+ return rules;
60
+ }
61
+ /**
62
+ * Creates the full PolicyEngineConfig by merging:
63
+ * 1. Default TOML policy files (read-only.toml, write.toml)
64
+ * 2. Legacy ApprovalMode migration rules
65
+ * 3. User-defined TOML policies (if userPolicyPath provided)
66
+ * 4. Runtime rules (can be added later via PolicyEngine.addRule)
67
+ *
68
+ * Rules are evaluated by priority (highest wins), so:
69
+ * - User policies (Tier 2: 2.xxx) override defaults (Tier 1: 1.xxx)
70
+ * - Legacy migration rules slot into appropriate priority bands
71
+ * - Admin policies (Tier 3: 3.xxx, if added later) override all
72
+ *
73
+ * @param config - Config object with policy settings
74
+ * @returns PolicyEngineConfig ready for PolicyEngine construction
75
+ */
76
+ export async function createPolicyEngineConfig(config) {
77
+ const rules = [];
78
+ // 1. Load default policies from TOML
79
+ const defaultRules = await loadDefaultPolicies();
80
+ rules.push(...defaultRules);
81
+ // 2. Migrate legacy settings (ApprovalMode, --allowed-tools)
82
+ const legacyRules = migrateLegacyApprovalMode(config);
83
+ rules.push(...legacyRules);
84
+ // 3. Load user-defined policies (if any)
85
+ const userPolicyPath = config.getUserPolicyPath?.();
86
+ if (userPolicyPath) {
87
+ try {
88
+ const userRules = await loadPolicyFromToml(userPolicyPath);
89
+ rules.push(...userRules);
90
+ }
91
+ catch (error) {
92
+ // Log warning but don't fail - user policies are optional
93
+ console.warn(`Failed to load user policy from ${userPolicyPath}:`, error);
94
+ }
95
+ }
96
+ return {
97
+ rules,
98
+ defaultDecision: PolicyDecision.ASK_USER,
99
+ nonInteractive: config.getNonInteractive(),
100
+ };
101
+ }
102
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/policy/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,cAAc,GAGf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAanD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAA0B;IAE1B,MAAM,KAAK,GAAiB,EAAE,CAAC;IAE/B,mBAAmB;IACnB,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;IAE9C,IAAI,YAAY,KAAK,YAAY,CAAC,IAAI,EAAE,CAAC;QACvC,gDAAgD;QAChD,KAAK,CAAC,IAAI,CAAC;YACT,yDAAyD;YACzD,QAAQ,EAAE,cAAc,CAAC,KAAK;YAC9B,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,YAAY,KAAK,YAAY,CAAC,SAAS,EAAE,CAAC;QACnD,sDAAsD;QACtD,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC3E,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC;gBACT,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,cAAc,CAAC,KAAK;gBAC9B,QAAQ,EAAE,KAAK;aAChB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,6EAA6E;IAE7E,sBAAsB;IACtB,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;IACpD,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC;YACT,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,cAAc,CAAC,KAAK;YAC9B,QAAQ,EAAE,GAAG;SACd,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,MAA0B;IAE1B,MAAM,KAAK,GAAiB,EAAE,CAAC;IAE/B,qCAAqC;IACrC,MAAM,YAAY,GAAG,MAAM,mBAAmB,EAAE,CAAC;IACjD,KAAK,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;IAE5B,6DAA6D;IAC7D,MAAM,WAAW,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;IACtD,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;IAE3B,yCAAyC;IACzC,MAAM,cAAc,GAAG,MAAM,CAAC,iBAAiB,EAAE,EAAE,CAAC;IACpD,IAAI,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,cAAc,CAAC,CAAC;YAC3D,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,0DAA0D;YAC1D,OAAO,CAAC,IAAI,CAAC,mCAAmC,cAAc,GAAG,EAAE,KAAK,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK;QACL,eAAe,EAAE,cAAc,CAAC,QAAQ;QACxC,cAAc,EAAE,MAAM,CAAC,iBAAiB,EAAE;KAC3C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './types.js';
2
+ export * from './policy-engine.js';
3
+ export * from './stable-stringify.js';
4
+ export * from './config.js';
5
+ export * from './toml-loader.js';
@@ -0,0 +1,6 @@
1
+ export * from './types.js';
2
+ export * from './policy-engine.js';
3
+ export * from './stable-stringify.js';
4
+ export * from './config.js';
5
+ export * from './toml-loader.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/policy/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,9 @@
1
+ # Default policy for discovered tools (MCP, extensions, etc.)
2
+ # Priority band: 1.01 (Tier 1 - Default)
3
+ # Discovered tools require user confirmation unless explicitly trusted
4
+
5
+ [[rule]]
6
+ # Match all discovered tools (tools with discovered_tool_ prefix will be added by ToolRegistry)
7
+ toolName = "discovered_tool_"
8
+ decision = "ask_user"
9
+ priority = 1.01
@@ -0,0 +1,68 @@
1
+ # Default read-only tool policy
2
+ # Priority band: 1.05 (Tier 1 - Default)
3
+ # These tools are considered safe for auto-approval
4
+
5
+ [[rule]]
6
+ toolName = "glob"
7
+ decision = "allow"
8
+ priority = 1.05
9
+
10
+ [[rule]]
11
+ toolName = "grep"
12
+ decision = "allow"
13
+ priority = 1.05
14
+
15
+ [[rule]]
16
+ toolName = "ls"
17
+ decision = "allow"
18
+ priority = 1.05
19
+
20
+ [[rule]]
21
+ toolName = "read_file"
22
+ decision = "allow"
23
+ priority = 1.05
24
+
25
+ [[rule]]
26
+ toolName = "read_many_files"
27
+ decision = "allow"
28
+ priority = 1.05
29
+
30
+ [[rule]]
31
+ toolName = "ripgrep"
32
+ decision = "allow"
33
+ priority = 1.05
34
+
35
+ [[rule]]
36
+ toolName = "web_search"
37
+ decision = "allow"
38
+ priority = 1.05
39
+
40
+ [[rule]]
41
+ toolName = "task"
42
+ decision = "allow"
43
+ priority = 1.05
44
+
45
+ [[rule]]
46
+ toolName = "write_todos"
47
+ decision = "allow"
48
+ priority = 1.05
49
+
50
+ [[rule]]
51
+ toolName = "list_subagents"
52
+ decision = "allow"
53
+ priority = 1.05
54
+
55
+ [[rule]]
56
+ toolName = "notebook_edit"
57
+ decision = "allow"
58
+ priority = 1.05
59
+
60
+ [[rule]]
61
+ toolName = "slash_command"
62
+ decision = "allow"
63
+ priority = 1.05
64
+
65
+ [[rule]]
66
+ toolName = "skill"
67
+ decision = "allow"
68
+ priority = 1.05
@@ -0,0 +1,69 @@
1
+ # Default write tool policy
2
+ # Priority band: 1.01 (Tier 1 - Default)
3
+ # These tools require user confirmation by default
4
+
5
+ [[rule]]
6
+ toolName = "edit"
7
+ decision = "ask_user"
8
+ priority = 1.01
9
+
10
+ [[rule]]
11
+ toolName = "smart_edit"
12
+ decision = "ask_user"
13
+ priority = 1.01
14
+
15
+ [[rule]]
16
+ toolName = "write_file"
17
+ decision = "ask_user"
18
+ priority = 1.01
19
+
20
+ [[rule]]
21
+ toolName = "shell"
22
+ decision = "ask_user"
23
+ priority = 1.01
24
+
25
+ [[rule]]
26
+ toolName = "memory"
27
+ decision = "ask_user"
28
+ priority = 1.01
29
+
30
+ [[rule]]
31
+ toolName = "web_fetch"
32
+ decision = "ask_user"
33
+ priority = 1.01
34
+
35
+ [[rule]]
36
+ toolName = "mcp_tool"
37
+ decision = "ask_user"
38
+ priority = 1.01
39
+
40
+ # Shell commands with dangerous patterns are denied
41
+ [[rule]]
42
+ toolName = "shell"
43
+ argsPattern = "rm\\s+-rf\\s+/"
44
+ decision = "deny"
45
+ priority = 2.0
46
+
47
+ [[rule]]
48
+ toolName = "shell"
49
+ argsPattern = "chmod\\s+777"
50
+ decision = "deny"
51
+ priority = 2.0
52
+
53
+ [[rule]]
54
+ toolName = "shell"
55
+ argsPattern = "dd\\s+if="
56
+ decision = "deny"
57
+ priority = 2.0
58
+
59
+ [[rule]]
60
+ toolName = "shell"
61
+ argsPattern = "mkfs\\."
62
+ decision = "deny"
63
+ priority = 2.0
64
+
65
+ [[rule]]
66
+ toolName = "shell"
67
+ argsPattern = ":(){ :|:& };:"
68
+ decision = "deny"
69
+ priority = 2.0
@@ -0,0 +1,8 @@
1
+ # YOLO mode policy - allow everything
2
+ # Priority band: 1.999 (Tier 1 - Default, just below user settings)
3
+ # WARNING: This disables all safety checks. Use only in trusted environments.
4
+
5
+ [[rule]]
6
+ # No toolName specified = wildcard (matches all tools)
7
+ decision = "allow"
8
+ priority = 1.999
@@ -0,0 +1,55 @@
1
+ import { PolicyDecision, type PolicyEngineConfig, type PolicyRule } from './types.js';
2
+ /**
3
+ * PolicyEngine evaluates tool execution requests against configured rules.
4
+ * Rules are matched in priority order, with the highest priority rule winning.
5
+ */
6
+ export declare class PolicyEngine {
7
+ private readonly rules;
8
+ private readonly defaultDecision;
9
+ private readonly nonInteractive;
10
+ constructor(config?: PolicyEngineConfig);
11
+ /**
12
+ * Evaluates a tool execution request and returns a policy decision.
13
+ *
14
+ * @param toolName - The name of the tool being executed
15
+ * @param args - The arguments passed to the tool
16
+ * @param serverName - Optional MCP server name (for spoofing prevention)
17
+ * @returns PolicyDecision (ALLOW, DENY, or ASK_USER)
18
+ */
19
+ evaluate(toolName: string, args: Record<string, unknown>, serverName?: string): PolicyDecision;
20
+ /**
21
+ * Finds the highest priority rule matching the tool and args.
22
+ *
23
+ * @param toolName - The name of the tool
24
+ * @param args - The tool arguments
25
+ * @returns The matching rule, or undefined if none match
26
+ */
27
+ private findMatchingRule;
28
+ /**
29
+ * Validates that a tool name matches its claimed server name.
30
+ * Returns null if spoofing is detected, otherwise returns the tool name.
31
+ *
32
+ * @param toolName - The tool name (may include server prefix)
33
+ * @param serverName - The claimed server name
34
+ * @returns The validated tool name, or null if spoofing detected
35
+ */
36
+ private validateServerName;
37
+ /**
38
+ * Returns all configured rules (for debugging/inspection).
39
+ *
40
+ * @returns Array of policy rules
41
+ */
42
+ getRules(): readonly PolicyRule[];
43
+ /**
44
+ * Returns the default decision used when no rules match.
45
+ *
46
+ * @returns PolicyDecision
47
+ */
48
+ getDefaultDecision(): PolicyDecision;
49
+ /**
50
+ * Returns whether the engine is in non-interactive mode.
51
+ *
52
+ * @returns boolean
53
+ */
54
+ isNonInteractive(): boolean;
55
+ }