@google/gemini-cli-core 0.21.0-nightly.20251217.db643e916 → 0.21.0-nightly.20251219.70696e364

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 (212) hide show
  1. package/dist/google-gemini-cli-core-0.21.0-nightly.20251218.739c02bd6.tgz +0 -0
  2. package/dist/index.d.ts +1 -1
  3. package/dist/index.js +1 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/agents/codebase-investigator.d.ts +2 -2
  6. package/dist/src/agents/codebase-investigator.js +6 -5
  7. package/dist/src/agents/codebase-investigator.js.map +1 -1
  8. package/dist/src/agents/codebase-investigator.test.js +2 -2
  9. package/dist/src/agents/codebase-investigator.test.js.map +1 -1
  10. package/dist/src/agents/delegate-to-agent-tool.js +8 -4
  11. package/dist/src/agents/delegate-to-agent-tool.js.map +1 -1
  12. package/dist/src/agents/delegate-to-agent-tool.test.js +5 -4
  13. package/dist/src/agents/delegate-to-agent-tool.test.js.map +1 -1
  14. package/dist/src/agents/{executor.d.ts → local-executor.d.ts} +5 -11
  15. package/dist/src/agents/{executor.js → local-executor.js} +75 -51
  16. package/dist/src/agents/local-executor.js.map +1 -0
  17. package/dist/src/agents/{executor.test.js → local-executor.test.js} +61 -45
  18. package/dist/src/agents/local-executor.test.js.map +1 -0
  19. package/dist/src/agents/{invocation.d.ts → local-invocation.d.ts} +5 -6
  20. package/dist/src/agents/{invocation.js → local-invocation.js} +8 -9
  21. package/dist/src/agents/local-invocation.js.map +1 -0
  22. package/dist/src/agents/{invocation.test.js → local-invocation.test.js} +18 -17
  23. package/dist/src/agents/local-invocation.test.js.map +1 -0
  24. package/dist/src/agents/registry.d.ts +1 -0
  25. package/dist/src/agents/registry.js +77 -28
  26. package/dist/src/agents/registry.js.map +1 -1
  27. package/dist/src/agents/registry.test.js +130 -5
  28. package/dist/src/agents/registry.test.js.map +1 -1
  29. package/dist/src/agents/remote-invocation.d.ts +21 -0
  30. package/dist/src/agents/remote-invocation.js +31 -0
  31. package/dist/src/agents/remote-invocation.js.map +1 -0
  32. package/dist/src/agents/remote-invocation.test.d.ts +6 -0
  33. package/dist/src/agents/remote-invocation.test.js +35 -0
  34. package/dist/src/agents/remote-invocation.test.js.map +1 -0
  35. package/dist/src/agents/subagent-tool-wrapper.js +7 -3
  36. package/dist/src/agents/subagent-tool-wrapper.js.map +1 -1
  37. package/dist/src/agents/subagent-tool-wrapper.test.js +10 -9
  38. package/dist/src/agents/subagent-tool-wrapper.test.js.map +1 -1
  39. package/dist/src/agents/toml-loader.d.ts +65 -0
  40. package/dist/src/agents/toml-loader.js +176 -0
  41. package/dist/src/agents/toml-loader.js.map +1 -0
  42. package/dist/src/agents/toml-loader.test.d.ts +6 -0
  43. package/dist/src/agents/toml-loader.test.js +190 -0
  44. package/dist/src/agents/toml-loader.test.js.map +1 -0
  45. package/dist/src/agents/types.d.ts +12 -4
  46. package/dist/src/availability/modelAvailabilityService.d.ts +2 -1
  47. package/dist/src/availability/policyCatalog.d.ts +1 -0
  48. package/dist/src/availability/policyCatalog.js +6 -8
  49. package/dist/src/availability/policyCatalog.js.map +1 -1
  50. package/dist/src/availability/policyCatalog.test.js +2 -2
  51. package/dist/src/availability/policyCatalog.test.js.map +1 -1
  52. package/dist/src/availability/policyHelpers.d.ts +9 -5
  53. package/dist/src/availability/policyHelpers.js +43 -37
  54. package/dist/src/availability/policyHelpers.js.map +1 -1
  55. package/dist/src/availability/policyHelpers.test.js +58 -20
  56. package/dist/src/availability/policyHelpers.test.js.map +1 -1
  57. package/dist/src/code_assist/oauth2.js +1 -1
  58. package/dist/src/code_assist/oauth2.js.map +1 -1
  59. package/dist/src/code_assist/oauth2.test.js +6 -8
  60. package/dist/src/code_assist/oauth2.test.js.map +1 -1
  61. package/dist/src/code_assist/server.js +3 -9
  62. package/dist/src/code_assist/server.js.map +1 -1
  63. package/dist/src/code_assist/server.test.js +18 -3
  64. package/dist/src/code_assist/server.test.js.map +1 -1
  65. package/dist/src/code_assist/telemetry.d.ts +6 -1
  66. package/dist/src/code_assist/telemetry.js +92 -3
  67. package/dist/src/code_assist/telemetry.js.map +1 -1
  68. package/dist/src/code_assist/telemetry.test.js +206 -18
  69. package/dist/src/code_assist/telemetry.test.js.map +1 -1
  70. package/dist/src/config/config.d.ts +9 -13
  71. package/dist/src/config/config.js +68 -38
  72. package/dist/src/config/config.js.map +1 -1
  73. package/dist/src/config/config.test.js +134 -22
  74. package/dist/src/config/config.test.js.map +1 -1
  75. package/dist/src/config/defaultModelConfigs.js +11 -0
  76. package/dist/src/config/defaultModelConfigs.js.map +1 -1
  77. package/dist/src/config/flashFallback.test.js +0 -37
  78. package/dist/src/config/flashFallback.test.js.map +1 -1
  79. package/dist/src/config/models.d.ts +23 -10
  80. package/dist/src/config/models.js +65 -23
  81. package/dist/src/config/models.js.map +1 -1
  82. package/dist/src/config/models.test.js +57 -76
  83. package/dist/src/config/models.test.js.map +1 -1
  84. package/dist/src/config/storage.d.ts +2 -0
  85. package/dist/src/config/storage.js +6 -0
  86. package/dist/src/config/storage.js.map +1 -1
  87. package/dist/src/config/storage.test.js +8 -0
  88. package/dist/src/config/storage.test.js.map +1 -1
  89. package/dist/src/core/baseLlmClient.d.ts +3 -1
  90. package/dist/src/core/baseLlmClient.js +51 -43
  91. package/dist/src/core/baseLlmClient.js.map +1 -1
  92. package/dist/src/core/baseLlmClient.test.js +12 -19
  93. package/dist/src/core/baseLlmClient.test.js.map +1 -1
  94. package/dist/src/core/client.js +18 -33
  95. package/dist/src/core/client.js.map +1 -1
  96. package/dist/src/core/client.test.js +14 -65
  97. package/dist/src/core/client.test.js.map +1 -1
  98. package/dist/src/core/contentGenerator.js +1 -1
  99. package/dist/src/core/contentGenerator.js.map +1 -1
  100. package/dist/src/core/contentGenerator.test.js +0 -6
  101. package/dist/src/core/contentGenerator.test.js.map +1 -1
  102. package/dist/src/core/geminiChat.js +29 -88
  103. package/dist/src/core/geminiChat.js.map +1 -1
  104. package/dist/src/core/geminiChat.test.js +35 -257
  105. package/dist/src/core/geminiChat.test.js.map +1 -1
  106. package/dist/src/core/geminiChat_network_retry.test.js +6 -6
  107. package/dist/src/core/geminiChat_network_retry.test.js.map +1 -1
  108. package/dist/src/core/prompts.js +6 -7
  109. package/dist/src/core/prompts.js.map +1 -1
  110. package/dist/src/core/prompts.test.js +10 -7
  111. package/dist/src/core/prompts.test.js.map +1 -1
  112. package/dist/src/core/turn.d.ts +1 -0
  113. package/dist/src/core/turn.js +3 -2
  114. package/dist/src/core/turn.js.map +1 -1
  115. package/dist/src/fallback/handler.js +54 -121
  116. package/dist/src/fallback/handler.js.map +1 -1
  117. package/dist/src/fallback/handler.test.js +80 -285
  118. package/dist/src/fallback/handler.test.js.map +1 -1
  119. package/dist/src/generated/git-commit.d.ts +2 -2
  120. package/dist/src/generated/git-commit.js +2 -2
  121. package/dist/src/hooks/hookPlanner.js +3 -1
  122. package/dist/src/hooks/hookPlanner.js.map +1 -1
  123. package/dist/src/hooks/hookPlanner.test.js +61 -0
  124. package/dist/src/hooks/hookPlanner.test.js.map +1 -1
  125. package/dist/src/hooks/hookRegistry.d.ts +1 -1
  126. package/dist/src/hooks/hookRegistry.js +2 -2
  127. package/dist/src/hooks/hookRegistry.js.map +1 -1
  128. package/dist/src/hooks/hookRegistry.test.js +73 -0
  129. package/dist/src/hooks/hookRegistry.test.js.map +1 -1
  130. package/dist/src/hooks/hookRunner.js +2 -2
  131. package/dist/src/hooks/hookRunner.js.map +1 -1
  132. package/dist/src/hooks/hookRunner.test.js +23 -0
  133. package/dist/src/hooks/hookRunner.test.js.map +1 -1
  134. package/dist/src/hooks/types.d.ts +2 -0
  135. package/dist/src/hooks/types.js.map +1 -1
  136. package/dist/src/index.d.ts +2 -0
  137. package/dist/src/index.js +2 -0
  138. package/dist/src/index.js.map +1 -1
  139. package/dist/src/routing/modelRouterService.js +0 -15
  140. package/dist/src/routing/modelRouterService.js.map +1 -1
  141. package/dist/src/routing/modelRouterService.test.js +0 -62
  142. package/dist/src/routing/modelRouterService.test.js.map +1 -1
  143. package/dist/src/routing/strategies/classifierStrategy.js +10 -21
  144. package/dist/src/routing/strategies/classifierStrategy.js.map +1 -1
  145. package/dist/src/routing/strategies/classifierStrategy.test.js +2 -1
  146. package/dist/src/routing/strategies/classifierStrategy.test.js.map +1 -1
  147. package/dist/src/routing/strategies/fallbackStrategy.js +20 -12
  148. package/dist/src/routing/strategies/fallbackStrategy.js.map +1 -1
  149. package/dist/src/routing/strategies/fallbackStrategy.test.js +63 -39
  150. package/dist/src/routing/strategies/fallbackStrategy.test.js.map +1 -1
  151. package/dist/src/routing/strategies/overrideStrategy.js +4 -3
  152. package/dist/src/routing/strategies/overrideStrategy.js.map +1 -1
  153. package/dist/src/services/chatCompressionService.js +3 -1
  154. package/dist/src/services/chatCompressionService.js.map +1 -1
  155. package/dist/src/services/loopDetectionService.js +2 -1
  156. package/dist/src/services/loopDetectionService.js.map +1 -1
  157. package/dist/src/services/loopDetectionService.test.js +14 -8
  158. package/dist/src/services/loopDetectionService.test.js.map +1 -1
  159. package/dist/src/services/modelConfig.integration.test.js +1 -1
  160. package/dist/src/services/modelConfig.integration.test.js.map +1 -1
  161. package/dist/src/services/shellExecutionService.js +18 -2
  162. package/dist/src/services/shellExecutionService.js.map +1 -1
  163. package/dist/src/services/test-data/resolved-aliases-retry.golden.json +16 -0
  164. package/dist/src/services/test-data/resolved-aliases.golden.json +16 -0
  165. package/dist/src/telemetry/sdk.js +2 -2
  166. package/dist/src/telemetry/sdk.js.map +1 -1
  167. package/dist/src/tools/ripGrep.js +2 -2
  168. package/dist/src/tools/ripGrep.js.map +1 -1
  169. package/dist/src/tools/tool-names.d.ts +13 -0
  170. package/dist/src/tools/tool-names.js +54 -0
  171. package/dist/src/tools/tool-names.js.map +1 -1
  172. package/dist/src/tools/tool-names.test.d.ts +6 -0
  173. package/dist/src/tools/tool-names.test.js +43 -0
  174. package/dist/src/tools/tool-names.test.js.map +1 -0
  175. package/dist/src/tools/tool-registry.d.ts +0 -1
  176. package/dist/src/tools/tool-registry.js +1 -1
  177. package/dist/src/tools/tool-registry.js.map +1 -1
  178. package/dist/src/tools/tool-registry.test.js +2 -1
  179. package/dist/src/tools/tool-registry.test.js.map +1 -1
  180. package/dist/src/utils/checkpointUtils.js +1 -1
  181. package/dist/src/utils/checkpointUtils.js.map +1 -1
  182. package/dist/src/utils/checkpointUtils.test.js +1 -1
  183. package/dist/src/utils/checkpointUtils.test.js.map +1 -1
  184. package/dist/src/utils/editCorrector.js +1 -1
  185. package/dist/src/utils/editCorrector.js.map +1 -1
  186. package/dist/src/utils/editCorrector.test.js +2 -2
  187. package/dist/src/utils/editCorrector.test.js.map +1 -1
  188. package/dist/src/utils/environmentContext.d.ts +1 -0
  189. package/dist/src/utils/environmentContext.js +1 -0
  190. package/dist/src/utils/environmentContext.js.map +1 -1
  191. package/dist/src/utils/events.d.ts +0 -16
  192. package/dist/src/utils/events.js +0 -9
  193. package/dist/src/utils/events.js.map +1 -1
  194. package/dist/src/utils/flashFallback.test.js +1 -1
  195. package/dist/src/utils/flashFallback.test.js.map +1 -1
  196. package/dist/src/utils/googleQuotaErrors.js +20 -0
  197. package/dist/src/utils/googleQuotaErrors.js.map +1 -1
  198. package/dist/src/utils/googleQuotaErrors.test.js +53 -2
  199. package/dist/src/utils/googleQuotaErrors.test.js.map +1 -1
  200. package/dist/src/utils/retry.js +2 -16
  201. package/dist/src/utils/retry.js.map +1 -1
  202. package/dist/src/utils/retry.test.js +7 -22
  203. package/dist/src/utils/retry.test.js.map +1 -1
  204. package/dist/tsconfig.tsbuildinfo +1 -1
  205. package/package.json +1 -6
  206. package/dist/google-gemini-cli-core-0.21.0-nightly.20251216.bb0c0d8ee.tgz +0 -0
  207. package/dist/src/agents/executor.js.map +0 -1
  208. package/dist/src/agents/executor.test.js.map +0 -1
  209. package/dist/src/agents/invocation.js.map +0 -1
  210. package/dist/src/agents/invocation.test.js.map +0 -1
  211. /package/dist/src/agents/{executor.test.d.ts → local-executor.test.d.ts} +0 -0
  212. /package/dist/src/agents/{invocation.test.d.ts → local-invocation.test.d.ts} +0 -0
