@google/gemini-cli 0.9.0-nightly.20251002.a6af7bbb → 0.9.0-nightly.20251003.2ab61dd1

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.
@@ -0,0 +1,42 @@
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 { render } from 'ink-testing-library';
8
+ import { describe, it, expect } from 'vitest';
9
+ import { ChatList } from './ChatList.js';
10
+ const mockChats = [
11
+ {
12
+ name: 'chat-1',
13
+ mtime: '2025-10-02T10:00:00.000Z',
14
+ },
15
+ {
16
+ name: 'another-chat',
17
+ mtime: '2025-10-01T12:30:00.000Z',
18
+ },
19
+ ];
20
+ describe('<ChatList />', () => {
21
+ it('renders correctly with a list of chats', () => {
22
+ const { lastFrame } = render(_jsx(ChatList, { chats: mockChats }));
23
+ expect(lastFrame()).toMatchSnapshot();
24
+ });
25
+ it('renders correctly with no chats', () => {
26
+ const { lastFrame } = render(_jsx(ChatList, { chats: [] }));
27
+ expect(lastFrame()).toContain('No saved conversation checkpoints found.');
28
+ expect(lastFrame()).toMatchSnapshot();
29
+ });
30
+ it('handles invalid date formats gracefully', () => {
31
+ const mockChatsWithInvalidDate = [
32
+ {
33
+ name: 'bad-date-chat',
34
+ mtime: 'an-invalid-date-string',
35
+ },
36
+ ];
37
+ const { lastFrame } = render(_jsx(ChatList, { chats: mockChatsWithInvalidDate }));
38
+ expect(lastFrame()).toContain('(Invalid Date)');
39
+ expect(lastFrame()).toMatchSnapshot();
40
+ });
41
+ });
42
+ //# sourceMappingURL=ChatList.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatList.test.js","sourceRoot":"","sources":["../../../../../src/ui/components/views/ChatList.test.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,MAAM,SAAS,GAAiB;IAC9B;QACE,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,0BAA0B;KAClC;IACD;QACE,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,0BAA0B;KAClC;CACF,CAAC;AAEF,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,KAAC,QAAQ,IAAC,KAAK,EAAE,SAAS,GAAI,CAAC,CAAC;QAC7D,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,KAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,GAAI,CAAC,CAAC;QACtD,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,0CAA0C,CAAC,CAAC;QAC1E,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,wBAAwB,GAAiB;YAC7C;gBACE,IAAI,EAAE,eAAe;gBACrB,KAAK,EAAE,wBAAwB;aAChC;SACF,CAAC;QACF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,KAAC,QAAQ,IAAC,KAAK,EAAE,wBAAwB,GAAI,CAAC,CAAC;QAC5E,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAChD,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -125,6 +125,14 @@ export type HistoryItemCompression = HistoryItemBase & {
125
125
  export type HistoryItemExtensionsList = HistoryItemBase & {
126
126
  type: 'extensions_list';
127
127
  };
128
+ export interface ChatDetail {
129
+ name: string;
130
+ mtime: string;
131
+ }
132
+ export type HistoryItemChatList = HistoryItemBase & {
133
+ type: 'chat_list';
134
+ chats: ChatDetail[];
135
+ };
128
136
  export interface ToolDefinition {
129
137
  name: string;
130
138
  displayName: string;
@@ -165,7 +173,7 @@ export type HistoryItemMcpStatus = HistoryItemBase & {
165
173
  showSchema: boolean;
166
174
  showTips: boolean;
167
175
  };
168
- export type HistoryItemWithoutId = HistoryItemUser | HistoryItemUserShell | HistoryItemGemini | HistoryItemGeminiContent | HistoryItemInfo | HistoryItemError | HistoryItemWarning | HistoryItemAbout | HistoryItemHelp | HistoryItemToolGroup | HistoryItemStats | HistoryItemModelStats | HistoryItemToolStats | HistoryItemQuit | HistoryItemCompression | HistoryItemExtensionsList | HistoryItemToolsList | HistoryItemMcpStatus;
176
+ export type HistoryItemWithoutId = HistoryItemUser | HistoryItemUserShell | HistoryItemGemini | HistoryItemGeminiContent | HistoryItemInfo | HistoryItemError | HistoryItemWarning | HistoryItemAbout | HistoryItemHelp | HistoryItemToolGroup | HistoryItemStats | HistoryItemModelStats | HistoryItemToolStats | HistoryItemQuit | HistoryItemCompression | HistoryItemExtensionsList | HistoryItemToolsList | HistoryItemMcpStatus | HistoryItemChatList;
169
177
  export type HistoryItem = HistoryItemWithoutId & {
170
178
  id: number;
171
179
  };
@@ -184,7 +192,8 @@ export declare enum MessageType {
184
192
  COMPRESSION = "compression",
185
193
  EXTENSIONS_LIST = "extensions_list",
186
194
  TOOLS_LIST = "tools_list",
187
- MCP_STATUS = "mcp_status"
195
+ MCP_STATUS = "mcp_status",
196
+ CHAT_LIST = "chat_list"
188
197
  }
189
198
  export type Message = {
190
199
  type: MessageType.INFO | MessageType.ERROR | MessageType.USER;
@@ -54,5 +54,6 @@ export var MessageType;
54
54
  MessageType["EXTENSIONS_LIST"] = "extensions_list";
55
55
  MessageType["TOOLS_LIST"] = "tools_list";
56
56
  MessageType["MCP_STATUS"] = "mcp_status";
57
+ MessageType["CHAT_LIST"] = "chat_list";
57
58
  })(MessageType || (MessageType = {}));
