@google/gemini-cli-core 0.1.19 → 0.1.21

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 (149) hide show
  1. package/README.md +1 -1
  2. package/dist/index.d.ts +1 -0
  3. package/dist/index.js +1 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/code_assist/setup.js +47 -16
  6. package/dist/src/code_assist/setup.js.map +1 -1
  7. package/dist/src/code_assist/setup.test.js +105 -5
  8. package/dist/src/code_assist/setup.test.js.map +1 -1
  9. package/dist/src/config/config.d.ts +6 -6
  10. package/dist/src/config/config.js +18 -11
  11. package/dist/src/config/config.js.map +1 -1
  12. package/dist/src/config/config.test.js +87 -1
  13. package/dist/src/config/config.test.js.map +1 -1
  14. package/dist/src/core/client.d.ts +3 -1
  15. package/dist/src/core/client.js +22 -3
  16. package/dist/src/core/client.js.map +1 -1
  17. package/dist/src/core/client.test.js +69 -9
  18. package/dist/src/core/client.test.js.map +1 -1
  19. package/dist/src/core/contentGenerator.js +0 -2
  20. package/dist/src/core/contentGenerator.js.map +1 -1
  21. package/dist/src/core/coreToolScheduler.test.js +2 -4
  22. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  23. package/dist/src/ide/detect-ide.d.ts +6 -3
  24. package/dist/src/ide/detect-ide.js +37 -15
  25. package/dist/src/ide/detect-ide.js.map +1 -1
  26. package/dist/src/ide/detect-ide.test.d.ts +6 -0
  27. package/dist/src/ide/detect-ide.test.js +65 -0
  28. package/dist/src/ide/detect-ide.test.js.map +1 -0
  29. package/dist/src/ide/ide-client.js +3 -3
  30. package/dist/src/ide/ide-client.js.map +1 -1
  31. package/dist/src/ide/ide-installer.js +2 -46
  32. package/dist/src/ide/ide-installer.js.map +1 -1
  33. package/dist/src/ide/ide-installer.test.js +0 -39
  34. package/dist/src/ide/ide-installer.test.js.map +1 -1
  35. package/dist/src/ide/ideContext.d.ts +6 -6
  36. package/dist/src/index.d.ts +2 -1
  37. package/dist/src/index.js +2 -1
  38. package/dist/src/index.js.map +1 -1
  39. package/dist/src/mcp/oauth-provider.d.ts +0 -1
  40. package/dist/src/mcp/oauth-provider.js +0 -1
  41. package/dist/src/mcp/oauth-provider.js.map +1 -1
  42. package/dist/src/mocks/msw.d.ts +6 -0
  43. package/dist/src/mocks/msw.js +8 -0
  44. package/dist/src/mocks/msw.js.map +1 -0
  45. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +31 -13
  46. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +140 -149
  47. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  48. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +172 -77
  49. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
  50. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +4 -1
  51. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +9 -0
  52. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  53. package/dist/src/telemetry/index.d.ts +2 -2
  54. package/dist/src/telemetry/index.js +2 -2
  55. package/dist/src/telemetry/index.js.map +1 -1
  56. package/dist/src/telemetry/loggers.d.ts +2 -1
  57. package/dist/src/telemetry/loggers.js +15 -0
  58. package/dist/src/telemetry/loggers.js.map +1 -1
  59. package/dist/src/telemetry/sdk.d.ts +1 -1
  60. package/dist/src/telemetry/sdk.js +13 -5
  61. package/dist/src/telemetry/sdk.js.map +1 -1
  62. package/dist/src/telemetry/telemetry.test.js +2 -2
  63. package/dist/src/telemetry/telemetry.test.js.map +1 -1
  64. package/dist/src/telemetry/types.d.ts +33 -14
  65. package/dist/src/telemetry/types.js +38 -23
  66. package/dist/src/telemetry/types.js.map +1 -1
  67. package/dist/src/test-utils/config.d.ts +16 -0
  68. package/dist/src/test-utils/config.js +32 -0
  69. package/dist/src/test-utils/config.js.map +1 -0
  70. package/dist/src/test-utils/tools.js +2 -2
  71. package/dist/src/test-utils/tools.js.map +1 -1
  72. package/dist/src/tools/edit.js +3 -4
  73. package/dist/src/tools/edit.js.map +1 -1
  74. package/dist/src/tools/edit.test.js +0 -2
  75. package/dist/src/tools/edit.test.js.map +1 -1
  76. package/dist/src/tools/glob.js +2 -2
  77. package/dist/src/tools/glob.js.map +1 -1
  78. package/dist/src/tools/grep.js +2 -2
  79. package/dist/src/tools/grep.js.map +1 -1
  80. package/dist/src/tools/ls.d.ts +3 -22
  81. package/dist/src/tools/ls.js +81 -77
  82. package/dist/src/tools/ls.js.map +1 -1
  83. package/dist/src/tools/ls.test.js +62 -34
  84. package/dist/src/tools/ls.test.js.map +1 -1
  85. package/dist/src/tools/mcp-tool.d.ts +3 -5
  86. package/dist/src/tools/mcp-tool.js +41 -18
  87. package/dist/src/tools/mcp-tool.js.map +1 -1
  88. package/dist/src/tools/mcp-tool.test.js +53 -51
  89. package/dist/src/tools/mcp-tool.test.js.map +1 -1
  90. package/dist/src/tools/memoryTool.d.ts +9 -13
  91. package/dist/src/tools/memoryTool.js +124 -117
  92. package/dist/src/tools/memoryTool.js.map +1 -1
  93. package/dist/src/tools/memoryTool.test.js +28 -17
  94. package/dist/src/tools/memoryTool.test.js.map +1 -1
  95. package/dist/src/tools/read-file.js +2 -2
  96. package/dist/src/tools/read-file.js.map +1 -1
  97. package/dist/src/tools/read-many-files.d.ts +4 -5
  98. package/dist/src/tools/read-many-files.js +112 -100
  99. package/dist/src/tools/read-many-files.js.map +1 -1
  100. package/dist/src/tools/read-many-files.test.js +60 -37
  101. package/dist/src/tools/read-many-files.test.js.map +1 -1
  102. package/dist/src/tools/shell.d.ts +4 -6
  103. package/dist/src/tools/shell.js +99 -105
  104. package/dist/src/tools/shell.js.map +1 -1
  105. package/dist/src/tools/shell.test.js +40 -46
  106. package/dist/src/tools/shell.test.js.map +1 -1
  107. package/dist/src/tools/tool-registry.d.ts +5 -0
  108. package/dist/src/tools/tool-registry.js +13 -2
  109. package/dist/src/tools/tool-registry.js.map +1 -1
  110. package/dist/src/tools/tools.d.ts +16 -15
  111. package/dist/src/tools/tools.js +19 -18
  112. package/dist/src/tools/tools.js.map +1 -1
  113. package/dist/src/tools/web-fetch.d.ts +4 -7
  114. package/dist/src/tools/web-fetch.js +62 -62
  115. package/dist/src/tools/web-fetch.js.map +1 -1
  116. package/dist/src/tools/web-fetch.test.js +8 -4
  117. package/dist/src/tools/web-fetch.test.js.map +1 -1
  118. package/dist/src/tools/web-search.js +2 -2
  119. package/dist/src/tools/web-search.js.map +1 -1
  120. package/dist/src/tools/write-file.d.ts +2 -1
  121. package/dist/src/tools/write-file.js +6 -4
  122. package/dist/src/tools/write-file.js.map +1 -1
  123. package/dist/src/tools/write-file.test.js +0 -1
  124. package/dist/src/tools/write-file.test.js.map +1 -1
  125. package/dist/src/utils/errorParsing.d.ts +8 -0
  126. package/dist/src/utils/errorParsing.js +93 -0
  127. package/dist/src/utils/errorParsing.js.map +1 -0
  128. package/dist/src/utils/errorParsing.test.d.ts +6 -0
  129. package/dist/src/utils/errorParsing.test.js +172 -0
  130. package/dist/src/utils/errorParsing.test.js.map +1 -0
  131. package/dist/src/utils/filesearch/fileSearch.js +1 -1
  132. package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
  133. package/dist/src/utils/filesearch/result-cache.d.ts +1 -2
  134. package/dist/src/utils/filesearch/result-cache.js +1 -3
  135. package/dist/src/utils/filesearch/result-cache.js.map +1 -1
  136. package/dist/src/utils/filesearch/result-cache.test.js +3 -4
  137. package/dist/src/utils/filesearch/result-cache.test.js.map +1 -1
  138. package/dist/src/utils/memoryImportProcessor.js +1 -1
  139. package/dist/src/utils/memoryImportProcessor.js.map +1 -1
  140. package/dist/src/utils/memoryImportProcessor.test.js +17 -20
  141. package/dist/src/utils/memoryImportProcessor.test.js.map +1 -1
  142. package/dist/src/utils/quotaErrorDetection.d.ts +1 -5
  143. package/dist/src/utils/quotaErrorDetection.js.map +1 -1
  144. package/dist/tsconfig.tsbuildinfo +1 -1
  145. package/package.json +2 -2
  146. package/dist/google-gemini-cli-core-0.1.18.tgz +0 -0
  147. package/dist/src/core/modelCheck.d.ts +0 -14
  148. package/dist/src/core/modelCheck.js +0 -62
  149. package/dist/src/core/modelCheck.js.map +0 -1
