@google/gemini-cli-core 0.12.0-nightly.20251023.c4c0c0d1 → 0.12.0-nightly.20251027.cb0947c5

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 (189) hide show
  1. package/dist/index.d.ts +2 -0
  2. package/dist/index.js +1 -0
  3. package/dist/index.js.map +1 -1
  4. package/dist/src/agents/subagent-tool-wrapper.test.js +2 -4
  5. package/dist/src/agents/subagent-tool-wrapper.test.js.map +1 -1
  6. package/dist/src/code_assist/oauth2.d.ts +2 -2
  7. package/dist/src/code_assist/oauth2.js +45 -32
  8. package/dist/src/code_assist/oauth2.js.map +1 -1
  9. package/dist/src/code_assist/oauth2.test.js +33 -1
  10. package/dist/src/code_assist/oauth2.test.js.map +1 -1
  11. package/dist/src/code_assist/server.d.ts +3 -3
  12. package/dist/src/code_assist/server.js.map +1 -1
  13. package/dist/src/code_assist/setup.d.ts +2 -2
  14. package/dist/src/code_assist/setup.js.map +1 -1
  15. package/dist/src/config/config.d.ts +4 -1
  16. package/dist/src/config/config.js +7 -4
  17. package/dist/src/config/config.js.map +1 -1
  18. package/dist/src/config/config.test.js +0 -10
  19. package/dist/src/config/config.test.js.map +1 -1
  20. package/dist/src/core/client.d.ts +1 -11
  21. package/dist/src/core/client.js +17 -165
  22. package/dist/src/core/client.js.map +1 -1
  23. package/dist/src/core/client.test.js +70 -405
  24. package/dist/src/core/client.test.js.map +1 -1
  25. package/dist/src/core/contentGenerator.js +4 -0
  26. package/dist/src/core/contentGenerator.js.map +1 -1
  27. package/dist/src/core/contentGenerator.test.js +15 -0
  28. package/dist/src/core/contentGenerator.test.js.map +1 -1
  29. package/dist/src/core/coreToolScheduler.d.ts +7 -7
  30. package/dist/src/core/coreToolScheduler.js +211 -95
  31. package/dist/src/core/coreToolScheduler.js.map +1 -1
  32. package/dist/src/core/coreToolScheduler.test.js +239 -9
  33. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  34. package/dist/src/core/fakeContentGenerator.d.ts +26 -0
  35. package/dist/src/core/fakeContentGenerator.js +61 -0
  36. package/dist/src/core/fakeContentGenerator.js.map +1 -0
  37. package/dist/src/core/fakeContentGenerator.test.d.ts +6 -0
  38. package/dist/src/core/fakeContentGenerator.test.js +140 -0
  39. package/dist/src/core/fakeContentGenerator.test.js.map +1 -0
  40. package/dist/src/core/nonInteractiveToolExecutor.js +5 -4
  41. package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
  42. package/dist/src/core/prompts.test.js +30 -108
  43. package/dist/src/core/prompts.test.js.map +1 -1
  44. package/dist/src/generated/git-commit.d.ts +2 -2
  45. package/dist/src/generated/git-commit.js +2 -2
  46. package/dist/src/index.d.ts +1 -0
  47. package/dist/src/index.js +1 -0
  48. package/dist/src/index.js.map +1 -1
  49. package/dist/src/mcp/google-auth-provider.d.ts +4 -0
  50. package/dist/src/mcp/google-auth-provider.js +58 -7
  51. package/dist/src/mcp/google-auth-provider.js.map +1 -1
  52. package/dist/src/mcp/google-auth-provider.test.js +105 -11
  53. package/dist/src/mcp/google-auth-provider.test.js.map +1 -1
  54. package/dist/src/mcp/oauth-provider.js +2 -2
  55. package/dist/src/mcp/oauth-provider.js.map +1 -1
  56. package/dist/src/mcp/oauth-provider.test.js +130 -0
  57. package/dist/src/mcp/oauth-provider.test.js.map +1 -1
  58. package/dist/src/mcp/oauth-token-storage.js +5 -4
  59. package/dist/src/mcp/oauth-token-storage.js.map +1 -1
  60. package/dist/src/mcp/oauth-token-storage.test.js +17 -11
  61. package/dist/src/mcp/oauth-token-storage.test.js.map +1 -1
  62. package/dist/src/mcp/oauth-utils.d.ts +7 -0
  63. package/dist/src/mcp/oauth-utils.js +19 -0
  64. package/dist/src/mcp/oauth-utils.js.map +1 -1
  65. package/dist/src/mcp/oauth-utils.test.js +32 -0
  66. package/dist/src/mcp/oauth-utils.test.js.map +1 -1
  67. package/dist/src/mcp/sa-impersonation-provider.d.ts +0 -6
  68. package/dist/src/mcp/sa-impersonation-provider.js +3 -21
  69. package/dist/src/mcp/sa-impersonation-provider.js.map +1 -1
  70. package/dist/src/mcp/token-storage/base-token-storage.test.js +75 -84
  71. package/dist/src/mcp/token-storage/base-token-storage.test.js.map +1 -1
  72. package/dist/src/mcp/token-storage/keychain-token-storage.js +5 -4
  73. package/dist/src/mcp/token-storage/keychain-token-storage.js.map +1 -1
  74. package/dist/src/mcp/token-storage/keychain-token-storage.test.js +21 -3
  75. package/dist/src/mcp/token-storage/keychain-token-storage.test.js.map +1 -1
  76. package/dist/src/services/chatCompressionService.d.ts +32 -0
  77. package/dist/src/services/chatCompressionService.js +164 -0
  78. package/dist/src/services/chatCompressionService.js.map +1 -0
  79. package/dist/src/services/chatCompressionService.test.d.ts +6 -0
  80. package/dist/src/services/chatCompressionService.test.js +211 -0
  81. package/dist/src/services/chatCompressionService.test.js.map +1 -0
  82. package/dist/src/services/fileDiscoveryService.d.ts +0 -8
  83. package/dist/src/services/fileDiscoveryService.js +5 -33
  84. package/dist/src/services/fileDiscoveryService.js.map +1 -1
  85. package/dist/src/services/fileDiscoveryService.test.js +11 -11
  86. package/dist/src/services/fileDiscoveryService.test.js.map +1 -1
  87. package/dist/src/services/loopDetectionService.js +19 -9
  88. package/dist/src/services/loopDetectionService.js.map +1 -1
  89. package/dist/src/services/loopDetectionService.test.js +40 -11
  90. package/dist/src/services/loopDetectionService.test.js.map +1 -1
  91. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +1 -0
  92. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +35 -28
  93. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  94. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +1 -1
  95. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
  96. package/dist/src/telemetry/metrics.test.js +2 -2
  97. package/dist/src/telemetry/metrics.test.js.map +1 -1
  98. package/dist/src/tools/edit.d.ts +3 -2
  99. package/dist/src/tools/edit.js +15 -11
  100. package/dist/src/tools/edit.js.map +1 -1
  101. package/dist/src/tools/edit.test.js +19 -0
  102. package/dist/src/tools/edit.test.js.map +1 -1
  103. package/dist/src/tools/glob.js +4 -2
  104. package/dist/src/tools/glob.js.map +1 -1
  105. package/dist/src/tools/grep.js +2 -2
  106. package/dist/src/tools/grep.js.map +1 -1
  107. package/dist/src/tools/ls.js +2 -1
  108. package/dist/src/tools/ls.js.map +1 -1
  109. package/dist/src/tools/ls.test.js +0 -7
  110. package/dist/src/tools/ls.test.js.map +1 -1
  111. package/dist/src/tools/mcp-tool.d.ts +2 -1
  112. package/dist/src/tools/mcp-tool.js +1 -1
  113. package/dist/src/tools/mcp-tool.js.map +1 -1
  114. package/dist/src/tools/memoryTool.d.ts +5 -3
  115. package/dist/src/tools/memoryTool.js +9 -7
  116. package/dist/src/tools/memoryTool.js.map +1 -1
  117. package/dist/src/tools/read-file.js +7 -3
  118. package/dist/src/tools/read-file.js.map +1 -1
  119. package/dist/src/tools/read-file.test.js +25 -2
  120. package/dist/src/tools/read-file.test.js.map +1 -1
  121. package/dist/src/tools/shell.d.ts +6 -4
  122. package/dist/src/tools/shell.js +18 -12
  123. package/dist/src/tools/shell.js.map +1 -1
  124. package/dist/src/tools/shell.test.js +7 -0
  125. package/dist/src/tools/shell.test.js.map +1 -1
  126. package/dist/src/tools/smart-edit.d.ts +2 -1
  127. package/dist/src/tools/smart-edit.js +10 -9
  128. package/dist/src/tools/smart-edit.js.map +1 -1
  129. package/dist/src/tools/tool-registry.d.ts +2 -1
  130. package/dist/src/tools/tool-registry.js +1 -1
  131. package/dist/src/tools/tool-registry.js.map +1 -1
  132. package/dist/src/tools/tools.d.ts +7 -0
  133. package/dist/src/tools/tools.js +11 -16
  134. package/dist/src/tools/tools.js.map +1 -1
  135. package/dist/src/tools/web-fetch.js +1 -12
  136. package/dist/src/tools/web-fetch.js.map +1 -1
  137. package/dist/src/tools/web-fetch.test.js +2 -2
  138. package/dist/src/tools/web-fetch.test.js.map +1 -1
  139. package/dist/src/tools/write-file.d.ts +2 -1
  140. package/dist/src/tools/write-file.js +6 -6
  141. package/dist/src/tools/write-file.js.map +1 -1
  142. package/dist/src/tools/write-todos.d.ts +2 -1
  143. package/dist/src/tools/write-todos.js +1 -1
  144. package/dist/src/tools/write-todos.js.map +1 -1
  145. package/dist/src/utils/environmentContext.d.ts +2 -1
  146. package/dist/src/utils/environmentContext.js +18 -0
  147. package/dist/src/utils/environmentContext.js.map +1 -1
  148. package/dist/src/utils/errorParsing.d.ts +1 -1
  149. package/dist/src/utils/errorParsing.js +5 -33
  150. package/dist/src/utils/errorParsing.js.map +1 -1
  151. package/dist/src/utils/errorParsing.test.js +0 -88
  152. package/dist/src/utils/errorParsing.test.js.map +1 -1
  153. package/dist/src/utils/errors.d.ts +3 -0
  154. package/dist/src/utils/errors.js +6 -0
  155. package/dist/src/utils/errors.js.map +1 -1
  156. package/dist/src/utils/flashFallback.test.js +26 -45
  157. package/dist/src/utils/flashFallback.test.js.map +1 -1
  158. package/dist/src/utils/getFolderStructure.js +7 -16
  159. package/dist/src/utils/getFolderStructure.js.map +1 -1
  160. package/dist/src/utils/googleErrors.d.ts +104 -0
  161. package/dist/src/utils/googleErrors.js +152 -0
  162. package/dist/src/utils/googleErrors.js.map +1 -0
  163. package/dist/src/utils/googleErrors.test.d.ts +6 -0
  164. package/dist/src/utils/googleErrors.test.js +301 -0
  165. package/dist/src/utils/googleErrors.test.js.map +1 -0
  166. package/dist/src/utils/googleQuotaErrors.d.ts +35 -0
  167. package/dist/src/utils/googleQuotaErrors.js +131 -0
  168. package/dist/src/utils/googleQuotaErrors.js.map +1 -0
  169. package/dist/src/utils/googleQuotaErrors.test.d.ts +6 -0
  170. package/dist/src/utils/googleQuotaErrors.test.js +281 -0
  171. package/dist/src/utils/googleQuotaErrors.test.js.map +1 -0
  172. package/dist/src/utils/ignorePatterns.test.js +26 -30
  173. package/dist/src/utils/ignorePatterns.test.js.map +1 -1
  174. package/dist/src/utils/paths.js +126 -26
  175. package/dist/src/utils/paths.js.map +1 -1
  176. package/dist/src/utils/paths.test.js +200 -68
  177. package/dist/src/utils/paths.test.js.map +1 -1
  178. package/dist/src/utils/quotaErrorDetection.d.ts +0 -2
  179. package/dist/src/utils/quotaErrorDetection.js +0 -46
  180. package/dist/src/utils/quotaErrorDetection.js.map +1 -1
  181. package/dist/src/utils/retry.js +41 -145
  182. package/dist/src/utils/retry.js.map +1 -1
  183. package/dist/src/utils/retry.test.js +31 -110
  184. package/dist/src/utils/retry.test.js.map +1 -1
  185. package/dist/src/utils/shell-utils.test.js +70 -0
  186. package/dist/src/utils/shell-utils.test.js.map +1 -1
  187. package/dist/tsconfig.tsbuildinfo +1 -1
  188. package/package.json +2 -2
  189. package/dist/google-gemini-cli-core-0.12.0-nightly.20251022.0542de95.tgz +0 -0
