@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.
- package/dist/google-gemini-cli-core-0.21.0-nightly.20251218.739c02bd6.tgz +0 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/src/agents/codebase-investigator.d.ts +2 -2
- package/dist/src/agents/codebase-investigator.js +6 -5
- package/dist/src/agents/codebase-investigator.js.map +1 -1
- package/dist/src/agents/codebase-investigator.test.js +2 -2
- package/dist/src/agents/codebase-investigator.test.js.map +1 -1
- package/dist/src/agents/delegate-to-agent-tool.js +8 -4
- package/dist/src/agents/delegate-to-agent-tool.js.map +1 -1
- package/dist/src/agents/delegate-to-agent-tool.test.js +5 -4
- package/dist/src/agents/delegate-to-agent-tool.test.js.map +1 -1
- package/dist/src/agents/{executor.d.ts → local-executor.d.ts} +5 -11
- package/dist/src/agents/{executor.js → local-executor.js} +75 -51
- package/dist/src/agents/local-executor.js.map +1 -0
- package/dist/src/agents/{executor.test.js → local-executor.test.js} +61 -45
- package/dist/src/agents/local-executor.test.js.map +1 -0
- package/dist/src/agents/{invocation.d.ts → local-invocation.d.ts} +5 -6
- package/dist/src/agents/{invocation.js → local-invocation.js} +8 -9
- package/dist/src/agents/local-invocation.js.map +1 -0
- package/dist/src/agents/{invocation.test.js → local-invocation.test.js} +18 -17
- package/dist/src/agents/local-invocation.test.js.map +1 -0
- package/dist/src/agents/registry.d.ts +1 -0
- package/dist/src/agents/registry.js +77 -28
- package/dist/src/agents/registry.js.map +1 -1
- package/dist/src/agents/registry.test.js +130 -5
- package/dist/src/agents/registry.test.js.map +1 -1
- package/dist/src/agents/remote-invocation.d.ts +21 -0
- package/dist/src/agents/remote-invocation.js +31 -0
- package/dist/src/agents/remote-invocation.js.map +1 -0
- package/dist/src/agents/remote-invocation.test.d.ts +6 -0
- package/dist/src/agents/remote-invocation.test.js +35 -0
- package/dist/src/agents/remote-invocation.test.js.map +1 -0
- package/dist/src/agents/subagent-tool-wrapper.js +7 -3
- package/dist/src/agents/subagent-tool-wrapper.js.map +1 -1
- package/dist/src/agents/subagent-tool-wrapper.test.js +10 -9
- package/dist/src/agents/subagent-tool-wrapper.test.js.map +1 -1
- package/dist/src/agents/toml-loader.d.ts +65 -0
- package/dist/src/agents/toml-loader.js +176 -0
- package/dist/src/agents/toml-loader.js.map +1 -0
- package/dist/src/agents/toml-loader.test.d.ts +6 -0
- package/dist/src/agents/toml-loader.test.js +190 -0
- package/dist/src/agents/toml-loader.test.js.map +1 -0
- package/dist/src/agents/types.d.ts +12 -4
- package/dist/src/availability/modelAvailabilityService.d.ts +2 -1
- package/dist/src/availability/policyCatalog.d.ts +1 -0
- package/dist/src/availability/policyCatalog.js +6 -8
- package/dist/src/availability/policyCatalog.js.map +1 -1
- package/dist/src/availability/policyCatalog.test.js +2 -2
- package/dist/src/availability/policyCatalog.test.js.map +1 -1
- package/dist/src/availability/policyHelpers.d.ts +9 -5
- package/dist/src/availability/policyHelpers.js +43 -37
- package/dist/src/availability/policyHelpers.js.map +1 -1
- package/dist/src/availability/policyHelpers.test.js +58 -20
- package/dist/src/availability/policyHelpers.test.js.map +1 -1
- package/dist/src/code_assist/oauth2.js +1 -1
- package/dist/src/code_assist/oauth2.js.map +1 -1
- package/dist/src/code_assist/oauth2.test.js +6 -8
- package/dist/src/code_assist/oauth2.test.js.map +1 -1
- package/dist/src/code_assist/server.js +3 -9
- package/dist/src/code_assist/server.js.map +1 -1
- package/dist/src/code_assist/server.test.js +18 -3
- package/dist/src/code_assist/server.test.js.map +1 -1
- package/dist/src/code_assist/telemetry.d.ts +6 -1
- package/dist/src/code_assist/telemetry.js +92 -3
- package/dist/src/code_assist/telemetry.js.map +1 -1
- package/dist/src/code_assist/telemetry.test.js +206 -18
- package/dist/src/code_assist/telemetry.test.js.map +1 -1
- package/dist/src/config/config.d.ts +9 -13
- package/dist/src/config/config.js +68 -38
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +134 -22
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/defaultModelConfigs.js +11 -0
- package/dist/src/config/defaultModelConfigs.js.map +1 -1
- package/dist/src/config/flashFallback.test.js +0 -37
- package/dist/src/config/flashFallback.test.js.map +1 -1
- package/dist/src/config/models.d.ts +23 -10
- package/dist/src/config/models.js +65 -23
- package/dist/src/config/models.js.map +1 -1
- package/dist/src/config/models.test.js +57 -76
- package/dist/src/config/models.test.js.map +1 -1
- package/dist/src/config/storage.d.ts +2 -0
- package/dist/src/config/storage.js +6 -0
- package/dist/src/config/storage.js.map +1 -1
- package/dist/src/config/storage.test.js +8 -0
- package/dist/src/config/storage.test.js.map +1 -1
- package/dist/src/core/baseLlmClient.d.ts +3 -1
- package/dist/src/core/baseLlmClient.js +51 -43
- package/dist/src/core/baseLlmClient.js.map +1 -1
- package/dist/src/core/baseLlmClient.test.js +12 -19
- package/dist/src/core/baseLlmClient.test.js.map +1 -1
- package/dist/src/core/client.js +18 -33
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/client.test.js +14 -65
- package/dist/src/core/client.test.js.map +1 -1
- package/dist/src/core/contentGenerator.js +1 -1
- package/dist/src/core/contentGenerator.js.map +1 -1
- package/dist/src/core/contentGenerator.test.js +0 -6
- package/dist/src/core/contentGenerator.test.js.map +1 -1
- package/dist/src/core/geminiChat.js +29 -88
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/geminiChat.test.js +35 -257
- package/dist/src/core/geminiChat.test.js.map +1 -1
- package/dist/src/core/geminiChat_network_retry.test.js +6 -6
- package/dist/src/core/geminiChat_network_retry.test.js.map +1 -1
- package/dist/src/core/prompts.js +6 -7
- package/dist/src/core/prompts.js.map +1 -1
- package/dist/src/core/prompts.test.js +10 -7
- package/dist/src/core/prompts.test.js.map +1 -1
- package/dist/src/core/turn.d.ts +1 -0
- package/dist/src/core/turn.js +3 -2
- package/dist/src/core/turn.js.map +1 -1
- package/dist/src/fallback/handler.js +54 -121
- package/dist/src/fallback/handler.js.map +1 -1
- package/dist/src/fallback/handler.test.js +80 -285
- package/dist/src/fallback/handler.test.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/hooks/hookPlanner.js +3 -1
- package/dist/src/hooks/hookPlanner.js.map +1 -1
- package/dist/src/hooks/hookPlanner.test.js +61 -0
- package/dist/src/hooks/hookPlanner.test.js.map +1 -1
- package/dist/src/hooks/hookRegistry.d.ts +1 -1
- package/dist/src/hooks/hookRegistry.js +2 -2
- package/dist/src/hooks/hookRegistry.js.map +1 -1
- package/dist/src/hooks/hookRegistry.test.js +73 -0
- package/dist/src/hooks/hookRegistry.test.js.map +1 -1
- package/dist/src/hooks/hookRunner.js +2 -2
- package/dist/src/hooks/hookRunner.js.map +1 -1
- package/dist/src/hooks/hookRunner.test.js +23 -0
- package/dist/src/hooks/hookRunner.test.js.map +1 -1
- package/dist/src/hooks/types.d.ts +2 -0
- package/dist/src/hooks/types.js.map +1 -1
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.js +2 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/routing/modelRouterService.js +0 -15
- package/dist/src/routing/modelRouterService.js.map +1 -1
- package/dist/src/routing/modelRouterService.test.js +0 -62
- package/dist/src/routing/modelRouterService.test.js.map +1 -1
- package/dist/src/routing/strategies/classifierStrategy.js +10 -21
- package/dist/src/routing/strategies/classifierStrategy.js.map +1 -1
- package/dist/src/routing/strategies/classifierStrategy.test.js +2 -1
- package/dist/src/routing/strategies/classifierStrategy.test.js.map +1 -1
- package/dist/src/routing/strategies/fallbackStrategy.js +20 -12
- package/dist/src/routing/strategies/fallbackStrategy.js.map +1 -1
- package/dist/src/routing/strategies/fallbackStrategy.test.js +63 -39
- package/dist/src/routing/strategies/fallbackStrategy.test.js.map +1 -1
- package/dist/src/routing/strategies/overrideStrategy.js +4 -3
- package/dist/src/routing/strategies/overrideStrategy.js.map +1 -1
- package/dist/src/services/chatCompressionService.js +3 -1
- package/dist/src/services/chatCompressionService.js.map +1 -1
- package/dist/src/services/loopDetectionService.js +2 -1
- package/dist/src/services/loopDetectionService.js.map +1 -1
- package/dist/src/services/loopDetectionService.test.js +14 -8
- package/dist/src/services/loopDetectionService.test.js.map +1 -1
- package/dist/src/services/modelConfig.integration.test.js +1 -1
- package/dist/src/services/modelConfig.integration.test.js.map +1 -1
- package/dist/src/services/shellExecutionService.js +18 -2
- package/dist/src/services/shellExecutionService.js.map +1 -1
- package/dist/src/services/test-data/resolved-aliases-retry.golden.json +16 -0
- package/dist/src/services/test-data/resolved-aliases.golden.json +16 -0
- package/dist/src/telemetry/sdk.js +2 -2
- package/dist/src/telemetry/sdk.js.map +1 -1
- package/dist/src/tools/ripGrep.js +2 -2
- package/dist/src/tools/ripGrep.js.map +1 -1
- package/dist/src/tools/tool-names.d.ts +13 -0
- package/dist/src/tools/tool-names.js +54 -0
- package/dist/src/tools/tool-names.js.map +1 -1
- package/dist/src/tools/tool-names.test.d.ts +6 -0
- package/dist/src/tools/tool-names.test.js +43 -0
- package/dist/src/tools/tool-names.test.js.map +1 -0
- package/dist/src/tools/tool-registry.d.ts +0 -1
- package/dist/src/tools/tool-registry.js +1 -1
- package/dist/src/tools/tool-registry.js.map +1 -1
- package/dist/src/tools/tool-registry.test.js +2 -1
- package/dist/src/tools/tool-registry.test.js.map +1 -1
- package/dist/src/utils/checkpointUtils.js +1 -1
- package/dist/src/utils/checkpointUtils.js.map +1 -1
- package/dist/src/utils/checkpointUtils.test.js +1 -1
- package/dist/src/utils/checkpointUtils.test.js.map +1 -1
- package/dist/src/utils/editCorrector.js +1 -1
- package/dist/src/utils/editCorrector.js.map +1 -1
- package/dist/src/utils/editCorrector.test.js +2 -2
- package/dist/src/utils/editCorrector.test.js.map +1 -1
- package/dist/src/utils/environmentContext.d.ts +1 -0
- package/dist/src/utils/environmentContext.js +1 -0
- package/dist/src/utils/environmentContext.js.map +1 -1
- package/dist/src/utils/events.d.ts +0 -16
- package/dist/src/utils/events.js +0 -9
- package/dist/src/utils/events.js.map +1 -1
- package/dist/src/utils/flashFallback.test.js +1 -1
- package/dist/src/utils/flashFallback.test.js.map +1 -1
- package/dist/src/utils/googleQuotaErrors.js +20 -0
- package/dist/src/utils/googleQuotaErrors.js.map +1 -1
- package/dist/src/utils/googleQuotaErrors.test.js +53 -2
- package/dist/src/utils/googleQuotaErrors.test.js.map +1 -1
- package/dist/src/utils/retry.js +2 -16
- package/dist/src/utils/retry.js.map +1 -1
- package/dist/src/utils/retry.test.js +7 -22
- package/dist/src/utils/retry.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -6
- package/dist/google-gemini-cli-core-0.21.0-nightly.20251216.bb0c0d8ee.tgz +0 -0
- package/dist/src/agents/executor.js.map +0 -1
- package/dist/src/agents/executor.test.js.map +0 -1
- package/dist/src/agents/invocation.js.map +0 -1
- package/dist/src/agents/invocation.test.js.map +0 -1
- /package/dist/src/agents/{executor.test.d.ts → local-executor.test.d.ts} +0 -0
- /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
|
-
|
|
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
|
|
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,
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;
|
|
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
|
-
|
|
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;
|