@google/gemini-cli 0.1.5 → 0.1.6-rc.1

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 (49) hide show
  1. package/dist/google-gemini-cli-0.1.6-rc.1.tgz +0 -0
  2. package/dist/package.json +3 -3
  3. package/dist/src/generated/git-commit.d.ts +1 -1
  4. package/dist/src/generated/git-commit.js +1 -1
  5. package/dist/src/ui/App.js +11 -3
  6. package/dist/src/ui/App.js.map +1 -1
  7. package/dist/src/ui/components/AboutBox.d.ts +2 -0
  8. package/dist/src/ui/components/AboutBox.js +1 -1
  9. package/dist/src/ui/components/AboutBox.js.map +1 -1
  10. package/dist/src/ui/components/AuthDialog.js +1 -1
  11. package/dist/src/ui/components/AuthDialog.js.map +1 -1
  12. package/dist/src/ui/components/HistoryItemDisplay.js +1 -1
  13. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  14. package/dist/src/ui/components/HistoryItemDisplay.test.js +2 -0
  15. package/dist/src/ui/components/HistoryItemDisplay.test.js.map +1 -1
  16. package/dist/src/ui/components/InputPrompt.js +49 -37
  17. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  18. package/dist/src/ui/components/shared/text-buffer.d.ts +8 -1
  19. package/dist/src/ui/components/shared/text-buffer.js +26 -27
  20. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  21. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +1 -1
  22. package/dist/src/ui/hooks/slashCommandProcessor.js +34 -4
  23. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  24. package/dist/src/ui/hooks/useBracketedPaste.d.ts +12 -0
  25. package/dist/src/ui/hooks/useBracketedPaste.js +32 -0
  26. package/dist/src/ui/hooks/useBracketedPaste.js.map +1 -0
  27. package/dist/src/ui/hooks/useKeypress.d.ts +29 -0
  28. package/dist/src/ui/hooks/useKeypress.js +86 -0
  29. package/dist/src/ui/hooks/useKeypress.js.map +1 -0
  30. package/dist/src/ui/hooks/usePrivacySettings.d.ts +16 -0
  31. package/dist/src/ui/hooks/usePrivacySettings.js +115 -0
  32. package/dist/src/ui/hooks/usePrivacySettings.js.map +1 -0
  33. package/dist/src/ui/privacy/CloudFreePrivacyNotice.d.ts +12 -0
  34. package/dist/src/ui/privacy/CloudFreePrivacyNotice.js +35 -0
  35. package/dist/src/ui/privacy/CloudFreePrivacyNotice.js.map +1 -0
  36. package/dist/src/ui/privacy/CloudPaidPrivacyNotice.d.ts +10 -0
  37. package/dist/src/ui/privacy/CloudPaidPrivacyNotice.js +17 -0
  38. package/dist/src/ui/privacy/CloudPaidPrivacyNotice.js.map +1 -0
  39. package/dist/src/ui/privacy/GeminiPrivacyNotice.d.ts +10 -0
  40. package/dist/src/ui/privacy/GeminiPrivacyNotice.js +17 -0
  41. package/dist/src/ui/privacy/GeminiPrivacyNotice.js.map +1 -0
  42. package/dist/src/ui/privacy/PrivacyNotice.d.ts +12 -0
  43. package/dist/src/ui/privacy/PrivacyNotice.js +25 -0
  44. package/dist/src/ui/privacy/PrivacyNotice.js.map +1 -0
  45. package/dist/src/ui/types.d.ts +4 -0
  46. package/dist/src/ui/types.js.map +1 -1
  47. package/dist/tsconfig.tsbuildinfo +1 -1
  48. package/package.json +3 -3
  49. package/dist/google-gemini-cli-0.1.5.tgz +0 -0
