@google/gemini-cli 0.1.10-dev.15 → 0.1.10

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 (141) hide show
  1. package/README.md +16 -2
  2. package/dist/google-gemini-cli-0.1.9.tgz +0 -0
  3. package/dist/package.json +7 -7
  4. package/dist/src/config/auth.js +6 -5
  5. package/dist/src/config/auth.js.map +1 -1
  6. package/dist/src/config/config.d.ts +0 -1
  7. package/dist/src/config/config.js +62 -50
  8. package/dist/src/config/config.js.map +1 -1
  9. package/dist/src/config/extension.d.ts +1 -0
  10. package/dist/src/config/extension.js +34 -6
  11. package/dist/src/config/extension.js.map +1 -1
  12. package/dist/src/config/sandboxConfig.d.ts +1 -1
  13. package/dist/src/config/sandboxConfig.js +1 -1
  14. package/dist/src/config/sandboxConfig.js.map +1 -1
  15. package/dist/src/config/settings.d.ts +7 -2
  16. package/dist/src/config/settings.js +101 -3
  17. package/dist/src/config/settings.js.map +1 -1
  18. package/dist/src/gemini.js +30 -21
  19. package/dist/src/gemini.js.map +1 -1
  20. package/dist/src/generated/git-commit.d.ts +1 -1
  21. package/dist/src/generated/git-commit.js +1 -1
  22. package/dist/src/nonInteractiveCli.d.ts +1 -1
  23. package/dist/src/nonInteractiveCli.js +4 -2
  24. package/dist/src/nonInteractiveCli.js.map +1 -1
  25. package/dist/src/services/CommandService.d.ts +13 -0
  26. package/dist/src/services/CommandService.js +30 -0
  27. package/dist/src/services/CommandService.js.map +1 -0
  28. package/dist/src/ui/App.js +71 -12
  29. package/dist/src/ui/App.js.map +1 -1
  30. package/dist/src/ui/commands/clearCommand.d.ts +7 -0
  31. package/dist/src/ui/commands/clearCommand.js +15 -0
  32. package/dist/src/ui/commands/clearCommand.js.map +1 -0
  33. package/dist/src/ui/commands/helpCommand.d.ts +7 -0
  34. package/dist/src/ui/commands/helpCommand.js +18 -0
  35. package/dist/src/ui/commands/helpCommand.js.map +1 -0
  36. package/dist/src/ui/commands/memoryCommand.d.ts +7 -0
  37. package/dist/src/ui/commands/memoryCommand.js +81 -0
  38. package/dist/src/ui/commands/memoryCommand.js.map +1 -0
  39. package/dist/src/ui/commands/types.d.ts +63 -0
  40. package/dist/src/{gemini.test.d.ts → ui/commands/types.js} +1 -0
  41. package/dist/src/ui/commands/types.js.map +1 -0
  42. package/dist/src/ui/components/AuthDialog.js +36 -8
  43. package/dist/src/ui/components/AuthDialog.js.map +1 -1
  44. package/dist/src/ui/components/Help.d.ts +1 -1
  45. package/dist/src/ui/components/Help.js +3 -2
  46. package/dist/src/ui/components/Help.js.map +1 -1
  47. package/dist/src/ui/components/InputPrompt.d.ts +2 -1
  48. package/dist/src/ui/components/InputPrompt.js +106 -157
  49. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  50. package/dist/src/ui/components/LoadingIndicator.js +2 -1
  51. package/dist/src/ui/components/LoadingIndicator.js.map +1 -1
  52. package/dist/src/ui/components/ThemeDialog.js +10 -9
  53. package/dist/src/ui/components/ThemeDialog.js.map +1 -1
  54. package/dist/src/ui/components/messages/CompressionMessage.js +1 -1
  55. package/dist/src/ui/components/shared/MaxSizedBox.js +1 -1
  56. package/dist/src/ui/components/shared/MaxSizedBox.js.map +1 -1
  57. package/dist/src/ui/components/shared/text-buffer.d.ts +2 -1
  58. package/dist/src/ui/components/shared/text-buffer.js +3 -3
  59. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  60. package/dist/src/ui/contexts/SessionContext.d.ts +4 -1
  61. package/dist/src/ui/contexts/SessionContext.js +12 -2
  62. package/dist/src/ui/contexts/SessionContext.js.map +1 -1
  63. package/dist/src/ui/hooks/atCommandProcessor.js +5 -7
  64. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  65. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +6 -10
  66. package/dist/src/ui/hooks/slashCommandProcessor.js +217 -121
  67. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  68. package/dist/src/ui/hooks/useCompletion.d.ts +2 -2
  69. package/dist/src/ui/hooks/useCompletion.js +106 -56
  70. package/dist/src/ui/hooks/useCompletion.js.map +1 -1
  71. package/dist/src/ui/hooks/useGeminiStream.d.ts +3 -3
  72. package/dist/src/ui/hooks/useGeminiStream.js +45 -28
  73. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  74. package/dist/src/ui/types.d.ts +10 -0
  75. package/dist/src/ui/utils/InlineMarkdownRenderer.d.ts +16 -0
  76. package/dist/src/ui/utils/InlineMarkdownRenderer.js +104 -0
  77. package/dist/src/ui/utils/InlineMarkdownRenderer.js.map +1 -0
  78. package/dist/src/ui/utils/MarkdownDisplay.js +1 -80
  79. package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
  80. package/dist/src/ui/utils/TableRenderer.js +50 -32
  81. package/dist/src/ui/utils/TableRenderer.js.map +1 -1
  82. package/dist/src/ui/utils/errorParsing.d.ts +2 -10
  83. package/dist/src/ui/utils/errorParsing.js +34 -23
  84. package/dist/src/ui/utils/errorParsing.js.map +1 -1
  85. package/dist/src/utils/sandbox-macos-permissive-proxied.sb +1 -1
  86. package/dist/src/utils/sandbox-macos-restrictive-proxied.sb +1 -1
  87. package/dist/src/utils/userStartupWarnings.d.ts +6 -0
  88. package/dist/src/utils/userStartupWarnings.js +33 -0
  89. package/dist/src/utils/userStartupWarnings.js.map +1 -0
  90. package/dist/tsconfig.tsbuildinfo +1 -1
  91. package/package.json +8 -8
  92. package/dist/src/gemini.test.js +0 -122
  93. package/dist/src/gemini.test.js.map +0 -1
  94. package/dist/src/ui/App.test.d.ts +0 -6
  95. package/dist/src/ui/App.test.js +0 -299
  96. package/dist/src/ui/App.test.js.map +0 -1
  97. package/dist/src/ui/components/AuthDialog.test.d.ts +0 -6
  98. package/dist/src/ui/components/AuthDialog.test.js +0 -69
  99. package/dist/src/ui/components/AuthDialog.test.js.map +0 -1
  100. package/dist/src/ui/components/HistoryItemDisplay.test.d.ts +0 -6
  101. package/dist/src/ui/components/HistoryItemDisplay.test.js +0 -81
  102. package/dist/src/ui/components/HistoryItemDisplay.test.js.map +0 -1
  103. package/dist/src/ui/components/InputPrompt.test.d.ts +0 -6
  104. package/dist/src/ui/components/InputPrompt.test.js +0 -154
  105. package/dist/src/ui/components/InputPrompt.test.js.map +0 -1
  106. package/dist/src/ui/components/LoadingIndicator.test.d.ts +0 -6
  107. package/dist/src/ui/components/LoadingIndicator.test.js +0 -141
  108. package/dist/src/ui/components/LoadingIndicator.test.js.map +0 -1
  109. package/dist/src/ui/components/ModelStatsDisplay.test.d.ts +0 -6
  110. package/dist/src/ui/components/ModelStatsDisplay.test.js +0 -217
  111. package/dist/src/ui/components/ModelStatsDisplay.test.js.map +0 -1
  112. package/dist/src/ui/components/SessionSummaryDisplay.test.d.ts +0 -6
  113. package/dist/src/ui/components/SessionSummaryDisplay.test.js +0 -60
  114. package/dist/src/ui/components/SessionSummaryDisplay.test.js.map +0 -1
  115. package/dist/src/ui/components/StatsDisplay.test.d.ts +0 -6
  116. package/dist/src/ui/components/StatsDisplay.test.js +0 -275
  117. package/dist/src/ui/components/StatsDisplay.test.js.map +0 -1
  118. package/dist/src/ui/components/ToolStatsDisplay.test.d.ts +0 -6
  119. package/dist/src/ui/components/ToolStatsDisplay.test.js +0 -160
  120. package/dist/src/ui/components/ToolStatsDisplay.test.js.map +0 -1
  121. package/dist/src/ui/components/messages/DiffRenderer.test.d.ts +0 -6
  122. package/dist/src/ui/components/messages/DiffRenderer.test.js +0 -239
  123. package/dist/src/ui/components/messages/DiffRenderer.test.js.map +0 -1
  124. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.d.ts +0 -6
  125. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js +0 -37
  126. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js.map +0 -1
  127. package/dist/src/ui/components/messages/ToolMessage.test.d.ts +0 -6
  128. package/dist/src/ui/components/messages/ToolMessage.test.js +0 -116
  129. package/dist/src/ui/components/messages/ToolMessage.test.js.map +0 -1
  130. package/dist/src/ui/components/shared/MaxSizedBox.test.d.ts +0 -6
  131. package/dist/src/ui/components/shared/MaxSizedBox.test.js +0 -134
  132. package/dist/src/ui/components/shared/MaxSizedBox.test.js.map +0 -1
  133. package/dist/src/ui/contexts/SessionContext.test.d.ts +0 -6
  134. package/dist/src/ui/contexts/SessionContext.test.js +0 -96
  135. package/dist/src/ui/contexts/SessionContext.test.js.map +0 -1
  136. package/dist/src/ui/hooks/useGeminiStream.test.d.ts +0 -6
  137. package/dist/src/ui/hooks/useGeminiStream.test.js +0 -775
  138. package/dist/src/ui/hooks/useGeminiStream.test.js.map +0 -1
  139. package/dist/src/ui/utils/MarkdownDisplay.test.d.ts +0 -6
  140. package/dist/src/ui/utils/MarkdownDisplay.test.js +0 -176
  141. package/dist/src/ui/utils/MarkdownDisplay.test.js.map +0 -1
