@vscode/chat-lib 0.48.2026050508 → 0.48.2026050735
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/src/_internal/extension/prompt/node/chatMLFetcher.d.ts.map +1 -1
- package/dist/src/_internal/extension/prompt/node/chatMLFetcher.js +84 -24
- package/dist/src/_internal/extension/prompt/node/chatMLFetcher.js.map +1 -1
- package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.d.ts +8 -3
- package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.d.ts.map +1 -1
- package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.js +19 -5
- package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.js.map +1 -1
- package/dist/src/_internal/extension/xtab/common/recentFilesForPrompt.d.ts.map +1 -1
- package/dist/src/_internal/extension/xtab/common/recentFilesForPrompt.js +10 -12
- package/dist/src/_internal/extension/xtab/common/recentFilesForPrompt.js.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabNextCursorPredictor.d.ts +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabNextCursorPredictor.d.ts.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabNextCursorPredictor.js +15 -1
- package/dist/src/_internal/extension/xtab/node/xtabNextCursorPredictor.js.map +1 -1
- package/dist/src/_internal/platform/chat/common/chatQuotaService.d.ts +6 -0
- package/dist/src/_internal/platform/chat/common/chatQuotaService.d.ts.map +1 -1
- package/dist/src/_internal/platform/chat/common/chatQuotaService.js.map +1 -1
- package/dist/src/_internal/platform/chat/common/chatQuotaServiceImpl.d.ts +4 -0
- package/dist/src/_internal/platform/chat/common/chatQuotaServiceImpl.d.ts.map +1 -1
- package/dist/src/_internal/platform/chat/common/chatQuotaServiceImpl.js +16 -2
- package/dist/src/_internal/platform/chat/common/chatQuotaServiceImpl.js.map +1 -1
- package/dist/src/_internal/platform/chat/common/commonTypes.d.ts +1 -1
- package/dist/src/_internal/platform/chat/common/commonTypes.d.ts.map +1 -1
- package/dist/src/_internal/platform/chat/common/commonTypes.js.map +1 -1
- package/dist/src/_internal/platform/configuration/common/configurationService.d.ts +2 -1
- package/dist/src/_internal/platform/configuration/common/configurationService.d.ts.map +1 -1
- package/dist/src/_internal/platform/configuration/common/configurationService.js +4 -3
- package/dist/src/_internal/platform/configuration/common/configurationService.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.d.ts +1 -0
- package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.js +6 -0
- package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/endpointProvider.d.ts +1 -0
- package/dist/src/_internal/platform/endpoint/common/endpointProvider.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/endpointProvider.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/chatEndpoint.d.ts +1 -0
- package/dist/src/_internal/platform/endpoint/node/chatEndpoint.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/chatEndpoint.js +1 -0
- package/dist/src/_internal/platform/endpoint/node/chatEndpoint.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/messagesApi.d.ts +4 -0
- package/dist/src/_internal/platform/endpoint/node/messagesApi.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/messagesApi.js +4 -0
- package/dist/src/_internal/platform/endpoint/node/messagesApi.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/responsesApi.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/responsesApi.js +3 -1
- package/dist/src/_internal/platform/endpoint/node/responsesApi.js.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.d.ts +0 -2
- package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.d.ts.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.js +2 -4
- package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.js.map +1 -1
- package/dist/src/_internal/platform/networking/common/networking.d.ts +29 -14
- package/dist/src/_internal/platform/networking/common/networking.d.ts.map +1 -1
- package/dist/src/_internal/platform/networking/common/networking.js +1 -6
- package/dist/src/_internal/platform/networking/common/networking.js.map +1 -1
- package/dist/src/_internal/platform/networking/common/openai.d.ts +6 -0
- package/dist/src/_internal/platform/networking/common/openai.d.ts.map +1 -1
- package/dist/src/_internal/platform/networking/common/openai.js.map +1 -1
- package/dist/src/_internal/platform/networking/node/stream.d.ts.map +1 -1
- package/dist/src/_internal/platform/networking/node/stream.js +3 -0
- package/dist/src/_internal/platform/networking/node/stream.js.map +1 -1
- package/dist/src/_internal/platform/otel/common/genAiAttributes.d.ts +2 -0
- package/dist/src/_internal/platform/otel/common/genAiAttributes.d.ts.map +1 -1
- package/dist/src/_internal/platform/otel/common/genAiAttributes.js +2 -0
- package/dist/src/_internal/platform/otel/common/genAiAttributes.js.map +1 -1
- package/dist/src/_internal/platform/otel/common/messageFormatters.d.ts +16 -4
- package/dist/src/_internal/platform/otel/common/messageFormatters.d.ts.map +1 -1
- package/dist/src/_internal/platform/otel/common/messageFormatters.js +137 -5
- package/dist/src/_internal/platform/otel/common/messageFormatters.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/async.d.ts +7 -4
- package/dist/src/_internal/util/vs/base/common/async.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/async.js +23 -0
- package/dist/src/_internal/util/vs/base/common/async.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/codicons.d.ts +8 -0
- package/dist/src/_internal/util/vs/base/common/codicons.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/codicons.js +2 -0
- package/dist/src/_internal/util/vs/base/common/codicons.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/codiconsLibrary.d.ts +6 -0
- package/dist/src/_internal/util/vs/base/common/codiconsLibrary.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/codiconsLibrary.js +6 -0
- package/dist/src/_internal/util/vs/base/common/codiconsLibrary.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/event.d.ts +21 -5
- package/dist/src/_internal/util/vs/base/common/event.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/event.js +60 -11
- package/dist/src/_internal/util/vs/base/common/event.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/filters.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/filters.js +32 -6
- package/dist/src/_internal/util/vs/base/common/filters.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/glob.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/glob.js +1 -3
- package/dist/src/_internal/util/vs/base/common/glob.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/htmlContent.d.ts +21 -2
- package/dist/src/_internal/util/vs/base/common/htmlContent.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/htmlContent.js +30 -1
- package/dist/src/_internal/util/vs/base/common/htmlContent.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/lifecycle.d.ts +33 -1
- package/dist/src/_internal/util/vs/base/common/lifecycle.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/lifecycle.js +74 -1
- package/dist/src/_internal/util/vs/base/common/lifecycle.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/network.d.ts +2 -0
- package/dist/src/_internal/util/vs/base/common/network.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/network.js +3 -1
- package/dist/src/_internal/util/vs/base/common/network.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/objects.d.ts +13 -0
- package/dist/src/_internal/util/vs/base/common/objects.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/objects.js +46 -0
- package/dist/src/_internal/util/vs/base/common/objects.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/index.d.ts +4 -4
- package/dist/src/_internal/util/vs/base/common/observableInternal/index.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/index.js +6 -2
- package/dist/src/_internal/util/vs/base/common/observableInternal/index.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/logging/debugger/rpc.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/reactions/autorun.d.ts +26 -0
- package/dist/src/_internal/util/vs/base/common/observableInternal/reactions/autorun.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/reactions/autorun.js +99 -0
- package/dist/src/_internal/util/vs/base/common/observableInternal/reactions/autorun.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/utils/promise.d.ts +13 -0
- package/dist/src/_internal/util/vs/base/common/observableInternal/utils/promise.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/utils/promise.js +29 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/utils/promise.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/utils/utils.d.ts +6 -0
- package/dist/src/_internal/util/vs/base/common/observableInternal/utils/utils.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/observableInternal/utils/utils.js +46 -0
- package/dist/src/_internal/util/vs/base/common/observableInternal/utils/utils.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/resources.d.ts +2 -2
- package/dist/src/_internal/util/vs/base/common/resources.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/resources.js +2 -2
- package/dist/src/_internal/util/vs/base/common/resources.js.map +1 -1
- package/dist/src/_internal/util/vs/base/common/uri.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/base/common/uri.js +6 -2
- package/dist/src/_internal/util/vs/base/common/uri.js.map +1 -1
- package/dist/src/_internal/util/vs/editor/common/core/ranges/offsetRange.d.ts +1 -1
- package/dist/src/_internal/util/vs/editor/common/core/ranges/offsetRange.js +1 -1
- package/dist/src/_internal/util/vs/editor/common/model/prefixSumComputer.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/editor/common/model/prefixSumComputer.js +7 -1
- package/dist/src/_internal/util/vs/editor/common/model/prefixSumComputer.js.map +1 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/markdownString.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/markdownString.js.map +1 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/notebooks.d.ts.map +1 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/notebooks.js +0 -1
- package/dist/src/_internal/util/vs/workbench/api/common/extHostTypes/notebooks.js.map +1 -1
- package/dist/src/package.json +67 -38
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatMLFetcher.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/extension/prompt/node/chatMLFetcher.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAEzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wDAAwD,CAAC;AAEhG,OAAO,EAAuB,cAAc,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,6CAA6C,CAAC;AAC3H,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EAAkE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAiC,MAAM,2CAA2C,CAAC;AACrM,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AAEzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EAA8B,qBAAqB,EAAE,MAAM,6DAA6D,CAAC;AAChI,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAGlF,OAAO,EAAiC,WAAW,EAAE,MAAM,yCAAyC,CAAC;AACrG,OAAO,EAAkD,yBAAyB,EAAa,MAAM,2CAA2C,CAAC;AACjJ,OAAO,EAAa,eAAe,EAAY,MAAM,oDAAoD,CAAC;AAC1G,OAAO,
|
|
1
|
+
{"version":3,"file":"chatMLFetcher.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/extension/prompt/node/chatMLFetcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -121,7 +121,8 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
121
121
|
* Note: the returned array of strings may be less than `n` (e.g., in case there were errors during streaming)
|
|
122
122
|
*/
|
|
123
123
|
async fetchMany(opts, token) {
|
|
124
|
-
let { debugName, endpoint: chatEndpoint, finishedCb, location, messages, requestOptions, source, telemetryProperties, userInitiatedRequest,
|
|
124
|
+
let { debugName, endpoint: chatEndpoint, finishedCb, location, messages, requestOptions, source, telemetryProperties, userInitiatedRequest, interactionTypeOverride, conversationId, turnId, topLevelTurnId, useWebSocket, ignoreStatefulMarker } = opts;
|
|
125
|
+
const interactionType = interactionTypeOverride ?? locationToIntent(location);
|
|
125
126
|
if (useWebSocket && this._consecutiveWebSocketRetryFallbacks >= ChatMLFetcherImpl_1._maxConsecutiveWebSocketFallbacks) {
|
|
126
127
|
this._logService.debug(`[ChatWebSocketManager] Disabling WebSocket for request due to ${this._consecutiveWebSocketRetryFallbacks} consecutive WebSocket failures with successful HTTP fallback.`);
|
|
127
128
|
useWebSocket = false;
|
|
@@ -196,7 +197,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
196
197
|
const countTokens = () => tokenCountPromise ??= chatEndpoint.acquireTokenizer().countMessagesTokens(messages);
|
|
197
198
|
const copilotToken = await this._authenticationService.getCopilotToken();
|
|
198
199
|
usernameToScrub = copilotToken.username;
|
|
199
|
-
const fetchResult = await this._fetchAndStreamChat(chatEndpoint, requestBody, baseTelemetry, streamRecorder.callback, requestOptions.secretKey, copilotToken, opts.location, ourRequestId, postOptions.n, token, countTokens, userInitiatedRequest, useWebSocket, turnId, conversationId, telemetryProperties, opts.useFetcher, canRetryOnce,
|
|
200
|
+
const fetchResult = await this._fetchAndStreamChat(chatEndpoint, requestBody, baseTelemetry, streamRecorder.callback, requestOptions.secretKey, copilotToken, opts.location, ourRequestId, postOptions.n, token, countTokens, userInitiatedRequest, useWebSocket, turnId, conversationId, telemetryProperties, opts.useFetcher, canRetryOnce, interactionTypeOverride, opts.summarizedAtRoundId, opts.modeChanged);
|
|
200
201
|
response = fetchResult.result;
|
|
201
202
|
actualFetcher = fetchResult.fetcher;
|
|
202
203
|
actualBytesReceived = fetchResult.bytesReceived;
|
|
@@ -270,6 +271,10 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
270
271
|
if (requestOptions) {
|
|
271
272
|
otelInferenceSpan.setAttribute(index_1.CopilotChatAttr.REQUEST_OPTIONS, (0, index_1.truncateForOTel)(JSON.stringify(requestOptions), this._otelService.config.maxAttributeSizeChars));
|
|
272
273
|
}
|
|
274
|
+
const requestShape = pickRequestShapeMetadata(requestBody);
|
|
275
|
+
if (requestShape) {
|
|
276
|
+
otelInferenceSpan.setAttribute(index_1.CopilotChatAttr.REQUEST_SHAPE, (0, index_1.truncateForOTel)(JSON.stringify(requestShape), this._otelService.config.maxAttributeSizeChars));
|
|
277
|
+
}
|
|
273
278
|
}
|
|
274
279
|
tokenCount = await countTokens();
|
|
275
280
|
const extensionId = source?.extensionId ?? constants_1.EXTENSION_ID;
|
|
@@ -284,7 +289,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
284
289
|
pendingLoggedChatRequest?.markTimeToFirstToken(timeToFirstToken);
|
|
285
290
|
switch (response.type) {
|
|
286
291
|
case fetch_2.FetchResponseKind.Success: {
|
|
287
|
-
const result = await this.processSuccessfulResponse(response, messages, requestBody, ourRequestId, maxResponseTokens, tokenCount, timeToFirstToken, streamRecorder, baseTelemetry, chatEndpoint, userInitiatedRequest, transport, actualFetcher, actualBytesReceived, suspendEventSeen, resumeEventSeen, actualModelCallId);
|
|
292
|
+
const result = await this.processSuccessfulResponse(response, messages, requestBody, ourRequestId, maxResponseTokens, tokenCount, timeToFirstToken, streamRecorder, baseTelemetry, chatEndpoint, userInitiatedRequest, interactionType, transport, actualFetcher, actualBytesReceived, suspendEventSeen, resumeEventSeen, actualModelCallId);
|
|
288
293
|
// Handle FilteredRetry case with augmented messages
|
|
289
294
|
if (result.type === commonTypes_1.ChatFetchResponseType.FilteredRetry) {
|
|
290
295
|
if (opts.enableRetryOnFilter) {
|
|
@@ -334,6 +339,11 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
334
339
|
pendingLoggedChatRequest?.resolve(result, streamRecorder.deltas);
|
|
335
340
|
// Record OTel token usage metrics if available
|
|
336
341
|
if (result.type === commonTypes_1.ChatFetchResponseType.Success && result.usage) {
|
|
342
|
+
// Store copilot_usage for per-request credits display, scoped to the turn.
|
|
343
|
+
// Skip background requests — they are not part of an active user turn.
|
|
344
|
+
if (typeof result.usage.copilot_usage?.total_nano_aiu === 'number' && turnId && interactionType !== 'conversation-background') {
|
|
345
|
+
this._chatQuotaService.setLastCopilotUsage(result.usage.copilot_usage.total_nano_aiu, topLevelTurnId ?? turnId);
|
|
346
|
+
}
|
|
337
347
|
const metricAttrs = {
|
|
338
348
|
operationName: index_1.GenAiOperationName.CHAT,
|
|
339
349
|
providerName: index_1.GenAiProviderName.GITHUB,
|
|
@@ -429,7 +439,10 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
429
439
|
model: chatEndpoint.model,
|
|
430
440
|
apiType: chatEndpoint.apiType,
|
|
431
441
|
transport,
|
|
442
|
+
interactionType,
|
|
443
|
+
conversationId: telemetryProperties.conversationId ?? conversationId,
|
|
432
444
|
associatedRequestId: telemetryProperties.associatedRequestId,
|
|
445
|
+
parentRequestId: telemetryProperties.parentRequestId,
|
|
433
446
|
retryAfterError: telemetryProperties.retryAfterError,
|
|
434
447
|
retryAfterErrorGitHubRequestId: telemetryProperties.retryAfterErrorGitHubRequestId,
|
|
435
448
|
connectivityTestError: telemetryProperties.connectivityTestError,
|
|
@@ -490,6 +503,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
490
503
|
usernameToScrub,
|
|
491
504
|
suspendEventSeen,
|
|
492
505
|
resumeEventSeen,
|
|
506
|
+
interactionType,
|
|
493
507
|
});
|
|
494
508
|
if (retryResult) {
|
|
495
509
|
return retryResult;
|
|
@@ -505,6 +519,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
505
519
|
timeToFirstToken,
|
|
506
520
|
isVisionRequest: this.filterImageMessages(messages),
|
|
507
521
|
transport,
|
|
522
|
+
interactionType,
|
|
508
523
|
fetcher: actualFetcher,
|
|
509
524
|
bytesReceived: actualBytesReceived,
|
|
510
525
|
issuedTime: baseTelemetry.issuedTime,
|
|
@@ -560,6 +575,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
560
575
|
usernameToScrub,
|
|
561
576
|
suspendEventSeen,
|
|
562
577
|
resumeEventSeen,
|
|
578
|
+
interactionType,
|
|
563
579
|
});
|
|
564
580
|
if (retryResult) {
|
|
565
581
|
return retryResult;
|
|
@@ -573,7 +589,10 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
573
589
|
model: chatEndpoint.model,
|
|
574
590
|
apiType: chatEndpoint.apiType,
|
|
575
591
|
transport,
|
|
592
|
+
interactionType,
|
|
593
|
+
conversationId: telemetryProperties.conversationId ?? conversationId,
|
|
576
594
|
associatedRequestId: telemetryProperties.associatedRequestId,
|
|
595
|
+
parentRequestId: telemetryProperties.parentRequestId,
|
|
577
596
|
retryAfterError: telemetryProperties.retryAfterError,
|
|
578
597
|
retryAfterErrorGitHubRequestId: telemetryProperties.retryAfterErrorGitHubRequestId,
|
|
579
598
|
connectivityTestError: telemetryProperties.connectivityTestError,
|
|
@@ -606,6 +625,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
606
625
|
timeToFirstToken: timeToError,
|
|
607
626
|
isVisionRequest: this.filterImageMessages(messages),
|
|
608
627
|
transport,
|
|
628
|
+
interactionType,
|
|
609
629
|
fetcher: actualFetcher,
|
|
610
630
|
bytesReceived: err.bytesReceived,
|
|
611
631
|
issuedTime: baseTelemetry.issuedTime,
|
|
@@ -674,7 +694,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
674
694
|
return authHeaders;
|
|
675
695
|
}
|
|
676
696
|
async _retryAfterError(params) {
|
|
677
|
-
const { opts, processed, telemetryProperties, requestBody, tokenCount, maxResponseTokens, timeToError, transport, actualFetcher, bytesReceived, baseTelemetry, streamRecorder, retryReason, debugNamePrefix, pendingLoggedChatRequest, token, usernameToScrub, suspendEventSeen, resumeEventSeen, } = params;
|
|
697
|
+
const { opts, processed, telemetryProperties, requestBody, tokenCount, maxResponseTokens, timeToError, transport, actualFetcher, bytesReceived, baseTelemetry, streamRecorder, retryReason, debugNamePrefix, pendingLoggedChatRequest, token, usernameToScrub, suspendEventSeen, resumeEventSeen, interactionType, } = params;
|
|
678
698
|
// net::ERR_NETWORK_CHANGED: https://github.com/microsoft/vscode/issues/260297
|
|
679
699
|
const isNetworkChangedError = ['darwin', 'linux'].includes(process.platform) && processed.reason.indexOf('net::ERR_NETWORK_CHANGED') !== -1;
|
|
680
700
|
// When Electron's network process crashes, all requests through it fail permanently.
|
|
@@ -702,6 +722,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
702
722
|
timeToFirstToken: timeToError,
|
|
703
723
|
isVisionRequest: this.filterImageMessages(opts.messages),
|
|
704
724
|
transport,
|
|
725
|
+
interactionType,
|
|
705
726
|
fetcher: actualFetcher,
|
|
706
727
|
bytesReceived,
|
|
707
728
|
issuedTime: baseTelemetry.issuedTime,
|
|
@@ -737,7 +758,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
737
758
|
}
|
|
738
759
|
return { retryResult, connectivityTestError, connectivityTestErrorGitHubRequestId };
|
|
739
760
|
}
|
|
740
|
-
async _fetchAndStreamChat(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, copilotToken, location, ourRequestId, nChoices, cancellationToken, countTokens, userInitiatedRequest, useWebSocket, turnId, conversationId, telemetryProperties, useFetcher, canRetryOnce,
|
|
761
|
+
async _fetchAndStreamChat(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, copilotToken, location, ourRequestId, nChoices, cancellationToken, countTokens, userInitiatedRequest, useWebSocket, turnId, conversationId, telemetryProperties, useFetcher, canRetryOnce, interactionTypeOverride, summarizedAtRoundId, modeChanged) {
|
|
741
762
|
const isPowerSaveBlockerEnabled = this._configurationService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.ChatRequestPowerSaveBlocker, this._experimentationService);
|
|
742
763
|
const blockerHandle = isPowerSaveBlockerEnabled && location !== commonTypes_1.ChatLocation.Other ? this._powerService.acquirePowerSaveBlocker() : undefined;
|
|
743
764
|
let suspendEventSeen = false;
|
|
@@ -751,7 +772,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
751
772
|
this._logService.info(`System resumed during streaming request ${ourRequestId} (${commonTypes_1.ChatLocation.toString(location)})`);
|
|
752
773
|
});
|
|
753
774
|
try {
|
|
754
|
-
const fetchResult = await this._doFetchAndStreamChat(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, copilotToken, location, ourRequestId, nChoices, cancellationToken, countTokens, userInitiatedRequest, useWebSocket, turnId, conversationId, telemetryProperties, useFetcher, canRetryOnce,
|
|
775
|
+
const fetchResult = await this._doFetchAndStreamChat(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, copilotToken, location, ourRequestId, nChoices, cancellationToken, countTokens, userInitiatedRequest, useWebSocket, turnId, conversationId, telemetryProperties, useFetcher, canRetryOnce, interactionTypeOverride, summarizedAtRoundId, modeChanged);
|
|
755
776
|
return { ...fetchResult, suspendEventSeen: suspendEventSeen || undefined, resumeEventSeen: resumeEventSeen || undefined };
|
|
756
777
|
}
|
|
757
778
|
catch (err) {
|
|
@@ -769,7 +790,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
769
790
|
blockerHandle?.dispose();
|
|
770
791
|
}
|
|
771
792
|
}
|
|
772
|
-
async _doFetchAndStreamChat(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, copilotToken, location, ourRequestId, nChoices, cancellationToken, countTokens, userInitiatedRequest, useWebSocket, turnId, conversationId, telemetryProperties, useFetcher, canRetryOnce,
|
|
793
|
+
async _doFetchAndStreamChat(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, copilotToken, location, ourRequestId, nChoices, cancellationToken, countTokens, userInitiatedRequest, useWebSocket, turnId, conversationId, telemetryProperties, useFetcher, canRetryOnce, interactionTypeOverride, summarizedAtRoundId, modeChanged) {
|
|
773
794
|
if (cancellationToken.isCancellationRequested) {
|
|
774
795
|
return { result: { type: fetch_2.FetchResponseKind.Canceled, reason: 'before fetch request' } };
|
|
775
796
|
}
|
|
@@ -825,10 +846,10 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
825
846
|
}
|
|
826
847
|
// WebSocket path: use persistent WebSocket connection for Responses API endpoints
|
|
827
848
|
if (useWebSocket && turnId && conversationId) {
|
|
828
|
-
const wsResult = await this._doFetchViaWebSocket(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, location, ourRequestId, turnId, conversationId, cancellationToken, countTokens, userInitiatedRequest, telemetryProperties,
|
|
849
|
+
const wsResult = await this._doFetchViaWebSocket(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, location, ourRequestId, turnId, conversationId, cancellationToken, countTokens, userInitiatedRequest, telemetryProperties, interactionTypeOverride, summarizedAtRoundId, modeChanged);
|
|
829
850
|
return { ...wsResult, otelSpan };
|
|
830
851
|
}
|
|
831
|
-
const httpResult = await this._doFetchViaHttp(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, location, ourRequestId, nChoices, cancellationToken, userInitiatedRequest, telemetryProperties, useFetcher, canRetryOnce,
|
|
852
|
+
const httpResult = await this._doFetchViaHttp(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, location, ourRequestId, nChoices, cancellationToken, userInitiatedRequest, telemetryProperties, useFetcher, canRetryOnce, interactionTypeOverride);
|
|
832
853
|
return { ...httpResult, otelSpan };
|
|
833
854
|
}
|
|
834
855
|
catch (err) {
|
|
@@ -851,13 +872,9 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
851
872
|
* Sends a chat request via a persistent WebSocket connection instead of HTTP POST.
|
|
852
873
|
* Events are the same Responses API streaming events, processed by OpenAIResponsesProcessor.
|
|
853
874
|
*/
|
|
854
|
-
async _doFetchViaWebSocket(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, location, ourRequestId, turnId, conversationId, cancellationToken, countTokens, userInitiatedRequest, telemetryProperties,
|
|
875
|
+
async _doFetchViaWebSocket(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, location, ourRequestId, turnId, conversationId, cancellationToken, countTokens, userInitiatedRequest, telemetryProperties, interactionTypeOverride, summarizedAtRoundId, modeChanged) {
|
|
855
876
|
const intent = locationToIntent(location);
|
|
856
|
-
const agentInteractionType =
|
|
857
|
-
'conversation-subagent' :
|
|
858
|
-
requestKindOptions?.kind === 'background' ?
|
|
859
|
-
'conversation-background' :
|
|
860
|
-
intent === 'conversation-agent' ? intent : undefined;
|
|
877
|
+
const agentInteractionType = interactionTypeOverride ?? intent;
|
|
861
878
|
const additionalHeaders = {
|
|
862
879
|
'Authorization': `Bearer ${secretKey}`,
|
|
863
880
|
'X-Request-Id': ourRequestId,
|
|
@@ -866,10 +883,8 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
866
883
|
'X-Interaction-Id': this._interactionService.interactionId,
|
|
867
884
|
...(chatEndpointInfo.getExtraHeaders ? chatEndpointInfo.getExtraHeaders(location) : {}),
|
|
868
885
|
};
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
additionalHeaders['X-Agent-Task-Id'] = ourRequestId;
|
|
872
|
-
}
|
|
886
|
+
additionalHeaders['X-Interaction-Type'] = agentInteractionType;
|
|
887
|
+
additionalHeaders['X-Agent-Task-Id'] = ourRequestId;
|
|
873
888
|
if (request.messages?.some((m) => Array.isArray(m.content) ? m.content.some(c => 'image_url' in c) : false) && chatEndpointInfo.supportsVision) {
|
|
874
889
|
additionalHeaders['Copilot-Vision-Request'] = 'true';
|
|
875
890
|
}
|
|
@@ -906,6 +921,13 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
906
921
|
telemetryData.properties[`request.option.${key}`] = JSON.stringify(value) ?? 'undefined';
|
|
907
922
|
}
|
|
908
923
|
this._telemetryService.sendGHTelemetryEvent('request.sent', telemetryData.properties, telemetryData.measurements);
|
|
924
|
+
if (request.tools) {
|
|
925
|
+
this._telemetryService.sendEnhancedGHTelemetryEvent('request.options.tools', (0, telemetry_1.multiplexProperties)({
|
|
926
|
+
headerRequestId: ourRequestId,
|
|
927
|
+
conversationId,
|
|
928
|
+
messagesJson: JSON.stringify(request.tools),
|
|
929
|
+
}), telemetryData.measurements);
|
|
930
|
+
}
|
|
909
931
|
const requestStart = Date.now();
|
|
910
932
|
const handle = connection.sendRequest(request, { userInitiated: !!userInitiatedRequest, turnId, requestId: ourRequestId, model: chatEndpointInfo.model, countTokens, tokenCountMax: chatEndpointInfo.maxOutputTokens, modelMaxPromptTokens: chatEndpointInfo.modelMaxPromptTokens, summarizedAtRoundId, modeChanged }, cancellationToken);
|
|
911
933
|
const extendedBaseTelemetryData = baseTelemetryData.extendedBy({ modelCallId });
|
|
@@ -999,10 +1021,10 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
999
1021
|
modelCallId,
|
|
1000
1022
|
};
|
|
1001
1023
|
}
|
|
1002
|
-
async _doFetchViaHttp(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, location, ourRequestId, nChoices, cancellationToken, userInitiatedRequest, telemetryProperties, useFetcher, canRetryOnce,
|
|
1024
|
+
async _doFetchViaHttp(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, location, ourRequestId, nChoices, cancellationToken, userInitiatedRequest, telemetryProperties, useFetcher, canRetryOnce, interactionTypeOverride) {
|
|
1003
1025
|
// Generate unique ID to link input and output messages
|
|
1004
1026
|
const modelCallId = (0, uuid_1.generateUuid)();
|
|
1005
|
-
const response = await this._fetchWithInstrumentation(chatEndpointInfo, ourRequestId, request, secretKey, location, cancellationToken, userInitiatedRequest, { ...telemetryProperties, modelCallId }, useFetcher, canRetryOnce,
|
|
1027
|
+
const response = await this._fetchWithInstrumentation(chatEndpointInfo, ourRequestId, request, secretKey, location, cancellationToken, userInitiatedRequest, { ...telemetryProperties, modelCallId }, useFetcher, canRetryOnce, interactionTypeOverride);
|
|
1006
1028
|
if (cancellationToken.isCancellationRequested) {
|
|
1007
1029
|
try {
|
|
1008
1030
|
// Destroy the stream so that the server is hopefully notified we don't want any more data
|
|
@@ -1074,7 +1096,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
1074
1096
|
modelCallId,
|
|
1075
1097
|
};
|
|
1076
1098
|
}
|
|
1077
|
-
async _fetchWithInstrumentation(chatEndpoint, ourRequestId, request, secretKey, location, cancellationToken, userInitiatedRequest, telemetryProperties, useFetcher, canRetryOnce,
|
|
1099
|
+
async _fetchWithInstrumentation(chatEndpoint, ourRequestId, request, secretKey, location, cancellationToken, userInitiatedRequest, telemetryProperties, useFetcher, canRetryOnce, interactionTypeOverride) {
|
|
1078
1100
|
// If request contains an image, we include this header.
|
|
1079
1101
|
const additionalHeaders = {
|
|
1080
1102
|
'X-Interaction-Id': this._interactionService.interactionId,
|
|
@@ -1103,6 +1125,13 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
1103
1125
|
// the request and response.
|
|
1104
1126
|
telemetryData.properties['headerRequestId'] = ourRequestId;
|
|
1105
1127
|
this._telemetryService.sendGHTelemetryEvent('request.sent', telemetryData.properties, telemetryData.measurements);
|
|
1128
|
+
if (request.tools) {
|
|
1129
|
+
this._telemetryService.sendEnhancedGHTelemetryEvent('request.options.tools', (0, telemetry_1.multiplexProperties)({
|
|
1130
|
+
headerRequestId: ourRequestId,
|
|
1131
|
+
conversationId: telemetryProperties?.conversationId,
|
|
1132
|
+
messagesJson: JSON.stringify(request.tools),
|
|
1133
|
+
}), telemetryData.measurements);
|
|
1134
|
+
}
|
|
1106
1135
|
const requestStart = Date.now();
|
|
1107
1136
|
const intent = locationToIntent(location);
|
|
1108
1137
|
// Wrap the Promise with success/error callbacks so we can log/measure it
|
|
@@ -1117,7 +1146,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
1117
1146
|
useFetcher,
|
|
1118
1147
|
canRetryOnce,
|
|
1119
1148
|
location,
|
|
1120
|
-
|
|
1149
|
+
interactionTypeOverride,
|
|
1121
1150
|
}).then(response => {
|
|
1122
1151
|
const apim = response.headers.get('apim-request-id');
|
|
1123
1152
|
if (apim) {
|
|
@@ -1379,13 +1408,14 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
1379
1408
|
reason: `Request Failed: ${response.status} ${text}`
|
|
1380
1409
|
};
|
|
1381
1410
|
}
|
|
1382
|
-
async processSuccessfulResponse(response, messages, requestBody, requestId, maxResponseTokens, promptTokenCount, timeToFirstToken, streamRecorder, baseTelemetry, chatEndpointInfo, userInitiatedRequest, transport, fetcher, bytesReceived, suspendEventSeen, resumeEventSeen, modelCallId) {
|
|
1411
|
+
async processSuccessfulResponse(response, messages, requestBody, requestId, maxResponseTokens, promptTokenCount, timeToFirstToken, streamRecorder, baseTelemetry, chatEndpointInfo, userInitiatedRequest, interactionType, transport, fetcher, bytesReceived, suspendEventSeen, resumeEventSeen, modelCallId) {
|
|
1383
1412
|
const completions = [];
|
|
1384
1413
|
for await (const chatCompletion of response.chatCompletions) {
|
|
1385
1414
|
chatMLFetcherTelemetry_1.ChatMLFetcherTelemetrySender.sendSuccessTelemetry(this._telemetryService, {
|
|
1386
1415
|
chatCompletion,
|
|
1387
1416
|
baseTelemetry,
|
|
1388
1417
|
userInitiatedRequest,
|
|
1418
|
+
interactionType,
|
|
1389
1419
|
chatEndpointInfo,
|
|
1390
1420
|
requestBody,
|
|
1391
1421
|
maxResponseTokens,
|
|
@@ -1871,4 +1901,34 @@ function pickCacheRelevantRequestOptions(body) {
|
|
|
1871
1901
|
}
|
|
1872
1902
|
return Object.keys(out).length > 0 ? out : undefined;
|
|
1873
1903
|
}
|
|
1904
|
+
/**
|
|
1905
|
+
* Sanitized request-shape metadata for debug views. This intentionally omits
|
|
1906
|
+
* identifiers such as `previous_response_id` itself and never includes message
|
|
1907
|
+
* or tool contents; it only records whether a Responses API continuation marker
|
|
1908
|
+
* was present and which top-level input item kinds were sent on the wire.
|
|
1909
|
+
*/
|
|
1910
|
+
function pickRequestShapeMetadata(body) {
|
|
1911
|
+
const out = {};
|
|
1912
|
+
if (Array.isArray(body.input)) {
|
|
1913
|
+
out.api = 'responses';
|
|
1914
|
+
out.inputItemCount = body.input.length;
|
|
1915
|
+
out.inputItemTypes = body.input.map(item => {
|
|
1916
|
+
if (item && typeof item === 'object') {
|
|
1917
|
+
const type = item.type;
|
|
1918
|
+
if (typeof type === 'string') {
|
|
1919
|
+
return type;
|
|
1920
|
+
}
|
|
1921
|
+
}
|
|
1922
|
+
return 'unknown';
|
|
1923
|
+
});
|
|
1924
|
+
}
|
|
1925
|
+
else if (Array.isArray(body.messages)) {
|
|
1926
|
+
out.api = 'messages';
|
|
1927
|
+
out.messageCount = body.messages.length;
|
|
1928
|
+
}
|
|
1929
|
+
if (typeof body.previous_response_id === 'string') {
|
|
1930
|
+
out.hasPreviousResponseId = true;
|
|
1931
|
+
}
|
|
1932
|
+
return Object.keys(out).length > 0 ? out : undefined;
|
|
1933
|
+
}
|
|
1874
1934
|
//# sourceMappingURL=chatMLFetcher.js.map
|