@google/gemini-cli 0.21.0-nightly.20251217.db643e916 → 0.21.0-nightly.20251218.739c02bd6

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 (132) hide show
  1. package/dist/google-gemini-cli-0.21.0-nightly.20251216.bb0c0d8ee.tgz +0 -0
  2. package/dist/package.json +2 -2
  3. package/dist/src/commands/extensions/disable.test.js.map +1 -1
  4. package/dist/src/commands/extensions/enable.test.js.map +1 -1
  5. package/dist/src/commands/extensions/link.test.js.map +1 -1
  6. package/dist/src/commands/extensions/settings.js +2 -2
  7. package/dist/src/commands/extensions/settings.js.map +1 -1
  8. package/dist/src/commands/extensions/uninstall.test.js.map +1 -1
  9. package/dist/src/commands/extensions/validate.js +1 -1
  10. package/dist/src/commands/extensions/validate.js.map +1 -1
  11. package/dist/src/commands/mcp/add.test.js +1 -1
  12. package/dist/src/commands/mcp/add.test.js.map +1 -1
  13. package/dist/src/config/config.js +4 -3
  14. package/dist/src/config/config.js.map +1 -1
  15. package/dist/src/config/config.test.js +1 -1
  16. package/dist/src/config/config.test.js.map +1 -1
  17. package/dist/src/config/extension-manager.d.ts +1 -1
  18. package/dist/src/config/extension-manager.js +5 -5
  19. package/dist/src/config/extension-manager.js.map +1 -1
  20. package/dist/src/config/extension.test.js +4 -4
  21. package/dist/src/config/extension.test.js.map +1 -1
  22. package/dist/src/config/extensions/github.js +1 -1
  23. package/dist/src/config/extensions/github.js.map +1 -1
  24. package/dist/src/config/extensions/github.test.js +2 -2
  25. package/dist/src/config/extensions/github.test.js.map +1 -1
  26. package/dist/src/config/extensions/update.js +1 -1
  27. package/dist/src/config/extensions/update.js.map +1 -1
  28. package/dist/src/config/extensions/update.test.js +8 -8
  29. package/dist/src/config/extensions/update.test.js.map +1 -1
  30. package/dist/src/config/keyBindings.js +4 -1
  31. package/dist/src/config/keyBindings.js.map +1 -1
  32. package/dist/src/config/settings.test.js +4 -4
  33. package/dist/src/config/settings.test.js.map +1 -1
  34. package/dist/src/config/settingsSchema.d.ts +1 -10
  35. package/dist/src/config/settingsSchema.js +2 -11
  36. package/dist/src/config/settingsSchema.js.map +1 -1
  37. package/dist/src/config/settingsSchema.test.js +0 -11
  38. package/dist/src/config/settingsSchema.test.js.map +1 -1
  39. package/dist/src/generated/git-commit.d.ts +2 -2
  40. package/dist/src/generated/git-commit.js +2 -2
  41. package/dist/src/nonInteractiveCli.js +2 -1
  42. package/dist/src/nonInteractiveCli.js.map +1 -1
  43. package/dist/src/test-utils/render.js +1 -0
  44. package/dist/src/test-utils/render.js.map +1 -1
  45. package/dist/src/ui/AppContainer.js +6 -17
  46. package/dist/src/ui/AppContainer.js.map +1 -1
  47. package/dist/src/ui/AppContainer.test.js +156 -30
  48. package/dist/src/ui/AppContainer.test.js.map +1 -1
  49. package/dist/src/ui/commands/authCommand.js +30 -3
  50. package/dist/src/ui/commands/authCommand.js.map +1 -1
  51. package/dist/src/ui/commands/authCommand.test.js +72 -4
  52. package/dist/src/ui/commands/authCommand.test.js.map +1 -1
  53. package/dist/src/ui/commands/chatCommand.js +11 -19
  54. package/dist/src/ui/commands/chatCommand.js.map +1 -1
  55. package/dist/src/ui/commands/chatCommand.test.js +4 -5
  56. package/dist/src/ui/commands/chatCommand.test.js.map +1 -1
  57. package/dist/src/ui/commands/copyCommand.js +1 -1
  58. package/dist/src/ui/commands/copyCommand.js.map +1 -1
  59. package/dist/src/ui/commands/mcpCommand.js +1 -1
  60. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  61. package/dist/src/ui/commands/mcpCommand.test.js +1 -1
  62. package/dist/src/ui/commands/mcpCommand.test.js.map +1 -1
  63. package/dist/src/ui/commands/memoryCommand.js +1 -1
  64. package/dist/src/ui/commands/memoryCommand.js.map +1 -1
  65. package/dist/src/ui/commands/modelCommand.js +10 -5
  66. package/dist/src/ui/commands/modelCommand.js.map +1 -1
  67. package/dist/src/ui/commands/modelCommand.test.js +12 -1
  68. package/dist/src/ui/commands/modelCommand.test.js.map +1 -1
  69. package/dist/src/ui/commands/restoreCommand.js +1 -1
  70. package/dist/src/ui/commands/restoreCommand.js.map +1 -1
  71. package/dist/src/ui/commands/statsCommand.js +2 -6
  72. package/dist/src/ui/commands/statsCommand.js.map +1 -1
  73. package/dist/src/ui/commands/statsCommand.test.js +14 -0
  74. package/dist/src/ui/commands/statsCommand.test.js.map +1 -1
  75. package/dist/src/ui/commands/types.d.ts +8 -1
  76. package/dist/src/ui/commands/types.js.map +1 -1
  77. package/dist/src/ui/components/Footer.js +2 -2
  78. package/dist/src/ui/components/Footer.js.map +1 -1
  79. package/dist/src/ui/components/LogoutConfirmationDialog.d.ts +15 -0
  80. package/dist/src/ui/components/LogoutConfirmationDialog.js +37 -0
  81. package/dist/src/ui/components/LogoutConfirmationDialog.js.map +1 -0
  82. package/dist/src/ui/components/LogoutConfirmationDialog.test.d.ts +6 -0
  83. package/dist/src/ui/components/LogoutConfirmationDialog.test.js +59 -0
  84. package/dist/src/ui/components/LogoutConfirmationDialog.test.js.map +1 -0
  85. package/dist/src/ui/components/ModelDialog.js +116 -39
  86. package/dist/src/ui/components/ModelDialog.js.map +1 -1
  87. package/dist/src/ui/components/ModelDialog.test.js +157 -148
  88. package/dist/src/ui/components/ModelDialog.test.js.map +1 -1
  89. package/dist/src/ui/components/MultiFolderTrustDialog.test.js +7 -7
  90. package/dist/src/ui/components/MultiFolderTrustDialog.test.js.map +1 -1
  91. package/dist/src/ui/components/ProQuotaDialog.js +14 -12
  92. package/dist/src/ui/components/ProQuotaDialog.js.map +1 -1
  93. package/dist/src/ui/components/ProQuotaDialog.test.js +20 -21
  94. package/dist/src/ui/components/ProQuotaDialog.test.js.map +1 -1
  95. package/dist/src/ui/components/SettingsDialog.js +1 -1
  96. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.d.ts +1 -1
  97. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.js +1 -1
  98. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.js.map +1 -1
  99. package/dist/src/ui/constants/tips.js +0 -2
  100. package/dist/src/ui/constants/tips.js.map +1 -1
  101. package/dist/src/ui/contexts/VimModeContext.js +1 -1
  102. package/dist/src/ui/contexts/VimModeContext.js.map +1 -1
  103. package/dist/src/ui/hooks/slashCommandProcessor.js +18 -1
  104. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  105. package/dist/src/ui/hooks/slashCommandProcessor.test.js +1 -1
  106. package/dist/src/ui/hooks/slashCommandProcessor.test.js.map +1 -1
  107. package/dist/src/ui/hooks/useFolderTrust.test.js +1 -1
  108. package/dist/src/ui/hooks/useFolderTrust.test.js.map +1 -1
  109. package/dist/src/ui/hooks/useGeminiStream.js +2 -2
  110. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  111. package/dist/src/ui/hooks/useQuotaAndFallback.js +20 -21
  112. package/dist/src/ui/hooks/useQuotaAndFallback.js.map +1 -1
  113. package/dist/src/ui/hooks/useQuotaAndFallback.test.js +23 -23
  114. package/dist/src/ui/hooks/useQuotaAndFallback.test.js.map +1 -1
  115. package/dist/src/ui/hooks/useSlashCompletion.js +0 -5
  116. package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
  117. package/dist/src/ui/hooks/useSlashCompletion.test.js +35 -1
  118. package/dist/src/ui/hooks/useSlashCompletion.test.js.map +1 -1
  119. package/dist/src/ui/utils/clipboardUtils.d.ts +2 -2
  120. package/dist/src/ui/utils/clipboardUtils.js +50 -4
  121. package/dist/src/ui/utils/clipboardUtils.js.map +1 -1
  122. package/dist/src/ui/utils/clipboardUtils.test.js +12 -12
  123. package/dist/src/ui/utils/clipboardUtils.test.js.map +1 -1
  124. package/dist/src/ui/utils/clipboardUtils.windows.test.d.ts +6 -0
  125. package/dist/src/ui/utils/clipboardUtils.windows.test.js +52 -0
  126. package/dist/src/ui/utils/clipboardUtils.windows.test.js.map +1 -0
  127. package/dist/src/zed-integration/zedIntegration.js +1 -1
  128. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  129. package/dist/src/zed-integration/zedIntegration.test.js +0 -1
  130. package/dist/src/zed-integration/zedIntegration.test.js.map +1 -1
  131. package/dist/tsconfig.tsbuildinfo +1 -1
  132. package/package.json +3 -3