@@ -0,0 +1,86 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { useEffect, useRef } from 'react';
7
+ import { useStdin } from 'ink';
8
+ import readline from 'readline';
9
+ /**
10
+ * A hook that listens for keypress events from stdin, providing a
11
+ * key object that mirrors the one from Node's `readline` module,
12
+ * adding a 'paste' flag for characters input as part of a bracketed
13
+ * paste (when enabled).
14
+ *
15
+ * Pastes are currently sent as a single key event where the full paste
16
+ * is in the sequence field.
17
+ *
18
+ * @param onKeypress - The callback function to execute on each keypress.
19
+ * @param options - Options to control the hook's behavior.
20
+ * @param options.isActive - Whether the hook should be actively listening for input.
21
+ */
22
+ export function useKeypress(onKeypress, { isActive }) {
23
+ const { stdin, setRawMode } = useStdin();
24
+ const onKeypressRef = useRef(onKeypress);
25
+ useEffect(() => {
26
+ onKeypressRef.current = onKeypress;
27
+ }, [onKeypress]);
28
+ useEffect(() => {
29
+ if (!isActive || !stdin.isTTY) {
30
+ return;
31
+ }
32
+ setRawMode(true);
33
+ const rl = readline.createInterface({ input: stdin });
34
+ let isPaste = false;
35
+ let pasteBuffer = Buffer.alloc(0);
36
+ const handleKeypress = (_, key) => {
37
+ if (key.name === 'paste-start') {
38
+ isPaste = true;
39
+ }
40
+ else if (key.name === 'paste-end') {
41
+ isPaste = false;
42
+ onKeypressRef.current({
43
+ name: '',
44
+ ctrl: false,
45
+ meta: false,
46
+ shift: false,
47
+ paste: true,
48
+ sequence: pasteBuffer.toString(),
49
+ });
50
+ pasteBuffer = Buffer.alloc(0);
51
+ }
52
+ else {
53
+ if (isPaste) {
54
+ pasteBuffer = Buffer.concat([pasteBuffer, Buffer.from(key.sequence)]);
55
+ }
56
+ else {
57
+ // Handle special keys
58
+ if (key.name === 'return' && key.sequence === '\x1B\r') {
59
+ key.meta = true;
60
+ }
61
+ onKeypressRef.current({ ...key, paste: isPaste });
62
+ }
63
+ }
64
+ };
65
+ readline.emitKeypressEvents(stdin, rl);
66
+ stdin.on('keypress', handleKeypress);
67
+ return () => {
68
+ stdin.removeListener('keypress', handleKeypress);
69
+ rl.close();
70
+ setRawMode(false);
71
+ // If we are in the middle of a paste, send what we have.
72
+ if (isPaste) {
73
+ onKeypressRef.current({
74
+ name: '',
75
+ ctrl: false,
76
+ meta: false,
77
+ shift: false,
78
+ paste: true,
79
+ sequence: pasteBuffer.toString(),
80
+ });
81
+ pasteBuffer = Buffer.alloc(0);
82
+ }
83
+ };
84
+ }, [isActive, stdin, setRawMode]);
85
+ }
86
+ //# sourceMappingURL=useKeypress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useKeypress.js","sourceRoot":"","sources":["../../../../src/ui/hooks/useKeypress.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Config } from '@google/gemini-cli-core';
7
+ export interface PrivacyState {
8
+ isLoading: boolean;
9
+ error?: string;
10
+ isFreeTier?: boolean;
11
+ dataCollectionOptIn?: boolean;
12
+ }
13
+ export declare const usePrivacySettings: (config: Config) => {
14
+ privacyState: PrivacyState;
15
+ updateDataCollectionOptIn: (optIn: boolean) => Promise<void>;
16
+ };
@@ -0,0 +1,115 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { GaxiosError } from 'gaxios';
7
+ import { useState, useEffect, useCallback } from 'react';
8
+ import { CodeAssistServer, UserTierId } from '@google/gemini-cli-core';
9
+ export const usePrivacySettings = (config) => {
10
+ const [privacyState, setPrivacyState] = useState({
11
+ isLoading: true,
12
+ });
13
+ useEffect(() => {
14
+ const fetchInitialState = async () => {
15
+ setPrivacyState({
16
+ isLoading: true,
17
+ });
18
+ try {
19
+ const server = getCodeAssistServer(config);
20
+ const tier = await getTier(server);
21
+ if (tier !== UserTierId.FREE) {
22
+ // We don't need to fetch opt-out info since non-free tier
23
+ // data gathering is already worked out some other way.
24
+ setPrivacyState({
25
+ isLoading: false,
26
+ isFreeTier: false,
27
+ });
28
+ return;
29
+ }
30
+ const optIn = await getRemoteDataCollectionOptIn(server);
31
+ setPrivacyState({
32
+ isLoading: false,
33
+ isFreeTier: true,
34
+ dataCollectionOptIn: optIn,
35
+ });
36
+ }
37
+ catch (e) {
38
+ setPrivacyState({
39
+ isLoading: false,
40
+ error: e instanceof Error ? e.message : String(e),
41
+ });
42
+ }
43
+ };
44
+ fetchInitialState();
45
+ }, [config]);
46
+ const updateDataCollectionOptIn = useCallback(async (optIn) => {
47
+ try {
48
+ const server = getCodeAssistServer(config);
49
+ const updatedOptIn = await setRemoteDataCollectionOptIn(server, optIn);
50
+ setPrivacyState({
51
+ isLoading: false,
52
+ isFreeTier: true,
53
+ dataCollectionOptIn: updatedOptIn,
54
+ });
55
+ }
56
+ catch (e) {
57
+ setPrivacyState({
58
+ isLoading: false,
59
+ error: e instanceof Error ? e.message : String(e),
60
+ });
61
+ }
62
+ }, [config]);
63
+ return {
64
+ privacyState,
65
+ updateDataCollectionOptIn,
66
+ };
67
+ };
68
+ function getCodeAssistServer(config) {
69
+ const server = config.getGeminiClient().getContentGenerator();
70
+ // Neither of these cases should ever happen.
71
+ if (!(server instanceof CodeAssistServer)) {
72
+ throw new Error('Oauth not being used');
73
+ }
74
+ else if (!server.projectId) {
75
+ throw new Error('Oauth not being used');
76
+ }
77
+ return server;
78
+ }
79
+ async function getTier(server) {
80
+ const loadRes = await server.loadCodeAssist({
81
+ cloudaicompanionProject: server.projectId,
82
+ metadata: {
83
+ ideType: 'IDE_UNSPECIFIED',
84
+ platform: 'PLATFORM_UNSPECIFIED',
85
+ pluginType: 'GEMINI',
86
+ duetProject: server.projectId,
87
+ },
88
+ });
89
+ if (!loadRes.currentTier) {
90
+ throw new Error('User does not have a current tier');
91
+ }
92
+ return loadRes.currentTier.id;
93
+ }
94
+ async function getRemoteDataCollectionOptIn(server) {
95
+ try {
96
+ const resp = await server.getCodeAssistGlobalUserSetting();
97
+ return resp.freeTierDataCollectionOptin;
98
+ }
99
+ catch (e) {
100
+ if (e instanceof GaxiosError) {
101
+ if (e.response?.status === 404) {
102
+ return true;
103
+ }
104
+ }
105
+ throw e;
106
+ }
107
+ }
108
+ async function setRemoteDataCollectionOptIn(server, optIn) {
109
+ const resp = await server.setCodeAssistGlobalUserSetting({
110
+ cloudaicompanionProject: server.projectId,
111
+ freeTierDataCollectionOptin: optIn,
112
+ });
113
+ return resp.freeTierDataCollectionOptin;
114
+ }
115
+ //# sourceMappingURL=usePrivacySettings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePrivacySettings.js","sourceRoot":"","sources":["../../../../src/ui/hooks/usePrivacySettings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Config } from '@google/gemini-cli-core';
7
+ interface CloudFreePrivacyNoticeProps {
8
+ config: Config;
9
+ onExit: () => void;
10
+ }
11
+ export declare const CloudFreePrivacyNotice: ({ config, onExit, }: CloudFreePrivacyNoticeProps) => import("react/jsx-runtime").JSX.Element;
12
+ export {};
@@ -0,0 +1,35 @@
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, Newline, Text } from 'ink';
8
+ import { RadioButtonSelect } from '../components/shared/RadioButtonSelect.js';
9
+ import { usePrivacySettings } from '../hooks/usePrivacySettings.js';
10
+ import { CloudPaidPrivacyNotice } from './CloudPaidPrivacyNotice.js';
11
+ import { Colors } from '../colors.js';
12
+ export const CloudFreePrivacyNotice = ({ config, onExit, }) => {
13
+ const { privacyState, updateDataCollectionOptIn } = usePrivacySettings(config);
14
+ if (privacyState.isLoading) {
15
+ return _jsx(Text, { color: Colors.Gray, children: "Loading..." });
16
+ }
17
+ if (privacyState.error) {
18
+ return (_jsxs(Text, { color: Colors.AccentRed, children: ["Error loading Opt-in settings: ", privacyState.error] }));
19
+ }
20
+ if (privacyState.isFreeTier === false) {
21
+ return _jsx(CloudPaidPrivacyNotice, { onExit: onExit });
22
+ }
23
+ const items = [
24
+ { label: 'Yes', value: true },
25
+ { label: 'No', value: false },
26
+ ];
27
+ return (_jsxs(Box, { flexDirection: "column", marginY: 1, children: [_jsx(Text, { bold: true, color: Colors.AccentPurple, children: "Gemini Code Assist for Individuals Privacy Notice" }), _jsx(Newline, {}), _jsxs(Text, { children: ["This notice and our Privacy Policy", _jsx(Text, { color: Colors.AccentBlue, children: "[1]" }), " describe how Gemini Code Assist handles your data. Please read them carefully."] }), _jsx(Newline, {}), _jsx(Text, { children: "When you use Gemini Code Assist for individuals with Gemini CLI, Google collects your prompts, related code, generated output, code edits, related feature usage information, and your feedback to provide, improve, and develop Google products and services and machine learning technologies." }), _jsx(Newline, {}), _jsx(Text, { children: "To help with quality and improve our products (such as generative machine-learning models), human reviewers may read, annotate, and process the data collected above. We take steps to protect your privacy as part of this process. This includes disconnecting the data from your Google Account before reviewers see or annotate it, and storing those disconnected copies for up to 18 months. Please don't submit confidential information or any data you wouldn't want a reviewer to see or Google to use to improve our products, services and machine-learning technologies." }), _jsx(Newline, {}), _jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { children: "Allow Google to use this data to develop and improve our products?" }), _jsx(RadioButtonSelect, { items: items, initialIndex: privacyState.dataCollectionOptIn ? 0 : 1, onSelect: (value) => {
28
+ updateDataCollectionOptIn(value);
29
+ // Only exit if there was no error.
30
+ if (!privacyState.error) {
31
+ onExit();
32
+ }
33
+ } })] }), _jsx(Newline, {}), _jsxs(Text, { children: [_jsx(Text, { color: Colors.AccentBlue, children: "[1]" }), ' ', "https://policies.google.com/privacy"] }), _jsx(Newline, {}), _jsx(Text, { color: Colors.Gray, children: "Press Enter to choose an option and exit." })] }));
34
+ };
35
+ //# sourceMappingURL=CloudFreePrivacyNotice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CloudFreePrivacyNotice.js","sourceRoot":"","sources":["../../../../src/ui/privacy/CloudFreePrivacyNotice.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAOtC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,EACrC,MAAM,EACN,MAAM,GACsB,EAAE,EAAE;IAChC,MAAM,EAAE,YAAY,EAAE,yBAAyB,EAAE,GAC/C,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAE7B,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC;QAC3B,OAAO,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,2BAAmB,CAAC;IACrD,CAAC;IAED,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;QACvB,OAAO,CACL,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,gDACK,YAAY,CAAC,KAAK,IAC7C,CACR,CAAC;IACJ,CAAC;IAED,IAAI,YAAY,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;QACtC,OAAO,KAAC,sBAAsB,IAAC,MAAM,EAAE,MAAM,GAAI,CAAC;IACpD,CAAC;IAED,MAAM,KAAK,GAAG;QACZ,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;QAC7B,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;KAC9B,CAAC;IAEF,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,OAAO,EAAE,CAAC,aACpC,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAE,MAAM,CAAC,YAAY,kEAE9B,EACP,KAAC,OAAO,KAAG,EACX,MAAC,IAAI,qDAEH,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,UAAU,oBAAY,uFAErC,EACP,KAAC,OAAO,KAAG,EACX,KAAC,IAAI,mTAME,EACP,KAAC,OAAO,KAAG,EACX,KAAC,IAAI,wkBAUE,EACP,KAAC,OAAO,KAAG,EACX,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,IAAI,qFAEE,EACP,KAAC,iBAAiB,IAChB,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACtD,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;4BAClB,yBAAyB,CAAC,KAAK,CAAC,CAAC;4BACjC,mCAAmC;4BACnC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;gCACxB,MAAM,EAAE,CAAC;4BACX,CAAC;wBACH,CAAC,GACD,IACE,EACN,KAAC,OAAO,KAAG,EACX,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,UAAU,oBAAY,EAAC,GAAG,2CAEzC,EACP,KAAC,OAAO,KAAG,EACX,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,0DAAkD,IACtE,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ interface CloudPaidPrivacyNoticeProps {
7
+ onExit: () => void;
8
+ }
9
+ export declare const CloudPaidPrivacyNotice: ({ onExit, }: CloudPaidPrivacyNoticeProps) => import("react/jsx-runtime").JSX.Element;
10
+ export {};
@@ -0,0 +1,17 @@
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, Newline, Text, useInput } from 'ink';
8
+ import { Colors } from '../colors.js';
9
+ export const CloudPaidPrivacyNotice = ({ onExit, }) => {
10
+ useInput((input, key) => {
11
+ if (key.escape) {
12
+ onExit();
13
+ }
14
+ });
15
+ return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Text, { bold: true, color: Colors.AccentPurple, children: "Vertex AI Notice" }), _jsx(Newline, {}), _jsxs(Text, { children: ["Service Specific Terms", _jsx(Text, { color: Colors.AccentBlue, children: "[1]" }), " are incorporated into the agreement under which Google has agreed to provide Google Cloud Platform", _jsx(Text, { color: Colors.AccentGreen, children: "[2]" }), " to Customer (the \u201CAgreement\u201D). If the Agreement authorizes the resale or supply of Google Cloud Platform under a Google Cloud partner or reseller program, then except for in the section entitled \u201CPartner-Specific Terms\u201D, all references to Customer in the Service Specific Terms mean Partner or Reseller (as applicable), and all references to Customer Data in the Service Specific Terms mean Partner Data. Capitalized terms used but not defined in the Service Specific Terms have the meaning given to them in the Agreement."] }), _jsx(Newline, {}), _jsxs(Text, { children: [_jsx(Text, { color: Colors.AccentBlue, children: "[1]" }), ' ', "https://cloud.google.com/terms/service-terms"] }), _jsxs(Text, { children: [_jsx(Text, { color: Colors.AccentGreen, children: "[2]" }), ' ', "https://cloud.google.com/terms/services"] }), _jsx(Newline, {}), _jsx(Text, { color: Colors.Gray, children: "Press Esc to exit." })] }));
16
+ };
17
+ //# sourceMappingURL=CloudPaidPrivacyNotice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CloudPaidPrivacyNotice.js","sourceRoot":"","sources":["../../../../src/ui/privacy/CloudPaidPrivacyNotice.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAMtC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,EACrC,MAAM,GACsB,EAAE,EAAE;IAChC,QAAQ,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,MAAM,EAAE,CAAC;QACX,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,aACzC,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAE,MAAM,CAAC,YAAY,iCAE9B,EACP,KAAC,OAAO,KAAG,EACX,MAAC,IAAI,yCACmB,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,UAAU,oBAAY,yGAE3C,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,WAAW,oBAAY,uiBAS3D,EACP,KAAC,OAAO,KAAG,EACX,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,UAAU,oBAAY,EAAC,GAAG,oDAEzC,EACP,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,WAAW,oBAAY,EAAC,GAAG,+CAE1C,EACP,KAAC,OAAO,KAAG,EACX,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,mCAA2B,IAC/C,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ interface GeminiPrivacyNoticeProps {
7
+ onExit: () => void;
8
+ }
9
+ export declare const GeminiPrivacyNotice: ({ onExit }: GeminiPrivacyNoticeProps) => import("react/jsx-runtime").JSX.Element;
10
+ export {};
@@ -0,0 +1,17 @@
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, Newline, Text, useInput } from 'ink';
8
+ import { Colors } from '../colors.js';
9
+ export const GeminiPrivacyNotice = ({ onExit }) => {
10
+ useInput((input, key) => {
11
+ if (key.escape) {
12
+ onExit();
13
+ }
14
+ });
15
+ return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Text, { bold: true, color: Colors.AccentPurple, children: "Gemini API Key Notice" }), _jsx(Newline, {}), _jsxs(Text, { children: ["By using the Gemini API", _jsx(Text, { color: Colors.AccentBlue, children: "[1]" }), ", Google AI Studio", _jsx(Text, { color: Colors.AccentRed, children: "[2]" }), ", and the other Google developer services that reference these terms (collectively, the \"APIs\" or \"Services\"), you are agreeing to Google APIs Terms of Service (the \"API Terms\")", _jsx(Text, { color: Colors.AccentGreen, children: "[3]" }), ", and the Gemini API Additional Terms of Service (the \"Additional Terms\")", _jsx(Text, { color: Colors.AccentPurple, children: "[4]" }), "."] }), _jsx(Newline, {}), _jsxs(Text, { children: [_jsx(Text, { color: Colors.AccentBlue, children: "[1]" }), ' ', "https://ai.google.dev/docs/gemini_api_overview"] }), _jsxs(Text, { children: [_jsx(Text, { color: Colors.AccentRed, children: "[2]" }), " https://aistudio.google.com/"] }), _jsxs(Text, { children: [_jsx(Text, { color: Colors.AccentGreen, children: "[3]" }), ' ', "https://developers.google.com/terms"] }), _jsxs(Text, { children: [_jsx(Text, { color: Colors.AccentPurple, children: "[4]" }), ' ', "https://ai.google.dev/gemini-api/terms"] }), _jsx(Newline, {}), _jsx(Text, { color: Colors.Gray, children: "Press Esc to exit." })] }));
16
+ };
17
+ //# sourceMappingURL=GeminiPrivacyNotice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeminiPrivacyNotice.js","sourceRoot":"","sources":["../../../../src/ui/privacy/GeminiPrivacyNotice.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAMtC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAAE,MAAM,EAA4B,EAAE,EAAE;IAC1E,QAAQ,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,MAAM,EAAE,CAAC;QACX,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,aACzC,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAE,MAAM,CAAC,YAAY,sCAE9B,EACP,KAAC,OAAO,KAAG,EACX,MAAC,IAAI,0CACoB,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,UAAU,oBAAY,wBAEjE,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,oBAAY,6LAIzC,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,WAAW,oBAAY,iFAE3C,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,YAAY,oBAAY,SACvC,EACP,KAAC,OAAO,KAAG,EACX,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,UAAU,oBAAY,EAAC,GAAG,sDAEzC,EACP,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,oBAAY,qCACpC,EACP,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,WAAW,oBAAY,EAAC,GAAG,2CAE1C,EACP,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,YAAY,oBAAY,EAAC,GAAG,8CAE3C,EACP,KAAC,OAAO,KAAG,EACX,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,mCAA2B,IAC/C,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { type Config } from '@google/gemini-cli-core';
7
+ interface PrivacyNoticeProps {
8
+ onExit: () => void;
9
+ config: Config;
10
+ }
11
+ export declare const PrivacyNotice: ({ onExit, config }: PrivacyNoticeProps) => import("react/jsx-runtime").JSX.Element;
12
+ export {};
@@ -0,0 +1,25 @@
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 { Box } from 'ink';
8
+ import { AuthType } from '@google/gemini-cli-core';
9
+ import { GeminiPrivacyNotice } from './GeminiPrivacyNotice.js';
10
+ import { CloudPaidPrivacyNotice } from './CloudPaidPrivacyNotice.js';
11
+ import { CloudFreePrivacyNotice } from './CloudFreePrivacyNotice.js';
12
+ const PrivacyNoticeText = ({ config, onExit, }) => {
13
+ const authType = config.getContentGeneratorConfig()?.authType;
14
+ switch (authType) {
15
+ case AuthType.USE_GEMINI:
16
+ return _jsx(GeminiPrivacyNotice, { onExit: onExit });
17
+ case AuthType.USE_VERTEX_AI:
18
+ return _jsx(CloudPaidPrivacyNotice, { onExit: onExit });
19
+ case AuthType.LOGIN_WITH_GOOGLE_PERSONAL:
20
+ default:
21
+ return _jsx(CloudFreePrivacyNotice, { config: config, onExit: onExit });
22
+ }
23
+ };
24
+ export const PrivacyNotice = ({ onExit, config }) => (_jsx(Box, { borderStyle: "round", padding: 1, flexDirection: "column", children: _jsx(PrivacyNoticeText, { config: config, onExit: onExit }) }));
25
+ //# sourceMappingURL=PrivacyNotice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PrivacyNotice.js","sourceRoot":"","sources":["../../../../src/ui/privacy/PrivacyNotice.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAe,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAOrE,MAAM,iBAAiB,GAAG,CAAC,EACzB,MAAM,EACN,MAAM,GAIP,EAAE,EAAE;IACH,MAAM,QAAQ,GAAG,MAAM,CAAC,yBAAyB,EAAE,EAAE,QAAQ,CAAC;IAE9D,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ,CAAC,UAAU;YACtB,OAAO,KAAC,mBAAmB,IAAC,MAAM,EAAE,MAAM,GAAI,CAAC;QACjD,KAAK,QAAQ,CAAC,aAAa;YACzB,OAAO,KAAC,sBAAsB,IAAC,MAAM,EAAE,MAAM,GAAI,CAAC;QACpD,KAAK,QAAQ,CAAC,0BAA0B,CAAC;QACzC;YACE,OAAO,KAAC,sBAAsB,IAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAI,CAAC;IACtE,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAsB,EAAE,EAAE,CAAC,CACvE,KAAC,GAAG,IAAC,WAAW,EAAC,OAAO,EAAC,OAAO,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ,YACzD,KAAC,iBAAiB,IAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAI,GACjD,CACP,CAAC"}
@@ -74,6 +74,8 @@ export type HistoryItemAbout = HistoryItemBase & {
74
74
  osVersion: string;
75
75
  sandboxEnv: string;
76
76
  modelVersion: string;
77
+ selectedAuthType: string;
78
+ gcpProject: string;
77
79
  };