@@ -5,9 +5,52 @@
5
5
  */
6
6
  import { FinishReason } from '@google/genai';
7
7
  import { getCitations } from '../utils/generateContentResponseUtilities.js';
8
- import { ActionStatus, } from './types.js';
8
+ import { ActionStatus, ConversationInteractionInteraction, } from './types.js';
9
+ import { debugLogger } from '../utils/debugLogger.js';
10
+ import { getCodeAssistServer } from './codeAssist.js';
11
+ import { EDIT_TOOL_NAMES } from '../tools/tool-names.js';
12
+ import { getErrorMessage } from '../utils/errors.js';
13
+ import { ToolConfirmationOutcome } from '../tools/tools.js';
14
+ export async function recordConversationOffered(server, traceId, response, streamingLatency, abortSignal) {
15
+ try {
16
+ if (traceId) {
17
+ const offered = createConversationOffered(response, traceId, abortSignal, streamingLatency);
18
+ if (offered) {
19
+ await server.recordConversationOffered(offered);
20
+ }
21
+ }
22
+ }
23
+ catch (error) {
24
+ debugLogger.warn(`Error recording tool call interactions: ${getErrorMessage(error)}`);
25
+ }
26
+ }
27
+ export async function recordToolCallInteractions(config, toolCalls) {
28
+ // Only send interaction events for responses that contain function calls.
29
+ if (toolCalls.length === 0) {
30
+ return;
31
+ }
32
+ try {
33
+ const server = getCodeAssistServer(config);
34
+ if (!server) {
35
+ return;
36
+ }
37
+ const interaction = summarizeToolCalls(toolCalls);
38
+ if (interaction) {
39
+ await server.recordConversationInteraction(interaction);
40
+ }
41
+ }
42
+ catch (error) {
43
+ debugLogger.warn(`Error recording tool call interactions: ${getErrorMessage(error)}`);
44
+ }
45
+ }
9
46
  export function createConversationOffered(response, traceId, signal, streamingLatency) {
10
- const actionStatus = getStatus(response, signal);
47
+ // Only send conversation offered events for responses that contain function
48
+ // calls. Non-function call events don't represent user actionable
49
+ // 'suggestions'.
50
+ if ((response.functionCalls?.length || 0) === 0) {
51
+ return;
52
+ }
53
+ const actionStatus = getStatusFromResponse(response, signal);
11
54
  return {
12
55
  citationCount: String(getCitations(response).length),
13
56
  includedCode: includesCode(response),
@@ -17,6 +60,52 @@ export function createConversationOffered(response, traceId, signal, streamingLa
17
60
  isAgentic: true,
18
61
  };
19
62
  }
63
+ function summarizeToolCalls(toolCalls) {
64
+ let acceptedToolCalls = 0;
65
+ let actionStatus = undefined;
66
+ let traceId = undefined;
67
+ // Treat file edits as ACCEPT_FILE and everything else as unknown.
68
+ let isEdit = false;
69
+ // Iterate the tool calls and summarize them into a single conversation
70
+ // interaction so that the ConversationOffered and ConversationInteraction
71
+ // events are 1:1 in telemetry.
72
+ for (const toolCall of toolCalls) {
73
+ traceId ||= toolCall.request.traceId;
74
+ // If any tool call is canceled, we treat the entire interaction as canceled.
75
+ if (toolCall.status === 'cancelled') {
76
+ actionStatus = ActionStatus.ACTION_STATUS_CANCELLED;
77
+ break;
78
+ }
79
+ // If any tool call encounters an error, we treat the entire interaction as
80
+ // having errored.
81
+ if (toolCall.status === 'error') {
82
+ actionStatus = ActionStatus.ACTION_STATUS_ERROR_UNKNOWN;
83
+ break;
84
+ }
85
+ // Record if the tool call was accepted.
86
+ if (toolCall.outcome !== ToolConfirmationOutcome.Cancel) {
87
+ acceptedToolCalls++;
88
+ // Edits are ACCEPT_FILE, everything else is UNKNOWN.
89
+ if (EDIT_TOOL_NAMES.has(toolCall.request.name)) {
90
+ isEdit ||= true;
91
+ }
92
+ }
93
+ }
94
+ // Only file interaction telemetry if 100% of the tool calls were accepted.
95
+ return traceId && acceptedToolCalls / toolCalls.length >= 1
96
+ ? createConversationInteraction(traceId, actionStatus || ActionStatus.ACTION_STATUS_NO_ERROR, isEdit
97
+ ? ConversationInteractionInteraction.ACCEPT_FILE
98
+ : ConversationInteractionInteraction.UNKNOWN)
99
+ : undefined;
100
+ }
101
+ function createConversationInteraction(traceId, status, interaction) {
102
+ return {
103
+ traceId,
104
+ status,
105
+ interaction,
106
+ isAgentic: true,
107
+ };
108
+ }
20
109
  function includesCode(resp) {
21
110
  if (!resp.candidates) {
22
111
  return false;
@@ -33,7 +122,7 @@ function includesCode(resp) {
33
122
  }
34
123
  return false;
35
124
  }
36
- function getStatus(response, signal) {
125
+ function getStatusFromResponse(response, signal) {
37
126
  if (signal?.aborted) {
38
127
  return ActionStatus.ACTION_STATUS_CANCELLED;
39
128
  }
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../../src/code_assist/telemetry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAgC,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,EACL,YAAY,GAGb,MAAM,YAAY,CAAC;AAEpB,MAAM,UAAU,yBAAyB,CACvC,QAAiC,EACjC,OAAe,EACf,MAA+B,EAC/B,gBAAkC;IAElC,MAAM,YAAY,GAAG,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAEjD,OAAO;QACL,aAAa,EAAE,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;QACpD,YAAY,EAAE,YAAY,CAAC,QAAQ,CAAC;QACpC,MAAM,EAAE,YAAY;QACpB,OAAO;QACP,gBAAgB;QAChB,SAAS,EAAE,IAAI;KAChB,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,IAA6B;IACjD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnD,SAAS;QACX,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC3C,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClD,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,SAAS,CAChB,QAAiC,EACjC,MAA+B;IAE/B,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;QACpB,OAAO,YAAY,CAAC,uBAAuB,CAAC;IAC9C,CAAC;IAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvB,OAAO,YAAY,CAAC,2BAA2B,CAAC;IAClD,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,OAAO,YAAY,CAAC,mBAAmB,CAAC;IAC1C,CAAC;IAED,OAAO,YAAY,CAAC,sBAAsB,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,YAAoB;IAC1D,OAAO,GAAG,YAAY,GAAG,IAAI,GAAG,CAAC;AACnC,CAAC;AAED,SAAS,QAAQ,CAAC,QAAiC;IACjD,oDAAoD;IACpD,IACE,QAAQ,CAAC,eAAe;QACxB,CAAC,QAAQ,CAAC,eAAe,EAAE,gBAAgB,EAAE,EAAE,EAC/C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,MAAM,SAAS,IAAI,QAAQ,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;QAClD,yEAAyE;QACzE,IACE,SAAS,CAAC,YAAY;YACtB,SAAS,CAAC,YAAY,KAAK,YAAY,CAAC,IAAI;YAC5C,SAAS,CAAC,YAAY,KAAK,YAAY,CAAC,UAAU,EAClD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../../src/code_assist/telemetry.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,13 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { describe, it, expect, vi } from 'vitest';
7
- import { createConversationOffered, formatProtoJsonDuration, } from './telemetry.js';
8
- import { ActionStatus } from './types.js';
9
- import { FinishReason, GenerateContentResponse } from '@google/genai';
10
- function createMockResponse(candidates = [], ok = true) {
6
+ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
7
+ import { createConversationOffered, formatProtoJsonDuration, recordConversationOffered, recordToolCallInteractions, } from './telemetry.js';
8
+ import { ActionStatus, ConversationInteractionInteraction, } from './types.js';
9
+ import { FinishReason, GenerateContentResponse, } from '@google/genai';
10
+ import * as codeAssist from './codeAssist.js';
11
+ import { ToolConfirmationOutcome, } from '../tools/tools.js';
12
+ function createMockResponse(candidates = [], ok = true, functionCalls = undefined) {
11
13
  const response = new GenerateContentResponse();
12
14
  response.candidates = candidates;
13
15
  response.sdkHttpResponse = {
@@ -16,6 +18,17 @@ function createMockResponse(candidates = [], ok = true) {
16
18
  },
17
19
  json: async () => ({}),
18
20
  };
21
+ // If functionCalls is explicitly provided, mock the getter.
22
+ // Otherwise, let the default behavior (if any) or undefined prevail.
23
+ // In the real SDK, functionCalls is a getter derived from candidates.
24
+ // For testing `createConversationOffered` which guards on functionCalls,
25
+ // we often need to force it to be present.
26
+ if (functionCalls !== undefined) {
27
+ Object.defineProperty(response, 'functionCalls', {
28
+ get: () => functionCalls,
29
+ configurable: true,
30
+ });
31
+ }
19
32
  return response;
20
33
  }
21
34
  describe('telemetry', () => {
@@ -35,7 +48,7 @@ describe('telemetry', () => {
35
48
  },
36
49
  finishReason: FinishReason.STOP,
37
50
  },
38
- ]);
51
+ ], true, [{ name: 'someTool', args: {} }]);
39
52
  const traceId = 'test-trace-id';
40
53
  const streamingLatency = { totalLatency: '1s' };
41
54
  const result = createConversationOffered(response, traceId, undefined, streamingLatency);
@@ -48,17 +61,34 @@ describe('telemetry', () => {
48
61
  isAgentic: true,
49
62
  });
50
63
  });
64
+ it('should return undefined if no function calls', () => {
65
+ const response = createMockResponse([
66
+ {
67
+ index: 0,
68
+ content: {
69
+ role: 'model',
70
+ parts: [{ text: 'response without function calls' }],
71
+ },
72
+ },
73
+ ], true, []);
74
+ const result = createConversationOffered(response, 'trace-id', undefined, {});
75
+ expect(result).toBeUndefined();
76
+ });
51
77
  it('should set status to CANCELLED if signal is aborted', () => {
52
- const response = createMockResponse();
78
+ const response = createMockResponse([], true, [
79
+ { name: 'tool', args: {} },
80
+ ]);
53
81
  const signal = new AbortController().signal;
54
82
  vi.spyOn(signal, 'aborted', 'get').mockReturnValue(true);
55
83
  const result = createConversationOffered(response, 'trace-id', signal, {});
56
- expect(result.status).toBe(ActionStatus.ACTION_STATUS_CANCELLED);
84
+ expect(result?.status).toBe(ActionStatus.ACTION_STATUS_CANCELLED);
57
85
  });
58
86
  it('should set status to ERROR_UNKNOWN if response has error (non-OK SDK response)', () => {
59
- const response = createMockResponse([], false);
87
+ const response = createMockResponse([], false, [
88
+ { name: 'tool', args: {} },
89
+ ]);
60
90
  const result = createConversationOffered(response, 'trace-id', undefined, {});
61
- expect(result.status).toBe(ActionStatus.ACTION_STATUS_ERROR_UNKNOWN);
91
+ expect(result?.status).toBe(ActionStatus.ACTION_STATUS_ERROR_UNKNOWN);
62
92
  });
63
93
  it('should set status to ERROR_UNKNOWN if finishReason is not STOP or MAX_TOKENS', () => {
64
94
  const response = createMockResponse([
@@ -66,14 +96,18 @@ describe('telemetry', () => {
66
96
  index: 0,
67
97
  finishReason: FinishReason.SAFETY,
68
98
  },
69
- ]);
99
+ ], true, [{ name: 'tool', args: {} }]);
70
100
  const result = createConversationOffered(response, 'trace-id', undefined, {});
71
- expect(result.status).toBe(ActionStatus.ACTION_STATUS_ERROR_UNKNOWN);
101
+ expect(result?.status).toBe(ActionStatus.ACTION_STATUS_ERROR_UNKNOWN);
72
102
  });
