@google/gemini-cli 0.12.0-nightly.20251023.c4c0c0d1 → 0.12.0-preview.0

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 (248) hide show
  1. package/README.md +7 -5
  2. package/dist/package.json +3 -3
  3. package/dist/src/commands/extensions/disable.d.ts +1 -1
  4. package/dist/src/commands/extensions/disable.js +5 -4
  5. package/dist/src/commands/extensions/disable.js.map +1 -1
  6. package/dist/src/commands/extensions/enable.d.ts +1 -1
  7. package/dist/src/commands/extensions/enable.js +3 -2
  8. package/dist/src/commands/extensions/enable.js.map +1 -1
  9. package/dist/src/commands/extensions/install.js +2 -1
  10. package/dist/src/commands/extensions/install.js.map +1 -1
  11. package/dist/src/commands/extensions/install.test.js +1 -0
  12. package/dist/src/commands/extensions/install.test.js.map +1 -1
  13. package/dist/src/commands/extensions/link.js +2 -1
  14. package/dist/src/commands/extensions/link.js.map +1 -1
  15. package/dist/src/commands/extensions/list.js +2 -2
  16. package/dist/src/commands/extensions/list.js.map +1 -1
  17. package/dist/src/commands/extensions/uninstall.js +2 -1
  18. package/dist/src/commands/extensions/uninstall.js.map +1 -1
  19. package/dist/src/commands/extensions/update.js +2 -2
  20. package/dist/src/commands/extensions/update.js.map +1 -1
  21. package/dist/src/commands/mcp/list.js +2 -2
  22. package/dist/src/commands/mcp/list.js.map +1 -1
  23. package/dist/src/config/config.d.ts +6 -3
  24. package/dist/src/config/config.js +56 -11
  25. package/dist/src/config/config.js.map +1 -1
  26. package/dist/src/config/config.test.js +208 -175
  27. package/dist/src/config/config.test.js.map +1 -1
  28. package/dist/src/config/extension-manager.d.ts +23 -10
  29. package/dist/src/config/extension-manager.js +90 -64
  30. package/dist/src/config/extension-manager.js.map +1 -1
  31. package/dist/src/config/extension.test.js +183 -76
  32. package/dist/src/config/extension.test.js.map +1 -1
  33. package/dist/src/config/extensions/extensionEnablement.d.ts +1 -1
  34. package/dist/src/config/extensions/extensionEnablement.js +3 -2
  35. package/dist/src/config/extensions/extensionEnablement.js.map +1 -1
  36. package/dist/src/config/extensions/extensionEnablement.test.js +10 -10
  37. package/dist/src/config/extensions/extensionEnablement.test.js.map +1 -1
  38. package/dist/src/config/extensions/extensionSettings.d.ts +3 -3
  39. package/dist/src/config/extensions/extensionSettings.js +74 -24
  40. package/dist/src/config/extensions/extensionSettings.js.map +1 -1
  41. package/dist/src/config/extensions/extensionSettings.test.js +145 -24
  42. package/dist/src/config/extensions/extensionSettings.test.js.map +1 -1
  43. package/dist/src/config/extensions/github.js +3 -3
  44. package/dist/src/config/extensions/github.js.map +1 -1
  45. package/dist/src/config/extensions/github.test.js +1 -1
  46. package/dist/src/config/extensions/github.test.js.map +1 -1
  47. package/dist/src/config/extensions/github_fetch.d.ts +1 -1
  48. package/dist/src/config/extensions/github_fetch.js +13 -1
  49. package/dist/src/config/extensions/github_fetch.js.map +1 -1
  50. package/dist/src/config/extensions/github_fetch.test.d.ts +6 -0
  51. package/dist/src/config/extensions/github_fetch.test.js +169 -0
  52. package/dist/src/config/extensions/github_fetch.test.js.map +1 -0
  53. package/dist/src/config/extensions/update.js +7 -6
  54. package/dist/src/config/extensions/update.js.map +1 -1
  55. package/dist/src/config/extensions/update.test.js +54 -30
  56. package/dist/src/config/extensions/update.test.js.map +1 -1
  57. package/dist/src/config/keyBindings.js +1 -1
  58. package/dist/src/config/keyBindings.js.map +1 -1
  59. package/dist/src/config/policies/read-only.toml +56 -0
  60. package/dist/src/config/policies/write.toml +63 -0
  61. package/dist/src/config/policies/yolo.toml +31 -0
  62. package/dist/src/config/policy-engine.integration.test.js +41 -38
  63. package/dist/src/config/policy-engine.integration.test.js.map +1 -1
  64. package/dist/src/config/policy-toml-loader.d.ts +46 -0
  65. package/dist/src/config/policy-toml-loader.js +314 -0
  66. package/dist/src/config/policy-toml-loader.js.map +1 -0
  67. package/dist/src/config/policy-toml-loader.test.d.ts +6 -0
  68. package/dist/src/config/policy-toml-loader.test.js +626 -0
  69. package/dist/src/config/policy-toml-loader.test.js.map +1 -0
  70. package/dist/src/config/policy.d.ts +9 -2
  71. package/dist/src/config/policy.js +139 -110
  72. package/dist/src/config/policy.js.map +1 -1
  73. package/dist/src/config/policy.test.js +780 -82
  74. package/dist/src/config/policy.test.js.map +1 -1
  75. package/dist/src/config/settings.test.js +6 -6
  76. package/dist/src/config/settings.test.js.map +1 -1
  77. package/dist/src/core/initializer.js +2 -1
  78. package/dist/src/core/initializer.js.map +1 -1
  79. package/dist/src/gemini.js +6 -17
  80. package/dist/src/gemini.js.map +1 -1
  81. package/dist/src/gemini.test.js +27 -2
  82. package/dist/src/gemini.test.js.map +1 -1
  83. package/dist/src/generated/git-commit.d.ts +2 -2
  84. package/dist/src/generated/git-commit.js +2 -2
  85. package/dist/src/generated/git-commit.js.map +1 -1
  86. package/dist/src/nonInteractiveCli.js +16 -4
  87. package/dist/src/nonInteractiveCli.js.map +1 -1
  88. package/dist/src/nonInteractiveCli.test.js +67 -12
  89. package/dist/src/nonInteractiveCli.test.js.map +1 -1
  90. package/dist/src/test-utils/render.d.ts +12 -0
  91. package/dist/src/test-utils/render.js +28 -1
  92. package/dist/src/test-utils/render.js.map +1 -1
  93. package/dist/src/test-utils/render.test.d.ts +6 -0
  94. package/dist/src/test-utils/render.test.js +54 -0
  95. package/dist/src/test-utils/render.test.js.map +1 -0
  96. package/dist/src/ui/AppContainer.js +29 -23
  97. package/dist/src/ui/AppContainer.js.map +1 -1
  98. package/dist/src/ui/AppContainer.test.js +8 -0
  99. package/dist/src/ui/AppContainer.test.js.map +1 -1
  100. package/dist/src/ui/commands/directoryCommand.js +1 -1
  101. package/dist/src/ui/commands/directoryCommand.js.map +1 -1
  102. package/dist/src/ui/commands/extensionsCommand.js +45 -1
  103. package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
  104. package/dist/src/ui/commands/extensionsCommand.test.js +64 -1
  105. package/dist/src/ui/commands/extensionsCommand.test.js.map +1 -1
  106. package/dist/src/ui/commands/memoryCommand.js +1 -1
  107. package/dist/src/ui/commands/memoryCommand.js.map +1 -1
  108. package/dist/src/ui/commands/memoryCommand.test.js +3 -1
  109. package/dist/src/ui/commands/memoryCommand.test.js.map +1 -1
  110. package/dist/src/ui/components/ConsoleSummaryDisplay.js +1 -1
  111. package/dist/src/ui/components/ConsoleSummaryDisplay.js.map +1 -1
  112. package/dist/src/ui/components/DetailedMessagesDisplay.js +1 -1
  113. package/dist/src/ui/components/DetailedMessagesDisplay.js.map +1 -1
  114. package/dist/src/ui/components/FolderTrustDialog.test.js +4 -4
  115. package/dist/src/ui/components/FolderTrustDialog.test.js.map +1 -1
  116. package/dist/src/ui/components/Footer.js +1 -1
  117. package/dist/src/ui/components/Footer.js.map +1 -1
  118. package/dist/src/ui/components/Footer.test.js +24 -0
  119. package/dist/src/ui/components/Footer.test.js.map +1 -1
  120. package/dist/src/ui/components/Help.test.js +0 -1
  121. package/dist/src/ui/components/Help.test.js.map +1 -1
  122. package/dist/src/ui/components/InputPrompt.test.js +442 -342
  123. package/dist/src/ui/components/InputPrompt.test.js.map +1 -1
  124. package/dist/src/ui/components/ModelDialog.test.js +5 -5
  125. package/dist/src/ui/components/ModelDialog.test.js.map +1 -1
  126. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js +11 -12
  127. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js.map +1 -1
  128. package/dist/src/ui/components/SettingsDialog.test.js +13 -14
  129. package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
  130. package/dist/src/ui/components/ThemeDialog.test.js +1 -2
  131. package/dist/src/ui/components/ThemeDialog.test.js.map +1 -1
  132. package/dist/src/ui/components/shared/BaseSelectionList.test.js +11 -12
  133. package/dist/src/ui/components/shared/BaseSelectionList.test.js.map +1 -1
  134. package/dist/src/ui/components/shared/text-buffer.test.js +2 -1
  135. package/dist/src/ui/components/shared/text-buffer.test.js.map +1 -1
  136. package/dist/src/ui/components/views/ExtensionsList.d.ts +1 -1
  137. package/dist/src/ui/components/views/ExtensionsList.js +4 -1
  138. package/dist/src/ui/components/views/ExtensionsList.js.map +1 -1
  139. package/dist/src/ui/contexts/KeypressContext.d.ts +3 -2
  140. package/dist/src/ui/contexts/KeypressContext.js +114 -64
  141. package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
  142. package/dist/src/ui/contexts/KeypressContext.test.js +166 -482
  143. package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
  144. package/dist/src/ui/contexts/SessionContext.test.js +27 -13
  145. package/dist/src/ui/contexts/SessionContext.test.js.map +1 -1
  146. package/dist/src/ui/hooks/atCommandProcessor.js +2 -2
  147. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  148. package/dist/src/ui/hooks/shellCommandProcessor.test.js +18 -2
  149. package/dist/src/ui/hooks/shellCommandProcessor.test.js.map +1 -1
  150. package/dist/src/ui/hooks/slashCommandProcessor.test.js +74 -80
  151. package/dist/src/ui/hooks/slashCommandProcessor.test.js.map +1 -1
  152. package/dist/src/ui/hooks/useAtCompletion.test.js +32 -23
  153. package/dist/src/ui/hooks/useAtCompletion.test.js.map +1 -1
  154. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js +2 -1
  155. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js.map +1 -1
  156. package/dist/src/ui/hooks/useCommandCompletion.test.js +79 -78
  157. package/dist/src/ui/hooks/useCommandCompletion.test.js.map +1 -1
  158. package/dist/src/ui/hooks/useConsoleMessages.test.js +26 -9
  159. package/dist/src/ui/hooks/useConsoleMessages.test.js.map +1 -1
  160. package/dist/src/ui/hooks/useEditorSettings.test.js +40 -34
  161. package/dist/src/ui/hooks/useEditorSettings.test.js.map +1 -1
  162. package/dist/src/ui/hooks/useExtensionUpdates.d.ts +1 -2
  163. package/dist/src/ui/hooks/useExtensionUpdates.js +4 -2
  164. package/dist/src/ui/hooks/useExtensionUpdates.js.map +1 -1
  165. package/dist/src/ui/hooks/useExtensionUpdates.test.js +37 -26
  166. package/dist/src/ui/hooks/useExtensionUpdates.test.js.map +1 -1
  167. package/dist/src/ui/hooks/useFlickerDetector.test.js +9 -5
  168. package/dist/src/ui/hooks/useFlickerDetector.test.js.map +1 -1
  169. package/dist/src/ui/hooks/useFocus.test.js +25 -9
  170. package/dist/src/ui/hooks/useFocus.test.js.map +1 -1
  171. package/dist/src/ui/hooks/useFolderTrust.test.js +45 -22
  172. package/dist/src/ui/hooks/useFolderTrust.test.js.map +1 -1
  173. package/dist/src/ui/hooks/useGeminiStream.js +56 -19
  174. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  175. package/dist/src/ui/hooks/useGeminiStream.test.js +155 -74
  176. package/dist/src/ui/hooks/useGeminiStream.test.js.map +1 -1
  177. package/dist/src/ui/hooks/useGitBranchName.test.js +29 -16
  178. package/dist/src/ui/hooks/useGitBranchName.test.js.map +1 -1
  179. package/dist/src/ui/hooks/useHistoryManager.test.js +2 -1
  180. package/dist/src/ui/hooks/useHistoryManager.test.js.map +1 -1
  181. package/dist/src/ui/hooks/useIdeTrustListener.test.js +24 -7
  182. package/dist/src/ui/hooks/useIdeTrustListener.test.js.map +1 -1
  183. package/dist/src/ui/hooks/useInputHistory.test.js +2 -1
  184. package/dist/src/ui/hooks/useInputHistory.test.js.map +1 -1
  185. package/dist/src/ui/hooks/useInputHistoryStore.test.js +2 -1
  186. package/dist/src/ui/hooks/useInputHistoryStore.test.js.map +1 -1
  187. package/dist/src/ui/hooks/useKeypress.test.js +94 -113
  188. package/dist/src/ui/hooks/useKeypress.test.js.map +1 -1
  189. package/dist/src/ui/hooks/useLoadingIndicator.test.js +24 -6
  190. package/dist/src/ui/hooks/useLoadingIndicator.test.js.map +1 -1
  191. package/dist/src/ui/hooks/useMemoryMonitor.test.js +10 -5
  192. package/dist/src/ui/hooks/useMemoryMonitor.test.js.map +1 -1
  193. package/dist/src/ui/hooks/useMessageQueue.test.js +61 -45
  194. package/dist/src/ui/hooks/useMessageQueue.test.js.map +1 -1
  195. package/dist/src/ui/hooks/useModelCommand.test.js +18 -11
  196. package/dist/src/ui/hooks/useModelCommand.test.js.map +1 -1
  197. package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js +2 -2
  198. package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js.map +1 -1
  199. package/dist/src/ui/hooks/usePhraseCycler.js +1 -1
  200. package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
  201. package/dist/src/ui/hooks/usePhraseCycler.test.js +83 -110
  202. package/dist/src/ui/hooks/usePhraseCycler.test.js.map +1 -1
  203. package/dist/src/ui/hooks/usePrivacySettings.test.js +26 -10
  204. package/dist/src/ui/hooks/usePrivacySettings.test.js.map +1 -1
  205. package/dist/src/ui/hooks/useQuotaAndFallback.js +13 -14
  206. package/dist/src/ui/hooks/useQuotaAndFallback.js.map +1 -1
  207. package/dist/src/ui/hooks/useQuotaAndFallback.test.js +33 -40
  208. package/dist/src/ui/hooks/useQuotaAndFallback.test.js.map +1 -1
  209. package/dist/src/ui/hooks/useReactToolScheduler.d.ts +8 -1
  210. package/dist/src/ui/hooks/useReactToolScheduler.js +37 -26
  211. package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
  212. package/dist/src/ui/hooks/useReactToolScheduler.test.js +1 -1
  213. package/dist/src/ui/hooks/useReactToolScheduler.test.js.map +1 -1
  214. package/dist/src/ui/hooks/useReverseSearchCompletion.test.js +2 -2
  215. package/dist/src/ui/hooks/useReverseSearchCompletion.test.js.map +1 -1
  216. package/dist/src/ui/hooks/useSelectionList.test.js +193 -132
  217. package/dist/src/ui/hooks/useSelectionList.test.js.map +1 -1
  218. package/dist/src/ui/hooks/useShellHistory.test.js +40 -16
  219. package/dist/src/ui/hooks/useShellHistory.test.js.map +1 -1
  220. package/dist/src/ui/hooks/useSlashCompletion.test.js +54 -49
  221. package/dist/src/ui/hooks/useSlashCompletion.test.js.map +1 -1
  222. package/dist/src/ui/hooks/useTimer.test.js +43 -14
  223. package/dist/src/ui/hooks/useTimer.test.js.map +1 -1
  224. package/dist/src/ui/hooks/useToolScheduler.test.js +163 -74
  225. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  226. package/dist/src/ui/hooks/vim.test.js +251 -356
  227. package/dist/src/ui/hooks/vim.test.js.map +1 -1
  228. package/dist/src/ui/keyMatchers.test.js +3 -3
  229. package/dist/src/ui/keyMatchers.test.js.map +1 -1
  230. package/dist/src/ui/utils/textOutput.d.ts +25 -0
  231. package/dist/src/ui/utils/textOutput.js +49 -0
  232. package/dist/src/ui/utils/textOutput.js.map +1 -0
  233. package/dist/src/ui/utils/textOutput.test.d.ts +6 -0
  234. package/dist/src/ui/utils/textOutput.test.js +79 -0
  235. package/dist/src/ui/utils/textOutput.test.js.map +1 -0
  236. package/dist/src/ui/utils/updateCheck.d.ts +7 -1
  237. package/dist/src/ui/utils/updateCheck.js +27 -26
  238. package/dist/src/ui/utils/updateCheck.js.map +1 -1
  239. package/dist/src/ui/utils/updateCheck.test.js +19 -49
  240. package/dist/src/ui/utils/updateCheck.test.js.map +1 -1
  241. package/dist/src/utils/handleAutoUpdate.js +9 -3
  242. package/dist/src/utils/handleAutoUpdate.js.map +1 -1
  243. package/dist/src/zed-integration/zedIntegration.d.ts +2 -2
  244. package/dist/src/zed-integration/zedIntegration.js +9 -16
  245. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  246. package/dist/tsconfig.tsbuildinfo +1 -1
  247. package/package.json +4 -4
  248. package/dist/google-gemini-cli-0.12.0-nightly.20251022.0542de95.tgz +0 -0
