@google/gemini-cli-core 0.21.0-nightly.20251216.bb0c0d8ee → 0.21.0-nightly.20251218.739c02bd6
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.20251216.bb0c0d8ee.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 -5
- package/dist/src/agents/{executor.js → local-executor.js} +7 -7
- package/dist/src/agents/local-executor.js.map +1 -0
- package/dist/src/agents/local-executor.test.d.ts +12 -0
- package/dist/src/agents/{executor.test.js → local-executor.test.js} +40 -39
- 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.js +35 -24
- package/dist/src/agents/registry.js.map +1 -1
- package/dist/src/agents/registry.test.js +34 -4
- 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.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/types.d.ts +12 -4
- 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.d.ts +4 -1
- package/dist/src/code_assist/server.js +50 -7
- package/dist/src/code_assist/server.js.map +1 -1
- package/dist/src/code_assist/server.test.js +177 -27
- package/dist/src/code_assist/server.test.js.map +1 -1
- package/dist/src/code_assist/telemetry.d.ts +14 -0
- package/dist/src/code_assist/telemetry.js +156 -0
- package/dist/src/code_assist/telemetry.js.map +1 -0
- package/dist/src/code_assist/telemetry.test.d.ts +6 -0
- package/dist/src/code_assist/telemetry.test.js +300 -0
- package/dist/src/code_assist/telemetry.test.js.map +1 -0
- package/dist/src/code_assist/types.d.ts +52 -1
- package/dist/src/code_assist/types.js +21 -0
- package/dist/src/code_assist/types.js.map +1 -1
- package/dist/src/config/config.d.ts +6 -13
- package/dist/src/config/config.js +61 -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/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 +4 -12
- package/dist/src/core/turn.js.map +1 -1
- package/dist/src/core/turn.test.js +0 -5
- package/dist/src/core/turn.test.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/index.d.ts +2 -0
- package/dist/src/index.js +2 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/output/json-formatter.test.js +2 -0
- package/dist/src/output/json-formatter.test.js.map +1 -1
- package/dist/src/output/stream-json-formatter.js +6 -0
- package/dist/src/output/stream-json-formatter.js.map +1 -1
- package/dist/src/output/stream-json-formatter.test.js +98 -100
- package/dist/src/output/stream-json-formatter.test.js.map +1 -1
- package/dist/src/output/types.d.ts +2 -0
- 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/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/telemetry/uiTelemetry.d.ts +1 -0
- package/dist/src/telemetry/uiTelemetry.js +2 -0
- package/dist/src/telemetry/uiTelemetry.js.map +1 -1
- package/dist/src/telemetry/uiTelemetry.test.js +4 -0
- package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
- package/dist/src/tools/ripGrep.js +2 -2
- package/dist/src/tools/ripGrep.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/generateContentResponseUtilities.d.ts +1 -0
- package/dist/src/utils/generateContentResponseUtilities.js +10 -0
- package/dist/src/utils/generateContentResponseUtilities.js.map +1 -1
- package/dist/src/utils/generateContentResponseUtilities.test.js +59 -2
- package/dist/src/utils/generateContentResponseUtilities.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 -1
- package/dist/google-gemini-cli-core-0.21.0-nightly.20251213.977248e09.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-invocation.test.d.ts} +0 -0
- /package/dist/src/agents/{invocation.test.d.ts → remote-invocation.test.d.ts} +0 -0
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
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) {
|
|
13
|
+
const response = new GenerateContentResponse();
|
|
14
|
+
response.candidates = candidates;
|
|
15
|
+
response.sdkHttpResponse = {
|
|
16
|
+
responseInternal: {
|
|
17
|
+
ok,
|
|
18
|
+
},
|
|
19
|
+
json: async () => ({}),
|
|
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
|
+
}
|
|
32
|
+
return response;
|
|
33
|
+
}
|
|
34
|
+
describe('telemetry', () => {
|
|
35
|
+
describe('createConversationOffered', () => {
|
|
36
|
+
it('should create a ConversationOffered object with correct values', () => {
|
|
37
|
+
const response = createMockResponse([
|
|
38
|
+
{
|
|
39
|
+
index: 0,
|
|
40
|
+
content: {
|
|
41
|
+
role: 'model',
|
|
42
|
+
parts: [{ text: 'response with ```code```' }],
|
|
43
|
+
},
|
|
44
|
+
citationMetadata: {
|
|
45
|
+
citations: [
|
|
46
|
+
{ uri: 'https://example.com', startIndex: 0, endIndex: 10 },
|
|
47
|
+
],
|
|
48
|
+
},
|
|
49
|
+
finishReason: FinishReason.STOP,
|
|
50
|
+
},
|
|
51
|
+
], true, [{ name: 'someTool', args: {} }]);
|
|
52
|
+
const traceId = 'test-trace-id';
|
|
53
|
+
const streamingLatency = { totalLatency: '1s' };
|
|
54
|
+
const result = createConversationOffered(response, traceId, undefined, streamingLatency);
|
|
55
|
+
expect(result).toEqual({
|
|
56
|
+
citationCount: '1',
|
|
57
|
+
includedCode: true,
|
|
58
|
+
status: ActionStatus.ACTION_STATUS_NO_ERROR,
|
|
59
|
+
traceId,
|
|
60
|
+
streamingLatency,
|
|
61
|
+
isAgentic: true,
|
|
62
|
+
});
|
|
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
|
+
});
|
|
77
|
+
it('should set status to CANCELLED if signal is aborted', () => {
|
|
78
|
+
const response = createMockResponse([], true, [
|
|
79
|
+
{ name: 'tool', args: {} },
|
|
80
|
+
]);
|
|
81
|
+
const signal = new AbortController().signal;
|
|
82
|
+
vi.spyOn(signal, 'aborted', 'get').mockReturnValue(true);
|
|
83
|
+
const result = createConversationOffered(response, 'trace-id', signal, {});
|
|
84
|
+
expect(result?.status).toBe(ActionStatus.ACTION_STATUS_CANCELLED);
|
|
85
|
+
});
|
|
86
|
+
it('should set status to ERROR_UNKNOWN if response has error (non-OK SDK response)', () => {
|
|
87
|
+
const response = createMockResponse([], false, [
|
|
88
|
+
{ name: 'tool', args: {} },
|
|
89
|
+
]);
|
|
90
|
+
const result = createConversationOffered(response, 'trace-id', undefined, {});
|
|
91
|
+
expect(result?.status).toBe(ActionStatus.ACTION_STATUS_ERROR_UNKNOWN);
|
|
92
|
+
});
|
|
93
|
+
it('should set status to ERROR_UNKNOWN if finishReason is not STOP or MAX_TOKENS', () => {
|
|
94
|
+
const response = createMockResponse([
|
|
95
|
+
{
|
|
96
|
+
index: 0,
|
|
97
|
+
finishReason: FinishReason.SAFETY,
|
|
98
|
+
},
|
|
99
|
+
], true, [{ name: 'tool', args: {} }]);
|
|
100
|
+
const result = createConversationOffered(response, 'trace-id', undefined, {});
|
|
101
|
+
expect(result?.status).toBe(ActionStatus.ACTION_STATUS_ERROR_UNKNOWN);
|
|
102
|
+
});
|
|
103
|
+
it('should set status to EMPTY if candidates is empty', () => {
|
|
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
|
+
]);
|
|
109
|
+
const result = createConversationOffered(response, 'trace-id', undefined, {});
|
|
110
|
+
expect(result?.status).toBe(ActionStatus.ACTION_STATUS_EMPTY);
|
|
111
|
+
});
|
|
112
|
+
it('should detect code in response', () => {
|
|
113
|
+
const response = createMockResponse([
|
|
114
|
+
{
|
|
115
|
+
index: 0,
|
|
116
|
+
content: {
|
|
117
|
+
parts: [
|
|
118
|
+
{ text: 'Here is some code:\n```js\nconsole.log("hi")\n```' },
|
|
119
|
+
],
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
], true, [{ name: 'tool', args: {} }]);
|
|
123
|
+
const result = createConversationOffered(response, 'id', undefined, {});
|
|
124
|
+
expect(result?.includedCode).toBe(true);
|
|
125
|
+
});
|
|
126
|
+
it('should not detect code if no backticks', () => {
|
|
127
|
+
const response = createMockResponse([
|
|
128
|
+
{
|
|
129
|
+
index: 0,
|
|
130
|
+
content: {
|
|
131
|
+
parts: [{ text: 'Here is some text.' }],
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
], true, [{ name: 'tool', args: {} }]);
|
|
135
|
+
const result = createConversationOffered(response, 'id', undefined, {});
|
|
136
|
+
expect(result?.includedCode).toBe(false);
|
|
137
|
+
});
|
|
138
|
+
});
|
|
139
|
+
describe('formatProtoJsonDuration', () => {
|
|
140
|
+
it('should format milliseconds to seconds string', () => {
|
|
141
|
+
expect(formatProtoJsonDuration(1500)).toBe('1.5s');
|
|
142
|
+
expect(formatProtoJsonDuration(100)).toBe('0.1s');
|
|
143
|
+
});
|
|
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
|
+
});
|
|
299
|
+
});
|
|
300
|
+
//# sourceMappingURL=telemetry.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.test.js","sourceRoot":"","sources":["../../../src/code_assist/telemetry.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -140,7 +140,7 @@ export interface HelpLinkUrl {
|
|
|
140
140
|
}
|
|
141
141
|
export interface SetCodeAssistGlobalUserSettingRequest {
|
|
142
142
|
cloudaicompanionProject?: string;
|
|
143
|
-
freeTierDataCollectionOptin
|
|
143
|
+
freeTierDataCollectionOptin?: boolean;
|
|
144
144
|
}
|
|
145
145
|
export interface CodeAssistGlobalUserSettingResponse {
|
|
146
146
|
cloudaicompanionProject?: string;
|
|
@@ -174,4 +174,55 @@ export interface BucketInfo {
|
|
|
174
174
|
export interface RetrieveUserQuotaResponse {
|
|
175
175
|
buckets?: BucketInfo[];
|
|
176
176
|
}
|
|
177
|
+
export interface RecordCodeAssistMetricsRequest {
|
|
178
|
+
project: string;
|
|
179
|
+
requestId?: string;
|
|
180
|
+
metadata?: ClientMetadata;
|
|
181
|
+
metrics?: CodeAssistMetric[];
|
|
182
|
+
}
|
|
183
|
+
export interface CodeAssistMetric {
|
|
184
|
+
timestamp?: string;
|
|
185
|
+
metricMetadata?: Map<string, string>;
|
|
186
|
+
conversationOffered?: ConversationOffered;
|
|
187
|
+
conversationInteraction?: ConversationInteraction;
|
|
188
|
+
}
|
|
189
|
+
export declare enum ConversationInteractionInteraction {
|
|
190
|
+
UNKNOWN = 0,
|
|
191
|
+
THUMBSUP = 1,
|
|
192
|
+
THUMBSDOWN = 2,
|
|
193
|
+
COPY = 3,
|
|
194
|
+
INSERT = 4,
|
|
195
|
+
ACCEPT_CODE_BLOCK = 5,
|
|
196
|
+
ACCEPT_ALL = 6,
|
|
197
|
+
ACCEPT_FILE = 7,
|
|
198
|
+
DIFF = 8,
|
|
199
|
+
ACCEPT_RANGE = 9
|
|
200
|
+
}
|
|
201
|
+
export declare enum ActionStatus {
|
|
202
|
+
ACTION_STATUS_UNSPECIFIED = 0,
|
|
203
|
+
ACTION_STATUS_NO_ERROR = 1,
|
|
204
|
+
ACTION_STATUS_ERROR_UNKNOWN = 2,
|
|
205
|
+
ACTION_STATUS_CANCELLED = 3,
|
|
206
|
+
ACTION_STATUS_EMPTY = 4
|
|
207
|
+
}
|
|
208
|
+
export interface ConversationOffered {
|
|
209
|
+
citationCount?: string;
|
|
210
|
+
includedCode?: boolean;
|
|
211
|
+
status?: ActionStatus;
|
|
212
|
+
traceId?: string;
|
|
213
|
+
streamingLatency?: StreamingLatency;
|
|
214
|
+
isAgentic?: boolean;
|
|
215
|
+
}
|
|
216
|
+
export interface StreamingLatency {
|
|
217
|
+
firstMessageLatency?: string;
|
|
218
|
+
totalLatency?: string;
|
|
219
|
+
}
|
|
220
|
+
export interface ConversationInteraction {
|
|
221
|
+
traceId: string;
|
|
222
|
+
status?: ActionStatus;
|
|
223
|
+
interaction?: ConversationInteractionInteraction;
|
|
224
|
+
acceptedLines?: string;
|
|
225
|
+
language?: string;
|
|
226
|
+
isAgentic?: boolean;
|
|
227
|
+
}
|
|
177
228
|
export {};
|
|
@@ -43,4 +43,25 @@ export var OnboardUserStatusCode;
|
|
|
43
43
|
OnboardUserStatusCode["Warning"] = "WARNING";
|
|
44
44
|
OnboardUserStatusCode["Error"] = "ERROR";
|
|
45
45
|
})(OnboardUserStatusCode || (OnboardUserStatusCode = {}));
|
|
46
|
+
export var ConversationInteractionInteraction;
|
|
47
|
+
(function (ConversationInteractionInteraction) {
|
|
48
|
+
ConversationInteractionInteraction[ConversationInteractionInteraction["UNKNOWN"] = 0] = "UNKNOWN";
|
|
49
|
+
ConversationInteractionInteraction[ConversationInteractionInteraction["THUMBSUP"] = 1] = "THUMBSUP";
|
|
50
|
+
ConversationInteractionInteraction[ConversationInteractionInteraction["THUMBSDOWN"] = 2] = "THUMBSDOWN";
|
|
51
|
+
ConversationInteractionInteraction[ConversationInteractionInteraction["COPY"] = 3] = "COPY";
|
|
52
|
+
ConversationInteractionInteraction[ConversationInteractionInteraction["INSERT"] = 4] = "INSERT";
|
|
53
|
+
ConversationInteractionInteraction[ConversationInteractionInteraction["ACCEPT_CODE_BLOCK"] = 5] = "ACCEPT_CODE_BLOCK";
|
|
54
|
+
ConversationInteractionInteraction[ConversationInteractionInteraction["ACCEPT_ALL"] = 6] = "ACCEPT_ALL";
|
|
55
|
+
ConversationInteractionInteraction[ConversationInteractionInteraction["ACCEPT_FILE"] = 7] = "ACCEPT_FILE";
|
|
56
|
+
ConversationInteractionInteraction[ConversationInteractionInteraction["DIFF"] = 8] = "DIFF";
|
|
57
|
+
ConversationInteractionInteraction[ConversationInteractionInteraction["ACCEPT_RANGE"] = 9] = "ACCEPT_RANGE";
|
|
58
|
+
})(ConversationInteractionInteraction || (ConversationInteractionInteraction = {}));
|
|
59
|
+
export var ActionStatus;
|
|
60
|
+
(function (ActionStatus) {
|
|
61
|
+
ActionStatus[ActionStatus["ACTION_STATUS_UNSPECIFIED"] = 0] = "ACTION_STATUS_UNSPECIFIED";
|
|
62
|
+
ActionStatus[ActionStatus["ACTION_STATUS_NO_ERROR"] = 1] = "ACTION_STATUS_NO_ERROR";
|
|
63
|
+
ActionStatus[ActionStatus["ACTION_STATUS_ERROR_UNKNOWN"] = 2] = "ACTION_STATUS_ERROR_UNKNOWN";
|
|
64
|
+
ActionStatus[ActionStatus["ACTION_STATUS_CANCELLED"] = 3] = "ACTION_STATUS_CANCELLED";
|
|
65
|
+
ActionStatus[ActionStatus["ACTION_STATUS_EMPTY"] = 4] = "ACTION_STATUS_EMPTY";
|
|
66
|
+
})(ActionStatus || (ActionStatus = {}));
|
|
46
67
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/code_assist/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgFH;;;GAGG;AACH,MAAM,CAAN,IAAY,wBAWX;AAXD,WAAY,wBAAwB;IAClC,uBAAuB;IACvB,uDAA2B,CAAA;IAC3B,qEAAyC,CAAA;IACzC,iEAAqC,CAAA;IACrC,6DAAiC,CAAA;IACjC,qEAAyC,CAAA;IACzC,+CAAmB,CAAA;IACnB,iEAAqC,CAAA;IACrC,yEAA6C,CAAA;IAC7C,qBAAqB;AACvB,CAAC,EAXW,wBAAwB,KAAxB,wBAAwB,QAWnC;AACD;;;;GAIG;AACH,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,gCAAkB,CAAA;IAClB,oCAAsB,CAAA;IACtB,wCAA0B,CAAA;AAC5B,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AA0CD;;;;GAIG;AACH,MAAM,CAAN,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAC/B,4CAAmB,CAAA;IACnB,0CAAiB,CAAA;IACjB,4CAAmB,CAAA;IACnB,wCAAe,CAAA;AACjB,CAAC,EALW,qBAAqB,KAArB,qBAAqB,QAKhC"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/code_assist/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgFH;;;GAGG;AACH,MAAM,CAAN,IAAY,wBAWX;AAXD,WAAY,wBAAwB;IAClC,uBAAuB;IACvB,uDAA2B,CAAA;IAC3B,qEAAyC,CAAA;IACzC,iEAAqC,CAAA;IACrC,6DAAiC,CAAA;IACjC,qEAAyC,CAAA;IACzC,+CAAmB,CAAA;IACnB,iEAAqC,CAAA;IACrC,yEAA6C,CAAA;IAC7C,qBAAqB;AACvB,CAAC,EAXW,wBAAwB,KAAxB,wBAAwB,QAWnC;AACD;;;;GAIG;AACH,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,gCAAkB,CAAA;IAClB,oCAAsB,CAAA;IACtB,wCAA0B,CAAA;AAC5B,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AA0CD;;;;GAIG;AACH,MAAM,CAAN,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAC/B,4CAAmB,CAAA;IACnB,0CAAiB,CAAA;IACjB,4CAAmB,CAAA;IACnB,wCAAe,CAAA;AACjB,CAAC,EALW,qBAAqB,KAArB,qBAAqB,QAKhC;AA2ED,MAAM,CAAN,IAAY,kCAWX;AAXD,WAAY,kCAAkC;IAC5C,iGAAW,CAAA;IACX,mGAAY,CAAA;IACZ,uGAAc,CAAA;IACd,2FAAQ,CAAA;IACR,+FAAU,CAAA;IACV,qHAAqB,CAAA;IACrB,uGAAc,CAAA;IACd,yGAAe,CAAA;IACf,2FAAQ,CAAA;IACR,2GAAgB,CAAA;AAClB,CAAC,EAXW,kCAAkC,KAAlC,kCAAkC,QAW7C;AAED,MAAM,CAAN,IAAY,YAMX;AAND,WAAY,YAAY;IACtB,yFAA6B,CAAA;IAC7B,mFAA0B,CAAA;IAC1B,6FAA+B,CAAA;IAC/B,qFAA2B,CAAA;IAC3B,6EAAuB,CAAA;AACzB,CAAC,EANW,YAAY,KAAZ,YAAY,QAMvB"}
|
|
@@ -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,9 +336,6 @@ 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?;
|
|
@@ -365,15 +362,9 @@ export declare class Config {
|
|
|
365
362
|
setModel(newModel: string): void;
|
|
366
363
|
getActiveModel(): string;
|
|
367
364
|
setActiveModel(model: string): void;
|
|
368
|
-
resetTurn(): void;
|
|
369
|
-
isInFallbackMode(): boolean;
|
|
370
|
-
setFallbackMode(active: boolean): void;
|
|
371
365
|
setFallbackModelHandler(handler: FallbackModelHandler): void;
|
|
372
366
|
getFallbackModelHandler(): FallbackModelHandler | undefined;
|
|
373
|
-
|
|
374
|
-
setPreviewModelFallbackMode(active: boolean): void;
|
|
375
|
-
isPreviewModelBypassMode(): boolean;
|
|
376
|
-
setPreviewModelBypassMode(active: boolean): void;
|
|
367
|
+
resetTurn(): void;
|
|
377
368
|
getMaxSessionTurns(): number;
|
|
378
369
|
setQuotaErrorOccurred(value: boolean): void;
|
|
379
370
|
getQuotaErrorOccurred(): boolean;
|
|
@@ -391,6 +382,9 @@ export declare class Config {
|
|
|
391
382
|
getQuestion(): string | undefined;
|
|
392
383
|
getPreviewFeatures(): boolean | undefined;
|
|
393
384
|
setPreviewFeatures(previewFeatures: boolean): void;
|
|
385
|
+
getHasAccessToPreviewModel(): boolean;
|
|
386
|
+
setHasAccessToPreviewModel(hasAccess: boolean): void;
|
|
387
|
+
refreshUserQuota(): Promise<RetrieveUserQuotaResponse | undefined>;
|
|
394
388
|
getCoreTools(): string[] | undefined;
|
|
395
389
|
getAllowedTools(): string[] | undefined;
|
|
396
390
|
/**
|
|
@@ -472,7 +466,6 @@ export declare class Config {
|
|
|
472
466
|
getExtensionLoader(): ExtensionLoader;
|
|
473
467
|
getEnabledExtensions(): string[];
|
|
474
468
|
getEnableExtensionReloading(): boolean;
|
|
475
|
-
isModelAvailabilityServiceEnabled(): boolean;
|
|
476
469
|
isAgentsEnabled(): boolean;
|
|
477
470
|
getNoBrowser(): boolean;
|
|
478
471
|
isBrowserLaunchSuppressed(): boolean;
|