@@ -3,15 +3,20 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { CommandKind } from './types.js';
6
+ import { CommandKind, } from './types.js';
7
7
  export const modelCommand = {
8
8
  name: 'model',
9
9
  description: 'Opens a dialog to configure the model',
10
10
  kind: CommandKind.BUILT_IN,
11
11
  autoExecute: true,
12
- action: async () => ({
13
- type: 'dialog',
14
- dialog: 'model',
15
- }),
12
+ action: async (context) => {
13
+ if (context.services.config) {
14
+ await context.services.config.refreshUserQuota();
15
+ }
16
+ return {
17
+ type: 'dialog',
18
+ dialog: 'model',
19
+ };
20
+ },
16
21
  };
17
22
  //# sourceMappingURL=modelCommand.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"modelCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/modelCommand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAqB,MAAM,YAAY,CAAC;AAE5D,MAAM,CAAC,MAAM,YAAY,GAAiB;IACxC,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,uCAAuC;IACpD,IAAI,EAAE,WAAW,CAAC,QAAQ;IAC1B,WAAW,EAAE,IAAI;IACjB,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QACnB,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,OAAO;KAChB,CAAC;CACH,CAAC"}
1
+ {"version":3,"file":"modelCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/modelCommand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEL,WAAW,GAEZ,MAAM,YAAY,CAAC;AAEpB,MAAM,CAAC,MAAM,YAAY,GAAiB;IACxC,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,uCAAuC;IACpD,IAAI,EAAE,WAAW,CAAC,QAAQ;IAC1B,WAAW,EAAE,IAAI;IACjB,MAAM,EAAE,KAAK,EAAE,OAAuB,EAAE,EAAE;QACxC,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC5B,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;QACnD,CAAC;QACD,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,OAAO;SAChB,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -3,7 +3,7 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { describe, it, expect, beforeEach } from 'vitest';
6
+ import { describe, it, expect, beforeEach, vi } from 'vitest';
7
7
  import { modelCommand } from './modelCommand.js';
8
8
  import {} from './types.js';
9
9
  import { createMockCommandContext } from '../../test-utils/mockCommandContext.js';
@@ -22,6 +22,17 @@ describe('modelCommand', () => {
22
22
  dialog: 'model',
23
23
  });
24
24
  });