@@ -3,8 +3,6 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { Buffer } from 'buffer';
7
- import * as https from 'https';
8
6
  import { HttpsProxyAgent } from 'https-proxy-agent';
9
7
  import { EndSessionEvent, } from '../types.js';
10
8
  import { EventMetadataKey } from './event-metadata-key.js';
@@ -12,6 +10,7 @@ import { safeJsonStringify } from '../../utils/safeJsonStringify.js';
12
10
  import { getCachedGoogleAccount, getLifetimeGoogleAccounts, } from '../../utils/user_account.js';
13
11
  import { getInstallationId } from '../../utils/user_id.js';
14
12
  import { FixedDeque } from 'mnemonist';
13
+ import { DetectedIde, detectIde } from '../../ide/detect-ide.js';
15
14
  const start_session_event_name = 'start_session';
16
15
  const new_prompt_event_name = 'new_prompt';
17
16
  const tool_call_event_name = 'tool_call';
@@ -25,6 +24,7 @@ const next_speaker_check_event_name = 'next_speaker_check';
25
24
  const slash_command_event_name = 'slash_command';
26
25
  const malformed_json_response_event_name = 'malformed_json_response';
27
26
  const ide_connection_event_name = 'ide_connection';
27
+ const kitty_sequence_overflow_event_name = 'kitty_sequence_overflow';
28
28
  /**
29
29
  * Determine the surface that the user is currently using. Surface is effectively the
30
30
  * distribution channel in which the user is using Gemini CLI. Gemini CLI comes bundled
@@ -35,31 +35,63 @@ const ide_connection_event_name = 'ide_connection';
35
35
  * methods might have in their runtimes.
36
36
  */
