@machina.ai/cell-cli-core 1.0.13-rc8 → 1.0.17-rc1

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 (312) hide show
  1. package/dist/package.json +4 -3
  2. package/dist/src/code_assist/converter.d.ts +2 -1
  3. package/dist/src/code_assist/converter.js +2 -1
  4. package/dist/src/code_assist/converter.js.map +1 -1
  5. package/dist/src/code_assist/converter.test.js +13 -10
  6. package/dist/src/code_assist/converter.test.js.map +1 -1
  7. package/dist/src/code_assist/oauth2.js +8 -0
  8. package/dist/src/code_assist/oauth2.js.map +1 -1
  9. package/dist/src/code_assist/oauth2.test.js +97 -7
  10. package/dist/src/code_assist/oauth2.test.js.map +1 -1
  11. package/dist/src/code_assist/server.d.ts +2 -2
  12. package/dist/src/code_assist/server.js +4 -4
  13. package/dist/src/code_assist/server.js.map +1 -1
  14. package/dist/src/code_assist/server.test.js +9 -9
  15. package/dist/src/code_assist/server.test.js.map +1 -1
  16. package/dist/src/code_assist/setup.js +1 -1
  17. package/dist/src/code_assist/setup.js.map +1 -1
  18. package/dist/src/code_assist/setup.test.js +2 -2
  19. package/dist/src/code_assist/setup.test.js.map +1 -1
  20. package/dist/src/config/config.d.ts +37 -9
  21. package/dist/src/config/config.js +84 -29
  22. package/dist/src/config/config.js.map +1 -1
  23. package/dist/src/config/config.test.js +95 -24
  24. package/dist/src/config/config.test.js.map +1 -1
  25. package/dist/src/config/flashFallback.test.js +23 -47
  26. package/dist/src/config/flashFallback.test.js.map +1 -1
  27. package/dist/src/config/models.d.ts +1 -0
  28. package/dist/src/config/models.js +1 -0
  29. package/dist/src/config/models.js.map +1 -1
  30. package/dist/src/core/client.d.ts +4 -1
  31. package/dist/src/core/client.js +82 -22
  32. package/dist/src/core/client.js.map +1 -1
  33. package/dist/src/core/client.test.js +188 -38
  34. package/dist/src/core/client.test.js.map +1 -1
  35. package/dist/src/core/contentGenerator.d.ts +2 -2
  36. package/dist/src/core/contentGenerator.js.map +1 -1
  37. package/dist/src/core/coreToolScheduler.d.ts +1 -3
  38. package/dist/src/core/coreToolScheduler.js +25 -16
  39. package/dist/src/core/coreToolScheduler.js.map +1 -1
  40. package/dist/src/core/coreToolScheduler.test.js +76 -1
  41. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  42. package/dist/src/core/geminiChat.d.ts +2 -1
  43. package/dist/src/core/geminiChat.js +9 -11
  44. package/dist/src/core/geminiChat.js.map +1 -1
  45. package/dist/src/core/geminiChat.test.js +2 -2
  46. package/dist/src/core/geminiChat.test.js.map +1 -1
  47. package/dist/src/core/geminiRequest.js +2 -37
  48. package/dist/src/core/geminiRequest.js.map +1 -1
  49. package/dist/src/core/logger.d.ts +1 -0
  50. package/dist/src/core/logger.js +24 -4
  51. package/dist/src/core/logger.js.map +1 -1
  52. package/dist/src/core/logger.test.js +60 -9
  53. package/dist/src/core/logger.test.js.map +1 -1
  54. package/dist/src/core/nonInteractiveToolExecutor.js +11 -3
  55. package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
  56. package/dist/src/core/prompts.js +41 -17
  57. package/dist/src/core/prompts.js.map +1 -1
  58. package/dist/src/core/prompts.test.js +118 -1
  59. package/dist/src/core/prompts.test.js.map +1 -1
  60. package/dist/src/core/tokenLimits.js +1 -0
  61. package/dist/src/core/tokenLimits.js.map +1 -1
  62. package/dist/src/core/turn.d.ts +3 -0
  63. package/dist/src/core/turn.js +3 -0
  64. package/dist/src/core/turn.js.map +1 -1
  65. package/dist/src/ide/detect-ide.d.ts +10 -0
  66. package/dist/src/ide/detect-ide.js +27 -0
  67. package/dist/src/ide/detect-ide.js.map +1 -0
  68. package/dist/src/ide/ide-client.d.ts +40 -0
  69. package/dist/src/ide/ide-client.js +152 -0
  70. package/dist/src/ide/ide-client.js.map +1 -0
  71. package/dist/src/ide/ide-installer.d.ts +14 -0
  72. package/dist/src/ide/ide-installer.js +109 -0
  73. package/dist/src/ide/ide-installer.js.map +1 -0
  74. package/dist/src/ide/ide-installer.test.js +55 -0
  75. package/dist/src/ide/ide-installer.test.js.map +1 -0
  76. package/dist/src/ide/ideContext.d.ts +279 -0
  77. package/dist/src/ide/ideContext.js +102 -0
  78. package/dist/src/ide/ideContext.js.map +1 -0
  79. package/dist/src/ide/ideContext.test.js +265 -0
  80. package/dist/src/ide/ideContext.test.js.map +1 -0
  81. package/dist/src/index.d.ts +11 -1
  82. package/dist/src/index.js +14 -1
  83. package/dist/src/index.js.map +1 -1
  84. package/dist/src/mcp/google-auth-provider.d.ts +23 -0
  85. package/dist/src/mcp/google-auth-provider.js +63 -0
  86. package/dist/src/mcp/google-auth-provider.js.map +1 -0
  87. package/dist/src/mcp/google-auth-provider.test.d.ts +6 -0
  88. package/dist/src/mcp/google-auth-provider.test.js +54 -0
  89. package/dist/src/mcp/google-auth-provider.test.js.map +1 -0
  90. package/dist/src/mcp/oauth-provider.d.ts +5 -1
  91. package/dist/src/mcp/oauth-provider.js +44 -15
  92. package/dist/src/mcp/oauth-provider.js.map +1 -1
  93. package/dist/src/mcp/oauth-provider.test.js +94 -14
  94. package/dist/src/mcp/oauth-provider.test.js.map +1 -1
  95. package/dist/src/mcp/oauth-token-storage.d.ts +3 -1
  96. package/dist/src/mcp/oauth-token-storage.js +3 -1
  97. package/dist/src/mcp/oauth-token-storage.js.map +1 -1
  98. package/dist/src/mcp/oauth-utils.js +2 -2
  99. package/dist/src/mcp/oauth-utils.js.map +1 -1
  100. package/dist/src/mcp/oauth-utils.test.js +1 -1
  101. package/dist/src/mcp/oauth-utils.test.js.map +1 -1
  102. package/dist/src/prompts/mcp-prompts.d.ts +8 -0
  103. package/dist/src/prompts/mcp-prompts.js +13 -0
  104. package/dist/src/prompts/mcp-prompts.js.map +1 -0
  105. package/dist/src/prompts/prompt-registry.d.ts +26 -0
  106. package/dist/src/prompts/prompt-registry.js +47 -0
  107. package/dist/src/prompts/prompt-registry.js.map +1 -0
  108. package/dist/src/services/fileDiscoveryService.test.js +101 -60
  109. package/dist/src/services/fileDiscoveryService.test.js.map +1 -1
  110. package/dist/src/services/gitService.test.js +67 -86
  111. package/dist/src/services/gitService.test.js.map +1 -1
  112. package/dist/src/services/loopDetectionService.d.ts +51 -5
  113. package/dist/src/services/loopDetectionService.js +140 -36
  114. package/dist/src/services/loopDetectionService.js.map +1 -1
  115. package/dist/src/services/loopDetectionService.test.js +105 -99
  116. package/dist/src/services/loopDetectionService.test.js.map +1 -1
  117. package/dist/src/services/shellExecutionService.d.ts +70 -0
  118. package/dist/src/services/shellExecutionService.js +155 -0
  119. package/dist/src/services/shellExecutionService.js.map +1 -0
  120. package/dist/src/services/shellExecutionService.test.d.ts +6 -0
  121. package/dist/src/services/shellExecutionService.test.js +264 -0
  122. package/dist/src/services/shellExecutionService.test.js.map +1 -0
  123. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +4 -1
  124. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +97 -34
  125. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  126. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +6 -1
  127. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +19 -0
  128. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  129. package/dist/src/telemetry/constants.d.ts +2 -0
  130. package/dist/src/telemetry/constants.js +2 -0
  131. package/dist/src/telemetry/constants.js.map +1 -1
  132. package/dist/src/telemetry/file-exporters.d.ts +28 -0
  133. package/dist/src/telemetry/file-exporters.js +62 -0
  134. package/dist/src/telemetry/file-exporters.js.map +1 -0
  135. package/dist/src/telemetry/index.d.ts +2 -2
  136. package/dist/src/telemetry/index.js +2 -2
  137. package/dist/src/telemetry/index.js.map +1 -1
  138. package/dist/src/telemetry/loggers.d.ts +3 -1
  139. package/dist/src/telemetry/loggers.js +33 -1
  140. package/dist/src/telemetry/loggers.js.map +1 -1
  141. package/dist/src/telemetry/loggers.test.circular.js +2 -0
  142. package/dist/src/telemetry/loggers.test.circular.js.map +1 -1
  143. package/dist/src/telemetry/loggers.test.js +8 -3
  144. package/dist/src/telemetry/loggers.test.js.map +1 -1
  145. package/dist/src/telemetry/sdk.js +17 -6
  146. package/dist/src/telemetry/sdk.js.map +1 -1
  147. package/dist/src/telemetry/telemetry.test.js +2 -0
  148. package/dist/src/telemetry/telemetry.test.js.map +1 -1
  149. package/dist/src/telemetry/types.d.ts +24 -2
  150. package/dist/src/telemetry/types.js +40 -2
  151. package/dist/src/telemetry/types.js.map +1 -1
  152. package/dist/src/telemetry/uiTelemetry.test.js +3 -0
  153. package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
  154. package/dist/src/test-utils/mockWorkspaceContext.d.ts +13 -0
  155. package/dist/src/test-utils/mockWorkspaceContext.js +24 -0
  156. package/dist/src/test-utils/mockWorkspaceContext.js.map +1 -0
  157. package/dist/src/tools/edit.js +27 -3
  158. package/dist/src/tools/edit.js.map +1 -1
  159. package/dist/src/tools/edit.test.js +104 -1
  160. package/dist/src/tools/edit.test.js.map +1 -1
  161. package/dist/src/tools/glob.js +53 -17
  162. package/dist/src/tools/glob.js.map +1 -1
  163. package/dist/src/tools/glob.test.js +32 -6
  164. package/dist/src/tools/glob.test.js.map +1 -1
  165. package/dist/src/tools/grep.d.ts +1 -1
  166. package/dist/src/tools/grep.js +81 -29
  167. package/dist/src/tools/grep.js.map +1 -1
  168. package/dist/src/tools/grep.test.js +76 -9
  169. package/dist/src/tools/grep.test.js.map +1 -1
  170. package/dist/src/tools/ls.js +4 -3
  171. package/dist/src/tools/ls.js.map +1 -1
  172. package/dist/src/tools/ls.test.d.ts +6 -0
  173. package/dist/src/tools/ls.test.js +356 -0
  174. package/dist/src/tools/ls.test.js.map +1 -0
  175. package/dist/src/tools/mcp-client.d.ts +31 -3
  176. package/dist/src/tools/mcp-client.js +503 -57
  177. package/dist/src/tools/mcp-client.js.map +1 -1
  178. package/dist/src/tools/mcp-client.test.js +133 -7
  179. package/dist/src/tools/mcp-client.test.js.map +1 -1
  180. package/dist/src/tools/mcp-tool.js +104 -45
  181. package/dist/src/tools/mcp-tool.js.map +1 -1
  182. package/dist/src/tools/mcp-tool.test.js +314 -2
  183. package/dist/src/tools/mcp-tool.test.js.map +1 -1
  184. package/dist/src/tools/memoryTool.d.ts +17 -2
  185. package/dist/src/tools/memoryTool.js +130 -13
  186. package/dist/src/tools/memoryTool.js.map +1 -1
  187. package/dist/src/tools/memoryTool.test.js +88 -3
  188. package/dist/src/tools/memoryTool.test.js.map +1 -1
  189. package/dist/src/tools/modifiable-tool.test.js +51 -62
  190. package/dist/src/tools/modifiable-tool.test.js.map +1 -1
  191. package/dist/src/tools/read-file.js +8 -6
  192. package/dist/src/tools/read-file.js.map +1 -1
  193. package/dist/src/tools/read-file.test.js +125 -68
  194. package/dist/src/tools/read-file.test.js.map +1 -1
  195. package/dist/src/tools/read-many-files.d.ts +0 -1
  196. package/dist/src/tools/read-many-files.js +29 -20
  197. package/dist/src/tools/read-many-files.js.map +1 -1
  198. package/dist/src/tools/read-many-files.test.js +35 -2
  199. package/dist/src/tools/read-many-files.test.js.map +1 -1
  200. package/dist/src/tools/shell.d.ts +3 -23
  201. package/dist/src/tools/shell.js +173 -300
  202. package/dist/src/tools/shell.js.map +1 -1
  203. package/dist/src/tools/shell.test.js +278 -384
  204. package/dist/src/tools/shell.test.js.map +1 -1
  205. package/dist/src/tools/tool-error.d.ts +22 -0
  206. package/dist/src/tools/tool-error.js +27 -0
  207. package/dist/src/tools/tool-error.js.map +1 -0
  208. package/dist/src/tools/tool-registry.d.ts +13 -1
  209. package/dist/src/tools/tool-registry.js +46 -2
  210. package/dist/src/tools/tool-registry.js.map +1 -1
  211. package/dist/src/tools/tool-registry.test.js +13 -5
  212. package/dist/src/tools/tool-registry.test.js.map +1 -1
  213. package/dist/src/tools/tools.d.ts +8 -0
  214. package/dist/src/tools/tools.js.map +1 -1
  215. package/dist/src/tools/write-file.js +7 -5
  216. package/dist/src/tools/write-file.js.map +1 -1
  217. package/dist/src/tools/write-file.test.js +56 -2
  218. package/dist/src/tools/write-file.test.js.map +1 -1
  219. package/dist/src/utils/bfsFileSearch.js +51 -27
  220. package/dist/src/utils/bfsFileSearch.js.map +1 -1
  221. package/dist/src/utils/bfsFileSearch.test.js +163 -134
  222. package/dist/src/utils/bfsFileSearch.test.js.map +1 -1
  223. package/dist/src/utils/editCorrector.js +2 -2
  224. package/dist/src/utils/editCorrector.js.map +1 -1
  225. package/dist/src/utils/editor.d.ts +1 -1
  226. package/dist/src/utils/editor.js +9 -0
  227. package/dist/src/utils/editor.js.map +1 -1
  228. package/dist/src/utils/editor.test.js +21 -1
  229. package/dist/src/utils/editor.test.js.map +1 -1
  230. package/dist/src/utils/errorReporting.d.ts +1 -1
  231. package/dist/src/utils/errorReporting.js +2 -2
  232. package/dist/src/utils/errorReporting.js.map +1 -1
  233. package/dist/src/utils/errorReporting.test.js +44 -38
  234. package/dist/src/utils/errorReporting.test.js.map +1 -1
  235. package/dist/src/utils/fileUtils.js +13 -2
  236. package/dist/src/utils/fileUtils.js.map +1 -1
  237. package/dist/src/utils/fileUtils.test.js +42 -1
  238. package/dist/src/utils/fileUtils.test.js.map +1 -1
  239. package/dist/src/utils/flashFallback.integration.test.js +8 -0
  240. package/dist/src/utils/flashFallback.integration.test.js.map +1 -1
  241. package/dist/src/utils/formatters.d.ts +6 -0
  242. package/dist/src/utils/formatters.js +16 -0
  243. package/dist/src/utils/formatters.js.map +1 -0
  244. package/dist/src/utils/getFolderStructure.test.js +11 -13
  245. package/dist/src/utils/getFolderStructure.test.js.map +1 -1
  246. package/dist/src/utils/gitIgnoreParser.js +5 -11
  247. package/dist/src/utils/gitIgnoreParser.js.map +1 -1
  248. package/dist/src/utils/gitIgnoreParser.test.js +58 -61
  249. package/dist/src/utils/gitIgnoreParser.test.js.map +1 -1
  250. package/dist/src/utils/memoryDiscovery.d.ts +1 -1
  251. package/dist/src/utils/memoryDiscovery.js +69 -79
  252. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  253. package/dist/src/utils/memoryDiscovery.test.js +119 -370
  254. package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
  255. package/dist/src/utils/memoryImportProcessor.d.ts +19 -12
  256. package/dist/src/utils/memoryImportProcessor.js +241 -82
  257. package/dist/src/utils/memoryImportProcessor.js.map +1 -1
  258. package/dist/src/utils/memoryImportProcessor.test.js +595 -50
  259. package/dist/src/utils/memoryImportProcessor.test.js.map +1 -1
  260. package/dist/src/utils/nextSpeakerChecker.js +3 -23
  261. package/dist/src/utils/nextSpeakerChecker.js.map +1 -1
  262. package/dist/src/utils/nextSpeakerChecker.test.js +2 -2
  263. package/dist/src/utils/nextSpeakerChecker.test.js.map +1 -1
  264. package/dist/src/utils/partUtils.d.ts +14 -0
  265. package/dist/src/utils/partUtils.js +65 -0
  266. package/dist/src/utils/partUtils.js.map +1 -0
  267. package/dist/src/utils/partUtils.test.d.ts +6 -0
  268. package/dist/src/utils/partUtils.test.js +130 -0
  269. package/dist/src/utils/partUtils.test.js.map +1 -0
  270. package/dist/src/utils/paths.d.ts +11 -2
  271. package/dist/src/utils/paths.js +24 -7
  272. package/dist/src/utils/paths.js.map +1 -1
  273. package/dist/src/utils/paths.test.d.ts +6 -0
  274. package/dist/src/utils/paths.test.js +153 -0
  275. package/dist/src/utils/paths.test.js.map +1 -0
  276. package/dist/src/utils/retry.d.ts +3 -0
  277. package/dist/src/utils/retry.js.map +1 -1
  278. package/dist/src/utils/retry.test.js.map +1 -1
  279. package/dist/src/utils/secure-browser-launcher.d.ts +23 -0
  280. package/dist/src/utils/secure-browser-launcher.js +164 -0
  281. package/dist/src/utils/secure-browser-launcher.js.map +1 -0
  282. package/dist/src/utils/secure-browser-launcher.test.d.ts +6 -0
  283. package/dist/src/utils/secure-browser-launcher.test.js +149 -0
  284. package/dist/src/utils/secure-browser-launcher.test.js.map +1 -0
  285. package/dist/src/utils/shell-utils.d.ts +78 -0
  286. package/dist/src/utils/shell-utils.js +306 -0
  287. package/dist/src/utils/shell-utils.js.map +1 -0
  288. package/dist/src/utils/shell-utils.test.d.ts +6 -0
  289. package/dist/src/utils/shell-utils.test.js +200 -0
  290. package/dist/src/utils/shell-utils.test.js.map +1 -0
  291. package/dist/src/utils/summarizer.js +3 -32
  292. package/dist/src/utils/summarizer.js.map +1 -1
  293. package/dist/src/utils/textUtils.d.ts +13 -0
  294. package/dist/src/utils/textUtils.js +28 -0
  295. package/dist/src/utils/textUtils.js.map +1 -0
  296. package/dist/src/utils/workspaceContext.d.ts +51 -0
  297. package/dist/src/utils/workspaceContext.js +139 -0
  298. package/dist/src/utils/workspaceContext.js.map +1 -0
  299. package/dist/src/utils/workspaceContext.test.d.ts +6 -0
  300. package/dist/src/utils/workspaceContext.test.js +209 -0
  301. package/dist/src/utils/workspaceContext.test.js.map +1 -0
  302. package/dist/tsconfig.tsbuildinfo +1 -1
  303. package/package.json +4 -3
  304. package/dist/src/core/geminiRequest.test.js +0 -72
  305. package/dist/src/core/geminiRequest.test.js.map +0 -1
  306. package/dist/src/services/ideContext.d.ts +0 -178
  307. package/dist/src/services/ideContext.js +0 -105
  308. package/dist/src/services/ideContext.js.map +0 -1
  309. package/dist/src/services/ideContext.test.js +0 -111
  310. package/dist/src/services/ideContext.test.js.map +0 -1
  311. /package/dist/src/{core/geminiRequest.test.d.ts → ide/ide-installer.test.d.ts} +0 -0
  312. /package/dist/src/{services → ide}/ideContext.test.d.ts +0 -0
