@vscode/chat-lib 0.3.1-12 → 0.3.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.
Files changed (64) hide show
  1. package/dist/src/_internal/extension/common/constants.d.ts +0 -1
  2. package/dist/src/_internal/extension/common/constants.d.ts.map +1 -1
  3. package/dist/src/_internal/extension/common/constants.js +1 -1
  4. package/dist/src/_internal/extension/common/constants.js.map +1 -1
  5. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/fetch.d.ts +1 -1
  6. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/fetch.d.ts.map +1 -1
  7. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/fetch.js +120 -53
  8. package/dist/src/_internal/extension/completions-core/vscode-node/lib/src/openai/fetch.js.map +1 -1
  9. package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.d.ts +11 -0
  10. package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.d.ts.map +1 -1
  11. package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.js +35 -19
  12. package/dist/src/_internal/extension/inlineEdits/node/nextEditCache.js.map +1 -1
  13. package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.d.ts +1 -1
  14. package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.d.ts.map +1 -1
  15. package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.js +25 -9
  16. package/dist/src/_internal/extension/inlineEdits/node/nextEditProvider.js.map +1 -1
  17. package/dist/src/_internal/extension/power/common/powerService.d.ts +22 -0
  18. package/dist/src/_internal/extension/power/common/powerService.d.ts.map +1 -0
  19. package/dist/src/_internal/extension/power/common/powerService.js +20 -0
  20. package/dist/src/_internal/extension/power/common/powerService.js.map +1 -0
  21. package/dist/src/_internal/extension/prompt/node/chatMLFetcher.d.ts +4 -1
  22. package/dist/src/_internal/extension/prompt/node/chatMLFetcher.d.ts.map +1 -1
  23. package/dist/src/_internal/extension/prompt/node/chatMLFetcher.js +15 -2
  24. package/dist/src/_internal/extension/prompt/node/chatMLFetcher.js.map +1 -1
  25. package/dist/src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.d.ts +2 -3
  26. package/dist/src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.d.ts.map +1 -1
  27. package/dist/src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.js +2 -1
  28. package/dist/src/_internal/extension/xtab/node/xtabCustomDiffPatchResponseHandler.js.map +1 -1
  29. package/dist/src/_internal/extension/xtab/node/xtabProvider.d.ts +2 -3
  30. package/dist/src/_internal/extension/xtab/node/xtabProvider.d.ts.map +1 -1
  31. package/dist/src/_internal/extension/xtab/node/xtabProvider.js +41 -34
  32. package/dist/src/_internal/extension/xtab/node/xtabProvider.js.map +1 -1
  33. package/dist/src/_internal/extension/xtab/node/xtabUtils.d.ts +3 -4
  34. package/dist/src/_internal/extension/xtab/node/xtabUtils.d.ts.map +1 -1
  35. package/dist/src/_internal/extension/xtab/node/xtabUtils.js +33 -38
  36. package/dist/src/_internal/extension/xtab/node/xtabUtils.js.map +1 -1
  37. package/dist/src/_internal/platform/configuration/common/configurationService.d.ts +1 -0
  38. package/dist/src/_internal/platform/configuration/common/configurationService.d.ts.map +1 -1
  39. package/dist/src/_internal/platform/configuration/common/configurationService.js +2 -1
  40. package/dist/src/_internal/platform/configuration/common/configurationService.js.map +1 -1
  41. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.d.ts +3 -0
  42. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.d.ts.map +1 -1
  43. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.js +3 -0
  44. package/dist/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.js.map +1 -1
  45. package/dist/src/_internal/platform/inlineEdits/common/responseProcessor.d.ts +1 -2
  46. package/dist/src/_internal/platform/inlineEdits/common/responseProcessor.d.ts.map +1 -1
  47. package/dist/src/_internal/platform/inlineEdits/common/responseProcessor.js +4 -0
  48. package/dist/src/_internal/platform/inlineEdits/common/responseProcessor.js.map +1 -1
  49. package/dist/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.d.ts +6 -0
  50. package/dist/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.d.ts.map +1 -1
  51. package/dist/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.js.map +1 -1
  52. package/dist/src/_internal/platform/nesFetch/node/streamTransformer.d.ts +3 -0
  53. package/dist/src/_internal/platform/nesFetch/node/streamTransformer.d.ts.map +1 -1
  54. package/dist/src/_internal/platform/nesFetch/node/streamTransformer.js +12 -11
  55. package/dist/src/_internal/platform/nesFetch/node/streamTransformer.js.map +1 -1
  56. package/dist/src/_internal/platform/requestLogger/node/requestLogger.d.ts +20 -0
  57. package/dist/src/_internal/platform/requestLogger/node/requestLogger.d.ts.map +1 -1
  58. package/dist/src/_internal/platform/requestLogger/node/requestLogger.js +47 -0
  59. package/dist/src/_internal/platform/requestLogger/node/requestLogger.js.map +1 -1
  60. package/dist/src/main.d.ts.map +1 -1
  61. package/dist/src/main.js +2 -0
  62. package/dist/src/main.js.map +1 -1
  63. package/dist/src/package.json +136 -81
  64. package/package.json +1 -1
