@google/gemini-cli 0.4.0-preview.1 → 0.5.0-nightly.20250906.968e9389
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.
- package/dist/google-gemini-cli-0.3.1.tgz +0 -0
- package/dist/package.json +2 -2
- package/dist/src/commands/extensions/install.js +3 -3
- package/dist/src/commands/extensions/install.js.map +1 -1
- package/dist/src/commands/extensions/install.test.js +2 -2
- package/dist/src/commands/extensions/install.test.js.map +1 -1
- package/dist/src/config/config.js +3 -1
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/extension.js +2 -1
- package/dist/src/config/extension.js.map +1 -1
- package/dist/src/config/settings.js +2 -13
- package/dist/src/config/settings.js.map +1 -1
- package/dist/src/config/settingsSchema.d.ts +19 -1
- package/dist/src/config/settingsSchema.js +20 -1
- package/dist/src/config/settingsSchema.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/generated/git-commit.js.map +1 -1
- package/dist/src/services/CommandService.js +1 -1
- package/dist/src/services/CommandService.js.map +1 -1
- package/dist/src/services/CommandService.test.js +22 -0
- package/dist/src/services/CommandService.test.js.map +1 -1
- package/dist/src/ui/App.js +17 -49
- package/dist/src/ui/App.js.map +1 -1
- package/dist/src/ui/auth/AuthDialog.d.ts +18 -0
- package/dist/src/ui/{components → auth}/AuthDialog.js +35 -34
- package/dist/src/ui/auth/AuthDialog.js.map +1 -0
- package/dist/src/ui/auth/AuthDialog.test.js +184 -0
- package/dist/src/ui/auth/AuthDialog.test.js.map +1 -0
- package/dist/src/ui/auth/AuthInProgress.js.map +1 -0
- package/dist/src/ui/auth/useAuth.d.ts +15 -0
- package/dist/src/ui/auth/useAuth.js +73 -0
- package/dist/src/ui/auth/useAuth.js.map +1 -0
- package/dist/src/ui/commands/corgiCommand.js +1 -0
- package/dist/src/ui/commands/corgiCommand.js.map +1 -1
- package/dist/src/ui/commands/mcpCommand.js +1 -1
- package/dist/src/ui/commands/mcpCommand.js.map +1 -1
- package/dist/src/ui/commands/types.d.ts +1 -0
- package/dist/src/ui/components/Help.js +1 -3
- package/dist/src/ui/components/Help.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.js +3 -3
- package/dist/src/ui/components/InputPrompt.js.map +1 -1
- package/dist/src/ui/components/messages/ToolGroupMessage.js +2 -2
- package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
- package/dist/src/ui/contexts/KeypressContext.d.ts +3 -0
- package/dist/src/ui/contexts/KeypressContext.js +44 -0
- package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
- package/dist/src/ui/contexts/KeypressContext.test.js +173 -1
- package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.d.ts +2 -2
- package/dist/src/ui/hooks/slashCommandProcessor.js +4 -3
- package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.d.ts +1 -1
- package/dist/src/ui/hooks/useGeminiStream.js +1 -1
- package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
- package/dist/src/ui/hooks/useReactToolScheduler.js +1 -0
- package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
- package/dist/src/ui/hooks/useSlashCompletion.js +1 -0
- package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useToolScheduler.test.js +6 -1
- package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
- package/dist/src/ui/hooks/useWorkspaceMigration.js +2 -1
- package/dist/src/ui/hooks/useWorkspaceMigration.js.map +1 -1
- package/dist/src/ui/types.d.ts +6 -0
- package/dist/src/ui/types.js +9 -0
- package/dist/src/ui/types.js.map +1 -1
- package/dist/src/ui/utils/highlight.d.ts +1 -1
- package/dist/src/ui/utils/highlight.js +15 -6
- package/dist/src/ui/utils/highlight.js.map +1 -1
- package/dist/src/ui/utils/highlight.test.js +56 -29
- package/dist/src/ui/utils/highlight.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/dist/google-gemini-cli-0.4.0-preview.tgz +0 -0
- package/dist/src/ui/components/AuthDialog.d.ts +0 -16
- package/dist/src/ui/components/AuthDialog.js.map +0 -1
- package/dist/src/ui/components/AuthDialog.test.js +0 -307
- package/dist/src/ui/components/AuthDialog.test.js.map +0 -1
- package/dist/src/ui/components/AuthInProgress.js.map +0 -1
- package/dist/src/ui/hooks/useAuthCommand.d.ts +0 -14
- package/dist/src/ui/hooks/useAuthCommand.js +0 -66
- package/dist/src/ui/hooks/useAuthCommand.js.map +0 -1
- /package/dist/src/ui/{components → auth}/AuthDialog.test.d.ts +0 -0
- /package/dist/src/ui/{components → auth}/AuthInProgress.d.ts +0 -0
- /package/dist/src/ui/{components → auth}/AuthInProgress.js +0 -0
|
@@ -7,87 +7,114 @@ import { describe, it, expect } from 'vitest';
|
|
|
7
7
|
import { parseInputForHighlighting } from './highlight.js';
|
|
8
8
|
describe('parseInputForHighlighting', () => {
|
|
9
9
|
it('should handle an empty string', () => {
|
|
10
|
-
expect(parseInputForHighlighting('')).toEqual([
|
|
10
|
+
expect(parseInputForHighlighting('', 0)).toEqual([
|
|
11
11
|
{ text: '', type: 'default' },
|
|
12
12
|
]);
|
|
13
13
|
});
|
|
14
14
|
it('should handle text with no commands or files', () => {
|
|
15
15
|
const text = 'this is a normal sentence';
|
|
16
|
-
expect(parseInputForHighlighting(text)).toEqual([
|
|
16
|
+
expect(parseInputForHighlighting(text, 0)).toEqual([
|
|
17
17
|
{ text, type: 'default' },
|
|
18
18
|
]);
|
|
19
19
|
});
|
|
20
|
-
it('should highlight a single command at the beginning', () => {
|
|
20
|
+
it('should highlight a single command at the beginning when index is 0', () => {
|
|
21
21
|
const text = '/help me';
|
|
22
|
-
expect(parseInputForHighlighting(text)).toEqual([
|
|
22
|
+
expect(parseInputForHighlighting(text, 0)).toEqual([
|
|
23
23
|
{ text: '/help', type: 'command' },
|
|
24
24
|
{ text: ' me', type: 'default' },
|
|
25
25
|
]);
|
|
26
26
|
});
|
|
27
|
+
it('should NOT highlight a command at the beginning when index is not 0', () => {
|
|
28
|
+
const text = '/help me';
|
|
29
|
+
expect(parseInputForHighlighting(text, 1)).toEqual([
|
|
30
|
+
{ text: '/help', type: 'default' },
|
|
31
|
+
{ text: ' me', type: 'default' },
|
|
32
|
+
]);
|
|
33
|
+
});
|
|
27
34
|
it('should highlight a single file path at the beginning', () => {
|
|
28
35
|
const text = '@path/to/file.txt please';
|
|
29
|
-
expect(parseInputForHighlighting(text)).toEqual([
|
|
36
|
+
expect(parseInputForHighlighting(text, 0)).toEqual([
|
|
30
37
|
{ text: '@path/to/file.txt', type: 'file' },
|
|
31
38
|
{ text: ' please', type: 'default' },
|
|
32
39
|
]);
|
|
33
40
|
});
|
|
34
|
-
it('should highlight a command in the middle', () => {
|
|
41
|
+
it('should not highlight a command in the middle', () => {
|
|
35
42
|
const text = 'I need /help with this';
|
|
36
|
-
expect(parseInputForHighlighting(text)).toEqual([
|
|
37
|
-
{ text: 'I need ', type: 'default' },
|
|
38
|
-
{ text: '/help', type: 'command' },
|
|
39
|
-
{ text: ' with this', type: 'default' },
|
|
43
|
+
expect(parseInputForHighlighting(text, 0)).toEqual([
|
|
44
|
+
{ text: 'I need /help with this', type: 'default' },
|
|
40
45
|
]);
|
|
41
46
|
});
|
|
42
47
|
it('should highlight a file path in the middle', () => {
|
|
43
48
|
const text = 'Please check @path/to/file.txt for details';
|
|
44
|
-
expect(parseInputForHighlighting(text)).toEqual([
|
|
49
|
+
expect(parseInputForHighlighting(text, 0)).toEqual([
|
|
45
50
|
{ text: 'Please check ', type: 'default' },
|
|
46
51
|
{ text: '@path/to/file.txt', type: 'file' },
|
|
47
52
|
{ text: ' for details', type: 'default' },
|
|
48
53
|
]);
|
|
49
54
|
});
|
|
50
|
-
it('should highlight
|
|
55
|
+
it('should highlight files but not commands not at the start', () => {
|
|
51
56
|
const text = 'Use /run with @file.js and also /format @another/file.ts';
|
|
52
|
-
expect(parseInputForHighlighting(text)).toEqual([
|
|
53
|
-
{ text: 'Use ', type: 'default' },
|
|
54
|
-
{ text: '/run', type: 'command' },
|
|
55
|
-
{ text: ' with ', type: 'default' },
|
|
57
|
+
expect(parseInputForHighlighting(text, 0)).toEqual([
|
|
58
|
+
{ text: 'Use /run with ', type: 'default' },
|
|
56
59
|
{ text: '@file.js', type: 'file' },
|
|
57
|
-
{ text: ' and also ', type: 'default' },
|
|
58
|
-
{ text: '/format', type: 'command' },
|
|
59
|
-
{ text: ' ', type: 'default' },
|
|
60
|
+
{ text: ' and also /format ', type: 'default' },
|
|
60
61
|
{ text: '@another/file.ts', type: 'file' },
|
|
61
62
|
]);
|
|
62
63
|
});
|
|
63
|
-
it('should handle adjacent highlights', () => {
|
|
64
|
+
it('should handle adjacent highlights at start', () => {
|
|
64
65
|
const text = '/run@file.js';
|
|
65
|
-
expect(parseInputForHighlighting(text)).toEqual([
|
|
66
|
+
expect(parseInputForHighlighting(text, 0)).toEqual([
|
|
66
67
|
{ text: '/run', type: 'command' },
|
|
67
68
|
{ text: '@file.js', type: 'file' },
|
|
68
69
|
]);
|
|
69
70
|
});
|
|
70
|
-
it('should
|
|
71
|
+
it('should not highlight command at the end of the string', () => {
|
|
71
72
|
const text = 'Get help with /help';
|
|
72
|
-
expect(parseInputForHighlighting(text)).toEqual([
|
|
73
|
-
{ text: 'Get help with ', type: 'default' },
|
|
74
|
-
{ text: '/help', type: 'command' },
|
|
73
|
+
expect(parseInputForHighlighting(text, 0)).toEqual([
|
|
74
|
+
{ text: 'Get help with /help', type: 'default' },
|
|
75
75
|
]);
|
|
76
76
|
});
|
|
77
77
|
it('should handle file paths with dots and dashes', () => {
|
|
78
78
|
const text = 'Check @./path-to/file-name.v2.txt';
|
|
79
|
-
expect(parseInputForHighlighting(text)).toEqual([
|
|
79
|
+
expect(parseInputForHighlighting(text, 0)).toEqual([
|
|
80
80
|
{ text: 'Check ', type: 'default' },
|
|
81
81
|
{ text: '@./path-to/file-name.v2.txt', type: 'file' },
|
|
82
82
|
]);
|
|
83
83
|
});
|
|
84
|
-
it('should
|
|
84
|
+
it('should not highlight command with dashes and numbers not at start', () => {
|
|
85
85
|
const text = 'Run /command-123 now';
|
|
86
|
-
expect(parseInputForHighlighting(text)).toEqual([
|
|
87
|
-
{ text: 'Run ', type: 'default' },
|
|
86
|
+
expect(parseInputForHighlighting(text, 0)).toEqual([
|
|
87
|
+
{ text: 'Run /command-123 now', type: 'default' },
|
|
88
|
+
]);
|
|
89
|
+
});
|
|
90
|
+
it('should highlight command with dashes and numbers at start', () => {
|
|
91
|
+
const text = '/command-123 now';
|
|
92
|
+
expect(parseInputForHighlighting(text, 0)).toEqual([
|
|
88
93
|
{ text: '/command-123', type: 'command' },
|
|
89
94
|
{ text: ' now', type: 'default' },
|
|
90
95
|
]);
|
|
91
96
|
});
|
|
97
|
+
it('should still highlight a file path on a non-zero line', () => {
|
|
98
|
+
const text = 'some text @path/to/file.txt';
|
|
99
|
+
expect(parseInputForHighlighting(text, 1)).toEqual([
|
|
100
|
+
{ text: 'some text ', type: 'default' },
|
|
101
|
+
{ text: '@path/to/file.txt', type: 'file' },
|
|
102
|
+
]);
|
|
103
|
+
});
|
|
104
|
+
it('should not highlight command but highlight file on a non-zero line', () => {
|
|
105
|
+
const text = '/cmd @file.txt';
|
|
106
|
+
expect(parseInputForHighlighting(text, 2)).toEqual([
|
|
107
|
+
{ text: '/cmd', type: 'default' },
|
|
108
|
+
{ text: ' ', type: 'default' },
|
|
109
|
+
{ text: '@file.txt', type: 'file' },
|
|
110
|
+
]);
|
|
111
|
+
});
|
|
112
|
+
it('should highlight a file path with escaped spaces', () => {
|
|
113
|
+
const text = 'cat @/my\\ path/file.txt';
|
|
114
|
+
expect(parseInputForHighlighting(text, 0)).toEqual([
|
|
115
|
+
{ text: 'cat ', type: 'default' },
|
|
116
|
+
{ text: '@/my\\ path/file.txt', type: 'file' },
|
|
117
|
+
]);
|
|
118
|
+
});
|
|
92
119
|
});
|
|
93
120
|
//# sourceMappingURL=highlight.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"highlight.test.js","sourceRoot":"","sources":["../../../../src/ui/utils/highlight.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"highlight.test.js","sourceRoot":"","sources":["../../../../src/ui/utils/highlight.test.ts"],"names":[],"mappings":"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"}
|