@google/gemini-cli 0.27.0-preview.3 → 0.28.0-nightly.20260130.d43d772e6

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 (197) hide show
  1. package/dist/google-gemini-cli-0.28.0-nightly.20260128.adc8e11bb.tgz +0 -0
  2. package/dist/package.json +2 -2
  3. package/dist/src/commands/extensions/examples/themes-example/README.md +28 -0
  4. package/dist/src/commands/extensions/examples/themes-example/gemini-extension.json +29 -0
  5. package/dist/src/commands/extensions/update.js +9 -3
  6. package/dist/src/commands/extensions/update.js.map +1 -1
  7. package/dist/src/commands/extensions/update.test.js +26 -0
  8. package/dist/src/commands/extensions/update.test.js.map +1 -1
  9. package/dist/src/commands/mcp/add.js +4 -0
  10. package/dist/src/commands/mcp/add.js.map +1 -1
  11. package/dist/src/config/config.js +2 -2
  12. package/dist/src/config/config.js.map +1 -1
  13. package/dist/src/config/config.test.js +1 -1
  14. package/dist/src/config/config.test.js.map +1 -1
  15. package/dist/src/config/extension-manager-themes.spec.js +196 -0
  16. package/dist/src/config/extension-manager-themes.spec.js.map +1 -0
  17. package/dist/src/config/extension-manager.d.ts +2 -0
  18. package/dist/src/config/extension-manager.js +14 -0
  19. package/dist/src/config/extension-manager.js.map +1 -1
  20. package/dist/src/config/extension.d.ts +6 -1
  21. package/dist/src/config/extension.js.map +1 -1
  22. package/dist/src/config/keyBindings.d.ts +2 -1
  23. package/dist/src/config/keyBindings.js +13 -2
  24. package/dist/src/config/keyBindings.js.map +1 -1
  25. package/dist/src/config/settings.js +13 -5
  26. package/dist/src/config/settings.js.map +1 -1
  27. package/dist/src/config/settings.test.js +37 -17
  28. package/dist/src/config/settings.test.js.map +1 -1
  29. package/dist/src/config/settingsSchema.d.ts +10 -11
  30. package/dist/src/config/settingsSchema.js +13 -9
  31. package/dist/src/config/settingsSchema.js.map +1 -1
  32. package/dist/src/gemini.js +6 -3
  33. package/dist/src/gemini.js.map +1 -1
  34. package/dist/src/generated/git-commit.d.ts +2 -2
  35. package/dist/src/generated/git-commit.js +2 -2
  36. package/dist/src/generated/git-commit.js.map +1 -1
  37. package/dist/src/nonInteractiveCli.js +4 -0
  38. package/dist/src/nonInteractiveCli.js.map +1 -1
  39. package/dist/src/nonInteractiveCli.test.js +40 -0
  40. package/dist/src/nonInteractiveCli.test.js.map +1 -1
  41. package/dist/src/services/BuiltinCommandLoader.test.js +4 -2
  42. package/dist/src/services/BuiltinCommandLoader.test.js.map +1 -1
  43. package/dist/src/test-utils/createExtension.d.ts +3 -3
  44. package/dist/src/test-utils/createExtension.js +9 -2
  45. package/dist/src/test-utils/createExtension.js.map +1 -1
  46. package/dist/src/ui/AppContainer.js +48 -2
  47. package/dist/src/ui/AppContainer.js.map +1 -1
  48. package/dist/src/ui/AppContainer.test.js +158 -3
  49. package/dist/src/ui/AppContainer.test.js.map +1 -1
  50. package/dist/src/ui/commands/bugCommand.js +2 -0
  51. package/dist/src/ui/commands/bugCommand.js.map +1 -1
  52. package/dist/src/ui/commands/bugCommand.test.js +5 -0
  53. package/dist/src/ui/commands/bugCommand.test.js.map +1 -1
  54. package/dist/src/ui/commands/directoryCommand.js +4 -0
  55. package/dist/src/ui/commands/directoryCommand.js.map +1 -1
  56. package/dist/src/ui/commands/directoryCommand.test.js +3 -0
  57. package/dist/src/ui/commands/directoryCommand.test.js.map +1 -1
  58. package/dist/src/ui/commands/hooksCommand.js +50 -66
  59. package/dist/src/ui/commands/hooksCommand.js.map +1 -1
  60. package/dist/src/ui/commands/hooksCommand.test.js +61 -63
  61. package/dist/src/ui/commands/hooksCommand.test.js.map +1 -1
  62. package/dist/src/ui/commands/statsCommand.js +17 -0
  63. package/dist/src/ui/commands/statsCommand.js.map +1 -1
  64. package/dist/src/ui/commands/statsCommand.test.js +18 -0
  65. package/dist/src/ui/commands/statsCommand.test.js.map +1 -1
  66. package/dist/src/ui/components/AboutBox.js +10 -5
  67. package/dist/src/ui/components/AboutBox.js.map +1 -1
  68. package/dist/src/ui/components/AboutBox.test.js +5 -5
  69. package/dist/src/ui/components/AboutBox.test.js.map +1 -1
  70. package/dist/src/ui/components/AsciiArt.d.ts +0 -3
  71. package/dist/src/ui/components/AsciiArt.js +0 -36
  72. package/dist/src/ui/components/AsciiArt.js.map +1 -1
  73. package/dist/src/ui/components/Checklist.d.ts +14 -0
  74. package/dist/src/ui/components/Checklist.js +31 -0
  75. package/dist/src/ui/components/Checklist.js.map +1 -0
  76. package/dist/src/ui/components/Checklist.test.d.ts +6 -0
  77. package/dist/src/ui/components/Checklist.test.js +46 -0
  78. package/dist/src/ui/components/Checklist.test.js.map +1 -0
  79. package/dist/src/ui/components/ChecklistItem.d.ts +17 -0
  80. package/dist/src/ui/components/ChecklistItem.js +36 -0
  81. package/dist/src/ui/components/ChecklistItem.js.map +1 -0
  82. package/dist/src/ui/components/ChecklistItem.test.d.ts +6 -0
  83. package/dist/src/ui/components/ChecklistItem.test.js +38 -0
  84. package/dist/src/ui/components/ChecklistItem.test.js.map +1 -0
  85. package/dist/src/ui/components/Header.js +4 -6
  86. package/dist/src/ui/components/Header.js.map +1 -1
  87. package/dist/src/ui/components/Header.test.js +5 -26
  88. package/dist/src/ui/components/Header.test.js.map +1 -1
  89. package/dist/src/ui/components/HistoryItemDisplay.js +1 -1
  90. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  91. package/dist/src/ui/components/ModelStatsDisplay.d.ts +7 -1
  92. package/dist/src/ui/components/ModelStatsDisplay.js +24 -18
  93. package/dist/src/ui/components/ModelStatsDisplay.js.map +1 -1
  94. package/dist/src/ui/components/ModelStatsDisplay.test.js +75 -0
  95. package/dist/src/ui/components/ModelStatsDisplay.test.js.map +1 -1
  96. package/dist/src/ui/components/SessionSummaryDisplay.test.js +4 -2
  97. package/dist/src/ui/components/SessionSummaryDisplay.test.js.map +1 -1
  98. package/dist/src/ui/components/StatsDisplay.d.ts +3 -0
  99. package/dist/src/ui/components/StatsDisplay.js +9 -2
  100. package/dist/src/ui/components/StatsDisplay.js.map +1 -1
  101. package/dist/src/ui/components/StatsDisplay.test.js +46 -5
  102. package/dist/src/ui/components/StatsDisplay.test.js.map +1 -1
  103. package/dist/src/ui/components/ThemeDialog.js +17 -25
  104. package/dist/src/ui/components/ThemeDialog.js.map +1 -1
  105. package/dist/src/ui/components/ToolConfirmationQueue.js +6 -6
  106. package/dist/src/ui/components/ToolConfirmationQueue.js.map +1 -1
  107. package/dist/src/ui/components/ToolConfirmationQueue.test.js +42 -0
  108. package/dist/src/ui/components/ToolConfirmationQueue.test.js.map +1 -1
  109. package/dist/src/ui/components/messages/Todo.js +11 -62
  110. package/dist/src/ui/components/messages/Todo.js.map +1 -1
  111. package/dist/src/ui/components/messages/ToolGroupMessage.js +5 -5
  112. package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
  113. package/dist/src/ui/components/messages/ToolGroupMessage.test.js +116 -47
  114. package/dist/src/ui/components/messages/ToolGroupMessage.test.js.map +1 -1
  115. package/dist/src/ui/components/triage/TriageDuplicates.js +4 -4
  116. package/dist/src/ui/components/triage/TriageDuplicates.js.map +1 -1
  117. package/dist/src/ui/constants/tips.js +2 -2
  118. package/dist/src/ui/constants/tips.js.map +1 -1
  119. package/dist/src/ui/constants.d.ts +1 -1
  120. package/dist/src/ui/constants.js +1 -1
  121. package/dist/src/ui/contexts/AskUserActionsContext.d.ts +1 -0
  122. package/dist/src/ui/contexts/AskUserActionsContext.js +1 -1
  123. package/dist/src/ui/contexts/AskUserActionsContext.js.map +1 -1
  124. package/dist/src/ui/contexts/KeypressContext.js +2 -0
  125. package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
  126. package/dist/src/ui/hooks/atCommandProcessor.js +2 -1
  127. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  128. package/dist/src/ui/hooks/atCommandProcessor.test.js +20 -0
  129. package/dist/src/ui/hooks/atCommandProcessor.test.js.map +1 -1
  130. package/dist/src/ui/hooks/useGeminiStream.js +8 -1
  131. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  132. package/dist/src/ui/hooks/useHistoryManager.d.ts +2 -1
  133. package/dist/src/ui/hooks/useHistoryManager.js +2 -2
  134. package/dist/src/ui/hooks/useHistoryManager.js.map +1 -1
  135. package/dist/src/ui/hooks/useHistoryManager.test.js +32 -0
  136. package/dist/src/ui/hooks/useHistoryManager.test.js.map +1 -1
  137. package/dist/src/ui/hooks/useHookDisplayState.test.js +39 -19
  138. package/dist/src/ui/hooks/useHookDisplayState.test.js.map +1 -1
  139. package/dist/src/ui/hooks/useSessionResume.js +8 -0
  140. package/dist/src/ui/hooks/useSessionResume.js.map +1 -1
  141. package/dist/src/ui/hooks/useSessionResume.test.js +64 -0
  142. package/dist/src/ui/hooks/useSessionResume.test.js.map +1 -1
  143. package/dist/src/ui/keyMatchers.test.js +15 -4
  144. package/dist/src/ui/keyMatchers.test.js.map +1 -1
  145. package/dist/src/ui/themes/theme-manager.d.ts +23 -2
  146. package/dist/src/ui/themes/theme-manager.js +108 -17
  147. package/dist/src/ui/themes/theme-manager.js.map +1 -1
  148. package/dist/src/ui/themes/theme-manager.test.js +40 -0
  149. package/dist/src/ui/themes/theme-manager.test.js.map +1 -1
  150. package/dist/src/ui/themes/theme.d.ts +2 -47
  151. package/dist/src/ui/themes/theme.js.map +1 -1
  152. package/dist/src/ui/themes/theme.test.js +1 -4
  153. package/dist/src/ui/themes/theme.test.js.map +1 -1
  154. package/dist/src/ui/types.d.ts +6 -0
  155. package/dist/src/ui/types.js.map +1 -1
  156. package/dist/src/ui/utils/TableRenderer.js +13 -6
  157. package/dist/src/ui/utils/TableRenderer.js.map +1 -1
  158. package/dist/src/ui/utils/TableRenderer.test.d.ts +1 -0
  159. package/dist/src/ui/utils/TableRenderer.test.js +48 -0
  160. package/dist/src/ui/utils/TableRenderer.test.js.map +1 -0
  161. package/dist/src/utils/activityLogger.d.ts +5 -1
  162. package/dist/src/utils/activityLogger.js +8 -3
  163. package/dist/src/utils/activityLogger.js.map +1 -1
  164. package/dist/src/utils/gitUtils.js +22 -5
  165. package/dist/src/utils/gitUtils.js.map +1 -1
  166. package/dist/src/utils/gitUtils.test.js +59 -0
  167. package/dist/src/utils/gitUtils.test.js.map +1 -1
  168. package/dist/src/utils/hookSettings.d.ts +30 -0
  169. package/dist/src/utils/hookSettings.js +114 -0
  170. package/dist/src/utils/hookSettings.js.map +1 -0
  171. package/dist/src/utils/hookSettings.test.d.ts +6 -0
  172. package/dist/src/utils/hookSettings.test.js +117 -0
  173. package/dist/src/utils/hookSettings.test.js.map +1 -0
  174. package/dist/src/utils/hookUtils.d.ts +12 -0
  175. package/dist/src/utils/hookUtils.js +51 -0
  176. package/dist/src/utils/hookUtils.js.map +1 -0
  177. package/dist/src/utils/hookUtils.test.d.ts +6 -0
  178. package/dist/src/utils/hookUtils.test.js +113 -0
  179. package/dist/src/utils/hookUtils.test.js.map +1 -0
  180. package/dist/src/utils/installationInfo.js +1 -1
  181. package/dist/src/utils/installationInfo.js.map +1 -1
  182. package/dist/src/utils/installationInfo.test.js +1 -1
  183. package/dist/src/utils/installationInfo.test.js.map +1 -1
  184. package/dist/src/utils/sessionCleanup.d.ts +14 -0
  185. package/dist/src/utils/sessionCleanup.js +106 -1
  186. package/dist/src/utils/sessionCleanup.js.map +1 -1
  187. package/dist/src/utils/sessionCleanup.test.js +12 -1
  188. package/dist/src/utils/sessionCleanup.test.js.map +1 -1
  189. package/dist/src/utils/toolOutputCleanup.test.d.ts +6 -0
  190. package/dist/src/utils/toolOutputCleanup.test.js +229 -0
  191. package/dist/src/utils/toolOutputCleanup.test.js.map +1 -0
  192. package/dist/tsconfig.tsbuildinfo +1 -1
  193. package/package.json +3 -3
  194. package/dist/google-gemini-cli-0.27.0-preview.2.tgz +0 -0
  195. package/dist/src/config/skills-backward-compatibility.test.js +0 -99
  196. package/dist/src/config/skills-backward-compatibility.test.js.map +0 -1
  197. /package/dist/src/config/{skills-backward-compatibility.test.d.ts → extension-manager-themes.spec.d.ts} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@google/gemini-cli",
