@google/gemini-cli 0.21.0-nightly.20251203.533a3fb31 → 0.21.0-nightly.20251205.f4f2bcbd9

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 (160) hide show
  1. package/dist/google-gemini-cli-0.21.0-nightly.20251202.2d935b379.tgz +0 -0
  2. package/dist/package.json +2 -2
  3. package/dist/src/commands/extensions/settings.d.ts +7 -0
  4. package/dist/src/commands/extensions/settings.js +96 -0
  5. package/dist/src/commands/extensions/settings.js.map +1 -0
  6. package/dist/src/commands/extensions/utils.d.ts +13 -0
  7. package/dist/src/commands/extensions/utils.js +29 -0
  8. package/dist/src/commands/extensions/utils.js.map +1 -0
  9. package/dist/src/commands/extensions.js +2 -0
  10. package/dist/src/commands/extensions.js.map +1 -1
  11. package/dist/src/commands/hooks/migrate.d.ts +11 -0
  12. package/dist/src/commands/hooks/migrate.js +206 -0
  13. package/dist/src/commands/hooks/migrate.js.map +1 -0
  14. package/dist/src/commands/hooks/migrate.test.d.ts +6 -0
  15. package/dist/src/commands/hooks/migrate.test.js +389 -0
  16. package/dist/src/commands/hooks/migrate.test.js.map +1 -0
  17. package/dist/src/commands/hooks.d.ts +7 -0
  18. package/dist/src/commands/hooks.js +22 -0
  19. package/dist/src/commands/hooks.js.map +1 -0
  20. package/dist/src/commands/mcp/add.js +4 -2
  21. package/dist/src/commands/mcp/add.js.map +1 -1
  22. package/dist/src/commands/mcp/add.test.js +23 -1
  23. package/dist/src/commands/mcp/add.test.js.map +1 -1
  24. package/dist/src/config/config.js +6 -0
  25. package/dist/src/config/config.js.map +1 -1
  26. package/dist/src/config/config.test.js +0 -32
  27. package/dist/src/config/config.test.js.map +1 -1
  28. package/dist/src/config/extension-manager.d.ts +1 -0
  29. package/dist/src/config/extension-manager.js +40 -1
  30. package/dist/src/config/extension-manager.js.map +1 -1
  31. package/dist/src/config/extension.test.js +50 -0
  32. package/dist/src/config/extension.test.js.map +1 -1
  33. package/dist/src/config/extensions/consent.d.ts +1 -1
  34. package/dist/src/config/extensions/consent.js +7 -4
  35. package/dist/src/config/extensions/consent.js.map +1 -1
  36. package/dist/src/config/extensions/consent.test.js +17 -7
  37. package/dist/src/config/extensions/consent.test.js.map +1 -1
  38. package/dist/src/config/extensions/extensionSettings.d.ts +1 -0
  39. package/dist/src/config/extensions/extensionSettings.js +46 -5
  40. package/dist/src/config/extensions/extensionSettings.js.map +1 -1
  41. package/dist/src/config/extensions/extensionSettings.test.js +84 -1
  42. package/dist/src/config/extensions/extensionSettings.test.js.map +1 -1
  43. package/dist/src/config/extensions/github.d.ts +4 -1
  44. package/dist/src/config/extensions/github.js +23 -4
  45. package/dist/src/config/extensions/github.js.map +1 -1
  46. package/dist/src/config/extensions/github.test.js +175 -0
  47. package/dist/src/config/extensions/github.test.js.map +1 -1
  48. package/dist/src/config/settings.js +6 -0
  49. package/dist/src/config/settings.js.map +1 -1
  50. package/dist/src/config/settingsSchema.d.ts +158 -3
  51. package/dist/src/config/settingsSchema.js +187 -1
  52. package/dist/src/config/settingsSchema.js.map +1 -1
  53. package/dist/src/config/settingsSchema.test.js +10 -0
  54. package/dist/src/config/settingsSchema.test.js.map +1 -1
  55. package/dist/src/gemini.js +26 -2
  56. package/dist/src/gemini.js.map +1 -1
  57. package/dist/src/gemini.test.js +11 -0
  58. package/dist/src/gemini.test.js.map +1 -1
  59. package/dist/src/gemini_cleanup.test.js +1 -0
  60. package/dist/src/gemini_cleanup.test.js.map +1 -1
  61. package/dist/src/generated/git-commit.d.ts +2 -2
  62. package/dist/src/generated/git-commit.js +2 -2
  63. package/dist/src/nonInteractiveCli.js +2 -5
  64. package/dist/src/nonInteractiveCli.js.map +1 -1
  65. package/dist/src/nonInteractiveCli.test.js +20 -8
  66. package/dist/src/nonInteractiveCli.test.js.map +1 -1
  67. package/dist/src/services/BuiltinCommandLoader.js +2 -0
  68. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  69. package/dist/src/services/BuiltinCommandLoader.test.js +4 -0
  70. package/dist/src/services/BuiltinCommandLoader.test.js.map +1 -1
  71. package/dist/src/services/McpPromptLoader.js +1 -0
  72. package/dist/src/services/McpPromptLoader.js.map +1 -1
  73. package/dist/src/services/McpPromptLoader.test.js +40 -0
  74. package/dist/src/services/McpPromptLoader.test.js.map +1 -1
  75. package/dist/src/ui/AppContainer.js +35 -9
  76. package/dist/src/ui/AppContainer.js.map +1 -1
  77. package/dist/src/ui/AppContainer.test.js +21 -0
  78. package/dist/src/ui/AppContainer.test.js.map +1 -1
  79. package/dist/src/ui/commands/chatCommand.js +2 -2
  80. package/dist/src/ui/commands/chatCommand.js.map +1 -1
  81. package/dist/src/ui/commands/chatCommand.test.js +16 -16
  82. package/dist/src/ui/commands/chatCommand.test.js.map +1 -1
  83. package/dist/src/ui/commands/clearCommand.js +18 -1
  84. package/dist/src/ui/commands/clearCommand.js.map +1 -1
  85. package/dist/src/ui/commands/clearCommand.test.js +2 -0
  86. package/dist/src/ui/commands/clearCommand.test.js.map +1 -1
  87. package/dist/src/ui/commands/hooksCommand.d.ts +7 -0
  88. package/dist/src/ui/commands/hooksCommand.js +205 -0
  89. package/dist/src/ui/commands/hooksCommand.js.map +1 -0
  90. package/dist/src/ui/commands/hooksCommand.test.d.ts +6 -0
  91. package/dist/src/ui/commands/hooksCommand.test.js +396 -0
  92. package/dist/src/ui/commands/hooksCommand.test.js.map +1 -0
  93. package/dist/src/ui/commands/initCommand.test.js.map +1 -1
  94. package/dist/src/ui/commands/mcpCommand.js +14 -6
  95. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  96. package/dist/src/ui/commands/restoreCommand.d.ts +1 -1
  97. package/dist/src/ui/commands/restoreCommand.js +51 -20
  98. package/dist/src/ui/commands/restoreCommand.js.map +1 -1
  99. package/dist/src/ui/commands/restoreCommand.test.js +6 -6
  100. package/dist/src/ui/commands/restoreCommand.test.js.map +1 -1
  101. package/dist/src/ui/commands/setupGithubCommand.test.js.map +1 -1
  102. package/dist/src/ui/commands/terminalSetupCommand.js +1 -0
  103. package/dist/src/ui/commands/terminalSetupCommand.js.map +1 -1
  104. package/dist/src/ui/commands/types.d.ts +2 -37
  105. package/dist/src/ui/commands/types.js.map +1 -1
  106. package/dist/src/ui/components/AnsiOutput.js +1 -1
  107. package/dist/src/ui/components/AnsiOutput.js.map +1 -1
  108. package/dist/src/ui/components/EditorSettingsDialog.test.js +7 -0
  109. package/dist/src/ui/components/EditorSettingsDialog.test.js.map +1 -1
  110. package/dist/src/ui/components/GeminiRespondingSpinner.test.js +3 -0
  111. package/dist/src/ui/components/GeminiRespondingSpinner.test.js.map +1 -1
  112. package/dist/src/ui/components/HistoryItemDisplay.js +2 -1
  113. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  114. package/dist/src/ui/components/SettingsDialog.js +25 -35
  115. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  116. package/dist/src/ui/components/SettingsDialog.test.js +21 -82
  117. package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
  118. package/dist/src/ui/components/shared/text-buffer.js +41 -36
  119. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  120. package/dist/src/ui/components/shared/text-buffer.test.js +75 -0
  121. package/dist/src/ui/components/shared/text-buffer.test.js.map +1 -1
  122. package/dist/src/ui/components/views/HooksList.d.ts +22 -0
  123. package/dist/src/ui/components/views/HooksList.js +23 -0
  124. package/dist/src/ui/components/views/HooksList.js.map +1 -0
  125. package/dist/src/ui/hooks/useGeminiStream.js +3 -2
  126. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  127. package/dist/src/ui/hooks/usePrivacySettings.js +4 -16
  128. package/dist/src/ui/hooks/usePrivacySettings.js.map +1 -1
  129. package/dist/src/ui/hooks/usePrivacySettings.test.js +3 -9
  130. package/dist/src/ui/hooks/usePrivacySettings.test.js.map +1 -1
  131. package/dist/src/ui/types.d.ts +18 -2
  132. package/dist/src/ui/types.js +1 -0
  133. package/dist/src/ui/types.js.map +1 -1
  134. package/dist/src/ui/utils/commandUtils.js +108 -1
  135. package/dist/src/ui/utils/commandUtils.js.map +1 -1
  136. package/dist/src/ui/utils/commandUtils.test.js +163 -6
  137. package/dist/src/ui/utils/commandUtils.test.js.map +1 -1
  138. package/dist/src/ui/utils/terminalSetup.test.js +5 -0
  139. package/dist/src/ui/utils/terminalSetup.test.js.map +1 -1
  140. package/dist/src/utils/cleanup.d.ts +6 -0
  141. package/dist/src/utils/cleanup.js +19 -1
  142. package/dist/src/utils/cleanup.js.map +1 -1
  143. package/dist/src/utils/deepMerge.test.js +37 -0
  144. package/dist/src/utils/deepMerge.test.js.map +1 -1
  145. package/dist/src/utils/errors.js +4 -4
  146. package/dist/src/utils/errors.js.map +1 -1
  147. package/dist/src/utils/errors.test.js +11 -1
  148. package/dist/src/utils/errors.test.js.map +1 -1
  149. package/dist/src/utils/installationInfo.js +1 -1
  150. package/dist/src/utils/installationInfo.js.map +1 -1
  151. package/dist/src/utils/installationInfo.test.js +1 -1
  152. package/dist/src/utils/installationInfo.test.js.map +1 -1
  153. package/dist/src/utils/sandboxUtils.test.js +3 -0
  154. package/dist/src/utils/sandboxUtils.test.js.map +1 -1
  155. package/dist/src/utils/version.test.js +3 -3
  156. package/dist/src/utils/version.test.js.map +1 -1
  157. package/dist/src/zed-integration/zedIntegration.js +8 -1
  158. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  159. package/dist/tsconfig.tsbuildinfo +1 -1
  160. package/package.json +3 -3