58
59
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/ui/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,OAAO,EAAkB,MAAM,OAAO,CAAC;AAIvC,MAAM,CAAN,IAAY,SAOX;AAPD,WAAY,SAAS;IACnB,gDAAgD;IAChD,gDAAmC,CAAA;IACnC,qDAAqD;IACrD,kCAAqB,CAAA;IACrB,6BAA6B;IAC7B,4CAA+B,CAAA;AACjC,CAAC,EAPW,SAAS,KAAT,SAAS,QAOpB;AAED,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;AA+LD,gFAAgF;AAChF,MAAM,CAAN,IAAY,WAgBX;AAhBD,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,8BAAe,CAAA;IACf,kCAAmB,CAAA;IACnB,4BAAa,CAAA;IACb,8BAAe,CAAA;IACf,4BAAa,CAAA;IACb,8BAAe,CAAA;IACf,0CAA2B,CAAA;IAC3B,wCAAyB,CAAA;IACzB,4BAAa,CAAA;IACb,gCAAiB,CAAA;IACjB,0CAA2B,CAAA;IAC3B,kDAAmC,CAAA;IACnC,wCAAyB,CAAA;IACzB,wCAAyB,CAAA;AAC3B,CAAC,EAhBW,WAAW,KAAX,WAAW,QAgBtB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/ui/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,OAAO,EAAkB,MAAM,OAAO,CAAC;AAIvC,MAAM,CAAN,IAAY,SAOX;AAPD,WAAY,SAAS;IACnB,gDAAgD;IAChD,gDAAmC,CAAA;IACnC,qDAAqD;IACrD,kCAAqB,CAAA;IACrB,6BAA6B;IAC7B,4CAA+B,CAAA;AACjC,CAAC,EAPW,SAAS,KAAT,SAAS,QAOpB;AAED,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;AA0MD,gFAAgF;AAChF,MAAM,CAAN,IAAY,WAiBX;AAjBD,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,8BAAe,CAAA;IACf,kCAAmB,CAAA;IACnB,4BAAa,CAAA;IACb,8BAAe,CAAA;IACf,4BAAa,CAAA;IACb,8BAAe,CAAA;IACf,0CAA2B,CAAA;IAC3B,wCAAyB,CAAA;IACzB,4BAAa,CAAA;IACb,gCAAiB,CAAA;IACjB,0CAA2B,CAAA;IAC3B,kDAAmC,CAAA;IACnC,wCAAyB,CAAA;IACzB,wCAAyB,CAAA;IACzB,sCAAuB,CAAA;AACzB,CAAC,EAjBW,WAAW,KAAX,WAAW,QAiBtB"}
@@ -3,7 +3,7 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { getInstallationInfo } from './installationInfo.js';
6
+ import { getInstallationInfo, PackageManager } from './installationInfo.js';
7
7
  import { updateEventEmitter } from './updateEventEmitter.js';
8
8
  import { MessageType } from '../ui/types.js';
9
9
  import { spawnWrapper } from './spawnWrapper.js';
@@ -15,6 +15,13 @@ export function handleAutoUpdate(info, settings, projectRoot, spawnFn = spawnWra
15
15
  return;
16
16
  }
17
17
  const installationInfo = getInstallationInfo(projectRoot, settings.merged.general?.disableAutoUpdate ?? false);
18
+ if ([
19
+ PackageManager.NPX,
20
+ PackageManager.PNPX,
21
+ PackageManager.BUNX
22
+ ].includes(installationInfo.packageManager)) {
23
+ return;
24
+ }
18
25
  let combinedMessage = info.message;
19
26
  if (installationInfo.updateMessage) {
20
27
  combinedMessage += `\n${installationInfo.updateMessage}`;
@@ -1 +1 @@
1
- {"version":3,"file":"handleAutoUpdate.js","sourceRoot":"","sources":["../../../src/utils/handleAutoUpdate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handleAutoUpdate.js","sourceRoot":"","sources":["../../../src/utils/handleAutoUpdate.ts"],"names":[],"mappings":"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"}