@vscode/chat-lib 0.4.1-11 → 0.4.1-13
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/byok/node/openAIEndpoint.d.ts +2 -1
- package/dist/src/_internal/extension/byok/node/openAIEndpoint.d.ts.map +1 -1
- package/dist/src/_internal/extension/byok/node/openAIEndpoint.js +6 -7
- package/dist/src/_internal/extension/byok/node/openAIEndpoint.js.map +1 -1
- package/dist/src/_internal/extension/common/constants.d.ts +0 -1
- package/dist/src/_internal/extension/common/constants.d.ts.map +1 -1
- package/dist/src/_internal/extension/common/constants.js.map +1 -1
- package/dist/src/_internal/extension/prompt/node/chatMLFetcher.d.ts +3 -1
- package/dist/src/_internal/extension/prompt/node/chatMLFetcher.d.ts.map +1 -1
- package/dist/src/_internal/extension/prompt/node/chatMLFetcher.js +155 -30
- package/dist/src/_internal/extension/prompt/node/chatMLFetcher.js.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabEndpoint.d.ts +2 -1
- package/dist/src/_internal/extension/xtab/node/xtabEndpoint.d.ts.map +1 -1
- package/dist/src/_internal/extension/xtab/node/xtabEndpoint.js +5 -3
- package/dist/src/_internal/extension/xtab/node/xtabEndpoint.js.map +1 -1
- package/dist/src/_internal/platform/configuration/common/configurationService.d.ts +6 -1
- package/dist/src/_internal/platform/configuration/common/configurationService.d.ts.map +1 -1
- package/dist/src/_internal/platform/configuration/common/configurationService.js +7 -1
- package/dist/src/_internal/platform/configuration/common/configurationService.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.js +1 -1
- package/dist/src/_internal/platform/endpoint/common/chatModelCapabilities.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/endpointProvider.d.ts +2 -1
- package/dist/src/_internal/platform/endpoint/common/endpointProvider.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/common/endpointProvider.js +1 -0
- package/dist/src/_internal/platform/endpoint/common/endpointProvider.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/autoChatEndpoint.d.ts +2 -1
- package/dist/src/_internal/platform/endpoint/node/autoChatEndpoint.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/autoChatEndpoint.js +5 -3
- package/dist/src/_internal/platform/endpoint/node/autoChatEndpoint.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/chatEndpoint.d.ts +5 -2
- package/dist/src/_internal/platform/endpoint/node/chatEndpoint.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/chatEndpoint.js +33 -12
- package/dist/src/_internal/platform/endpoint/node/chatEndpoint.js.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/copilotChatEndpoint.d.ts +2 -1
- package/dist/src/_internal/platform/endpoint/node/copilotChatEndpoint.d.ts.map +1 -1
- package/dist/src/_internal/platform/endpoint/node/copilotChatEndpoint.js +5 -3
- package/dist/src/_internal/platform/endpoint/node/copilotChatEndpoint.js.map +1 -1
- package/dist/src/_internal/platform/github/common/githubAPI.d.ts +1 -0
- package/dist/src/_internal/platform/github/common/githubAPI.d.ts.map +1 -1
- package/dist/src/_internal/platform/github/common/githubAPI.js +2 -0
- package/dist/src/_internal/platform/github/common/githubAPI.js.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.d.ts +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.d.ts.map +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.js +1 -1
- package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.js.map +1 -1
- package/dist/src/_internal/platform/networking/common/networking.d.ts +2 -0
- package/dist/src/_internal/platform/networking/common/networking.d.ts.map +1 -1
- package/dist/src/_internal/platform/networking/common/networking.js.map +1 -1
- package/dist/src/_internal/platform/networking/node/chatWebSocketManager.d.ts +3 -1
- package/dist/src/_internal/platform/networking/node/chatWebSocketManager.d.ts.map +1 -1
- package/dist/src/_internal/platform/networking/node/chatWebSocketManager.js +176 -32
- package/dist/src/_internal/platform/networking/node/chatWebSocketManager.js.map +1 -1
- package/dist/src/_internal/platform/networking/node/chatWebSocketTelemetry.d.ts +82 -0
- package/dist/src/_internal/platform/networking/node/chatWebSocketTelemetry.d.ts.map +1 -0
- package/dist/src/_internal/platform/networking/node/chatWebSocketTelemetry.js +227 -0
- package/dist/src/_internal/platform/networking/node/chatWebSocketTelemetry.js.map +1 -0
- package/dist/src/_internal/platform/otel/common/genAiAttributes.d.ts +85 -0
- package/dist/src/_internal/platform/otel/common/genAiAttributes.d.ts.map +1 -0
- package/dist/src/_internal/platform/otel/common/genAiAttributes.js +105 -0
- package/dist/src/_internal/platform/otel/common/genAiAttributes.js.map +1 -0
- package/dist/src/_internal/platform/otel/common/genAiEvents.d.ts +28 -0
- package/dist/src/_internal/platform/otel/common/genAiEvents.d.ts.map +1 -0
- package/dist/src/_internal/platform/otel/common/genAiEvents.js +91 -0
- package/dist/src/_internal/platform/otel/common/genAiEvents.js.map +1 -0
- package/dist/src/_internal/platform/otel/common/genAiMetrics.d.ts +30 -0
- package/dist/src/_internal/platform/otel/common/genAiMetrics.d.ts.map +1 -0
- package/dist/src/_internal/platform/otel/common/genAiMetrics.js +68 -0
- package/dist/src/_internal/platform/otel/common/genAiMetrics.js.map +1 -0
- package/dist/src/_internal/platform/otel/common/index.d.ts +8 -0
- package/dist/src/_internal/platform/otel/common/index.d.ts.map +1 -0
- package/dist/src/_internal/platform/otel/common/index.js +35 -0
- package/dist/src/_internal/platform/otel/common/index.js.map +1 -0
- package/dist/src/_internal/platform/otel/common/messageFormatters.d.ts +85 -0
- package/dist/src/_internal/platform/otel/common/messageFormatters.d.ts.map +1 -0
- package/dist/src/_internal/platform/otel/common/messageFormatters.js +122 -0
- package/dist/src/_internal/platform/otel/common/messageFormatters.js.map +1 -0
- package/dist/src/_internal/platform/otel/common/noopOtelService.d.ts +23 -0
- package/dist/src/_internal/platform/otel/common/noopOtelService.d.ts.map +1 -0
- package/dist/src/_internal/platform/otel/common/noopOtelService.js +46 -0
- package/dist/src/_internal/platform/otel/common/noopOtelService.js.map +1 -0
- package/dist/src/_internal/platform/otel/common/otelConfig.d.ts +35 -0
- package/dist/src/_internal/platform/otel/common/otelConfig.d.ts.map +1 -0
- package/dist/src/_internal/platform/otel/common/otelConfig.js +140 -0
- package/dist/src/_internal/platform/otel/common/otelConfig.js.map +1 -0
- package/dist/src/_internal/platform/otel/common/otelService.d.ts +100 -0
- package/dist/src/_internal/platform/otel/common/otelService.d.ts.map +1 -0
- package/dist/src/_internal/platform/otel/common/otelService.js +10 -0
- package/dist/src/_internal/platform/otel/common/otelService.js.map +1 -0
- package/dist/src/main.d.ts.map +1 -1
- package/dist/src/main.js +4 -0
- package/dist/src/main.js.map +1 -1
- package/dist/src/package.json +79 -29
- package/package.json +2 -1
|
@@ -7,6 +7,7 @@ import { IChatModelInformation } from '../../../platform/endpoint/common/endpoin
|
|
|
7
7
|
import { ChatEndpoint } from '../../../platform/endpoint/node/chatEndpoint';
|
|
8
8
|
import { ILogService } from '../../../platform/log/common/logService';
|
|
9
9
|
import { IChatEndpoint, ICreateEndpointBodyOptions, IEndpointBody, IMakeChatRequestOptions } from '../../../platform/networking/common/networking';
|
|
10
|
+
import { IChatWebSocketManager } from '../../../platform/networking/node/chatWebSocketManager';
|
|
10
11
|
import { IExperimentationService } from '../../../platform/telemetry/common/nullExperimentationService';
|
|
11
12
|
import { ITokenizerProvider } from '../../../platform/tokenizer/node/tokenizer';
|
|
12
13
|
import { IInstantiationService } from '../../../util/vs/platform/instantiation/common/instantiation';
|
|
@@ -27,7 +28,7 @@ export declare class OpenAIEndpoint extends ChatEndpoint {
|
|
|
27
28
|
private static readonly _maxHeaderValueLength;
|
|
28
29
|
private static readonly _maxCustomHeaderCount;
|
|
29
30
|
private readonly _customHeaders;
|
|
30
|
-
constructor(_modelMetadata: IChatModelInformation, _apiKey: string, _modelUrl: string, domainService: IDomainService, chatMLFetcher: IChatMLFetcher, tokenizerProvider: ITokenizerProvider, instantiationService: IInstantiationService, configurationService: IConfigurationService, expService: IExperimentationService, logService: ILogService);
|
|
31
|
+
constructor(_modelMetadata: IChatModelInformation, _apiKey: string, _modelUrl: string, domainService: IDomainService, chatMLFetcher: IChatMLFetcher, tokenizerProvider: ITokenizerProvider, instantiationService: IInstantiationService, configurationService: IConfigurationService, expService: IExperimentationService, chatWebSocketService: IChatWebSocketManager, logService: ILogService);
|
|
31
32
|
private _sanitizeCustomHeaders;
|
|
32
33
|
private _sanitizeHeaderValue;
|
|
33
34
|
createRequestBody(options: ICreateEndpointBodyOptions): IEndpointBody;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openAIEndpoint.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/extension/byok/node/openAIEndpoint.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,EAAyB,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAChG,OAAO,EAAE,qBAAqB,EAAE,MAAM,6DAA6D,CAAC;AACpG,OAAO,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAEtE,OAAO,EAAyB,aAAa,EAAE,0BAA0B,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAC;AAE1K,OAAO,EAAE,uBAAuB,EAAE,MAAM,+DAA+D,CAAC;AACxG,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8DAA8D,CAAC;AAwBrG;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,SAAS,GAAG,MAAM,CAKvE;AAED,qBAAa,cAAe,SAAQ,YAAY;IA4D9C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM;IAClC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM;IAIb,SAAS,CAAC,oBAAoB,EAAE,qBAAqB;
|
|
1
|
+
{"version":3,"file":"openAIEndpoint.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/extension/byok/node/openAIEndpoint.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,EAAyB,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAChG,OAAO,EAAE,qBAAqB,EAAE,MAAM,6DAA6D,CAAC;AACpG,OAAO,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAEtE,OAAO,EAAyB,aAAa,EAAE,0BAA0B,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAC;AAE1K,OAAO,EAAE,qBAAqB,EAAE,MAAM,wDAAwD,CAAC;AAC/F,OAAO,EAAE,uBAAuB,EAAE,MAAM,+DAA+D,CAAC;AACxG,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8DAA8D,CAAC;AAwBrG;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,SAAS,GAAG,MAAM,CAKvE;AAED,qBAAa,cAAe,SAAQ,YAAY;IA4D9C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM;IAClC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM;IAIb,SAAS,CAAC,oBAAoB,EAAE,qBAAqB;IAI/D,SAAS,CAAC,UAAU,EAAE,WAAW;IAlE/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CA4CrC;IAGH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAoC;IAGnF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAO;IACnD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAQ;IACrD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAM;IAEnD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyB;gBAEvD,cAAc,EAAE,qBAAqB,EAClB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACpB,aAAa,EAAE,cAAc,EAC7B,aAAa,EAAE,cAAc,EACzB,iBAAiB,EAAE,kBAAkB,EACxB,oBAAoB,EAAE,qBAAqB,EACrD,oBAAoB,EAAE,qBAAqB,EACzC,UAAU,EAAE,uBAAuB,EACrC,oBAAoB,EAAE,qBAAqB,EAC3C,UAAU,EAAE,WAAW;IAgB/C,OAAO,CAAC,sBAAsB;IAsE9B,OAAO,CAAC,oBAAoB;IA0BnB,iBAAiB,CAAC,OAAO,EAAE,0BAA0B,GAAG,aAAa;IA8BrE,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,GAAG,IAAI;IA8B7D,IAAa,oBAAoB,IAAI,MAAM,CAE1C;IAEe,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAehD,sBAAsB,CAAC,oBAAoB,EAAE,MAAM,GAAG,aAAa;IAKtD,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,EAAE,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC;CAMzH"}
|
|
@@ -20,6 +20,7 @@ const chatEndpoint_1 = require("../../../platform/endpoint/node/chatEndpoint");
|
|
|
20
20
|
const logService_1 = require("../../../platform/log/common/logService");
|
|
21
21
|
const fetch_1 = require("../../../platform/networking/common/fetch");
|
|
22
22
|
const networking_1 = require("../../../platform/networking/common/networking");
|
|
23
|
+
const chatWebSocketManager_1 = require("../../../platform/networking/node/chatWebSocketManager");
|
|
23
24
|
const nullExperimentationService_1 = require("../../../platform/telemetry/common/nullExperimentationService");
|
|
24
25
|
const tokenizer_1 = require("../../../platform/tokenizer/node/tokenizer");
|
|
25
26
|
const instantiation_1 = require("../../../util/vs/platform/instantiation/common/instantiation");
|
|
@@ -111,8 +112,8 @@ let OpenAIEndpoint = class OpenAIEndpoint extends chatEndpoint_1.ChatEndpoint {
|
|
|
111
112
|
static { this._maxHeaderNameLength = 256; }
|
|
112
113
|
static { this._maxHeaderValueLength = 8192; }
|
|
113
114
|
static { this._maxCustomHeaderCount = 20; }
|
|
114
|
-
constructor(_modelMetadata, _apiKey, _modelUrl, domainService, chatMLFetcher, tokenizerProvider, instantiationService, configurationService, expService, logService) {
|
|
115
|
-
super(_modelMetadata, domainService, chatMLFetcher, tokenizerProvider, instantiationService, configurationService, expService, logService);
|
|
115
|
+
constructor(_modelMetadata, _apiKey, _modelUrl, domainService, chatMLFetcher, tokenizerProvider, instantiationService, configurationService, expService, chatWebSocketService, logService) {
|
|
116
|
+
super(_modelMetadata, domainService, chatMLFetcher, tokenizerProvider, instantiationService, configurationService, expService, chatWebSocketService, logService);
|
|
116
117
|
this._apiKey = _apiKey;
|
|
117
118
|
this._modelUrl = _modelUrl;
|
|
118
119
|
this.instantiationService = instantiationService;
|
|
@@ -277,10 +278,7 @@ let OpenAIEndpoint = class OpenAIEndpoint extends chatEndpoint_1.ChatEndpoint {
|
|
|
277
278
|
async makeChatRequest2(options, token) {
|
|
278
279
|
// Apply ignoreStatefulMarker: false for initial request
|
|
279
280
|
const modifiedOptions = { ...options, ignoreStatefulMarker: false };
|
|
280
|
-
|
|
281
|
-
if (response.type === commonTypes_1.ChatFetchResponseType.InvalidStatefulMarker) {
|
|
282
|
-
response = await this._makeChatRequest2({ ...options, ignoreStatefulMarker: true }, token);
|
|
283
|
-
}
|
|
281
|
+
const response = await super.makeChatRequest2(modifiedOptions, token);
|
|
284
282
|
return hydrateBYOKErrorMessages(response);
|
|
285
283
|
}
|
|
286
284
|
};
|
|
@@ -292,6 +290,7 @@ exports.OpenAIEndpoint = OpenAIEndpoint = OpenAIEndpoint_1 = __decorate([
|
|
|
292
290
|
__param(6, instantiation_1.IInstantiationService),
|
|
293
291
|
__param(7, configurationService_1.IConfigurationService),
|
|
294
292
|
__param(8, nullExperimentationService_1.IExperimentationService),
|
|
295
|
-
__param(9,
|
|
293
|
+
__param(9, chatWebSocketManager_1.IChatWebSocketManager),
|
|
294
|
+
__param(10, logService_1.ILogService)
|
|
296
295
|
], OpenAIEndpoint);
|
|
297
296
|
//# sourceMappingURL=openAIEndpoint.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openAIEndpoint.js","sourceRoot":"","sources":["../../../../../../src/_internal/extension/byok/node/openAIEndpoint.ts"],"names":[],"mappings":";;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"openAIEndpoint.js","sourceRoot":"","sources":["../../../../../../src/_internal/extension/byok/node/openAIEndpoint.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/extension/common/constants.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAEtE,0BAAkB,MAAM;IACvB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,WAAW,gBAAgB;IAC3B,cAAc,mBAAmB;IACjC,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,cAAc,mBAAmB;IACjC,QAAQ,aAAa;IACrB,eAAe,oBAAoB;IACnC,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,KAAK,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/extension/common/constants.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAEtE,0BAAkB,MAAM;IACvB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,WAAW,gBAAgB;IAC3B,cAAc,mBAAmB;IACjC,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,cAAc,mBAAmB;IACjC,QAAQ,aAAa;IACrB,eAAe,oBAAoB;IACnC,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,KAAK,cAAc;IACnB,QAAQ,aAAa;IACrB,WAAW,gBAAgB;IAC3B,cAAc,mBAAmB;IACjC,QAAQ,aAAa;CACrB;AAED,eAAO,MAAM,qBAAqB,oCAAoC,CAAC;AAGvE,eAAO,MAAM,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA4B5E,CAAC;AAGF,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAc3H;AAED,eAAO,MAAM,YAAY,wBAAwB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/_internal/extension/common/constants.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/_internal/extension/common/constants.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;AAgEhG,8CAcC;AA5ED,wEAAsE;AA4BzD,QAAA,qBAAqB,GAAG,iCAAiC,CAAC;AAEvE,oEAAoE;AACvD,QAAA,gBAAgB,GAAoD;IAChF,gCAAc,EAAE;QACf,SAAS,gCAAgB;QACzB,MAAM,0BAAa;QACnB,QAAQ,8BAAe;QACvB,OAAO,4BAAc;QACrB,KAAK,wBAAY;QACjB,KAAK,wBAAY;QACjB,aAAa,wCAAoB;QACjC,gBAAgB,8CAAuB;QACvC,YAAY,sCAAmB;QAC/B,SAAS,gCAAc;KACvB;IACD,8BAAe,EAAE;QAChB,QAAQ,8BAAe;KACvB;IACD,kCAAiB,EAAE;QAClB,SAAS,gDAAwB;KACjC;IACD,8BAAe,EAAE;QAChB,KAAK,wBAAY;QACjB,KAAK,wBAAY;QACjB,SAAS,gCAAgB;QACzB,QAAQ,8BAAe;QACvB,OAAO,4BAAc;QACrB,MAAM,0BAAa;QACnB,UAAU,kCAAiB;KAC3B;CACD,CAAC;AAEF,oFAAoF;AACpF,SAAgB,iBAAiB,CAAC,QAAgB,EAAE,QAAsB;IACzE,IAAI,MAAM,CAAC,IAAI,CAAC,wBAAgB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,wBAAgB,CAAC,EAAE,CAAC;QAClE,IAAI,QAAQ,KAAK,0BAAY,CAAC,MAAM,IAAI,KAAK,iCAAkB,EAAE,CAAC;YACjE,SAAS;QACV,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;QACrC,CAAC;IACF,CAAC;AACF,CAAC;AAEY,QAAA,YAAY,GAAG,qBAAqB,CAAC"}
|
|
@@ -13,6 +13,7 @@ import { OptionalChatRequestParams } from '../../../platform/networking/common/f
|
|
|
13
13
|
import { IFetcherService } from '../../../platform/networking/common/fetcherService';
|
|
14
14
|
import { IChatEndpoint } from '../../../platform/networking/common/networking';
|
|
15
15
|
import { IChatWebSocketManager } from '../../../platform/networking/node/chatWebSocketManager';
|
|
16
|
+
import { IOTelService } from '../../../platform/otel/common/otelService';
|
|
16
17
|
import { IRequestLogger } from '../../../platform/requestLogger/node/requestLogger';
|
|
17
18
|
import { IExperimentationService } from '../../../platform/telemetry/common/nullExperimentationService';
|
|
18
19
|
import { ITelemetryService } from '../../../platform/telemetry/common/telemetry';
|
|
@@ -54,12 +55,13 @@ export declare class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
54
55
|
private readonly _powerService;
|
|
55
56
|
private readonly _instantiationService;
|
|
56
57
|
private readonly _webSocketManager;
|
|
58
|
+
private readonly _otelService;
|
|
57
59
|
/**
|
|
58
60
|
* Delays (in ms) between connectivity check attempts before retrying a failed request.
|
|
59
61
|
* Configurable for testing purposes.
|
|
60
62
|
*/
|
|
61
63
|
connectivityCheckDelays: number[];
|
|
62
|
-
constructor(_fetcherService: IFetcherService, _telemetryService: ITelemetryService, _requestLogger: IRequestLogger, _logService: ILogService, _authenticationService: IAuthenticationService, _interactionService: IInteractionService, _chatQuotaService: IChatQuotaService, _capiClientService: ICAPIClientService, options: IConversationOptions, _configurationService: IConfigurationService, _experimentationService: IExperimentationService, _powerService: IPowerService, _instantiationService: IInstantiationService, _webSocketManager: IChatWebSocketManager);
|
|
64
|
+
constructor(_fetcherService: IFetcherService, _telemetryService: ITelemetryService, _requestLogger: IRequestLogger, _logService: ILogService, _authenticationService: IAuthenticationService, _interactionService: IInteractionService, _chatQuotaService: IChatQuotaService, _capiClientService: ICAPIClientService, options: IConversationOptions, _configurationService: IConfigurationService, _experimentationService: IExperimentationService, _powerService: IPowerService, _instantiationService: IInstantiationService, _webSocketManager: IChatWebSocketManager, _otelService: IOTelService);
|
|
63
65
|
/**
|
|
64
66
|
* Note: the returned array of strings may be less than `n` (e.g., in case there were errors during streaming)
|
|
65
67
|
*/
|
|
@@ -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,EAAE,MAAM,2CAA2C,CAAC;AACtK,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;AAErG,OAAO,EAAkD,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AACtI,OAAO,EAAa,eAAe,EAAY,MAAM,oDAAoD,CAAC;AAC1G,OAAO,EAA6B,aAAa,EAAsF,MAAM,gDAAgD,CAAC;AAG9L,OAAO,EAAE,qBAAqB,EAAE,MAAM,wDAAwD,CAAC;
|
|
1
|
+
{"version":3,"file":"chatMLFetcher.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/extension/prompt/node/chatMLFetcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,6 +38,8 @@ const chatStream_1 = require("../../../platform/networking/node/chatStream");
|
|
|
38
38
|
const chatWebSocketManager_1 = require("../../../platform/networking/node/chatWebSocketManager");
|
|
39
39
|
const stream_1 = require("../../../platform/networking/node/stream");
|
|
40
40
|
const fetch_2 = require("../../../platform/openai/node/fetch");
|
|
41
|
+
const index_1 = require("../../../platform/otel/common/index");
|
|
42
|
+
const otelService_1 = require("../../../platform/otel/common/otelService");
|
|
41
43
|
const requestLogger_1 = require("../../../platform/requestLogger/node/requestLogger");
|
|
42
44
|
const nullExperimentationService_1 = require("../../../platform/telemetry/common/nullExperimentationService");
|
|
43
45
|
const telemetry_1 = require("../../../platform/telemetry/common/telemetry");
|
|
@@ -84,7 +86,7 @@ class AbstractChatMLFetcher extends lifecycle_1.Disposable {
|
|
|
84
86
|
}
|
|
85
87
|
exports.AbstractChatMLFetcher = AbstractChatMLFetcher;
|
|
86
88
|
let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
87
|
-
constructor(_fetcherService, _telemetryService, _requestLogger, _logService, _authenticationService, _interactionService, _chatQuotaService, _capiClientService, options, _configurationService, _experimentationService, _powerService, _instantiationService, _webSocketManager) {
|
|
89
|
+
constructor(_fetcherService, _telemetryService, _requestLogger, _logService, _authenticationService, _interactionService, _chatQuotaService, _capiClientService, options, _configurationService, _experimentationService, _powerService, _instantiationService, _webSocketManager, _otelService) {
|
|
88
90
|
super(options);
|
|
89
91
|
this._fetcherService = _fetcherService;
|
|
90
92
|
this._telemetryService = _telemetryService;
|
|
@@ -99,6 +101,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
99
101
|
this._powerService = _powerService;
|
|
100
102
|
this._instantiationService = _instantiationService;
|
|
101
103
|
this._webSocketManager = _webSocketManager;
|
|
104
|
+
this._otelService = _otelService;
|
|
102
105
|
/**
|
|
103
106
|
* Delays (in ms) between connectivity check attempts before retrying a failed request.
|
|
104
107
|
* Configurable for testing purposes.
|
|
@@ -109,20 +112,14 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
109
112
|
* Note: the returned array of strings may be less than `n` (e.g., in case there were errors during streaming)
|
|
110
113
|
*/
|
|
111
114
|
async fetchMany(opts, token) {
|
|
112
|
-
let { debugName, endpoint: chatEndpoint, finishedCb, location, messages, requestOptions, source, telemetryProperties, userInitiatedRequest, requestKindOptions, conversationId, turnId } = opts;
|
|
115
|
+
let { debugName, endpoint: chatEndpoint, finishedCb, location, messages, requestOptions, source, telemetryProperties, userInitiatedRequest, requestKindOptions, conversationId, turnId, useWebSocket, ignoreStatefulMarker } = opts;
|
|
113
116
|
if (!telemetryProperties) {
|
|
114
117
|
telemetryProperties = {};
|
|
115
118
|
}
|
|
116
119
|
if (!telemetryProperties.messageSource) {
|
|
117
120
|
telemetryProperties.messageSource = debugName;
|
|
118
121
|
}
|
|
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
122
|
const transport = useWebSocket ? 'websocket' : 'http';
|
|
125
|
-
const ignoreStatefulMarker = useWebSocket ? (opts.ignoreStatefulMarker ?? false) : opts.ignoreStatefulMarker;
|
|
126
123
|
// TODO @lramos15 telemetry should not drive request ids
|
|
127
124
|
const ourRequestId = telemetryProperties.requestId ?? telemetryProperties.messageId ?? (0, uuid_1.generateUuid)();
|
|
128
125
|
const maxResponseTokens = chatEndpoint.maxOutputTokens;
|
|
@@ -165,6 +162,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
165
162
|
let actualStatusCode;
|
|
166
163
|
let suspendEventSeen;
|
|
167
164
|
let resumeEventSeen;
|
|
165
|
+
let otelInferenceSpan;
|
|
168
166
|
try {
|
|
169
167
|
let response;
|
|
170
168
|
const payloadValidationResult = isValidChatPayload(opts.messages, postOptions, chatEndpoint, this._configurationService, this._experimentationService);
|
|
@@ -186,6 +184,24 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
186
184
|
actualStatusCode = fetchResult.statusCode;
|
|
187
185
|
suspendEventSeen = fetchResult.suspendEventSeen;
|
|
188
186
|
resumeEventSeen = fetchResult.resumeEventSeen;
|
|
187
|
+
otelInferenceSpan = fetchResult.otelSpan;
|
|
188
|
+
// Tag span with debug name so orphaned spans (title, progressMessages, etc.) are identifiable
|
|
189
|
+
otelInferenceSpan?.setAttribute(index_1.GenAiAttr.AGENT_NAME, debugName);
|
|
190
|
+
// Capture request content when enabled
|
|
191
|
+
if (this._otelService.config.captureContent && otelInferenceSpan) {
|
|
192
|
+
const capiMessages = requestBody.messages;
|
|
193
|
+
if (capiMessages) {
|
|
194
|
+
otelInferenceSpan.setAttribute(index_1.GenAiAttr.INPUT_MESSAGES, (0, index_1.truncateForOTel)(JSON.stringify((0, index_1.toInputMessages)(capiMessages))));
|
|
195
|
+
}
|
|
196
|
+
// Capture system instructions (first system message)
|
|
197
|
+
const systemMsg = capiMessages?.find(m => m.role === 'system');
|
|
198
|
+
if (systemMsg?.content) {
|
|
199
|
+
const sysInstructions = (0, index_1.toSystemInstructions)(systemMsg.content);
|
|
200
|
+
if (sysInstructions) {
|
|
201
|
+
otelInferenceSpan.setAttribute(index_1.GenAiAttr.SYSTEM_INSTRUCTIONS, (0, index_1.truncateForOTel)(JSON.stringify(sysInstructions)));
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
189
205
|
tokenCount = await chatEndpoint.acquireTokenizer().countMessagesTokens(messages);
|
|
190
206
|
const extensionId = source?.extensionId ?? constants_1.EXTENSION_ID;
|
|
191
207
|
this._onDidMakeChatMLRequest.fire({
|
|
@@ -247,6 +263,69 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
247
263
|
};
|
|
248
264
|
}
|
|
249
265
|
pendingLoggedChatRequest?.resolve(result, streamRecorder.deltas);
|
|
266
|
+
// Record OTel token usage metrics if available
|
|
267
|
+
if (result.type === commonTypes_1.ChatFetchResponseType.Success && result.usage) {
|
|
268
|
+
const metricAttrs = {
|
|
269
|
+
operationName: index_1.GenAiOperationName.CHAT,
|
|
270
|
+
providerName: index_1.GenAiProviderName.GITHUB,
|
|
271
|
+
requestModel: chatEndpoint.model,
|
|
272
|
+
responseModel: result.resolvedModel,
|
|
273
|
+
};
|
|
274
|
+
if (result.usage.prompt_tokens) {
|
|
275
|
+
index_1.GenAiMetrics.recordTokenUsage(this._otelService, result.usage.prompt_tokens, 'input', metricAttrs);
|
|
276
|
+
}
|
|
277
|
+
if (result.usage.completion_tokens) {
|
|
278
|
+
index_1.GenAiMetrics.recordTokenUsage(this._otelService, result.usage.completion_tokens, 'output', metricAttrs);
|
|
279
|
+
}
|
|
280
|
+
// Set token usage and response details on the chat span before ending it
|
|
281
|
+
otelInferenceSpan?.setAttributes({
|
|
282
|
+
[index_1.GenAiAttr.USAGE_INPUT_TOKENS]: result.usage.prompt_tokens ?? 0,
|
|
283
|
+
[index_1.GenAiAttr.USAGE_OUTPUT_TOKENS]: result.usage.completion_tokens ?? 0,
|
|
284
|
+
[index_1.GenAiAttr.RESPONSE_MODEL]: result.resolvedModel ?? chatEndpoint.model,
|
|
285
|
+
[index_1.GenAiAttr.RESPONSE_ID]: result.requestId,
|
|
286
|
+
[index_1.GenAiAttr.RESPONSE_FINISH_REASONS]: ['stop'],
|
|
287
|
+
...(result.usage.prompt_tokens_details?.cached_tokens
|
|
288
|
+
? { [index_1.GenAiAttr.USAGE_CACHE_READ_INPUT_TOKENS]: result.usage.prompt_tokens_details.cached_tokens }
|
|
289
|
+
: {}),
|
|
290
|
+
[index_1.CopilotChatAttr.TIME_TO_FIRST_TOKEN]: timeToFirstToken,
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
// Capture response content when enabled
|
|
294
|
+
if (this._otelService.config.captureContent && otelInferenceSpan && result.type === commonTypes_1.ChatFetchResponseType.Success) {
|
|
295
|
+
const responseText = streamRecorder.deltas.map(d => d.text).join('');
|
|
296
|
+
const toolCalls = streamRecorder.deltas
|
|
297
|
+
.filter(d => d.copilotToolCalls?.length)
|
|
298
|
+
.flatMap(d => d.copilotToolCalls.map(tc => ({
|
|
299
|
+
type: 'tool_call', id: tc.id, name: tc.name, arguments: tc.arguments
|
|
300
|
+
})));
|
|
301
|
+
const parts = [];
|
|
302
|
+
if (responseText) {
|
|
303
|
+
parts.push({ type: 'text', content: responseText });
|
|
304
|
+
}
|
|
305
|
+
parts.push(...toolCalls);
|
|
306
|
+
if (parts.length > 0) {
|
|
307
|
+
otelInferenceSpan.setAttribute(index_1.GenAiAttr.OUTPUT_MESSAGES, (0, index_1.truncateForOTel)(JSON.stringify([{ role: 'assistant', parts }])));
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
// Emit OTel inference details event BEFORE ending the span
|
|
311
|
+
// so the log record inherits the active trace context
|
|
312
|
+
(0, index_1.emitInferenceDetailsEvent)(this._otelService, {
|
|
313
|
+
model: chatEndpoint.model,
|
|
314
|
+
temperature: requestOptions?.temperature,
|
|
315
|
+
maxTokens: requestOptions?.max_tokens,
|
|
316
|
+
}, result.type === commonTypes_1.ChatFetchResponseType.Success ? {
|
|
317
|
+
id: result.requestId,
|
|
318
|
+
model: result.resolvedModel,
|
|
319
|
+
finishReasons: ['stop'],
|
|
320
|
+
inputTokens: result.usage?.prompt_tokens,
|
|
321
|
+
outputTokens: result.usage?.completion_tokens,
|
|
322
|
+
} : undefined);
|
|
323
|
+
otelInferenceSpan?.end();
|
|
324
|
+
otelInferenceSpan = undefined;
|
|
325
|
+
// Record OTel time-to-first-token metric
|
|
326
|
+
if (timeToFirstToken > 0) {
|
|
327
|
+
index_1.GenAiMetrics.recordTimeToFirstToken(this._otelService, chatEndpoint.model, timeToFirstToken / 1000);
|
|
328
|
+
}
|
|
250
329
|
return result;
|
|
251
330
|
}
|
|
252
331
|
case fetch_2.FetchResponseKind.Canceled:
|
|
@@ -336,6 +415,8 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
336
415
|
}
|
|
337
416
|
}
|
|
338
417
|
catch (err) {
|
|
418
|
+
// End OTel inference span on error if not already ended
|
|
419
|
+
otelInferenceSpan?.end();
|
|
339
420
|
const timeToError = Date.now() - baseTelemetry.issuedTime;
|
|
340
421
|
if (err.fetcherId) {
|
|
341
422
|
actualFetcher = err.fetcherId;
|
|
@@ -573,29 +654,72 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
|
|
|
573
654
|
if (cancellationToken.isCancellationRequested) {
|
|
574
655
|
return { result: { type: fetch_2.FetchResponseKind.Canceled, reason: 'before fetch request' } };
|
|
575
656
|
}
|
|
576
|
-
this
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
657
|
+
// OTel inference span for this LLM call
|
|
658
|
+
const serverAddress = typeof chatEndpointInfo.urlOrRequestMetadata === 'string'
|
|
659
|
+
? (() => { try {
|
|
660
|
+
return new URL(chatEndpointInfo.urlOrRequestMetadata).hostname;
|
|
661
|
+
}
|
|
662
|
+
catch {
|
|
663
|
+
return undefined;
|
|
664
|
+
} })()
|
|
665
|
+
: undefined;
|
|
666
|
+
const otelSpan = this._otelService.startSpan(`chat ${chatEndpointInfo.model}`, {
|
|
667
|
+
kind: 2 /* SpanKind.CLIENT */,
|
|
668
|
+
attributes: {
|
|
669
|
+
[index_1.GenAiAttr.OPERATION_NAME]: index_1.GenAiOperationName.CHAT,
|
|
670
|
+
[index_1.GenAiAttr.PROVIDER_NAME]: index_1.GenAiProviderName.GITHUB,
|
|
671
|
+
[index_1.GenAiAttr.REQUEST_MODEL]: chatEndpointInfo.model,
|
|
672
|
+
[index_1.GenAiAttr.CONVERSATION_ID]: telemetryProperties?.requestId ?? ourRequestId,
|
|
673
|
+
[index_1.GenAiAttr.REQUEST_MAX_TOKENS]: request.max_tokens ?? request.max_output_tokens ?? request.max_completion_tokens ?? 2048,
|
|
674
|
+
...(request.temperature !== undefined ? { [index_1.GenAiAttr.REQUEST_TEMPERATURE]: request.temperature } : {}),
|
|
675
|
+
...(request.top_p !== undefined ? { [index_1.GenAiAttr.REQUEST_TOP_P]: request.top_p } : {}),
|
|
676
|
+
[index_1.CopilotChatAttr.MAX_PROMPT_TOKENS]: chatEndpointInfo.modelMaxPromptTokens,
|
|
677
|
+
...(serverAddress ? { [index_1.StdAttr.SERVER_ADDRESS]: serverAddress } : {}),
|
|
678
|
+
},
|
|
679
|
+
});
|
|
680
|
+
const otelStartTime = Date.now();
|
|
681
|
+
try {
|
|
682
|
+
this._logService.debug(`modelMaxPromptTokens ${chatEndpointInfo.modelMaxPromptTokens}`);
|
|
683
|
+
this._logService.debug(`modelMaxResponseTokens ${request.max_tokens ?? 2048}`);
|
|
684
|
+
this._logService.debug(`chat model ${chatEndpointInfo.model}`);
|
|
685
|
+
secretKey ??= copilotToken.token;
|
|
686
|
+
if (!secretKey) {
|
|
687
|
+
// If no key is set we error
|
|
688
|
+
const urlOrRequestMetadata = (0, networking_1.stringifyUrlOrRequestMetadata)(chatEndpointInfo.urlOrRequestMetadata);
|
|
689
|
+
this._logService.error(`Failed to send request to ${urlOrRequestMetadata} due to missing key`);
|
|
690
|
+
(0, stream_1.sendCommunicationErrorTelemetry)(this._telemetryService, `Failed to send request to ${urlOrRequestMetadata} due to missing key`);
|
|
691
|
+
return {
|
|
692
|
+
result: {
|
|
693
|
+
type: fetch_2.FetchResponseKind.Failed,
|
|
694
|
+
modelRequestId: undefined,
|
|
695
|
+
failKind: fetch_2.ChatFailKind.TokenExpiredOrInvalid,
|
|
696
|
+
reason: 'key is missing'
|
|
697
|
+
}
|
|
698
|
+
};
|
|
699
|
+
}
|
|
700
|
+
// WebSocket path: use persistent WebSocket connection for Responses API endpoints
|
|
701
|
+
if (useWebSocket && turnId && conversationId) {
|
|
702
|
+
const wsResult = await this._doFetchViaWebSocket(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, location, ourRequestId, turnId, conversationId, cancellationToken, telemetryProperties);
|
|
703
|
+
return { ...wsResult, otelSpan };
|
|
704
|
+
}
|
|
705
|
+
const httpResult = await this._doFetchViaHttp(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, location, ourRequestId, nChoices, cancellationToken, userInitiatedRequest, telemetryProperties, useFetcher, canRetryOnce, requestKindOptions);
|
|
706
|
+
return { ...httpResult, otelSpan };
|
|
707
|
+
}
|
|
708
|
+
catch (err) {
|
|
709
|
+
otelSpan.setStatus(2 /* SpanStatusCode.ERROR */, err instanceof Error ? err.message : String(err));
|
|
710
|
+
otelSpan.setAttribute(index_1.StdAttr.ERROR_TYPE, err instanceof Error ? err.constructor.name : 'Error');
|
|
711
|
+
otelSpan.recordException(err);
|
|
712
|
+
throw err;
|
|
593
713
|
}
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
714
|
+
finally {
|
|
715
|
+
const durationSec = (Date.now() - otelStartTime) / 1000;
|
|
716
|
+
index_1.GenAiMetrics.recordOperationDuration(this._otelService, durationSec, {
|
|
717
|
+
operationName: index_1.GenAiOperationName.CHAT,
|
|
718
|
+
providerName: index_1.GenAiProviderName.GITHUB,
|
|
719
|
+
requestModel: chatEndpointInfo.model,
|
|
720
|
+
});
|
|
721
|
+
// Span is NOT ended here — caller (fetchMany) will set token attributes and end it
|
|
597
722
|
}
|
|
598
|
-
return this._doFetchViaHttp(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, location, ourRequestId, nChoices, cancellationToken, userInitiatedRequest, telemetryProperties, useFetcher, canRetryOnce, requestKindOptions);
|
|
599
723
|
}
|
|
600
724
|
/**
|
|
601
725
|
* Sends a chat request via a persistent WebSocket connection instead of HTTP POST.
|
|
@@ -1349,7 +1473,8 @@ exports.ChatMLFetcherImpl = ChatMLFetcherImpl = __decorate([
|
|
|
1349
1473
|
__param(10, nullExperimentationService_1.IExperimentationService),
|
|
1350
1474
|
__param(11, powerService_1.IPowerService),
|
|
1351
1475
|
__param(12, instantiation_1.IInstantiationService),
|
|
1352
|
-
__param(13, chatWebSocketManager_1.IChatWebSocketManager)
|
|
1476
|
+
__param(13, chatWebSocketManager_1.IChatWebSocketManager),
|
|
1477
|
+
__param(14, otelService_1.IOTelService)
|
|
1353
1478
|
], ChatMLFetcherImpl);
|
|
1354
1479
|
/**
|
|
1355
1480
|
* Validates a chat request payload to ensure it is valid
|