@@ -16,7 +16,10 @@ export const usePrivacySettings = (config) => {
16
16
  });
17
17
  try {
18
18
  const server = getCodeAssistServerOrFail(config);
19
- const tier = await getTier(server);
19
+ const tier = server.userTier;
20
+ if (tier === undefined) {
21
+ throw new Error('Could not determine user tier.');
22
+ }
20
23
  if (tier !== UserTierId.FREE) {
21
24
  // We don't need to fetch opt-out info since non-free tier
22
25
  // data gathering is already worked out some other way.
@@ -74,21 +77,6 @@ function getCodeAssistServerOrFail(config) {
74
77
  }
75
78
  return server;
76
79
  }
77
- async function getTier(server) {
78
- const loadRes = await server.loadCodeAssist({
79
- cloudaicompanionProject: server.projectId,
80
- metadata: {
81
- ideType: 'IDE_UNSPECIFIED',
82
- platform: 'PLATFORM_UNSPECIFIED',
83
- pluginType: 'GEMINI',
84
- duetProject: server.projectId,
85
- },
86
- });
87
- if (!loadRes.currentTier) {
88
- throw new Error('User does not have a current tier');
89
- }
90
- return loadRes.currentTier.id;
91
- }
92
80
  async function getRemoteDataCollectionOptIn(server) {
93
81
  try {
94
82
  const resp = await server.getCodeAssistGlobalUserSetting();
@@ -1 +1 @@
1
- {"version":3,"file":"usePrivacySettings.js","sourceRoot":"","sources":["../../../../src/ui/hooks/usePrivacySettings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usePrivacySettings.js","sourceRoot":"","sources":["../../../../src/ui/hooks/usePrivacySettings.ts"],"names":[],"mappings":"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"}
@@ -50,9 +50,7 @@ describe('usePrivacySettings', () => {
50
50
  // Mock paid tier response
51
51
  vi.mocked(getCodeAssistServer).mockReturnValue({
52
52
  projectId: 'test-project-id',
53
- loadCodeAssist: () => ({
54
- currentTier: { id: UserTierId.STANDARD },
55
- }),
53
+ userTier: UserTierId.STANDARD,
56
54
  });
57
55
  const { result } = renderPrivacySettingsHook();
58
56
  await waitFor(() => {
@@ -64,9 +62,7 @@ describe('usePrivacySettings', () => {
64
62
  });
65
63
  it('should throw error when CodeAssistServer has no projectId', async () => {
66
64
  vi.mocked(getCodeAssistServer).mockReturnValue({
67
- loadCodeAssist: () => ({
68
- currentTier: { id: UserTierId.FREE },
69
- }),
65
+ userTier: UserTierId.FREE,
70
66
  });
71
67
  const { result } = renderPrivacySettingsHook();
72
68
  await waitFor(() => {
@@ -83,9 +79,7 @@ describe('usePrivacySettings', () => {
83
79
  setCodeAssistGlobalUserSetting: vi.fn().mockResolvedValue({
84
80
  freeTierDataCollectionOptin: false,
85
81
  }),
86
- loadCodeAssist: () => ({
87
- currentTier: { id: UserTierId.FREE },
88
- }),
82
+ userTier: UserTierId.FREE,
89
83
  };
90
84
  vi.mocked(getCodeAssistServer).mockReturnValue(mockCodeAssistServer);
91
85
  const { result } = renderPrivacySettingsHook();
@@ -1 +1 @@
1
- {"version":3,"file":"usePrivacySettings.test.js","sourceRoot":"","sources":["../../../../src/ui/hooks/usePrivacySettings.test.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usePrivacySettings.test.js","sourceRoot":"","sources":["../../../../src/ui/hooks/usePrivacySettings.test.tsx"],"names":[],"mappings":"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"}
@@ -186,7 +186,22 @@ export type HistoryItemMcpStatus = HistoryItemBase & {
186
186
  showDescriptions: boolean;
187
187
  showSchema: boolean;
188
188
  };
189
- export type HistoryItemWithoutId = HistoryItemUser | HistoryItemUserShell | HistoryItemGemini | HistoryItemGeminiContent | HistoryItemInfo | HistoryItemError | HistoryItemWarning | HistoryItemAbout | HistoryItemHelp | HistoryItemToolGroup | HistoryItemStats | HistoryItemModelStats | HistoryItemToolStats | HistoryItemModel | HistoryItemQuit | HistoryItemCompression | HistoryItemExtensionsList | HistoryItemToolsList | HistoryItemMcpStatus | HistoryItemChatList;
189
+ export type HistoryItemHooksList = HistoryItemBase & {
190
+ type: 'hooks_list';
191
+ hooks: Array<{
192
+ config: {
193
+ command?: string;
194
+ type: string;
195
+ timeout?: number;
196
+ };
197
+ source: string;
198
+ eventName: string;
199
+ matcher?: string;
200
+ sequential?: boolean;
201
+ enabled: boolean;
202
+ }>;
203
+ };
204
+ export type HistoryItemWithoutId = HistoryItemUser | HistoryItemUserShell | HistoryItemGemini | HistoryItemGeminiContent | HistoryItemInfo | HistoryItemError | HistoryItemWarning | HistoryItemAbout | HistoryItemHelp | HistoryItemToolGroup | HistoryItemStats | HistoryItemModelStats | HistoryItemToolStats | HistoryItemModel | HistoryItemQuit | HistoryItemCompression | HistoryItemExtensionsList | HistoryItemToolsList | HistoryItemMcpStatus | HistoryItemChatList | HistoryItemHooksList;
190
205
  export type HistoryItem = HistoryItemWithoutId & {
191
206
  id: number;
192
207
  };
@@ -206,7 +221,8 @@ export declare enum MessageType {
206
221
  EXTENSIONS_LIST = "extensions_list",
207
222
  TOOLS_LIST = "tools_list",
208
223
  MCP_STATUS = "mcp_status",
209
- CHAT_LIST = "chat_list"
224
+ CHAT_LIST = "chat_list",
225
+ HOOKS_LIST = "hooks_list"
210
226
  }
211
227
  export type Message = {
212
228
  type: MessageType.INFO | MessageType.ERROR | MessageType.USER;
@@ -61,5 +61,6 @@ export var MessageType;
61
61
  MessageType["TOOLS_LIST"] = "tools_list";
62
62
  MessageType["MCP_STATUS"] = "mcp_status";
63
63
  MessageType["CHAT_LIST"] = "chat_list";
64
+ MessageType["HOOKS_LIST"] = "hooks_list";
64
65
  })(MessageType || (MessageType = {}));
65
66
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/ui/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH,OAAO,EAAkB,MAAM,OAAO,CAAC;AAIvC,MAAM,CAAN,IAAY,SASX;AATD,WAAY,SAAS;IACnB,gDAAgD;IAChD,gDAAmC,CAAA;IACnC,qDAAqD;IACrD,kCAAqB,CAAA;IACrB,oCAAoC;IACpC,2DAA8C,CAAA;IAC9C,6BAA6B;IAC7B,4CAA+B,CAAA;AACjC,CAAC,EATW,SAAS,KAAT,SAAS,QASpB;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+BD;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC;AAuL9B,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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/ui/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH,OAAO,EAAkB,MAAM,OAAO,CAAC;AAIvC,MAAM,CAAN,IAAY,SASX;AATD,WAAY,SAAS;IACnB,gDAAgD;IAChD,gDAAmC,CAAA;IACnC,qDAAqD;IACrD,kCAAqB,CAAA;IACrB,oCAAoC;IACpC,2DAA8C,CAAA;IAC9C,6BAA6B;IAC7B,4CAA+B,CAAA;AACjC,CAAC,EATW,SAAS,KAAT,SAAS,QASpB;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+BD;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC;AAoM9B,gFAAgF;AAChF,MAAM,CAAN,IAAY,WAkBX;AAlBD,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;IACvB,wCAAyB,CAAA;AAC3B,CAAC,EAlBW,WAAW,KAAX,WAAW,QAkBtB"}
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import { debugLogger } from '@google/gemini-cli-core';
7
7
  import clipboardy from 'clipboardy';
8
+ import fs from 'node:fs';
8
9
  /**
9
10
  * Checks if a query string potentially represents an '@' command.
10
11
  * It triggers if the query starts with '@' or contains '@' preceded by whitespace
@@ -37,8 +38,114 @@ export const isSlashCommand = (query) => {
37
38
  }
38
39
  return true;
39
40
  };
40
- // Copies a string snippet to the clipboard
41
+ const ESC = '\u001B';
42
+ const BEL = '\u0007';
43
+ const ST = '\u001B\\';
44
+ const MAX_OSC52_SEQUENCE_BYTES = 100_000;
45
+ const OSC52_HEADER = `${ESC}]52;c;`;
46
+ const OSC52_FOOTER = BEL;
47
+ const MAX_OSC52_BODY_B64_BYTES = MAX_OSC52_SEQUENCE_BYTES -
48
+ Buffer.byteLength(OSC52_HEADER) -
49
+ Buffer.byteLength(OSC52_FOOTER);
50
+ const MAX_OSC52_DATA_BYTES = Math.floor(MAX_OSC52_BODY_B64_BYTES / 4) * 3;
51
+ // Conservative chunk size for GNU screen DCS passthrough.
52
+ const SCREEN_DCS_CHUNK_SIZE = 240;
53
+ const pickTty = () => {
54
+ // Prefer the controlling TTY to avoid interleaving escape sequences with piped stdout.
55
+ try {
56
+ const devTty = fs.createWriteStream('/dev/tty');
57
+ return { stream: devTty, closeAfter: true };
58
+ }
59
+ catch {
60
+ // fall through
61
+ }
62
+ if (process.stderr?.isTTY)
63
+ return { stream: process.stderr, closeAfter: false };
64
+ if (process.stdout?.isTTY)
65
+ return { stream: process.stdout, closeAfter: false };
66
+ return null;
67
+ };
68
+ const inTmux = () => Boolean(process.env['TMUX'] || (process.env['TERM'] ?? '').startsWith('tmux'));
69
+ const inScreen = () => Boolean(process.env['STY'] || (process.env['TERM'] ?? '').startsWith('screen'));
70
+ const isSSH = () => Boolean(process.env['SSH_TTY'] ||
71
+ process.env['SSH_CONNECTION'] ||
72
+ process.env['SSH_CLIENT']);
73
+ const isWSL = () => Boolean(process.env['WSL_DISTRO_NAME'] ||
74
+ process.env['WSLENV'] ||
75
+ process.env['WSL_INTEROP']);
76
+ const isDumbTerm = () => (process.env['TERM'] ?? '') === 'dumb';
77
+ const shouldUseOsc52 = (tty) => Boolean(tty) &&
78
+ !isDumbTerm() &&
79
+ (isSSH() || inTmux() || inScreen() || isWSL());
80
+ const safeUtf8Truncate = (buf, maxBytes) => {
81
+ if (buf.length <= maxBytes)
82
+ return buf;
83
+ let end = maxBytes;
84
+ // Back up to the start of a UTF-8 code point if we cut through a continuation byte (10xxxxxx).
85
+ while (end > 0 && (buf[end - 1] & 0b1100_0000) === 0b1000_0000)
86
+ end--;
87
+ return buf.subarray(0, end);
88
+ };
89
+ const buildOsc52 = (text) => {
90
+ const raw = Buffer.from(text, 'utf8');
91
+ const safe = safeUtf8Truncate(raw, MAX_OSC52_DATA_BYTES);
92
+ const b64 = safe.toString('base64');
93
+ return `${OSC52_HEADER}${b64}${OSC52_FOOTER}`;
94
+ };
95
+ const wrapForTmux = (seq) => {
96
+ // Double ESC bytes in payload without a control-character regex.
97
+ const doubledEsc = seq.split(ESC).join(ESC + ESC);
98
+ return `${ESC}Ptmux;${doubledEsc}${ST}`;
99
+ };
100
+ const wrapForScreen = (seq) => {
101
+ let out = '';
102
+ for (let i = 0; i < seq.length; i += SCREEN_DCS_CHUNK_SIZE) {
103
+ out += `${ESC}P${seq.slice(i, i + SCREEN_DCS_CHUNK_SIZE)}${ST}`;
104
+ }
105
+ return out;
106
+ };
107
+ const writeAll = (stream, data) => new Promise((resolve, reject) => {
108
+ const onError = (err) => {
109
+ cleanup();
110
+ reject(err);
111
+ };
112
+ const onDrain = () => {
113
+ cleanup();
114
+ resolve();
115
+ };
116
+ const cleanup = () => {
117
+ stream.off('error', onError);
118
+ stream.off('drain', onDrain);
119
+ // Writable.write() handlers may not emit 'drain' if the first write succeeded.
120
+ };
121
+ stream.once('error', onError);
122
+ if (stream.write(data)) {
123
+ cleanup();
124
+ resolve();
125
+ }
126
+ else {
127
+ stream.once('drain', onDrain);
128
+ }
129
+ });
130
+ // Copies a string snippet to the clipboard with robust OSC-52 support.
41
131
  export const copyToClipboard = async (text) => {
132
+ if (!text)
133
+ return;
134
+ const tty = pickTty();
135
+ if (shouldUseOsc52(tty)) {
136
+ const osc = buildOsc52(text);
137
+ const payload = inTmux()
138
+ ? wrapForTmux(osc)
139
+ : inScreen()
140
+ ? wrapForScreen(osc)
141
+ : osc;
142
+ await writeAll(tty.stream, payload);
143
+ if (tty.closeAfter) {
144
+ tty.stream.end();
145
+ }
146
+ return;
147
+ }
148
+ // Local / non-TTY fallback
42
149
  await clipboardy.write(text);
43
150
  };
44
151
  export const getUrlOpenCommand = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"commandUtils.js","sourceRoot":"","sources":["../../../../src/ui/utils/commandUtils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,UAAU,MAAM,YAAY,CAAC;AAGpC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAa,EAAW,EAAE;AACpD,gDAAgD;AAChD,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAE7C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAa,EAAW,EAAE;IACvD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,6CAA6C;IAC7C,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,8CAA8C;IAC9C,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,2CAA2C;AAC3C,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,IAAY,EAAiB,EAAE;IACnE,MAAM,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAW,EAAE;IAC5C,yDAAyD;IACzD,IAAI,OAAe,CAAC;IACpB,QAAQ,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzB,KAAK,QAAQ;YACX,OAAO,GAAG,MAAM,CAAC;YACjB,MAAM;QACR,KAAK,OAAO;YACV,OAAO,GAAG,OAAO,CAAC;YAClB,MAAM;QACR,KAAK,OAAO;YACV,OAAO,GAAG,UAAU,CAAC;YACrB,MAAM;QACR;YACE,6FAA6F;YAC7F,OAAO,GAAG,UAAU,CAAC;YACrB,WAAW,CAAC,IAAI,CACd,qBAAqB,OAAO,CAAC,QAAQ,mCAAmC,OAAO,GAAG,CACnF,CAAC;YACF,MAAM;IACV,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAAiC;IAEjC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAED,6EAA6E;IAC7E,OAAO,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"commandUtils.js","sourceRoot":"","sources":["../../../../src/ui/utils/commandUtils.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,10 @@ import { vi, describe, it, expect, beforeEach } from 'vitest';
7
7
  import { EventEmitter } from 'node:events';
8
8
  import clipboardy from 'clipboardy';
9
9
  import { isAtCommand, isSlashCommand, copyToClipboard, getUrlOpenCommand, } from './commandUtils.js';
10
+ // Constants used by OSC-52 tests
11
+ const ESC = '\u001B';
12
+ const BEL = '\u0007';
13
+ const ST = '\u001B\\';
10
14
  // Mock clipboardy
11
15
  vi.mock('clipboardy', () => ({
12
16
  default: {
@@ -15,6 +19,13 @@ vi.mock('clipboardy', () => ({
15
19
  }));
16
20
  // Mock child_process
17
21
  vi.mock('child_process');
22
+ // fs (for /dev/tty)
23
+ const mockFs = vi.hoisted(() => ({
24
+ createWriteStream: vi.fn(),
25
+ }));
26
+ vi.mock('node:fs', () => ({
27
+ default: mockFs,
28
+ }));
18
29
  // Mock process.platform for platform-specific tests
19
30
  const mockProcess = vi.hoisted(() => ({
20
31
  platform: 'darwin',
@@ -25,6 +36,30 @@ vi.stubGlobal('process', Object.create(process, {
25
36
  configurable: true, // Allows the property to be changed later if needed
26
37
  },
27
38
  }));
39
+ const makeWritable = (opts) => {
40
+ const { isTTY = false, writeReturn = true } = opts ?? {};
41
+ const stream = Object.assign(new EventEmitter(), {
42
+ write: vi.fn().mockReturnValue(writeReturn),
43
+ end: vi.fn(),
44
+ destroy: vi.fn(),
45
+ isTTY,
46
+ once: EventEmitter.prototype.once,
47
+ on: EventEmitter.prototype.on,
48
+ off: EventEmitter.prototype.off,
49
+ });
50
+ return stream;
51
+ };
52
+ const resetEnv = () => {
53
+ delete process.env['TMUX'];
54
+ delete process.env['STY'];
55
+ delete process.env['SSH_TTY'];
56
+ delete process.env['SSH_CONNECTION'];
57
+ delete process.env['SSH_CLIENT'];
58
+ delete process.env['WSL_DISTRO_NAME'];
59
+ delete process.env['WSLENV'];
60
+ delete process.env['WSL_INTEROP'];
61
+ delete process.env['TERM'];
62
+ };
28
63
  describe('commandUtils', () => {
29
64
  let mockSpawn;
30
65
  let mockChild;
@@ -51,6 +86,20 @@ describe('commandUtils', () => {
51
86
  mockSpawn.mockReturnValue(mockChild);
52
87
  // Setup clipboardy mock
53
88
  mockClipboardyWrite = clipboardy.write;
89
+ // default: no /dev/tty available
90
+ mockFs.createWriteStream.mockImplementation(() => {
91
+ throw new Error('ENOENT');
92
+ });
93
+ // default: stdio are not TTY for tests unless explicitly set
94
+ Object.defineProperty(process, 'stderr', {
95
+ value: makeWritable({ isTTY: false }),
96
+ configurable: true,
97
+ });
98
+ Object.defineProperty(process, 'stdout', {
99
+ value: makeWritable({ isTTY: false }),
100
+ configurable: true,
101
+ });
102
+ resetEnv();
54
103
  });
55
104
  describe('isAtCommand', () => {
56
105
  it('should return true when query starts with @', () => {
@@ -101,17 +150,125 @@ describe('commandUtils', () => {
101
150
  });
102
151
  });
103
152
  describe('copyToClipboard', () => {
104
- it('should successfully copy text to clipboard using clipboardy', async () => {
153
+ it('uses clipboardy when not in SSH/tmux/screen/WSL (even if TTYs exist)', async () => {
105
154
  const testText = 'Hello, world!';
106
155
  mockClipboardyWrite.mockResolvedValue(undefined);
156
+ // even if stderr/stdout are TTY, without the env signals we fallback
157
+ Object.defineProperty(process, 'stderr', {
158
+ value: makeWritable({ isTTY: true }),
159
+ configurable: true,
160
+ });
161
+ Object.defineProperty(process, 'stdout', {
162
+ value: makeWritable({ isTTY: true }),
163
+ configurable: true,
164
+ });
107
165
  await copyToClipboard(testText);
108
166
  expect(mockClipboardyWrite).toHaveBeenCalledWith(testText);
109
167
  });
110
- it('should propagate errors from clipboardy', async () => {
111
- const testText = 'Hello, world!';
112
- const error = new Error('Clipboard error');
113
- mockClipboardyWrite.mockRejectedValue(error);
114
- await expect(copyToClipboard(testText)).rejects.toThrow('Clipboard error');
168
+ it('writes OSC-52 to /dev/tty when in SSH', async () => {
169
+ const testText = 'abc';
170
+ const tty = makeWritable({ isTTY: true });
171
+ mockFs.createWriteStream.mockReturnValue(tty);
172
+ process.env['SSH_CONNECTION'] = '1';
173
+ await copyToClipboard(testText);
174
+ const b64 = Buffer.from(testText, 'utf8').toString('base64');
175
+ const expected = `${ESC}]52;c;${b64}${BEL}`;
176
+ expect(tty.write).toHaveBeenCalledTimes(1);
177
+ expect(tty.write.mock.calls[0][0]).toBe(expected);
178
+ expect(tty.end).toHaveBeenCalledTimes(1); // /dev/tty closed after write
179
+ expect(mockClipboardyWrite).not.toHaveBeenCalled();
180
+ });
181
+ it('wraps OSC-52 for tmux', async () => {
182
+ const testText = 'tmux-copy';
183
+ const tty = makeWritable({ isTTY: true });
184
+ mockFs.createWriteStream.mockReturnValue(tty);
185
+ process.env['TMUX'] = '1';
186
+ await copyToClipboard(testText);
187
+ const written = tty.write.mock.calls[0][0];
188
+ // Starts with tmux DCS wrapper and ends with ST
189
+ expect(written.startsWith(`${ESC}Ptmux;`)).toBe(true);
190
+ expect(written.endsWith(ST)).toBe(true);
191
+ // ESC bytes in payload are doubled
192
+ expect(written).toContain(`${ESC}${ESC}]52;c;`);
193
+ expect(mockClipboardyWrite).not.toHaveBeenCalled();
194
+ });
195
+ it('wraps OSC-52 for GNU screen with chunked DCS', async () => {
196
+ // ensure payload > chunk size (240) so there are multiple chunks
197
+ const testText = 'x'.repeat(1200);
198
+ const tty = makeWritable({ isTTY: true });
199
+ mockFs.createWriteStream.mockReturnValue(tty);
200
+ process.env['STY'] = 'screen-session';
201
+ await copyToClipboard(testText);
202
+ const written = tty.write.mock.calls[0][0];
203
+ const chunkStarts = (written.match(new RegExp(`${ESC}P`, 'g')) || [])
204
+ .length;
205
+ const chunkEnds = written.split(ST).length - 1;
206
+ expect(chunkStarts).toBeGreaterThan(1);
207
+ expect(chunkStarts).toBe(chunkEnds);
208
+ expect(written).toContain(']52;c;'); // contains base OSC-52 marker
209
+ expect(mockClipboardyWrite).not.toHaveBeenCalled();
210
+ });
211
+ it('falls back to stderr when /dev/tty unavailable and stderr is a TTY', async () => {
212
+ const testText = 'stderr-tty';
213
+ const stderrStream = makeWritable({ isTTY: true });
214
+ Object.defineProperty(process, 'stderr', {
215
+ value: stderrStream,
216
+ configurable: true,
217
+ });
218
+ process.env['SSH_TTY'] = '/dev/pts/1';
219
+ await copyToClipboard(testText);
220
+ const b64 = Buffer.from(testText, 'utf8').toString('base64');
221
+ const expected = `${ESC}]52;c;${b64}${BEL}`;
222
+ expect(stderrStream.write).toHaveBeenCalledWith(expected);
223
+ expect(mockClipboardyWrite).not.toHaveBeenCalled();
224
+ });
225
+ it('falls back to clipboardy when no TTY is available', async () => {
226
+ const testText = 'no-tty';
227
+ mockClipboardyWrite.mockResolvedValue(undefined);
228
+ // /dev/tty throws; stderr/stdout are non-TTY by default
229
+ process.env['SSH_CLIENT'] = 'client';
230
+ await copyToClipboard(testText);
231
+ expect(mockClipboardyWrite).toHaveBeenCalledWith(testText);
232
+ });
233
+ it('resolves on drain when backpressure occurs', async () => {
234
+ const tty = makeWritable({ isTTY: true, writeReturn: false });
235
+ mockFs.createWriteStream.mockReturnValue(tty);
236
+ process.env['SSH_CONNECTION'] = '1';
237
+ const p = copyToClipboard('drain-test');
238
+ setTimeout(() => {
239
+ tty.emit('drain');
240
+ }, 0);
241
+ await expect(p).resolves.toBeUndefined();
242
+ });
243
+ it('propagates errors from OSC-52 write path', async () => {
244
+ const tty = makeWritable({ isTTY: true, writeReturn: false });
245
+ mockFs.createWriteStream.mockReturnValue(tty);
246
+ process.env['SSH_CONNECTION'] = '1';
247
+ const p = copyToClipboard('err-test');
248
+ setTimeout(() => {
249
+ tty.emit('error', new Error('tty error'));
250
+ }, 0);
251
+ await expect(p).rejects.toThrow('tty error');
252
+ expect(mockClipboardyWrite).not.toHaveBeenCalled();
253
+ });
254
+ it('does nothing for empty string', async () => {
255
+ await copyToClipboard('');
256
+ expect(mockClipboardyWrite).not.toHaveBeenCalled();
257
+ // ensure no accidental writes to stdio either
258
+ const stderrStream = process.stderr;
259
+ const stdoutStream = process.stdout;
260
+ expect(stderrStream.write).not.toHaveBeenCalled();
261
+ expect(stdoutStream.write).not.toHaveBeenCalled();
262
+ });
263
+ it('uses clipboardy when not in eligible env even if /dev/tty exists', async () => {
264
+ const tty = makeWritable({ isTTY: true });
265
+ mockFs.createWriteStream.mockReturnValue(tty);
266
+ const text = 'local-terminal';
267
+ mockClipboardyWrite.mockResolvedValue(undefined);
268
+ await copyToClipboard(text);
269
+ expect(mockClipboardyWrite).toHaveBeenCalledWith(text);
270
+ expect(tty.write).not.toHaveBeenCalled();
271
+ expect(tty.end).not.toHaveBeenCalled();
115
272
  });
116
273
  });
117
274
  describe('getUrlOpenCommand', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"commandUtils.test.js","sourceRoot":"","sources":["../../../../src/ui/utils/commandUtils.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commandUtils.test.js","sourceRoot":"","sources":["../../../../src/ui/utils/commandUtils.test.ts"],"names":[],"mappings":"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"}
@@ -14,12 +14,17 @@ const mocks = vi.hoisted(() => ({
14
14
  copyFile: vi.fn(),
15
15
  homedir: vi.fn(),
16
16
  platform: vi.fn(),
17
+ writeStream: {
18
+ write: vi.fn(),
19
+ on: vi.fn(),
20
+ },
17
21
  }));
18
22
  vi.mock('node:child_process', () => ({
19
23
  exec: mocks.exec,
20
24
  execFile: vi.fn(),
21
25
  }));
22
26
  vi.mock('node:fs', () => ({
27
+ createWriteStream: () => mocks.writeStream,
23
28
  promises: {
24
29
  mkdir: mocks.mkdir,
25
30
  readFile: mocks.readFile,
@@ -1 +1 @@
1
- {"version":3,"file":"terminalSetup.test.js","sourceRoot":"","sources":["../../../../src/ui/utils/terminalSetup.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminalSetup.test.js","sourceRoot":"","sources":["../../../../src/ui/utils/terminalSetup.test.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,14 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import type { Config } from '@google/gemini-cli-core';
6
7
  export declare function registerCleanup(fn: (() => void) | (() => Promise<void>)): void;
7
8
  export declare function registerSyncCleanup(fn: () => void): void;
8
9
  export declare function runSyncCleanup(): void;
10
+ /**
11
+ * Register the config instance for telemetry shutdown.
12
+ * This must be called early in the application lifecycle.
13
+ */
14
+ export declare function registerTelemetryConfig(config: Config): void;
9
15
  export declare function runExitCleanup(): Promise<void>;
10
16
  export declare function cleanupCheckpoints(): Promise<void>;