@codingame/monaco-vscode-extensions-service-override 31.0.1 → 32.0.1

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 (45) hide show
  1. package/index.js +2 -0
  2. package/package.json +3 -3
  3. package/vscode/src/vs/platform/extensionManagement/common/extensionManagementCLI.js +29 -29
  4. package/vscode/src/vs/workbench/api/browser/mainThreadAuthentication.js +25 -25
  5. package/vscode/src/vs/workbench/api/browser/mainThreadBrowsers.d.ts +3 -1
  6. package/vscode/src/vs/workbench/api/browser/mainThreadBrowsers.js +9 -9
  7. package/vscode/src/vs/workbench/api/browser/mainThreadCLICommands.js +1 -1
  8. package/vscode/src/vs/workbench/api/browser/mainThreadChatAgents2.js +36 -14
  9. package/vscode/src/vs/workbench/api/browser/mainThreadChatDebug.js +9 -0
  10. package/vscode/src/vs/workbench/api/browser/mainThreadChatInputNotification.d.ts +10 -0
  11. package/vscode/src/vs/workbench/api/browser/mainThreadChatInputNotification.js +33 -0
  12. package/vscode/src/vs/workbench/api/browser/mainThreadChatSessions.d.ts +2 -1
  13. package/vscode/src/vs/workbench/api/browser/mainThreadChatSessions.js +102 -27
  14. package/vscode/src/vs/workbench/api/browser/mainThreadComments.d.ts +6 -3
  15. package/vscode/src/vs/workbench/api/browser/mainThreadComments.js +37 -15
  16. package/vscode/src/vs/workbench/api/browser/mainThreadConsole.d.ts +2 -1
  17. package/vscode/src/vs/workbench/api/browser/mainThreadConsole.js +8 -2
  18. package/vscode/src/vs/workbench/api/browser/mainThreadCustomEditors.d.ts +7 -3
  19. package/vscode/src/vs/workbench/api/browser/mainThreadCustomEditors.js +163 -36
  20. package/vscode/src/vs/workbench/api/browser/mainThreadDocumentDiff.d.ts +10 -0
  21. package/vscode/src/vs/workbench/api/browser/mainThreadDocumentDiff.js +58 -0
  22. package/vscode/src/vs/workbench/api/browser/mainThreadEditSessionIdentityParticipant.js +1 -1
  23. package/vscode/src/vs/workbench/api/browser/mainThreadExtensionService.js +11 -11
  24. package/vscode/src/vs/workbench/api/browser/mainThreadFileSystemEventService.js +20 -20
  25. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageFeatures.js +25 -2
  26. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageModels.js +2 -2
  27. package/vscode/src/vs/workbench/api/browser/mainThreadMcp.js +10 -9
  28. package/vscode/src/vs/workbench/api/browser/mainThreadMessageService.js +4 -4
  29. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookSaveParticipant.js +1 -1
  30. package/vscode/src/vs/workbench/api/browser/mainThreadOutputService.js +3 -3
  31. package/vscode/src/vs/workbench/api/browser/mainThreadProgress.js +1 -1
  32. package/vscode/src/vs/workbench/api/browser/mainThreadSaveParticipant.js +1 -1
  33. package/vscode/src/vs/workbench/api/browser/mainThreadTask.js +1 -1
  34. package/vscode/src/vs/workbench/api/browser/mainThreadTunnelService.js +2 -2
  35. package/vscode/src/vs/workbench/api/browser/mainThreadUriOpeners.js +2 -2
  36. package/vscode/src/vs/workbench/api/browser/mainThreadWebviews.js +1 -1
  37. package/vscode/src/vs/workbench/api/browser/mainThreadWorkspace.js +5 -5
  38. package/vscode/src/vs/workbench/contrib/customEditor/common/customTextEditorModel.js +1 -1
  39. package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionBisect.js +23 -23
  40. package/vscode/src/vs/workbench/services/extensionManagement/browser/webExtensionsScannerService.js +2 -2
  41. package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.js +14 -13
  42. package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.js +1 -1
  43. package/vscode/src/vs/workbench/services/extensions/common/extensionsProposedApi.js +1 -1
  44. package/vscode/src/vs/workbench/services/extensions/common/extensionsUtil.js +4 -4
  45. package/vscode/src/vs/workbench/services/themes/browser/cssExtensionPoint.js +5 -5
@@ -109,7 +109,9 @@ let MainThreadChatDebug = class MainThreadChatDebug extends Disposable {
109
109
  requestName: event.requestName,
110
110
  inputTokens: event.inputTokens,
111
111
  outputTokens: event.outputTokens,
112
+ cachedTokens: event.cachedTokens,
112
113
  totalTokens: event.totalTokens,
114
+ copilotUsageNanoAiu: event.copilotUsageNanoAiu,
113
115
  durationInMillis: event.durationInMillis
114
116
  };
115
117
  case "generic":
@@ -181,7 +183,9 @@ let MainThreadChatDebug = class MainThreadChatDebug extends Disposable {
181
183
  requestName: dto.requestName,
182
184
  inputTokens: dto.inputTokens,
183
185
  outputTokens: dto.outputTokens,
186
+ cachedTokens: dto.cachedTokens,
184
187
  totalTokens: dto.totalTokens,
188
+ copilotUsageNanoAiu: dto.copilotUsageNanoAiu,
185
189
  durationInMillis: dto.durationInMillis
186
190
  };
