@vscode/chat-lib 0.4.1-1 → 0.4.1-11
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/completions-core/vscode-node/lib/src/ghostText/completionsFromNetwork.js +1 -1
- package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/ghostText/completionsFromNetwork.js.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/common/delay.d.ts +3 -1
- package/dist/src/_internal/extension/inlineEdits/common/delay.d.ts.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/common/delay.js +6 -0
- package/dist/src/_internal/extension/inlineEdits/common/delay.js.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/common/editRebase.d.ts.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/common/editRebase.js +2 -35
- package/dist/src/_internal/extension/inlineEdits/common/editRebase.js.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/common/userInteractionMonitor.d.ts +6 -0
- package/dist/src/_internal/extension/inlineEdits/common/userInteractionMonitor.d.ts.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/common/userInteractionMonitor.js +19 -35
- package/dist/src/_internal/extension/inlineEdits/common/userInteractionMonitor.js.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.d.ts +1 -0
- package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.d.ts.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.d.ts +12 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.d.ts.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.js +147 -95
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.js.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.d.ts +7 -0
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.d.ts.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.js +18 -3
- package/dist/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.js.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditResult.d.ts +2 -0
- package/dist/src/_internal/extension/inlineEdits/node/nextEditResult.d.ts.map +1 -1
- package/dist/src/_internal/extension/inlineEdits/node/nextEditResult.js.map +1 -1
- package/dist/src/_internal/extension/prompt/node/chatMLFetcher.d.ts +11 -1
- package/dist/src/_internal/extension/prompt/node/chatMLFetcher.d.ts.map +1 -1
- package/dist/src/_internal/extension/prompt/node/chatMLFetcher.js +144 -52
- package/dist/src/_internal/extension/prompt/node/chatMLFetcher.js.map +1 -1
- package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.d.ts +6 -3
- package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.d.ts.map +1 -1
- package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.js +9 -3
- package/dist/src/_internal/extension/prompt/node/chatMLFetcherTelemetry.js.map +1 -1
- package/dist/src/_internal/extension/xtab/common/diffHistoryForPrompt.d.ts +6 -1
- package/dist/src/_internal/extension/xtab/common/diffHistoryForPrompt.d.ts.map +1 -1
- package/dist/src/_internal/extension/xtab/common/diffHistoryForPrompt.js +3 -1
- package/dist/src/_internal/extension/xtab/common/diffHistoryForPrompt.js.map +1 -1
- package/dist/src/_internal/extension/xtab/common/lintErrors.js +2 -1
- package/dist/src/_internal/extension/xtab/common/lintErrors.js.map +1 -1
- package/dist/src/_internal/extension/xtab/common/promptCrafting.d.ts +6 -1
- package/dist/src/_internal/extension/xtab/common/promptCrafting.d.ts.map +1 -1
- package/dist/src/_internal/extension/xtab/common/promptCrafting.js +43 -6
- package/dist/src/_internal/extension/xtab/common/promptCrafting.js.map +1 -1
- package/dist/src/_internal/extension/xtab/common/recentFilesForPrompt.d.ts +22 -0
- package/dist/src/_internal/extension/xtab/common/recentFilesForPrompt.d.ts.map +1 -1
- package/dist/src/_internal/extension/xtab/common/recentFilesForPrompt.js +116 -17
- package/dist/src/_internal/extension/xtab/common/recentFilesForPrompt.js.map +1 -1
- package/dist/src/_internal/extension/xtab/common/similarFilesContextService.d.ts +10 -0
- package/dist/src/_internal/extension/xtab/common/similarFilesContextService.d.ts.map +1 -0
- package/dist/src/_internal/extension/xtab/common/similarFilesContextService.js +10 -0
- package/dist/src/_internal/extension/xtab/common/similarFilesContextService.js.map +1 -0
- package/dist/src/_internal/extension/xtab/common/tags.d.ts +1 -0
- package/dist/src/_internal/extension/xtab/common/tags.d.ts.map +1 -1
- package/dist/src/_internal/extension/xtab/common/tags.js +1 -0
- package/dist/src/_internal/extension/xtab/common/tags.js.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.js +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.js.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabEndpoint.d.ts.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabEndpoint.js +1 -0
- package/dist/src/_internal/extension/xtab/node/xtabEndpoint.js.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabNextCursorPredictor.d.ts.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabNextCursorPredictor.js +3 -2
- package/dist/src/_internal/extension/xtab/node/xtabNextCursorPredictor.js.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabProvider.d.ts +4 -1
- package/dist/src/_internal/extension/xtab/node/xtabProvider.d.ts.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabProvider.js +91 -20
- package/dist/src/_internal/extension/xtab/node/xtabProvider.js.map +1 -1
- package/dist/src/_internal/platform/authentication/common/copilotToken.d.ts +4 -0
- package/dist/src/_internal/platform/authentication/common/copilotToken.d.ts.map +1 -1
- package/dist/src/_internal/platform/authentication/common/copilotToken.js +6 -0
- package/dist/src/_internal/platform/authentication/common/copilotToken.js.map +1 -1
- package/dist/src/_internal/platform/configuration/common/configurationService.d.ts +26 -15
- package/dist/src/_internal/platform/configuration/common/configurationService.d.ts.map +1 -1
- package/dist/src/_internal/platform/configuration/common/configurationService.js +29 -18
- package/dist/src/_internal/platform/configuration/common/configurationService.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/capiClient.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/capiClient.js +1 -0
- package/dist/src/_internal/platform/endpoint/common/capiClient.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 +13 -3
- 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/autoChatEndpoint.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/autoChatEndpoint.js +1 -0
- package/dist/src/_internal/platform/endpoint/node/autoChatEndpoint.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 +3 -2
- package/dist/src/_internal/platform/endpoint/node/chatEndpoint.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/messagesApi.d.ts +6 -1
- package/dist/src/_internal/platform/endpoint/node/messagesApi.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/messagesApi.js +20 -12
- package/dist/src/_internal/platform/endpoint/node/messagesApi.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/proxyXtabEndpoint.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/proxyXtabEndpoint.js +1 -0
- package/dist/src/_internal/platform/endpoint/node/proxyXtabEndpoint.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/responsesApi.d.ts +1 -0
- package/dist/src/_internal/platform/endpoint/node/responsesApi.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/responsesApi.js +14 -10
- package/dist/src/_internal/platform/endpoint/node/responsesApi.js.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/dataTypes/triggerOptions.d.ts +8 -0
- package/dist/src/_internal/platform/inlineEdits/common/dataTypes/triggerOptions.d.ts.map +1 -0
- package/dist/src/_internal/platform/inlineEdits/common/dataTypes/triggerOptions.js +17 -0
- package/dist/src/_internal/platform/inlineEdits/common/dataTypes/triggerOptions.js.map +1 -0
- package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.d.ts +44 -0
- package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.d.ts.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.js +71 -2
- package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.js.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.js +5 -5
- package/dist/src/_internal/platform/inlineEdits/common/inlineEditLogContext.js.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.d.ts +15 -1
- package/dist/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.d.ts.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.js +22 -1
- package/dist/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.js.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/node/inlineEditsModelService.d.ts.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/node/inlineEditsModelService.js +9 -44
- package/dist/src/_internal/platform/inlineEdits/node/inlineEditsModelService.js.map +1 -1
- package/dist/src/_internal/platform/nesFetch/common/responseStream.js +2 -35
- package/dist/src/_internal/platform/nesFetch/common/responseStream.js.map +1 -1
- package/dist/src/_internal/platform/nesFetch/node/completionsFetchServiceImpl.js +3 -36
- package/dist/src/_internal/platform/nesFetch/node/completionsFetchServiceImpl.js.map +1 -1
- package/dist/src/_internal/platform/networking/common/anthropic.d.ts +5 -2
- package/dist/src/_internal/platform/networking/common/anthropic.d.ts.map +1 -1
- package/dist/src/_internal/platform/networking/common/anthropic.js +13 -3
- package/dist/src/_internal/platform/networking/common/anthropic.js.map +1 -1
- package/dist/src/_internal/platform/networking/common/fetcherService.d.ts +43 -1
- package/dist/src/_internal/platform/networking/common/fetcherService.d.ts.map +1 -1
- package/dist/src/_internal/platform/networking/common/fetcherService.js +29 -4
- package/dist/src/_internal/platform/networking/common/fetcherService.js.map +1 -1
- package/dist/src/_internal/platform/networking/common/networking.d.ts +40 -4
- package/dist/src/_internal/platform/networking/common/networking.d.ts.map +1 -1
- package/dist/src/_internal/platform/networking/common/networking.js +20 -6
- package/dist/src/_internal/platform/networking/common/networking.js.map +1 -1
- package/dist/src/_internal/platform/networking/node/chatWebSocketManager.d.ts +71 -0
- package/dist/src/_internal/platform/networking/node/chatWebSocketManager.d.ts.map +1 -0
- package/dist/src/_internal/platform/networking/node/chatWebSocketManager.js +308 -0
- package/dist/src/_internal/platform/networking/node/chatWebSocketManager.js.map +1 -0
- package/dist/src/_internal/platform/proxyModels/node/proxyModelsService.js +4 -37
- package/dist/src/_internal/platform/proxyModels/node/proxyModelsService.js.map +1 -1
- package/dist/src/_internal/platform/requestLogger/node/nullRequestLogger.d.ts +1 -0
- package/dist/src/_internal/platform/requestLogger/node/nullRequestLogger.d.ts.map +1 -1
- package/dist/src/_internal/platform/requestLogger/node/nullRequestLogger.js +3 -0
- package/dist/src/_internal/platform/requestLogger/node/nullRequestLogger.js.map +1 -1
- package/dist/src/_internal/platform/requestLogger/node/requestLogger.d.ts +2 -0
- package/dist/src/_internal/platform/requestLogger/node/requestLogger.d.ts.map +1 -1
- package/dist/src/_internal/platform/requestLogger/node/requestLogger.js.map +1 -1
- package/dist/src/_internal/platform/telemetry/common/telemetry.d.ts +9 -1
- package/dist/src/_internal/platform/telemetry/common/telemetry.d.ts.map +1 -1
- package/dist/src/_internal/platform/telemetry/common/telemetry.js +33 -15
- package/dist/src/_internal/platform/telemetry/common/telemetry.js.map +1 -1
- package/dist/src/_internal/platform/telemetry/node/azureInsightsReporter.d.ts +1 -1
- package/dist/src/_internal/platform/telemetry/node/azureInsightsReporter.d.ts.map +1 -1
- package/dist/src/_internal/platform/telemetry/node/azureInsightsReporter.js +3 -2
- package/dist/src/_internal/platform/telemetry/node/azureInsightsReporter.js.map +1 -1
- package/dist/src/_internal/util/common/errors.d.ts +4 -2
- package/dist/src/_internal/util/common/errors.d.ts.map +1 -1
- package/dist/src/_internal/util/common/errors.js +16 -12
- package/dist/src/_internal/util/common/errors.js.map +1 -1
- package/dist/src/_internal/util/common/result.js +4 -37
- package/dist/src/_internal/util/common/result.js.map +1 -1
- package/dist/src/_internal/util/common/test/shims/chatTypes.d.ts +14 -2
- package/dist/src/_internal/util/common/test/shims/chatTypes.d.ts.map +1 -1
- package/dist/src/_internal/util/common/test/shims/chatTypes.js +17 -3
- package/dist/src/_internal/util/common/test/shims/chatTypes.js.map +1 -1
- package/dist/src/_internal/util/common/test/shims/vscodeTypesShim.js +1 -1
- package/dist/src/_internal/util/common/test/shims/vscodeTypesShim.js.map +1 -1
- package/dist/src/main.d.ts.map +1 -1
- package/dist/src/main.js +10 -0
- package/dist/src/main.js.map +1 -1
- package/dist/src/package.json +185 -249
- package/package.json +3 -3
|
@@ -3,45 +3,12 @@
|
|
|
3
3
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
4
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
5
5
|
*--------------------------------------------------------------------------------------------*/
|
|
6
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
-
if (k2 === undefined) k2 = k;
|
|
8
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
-
}
|
|
12
|
-
Object.defineProperty(o, k2, desc);
|
|
13
|
-
}) : (function(o, m, k, k2) {
|
|
14
|
-
if (k2 === undefined) k2 = k;
|
|
15
|
-
o[k2] = m[k];
|
|
16
|
-
}));
|
|
17
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
-
}) : function(o, v) {
|
|
20
|
-
o["default"] = v;
|
|
21
|
-
});
|
|
22
6
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
23
7
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
24
8
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
25
9
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
26
10
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
27
11
|
};
|
|
28
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
29
|
-
var ownKeys = function(o) {
|
|
30
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
31
|
-
var ar = [];
|
|
32
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
33
|
-
return ar;
|
|
34
|
-
};
|
|
35
|
-
return ownKeys(o);
|
|
36
|
-
};
|
|
37
|
-
return function (mod) {
|
|
38
|
-
if (mod && mod.__esModule) return mod;
|
|
39
|
-
var result = {};
|
|
40
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
41
|
-
__setModuleDefault(result, mod);
|
|
42
|
-
return result;
|
|
43
|
-
};
|
|
44
|
-
})();
|
|
45
12
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
46
13
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
47
14
|
};
|
|
@@ -68,6 +35,7 @@ const fetcherService_1 = require("../../../platform/networking/common/fetcherSer
|
|
|
68
35
|
const networking_1 = require("../../../platform/networking/common/networking");
|
|
69
36
|
const openai_1 = require("../../../platform/networking/common/openai");
|
|
70
37
|
const chatStream_1 = require("../../../platform/networking/node/chatStream");
|
|
38
|
+
const chatWebSocketManager_1 = require("../../../platform/networking/node/chatWebSocketManager");
|
|
71
39
|
const stream_1 = require("../../../platform/networking/node/stream");
|
|
72
40
|
const fetch_2 = require("../../../platform/openai/node/fetch");
|
|
73
41
|
const requestLogger_1 = require("../../../platform/requestLogger/node/requestLogger");
|
|
@@ -75,14 +43,14 @@ const nullExperimentationService_1 = require("../../../platform/telemetry/common
|
|
|
75
43
|
const telemetry_1 = require("../../../platform/telemetry/common/telemetry");
|
|
76
44
|
const telemetryData_1 = require("../../../platform/telemetry/common/telemetryData");
|
|
77
45
|
const anomalyDetection_1 = require("../../../util/common/anomalyDetection");
|
|
78
|
-
const
|
|
79
|
-
const errorsUtil = __importStar(require("../../../util/common/errors"));
|
|
46
|
+
const errors_1 = require("../../../util/common/errors");
|
|
80
47
|
const async_1 = require("../../../util/vs/base/common/async");
|
|
81
|
-
const
|
|
48
|
+
const errors_2 = require("../../../util/vs/base/common/errors");
|
|
82
49
|
const event_1 = require("../../../util/vs/base/common/event");
|
|
83
50
|
const lifecycle_1 = require("../../../util/vs/base/common/lifecycle");
|
|
84
51
|
const strings_1 = require("../../../util/vs/base/common/strings");
|
|
85
52
|
const uuid_1 = require("../../../util/vs/base/common/uuid");
|
|
53
|
+
const instantiation_1 = require("../../../util/vs/platform/instantiation/common/instantiation");
|
|
86
54
|
const openAIEndpoint_1 = require("../../byok/node/openAIEndpoint");
|
|
87
55
|
const constants_1 = require("../../common/constants");
|
|
88
56
|
const powerService_1 = require("../../power/common/powerService");
|
|
@@ -116,7 +84,7 @@ class AbstractChatMLFetcher extends lifecycle_1.Disposable {
|
|
|
116
84
|
}
|
|
117
85
|
exports.AbstractChatMLFetcher = AbstractChatMLFetcher;
|
|
118
86
|
let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
119
|
-
constructor(_fetcherService, _telemetryService, _requestLogger, _logService, _authenticationService, _interactionService, _chatQuotaService, _capiClientService, options, _configurationService, _experimentationService, _powerService) {
|
|
87
|
+
constructor(_fetcherService, _telemetryService, _requestLogger, _logService, _authenticationService, _interactionService, _chatQuotaService, _capiClientService, options, _configurationService, _experimentationService, _powerService, _instantiationService, _webSocketManager) {
|
|
120
88
|
super(options);
|
|
121
89
|
this._fetcherService = _fetcherService;
|
|
122
90
|
this._telemetryService = _telemetryService;
|
|
@@ -129,6 +97,8 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
129
97
|
this._configurationService = _configurationService;
|
|
130
98
|
this._experimentationService = _experimentationService;
|
|
131
99
|
this._powerService = _powerService;
|
|
100
|
+
this._instantiationService = _instantiationService;
|
|
101
|
+
this._webSocketManager = _webSocketManager;
|
|
132
102
|
/**
|
|
133
103
|
* Delays (in ms) between connectivity check attempts before retrying a failed request.
|
|
134
104
|
* Configurable for testing purposes.
|
|
@@ -139,13 +109,20 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
139
109
|
* Note: the returned array of strings may be less than `n` (e.g., in case there were errors during streaming)
|
|
140
110
|
*/
|
|
141
111
|
async fetchMany(opts, token) {
|
|
142
|
-
let { debugName, endpoint: chatEndpoint, finishedCb, location, messages, requestOptions, source, telemetryProperties, userInitiatedRequest } = opts;
|
|
112
|
+
let { debugName, endpoint: chatEndpoint, finishedCb, location, messages, requestOptions, source, telemetryProperties, userInitiatedRequest, requestKindOptions, conversationId, turnId } = opts;
|
|
143
113
|
if (!telemetryProperties) {
|
|
144
114
|
telemetryProperties = {};
|
|
145
115
|
}
|
|
146
116
|
if (!telemetryProperties.messageSource) {
|
|
147
117
|
telemetryProperties.messageSource = debugName;
|
|
148
118
|
}
|
|
119
|
+
// When WebSocket is enabled, default to using the stateful marker so
|
|
120
|
+
// only delta history is sent once the server has context from this turn.
|
|
121
|
+
const useWebSocket = !!(turnId && conversationId
|
|
122
|
+
&& chatEndpoint.apiType === 'responses'
|
|
123
|
+
&& this._configurationService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.ResponsesApiWebSocketEnabled, this._experimentationService));
|
|
124
|
+
const transport = useWebSocket ? 'websocket' : 'http';
|
|
125
|
+
const ignoreStatefulMarker = useWebSocket ? (opts.ignoreStatefulMarker ?? false) : opts.ignoreStatefulMarker;
|
|
149
126
|
// TODO @lramos15 telemetry should not drive request ids
|
|
150
127
|
const ourRequestId = telemetryProperties.requestId ?? telemetryProperties.messageId ?? (0, uuid_1.generateUuid)();
|
|
151
128
|
const maxResponseTokens = chatEndpoint.maxOutputTokens;
|
|
@@ -159,6 +136,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
159
136
|
const postOptions = this.preparePostOptions(requestOptions);
|
|
160
137
|
const requestBody = chatEndpoint.createRequestBody({
|
|
161
138
|
...opts,
|
|
139
|
+
ignoreStatefulMarker,
|
|
162
140
|
requestId: ourRequestId,
|
|
163
141
|
postOptions
|
|
164
142
|
});
|
|
@@ -173,7 +151,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
173
151
|
ourRequestId,
|
|
174
152
|
location: opts.location,
|
|
175
153
|
body: requestBody,
|
|
176
|
-
ignoreStatefulMarker
|
|
154
|
+
ignoreStatefulMarker,
|
|
177
155
|
isConversationRequest: opts.isConversationRequest,
|
|
178
156
|
customMetadata: opts.customMetadata
|
|
179
157
|
});
|
|
@@ -201,7 +179,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
201
179
|
else {
|
|
202
180
|
const copilotToken = await this._authenticationService.getCopilotToken();
|
|
203
181
|
usernameToScrub = copilotToken.username;
|
|
204
|
-
const fetchResult = await this._fetchAndStreamChat(chatEndpoint, requestBody, baseTelemetry, streamRecorder.callback, requestOptions.secretKey, copilotToken, opts.location, ourRequestId, postOptions.n, token, userInitiatedRequest, telemetryProperties, opts.useFetcher, canRetryOnce);
|
|
182
|
+
const fetchResult = await this._fetchAndStreamChat(chatEndpoint, requestBody, baseTelemetry, streamRecorder.callback, requestOptions.secretKey, copilotToken, opts.location, ourRequestId, postOptions.n, token, userInitiatedRequest, useWebSocket, turnId, conversationId, telemetryProperties, opts.useFetcher, canRetryOnce, requestKindOptions);
|
|
205
183
|
response = fetchResult.result;
|
|
206
184
|
actualFetcher = fetchResult.fetcher;
|
|
207
185
|
actualBytesReceived = fetchResult.bytesReceived;
|
|
@@ -221,7 +199,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
221
199
|
pendingLoggedChatRequest?.markTimeToFirstToken(timeToFirstToken);
|
|
222
200
|
switch (response.type) {
|
|
223
201
|
case fetch_2.FetchResponseKind.Success: {
|
|
224
|
-
const result = await this.processSuccessfulResponse(response, messages, requestBody, ourRequestId, maxResponseTokens, tokenCount, timeToFirstToken, streamRecorder, baseTelemetry, chatEndpoint, userInitiatedRequest, actualFetcher, actualBytesReceived, suspendEventSeen, resumeEventSeen);
|
|
202
|
+
const result = await this.processSuccessfulResponse(response, messages, requestBody, ourRequestId, maxResponseTokens, tokenCount, timeToFirstToken, streamRecorder, baseTelemetry, chatEndpoint, userInitiatedRequest, transport, actualFetcher, actualBytesReceived, suspendEventSeen, resumeEventSeen);
|
|
225
203
|
// Handle FilteredRetry case with augmented messages
|
|
226
204
|
if (result.type === commonTypes_1.ChatFetchResponseType.FilteredRetry) {
|
|
227
205
|
if (opts.enableRetryOnFilter) {
|
|
@@ -277,6 +255,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
277
255
|
requestId: ourRequestId,
|
|
278
256
|
model: chatEndpoint.model,
|
|
279
257
|
apiType: chatEndpoint.apiType,
|
|
258
|
+
transport,
|
|
280
259
|
associatedRequestId: telemetryProperties.associatedRequestId,
|
|
281
260
|
retryAfterError: telemetryProperties.retryAfterError,
|
|
282
261
|
retryAfterErrorGitHubRequestId: telemetryProperties.retryAfterErrorGitHubRequestId,
|
|
@@ -317,6 +296,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
317
296
|
tokenCount,
|
|
318
297
|
maxResponseTokens,
|
|
319
298
|
timeToError: timeToFirstToken,
|
|
299
|
+
transport,
|
|
320
300
|
actualFetcher,
|
|
321
301
|
bytesReceived: actualBytesReceived,
|
|
322
302
|
baseTelemetry,
|
|
@@ -342,6 +322,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
342
322
|
maxResponseTokens,
|
|
343
323
|
timeToFirstToken,
|
|
344
324
|
isVisionRequest: this.filterImageMessages(messages),
|
|
325
|
+
transport,
|
|
345
326
|
fetcher: actualFetcher,
|
|
346
327
|
bytesReceived: actualBytesReceived,
|
|
347
328
|
issuedTime: baseTelemetry.issuedTime,
|
|
@@ -377,6 +358,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
377
358
|
tokenCount,
|
|
378
359
|
maxResponseTokens,
|
|
379
360
|
timeToError,
|
|
361
|
+
transport,
|
|
380
362
|
actualFetcher,
|
|
381
363
|
bytesReceived: err.bytesReceived,
|
|
382
364
|
baseTelemetry,
|
|
@@ -401,6 +383,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
401
383
|
requestId: ourRequestId,
|
|
402
384
|
model: chatEndpoint.model,
|
|
403
385
|
apiType: chatEndpoint.apiType,
|
|
386
|
+
transport,
|
|
404
387
|
associatedRequestId: telemetryProperties.associatedRequestId,
|
|
405
388
|
retryAfterError: telemetryProperties.retryAfterError,
|
|
406
389
|
retryAfterErrorGitHubRequestId: telemetryProperties.retryAfterErrorGitHubRequestId,
|
|
@@ -433,6 +416,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
433
416
|
maxResponseTokens,
|
|
434
417
|
timeToFirstToken: timeToError,
|
|
435
418
|
isVisionRequest: this.filterImageMessages(messages),
|
|
419
|
+
transport,
|
|
436
420
|
fetcher: actualFetcher,
|
|
437
421
|
bytesReceived: err.bytesReceived,
|
|
438
422
|
issuedTime: baseTelemetry.issuedTime,
|
|
@@ -500,7 +484,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
500
484
|
return authHeaders;
|
|
501
485
|
}
|
|
502
486
|
async _retryAfterError(params) {
|
|
503
|
-
const { opts, processed, telemetryProperties, requestBody, tokenCount, maxResponseTokens, timeToError, actualFetcher, bytesReceived, baseTelemetry, streamRecorder, retryReason, debugNamePrefix, pendingLoggedChatRequest, token, usernameToScrub, suspendEventSeen, resumeEventSeen, } = params;
|
|
487
|
+
const { opts, processed, telemetryProperties, requestBody, tokenCount, maxResponseTokens, timeToError, transport, actualFetcher, bytesReceived, baseTelemetry, streamRecorder, retryReason, debugNamePrefix, pendingLoggedChatRequest, token, usernameToScrub, suspendEventSeen, resumeEventSeen, } = params;
|
|
504
488
|
// net::ERR_NETWORK_CHANGED: https://github.com/microsoft/vscode/issues/260297
|
|
505
489
|
const isNetworkChangedError = ['darwin', 'linux'].includes(process.platform) && processed.reason.indexOf('net::ERR_NETWORK_CHANGED') !== -1;
|
|
506
490
|
// When Electron's network process crashes, all requests through it fail permanently.
|
|
@@ -527,6 +511,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
527
511
|
maxResponseTokens,
|
|
528
512
|
timeToFirstToken: timeToError,
|
|
529
513
|
isVisionRequest: this.filterImageMessages(opts.messages),
|
|
514
|
+
transport,
|
|
530
515
|
fetcher: actualFetcher,
|
|
531
516
|
bytesReceived,
|
|
532
517
|
issuedTime: baseTelemetry.issuedTime,
|
|
@@ -552,7 +537,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
552
537
|
pendingLoggedChatRequest?.resolve(retryResult, streamRecorder.deltas);
|
|
553
538
|
return { retryResult, connectivityTestError, connectivityTestErrorGitHubRequestId };
|
|
554
539
|
}
|
|
555
|
-
async _fetchAndStreamChat(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, copilotToken, location, ourRequestId, nChoices, cancellationToken, userInitiatedRequest, telemetryProperties, useFetcher, canRetryOnce) {
|
|
540
|
+
async _fetchAndStreamChat(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, copilotToken, location, ourRequestId, nChoices, cancellationToken, userInitiatedRequest, useWebSocket, turnId, conversationId, telemetryProperties, useFetcher, canRetryOnce, requestKindOptions) {
|
|
556
541
|
const isPowerSaveBlockerEnabled = this._configurationService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.ChatRequestPowerSaveBlocker, this._experimentationService);
|
|
557
542
|
const blockerHandle = isPowerSaveBlockerEnabled && location !== commonTypes_1.ChatLocation.Other ? this._powerService.acquirePowerSaveBlocker() : undefined;
|
|
558
543
|
let suspendEventSeen = false;
|
|
@@ -566,7 +551,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
566
551
|
this._logService.info(`System resumed during streaming request ${ourRequestId} (${commonTypes_1.ChatLocation.toString(location)})`);
|
|
567
552
|
});
|
|
568
553
|
try {
|
|
569
|
-
const fetchResult = await this._doFetchAndStreamChat(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, copilotToken, location, ourRequestId, nChoices, cancellationToken, userInitiatedRequest, telemetryProperties, useFetcher, canRetryOnce);
|
|
554
|
+
const fetchResult = await this._doFetchAndStreamChat(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, copilotToken, location, ourRequestId, nChoices, cancellationToken, userInitiatedRequest, useWebSocket, turnId, conversationId, telemetryProperties, useFetcher, canRetryOnce, requestKindOptions);
|
|
570
555
|
return { ...fetchResult, suspendEventSeen: suspendEventSeen || undefined, resumeEventSeen: resumeEventSeen || undefined };
|
|
571
556
|
}
|
|
572
557
|
catch (err) {
|
|
@@ -584,7 +569,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
584
569
|
blockerHandle?.dispose();
|
|
585
570
|
}
|
|
586
571
|
}
|
|
587
|
-
async _doFetchAndStreamChat(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, copilotToken, location, ourRequestId, nChoices, cancellationToken, userInitiatedRequest, telemetryProperties, useFetcher, canRetryOnce) {
|
|
572
|
+
async _doFetchAndStreamChat(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, copilotToken, location, ourRequestId, nChoices, cancellationToken, userInitiatedRequest, useWebSocket, turnId, conversationId, telemetryProperties, useFetcher, canRetryOnce, requestKindOptions) {
|
|
588
573
|
if (cancellationToken.isCancellationRequested) {
|
|
589
574
|
return { result: { type: fetch_2.FetchResponseKind.Canceled, reason: 'before fetch request' } };
|
|
590
575
|
}
|
|
@@ -606,9 +591,100 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
606
591
|
}
|
|
607
592
|
};
|
|
608
593
|
}
|
|
594
|
+
// WebSocket path: use persistent WebSocket connection for Responses API endpoints
|
|
595
|
+
if (useWebSocket && turnId && conversationId) {
|
|
596
|
+
return this._doFetchViaWebSocket(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, location, ourRequestId, turnId, conversationId, cancellationToken, telemetryProperties);
|
|
597
|
+
}
|
|
598
|
+
return this._doFetchViaHttp(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, location, ourRequestId, nChoices, cancellationToken, userInitiatedRequest, telemetryProperties, useFetcher, canRetryOnce, requestKindOptions);
|
|
599
|
+
}
|
|
600
|
+
/**
|
|
601
|
+
* Sends a chat request via a persistent WebSocket connection instead of HTTP POST.
|
|
602
|
+
* Events are the same Responses API streaming events, processed by OpenAIResponsesProcessor.
|
|
603
|
+
*/
|
|
604
|
+
async _doFetchViaWebSocket(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, location, ourRequestId, turnId, conversationId, cancellationToken, telemetryProperties) {
|
|
605
|
+
const connection = await this._webSocketManager.getOrCreateConnection(conversationId, turnId, secretKey);
|
|
606
|
+
// Generate unique ID to link input and output messages
|
|
607
|
+
const modelCallId = (0, uuid_1.generateUuid)();
|
|
608
|
+
const telemetryData = telemetryData_1.TelemetryData.createAndMarkAsIssued({
|
|
609
|
+
endpoint: 'completions',
|
|
610
|
+
engineName: 'chat',
|
|
611
|
+
uiKind: commonTypes_1.ChatLocation.toString(location),
|
|
612
|
+
transport: 'websocket',
|
|
613
|
+
...{ ...telemetryProperties, modelCallId },
|
|
614
|
+
}, {
|
|
615
|
+
maxTokenWindow: chatEndpointInfo.modelMaxPromptTokens
|
|
616
|
+
});
|
|
617
|
+
for (const [key, value] of Object.entries(request)) {
|
|
618
|
+
if (key === 'messages' || key === 'input') {
|
|
619
|
+
continue;
|
|
620
|
+
} // Skip messages (PII)
|
|
621
|
+
telemetryData.properties[`request.option.${key}`] = JSON.stringify(value) ?? 'undefined';
|
|
622
|
+
}
|
|
623
|
+
telemetryData.properties['headerRequestId'] = ourRequestId;
|
|
624
|
+
this._telemetryService.sendGHTelemetryEvent('request.sent', telemetryData.properties, telemetryData.measurements);
|
|
625
|
+
const requestStart = Date.now();
|
|
626
|
+
const handle = connection.sendRequest(request, cancellationToken);
|
|
627
|
+
const extendedBaseTelemetryData = baseTelemetryData.extendedBy({ modelCallId });
|
|
628
|
+
const processor = this._instantiationService.createInstance(responsesApi_1.OpenAIResponsesProcessor, extendedBaseTelemetryData, ourRequestId, '');
|
|
629
|
+
const chatCompletions = new async_1.AsyncIterableObject(async (emitter) => {
|
|
630
|
+
try {
|
|
631
|
+
await new Promise((resolve, reject) => {
|
|
632
|
+
handle.onEvent(event => {
|
|
633
|
+
const completion = processor.push(event, finishedCb);
|
|
634
|
+
if (completion) {
|
|
635
|
+
(0, responsesApi_1.sendCompletionOutputTelemetry)(this._telemetryService, this._logService, completion, extendedBaseTelemetryData);
|
|
636
|
+
emitter.emitOne(completion);
|
|
637
|
+
}
|
|
638
|
+
});
|
|
639
|
+
handle.onError(error => {
|
|
640
|
+
if ((0, errors_2.isCancellationError)(error)) {
|
|
641
|
+
reject(error);
|
|
642
|
+
return;
|
|
643
|
+
}
|
|
644
|
+
const warningTelemetry = telemetryData.extendedBy({ error: error.message });
|
|
645
|
+
this._telemetryService.sendGHTelemetryEvent('request.shownWarning', warningTelemetry.properties, warningTelemetry.measurements);
|
|
646
|
+
const totalTimeMs = Date.now() - requestStart;
|
|
647
|
+
telemetryData.measurements.totalTimeMs = totalTimeMs;
|
|
648
|
+
telemetryData.properties.error = error.message;
|
|
649
|
+
this._logService.debug(`request.error: [websocket], took ${totalTimeMs} ms`);
|
|
650
|
+
this._telemetryService.sendGHTelemetryEvent('request.error', telemetryData.properties, telemetryData.measurements);
|
|
651
|
+
reject(error);
|
|
652
|
+
});
|
|
653
|
+
handle.onComplete(() => {
|
|
654
|
+
const totalTimeMs = Date.now() - requestStart;
|
|
655
|
+
telemetryData.measurements.totalTimeMs = totalTimeMs;
|
|
656
|
+
this._logService.debug(`request.response: [websocket], took ${totalTimeMs} ms`);
|
|
657
|
+
this._telemetryService.sendGHTelemetryEvent('request.response', telemetryData.properties, telemetryData.measurements);
|
|
658
|
+
resolve();
|
|
659
|
+
});
|
|
660
|
+
});
|
|
661
|
+
}
|
|
662
|
+
finally {
|
|
663
|
+
let messagesToLog = request.messages;
|
|
664
|
+
if ((!messagesToLog || messagesToLog.length === 0) && request.input) {
|
|
665
|
+
try {
|
|
666
|
+
const rawMessages = (0, responsesApi_1.responseApiInputToRawMessagesForLogging)(request);
|
|
667
|
+
messagesToLog = (0, openai_1.rawMessageToCAPI)(rawMessages);
|
|
668
|
+
}
|
|
669
|
+
catch (e) {
|
|
670
|
+
this._logService.error(`Failed to convert Response API input to messages for telemetry:`, e);
|
|
671
|
+
messagesToLog = [];
|
|
672
|
+
}
|
|
673
|
+
}
|
|
674
|
+
(0, chatStream_1.sendEngineMessagesTelemetry)(this._telemetryService, messagesToLog ?? [], telemetryData, false, this._logService);
|
|
675
|
+
}
|
|
676
|
+
});
|
|
677
|
+
return {
|
|
678
|
+
result: {
|
|
679
|
+
type: fetch_2.FetchResponseKind.Success,
|
|
680
|
+
chatCompletions,
|
|
681
|
+
}
|
|
682
|
+
};
|
|
683
|
+
}
|
|
684
|
+
async _doFetchViaHttp(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, location, ourRequestId, nChoices, cancellationToken, userInitiatedRequest, telemetryProperties, useFetcher, canRetryOnce, requestKindOptions) {
|
|
609
685
|
// Generate unique ID to link input and output messages
|
|
610
686
|
const modelCallId = (0, uuid_1.generateUuid)();
|
|
611
|
-
const response = await this._fetchWithInstrumentation(chatEndpointInfo, ourRequestId, request, secretKey, location, cancellationToken, userInitiatedRequest, { ...telemetryProperties, modelCallId }, useFetcher, canRetryOnce);
|
|
687
|
+
const response = await this._fetchWithInstrumentation(chatEndpointInfo, ourRequestId, request, secretKey, location, cancellationToken, userInitiatedRequest, { ...telemetryProperties, modelCallId }, useFetcher, canRetryOnce, requestKindOptions);
|
|
612
688
|
if (cancellationToken.isCancellationRequested) {
|
|
613
689
|
try {
|
|
614
690
|
// Destroy the stream so that the server is hopefully notified we don't want any more data
|
|
@@ -679,7 +755,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
679
755
|
bytesReceived: response.bytesReceived
|
|
680
756
|
};
|
|
681
757
|
}
|
|
682
|
-
async _fetchWithInstrumentation(chatEndpoint, ourRequestId, request, secretKey, location, cancellationToken, userInitiatedRequest, telemetryProperties, useFetcher, canRetryOnce) {
|
|
758
|
+
async _fetchWithInstrumentation(chatEndpoint, ourRequestId, request, secretKey, location, cancellationToken, userInitiatedRequest, telemetryProperties, useFetcher, canRetryOnce, requestKindOptions) {
|
|
683
759
|
// If request contains an image, we include this header.
|
|
684
760
|
const additionalHeaders = {
|
|
685
761
|
'X-Interaction-Id': this._interactionService.interactionId,
|
|
@@ -692,6 +768,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
692
768
|
endpoint: 'completions',
|
|
693
769
|
engineName: 'chat',
|
|
694
770
|
uiKind: commonTypes_1.ChatLocation.toString(location),
|
|
771
|
+
transport: 'http',
|
|
695
772
|
...telemetryProperties // This includes the modelCallId from fetchAndStreamChat
|
|
696
773
|
}, {
|
|
697
774
|
maxTokenWindow: chatEndpoint.modelMaxPromptTokens
|
|
@@ -710,7 +787,19 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
710
787
|
const requestStart = Date.now();
|
|
711
788
|
const intent = locationToIntent(location);
|
|
712
789
|
// Wrap the Promise with success/error callbacks so we can log/measure it
|
|
713
|
-
return
|
|
790
|
+
return this._instantiationService.invokeFunction(networking_1.postRequest, {
|
|
791
|
+
endpointOrUrl: chatEndpoint,
|
|
792
|
+
secretKey,
|
|
793
|
+
intent,
|
|
794
|
+
requestId: ourRequestId,
|
|
795
|
+
body: request,
|
|
796
|
+
additionalHeaders,
|
|
797
|
+
cancelToken: cancellationToken,
|
|
798
|
+
useFetcher,
|
|
799
|
+
canRetryOnce,
|
|
800
|
+
location,
|
|
801
|
+
requestKindOptions,
|
|
802
|
+
}).then(response => {
|
|
714
803
|
const apim = response.headers.get('apim-request-id');
|
|
715
804
|
if (apim) {
|
|
716
805
|
this._logService.debug(`APIM request id: ${apim}`);
|
|
@@ -966,7 +1055,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
966
1055
|
reason: `Request Failed: ${response.status} ${text}`
|
|
967
1056
|
};
|
|
968
1057
|
}
|
|
969
|
-
async processSuccessfulResponse(response, messages, requestBody, requestId, maxResponseTokens, promptTokenCount, timeToFirstToken, streamRecorder, baseTelemetry, chatEndpointInfo, userInitiatedRequest, fetcher, bytesReceived, suspendEventSeen, resumeEventSeen) {
|
|
1058
|
+
async processSuccessfulResponse(response, messages, requestBody, requestId, maxResponseTokens, promptTokenCount, timeToFirstToken, streamRecorder, baseTelemetry, chatEndpointInfo, userInitiatedRequest, transport, fetcher, bytesReceived, suspendEventSeen, resumeEventSeen) {
|
|
970
1059
|
const completions = [];
|
|
971
1060
|
for await (const chatCompletion of response.chatCompletions) {
|
|
972
1061
|
chatMLFetcherTelemetry_1.ChatMLFetcherTelemetrySender.sendSuccessTelemetry(this._telemetryService, {
|
|
@@ -980,6 +1069,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
980
1069
|
timeToFirstToken,
|
|
981
1070
|
timeToFirstTokenEmitted: (baseTelemetry && streamRecorder.firstTokenEmittedTime) ? streamRecorder.firstTokenEmittedTime - baseTelemetry.issuedTime : -1,
|
|
982
1071
|
hasImageMessages: this.filterImageMessages(messages),
|
|
1072
|
+
transport,
|
|
983
1073
|
fetcher,
|
|
984
1074
|
bytesReceived,
|
|
985
1075
|
suspendEventSeen,
|
|
@@ -1184,7 +1274,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
1184
1274
|
serverRequestId: gitHubRequestId,
|
|
1185
1275
|
};
|
|
1186
1276
|
}
|
|
1187
|
-
if ((0,
|
|
1277
|
+
if ((0, errors_2.isCancellationError)(err)) {
|
|
1188
1278
|
return {
|
|
1189
1279
|
type: commonTypes_1.ChatFetchResponseType.Canceled,
|
|
1190
1280
|
reason: 'Got a cancellation error',
|
|
@@ -1201,7 +1291,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
1201
1291
|
serverRequestId: gitHubRequestId,
|
|
1202
1292
|
};
|
|
1203
1293
|
}
|
|
1204
|
-
this._logService.error(
|
|
1294
|
+
this._logService.error(errors_1.ErrorUtils.fromUnknown(err), `Error on conversation request`);
|
|
1205
1295
|
this._telemetryService.sendGHTelemetryException(err, 'Error on conversation request');
|
|
1206
1296
|
const userMessage = fetcher.getUserMessageForFetcherError(err);
|
|
1207
1297
|
const errorDetail = (0, logService_1.collectSingleLineErrorMessage)(err, true);
|
|
@@ -1257,7 +1347,9 @@ exports.ChatMLFetcherImpl = ChatMLFetcherImpl = __decorate([
|
|
|
1257
1347
|
__param(8, conversationOptions_1.IConversationOptions),
|
|
1258
1348
|
__param(9, configurationService_1.IConfigurationService),
|
|
1259
1349
|
__param(10, nullExperimentationService_1.IExperimentationService),
|
|
1260
|
-
__param(11, powerService_1.IPowerService)
|
|
1350
|
+
__param(11, powerService_1.IPowerService),
|
|
1351
|
+
__param(12, instantiation_1.IInstantiationService),
|
|
1352
|
+
__param(13, chatWebSocketManager_1.IChatWebSocketManager)
|
|
1261
1353
|
], ChatMLFetcherImpl);
|
|
1262
1354
|
/**
|
|
1263
1355
|
* Validates a chat request payload to ensure it is valid
|