@@ -5,9 +5,7 @@
5
5
  */
6
6
  import { describe, it, expect } from 'vitest';
7
7
  import { parseAndFormatApiError } from './errorParsing.js';
8
- import { isProQuotaExceededError } from './quotaErrorDetection.js';
9
8
  import { DEFAULT_GEMINI_FLASH_MODEL } from '../config/models.js';
10
- import { UserTierId } from '../code_assist/types.js';
11
9
  import { AuthType } from '../core/contentGenerator.js';
12
10
  describe('parseAndFormatApiError', () => {
13
11
  const vertexMessage = 'request a quota increase through Vertex';
@@ -23,12 +21,6 @@ describe('parseAndFormatApiError', () => {
23
21
  expect(result).toContain('[API Error: Rate limit exceeded');
24
22
  expect(result).toContain('Possible quota limitations in place or slow response times detected. Switching to the gemini-2.5-flash model');
25
23
  });
26
- it('should format a 429 API error with the personal message', () => {
27
- const errorMessage = 'got status: 429 Too Many Requests. {"error":{"code":429,"message":"Rate limit exceeded","status":"RESOURCE_EXHAUSTED"}}';
28
- const result = parseAndFormatApiError(errorMessage, AuthType.LOGIN_WITH_GOOGLE, undefined, 'gemini-2.5-pro', DEFAULT_GEMINI_FLASH_MODEL);
29
- expect(result).toContain('[API Error: Rate limit exceeded');
30
- expect(result).toContain('Possible quota limitations in place or slow response times detected. Switching to the gemini-2.5-flash model');
31
- });
32
24
  it('should format a 429 API error with the vertex message', () => {
33
25
  const errorMessage = 'got status: 429 Too Many Requests. {"error":{"code":429,"message":"Rate limit exceeded","status":"RESOURCE_EXHAUSTED"}}';
34
26
  const result = parseAndFormatApiError(errorMessage, AuthType.USE_VERTEX_AI);
@@ -88,85 +80,5 @@ describe('parseAndFormatApiError', () => {
88
80
  const expected = '[API Error: An unknown error occurred.]';
89
81
  expect(parseAndFormatApiError(error)).toBe(expected);
90
82
  });
91
- it('should format a 429 API error with Pro quota exceeded message for Google auth (Free tier)', () => {
92
- const errorMessage = 'got status: 429 Too Many Requests. {"error":{"code":429,"message":"Quota exceeded for quota metric \'Gemini 2.5 Pro Requests\' and limit \'RequestsPerDay\' of service \'generativelanguage.googleapis.com\' for consumer \'project_number:123456789\'.","status":"RESOURCE_EXHAUSTED"}}';
93
- const result = parseAndFormatApiError(errorMessage, AuthType.LOGIN_WITH_GOOGLE, undefined, 'gemini-2.5-pro', DEFAULT_GEMINI_FLASH_MODEL);
94
- expect(result).toContain("[API Error: Quota exceeded for quota metric 'Gemini 2.5 Pro Requests'");
95
- expect(result).toContain('You have reached your daily gemini-2.5-pro quota limit');
96
- expect(result).toContain('upgrade to get higher limits');
97
- });
98
- it('should format a regular 429 API error with standard message for Google auth', () => {
99
- const errorMessage = 'got status: 429 Too Many Requests. {"error":{"code":429,"message":"Rate limit exceeded","status":"RESOURCE_EXHAUSTED"}}';
100
- const result = parseAndFormatApiError(errorMessage, AuthType.LOGIN_WITH_GOOGLE, undefined, 'gemini-2.5-pro', DEFAULT_GEMINI_FLASH_MODEL);
101
- expect(result).toContain('[API Error: Rate limit exceeded');
102
- expect(result).toContain('Possible quota limitations in place or slow response times detected. Switching to the gemini-2.5-flash model');
103
- expect(result).not.toContain('You have reached your daily gemini-2.5-pro quota limit');
104
- });
105
- it('should format a 429 API error with generic quota exceeded message for Google auth', () => {
106
- const errorMessage = 'got status: 429 Too Many Requests. {"error":{"code":429,"message":"Quota exceeded for quota metric \'GenerationRequests\' and limit \'RequestsPerDay\' of service \'generativelanguage.googleapis.com\' for consumer \'project_number:123456789\'.","status":"RESOURCE_EXHAUSTED"}}';
107
- const result = parseAndFormatApiError(errorMessage, AuthType.LOGIN_WITH_GOOGLE, undefined, 'gemini-2.5-pro', DEFAULT_GEMINI_FLASH_MODEL);
108
- expect(result).toContain("[API Error: Quota exceeded for quota metric 'GenerationRequests'");
109
- expect(result).toContain('You have reached your daily quota limit');
110
- expect(result).not.toContain('You have reached your daily Gemini 2.5 Pro quota limit');
111
- });
112
- it('should prioritize Pro quota message over generic quota message for Google auth', () => {
113
- const errorMessage = 'got status: 429 Too Many Requests. {"error":{"code":429,"message":"Quota exceeded for quota metric \'Gemini 2.5 Pro Requests\' and limit \'RequestsPerDay\' of service \'generativelanguage.googleapis.com\' for consumer \'project_number:123456789\'.","status":"RESOURCE_EXHAUSTED"}}';
114
- const result = parseAndFormatApiError(errorMessage, AuthType.LOGIN_WITH_GOOGLE, undefined, 'gemini-2.5-pro', DEFAULT_GEMINI_FLASH_MODEL);
115
- expect(result).toContain("[API Error: Quota exceeded for quota metric 'Gemini 2.5 Pro Requests'");
116
- expect(result).toContain('You have reached your daily gemini-2.5-pro quota limit');
117
- expect(result).not.toContain('You have reached your daily quota limit');
118
- });
119
- it('should format a 429 API error with Pro quota exceeded message for Google auth (Standard tier)', () => {
120
- const errorMessage = 'got status: 429 Too Many Requests. {"error":{"code":429,"message":"Quota exceeded for quota metric \'Gemini 2.5 Pro Requests\' and limit \'RequestsPerDay\' of service \'generativelanguage.googleapis.com\' for consumer \'project_number:123456789\'.","status":"RESOURCE_EXHAUSTED"}}';
121
- const result = parseAndFormatApiError(errorMessage, AuthType.LOGIN_WITH_GOOGLE, UserTierId.STANDARD, 'gemini-2.5-pro', DEFAULT_GEMINI_FLASH_MODEL);
122
- expect(result).toContain("[API Error: Quota exceeded for quota metric 'Gemini 2.5 Pro Requests'");
123
- expect(result).toContain('You have reached your daily gemini-2.5-pro quota limit');
124
- expect(result).toContain('We appreciate you for choosing Gemini Code Assist and the Gemini CLI');
125
- expect(result).not.toContain('upgrade to get higher limits');
126
- });
127
- it('should format a 429 API error with Pro quota exceeded message for Google auth (Legacy tier)', () => {
128
- const errorMessage = 'got status: 429 Too Many Requests. {"error":{"code":429,"message":"Quota exceeded for quota metric \'Gemini 2.5 Pro Requests\' and limit \'RequestsPerDay\' of service \'generativelanguage.googleapis.com\' for consumer \'project_number:123456789\'.","status":"RESOURCE_EXHAUSTED"}}';
129
- const result = parseAndFormatApiError(errorMessage, AuthType.LOGIN_WITH_GOOGLE, UserTierId.LEGACY, 'gemini-2.5-pro', DEFAULT_GEMINI_FLASH_MODEL);
130
- expect(result).toContain("[API Error: Quota exceeded for quota metric 'Gemini 2.5 Pro Requests'");
131
- expect(result).toContain('You have reached your daily gemini-2.5-pro quota limit');
132
- expect(result).toContain('We appreciate you for choosing Gemini Code Assist and the Gemini CLI');
133
- expect(result).not.toContain('upgrade to get higher limits');
134
- });
135
- it('should handle different Gemini 2.5 version strings in Pro quota exceeded errors', () => {
136
- const errorMessage25 = 'got status: 429 Too Many Requests. {"error":{"code":429,"message":"Quota exceeded for quota metric \'Gemini 2.5 Pro Requests\' and limit \'RequestsPerDay\' of service \'generativelanguage.googleapis.com\' for consumer \'project_number:123456789\'.","status":"RESOURCE_EXHAUSTED"}}';
137
- const errorMessagePreview = 'got status: 429 Too Many Requests. {"error":{"code":429,"message":"Quota exceeded for quota metric \'Gemini 2.5-preview Pro Requests\' and limit \'RequestsPerDay\' of service \'generativelanguage.googleapis.com\' for consumer \'project_number:123456789\'.","status":"RESOURCE_EXHAUSTED"}}';
138
- const result25 = parseAndFormatApiError(errorMessage25, AuthType.LOGIN_WITH_GOOGLE, undefined, 'gemini-2.5-pro', DEFAULT_GEMINI_FLASH_MODEL);
139
- const resultPreview = parseAndFormatApiError(errorMessagePreview, AuthType.LOGIN_WITH_GOOGLE, undefined, 'gemini-2.5-preview-pro', DEFAULT_GEMINI_FLASH_MODEL);
140
- expect(result25).toContain('You have reached your daily gemini-2.5-pro quota limit');
141
- expect(resultPreview).toContain('You have reached your daily gemini-2.5-preview-pro quota limit');
142
- expect(result25).toContain('upgrade to get higher limits');
143
- expect(resultPreview).toContain('upgrade to get higher limits');
144
- });
145
- it('should not match non-Pro models with similar version strings', () => {
146
- // Test that Flash models with similar version strings don't match
147
- expect(isProQuotaExceededError("Quota exceeded for quota metric 'Gemini 2.5 Flash Requests' and limit")).toBe(false);
148
- expect(isProQuotaExceededError("Quota exceeded for quota metric 'Gemini 2.5-preview Flash Requests' and limit")).toBe(false);
149
- // Test other model types
150
- expect(isProQuotaExceededError("Quota exceeded for quota metric 'Gemini 2.5 Ultra Requests' and limit")).toBe(false);
151
- expect(isProQuotaExceededError("Quota exceeded for quota metric 'Gemini 2.5 Standard Requests' and limit")).toBe(false);
152
- // Test generic quota messages
153
- expect(isProQuotaExceededError("Quota exceeded for quota metric 'GenerationRequests' and limit")).toBe(false);
154
- expect(isProQuotaExceededError("Quota exceeded for quota metric 'EmbeddingRequests' and limit")).toBe(false);
155
- });
156
- it('should format a generic quota exceeded message for Google auth (Standard tier)', () => {
157
- const errorMessage = 'got status: 429 Too Many Requests. {"error":{"code":429,"message":"Quota exceeded for quota metric \'GenerationRequests\' and limit \'RequestsPerDay\' of service \'generativelanguage.googleapis.com\' for consumer \'project_number:123456789\'.","status":"RESOURCE_EXHAUSTED"}}';
158
- const result = parseAndFormatApiError(errorMessage, AuthType.LOGIN_WITH_GOOGLE, UserTierId.STANDARD, 'gemini-2.5-pro', DEFAULT_GEMINI_FLASH_MODEL);
159
- expect(result).toContain("[API Error: Quota exceeded for quota metric 'GenerationRequests'");
160
- expect(result).toContain('You have reached your daily quota limit');
161
- expect(result).toContain('We appreciate you for choosing Gemini Code Assist and the Gemini CLI');
162
- expect(result).not.toContain('upgrade to get higher limits');
163
- });
164
- it('should format a regular 429 API error with standard message for Google auth (Standard tier)', () => {
165
- const errorMessage = 'got status: 429 Too Many Requests. {"error":{"code":429,"message":"Rate limit exceeded","status":"RESOURCE_EXHAUSTED"}}';
166
- const result = parseAndFormatApiError(errorMessage, AuthType.LOGIN_WITH_GOOGLE, UserTierId.STANDARD, 'gemini-2.5-pro', DEFAULT_GEMINI_FLASH_MODEL);
167
- expect(result).toContain('[API Error: Rate limit exceeded');
168
- expect(result).toContain('We appreciate you for choosing Gemini Code Assist and the Gemini CLI');
169
- expect(result).not.toContain('upgrade to get higher limits');
170
- });
171
83
  });
172
84
  //# sourceMappingURL=errorParsing.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errorParsing.test.js","sourceRoot":"","sources":["../../../src/utils/errorParsing.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errorParsing.test.js","sourceRoot":"","sources":["../../../src/utils/errorParsing.test.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,9 @@ export declare class FatalToolExecutionError extends FatalError {
30
30
  export declare class FatalCancellationError extends FatalError {
31
31
  constructor(message: string);
32
32
  }
33
+ export declare class CanceledError extends Error {
34
+ constructor(message?: string);
35
+ }
33
36
  export declare class ForbiddenError extends Error {
34
37
  }
35
38
  export declare class UnauthorizedError extends Error {
@@ -59,6 +59,12 @@ export class FatalCancellationError extends FatalError {
59
59
  super(message, 130); // Standard exit code for SIGINT
60
60
  }
61
61
  }
62
+ export class CanceledError extends Error {
63
+ constructor(message = 'The operation was canceled.') {
64
+ super(message);
65
+ this.name = 'CanceledError';
66
+ }
67
+ }
62
68
  export class ForbiddenError extends Error {
63
69
  }
64
70
  export class UnauthorizedError extends Error {
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/utils/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/utils/errors.ts"],"names":[],"mappings":"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"}
@@ -6,14 +6,16 @@
6
6
  import { describe, it, expect, beforeEach, vi } from 'vitest';
7
7
  import { Config } from '../config/config.js';
8
8
  import fs from 'node:fs';
9
- import { setSimulate429, disableSimulationAfterFallback, shouldSimulate429, createSimulated429Error, resetRequestCounter, } from './testUtils.js';
9
+ import { setSimulate429, disableSimulationAfterFallback, shouldSimulate429, resetRequestCounter, } from './testUtils.js';
10
10
  import { DEFAULT_GEMINI_FLASH_MODEL } from '../config/models.js';
11
11
  import { retryWithBackoff } from './retry.js';
12
12
  import { AuthType } from '../core/contentGenerator.js';
13
+ import { TerminalQuotaError } from './googleQuotaErrors.js';
13
14
  vi.mock('node:fs');
14
15
  // Update the description to reflect that this tests the retry utility's integration
15
16
  describe('Retry Utility Fallback Integration', () => {
16
17
  let config;
18
+ let mockGoogleApiError;
17
19
  beforeEach(() => {
18
20
  vi.mocked(fs.existsSync).mockReturnValue(true);
19
21
  vi.mocked(fs.statSync).mockReturnValue({
@@ -26,6 +28,11 @@ describe('Retry Utility Fallback Integration', () => {
26
28
  cwd: '/test',
27
29
  model: 'gemini-2.5-pro',
28
30
  });
31
+ mockGoogleApiError = {
32
+ code: 429,
33
+ message: 'mock error',
34
+ details: [],
35
+ };
29
36
  // Reset simulation state for each test
30
37
  setSimulate429(false);
31
38
  resetRequestCounter();
@@ -37,75 +44,49 @@ describe('Retry Utility Fallback Integration', () => {
37
44
  // Use the generalized setter
38
45
  config.setFallbackModelHandler(fallbackHandler);
39
46
  // Call the handler directly via the config property
40
- const result = await config.fallbackModelHandler('gemini-2.5-pro', DEFAULT_GEMINI_FLASH_MODEL);
47
+ const result = await config.fallbackModelHandler('gemini-2.5-pro', DEFAULT_GEMINI_FLASH_MODEL, new Error('test'));
41
48
  // Verify it returns the correct intent
42
49
  expect(result).toBe('retry');
43
50
  });
44
51
  // This test validates the retry utility's logic for triggering the callback.
45
- it('should trigger onPersistent429 after 2 consecutive 429 errors for OAuth users', async () => {
52
+ it('should trigger onPersistent429 on TerminalQuotaError for OAuth users', async () => {
46
53
  let fallbackCalled = false;
47
- // Removed fallbackModel variable as it's no longer relevant here.
48
- // Mock function that simulates exactly 2 429 errors, then succeeds after fallback
49
54
  const mockApiCall = vi
50
55
  .fn()
51
- .mockRejectedValueOnce(createSimulated429Error())
52
- .mockRejectedValueOnce(createSimulated429Error())
56
+ .mockRejectedValueOnce(new TerminalQuotaError('Daily limit', mockGoogleApiError))
57
+ .mockRejectedValueOnce(new TerminalQuotaError('Daily limit', mockGoogleApiError))
53
58
  .mockResolvedValueOnce('success after fallback');
54
- // Mock the onPersistent429 callback (this is what client.ts/geminiChat.ts provides)
55
59
  const mockPersistent429Callback = vi.fn(async (_authType) => {
56
60
  fallbackCalled = true;
57
- // Return true to signal retryWithBackoff to reset attempts and continue.
58
61
  return true;
59
62
  });
60
- // Test with OAuth personal auth type, with maxAttempts = 2 to ensure fallback triggers
61
63
  const result = await retryWithBackoff(mockApiCall, {
62
64
  maxAttempts: 2,
63
65
  initialDelayMs: 1,
64
66
  maxDelayMs: 10,
65
- shouldRetryOnError: (error) => {
66
- const status = error.status;
67
- return status === 429;
68
- },
69
67
  onPersistent429: mockPersistent429Callback,
70
68
  authType: AuthType.LOGIN_WITH_GOOGLE,
71
69
  });
72
- // Verify fallback mechanism was triggered
73
70
  expect(fallbackCalled).toBe(true);
74
- expect(mockPersistent429Callback).toHaveBeenCalledWith(AuthType.LOGIN_WITH_GOOGLE, expect.any(Error));
71
+ expect(mockPersistent429Callback).toHaveBeenCalledWith(AuthType.LOGIN_WITH_GOOGLE, expect.any(TerminalQuotaError));
75
72
  expect(result).toBe('success after fallback');
76
- // Should have: 2 failures, then fallback triggered, then 1 success after retry reset
77
73
  expect(mockApiCall).toHaveBeenCalledTimes(3);
78
74
  });
79
75
  it('should not trigger onPersistent429 for API key users', async () => {
80
- let fallbackCalled = false;
81
- // Mock function that simulates 429 errors
82
- const mockApiCall = vi.fn().mockRejectedValue(createSimulated429Error());
83
- // Mock the callback
84
- const mockPersistent429Callback = vi.fn(async () => {
85
- fallbackCalled = true;
86
- return true;
76
+ const fallbackCallback = vi.fn();
77
+ const mockApiCall = vi
78
+ .fn()
79
+ .mockRejectedValueOnce(new TerminalQuotaError('Daily limit', mockGoogleApiError));
80
+ const promise = retryWithBackoff(mockApiCall, {
81
+ maxAttempts: 2,
82
+ initialDelayMs: 1,
83
+ maxDelayMs: 10,
84
+ onPersistent429: fallbackCallback,
85
+ authType: AuthType.USE_GEMINI, // API key auth type
87
86
  });
88
- // Test with API key auth type - should not trigger fallback
89
- try {
90
- await retryWithBackoff(mockApiCall, {
91
- maxAttempts: 5,
92
- initialDelayMs: 10,
93
- maxDelayMs: 100,
94
- shouldRetryOnError: (error) => {
95
- const status = error.status;
96
- return status === 429;
97
- },
98
- onPersistent429: mockPersistent429Callback,
99
- authType: AuthType.USE_GEMINI, // API key auth type
100
- });
101
- }
102
- catch (error) {
103
- // Expected to throw after max attempts
104
- expect(error.message).toContain('Rate limit exceeded');
105
- }
106
- // Verify fallback was NOT triggered for API key users
107
- expect(fallbackCalled).toBe(false);
108
- expect(mockPersistent429Callback).not.toHaveBeenCalled();
87
+ await expect(promise).rejects.toThrow('Daily limit');
88
+ expect(fallbackCallback).not.toHaveBeenCalled();
89
+ expect(mockApiCall).toHaveBeenCalledTimes(1);
109
90
  });
110
91
  // This test validates the test utilities themselves.
111
92
  it('should properly disable simulation state after fallback (Test Utility)', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"flashFallback.test.js","sourceRoot":"","sources":["../../../src/utils/flashFallback.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flashFallback.test.js","sourceRoot":"","sources":["../../../src/utils/flashFallback.test.ts"],"names":[],"mappings":"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"}
@@ -61,6 +61,10 @@ async function readFullStructure(rootPath, options) {
61
61
  }
62
62
  const filesInCurrentDir = [];
63
63
  const subFoldersInCurrentDir = [];
64
+ const filterFileOptions = {
65
+ respectGitIgnore: options.fileFilteringOptions?.respectGitIgnore,
66
+ respectGeminiIgnore: options.fileFilteringOptions?.respectGeminiIgnore,
67
+ };
64
68
  // Process files first in the current directory
65
69
  for (const entry of entries) {
66
70
  if (entry.isFile()) {
@@ -70,14 +74,8 @@ async function readFullStructure(rootPath, options) {
70
74
  }
71
75
  const fileName = entry.name;
72
76
  const filePath = path.join(currentPath, fileName);
73
- if (options.fileService) {
74
- const shouldIgnore = (options.fileFilteringOptions.respectGitIgnore &&
75
- options.fileService.shouldGitIgnoreFile(filePath)) ||
76
- (options.fileFilteringOptions.respectGeminiIgnore &&
77
- options.fileService.shouldGeminiIgnoreFile(filePath));
78
- if (shouldIgnore) {
79
- continue;
80
- }
77
+ if (options.fileService?.shouldIgnoreFile(filePath, filterFileOptions)) {
78
+ continue;
81
79
  }
82
80
  if (!options.fileIncludePattern ||
83
81
  options.fileIncludePattern.test(fileName)) {
@@ -103,14 +101,7 @@ async function readFullStructure(rootPath, options) {
103
101
  // This logic is tricky. Let's try a simpler: if we can't add this item, mark and break.
104
102
  const subFolderName = entry.name;
105
103
  const subFolderPath = path.join(currentPath, subFolderName);
106
- let isIgnored = false;
107
- if (options.fileService) {
108
- isIgnored =
109
- (options.fileFilteringOptions.respectGitIgnore &&
110
- options.fileService.shouldGitIgnoreFile(subFolderPath)) ||
111
- (options.fileFilteringOptions.respectGeminiIgnore &&
112
- options.fileService.shouldGeminiIgnoreFile(subFolderPath));
113
- }
104
+ const isIgnored = options.fileService?.shouldIgnoreFile(subFolderPath, filterFileOptions) ?? false;
114
105
  if (options.ignoredFolders.has(subFolderName) || isIgnored) {
115
106
  const ignoredSubFolder = {
116
107
  name: subFolderName,
@@ -1 +1 @@
1
- {"version":3,"file":"getFolderStructure.js","sourceRoot":"","sources":["../../../src/utils/getFolderStructure.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG3D,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,SAAS,GAAG,GAAG,CAAC;AACtB,MAAM,oBAAoB,GAAG,KAAK,CAAC;AACnC,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAuC1E,qBAAqB;AAErB,2BAA2B;AAE3B,KAAK,UAAU,iBAAiB,CAC9B,QAAgB,EAChB,OAAqC;IAErC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAmB;QAC/B,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,EAAE;QACT,UAAU,EAAE,EAAE;QACd,aAAa,EAAE,CAAC;QAChB,UAAU,EAAE,CAAC;KACd,CAAC;IAEF,MAAM,KAAK,GAA+D;QACxE,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE;KAChD,CAAC;IACF,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,gFAAgF;IAEhF,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC,CAAC,yDAAyD;IAEnG,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;QAEnD,IAAI,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YACpC,SAAS;QACX,CAAC;QACD,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAEhC,IAAI,gBAAgB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACzC,yEAAyE;YACzE,qDAAqD;YACrD,6EAA6E;YAC7E,SAAS;QACX,CAAC;QAED,IAAI,OAAiB,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1E,sEAAsE;YACtE,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IACE,WAAW,CAAC,KAAK,CAAC;gBAClB,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,EACpD,CAAC;gBACD,WAAW,CAAC,IAAI,CACd,qCAAqC,WAAW,KAAK,KAAK,CAAC,OAAO,EAAE,CACrE,CAAC;gBACF,IAAI,WAAW,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACxD,OAAO,IAAI,CAAC,CAAC,kCAAkC;gBACjD,CAAC;gBACD,6DAA6D;gBAC7D,SAAS;YACX,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QAED,MAAM,iBAAiB,GAAa,EAAE,CAAC;QACvC,MAAM,sBAAsB,GAAqB,EAAE,CAAC;QAEpD,+CAA+C;QAC/C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBACnB,IAAI,gBAAgB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;oBACzC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC;oBAC/B,MAAM;gBACR,CAAC;gBACD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC;gBAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;gBAClD,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;oBACxB,MAAM,YAAY,GAChB,CAAC,OAAO,CAAC,oBAAoB,CAAC,gBAAgB;wBAC5C,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;wBACpD,CAAC,OAAO,CAAC,oBAAoB,CAAC,mBAAmB;4BAC/C,OAAO,CAAC,WAAW,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAC1D,IAAI,YAAY,EAAE,CAAC;wBACjB,SAAS;oBACX,CAAC;gBACH,CAAC;gBACD,IACE,CAAC,OAAO,CAAC,kBAAkB;oBAC3B,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EACzC,CAAC;oBACD,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACjC,gBAAgB,EAAE,CAAC;oBACnB,UAAU,CAAC,UAAU,EAAE,CAAC;oBACxB,UAAU,CAAC,aAAa,EAAE,CAAC;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;QACD,UAAU,CAAC,KAAK,GAAG,iBAAiB,CAAC;QAErC,0CAA0C;QAC1C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,sEAAsE;gBACtE,qEAAqE;gBACrE,IAAI,gBAAgB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;oBACzC,UAAU,CAAC,iBAAiB,GAAG,IAAI,CAAC;oBACpC,MAAM,CAAC,uDAAuD;gBAChE,CAAC;gBACD,oFAAoF;gBACpF,oFAAoF;gBACpF,wFAAwF;gBAExF,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC;gBACjC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;gBAE5D,IAAI,SAAS,GAAG,KAAK,CAAC;gBACtB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;oBACxB,SAAS;wBACP,CAAC,OAAO,CAAC,oBAAoB,CAAC,gBAAgB;4BAC5C,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;4BACzD,CAAC,OAAO,CAAC,oBAAoB,CAAC,mBAAmB;gCAC/C,OAAO,CAAC,WAAW,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC,CAAC;gBACjE,CAAC;gBAED,IAAI,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,SAAS,EAAE,CAAC;oBAC3D,MAAM,gBAAgB,GAAmB;wBACvC,IAAI,EAAE,aAAa;wBACnB,IAAI,EAAE,aAAa;wBACnB,KAAK,EAAE,EAAE;wBACT,UAAU,EAAE,EAAE;wBACd,aAAa,EAAE,CAAC;wBAChB,UAAU,EAAE,CAAC;wBACb,SAAS,EAAE,IAAI;qBAChB,CAAC;oBACF,sBAAsB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;oBAC9C,gBAAgB,EAAE,CAAC,CAAC,kCAAkC;oBACtD,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC,wCAAwC;oBACpE,SAAS;gBACX,CAAC;gBAED,MAAM,aAAa,GAAmB;oBACpC,IAAI,EAAE,aAAa;oBACnB,IAAI,EAAE,aAAa;oBACnB,KAAK,EAAE,EAAE;oBACT,UAAU,EAAE,EAAE;oBACd,aAAa,EAAE,CAAC;oBAChB,UAAU,EAAE,CAAC;iBACd,CAAC;gBACF,sBAAsB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC3C,gBAAgB,EAAE,CAAC;gBACnB,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC,mCAAmC;gBAE/D,iDAAiD;gBACjD,KAAK,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;QACD,UAAU,CAAC,UAAU,GAAG,sBAAsB,CAAC;IACjD,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,eAAe,CACtB,IAAoB,EACpB,aAAqB,EACrB,mBAA4B,EAC5B,oBAA6B,EAC7B,OAAiB;IAEjB,MAAM,SAAS,GAAG,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAExD,kFAAkF;IAClF,0EAA0E;IAC1E,6DAA6D;IAC7D,mDAAmD;IACnD,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5C,OAAO,CAAC,IAAI,CACV,GAAG,aAAa,GAAG,SAAS,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE,CACnG,CAAC;IACJ,CAAC;IAED,wDAAwD;IACxD,iHAAiH;IACjH,uEAAuE;IACvE,MAAM,iBAAiB,GAAG,oBAAoB;QAC5C,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,aAAa,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAE5D,mCAAmC;IACnC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,uBAAuB,GAC3B,CAAC,KAAK,SAAS,GAAG,CAAC;YACnB,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;YAC5B,CAAC,IAAI,CAAC,iBAAiB,CAAC;QAC1B,MAAM,aAAa,GAAG,uBAAuB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,GAAG,iBAAiB,GAAG,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,MAAM,4BAA4B,GAChC,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC;QAC1D,MAAM,aAAa,GAAG,4BAA4B,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,GAAG,iBAAiB,GAAG,aAAa,GAAG,oBAAoB,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,wCAAwC;IACxC,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;IAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,4BAA4B,GAChC,CAAC,KAAK,cAAc,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC;QACtD,8DAA8D;QAC9D,eAAe,CACb,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAClB,iBAAiB,EACjB,4BAA4B,EAC5B,KAAK,EACL,OAAO,CACR,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,GAAG,iBAAiB,OAAO,oBAAoB,EAAE,CAAC,CAAC;IAClE,CAAC;AACH,CAAC;AAED,iCAAiC;AAEjC;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,SAAiB,EACjB,OAAgC;IAEhC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,aAAa,GAAiC;QAClD,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,SAAS;QACxC,cAAc,EAAE,OAAO,EAAE,cAAc,IAAI,uBAAuB;QAClE,kBAAkB,EAAE,OAAO,EAAE,kBAAkB;QAC/C,WAAW,EAAE,OAAO,EAAE,WAAW;QACjC,oBAAoB,EAClB,OAAO,EAAE,oBAAoB,IAAI,8BAA8B;KAClE,CAAC;IAEF,IAAI,CAAC;QACH,uDAAuD;QACvD,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QAE3E,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,oCAAoC,YAAY,gCAAgC,CAAC;QAC1F,CAAC;QAED,wCAAwC;QACxC,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,4CAA4C;QAC5C,eAAe,CAAC,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAE/D,mCAAmC;QACnC,SAAS,WAAW,CAAC,IAAoB;YACvC,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBAClE,OAAO,IAAI,CAAC;YACd,CAAC;YACD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClC,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;oBACrB,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,OAAO,GAAG,iBAAiB,aAAa,CAAC,QAAQ,2BAA2B,CAAC;QAEjF,IAAI,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC;YAC/B,OAAO,IAAI,oCAAoC,oBAAoB,sEAAsE,aAAa,CAAC,QAAQ,sBAAsB,CAAC;QACxL,CAAC;QAED,OAAO,GAAG,OAAO,OAAO,YAAY,GAAG,IAAI,CAAC,GAAG,KAAK,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAClF,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,sCAAsC,YAAY,GAAG,EAAE,KAAK,CAAC,CAAC;QAC5E,OAAO,+BAA+B,YAAY,MAAM,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;IACnF,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"getFolderStructure.js","sourceRoot":"","sources":["../../../src/utils/getFolderStructure.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * @fileoverview
8
+ * This file contains types and functions for parsing structured Google API errors.
9
+ */
10
+ /**
11
+ * Based on google/rpc/error_details.proto
12
+ */
13
+ export interface ErrorInfo {
14
+ '@type': 'type.googleapis.com/google.rpc.ErrorInfo';
15
+ reason: string;
16
+ domain: string;
17
+ metadata: {
18
+ [key: string]: string;
19
+ };
20
+ }
21
+ export interface RetryInfo {
22
+ '@type': 'type.googleapis.com/google.rpc.RetryInfo';
23
+ retryDelay: string;
24
+ }
25
+ export interface DebugInfo {
26
+ '@type': 'type.googleapis.com/google.rpc.DebugInfo';
27
+ stackEntries: string[];
28
+ detail: string;
29
+ }
30
+ export interface QuotaFailure {
31
+ '@type': 'type.googleapis.com/google.rpc.QuotaFailure';
32
+ violations: Array<{
33
+ subject?: string;
34
+ description?: string;
35
+ apiService?: string;
36
+ quotaMetric?: string;
37
+ quotaId?: string;
38
+ quotaDimensions?: {
39
+ [key: string]: string;
40
+ };
41
+ quotaValue?: string | number;
42
+ futureQuotaValue?: number;
43
+ }>;
44
+ }
45
+ export interface PreconditionFailure {
46
+ '@type': 'type.googleapis.com/google.rpc.PreconditionFailure';
47
+ violations: Array<{
48
+ type: string;
49
+ subject: string;
50
+ description: string;
51
+ }>;
52
+ }
53
+ export interface LocalizedMessage {
54
+ '@type': 'type.googleapis.com/google.rpc.LocalizedMessage';
55
+ locale: string;
56
+ message: string;
57
+ }
58
+ export interface BadRequest {
59
+ '@type': 'type.googleapis.com/google.rpc.BadRequest';
60
+ fieldViolations: Array<{
61
+ field: string;
62
+ description: string;
63
+ reason?: string;
64
+ localizedMessage?: LocalizedMessage;
65
+ }>;
66
+ }
67
+ export interface RequestInfo {
68
+ '@type': 'type.googleapis.com/google.rpc.RequestInfo';
69
+ requestId: string;
70
+ servingData: string;
71
+ }
72
+ export interface ResourceInfo {
73
+ '@type': 'type.googleapis.com/google.rpc.ResourceInfo';
74
+ resourceType: string;
75
+ resourceName: string;
76
+ owner: string;
77
+ description: string;
78
+ }
79
+ export interface Help {
80
+ '@type': 'type.googleapis.com/google.rpc.Help';
81
+ links: Array<{
82
+ description: string;
83
+ url: string;
84
+ }>;
85
+ }
86
+ export type GoogleApiErrorDetail = ErrorInfo | RetryInfo | DebugInfo | QuotaFailure | PreconditionFailure | BadRequest | RequestInfo | ResourceInfo | Help | LocalizedMessage;
87
+ export interface GoogleApiError {
88
+ code: number;
89
+ message: string;
90
+ details: GoogleApiErrorDetail[];
91
+ }
92
+ /**
93
+ * Parses an error object to check if it's a structured Google API error
94
+ * and extracts all details.
95
+ *
96
+ * This function can handle two formats:
97
+ * 1. Standard Google API errors where `details` is a top-level field.
98
+ * 2. Errors where the entire structured error object is stringified inside
99
+ * the `message` field of a wrapper error.
100
+ *
101
+ * @param error The error object to inspect.
102
+ * @returns A GoogleApiError object if the error matches, otherwise null.
103
+ */
104
+ export declare function parseGoogleApiError(error: unknown): GoogleApiError | null;