@@ -72,6 +72,7 @@ const types_1 = require("../../../util/vs/base/common/types");
72
72
  const uuid_1 = require("../../../util/vs/base/common/uuid");
73
73
  const lineEdit_1 = require("../../../util/vs/editor/common/core/edits/lineEdit");
74
74
  const stringEdit_1 = require("../../../util/vs/editor/common/core/edits/stringEdit");
75
+ const position_1 = require("../../../util/vs/editor/common/core/position");
75
76
  const offsetRange_1 = require("../../../util/vs/editor/common/core/ranges/offsetRange");
76
77
  const abstractText_1 = require("../../../util/vs/editor/common/core/text/abstractText");
77
78
  const editRebase_1 = require("../common/editRebase");
@@ -515,7 +516,7 @@ let NextEditProvider = class NextEditProvider extends lifecycle_1.Disposable {
515
516
  // populate the cache
516
517
  const nextEditReplacement = rebasedEdit.replacements[0];
517
518
  targetDocState.nextEdits.push(nextEditReplacement);
518
- cachedEdit = this._nextEditCache.setKthNextEdit(targetDocState.docId, targetDocState.docContents, ithEdit === 0 ? streamedEdit.window : undefined, nextEditReplacement, ithEdit, ithEdit === 0 ? targetDocState.nextEdits : undefined, ithEdit === 0 ? nextEditRequest.intermediateUserEdit : undefined, req, { isFromCursorJump: streamedEdit.isFromCursorJump });
519
+ cachedEdit = this._nextEditCache.setKthNextEdit(targetDocState.docId, targetDocState.docContents, ithEdit === 0 ? streamedEdit.window : undefined, nextEditReplacement, ithEdit, ithEdit === 0 ? targetDocState.nextEdits : undefined, ithEdit === 0 ? nextEditRequest.intermediateUserEdit : undefined, req, { isFromCursorJump: streamedEdit.isFromCursorJump, originalEditWindow: streamedEdit.originalWindow });
519
520
  myLogger.trace(`populated cache for ${ithEdit}`);
520
521
  }
