@codingame/monaco-vscode-extensions-service-override 25.1.2 → 26.0.0

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 (120) hide show
  1. package/index.js +7 -0
  2. package/package.json +3 -3
  3. package/vscode/src/vs/base/common/console.js +24 -15
  4. package/vscode/src/vs/platform/extensionManagement/common/extensionManagementCLI.d.ts +4 -1
  5. package/vscode/src/vs/platform/extensionManagement/common/extensionManagementCLI.js +149 -84
  6. package/vscode/src/vs/platform/extensionResourceLoader/browser/extensionResourceLoaderService.js +20 -12
  7. package/vscode/src/vs/platform/extensionResourceLoader/common/extensionResourceLoader.js +38 -21
  8. package/vscode/src/vs/platform/remote/common/managedSocket.js +7 -10
  9. package/vscode/src/vs/workbench/api/browser/mainThreadAiEmbeddingVector.js +5 -2
  10. package/vscode/src/vs/workbench/api/browser/mainThreadAiRelatedInformation.js +5 -2
  11. package/vscode/src/vs/workbench/api/browser/mainThreadAiSettingsSearch.js +4 -1
  12. package/vscode/src/vs/workbench/api/browser/mainThreadAuthentication.js +200 -143
  13. package/vscode/src/vs/workbench/api/browser/mainThreadBulkEdits.js +10 -14
  14. package/vscode/src/vs/workbench/api/browser/mainThreadCLICommands.js +41 -31
  15. package/vscode/src/vs/workbench/api/browser/mainThreadChatAgents2.d.ts +9 -12
  16. package/vscode/src/vs/workbench/api/browser/mainThreadChatAgents2.js +168 -115
  17. package/vscode/src/vs/workbench/api/browser/mainThreadChatCodeMapper.js +11 -13
  18. package/vscode/src/vs/workbench/api/browser/mainThreadChatContext.d.ts +5 -5
  19. package/vscode/src/vs/workbench/api/browser/mainThreadChatContext.js +42 -15
  20. package/vscode/src/vs/workbench/api/browser/mainThreadChatOutputRenderer.js +8 -7
  21. package/vscode/src/vs/workbench/api/browser/mainThreadChatSessions.d.ts +4 -2
  22. package/vscode/src/vs/workbench/api/browser/mainThreadChatSessions.js +170 -99
  23. package/vscode/src/vs/workbench/api/browser/mainThreadChatStatus.js +2 -5
  24. package/vscode/src/vs/workbench/api/browser/mainThreadClipboard.js +4 -9
  25. package/vscode/src/vs/workbench/api/browser/mainThreadCodeInsets.js +13 -12
  26. package/vscode/src/vs/workbench/api/browser/mainThreadCommands.js +16 -19
  27. package/vscode/src/vs/workbench/api/browser/mainThreadComments.js +127 -70
  28. package/vscode/src/vs/workbench/api/browser/mainThreadConfiguration.js +80 -26
  29. package/vscode/src/vs/workbench/api/browser/mainThreadConsole.js +5 -11
  30. package/vscode/src/vs/workbench/api/browser/mainThreadCustomEditors.js +199 -97
  31. package/vscode/src/vs/workbench/api/browser/mainThreadDataChannels.js +1 -4
  32. package/vscode/src/vs/workbench/api/browser/mainThreadDebugService.js +88 -73
  33. package/vscode/src/vs/workbench/api/browser/mainThreadDecorations.js +5 -5
  34. package/vscode/src/vs/workbench/api/browser/mainThreadDiagnostics.js +16 -12
  35. package/vscode/src/vs/workbench/api/browser/mainThreadDialogs.js +10 -8
  36. package/vscode/src/vs/workbench/api/browser/mainThreadDocumentContentProviders.js +14 -6
  37. package/vscode/src/vs/workbench/api/browser/mainThreadDocuments.js +52 -37
  38. package/vscode/src/vs/workbench/api/browser/mainThreadDocumentsAndEditors.js +78 -58
  39. package/vscode/src/vs/workbench/api/browser/mainThreadEditSessionIdentityParticipant.js +5 -7
  40. package/vscode/src/vs/workbench/api/browser/mainThreadEditor.js +75 -63
  41. package/vscode/src/vs/workbench/api/browser/mainThreadEditorTabs.js +99 -91
  42. package/vscode/src/vs/workbench/api/browser/mainThreadEditors.js +93 -55
  43. package/vscode/src/vs/workbench/api/browser/mainThreadEmbeddings.js +3 -7
  44. package/vscode/src/vs/workbench/api/browser/mainThreadExtensionService.js +85 -60
  45. package/vscode/src/vs/workbench/api/browser/mainThreadFileSystem.js +49 -45
  46. package/vscode/src/vs/workbench/api/browser/mainThreadFileSystemEventService.js +114 -72
  47. package/vscode/src/vs/workbench/api/browser/mainThreadInteractive.js +4 -7
  48. package/vscode/src/vs/workbench/api/browser/mainThreadLabelService.js +1 -4
  49. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageFeatures.d.ts +2 -2
  50. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageFeatures.js +381 -238
  51. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageModelTools.d.ts +7 -3
  52. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageModelTools.js +90 -13
  53. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageModels.js +81 -58
  54. package/vscode/src/vs/workbench/api/browser/mainThreadLanguages.js +9 -10
  55. package/vscode/src/vs/workbench/api/browser/mainThreadLocalization.js +2 -7
  56. package/vscode/src/vs/workbench/api/browser/mainThreadLogService.js +6 -10
  57. package/vscode/src/vs/workbench/api/browser/mainThreadManagedSockets.js +12 -10
  58. package/vscode/src/vs/workbench/api/browser/mainThreadMcp.d.ts +3 -2
  59. package/vscode/src/vs/workbench/api/browser/mainThreadMcp.js +162 -97
  60. package/vscode/src/vs/workbench/api/browser/mainThreadMessageService.js +32 -26
  61. package/vscode/src/vs/workbench/api/browser/mainThreadNotebook.js +38 -32
  62. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDocuments.js +48 -46
  63. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDocumentsAndEditors.js +22 -18
  64. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDto.js +5 -8
  65. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookEditors.js +35 -21
  66. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookKernels.js +31 -28
  67. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookSaveParticipant.js +5 -7
  68. package/vscode/src/vs/workbench/api/browser/mainThreadOutputService.js +47 -23
  69. package/vscode/src/vs/workbench/api/browser/mainThreadProfileContentHandlers.js +15 -12
  70. package/vscode/src/vs/workbench/api/browser/mainThreadProgress.js +17 -18
  71. package/vscode/src/vs/workbench/api/browser/mainThreadQuickDiff.js +6 -7
  72. package/vscode/src/vs/workbench/api/browser/mainThreadQuickOpen.js +83 -66
  73. package/vscode/src/vs/workbench/api/browser/mainThreadRemoteConnectionData.js +1 -5
  74. package/vscode/src/vs/workbench/api/browser/mainThreadSCM.js +250 -92
  75. package/vscode/src/vs/workbench/api/browser/mainThreadSaveParticipant.js +6 -8
  76. package/vscode/src/vs/workbench/api/browser/mainThreadSearch.js +37 -26
  77. package/vscode/src/vs/workbench/api/browser/mainThreadSecretState.js +34 -21
  78. package/vscode/src/vs/workbench/api/browser/mainThreadShare.js +3 -6
  79. package/vscode/src/vs/workbench/api/browser/mainThreadSpeech.js +19 -14
  80. package/vscode/src/vs/workbench/api/browser/mainThreadStatusBar.js +41 -16
  81. package/vscode/src/vs/workbench/api/browser/mainThreadStorage.js +18 -17
  82. package/vscode/src/vs/workbench/api/browser/mainThreadTask.js +145 -145
  83. package/vscode/src/vs/workbench/api/browser/mainThreadTelemetry.js +19 -11
  84. package/vscode/src/vs/workbench/api/browser/mainThreadTerminalService.js +176 -80
  85. package/vscode/src/vs/workbench/api/browser/mainThreadTerminalShellIntegration.js +52 -21
  86. package/vscode/src/vs/workbench/api/browser/mainThreadTesting.js +26 -24
  87. package/vscode/src/vs/workbench/api/browser/mainThreadTheming.js +1 -4
  88. package/vscode/src/vs/workbench/api/browser/mainThreadTimeline.js +5 -8
  89. package/vscode/src/vs/workbench/api/browser/mainThreadTreeViews.d.ts +4 -1
  90. package/vscode/src/vs/workbench/api/browser/mainThreadTreeViews.js +106 -46
  91. package/vscode/src/vs/workbench/api/browser/mainThreadTunnelService.js +83 -65
  92. package/vscode/src/vs/workbench/api/browser/mainThreadUriOpeners.js +20 -20
  93. package/vscode/src/vs/workbench/api/browser/mainThreadUrls.js +14 -9
  94. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewManager.js +17 -9
  95. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewPanels.js +49 -38
  96. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewViews.js +10 -13
  97. package/vscode/src/vs/workbench/api/browser/mainThreadWebviews.js +38 -27
  98. package/vscode/src/vs/workbench/api/browser/mainThreadWindow.js +5 -11
  99. package/vscode/src/vs/workbench/api/browser/mainThreadWorkspace.d.ts +4 -1
  100. package/vscode/src/vs/workbench/api/browser/mainThreadWorkspace.js +73 -43
  101. package/vscode/src/vs/workbench/api/common/shared/dataTransferCache.js +2 -2
  102. package/vscode/src/vs/workbench/contrib/customEditor/common/customTextEditorModel.js +17 -10
  103. package/vscode/src/vs/workbench/contrib/externalUriOpener/common/contributedOpeners.js +17 -11
  104. package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionBisect.js +107 -80
  105. package/vscode/src/vs/workbench/services/extensionManagement/browser/webExtensionsScannerService.js +336 -175
  106. package/vscode/src/vs/workbench/services/extensions/browser/extensionService.js +126 -71
  107. package/vscode/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.js +76 -54
  108. package/vscode/src/vs/workbench/services/extensions/browser/webWorkerFileSystemProvider.js +1 -2
  109. package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.d.ts +2 -0
  110. package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.js +343 -192
  111. package/vscode/src/vs/workbench/services/extensions/common/extHostCustomers.js +5 -3
  112. package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.d.ts +0 -1
  113. package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.js +75 -68
  114. package/vscode/src/vs/workbench/services/extensions/common/extensionRunningLocationTracker.js +135 -36
  115. package/vscode/src/vs/workbench/services/extensions/common/extensionsProposedApi.js +22 -18
  116. package/vscode/src/vs/workbench/services/extensions/common/extensionsUtil.js +14 -12
  117. package/vscode/src/vs/workbench/services/extensions/common/lazyCreateExtensionHostManager.js +21 -9
  118. package/vscode/src/vs/workbench/services/extensions/common/remoteExtensionHost.js +48 -25
  119. package/vscode/src/vs/workbench/services/themes/browser/cssExtensionPoint.d.ts +24 -0
  120. package/vscode/src/vs/workbench/services/themes/browser/cssExtensionPoint.js +300 -0