@@ -0,0 +1,264 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { vi, describe, it, expect, beforeEach } from 'vitest';
7
+ const mockSpawn = vi.hoisted(() => vi.fn());
8
+ vi.mock('child_process', () => ({
9
+ spawn: mockSpawn,
10
+ }));
11
+ import EventEmitter from 'events';
12
+ import { ShellExecutionService, } from './shellExecutionService.js';
13
+ const mockIsBinary = vi.hoisted(() => vi.fn());
14
+ vi.mock('../utils/textUtils.js', () => ({
15
+ isBinary: mockIsBinary,
16
+ }));
17
+ const mockPlatform = vi.hoisted(() => vi.fn());
18
+ vi.mock('os', () => ({
19
+ default: {
20
+ platform: mockPlatform,
21
+ },
22
+ platform: mockPlatform,
23
+ }));
24
+ const mockProcessKill = vi
25
+ .spyOn(process, 'kill')
26
+ .mockImplementation(() => true);
27
+ describe('ShellExecutionService', () => {
28
+ let mockChildProcess;
29
+ let onOutputEventMock;
30
+ beforeEach(() => {
31
+ vi.clearAllMocks();
32
+ mockIsBinary.mockReturnValue(false);
33
+ mockPlatform.mockReturnValue('linux');
34
+ onOutputEventMock = vi.fn();
35
+ mockChildProcess = new EventEmitter();
36
+ // FIX: Cast simple EventEmitters to the expected stream type.
37
+ mockChildProcess.stdout = new EventEmitter();
38
+ mockChildProcess.stderr = new EventEmitter();
39
+ mockChildProcess.kill = vi.fn();
40
+ // FIX: Use Object.defineProperty to set the readonly 'pid' property.
41
+ Object.defineProperty(mockChildProcess, 'pid', {
42
+ value: 12345,
43
+ configurable: true,
44
+ });
45
+ mockSpawn.mockReturnValue(mockChildProcess);
46
+ });
47
+ // Helper function to run a standard execution simulation
48
+ const simulateExecution = async (command, simulation) => {
49
+ const abortController = new AbortController();
50
+ const handle = ShellExecutionService.execute(command, '/test/dir', onOutputEventMock, abortController.signal);
51
+ await new Promise((resolve) => setImmediate(resolve));
52
+ simulation(mockChildProcess, abortController);
53
+ const result = await handle.result;
54
+ return { result, handle, abortController };
55
+ };
56
+ describe('Successful Execution', () => {
57
+ it('should execute a command and capture stdout and stderr', async () => {
58
+ const { result, handle } = await simulateExecution('ls -l', (cp) => {
59
+ cp.stdout?.emit('data', Buffer.from('file1.txt\n'));
60
+ cp.stderr?.emit('data', Buffer.from('a warning'));
61
+ cp.emit('exit', 0, null);
62
+ });
63
+ expect(mockSpawn).toHaveBeenCalledWith('ls -l', [], expect.objectContaining({ shell: 'bash' }));
64
+ expect(result.exitCode).toBe(0);
65
+ expect(result.signal).toBeNull();
66
+ expect(result.error).toBeNull();
67
+ expect(result.aborted).toBe(false);
68
+ expect(result.stdout).toBe('file1.txt\n');
69
+ expect(result.stderr).toBe('a warning');
70
+ expect(result.output).toBe('file1.txt\n\na warning');
71
+ expect(handle.pid).toBe(12345);
72
+ expect(onOutputEventMock).toHaveBeenCalledWith({
73
+ type: 'data',
74
+ stream: 'stdout',
75
+ chunk: 'file1.txt\n',
76
+ });
77
+ expect(onOutputEventMock).toHaveBeenCalledWith({
78
+ type: 'data',
79
+ stream: 'stderr',
80
+ chunk: 'a warning',
81
+ });
82
+ });
83
+ it('should strip ANSI codes from output', async () => {
84
+ const { result } = await simulateExecution('ls --color=auto', (cp) => {
85
+ cp.stdout?.emit('data', Buffer.from('a\u001b[31mred\u001b[0mword'));
86
+ cp.emit('exit', 0, null);
87
+ });
88
+ expect(result.stdout).toBe('aredword');
89
+ expect(onOutputEventMock).toHaveBeenCalledWith({
90
+ type: 'data',
91
+ stream: 'stdout',
92
+ chunk: 'aredword',
93
+ });
94
+ });
95
+ it('should correctly decode multi-byte characters split across chunks', async () => {
96
+ const { result } = await simulateExecution('echo "你好"', (cp) => {
97
+ const multiByteChar = Buffer.from('你好', 'utf-8');
98
+ cp.stdout?.emit('data', multiByteChar.slice(0, 2));
99
+ cp.stdout?.emit('data', multiByteChar.slice(2));
100
+ cp.emit('exit', 0, null);
101
+ });
102
+ expect(result.stdout).toBe('你好');
103
+ });
104
+ it('should handle commands with no output', async () => {
105
+ const { result } = await simulateExecution('touch file', (cp) => {
106
+ cp.emit('exit', 0, null);
107
+ });
108
+ expect(result.stdout).toBe('');
109
+ expect(result.stderr).toBe('');
110
+ expect(result.output).toBe('');
111
+ expect(onOutputEventMock).not.toHaveBeenCalled();
112
+ });
113
+ });
114
+ describe('Failed Execution', () => {
115
+ it('should capture a non-zero exit code and format output correctly', async () => {
116
+ const { result } = await simulateExecution('a-bad-command', (cp) => {
117
+ cp.stderr?.emit('data', Buffer.from('command not found'));
118
+ cp.emit('exit', 127, null);
119
+ });
120
+ expect(result.exitCode).toBe(127);
121
+ expect(result.stderr).toBe('command not found');
122
+ expect(result.stdout).toBe('');
123
+ expect(result.output).toBe('\ncommand not found');
124
+ expect(result.error).toBeNull();
125
+ });
126
+ it('should capture a termination signal', async () => {
127
+ const { result } = await simulateExecution('long-process', (cp) => {
128
+ cp.emit('exit', null, 'SIGTERM');
129
+ });
130
+ expect(result.exitCode).toBeNull();
131
+ expect(result.signal).toBe('SIGTERM');
132
+ });
133
+ it('should handle a spawn error', async () => {
134
+ const spawnError = new Error('spawn EACCES');
135
+ const { result } = await simulateExecution('protected-cmd', (cp) => {
136
+ cp.emit('error', spawnError);
137
+ cp.emit('exit', 1, null);
138
+ });
139
+ expect(result.error).toBe(spawnError);
140
+ expect(result.exitCode).toBe(1);
141
+ });
142
+ });
143
+ describe('Aborting Commands', () => {
144
+ describe.each([
145
+ {
146
+ platform: 'linux',
147
+ expectedSignal: 'SIGTERM',
148
+ expectedExit: { signal: 'SIGKILL' },
149
+ },
150
+ {
151
+ platform: 'win32',
152
+ expectedCommand: 'taskkill',
153
+ expectedExit: { code: 1 },
154
+ },
155
+ ])('on $platform', ({ platform, expectedSignal, expectedCommand, expectedExit }) => {
156
+ it('should abort a running process and set the aborted flag', async () => {
157
+ mockPlatform.mockReturnValue(platform);
158
+ const { result } = await simulateExecution('sleep 10', (cp, abortController) => {
159
+ abortController.abort();
160
+ if (expectedExit.signal)
161
+ cp.emit('exit', null, expectedExit.signal);
162
+ if (typeof expectedExit.code === 'number')
163
+ cp.emit('exit', expectedExit.code, null);
164
+ });
165
+ expect(result.aborted).toBe(true);
166
+ if (platform === 'linux') {
167
+ expect(mockProcessKill).toHaveBeenCalledWith(-mockChildProcess.pid, expectedSignal);
168
+ }
169
+ else {
170
+ expect(mockSpawn).toHaveBeenCalledWith(expectedCommand, [
171
+ '/pid',
172
+ String(mockChildProcess.pid),
173
+ '/f',
174
+ '/t',
175
+ ]);
176
+ }
177
+ });
178
+ });
179
+ it('should gracefully attempt SIGKILL on linux if SIGTERM fails', async () => {
180
+ mockPlatform.mockReturnValue('linux');
181
+ vi.useFakeTimers();
182
+ // Don't await the result inside the simulation block for this specific test.
183
+ // We need to control the timeline manually.
184
+ const abortController = new AbortController();
185
+ const handle = ShellExecutionService.execute('unresponsive_process', '/test/dir', onOutputEventMock, abortController.signal);
186
+ abortController.abort();
187
+ // Check the first kill signal
188
+ expect(mockProcessKill).toHaveBeenCalledWith(-mockChildProcess.pid, 'SIGTERM');
189
+ // Now, advance time past the timeout
190
+ await vi.advanceTimersByTimeAsync(250);
191
+ // Check the second kill signal
192
+ expect(mockProcessKill).toHaveBeenCalledWith(-mockChildProcess.pid, 'SIGKILL');
193
+ // Finally, simulate the process exiting and await the result
194
+ mockChildProcess.emit('exit', null, 'SIGKILL');
195
+ const result = await handle.result;
196
+ vi.useRealTimers();
197
+ expect(result.aborted).toBe(true);
198
+ expect(result.signal).toBe('SIGKILL');
199
+ // The individual kill calls were already asserted above.
200
+ expect(mockProcessKill).toHaveBeenCalledTimes(2);
201
+ });
202
+ });
203
+ describe('Binary Output', () => {
204
+ it('should detect binary output and switch to progress events', async () => {
205
+ mockIsBinary.mockReturnValueOnce(true);
206
+ const binaryChunk1 = Buffer.from([0x89, 0x50, 0x4e, 0x47]);
207
+ const binaryChunk2 = Buffer.from([0x0d, 0x0a, 0x1a, 0x0a]);
208
+ const { result } = await simulateExecution('cat image.png', (cp) => {
209
+ cp.stdout?.emit('data', binaryChunk1);
210
+ cp.stdout?.emit('data', binaryChunk2);
211
+ cp.emit('exit', 0, null);
212
+ });
213
+ expect(result.rawOutput).toEqual(Buffer.concat([binaryChunk1, binaryChunk2]));
214
+ expect(onOutputEventMock).toHaveBeenCalledTimes(3);
215
+ expect(onOutputEventMock.mock.calls[0][0]).toEqual({
216
+ type: 'binary_detected',
217
+ });
218
+ expect(onOutputEventMock.mock.calls[1][0]).toEqual({
219
+ type: 'binary_progress',
220
+ bytesReceived: 4,
221
+ });
222
+ expect(onOutputEventMock.mock.calls[2][0]).toEqual({
223
+ type: 'binary_progress',
224
+ bytesReceived: 8,
225
+ });
226
+ });
227
+ it('should not emit data events after binary is detected', async () => {
228
+ mockIsBinary.mockImplementation((buffer) => buffer.includes(0x00));
229
+ await simulateExecution('cat mixed_file', (cp) => {
230
+ cp.stdout?.emit('data', Buffer.from('some text'));
231
+ cp.stdout?.emit('data', Buffer.from([0x00, 0x01, 0x02]));
232
+ cp.stdout?.emit('data', Buffer.from('more text'));
233
+ cp.emit('exit', 0, null);
234
+ });
235
+ // FIX: Provide explicit type for the 'call' parameter in the map function.
236
+ const eventTypes = onOutputEventMock.mock.calls.map((call) => call[0].type);
237
+ expect(eventTypes).toEqual([
238
+ 'data',
239
+ 'binary_detected',
240
+ 'binary_progress',
241
+ 'binary_progress',
242
+ ]);
243
+ });
244
+ });
245
+ describe('Platform-Specific Behavior', () => {
246
+ it('should use cmd.exe on Windows', async () => {
247
+ mockPlatform.mockReturnValue('win32');
248
+ await simulateExecution('dir "foo bar"', (cp) => cp.emit('exit', 0, null));
249
+ expect(mockSpawn).toHaveBeenCalledWith('dir "foo bar"', [], expect.objectContaining({
250
+ shell: true,
251
+ detached: false,
252
+ }));
253
+ });
254
+ it('should use bash and detached process group on Linux', async () => {
255
+ mockPlatform.mockReturnValue('linux');
256
+ await simulateExecution('ls "foo bar"', (cp) => cp.emit('exit', 0, null));
257
+ expect(mockSpawn).toHaveBeenCalledWith('ls "foo bar"', [], expect.objectContaining({
258
+ shell: 'bash',
259
+ detached: true,
260
+ }));
261
+ });
262
+ });
263
+ });
264
+ //# sourceMappingURL=shellExecutionService.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shellExecutionService.test.js","sourceRoot":"","sources":["../../../src/services/shellExecutionService.test.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { Buffer } from 'buffer';
7
7
  import { HttpsProxyAgent } from 'https-proxy-agent';