@@ -160,3 +160,13 @@ export interface ConsoleMessageItem {
160
160
  content: string;
161
161
  count: number;
162
162
  }
163
+ /**
164
+ * Defines the result of the slash command processor for its consumer (useGeminiStream).
165
+ */
166
+ export type SlashCommandProcessorResult = {
167
+ type: 'schedule_tool';
168
+ toolName: string;
169
+ toolArgs: Record<string, unknown>;
170
+ } | {
171
+ type: 'handled';
172
+ };
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import React from 'react';
7
+ interface RenderInlineProps {
8
+ text: string;
9
+ }
10
+ export declare const RenderInline: React.NamedExoticComponent<RenderInlineProps>;
11
+ /**
12
+ * Utility function to get the plain text length of a string with markdown formatting
13
+ * This is useful for calculating column widths in tables
14
+ */
15
+ export declare const getPlainTextLength: (text: string) => number;
16
+ export {};
@@ -0,0 +1,104 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /**
3
+ * @license
4
+ * Copyright 2025 Google LLC
5
+ * SPDX-License-Identifier: Apache-2.0
6
+ */
7
+ import React from 'react';
8
+ import { Text } from 'ink';
9
+ import { Colors } from '../colors.js';
10
+ import stringWidth from 'string-width';
11
+ // Constants for Markdown parsing
12
+ const BOLD_MARKER_LENGTH = 2; // For "**"
13
+ const ITALIC_MARKER_LENGTH = 1; // For "*" or "_"
14
+ const STRIKETHROUGH_MARKER_LENGTH = 2; // For "~~"
15
+ const INLINE_CODE_MARKER_LENGTH = 1; // For "`"
16
+ const UNDERLINE_TAG_START_LENGTH = 3; // For "<u>"
17
+ const UNDERLINE_TAG_END_LENGTH = 4; // For "</u>"
18
+ const RenderInlineInternal = ({ text }) => {
19
+ const nodes = [];
20
+ let lastIndex = 0;
21
+ const inlineRegex = /(\*\*.*?\*\*|\*.*?\*|_.*?_|~~.*?~~|\[.*?\]\(.*?\)|`+.+?`+|<u>.*?<\/u>)/g;
22
+ let match;
23
+ while ((match = inlineRegex.exec(text)) !== null) {
24
+ if (match.index > lastIndex) {
25
+ nodes.push(_jsx(Text, { children: text.slice(lastIndex, match.index) }, `t-${lastIndex}`));
26
+ }
27
+ const fullMatch = match[0];
28
+ let renderedNode = null;
29
+ const key = `m-${match.index}`;
30
+ try {
31
+ if (fullMatch.startsWith('**') &&
32
+ fullMatch.endsWith('**') &&
33
+ fullMatch.length > BOLD_MARKER_LENGTH * 2) {
34
+ renderedNode = (_jsx(Text, { bold: true, children: fullMatch.slice(BOLD_MARKER_LENGTH, -BOLD_MARKER_LENGTH) }, key));
35
+ }
36
+ else if (fullMatch.length > ITALIC_MARKER_LENGTH * 2 &&
37
+ ((fullMatch.startsWith('*') && fullMatch.endsWith('*')) ||
38
+ (fullMatch.startsWith('_') && fullMatch.endsWith('_'))) &&
39
+ !/\w/.test(text.substring(match.index - 1, match.index)) &&
40
+ !/\w/.test(text.substring(inlineRegex.lastIndex, inlineRegex.lastIndex + 1)) &&
41
+ !/\S[./\\]/.test(text.substring(match.index - 2, match.index)) &&
42
+ !/[./\\]\S/.test(text.substring(inlineRegex.lastIndex, inlineRegex.lastIndex + 2))) {
43
+ renderedNode = (_jsx(Text, { italic: true, children: fullMatch.slice(ITALIC_MARKER_LENGTH, -ITALIC_MARKER_LENGTH) }, key));
44
+ }
45
+ else if (fullMatch.startsWith('~~') &&
46
+ fullMatch.endsWith('~~') &&
47
+ fullMatch.length > STRIKETHROUGH_MARKER_LENGTH * 2) {
48
+ renderedNode = (_jsx(Text, { strikethrough: true, children: fullMatch.slice(STRIKETHROUGH_MARKER_LENGTH, -STRIKETHROUGH_MARKER_LENGTH) }, key));
49
+ }
50
+ else if (fullMatch.startsWith('`') &&
51
+ fullMatch.endsWith('`') &&
52
+ fullMatch.length > INLINE_CODE_MARKER_LENGTH) {
53
+ const codeMatch = fullMatch.match(/^(`+)(.+?)\1$/s);
54
+ if (codeMatch && codeMatch[2]) {
55
+ renderedNode = (_jsx(Text, { color: Colors.AccentPurple, children: codeMatch[2] }, key));
56
+ }
57
+ }
58
+ else if (fullMatch.startsWith('[') &&
59
+ fullMatch.includes('](') &&
60
+ fullMatch.endsWith(')')) {
61
+ const linkMatch = fullMatch.match(/\[(.*?)\]\((.*?)\)/);
62
+ if (linkMatch) {
63
+ const linkText = linkMatch[1];
64
+ const url = linkMatch[2];
65
+ renderedNode = (_jsxs(Text, { children: [linkText, _jsxs(Text, { color: Colors.AccentBlue, children: [" (", url, ")"] })] }, key));
66
+ }
67
+ }
68
+ else if (fullMatch.startsWith('<u>') &&
69
+ fullMatch.endsWith('</u>') &&
70
+ fullMatch.length >
71
+ UNDERLINE_TAG_START_LENGTH + UNDERLINE_TAG_END_LENGTH - 1 // -1 because length is compared to combined length of start and end tags
72
+ ) {
73
+ renderedNode = (_jsx(Text, { underline: true, children: fullMatch.slice(UNDERLINE_TAG_START_LENGTH, -UNDERLINE_TAG_END_LENGTH) }, key));
74
+ }
75
+ }
76
+ catch (e) {
77
+ console.error('Error parsing inline markdown part:', fullMatch, e);
78
+ renderedNode = null;
79
+ }
80
+ nodes.push(renderedNode ?? _jsx(Text, { children: fullMatch }, key));
81
+ lastIndex = inlineRegex.lastIndex;
82
+ }
83
+ if (lastIndex < text.length) {
84
+ nodes.push(_jsx(Text, { children: text.slice(lastIndex) }, `t-${lastIndex}`));
85
+ }
86
+ return _jsx(_Fragment, { children: nodes.filter((node) => node !== null) });
87
+ };
88
+ export const RenderInline = React.memo(RenderInlineInternal);
89
+ /**
90
+ * Utility function to get the plain text length of a string with markdown formatting
91
+ * This is useful for calculating column widths in tables
92
+ */
93
+ export const getPlainTextLength = (text) => {
94
+ const cleanText = text
95
+ .replace(/\*\*(.*?)\*\*/g, '$1')
96
+ .replace(/\*(.*?)\*/g, '$1')
97
+ .replace(/_(.*?)_/g, '$1')
98
+ .replace(/~~(.*?)~~/g, '$1')
99
+ .replace(/`(.*?)`/g, '$1')
100
+ .replace(/<u>(.*?)<\/u>/g, '$1')
101
+ .replace(/\[(.*?)\]\(.*?\)/g, '$1');
102
+ return stringWidth(cleanText);
103
+ };
104
+ //# sourceMappingURL=InlineMarkdownRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InlineMarkdownRenderer.js","sourceRoot":"","sources":["../../../../src/ui/utils/InlineMarkdownRenderer.tsx"],"names":[],"mappings":"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"}
@@ -9,13 +9,8 @@ import { Text, Box } from 'ink';
9
9
  import { Colors } from '../colors.js';
10
10
  import { colorizeCode } from './CodeColorizer.js';
11
11
  import { TableRenderer } from './TableRenderer.js';
12
+ import { RenderInline } from './InlineMarkdownRenderer.js';
12
13
  // Constants for Markdown parsing and rendering
13
- const BOLD_MARKER_LENGTH = 2; // For "**"
14
- const ITALIC_MARKER_LENGTH = 1; // For "*" or "_"
15
- const STRIKETHROUGH_MARKER_LENGTH = 2; // For "~~"
16
- const INLINE_CODE_MARKER_LENGTH = 1; // For "`"
17
- const UNDERLINE_TAG_START_LENGTH = 3; // For "<u>"
18
- const UNDERLINE_TAG_END_LENGTH = 4; // For "</u>"
19
14
  const EMPTY_LINE_HEIGHT = 1;
20
15
  const CODE_BLOCK_PADDING = 1;
21
16
  const LIST_ITEM_PREFIX_PADDING = 1;
@@ -169,80 +164,6 @@ const MarkdownDisplayInternal = ({ text, isPending, availableTerminalHeight, ter
169
164
  }
170
165
  return _jsx(_Fragment, { children: contentBlocks });
171
166
  };
172
- const RenderInlineInternal = ({ text }) => {
173
- const nodes = [];
174
- let lastIndex = 0;
175
- const inlineRegex = /(\*\*.*?\*\*|\*.*?\*|_.*?_|~~.*?~~|\[.*?\]\(.*?\)|`+.+?`+|<u>.*?<\/u>)/g;
176
- let match;
177
- while ((match = inlineRegex.exec(text)) !== null) {
178
- if (match.index > lastIndex) {
179
- nodes.push(_jsx(Text, { children: text.slice(lastIndex, match.index) }, `t-${lastIndex}`));
180
- }
181
- const fullMatch = match[0];
182
- let renderedNode = null;
183
- const key = `m-${match.index}`;
184
- try {
185
- if (fullMatch.startsWith('**') &&
186
- fullMatch.endsWith('**') &&
187
- fullMatch.length > BOLD_MARKER_LENGTH * 2) {
188
- renderedNode = (_jsx(Text, { bold: true, children: fullMatch.slice(BOLD_MARKER_LENGTH, -BOLD_MARKER_LENGTH) }, key));
189
- }
190
- else if (fullMatch.length > ITALIC_MARKER_LENGTH * 2 &&
191
- ((fullMatch.startsWith('*') && fullMatch.endsWith('*')) ||
192
- (fullMatch.startsWith('_') && fullMatch.endsWith('_'))) &&
193
- !/\w/.test(text.substring(match.index - 1, match.index)) &&
194
- !/\w/.test(text.substring(inlineRegex.lastIndex, inlineRegex.lastIndex + 1)) &&
195
- !/\S[./\\]/.test(text.substring(match.index - 2, match.index)) &&
196
- !/[./\\]\S/.test(text.substring(inlineRegex.lastIndex, inlineRegex.lastIndex + 2))) {
197
- renderedNode = (_jsx(Text, { italic: true, children: fullMatch.slice(ITALIC_MARKER_LENGTH, -ITALIC_MARKER_LENGTH) }, key));
198
- }
199
- else if (fullMatch.startsWith('~~') &&
200
- fullMatch.endsWith('~~') &&
201
- fullMatch.length > STRIKETHROUGH_MARKER_LENGTH * 2) {
202
- renderedNode = (_jsx(Text, { strikethrough: true, children: fullMatch.slice(STRIKETHROUGH_MARKER_LENGTH, -STRIKETHROUGH_MARKER_LENGTH) }, key));
203
- }
204
- else if (fullMatch.startsWith('`') &&
205
- fullMatch.endsWith('`') &&
206
- fullMatch.length > INLINE_CODE_MARKER_LENGTH) {
207
- const codeMatch = fullMatch.match(/^(`+)(.+?)\1$/s);
208
- if (codeMatch && codeMatch[2]) {
209
- renderedNode = (_jsx(Text, { color: Colors.AccentPurple, children: codeMatch[2] }, key));
210
- }
211
- else {
212
- renderedNode = (_jsx(Text, { color: Colors.AccentPurple, children: fullMatch.slice(INLINE_CODE_MARKER_LENGTH, -INLINE_CODE_MARKER_LENGTH) }, key));
213
- }
214
- }
215
- else if (fullMatch.startsWith('[') &&
216
- fullMatch.includes('](') &&
217
- fullMatch.endsWith(')')) {
218
- const linkMatch = fullMatch.match(/\[(.*?)\]\((.*?)\)/);
219
- if (linkMatch) {
220
- const linkText = linkMatch[1];
221
- const url = linkMatch[2];
222
- renderedNode = (_jsxs(Text, { children: [linkText, _jsxs(Text, { color: Colors.AccentBlue, children: [" (", url, ")"] })] }, key));
223
- }
224
- }
225
- else if (fullMatch.startsWith('<u>') &&
226
- fullMatch.endsWith('</u>') &&
227
- fullMatch.length >
228
- UNDERLINE_TAG_START_LENGTH + UNDERLINE_TAG_END_LENGTH - 1 // -1 because length is compared to combined length of start and end tags
229
- ) {
230
- renderedNode = (_jsx(Text, { underline: true, children: fullMatch.slice(UNDERLINE_TAG_START_LENGTH, -UNDERLINE_TAG_END_LENGTH) }, key));
231
- }
232
- }
233
- catch (e) {
234
- console.error('Error parsing inline markdown part:', fullMatch, e);
235
- renderedNode = null;
236
- }
237
- nodes.push(renderedNode ?? _jsx(Text, { children: fullMatch }, key));
238
- lastIndex = inlineRegex.lastIndex;
239
- }
240
- if (lastIndex < text.length) {
241
- nodes.push(_jsx(Text, { children: text.slice(lastIndex) }, `t-${lastIndex}`));
242
- }
243
- return _jsx(_Fragment, { children: nodes.filter((node) => node !== null) });
244
- };
245
- const RenderInline = React.memo(RenderInlineInternal);
246
167
  const RenderCodeBlockInternal = ({ content, lang, isPending, availableTerminalHeight, terminalWidth, }) => {
247
168
  const MIN_LINES_FOR_MESSAGE = 1; // Minimum lines to show before the "generating more" message
248
169
  const RESERVED_LINES = 2; // Lines reserved for the message itself and potential padding
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownDisplay.js","sourceRoot":"","sources":["../../../../src/ui/utils/MarkdownDisplay.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MarkdownDisplay.js","sourceRoot":"","sources":["../../../../src/ui/utils/MarkdownDisplay.tsx"],"names":[],"mappings":"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"}
@@ -7,60 +7,78 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
7
  import React from 'react';
8
8
  import { Text, Box } from 'ink';
9
9
  import { Colors } from '../colors.js';
10
+ import { RenderInline, getPlainTextLength } from './InlineMarkdownRenderer.js';
10
11
  /**
11
12
  * Custom table renderer for markdown tables
12
13
  * We implement our own instead of using ink-table due to module compatibility issues
13
14
  */
14
15
  export const TableRenderer = ({ headers, rows, terminalWidth, }) => {
15
- // Calculate column widths
16
+ // Calculate column widths using actual display width after markdown processing
16
17
  const columnWidths = headers.map((header, index) => {
17
- const headerWidth = header.length;
18
- const maxRowWidth = Math.max(...rows.map((row) => (row[index] || '').length));
18
+ const headerWidth = getPlainTextLength(header);
19
+ const maxRowWidth = Math.max(...rows.map((row) => getPlainTextLength(row[index] || '')));
19
20
  return Math.max(headerWidth, maxRowWidth) + 2; // Add padding
20
21
  });
21
22
  // Ensure table fits within terminal width
22
23
  const totalWidth = columnWidths.reduce((sum, width) => sum + width + 1, 1);
23
24
  const scaleFactor = totalWidth > terminalWidth ? terminalWidth / totalWidth : 1;
24
25
  const adjustedWidths = columnWidths.map((width) => Math.floor(width * scaleFactor));
26
+ // Helper function to render a cell with proper width
25
27
  const renderCell = (content, width, isHeader = false) => {
26
- // The actual space for content inside the padding
27
28
  const contentWidth = Math.max(0, width - 2);
29
+ const displayWidth = getPlainTextLength(content);
28
30
  let cellContent = content;
29
- if (content.length > contentWidth) {
31
+ if (displayWidth > contentWidth) {
30
32
  if (contentWidth <= 3) {
31
- // Not enough space for '...'
32
- cellContent = content.substring(0, contentWidth);
33
+ // Just truncate by character count
34
+ cellContent = content.substring(0, Math.min(content.length, contentWidth));
33
35
  }
34
36
  else {
35
- cellContent = content.substring(0, contentWidth - 3) + '...';
37
+ // Truncate preserving markdown formatting using binary search
38
+ let left = 0;
39
+ let right = content.length;
40
+ let bestTruncated = content;
41
+ // Binary search to find the optimal truncation point
42
+ while (left <= right) {
43
+ const mid = Math.floor((left + right) / 2);
44
+ const candidate = content.substring(0, mid);
45
+ const candidateWidth = getPlainTextLength(candidate);
46
+ if (candidateWidth <= contentWidth - 3) {
47
+ bestTruncated = candidate;
48
+ left = mid + 1;
49
+ }
50
+ else {
51
+ right = mid - 1;
52
+ }
53
+ }
54
+ cellContent = bestTruncated + '...';
36
55
  }
37
56
  }
38
- // Pad the content to fill the cell
39
- const padded = cellContent.padEnd(contentWidth, ' ');
40
- if (isHeader) {
41
- return (_jsx(Text, { bold: true, color: Colors.AccentCyan, children: padded }));
42
- }
43
- return _jsx(Text, { children: padded });
44
- };
45
- const renderRow = (cells, isHeader = false) => (_jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { children: "\u2502 " }), cells.map((cell, index) => (_jsxs(React.Fragment, { children: [renderCell(cell, adjustedWidths[index] || 0, isHeader), _jsx(Text, { children: " \u2502 " })] }, index)))] }));
46
- const renderSeparator = () => {
47
- const separator = adjustedWidths
48
- .map((width) => '─'.repeat(Math.max(0, (width || 0) - 2)))
49
- .join('─┼─');
50
- return _jsxs(Text, { children: ["\u251C\u2500", separator, "\u2500\u2524"] });
57
+ // Calculate exact padding needed
58
+ const actualDisplayWidth = getPlainTextLength(cellContent);
59
+ const paddingNeeded = Math.max(0, contentWidth - actualDisplayWidth);
60
+ return (_jsxs(Text, { children: [isHeader ? (_jsx(Text, { bold: true, color: Colors.AccentCyan, children: _jsx(RenderInline, { text: cellContent }) })) : (_jsx(RenderInline, { text: cellContent })), ' '.repeat(paddingNeeded)] }));
51
61
  };
52
- const renderTopBorder = () => {
53
- const border = adjustedWidths
54
- .map((width) => '─'.repeat(Math.max(0, (width || 0) - 2)))
55
- .join('─┬─');
56
- return _jsxs(Text, { children: ["\u250C\u2500", border, "\u2500\u2510"] });
62
+ // Helper function to render border
63
+ const renderBorder = (type) => {
64
+ const chars = {
65
+ top: { left: '', middle: '┬', right: '┐', horizontal: '─' },
66
+ middle: { left: '├', middle: '┼', right: '┤', horizontal: '─' },
67
+ bottom: { left: '└', middle: '┴', right: '┘', horizontal: '─' },
68
+ };
69
+ const char = chars[type];
70
+ const borderParts = adjustedWidths.map((w) => char.horizontal.repeat(w));
71
+ const border = char.left + borderParts.join(char.middle) + char.right;
72
+ return _jsx(Text, { children: border });
57
73
  };
58
- const renderBottomBorder = () => {
59
- const border = adjustedWidths
60
- .map((width) => '─'.repeat(Math.max(0, (width || 0) - 2)))
61
- .join('─┴─');
62
- return _jsxs(Text, { children: ["\u2514\u2500", border, "\u2500\u2518"] });
74
+ // Helper function to render a table row
75
+ const renderRow = (cells, isHeader = false) => {
76
+ const renderedCells = cells.map((cell, index) => {
77
+ const width = adjustedWidths[index] || 0;
78
+ return renderCell(cell || '', width, isHeader);
79
+ });
80
+ return (_jsxs(Text, { children: ["\u2502", ' ', renderedCells.map((cell, index) => (_jsxs(React.Fragment, { children: [cell, index < renderedCells.length - 1 ? ' │ ' : ''] }, index))), ' ', "\u2502"] }));
63
81
  };
64
- return (_jsxs(Box, { flexDirection: "column", marginY: 1, children: [renderTopBorder(), renderRow(headers, true), renderSeparator(), rows.map((row, index) => (_jsx(React.Fragment, { children: renderRow(row) }, index))), renderBottomBorder()] }));
82
+ return (_jsxs(Box, { flexDirection: "column", marginY: 1, children: [renderBorder('top'), renderRow(headers, true), renderBorder('middle'), rows.map((row, index) => (_jsx(React.Fragment, { children: renderRow(row) }, index))), renderBorder('bottom')] }));
65
83
  };
66
84
  //# sourceMappingURL=TableRenderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableRenderer.js","sourceRoot":"","sources":["../../../../src/ui/utils/TableRenderer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TableRenderer.js","sourceRoot":"","sources":["../../../../src/ui/utils/TableRenderer.tsx"],"names":[],"mappings":"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"}
@@ -3,13 +3,5 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { AuthType } from '@google/gemini-cli-core';
7
- export interface ApiError {
8
- error: {
9
- code: number;
10
- message: string;
11
- status: string;
12
- details: unknown[];
13
- };
14
- }
15
- export declare function parseAndFormatApiError(error: unknown, authType?: AuthType): string;
6
+ import { AuthType, UserTierId } from '@google/gemini-cli-core';
7
+ export declare function parseAndFormatApiError(error: unknown, authType?: AuthType, userTier?: UserTierId, currentModel?: string, fallbackModel?: string): string;
@@ -3,41 +3,52 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { AuthType } from '@google/gemini-cli-core';
7
- const RATE_LIMIT_ERROR_MESSAGE_GOOGLE = '\nPlease wait and try again later. To increase your limits, upgrade to a plan with higher limits, or use /auth to switch to using a paid API key from AI Studio at https://aistudio.google.com/apikey';
6
+ import { AuthType, UserTierId, DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_MODEL, isProQuotaExceededError, isGenericQuotaExceededError, isApiError, isStructuredError, } from '@google/gemini-cli-core';
7
+ // Free Tier message functions
8
+ const getRateLimitErrorMessageGoogleFree = (fallbackModel = DEFAULT_GEMINI_FLASH_MODEL) => `\nPossible quota limitations in place or slow response times detected. Switching to the ${fallbackModel} model for the rest of this session.`;
9
+ const getRateLimitErrorMessageGoogleProQuotaFree = (currentModel = DEFAULT_GEMINI_MODEL, fallbackModel = DEFAULT_GEMINI_FLASH_MODEL) => `\nYou have reached your daily ${currentModel} quota limit. You will be switched to the ${fallbackModel} model for the rest of this session. To increase your limits, upgrade to a Gemini Code Assist Standard or Enterprise plan with higher limits at https://goo.gle/set-up-gemini-code-assist, or use /auth to switch to using a paid API key from AI Studio at https://aistudio.google.com/apikey`;
10
+ const getRateLimitErrorMessageGoogleGenericQuotaFree = () => `\nYou have reached your daily quota limit. To increase your limits, upgrade to a Gemini Code Assist Standard or Enterprise plan with higher limits at https://goo.gle/set-up-gemini-code-assist, or use /auth to switch to using a paid API key from AI Studio at https://aistudio.google.com/apikey`;
11
+ // Legacy/Standard Tier message functions
12
+ const getRateLimitErrorMessageGooglePaid = (fallbackModel = DEFAULT_GEMINI_FLASH_MODEL) => `\nPossible quota limitations in place or slow response times detected. Switching to the ${fallbackModel} model for the rest of this session. We appreciate you for choosing Gemini Code Assist and the Gemini CLI.`;
13
+ const getRateLimitErrorMessageGoogleProQuotaPaid = (currentModel = DEFAULT_GEMINI_MODEL, fallbackModel = DEFAULT_GEMINI_FLASH_MODEL) => `\nYou have reached your daily ${currentModel} quota limit. You will be switched to the ${fallbackModel} model for the rest of this session. We appreciate you for choosing Gemini Code Assist and the Gemini CLI. To continue accessing the ${currentModel} model today, consider using /auth to switch to using a paid API key from AI Studio at https://aistudio.google.com/apikey`;
14
+ const getRateLimitErrorMessageGoogleGenericQuotaPaid = (currentModel = DEFAULT_GEMINI_MODEL) => `\nYou have reached your daily quota limit. We appreciate you for choosing Gemini Code Assist and the Gemini CLI. To continue accessing the ${currentModel} model today, consider using /auth to switch to using a paid API key from AI Studio at https://aistudio.google.com/apikey`;
8
15
  const RATE_LIMIT_ERROR_MESSAGE_USE_GEMINI = '\nPlease wait and try again later. To increase your limits, request a quota increase through AI Studio, or switch to another /auth method';
9
16
  const RATE_LIMIT_ERROR_MESSAGE_VERTEX = '\nPlease wait and try again later. To increase your limits, request a quota increase through Vertex, or switch to another /auth method';
10
- const RATE_LIMIT_ERROR_MESSAGE_DEFAULT = 'Your request has been rate limited. Please wait and try again later.';
11
- function isApiError(error) {
12
- return (typeof error === 'object' &&
13
- error !== null &&
14
- 'error' in error &&
15
- typeof error.error === 'object' &&
16
- 'message' in error.error);
17
- }
18
- function isStructuredError(error) {
19
- return (typeof error === 'object' &&
20
- error !== null &&
21
- 'message' in error &&
22
- typeof error.message === 'string');
23
- }
24
- function getRateLimitMessage(authType) {
17
+ const getRateLimitErrorMessageDefault = (fallbackModel = DEFAULT_GEMINI_FLASH_MODEL) => `\nPossible quota limitations in place or slow response times detected. Switching to the ${fallbackModel} model for the rest of this session.`;
18
+ function getRateLimitMessage(authType, error, userTier, currentModel, fallbackModel) {
25
19
  switch (authType) {
26
- case AuthType.LOGIN_WITH_GOOGLE:
27
- return RATE_LIMIT_ERROR_MESSAGE_GOOGLE;
20
+ case AuthType.LOGIN_WITH_GOOGLE: {
21
+ // Determine if user is on a paid tier (Legacy or Standard) - default to FREE if not specified
22
+ const isPaidTier = userTier === UserTierId.LEGACY || userTier === UserTierId.STANDARD;
23
+ if (isProQuotaExceededError(error)) {
24
+ return isPaidTier
25
+ ? getRateLimitErrorMessageGoogleProQuotaPaid(currentModel || DEFAULT_GEMINI_MODEL, fallbackModel)
26
+ : getRateLimitErrorMessageGoogleProQuotaFree(currentModel || DEFAULT_GEMINI_MODEL, fallbackModel);
27
+ }
28
+ else if (isGenericQuotaExceededError(error)) {
29
+ return isPaidTier
30
+ ? getRateLimitErrorMessageGoogleGenericQuotaPaid(currentModel || DEFAULT_GEMINI_MODEL)
31
+ : getRateLimitErrorMessageGoogleGenericQuotaFree();
32
+ }
33
+ else {
34
+ return isPaidTier
35
+ ? getRateLimitErrorMessageGooglePaid(fallbackModel)
36
+ : getRateLimitErrorMessageGoogleFree(fallbackModel);
37
+ }
38
+ }
28
39
  case AuthType.USE_GEMINI:
29
40
  return RATE_LIMIT_ERROR_MESSAGE_USE_GEMINI;
30
41
  case AuthType.USE_VERTEX_AI:
31
42
  return RATE_LIMIT_ERROR_MESSAGE_VERTEX;
32
43
  default:
33
- return RATE_LIMIT_ERROR_MESSAGE_DEFAULT;
44
+ return getRateLimitErrorMessageDefault(fallbackModel);
34
45
  }
35
46
  }
36
- export function parseAndFormatApiError(error, authType) {
47
+ export function parseAndFormatApiError(error, authType, userTier, currentModel, fallbackModel) {
37
48
  if (isStructuredError(error)) {
38
49
  let text = `[API Error: ${error.message}]`;
39
50
  if (error.status === 429) {
40
- text += getRateLimitMessage(authType);
51
+ text += getRateLimitMessage(authType, error, userTier, currentModel, fallbackModel);
41
52
  }
42
53
  return text;
43
54
  }
@@ -64,7 +75,7 @@ export function parseAndFormatApiError(error, authType) {
64
75
  }
65
76
  let text = `[API Error: ${finalMessage} (Status: ${parsedError.error.status})]`;
66
77
  if (parsedError.error.code === 429) {
67
- text += getRateLimitMessage(authType);
78
+ text += getRateLimitMessage(authType, parsedError, userTier, currentModel, fallbackModel);
68
79
  }
69
80
  return text;
70
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"errorParsing.js","sourceRoot":"","sources":["../../../../src/ui/utils/errorParsing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errorParsing.js","sourceRoot":"","sources":["../../../../src/ui/utils/errorParsing.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,7 @@
24
24
 
25
25
  ;; deny all outbound network traffic EXCEPT through proxy on localhost:8877
26
26
  ;; set `GEMINI_SANDBOX_PROXY_COMMAND=<command>` to run proxy alongside sandbox
27
- ;; proxy must listen on :::8877 (see scripts/example-proxy.js)
27
+ ;; proxy must listen on :::8877 (see docs/examples/proxy-script.md)
28
28
  (deny network-outbound)
29
29
  (allow network-outbound (remote tcp "localhost:8877"))
30
30
 
@@ -88,5 +88,5 @@
88
88
 
89
89
  ;; allow outbound network traffic through proxy on localhost:8877
90
90
  ;; set `GEMINI_SANDBOX_PROXY_COMMAND=<command>` to run proxy alongside sandbox
91
- ;; proxy must listen on :::8877 (see scripts/example-proxy.js)
91
+ ;; proxy must listen on :::8877 (see docs/examples/proxy-script.md)
92
92
  (allow network-outbound (remote tcp "localhost:8877"))
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export declare function getUserStartupWarnings(workspaceRoot: string): Promise<string[]>;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import fs from 'fs/promises';
7
+ import * as os from 'os';
8
+ // Individual warning checks
9
+ const homeDirectoryCheck = {
10
+ id: 'home-directory',
11
+ check: async (workspaceRoot) => {
12
+ try {
13
+ const [workspaceRealPath, homeRealPath] = await Promise.all([
14
+ fs.realpath(workspaceRoot),
15
+ fs.realpath(os.homedir()),
16
+ ]);
17
+ if (workspaceRealPath === homeRealPath) {
18
+ return 'You are running Gemini CLI in your home directory. It is recommended to run in a project-specific directory.';
19
+ }
20
+ return null;
21
+ }
22
+ catch (_err) {
23
+ return 'Could not verify the current directory due to a file system error.';
24
+ }
25
+ },
26
+ };
27
+ // All warning checks
28
+ const WARNING_CHECKS = [homeDirectoryCheck];
29
+ export async function getUserStartupWarnings(workspaceRoot) {
30
+ const results = await Promise.all(WARNING_CHECKS.map((check) => check.check(workspaceRoot)));
31
+ return results.filter((msg) => msg !== null);
32
+ }
33
+ //# sourceMappingURL=userStartupWarnings.js.map