187
191
  case "generic":
@@ -250,10 +254,15 @@ let MainThreadChatDebug = class MainThreadChatDebug extends Disposable {
250
254
  model: dto.model,
251
255
  status: dto.status,
252
256
  durationInMillis: dto.durationInMillis,
257
+ timeToFirstTokenInMillis: dto.timeToFirstTokenInMillis,
258
+ requestId: dto.requestId,
259
+ maxInputTokens: dto.maxInputTokens,
260
+ maxOutputTokens: dto.maxOutputTokens,
253
261
  inputTokens: dto.inputTokens,
254
262
  outputTokens: dto.outputTokens,
255
263
  cachedTokens: dto.cachedTokens,
256
264
  totalTokens: dto.totalTokens,
265
+ requestOptions: dto.requestOptions,
257
266
  errorMessage: dto.errorMessage,
258
267
  sections: dto.sections
259
268
  };
@@ -0,0 +1,10 @@
1
+ import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
2
+ import { IChatInputNotificationService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationService.service";
3
+ import { IExtHostContext } from "../../services/extensions/common/extHostCustomers.js";
4
+ import { ChatInputNotificationDto, MainThreadChatInputNotificationShape } from "@codingame/monaco-vscode-api/vscode/vs/workbench/api/common/extHost.protocol";
5
+ export declare class MainThreadChatInputNotification extends Disposable implements MainThreadChatInputNotificationShape {
6
+ private readonly _chatInputNotificationService;
7
+ constructor(_extHostContext: IExtHostContext, _chatInputNotificationService: IChatInputNotificationService);
8
+ $setNotification(notification: ChatInputNotificationDto): void;
9
+ $disposeNotification(id: string): void;
10
+ }
@@ -0,0 +1,33 @@
1
+
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
4
+ import { IChatInputNotificationService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/input/chatInputNotificationService.service';
5
+ import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
6
+ import { MainContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/api/common/extHost.protocol';
7
+
8
+ let MainThreadChatInputNotification = class MainThreadChatInputNotification extends Disposable {
9
+ constructor(_extHostContext, _chatInputNotificationService) {
10
+ super();
11
+ this._chatInputNotificationService = _chatInputNotificationService;
12
+ }
13
+ $setNotification(notification) {
14
+ this._chatInputNotificationService.setNotification({
15
+ id: notification.id,
16
+ severity: notification.severity,
17
+ message: notification.message,
18
+ description: notification.description,
19
+ actions: notification.actions,
20
+ dismissible: notification.dismissible,
21
+ autoDismissOnMessage: notification.autoDismissOnMessage
22
+ });
23
+ }
24
+ $disposeNotification(id) {
25
+ this._chatInputNotificationService.deleteNotification(id);
26
+ }
27
+ };
28
+ MainThreadChatInputNotification = __decorate([
29
+ extHostNamedCustomer(MainContext.MainThreadChatInputNotification),
30
+ ( __param(1, IChatInputNotificationService))
31
+ ], MainThreadChatInputNotification);
32
+
33
+ export { MainThreadChatInputNotification };
@@ -84,7 +84,8 @@ export declare class MainThreadChatSessions extends Disposable implements MainTh
84
84
  private readonly _proxy;
85
85
  constructor(_extHostContext: IExtHostContext, _agentSessionsService: IAgentSessionsService, _chatSessionsService: IChatSessionsService, _chatService: IChatService, _chatWidgetService: IChatWidgetService, _chatTodoListService: IChatTodoListService, _chatArtifactsService: IChatArtifactsService, _chatDebugService: IChatDebugService, _dialogService: IDialogService, _editorService: IEditorService, editorGroupService: IEditorGroupsService, _logService: ILogService, _instantiationService: IInstantiationService);
86
86
  private _getHandleForSessionType;
87
- $registerChatSessionItemController(handle: number, chatSessionType: string): void;
87
+ $registerChatSessionItemController(handle: number, chatSessionType: string, supportsResolve: boolean): void;
88
+ $updateChatSessionItemControllerCapabilities(handle: number, supportsResolve: boolean): void;
88
89
  private _refreshControllerInputState;
89
90
  private _applyOptionGroups;
90
91
  private getController;
@@ -27,7 +27,7 @@ import { IChatService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/c
27
27
  import { ChatSessionOptionsMap } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService';
28
28
  import { IChatSessionsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatSessionsService.service';
29
29
  import { ChatAgentLocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
30
- import { getChatSessionType, isUntitledChatSession } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatUri';
30
+ import { getChatSessionType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatUri';
31
31
  import { IChatArtifactsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/chatArtifactsService.service';
32
32
  import { IChatTodoListService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/chatTodoListService.service';
33
33
  import { IEditorGroupsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorGroupsService.service';
@@ -118,7 +118,8 @@ class ObservableChatSession extends Disposable {
118
118
  return {
119
119
  type: "response",
120
120
  parts: ( turn.parts.map(part => revive(part))),
121
- participant: turn.participant
121
+ participant: turn.participant,
122
+ details: turn.details
122
123
  };
123
124
  })));
124
125
  if (sessionContent.hasActiveResponseCallback && !this.interruptActiveResponseCallback) {
@@ -135,7 +136,7 @@ class ObservableChatSession extends Disposable {
135
136
  return confirmInterrupt();
136
137
  }
137
138
  return this._dialogService.confirm({
138
- message: ( localize(2549, "Are you sure you want to interrupt the active session?"))
139
+ message: ( localize(2588, "Are you sure you want to interrupt the active session?"))
139
140
  }).then(confirmed => {
140
141
  if (confirmed.confirmed) {
141
142
  return confirmInterrupt();
@@ -282,17 +283,19 @@ class ObservableChatSession extends Disposable {
282
283
  }
283
284
  }
284
285
  let MainThreadChatSessionItemController = class MainThreadChatSessionItemController extends Disposable {
285
- constructor(proxy, chatSessionType, handle, _chatService, _logService) {
286
+ constructor(proxy, chatSessionType, handle, supportsResolve, _chatService) {
286
287
  super();
287
288
  this._chatService = _chatService;
288
- this._logService = _logService;
289
289
  this._onDidChangeChatSessionItems = this._register(( new Emitter()));
290
290
  this.onDidChangeChatSessionItems = this._onDidChangeChatSessionItems.event;
291
291
  this._modelListeners = this._register(( new DisposableResourceMap()));
292
+ this._resolveCache = ( new ResourceMap());
293
+ this._resolving = ( new ResourceMap());
292
294
  this._isDisposed = false;
293
295
  this._items = ( new ResourceMap());
294
296
  this._proxy = proxy;
295
297
  this._handle = handle;
298
+ this._supportsResolve = supportsResolve;
296
299
  const addModelListeners = async model => {
297
300
  if (getChatSessionType(model.sessionResource) !== chatSessionType) {
298
301
  return;
@@ -324,6 +327,7 @@ let MainThreadChatSessionItemController = class MainThreadChatSessionItemControl
324
327
  }
325
328
  dispose() {
326
329
  this._isDisposed = true;
330
+ this._resolveCache.clear();
327
331
  super.dispose();
328
332
  }
329
333
  get items() {
@@ -347,9 +351,14 @@ let MainThreadChatSessionItemController = class MainThreadChatSessionItemControl
347
351
  async acceptChange(change) {
348
352
  const addedOrUpdatedItems = [];
349
353
  for (const item of change.addedOrUpdated) {
354
+ const resource = URI.revive(item.resource);
355
+ if (!( this._resolving.has(resource))) {
356
+ this._resolveCache.delete(resource);
357
+ }
350
358
  addedOrUpdatedItems.push(await this.addOrUpdateItem(item));
351
359
  }
352
360
  for (const uri of change.removed) {
361
+ this._resolveCache.delete(uri);
353
362
  this._items.delete(uri);
354
363
  }
355
364
  this._onDidChangeChatSessionItems.fire({
@@ -359,7 +368,6 @@ let MainThreadChatSessionItemController = class MainThreadChatSessionItemControl
359
368
  }
360
369
  async addOrUpdateItem(dto) {
361
370
  const resource = URI.revive(dto.resource);
362
- warnOnUntitledSessionResource(resource, this._logService);
363
371
  const existing = this._items.get(resource);
364
372
  const updated = ( new MainThreadChatSessionItem(
365
373
  dto,
@@ -369,6 +377,9 @@ let MainThreadChatSessionItemController = class MainThreadChatSessionItemControl
369
377
  if (existing?.isEqual(updated)) {
370
378
  return existing;
371
379
  }
380
+ if (existing && existing.label !== updated.label && this._chatService.getSession(resource)) {
381
+ this._chatService.setSessionTitle(resource, updated.label);
382
+ }
372
383
  this._items.set(resource, updated);
373
384
  this._onDidChangeChatSessionItems.fire({
374
385
  addedOrUpdated: [updated]
@@ -389,8 +400,64 @@ let MainThreadChatSessionItemController = class MainThreadChatSessionItemControl
389
400
  }
390
401
  return optionGroups;
391
402
  }
403
+ async resolveChatSessionItem(resource, token) {
404
+ if (!this._supportsResolve) {
405
+ return undefined;
406
+ }
407
+ const cached = this._resolveCache.get(resource);
408
+ if (cached) {
409
+ return cached;
410
+ }
411
+ const promise = this._doResolveItem(resource, token).catch(err => {
412
+ this._resolveCache.delete(resource);
413
+ throw err;
414
+ });
415
+ this._resolveCache.set(resource, promise);
416
+ return promise;
417
+ }
418
+ async _doResolveItem(resource, token) {
419
+ const expectedItem = this._items.get(resource);
420
+ this._resolving.set(resource, true);
421
+ let dto;
422
+ try {
423
+ dto = await raceCancellationError(this._proxy.$resolveChatSessionItem(this._handle, resource, token), token);
424
+ } finally {
425
+ this._resolving.delete(resource);
426
+ }
427
+ if (!dto) {
428
+ return undefined;
429
+ }
430
+ if (this._items.get(resource) !== expectedItem) {
431
+ return this._items.get(resource);
432
+ }
433
+ const updated = ( new MainThreadChatSessionItem(
434
+ dto,
435
+ this._chatService.getSession(resource),
436
+ await this._chatService.getMetadataForSession(resource)
437
+ ));
438
+ if (this._items.get(resource) !== expectedItem) {
439
+ return this._items.get(resource);
440
+ }
441
+ if (expectedItem?.isEqual(updated)) {
442
+ return expectedItem;
443
+ }
444
+ this._items.set(resource, updated);
445
+ this._onDidChangeChatSessionItems.fire({
446
+ addedOrUpdated: [updated]
447
+ });
448
+ return updated;
449
+ }
450
+ setSupportsResolve(supportsResolve) {
451
+ if (this._supportsResolve === supportsResolve) {
452
+ return;
453
+ }
454
+ this._supportsResolve = supportsResolve;
455
+ if (supportsResolve) {
456
+ this._resolveCache.clear();
457
+ }
458
+ }
392
459
  };
393
- MainThreadChatSessionItemController = ( __decorate([( __param(3, IChatService)), ( __param(4, ILogService))], MainThreadChatSessionItemController));
460
+ MainThreadChatSessionItemController = ( __decorate([( __param(4, IChatService))], MainThreadChatSessionItemController));
394
461
  class MainThreadChatSessionItem {
395
462
  constructor(dto, model, detailOverrides) {
396
463
  this.resource = URI.revive(dto.resource);
@@ -461,16 +528,16 @@ let MainThreadChatSessions = class MainThreadChatSessions extends Disposable {
461
528
  updates
462
529
  }
463
530
  ) => {
464
- warnOnUntitledSessionResource(sessionResource, this._logService);
465
- const handle = this._getHandleForSessionType(sessionResource.scheme);
531
+ const sessionType = getChatSessionType(sessionResource);
532
+ const handle = this._getHandleForSessionType(sessionType);
466
533
  this._logService.trace(
467
- `[MainThreadChatSessions] onRequestNotifyExtension received: scheme '${sessionResource.scheme}', handle ${handle}, ${updates.size} update(s)`
534
+ `[MainThreadChatSessions] onRequestNotifyExtension received: sessionType '${sessionType}', handle ${handle}, ${updates.size} update(s)`
468
535
  );
469
536
  if (handle !== undefined) {
470
537
  this.notifyOptionsChange(handle, sessionResource, updates);
471
538
  } else {
472
539
  this._logService.warn(
473
- `[MainThreadChatSessions] Cannot notify option change for scheme '${sessionResource.scheme}': no provider registered. Registered schemes: [${Array.from(( this._sessionTypeToHandle.keys())).join(", ")}]`
540
+ `[MainThreadChatSessions] Cannot notify option change for sessionType '${sessionType}': no provider registered. Registered types: [${Array.from(( this._sessionTypeToHandle.keys())).join(", ")}]`
474
541
  );
475
542
  }
476
543
  }));
@@ -480,7 +547,6 @@ let MainThreadChatSessions = class MainThreadChatSessions extends Disposable {
480
547
  chatSessionType
481
548
  }] of this._itemControllerRegistrations) {
482
549
  if (chatSessionType === session.providerType) {
483
- warnOnUntitledSessionResource(session.resource, this._logService);
484
550
  this._proxy.$onDidChangeChatSessionItemState(handle, session.resource, session.isArchived());
485
551
  }
486
552
  }
@@ -490,11 +556,15 @@ let MainThreadChatSessions = class MainThreadChatSessions extends Disposable {
490
556
  _getHandleForSessionType(chatSessionType) {
491
557
  return this._sessionTypeToHandle.get(chatSessionType);
492
558
  }
493
- $registerChatSessionItemController(handle, chatSessionType) {
559
+ $registerChatSessionItemController(handle, chatSessionType, supportsResolve) {
494
560
  const disposables = ( new DisposableStore());
495
- const controller = disposables.add(
496
- this._instantiationService.createInstance(MainThreadChatSessionItemController, this._proxy, chatSessionType, handle)
497
- );
561
+ const controller = disposables.add(this._instantiationService.createInstance(
562
+ MainThreadChatSessionItemController,
563
+ this._proxy,
564
+ chatSessionType,
565
+ handle,
566
+ supportsResolve
567
+ ));
498
568
  disposables.add(
499
569
  this._chatSessionsService.registerChatSessionItemController(chatSessionType, controller)
500
570
  );
@@ -505,6 +575,14 @@ let MainThreadChatSessions = class MainThreadChatSessions extends Disposable {
505
575
  });
506
576
  this._refreshControllerInputState(handle, chatSessionType);
507
577
  }
578
+ $updateChatSessionItemControllerCapabilities(handle, supportsResolve) {
579
+ const registration = this._itemControllerRegistrations.get(handle);
580
+ if (!registration) {
581
+ this._logService.warn(`No chat session item controller found for handle ${handle}`);
582
+ return;
583
+ }
584
+ registration.controller.setSupportsResolve(supportsResolve);
585
+ }
508
586
  _refreshControllerInputState(handle, chatSessionType) {
509
587
  this._proxy.$provideChatSessionInputState(handle, undefined, CancellationToken.None).then(optionGroups => {
510
588
  if (optionGroups?.length) {
@@ -548,7 +626,6 @@ let MainThreadChatSessions = class MainThreadChatSessions extends Disposable {
548
626
  }
549
627
  $onDidChangeChatSessionOptions(handle, sessionResourceComponents, updates) {
550
628
  const sessionResource = URI.revive(sessionResourceComponents);
551
- warnOnUntitledSessionResource(sessionResource, this._logService);
552
629
  this._chatSessionsService.updateSessionOptions(sessionResource, ChatSessionOptionsMap.fromRecord(updates));
553
630
  }
554
631
  async $onDidCommitChatSessionItem(handle, originalComponents, modifiedCompoennts) {
@@ -575,7 +652,7 @@ let MainThreadChatSessions = class MainThreadChatSessions extends Disposable {
575
652
  const options = {
576
653
  title: {
577
654
  preferred: originalEditor?.getName() || undefined,
578
- fallback: ( localize(2550, "{0}", contribution?.displayName))
655
+ fallback: ( localize(2589, "{0}", contribution?.displayName))
579
656
  }
580
657
  };
581
658
  const newSession = await this._chatSessionsService.getOrCreateChatSession(URI.revive(modifiedResource), CancellationToken.None);
@@ -619,7 +696,10 @@ let MainThreadChatSessions = class MainThreadChatSessions extends Disposable {
619
696
  this._chatService.migrateRequests(originalResource, modifiedResource);
620
697
  }
621
698
  async _provideChatSessionContent(providerHandle, sessionResource, token) {
622
- warnOnUntitledSessionResource(sessionResource, this._logService);
699
+ const t0 = Date.now();
700
+ this._logService.trace(
701
+ `[MainThreadChatSessions] _provideChatSessionContent start handle=${providerHandle} uri=${( sessionResource.toString())}`
702
+ );
623
703
  let session = this._activeSessions.get(sessionResource);
624
704
  if (!session) {
625
705
  session = ( new ObservableChatSession(
@@ -655,6 +735,9 @@ let MainThreadChatSessions = class MainThreadChatSessions extends Disposable {
655
735
  }
656
736
  }
657
737
  }
738
+ this._logService.trace(
739
+ `[MainThreadChatSessions] _provideChatSessionContent done total=${Date.now() - t0}ms handle=${providerHandle} uri=${( sessionResource.toString())}`
740
+ );
658
741
  return session;
659
742
  } catch (error) {
660
743
  session.dispose();
@@ -711,7 +794,6 @@ let MainThreadChatSessions = class MainThreadChatSessions extends Disposable {
711
794
  }
712
795
  $handleProgressComplete(handle, sessionResource, requestId) {
713
796
  const resource = URI.revive(sessionResource);
714
- warnOnUntitledSessionResource(resource, this._logService);
715
797
  const observableSession = this._activeSessions.get(resource);
716
798
  if (!observableSession) {
717
799
  this._logService.warn(
@@ -794,13 +876,6 @@ let MainThreadChatSessions = class MainThreadChatSessions extends Disposable {
794
876
  }
795
877
  };
796
878
  MainThreadChatSessions = __decorate([extHostNamedCustomer(MainContext.MainThreadChatSessions), ( __param(1, IAgentSessionsService)), ( __param(2, IChatSessionsService)), ( __param(3, IChatService)), ( __param(4, IChatWidgetService)), ( __param(5, IChatTodoListService)), ( __param(6, IChatArtifactsService)), ( __param(7, IChatDebugService)), ( __param(8, IDialogService)), ( __param(9, IEditorService)), ( __param(10, IEditorGroupsService)), ( __param(11, ILogService)), ( __param(12, IInstantiationService))], MainThreadChatSessions);
797
- function warnOnUntitledSessionResource(resource, logService) {
798
- if (isUntitledChatSession(resource)) {
799
- logService.warn(
800
- `[MainThreadChatSessions] untitled-style sessionResource detected ${( resource.toString())}`
801
- );
802
- }
803
- }
804
879
  function reviveMarkdownString(value) {
805
880
  if (!value) {
806
881
  return undefined;
@@ -15,6 +15,7 @@ import { ICellRange } from "@codingame/monaco-vscode-api/vscode/vs/workbench/con
15
15
  import { IViewsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/views/common/viewsService.service";
16
16
  import { MarshalledCommentThread } from "../../common/comments.js";
17
17
  import { IEditorService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service";
18
+ import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
18
19
  import { IUriIdentityService } from "@codingame/monaco-vscode-api/vscode/vs/platform/uriIdentity/common/uriIdentity.service";
19
20
  export declare class MainThreadCommentThread<T> implements languages.CommentThread<T> {
20
21
  commentThreadHandle: number;
@@ -82,12 +83,13 @@ export declare class MainThreadCommentThread<T> implements languages.CommentThre
82
83
  }
83
84
  export declare class MainThreadCommentController extends Disposable implements ICommentController {
84
85
  private readonly _proxy;
85
- private readonly _commentService;
86
86
  private readonly _handle;
87
87
  private readonly _uniqueId;
88
88
  private readonly _id;
89
89
  private readonly _label;
90
90
  private _features;
91
+ private readonly _commentService;
92
+ private readonly _uriIdentityService;
91
93
  get handle(): number;
92
94
  get id(): string;
93
95
  get contextValue(): string;
@@ -101,7 +103,7 @@ export declare class MainThreadCommentController extends Disposable implements I
101
103
  activeEditingCommentThread?: MainThreadCommentThread<IRange | ICellRange>;
102
104
  get features(): CommentProviderFeatures;
103
105
  get owner(): string;
104
- constructor(_proxy: ExtHostCommentsShape, _commentService: ICommentService, _handle: number, _uniqueId: string, _id: string, _label: string, _features: CommentProviderFeatures);
106
+ constructor(_proxy: ExtHostCommentsShape, _handle: number, _uniqueId: string, _id: string, _label: string, _features: CommentProviderFeatures, _commentService: ICommentService, _uriIdentityService: IUriIdentityService);
105
107
  get activeComment(): {
106
108
  thread: languages.CommentThread;
107
109
  comment?: languages.Comment;
@@ -149,6 +151,7 @@ export declare class MainThreadComments extends Disposable implements MainThread
149
151
  private readonly _viewDescriptorService;
150
152
  private readonly _uriIdentityService;
151
153
  private readonly _editorService;
154
+ private readonly _instantiationService;
152
155
  private readonly _proxy;
153
156
  private _handlers;
154
157
  private _commentControllers;
@@ -157,7 +160,7 @@ export declare class MainThreadComments extends Disposable implements MainThread
157
160
  private readonly _openViewListener;
158
161
  private readonly _onChangeContainerListener;
159
162
  private readonly _onChangeContainerLocationListener;
160
- constructor(extHostContext: IExtHostContext, _commentService: ICommentService, _viewsService: IViewsService, _viewDescriptorService: IViewDescriptorService, _uriIdentityService: IUriIdentityService, _editorService: IEditorService);
163
+ constructor(extHostContext: IExtHostContext, _commentService: ICommentService, _viewsService: IViewsService, _viewDescriptorService: IViewDescriptorService, _uriIdentityService: IUriIdentityService, _editorService: IEditorService, _instantiationService: IInstantiationService);
161
164
  $registerCommentController(handle: number, id: string, label: string, extensionId: string): void;
162
165
  $unregisterCommentController(handle: number): void;
163
166
  $updateCommentControllerFeatures(handle: number, features: CommentProviderFeatures): void;
@@ -23,6 +23,7 @@ import { Schemas } from '@codingame/monaco-vscode-api/vscode/vs/base/common/netw
23
23
  import { IViewsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/views/common/viewsService.service';
24
24
  import { revealCommentThread } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/comments/browser/commentsController';
25
25
  import { IEditorService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service';
26
+ import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
26
27
  import { IUriIdentityService } from '@codingame/monaco-vscode-api/vscode/vs/platform/uriIdentity/common/uriIdentity.service';
27
28
 
28
29
  class MainThreadCommentThread {
@@ -220,7 +221,7 @@ class CommentThreadWithDisposable {
220
221
  this.disposableStore.dispose();
221
222
  }
222
223
  }
223
- class MainThreadCommentController extends Disposable {
224
+ let MainThreadCommentController = class MainThreadCommentController extends Disposable {
224
225
  get handle() {
225
226
  return this._handle;
226
227
  }
@@ -251,15 +252,25 @@ class MainThreadCommentController extends Disposable {
251
252
  get owner() {
252
253
  return this._id;
253
254
  }
254
- constructor(_proxy, _commentService, _handle, _uniqueId, _id, _label, _features) {
255
+ constructor(
256
+ _proxy,
257
+ _handle,
258
+ _uniqueId,
259
+ _id,
260
+ _label,
261
+ _features,
262
+ _commentService,
263
+ _uriIdentityService
264
+ ) {
255
265
  super();
256
266
  this._proxy = _proxy;
257
- this._commentService = _commentService;
258
267
  this._handle = _handle;
259
268
  this._uniqueId = _uniqueId;
260
269
  this._id = _id;
261
270
  this._label = _label;
262
271
  this._features = _features;
272
+ this._commentService = _commentService;
273
+ this._uriIdentityService = _uriIdentityService;
263
274
  this._threads = this._register(( new DisposableMap()));
264
275
  }
265
276
  get activeComment() {
@@ -392,7 +403,7 @@ class MainThreadCommentController extends Disposable {
392
403
  const ret = [];
393
404
  for (const thread of [...( this._threads.keys())]) {
394
405
  const commentThread = this._threads.get(thread);
395
- if (commentThread.thread.resource === ( resource.toString())) {
406
+ if (commentThread.thread.resource && this._uriIdentityService.extUri.isEqual(( URI.parse(commentThread.thread.resource)), resource)) {
396
407
  if (commentThread.thread.isDocumentCommentThread()) {
397
408
  ret.push(commentThread.thread);
398
409
  }
@@ -455,8 +466,9 @@ class MainThreadCommentController extends Disposable {
455
466
  handle: this.handle
456
467
  };
457
468
  }
458
- }
459
- const commentsViewIcon = registerIcon("comments-view-icon", Codicon.commentDiscussion, ( localize(2551, "View icon of the comments view.")));
469
+ };
470
+ MainThreadCommentController = ( __decorate([( __param(6, ICommentService)), ( __param(7, IUriIdentityService))], MainThreadCommentController));
471
+ const commentsViewIcon = registerIcon("comments-view-icon", Codicon.commentDiscussion, ( localize(2590, "View icon of the comments view.")));
460
472
  let MainThreadComments = class MainThreadComments extends Disposable {
461
473
  constructor(
462
474
  extHostContext,
@@ -464,7 +476,8 @@ let MainThreadComments = class MainThreadComments extends Disposable {
464
476
  _viewsService,
465
477
  _viewDescriptorService,
466
478
  _uriIdentityService,
467
- _editorService
479
+ _editorService,
480
+ _instantiationService
468
481
  ) {
469
482
  super();
470
483
  this._commentService = _commentService;
@@ -472,6 +485,7 @@ let MainThreadComments = class MainThreadComments extends Disposable {
472
485
  this._viewDescriptorService = _viewDescriptorService;
473
486
  this._uriIdentityService = _uriIdentityService;
474
487
  this._editorService = _editorService;
488
+ this._instantiationService = _instantiationService;
475
489
  this._handlers = ( new Map());
476
490
  this._commentControllers = ( new Map());
477
491
  this._activeEditingCommentThreadDisposables = this._register(( new DisposableStore()));
@@ -492,19 +506,27 @@ let MainThreadComments = class MainThreadComments extends Disposable {
492
506
  controller.activeEditingCommentThread = this._activeEditingCommentThread;
493
507
  })
494
508
  );
509
+ this._register(this._commentService.onResourceHasCommentingRanges(() => {
510
+ this.registerView();
511
+ }));
512
+ this._register(this._commentService.onDidUpdateCommentThreads(() => {
513
+ this.registerView();
514
+ }));
495
515
  }
496
516
  $registerCommentController(handle, id, label, extensionId) {
497
517
  const providerId = `${id}-${extensionId}`;
498
518
  this._handlers.set(handle, providerId);
499
- const provider = ( new MainThreadCommentController(this._proxy, this._commentService, handle, providerId, id, label, {}));
519
+ const provider = this._instantiationService.createInstance(
520
+ MainThreadCommentController,
521
+ this._proxy,
522
+ handle,
523
+ providerId,
524
+ id,
525
+ label,
526
+ {}
527
+ );
500
528
  this._commentService.registerCommentController(providerId, provider);
501
529
  this._commentControllers.set(handle, provider);
502
- this._register(this._commentService.onResourceHasCommentingRanges(e => {
503
- this.registerView();
504
- }));
505
- this._register(this._commentService.onDidUpdateCommentThreads(e => {
506
- this.registerView();
507
- }));
508
530
  this._commentService.setWorkspaceComments(String(handle), []);
509
531
  }
510
532
  $unregisterCommentController(handle) {
@@ -682,6 +704,6 @@ let MainThreadComments = class MainThreadComments extends Disposable {
682
704
  return this._handlers.get(handle);
683
705
  }
684
706
  };
685
- MainThreadComments = __decorate([extHostNamedCustomer(MainContext.MainThreadComments), ( __param(1, ICommentService)), ( __param(2, IViewsService)), ( __param(3, IViewDescriptorService)), ( __param(4, IUriIdentityService)), ( __param(5, IEditorService))], MainThreadComments);
707
+ MainThreadComments = __decorate([extHostNamedCustomer(MainContext.MainThreadComments), ( __param(1, ICommentService)), ( __param(2, IViewsService)), ( __param(3, IViewDescriptorService)), ( __param(4, IUriIdentityService)), ( __param(5, IEditorService)), ( __param(6, IInstantiationService))], MainThreadComments);
686
708
 
687
709
  export { MainThreadCommentController, MainThreadCommentThread, MainThreadComments };
@@ -6,7 +6,8 @@ import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log
6
6
  export declare class MainThreadConsole implements MainThreadConsoleShape {
7
7
  private readonly _environmentService;
8
8
  private readonly _logService;
9
- private readonly _isExtensionDevTestFromCli;
9
+ private readonly _logAllExtensionHostConsole;
10
+ private readonly _logExtensionHostConsoleToLocalConsole;
10
11
  constructor(_extHostContext: IExtHostContext, _environmentService: IEnvironmentService, _logService: ILogService);
11
12
  dispose(): void;
12
13
  $logExtensionHostMessage(entry: IRemoteConsoleLog): void;
@@ -6,6 +6,7 @@ import { IEnvironmentService } from '@codingame/monaco-vscode-api/vscode/vs/plat
6
6
  import { log } from '../../../base/common/console.js';
7
7
  import { logRemoteEntry, logRemoteEntryIfError } from '../../services/extensions/common/remoteConsoleUtil.js';
8
8
  import { parseExtensionDevOptions } from '../../services/extensions/common/extensionDevOptions.js';
9
+ import { isDevConsoleLogForwardingEnabled } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log';
9
10
  import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
10
11
 
11
12
  let MainThreadConsole = class MainThreadConsole {
@@ -13,12 +14,17 @@ let MainThreadConsole = class MainThreadConsole {
13
14
  this._environmentService = _environmentService;
14
15
  this._logService = _logService;
15
16
  const devOpts = parseExtensionDevOptions(this._environmentService);
16
- this._isExtensionDevTestFromCli = devOpts.isExtensionDevTestFromCli;
17
+ const isDevConsoleLogForwardingActive = !this._environmentService.isBuilt && isDevConsoleLogForwardingEnabled;
18
+ this._logAllExtensionHostConsole = devOpts.isExtensionDevTestFromCli || isDevConsoleLogForwardingActive;
19
+ this._logExtensionHostConsoleToLocalConsole = !devOpts.isExtensionDevTestFromCli && !isDevConsoleLogForwardingActive;
17
20
  }
18
21
  dispose() {}
19
22
  $logExtensionHostMessage(entry) {
20
- if (this._isExtensionDevTestFromCli) {
23
+ if (this._logAllExtensionHostConsole) {
21
24
  logRemoteEntry(this._logService, entry);
25
+ if (this._logExtensionHostConsoleToLocalConsole) {
26
+ log(entry, "Extension Host");
27
+ }
22
28
  } else {
23
29
  logRemoteEntryIfError(this._logService, entry, "Extension Host");
24
30
  log(entry, "Extension Host");
@@ -14,6 +14,7 @@ import { IExtHostContext } from "../../services/extensions/common/extHostCustome
14
14
  import { IWorkingCopyFileService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/workingCopy/common/workingCopyFileService.service";
15
15
  import { IWorkingCopyService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/workingCopy/common/workingCopyService.service";
16
16
  import { IUriIdentityService } from "@codingame/monaco-vscode-api/vscode/vs/platform/uriIdentity/common/uriIdentity.service";
17
+ import { IUntitledTextEditorService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/untitled/common/untitledTextEditorService.service";
17
18
  export declare class MainThreadCustomEditors extends Disposable implements extHostProtocol.MainThreadCustomEditorsShape {
18
19
  private readonly mainThreadWebview;
19
20
  private readonly mainThreadWebviewPanels;
@@ -23,14 +24,17 @@ export declare class MainThreadCustomEditors extends Disposable implements extHo
23
24
  private readonly _instantiationService;
24
25
  private readonly _webviewWorkbenchService;
25
26
  private readonly _uriIdentityService;
27
+ private readonly _untitledTextEditorService;
26
28
  private readonly _proxyCustomEditors;
27
29
  private readonly _editorProviders;
28
30
  private readonly _editorRenameBackups;
31
+ private readonly _pendingSideBySideDiffResolutions;
29
32
  private readonly _webviewOriginStore;
30
- constructor(context: IExtHostContext, mainThreadWebview: MainThreadWebviews, mainThreadWebviewPanels: MainThreadWebviewPanels, extensionService: IExtensionService, storageService: IStorageService, workingCopyService: IWorkingCopyService, workingCopyFileService: IWorkingCopyFileService, _customEditorService: ICustomEditorService, _editorGroupService: IEditorGroupsService, _editorService: IEditorService, _instantiationService: IInstantiationService, _webviewWorkbenchService: IWebviewWorkbenchService, _uriIdentityService: IUriIdentityService);
31
- $registerTextEditorProvider(extensionData: extHostProtocol.WebviewExtensionDescription, viewType: string, options: extHostProtocol.IWebviewPanelOptions, capabilities: extHostProtocol.CustomTextEditorCapabilities, serializeBuffersForPostMessage: boolean): void;
32
- $registerCustomEditorProvider(extensionData: extHostProtocol.WebviewExtensionDescription, viewType: string, options: extHostProtocol.IWebviewPanelOptions, supportsMultipleEditorsPerDocument: boolean, serializeBuffersForPostMessage: boolean): void;
33
+ constructor(context: IExtHostContext, mainThreadWebview: MainThreadWebviews, mainThreadWebviewPanels: MainThreadWebviewPanels, extensionService: IExtensionService, storageService: IStorageService, workingCopyService: IWorkingCopyService, workingCopyFileService: IWorkingCopyFileService, _customEditorService: ICustomEditorService, _editorGroupService: IEditorGroupsService, _editorService: IEditorService, _instantiationService: IInstantiationService, _webviewWorkbenchService: IWebviewWorkbenchService, _uriIdentityService: IUriIdentityService, _untitledTextEditorService: IUntitledTextEditorService);
34
+ $registerTextEditorProvider(extensionData: extHostProtocol.WebviewExtensionDescription, viewType: string, options: extHostProtocol.IWebviewPanelOptions, capabilities: extHostProtocol.CustomEditorProviderCapabilities, serializeBuffersForPostMessage: boolean): void;
35
+ $registerCustomEditorProvider(extensionData: extHostProtocol.WebviewExtensionDescription, viewType: string, options: extHostProtocol.IWebviewPanelOptions, capabilities: extHostProtocol.CustomEditorProviderCapabilities, supportsMultipleEditorsPerDocument: boolean, serializeBuffersForPostMessage: boolean): void;
33
36
  private registerEditorProvider;
37
+ private resolveCustomEditorSideBySideDiff;
34
38
  $unregisterEditorProvider(viewType: string): void;
35
39
  private getOrCreateCustomEditorModel;
36
40
  $onDidEdit(resourceComponents: UriComponents, viewType: string, editId: number, label: string | undefined): Promise<void>;