73
103
  it('should set status to EMPTY if candidates is empty', () => {
74
- const response = createMockResponse();
104
+ // We force functionCalls to be present to bypass the guard,
105
+ // simulating a state where we want to test the candidates check.
106
+ const response = createMockResponse([], true, [
107
+ { name: 'tool', args: {} },
108
+ ]);
75
109
  const result = createConversationOffered(response, 'trace-id', undefined, {});
76
- expect(result.status).toBe(ActionStatus.ACTION_STATUS_EMPTY);
110
+ expect(result?.status).toBe(ActionStatus.ACTION_STATUS_EMPTY);
77
111
  });
78
112
  it('should detect code in response', () => {
79
113
  const response = createMockResponse([
@@ -85,9 +119,9 @@ describe('telemetry', () => {
85
119
  ],
86
120
  },
87
121
  },
88
- ]);
122
+ ], true, [{ name: 'tool', args: {} }]);
89
123
  const result = createConversationOffered(response, 'id', undefined, {});
90
- expect(result.includedCode).toBe(true);
124
+ expect(result?.includedCode).toBe(true);
91
125
  });
92
126
  it('should not detect code if no backticks', () => {
93
127
  const response = createMockResponse([
@@ -97,9 +131,9 @@ describe('telemetry', () => {
97
131
  parts: [{ text: 'Here is some text.' }],
98
132
  },
99
133
  },
100
- ]);
134
+ ], true, [{ name: 'tool', args: {} }]);
101
135
  const result = createConversationOffered(response, 'id', undefined, {});