@@ -1,21 +1,25 @@
1
1
  import { CancellationToken } from "@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation";
2
2
  import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
3
+ import { ExtensionIdentifier } from "@codingame/monaco-vscode-api/vscode/vs/platform/extensions/common/extensions";
4
+ import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
3
5
  import { IToolInvocation, IToolProgressStep, IToolResult } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService";
4
6
  import { ILanguageModelToolsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService.service";
5
7
  import { IExtHostContext } from "../../services/extensions/common/extHostCustomers.js";
6
8
  import { Dto, SerializableObjectWithBuffers } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/proxyIdentifier";
7
- import { IToolDataDto, MainThreadLanguageModelToolsShape } from "@codingame/monaco-vscode-api/vscode/vs/workbench/api/common/extHost.protocol";
9
+ import { IToolDataDto, IToolDefinitionDto, MainThreadLanguageModelToolsShape } from "@codingame/monaco-vscode-api/vscode/vs/workbench/api/common/extHost.protocol";
8
10
  export declare class MainThreadLanguageModelTools extends Disposable implements MainThreadLanguageModelToolsShape {
9
11
  private readonly _languageModelToolsService;
12
+ private readonly _logService;
10
13
  private readonly _proxy;
11
14
  private readonly _tools;
12
15
  private readonly _runningToolCalls;
13
- constructor(extHostContext: IExtHostContext, _languageModelToolsService: ILanguageModelToolsService);
16
+ constructor(extHostContext: IExtHostContext, _languageModelToolsService: ILanguageModelToolsService, _logService: ILogService);
14
17
  private getToolDtos;
15
18
  $getTools(): Promise<IToolDataDto[]>;
16
19
  $invokeTool(dto: Dto<IToolInvocation>, token?: CancellationToken): Promise<Dto<IToolResult> | SerializableObjectWithBuffers<Dto<IToolResult>>>;
17
20
  $acceptToolProgress(callId: string, progress: IToolProgressStep): void;
18
21
  $countTokensForInvocation(callId: string, input: string, token: CancellationToken): Promise<number>;
19
- $registerTool(id: string): void;
22
+ $registerTool(id: string, hasHandleToolStream: boolean): void;
23
+ $registerToolWithDefinition(extensionId: ExtensionIdentifier, definition: IToolDefinitionDto, hasHandleToolStream: boolean): void;
20
24
  $unregisterTool(name: string): void;
21
25
  }
@@ -1,26 +1,32 @@
1
1
 
2
2
  import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
3
  import { CancellationToken } from '@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation';
4
- import { Disposable, DisposableMap } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
4
+ import { Disposable, DisposableMap, DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
5
5
  import { revive } from '@codingame/monaco-vscode-api/vscode/vs/base/common/marshalling';
6
- import { toolResultHasBuffers } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService';
6
+ import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
7
+ import { isUriComponents, URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
8
+ import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
9
+ import { toToolSetKey } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution';
10
+ import { toolResultHasBuffers, ToolSet } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService';
7
11
  import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService.service';
8
12
  import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
9
13
  import { SerializableObjectWithBuffers } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/proxyIdentifier';
10
14
  import { ExtHostContext, MainContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/api/common/extHost.protocol';
11
15
 
12
16
  let MainThreadLanguageModelTools = class MainThreadLanguageModelTools extends Disposable {
13
- constructor(extHostContext, _languageModelToolsService) {
17
+ constructor(extHostContext, _languageModelToolsService, _logService) {
14
18
  super();
15
19
  this._languageModelToolsService = _languageModelToolsService;
20
+ this._logService = _logService;
16
21
  this._tools = this._register(( new DisposableMap()));
17
22
  this._runningToolCalls = ( new Map());
18
23
  this._proxy = ( extHostContext.getProxy(ExtHostContext.ExtHostLanguageModelTools));
19
- this._register(this._languageModelToolsService.onDidChangeTools(e => this._proxy.$onDidChangeTools(this.getToolDtos())));
24
+ this._register(
25
+ this._languageModelToolsService.onDidChangeTools(e => this._proxy.$onDidChangeTools(this.getToolDtos()))
26
+ );
20
27
  }
21
28
  getToolDtos() {
22
- return ( Array.from(this._languageModelToolsService.getTools())
23
- .map(tool => ({
29
+ return ( Array.from(this._languageModelToolsService.getAllToolsIncludingDisabled()).map(tool => ({
24
30
  id: tool.id,
25
31
  displayName: tool.displayName,
26
32
  toolReferenceName: tool.toolReferenceName,
@@ -29,14 +35,18 @@ let MainThreadLanguageModelTools = class MainThreadLanguageModelTools extends Di
29
35
  userDescription: tool.userDescription,
30
36
  modelDescription: tool.modelDescription,
31
37
  inputSchema: tool.inputSchema,
32
- source: tool.source,
38
+ source: tool.source
33
39
  })));
34
40
  }
35
41
  async $getTools() {
36
42
  return this.getToolDtos();
37
43
  }
38
44
  async $invokeTool(dto, token) {
39
- const result = await this._languageModelToolsService.invokeTool(revive(dto), (input, token) => this._proxy.$countTokensForInvocation(dto.callId, input, token), token ?? CancellationToken.None);
45
+ const result = await this._languageModelToolsService.invokeTool(
46
+ revive(dto),
47
+ (input, token) => this._proxy.$countTokensForInvocation(dto.callId, input, token),
48
+ token ?? CancellationToken.None
49
+ );
40
50
  const out = {
41
51
  content: result.content,
42
52
  toolMetadata: result.toolMetadata
@@ -53,30 +63,97 @@ let MainThreadLanguageModelTools = class MainThreadLanguageModelTools extends Di
53
63
  }
54
64
  return fn.countTokens(input, token);
55
65
  }
56
- $registerTool(id) {
66
+ $registerTool(id, hasHandleToolStream) {
57
67
  const disposable = this._languageModelToolsService.registerToolImplementation(id, {
58
68
  invoke: async (dto, countTokens, progress, token) => {
59
69
  try {
60
- this._runningToolCalls.set(dto.callId, { countTokens, progress });
70
+ this._runningToolCalls.set(dto.callId, {
71
+ countTokens,
72
+ progress
73
+ });
61
74
  const resultSerialized = await this._proxy.$invokeTool(dto, token);
62
75
  const resultDto = resultSerialized instanceof SerializableObjectWithBuffers ? resultSerialized.value : resultSerialized;
63
76
  return revive(resultDto);
64
- }
65
- finally {
77
+ } finally {
66
78
  this._runningToolCalls.delete(dto.callId);
67
79
  }
68
80
  },
69
81
  prepareToolInvocation: (context, token) => this._proxy.$prepareToolInvocation(id, context, token),
82
+ handleToolStream: hasHandleToolStream ? (context, token) => this._proxy.$handleToolStream(id, context, token) : undefined
70
83
  });
71
84
  this._tools.set(id, disposable);
72
85
  }
86
+ $registerToolWithDefinition(extensionId, definition, hasHandleToolStream) {
87
+ let icon;
88
+ if (definition.icon) {
89
+ if (ThemeIcon.isThemeIcon(definition.icon)) {
90
+ icon = definition.icon;
91
+ } else if (typeof definition.icon === "object" && definition.icon !== null && isUriComponents(definition.icon)) {
92
+ icon = {
93
+ dark: URI.revive(definition.icon)
94
+ };
95
+ } else {
96
+ const iconObj = definition.icon;
97
+ icon = {
98
+ dark: URI.revive(iconObj.dark),
99
+ light: iconObj.light ? URI.revive(iconObj.light) : undefined
100
+ };
101
+ }
102
+ }
103
+ const source = revive(definition.source);
104
+ const toolData = {
105
+ id: definition.id,
106
+ displayName: definition.displayName,
107
+ toolReferenceName: definition.toolReferenceName,
108
+ legacyToolReferenceFullNames: definition.legacyToolReferenceFullNames,
109
+ tags: definition.tags,
110
+ userDescription: definition.userDescription,
111
+ modelDescription: definition.modelDescription,
112
+ inputSchema: definition.inputSchema,
113
+ source,
114
+ icon,
115
+ models: definition.models,
116
+ canBeReferencedInPrompt: !!definition.userDescription && !definition.toolSet
117
+ };
118
+ const id = definition.id;
119
+ const store = ( new DisposableStore());
120
+ store.add(this._languageModelToolsService.registerTool(toolData, {
121
+ invoke: async (dto, countTokens, progress, token) => {
122
+ try {
123
+ this._runningToolCalls.set(dto.callId, {
124
+ countTokens,
125
+ progress
126
+ });
127
+ const resultSerialized = await this._proxy.$invokeTool(dto, token);
128
+ const resultDto = resultSerialized instanceof SerializableObjectWithBuffers ? resultSerialized.value : resultSerialized;
129
+ return revive(resultDto);
130
+ } finally {
131
+ this._runningToolCalls.delete(dto.callId);
132
+ }
133
+ },
134
+ handleToolStream: hasHandleToolStream ? (context, token) => this._proxy.$handleToolStream(id, context, token) : undefined,
135
+ prepareToolInvocation: (context, token) => this._proxy.$prepareToolInvocation(id, context, token)
136
+ }));
137
+ if (definition.toolSet) {
138
+ const ts = this._languageModelToolsService.getToolSet(toToolSetKey(extensionId, definition.toolSet)) || this._languageModelToolsService.getToolSet(definition.toolSet);
139
+ if (!ts || !(ts instanceof ToolSet)) {
140
+ this._logService.warn(
141
+ `ToolSet ${definition.toolSet} not found for tool ${definition.id} from extension ${extensionId.value}`
142
+ );
143
+ } else {
144
+ store.add(ts.addTool(toolData));
145
+ }
146
+ }
147
+ this._tools.set(id, store);
148
+ }
73
149
  $unregisterTool(name) {
74
150
  this._tools.deleteAndDispose(name);
75
151
  }
76
152
  };
77
153
  MainThreadLanguageModelTools = __decorate([
78
154
  extHostNamedCustomer(MainContext.MainThreadLanguageModelTools),
79
- ( __param(1, ILanguageModelToolsService))
155
+ ( __param(1, ILanguageModelToolsService)),
156
+ ( __param(2, ILogService))
80
157
  ], MainThreadLanguageModelTools);
81
158
 
82
159
  export { MainThreadLanguageModelTools };
@@ -22,7 +22,15 @@ import { ExtHostContext, MainContext } from '@codingame/monaco-vscode-api/vscode
22
22
  import { LanguageModelError } from '@codingame/monaco-vscode-api/vscode/vs/workbench/api/common/extHostTypes';
23
23
 
24
24
  let MainThreadLanguageModels = class MainThreadLanguageModels {
25
- constructor(extHostContext, _chatProviderService, _logService, _authenticationService, _authenticationAccessService, _extensionService, _ignoredFilesService) {
25
+ constructor(
26
+ extHostContext,
27
+ _chatProviderService,
28
+ _logService,
29
+ _authenticationService,
30
+ _authenticationAccessService,
31
+ _extensionService,
32
+ _ignoredFilesService
33
+ ) {
26
34
  this._chatProviderService = _chatProviderService;
27
35
  this._logService = _logService;
28
36
  this._authenticationService = _authenticationService;
@@ -51,7 +59,9 @@ let MainThreadLanguageModels = class MainThreadLanguageModels {
51
59
  const modelsAndIdentifiers = await this._proxy.$provideLanguageModelChatInfo(vendor, options, token);
52
60
  modelsAndIdentifiers.forEach(m => {
53
61
  if (m.metadata.auth) {
54
- disposables.add(this._registerAuthenticationProvider(m.metadata.extension, m.metadata.auth));
62
+ disposables.add(
63
+ this._registerAuthenticationProvider(m.metadata.extension, m.metadata.auth)
64
+ );
55
65
  }
56
66
  });
57
67
  return modelsAndIdentifiers;
@@ -61,15 +71,15 @@ let MainThreadLanguageModels = class MainThreadLanguageModels {
61
71
  const defer = ( new DeferredPromise());
62
72
  const stream = ( new AsyncIterableSource());
63
73
  try {
64
- this._pendingProgress.set(requestId, { defer, stream });
65
- await Promise.all(( messages.flatMap(msg => msg.content)
66
- .filter(part => part.type === 'image_url')
67
- .map(async (part) => {
74
+ this._pendingProgress.set(requestId, {
75
+ defer,
76
+ stream
77
+ });
78
+ await Promise.all(( messages.flatMap(msg => msg.content).filter(part => part.type === "image_url").map(async part => {
68
79
  part.value.data = VSBuffer.wrap(await resizeImage(part.value.data.buffer));
69
80
  })));
70
81
  await this._proxy.$startChatRequest(modelId, requestId, from, ( new SerializableObjectWithBuffers(messages)), options, token);
71
- }
72
- catch (err) {
82
+ } catch (err) {
73
83
  this._pendingProgress.delete(requestId);
74
84
  throw err;
75
85
  }
@@ -80,36 +90,36 @@ let MainThreadLanguageModels = class MainThreadLanguageModels {
80
90
  },
81
91
  provideTokenCount: (modelId, str, token) => {
82
92
  return this._proxy.$provideTokenLength(modelId, str, token);
83
- },
93
+ }
84
94
  }));
85
95
  this._providerRegistrations.set(vendor, disposables);
86
- }
87
- catch (err) {
96
+ } catch (err) {
88
97
  disposables.dispose();
89
98
  throw err;
90
99
  }
91
100
  }
92
101
  $onLMProviderChange(vendor) {
93
- this._lmProviderChange.fire({ vendor });
102
+ this._lmProviderChange.fire({
103
+ vendor
104
+ });
94
105
  }
95
106
  async $reportResponsePart(requestId, chunk) {
96
107
  const data = this._pendingProgress.get(requestId);
97
- this._logService.trace('[LM] report response PART', Boolean(data), requestId, chunk);
108
+ this._logService.trace("[LM] report response PART", Boolean(data), requestId, chunk);
98
109
  if (data) {
99
110
  data.stream.emitOne(chunk.value);
100
111
  }
101
112
  }
102
113
  async $reportResponseDone(requestId, err) {
103
114
  const data = this._pendingProgress.get(requestId);
104
- this._logService.trace('[LM] report response DONE', Boolean(data), requestId, err);
115
+ this._logService.trace("[LM] report response DONE", Boolean(data), requestId, err);
105
116
  if (data) {
106
117
  this._pendingProgress.delete(requestId);
107
118
  if (err) {
108
119
  const error = LanguageModelError.tryDeserialize(err) ?? transformErrorFromSerialization(err);
109
120
  data.stream.reject(error);
110
121
  data.defer.error(error);
111
- }
112
- else {
122
+ } else {
113
123
  data.stream.resolve();
114
124
  data.defer.complete(undefined);
115
125
  }
@@ -122,33 +132,41 @@ let MainThreadLanguageModels = class MainThreadLanguageModels {
122
132
  return this._chatProviderService.selectLanguageModels(selector);
123
133
  }
124
134
  async $tryStartChatRequest(extension, modelIdentifier, requestId, messages, options, token) {
125
- this._logService.trace('[CHAT] request STARTED', extension.value, requestId);
135
+ this._logService.trace("[CHAT] request STARTED", extension.value, requestId);
126
136
  let response;
127
137
  try {
128
138
  response = await this._chatProviderService.sendChatRequest(modelIdentifier, extension, messages.value, options, token);
129
- }
130
- catch (err) {
131
- this._logService.error('[CHAT] request FAILED', extension.value, requestId, err);
139
+ } catch (err) {
140
+ this._logService.error("[CHAT] request FAILED", extension.value, requestId, err);
132
141
  throw err;
133
142
  }
134
143
  const streaming = (async () => {
135
144
  try {
136
145
  for await (const part of response.stream) {
137
- this._logService.trace('[CHAT] request PART', extension.value, requestId, part);
146
+ this._logService.trace("[CHAT] request PART", extension.value, requestId, part);
138
147
  await this._proxy.$acceptResponsePart(requestId, ( new SerializableObjectWithBuffers(part)));
139
148
  }
140
- this._logService.trace('[CHAT] request DONE', extension.value, requestId);
141
- }
142
- catch (err) {
143
- this._logService.error('[CHAT] extension request ERRORED in STREAM', toErrorMessage(err, true), extension.value, requestId);
149
+ this._logService.trace("[CHAT] request DONE", extension.value, requestId);
150
+ } catch (err) {
151
+ this._logService.error(
152
+ "[CHAT] extension request ERRORED in STREAM",
153
+ toErrorMessage(err, true),
154
+ extension.value,
155
+ requestId
156
+ );
144
157
  this._proxy.$acceptResponseDone(requestId, transformErrorForSerialization(err));
145
158
  }
146
159
  })();
147
160
  Promise.allSettled([response.result, streaming]).then(() => {
148
- this._logService.debug('[CHAT] extension request DONE', extension.value, requestId);
161
+ this._logService.debug("[CHAT] extension request DONE", extension.value, requestId);
149
162
  this._proxy.$acceptResponseDone(requestId, undefined);
150
163
  }, err => {
151
- this._logService.error('[CHAT] extension request ERRORED', toErrorMessage(err, true), extension.value, requestId);
164
+ this._logService.error(
165
+ "[CHAT] extension request ERRORED",
166
+ toErrorMessage(err, true),
167
+ extension.value,
168
+ requestId
169
+ );
152
170
  this._proxy.$acceptResponseDone(requestId, transformErrorForSerialization(err));
153
171
  });
154
172
  }
@@ -160,27 +178,29 @@ let MainThreadLanguageModels = class MainThreadLanguageModels {
160
178
  if (this._authenticationService.getProviderIds().includes(authProviderId)) {
161
179
  return Disposable.None;
162
180
  }
163
- const accountLabel = auth.accountLabel ?? ( localize(2533, 'Language Models'));
181
+ const accountLabel = auth.accountLabel ?? ( localize(2536, "Language Models"));
164
182
  const disposables = ( new DisposableStore());
165
183
  this._authenticationService.registerAuthenticationProvider(authProviderId, ( new LanguageModelAccessAuthProvider(authProviderId, auth.providerLabel, accountLabel)));
166
184
  disposables.add(toDisposable(() => {
167
185
  this._authenticationService.unregisterAuthenticationProvider(authProviderId);
168
186
  }));
169
- disposables.add(this._authenticationAccessService.onDidChangeExtensionSessionAccess(async (e) => {
170
- const allowedExtensions = this._authenticationAccessService.readAllowedExtensions(authProviderId, accountLabel);
171
- const accessList = [];
172
- for (const allowedExtension of allowedExtensions) {
173
- const from = await this._extensionService.getExtension(allowedExtension.id);
174
- if (from) {
175
- accessList.push({
176
- from: from.identifier,
177
- to: extension,
178
- enabled: allowedExtension.allowed ?? true
179
- });
187
+ disposables.add(
188
+ this._authenticationAccessService.onDidChangeExtensionSessionAccess(async e => {
189
+ const allowedExtensions = this._authenticationAccessService.readAllowedExtensions(authProviderId, accountLabel);
190
+ const accessList = [];
191
+ for (const allowedExtension of allowedExtensions) {
192
+ const from = await this._extensionService.getExtension(allowedExtension.id);
193
+ if (from) {
194
+ accessList.push({
195
+ from: from.identifier,
196
+ to: extension,
197
+ enabled: allowedExtension.allowed ?? true
198
+ });
199
+ }
180
200
  }
181
- }
182
- this._proxy.$updateModelAccesslist(accessList);
183
- }));
201
+ this._proxy.$updateModelAccesslist(accessList);
202
+ })
203
+ );
184
204
  return disposables;
185
205
  }
186
206
  $fileIsIgnored(uri, token) {
@@ -195,15 +215,10 @@ let MainThreadLanguageModels = class MainThreadLanguageModels {
195
215
  this._ignoredFileProviderRegistrations.deleteAndDispose(handle);
196
216
  }
197
217
  };
198
- MainThreadLanguageModels = __decorate([
199
- extHostNamedCustomer(MainContext.MainThreadLanguageModels),
200
- ( __param(1, ILanguageModelsService)),
201
- ( __param(2, ILogService)),
202
- ( __param(3, IAuthenticationService)),
203
- ( __param(4, IAuthenticationAccessService)),
204
- ( __param(5, IExtensionService)),
205
- ( __param(6, ILanguageModelIgnoredFilesService))
206
- ], MainThreadLanguageModels);
218
+ MainThreadLanguageModels = __decorate(
219
+ [extHostNamedCustomer(MainContext.MainThreadLanguageModels), ( __param(1, ILanguageModelsService)), ( __param(2, ILogService)), ( __param(3, IAuthenticationService)), ( __param(4, IAuthenticationAccessService)), ( __param(5, IExtensionService)), ( __param(6, ILanguageModelIgnoredFilesService))],
220
+ MainThreadLanguageModels
221
+ );
207
222
  class LanguageModelAccessAuthProvider {
208
223
  constructor(id, label, _accountLabel) {
209
224
  this.id = id;
@@ -224,19 +239,27 @@ class LanguageModelAccessAuthProvider {
224
239
  }
225
240
  async createSession(scopes) {
226
241
  this._session = this._createFakeSession(scopes);
227
- this._onDidChangeSessions.fire({ added: [this._session], changed: [], removed: [] });
242
+ this._onDidChangeSessions.fire({
243
+ added: [this._session],
244
+ changed: [],
245
+ removed: []
246
+ });
228
247
  return this._session;
229
248
  }
230
249
  removeSession(sessionId) {
231
250
  if (this._session) {
232
- this._onDidChangeSessions.fire({ added: [], changed: [], removed: [this._session] });
251
+ this._onDidChangeSessions.fire({
252
+ added: [],
253
+ changed: [],
254
+ removed: [this._session]
255
+ });
233
256
  this._session = undefined;
234
257
  }
235
258
  return Promise.resolve();
236
259
  }
237
260
  confirmation(extensionName, _recreatingSession) {
238
261
  return localize(
239
- 2534,
262
+ 2537,
240
263
  "The extension '{0}' wants to access the language models provided by {1}.",
241
264
  extensionName,
242
265
  this.label
@@ -244,13 +267,13 @@ class LanguageModelAccessAuthProvider {
244
267
  }
245
268
  _createFakeSession(scopes) {
246
269
  return {
247
- id: 'fake-session',
270
+ id: "fake-session",
248
271
  account: {
249
272
  id: this.id,
250
- label: this._accountLabel,
273
+ label: this._accountLabel
251
274
  },
252
- accessToken: 'fake-access-token',
253
- scopes,
275
+ accessToken: "fake-access-token",
276
+ scopes
254
277
  };
255
278
  }
256
279
  }
@@ -11,7 +11,13 @@ import { ILanguageStatusService } from '@codingame/monaco-vscode-api/vscode/vs/w
11
11
  import { Disposable, DisposableMap } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
12
12
 
13
13
  let MainThreadLanguages = class MainThreadLanguages extends Disposable {
14
- constructor(_extHostContext, _languageService, _modelService, _resolverService, _languageStatusService) {
14
+ constructor(
15
+ _extHostContext,
16
+ _languageService,
17
+ _modelService,
18
+ _resolverService,
19
+ _languageStatusService
20
+ ) {
15
21
  super();
16
22
  this._languageService = _languageService;
17
23
  this._modelService = _modelService;
@@ -32,8 +38,7 @@ let MainThreadLanguages = class MainThreadLanguages extends Disposable {
32
38
  const ref = await this._resolverService.createModelReference(uri);
33
39
  try {
34
40
  ref.object.textEditorModel.setLanguage(this._languageService.createById(languageId));
35
- }
36
- finally {
41
+ } finally {
37
42
  ref.dispose();
38
43
  }
39
44
  }
@@ -63,12 +68,6 @@ let MainThreadLanguages = class MainThreadLanguages extends Disposable {
63
68
  this._status.deleteAndDispose(handle);
64
69
  }
65
70
  };
66
- MainThreadLanguages = __decorate([
67
- extHostNamedCustomer(MainContext.MainThreadLanguages),
68
- ( __param(1, ILanguageService)),
69
- ( __param(2, IModelService)),
70
- ( __param(3, ITextModelService)),
71
- ( __param(4, ILanguageStatusService))
72
- ], MainThreadLanguages);
71
+ MainThreadLanguages = __decorate([extHostNamedCustomer(MainContext.MainThreadLanguages), ( __param(1, ILanguageService)), ( __param(2, IModelService)), ( __param(3, ITextModelService)), ( __param(4, ILanguageStatusService))], MainThreadLanguages);
73
72
 
74
73
  export { MainThreadLanguages };
@@ -17,8 +17,7 @@ let MainThreadLocalization = class MainThreadLocalization extends Disposable {
17
17
  try {
18
18
  const uri = await this.languagePackService.getBuiltInExtensionTranslationsUri(id, language);
19
19
  return uri;
20
- }
21
- catch (e) {
20
+ } catch (e) {
22
21
  return undefined;
23
22
  }
24
23
  }
@@ -27,10 +26,6 @@ let MainThreadLocalization = class MainThreadLocalization extends Disposable {
27
26
  return ( contents.value.toString());
28
27
  }
29
28
  };
30
- MainThreadLocalization = __decorate([
31
- extHostNamedCustomer(MainContext.MainThreadLocalization),
32
- ( __param(1, IFileService)),
33
- ( __param(2, ILanguagePackService))
34
- ], MainThreadLocalization);
29
+ MainThreadLocalization = __decorate([extHostNamedCustomer(MainContext.MainThreadLocalization), ( __param(1, IFileService)), ( __param(2, ILanguagePackService))], MainThreadLocalization);
35
30
 
36
31
  export { MainThreadLocalization };
@@ -17,8 +17,7 @@ let MainThreadLoggerService = class MainThreadLoggerService {
17
17
  this.disposables.add(loggerService.onDidChangeLogLevel(arg => {
18
18
  if (isLogLevel(arg)) {
19
19
  proxy.$setLogLevel(arg);
20
- }
21
- else {
20
+ } else {
22
21
  proxy.$setLogLevel(arg[1], arg[0]);
23
22
  }
24
23
  }));
@@ -26,7 +25,7 @@ let MainThreadLoggerService = class MainThreadLoggerService {
26
25
  $log(file, messages) {
27
26
  const logger = this.loggerService.getLogger(URI.revive(file));
28
27
  if (!logger) {
29
- throw ( new Error('Create the logger before logging'));
28
+ throw ( new Error("Create the logger before logging"));
30
29
  }
31
30
  for (const [level, message] of messages) {
32
31
  log(logger, level, message);
@@ -50,7 +49,7 @@ let MainThreadLoggerService = class MainThreadLoggerService {
50
49
  $flush(file) {
51
50
  const logger = this.loggerService.getLogger(URI.revive(file));
52
51
  if (!logger) {
53
- throw ( new Error('Create the logger before flushing'));
52
+ throw ( new Error("Create the logger before flushing"));
54
53
  }
55
54
  logger.flush();
56
55
  }
@@ -58,11 +57,8 @@ let MainThreadLoggerService = class MainThreadLoggerService {
58
57
  this.disposables.dispose();
59
58
  }
60
59
  };
61
- MainThreadLoggerService = __decorate([
62
- extHostNamedCustomer(MainContext.MainThreadLogger),
63
- ( __param(1, ILoggerService))
64
- ], MainThreadLoggerService);
65
- CommandsRegistry.registerCommand('_extensionTests.setLogLevel', function (accessor, level) {
60
+ MainThreadLoggerService = __decorate([extHostNamedCustomer(MainContext.MainThreadLogger), ( __param(1, ILoggerService))], MainThreadLoggerService);
61
+ CommandsRegistry.registerCommand("_extensionTests.setLogLevel", function(accessor, level) {
66
62
  const loggerService = accessor.get(ILoggerService);
67
63
  const environmentService = accessor.get(IEnvironmentService);
68
64
  if (environmentService.isExtensionDevelopment && !!environmentService.extensionTestsLocationURI) {
@@ -72,7 +68,7 @@ CommandsRegistry.registerCommand('_extensionTests.setLogLevel', function (access
72
68
  }
73
69
  }
74
70
  });
75
- CommandsRegistry.registerCommand('_extensionTests.getLogLevel', function (accessor) {
71
+ CommandsRegistry.registerCommand("_extensionTests.getLogLevel", function(accessor) {
76
72
  const logService = accessor.get(ILogService);
77
73
  return LogLevelToString(logService.getLevel());
78
74
  });
@@ -26,18 +26,17 @@ let MainThreadManagedSockets = class MainThreadManagedSockets extends Disposable
26
26
  connect(connectTo, path, query, debugLabel) {
27
27
  return ( new Promise((resolve, reject) => {
28
28
  if (connectTo.id !== socketFactoryId) {
29
- return reject(( new Error('Invalid connectTo')));
29
+ return reject(( new Error("Invalid connectTo")));
30
30
  }
31
31
  const factoryId = connectTo.id;
32
32
  that._proxy.$openRemoteSocket(factoryId).then(socketId => {
33
33
  const half = {
34
34
  onClose: ( new Emitter()),
35
35
  onData: ( new Emitter()),
36
- onEnd: ( new Emitter()),
36
+ onEnd: ( new Emitter())
37
37
  };
38
38
  that._remoteSockets.set(socketId, half);
39
- MainThreadManagedSocket.connect(socketId, that._proxy, path, query, debugLabel, half)
40
- .then(socket => {
39
+ MainThreadManagedSocket.connect(socketId, that._proxy, path, query, debugLabel, half).then(socket => {
41
40
  socket.onDidDispose(() => that._remoteSockets.delete(socketId));
42
41
  resolve(socket);
43
42
  }, err => {
@@ -47,8 +46,11 @@ let MainThreadManagedSockets = class MainThreadManagedSockets extends Disposable
47
46
  }).catch(reject);
48
47
  }));
49
48
  }
50
- });
51
- this._registrations.set(socketFactoryId, this._remoteSocketFactoryService.register(RemoteConnectionType.Managed, socketFactory));
49
+ })();
50
+ this._registrations.set(
51
+ socketFactoryId,
52
+ this._remoteSocketFactoryService.register(RemoteConnectionType.Managed, socketFactory)
53
+ );
52
54
  }
53
55
  async $unregisterSocketFactory(socketFactoryId) {
54
56
  this._registrations.get(socketFactoryId)?.dispose();
@@ -68,10 +70,10 @@ let MainThreadManagedSockets = class MainThreadManagedSockets extends Disposable
68
70
  this._remoteSockets.get(socketId)?.onEnd.fire();
69
71
  }
70
72
  };
71
- MainThreadManagedSockets = __decorate([
72
- extHostNamedCustomer(MainContext.MainThreadManagedSockets),
73
- ( __param(1, IRemoteSocketFactoryService))
74
- ], MainThreadManagedSockets);
73
+ MainThreadManagedSockets = __decorate(
74
+ [extHostNamedCustomer(MainContext.MainThreadManagedSockets), ( __param(1, IRemoteSocketFactoryService))],
75
+ MainThreadManagedSockets
76
+ );
75
77
  class MainThreadManagedSocket extends ManagedSocket {
76
78
  static connect(socketId, proxy, path, query, debugLabel, half) {
77
79
  const socket = ( new MainThreadManagedSocket(socketId, proxy, debugLabel, half));
@@ -12,7 +12,7 @@ import { IAuthenticationService } from "@codingame/monaco-vscode-api/vscode/vs/w
12
12
  import { IDynamicAuthenticationProviderStorageService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/authentication/common/dynamicAuthenticationProviderStorage.service";
13
13
  import { IExtensionService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service";
14
14
  import { IExtHostContext } from "../../services/extensions/common/extHostCustomers.js";
15
- import { IMcpAuthenticationDetails, IMcpAuthenticationOptions, IMcpAuthSetupTelemetry, MainThreadMcpShape } from "@codingame/monaco-vscode-api/vscode/vs/workbench/api/common/extHost.protocol";
15
+ import { IMcpAuthenticationDetails, IMcpAuthenticationOptions, IAuthMetadataSource, MainThreadMcpShape } from "@codingame/monaco-vscode-api/vscode/vs/workbench/api/common/extHost.protocol";
16
16
  export declare class MainThreadMcp extends Disposable implements MainThreadMcpShape {
17
17
  private readonly _extHostContext;
18
18
  private readonly _mcpRegistry;
@@ -32,6 +32,7 @@ export declare class MainThreadMcp extends Disposable implements MainThreadMcpSh
32
32
  private readonly _proxy;
33
33
  private readonly _collectionDefinitions;
34
34
  constructor(_extHostContext: IExtHostContext, _mcpRegistry: IMcpRegistry, dialogService: IDialogService, _authenticationService: IAuthenticationService, authenticationMcpServersService: IAuthenticationMcpService, authenticationMCPServerAccessService: IAuthenticationMcpAccessService, authenticationMCPServerUsageService: IAuthenticationMcpUsageService, _dynamicAuthenticationProviderStorageService: IDynamicAuthenticationProviderStorageService, _extensionService: IExtensionService, _contextKeyService: IContextKeyService, _telemetryService: ITelemetryService);
35
+ private _publishServerDefinitions;
35
36
  $upsertMcpCollection(collection: McpCollectionDefinition.FromExtHost, serversDto: McpServerDefinition.Serialized[]): void;
36
37
  $deleteMcpCollection(collectionId: string): void;
37
38
  $onDidChangeState(id: number, update: McpConnectionState): void;
@@ -42,7 +43,7 @@ export declare class MainThreadMcp extends Disposable implements MainThreadMcpSh
42
43
  private _getSessionForProvider;
43
44
  private continueWithIncorrectAccountPrompt;
44
45
  private _onDidChangeAuthSessions;
45
- $logMcpAuthSetup(data: IMcpAuthSetupTelemetry): void;
46
+ $logMcpAuthSetup(data: IAuthMetadataSource): void;
46
47
  private loginPrompt;
47
48
  dispose(): void;
48
49
  }