@@ -0,0 +1,169 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { describe, it, expect, vi, afterEach, beforeEach } from 'vitest';
7
+ import * as https from 'node:https';
8
+ import { EventEmitter } from 'node:events';
9
+ import { fetchJson, getGitHubToken } from './github_fetch.js';
10
+ vi.mock('node:https');
11
+ describe('getGitHubToken', () => {
12
+ const originalToken = process.env['GITHUB_TOKEN'];
13
+ afterEach(() => {
14
+ if (originalToken) {
15
+ process.env['GITHUB_TOKEN'] = originalToken;
16
+ }
17
+ else {
18
+ delete process.env['GITHUB_TOKEN'];
19
+ }
20
+ });
21
+ it('should return the token if GITHUB_TOKEN is set', () => {
22
+ process.env['GITHUB_TOKEN'] = 'test-token';
23
+ expect(getGitHubToken()).toBe('test-token');
24
+ });
25
+ it('should return undefined if GITHUB_TOKEN is not set', () => {
26
+ delete process.env['GITHUB_TOKEN'];
27
+ expect(getGitHubToken()).toBeUndefined();
28
+ });
29
+ });
30
+ describe('fetchJson', () => {
31
+ const getMock = vi.mocked(https.get);
32
+ afterEach(() => {
33
+ vi.resetAllMocks();
34
+ });
35
+ it('should fetch and parse JSON successfully', async () => {
36
+ getMock.mockImplementationOnce((_url, _options, callback) => {
37
+ const res = new EventEmitter();
38
+ res.statusCode = 200;
39
+ callback(res);
40
+ res.emit('data', Buffer.from('{"foo":'));
41
+ res.emit('data', Buffer.from('"bar"}'));
42
+ res.emit('end');
43
+ return new EventEmitter();
44
+ });
45
+ await expect(fetchJson('https://example.com/data.json')).resolves.toEqual({
46
+ foo: 'bar',
47
+ });
48
+ });
49
+ it('should handle redirects (301 and 302)', async () => {
50
+ // Test 302
51
+ getMock.mockImplementationOnce((_url, _options, callback) => {
52
+ const res = new EventEmitter();
53
+ res.statusCode = 302;
54
+ res.headers = { location: 'https://example.com/final' };
55
+ callback(res);
56
+ res.emit('end');
57
+ return new EventEmitter();
58
+ });
59
+ getMock.mockImplementationOnce((url, _options, callback) => {
60
+ expect(url).toBe('https://example.com/final');
61
+ const res = new EventEmitter();
62
+ res.statusCode = 200;
63
+ callback(res);
64
+ res.emit('data', Buffer.from('{"success": true}'));
65
+ res.emit('end');
66
+ return new EventEmitter();
67
+ });
68
+ await expect(fetchJson('https://example.com/redirect')).resolves.toEqual({
69
+ success: true,
70
+ });
71
+ // Test 301
72
+ getMock.mockImplementationOnce((_url, _options, callback) => {
73
+ const res = new EventEmitter();
74
+ res.statusCode = 301;
75
+ res.headers = { location: 'https://example.com/final-permanent' };
76
+ callback(res);
77
+ res.emit('end');
78
+ return new EventEmitter();
79
+ });
80
+ getMock.mockImplementationOnce((url, _options, callback) => {
81
+ expect(url).toBe('https://example.com/final-permanent');
82
+ const res = new EventEmitter();
83
+ res.statusCode = 200;
84
+ callback(res);
85
+ res.emit('data', Buffer.from('{"permanent": true}'));
86
+ res.emit('end');
87
+ return new EventEmitter();
88
+ });
89
+ await expect(fetchJson('https://example.com/redirect-perm')).resolves.toEqual({ permanent: true });
90
+ });
91
+ it('should reject on non-200/30x status code', async () => {
92
+ getMock.mockImplementationOnce((_url, _options, callback) => {
93
+ const res = new EventEmitter();
94
+ res.statusCode = 404;
95
+ callback(res);
96
+ res.emit('end');
97
+ return new EventEmitter();
98
+ });
99
+ await expect(fetchJson('https://example.com/error')).rejects.toThrow('Request failed with status code 404');
100
+ });
101
+ it('should reject on request error', async () => {
102
+ const error = new Error('Network error');
103
+ getMock.mockImplementationOnce(() => {
104
+ const req = new EventEmitter();
105
+ req.emit('error', error);
106
+ return req;
107
+ });
108
+ await expect(fetchJson('https://example.com/error')).rejects.toThrow('Network error');
109
+ });
110
+ describe('with GITHUB_TOKEN', () => {
111
+ const originalToken = process.env['GITHUB_TOKEN'];
112
+ beforeEach(() => {
113
+ process.env['GITHUB_TOKEN'] = 'my-secret-token';
114
+ });
115
+ afterEach(() => {
116
+ if (originalToken) {
117
+ process.env['GITHUB_TOKEN'] = originalToken;
118
+ }
119
+ else {
120
+ delete process.env['GITHUB_TOKEN'];
121
+ }
122
+ });
123
+ it('should include Authorization header if token is present', async () => {
124
+ getMock.mockImplementationOnce((_url, options, callback) => {
125
+ expect(options.headers).toEqual({
126
+ 'User-Agent': 'gemini-cli',
127
+ Authorization: 'token my-secret-token',
128
+ });
129
+ const res = new EventEmitter();
130
+ res.statusCode = 200;
131
+ callback(res);
132
+ res.emit('data', Buffer.from('{"foo": "bar"}'));
133
+ res.emit('end');
134
+ return new EventEmitter();
135
+ });
136
+ await expect(fetchJson('https://api.github.com/user')).resolves.toEqual({
137
+ foo: 'bar',
138
+ });
139
+ });
140
+ });
141
+ describe('without GITHUB_TOKEN', () => {
142
+ const originalToken = process.env['GITHUB_TOKEN'];
143
+ beforeEach(() => {
144
+ delete process.env['GITHUB_TOKEN'];
145
+ });
146
+ afterEach(() => {
147
+ if (originalToken) {
148
+ process.env['GITHUB_TOKEN'] = originalToken;
149
+ }
150
+ });
151
+ it('should not include Authorization header if token is not present', async () => {
152
+ getMock.mockImplementationOnce((_url, options, callback) => {
153
+ expect(options.headers).toEqual({
154
+ 'User-Agent': 'gemini-cli',
155
+ });
156
+ const res = new EventEmitter();
157
+ res.statusCode = 200;
158
+ callback(res);
159
+ res.emit('data', Buffer.from('{"foo": "bar"}'));
160
+ res.emit('end');
161
+ return new EventEmitter();
162
+ });
163
+ await expect(fetchJson('https://api.github.com/user')).resolves.toEqual({
164
+ foo: 'bar',
165
+ });
166
+ });
167
+ });
168
+ });
169
+ //# sourceMappingURL=github_fetch.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github_fetch.test.js","sourceRoot":"","sources":["../../../../src/config/extensions/github_fetch.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAG9D,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAEtB,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAElD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,aAAa,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACrC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,YAAY,CAAC;QAC3C,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACnC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,MAAM,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAErC,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,OAAO,CAAC,sBAAsB,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;YAC1D,MAAM,GAAG,GAAG,IAAI,YAAY,EAAqB,CAAC;YAClD,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACpB,QAA2C,CAAC,GAAG,CAAC,CAAC;YAClD,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YACzC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACxC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChB,OAAO,IAAI,YAAY,EAAmB,CAAC;QAC7C,CAAC,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;YACxE,GAAG,EAAE,KAAK;SACX,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,WAAW;QACX,OAAO,CAAC,sBAAsB,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;YAC1D,MAAM,GAAG,GAAG,IAAI,YAAY,EAAqB,CAAC;YAClD,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,OAAO,GAAG,EAAE,QAAQ,EAAE,2BAA2B,EAAE,CAAC;YACvD,QAA2C,CAAC,GAAG,CAAC,CAAC;YAClD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChB,OAAO,IAAI,YAAY,EAAmB,CAAC;QAC7C,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,sBAAsB,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;YACzD,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC9C,MAAM,GAAG,GAAG,IAAI,YAAY,EAAqB,CAAC;YAClD,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACpB,QAA2C,CAAC,GAAG,CAAC,CAAC;YAClD,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;YACnD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChB,OAAO,IAAI,YAAY,EAAmB,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;YACvE,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,WAAW;QACX,OAAO,CAAC,sBAAsB,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;YAC1D,MAAM,GAAG,GAAG,IAAI,YAAY,EAAqB,CAAC;YAClD,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,OAAO,GAAG,EAAE,QAAQ,EAAE,qCAAqC,EAAE,CAAC;YACjE,QAA2C,CAAC,GAAG,CAAC,CAAC;YAClD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChB,OAAO,IAAI,YAAY,EAAmB,CAAC;QAC7C,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,sBAAsB,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;YACzD,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;YACxD,MAAM,GAAG,GAAG,IAAI,YAAY,EAAqB,CAAC;YAClD,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACpB,QAA2C,CAAC,GAAG,CAAC,CAAC;YAClD,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;YACrD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChB,OAAO,IAAI,YAAY,EAAmB,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,CACV,SAAS,CAAC,mCAAmC,CAAC,CAC/C,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,OAAO,CAAC,sBAAsB,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;YAC1D,MAAM,GAAG,GAAG,IAAI,YAAY,EAAqB,CAAC;YAClD,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACpB,QAA2C,CAAC,GAAG,CAAC,CAAC;YAClD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChB,OAAO,IAAI,YAAY,EAAmB,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAClE,qCAAqC,CACtC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACzC,OAAO,CAAC,sBAAsB,CAAC,GAAG,EAAE;YAClC,MAAM,GAAG,GAAG,IAAI,YAAY,EAAmB,CAAC;YAChD,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACzB,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAClE,eAAe,CAChB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAElD,UAAU,CAAC,GAAG,EAAE;YACd,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,iBAAiB,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,GAAG,EAAE;YACb,IAAI,aAAa,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,aAAa,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YACrC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;YACvE,OAAO,CAAC,sBAAsB,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;gBACzD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;oBAC9B,YAAY,EAAE,YAAY;oBAC1B,aAAa,EAAE,uBAAuB;iBACvC,CAAC,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,YAAY,EAAqB,CAAC;gBAClD,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;gBACpB,QAA2C,CAAC,GAAG,CAAC,CAAC;gBAClD,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBAChD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAChB,OAAO,IAAI,YAAY,EAAmB,CAAC;YAC7C,CAAC,CAAC,CAAC;YACH,MAAM,MAAM,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACtE,GAAG,EAAE,KAAK;aACX,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAElD,UAAU,CAAC,GAAG,EAAE;YACd,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,GAAG,EAAE;YACb,IAAI,aAAa,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,aAAa,CAAC;YAC9C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;YAC/E,OAAO,CAAC,sBAAsB,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;gBACzD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;oBAC9B,YAAY,EAAE,YAAY;iBAC3B,CAAC,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,YAAY,EAAqB,CAAC;gBAClD,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;gBACpB,QAA2C,CAAC,GAAG,CAAC,CAAC;gBAClD,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBAChD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAChB,OAAO,IAAI,YAAY,EAAmB,CAAC;YAC7C,CAAC,CAAC,CAAC;YAEH,MAAM,MAAM,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACtE,GAAG,EAAE,KAAK;aACX,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -37,16 +37,17 @@ export async function updateExtension(extension, extensionManager, currentState,
37
37
  const originalVersion = extension.version;