102
- expect(result.includedCode).toBe(false);
136
+ expect(result?.includedCode).toBe(false);
103
137
  });
104
138
  });
105
139
  describe('formatProtoJsonDuration', () => {
@@ -108,5 +142,159 @@ describe('telemetry', () => {
108
142
  expect(formatProtoJsonDuration(100)).toBe('0.1s');
109
143
  });
110
144
  });
145
+ describe('recordConversationOffered', () => {
146
+ it('should call server.recordConversationOffered if traceId is present', async () => {
147
+ const serverMock = {
148
+ recordConversationOffered: vi.fn(),
149
+ };
150
+ const response = createMockResponse([], true, [
151
+ { name: 'tool', args: {} },
152
+ ]);
153
+ const streamingLatency = {};
154
+ await recordConversationOffered(serverMock, 'trace-id', response, streamingLatency, undefined);
155
+ expect(serverMock.recordConversationOffered).toHaveBeenCalledWith(expect.objectContaining({
156
+ traceId: 'trace-id',
157
+ }));
158
+ });
159
+ it('should not call server.recordConversationOffered if traceId is undefined', async () => {
160
+ const serverMock = {
161
+ recordConversationOffered: vi.fn(),
162
+ };
163
+ const response = createMockResponse([], true, [
164
+ { name: 'tool', args: {} },
165
+ ]);
166
+ await recordConversationOffered(serverMock, undefined, response, {}, undefined);
167
+ expect(serverMock.recordConversationOffered).not.toHaveBeenCalled();
168
+ });
169
+ });
170
+ describe('recordToolCallInteractions', () => {
171
+ let mockServer;
172
+ beforeEach(() => {
173
+ mockServer = {
174
+ recordConversationInteraction: vi.fn(),
175
+ };
176
+ vi.spyOn(codeAssist, 'getCodeAssistServer').mockReturnValue(mockServer);
177
+ });
178
+ afterEach(() => {
179
+ vi.restoreAllMocks();
180
+ });
181
+ it('should record ACCEPT_FILE interaction for accepted edit tools', async () => {
182
+ const toolCalls = [
183
+ {
184
+ request: {
185
+ name: 'replace', // in EDIT_TOOL_NAMES
186
+ args: {},
187
+ callId: 'call-1',
188
+ isClientInitiated: false,
189
+ prompt_id: 'p1',
190
+ traceId: 'trace-1',
191
+ },
192
+ outcome: ToolConfirmationOutcome.ProceedOnce,
193
+ status: 'success',
194
+ },
195
+ ];
196
+ await recordToolCallInteractions({}, toolCalls);
197
+ expect(mockServer.recordConversationInteraction).toHaveBeenCalledWith({
198
+ traceId: 'trace-1',
199
+ status: ActionStatus.ACTION_STATUS_NO_ERROR,
200
+ interaction: ConversationInteractionInteraction.ACCEPT_FILE,
201
+ isAgentic: true,
202
+ });
203
+ });
204
+ it('should record UNKNOWN interaction for other accepted tools', async () => {
205
+ const toolCalls = [
206
+ {
207
+ request: {
208
+ name: 'read_file', // NOT in EDIT_TOOL_NAMES
209
+ args: {},
210
+ callId: 'call-2',
211
+ isClientInitiated: false,
212
+ prompt_id: 'p2',
213
+ traceId: 'trace-2',
214
+ },
215
+ outcome: ToolConfirmationOutcome.ProceedOnce,
216
+ status: 'success',
217
+ },
218
+ ];
219
+ await recordToolCallInteractions({}, toolCalls);
220
+ expect(mockServer.recordConversationInteraction).toHaveBeenCalledWith({
221
+ traceId: 'trace-2',
222
+ status: ActionStatus.ACTION_STATUS_NO_ERROR,
223
+ interaction: ConversationInteractionInteraction.UNKNOWN,
224
+ isAgentic: true,
225
+ });
226
+ });
227
+ it('should not record interaction for cancelled status', async () => {
228
+ const toolCalls = [
229
+ {
230
+ request: {
231
+ name: 'tool',
232
+ args: {},
233
+ callId: 'call-3',
234
+ isClientInitiated: false,
235
+ prompt_id: 'p3',
236
+ traceId: 'trace-3',
237
+ },
238
+ status: 'cancelled',
239
+ response: {},
240
+ tool: {},
241
+ invocation: {},
242
+ },
243
+ ];
244
+ await recordToolCallInteractions({}, toolCalls);
245
+ expect(mockServer.recordConversationInteraction).not.toHaveBeenCalled();
246
+ });
247
+ it('should not record interaction for error status', async () => {
248
+ const toolCalls = [
249
+ {
250
+ request: {
251
+ name: 'tool',
252
+ args: {},
253
+ callId: 'call-4',
254
+ isClientInitiated: false,
255
+ prompt_id: 'p4',
256
+ traceId: 'trace-4',
257
+ },
258
+ status: 'error',
259
+ response: {
260
+ error: new Error('fail'),
261
+ },
262
+ },
263
+ ];
264
+ await recordToolCallInteractions({}, toolCalls);
265
+ expect(mockServer.recordConversationInteraction).not.toHaveBeenCalled();
266
+ });
267
+ it('should not record interaction if tool calls are mixed or not 100% accepted', async () => {
268
+ // Logic: traceId && acceptedToolCalls / toolCalls.length >= 1
269
+ const toolCalls = [
270
+ {
271
+ request: {
272
+ name: 't1',
273
+ args: {},
274
+ callId: 'c1',
275
+ isClientInitiated: false,
276
+ prompt_id: 'p1',
277
+ traceId: 't1',
278
+ },
279
+ outcome: ToolConfirmationOutcome.ProceedOnce,
280
+ status: 'success',
281
+ },
282
+ {
283
+ request: {
284
+ name: 't2',
285
+ args: {},
286
+ callId: 'c2',
287
+ isClientInitiated: false,
288
+ prompt_id: 'p1',
289
+ traceId: 't1',
290
+ },
291
+ outcome: ToolConfirmationOutcome.Cancel, // Rejected
292
+ status: 'success',
293
+ },
294
+ ];
295
+ await recordToolCallInteractions({}, toolCalls);
296
+ expect(mockServer.recordConversationInteraction).not.toHaveBeenCalled();
297
+ });
298
+ });
111
299
  });