3
- "version": "0.27.0-preview.3",
3
+ "version": "0.28.0-nightly.20260130.d43d772e6",
4
4
  "description": "Gemini CLI",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -26,11 +26,11 @@
26
26
  "dist"
27
27
  ],
28
28
  "config": {
29
- "sandboxImageUri": "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.27.0-preview.3"
29
+ "sandboxImageUri": "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.28.0-nightly.20260130.d43d772e6"
30
30
  },
31
31
  "dependencies": {
32
32
  "@agentclientprotocol/sdk": "^0.12.0",
33
- "@google/gemini-cli-core": "0.27.0-preview.3",
33
+ "@google/gemini-cli-core": "0.28.0-nightly.20260130.d43d772e6",
34
34
  "@google/genai": "1.30.0",
35
35
  "@iarna/toml": "^2.2.5",
36
36
  "@modelcontextprotocol/sdk": "^1.23.0",
@@ -1,99 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
7
- import { loadCliConfig, parseArguments } from './config.js';
8
- import * as trustedFolders from './trustedFolders.js';
9
- import { loadServerHierarchicalMemory } from '@google/gemini-cli-core';
10
- import { createTestMergedSettings } from './settings.js';
11
- vi.mock('./trustedFolders.js');
12
- vi.mock('@google/gemini-cli-core', async (importOriginal) => {
13
- const actual = await importOriginal();
14
- return {
15
- ...actual,
16
- loadServerHierarchicalMemory: vi.fn(),
17
- getPty: vi.fn().mockResolvedValue({ name: 'test-pty' }),
18
- getVersion: vi.fn().mockResolvedValue('0.0.0-test'),
19
- };
20
- });
21
- describe('Agent Skills Backward Compatibility', () => {
22
- const originalArgv = process.argv;
23
- beforeEach(() => {
24
- vi.resetAllMocks();
25
- vi.mocked(trustedFolders.isWorkspaceTrusted).mockReturnValue({
26
- isTrusted: true,
27
- });
28
- });
29
- afterEach(() => {
30
- process.argv = originalArgv;
31
- });
32
- describe('loadCliConfig', () => {
33
- it('should default skillsSupport to true when no settings are present', async () => {
34
- vi.mocked(loadServerHierarchicalMemory).mockResolvedValue({
35
- memoryContent: '',
36
- fileCount: 0,
37
- filePaths: [],
38
- });
39
- process.argv = ['node', 'gemini'];
40
- const settings = createTestMergedSettings({});
41
- const config = await loadCliConfig(settings, 'test-session', await parseArguments(settings));
42
- expect(config.isSkillsSupportEnabled()).toBe(true);
43
- });
44
- it('should prioritize skills.enabled=false from settings', async () => {
45
- vi.mocked(loadServerHierarchicalMemory).mockResolvedValue({
46
- memoryContent: '',
47
- fileCount: 0,
48
- filePaths: [],
49
- });
50
- const settings = createTestMergedSettings({
51
- skills: { enabled: false },
52
- });
53
- process.argv = ['node', 'gemini'];
54
- const config = await loadCliConfig(settings, 'test-session', await parseArguments(settings));
55
- expect(config.isSkillsSupportEnabled()).toBe(false);
56
- });
57
- it('should support legacy experimental.skills=true from settings', async () => {
58
- vi.mocked(loadServerHierarchicalMemory).mockResolvedValue({
59
- memoryContent: '',
60
- fileCount: 0,
61
- filePaths: [],
62
- });
63
- const settings = createTestMergedSettings({
64
- experimental: { skills: true },
65
- });
66
- process.argv = ['node', 'gemini'];
67
- const config = await loadCliConfig(settings, 'test-session', await parseArguments(settings));
68
- expect(config.isSkillsSupportEnabled()).toBe(true);
69
- });
70
- it('should prioritize legacy experimental.skills=true over new skills.enabled=false', async () => {
71
- vi.mocked(loadServerHierarchicalMemory).mockResolvedValue({
72
- memoryContent: '',
73
- fileCount: 0,
74
- filePaths: [],
75
- });
76
- const settings = createTestMergedSettings({
77
- skills: { enabled: false },
78
- experimental: { skills: true },
79
- });
80
- process.argv = ['node', 'gemini'];
81
- const config = await loadCliConfig(settings, 'test-session', await parseArguments(settings));
82
- expect(config.isSkillsSupportEnabled()).toBe(true);
83
- });
84
- it('should still be enabled by default if legacy experimental.skills is false (since new default is true)', async () => {
85
- vi.mocked(loadServerHierarchicalMemory).mockResolvedValue({
86
- memoryContent: '',
87
- fileCount: 0,
88
- filePaths: [],
89
- });
90
- const settings = createTestMergedSettings({
91
- experimental: { skills: false },
92
- });
93
- process.argv = ['node', 'gemini'];
94
- const config = await loadCliConfig(settings, 'test-session', await parseArguments(settings));
95
- expect(config.isSkillsSupportEnabled()).toBe(true);
96
- });
97
- });
98
- });
99
- //# sourceMappingURL=skills-backward-compatibility.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skills-backward-compatibility.test.js","sourceRoot":"","sources":["../../../src/config/skills-backward-compatibility.test.ts"],"names":[],"mappings":"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"}