521
522
  if (!firstEdit.isSettled) {
@@ -687,6 +688,7 @@ let NextEditProvider = class NextEditProvider extends lifecycle_1.Disposable {
687
688
  const rootedEdit = new edit_1.RootedEdit(result.documentBeforeEdits, new stringEdit_1.StringEdit([result.edit]));
688
689
  const postEditContentST = new abstractText_1.StringText(postEditContent);
689
690
  let cachedEdit = this._nextEditCache.lookupNextEdit(docId, postEditContentST, selections);
691
+ let shiftedSelection;
690
692
  if (cachedEdit) {
691
693
  // first cachedEdit should be without edits because of noSuggestions caching
692
694
  if (cachedEdit.edit) {
@@ -694,7 +696,13 @@ let NextEditProvider = class NextEditProvider extends lifecycle_1.Disposable {
694
696
  return;
695
697
  }
696
698
  else if (cachedEdit.editWindow) {
697
- const shiftedSelection = new offsetRange_1.OffsetRange(cachedEdit.editWindow.endExclusive, cachedEdit.editWindow.endExclusive);
699
+ const trans = postEditContentST.getTransformer();
700
+ const endOfEditWindow = trans.getPosition(cachedEdit.editWindow.endExclusive - 1);
701
+ const shiftedCursorLineNumber = (endOfEditWindow.lineNumber + 1 < postEditContentST.lineRange.endLineNumberExclusive
702
+ ? endOfEditWindow.lineNumber + 1
703
+ : endOfEditWindow.lineNumber);
704
+ const shiftedSelectionCursorOffset = trans.getOffset(new position_1.Position(shiftedCursorLineNumber, 1));
705
+ shiftedSelection = new offsetRange_1.OffsetRange(shiftedSelectionCursorOffset, shiftedSelectionCursorOffset);
698
706
  cachedEdit = this._nextEditCache.lookupNextEdit(docId, postEditContentST, [shiftedSelection]);
699
707
  if (cachedEdit?.edit) {
700
708
  logger.trace('already have cached edit for post-edit state (after shifting selection)');
@@ -735,10 +743,11 @@ let NextEditProvider = class NextEditProvider extends lifecycle_1.Disposable {
735
743
  // Create a speculative request
736
744
  // Use a dummy version since this is speculative and we don't have the actual post-edit version
737
745
  const logContext = new inlineEditLogContext_1.InlineEditRequestLogContext(docId.uri, 0, undefined);
738
- const req = new NextEditFetchRequest(`sp-${suggestion.source.opportunityId}`, logContext, undefined);
746
+ const req = new NextEditFetchRequest(`sp-${suggestion.source.opportunityId}`, logContext, undefined, `sp-${(0, uuid_1.generateUuid)()}`);
747
+ logger.trace(`triggering speculative request for post-edit state (opportunityId=${req.opportunityId}, headerRequestId=${req.headerRequestId})`);
739
748
  logger.trace(`triggering speculative request for post-edit state (opportunityId=${req.opportunityId}, headerRequestId=${req.headerRequestId})`);
740
749
  try {
741
- const speculativeRequest = await this._createSpeculativeRequest(req, doc, historyContext, postEditContent, rootedEdit, result.edit, logger);
750
+ const speculativeRequest = await this._createSpeculativeRequest(req, doc, shiftedSelection, historyContext, postEditContent, rootedEdit, result.edit, logger);
742
751
  if (speculativeRequest) {
743
752
  this._speculativePendingRequest = {
744
753
  request: speculativeRequest,
@@ -755,7 +764,7 @@ let NextEditProvider = class NextEditProvider extends lifecycle_1.Disposable {
755
764
  * The request will populate the cache so that when the user accepts the suggestion,
756
765
  * the next NES request can reuse or find the result in cache.
757
766
  */
758
- async _createSpeculativeRequest(req, doc, historyContext, postEditContent, rootedEdit, appliedEdit, parentLogger) {
767
+ async _createSpeculativeRequest(req, doc, shiftedSelection, historyContext, postEditContent, rootedEdit, appliedEdit, parentLogger) {
759
768
  const logger = parentLogger.createSubLogger('_createSpeculativeRequest');
760
769
  const curDocId = doc.id;
761
770
  const recording = this._debugRecorder?.getRecentLog();
@@ -778,11 +787,18 @@ let NextEditProvider = class NextEditProvider extends lifecycle_1.Disposable {
778
787
  const workspaceRoot = this._workspace.getWorkspaceRoot(curDocId);
779
788
  const postEditEdit = new stringEdit_1.StringEdit([appliedEdit]);
780
789
  const postEditLineEdit = rootedLineEdit_1.RootedLineEdit.fromEdit(new edit_1.RootedEdit(doc.value.get(), postEditEdit)).removeCommonSuffixPrefixLines().edit;
790
+ let selection = shiftedSelection;
791
+ if (selection === undefined) {
792
+ const appliedEditEndPos = postEditText.getTransformer().getPosition(appliedEdit.replaceRange.endExclusive + appliedEdit.getLengthDelta());
793
+ const pos = new position_1.Position(appliedEditEndPos.lineNumber, 1);
794
+ const offset = postEditText.getTransformer().getOffset(pos);
795
+ selection = new offsetRange_1.OffsetRange(offset, offset);
796
+ }
781
797
  const nextEditDoc = new statelessNextEditProvider_1.StatelessNextEditDocument(curDocId, workspaceRoot, docHist.languageId, doc.value.get().getLines(), // lines before the NES edit
782
798
  postEditLineEdit, // the NES edit as LineEdit
783
799
  doc.value.get(), // document before NES edit
784
800
  edit_1.Edits.single(postEditEdit), // the NES edit as Edits
785
- undefined);
801
+ selection);
786
802
  return {
787
803
  recentEdit: new edit_1.RootedEdit(doc.value.get(), postEditEdit),
788
804
  nextEditDoc,
@@ -853,7 +869,7 @@ let NextEditProvider = class NextEditProvider extends lifecycle_1.Disposable {
853
869
  targetDocState.nextEdits.push(nextEditReplacement);
854
870
  // Populate the cache with the speculative result
855
871
  const cachedEdit = this._nextEditCache.setKthNextEdit(targetDocState.docId, targetDocState.docContents, ithEdit === 0 ? streamedEdit.window : undefined, nextEditReplacement, ithEdit, ithEdit === 0 ? targetDocState.nextEdits : undefined, undefined, // no userEditSince for speculative
856
- req, { isFromCursorJump: streamedEdit.isFromCursorJump });
872
+ req, { isFromCursorJump: streamedEdit.isFromCursorJump, originalEditWindow: streamedEdit.originalWindow });
857
873
  if (!nextEditRequest.firstEdit.isSettled && cachedEdit) {
858
874
  nextEditRequest.firstEdit.complete(result_1.Result.ok(cachedEdit));
859
875
  nextEditRequest.setResult(new statelessNextEditProvider_1.StatelessNextEditResult(result_1.Result.ok(undefined), res.value.telemetryBuilder));
@@ -935,11 +951,11 @@ function assertDefined(value) {
935
951
  return value;
936
952
  }
937
953
  class NextEditFetchRequest {
938
- constructor(opportunityId, log, providerRequestStartDateTime) {
954
+ constructor(opportunityId, log, providerRequestStartDateTime, headerRequestId = (0, uuid_1.generateUuid)()) {
939
955
  this.opportunityId = opportunityId;
940
956
  this.log = log;
941
957
  this.providerRequestStartDateTime = providerRequestStartDateTime;
942
- this.headerRequestId = (0, uuid_1.generateUuid)();
958
+ this.headerRequestId = headerRequestId;
943
959
  }
944
960
  }
945
961
  exports.NextEditFetchRequest = NextEditFetchRequest;
@@ -1 +1 @@
1
- {"version":3,"file":"nextEditProvider.js","sourceRoot":"","sources":["../../../../../../src/_internal/extension/inlineEdits/node/nextEditProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nextEditProvider.js","sourceRoot":"","sources":["../../../../../../src/_internal/extension/inlineEdits/node/nextEditProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { IDisposable } from '../../../util/vs/base/common/lifecycle';
2
+ export declare const IPowerService: import("../../../util/vs/platform/instantiation/common/instantiation").ServiceIdentifier<IPowerService>;
3
+ export interface IPowerService {
4
+ readonly _serviceBrand: undefined;
5
+ /**
6
+ * Acquires a power save blocker that prevents app suspension.
7
+ * The blocker is reference-counted and will be released 2 minutes after
8
+ * the last acquisition is disposed.
9
+ *
10
+ * @returns A disposable that releases this acquisition when disposed.
11
+ */
12
+ acquirePowerSaveBlocker(): IDisposable;
13
+ }
14
+ /**
15
+ * A no-op implementation of {@link IPowerService} for environments where
16
+ * power save blocking is not supported (e.g., web, headless, tests).
17
+ */
18
+ export declare class NullPowerService implements IPowerService {
19
+ readonly _serviceBrand: undefined;
20
+ acquirePowerSaveBlocker(): IDisposable;
21
+ }
22
+ //# sourceMappingURL=powerService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"powerService.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/extension/power/common/powerService.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAGrE,eAAO,MAAM,aAAa,yGAAkD,CAAC;AAE7E,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC;IAElC;;;;;;OAMG;IACH,uBAAuB,IAAI,WAAW,CAAC;CACvC;AAED;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,aAAa;IACrD,SAAiB,aAAa,EAAE,SAAS,CAAC;IAE1C,uBAAuB,IAAI,WAAW;CAGtC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Microsoft Corporation. All rights reserved.
4
+ * Licensed under the MIT License. See License.txt in the project root for license information.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.NullPowerService = exports.IPowerService = void 0;
8
+ const instantiation_1 = require("../../../util/vs/platform/instantiation/common/instantiation");
9
+ exports.IPowerService = (0, instantiation_1.createDecorator)('IPowerService');
10
+ /**
11
+ * A no-op implementation of {@link IPowerService} for environments where
12
+ * power save blocking is not supported (e.g., web, headless, tests).
13
+ */
14
+ class NullPowerService {
15
+ acquirePowerSaveBlocker() {
16
+ return { dispose: () => { } };
17
+ }
18
+ }
19
+ exports.NullPowerService = NullPowerService;
20
+ //# sourceMappingURL=powerService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"powerService.js","sourceRoot":"","sources":["../../../../../../src/_internal/extension/power/common/powerService.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;AAGhG,gGAA+F;AAElF,QAAA,aAAa,GAAG,IAAA,+BAAe,EAAgB,eAAe,CAAC,CAAC;AAe7E;;;GAGG;AACH,MAAa,gBAAgB;IAG5B,uBAAuB;QACtB,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;IAC/B,CAAC;CACD;AAND,4CAMC"}
@@ -17,6 +17,7 @@ import { IExperimentationService } from '../../../platform/telemetry/common/null
17
17
  import { ITelemetryService } from '../../../platform/telemetry/common/telemetry';
18
18
  import { TelemetryData } from '../../../platform/telemetry/common/telemetryData';
19
19
  import { Emitter } from '../../../util/vs/base/common/event';
20
+ import { IPowerService } from '../../power/common/powerService';
20
21
  export interface IMadeChatRequestEvent {
21
22
  readonly messages: Raw.ChatMessage[];
22
23
  readonly model: string;
@@ -47,12 +48,13 @@ export declare class ChatMLFetcherImpl extends AbstractChatMLFetcher {
47
48
  private readonly _capiClientService;
48
49
  private readonly _configurationService;
49
50
  private readonly _experimentationService;
51
+ private readonly _powerService;
50
52
  /**
51
53
  * Delays (in ms) between connectivity check attempts before retrying a failed request.
52
54
  * Configurable for testing purposes.
53
55
  */
54
56
  connectivityCheckDelays: number[];
55
- constructor(_fetcherService: IFetcherService, _telemetryService: ITelemetryService, _requestLogger: IRequestLogger, _logService: ILogService, _authenticationService: IAuthenticationService, _interactionService: IInteractionService, _chatQuotaService: IChatQuotaService, _capiClientService: ICAPIClientService, options: IConversationOptions, _configurationService: IConfigurationService, _experimentationService: IExperimentationService);
57
+ 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);
56
58
  /**
57
59
  * Note: the returned array of strings may be less than `n` (e.g., in case there were errors during streaming)
58
60
  */
@@ -61,6 +63,7 @@ export declare class ChatMLFetcherImpl extends AbstractChatMLFetcher {
61
63
  private _getAuthHeaders;
62
64
  private _retryAfterError;
63
65
  private _fetchAndStreamChat;
66
+ private _doFetchAndStreamChat;
64
67
  private _fetchWithInstrumentation;
65
68
  private _handleError;
66
69
  private processSuccessfulResponse;
@@ -1 +1 @@
1
- {"version":3,"file":"chatMLFetcher.d.ts","sourceRoot":"","sources":["../../../../../../src/_internal/extension/prompt/node/chatMLFetcher.ts"],"names":[],"mappings":"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"}
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,EAAE,aAAa,EAA6D,MAAM,gDAAgD,CAAC;AAK1I,OAAO,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAC;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,+DAA+D,CAAC;AACxG,OAAO,EAAE,iBAAiB,EAAuB,MAAM,8CAA8C,CAAC;AACtG,OAAO,EAAE,aAAa,EAAE,MAAM,kDAAkD,CAAC;AAMjF,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAK7D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAGhE,MAAM,WAAW,qBAAqB;IACrC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,8BAAsB,qBAAsB,YAAW,cAAc;IAKnE,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,oBAAoB;IAHzC,aAAa,EAAE,SAAS,CAAC;gBAGb,OAAO,EAAE,oBAAoB;IAGjD,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,yBAAyB,GAAG,yBAAyB;IAUlG,SAAS,CAAC,QAAQ,CAAC,uBAAuB,iCAAwC;IAClF,QAAQ,CAAC,sBAAsB,4EAAsC;IAExD,QAAQ,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC;IAW7F;;OAEG;aACa,SAAS,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC;CAClG;AAED,qBAAa,iBAAkB,SAAQ,qBAAqB;IASzC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAC9B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW;IACjB,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IAC1C,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACtC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IACjC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAEhC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACpC,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IAClD,OAAO,CAAC,QAAQ,CAAC,aAAa;IAlB9C;;;OAGG;IACI,uBAAuB,WAAwB;gBAGnB,eAAe,EAAE,eAAe,EAC9B,iBAAiB,EAAE,iBAAiB,EACvC,cAAc,EAAE,cAAc,EACjC,WAAW,EAAE,WAAW,EACb,sBAAsB,EAAE,sBAAsB,EACjD,mBAAmB,EAAE,mBAAmB,EAC1C,iBAAiB,EAAE,iBAAiB,EACnC,kBAAkB,EAAE,kBAAkB,EACrD,OAAO,EAAE,oBAAoB,EACX,qBAAqB,EAAE,qBAAqB,EAC1C,uBAAuB,EAAE,uBAAuB,EAC1D,aAAa,EAAE,aAAa;IAK7D;;OAEG;IACU,SAAS,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC;YAqSjF,yBAAyB;YAiCzB,eAAe;YAmBf,gBAAgB;YAsFhB,mBAAmB;YAwCnB,qBAAqB;YA6IrB,yBAAyB;YAgIzB,YAAY;YA8OZ,yBAAyB;IA2FvC,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,YAAY;IAiCpB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,uBAAuB;IA+C/B,OAAO,CAAC,uBAAuB;IAmB/B,OAAO,CAAC,qBAAqB;IAyC7B,OAAO,CAAC,YAAY;IA8DpB,OAAO,CAAC,gBAAgB;CAOxB;AAkCD,wBAAgB,mBAAmB,CAAC,gBAAgB,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,iBAOnH;AAED;;;;GAIG;AAEH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAqB/D"}
@@ -84,6 +84,7 @@ const strings_1 = require("../../../util/vs/base/common/strings");
84
84
  const uuid_1 = require("../../../util/vs/base/common/uuid");
85
85
  const openAIEndpoint_1 = require("../../byok/node/openAIEndpoint");
86
86
  const constants_1 = require("../../common/constants");
87
+ const powerService_1 = require("../../power/common/powerService");
87
88
  const chatMLFetcherTelemetry_1 = require("./chatMLFetcherTelemetry");
88
89
  class AbstractChatMLFetcher {
89
90
  constructor(options) {
@@ -113,7 +114,7 @@ class AbstractChatMLFetcher {
113
114
  }
114
115
  exports.AbstractChatMLFetcher = AbstractChatMLFetcher;
115
116
  let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
116
- constructor(_fetcherService, _telemetryService, _requestLogger, _logService, _authenticationService, _interactionService, _chatQuotaService, _capiClientService, options, _configurationService, _experimentationService) {
117
+ constructor(_fetcherService, _telemetryService, _requestLogger, _logService, _authenticationService, _interactionService, _chatQuotaService, _capiClientService, options, _configurationService, _experimentationService, _powerService) {
117
118
  super(options);
118
119
  this._fetcherService = _fetcherService;
119
120
  this._telemetryService = _telemetryService;
@@ -125,6 +126,7 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
125
126
  this._capiClientService = _capiClientService;
126
127
  this._configurationService = _configurationService;
127
128
  this._experimentationService = _experimentationService;
129
+ this._powerService = _powerService;
128
130
  /**
129
131
  * Delays (in ms) between connectivity check attempts before retrying a failed request.
130
132
  * Configurable for testing purposes.
@@ -480,6 +482,16 @@ let ChatMLFetcherImpl = class ChatMLFetcherImpl extends AbstractChatMLFetcher {
480
482
  return { retryResult, connectivityTestError, connectivityTestErrorGitHubRequestId };
481
483
  }
482
484
  async _fetchAndStreamChat(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, copilotToken, location, ourRequestId, nChoices, cancellationToken, userInitiatedRequest, telemetryProperties, useFetcher, canRetryOnce) {
485
+ const isPowerSaveBlockerEnabled = this._configurationService.getExperimentBasedConfig(configurationService_1.ConfigKey.TeamInternal.ChatRequestPowerSaveBlocker, this._experimentationService);
486
+ const blockerHandle = isPowerSaveBlockerEnabled && location !== commonTypes_1.ChatLocation.Other ? this._powerService.acquirePowerSaveBlocker() : undefined;
487
+ try {
488
+ return await this._doFetchAndStreamChat(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, copilotToken, location, ourRequestId, nChoices, cancellationToken, userInitiatedRequest, telemetryProperties, useFetcher, canRetryOnce);
489
+ }
490
+ finally {
491
+ blockerHandle?.dispose();
492
+ }
493
+ }
494
+ async _doFetchAndStreamChat(chatEndpointInfo, request, baseTelemetryData, finishedCb, secretKey, copilotToken, location, ourRequestId, nChoices, cancellationToken, userInitiatedRequest, telemetryProperties, useFetcher, canRetryOnce) {
483
495
  if (cancellationToken.isCancellationRequested) {
484
496
  return { result: { type: fetch_2.FetchResponseKind.Canceled, reason: 'before fetch request' } };
485
497
  }
@@ -1147,7 +1159,8 @@ exports.ChatMLFetcherImpl = ChatMLFetcherImpl = __decorate([
1147
1159
  __param(7, capiClient_1.ICAPIClientService),
1148
1160
  __param(8, conversationOptions_1.IConversationOptions),
1149
1161
  __param(9, configurationService_1.IConfigurationService),
1150
- __param(10, nullExperimentationService_1.IExperimentationService)
1162
+ __param(10, nullExperimentationService_1.IExperimentationService),
1163
+ __param(11, powerService_1.IPowerService)
1151
1164
  ], ChatMLFetcherImpl);
1152
1165
  /**
1153
1166
  * Validates a chat request payload to ensure it is valid