8
- import { StartSessionEvent, EndSessionEvent, UserPromptEvent, ToolCallEvent, ApiRequestEvent, ApiResponseEvent, ApiErrorEvent, FlashFallbackEvent, LoopDetectedEvent } from '../types.js';
8
+ import { StartSessionEvent, EndSessionEvent, UserPromptEvent, ToolCallEvent, ApiRequestEvent, ApiResponseEvent, ApiErrorEvent, FlashFallbackEvent, LoopDetectedEvent, NextSpeakerCheckEvent, SlashCommandEvent, MalformedJsonResponseEvent } from '../types.js';
9
9
  import { Config } from '../../config/config.js';
10
10
  export interface LogResponse {
11
11
  nextRequestWaitMs?: number;
@@ -31,6 +31,9 @@ export declare class ClearcutLogger {
31
31
  logApiErrorEvent(event: ApiErrorEvent): void;
32
32
  logFlashFallbackEvent(event: FlashFallbackEvent): void;
33
33
  logLoopDetectedEvent(event: LoopDetectedEvent): void;
34
+ logNextSpeakerCheck(event: NextSpeakerCheckEvent): void;
35
+ logSlashCommandEvent(event: SlashCommandEvent): void;
36
+ logMalformedJsonResponseEvent(event: MalformedJsonResponseEvent): void;
34
37
  logEndSessionEvent(event: EndSessionEvent): void;
35
38
  getProxyAgent(): HttpsProxyAgent<string> | undefined;
36
39
  shutdown(): void;
@@ -8,9 +8,10 @@ import * as https from 'https';
8
8
  import { HttpsProxyAgent } from 'https-proxy-agent';
9
9
  import { EndSessionEvent, } from '../types.js';
10
10
  import { EventMetadataKey } from './event-metadata-key.js';
11
- import { getInstallationId } from '../../utils/user_id.js';
12
- import { getCachedGoogleAccount, getLifetimeGoogleAccounts, } from '../../utils/user_account.js';
13
11
  import { safeJsonStringify } from '../../utils/safeJsonStringify.js';
12
+ import { getCachedGoogleAccount, getLifetimeGoogleAccounts, } from '../../utils/user_account.js';
13
+ import { retryWithBackoff } from '../../utils/retry.js';
14
+ import { getInstallationId } from '../../utils/user_id.js';
14
15
  const start_session_event_name = 'start_session';
15
16
  const new_prompt_event_name = 'new_prompt';
16
17
  const tool_call_event_name = 'tool_call';
@@ -20,6 +21,9 @@ const api_error_event_name = 'api_error';
20
21
  const end_session_event_name = 'end_session';
21
22
  const flash_fallback_event_name = 'flash_fallback';
22
23
  const loop_detected_event_name = 'loop_detected';
24
+ const next_speaker_check_event_name = 'next_speaker_check';
25
+ const slash_command_event_name = 'slash_command';
26
+ const malformed_json_response_event_name = 'malformed_json_response';
23
27
  // Singleton class for batch posting log events to Clearcut. When a new event comes in, the elapsed time
24
28
  // is checked and events are flushed to Clearcut if at least a minute has passed since the last flush.
25
29
  export class ClearcutLogger {
@@ -80,13 +84,15 @@ export class ClearcutLogger {
80
84
  console.debug('Error flushing to Clearcut:', error);
81
85
  });
82
86
  }
83
- flushToClearcut() {
87
+ async flushToClearcut() {
84
88
  if (this.config?.getDebugMode()) {
85
89
  console.log('Flushing log events to Clearcut.');
86
90
  }
87
91
  const eventsToSend = [...this.events];
88
- this.events.length = 0;
89
- return new Promise((resolve, reject) => {
92
+ if (eventsToSend.length === 0) {
93
+ return {};
94
+ }
95
+ const flushFn = () => new Promise((resolve, reject) => {
90
96
  const request = [
91
97
  {
92
98
  log_source_name: 'CONCORD',
@@ -106,37 +112,44 @@ export class ClearcutLogger {
106
112
  ...options,
107
113
  agent: this.getProxyAgent(),
108
114
  }, (res) => {
109
- res.on('data', (buf) => bufs.push(buf));
110
- res.on('end', () => {
111
- resolve(Buffer.concat(bufs));
112
- });
113
- });
114
- req.on('error', (e) => {
115
- if (this.config?.getDebugMode()) {
116
- console.log('Clearcut POST request error: ', e);
115
+ if (res.statusCode &&
116
+ (res.statusCode < 200 || res.statusCode >= 300)) {
117
+ const err = new Error(`Request failed with status ${res.statusCode}`);
118
+ err.status = res.statusCode;
119
+ res.resume();
120
+ return reject(err);
117
121
  }
118
- // Add the events back to the front of the queue to be retried.
119
- this.events.unshift(...eventsToSend);
120
- reject(e);
122
+ res.on('data', (buf) => bufs.push(buf));
123
+ res.on('end', () => resolve(Buffer.concat(bufs)));
121
124
  });
125
+ req.on('error', reject);
122
126
  req.end(body);
123
- })
124
- .then((buf) => {
125
- try {
126
- this.last_flush_time = Date.now();
127
- return this.decodeLogResponse(buf) || {};
128
- }
129
- catch (error) {
130
- console.error('Error flushing log events:', error);
131
- return {};
127
+ });
128
+ try {
129
+ const responseBuffer = await retryWithBackoff(flushFn, {
130
+ maxAttempts: 3,
131
+ initialDelayMs: 200,
132
+ shouldRetry: (err) => {
133
+ if (!(err instanceof Error))
134
+ return false;
135
+ const status = err.status;
136
+ // If status is not available, it's likely a network error
137
+ if (status === undefined)
138
+ return true;
139
+ // Retry on 429 (Too many Requests) and 5xx server errors.
140
+ return status === 429 || (status >= 500 && status < 600);
141
+ },
142
+ });
143
+ this.events.splice(0, eventsToSend.length);
144
+ this.last_flush_time = Date.now();
145
+ return this.decodeLogResponse(responseBuffer) || {};
146
+ }
147
+ catch (error) {
148
+ if (this.config?.getDebugMode()) {
149
+ console.error('Clearcut flush failed after multiple retries.', error);
132
150
  }
133
- })
134
- .catch((error) => {
135
- // Handle all errors to prevent unhandled promise rejections
136
- console.error('Error flushing log events:', error);
137
- // Return empty response to maintain the Promise<LogResponse> contract
138
151
  return {};
139
- });
152
+ }
140
153
  }
141
154
  // Visible for testing. Decodes protobuf-encoded response from Clearcut server.
142
155
  decodeLogResponse(buf) {
@@ -172,7 +185,9 @@ export class ClearcutLogger {
172
185
  return returnVal;
173
186
  }
174
187
  logStartSessionEvent(event) {
175
- const surface = process.env.SURFACE || 'SURFACE_NOT_SET';
188
+ const surface = process.env.CLOUD_SHELL === 'true'
189
+ ? 'CLOUD_SHELL'
190
+ : process.env.SURFACE || 'SURFACE_NOT_SET';
176
191
  const data = [
177
192
  {
178
193
  gemini_cli_key: EventMetadataKey.GEMINI_CLI_START_SESSION_MODEL,
@@ -411,8 +426,8 @@ export class ClearcutLogger {
411
426
  logLoopDetectedEvent(event) {
412
427
  const data = [
413
428
  {
414
- gemini_cli_key: EventMetadataKey.GEMINI_CLI_SESSION_ID,
415
- value: this.config?.getSessionId() ?? '',
429
+ gemini_cli_key: EventMetadataKey.GEMINI_CLI_PROMPT_ID,
430
+ value: JSON.stringify(event.prompt_id),
416
431
  },
417
432
  {
418
433
  gemini_cli_key: EventMetadataKey.GEMINI_CLI_LOOP_DETECTED_TYPE,
@@ -422,6 +437,54 @@ export class ClearcutLogger {
422
437
  this.enqueueLogEvent(this.createLogEvent(loop_detected_event_name, data));
423
438
  this.flushIfNeeded();
424
439
  }
440
+ logNextSpeakerCheck(event) {
441
+ const data = [
442
+ {
443
+ gemini_cli_key: EventMetadataKey.GEMINI_CLI_PROMPT_ID,
444
+ value: JSON.stringify(event.prompt_id),
445
+ },
446
+ {
447
+ gemini_cli_key: EventMetadataKey.GEMINI_CLI_RESPONSE_FINISH_REASON,
448
+ value: JSON.stringify(event.finish_reason),
449
+ },
450
+ {
451
+ gemini_cli_key: EventMetadataKey.GEMINI_CLI_NEXT_SPEAKER_CHECK_RESULT,
452
+ value: JSON.stringify(event.result),
453
+ },
454
+ {
455
+ gemini_cli_key: EventMetadataKey.GEMINI_CLI_SESSION_ID,
456
+ value: this.config?.getSessionId() ?? '',
457
+ },
458
+ ];
459
+ this.enqueueLogEvent(this.createLogEvent(next_speaker_check_event_name, data));
460
+ this.flushIfNeeded();
461
+ }
462
+ logSlashCommandEvent(event) {
463
+ const data = [
464
+ {
465
+ gemini_cli_key: EventMetadataKey.GEMINI_CLI_SLASH_COMMAND_NAME,
466
+ value: JSON.stringify(event.command),
467
+ },
468
+ ];
469
+ if (event.subcommand) {
470
+ data.push({
471
+ gemini_cli_key: EventMetadataKey.GEMINI_CLI_SLASH_COMMAND_SUBCOMMAND,
472
+ value: JSON.stringify(event.subcommand),
473
+ });
474
+ }
475
+ this.enqueueLogEvent(this.createLogEvent(slash_command_event_name, data));
476
+ this.flushIfNeeded();
477
+ }
478
+ logMalformedJsonResponseEvent(event) {
479
+ const data = [
480
+ {
481
+ gemini_cli_key: EventMetadataKey.GEMINI_CLI_MALFORMED_JSON_RESPONSE_MODEL,
482
+ value: JSON.stringify(event.model),
483
+ },
484
+ ];
485
+ this.enqueueLogEvent(this.createLogEvent(malformed_json_response_event_name, data));
486
+ this.flushIfNeeded();
487
+ }
425
488
  logEndSessionEvent(event) {
426
489
  const data = [
427
490
  {
@@ -1 +1 @@
1
- {"version":3,"file":"clearcut-logger.js","sourceRoot":"","sources":["../../../../src/telemetry/clearcut-logger/clearcut-logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clearcut-logger.js","sourceRoot":"","sources":["../../../../src/telemetry/clearcut-logger/clearcut-logger.ts"],"names":[],"mappings":"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"}
@@ -44,6 +44,11 @@ export declare enum EventMetadataKey {
44
44
  GEMINI_CLI_GOOGLE_ACCOUNTS_COUNT = 37,
45
45
  GEMINI_CLI_SURFACE = 39,
46
46
  GEMINI_CLI_SESSION_ID = 40,
47
- GEMINI_CLI_LOOP_DETECTED_TYPE = 38
47
+ GEMINI_CLI_LOOP_DETECTED_TYPE = 38,
48
+ GEMINI_CLI_SLASH_COMMAND_NAME = 41,
49
+ GEMINI_CLI_SLASH_COMMAND_SUBCOMMAND = 42,
50
+ GEMINI_CLI_RESPONSE_FINISH_REASON = 43,
51
+ GEMINI_CLI_NEXT_SPEAKER_CHECK_RESULT = 44,
52
+ GEMINI_CLI_MALFORMED_JSON_RESPONSE_MODEL = 45
48
53
  }
49
54
  export declare function getEventMetadataKey(keyName: string): EventMetadataKey | undefined;
@@ -114,6 +114,25 @@ export var EventMetadataKey;
114
114
  // ===========================================================================
115
115
  // Logs the type of loop detected.
116
116
  EventMetadataKey[EventMetadataKey["GEMINI_CLI_LOOP_DETECTED_TYPE"] = 38] = "GEMINI_CLI_LOOP_DETECTED_TYPE";
117
+ // ==========================================================================
118
+ // Slash Command Event Keys
119
+ // ===========================================================================
120
+ // Logs the name of the slash command.
121
+ EventMetadataKey[EventMetadataKey["GEMINI_CLI_SLASH_COMMAND_NAME"] = 41] = "GEMINI_CLI_SLASH_COMMAND_NAME";
122
+ // Logs the subcommand of the slash command.
123
+ EventMetadataKey[EventMetadataKey["GEMINI_CLI_SLASH_COMMAND_SUBCOMMAND"] = 42] = "GEMINI_CLI_SLASH_COMMAND_SUBCOMMAND";
124
+ // ==========================================================================
125
+ // Next Speaker Check Event Keys
126
+ // ===========================================================================
127
+ // Logs the finish reason of the previous streamGenerateContent response
128
+ EventMetadataKey[EventMetadataKey["GEMINI_CLI_RESPONSE_FINISH_REASON"] = 43] = "GEMINI_CLI_RESPONSE_FINISH_REASON";
129
+ // Logs the result of the next speaker check
130
+ EventMetadataKey[EventMetadataKey["GEMINI_CLI_NEXT_SPEAKER_CHECK_RESULT"] = 44] = "GEMINI_CLI_NEXT_SPEAKER_CHECK_RESULT";
131
+ // ==========================================================================
132
+ // Malformed JSON Response Event Keys
133
+ // ==========================================================================
134
+ // Logs the model that produced the malformed JSON response.
135
+ EventMetadataKey[EventMetadataKey["GEMINI_CLI_MALFORMED_JSON_RESPONSE_MODEL"] = 45] = "GEMINI_CLI_MALFORMED_JSON_RESPONSE_MODEL";
117
136
  })(EventMetadataKey || (EventMetadataKey = {}));
118
137
  export function getEventMetadataKey(keyName) {
119
138
  // Access the enum member by its string name
@@ -1 +1 @@
1
- {"version":3,"file":"event-metadata-key.js","sourceRoot":"","sources":["../../../../src/telemetry/clearcut-logger/event-metadata-key.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,0DAA0D;AAC1D,MAAM,CAAN,IAAY,gBA8JX;AA9JD,WAAY,gBAAgB;IAC1B,2FAA0B,CAAA;IAE1B,6EAA6E;IAC7E,2BAA2B;IAC3B,8EAA8E;IAE9E,yCAAyC;IACzC,2GAAkC,CAAA;IAElC,mDAAmD;IACnD,+HAA4C,CAAA;IAE5C,iDAAiD;IACjD,+GAAoC,CAAA;IAEpC,wDAAwD;IACxD,qHAAuC,CAAA;IAEvC,uDAAuD;IACvD,2HAA0C,CAAA;IAE1C,mDAAmD;IACnD,+HAA4C,CAAA;IAE5C,uDAAuD;IACvD,qIAA+C,CAAA;IAE/C,sDAAsD;IACtD,qIAA+C,CAAA;IAE/C,yDAAyD;IACzD,uHAAwC,CAAA;IAExC,oEAAoE;IACpE,oIAA+C,CAAA;IAE/C,2EAA2E;IAC3E,sKAAgE,CAAA;IAEhE,sEAAsE;IACtE,oIAA+C,CAAA;IAE/C,6EAA6E;IAC7E,yBAAyB;IACzB,8EAA8E;IAE9E,iCAAiC;IACjC,0GAAkC,CAAA;IAElC,6EAA6E;IAC7E,uBAAuB;IACvB,8EAA8E;IAE9E,0BAA0B;IAC1B,kGAA8B,CAAA;IAE9B,8DAA8D;IAC9D,0GAAkC,CAAA;IAElC,wCAAwC;IACxC,wGAAiC,CAAA;IAEjC,+CAA+C;IAC/C,gHAAqC,CAAA;IAErC,4CAA4C;IAC5C,0GAAkC,CAAA;IAElC,yCAAyC;IACzC,8GAAoC,CAAA;IAEpC,6EAA6E;IAC7E,+BAA+B;IAC/B,8EAA8E;IAE9E,oCAAoC;IACpC,wGAAiC,CAAA;IAEjC,6EAA6E;IAC7E,gCAAgC;IAChC,8EAA8E;IAE9E,qCAAqC;IACrC,0GAAkC,CAAA;IAElC,wCAAwC;IACxC,sHAAwC,CAAA;IAExC,qDAAqD;IACrD,sHAAwC,CAAA;IAExC,kDAAkD;IAClD,wGAAiC,CAAA;IAEjC,8CAA8C;IAC9C,kIAA8C,CAAA;IAE9C,+CAA+C;IAC/C,oIAA+C,CAAA;IAE/C,+CAA+C;IAC/C,oIAA+C,CAAA;IAE/C,iDAAiD;IACjD,wIAAiD,CAAA;IAEjD,iDAAiD;IACjD,gIAA6C,CAAA;IAE7C,6EAA6E;IAC7E,6BAA6B;IAC7B,8EAA8E;IAE9E,qCAAqC;IACrC,oGAA+B,CAAA;IAE/B,uBAAuB;IACvB,kGAA8B,CAAA;IAE9B,8CAA8C;IAC9C,gHAAqC,CAAA;IAErC,qDAAqD;IACrD,gHAAqC,CAAA;IAErC,6EAA6E;IAC7E,yBAAyB;IACzB,8EAA8E;IAE9E,6BAA6B;IAC7B,kGAA8B,CAAA;IAE9B,6EAA6E;IAC7E,cAAc;IACd,8EAA8E;IAE9E,qBAAqB;IACrB,wFAAyB,CAAA;IAEzB,+DAA+D;IAC/D,wFAAyB,CAAA;IAEzB,sDAAsD;IACtD,gHAAqC,CAAA;IAErC,sEAAsE;IACtE,oFAAuB,CAAA;IAEvB,sBAAsB;IACtB,0FAA0B,CAAA;IAE1B,6EAA6E;IAC7E,2BAA2B;IAC3B,8EAA8E;IAE9E,kCAAkC;IAClC,0GAAkC,CAAA;AACpC,CAAC,EA9JW,gBAAgB,KAAhB,gBAAgB,QA8J3B;AAED,MAAM,UAAU,mBAAmB,CACjC,OAAe;IAEf,4CAA4C;IAC5C,MAAM,GAAG,GAAG,gBAAgB,CAAC,OAAwC,CAAC,CAAC;IAEvE,6EAA6E;IAC7E,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"event-metadata-key.js","sourceRoot":"","sources":["../../../../src/telemetry/clearcut-logger/event-metadata-key.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,8 @@ export declare const EVENT_API_ERROR = "gemini_cli.api_error";
11
11
  export declare const EVENT_API_RESPONSE = "gemini_cli.api_response";
12
12
  export declare const EVENT_CLI_CONFIG = "gemini_cli.config";
13
13
  export declare const EVENT_FLASH_FALLBACK = "gemini_cli.flash_fallback";
14
+ export declare const EVENT_NEXT_SPEAKER_CHECK = "gemini_cli.next_speaker_check";
15
+ export declare const EVENT_SLASH_COMMAND = "gemini_cli.slash_command";
14
16
  export declare const METRIC_TOOL_CALL_COUNT = "gemini_cli.tool.call.count";
15
17
  export declare const METRIC_TOOL_CALL_LATENCY = "gemini_cli.tool.call.latency";
16
18
  export declare const METRIC_API_REQUEST_COUNT = "gemini_cli.api.request.count";
@@ -11,6 +11,8 @@ export const EVENT_API_ERROR = 'gemini_cli.api_error';
11
11
  export const EVENT_API_RESPONSE = 'gemini_cli.api_response';
12
12
  export const EVENT_CLI_CONFIG = 'gemini_cli.config';
13
13
  export const EVENT_FLASH_FALLBACK = 'gemini_cli.flash_fallback';
14
+ export const EVENT_NEXT_SPEAKER_CHECK = 'gemini_cli.next_speaker_check';
15
+ export const EVENT_SLASH_COMMAND = 'gemini_cli.slash_command';
14
16
  export const METRIC_TOOL_CALL_COUNT = 'gemini_cli.tool.call.count';
15
17
  export const METRIC_TOOL_CALL_LATENCY = 'gemini_cli.tool.call.latency';
16
18
  export const METRIC_API_REQUEST_COUNT = 'gemini_cli.api.request.count';