38
38
  const tempDir = await ExtensionStorage.createTmpDir();
39
39
  try {
40
- const previousExtensionConfig = await extensionManager.loadExtensionConfig(extension.path);
41
- await extensionManager.installOrUpdateExtension(installMetadata, previousExtensionConfig);
42
- const updatedExtensionStorage = new ExtensionStorage(extension.name);
43
- const updatedExtension = extensionManager.loadExtension(updatedExtensionStorage.getExtensionDir());
44
- if (!updatedExtension) {
40
+ const previousExtensionConfig = extensionManager.loadExtensionConfig(extension.path);
41
+ let updatedExtension;
42
+ try {
43
+ updatedExtension = await extensionManager.installOrUpdateExtension(installMetadata, previousExtensionConfig);
44
+ }
45
+ catch (e) {
45
46
  dispatchExtensionStateUpdate({
46
47
  type: 'SET_STATE',
47
48
  payload: { name: extension.name, state: ExtensionUpdateState.ERROR },
48
49
  });
49
- throw new Error('Updated extension not found after installation.');
50
+ throw new Error(`Updated extension not found after installation, got error:\n${e}`);
50
51
  }
51
52
  const updatedVersion = updatedExtension.version;
52
53
  dispatchExtensionStateUpdate({
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/config/extensions/update.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEL,oBAAoB,GAErB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,WAAW,EAA2B,MAAM,yBAAyB,CAAC;AAC/E,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAyB,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAQhD,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,SAA6B,EAC7B,gBAAkC,EAClC,YAAkC,EAClC,4BAAqE;IAErE,IAAI,YAAY,KAAK,oBAAoB,CAAC,QAAQ,EAAE,CAAC;QACnD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,4BAA4B,CAAC;QAC3B,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,oBAAoB,CAAC,QAAQ,EAAE;KACxE,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAE5D,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;QAC3B,4BAA4B,CAAC;YAC3B,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,oBAAoB,CAAC,KAAK,EAAE;SACrE,CAAC,CAAC;QACH,MAAM,IAAI,KAAK,CACb,aAAa,SAAS,CAAC,IAAI,sCAAsC,CAClE,CAAC;IACJ,CAAC;IACD,IAAI,eAAe,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;QACrC,4BAA4B,CAAC;YAC3B,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,oBAAoB,CAAC,UAAU,EAAE;SAC1E,CAAC,CAAC;QACH,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC;IAE1C,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,YAAY,EAAE,CAAC;IACtD,IAAI,CAAC;QACH,MAAM,uBAAuB,GAAG,MAAM,gBAAgB,CAAC,mBAAmB,CACxE,SAAS,CAAC,IAAI,CACf,CAAC;QACF,MAAM,gBAAgB,CAAC,wBAAwB,CAC7C,eAAe,EACf,uBAAuB,CACxB,CAAC;QACF,MAAM,uBAAuB,GAAG,IAAI,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACrE,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,aAAa,CACrD,uBAAuB,CAAC,eAAe,EAAE,CAC1C,CAAC;QACF,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,4BAA4B,CAAC;gBAC3B,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,oBAAoB,CAAC,KAAK,EAAE;aACrE,CAAC,CAAC;YACH,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;QACD,MAAM,cAAc,GAAG,gBAAgB,CAAC,OAAO,CAAC;QAChD,4BAA4B,CAAC;YAC3B,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE;gBACP,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,KAAK,EAAE,oBAAoB,CAAC,qBAAqB;aAClD;SACF,CAAC,CAAC;QACH,OAAO;YACL,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,eAAe;YACf,cAAc;SACf,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,WAAW,CAAC,KAAK,CACf,2CAA2C,eAAe,CAAC,CAAC,CAAC,EAAE,CAChE,CAAC;QACF,4BAA4B,CAAC;YAC3B,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,oBAAoB,CAAC,KAAK,EAAE;SACrE,CAAC,CAAC;QACH,MAAM,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,CAAC,CAAC;IACV,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,UAAgC,EAChC,eAAmD,EACnD,gBAAkC,EAClC,QAAiD;IAEjD,OAAO,CACL,MAAM,OAAO,CAAC,GAAG,CACf,UAAU;SACP,MAAM,CACL,CAAC,SAAS,EAAE,EAAE,CACZ,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM;QAC3C,oBAAoB,CAAC,gBAAgB,CACxC;SACA,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CACjB,eAAe,CACb,SAAS,EACT,gBAAgB,EAChB,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAE,CAAC,MAAM,EAC3C,QAAQ,CACT,CACF,CACJ,CACF,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;AACzC,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,UAAgC,EAChC,gBAAkC,EAClC,QAAiD;IAEjD,QAAQ,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAC1C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;YAC/B,QAAQ,CAAC;gBACP,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,KAAK,EAAE,oBAAoB,CAAC,aAAa;iBAC1C;aACF,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,QAAQ,CAAC;YACP,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE;gBACP,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,KAAK,EAAE,oBAAoB,CAAC,oBAAoB;aACjD;SACF,CAAC,CAAC;QACH,QAAQ,CAAC,IAAI,CACX,uBAAuB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAClE,QAAQ,CAAC;YACP,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE;SACzC,CAAC,CACH,CACF,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5B,QAAQ,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/config/extensions/update.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEL,oBAAoB,GAErB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,WAAW,EAA2B,MAAM,yBAAyB,CAAC;AAC/E,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAyB,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAQhD,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,SAA6B,EAC7B,gBAAkC,EAClC,YAAkC,EAClC,4BAAqE;IAErE,IAAI,YAAY,KAAK,oBAAoB,CAAC,QAAQ,EAAE,CAAC;QACnD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,4BAA4B,CAAC;QAC3B,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,oBAAoB,CAAC,QAAQ,EAAE;KACxE,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAE5D,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;QAC3B,4BAA4B,CAAC;YAC3B,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,oBAAoB,CAAC,KAAK,EAAE;SACrE,CAAC,CAAC;QACH,MAAM,IAAI,KAAK,CACb,aAAa,SAAS,CAAC,IAAI,sCAAsC,CAClE,CAAC;IACJ,CAAC;IACD,IAAI,eAAe,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;QACrC,4BAA4B,CAAC;YAC3B,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,oBAAoB,CAAC,UAAU,EAAE;SAC1E,CAAC,CAAC;QACH,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC;IAE1C,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,YAAY,EAAE,CAAC;IACtD,IAAI,CAAC;QACH,MAAM,uBAAuB,GAAG,gBAAgB,CAAC,mBAAmB,CAClE,SAAS,CAAC,IAAI,CACf,CAAC;QACF,IAAI,gBAAoC,CAAC;QACzC,IAAI,CAAC;YACH,gBAAgB,GAAG,MAAM,gBAAgB,CAAC,wBAAwB,CAChE,eAAe,EACf,uBAAuB,CACxB,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,4BAA4B,CAAC;gBAC3B,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,oBAAoB,CAAC,KAAK,EAAE;aACrE,CAAC,CAAC;YACH,MAAM,IAAI,KAAK,CACb,+DAA+D,CAAC,EAAE,CACnE,CAAC;QACJ,CAAC;QACD,MAAM,cAAc,GAAG,gBAAgB,CAAC,OAAO,CAAC;QAChD,4BAA4B,CAAC;YAC3B,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE;gBACP,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,KAAK,EAAE,oBAAoB,CAAC,qBAAqB;aAClD;SACF,CAAC,CAAC;QACH,OAAO;YACL,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,eAAe;YACf,cAAc;SACf,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,WAAW,CAAC,KAAK,CACf,2CAA2C,eAAe,CAAC,CAAC,CAAC,EAAE,CAChE,CAAC;QACF,4BAA4B,CAAC;YAC3B,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,oBAAoB,CAAC,KAAK,EAAE;SACrE,CAAC,CAAC;QACH,MAAM,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,CAAC,CAAC;IACV,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,UAAgC,EAChC,eAAmD,EACnD,gBAAkC,EAClC,QAAiD;IAEjD,OAAO,CACL,MAAM,OAAO,CAAC,GAAG,CACf,UAAU;SACP,MAAM,CACL,CAAC,SAAS,EAAE,EAAE,CACZ,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM;QAC3C,oBAAoB,CAAC,gBAAgB,CACxC;SACA,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CACjB,eAAe,CACb,SAAS,EACT,gBAAgB,EAChB,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAE,CAAC,MAAM,EAC3C,QAAQ,CACT,CACF,CACJ,CACF,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;AACzC,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,UAAgC,EAChC,gBAAkC,EAClC,QAAiD;IAEjD,QAAQ,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAC1C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;YAC/B,QAAQ,CAAC;gBACP,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,KAAK,EAAE,oBAAoB,CAAC,aAAa;iBAC1C;aACF,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,QAAQ,CAAC;YACP,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE;gBACP,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,KAAK,EAAE,oBAAoB,CAAC,oBAAoB;aACjD;SACF,CAAC,CAAC;QACH,QAAQ,CAAC,IAAI,CACX,uBAAuB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAClE,QAAQ,CAAC;YACP,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE;SACzC,CAAC,CACH,CACF,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5B,QAAQ,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;AACxC,CAAC"}
@@ -8,7 +8,7 @@ import * as fs from 'node:fs';
8
8
  import * as os from 'node:os';
9
9
  import * as path from 'node:path';
10
10
  import { checkForAllExtensionUpdates, updateExtension } from './update.js';
11
- import { GEMINI_DIR } from '@google/gemini-cli-core';
11
+ import { GEMINI_DIR, KeychainTokenStorage } from '@google/gemini-cli-core';
12
12
  import { isWorkspaceTrusted } from '../trustedFolders.js';
13
13
  import { ExtensionUpdateState } from '../../ui/state/extensions.js';
14
14
  import { createExtension } from '../../test-utils/createExtension.js';
@@ -39,13 +39,9 @@ vi.mock('os', async (importOriginal) => {
39
39
  homedir: vi.fn(),
40
40
  };
41
41
  });
42
- vi.mock('../trustedFolders.js', async (importOriginal) => {
43
- const actual = await importOriginal();
44
- return {
45
- ...actual,
46
- isWorkspaceTrusted: vi.fn(),
47
- };
48
- });
42
+ vi.mock('../trustedFolders.js', () => ({
43
+ isWorkspaceTrusted: vi.fn(),
44
+ }));
49
45
  const mockLogExtensionInstallEvent = vi.hoisted(() => vi.fn());
50
46
  const mockLogExtensionUninstall = vi.hoisted(() => vi.fn());
51
47
  vi.mock('@google/gemini-cli-core', async (importOriginal) => {
@@ -56,6 +52,13 @@ vi.mock('@google/gemini-cli-core', async (importOriginal) => {
56
52
  logExtensionUninstall: mockLogExtensionUninstall,
57
53
  ExtensionInstallEvent: vi.fn(),
58
54
  ExtensionUninstallEvent: vi.fn(),
55
+ KeychainTokenStorage: vi.fn().mockImplementation(() => ({
56
+ getSecret: vi.fn(),
57
+ setSecret: vi.fn(),
58
+ deleteSecret: vi.fn(),
59
+ listSecrets: vi.fn(),
60
+ isAvailable: vi.fn().mockResolvedValue(true),
61
+ })),
59
62
  };
60
63
  });
61
64
  describe('update tests', () => {
@@ -65,7 +68,29 @@ describe('update tests', () => {
65
68
  let extensionManager;
66
69
  let mockRequestConsent;
67
70
  let mockPromptForSettings;
71
+ let mockKeychainStorage;
72
+ let keychainData;
68
73
  beforeEach(() => {
74
+ vi.clearAllMocks();
75
+ keychainData = {};
76
+ mockKeychainStorage = {
77
+ getSecret: vi
78
+ .fn()
79
+ .mockImplementation(async (key) => keychainData[key] || null),
80
+ setSecret: vi
81
+ .fn()
82
+ .mockImplementation(async (key, value) => {
83
+ keychainData[key] = value;
84
+ }),
85
+ deleteSecret: vi.fn().mockImplementation(async (key) => {
86
+ delete keychainData[key];
87
+ }),
88
+ listSecrets: vi
89
+ .fn()
90
+ .mockImplementation(async () => Object.keys(keychainData)),
91
+ isAvailable: vi.fn().mockResolvedValue(true),
92
+ };
93
+ KeychainTokenStorage.mockImplementation(() => mockKeychainStorage);
69
94
  tempHomeDir = fs.mkdtempSync(path.join(os.tmpdir(), 'gemini-cli-test-home-'));
70
95
  tempWorkspaceDir = fs.mkdtempSync(path.join(tempHomeDir, 'gemini-cli-test-workspace-'));
71
96
  vi.mocked(os.homedir).mockReturnValue(tempHomeDir);
@@ -87,12 +112,13 @@ describe('update tests', () => {
87
112
  workspaceDir: tempWorkspaceDir,
88
113
  requestConsent: mockRequestConsent,
89
114
  requestSetting: mockPromptForSettings,
90
- loadedSettings: loadSettings(tempWorkspaceDir),
115
+ settings: loadSettings(tempWorkspaceDir).merged,
91
116
  });
92
117
  });
93
118
  afterEach(() => {
94
119
  fs.rmSync(tempHomeDir, { recursive: true, force: true });
95
120
  fs.rmSync(tempWorkspaceDir, { recursive: true, force: true });
121
+ vi.restoreAllMocks();
96
122
  });
97
123
  describe('updateExtension', () => {
98
124
  it('should update a git-installed extension', async () => {
@@ -110,7 +136,8 @@ describe('update tests', () => {
110
136
  fs.writeFileSync(path.join(mockGit.path(), destination, EXTENSIONS_CONFIG_FILENAME), JSON.stringify({ name: extensionName, version: '1.1.0' }));
111
137
  });
112
138
  mockGit.getRemotes.mockResolvedValue([{ name: 'origin' }]);
113
- const extension = extensionManager.loadExtension(targetExtDir);
139
+ const extensions = await extensionManager.loadExtensions();
140
+ const extension = extensions.find((e) => e.name === extensionName);
114
141
  const updateInfo = await updateExtension(extension, extensionManager, ExtensionUpdateState.UPDATE_AVAILABLE, () => { });
115
142
  expect(updateInfo).toEqual({
116
143
  name: 'gemini-extensions',
@@ -122,7 +149,7 @@ describe('update tests', () => {
122
149
  });
123
150
  it('should call setExtensionUpdateState with UPDATING and then UPDATED_NEEDS_RESTART on success', async () => {
124
151
  const extensionName = 'test-extension';
125
- const extensionDir = createExtension({
152
+ createExtension({
126
153
  extensionsDir: userExtensionsDir,
127
154
  name: extensionName,
128
155
  version: '1.0.0',
@@ -139,7 +166,8 @@ describe('update tests', () => {
139
166
  });
140
167
  mockGit.getRemotes.mockResolvedValue([{ name: 'origin' }]);
141
168
  const dispatch = vi.fn();
142
- const extension = extensionManager.loadExtension(extensionDir);
169
+ const extensions = await extensionManager.loadExtensions();
170
+ const extension = extensions.find((e) => e.name === extensionName);
143
171
  await updateExtension(extension, extensionManager, ExtensionUpdateState.UPDATE_AVAILABLE, dispatch);
144
172
  expect(dispatch).toHaveBeenCalledWith({
145
173
  type: 'SET_STATE',
@@ -158,7 +186,7 @@ describe('update tests', () => {
158
186
  });
159
187
  it('should call setExtensionUpdateState with ERROR on failure', async () => {
160
188
  const extensionName = 'test-extension';
161
- const extensionDir = createExtension({
189
+ createExtension({
162
190
  extensionsDir: userExtensionsDir,
163
191
  name: extensionName,
164
192
  version: '1.0.0',
@@ -170,7 +198,8 @@ describe('update tests', () => {
170
198
  mockGit.clone.mockRejectedValue(new Error('Git clone failed'));
171
199
  mockGit.getRemotes.mockResolvedValue([{ name: 'origin' }]);
172
200
  const dispatch = vi.fn();
173
- const extension = extensionManager.loadExtension(extensionDir);
201
+ const extensions = await extensionManager.loadExtensions();
202
+ const extension = extensions.find((e) => e.name === extensionName);
174
203
  await expect(updateExtension(extension, extensionManager, ExtensionUpdateState.UPDATE_AVAILABLE, dispatch)).rejects.toThrow();
175
204
  expect(dispatch).toHaveBeenCalledWith({
176
205
  type: 'SET_STATE',
@@ -190,7 +219,7 @@ describe('update tests', () => {
190
219
  });
191
220
  describe('checkForAllExtensionUpdates', () => {
192
221
  it('should return UpdateAvailable for a git extension with updates', async () => {
193
- const extensionDir = createExtension({
222
+ createExtension({
194
223
  extensionsDir: userExtensionsDir,
195
224
  name: 'test-extension',
196
225
  version: '1.0.0',
@@ -199,14 +228,13 @@ describe('update tests', () => {
199
228
  type: 'git',
200
229
  },
201
230
  });
202
- const extension = extensionManager.loadExtension(extensionDir);
203
231
  mockGit.getRemotes.mockResolvedValue([
204
232
  { name: 'origin', refs: { fetch: 'https://some.git/repo' } },
205
233
  ]);
206
234
  mockGit.listRemote.mockResolvedValue('remoteHash HEAD');
207
235
  mockGit.revparse.mockResolvedValue('localHash');
208
236
  const dispatch = vi.fn();
209
- await checkForAllExtensionUpdates([extension], extensionManager, dispatch);
237
+ await checkForAllExtensionUpdates(await extensionManager.loadExtensions(), extensionManager, dispatch);
210
238
  expect(dispatch).toHaveBeenCalledWith({
211
239
  type: 'SET_STATE',
212
240
  payload: {
@@ -216,7 +244,7 @@ describe('update tests', () => {
216
244
  });
217
245
  });
218
246
  it('should return UpToDate for a git extension with no updates', async () => {
219
- const extensionDir = createExtension({
247
+ createExtension({
220
248
  extensionsDir: userExtensionsDir,
221
249
  name: 'test-extension',
222
250
  version: '1.0.0',
@@ -225,14 +253,13 @@ describe('update tests', () => {
225
253
  type: 'git',
226
254
  },
227
255
  });
228
- const extension = extensionManager.loadExtension(extensionDir);
229
256
  mockGit.getRemotes.mockResolvedValue([
230
257
  { name: 'origin', refs: { fetch: 'https://some.git/repo' } },
231
258
  ]);
232
259
  mockGit.listRemote.mockResolvedValue('sameHash HEAD');
233
260
  mockGit.revparse.mockResolvedValue('sameHash');
234
261
  const dispatch = vi.fn();
235
- await checkForAllExtensionUpdates([extension], extensionManager, dispatch);
262
+ await checkForAllExtensionUpdates(await extensionManager.loadExtensions(), extensionManager, dispatch);
236
263
  expect(dispatch).toHaveBeenCalledWith({
237
264
  type: 'SET_STATE',
238
265
  payload: {
@@ -248,15 +275,14 @@ describe('update tests', () => {
248
275
  name: 'my-local-ext',
249
276
  version: '1.0.0',
250
277
  });
251
- const installedExtensionDir = createExtension({
278
+ createExtension({
252
279
  extensionsDir: userExtensionsDir,
253
280
  name: 'local-extension',
254
281
  version: '1.0.0',
255
282
  installMetadata: { source: sourceExtensionDir, type: 'local' },
256
283
  });
257
- const extension = extensionManager.loadExtension(installedExtensionDir);
258
284
  const dispatch = vi.fn();
259
- await checkForAllExtensionUpdates([extension], extensionManager, dispatch);
285
+ await checkForAllExtensionUpdates(await extensionManager.loadExtensions(), extensionManager, dispatch);
260
286
  expect(dispatch).toHaveBeenCalledWith({
261
287
  type: 'SET_STATE',
262
288
  payload: {
@@ -269,18 +295,17 @@ describe('update tests', () => {
269
295
  const localExtensionSourcePath = path.join(tempHomeDir, 'local-source');
270
296
  const sourceExtensionDir = createExtension({
271
297
  extensionsDir: localExtensionSourcePath,
272
- name: 'my-local-ext',
298
+ name: 'local-extension',
273
299
  version: '1.1.0',
274
300
  });
275
- const installedExtensionDir = createExtension({
301
+ createExtension({
276
302
  extensionsDir: userExtensionsDir,
277
303
  name: 'local-extension',
278
304
  version: '1.0.0',
279
305
  installMetadata: { source: sourceExtensionDir, type: 'local' },
280
306
  });
281
- const extension = extensionManager.loadExtension(installedExtensionDir);
282
307
  const dispatch = vi.fn();
283
- await checkForAllExtensionUpdates([extension], extensionManager, dispatch);
308
+ await checkForAllExtensionUpdates(await extensionManager.loadExtensions(), extensionManager, dispatch);
284
309
  expect(dispatch).toHaveBeenCalledWith({
285
310
  type: 'SET_STATE',
286
311
  payload: {
@@ -290,7 +315,7 @@ describe('update tests', () => {
290
315
  });
291
316
  });
292
317
  it('should return Error when git check fails', async () => {
293
- const extensionDir = createExtension({
318
+ createExtension({
294
319
  extensionsDir: userExtensionsDir,
295
320
  name: 'error-extension',
296
321
  version: '1.0.0',
@@ -299,10 +324,9 @@ describe('update tests', () => {
299
324
  type: 'git',
300
325
  },
301
326
  });
302
- const extension = extensionManager.loadExtension(extensionDir);
303
327
  mockGit.getRemotes.mockRejectedValue(new Error('Git error'));
304
328
  const dispatch = vi.fn();
305
- await checkForAllExtensionUpdates([extension], extensionManager, dispatch);
329
+ await checkForAllExtensionUpdates(await extensionManager.loadExtensions(), extensionManager, dispatch);
306
330
  expect(dispatch).toHaveBeenCalledWith({
307
331
  type: 'SET_STATE',
308
332
  payload: {
@@ -1 +1 @@
1
- {"version":3,"file":"update.test.js","sourceRoot":"","sources":["../../../../src/config/extensions/update.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.test.js","sourceRoot":"","sources":["../../../../src/config/extensions/update.test.ts"],"names":[],"mappings":"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"}
@@ -112,7 +112,7 @@ export const defaultKeyBindings = {
112
112
  ],
113
113
  [Command.PASTE_CLIPBOARD_IMAGE]: [{ key: 'v', ctrl: true }],
114
114
  // App level bindings
115
- [Command.SHOW_ERROR_DETAILS]: [{ key: 'o', ctrl: true }],
115
+ [Command.SHOW_ERROR_DETAILS]: [{ key: 'f12' }],
116
116
  [Command.SHOW_FULL_TODOS]: [{ key: 't', ctrl: true }],
117
117
  [Command.TOGGLE_IDE_CONTEXT_DETAIL]: [{ key: 'g', ctrl: true }],
118
118
  [Command.TOGGLE_MARKDOWN]: [{ key: 'm', command: true }],
@@ -1 +1 @@
1
- {"version":3,"file":"keyBindings.js","sourceRoot":"","sources":["../../../src/config/keyBindings.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,CAAN,IAAY,OAuDX;AAvDD,WAAY,OAAO;IACjB,iBAAiB;IACjB,4BAAiB,CAAA;IACjB,4BAAiB,CAAA;IAEjB,kBAAkB;IAClB,wBAAa,CAAA;IACb,sBAAW,CAAA;IAEX,gBAAgB;IAChB,4CAAiC,CAAA;IACjC,0CAA+B,CAAA;IAC/B,qCAA0B,CAAA;IAC1B,sDAA2C,CAAA;IAE3C,iBAAiB;IACjB,uCAA4B,CAAA;IAE5B,qBAAqB;IACrB,mCAAwB,CAAA;IACxB,uCAA4B,CAAA;IAC5B,yCAA8B,CAAA;IAC9B,6CAAkC,CAAA;IAElC,kBAAkB;IAClB,iDAAsC,CAAA;IACtC,yCAA8B,CAAA;IAC9B,6CAAkC,CAAA;IAElC,aAAa;IACb,4BAAiB,CAAA;IACjB,8BAAmB,CAAA;IAEnB,iBAAiB;IACjB,sDAA2C,CAAA;IAC3C,wDAA6C,CAAA;IAE7C,qBAAqB;IACrB,kDAAuC,CAAA;IACvC,4CAAiC,CAAA;IACjC,+DAAoD,CAAA;IACpD,6CAAkC,CAAA;IAClC,wBAAa,CAAA;IACb,wBAAa,CAAA;IACb,4CAAiC,CAAA;IAEjC,iBAAiB;IACjB,2CAAgC,CAAA;IAChC,wDAA6C,CAAA;IAC7C,6EAAkE,CAAA;IAClE,6DAAkD,CAAA;IAElD,uBAAuB;IACvB,iDAAsC,CAAA;IACtC,qDAA0C,CAAA;AAC5C,CAAC,EAvDW,OAAO,KAAP,OAAO,QAuDlB;AA2BD;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAqB;IAClD,iBAAiB;IACjB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;IACrC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;IAErC,kBAAkB;IAClB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAEzC,gBAAgB;IAChB,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACrD,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACpD,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACjD,wDAAwD;IACxD,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE;QAC9B,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;QAChC,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE;KACpC;IAED,iBAAiB;IACjB,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAElD,qBAAqB;IACrB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC9D,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAClD,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IACxC,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IAE5C,kBAAkB;IAClB,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC7E,4CAA4C;IAC5C,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAClE,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAEtE,aAAa;IACb,2DAA2D;IAC3D,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QAChB;YACE,GAAG,EAAE,QAAQ;YACb,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,KAAK;SACb;KACF;IACD,2CAA2C;IAC3C,qDAAqD;IACrD,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QACjB,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;QAC7B,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;QAChC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE;QAC9B,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE;QAC9B,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE;KACzB;IAED,iBAAiB;IACjB,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE;QAC9B,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE;QACxB,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;KACjC;IACD,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAE3D,qBAAqB;IACrB,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxD,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACrD,CAAC,OAAO,CAAC,yBAAyB,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC/D,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACxD,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAErD,iBAAiB;IACjB,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACpD,yEAAyE;IACzE,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACjE,CAAC,OAAO,CAAC,gCAAgC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;IAC5D,CAAC,OAAO,CAAC,wBAAwB,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAE9D,uBAAuB;IACvB,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;IAC/C,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;CACjD,CAAC"}
1
+ {"version":3,"file":"keyBindings.js","sourceRoot":"","sources":["../../../src/config/keyBindings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ # Priority system for policy rules:
2
+ # - Higher priority numbers win over lower priority numbers
3
+ # - When multiple rules match, the highest priority rule is applied
4
+ # - Rules are evaluated in order of priority (highest first)
5
+ #
6
+ # Priority bands (tiers):
7
+ # - Default policies (TOML): 1 + priority/1000 (e.g., priority 100 → 1.100)
8
+ # - User policies (TOML): 2 + priority/1000 (e.g., priority 100 → 2.100)
9
+ # - Admin policies (TOML): 3 + priority/1000 (e.g., priority 100 → 3.100)
10
+ #
11
+ # This ensures Admin > User > Default hierarchy is always preserved,
12
+ # while allowing user-specified priorities to work within each tier.
13
+ #
14
+ # Settings-based and dynamic rules (all in user tier 2.x):
15
+ # 2.95: Tools that the user has selected as "Always Allow" in the interactive UI
16
+ # 2.9: MCP servers excluded list (security: persistent server blocks)
17
+ # 2.4: Command line flag --exclude-tools (explicit temporary blocks)
18
+ # 2.3: Command line flag --allowed-tools (explicit temporary allows)
19
+ # 2.2: MCP servers with trust=true (persistent trusted servers)
20
+ # 2.1: MCP servers allowed list (persistent general server allows)
21
+ #
22
+ # TOML policy priorities (before transformation):
23
+ # 10: Write tools default to ASK_USER (becomes 1.010 in default tier)
24
+ # 15: Auto-edit tool override (becomes 1.015 in default tier)
25
+ # 50: Read-only tools (becomes 1.050 in default tier)
26
+ # 999: YOLO mode allow-all (becomes 1.999 in default tier)
27
+
28
+ [[rule]]
29
+ toolName = "glob"
30
+ decision = "allow"
31
+ priority = 50
32
+
33
+ [[rule]]
34
+ toolName = "search_file_content"
35
+ decision = "allow"
36
+ priority = 50
37
+
38
+ [[rule]]
39
+ toolName = "list_directory"
40
+ decision = "allow"
41
+ priority = 50
42
+
43
+ [[rule]]
44
+ toolName = "read_file"
45
+ decision = "allow"
46
+ priority = 50
47
+
48
+ [[rule]]
49
+ toolName = "read_many_files"
50
+ decision = "allow"
51
+ priority = 50
52
+
53
+ [[rule]]
54
+ toolName = "google_web_search"
55
+ decision = "allow"
56
+ priority = 50