25
+ it('should call refreshUserQuota if config is available', async () => {
26
+ if (!modelCommand.action) {
27
+ throw new Error('The model command must have an action.');
28
+ }
29
+ const mockRefreshUserQuota = vi.fn();
30
+ mockContext.services.config = {
31
+ refreshUserQuota: mockRefreshUserQuota,
32
+ };
33
+ await modelCommand.action(mockContext, '');
34
+ expect(mockRefreshUserQuota).toHaveBeenCalled();
35
+ });
25
36
  it('should have the correct name and description', () => {
26
37
  expect(modelCommand.name).toBe('model');
27
38
  expect(modelCommand.description).toBe('Opens a dialog to configure the model');
@@ -1 +1 @@
1
- {"version":3,"file":"modelCommand.test.js","sourceRoot":"","sources":["../../../../src/ui/commands/modelCommand.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAuB,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAElF,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,IAAI,WAA2B,CAAC;IAEhC,UAAU,CAAC,GAAG,EAAE;QACd,WAAW,GAAG,wBAAwB,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAE1D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,OAAO;SAChB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,IAAI,CACnC,uCAAuC,CACxC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"modelCommand.test.js","sourceRoot":"","sources":["../../../../src/ui/commands/modelCommand.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAuB,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAGlF,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,IAAI,WAA2B,CAAC;IAEhC,UAAU,CAAC,GAAG,EAAE;QACd,WAAW,GAAG,wBAAwB,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAE1D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,OAAO;SAChB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,oBAAoB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,WAAW,CAAC,QAAQ,CAAC,MAAM,GAAG;YAC5B,gBAAgB,EAAE,oBAAoB;SAClB,CAAC;QAEvB,MAAM,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAE3C,MAAM,CAAC,oBAAoB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,IAAI,CACnC,uCAAuC,CACxC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -80,7 +80,7 @@ async function restoreAction(context, args) {
80
80
  else if (action.type === 'load_history' && loadHistory) {
81
81
  loadHistory(action.history);
82
82
  if (action.clientHistory) {
83
- await config?.getGeminiClient()?.setHistory(action.clientHistory);
83
+ config?.getGeminiClient()?.setHistory(action.clientHistory);
84
84
  }
85
85
  }
86
86
  }
@@ -1 +1 @@
1
- {"version":3,"file":"restoreCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/restoreCommand.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"restoreCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/restoreCommand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAEL,2BAA2B,EAC3B,qBAAqB,EACrB,2BAA2B,EAC3B,cAAc,GAEf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAIL,WAAW,GACZ,MAAM,YAAY,CAAC;AAGpB,MAAM,iBAAiB,GAAG,CAAC;KACxB,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;CACf,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;AAEpE,KAAK,UAAU,aAAa,CAC1B,OAAuB,EACvB,IAAY;IAEZ,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC;IACjC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;IAC7C,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC;IAEpC,MAAM,aAAa,GAAG,MAAM,EAAE,OAAO,CAAC,4BAA4B,EAAE,CAAC;IAErE,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO;YACL,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,OAAO;YACpB,OAAO,EAAE,iDAAiD;SAC3D,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,wDAAwD;QACxD,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QAEjE,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO;oBACL,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,MAAM;oBACnB,OAAO,EAAE,iCAAiC;iBAC3C,CAAC;YACJ,CAAC;YACD,MAAM,QAAQ,GAAG,2BAA2B,CAAC,SAAS,CAAC,CAAC;YACxD,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE,uCAAuC,QAAQ,EAAE;aAC3D,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC;QAEpE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACtC,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,OAAO;gBACpB,OAAO,EAAE,mBAAmB,YAAY,EAAE;aAC3C,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAEnE,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACzB,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,OAAO;gBACpB,OAAO,EAAE,+BAA+B,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE;aACpE,CAAC;QACJ,CAAC;QAED,+BAA+B;QAC/B,gHAAgH;QAChH,6HAA6H;QAC7H,MAAM,YAAY,GAAG,WAAW,CAAC,IAGhC,CAAC;QAEF,MAAM,YAAY,GAAG,cAAc,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAE9D,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;YACxC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC9B,OAAO,CACL;oBACE,IAAI,EAAE,MAAM,CAAC,WAAW;oBACxB,IAAI,EAAE,MAAM,CAAC,OAAO;iBACrB,EACD,IAAI,CAAC,GAAG,EAAE,CACX,CAAC;YACJ,CAAC;iBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,IAAI,WAAW,EAAE,CAAC;gBACzD,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC5B,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;oBACzB,MAAM,EAAE,eAAe,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;gBAC9D,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,IAAI;YACpC,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,IAAI;SACrC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,OAAO;YACpB,OAAO,EAAE,4DAA4D,KAAK,EAAE;SAC7E,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,OAAuB,EACvB,WAAmB;IAEnB,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC7B,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;IAC5B,MAAM,aAAa,GAAG,MAAM,EAAE,OAAO,CAAC,4BAA4B,EAAE,CAAC;IACrE,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QACjE,OAAO,2BAA2B,CAAC,SAAS,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,IAAI,EAAE,CAAC;QACd,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAqB,EAAuB,EAAE;IAC3E,IAAI,CAAC,MAAM,EAAE,uBAAuB,EAAE,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,IAAI,EAAE,SAAS;QACf,WAAW,EACT,gIAAgI;QAClI,IAAI,EAAE,WAAW,CAAC,QAAQ;QAC1B,WAAW,EAAE,IAAI;QACjB,MAAM,EAAE,aAAa;QACrB,UAAU;KACX,CAAC;AACJ,CAAC,CAAC"}
@@ -3,7 +3,6 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { CodeAssistServer, getCodeAssistServer } from '@google/gemini-cli-core';
7
6
  import { MessageType } from '../types.js';
8
7
  import { formatDuration } from '../utils/formatters.js';
9
8
  import { CommandKind, } from './types.js';
@@ -23,11 +22,8 @@ async function defaultSessionView(context) {
23
22
  duration: formatDuration(wallDuration),
24
23
  };
25
24
  if (context.services.config) {
26
- const server = getCodeAssistServer(context.services.config);
27
- if (server instanceof CodeAssistServer && server.projectId) {
28
- const quota = await server.retrieveUserQuota({
29
- project: server.projectId,
30
- });
25
+ const quota = await context.services.config.refreshUserQuota();
26
+ if (quota) {
31
27
  statsItem.quotas = quota;
32
28
  }
33
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"statsCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/statsCommand.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"statsCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/statsCommand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAGL,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,KAAK,UAAU,kBAAkB,CAAC,OAAuB;IACvD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;IACnD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,CAAC,EAAE,CAAC,OAAO,CAChB;YACE,IAAI,EAAE,WAAW,CAAC,KAAK;YACvB,IAAI,EAAE,4DAA4D;SACnE,EACD,IAAI,CAAC,GAAG,EAAE,CACX,CAAC;QACF,OAAO;IACT,CAAC;IACD,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,gBAAgB,CAAC,OAAO,EAAE,CAAC;IAEhE,MAAM,SAAS,GAAqB;QAClC,IAAI,EAAE,WAAW,CAAC,KAAK;QACvB,QAAQ,EAAE,cAAc,CAAC,YAAY,CAAC;KACvC,CAAC;IAEF,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC/D,IAAI,KAAK,EAAE,CAAC;YACV,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAiB;IACxC,IAAI,EAAE,OAAO;IACb,QAAQ,EAAE,CAAC,OAAO,CAAC;IACnB,WAAW,EAAE,0DAA0D;IACvE,IAAI,EAAE,WAAW,CAAC,QAAQ;IAC1B,WAAW,EAAE,KAAK;IAClB,MAAM,EAAE,KAAK,EAAE,OAAuB,EAAE,EAAE;QACxC,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IACD,WAAW,EAAE;QACX;YACE,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,wCAAwC;YACrD,IAAI,EAAE,WAAW,CAAC,QAAQ;YAC1B,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,KAAK,EAAE,OAAuB,EAAE,EAAE;gBACxC,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC;SACF;QACD;YACE,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,sCAAsC;YACnD,IAAI,EAAE,WAAW,CAAC,QAAQ;YAC1B,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,CAAC,OAAuB,EAAE,EAAE;gBAClC,OAAO,CAAC,EAAE,CAAC,OAAO,CAChB;oBACE,IAAI,EAAE,WAAW,CAAC,WAAW;iBAC9B,EACD,IAAI,CAAC,GAAG,EAAE,CACX,CAAC;YACJ,CAAC;SACF;QACD;YACE,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,qCAAqC;YAClD,IAAI,EAAE,WAAW,CAAC,QAAQ;YAC1B,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,CAAC,OAAuB,EAAE,EAAE;gBAClC,OAAO,CAAC,EAAE,CAAC,OAAO,CAChB;oBACE,IAAI,EAAE,WAAW,CAAC,UAAU;iBAC7B,EACD,IAAI,CAAC,GAAG,EAAE,CACX,CAAC;YACJ,CAAC;SACF;KACF;CACF,CAAC"}
@@ -32,6 +32,20 @@ describe('statsCommand', () => {
32
32
  duration: expectedDuration,
33
33
  }, expect.any(Number));
34
34
  });
35
+ it('should fetch and display quota if config is available', async () => {
36
+ if (!statsCommand.action)
37
+ throw new Error('Command has no action');
38
+ const mockQuota = { buckets: [] };
39
+ const mockRefreshUserQuota = vi.fn().mockResolvedValue(mockQuota);
40
+ mockContext.services.config = {
41
+ refreshUserQuota: mockRefreshUserQuota,
42
+ };
43
+ await statsCommand.action(mockContext, '');
44
+ expect(mockRefreshUserQuota).toHaveBeenCalled();
45
+ expect(mockContext.ui.addItem).toHaveBeenCalledWith(expect.objectContaining({
46
+ quotas: mockQuota,
47
+ }), expect.any(Number));
48
+ });
35
49
  it('should display model stats when using the "model" subcommand', () => {
36
50
  const modelSubCommand = statsCommand.subCommands?.find((sc) => sc.name === 'model');
37
51
  if (!modelSubCommand?.action)
@@ -1 +1 @@
1
- {"version":3,"file":"statsCommand.test.js","sourceRoot":"","sources":["../../../../src/ui/commands/statsCommand.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"statsCommand.test.js","sourceRoot":"","sources":["../../../../src/ui/commands/statsCommand.test.ts"],"names":[],"mappings":"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"}
@@ -105,7 +105,14 @@ export interface OpenCustomDialogActionReturn {
105
105
  type: 'custom_dialog';
106
106
  component: ReactNode;
107
107
  }
108
- export type SlashCommandActionReturn = CommandActionReturn<HistoryItemWithoutId[]> | QuitActionReturn | OpenDialogActionReturn | ConfirmShellCommandsActionReturn | ConfirmActionReturn | OpenCustomDialogActionReturn;
108
+ /**
109
+ * The return type for a command action that specifically handles logout logic,
110
+ * signaling the application to explicitly transition to an unauthenticated state.
111
+ */
112
+ export interface LogoutActionReturn {
113
+ type: 'logout';
114
+ }
115
+ export type SlashCommandActionReturn = CommandActionReturn<HistoryItemWithoutId[]> | QuitActionReturn | OpenDialogActionReturn | ConfirmShellCommandsActionReturn | ConfirmActionReturn | OpenCustomDialogActionReturn | LogoutActionReturn;
109
116
  export declare enum CommandKind {
110
117
  BUILT_IN = "built-in",
111
118
  FILE = "file",
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/ui/commands/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoJH,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,oCAAqB,CAAA;IACrB,4BAAa,CAAA;IACb,wCAAyB,CAAA;AAC3B,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/ui/commands/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA6JH,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,oCAAqB,CAAA;IACrB,4BAAa,CAAA;IACb,wCAAyB,CAAA;AAC3B,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { Box, Text } from 'ink';
3
3
  import { theme } from '../semantic-colors.js';
4
- import { shortenPath, tildeifyPath } from '@google/gemini-cli-core';
4
+ import { shortenPath, tildeifyPath, getDisplayString, } from '@google/gemini-cli-core';
5
5
  import { ConsoleSummaryDisplay } from './ConsoleSummaryDisplay.js';
6
6
  import process from 'node:process';
7
7
  import { ThemedGradient } from './ThemedGradient.js';
@@ -44,6 +44,6 @@ export const Footer = () => {
44
44
  const showDebugProfiler = debugMode || isDevelopment;
45
45
  return (_jsxs(Box, { justifyContent: justifyContent, width: mainAreaWidth, flexDirection: "row", alignItems: "center", paddingX: 1, children: [(showDebugProfiler || displayVimMode || !hideCWD) && (_jsxs(Box, { children: [showDebugProfiler && _jsx(DebugProfiler, {}), displayVimMode && (_jsxs(Text, { color: theme.text.secondary, children: ["[", displayVimMode, "] "] })), !hideCWD &&
46
46
  (nightly ? (_jsxs(ThemedGradient, { children: [displayPath, branchName && _jsxs(Text, { children: [" (", branchName, "*)"] })] })) : (_jsxs(Text, { color: theme.text.link, children: [displayPath, branchName && (_jsxs(Text, { color: theme.text.secondary, children: [" (", branchName, "*)"] }))] }))), debugMode && (_jsx(Text, { color: theme.status.error, children: ' ' + (debugMessage || '--debug') }))] })), !hideSandboxStatus && (_jsx(Box, { flexGrow: 1, alignItems: "center", justifyContent: "center", display: "flex", children: isTrustedFolder === false ? (_jsx(Text, { color: theme.status.warning, children: "untrusted" })) : process.env['SANDBOX'] &&
47
- process.env['SANDBOX'] !== 'sandbox-exec' ? (_jsx(Text, { color: "green", children: process.env['SANDBOX'].replace(/^gemini-(?:cli-)?/, '') })) : process.env['SANDBOX'] === 'sandbox-exec' ? (_jsxs(Text, { color: theme.status.warning, children: ["macOS Seatbelt", ' ', _jsxs(Text, { color: theme.text.secondary, children: ["(", process.env['SEATBELT_PROFILE'], ")"] })] })) : (_jsxs(Text, { color: theme.status.error, children: ["no sandbox", mainAreaWidth >= 100 && (_jsx(Text, { color: theme.text.secondary, children: " (see /docs)" }))] })) })), !hideModelInfo && (_jsxs(Box, { alignItems: "center", justifyContent: "flex-end", children: [_jsxs(Box, { alignItems: "center", children: [_jsxs(Text, { color: theme.text.accent, children: [model, !hideContextPercentage && (_jsxs(_Fragment, { children: [' ', _jsx(ContextUsageDisplay, { promptTokenCount: promptTokenCount, model: model, terminalWidth: mainAreaWidth })] }))] }), showMemoryUsage && _jsx(MemoryUsageDisplay, {})] }), _jsxs(Box, { alignItems: "center", children: [corgiMode && (_jsx(Box, { paddingLeft: 1, flexDirection: "row", children: _jsxs(Text, { children: [_jsx(Text, { color: theme.ui.symbol, children: "| " }), _jsx(Text, { color: theme.status.error, children: "\u25BC" }), _jsx(Text, { color: theme.text.primary, children: "(\u00B4" }), _jsx(Text, { color: theme.status.error, children: "\u1D25" }), _jsx(Text, { color: theme.text.primary, children: "`)" }), _jsx(Text, { color: theme.status.error, children: "\u25BC" })] }) })), !showErrorDetails && errorCount > 0 && (_jsxs(Box, { paddingLeft: 1, flexDirection: "row", children: [_jsx(Text, { color: theme.ui.comment, children: "| " }), _jsx(ConsoleSummaryDisplay, { errorCount: errorCount })] }))] })] }))] }));
47
+ process.env['SANDBOX'] !== 'sandbox-exec' ? (_jsx(Text, { color: "green", children: process.env['SANDBOX'].replace(/^gemini-(?:cli-)?/, '') })) : process.env['SANDBOX'] === 'sandbox-exec' ? (_jsxs(Text, { color: theme.status.warning, children: ["macOS Seatbelt", ' ', _jsxs(Text, { color: theme.text.secondary, children: ["(", process.env['SEATBELT_PROFILE'], ")"] })] })) : (_jsxs(Text, { color: theme.status.error, children: ["no sandbox", mainAreaWidth >= 100 && (_jsx(Text, { color: theme.text.secondary, children: " (see /docs)" }))] })) })), !hideModelInfo && (_jsxs(Box, { alignItems: "center", justifyContent: "flex-end", children: [_jsxs(Box, { alignItems: "center", children: [_jsxs(Text, { color: theme.text.accent, children: [getDisplayString(model, config.getPreviewFeatures()), _jsx(Text, { color: theme.text.secondary, children: " /model" }), !hideContextPercentage && (_jsxs(_Fragment, { children: [' ', _jsx(ContextUsageDisplay, { promptTokenCount: promptTokenCount, model: model, terminalWidth: mainAreaWidth })] }))] }), showMemoryUsage && _jsx(MemoryUsageDisplay, {})] }), _jsxs(Box, { alignItems: "center", children: [corgiMode && (_jsx(Box, { paddingLeft: 1, flexDirection: "row", children: _jsxs(Text, { children: [_jsx(Text, { color: theme.ui.symbol, children: "| " }), _jsx(Text, { color: theme.status.error, children: "\u25BC" }), _jsx(Text, { color: theme.text.primary, children: "(\u00B4" }), _jsx(Text, { color: theme.status.error, children: "\u1D25" }), _jsx(Text, { color: theme.text.primary, children: "`)" }), _jsx(Text, { color: theme.status.error, children: "\u25BC" })] }) })), !showErrorDetails && errorCount > 0 && (_jsxs(Box, { paddingLeft: 1, flexDirection: "row", children: [_jsx(Text, { color: theme.ui.comment, children: "| " }), _jsx(ConsoleSummaryDisplay, { errorCount: errorCount })] }))] })] }))] }));
48
48
  };
49
49
  //# sourceMappingURL=Footer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Footer.js","sourceRoot":"","sources":["../../../../src/ui/components/Footer.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,MAAM,CAAC,MAAM,MAAM,GAAa,GAAG,EAAE;IACnC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,CAAC;IAE7C,MAAM,EACJ,KAAK,EACL,SAAS,EACT,SAAS,EACT,UAAU,EACV,YAAY,EACZ,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,OAAO,EACP,eAAe,EACf,aAAa,GACd,GAAG;QACF,KAAK,EAAE,OAAO,CAAC,YAAY;QAC3B,SAAS,EAAE,MAAM,CAAC,YAAY,EAAE;QAChC,SAAS,EAAE,MAAM,CAAC,YAAY,EAAE;QAChC,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,gBAAgB,EAAE,OAAO,CAAC,YAAY,CAAC,oBAAoB;QAC3D,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,aAAa,EAAE,OAAO,CAAC,aAAa;KACrC,CAAC;IAEF,MAAM,eAAe,GACnB,MAAM,CAAC,YAAY,EAAE,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,eAAe,IAAI,KAAK,CAAC;IACxE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,IAAI,KAAK,CAAC;IAC7D,MAAM,iBAAiB,GACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,iBAAiB,IAAI,KAAK,CAAC;IACzD,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,IAAI,KAAK,CAAC;IACzE,MAAM,qBAAqB,GACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,qBAAqB,IAAI,IAAI,CAAC;IAE5D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC;IAClE,MAAM,WAAW,GAAG,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC,CAAC;IAErE,MAAM,cAAc,GAAG,OAAO,IAAI,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC;IAC7E,MAAM,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAExD,MAAM,iBAAiB,GAAG,SAAS,IAAI,aAAa,CAAC;IAErD,OAAO,CACL,MAAC,GAAG,IACF,cAAc,EAAE,cAAc,EAC9B,KAAK,EAAE,aAAa,EACpB,aAAa,EAAC,KAAK,EACnB,UAAU,EAAC,QAAQ,EACnB,QAAQ,EAAE,CAAC,aAEV,CAAC,iBAAiB,IAAI,cAAc,IAAI,CAAC,OAAO,CAAC,IAAI,CACpD,MAAC,GAAG,eACD,iBAAiB,IAAI,KAAC,aAAa,KAAG,EACtC,cAAc,IAAI,CACjB,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,kBAAI,cAAc,UAAU,CAC9D,EACA,CAAC,OAAO;wBACP,CAAC,OAAO,CAAC,CAAC,CAAC,CACT,MAAC,cAAc,eACZ,WAAW,EACX,UAAU,IAAI,MAAC,IAAI,qBAAI,UAAU,UAAU,IAC7B,CAClB,CAAC,CAAC,CAAC,CACF,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,aACzB,WAAW,EACX,UAAU,IAAI,CACb,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,mBAAK,UAAU,UAAU,CAC3D,IACI,CACR,CAAC,EACH,SAAS,IAAI,CACZ,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,YAC5B,GAAG,GAAG,CAAC,YAAY,IAAI,SAAS,CAAC,GAC7B,CACR,IACG,CACP,EAGA,CAAC,iBAAiB,IAAI,CACrB,KAAC,GAAG,IACF,QAAQ,EAAE,CAAC,EACX,UAAU,EAAC,QAAQ,EACnB,cAAc,EAAC,QAAQ,EACvB,OAAO,EAAC,MAAM,YAEb,eAAe,KAAK,KAAK,CAAC,CAAC,CAAC,CAC3B,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,0BAAkB,CACpD,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;oBACxB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,cAAc,CAAC,CAAC,CAAC,CAC5C,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,YAChB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,GACnD,CACR,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,cAAc,CAAC,CAAC,CAAC,CAC9C,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,+BAChB,GAAG,EAClB,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,kBAC7B,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,SAC5B,IACF,CACR,CAAC,CAAC,CAAC,CACF,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,2BAE5B,aAAa,IAAI,GAAG,IAAI,CACvB,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,6BAAqB,CACvD,IACI,CACR,GACG,CACP,EAGA,CAAC,aAAa,IAAI,CACjB,MAAC,GAAG,IAAC,UAAU,EAAC,QAAQ,EAAC,cAAc,EAAC,UAAU,aAChD,MAAC,GAAG,IAAC,UAAU,EAAC,QAAQ,aACtB,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,aAC3B,KAAK,EACL,CAAC,qBAAqB,IAAI,CACzB,8BACG,GAAG,EACJ,KAAC,mBAAmB,IAClB,gBAAgB,EAAE,gBAAgB,EAClC,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,aAAa,GAC5B,IACD,CACJ,IACI,EACN,eAAe,IAAI,KAAC,kBAAkB,KAAG,IACtC,EACN,MAAC,GAAG,IAAC,UAAU,EAAC,QAAQ,aACrB,SAAS,IAAI,CACZ,KAAC,GAAG,IAAC,WAAW,EAAE,CAAC,EAAE,aAAa,EAAC,KAAK,YACtC,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,mBAAW,EACvC,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,uBAAU,EACzC,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,wBAAW,EAC1C,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,uBAAU,EACzC,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,mBAAW,EAC1C,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,uBAAU,IACpC,GACH,CACP,EACA,CAAC,gBAAgB,IAAI,UAAU,GAAG,CAAC,IAAI,CACtC,MAAC,GAAG,IAAC,WAAW,EAAE,CAAC,EAAE,aAAa,EAAC,KAAK,aACtC,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,mBAAW,EACxC,KAAC,qBAAqB,IAAC,UAAU,EAAE,UAAU,GAAI,IAC7C,CACP,IACG,IACF,CACP,IACG,CACP,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"Footer.js","sourceRoot":"","sources":["../../../../src/ui/components/Footer.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type React from 'react';
7
+ export declare enum LogoutChoice {
8
+ LOGIN = "login",
9
+ EXIT = "exit"
10
+ }
11
+ interface LogoutConfirmationDialogProps {
12
+ onSelect: (choice: LogoutChoice) => void;
13
+ }
14
+ export declare const LogoutConfirmationDialog: React.FC<LogoutConfirmationDialogProps>;
15
+ export {};
@@ -0,0 +1,37 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * @license
4
+ * Copyright 2025 Google LLC
5
+ * SPDX-License-Identifier: Apache-2.0
6
+ */
7
+ import { Box, Text } from 'ink';
8
+ import { theme } from '../semantic-colors.js';
9
+ import { RadioButtonSelect } from './shared/RadioButtonSelect.js';
10
+ import { useKeypress } from '../hooks/useKeypress.js';
11
+ export var LogoutChoice;
12
+ (function (LogoutChoice) {
13
+ LogoutChoice["LOGIN"] = "login";
14
+ LogoutChoice["EXIT"] = "exit";
15
+ })(LogoutChoice || (LogoutChoice = {}));
16
+ export const LogoutConfirmationDialog = ({ onSelect }) => {
17
+ // Handle escape key to exit (consistent with other dialogs)
18
+ useKeypress((key) => {
19
+ if (key.name === 'escape') {
20
+ onSelect(LogoutChoice.EXIT);
21
+ }
22
+ }, { isActive: true });
23
+ const options = [
24
+ {
25
+ label: 'Login',
26
+ value: LogoutChoice.LOGIN,
27
+ key: 'login',
28
+ },
29
+ {
30
+ label: 'Exit',
31
+ value: LogoutChoice.EXIT,
32
+ key: 'exit',
33
+ },
34
+ ];
35
+ return (_jsx(Box, { flexDirection: "row", width: "100%", children: _jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: theme.border.focused, padding: 1, flexGrow: 1, marginLeft: 1, marginRight: 1, children: [_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Text, { bold: true, color: theme.text.primary, children: "You are now logged out." }), _jsx(Text, { color: theme.text.secondary, children: "Login again to continue using Gemini CLI, or exit the application." })] }), _jsx(RadioButtonSelect, { items: options, onSelect: onSelect, isFocused: true }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: theme.text.secondary, children: "(Use Enter to select, Esc to close)" }) })] }) }));
36
+ };
37
+ //# sourceMappingURL=LogoutConfirmationDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogoutConfirmationDialog.js","sourceRoot":"","sources":["../../../../src/ui/components/LogoutConfirmationDialog.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEhC,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,MAAM,CAAN,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,+BAAe,CAAA;IACf,6BAAa,CAAA;AACf,CAAC,EAHW,YAAY,KAAZ,YAAY,QAGvB;AAMD,MAAM,CAAC,MAAM,wBAAwB,GAEjC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IACnB,4DAA4D;IAC5D,WAAW,CACT,CAAC,GAAG,EAAE,EAAE;QACN,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1B,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,EACD,EAAE,QAAQ,EAAE,IAAI,EAAE,CACnB,CAAC;IAEF,MAAM,OAAO,GAAyC;QACpD;YACE,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,YAAY,CAAC,KAAK;YACzB,GAAG,EAAE,OAAO;SACb;QACD;YACE,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,YAAY,CAAC,IAAI;YACxB,GAAG,EAAE,MAAM;SACZ;KACF,CAAC;IAEF,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,YACnC,MAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,WAAW,EAAC,OAAO,EACnB,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,EACjC,OAAO,EAAE,CAAC,EACV,QAAQ,EAAE,CAAC,EACX,UAAU,EAAE,CAAC,EACb,WAAW,EAAE,CAAC,aAEd,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,aACzC,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,wCAE7B,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,mFAE1B,IACH,EAEN,KAAC,iBAAiB,IAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,SAAG,EAEnE,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,oDAE1B,GACH,IACF,GACF,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};
@@ -0,0 +1,59 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * @license
4
+ * Copyright 2025 Google LLC
5
+ * SPDX-License-Identifier: Apache-2.0
6
+ */
7
+ import { renderWithProviders } from '../../test-utils/render.js';
8
+ import { act } from 'react';
9
+ import { vi, describe, it, expect, beforeEach } from 'vitest';
10
+ import { LogoutConfirmationDialog, LogoutChoice, } from './LogoutConfirmationDialog.js';
11
+ import { RadioButtonSelect } from './shared/RadioButtonSelect.js';
12
+ vi.mock('./shared/RadioButtonSelect.js', () => ({
13
+ RadioButtonSelect: vi.fn(() => null),
14
+ }));
15
+ describe('LogoutConfirmationDialog', () => {
16
+ beforeEach(() => {
17
+ vi.clearAllMocks();
18
+ });
19
+ it('should render the dialog with title, description, and hint', () => {
20
+ const { lastFrame } = renderWithProviders(_jsx(LogoutConfirmationDialog, { onSelect: vi.fn() }));
21
+ expect(lastFrame()).toContain('You are now logged out.');
22
+ expect(lastFrame()).toContain('Login again to continue using Gemini CLI, or exit the application.');
23
+ expect(lastFrame()).toContain('(Use Enter to select, Esc to close)');
24
+ });
25
+ it('should render RadioButtonSelect with Login and Exit options', () => {
26
+ renderWithProviders(_jsx(LogoutConfirmationDialog, { onSelect: vi.fn() }));
27
+ expect(RadioButtonSelect).toHaveBeenCalled();
28
+ const mockCall = vi.mocked(RadioButtonSelect).mock.calls[0][0];
29
+ expect(mockCall.items).toEqual([
30
+ { label: 'Login', value: LogoutChoice.LOGIN, key: 'login' },
31
+ { label: 'Exit', value: LogoutChoice.EXIT, key: 'exit' },
32
+ ]);
33
+ expect(mockCall.isFocused).toBe(true);
34
+ });
35
+ it('should call onSelect with LOGIN when Login is selected', () => {
36
+ const onSelect = vi.fn();
37
+ renderWithProviders(_jsx(LogoutConfirmationDialog, { onSelect: onSelect }));
38
+ const mockCall = vi.mocked(RadioButtonSelect).mock.calls[0][0];
39
+ mockCall.onSelect(LogoutChoice.LOGIN);
40
+ expect(onSelect).toHaveBeenCalledWith(LogoutChoice.LOGIN);
41
+ });
42
+ it('should call onSelect with EXIT when Exit is selected', () => {
43
+ const onSelect = vi.fn();
44
+ renderWithProviders(_jsx(LogoutConfirmationDialog, { onSelect: onSelect }));
45
+ const mockCall = vi.mocked(RadioButtonSelect).mock.calls[0][0];
46
+ mockCall.onSelect(LogoutChoice.EXIT);
47
+ expect(onSelect).toHaveBeenCalledWith(LogoutChoice.EXIT);
48
+ });
49
+ it('should call onSelect with EXIT when escape key is pressed', () => {
50
+ const onSelect = vi.fn();
51
+ const { stdin } = renderWithProviders(_jsx(LogoutConfirmationDialog, { onSelect: onSelect }));
52
+ act(() => {
53
+ // Send kitty escape key sequence
54
+ stdin.write('\u001b[27u');
55
+ });
56
+ expect(onSelect).toHaveBeenCalledWith(LogoutChoice.EXIT);
57
+ });
58
+ });
59
+ //# sourceMappingURL=LogoutConfirmationDialog.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogoutConfirmationDialog.test.js","sourceRoot":"","sources":["../../../../src/ui/components/LogoutConfirmationDialog.test.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useCallback, useContext, useMemo } from 'react';
2
+ import { useCallback, useContext, useMemo, useState } from 'react';
3
3
  import { Box, Text } from 'ink';