78
80
  export type HistoryItemStats = HistoryItemBase & {
79
81
  type: 'stats';
@@ -123,6 +125,8 @@ export type Message = {
123
125
  osVersion: string;
124
126
  sandboxEnv: string;
125
127
  modelVersion: string;
128
+ selectedAuthType: string;
129
+ gcpProject: string;
126
130
  content?: string;
127
131
  } | {
128
132
  type: MessageType.STATS;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/ui/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,gDAAgD;AAChD,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,+BAAa,CAAA;IACb,2CAAyB,CAAA;IACzB,qEAAmD,CAAA;AACrD,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB;AAED,oDAAoD;AACpD,MAAM,CAAN,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,sCAAmB,CAAA;IACnB,wDAAqC,CAAA;IACrC,4DAA4D;AAC9D,CAAC,EAJW,eAAe,KAAf,eAAe,QAI1B;AAED,MAAM,CAAN,IAAY,cAOX;AAPD,WAAY,cAAc;IACxB,qCAAmB,CAAA;IACnB,uCAAqB,CAAA;IACrB,2CAAyB,CAAA;IACzB,yCAAuB,CAAA;IACvB,qCAAmB,CAAA;IACnB,iCAAe,CAAA;AACjB,CAAC,EAPW,cAAc,KAAd,cAAc,QAOzB;AAgHD,gFAAgF;AAChF,MAAM,CAAN,IAAY,WASX;AATD,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,8BAAe,CAAA;IACf,4BAAa,CAAA;IACb,8BAAe,CAAA;IACf,8BAAe,CAAA;IACf,4BAAa,CAAA;IACb,gCAAiB,CAAA;IACjB,0CAA2B,CAAA;AAC7B,CAAC,EATW,WAAW,KAAX,WAAW,QAStB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/ui/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,gDAAgD;AAChD,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,+BAAa,CAAA;IACb,2CAAyB,CAAA;IACzB,qEAAmD,CAAA;AACrD,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB;AAED,oDAAoD;AACpD,MAAM,CAAN,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,sCAAmB,CAAA;IACnB,wDAAqC,CAAA;IACrC,4DAA4D;AAC9D,CAAC,EAJW,eAAe,KAAf,eAAe,QAI1B;AAED,MAAM,CAAN,IAAY,cAOX;AAPD,WAAY,cAAc;IACxB,qCAAmB,CAAA;IACnB,uCAAqB,CAAA;IACrB,2CAAyB,CAAA;IACzB,yCAAuB,CAAA;IACvB,qCAAmB,CAAA;IACnB,iCAAe,CAAA;AACjB,CAAC,EAPW,cAAc,KAAd,cAAc,QAOzB;AAkHD,gFAAgF;AAChF,MAAM,CAAN,IAAY,WASX;AATD,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,8BAAe,CAAA;IACf,4BAAa,CAAA;IACb,8BAAe,CAAA;IACf,8BAAe,CAAA;IACf,4BAAa,CAAA;IACb,gCAAiB,CAAA;IACjB,0CAA2B,CAAA;AAC7B,CAAC,EATW,WAAW,KAAX,WAAW,QAStB"}