112
300
  //# sourceMappingURL=telemetry.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.test.js","sourceRoot":"","sources":["../../../src/code_assist/telemetry.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"telemetry.test.js","sourceRoot":"","sources":["../../../src/code_assist/telemetry.test.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,7 @@ import { PolicyEngine } from '../policy/policy-engine.js';
36
36
  import type { PolicyEngineConfig } from '../policy/types.js';
37
37
  import { HookSystem } from '../hooks/index.js';
38
38
  import type { UserTierId } from '../code_assist/types.js';
39
+ import type { RetrieveUserQuotaResponse } from '../code_assist/types.js';
39
40
  import type { Experiments } from '../code_assist/experiments/experiments.js';
40
41
  import { AgentRegistry } from '../agents/registry.js';
41
42
  import { ApprovalMode } from '../policy/types.js';
@@ -229,7 +230,6 @@ export interface ConfigParameters {
229
230
  });
230
231
  previewFeatures?: boolean;
231
232
  enableAgents?: boolean;
232
- enableModelAvailabilityService?: boolean;
233
233
  experimentalJitContext?: boolean;
234
234
  }
235
235
  export declare class Config {
@@ -279,10 +279,10 @@ export declare class Config {
279
279
  private readonly bugCommand;
280
280
  private model;
281
281
  private previewFeatures;
282
+ private hasAccessToPreviewModel;
282
283
  private readonly noBrowser;
283
284
  private readonly folderTrust;
284
285
  private ideMode;
285
- private inFallbackMode;
286
286
  private _activeModel;
287
287
  private readonly maxSessionTurns;
288
288
  private readonly listSessions;
@@ -336,12 +336,10 @@ export declare class Config {
336
336
  private experiments;
337
337
  private experimentsPromise;
338
338
  private hookSystem?;
339
- private previewModelFallbackMode;
340
- private previewModelBypassMode;
341
- private readonly enableModelAvailabilityService;
342
339
  private readonly enableAgents;
343
340
  private readonly experimentalJitContext;
344
341
  private contextManager?;
342
+ private terminalBackground;
345
343
  constructor(params: ConfigParameters);
346
344
  /**
347
345
  * Must only be called once, throws if called again.
@@ -357,6 +355,8 @@ export declare class Config {
357
355
  getBaseLlmClient(): BaseLlmClient;
358
356
  getSessionId(): string;
359
357
  setSessionId(sessionId: string): void;
358
+ setTerminalBackground(terminalBackground: string | undefined): void;
359
+ getTerminalBackground(): string | undefined;
360
360
  shouldLoadMemoryFromIncludeDirectories(): boolean;
361
361
  getImportFormat(): 'tree' | 'flat';
362
362
  getDiscoveryMaxDirs(): number;
@@ -365,15 +365,9 @@ export declare class Config {
365
365
  setModel(newModel: string): void;
366
366
  getActiveModel(): string;
367
367
  setActiveModel(model: string): void;
368
- resetTurn(): void;
369
- isInFallbackMode(): boolean;
370
- setFallbackMode(active: boolean): void;
371
368
  setFallbackModelHandler(handler: FallbackModelHandler): void;
372
369
  getFallbackModelHandler(): FallbackModelHandler | undefined;
373
- isPreviewModelFallbackMode(): boolean;
374
- setPreviewModelFallbackMode(active: boolean): void;
375
- isPreviewModelBypassMode(): boolean;
376
- setPreviewModelBypassMode(active: boolean): void;
370
+ resetTurn(): void;
377
371
  getMaxSessionTurns(): number;
378
372
  setQuotaErrorOccurred(value: boolean): void;
379
373
  getQuotaErrorOccurred(): boolean;
@@ -391,6 +385,9 @@ export declare class Config {
391
385
  getQuestion(): string | undefined;
392
386
  getPreviewFeatures(): boolean | undefined;
393
387
  setPreviewFeatures(previewFeatures: boolean): void;
388
+ getHasAccessToPreviewModel(): boolean;
389
+ setHasAccessToPreviewModel(hasAccess: boolean): void;
390
+ refreshUserQuota(): Promise<RetrieveUserQuotaResponse | undefined>;
394
391
  getCoreTools(): string[] | undefined;
395
392
  getAllowedTools(): string[] | undefined;
396
393
  /**
@@ -472,7 +469,6 @@ export declare class Config {
472
469
  getExtensionLoader(): ExtensionLoader;
473
470
  getEnabledExtensions(): string[];
474
471
  getEnableExtensionReloading(): boolean;
475
- isModelAvailabilityServiceEnabled(): boolean;
476
472
  isAgentsEnabled(): boolean;
477
473
  getNoBrowser(): boolean;
478
474
  isBrowserLaunchSuppressed(): boolean;