37
37
  function determineSurface() {
38
- if (process.env.CLOUD_SHELL === 'true') {
39
- return 'CLOUD_SHELL';
38
+ if (process.env.SURFACE) {
39
+ return process.env.SURFACE;
40
40
  }
41
- else if (process.env.MONOSPACE_ENV === 'true') {
42
- return 'FIREBASE_STUDIO';
41
+ else if (process.env.GITHUB_SHA) {
42
+ return 'GitHub';
43
+ }
44
+ else if (process.env.TERM_PROGRAM === 'vscode') {
45
+ return detectIde() || DetectedIde.VSCode;
43
46
  }
44
47
  else {
45
- return process.env.SURFACE || 'SURFACE_NOT_SET';
48
+ return 'SURFACE_NOT_SET';
46
49
  }
47
50
  }
51
+ /**
52
+ * Clearcut URL to send logging events to.
53
+ */
54
+ const CLEARCUT_URL = 'https://play.googleapis.com/log?format=json&hasfast=true';
55
+ /**
56
+ * Interval in which buffered events are sent to clearcut.
57
+ */
58
+ const FLUSH_INTERVAL_MS = 1000 * 60;
59
+ /**
60
+ * Maximum amount of events to keep in memory. Events added after this amount
61
+ * are dropped until the next flush to clearcut, which happens periodically as
62
+ * defined by {@link FLUSH_INTERVAL_MS}.
63
+ */
64
+ const MAX_EVENTS = 1000;
65
+ /**
66
+ * Maximum events to retry after a failed clearcut flush
67
+ */
68
+ const MAX_RETRY_EVENTS = 100;
48
69
  // Singleton class for batch posting log events to Clearcut. When a new event comes in, the elapsed time
49
70
  // is checked and events are flushed to Clearcut if at least a minute has passed since the last flush.
50
71
  export class ClearcutLogger {
51
72
  static instance;
52
73
  config;
74
+ /**
75
+ * Queue of pending events that need to be flushed to the server. New events
76
+ * are added to this queue and then flushed on demand (via `flushToClearcut`)
77
+ */
53
78
  events;
54
- last_flush_time = Date.now();
55
- flush_interval_ms = 1000 * 60; // Wait at least a minute before flushing events.
56
- max_events = 1000; // Maximum events to keep in memory
57
- max_retry_events = 100; // Maximum failed events to retry
58
- flushing = false; // Prevent concurrent flush operations
59
- pendingFlush = false; // Track if a flush was requested during an ongoing flush
79
+ /**
80
+ * The last time that the events were successfully flushed to the server.
81
+ */
82
+ lastFlushTime = Date.now();
83
+ /**
84
+ * the value is true when there is a pending flush happening. This prevents
85
+ * concurrent flush operations.
86
+ */
87
+ flushing = false;
88
+ /**
89
+ * This value is true when a flush was requested during an ongoing flush.
90
+ */
91
+ pendingFlush = false;
60
92
  constructor(config) {
61
93
  this.config = config;
62
- this.events = new FixedDeque(Array, this.max_events);
94
+ this.events = new FixedDeque(Array, MAX_EVENTS);
63
95
  }
64
96
  static getInstance(config) {
65
97
  if (config === undefined || !config?.getUsageStatisticsEnabled())
@@ -77,7 +109,7 @@ export class ClearcutLogger {
77
109
  enqueueLogEvent(event) {
78
110
  try {
79
111
  // Manually handle overflow for FixedDeque, which throws when full.
80
- const wasAtCapacity = this.events.size >= this.max_events;
112
+ const wasAtCapacity = this.events.size >= MAX_EVENTS;
81
113
  if (wasAtCapacity) {
82
114
  this.events.shift(); // Evict oldest element to make space.
83
115
  }
@@ -97,28 +129,12 @@ export class ClearcutLogger {
97
129
  }
98
130
  }
99
131
  }
100
- addDefaultFields(data) {
101
- const totalAccounts = getLifetimeGoogleAccounts();
102
- const surface = determineSurface();
103
- const defaultLogMetadata = [
104
- {
105
- gemini_cli_key: EventMetadataKey.GEMINI_CLI_GOOGLE_ACCOUNTS_COUNT,
106
- value: totalAccounts.toString(),
107
- },
108
- {
109
- gemini_cli_key: EventMetadataKey.GEMINI_CLI_SURFACE,
110
- value: surface,
111
- },
112
- ];
113
- data.push(...defaultLogMetadata);
114
- }
115
132
  createLogEvent(name, data) {
116
133
  const email = getCachedGoogleAccount();
117
- // Add default fields that should exist for all logs
118
- this.addDefaultFields(data);
134
+ data = addDefaultFields(data);
119
135
  const logEvent = {
120
136
  console_type: 'GEMINI_CLI',
121
- application: 102,
137
+ application: 102, // GEMINI_CLI
122
138
  event_name: name,
123
139
  event_metadata: [data],
124
140
  };
@@ -132,7 +148,7 @@ export class ClearcutLogger {
132
148
  return logEvent;
133
149
  }
134
150
  flushIfNeeded() {
135
- if (Date.now() - this.last_flush_time < this.flush_interval_ms) {
151
+ if (Date.now() - this.lastFlushTime < FLUSH_INTERVAL_MS) {
136
152
  return;
137
153
  }
138
154
  this.flushToClearcut().catch((error) => {
@@ -153,125 +169,58 @@ export class ClearcutLogger {
153
169
  }
154
170
  const eventsToSend = this.events.toArray();
155
171
  this.events.clear();
156
- return new Promise((resolve, reject) => {
157
- const request = [
158
- {
159
- log_source_name: 'CONCORD',
160
- request_time_ms: Date.now(),
161
- log_event: eventsToSend,
162
- },
163
- ];
164
- const body = safeJsonStringify(request);
165
- const options = {
166
- hostname: 'play.googleapis.com',
167
- path: '/log',
172
+ const request = [
173
+ {
174
+ log_source_name: 'CONCORD',
175
+ request_time_ms: Date.now(),
176
+ log_event: eventsToSend,
177
+ },
178
+ ];
179
+ let result = {};
180
+ try {
181
+ const response = await fetch(CLEARCUT_URL, {
168
182
  method: 'POST',
169
- headers: { 'Content-Length': Buffer.byteLength(body) },
170
- timeout: 30000, // 30-second timeout
171
- };
172
- const bufs = [];
173
- const req = https.request({
174
- ...options,
175
- agent: this.getProxyAgent(),
176
- }, (res) => {
177
- res.on('error', reject); // Handle stream errors
178
- res.on('data', (buf) => bufs.push(buf));
179
- res.on('end', () => {
180
- try {
181
- const buffer = Buffer.concat(bufs);
182
- // Check if we got a successful response
183
- if (res.statusCode &&
184
- res.statusCode >= 200 &&
185
- res.statusCode < 300) {
186
- resolve({ buffer, statusCode: res.statusCode });
187
- }
188
- else {
189
- // HTTP error - reject with status code for retry handling
190
- reject(new Error(`HTTP ${res.statusCode}: ${res.statusMessage}`));
191
- }
192
- }
193
- catch (e) {
194
- reject(e);
195
- }
196
- });
197
- });
198
- req.on('error', (e) => {
199
- // Network-level error
200
- reject(e);
201
- });
202
- req.on('timeout', () => {
203
- if (!req.destroyed) {
204
- req.destroy(new Error('Request timeout after 30 seconds'));
205
- }
183
+ body: safeJsonStringify(request),
184
+ headers: {
185
+ 'Content-Type': 'application/json',
186
+ },
206
187
  });
207
- req.end(body);
208
- })
209
- .then(({ buffer }) => {
210
- try {
211
- this.last_flush_time = Date.now();
212
- return this.decodeLogResponse(buffer) || {};
188
+ const responseBody = await response.text();
189
+ if (response.status >= 200 && response.status < 300) {
190
+ this.lastFlushTime = Date.now();
191
+ const nextRequestWaitMs = Number(JSON.parse(responseBody)[0]);
192
+ result = {
193
+ ...result,
194
+ nextRequestWaitMs,
195
+ };
213
196
  }
214
- catch (error) {
215
- console.error('Error decoding log response:', error);
216
- return {};
197
+ else {
198
+ if (this.config?.getDebugMode()) {
199
+ console.error(`Error flushing log events: HTTP ${response.status}: ${response.statusText}`);
200
+ }
201
+ // Re-queue failed events for retry
202
+ this.requeueFailedEvents(eventsToSend);
217
203
  }
218
- })
219
- .catch((error) => {
220
- // Handle both network-level and HTTP-level errors
204
+ }
205
+ catch (e) {
221
206
  if (this.config?.getDebugMode()) {
222
- console.error('Error flushing log events:', error);
207
+ console.error('Error flushing log events:', e);
223
208
  }
224
209
  // Re-queue failed events for retry
225
210
  this.requeueFailedEvents(eventsToSend);
226
- // Return empty response to maintain the Promise<LogResponse> contract
227
- return {};
228
- })
229
- .finally(() => {
230
- this.flushing = false;
231
- // If a flush was requested while we were flushing, flush again
232
- if (this.pendingFlush) {
233
- this.pendingFlush = false;
234
- // Fire and forget the pending flush
235
- this.flushToClearcut().catch((error) => {
236
- if (this.config?.getDebugMode()) {
237
- console.debug('Error in pending flush to Clearcut:', error);
238
- }
239
- });
240
- }
241
- });
242
- }
243
- // Visible for testing. Decodes protobuf-encoded response from Clearcut server.
244
- decodeLogResponse(buf) {
245
- // TODO(obrienowen): return specific errors to facilitate debugging.
246
- if (buf.length < 1) {
247
- return undefined;
248
- }
249
- // The first byte of the buffer is `field<<3 | type`. We're looking for field
250
- // 1, with type varint, represented by type=0. If the first byte isn't 8, that
251
- // means field 1 is missing or the message is corrupted. Either way, we return
252
- // undefined.
253
- if (buf.readUInt8(0) !== 8) {
254
- return undefined;
255
211
  }
256
- let ms = BigInt(0);
257
- let cont = true;
258
- // In each byte, the most significant bit is the continuation bit. If it's
259
- // set, we keep going. The lowest 7 bits, are data bits. They are concatenated
260
- // in reverse order to form the final number.
261
- for (let i = 1; cont && i < buf.length; i++) {
262
- const byte = buf.readUInt8(i);
263
- ms |= BigInt(byte & 0x7f) << BigInt(7 * (i - 1));
264
- cont = (byte & 0x80) !== 0;
265
- }
266
- if (cont) {
267
- // We have fallen off the buffer without seeing a terminating byte. The
268
- // message is corrupted.
269
- return undefined;
212
+ this.flushing = false;
213
+ // If a flush was requested while we were flushing, flush again
214
+ if (this.pendingFlush) {
215
+ this.pendingFlush = false;
216
+ // Fire and forget the pending flush
217
+ this.flushToClearcut().catch((error) => {
218
+ if (this.config?.getDebugMode()) {
219
+ console.debug('Error in pending flush to Clearcut:', error);
220
+ }
221
+ });
270
222
  }
271
- const returnVal = {
272
- nextRequestWaitMs: Number(ms),
273
- };
274
- return returnVal;
223
+ return result;
275
224
  }
276
225
  logStartSessionEvent(event) {
277
226
  const data = [
@@ -570,6 +519,12 @@ export class ClearcutLogger {
570
519
  value: JSON.stringify(event.subcommand),
571
520
  });
572
521
  }
522
+ if (event.status) {
523
+ data.push({
524
+ gemini_cli_key: EventMetadataKey.GEMINI_CLI_SLASH_COMMAND_STATUS,
525
+ value: JSON.stringify(event.status),
526
+ });
527
+ }
573
528
  this.enqueueLogEvent(this.createLogEvent(slash_command_event_name, data));
574
529
  this.flushIfNeeded();
575
530
  }
@@ -593,6 +548,20 @@ export class ClearcutLogger {
593
548
  this.enqueueLogEvent(this.createLogEvent(ide_connection_event_name, data));
594
549
  this.flushIfNeeded();
595
550
  }
551
+ logKittySequenceOverflowEvent(event) {
552
+ const data = [
553
+ {
554
+ gemini_cli_key: EventMetadataKey.GEMINI_CLI_KITTY_SEQUENCE_LENGTH,
555
+ value: event.sequence_length.toString(),
556
+ },
557
+ {
558
+ gemini_cli_key: EventMetadataKey.GEMINI_CLI_KITTY_TRUNCATED_SEQUENCE,
559
+ value: event.truncated_sequence,
560
+ },
561
+ ];
562
+ this.enqueueLogEvent(this.createLogEvent(kitty_sequence_overflow_event_name, data));
563
+ this.flushIfNeeded();
564
+ }
596
565
  logEndSessionEvent(event) {
597
566
  const data = [
598
567
  {
@@ -625,14 +594,13 @@ export class ClearcutLogger {
625
594
  }
626
595
  requeueFailedEvents(eventsToSend) {
627
596
  // Add the events back to the front of the queue to be retried, but limit retry queue size
628
- const eventsToRetry = eventsToSend.slice(-this.max_retry_events); // Keep only the most recent events
597
+ const eventsToRetry = eventsToSend.slice(-MAX_RETRY_EVENTS); // Keep only the most recent events
629
598
  // Log a warning if we're dropping events
630
- if (eventsToSend.length > this.max_retry_events &&
631
- this.config?.getDebugMode()) {
632
- console.warn(`ClearcutLogger: Dropping ${eventsToSend.length - this.max_retry_events} events due to retry queue limit. Total events: ${eventsToSend.length}, keeping: ${this.max_retry_events}`);
599
+ if (eventsToSend.length > MAX_RETRY_EVENTS && this.config?.getDebugMode()) {
600
+ console.warn(`ClearcutLogger: Dropping ${eventsToSend.length - MAX_RETRY_EVENTS} events due to retry queue limit. Total events: ${eventsToSend.length}, keeping: ${MAX_RETRY_EVENTS}`);
633
601
  }
634
602
  // Determine how many events can be re-queued
635
- const availableSpace = this.max_events - this.events.size;
603
+ const availableSpace = MAX_EVENTS - this.events.size;
636
604
  const numEventsToRequeue = Math.min(eventsToRetry.length, availableSpace);
637
605
  if (numEventsToRequeue === 0) {
638
606
  if (this.config?.getDebugMode()) {
@@ -648,7 +616,7 @@ export class ClearcutLogger {
648
616
  this.events.unshift(eventsToRequeue[i]);
649
617
  }
650
618
  // Clear any potential overflow
651
- while (this.events.size > this.max_events) {
619
+ while (this.events.size > MAX_EVENTS) {
652
620
  this.events.pop();
653
621
  }
654
622
  if (this.config?.getDebugMode()) {
@@ -656,4 +624,27 @@ export class ClearcutLogger {
656
624
  }
657
625
  }
658
626
  }
627
+ /**
628
+ * Adds default fields to data, and returns a new data array. This fields
629
+ * should exist on all log events.
630
+ */
631
+ function addDefaultFields(data) {
632
+ const totalAccounts = getLifetimeGoogleAccounts();
633
+ const surface = determineSurface();
634
+ const defaultLogMetadata = [
635
+ {
636
+ gemini_cli_key: EventMetadataKey.GEMINI_CLI_GOOGLE_ACCOUNTS_COUNT,
637
+ value: `${totalAccounts}`,
638
+ },
639
+ {
640
+ gemini_cli_key: EventMetadataKey.GEMINI_CLI_SURFACE,
641
+ value: surface,
642
+ },
643
+ ];
644
+ return [...data, ...defaultLogMetadata];
645
+ }
646
+ export const TEST_ONLY = {
647
+ MAX_RETRY_EVENTS,
648
+ MAX_EVENTS,
649
+ };
659
650
  //# sourceMappingURL=clearcut-logger.js.map
@@ -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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"}