4
- import { PREVIEW_GEMINI_MODEL, DEFAULT_GEMINI_MODEL, DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_FLASH_LITE_MODEL, DEFAULT_GEMINI_MODEL_AUTO, GEMINI_MODEL_ALIAS_FLASH, GEMINI_MODEL_ALIAS_FLASH_LITE, GEMINI_MODEL_ALIAS_PRO, ModelSlashCommandEvent, logModelSlashCommand, } from '@google/gemini-cli-core';
4
+ import { PREVIEW_GEMINI_MODEL, PREVIEW_GEMINI_FLASH_MODEL, PREVIEW_GEMINI_MODEL_AUTO, DEFAULT_GEMINI_MODEL, DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_FLASH_LITE_MODEL, DEFAULT_GEMINI_MODEL_AUTO, ModelSlashCommandEvent, logModelSlashCommand, getDisplayString, } from '@google/gemini-cli-core';
5
5
  import { useKeypress } from '../hooks/useKeypress.js';
6
6
  import { theme } from '../semantic-colors.js';
7
7
  import { DescriptiveRadioButtonSelect } from './shared/DescriptiveRadioButtonSelect.js';
@@ -9,45 +9,110 @@ import { ConfigContext } from '../contexts/ConfigContext.js';
9
9
  import { ThemedGradient } from './ThemedGradient.js';
10
10
  export function ModelDialog({ onClose }) {
11
11
  const config = useContext(ConfigContext);
12
+ const [view, setView] = useState('main');
12
13
  // Determine the Preferred Model (read once when the dialog opens).
13
14
  const preferredModel = config?.getModel() || DEFAULT_GEMINI_MODEL_AUTO;
15
+ const shouldShowPreviewModels = config?.getPreviewFeatures() && config.getHasAccessToPreviewModel();
16
+ const manualModelSelected = useMemo(() => {
17
+ const manualModels = [
18
+ DEFAULT_GEMINI_MODEL,
19
+ DEFAULT_GEMINI_FLASH_MODEL,
20
+ DEFAULT_GEMINI_FLASH_LITE_MODEL,
21
+ PREVIEW_GEMINI_MODEL,
22
+ PREVIEW_GEMINI_FLASH_MODEL,
23
+ ];
24
+ if (manualModels.includes(preferredModel)) {
25
+ return preferredModel;
26
+ }
27
+ return '';
28
+ }, [preferredModel]);
14
29
  useKeypress((key) => {
15
30
  if (key.name === 'escape') {
16
- onClose();
31
+ if (view === 'manual') {
32
+ setView('main');
33
+ }
34
+ else {
35
+ onClose();
36
+ }
17
37
  }
18
38
  }, { isActive: true });
19
- const options = useMemo(() => [
20
- {
21
- value: DEFAULT_GEMINI_MODEL_AUTO,
22
- title: 'Auto',
23
- description: 'Let the system choose the best model for your task.',
24
- key: DEFAULT_GEMINI_MODEL_AUTO,
25
- },
26
- {
27
- value: GEMINI_MODEL_ALIAS_PRO,
28
- title: config?.getPreviewFeatures()
29
- ? `Pro (${PREVIEW_GEMINI_MODEL}, ${DEFAULT_GEMINI_MODEL})`
30
- : `Pro (${DEFAULT_GEMINI_MODEL})`,
31
- description: 'For complex tasks that require deep reasoning and creativity',
32
- key: GEMINI_MODEL_ALIAS_PRO,
33
- },
34
- {
35
- value: GEMINI_MODEL_ALIAS_FLASH,
36
- title: `Flash (${DEFAULT_GEMINI_FLASH_MODEL})`,
37
- description: 'For tasks that need a balance of speed and reasoning',
38
- key: GEMINI_MODEL_ALIAS_FLASH,
39
- },
40
- {
41
- value: GEMINI_MODEL_ALIAS_FLASH_LITE,
42
- title: `Flash-Lite (${DEFAULT_GEMINI_FLASH_LITE_MODEL})`,
43
- description: 'For simple tasks that need to be done quickly',
44
- key: GEMINI_MODEL_ALIAS_FLASH_LITE,
45
- },
46
- ], [config]);
39
+ const mainOptions = useMemo(() => {
40
+ const list = [
41
+ {
42
+ value: DEFAULT_GEMINI_MODEL_AUTO,
43
+ title: getDisplayString(DEFAULT_GEMINI_MODEL_AUTO),
44
+ description: 'Let Gemini CLI decide the best model for the task: gemini-2.5-pro, gemini-2.5-flash',
45
+ key: DEFAULT_GEMINI_MODEL_AUTO,
46
+ },
47
+ {
48
+ value: 'Manual',
49
+ title: manualModelSelected
50
+ ? `Manual (${manualModelSelected})`
51
+ : 'Manual',
52
+ description: 'Manually select a model',
53
+ key: 'Manual',
54
+ },
55
+ ];
56
+ if (shouldShowPreviewModels) {
57
+ list.unshift({
58
+ value: PREVIEW_GEMINI_MODEL_AUTO,
59
+ title: getDisplayString(PREVIEW_GEMINI_MODEL_AUTO),
60
+ description: 'Let Gemini CLI decide the best model for the task: gemini-3-pro, gemini-3-flash',
61
+ key: PREVIEW_GEMINI_MODEL_AUTO,
62
+ });
63
+ }
64
+ return list;
65
+ }, [shouldShowPreviewModels, manualModelSelected]);
66
+ const manualOptions = useMemo(() => {
67
+ const list = [
68
+ {
69
+ value: DEFAULT_GEMINI_MODEL,
70
+ title: DEFAULT_GEMINI_MODEL,
71
+ key: DEFAULT_GEMINI_MODEL,
72
+ },
73
+ {
74
+ value: DEFAULT_GEMINI_FLASH_MODEL,
75
+ title: DEFAULT_GEMINI_FLASH_MODEL,
76
+ key: DEFAULT_GEMINI_FLASH_MODEL,
77
+ },
78
+ {
79
+ value: DEFAULT_GEMINI_FLASH_LITE_MODEL,
80
+ title: DEFAULT_GEMINI_FLASH_LITE_MODEL,
81
+ key: DEFAULT_GEMINI_FLASH_LITE_MODEL,
82
+ },
83
+ ];
84
+ if (shouldShowPreviewModels) {
85
+ list.unshift({
86
+ value: PREVIEW_GEMINI_MODEL,
87
+ title: PREVIEW_GEMINI_MODEL,
88
+ key: PREVIEW_GEMINI_MODEL,
89
+ }, {
90
+ value: PREVIEW_GEMINI_FLASH_MODEL,
91
+ title: PREVIEW_GEMINI_FLASH_MODEL,
92
+ key: PREVIEW_GEMINI_FLASH_MODEL,
93
+ });
94
+ }
95
+ return list;
96
+ }, [shouldShowPreviewModels]);
97
+ const options = view === 'main' ? mainOptions : manualOptions;
47
98
  // Calculate the initial index based on the preferred model.
48
- const initialIndex = useMemo(() => options.findIndex((option) => option.value === preferredModel), [preferredModel, options]);
99
+ const initialIndex = useMemo(() => {
100
+ const idx = options.findIndex((option) => option.value === preferredModel);
101
+ if (idx !== -1) {
102
+ return idx;
103
+ }
104
+ if (view === 'main') {
105
+ const manualIdx = options.findIndex((o) => o.value === 'Manual');
106
+ return manualIdx !== -1 ? manualIdx : 0;
107
+ }
108
+ return 0;
109
+ }, [preferredModel, options, view]);
49
110
  // Handle selection internally (Autonomous Dialog).
50
111
  const handleSelect = useCallback((model) => {
112
+ if (model === 'Manual') {
113
+ setView('manual');
114
+ return;
115
+ }
51
116
  if (config) {
52
117
  config.setModel(model);
53
118
  const event = new ModelSlashCommandEvent(model);
@@ -55,12 +120,24 @@ export function ModelDialog({ onClose }) {
55
120
  }
56
121
  onClose();
57
122
  }, [config, onClose]);
58
- const header = config?.getPreviewFeatures()
59
- ? 'Gemini 3 is now enabled.'
60
- : 'Gemini 3 is now available.';
61
- const subheader = config?.getPreviewFeatures()
62
- ? `To disable Gemini 3, disable "Preview features" in /settings.\nLearn more at https://goo.gle/enable-preview-features\n\nWhen you select Auto or Pro, Gemini CLI will attempt to use ${PREVIEW_GEMINI_MODEL} first, before falling back to ${DEFAULT_GEMINI_MODEL}.`
63
- : `To use Gemini 3, enable "Preview features" in /settings.\nLearn more at https://goo.gle/enable-preview-features`;
64
- return (_jsxs(Box, { borderStyle: "round", borderColor: theme.border.default, flexDirection: "column", padding: 1, width: "100%", children: [_jsx(Text, { bold: true, children: "Select Model" }), _jsxs(Box, { marginTop: 1, marginBottom: 1, flexDirection: "column", children: [_jsx(ThemedGradient, { children: _jsx(Text, { children: header }) }), _jsx(Text, { children: subheader })] }), _jsx(Box, { marginTop: 1, children: _jsx(DescriptiveRadioButtonSelect, { items: options, onSelect: handleSelect, initialIndex: initialIndex, showNumbers: true }) }), _jsx(Box, { marginTop: 1, flexDirection: "column", children: _jsx(Text, { color: theme.text.secondary, children: 'To use a specific Gemini model on startup, use the --model flag.' }) }), _jsx(Box, { marginTop: 1, flexDirection: "column", children: _jsx(Text, { color: theme.text.secondary, children: "(Press Esc to close)" }) })] }));
123
+ let header;
124
+ let subheader;
125
+ // Do not show any header or subheader since it's already showing preview model
126
+ // options
127
+ if (shouldShowPreviewModels) {
128
+ header = undefined;
129
+ subheader = undefined;
130
+ // When a user has the access but has not enabled the preview features.
131
+ }
132
+ else if (config?.getHasAccessToPreviewModel()) {
133
+ header = 'Gemini 3 is now available.';
134
+ subheader =
135
+ 'Enable "Preview features" in /settings.\nLearn more at https://goo.gle/enable-preview-features';
136
+ }
137
+ else {
138
+ header = 'Gemini 3 is coming soon.';
139
+ subheader = undefined;
140
+ }
141
+ return (_jsxs(Box, { borderStyle: "round", borderColor: theme.border.default, flexDirection: "column", padding: 1, width: "100%", children: [_jsx(Text, { bold: true, children: "Select Model" }), _jsxs(Box, { flexDirection: "column", children: [header && (_jsx(Box, { marginTop: 1, children: _jsx(ThemedGradient, { children: _jsx(Text, { children: header }) }) })), subheader && _jsx(Text, { children: subheader })] }), _jsx(Box, { marginTop: 1, children: _jsx(DescriptiveRadioButtonSelect, { items: options, onSelect: handleSelect, initialIndex: initialIndex, showNumbers: true }) }), _jsx(Box, { marginTop: 1, flexDirection: "column", children: _jsx(Text, { color: theme.text.secondary, children: 'To use a specific Gemini model on startup, use the --model flag.' }) }), _jsx(Box, { marginTop: 1, flexDirection: "column", children: _jsx(Text, { color: theme.text.secondary, children: "(Press Esc to close)" }) })] }));
65
142
  }
66
143
  //# sourceMappingURL=ModelDialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModelDialog.js","sourceRoot":"","sources":["../../../../src/ui/components/ModelDialog.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ModelDialog.js","sourceRoot":"","sources":["../../../../src/ui/components/ModelDialog.tsx"],"names":[],"mappings":"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"}