Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/workbench/api/common/extHost.protocol.ts
5241 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import { VSBuffer } from '../../../base/common/buffer.js';
7
import { CancellationToken } from '../../../base/common/cancellation.js';
8
import { IRemoteConsoleLog } from '../../../base/common/console.js';
9
import { SerializedError } from '../../../base/common/errors.js';
10
import { IRelativePattern } from '../../../base/common/glob.js';
11
import { IMarkdownString } from '../../../base/common/htmlContent.js';
12
import { IJSONSchema } from '../../../base/common/jsonSchema.js';
13
import { IDisposable } from '../../../base/common/lifecycle.js';
14
import { IAuthorizationProtectedResourceMetadata, IAuthorizationServerMetadata, IAuthorizationTokenResponse } from '../../../base/common/oauth.js';
15
import * as performance from '../../../base/common/performance.js';
16
import Severity from '../../../base/common/severity.js';
17
import { ThemeColor, ThemeIcon } from '../../../base/common/themables.js';
18
import { URI, UriComponents, UriDto } from '../../../base/common/uri.js';
19
import { RenderLineNumbersType, TextEditorCursorStyle } from '../../../editor/common/config/editorOptions.js';
20
import { ISingleEditOperation } from '../../../editor/common/core/editOperation.js';
21
import { IPosition } from '../../../editor/common/core/position.js';
22
import { IRange } from '../../../editor/common/core/range.js';
23
import { ISelection, Selection } from '../../../editor/common/core/selection.js';
24
import { IChange } from '../../../editor/common/diff/legacyLinesDiffComputer.js';
25
import * as editorCommon from '../../../editor/common/editorCommon.js';
26
import { StandardTokenType } from '../../../editor/common/encodedTokenAttributes.js';
27
import * as languages from '../../../editor/common/languages.js';
28
import { CompletionItemLabel } from '../../../editor/common/languages.js';
29
import { CharacterPair, CommentRule, EnterAction } from '../../../editor/common/languages/languageConfiguration.js';
30
import { EndOfLineSequence } from '../../../editor/common/model.js';
31
import { EditSuggestionId } from '../../../editor/common/textModelEditSource.js';
32
import { ISerializedModelContentChangedEvent } from '../../../editor/common/textModelEvents.js';
33
import { IAccessibilityInformation } from '../../../platform/accessibility/common/accessibility.js';
34
import { ILocalizedString } from '../../../platform/action/common/action.js';
35
import { ConfigurationTarget, IConfigurationChange, IConfigurationData, IConfigurationOverrides } from '../../../platform/configuration/common/configuration.js';
36
import { ConfigurationScope } from '../../../platform/configuration/common/configurationRegistry.js';
37
import { IExtensionIdWithVersion } from '../../../platform/extensionManagement/common/extensionStorage.js';
38
import { ExtensionIdentifier, IExtensionDescription } from '../../../platform/extensions/common/extensions.js';
39
import * as files from '../../../platform/files/common/files.js';
40
import { ResourceLabelFormatter } from '../../../platform/label/common/label.js';
41
import { ILoggerOptions, ILoggerResource, LogLevel } from '../../../platform/log/common/log.js';
42
import { IMarkerData } from '../../../platform/markers/common/markers.js';
43
import { IProgressOptions, IProgressStep } from '../../../platform/progress/common/progress.js';
44
import * as quickInput from '../../../platform/quickinput/common/quickInput.js';
45
import { IRemoteConnectionData, TunnelDescription } from '../../../platform/remote/common/remoteAuthorityResolver.js';
46
import { AuthInfo, Credentials } from '../../../platform/request/common/request.js';
47
import { ClassifiedEvent, IGDPRProperty, OmitMetadata, StrictPropertyCheck } from '../../../platform/telemetry/common/gdprTypings.js';
48
import { TelemetryLevel } from '../../../platform/telemetry/common/telemetry.js';
49
import { ISerializableEnvironmentDescriptionMap, ISerializableEnvironmentVariableCollection } from '../../../platform/terminal/common/environmentVariable.js';
50
import { ICreateContributedTerminalProfileOptions, IProcessProperty, IProcessReadyWindowsPty, IShellLaunchConfigDto, ITerminalEnvironment, ITerminalLaunchError, ITerminalProfile, TerminalExitReason, TerminalLocation, TerminalShellType } from '../../../platform/terminal/common/terminal.js';
51
import { ProvidedPortAttributes, TunnelCreationOptions, TunnelOptions, TunnelPrivacyId, TunnelProviderFeatures } from '../../../platform/tunnel/common/tunnel.js';
52
import { EditSessionIdentityMatch } from '../../../platform/workspace/common/editSessions.js';
53
import { WorkspaceTrustRequestOptions } from '../../../platform/workspace/common/workspaceTrust.js';
54
import { SaveReason } from '../../common/editor.js';
55
import { IRevealOptions, ITreeItem, IViewBadge } from '../../common/views.js';
56
import { CallHierarchyItem } from '../../contrib/callHierarchy/common/callHierarchy.js';
57
import { IChatAgentMetadata, IChatAgentRequest, IChatAgentResult, UserSelectedTools } from '../../contrib/chat/common/participants/chatAgents.js';
58
import { ICodeMapperRequest, ICodeMapperResult } from '../../contrib/chat/common/editing/chatCodeMapperService.js';
59
import { IChatContextItem } from '../../contrib/chat/common/contextContrib/chatContext.js';
60
import { IChatProgressHistoryResponseContent, IChatRequestVariableData } from '../../contrib/chat/common/model/chatModel.js';
61
import { ChatResponseClearToPreviousToolInvocationReason, IChatContentInlineReference, IChatExternalEditsDto, IChatFollowup, IChatMultiDiffData, IChatMultiDiffDataSerialized, IChatNotebookEdit, IChatProgress, IChatTask, IChatTaskDto, IChatUserActionEvent, IChatVoteAction } from '../../contrib/chat/common/chatService/chatService.js';
62
import { IChatSessionItem, IChatSessionProviderOptionGroup, IChatSessionProviderOptionItem } from '../../contrib/chat/common/chatSessionsService.js';
63
import { IChatRequestVariableValue } from '../../contrib/chat/common/attachments/chatVariables.js';
64
import { ChatAgentLocation } from '../../contrib/chat/common/constants.js';
65
import { IChatMessage, IChatResponsePart, ILanguageModelChatInfoOptions, ILanguageModelChatMetadataAndIdentifier, ILanguageModelChatSelector } from '../../contrib/chat/common/languageModels.js';
66
import { IPreparedToolInvocation, IStreamedToolInvocation, IToolInvocation, IToolInvocationPreparationContext, IToolInvocationStreamContext, IToolProgressStep, IToolResult, ToolDataSource } from '../../contrib/chat/common/tools/languageModelToolsService.js';
67
import { IPromptFileContext, IPromptFileResource } from '../../contrib/chat/common/promptSyntax/service/promptsService.js';
68
import { DebugConfigurationProviderTriggerKind, IAdapterDescriptor, IConfig, IDebugSessionReplMode, IDebugTestRunReference, IDebugVisualization, IDebugVisualizationContext, IDebugVisualizationTreeItem, MainThreadDebugVisualization } from '../../contrib/debug/common/debug.js';
69
import { McpCollectionDefinition, McpConnectionState, McpServerDefinition, McpServerLaunch } from '../../contrib/mcp/common/mcpTypes.js';
70
import * as notebookCommon from '../../contrib/notebook/common/notebookCommon.js';
71
import { CellExecutionUpdateType } from '../../contrib/notebook/common/notebookExecutionService.js';
72
import { ICellExecutionComplete, ICellExecutionStateUpdate } from '../../contrib/notebook/common/notebookExecutionStateService.js';
73
import { ICellRange } from '../../contrib/notebook/common/notebookRange.js';
74
import { ISCMHistoryOptions } from '../../contrib/scm/common/history.js';
75
import { InputValidationType } from '../../contrib/scm/common/scm.js';
76
import { IWorkspaceSymbol, NotebookPriorityInfo } from '../../contrib/search/common/search.js';
77
import { IRawClosedNotebookFileMatch } from '../../contrib/search/common/searchNotebookHelpers.js';
78
import { IKeywordRecognitionEvent, ISpeechProviderMetadata, ISpeechToTextEvent, ITextToSpeechEvent } from '../../contrib/speech/common/speechService.js';
79
import { CoverageDetails, ExtensionRunTestsRequest, ICallProfileRunHandler, IFileCoverage, ISerializedTestResults, IStartControllerTests, ITestItem, ITestMessage, ITestRunProfile, ITestRunTask, ResolvedTestRunRequest, TestControllerCapability, TestMessageFollowupRequest, TestMessageFollowupResponse, TestResultState, TestsDiffOp } from '../../contrib/testing/common/testTypes.js';
80
import { Timeline, TimelineChangeEvent, TimelineOptions, TimelineProviderDescriptor } from '../../contrib/timeline/common/timeline.js';
81
import { TypeHierarchyItem } from '../../contrib/typeHierarchy/common/typeHierarchy.js';
82
import { RelatedInformationResult, RelatedInformationType } from '../../services/aiRelatedInformation/common/aiRelatedInformation.js';
83
import { AiSettingsSearchProviderOptions, AiSettingsSearchResult } from '../../services/aiSettingsSearch/common/aiSettingsSearch.js';
84
import { AuthenticationSession, AuthenticationSessionAccount, AuthenticationSessionsChangeEvent, IAuthenticationConstraint, IAuthenticationCreateSessionOptions, IAuthenticationGetSessionsOptions, IAuthenticationWwwAuthenticateRequest } from '../../services/authentication/common/authentication.js';
85
import { EditorGroupColumn } from '../../services/editor/common/editorGroupColumn.js';
86
import { IExtensionDescriptionDelta, IStaticWorkspaceData } from '../../services/extensions/common/extensionHostProtocol.js';
87
import { IResolveAuthorityResult } from '../../services/extensions/common/extensionHostProxy.js';
88
import { ActivationKind, ExtensionActivationReason, MissingExtensionDependency } from '../../services/extensions/common/extensions.js';
89
import { Dto, IRPCProtocol, SerializableObjectWithBuffers, createProxyIdentifier } from '../../services/extensions/common/proxyIdentifier.js';
90
import { IInlineCompletionsUnificationState } from '../../services/inlineCompletions/common/inlineCompletionsUnification.js';
91
import { ILanguageStatus } from '../../services/languageStatus/common/languageStatusService.js';
92
import { OutputChannelUpdateMode } from '../../services/output/common/output.js';
93
import { CandidatePort } from '../../services/remote/common/tunnelModel.js';
94
import { IFileQueryBuilderOptions, ITextQueryBuilderOptions } from '../../services/search/common/queryBuilder.js';
95
import * as search from '../../services/search/common/search.js';
96
import { AISearchKeyword, TextSearchCompleteMessage } from '../../services/search/common/searchExtTypes.js';
97
import { ISaveProfileResult } from '../../services/userDataProfile/common/userDataProfile.js';
98
import { IExtHostDocumentSaveDelegate } from './extHostDocumentData.js';
99
import { TerminalShellExecutionCommandLineConfidence } from './extHostTypes.js';
100
import * as tasks from './shared/tasks.js';
101
import { PromptsType } from '../../contrib/chat/common/promptSyntax/promptTypes.js';
102
import { IHookCommandResult } from '../../contrib/chat/common/hooks/hooksCommandTypes.js';
103
import { IHookResult } from '../../contrib/chat/common/hooks/hooksTypes.js';
104
import { IHookCommand } from '../../contrib/chat/common/promptSyntax/hookSchema.js';
105
106
export type IconPathDto =
107
| UriComponents
108
| { light: UriComponents; dark: UriComponents }
109
| ThemeIcon;
110
111
export interface IWorkspaceData extends IStaticWorkspaceData {
112
folders: { uri: UriComponents; name: string; index: number }[];
113
}
114
115
export interface IConfigurationInitData extends IConfigurationData {
116
configurationScopes: [string, ConfigurationScope | undefined][];
117
}
118
119
export interface IMainContext extends IRPCProtocol {
120
}
121
122
// --- main thread
123
124
export interface MainThreadClipboardShape extends IDisposable {
125
$readText(): Promise<string>;
126
$writeText(value: string): Promise<void>;
127
}
128
129
export interface MainThreadCommandsShape extends IDisposable {
130
$registerCommand(id: string): void;
131
$unregisterCommand(id: string): void;
132
$fireCommandActivationEvent(id: string): void;
133
$executeCommand(id: string, args: unknown[] | SerializableObjectWithBuffers<unknown[]>, retry: boolean): Promise<unknown | undefined>;
134
$getCommands(): Promise<string[]>;
135
}
136
137
export interface CommentProviderFeatures {
138
reactionGroup?: languages.CommentReaction[];
139
reactionHandler?: boolean;
140
options?: languages.CommentOptions;
141
}
142
143
export interface CommentChanges {
144
readonly uniqueIdInThread: number;
145
readonly body: string | IMarkdownString;
146
readonly userName: string;
147
readonly userIconPath?: UriComponents;
148
readonly contextValue?: string;
149
readonly commentReactions?: languages.CommentReaction[];
150
readonly label?: string;
151
readonly mode?: languages.CommentMode;
152
readonly state?: languages.CommentState;
153
readonly timestamp?: string;
154
}
155
156
export type CommentThreadChanges<T = IRange> = Partial<{
157
range: T | undefined;
158
label: string;
159
contextValue: string | null;
160
comments: CommentChanges[];
161
collapseState: languages.CommentThreadCollapsibleState;
162
canReply: boolean | languages.CommentAuthorInformation;
163
state: languages.CommentThreadState;
164
applicability: languages.CommentThreadApplicability;
165
isTemplate: boolean;
166
}>;
167
168
export interface MainThreadCommentsShape extends IDisposable {
169
$registerCommentController(handle: number, id: string, label: string, extensionId: string): void;
170
$unregisterCommentController(handle: number): void;
171
$updateCommentControllerFeatures(handle: number, features: CommentProviderFeatures): void;
172
$createCommentThread(handle: number, commentThreadHandle: number, threadId: string, resource: UriComponents, range: IRange | ICellRange | undefined, comments: languages.Comment[], extensionId: ExtensionIdentifier, isTemplate: boolean, editorId?: string): languages.CommentThread<IRange | ICellRange> | undefined;
173
$updateCommentThread(handle: number, commentThreadHandle: number, threadId: string, resource: UriComponents, changes: CommentThreadChanges): void;
174
$deleteCommentThread(handle: number, commentThreadHandle: number): void;
175
$updateCommentingRanges(handle: number, resourceHints?: languages.CommentingRangeResourceHint): void;
176
$revealCommentThread(handle: number, commentThreadHandle: number, commentUniqueIdInThread: number, options: languages.CommentThreadRevealOptions): Promise<void>;
177
$hideCommentThread(handle: number, commentThreadHandle: number): void;
178
}
179
180
export interface AuthenticationForceNewSessionOptions {
181
detail?: string;
182
sessionToRecreate?: AuthenticationSession;
183
}
184
185
export interface AuthenticationInteractiveOptions {
186
detail?: string;
187
learnMore?: UriComponents;
188
sessionToRecreate?: AuthenticationSession;
189
}
190
191
export interface AuthenticationGetSessionOptions {
192
clearSessionPreference?: boolean;
193
createIfNone?: boolean | AuthenticationInteractiveOptions;
194
forceNewSession?: boolean | AuthenticationInteractiveOptions;
195
silent?: boolean;
196
account?: AuthenticationSessionAccount;
197
}
198
export interface IRegisterAuthenticationProviderDetails {
199
id: string;
200
label: string;
201
supportsMultipleAccounts: boolean;
202
supportedAuthorizationServers?: UriComponents[];
203
supportsChallenges?: boolean;
204
resourceServer?: UriComponents;
205
}
206
207
export interface IRegisterDynamicAuthenticationProviderDetails extends IRegisterAuthenticationProviderDetails {
208
clientId: string;
209
clientSecret?: string;
210
authorizationServer: UriComponents;
211
}
212
213
export interface MainThreadAuthenticationShape extends IDisposable {
214
$registerAuthenticationProvider(details: IRegisterAuthenticationProviderDetails): Promise<void>;
215
$unregisterAuthenticationProvider(id: string): Promise<void>;
216
$ensureProvider(id: string): Promise<void>;
217
$sendDidChangeSessions(providerId: string, event: AuthenticationSessionsChangeEvent): Promise<void>;
218
$getSession(providerId: string, scopeListOrRequest: ReadonlyArray<string> | IAuthenticationWwwAuthenticateRequest, extensionId: string, extensionName: string, options: AuthenticationGetSessionOptions): Promise<AuthenticationSession | undefined>;
219
$getAccounts(providerId: string): Promise<ReadonlyArray<AuthenticationSessionAccount>>;
220
$removeSession(providerId: string, sessionId: string): Promise<void>;
221
$waitForUriHandler(expectedUri: UriComponents): Promise<UriComponents>;
222
$showContinueNotification(message: string): Promise<boolean>;
223
$showDeviceCodeModal(userCode: string, verificationUri: string): Promise<boolean>;
224
$promptForClientRegistration(authorizationServerUrl: string): Promise<{ clientId: string; clientSecret?: string } | undefined>;
225
$registerDynamicAuthenticationProvider(details: IRegisterDynamicAuthenticationProviderDetails): Promise<void>;
226
$setSessionsForDynamicAuthProvider(authProviderId: string, clientId: string, sessions: (IAuthorizationTokenResponse & { created_at: number })[]): Promise<void>;
227
$sendDidChangeDynamicProviderInfo({ providerId, clientId, authorizationServer, label, clientSecret }: { providerId: string; clientId?: string; authorizationServer?: UriComponents; label?: string; clientSecret?: string }): Promise<void>;
228
}
229
230
export interface MainThreadSecretStateShape extends IDisposable {
231
$getPassword(extensionId: string, key: string): Promise<string | undefined>;
232
$setPassword(extensionId: string, key: string, value: string): Promise<void>;
233
$deletePassword(extensionId: string, key: string): Promise<void>;
234
$getKeys(extensionId: string): Promise<string[]>;
235
}
236
237
export interface MainThreadConfigurationShape extends IDisposable {
238
$updateConfigurationOption(target: ConfigurationTarget | null, key: string, value: unknown, overrides: IConfigurationOverrides | undefined, scopeToLanguage: boolean | undefined): Promise<void>;
239
$removeConfigurationOption(target: ConfigurationTarget | null, key: string, overrides: IConfigurationOverrides | undefined, scopeToLanguage: boolean | undefined): Promise<void>;
240
}
241
242
export interface MainThreadDiagnosticsShape extends IDisposable {
243
$changeMany(owner: string, entries: [UriComponents, IMarkerData[] | undefined][]): void;
244
$clear(owner: string): void;
245
}
246
247
export interface MainThreadDialogOpenOptions {
248
defaultUri?: UriComponents;
249
openLabel?: string;
250
canSelectFiles?: boolean;
251
canSelectFolders?: boolean;
252
canSelectMany?: boolean;
253
filters?: { [name: string]: string[] };
254
title?: string;
255
allowUIResources?: boolean;
256
}
257
258
export interface MainThreadDialogSaveOptions {
259
defaultUri?: UriComponents;
260
saveLabel?: string;
261
filters?: { [name: string]: string[] };
262
title?: string;
263
}
264
265
export interface MainThreadDiaglogsShape extends IDisposable {
266
$showOpenDialog(options?: MainThreadDialogOpenOptions): Promise<UriComponents[] | undefined>;
267
$showSaveDialog(options?: MainThreadDialogSaveOptions): Promise<UriComponents | undefined>;
268
}
269
270
export interface MainThreadDecorationsShape extends IDisposable {
271
$registerDecorationProvider(handle: number, label: string): void;
272
$unregisterDecorationProvider(handle: number): void;
273
$onDidChange(handle: number, resources: UriComponents[] | null): void;
274
}
275
276
export interface MainThreadDocumentContentProvidersShape extends IDisposable {
277
$registerTextContentProvider(handle: number, scheme: string): void;
278
$unregisterTextContentProvider(handle: number): void;
279
$onVirtualDocumentChange(uri: UriComponents, value: string): Promise<void>;
280
}
281
282
export interface MainThreadDocumentsShape extends IDisposable, IExtHostDocumentSaveDelegate {
283
$tryCreateDocument(options?: { language?: string; content?: string; encoding?: string }): Promise<UriComponents>;
284
$tryOpenDocument(uri: UriComponents, options?: { encoding?: string }): Promise<UriComponents>;
285
$trySaveDocument(uri: UriComponents): Promise<boolean>;
286
}
287
288
export interface ITextEditorConfigurationUpdate {
289
tabSize?: number | 'auto';
290
indentSize?: number | 'tabSize';
291
insertSpaces?: boolean | 'auto';
292
cursorStyle?: TextEditorCursorStyle;
293
lineNumbers?: RenderLineNumbersType;
294
}
295
296
export interface IResolvedTextEditorConfiguration {
297
tabSize: number;
298
indentSize: number;
299
originalIndentSize: number | 'tabSize';
300
insertSpaces: boolean;
301
cursorStyle: TextEditorCursorStyle;
302
lineNumbers: RenderLineNumbersType;
303
}
304
305
export enum TextEditorRevealType {
306
Default = 0,
307
InCenter = 1,
308
InCenterIfOutsideViewport = 2,
309
AtTop = 3
310
}
311
312
export interface IUndoStopOptions {
313
undoStopBefore: boolean;
314
undoStopAfter: boolean;
315
}
316
317
export interface IApplyEditsOptions extends IUndoStopOptions {
318
setEndOfLine?: EndOfLineSequence;
319
}
320
321
export interface ISnippetOptions extends IUndoStopOptions {
322
keepWhitespace?: boolean;
323
}
324
export interface ITextDocumentShowOptions {
325
position?: EditorGroupColumn;
326
preserveFocus?: boolean;
327
pinned?: boolean;
328
selection?: IRange;
329
}
330
331
export interface MainThreadBulkEditsShape extends IDisposable {
332
$tryApplyWorkspaceEdit(workspaceEditDto: SerializableObjectWithBuffers<IWorkspaceEditDto>, undoRedoGroupId?: number, respectAutoSaveConfig?: boolean): Promise<boolean>;
333
}
334
335
export interface MainThreadTextEditorsShape extends IDisposable {
336
$tryShowTextDocument(resource: UriComponents, options: ITextDocumentShowOptions): Promise<string | undefined>;
337
$registerTextEditorDecorationType(extensionId: ExtensionIdentifier, key: string, options: editorCommon.IDecorationRenderOptions): void;
338
$removeTextEditorDecorationType(key: string): void;
339
$tryShowEditor(id: string, position: EditorGroupColumn): Promise<void>;
340
$tryHideEditor(id: string): Promise<void>;
341
$trySetOptions(id: string, options: ITextEditorConfigurationUpdate): Promise<void>;
342
$trySetDecorations(id: string, key: string, ranges: editorCommon.IDecorationOptions[]): Promise<void>;
343
$trySetDecorationsFast(id: string, key: string, ranges: number[]): Promise<void>;
344
$tryRevealRange(id: string, range: IRange, revealType: TextEditorRevealType): Promise<void>;
345
$trySetSelections(id: string, selections: ISelection[]): Promise<void>;
346
$tryApplyEdits(id: string, modelVersionId: number, edits: ISingleEditOperation[], opts: IApplyEditsOptions): Promise<boolean>;
347
$tryInsertSnippet(id: string, modelVersionId: number, template: string, selections: readonly IRange[], opts: IUndoStopOptions): Promise<boolean>;
348
$getDiffInformation(id: string): Promise<IChange[]>;
349
}
350
351
export interface MainThreadTreeViewsShape extends IDisposable {
352
$registerTreeViewDataProvider(treeViewId: string, options: { showCollapseAll: boolean; canSelectMany: boolean; dropMimeTypes: readonly string[]; dragMimeTypes: readonly string[]; hasHandleDrag: boolean; hasHandleDrop: boolean; manuallyManageCheckboxes: boolean }): Promise<void>;
353
$refresh(treeViewId: string, itemsToRefresh?: { [treeItemHandle: string]: ITreeItem }): Promise<void>;
354
$reveal(treeViewId: string, itemInfo: { item: ITreeItem; parentChain: ITreeItem[] } | undefined, options: IRevealOptions): Promise<void>;
355
$setMessage(treeViewId: string, message: string | IMarkdownString): void;
356
$setTitle(treeViewId: string, title: string, description: string | undefined): void;
357
$setBadge(treeViewId: string, badge: IViewBadge | undefined): void;
358
$resolveDropFileData(destinationViewId: string, requestId: number, dataItemId: string): Promise<VSBuffer>;
359
$disposeTree(treeViewId: string): Promise<void>;
360
$logResolveTreeNodeFailure(extensionId: string): void;
361
}
362
363
export interface MainThreadDownloadServiceShape extends IDisposable {
364
$download(uri: UriComponents, to: UriComponents): Promise<void>;
365
}
366
367
export interface MainThreadErrorsShape extends IDisposable {
368
$onUnexpectedError(err: any | SerializedError): void;
369
}
370
371
export interface MainThreadConsoleShape extends IDisposable {
372
$logExtensionHostMessage(msg: IRemoteConsoleLog): void;
373
}
374
375
export interface IRegExpDto {
376
pattern: string;
377
flags?: string;
378
}
379
export interface IIndentationRuleDto {
380
decreaseIndentPattern: IRegExpDto;
381
increaseIndentPattern: IRegExpDto;
382
indentNextLinePattern?: IRegExpDto;
383
unIndentedLinePattern?: IRegExpDto;
384
}
385
export interface IOnEnterRuleDto {
386
beforeText: IRegExpDto;
387
afterText?: IRegExpDto;
388
previousLineText?: IRegExpDto;
389
action: EnterAction;
390
}
391
export interface ILanguageConfigurationDto {
392
comments?: CommentRule;
393
brackets?: CharacterPair[];
394
wordPattern?: IRegExpDto;
395
indentationRules?: IIndentationRuleDto;
396
onEnterRules?: IOnEnterRuleDto[];
397
__electricCharacterSupport?: {
398
brackets?: any;
399
docComment?: {
400
scope: string;
401
open: string;
402
lineStart: string;
403
close?: string;
404
};
405
};
406
__characterPairSupport?: {
407
autoClosingPairs: {
408
open: string;
409
close: string;
410
notIn?: string[];
411
}[];
412
};
413
autoClosingPairs?: {
414
open: string;
415
close: string;
416
notIn?: string[];
417
}[];
418
}
419
420
export type GlobPattern = string | IRelativePattern;
421
422
export interface IRelativePatternDto extends IRelativePattern {
423
baseUri: UriComponents;
424
}
425
426
export interface IDocumentFilterDto {
427
$serialized: true;
428
language?: string;
429
scheme?: string;
430
pattern?: string | IRelativePattern;
431
exclusive?: boolean;
432
notebookType?: string;
433
isBuiltin?: boolean;
434
}
435
436
export interface IShareableItemDto {
437
resourceUri: UriComponents;
438
selection?: IRange;
439
}
440
441
export interface IDocumentContextItemDto {
442
readonly uri: UriComponents;
443
readonly version: number;
444
readonly ranges: IRange[];
445
}
446
447
export interface IConversationItemDto {
448
readonly type: 'request' | 'response';
449
readonly message: string;
450
readonly references?: IDocumentContextItemDto[];
451
}
452
453
export interface IMappedEditsContextDto {
454
documents: IDocumentContextItemDto[][];
455
conversation?: IConversationItemDto[];
456
}
457
458
export interface ICodeBlockDto {
459
code: string;
460
resource: UriComponents;
461
}
462
463
export interface IMappedEditsRequestDto {
464
readonly codeBlocks: ICodeBlockDto[];
465
readonly conversation?: IConversationItemDto[];
466
}
467
468
export interface IMappedEditsResultDto {
469
readonly errorMessage?: string;
470
}
471
472
export interface ISignatureHelpProviderMetadataDto {
473
readonly triggerCharacters: readonly string[];
474
readonly retriggerCharacters: readonly string[];
475
}
476
477
export interface IdentifiableInlineCompletions extends languages.InlineCompletions<IdentifiableInlineCompletion> {
478
pid: number;
479
languageId: string;
480
}
481
482
export interface IdentifiableInlineCompletion extends languages.InlineCompletion {
483
idx: number;
484
suggestionId: EditSuggestionId | undefined;
485
}
486
487
export interface IInlineCompletionModelDto {
488
readonly id: string;
489
readonly name: string;
490
}
491
492
export interface IInlineCompletionModelInfoDto {
493
readonly models: IInlineCompletionModelDto[];
494
readonly currentModelId: string;
495
}
496
497
export interface IInlineCompletionChangeHintDto {
498
readonly data?: unknown;
499
}
500
501
export interface MainThreadLanguageFeaturesShape extends IDisposable {
502
$unregister(handle: number): void;
503
$registerDocumentSymbolProvider(handle: number, selector: IDocumentFilterDto[], label: string): void;
504
$registerCodeLensSupport(handle: number, selector: IDocumentFilterDto[], eventHandle: number | undefined): void;
505
$emitCodeLensEvent(eventHandle: number, event?: any): void;
506
$registerDefinitionSupport(handle: number, selector: IDocumentFilterDto[]): void;
507
$registerDeclarationSupport(handle: number, selector: IDocumentFilterDto[]): void;
508
$registerImplementationSupport(handle: number, selector: IDocumentFilterDto[]): void;
509
$registerTypeDefinitionSupport(handle: number, selector: IDocumentFilterDto[]): void;
510
$registerHoverProvider(handle: number, selector: IDocumentFilterDto[]): void;
511
$registerEvaluatableExpressionProvider(handle: number, selector: IDocumentFilterDto[]): void;
512
$registerInlineValuesProvider(handle: number, selector: IDocumentFilterDto[], eventHandle: number | undefined): void;
513
$emitInlineValuesEvent(eventHandle: number, event?: any): void;
514
$registerDocumentHighlightProvider(handle: number, selector: IDocumentFilterDto[]): void;
515
$registerMultiDocumentHighlightProvider(handle: number, selector: IDocumentFilterDto[]): void;
516
$registerLinkedEditingRangeProvider(handle: number, selector: IDocumentFilterDto[]): void;
517
$registerReferenceSupport(handle: number, selector: IDocumentFilterDto[]): void;
518
$registerCodeActionSupport(handle: number, selector: IDocumentFilterDto[], metadata: ICodeActionProviderMetadataDto, displayName: string, extensionID: string, supportsResolve: boolean): void;
519
$registerPasteEditProvider(handle: number, selector: IDocumentFilterDto[], metadata: IPasteEditProviderMetadataDto): void;
520
$registerDocumentFormattingSupport(handle: number, selector: IDocumentFilterDto[], extensionId: ExtensionIdentifier, displayName: string): void;
521
$registerRangeFormattingSupport(handle: number, selector: IDocumentFilterDto[], extensionId: ExtensionIdentifier, displayName: string, supportRanges: boolean): void;
522
$registerOnTypeFormattingSupport(handle: number, selector: IDocumentFilterDto[], autoFormatTriggerCharacters: string[], extensionId: ExtensionIdentifier): void;
523
$registerNavigateTypeSupport(handle: number, supportsResolve: boolean): void;
524
$registerRenameSupport(handle: number, selector: IDocumentFilterDto[], supportsResolveInitialValues: boolean): void;
525
$registerNewSymbolNamesProvider(handle: number, selector: IDocumentFilterDto[]): void;
526
$registerDocumentSemanticTokensProvider(handle: number, selector: IDocumentFilterDto[], legend: languages.SemanticTokensLegend, eventHandle: number | undefined): void;
527
$emitDocumentSemanticTokensEvent(eventHandle: number): void;
528
$registerDocumentRangeSemanticTokensProvider(handle: number, selector: IDocumentFilterDto[], legend: languages.SemanticTokensLegend, eventHandle: number | undefined): void;
529
$emitDocumentRangeSemanticTokensEvent(eventHandle: number): void;
530
$registerCompletionsProvider(handle: number, selector: IDocumentFilterDto[], triggerCharacters: string[], supportsResolveDetails: boolean, extensionId: ExtensionIdentifier): void;
531
$registerInlineCompletionsSupport(
532
handle: number,
533
selector: IDocumentFilterDto[],
534
supportsHandleEvents: boolean,
535
extensionId: string,
536
extensionVersion: string,
537
groupId: string | undefined,
538
yieldsToExtensionIds: string[],
539
displayName: string | undefined,
540
debounceDelayMs: number | undefined,
541
excludesExtensionIds: string[],
542
supportsSetModelId: boolean,
543
supportsOnDidChange: boolean,
544
initialModelInfo: IInlineCompletionModelInfoDto | undefined,
545
supportsOnDidChangeModelInfo: boolean,
546
): void;
547
$emitInlineCompletionsChange(handle: number, changeHint: IInlineCompletionChangeHintDto | undefined): void;
548
$emitInlineCompletionModelInfoChange(handle: number, data: IInlineCompletionModelInfoDto | undefined): void;
549
$registerSignatureHelpProvider(handle: number, selector: IDocumentFilterDto[], metadata: ISignatureHelpProviderMetadataDto): void;
550
$registerInlayHintsProvider(handle: number, selector: IDocumentFilterDto[], supportsResolve: boolean, eventHandle: number | undefined, displayName: string | undefined): void;
551
$emitInlayHintsEvent(eventHandle: number): void;
552
$registerDocumentLinkProvider(handle: number, selector: IDocumentFilterDto[], supportsResolve: boolean): void;
553
$registerDocumentColorProvider(handle: number, selector: IDocumentFilterDto[]): void;
554
$registerFoldingRangeProvider(handle: number, selector: IDocumentFilterDto[], extensionId: ExtensionIdentifier, eventHandle: number | undefined): void;
555
$emitFoldingRangeEvent(eventHandle: number, event?: any): void;
556
$registerSelectionRangeProvider(handle: number, selector: IDocumentFilterDto[]): void;
557
$registerCallHierarchyProvider(handle: number, selector: IDocumentFilterDto[]): void;
558
$registerTypeHierarchyProvider(handle: number, selector: IDocumentFilterDto[]): void;
559
$registerDocumentOnDropEditProvider(handle: number, selector: IDocumentFilterDto[], metadata?: IDocumentDropEditProviderMetadata): void;
560
$resolvePasteFileData(handle: number, requestId: number, dataId: string): Promise<VSBuffer>;
561
$resolveDocumentOnDropFileData(handle: number, requestId: number, dataId: string): Promise<VSBuffer>;
562
$setLanguageConfiguration(handle: number, languageId: string, configuration: ILanguageConfigurationDto): void;
563
}
564
565
export interface MainThreadLanguagesShape extends IDisposable {
566
$changeLanguage(resource: UriComponents, languageId: string): Promise<void>;
567
$tokensAtPosition(resource: UriComponents, position: IPosition): Promise<undefined | { type: StandardTokenType; range: IRange }>;
568
$setLanguageStatus(handle: number, status: ILanguageStatus): void;
569
$removeLanguageStatus(handle: number): void;
570
}
571
572
export interface MainThreadMessageOptions {
573
source?: { identifier: ExtensionIdentifier; label: string };
574
modal?: boolean;
575
detail?: string;
576
useCustom?: boolean;
577
}
578
579
export interface MainThreadMessageServiceShape extends IDisposable {
580
$showMessage(severity: Severity, message: string, options: MainThreadMessageOptions, commands: { title: string; isCloseAffordance: boolean; handle: number }[]): Promise<number | undefined>;
581
}
582
583
export interface MainThreadOutputServiceShape extends IDisposable {
584
$register(label: string, file: UriComponents, languageId: string | undefined, extensionId: string): Promise<string>;
585
$update(channelId: string, mode: OutputChannelUpdateMode, till?: number): Promise<void>;
586
$reveal(channelId: string, preserveFocus: boolean): Promise<void>;
587
$close(channelId: string): Promise<void>;
588
$dispose(channelId: string): Promise<void>;
589
}
590
591
export interface MainThreadProgressShape extends IDisposable {
592
593
$startProgress(handle: number, options: IProgressOptions, extensionId?: string): Promise<void>;
594
$progressReport(handle: number, message: IProgressStep): void;
595
$progressEnd(handle: number): void;
596
}
597
598
/**
599
* A terminal that is created on the extension host side is temporarily assigned
600
* a UUID by the extension host that created it. Once the renderer side has assigned
601
* a real numeric id, the numeric id will be used.
602
*
603
* All other terminals (that are not created on the extension host side) always
604
* use the numeric id.
605
*/
606
export type ExtHostTerminalIdentifier = number | string;
607
608
export interface TerminalLaunchConfig {
609
name?: string;
610
shellPath?: string;
611
shellArgs?: string[] | string;
612
cwd?: string | UriComponents;
613
env?: ITerminalEnvironment;
614
icon?: URI | { light: URI; dark: URI } | ThemeIcon;
615
color?: string;
616
initialText?: string;
617
waitOnExit?: boolean;
618
strictEnv?: boolean;
619
hideFromUser?: boolean;
620
isExtensionCustomPtyTerminal?: boolean;
621
forceShellIntegration?: boolean;
622
isFeatureTerminal?: boolean;
623
isExtensionOwnedTerminal?: boolean;
624
useShellEnvironment?: boolean;
625
location?: TerminalLocation | { viewColumn: number; preserveFocus?: boolean } | { parentTerminal: ExtHostTerminalIdentifier } | { splitActiveTerminal: boolean };
626
isTransient?: boolean;
627
shellIntegrationNonce?: string;
628
}
629
630
631
export interface MainThreadTerminalServiceShape extends IDisposable {
632
$createTerminal(extHostTerminalId: string, config: TerminalLaunchConfig): Promise<void>;
633
$dispose(id: ExtHostTerminalIdentifier): void;
634
$hide(id: ExtHostTerminalIdentifier): void;
635
$sendText(id: ExtHostTerminalIdentifier, text: string, shouldExecute: boolean): void;
636
$show(id: ExtHostTerminalIdentifier, preserveFocus: boolean): void;
637
$registerProcessSupport(isSupported: boolean): void;
638
$registerProfileProvider(id: string, extensionIdentifier: string): void;
639
$unregisterProfileProvider(id: string): void;
640
$registerCompletionProvider(id: string, extensionIdentifier: string, ...triggerCharacters: string[]): void;
641
$unregisterCompletionProvider(id: string): void;
642
$registerQuickFixProvider(id: string, extensionIdentifier: string): void;
643
$unregisterQuickFixProvider(id: string): void;
644
$setEnvironmentVariableCollection(extensionIdentifier: string, persistent: boolean, collection: ISerializableEnvironmentVariableCollection | undefined, descriptionMap: ISerializableEnvironmentDescriptionMap): void;
645
646
// Optional event toggles
647
$startSendingDataEvents(): void;
648
$stopSendingDataEvents(): void;
649
$startSendingCommandEvents(): void;
650
$stopSendingCommandEvents(): void;
651
$startLinkProvider(): void;
652
$stopLinkProvider(): void;
653
654
// Process
655
$sendProcessData(terminalId: number, data: string): void;
656
$sendProcessReady(terminalId: number, pid: number, cwd: string, windowsPty: IProcessReadyWindowsPty | undefined): void;
657
$sendProcessProperty(terminalId: number, property: IProcessProperty<any>): void;
658
$sendProcessExit(terminalId: number, exitCode: number | undefined): void;
659
}
660
661
export interface MainThreadTerminalShellIntegrationShape extends IDisposable {
662
$executeCommand(terminalId: number, commandLine: string): void;
663
}
664
665
export type TransferQuickPickItemOrSeparator = TransferQuickPickItem | quickInput.IQuickPickSeparator;
666
export interface TransferQuickPickItem {
667
handle: number;
668
669
// shared properties from IQuickPickItem
670
type?: 'item';
671
label: string;
672
iconPathDto?: IconPathDto;
673
description?: string;
674
detail?: string;
675
picked?: boolean;
676
alwaysShow?: boolean;
677
buttons?: TransferQuickInputButton[];
678
resourceUri?: UriComponents;
679
680
// TODO: These properties are not used for transfer (iconPathDto is used instead) but they cannot be removed
681
// because this type is used as IQuickPickItem on the main thread. Ideally IQuickPickItem should also use IconPath.
682
iconPath?: { light?: URI; dark: URI };
683
iconClass?: string;
684
}
685
686
export interface TransferQuickInputButton extends quickInput.IQuickInputButton {
687
handle: number;
688
iconPathDto: IconPathDto;
689
toggle?: { checked: boolean };
690
691
// TODO: These properties are not used for transfer (iconPathDto is used instead) but they cannot be removed
692
// because this type is used as IQuickInputButton on the main thread. Ideally IQuickInputButton should also use IconPath.
693
iconPath?: { light?: URI; dark: URI };
694
iconClass?: string;
695
}
696
697
export type TransferQuickInput = TransferQuickPick | TransferInputBox;
698
699
export interface BaseTransferQuickInput {
700
701
[key: string]: any;
702
703
id: number;
704
705
title?: string;
706
707
type?: 'quickPick' | 'inputBox';
708
709
enabled?: boolean;
710
711
busy?: boolean;
712
713
visible?: boolean;
714
}
715
716
export interface TransferQuickPick extends BaseTransferQuickInput {
717
718
type?: 'quickPick';
719
720
value?: string;
721
722
placeholder?: string;
723
724
prompt?: string;
725
726
buttons?: TransferQuickInputButton[];
727
728
items?: TransferQuickPickItemOrSeparator[];
729
730
activeItems?: number[];
731
732
selectedItems?: number[];
733
734
canSelectMany?: boolean;
735
736
ignoreFocusOut?: boolean;
737
738
matchOnDescription?: boolean;
739
740
matchOnDetail?: boolean;
741
742
sortByLabel?: boolean;
743
}
744
745
export interface TransferInputBox extends BaseTransferQuickInput {
746
747
type?: 'inputBox';
748
749
value?: string;
750
751
valueSelection?: Readonly<[number, number]>;
752
753
placeholder?: string;
754
755
password?: boolean;
756
757
buttons?: TransferQuickInputButton[];
758
759
prompt?: string;
760
761
validationMessage?: string;
762
}
763
764
export interface IInputBoxOptions {
765
title?: string;
766
value?: string;
767
valueSelection?: Readonly<[number, number]>;
768
prompt?: string;
769
placeHolder?: string;
770
password?: boolean;
771
ignoreFocusOut?: boolean;
772
}
773
774
export interface MainThreadQuickOpenShape extends IDisposable {
775
$show(instance: number, options: quickInput.IPickOptions<TransferQuickPickItem>, token: CancellationToken): Promise<number | number[] | undefined>;
776
$setItems(instance: number, items: TransferQuickPickItemOrSeparator[]): Promise<void>;
777
$setError(instance: number, error: Error): Promise<void>;
778
$input(options: IInputBoxOptions | undefined, validateInput: boolean, token: CancellationToken): Promise<string | undefined>;
779
$createOrUpdate(params: TransferQuickInput): Promise<void>;
780
$dispose(id: number): Promise<void>;
781
}
782
783
export interface MainThreadStatusBarShape extends IDisposable {
784
$setEntry(id: string, statusId: string, extensionId: string | undefined, statusName: string, text: string, tooltip: IMarkdownString | string | undefined, hasTooltipProvider: boolean, command: ICommandDto | undefined, color: string | ThemeColor | undefined, backgroundColor: string | ThemeColor | undefined, alignLeft: boolean, priority: number | undefined, accessibilityInformation: IAccessibilityInformation | undefined): void;
785
$disposeEntry(id: string): void;
786
}
787
788
export type StatusBarItemDto = {
789
entryId: string;
790
alignLeft: boolean;
791
priority?: number;
792
name: string;
793
text: string;
794
tooltip?: string;
795
command?: string;
796
accessibilityInformation?: IAccessibilityInformation;
797
};
798
799
export interface ExtHostStatusBarShape {
800
$acceptStaticEntries(added?: StatusBarItemDto[]): void;
801
$provideTooltip(entryId: string, cancellation: CancellationToken): Promise<string | IMarkdownString | undefined>;
802
}
803
804
export interface MainThreadStorageShape extends IDisposable {
805
$initializeExtensionStorage(shared: boolean, extensionId: string): Promise<string | undefined>;
806
$setValue(shared: boolean, extensionId: string, value: object): Promise<void>;
807
$registerExtensionStorageKeysToSync(extension: IExtensionIdWithVersion, keys: string[]): void;
808
}
809
810
export interface MainThreadTelemetryShape extends IDisposable {
811
$publicLog(eventName: string, data?: any): void;
812
$publicLog2<E extends ClassifiedEvent<OmitMetadata<T>> = never, T extends IGDPRProperty = never>(eventName: string, data?: StrictPropertyCheck<T, E>): void;
813
}
814
815
export interface MainThreadEditorInsetsShape extends IDisposable {
816
$createEditorInset(handle: number, id: string, uri: UriComponents, line: number, height: number, options: IWebviewContentOptions, extensionId: ExtensionIdentifier, extensionLocation: UriComponents): Promise<void>;
817
$disposeEditorInset(handle: number): void;
818
819
$setHtml(handle: number, value: string): void;
820
$setOptions(handle: number, options: IWebviewContentOptions): void;
821
$postMessage(handle: number, value: any): Promise<boolean>;
822
}
823
824
export interface ExtHostEditorInsetsShape {
825
$onDidDispose(handle: number): void;
826
$onDidReceiveMessage(handle: number, message: any): void;
827
}
828
829
//#region --- tabs model
830
831
export const enum TabInputKind {
832
UnknownInput,
833
TextInput,
834
TextDiffInput,
835
TextMergeInput,
836
NotebookInput,
837
NotebookDiffInput,
838
CustomEditorInput,
839
WebviewEditorInput,
840
TerminalEditorInput,
841
InteractiveEditorInput,
842
ChatEditorInput,
843
MultiDiffEditorInput
844
}
845
846
export const enum TabModelOperationKind {
847
TAB_OPEN,
848
TAB_CLOSE,
849
TAB_UPDATE,
850
TAB_MOVE
851
}
852
853
export interface UnknownInputDto {
854
kind: TabInputKind.UnknownInput;
855
}
856
857
export interface TextInputDto {
858
kind: TabInputKind.TextInput;
859
uri: UriComponents;
860
}
861
862
export interface TextDiffInputDto {
863
kind: TabInputKind.TextDiffInput;
864
original: UriComponents;
865
modified: UriComponents;
866
}
867
868
export interface TextMergeInputDto {
869
kind: TabInputKind.TextMergeInput;
870
base: UriComponents;
871
input1: UriComponents;
872
input2: UriComponents;
873
result: UriComponents;
874
}
875
876
export interface NotebookInputDto {
877
kind: TabInputKind.NotebookInput;
878
notebookType: string;
879
uri: UriComponents;
880
}
881
882
export interface NotebookDiffInputDto {
883
kind: TabInputKind.NotebookDiffInput;
884
notebookType: string;
885
original: UriComponents;
886
modified: UriComponents;
887
}
888
889
export interface CustomInputDto {
890
kind: TabInputKind.CustomEditorInput;
891
viewType: string;
892
uri: UriComponents;
893
}
894
895
export interface WebviewInputDto {
896
kind: TabInputKind.WebviewEditorInput;
897
viewType: string;
898
}
899
900
export interface InteractiveEditorInputDto {
901
kind: TabInputKind.InteractiveEditorInput;
902
uri: UriComponents;
903
inputBoxUri: UriComponents;
904
}
905
906
export interface ChatEditorInputDto {
907
kind: TabInputKind.ChatEditorInput;
908
}
909
910
export interface MultiDiffEditorInputDto {
911
kind: TabInputKind.MultiDiffEditorInput;
912
diffEditors: TextDiffInputDto[];
913
}
914
915
export interface TabInputDto {
916
kind: TabInputKind.TerminalEditorInput;
917
}
918
919
export type AnyInputDto = UnknownInputDto | TextInputDto | TextDiffInputDto | MultiDiffEditorInputDto | TextMergeInputDto | NotebookInputDto | NotebookDiffInputDto | CustomInputDto | WebviewInputDto | InteractiveEditorInputDto | ChatEditorInputDto | TabInputDto;
920
921
export interface MainThreadEditorTabsShape extends IDisposable {
922
// manage tabs: move, close, rearrange etc
923
$moveTab(tabId: string, index: number, viewColumn: EditorGroupColumn, preserveFocus?: boolean): void;
924
$closeTab(tabIds: string[], preserveFocus?: boolean): Promise<boolean>;
925
$closeGroup(groupIds: number[], preservceFocus?: boolean): Promise<boolean>;
926
}
927
928
export interface IEditorTabGroupDto {
929
isActive: boolean;
930
viewColumn: EditorGroupColumn;
931
// Decided not to go with simple index here due to opening and closing causing index shifts
932
// This allows us to patch the model without having to do full rebuilds
933
tabs: IEditorTabDto[];
934
groupId: number;
935
}
936
937
export interface TabOperation {
938
readonly kind: TabModelOperationKind.TAB_OPEN | TabModelOperationKind.TAB_CLOSE | TabModelOperationKind.TAB_UPDATE | TabModelOperationKind.TAB_MOVE;
939
// TODO @lramos15 Possibly get rid of index for tab update, it's only needed for open and close
940
readonly index: number;
941
readonly tabDto: IEditorTabDto;
942
readonly groupId: number;
943
readonly oldIndex?: number;
944
}
945
946
export interface IEditorTabDto {
947
id: string;
948
label: string;
949
input: AnyInputDto;
950
editorId?: string;
951
isActive: boolean;
952
isPinned: boolean;
953
isPreview: boolean;
954
isDirty: boolean;
955
}
956
957
export interface IExtHostEditorTabsShape {
958
// Accepts a whole new model
959
$acceptEditorTabModel(tabGroups: IEditorTabGroupDto[]): void;
960
// Only when group property changes (not the tabs inside)
961
$acceptTabGroupUpdate(groupDto: IEditorTabGroupDto): void;
962
// When a tab is added, removed, or updated
963
$acceptTabOperation(operation: TabOperation): void;
964
}
965
966
//#endregion
967
968
export type WebviewHandle = string;
969
970
export interface WebviewPanelShowOptions {
971
readonly viewColumn?: EditorGroupColumn;
972
readonly preserveFocus?: boolean;
973
}
974
975
export interface WebviewExtensionDescription {
976
readonly id: ExtensionIdentifier;
977
readonly location: UriComponents;
978
}
979
980
export enum WebviewEditorCapabilities {
981
Editable,
982
SupportsHotExit,
983
}
984
985
export interface IWebviewPortMapping {
986
readonly webviewPort: number;
987
readonly extensionHostPort: number;
988
}
989
990
export interface IWebviewContentOptions {
991
readonly enableScripts?: boolean;
992
readonly enableForms?: boolean;
993
readonly enableCommandUris?: boolean | readonly string[];
994
readonly localResourceRoots?: readonly UriComponents[];
995
readonly portMapping?: readonly IWebviewPortMapping[];
996
}
997
998
export interface IWebviewPanelOptions {
999
readonly enableFindWidget?: boolean;
1000
readonly retainContextWhenHidden?: boolean;
1001
}
1002
1003
export interface CustomTextEditorCapabilities {
1004
readonly supportsMove?: boolean;
1005
}
1006
1007
export const enum WebviewMessageArrayBufferViewType {
1008
Int8Array = 1,
1009
Uint8Array = 2,
1010
Uint8ClampedArray = 3,
1011
Int16Array = 4,
1012
Uint16Array = 5,
1013
Int32Array = 6,
1014
Uint32Array = 7,
1015
Float32Array = 8,
1016
Float64Array = 9,
1017
BigInt64Array = 10,
1018
BigUint64Array = 11,
1019
}
1020
1021
export interface WebviewMessageArrayBufferReference {
1022
readonly $$vscode_array_buffer_reference$$: true;
1023
1024
readonly index: number;
1025
1026
/**
1027
* Tracks if the reference is to a view instead of directly to an ArrayBuffer.
1028
*/
1029
readonly view?: {
1030
readonly type: WebviewMessageArrayBufferViewType;
1031
readonly byteLength: number;
1032
readonly byteOffset: number;
1033
};
1034
}
1035
1036
export interface MainThreadWebviewsShape extends IDisposable {
1037
$setHtml(handle: WebviewHandle, value: string): void;
1038
$setOptions(handle: WebviewHandle, options: IWebviewContentOptions): void;
1039
$postMessage(handle: WebviewHandle, value: string, ...buffers: VSBuffer[]): Promise<boolean>;
1040
}
1041
1042
export type IWebviewIconPath = ThemeIcon | {
1043
readonly light: UriComponents;
1044
readonly dark: UriComponents;
1045
};
1046
1047
export interface IWebviewInitData {
1048
readonly title: string;
1049
readonly webviewOptions: IWebviewContentOptions;
1050
readonly panelOptions: IWebviewPanelOptions;
1051
readonly serializeBuffersForPostMessage: boolean;
1052
}
1053
1054
export interface MainThreadWebviewPanelsShape extends IDisposable {
1055
$createWebviewPanel(
1056
extension: WebviewExtensionDescription,
1057
handle: WebviewHandle,
1058
viewType: string,
1059
initData: IWebviewInitData,
1060
showOptions: WebviewPanelShowOptions,
1061
): void;
1062
$disposeWebview(handle: WebviewHandle): void;
1063
$reveal(handle: WebviewHandle, showOptions: WebviewPanelShowOptions): void;
1064
$setTitle(handle: WebviewHandle, value: string): void;
1065
$setIconPath(handle: WebviewHandle, value: IWebviewIconPath | undefined): void;
1066
1067
$registerSerializer(viewType: string, options: { serializeBuffersForPostMessage: boolean }): void;
1068
$unregisterSerializer(viewType: string): void;
1069
}
1070
1071
export interface MainThreadCustomEditorsShape extends IDisposable {
1072
$registerTextEditorProvider(extension: WebviewExtensionDescription, viewType: string, options: IWebviewPanelOptions, capabilities: CustomTextEditorCapabilities, serializeBuffersForPostMessage: boolean): void;
1073
$registerCustomEditorProvider(extension: WebviewExtensionDescription, viewType: string, options: IWebviewPanelOptions, supportsMultipleEditorsPerDocument: boolean, serializeBuffersForPostMessage: boolean): void;
1074
$unregisterEditorProvider(viewType: string): void;
1075
1076
$onDidEdit(resource: UriComponents, viewType: string, editId: number, label: string | undefined): void;
1077
$onContentChange(resource: UriComponents, viewType: string): void;
1078
}
1079
1080
export interface MainThreadWebviewViewsShape extends IDisposable {
1081
$registerWebviewViewProvider(extension: WebviewExtensionDescription, viewType: string, options: { retainContextWhenHidden?: boolean; serializeBuffersForPostMessage: boolean }): void;
1082
$unregisterWebviewViewProvider(viewType: string): void;
1083
1084
$setWebviewViewTitle(handle: WebviewHandle, value: string | undefined): void;
1085
$setWebviewViewDescription(handle: WebviewHandle, value: string | undefined): void;
1086
$setWebviewViewBadge(handle: WebviewHandle, badge: IViewBadge | undefined): void;
1087
1088
$show(handle: WebviewHandle, preserveFocus: boolean): void;
1089
}
1090
1091
export interface WebviewPanelViewStateData {
1092
[handle: string]: {
1093
readonly active: boolean;
1094
readonly visible: boolean;
1095
readonly position: EditorGroupColumn;
1096
};
1097
}
1098
1099
export interface ExtHostWebviewsShape {
1100
$onMessage(handle: WebviewHandle, jsonSerializedMessage: string, buffers: SerializableObjectWithBuffers<VSBuffer[]>): void;
1101
$onMissingCsp(handle: WebviewHandle, extensionId: string): void;
1102
}
1103
1104
export interface ExtHostWebviewPanelsShape {
1105
$onDidChangeWebviewPanelViewStates(newState: WebviewPanelViewStateData): void;
1106
$onDidDisposeWebviewPanel(handle: WebviewHandle): Promise<void>;
1107
$deserializeWebviewPanel(
1108
newWebviewHandle: WebviewHandle,
1109
viewType: string,
1110
initData: {
1111
title: string;
1112
state: any;
1113
webviewOptions: IWebviewContentOptions;
1114
panelOptions: IWebviewPanelOptions;
1115
active: boolean;
1116
},
1117
position: EditorGroupColumn,
1118
): Promise<void>;
1119
}
1120
1121
export interface ExtHostCustomEditorsShape {
1122
$resolveCustomEditor(
1123
resource: UriComponents,
1124
newWebviewHandle: WebviewHandle,
1125
viewType: string,
1126
initData: {
1127
title: string;
1128
contentOptions: IWebviewContentOptions;
1129
options: IWebviewPanelOptions;
1130
active: boolean;
1131
},
1132
position: EditorGroupColumn,
1133
cancellation: CancellationToken
1134
): Promise<void>;
1135
$createCustomDocument(resource: UriComponents, viewType: string, backupId: string | undefined, untitledDocumentData: VSBuffer | undefined, cancellation: CancellationToken): Promise<{ editable: boolean }>;
1136
$disposeCustomDocument(resource: UriComponents, viewType: string): Promise<void>;
1137
1138
$undo(resource: UriComponents, viewType: string, editId: number, isDirty: boolean): Promise<void>;
1139
$redo(resource: UriComponents, viewType: string, editId: number, isDirty: boolean): Promise<void>;
1140
$revert(resource: UriComponents, viewType: string, cancellation: CancellationToken): Promise<void>;
1141
$disposeEdits(resourceComponents: UriComponents, viewType: string, editIds: number[]): void;
1142
1143
$onSave(resource: UriComponents, viewType: string, cancellation: CancellationToken): Promise<void>;
1144
$onSaveAs(resource: UriComponents, viewType: string, targetResource: UriComponents, cancellation: CancellationToken): Promise<void>;
1145
1146
$backup(resource: UriComponents, viewType: string, cancellation: CancellationToken): Promise<string>;
1147
1148
$onMoveCustomEditor(handle: WebviewHandle, newResource: UriComponents, viewType: string): Promise<void>;
1149
}
1150
1151
export interface ExtHostWebviewViewsShape {
1152
$resolveWebviewView(webviewHandle: WebviewHandle, viewType: string, title: string | undefined, state: any, cancellation: CancellationToken): Promise<void>;
1153
1154
$onDidChangeWebviewViewVisibility(webviewHandle: WebviewHandle, visible: boolean): void;
1155
1156
$disposeWebviewView(webviewHandle: WebviewHandle): void;
1157
}
1158
1159
export interface MainThreadManagedSocketsShape extends IDisposable {
1160
$registerSocketFactory(socketFactoryId: number): Promise<void>;
1161
$unregisterSocketFactory(socketFactoryId: number): Promise<void>;
1162
$onDidManagedSocketHaveData(socketId: number, data: VSBuffer): void;
1163
$onDidManagedSocketClose(socketId: number, error: string | undefined): void;
1164
$onDidManagedSocketEnd(socketId: number): void;
1165
}
1166
1167
export interface ExtHostManagedSocketsShape {
1168
$openRemoteSocket(socketFactoryId: number): Promise<number>;
1169
$remoteSocketWrite(socketId: number, buffer: VSBuffer): void;
1170
$remoteSocketEnd(socketId: number): void;
1171
$remoteSocketDrain(socketId: number): Promise<void>;
1172
}
1173
1174
export enum CellOutputKind {
1175
Text = 1,
1176
Error = 2,
1177
Rich = 3
1178
}
1179
1180
export enum NotebookEditorRevealType {
1181
Default = 0,
1182
InCenter = 1,
1183
InCenterIfOutsideViewport = 2,
1184
AtTop = 3
1185
}
1186
1187
export interface INotebookDocumentShowOptions {
1188
position?: EditorGroupColumn;
1189
preserveFocus?: boolean;
1190
pinned?: boolean;
1191
selections?: ICellRange[];
1192
label?: string;
1193
}
1194
1195
export type INotebookCellStatusBarEntryDto = Dto<notebookCommon.INotebookCellStatusBarItem>;
1196
1197
export interface INotebookCellStatusBarListDto {
1198
items: INotebookCellStatusBarEntryDto[];
1199
cacheId: number;
1200
}
1201
1202
export interface MainThreadNotebookShape extends IDisposable {
1203
$registerNotebookSerializer(handle: number, extension: notebookCommon.NotebookExtensionDescription, viewType: string, options: notebookCommon.TransientOptions, registration: notebookCommon.INotebookContributionData | undefined): void;
1204
$unregisterNotebookSerializer(handle: number): void;
1205
1206
$registerNotebookCellStatusBarItemProvider(handle: number, eventHandle: number | undefined, viewType: string): Promise<void>;
1207
$unregisterNotebookCellStatusBarItemProvider(handle: number, eventHandle: number | undefined): Promise<void>;
1208
$emitCellStatusBarEvent(eventHandle: number): void;
1209
}
1210
1211
export interface MainThreadNotebookEditorsShape extends IDisposable {
1212
$tryShowNotebookDocument(uriComponents: UriComponents, viewType: string, options: INotebookDocumentShowOptions): Promise<string>;
1213
$tryRevealRange(id: string, range: ICellRange, revealType: NotebookEditorRevealType): Promise<void>;
1214
$trySetSelections(id: string, range: ICellRange[]): void;
1215
}
1216
1217
export interface MainThreadNotebookDocumentsShape extends IDisposable {
1218
$tryCreateNotebook(options: { viewType: string; content?: NotebookDataDto }): Promise<UriComponents>;
1219
$tryOpenNotebook(uriComponents: UriComponents): Promise<UriComponents>;
1220
$trySaveNotebook(uri: UriComponents): Promise<boolean>;
1221
}
1222
1223
export interface INotebookKernelDto2 {
1224
id: string;
1225
notebookType: string;
1226
extensionId: ExtensionIdentifier;
1227
extensionLocation: UriComponents;
1228
label: string;
1229
detail?: string;
1230
description?: string;
1231
supportedLanguages?: string[];
1232
supportsInterrupt?: boolean;
1233
supportsExecutionOrder?: boolean;
1234
preloads?: { uri: UriComponents; provides: readonly string[] }[];
1235
hasVariableProvider?: boolean;
1236
}
1237
1238
export interface INotebookProxyKernelDto {
1239
id: string;
1240
notebookType: string;
1241
extensionId: ExtensionIdentifier;
1242
extensionLocation: UriComponents;
1243
label: string;
1244
detail?: string;
1245
description?: string;
1246
kind?: string;
1247
}
1248
1249
export interface ICellExecuteOutputEditDto {
1250
editType: CellExecutionUpdateType.Output;
1251
cellHandle: number;
1252
append?: boolean;
1253
outputs: NotebookOutputDto[];
1254
}
1255
1256
export interface ICellExecuteOutputItemEditDto {
1257
editType: CellExecutionUpdateType.OutputItems;
1258
append?: boolean;
1259
outputId: string;
1260
items: NotebookOutputItemDto[];
1261
}
1262
1263
export interface ICellExecutionStateUpdateDto extends ICellExecutionStateUpdate {
1264
}
1265
1266
export interface ICellExecutionCompleteDto extends ICellExecutionComplete {
1267
}
1268
1269
export type ICellExecuteUpdateDto = ICellExecuteOutputEditDto | ICellExecuteOutputItemEditDto | ICellExecutionStateUpdateDto;
1270
1271
export interface VariablesResult {
1272
id: number;
1273
name: string;
1274
value: string;
1275
type?: string;
1276
language?: string;
1277
expression?: string;
1278
hasNamedChildren: boolean;
1279
indexedChildrenCount: number;
1280
extensionId: string;
1281
}
1282
1283
export interface MainThreadNotebookKernelsShape extends IDisposable {
1284
$postMessage(handle: number, editorId: string | undefined, message: any): Promise<boolean>;
1285
$addKernel(handle: number, data: INotebookKernelDto2): Promise<void>;
1286
$updateKernel(handle: number, data: Partial<INotebookKernelDto2>): void;
1287
$removeKernel(handle: number): void;
1288
$updateNotebookPriority(handle: number, uri: UriComponents, value: number | undefined): void;
1289
1290
$createExecution(handle: number, controllerId: string, uri: UriComponents, cellHandle: number): void;
1291
$updateExecution(handle: number, data: SerializableObjectWithBuffers<ICellExecuteUpdateDto[]>): void;
1292
$completeExecution(handle: number, data: SerializableObjectWithBuffers<ICellExecutionCompleteDto>): void;
1293
1294
$createNotebookExecution(handle: number, controllerId: string, uri: UriComponents): void;
1295
$beginNotebookExecution(handle: number,): void;
1296
$completeNotebookExecution(handle: number): void;
1297
1298
$addKernelDetectionTask(handle: number, notebookType: string): Promise<void>;
1299
$removeKernelDetectionTask(handle: number): void;
1300
1301
$addKernelSourceActionProvider(handle: number, eventHandle: number, notebookType: string): Promise<void>;
1302
$removeKernelSourceActionProvider(handle: number, eventHandle: number): void;
1303
$emitNotebookKernelSourceActionsChangeEvent(eventHandle: number): void;
1304
$receiveVariable(requestId: string, variable: VariablesResult): void;
1305
$variablesUpdated(notebookUri: UriComponents): void;
1306
}
1307
1308
export interface MainThreadNotebookRenderersShape extends IDisposable {
1309
$postMessage(editorId: string | undefined, rendererId: string, message: unknown): Promise<boolean>;
1310
}
1311
1312
export interface MainThreadInteractiveShape extends IDisposable {
1313
}
1314
1315
export interface MainThreadSpeechShape extends IDisposable {
1316
$registerProvider(handle: number, identifier: string, metadata: ISpeechProviderMetadata): void;
1317
$unregisterProvider(handle: number): void;
1318
1319
$emitSpeechToTextEvent(session: number, event: ISpeechToTextEvent): void;
1320
$emitTextToSpeechEvent(session: number, event: ITextToSpeechEvent): void;
1321
$emitKeywordRecognitionEvent(session: number, event: IKeywordRecognitionEvent): void;
1322
}
1323
1324
export interface ExtHostSpeechShape {
1325
$createSpeechToTextSession(handle: number, session: number, language?: string): Promise<void>;
1326
$cancelSpeechToTextSession(session: number): Promise<void>;
1327
1328
$createTextToSpeechSession(handle: number, session: number, language?: string): Promise<void>;
1329
$synthesizeSpeech(session: number, text: string): Promise<void>;
1330
$cancelTextToSpeechSession(session: number): Promise<void>;
1331
1332
$createKeywordRecognitionSession(handle: number, session: number): Promise<void>;
1333
$cancelKeywordRecognitionSession(session: number): Promise<void>;
1334
}
1335
1336
export interface MainThreadLanguageModelsShape extends IDisposable {
1337
$registerLanguageModelProvider(vendor: string): void;
1338
$onLMProviderChange(vendor: string): void;
1339
$unregisterProvider(vendor: string): void;
1340
$tryStartChatRequest(extension: ExtensionIdentifier, modelIdentifier: string, requestId: number, messages: SerializableObjectWithBuffers<IChatMessage[]>, options: {}, token: CancellationToken): Promise<void>;
1341
$reportResponsePart(requestId: number, chunk: SerializableObjectWithBuffers<IChatResponsePart | IChatResponsePart[]>): Promise<void>;
1342
$reportResponseDone(requestId: number, error: SerializedError | undefined): Promise<void>;
1343
$selectChatModels(selector: ILanguageModelChatSelector): Promise<string[]>;
1344
$countTokens(modelId: string, value: string | IChatMessage, token: CancellationToken): Promise<number>;
1345
$fileIsIgnored(uri: UriComponents, token: CancellationToken): Promise<boolean>;
1346
$registerFileIgnoreProvider(handle: number): void;
1347
$unregisterFileIgnoreProvider(handle: number): void;
1348
}
1349
1350
export interface ExtHostLanguageModelsShape {
1351
$provideLanguageModelChatInfo(vendor: string, options: ILanguageModelChatInfoOptions, token: CancellationToken): Promise<ILanguageModelChatMetadataAndIdentifier[]>;
1352
$updateModelAccesslist(data: { from: ExtensionIdentifier; to: ExtensionIdentifier; enabled: boolean }[]): void;
1353
$startChatRequest(modelId: string, requestId: number, from: ExtensionIdentifier, messages: SerializableObjectWithBuffers<IChatMessage[]>, options: { [name: string]: any }, token: CancellationToken): Promise<void>;
1354
$acceptResponsePart(requestId: number, chunk: SerializableObjectWithBuffers<IChatResponsePart | IChatResponsePart[]>): Promise<void>;
1355
$acceptResponseDone(requestId: number, error: SerializedError | undefined): Promise<void>;
1356
$provideTokenLength(modelId: string, value: string | IChatMessage, token: CancellationToken): Promise<number>;
1357
$isFileIgnored(handle: number, uri: UriComponents, token: CancellationToken): Promise<boolean>;
1358
}
1359
1360
export type IChatContextItemDto = Dto<IChatContextItem>;
1361
1362
export interface ExtHostChatContextShape {
1363
$provideWorkspaceChatContext(handle: number, token: CancellationToken): Promise<IChatContextItem[]>;
1364
$provideExplicitChatContext(handle: number, token: CancellationToken): Promise<IChatContextItem[]>;
1365
$resolveExplicitChatContext(handle: number, context: IChatContextItem, token: CancellationToken): Promise<IChatContextItem>;
1366
$provideResourceChatContext(handle: number, options: { resource: UriComponents; withValue: boolean }, token: CancellationToken): Promise<IChatContextItem | undefined>;
1367
$resolveResourceChatContext(handle: number, context: IChatContextItem, token: CancellationToken): Promise<IChatContextItem>;
1368
$executeChatContextItemCommand(itemHandle: number): Promise<void>;
1369
}
1370
1371
export interface MainThreadChatContextShape extends IDisposable {
1372
$registerChatWorkspaceContextProvider(handle: number, id: string): void;
1373
$registerChatExplicitContextProvider(handle: number, id: string): void;
1374
$registerChatResourceContextProvider(handle: number, id: string, selector: IDocumentFilterDto[]): void;
1375
$unregisterChatContextProvider(handle: number): void;
1376
$updateWorkspaceContextItems(handle: number, items: IChatContextItemDto[]): void;
1377
$executeChatContextItemCommand(itemHandle: number): Promise<void>;
1378
}
1379
1380
export interface MainThreadEmbeddingsShape extends IDisposable {
1381
$registerEmbeddingProvider(handle: number, identifier: string): void;
1382
$unregisterEmbeddingProvider(handle: number): void;
1383
$computeEmbeddings(embeddingsModel: string, input: string[], token: CancellationToken): Promise<({ values: number[] }[])>;
1384
}
1385
1386
export interface ExtHostEmbeddingsShape {
1387
$provideEmbeddings(handle: number, input: string[], token: CancellationToken): Promise<{ values: number[] }[]>;
1388
$acceptEmbeddingModels(models: string[]): void;
1389
}
1390
1391
export interface IExtensionChatAgentMetadata extends Dto<IChatAgentMetadata> {
1392
hasFollowups?: boolean;
1393
}
1394
1395
export interface IDynamicChatAgentProps {
1396
name: string;
1397
publisherName: string;
1398
description?: string;
1399
fullName?: string;
1400
}
1401
1402
export interface IChatAgentProgressShape {
1403
$handleProgressChunk(requestId: string, chunks: (IChatProgressDto | [IChatProgressDto, number])[]): Promise<void>;
1404
$handleAnchorResolve(requestId: string, handle: string, anchor: Dto<IChatContentInlineReference>): void;
1405
}
1406
1407
export interface MainThreadChatAgentsShape2 extends IChatAgentProgressShape, IDisposable {
1408
$registerAgent(handle: number, extension: ExtensionIdentifier, id: string, metadata: IExtensionChatAgentMetadata, dynamicProps: IDynamicChatAgentProps | undefined): void;
1409
$registerChatParticipantDetectionProvider(handle: number): void;
1410
$unregisterChatParticipantDetectionProvider(handle: number): void;
1411
$registerPromptFileProvider(handle: number, type: string, extension: ExtensionIdentifier): void;
1412
$unregisterPromptFileProvider(handle: number): void;
1413
$onDidChangePromptFiles(handle: number): void;
1414
$registerAgentCompletionsProvider(handle: number, id: string, triggerCharacters: string[]): void;
1415
$unregisterAgentCompletionsProvider(handle: number, id: string): void;
1416
$updateAgent(handle: number, metadataUpdate: IExtensionChatAgentMetadata): void;
1417
$unregisterAgent(handle: number): void;
1418
1419
$transferActiveChatSession(toWorkspace: UriComponents): Promise<void>;
1420
}
1421
1422
export interface ICodeMapperTextEdit {
1423
uri: URI;
1424
edits: languages.TextEdit[];
1425
}
1426
1427
export interface ICodeMapperNotebookEditDto {
1428
uri: URI;
1429
edits: ICellEditOperationDto[];
1430
}
1431
1432
export type ICodeMapperProgressDto = Dto<ICodeMapperTextEdit> | Dto<ICodeMapperNotebookEditDto>;
1433
1434
export interface MainThreadCodeMapperShape extends IDisposable {
1435
$registerCodeMapperProvider(handle: number, displayName: string): void;
1436
$unregisterCodeMapperProvider(handle: number): void;
1437
$handleProgress(requestId: string, data: ICodeMapperProgressDto): Promise<void>;
1438
}
1439
1440
export interface IChatAgentCompletionItem {
1441
id: string;
1442
fullName?: string;
1443
icon?: string;
1444
insertText?: string;
1445
label: string | languages.CompletionItemLabel;
1446
value: IChatRequestVariableValueDto;
1447
detail?: string;
1448
documentation?: string | IMarkdownString;
1449
command?: ICommandDto;
1450
}
1451
1452
export type IChatContentProgressDto =
1453
| Dto<Exclude<IChatProgressHistoryResponseContent, IChatTask | IChatMultiDiffData>>
1454
| IChatMultiDiffDataSerialized
1455
| IChatTaskDto;
1456
1457
export type IChatAgentHistoryEntryDto = {
1458
request: IChatAgentRequest;
1459
response: ReadonlyArray<IChatContentProgressDto>;
1460
result: IChatAgentResult;
1461
};
1462
1463
export interface IChatSessionContextDto {
1464
readonly chatSessionResource: UriComponents;
1465
readonly isUntitled: boolean;
1466
}
1467
1468
export interface ExtHostChatAgentsShape2 {
1469
$invokeAgent(handle: number, request: Dto<IChatAgentRequest>, context: { history: IChatAgentHistoryEntryDto[]; chatSessionContext?: IChatSessionContextDto }, token: CancellationToken): Promise<IChatAgentResult | undefined>;
1470
$provideFollowups(request: Dto<IChatAgentRequest>, handle: number, result: IChatAgentResult, context: { history: IChatAgentHistoryEntryDto[] }, token: CancellationToken): Promise<IChatFollowup[]>;
1471
$acceptFeedback(handle: number, result: IChatAgentResult, voteAction: IChatVoteAction): void;
1472
$handleQuestionCarouselAnswer(requestId: string, resolveId: string, answers: Record<string, unknown> | undefined): void;
1473
$acceptAction(handle: number, result: IChatAgentResult, action: IChatUserActionEvent): void;
1474
$invokeCompletionProvider(handle: number, query: string, token: CancellationToken): Promise<IChatAgentCompletionItem[]>;
1475
$provideChatTitle(handle: number, context: IChatAgentHistoryEntryDto[], token: CancellationToken): Promise<string | undefined>;
1476
$provideChatSummary(handle: number, context: IChatAgentHistoryEntryDto[], token: CancellationToken): Promise<string | undefined>;
1477
$releaseSession(sessionResource: UriComponents): void;
1478
$detectChatParticipant(handle: number, request: Dto<IChatAgentRequest>, context: { history: IChatAgentHistoryEntryDto[] }, options: { participants: IChatParticipantMetadata[]; location: ChatAgentLocation }, token: CancellationToken): Promise<IChatParticipantDetectionResult | null | undefined>;
1479
$providePromptFiles(handle: number, type: PromptsType, context: IPromptFileContext, token: CancellationToken): Promise<Dto<IPromptFileResource>[] | undefined>;
1480
$setRequestTools(requestId: string, tools: UserSelectedTools): void;
1481
$setYieldRequested(requestId: string): void;
1482
}
1483
export interface IChatParticipantMetadata {
1484
participant: string;
1485
command?: string;
1486
disambiguation: { category: string; description: string; examples: string[] }[];
1487
}
1488
1489
export interface IChatParticipantDetectionResult {
1490
participant: string;
1491
command?: string;
1492
}
1493
1494
export interface IToolDataDto {
1495
id: string;
1496
toolReferenceName?: string;
1497
legacyToolReferenceFullNames?: readonly string[];
1498
tags?: readonly string[];
1499
displayName: string;
1500
userDescription?: string;
1501
modelDescription: string;
1502
source: Dto<ToolDataSource>;
1503
inputSchema?: IJSONSchema;
1504
}
1505
1506
export interface ILanguageModelChatSelectorDto {
1507
vendor?: string;
1508
family?: string;
1509
version?: string;
1510
id?: string;
1511
}
1512
1513
export interface IToolDefinitionDto extends IToolDataDto {
1514
icon?: IconPathDto;
1515
models?: ILanguageModelChatSelectorDto[];
1516
toolSet?: string;
1517
}
1518
1519
export interface MainThreadLanguageModelToolsShape extends IDisposable {
1520
$getTools(): Promise<Dto<IToolDataDto>[]>;
1521
$acceptToolProgress(callId: string, progress: IToolProgressStep): void;
1522
$invokeTool(dto: Dto<IToolInvocation>, token?: CancellationToken): Promise<Dto<IToolResult> | SerializableObjectWithBuffers<Dto<IToolResult>>>;
1523
$countTokensForInvocation(callId: string, input: string, token: CancellationToken): Promise<number>;
1524
$registerTool(id: string, hasHandleToolStream: boolean): void;
1525
$registerToolWithDefinition(extensionId: ExtensionIdentifier, definition: IToolDefinitionDto, hasHandleToolStream: boolean): void;
1526
$unregisterTool(name: string): void;
1527
}
1528
1529
export type IChatRequestVariableValueDto = Dto<IChatRequestVariableValue>;
1530
1531
export interface ExtHostLanguageModelToolsShape {
1532
$onDidChangeTools(tools: IToolDataDto[]): void;
1533
$invokeTool(dto: Dto<IToolInvocation>, token: CancellationToken): Promise<Dto<IToolResult> | SerializableObjectWithBuffers<Dto<IToolResult>>>;
1534
$countTokensForInvocation(callId: string, input: string, token: CancellationToken): Promise<number>;
1535
1536
$handleToolStream(toolId: string, context: IToolInvocationStreamContext, token: CancellationToken): Promise<IStreamedToolInvocation | undefined>;
1537
$prepareToolInvocation(toolId: string, context: IToolInvocationPreparationContext, token: CancellationToken): Promise<IPreparedToolInvocation | undefined>;
1538
}
1539
1540
export interface MainThreadUrlsShape extends IDisposable {
1541
$registerUriHandler(handle: number, extensionId: ExtensionIdentifier, extensionDisplayName: string): Promise<void>;
1542
$unregisterUriHandler(handle: number): Promise<void>;
1543
$createAppUri(uri: UriComponents): Promise<UriComponents>;
1544
}
1545
1546
export interface IChatResponseProgressFileTreeData {
1547
label: string;
1548
uri: URI;
1549
children?: IChatResponseProgressFileTreeData[];
1550
}
1551
1552
export type IDocumentContextDto = {
1553
uri: UriComponents;
1554
version: number;
1555
ranges: IRange[];
1556
};
1557
1558
export type IChatProgressDto =
1559
| Dto<Exclude<IChatProgress, IChatTask | IChatNotebookEdit>>
1560
| IChatTaskDto
1561
| IChatNotebookEditDto
1562
| IChatExternalEditsDto
1563
| IChatResponseClearToPreviousToolInvocationDto
1564
| IChatBeginToolInvocationDto
1565
| IChatUpdateToolInvocationDto
1566
| IChatUsageDto;
1567
1568
export interface ExtHostUrlsShape {
1569
$handleExternalUri(handle: number, uri: UriComponents): Promise<void>;
1570
}
1571
1572
export interface MainThreadUriOpenersShape extends IDisposable {
1573
$registerUriOpener(id: string, schemes: readonly string[], extensionId: ExtensionIdentifier, label: string): Promise<void>;
1574
$unregisterUriOpener(id: string): Promise<void>;
1575
}
1576
1577
export interface ExtHostUriOpenersShape {
1578
$canOpenUri(id: string, uri: UriComponents, token: CancellationToken): Promise<languages.ExternalUriOpenerPriority>;
1579
$openUri(id: string, context: { resolvedUri: UriComponents; sourceUri: UriComponents }, token: CancellationToken): Promise<void>;
1580
}
1581
1582
export interface MainThreadChatOutputRendererShape extends IDisposable {
1583
$registerChatOutputRenderer(viewType: string, extensionId: ExtensionIdentifier, extensionLocation: UriComponents): void;
1584
$unregisterChatOutputRenderer(viewType: string): void;
1585
}
1586
1587
export interface ExtHostChatOutputRendererShape {
1588
$renderChatOutput(viewType: string, mime: string, valueData: VSBuffer, webviewHandle: string, token: CancellationToken): Promise<void>;
1589
}
1590
1591
export interface MainThreadProfileContentHandlersShape {
1592
$registerProfileContentHandler(id: string, name: string, description: string | undefined, extensionId: string): Promise<void>;
1593
$unregisterProfileContentHandler(id: string): Promise<void>;
1594
}
1595
1596
export interface ExtHostProfileContentHandlersShape {
1597
$saveProfile(id: string, name: string, content: string, token: CancellationToken): Promise<UriDto<ISaveProfileResult> | null>;
1598
$readProfile(id: string, idOrUri: string | UriComponents, token: CancellationToken): Promise<string | null>;
1599
}
1600
1601
export interface ITextSearchComplete {
1602
limitHit?: boolean;
1603
message?: TextSearchCompleteMessage | TextSearchCompleteMessage[];
1604
}
1605
1606
export interface ResourceTrustRequestOptionsDto {
1607
readonly uri: UriComponents;
1608
readonly message?: string;
1609
}
1610
1611
export interface MainThreadWorkspaceShape extends IDisposable {
1612
$startFileSearch(includeFolder: UriComponents | null, options: IFileQueryBuilderOptions, token: CancellationToken): Promise<UriComponents[] | null>;
1613
$startTextSearch(query: search.IPatternInfo, folder: UriComponents | null, options: ITextQueryBuilderOptions, requestId: number, token: CancellationToken): Promise<ITextSearchComplete | null>;
1614
$checkExists(folders: readonly UriComponents[], includes: string[], token: CancellationToken): Promise<boolean>;
1615
$save(uri: UriComponents, options: { saveAs: boolean }): Promise<UriComponents | undefined>;
1616
$saveAll(includeUntitled?: boolean): Promise<boolean>;
1617
$updateWorkspaceFolders(extensionName: string, index: number, deleteCount: number, workspaceFoldersToAdd: { uri: UriComponents; name?: string }[]): Promise<void>;
1618
$resolveProxy(url: string): Promise<string | undefined>;
1619
$lookupAuthorization(authInfo: AuthInfo): Promise<Credentials | undefined>;
1620
$lookupKerberosAuthorization(url: string): Promise<string | undefined>;
1621
$loadCertificates(): Promise<string[]>;
1622
$requestResourceTrust(options: ResourceTrustRequestOptionsDto): Promise<boolean | undefined>;
1623
$requestWorkspaceTrust(options?: WorkspaceTrustRequestOptions): Promise<boolean | undefined>;
1624
$isResourceTrusted(resource: UriComponents): Promise<boolean>;
1625
$registerEditSessionIdentityProvider(handle: number, scheme: string): void;
1626
$unregisterEditSessionIdentityProvider(handle: number): void;
1627
$registerCanonicalUriProvider(handle: number, scheme: string): void;
1628
$unregisterCanonicalUriProvider(handle: number): void;
1629
$resolveDecoding(resource: UriComponents | undefined, options?: { encoding?: string }): Promise<{ preferredEncoding: string; guessEncoding: boolean; candidateGuessEncodings: string[] }>;
1630
$validateDetectedEncoding(resource: UriComponents | undefined, detectedEncoding: string, options?: { encoding?: string }): Promise<string>;
1631
$resolveEncoding(resource: UriComponents | undefined, options?: { encoding?: string }): Promise<{ encoding: string; addBOM: boolean }>;
1632
}
1633
1634
export interface IFileChangeDto {
1635
resource: UriComponents;
1636
type: files.FileChangeType;
1637
}
1638
1639
export interface MainThreadFileSystemShape extends IDisposable {
1640
$registerFileSystemProvider(handle: number, scheme: string, capabilities: files.FileSystemProviderCapabilities, readonlyMessage?: IMarkdownString): Promise<void>;
1641
$unregisterProvider(handle: number): void;
1642
$onFileSystemChange(handle: number, resource: IFileChangeDto[]): void;
1643
1644
$stat(resource: UriComponents): Promise<files.IStat>;
1645
$readdir(resource: UriComponents): Promise<[string, files.FileType][]>;
1646
$readFile(resource: UriComponents): Promise<VSBuffer>;
1647
$writeFile(resource: UriComponents, content: VSBuffer): Promise<void>;
1648
$rename(resource: UriComponents, target: UriComponents, opts: files.IFileOverwriteOptions): Promise<void>;
1649
$copy(resource: UriComponents, target: UriComponents, opts: files.IFileOverwriteOptions): Promise<void>;
1650
$mkdir(resource: UriComponents): Promise<void>;
1651
$delete(resource: UriComponents, opts: files.IFileDeleteOptions): Promise<void>;
1652
1653
$ensureActivation(scheme: string): Promise<void>;
1654
}
1655
1656
export interface MainThreadFileSystemEventServiceShape extends IDisposable {
1657
$watch(extensionId: string, session: number, resource: UriComponents, opts: files.IWatchOptions, correlate: boolean): void;
1658
$unwatch(session: number): void;
1659
}
1660
1661
export interface MainThreadLabelServiceShape extends IDisposable {
1662
$registerResourceLabelFormatter(handle: number, formatter: ResourceLabelFormatter): void;
1663
$unregisterResourceLabelFormatter(handle: number): void;
1664
}
1665
1666
export interface MainThreadSearchShape extends IDisposable {
1667
$registerFileSearchProvider(handle: number, scheme: string): void;
1668
$registerAITextSearchProvider(handle: number, scheme: string): void;
1669
$registerTextSearchProvider(handle: number, scheme: string): void;
1670
$unregisterProvider(handle: number): void;
1671
$handleFileMatch(handle: number, session: number, data: UriComponents[]): void;
1672
$handleTextMatch(handle: number, session: number, data: search.IRawFileMatch2[]): void;
1673
$handleKeywordResult(handle: number, session: number, data: AISearchKeyword): void;
1674
$handleTelemetry(eventName: string, data: any): void;
1675
}
1676
1677
export interface MainThreadShareShape extends IDisposable {
1678
$registerShareProvider(handle: number, selector: IDocumentFilterDto[], id: string, label: string, priority: number): void;
1679
$unregisterShareProvider(handle: number): void;
1680
}
1681
1682
export interface MainThreadTaskShape extends IDisposable {
1683
$createTaskId(task: tasks.ITaskDTO): Promise<string>;
1684
$registerTaskProvider(handle: number, type: string): Promise<void>;
1685
$unregisterTaskProvider(handle: number): Promise<void>;
1686
$fetchTasks(filter?: tasks.ITaskFilterDTO): Promise<tasks.ITaskDTO[]>;
1687
$getTaskExecution(value: tasks.ITaskHandleDTO | tasks.ITaskDTO): Promise<tasks.ITaskExecutionDTO>;
1688
$executeTask(task: tasks.ITaskHandleDTO | tasks.ITaskDTO): Promise<tasks.ITaskExecutionDTO>;
1689
$terminateTask(id: string): Promise<void>;
1690
$registerTaskSystem(scheme: string, info: tasks.ITaskSystemInfoDTO): void;
1691
$customExecutionComplete(id: string, result?: number): Promise<void>;
1692
$registerSupportedExecutions(custom?: boolean, shell?: boolean, process?: boolean): Promise<void>;
1693
}
1694
1695
export interface MainThreadExtensionServiceShape extends IDisposable {
1696
$getExtension(extensionId: string): Promise<Dto<IExtensionDescription> | undefined>;
1697
$activateExtension(extensionId: ExtensionIdentifier, reason: ExtensionActivationReason): Promise<void>;
1698
$onWillActivateExtension(extensionId: ExtensionIdentifier): Promise<void>;
1699
$onDidActivateExtension(extensionId: ExtensionIdentifier, codeLoadingTime: number, activateCallTime: number, activateResolvedTime: number, activationReason: ExtensionActivationReason): void;
1700
$onExtensionActivationError(extensionId: ExtensionIdentifier, error: SerializedError, missingExtensionDependency: MissingExtensionDependency | null): Promise<void>;
1701
$onExtensionRuntimeError(extensionId: ExtensionIdentifier, error: SerializedError): void;
1702
$setPerformanceMarks(marks: performance.PerformanceMark[]): Promise<void>;
1703
$asBrowserUri(uri: UriComponents): Promise<UriComponents>;
1704
}
1705
1706
export interface SCMProviderFeatures {
1707
hasArtifactProvider?: boolean;
1708
hasHistoryProvider?: boolean;
1709
hasQuickDiffProvider?: boolean;
1710
quickDiffLabel?: string;
1711
hasSecondaryQuickDiffProvider?: boolean;
1712
secondaryQuickDiffLabel?: string;
1713
count?: number;
1714
commitTemplate?: string;
1715
acceptInputCommand?: languages.Command;
1716
actionButton?: SCMActionButtonDto | null;
1717
statusBarCommands?: ICommandDto[];
1718
contextValue?: string;
1719
}
1720
1721
export interface SCMActionButtonDto {
1722
command: ICommandDto & { shortTitle?: string };
1723
secondaryCommands?: ICommandDto[][];
1724
enabled: boolean;
1725
}
1726
1727
export interface SCMGroupFeatures {
1728
hideWhenEmpty?: boolean;
1729
contextValue?: string;
1730
}
1731
1732
export type SCMRawResource = [
1733
number /*handle*/,
1734
UriComponents /*resourceUri*/,
1735
[UriComponents | ThemeIcon | undefined, UriComponents | ThemeIcon | undefined] /*icons: light, dark*/,
1736
string /*tooltip*/,
1737
boolean /*strike through*/,
1738
boolean /*faded*/,
1739
string /*context value*/,
1740
ICommandDto | undefined /*command*/,
1741
UriComponents | undefined /* multiFileDiffEditorOriginalUri */,
1742
UriComponents | undefined /* multiFileDiffEditorModifiedUri */,
1743
];
1744
1745
export type SCMRawResourceSplice = [
1746
number /* start */,
1747
number /* delete count */,
1748
SCMRawResource[]
1749
];
1750
1751
export type SCMRawResourceSplices = [
1752
number, /*handle*/
1753
SCMRawResourceSplice[]
1754
];
1755
1756
export interface SCMHistoryItemRefDto {
1757
readonly id: string;
1758
readonly name: string;
1759
readonly revision?: string;
1760
readonly category?: string;
1761
readonly description?: string;
1762
readonly icon?: IconPathDto;
1763
}
1764
1765
export interface SCMHistoryItemRefsChangeEventDto {
1766
readonly added: readonly SCMHistoryItemRefDto[];
1767
readonly modified: readonly SCMHistoryItemRefDto[];
1768
readonly removed: readonly SCMHistoryItemRefDto[];
1769
readonly silent: boolean;
1770
}
1771
1772
export interface SCMHistoryItemDto {
1773
readonly id: string;
1774
readonly parentIds: string[];
1775
readonly subject: string;
1776
readonly message: string;
1777
readonly displayId?: string;
1778
readonly author?: string;
1779
readonly authorIcon?: IconPathDto;
1780
readonly authorEmail?: string;
1781
readonly timestamp?: number;
1782
readonly statistics?: {
1783
readonly files: number;
1784
readonly insertions: number;
1785
readonly deletions: number;
1786
};
1787
readonly references?: SCMHistoryItemRefDto[];
1788
readonly tooltip?: IMarkdownString | Array<IMarkdownString> | undefined;
1789
}
1790
1791
export interface SCMHistoryItemChangeDto {
1792
readonly uri: UriComponents;
1793
readonly originalUri: UriComponents | undefined;
1794
readonly modifiedUri: UriComponents | undefined;
1795
}
1796
1797
export interface SCMArtifactGroupDto {
1798
readonly id: string;
1799
readonly name: string;
1800
readonly icon?: UriComponents | { light: UriComponents; dark: UriComponents } | ThemeIcon;
1801
readonly supportsFolders?: boolean;
1802
}
1803
1804
export interface SCMArtifactDto {
1805
readonly id: string;
1806
readonly name: string;
1807
readonly description?: string;
1808
readonly icon?: UriComponents | { light: UriComponents; dark: UriComponents } | ThemeIcon;
1809
readonly timestamp?: number;
1810
readonly command?: ICommandDto;
1811
}
1812
1813
export interface MainThreadSCMShape extends IDisposable {
1814
$registerSourceControl(handle: number, parentHandle: number | undefined, id: string, label: string, rootUri: UriComponents | undefined, iconPath: IconPathDto | undefined, isHidden: boolean | undefined, inputBoxDocumentUri: UriComponents): Promise<void>;
1815
$updateSourceControl(handle: number, features: SCMProviderFeatures): Promise<void>;
1816
$unregisterSourceControl(handle: number): Promise<void>;
1817
1818
$registerGroups(sourceControlHandle: number, groups: [number /*handle*/, string /*id*/, string /*label*/, SCMGroupFeatures, /* multiDiffEditorEnableViewChanges */ boolean][], splices: SCMRawResourceSplices[]): Promise<void>;
1819
$updateGroup(sourceControlHandle: number, handle: number, features: SCMGroupFeatures): Promise<void>;
1820
$updateGroupLabel(sourceControlHandle: number, handle: number, label: string): Promise<void>;
1821
$unregisterGroup(sourceControlHandle: number, handle: number): Promise<void>;
1822
1823
$spliceResourceStates(sourceControlHandle: number, splices: SCMRawResourceSplices[]): Promise<void>;
1824
1825
$setInputBoxValue(sourceControlHandle: number, value: string): Promise<void>;
1826
$setInputBoxPlaceholder(sourceControlHandle: number, placeholder: string): Promise<void>;
1827
$setInputBoxEnablement(sourceControlHandle: number, enabled: boolean): Promise<void>;
1828
$setInputBoxVisibility(sourceControlHandle: number, visible: boolean): Promise<void>;
1829
$showValidationMessage(sourceControlHandle: number, message: string | IMarkdownString, type: InputValidationType): Promise<void>;
1830
$setValidationProviderIsEnabled(sourceControlHandle: number, enabled: boolean): Promise<void>;
1831
1832
$onDidChangeHistoryProviderCurrentHistoryItemRefs(sourceControlHandle: number, historyItemRef?: SCMHistoryItemRefDto, historyItemRemoteRef?: SCMHistoryItemRefDto, historyItemBaseRef?: SCMHistoryItemRefDto): Promise<void>;
1833
$onDidChangeHistoryProviderHistoryItemRefs(sourceControlHandle: number, historyItemRefs: SCMHistoryItemRefsChangeEventDto): Promise<void>;
1834
1835
$onDidChangeArtifacts(sourceControlHandle: number, groups: string[]): Promise<void>;
1836
}
1837
1838
export interface MainThreadQuickDiffShape extends IDisposable {
1839
$registerQuickDiffProvider(handle: number, selector: IDocumentFilterDto[], id: string, label: string, rootUri: UriComponents | undefined): Promise<void>;
1840
$unregisterQuickDiffProvider(handle: number): Promise<void>;
1841
}
1842
1843
export type DebugSessionUUID = string;
1844
1845
export interface IDebugConfiguration {
1846
type: string;
1847
name: string;
1848
request: string;
1849
[key: string]: any;
1850
}
1851
1852
export interface IStartDebuggingOptions {
1853
parentSessionID?: DebugSessionUUID;
1854
lifecycleManagedByParent?: boolean;
1855
repl?: IDebugSessionReplMode;
1856
noDebug?: boolean;
1857
compact?: boolean;
1858
suppressDebugToolbar?: boolean;
1859
suppressDebugStatusbar?: boolean;
1860
suppressDebugView?: boolean;
1861
suppressSaveBeforeStart?: boolean;
1862
testRun?: IDebugTestRunReference;
1863
}
1864
1865
export interface MainThreadDebugServiceShape extends IDisposable {
1866
$registerDebugTypes(debugTypes: string[]): void;
1867
$sessionCached(sessionID: string): void;
1868
$acceptDAMessage(handle: number, message: DebugProtocol.ProtocolMessage): void;
1869
$acceptDAError(handle: number, name: string, message: string, stack: string | undefined): void;
1870
$acceptDAExit(handle: number, code: number | undefined, signal: string | undefined): void;
1871
$registerDebugConfigurationProvider(type: string, triggerKind: DebugConfigurationProviderTriggerKind, hasProvideMethod: boolean, hasResolveMethod: boolean, hasResolve2Method: boolean, handle: number): Promise<void>;
1872
$registerDebugAdapterDescriptorFactory(type: string, handle: number): Promise<void>;
1873
$unregisterDebugConfigurationProvider(handle: number): void;
1874
$unregisterDebugAdapterDescriptorFactory(handle: number): void;
1875
$startDebugging(folder: UriComponents | undefined, nameOrConfig: string | IDebugConfiguration, options: IStartDebuggingOptions): Promise<boolean>;
1876
$stopDebugging(sessionId: DebugSessionUUID | undefined): Promise<void>;
1877
$setDebugSessionName(id: DebugSessionUUID, name: string): void;
1878
$customDebugAdapterRequest(id: DebugSessionUUID, command: string, args: any): Promise<any>;
1879
$getDebugProtocolBreakpoint(id: DebugSessionUUID, breakpoinId: string): Promise<DebugProtocol.Breakpoint | undefined>;
1880
$appendDebugConsole(value: string): void;
1881
$registerBreakpoints(breakpoints: Array<ISourceMultiBreakpointDto | IFunctionBreakpointDto | IDataBreakpointDto>): Promise<void>;
1882
$unregisterBreakpoints(breakpointIds: string[], functionBreakpointIds: string[], dataBreakpointIds: string[]): Promise<void>;
1883
$registerDebugVisualizer(extensionId: string, id: string): void;
1884
$unregisterDebugVisualizer(extensionId: string, id: string): void;
1885
$registerDebugVisualizerTree(treeId: string, canEdit: boolean): void;
1886
$unregisterDebugVisualizerTree(treeId: string): void;
1887
}
1888
1889
export interface IOpenUriOptions {
1890
readonly allowTunneling?: boolean;
1891
readonly allowContributedOpeners?: boolean | string;
1892
}
1893
1894
export interface MainThreadWindowShape extends IDisposable {
1895
$getInitialState(): Promise<{ isFocused: boolean; isActive: boolean }>;
1896
$openUri(uri: UriComponents, uriString: string | undefined, options: IOpenUriOptions): Promise<boolean>;
1897
$asExternalUri(uri: UriComponents, options: IOpenUriOptions): Promise<UriComponents>;
1898
}
1899
1900
export enum CandidatePortSource {
1901
None = 0,
1902
Process = 1,
1903
Output = 2,
1904
Hybrid = 3
1905
}
1906
1907
export interface PortAttributesSelector {
1908
portRange?: [number, number] | number;
1909
commandPattern?: RegExp;
1910
}
1911
1912
export interface MainThreadTunnelServiceShape extends IDisposable {
1913
$openTunnel(tunnelOptions: TunnelOptions, source: string | undefined): Promise<TunnelDto | undefined>;
1914
$closeTunnel(remote: { host: string; port: number }): Promise<void>;
1915
$getTunnels(): Promise<TunnelDescription[]>;
1916
$setTunnelProvider(features: TunnelProviderFeatures | undefined, enablePortsView: boolean): Promise<void>;
1917
$hasTunnelProvider(): Promise<boolean>;
1918
$setRemoteTunnelService(processId: number): Promise<void>;
1919
$setCandidateFilter(): Promise<void>;
1920
$onFoundNewCandidates(candidates: CandidatePort[]): Promise<void>;
1921
$setCandidatePortSource(source: CandidatePortSource): Promise<void>;
1922
$registerPortsAttributesProvider(selector: PortAttributesSelector, providerHandle: number): Promise<void>;
1923
$unregisterPortsAttributesProvider(providerHandle: number): Promise<void>;
1924
}
1925
1926
export interface MainThreadTimelineShape extends IDisposable {
1927
$registerTimelineProvider(provider: TimelineProviderDescriptor): void;
1928
$unregisterTimelineProvider(source: string): void;
1929
$emitTimelineChangeEvent(e: TimelineChangeEvent | undefined): void;
1930
}
1931
1932
export interface HoverWithId extends languages.Hover {
1933
/**
1934
* Id of the hover
1935
*/
1936
id: number;
1937
}
1938
1939
// -- extension host
1940
1941
export interface ICommandMetadataDto {
1942
/**
1943
* NOTE: Please use an ILocalizedString. string is in the type for backcompat for now.
1944
* A short summary of what the command does. This will be used in:
1945
* - API commands
1946
* - when showing keybindings that have no other UX
1947
* - when searching for commands in the Command Palette
1948
*/
1949
readonly description: ILocalizedString | string;
1950
readonly args?: ReadonlyArray<{
1951
readonly name: string;
1952
readonly isOptional?: boolean;
1953
readonly description?: string;
1954
}>;
1955
readonly returns?: string;
1956
}
1957
1958
export interface ICodeMapperRequestDto extends Dto<ICodeMapperRequest> {
1959
requestId: string;
1960
}
1961
1962
export interface ExtHostCodeMapperShape {
1963
$mapCode(handle: number, request: ICodeMapperRequestDto, token: CancellationToken): Promise<ICodeMapperResult | null | undefined>;
1964
}
1965
1966
export interface ExtHostCommandsShape {
1967
$executeContributedCommand(id: string, ...args: any[]): Promise<unknown>;
1968
$getContributedCommandMetadata(): Promise<{ [id: string]: string | ICommandMetadataDto }>;
1969
}
1970
1971
export interface ExtHostConfigurationShape {
1972
$initializeConfiguration(data: IConfigurationInitData): void;
1973
$acceptConfigurationChanged(data: IConfigurationInitData, change: IConfigurationChange): void;
1974
}
1975
1976
export interface ExtHostDiagnosticsShape {
1977
$acceptMarkersChange(data: [UriComponents, IMarkerData[]][]): void;
1978
}
1979
1980
export interface ExtHostDocumentContentProvidersShape {
1981
$provideTextDocumentContent(handle: number, uri: UriComponents): Promise<string | null | undefined>;
1982
}
1983
1984
export interface IModelAddedData {
1985
uri: UriComponents;
1986
versionId: number;
1987
lines: string[];
1988
EOL: string;
1989
languageId: string;
1990
isDirty: boolean;
1991
encoding: string;
1992
}
1993
export interface ExtHostDocumentsShape {
1994
$acceptModelLanguageChanged(strURL: UriComponents, newLanguageId: string): void;
1995
$acceptModelSaved(strURL: UriComponents): void;
1996
$acceptDirtyStateChanged(strURL: UriComponents, isDirty: boolean): void;
1997
$acceptEncodingChanged(strURL: UriComponents, encoding: string): void;
1998
$acceptModelChanged(strURL: UriComponents, e: ISerializedModelContentChangedEvent, isDirty: boolean): void;
1999
}
2000
2001
export interface ExtHostDocumentSaveParticipantShape {
2002
$participateInSave(resource: UriComponents, reason: SaveReason): Promise<boolean[]>;
2003
}
2004
2005
export interface ITextEditorAddData {
2006
id: string;
2007
documentUri: UriComponents;
2008
options: IResolvedTextEditorConfiguration;
2009
selections: ISelection[];
2010
visibleRanges: IRange[];
2011
editorPosition: EditorGroupColumn | undefined;
2012
}
2013
export interface ITextEditorPositionData {
2014
[id: string]: EditorGroupColumn;
2015
}
2016
2017
export type ITextEditorChange = [
2018
originalStartLineNumber: number,
2019
originalEndLineNumberExclusive: number,
2020
modifiedStartLineNumber: number,
2021
modifiedEndLineNumberExclusive: number
2022
];
2023
2024
export interface ITextEditorDiffInformation {
2025
readonly documentVersion: number;
2026
readonly original: UriComponents | undefined;
2027
readonly modified: UriComponents;
2028
readonly changes: readonly ITextEditorChange[];
2029
}
2030
2031
export interface IEditorPropertiesChangeData {
2032
options: IResolvedTextEditorConfiguration | null;
2033
selections: ISelectionChangeEvent | null;
2034
visibleRanges: IRange[] | null;
2035
}
2036
export interface ISelectionChangeEvent {
2037
selections: Selection[];
2038
source?: string;
2039
}
2040
2041
export interface ExtHostEditorsShape {
2042
$acceptEditorPropertiesChanged(id: string, props: IEditorPropertiesChangeData): void;
2043
$acceptEditorPositionData(data: ITextEditorPositionData): void;
2044
$acceptEditorDiffInformation(id: string, diffInformation: ITextEditorDiffInformation[] | undefined): void;
2045
}
2046
2047
export interface IDocumentsAndEditorsDelta {
2048
removedDocuments?: UriComponents[];
2049
addedDocuments?: IModelAddedData[];
2050
removedEditors?: string[];
2051
addedEditors?: ITextEditorAddData[];
2052
newActiveEditor?: string | null;
2053
}
2054
2055
export interface ExtHostDocumentsAndEditorsShape {
2056
$acceptDocumentsAndEditorsDelta(delta: IDocumentsAndEditorsDelta): void;
2057
}
2058
2059
export interface IDataTransferFileDTO {
2060
readonly id: string;
2061
readonly name: string;
2062
readonly uri?: UriComponents;
2063
}
2064
2065
export interface DataTransferItemDTO {
2066
id: string;
2067
readonly asString: string;
2068
readonly fileData: IDataTransferFileDTO | undefined;
2069
readonly uriListData?: ReadonlyArray<string | UriComponents>;
2070
}
2071
2072
export interface DataTransferDTO {
2073
items: Array<readonly [/* type */string, DataTransferItemDTO]>;
2074
}
2075
2076
export interface CheckboxUpdate {
2077
treeItemHandle: string;
2078
newState: boolean;
2079
}
2080
2081
export interface ExtHostTreeViewsShape {
2082
/**
2083
* To reduce what is sent on the wire:
2084
* w
2085
* x
2086
* y
2087
* z
2088
*
2089
* for [x,y] returns
2090
* [[1,z]], where the inner array is [original index, ...children]
2091
*/
2092
$getChildren(treeViewId: string, treeItemHandles?: string[]): Promise<(number | ITreeItem)[][] | undefined>;
2093
$handleDrop(destinationViewId: string, requestId: number, treeDataTransfer: DataTransferDTO, targetHandle: string | undefined, token: CancellationToken, operationUuid?: string, sourceViewId?: string, sourceTreeItemHandles?: string[]): Promise<void>;
2094
$handleDrag(sourceViewId: string, sourceTreeItemHandles: string[], operationUuid: string, token: CancellationToken): Promise<DataTransferDTO | undefined>;
2095
$setExpanded(treeViewId: string, treeItemHandle: string, expanded: boolean): void;
2096
$setSelectionAndFocus(treeViewId: string, selectionHandles: string[], focusHandle: string): void;
2097
$setVisible(treeViewId: string, visible: boolean): void;
2098
$changeCheckboxState(treeViewId: string, checkboxUpdates: CheckboxUpdate[]): void;
2099
$hasResolve(treeViewId: string): Promise<boolean>;
2100
$resolve(treeViewId: string, treeItemHandle: string, token: CancellationToken): Promise<ITreeItem | undefined>;
2101
}
2102
2103
export interface ExtHostWorkspaceShape {
2104
$initializeWorkspace(workspace: IWorkspaceData | null, trusted: boolean): void;
2105
$acceptWorkspaceData(workspace: IWorkspaceData | null): void;
2106
$handleTextSearchResult(result: search.IRawFileMatch2, requestId: number): void;
2107
$onDidGrantWorkspaceTrust(): void;
2108
$onDidChangeWorkspaceTrustedFolders(): void;
2109
$getEditSessionIdentifier(folder: UriComponents, token: CancellationToken): Promise<string | undefined>;
2110
$provideEditSessionIdentityMatch(folder: UriComponents, identity1: string, identity2: string, token: CancellationToken): Promise<EditSessionIdentityMatch | undefined>;
2111
$onWillCreateEditSessionIdentity(folder: UriComponents, token: CancellationToken, timeout: number): Promise<void>;
2112
$provideCanonicalUri(uri: UriComponents, targetScheme: string, token: CancellationToken): Promise<UriComponents | undefined>;
2113
}
2114
2115
export interface ExtHostFileSystemInfoShape {
2116
$acceptProviderInfos(uri: UriComponents, capabilities: number | null): void;
2117
}
2118
2119
export interface ExtHostFileSystemShape {
2120
$stat(handle: number, resource: UriComponents): Promise<files.IStat>;
2121
$readdir(handle: number, resource: UriComponents): Promise<[string, files.FileType][]>;
2122
$readFile(handle: number, resource: UriComponents): Promise<VSBuffer>;
2123
$writeFile(handle: number, resource: UriComponents, content: VSBuffer, opts: files.IFileWriteOptions): Promise<void>;
2124
$rename(handle: number, resource: UriComponents, target: UriComponents, opts: files.IFileOverwriteOptions): Promise<void>;
2125
$copy(handle: number, resource: UriComponents, target: UriComponents, opts: files.IFileOverwriteOptions): Promise<void>;
2126
$mkdir(handle: number, resource: UriComponents): Promise<void>;
2127
$delete(handle: number, resource: UriComponents, opts: files.IFileDeleteOptions): Promise<void>;
2128
$watch(handle: number, session: number, resource: UriComponents, opts: files.IWatchOptions): void;
2129
$unwatch(handle: number, session: number): void;
2130
$open(handle: number, resource: UriComponents, opts: files.IFileOpenOptions): Promise<number>;
2131
$close(handle: number, fd: number): Promise<void>;
2132
$read(handle: number, fd: number, pos: number, length: number): Promise<VSBuffer>;
2133
$write(handle: number, fd: number, pos: number, data: VSBuffer): Promise<number>;
2134
}
2135
2136
export interface ExtHostLabelServiceShape {
2137
$registerResourceLabelFormatter(formatter: ResourceLabelFormatter): IDisposable;
2138
}
2139
2140
export interface ExtHostAuthenticationShape {
2141
$getSessions(id: string, scopes: string[] | undefined, options: IAuthenticationGetSessionsOptions): Promise<ReadonlyArray<AuthenticationSession>>;
2142
$createSession(id: string, scopes: string[], options: IAuthenticationCreateSessionOptions): Promise<AuthenticationSession>;
2143
$getSessionsFromChallenges(id: string, constraint: IAuthenticationConstraint, options: IAuthenticationGetSessionsOptions): Promise<ReadonlyArray<AuthenticationSession>>;
2144
$createSessionFromChallenges(id: string, constraint: IAuthenticationConstraint, options: IAuthenticationCreateSessionOptions): Promise<AuthenticationSession>;
2145
$removeSession(id: string, sessionId: string): Promise<void>;
2146
$onDidChangeAuthenticationSessions(id: string, label: string, extensionIdFilter?: string[]): Promise<void>;
2147
$onDidUnregisterAuthenticationProvider(id: string): Promise<void>;
2148
$registerDynamicAuthProvider(authorizationServer: UriComponents, serverMetadata: IAuthorizationServerMetadata, resource?: IAuthorizationProtectedResourceMetadata, clientId?: string, clientSecret?: string, initialTokens?: (IAuthorizationTokenResponse & { created_at: number })[]): Promise<string>;
2149
$onDidChangeDynamicAuthProviderTokens(authProviderId: string, clientId: string, tokens?: (IAuthorizationTokenResponse & { created_at: number })[]): Promise<void>;
2150
}
2151
2152
export interface ExtHostAiRelatedInformationShape {
2153
$provideAiRelatedInformation(handle: number, query: string, token: CancellationToken): Promise<RelatedInformationResult[]>;
2154
}
2155
2156
export interface MainThreadAiRelatedInformationShape {
2157
$getAiRelatedInformation(query: string, types: RelatedInformationType[]): Promise<RelatedInformationResult[]>;
2158
$registerAiRelatedInformationProvider(handle: number, type: RelatedInformationType): void;
2159
$unregisterAiRelatedInformationProvider(handle: number): void;
2160
}
2161
2162
export interface ExtHostAiSettingsSearchShape {
2163
$startSearch(handle: number, query: string, option: AiSettingsSearchProviderOptions, token: CancellationToken): Promise<void>;
2164
}
2165
2166
export interface MainThreadAiSettingsSearchShape {
2167
$registerAiSettingsSearchProvider(handle: number): void;
2168
$unregisterAiSettingsSearchProvider(handle: number): void;
2169
$handleSearchResult(handle: number, result: AiSettingsSearchResult): void;
2170
}
2171
2172
export interface ExtHostAiEmbeddingVectorShape {
2173
$provideAiEmbeddingVector(handle: number, strings: string[], token: CancellationToken): Promise<number[][]>;
2174
}
2175
2176
export interface MainThreadAiEmbeddingVectorShape {
2177
$registerAiEmbeddingVectorProvider(model: string, handle: number): void;
2178
$unregisterAiEmbeddingVectorProvider(handle: number): void;
2179
}
2180
2181
export interface ExtHostSecretStateShape {
2182
$onDidChangePassword(e: { extensionId: string; key: string }): Promise<void>;
2183
}
2184
2185
export interface ExtHostSearchShape {
2186
$enableExtensionHostSearch(): void;
2187
$getAIName(handle: number): Promise<string | undefined>;
2188
$provideFileSearchResults(handle: number, session: number, query: search.IRawQuery, token: CancellationToken): Promise<search.ISearchCompleteStats>;
2189
$provideAITextSearchResults(handle: number, session: number, query: search.IRawAITextQuery, token: CancellationToken): Promise<search.ISearchCompleteStats>;
2190
$provideTextSearchResults(handle: number, session: number, query: search.IRawTextQuery, token: CancellationToken): Promise<search.ISearchCompleteStats>;
2191
$clearCache(cacheKey: string): Promise<void>;
2192
}
2193
2194
export interface ExtHostExtensionServiceShape {
2195
$resolveAuthority(remoteAuthority: string, resolveAttempt: number): Promise<Dto<IResolveAuthorityResult>>;
2196
/**
2197
* Returns `null` if no resolver for `remoteAuthority` is found.
2198
*/
2199
$getCanonicalURI(remoteAuthority: string, uri: UriComponents): Promise<UriComponents | null>;
2200
$startExtensionHost(extensionsDelta: IExtensionDescriptionDelta): Promise<void>;
2201
$extensionTestsExecute(): Promise<number>;
2202
$activateByEvent(activationEvent: string, activationKind: ActivationKind): Promise<void>;
2203
$activate(extensionId: ExtensionIdentifier, reason: ExtensionActivationReason): Promise<boolean>;
2204
$setRemoteEnvironment(env: { [key: string]: string | null }): Promise<void>;
2205
$updateRemoteConnectionData(connectionData: IRemoteConnectionData): Promise<void>;
2206
2207
$deltaExtensions(extensionsDelta: IExtensionDescriptionDelta): Promise<void>;
2208
2209
$test_latency(n: number): Promise<number>;
2210
$test_up(b: VSBuffer): Promise<number>;
2211
$test_down(size: number): Promise<VSBuffer>;
2212
}
2213
2214
export interface FileSystemEvents {
2215
session?: number;
2216
created: UriComponents[];
2217
changed: UriComponents[];
2218
deleted: UriComponents[];
2219
}
2220
2221
export interface SourceTargetPair {
2222
source?: UriComponents;
2223
target: UriComponents;
2224
}
2225
2226
export interface IWillRunFileOperationParticipation {
2227
edit: IWorkspaceEditDto;
2228
extensionNames: string[];
2229
}
2230
2231
export interface ExtHostFileSystemEventServiceShape {
2232
$onFileEvent(events: FileSystemEvents): void;
2233
$onWillRunFileOperation(operation: files.FileOperation, files: readonly SourceTargetPair[], timeout: number, token: CancellationToken): Promise<IWillRunFileOperationParticipation | undefined>;
2234
$onDidRunFileOperation(operation: files.FileOperation, files: readonly SourceTargetPair[]): void;
2235
}
2236
2237
export interface ExtHostLanguagesShape {
2238
$acceptLanguageIds(ids: string[]): void;
2239
}
2240
2241
export interface ExtHostHeapServiceShape {
2242
$onGarbageCollection(ids: number[]): void;
2243
}
2244
export interface IRawColorInfo {
2245
color: [number, number, number, number];
2246
range: IRange;
2247
}
2248
2249
export class IdObject {
2250
_id?: number;
2251
private static _n = 0;
2252
static mixin<T extends object>(object: T): T & IdObject {
2253
// eslint-disable-next-line local/code-no-any-casts
2254
(<any>object)._id = IdObject._n++;
2255
// eslint-disable-next-line local/code-no-any-casts
2256
return <any>object;
2257
}
2258
}
2259
2260
export const enum ISuggestDataDtoField {
2261
label = 'a',
2262
kind = 'b',
2263
detail = 'c',
2264
documentation = 'd',
2265
sortText = 'e',
2266
filterText = 'f',
2267
preselect = 'g',
2268
insertText = 'h',
2269
insertTextRules = 'i',
2270
range = 'j',
2271
commitCharacters = 'k',
2272
additionalTextEdits = 'l',
2273
kindModifier = 'm',
2274
commandIdent = 'n',
2275
commandId = 'o',
2276
commandArguments = 'p',
2277
}
2278
2279
export interface ISuggestDataDto {
2280
[ISuggestDataDtoField.label]: string | languages.CompletionItemLabel;
2281
[ISuggestDataDtoField.kind]?: languages.CompletionItemKind;
2282
[ISuggestDataDtoField.detail]?: string;
2283
[ISuggestDataDtoField.documentation]?: string | IMarkdownString;
2284
[ISuggestDataDtoField.sortText]?: string;
2285
[ISuggestDataDtoField.filterText]?: string;
2286
[ISuggestDataDtoField.preselect]?: true;
2287
[ISuggestDataDtoField.insertText]?: string;
2288
[ISuggestDataDtoField.insertTextRules]?: languages.CompletionItemInsertTextRule;
2289
[ISuggestDataDtoField.range]?: IRange | { insert: IRange; replace: IRange };
2290
[ISuggestDataDtoField.commitCharacters]?: string;
2291
[ISuggestDataDtoField.additionalTextEdits]?: ISingleEditOperation[];
2292
[ISuggestDataDtoField.kindModifier]?: languages.CompletionItemTag[];
2293
// Command
2294
[ISuggestDataDtoField.commandIdent]?: string;
2295
[ISuggestDataDtoField.commandId]?: string;
2296
[ISuggestDataDtoField.commandArguments]?: any[];
2297
// not-standard
2298
x?: ChainedCacheId;
2299
}
2300
2301
export const enum ISuggestResultDtoField {
2302
defaultRanges = 'a',
2303
completions = 'b',
2304
isIncomplete = 'c',
2305
duration = 'd',
2306
}
2307
2308
export interface ISuggestResultDto {
2309
[ISuggestResultDtoField.defaultRanges]: { insert: IRange; replace: IRange };
2310
[ISuggestResultDtoField.completions]: ISuggestDataDto[];
2311
[ISuggestResultDtoField.isIncomplete]: undefined | true;
2312
[ISuggestResultDtoField.duration]: number;
2313
x?: number;
2314
}
2315
2316
export interface ISignatureHelpDto {
2317
id: CacheId;
2318
signatures: languages.SignatureInformation[];
2319
activeSignature: number;
2320
activeParameter: number;
2321
}
2322
2323
export interface ISignatureHelpContextDto {
2324
readonly triggerKind: languages.SignatureHelpTriggerKind;
2325
readonly triggerCharacter: string | undefined;
2326
readonly isRetrigger: boolean;
2327
readonly activeSignatureHelp: ISignatureHelpDto | undefined;
2328
}
2329
2330
export type IInlayHintDto = CachedSessionItem<Dto<languages.InlayHint>>;
2331
2332
export type IInlayHintsDto = CachedSession<{ hints: IInlayHintDto[] }>;
2333
2334
export type ILocationDto = Dto<languages.Location>;
2335
export type ILocationLinkDto = Dto<languages.LocationLink>;
2336
2337
export type IWorkspaceSymbolDto = CachedSessionItem<Dto<IWorkspaceSymbol>>;
2338
export type IWorkspaceSymbolsDto = CachedSession<{ symbols: IWorkspaceSymbolDto[] }>;
2339
2340
export interface IWorkspaceEditEntryMetadataDto {
2341
needsConfirmation: boolean;
2342
label: string;
2343
description?: string;
2344
iconPath?: IconPathDto;
2345
}
2346
2347
export interface IChatNotebookEditDto {
2348
uri: UriComponents;
2349
edits: ICellEditOperationDto[];
2350
kind: 'notebookEdit';
2351
done?: boolean;
2352
}
2353
2354
export interface IChatResponseClearToPreviousToolInvocationDto {
2355
kind: 'clearToPreviousToolInvocation';
2356
reason: ChatResponseClearToPreviousToolInvocationReason;
2357
}
2358
2359
export interface IChatBeginToolInvocationDto {
2360
kind: 'beginToolInvocation';
2361
toolCallId: string;
2362
toolName: string;
2363
streamData?: {
2364
partialInput?: unknown;
2365
};
2366
subagentInvocationId?: string;
2367
}
2368
2369
export interface IChatUpdateToolInvocationDto {
2370
kind: 'updateToolInvocation';
2371
toolCallId: string;
2372
streamData: {
2373
partialInput?: unknown;
2374
};
2375
}
2376
2377
export interface IChatUsageDto {
2378
kind: 'usage';
2379
promptTokens: number;
2380
completionTokens: number;
2381
promptTokenDetails?: readonly { category: string; label: string; percentageOfPrompt: number }[];
2382
}
2383
2384
export type ICellEditOperationDto =
2385
notebookCommon.ICellMetadataEdit
2386
| notebookCommon.IDocumentMetadataEdit
2387
| {
2388
editType: notebookCommon.CellEditType.Replace;
2389
index: number;
2390
count: number;
2391
cells: NotebookCellDataDto[];
2392
};
2393
2394
export type IWorkspaceCellEditDto = Dto<Omit<notebookCommon.IWorkspaceNotebookCellEdit, 'cellEdit'>> & { cellEdit: ICellEditOperationDto };
2395
2396
export type IWorkspaceFileEditDto = Dto<
2397
Omit<languages.IWorkspaceFileEdit, 'options'> & {
2398
options?: Omit<languages.WorkspaceFileEditOptions, 'contents'> & { contents?: { type: 'base64'; value: string } | { type: 'dataTransferItem'; id: string } };
2399
}>;
2400
2401
export type IWorkspaceTextEditDto = Dto<languages.IWorkspaceTextEdit>;
2402
2403
export interface IWorkspaceEditDto {
2404
edits: Array<IWorkspaceFileEditDto | IWorkspaceTextEditDto | IWorkspaceCellEditDto>;
2405
}
2406
2407
export type ICommandDto = { $ident?: string } & languages.Command;
2408
2409
export interface ICodeActionDto {
2410
cacheId?: ChainedCacheId;
2411
title: string;
2412
edit?: IWorkspaceEditDto;
2413
diagnostics?: Dto<IMarkerData[]>;
2414
command?: ICommandDto;
2415
kind?: string;
2416
isPreferred?: boolean;
2417
isAI?: boolean;
2418
disabled?: string;
2419
ranges?: IRange[];
2420
}
2421
2422
export interface ICodeActionListDto {
2423
cacheId: CacheId;
2424
actions: ReadonlyArray<ICodeActionDto>;
2425
}
2426
2427
export interface ICodeActionProviderMetadataDto {
2428
readonly providedKinds?: readonly string[];
2429
readonly documentation?: ReadonlyArray<{ readonly kind: string; readonly command: ICommandDto }>;
2430
}
2431
2432
export type CacheId = number;
2433
export type ChainedCacheId = [CacheId, CacheId];
2434
2435
type CachedSessionItem<T> = T & { cacheId?: ChainedCacheId };
2436
type CachedSession<T> = T & { cacheId?: CacheId };
2437
2438
export type ILinksListDto = CachedSession<{ links: ILinkDto[] }>;
2439
export type ILinkDto = CachedSessionItem<Dto<languages.ILink>>;
2440
2441
export type ICodeLensListDto = CachedSession<{ lenses: ICodeLensDto[] }>;
2442
export type ICodeLensDto = CachedSessionItem<Dto<languages.CodeLens>>;
2443
2444
export type ICallHierarchyItemDto = Dto<CallHierarchyItem>;
2445
2446
export interface IIncomingCallDto {
2447
from: ICallHierarchyItemDto;
2448
fromRanges: IRange[];
2449
}
2450
2451
export interface IOutgoingCallDto {
2452
fromRanges: IRange[];
2453
to: ICallHierarchyItemDto;
2454
}
2455
2456
export interface ILanguageWordDefinitionDto {
2457
languageId: string;
2458
regexSource: string;
2459
regexFlags: string;
2460
}
2461
2462
export interface ILinkedEditingRangesDto {
2463
ranges: IRange[];
2464
wordPattern?: IRegExpDto;
2465
}
2466
2467
export interface IInlineValueContextDto {
2468
frameId: number;
2469
stoppedLocation: IRange;
2470
}
2471
2472
export type ITypeHierarchyItemDto = Dto<TypeHierarchyItem>;
2473
2474
export interface IPasteEditProviderMetadataDto {
2475
readonly supportsCopy: boolean;
2476
readonly supportsPaste: boolean;
2477
readonly supportsResolve: boolean;
2478
2479
readonly providedPasteEditKinds?: readonly string[];
2480
readonly copyMimeTypes?: readonly string[];
2481
readonly pasteMimeTypes?: readonly string[];
2482
}
2483
2484
export interface IDocumentPasteContextDto {
2485
readonly only: string | undefined;
2486
readonly triggerKind: languages.DocumentPasteTriggerKind;
2487
}
2488
2489
export interface IPasteEditDto {
2490
_cacheId?: ChainedCacheId;
2491
title: string;
2492
kind: { value: string } | undefined;
2493
insertText: string | { snippet: string };
2494
additionalEdit?: IWorkspaceEditDto;
2495
yieldTo?: readonly string[];
2496
}
2497
2498
export interface IDocumentDropEditProviderMetadata {
2499
readonly supportsResolve: boolean;
2500
2501
readonly dropMimeTypes: readonly string[];
2502
readonly providedDropKinds?: readonly string[];
2503
}
2504
2505
export interface IDocumentDropEditDto {
2506
_cacheId?: ChainedCacheId;
2507
title: string;
2508
kind: string | undefined;
2509
insertText: string | { snippet: string };
2510
additionalEdit?: IWorkspaceEditDto;
2511
yieldTo?: readonly string[];
2512
}
2513
2514
export interface ExtHostLanguageFeaturesShape {
2515
$provideDocumentSymbols(handle: number, resource: UriComponents, token: CancellationToken): Promise<languages.DocumentSymbol[] | undefined>;
2516
$provideCodeLenses(handle: number, resource: UriComponents, token: CancellationToken): Promise<ICodeLensListDto | undefined>;
2517
$resolveCodeLens(handle: number, symbol: ICodeLensDto, token: CancellationToken): Promise<ICodeLensDto | undefined>;
2518
$releaseCodeLenses(handle: number, id: number): void;
2519
$provideDefinition(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Promise<ILocationLinkDto[]>;
2520
$provideDeclaration(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Promise<ILocationLinkDto[]>;
2521
$provideImplementation(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Promise<ILocationLinkDto[]>;
2522
$provideTypeDefinition(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Promise<ILocationLinkDto[]>;
2523
$provideHover(handle: number, resource: UriComponents, position: IPosition, context: languages.HoverContext<{ id: number }> | undefined, token: CancellationToken): Promise<HoverWithId | undefined>;
2524
$releaseHover(handle: number, id: number): void;
2525
$provideEvaluatableExpression(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Promise<languages.EvaluatableExpression | undefined>;
2526
$provideInlineValues(handle: number, resource: UriComponents, range: IRange, context: languages.InlineValueContext, token: CancellationToken): Promise<languages.InlineValue[] | undefined>;
2527
$provideDocumentHighlights(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Promise<languages.DocumentHighlight[] | undefined>;
2528
$provideMultiDocumentHighlights(handle: number, resource: UriComponents, position: IPosition, otherModels: UriComponents[], token: CancellationToken): Promise<Dto<languages.MultiDocumentHighlight[]> | undefined>;
2529
$provideLinkedEditingRanges(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Promise<ILinkedEditingRangesDto | undefined>;
2530
$provideReferences(handle: number, resource: UriComponents, position: IPosition, context: languages.ReferenceContext, token: CancellationToken): Promise<ILocationDto[] | undefined>;
2531
$provideCodeActions(handle: number, resource: UriComponents, rangeOrSelection: IRange | ISelection, context: languages.CodeActionContext, token: CancellationToken): Promise<ICodeActionListDto | undefined>;
2532
$resolveCodeAction(handle: number, id: ChainedCacheId, token: CancellationToken): Promise<{ edit?: IWorkspaceEditDto; command?: ICommandDto }>;
2533
$releaseCodeActions(handle: number, cacheId: number): void;
2534
$prepareDocumentPaste(handle: number, uri: UriComponents, ranges: readonly IRange[], dataTransfer: DataTransferDTO, token: CancellationToken): Promise<DataTransferDTO | undefined>;
2535
$providePasteEdits(handle: number, requestId: number, uri: UriComponents, ranges: IRange[], dataTransfer: DataTransferDTO, context: IDocumentPasteContextDto, token: CancellationToken): Promise<IPasteEditDto[] | undefined>;
2536
$resolvePasteEdit(handle: number, id: ChainedCacheId, token: CancellationToken): Promise<{ insertText?: string; additionalEdit?: IWorkspaceEditDto }>;
2537
$releasePasteEdits(handle: number, cacheId: number): void;
2538
$provideDocumentFormattingEdits(handle: number, resource: UriComponents, options: languages.FormattingOptions, token: CancellationToken): Promise<languages.TextEdit[] | undefined>;
2539
$provideDocumentRangeFormattingEdits(handle: number, resource: UriComponents, range: IRange, options: languages.FormattingOptions, token: CancellationToken): Promise<languages.TextEdit[] | undefined>;
2540
$provideDocumentRangesFormattingEdits(handle: number, resource: UriComponents, range: IRange[], options: languages.FormattingOptions, token: CancellationToken): Promise<languages.TextEdit[] | undefined>;
2541
$provideOnTypeFormattingEdits(handle: number, resource: UriComponents, position: IPosition, ch: string, options: languages.FormattingOptions, token: CancellationToken): Promise<languages.TextEdit[] | undefined>;
2542
$provideWorkspaceSymbols(handle: number, search: string, token: CancellationToken): Promise<IWorkspaceSymbolsDto>;
2543
$resolveWorkspaceSymbol(handle: number, symbol: IWorkspaceSymbolDto, token: CancellationToken): Promise<IWorkspaceSymbolDto | undefined>;
2544
$releaseWorkspaceSymbols(handle: number, id: number): void;
2545
$provideRenameEdits(handle: number, resource: UriComponents, position: IPosition, newName: string, token: CancellationToken): Promise<IWorkspaceEditDto & { rejectReason?: string } | undefined>;
2546
$resolveRenameLocation(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Promise<languages.RenameLocation | undefined>;
2547
$supportsAutomaticNewSymbolNamesTriggerKind(handle: number): Promise<boolean | undefined>;
2548
$provideNewSymbolNames(handle: number, resource: UriComponents, range: IRange, triggerKind: languages.NewSymbolNameTriggerKind, token: CancellationToken): Promise<languages.NewSymbolName[] | undefined>;
2549
$provideDocumentSemanticTokens(handle: number, resource: UriComponents, previousResultId: number, token: CancellationToken): Promise<VSBuffer | null>;
2550
$releaseDocumentSemanticTokens(handle: number, semanticColoringResultId: number): void;
2551
$provideDocumentRangeSemanticTokens(handle: number, resource: UriComponents, range: IRange, token: CancellationToken): Promise<VSBuffer | null>;
2552
$provideCompletionItems(handle: number, resource: UriComponents, position: IPosition, context: languages.CompletionContext, token: CancellationToken): Promise<ISuggestResultDto | undefined>;
2553
$resolveCompletionItem(handle: number, id: ChainedCacheId, token: CancellationToken): Promise<ISuggestDataDto | undefined>;
2554
$releaseCompletionItems(handle: number, id: number): void;
2555
$provideInlineCompletions(handle: number, resource: UriComponents, position: IPosition, context: languages.InlineCompletionContext, token: CancellationToken): Promise<IdentifiableInlineCompletions | undefined>;
2556
$handleInlineCompletionDidShow(handle: number, pid: number, idx: number, updatedInsertText: string): void;
2557
$handleInlineCompletionPartialAccept(handle: number, pid: number, idx: number, acceptedCharacters: number, info: languages.PartialAcceptInfo): void;
2558
$handleInlineCompletionEndOfLifetime(handle: number, pid: number, idx: number, reason: languages.InlineCompletionEndOfLifeReason<{ pid: number; idx: number }>): void;
2559
$handleInlineCompletionRejection(handle: number, pid: number, idx: number): void;
2560
$freeInlineCompletionsList(handle: number, pid: number, reason: languages.InlineCompletionsDisposeReason): void;
2561
$acceptInlineCompletionsUnificationState(state: IInlineCompletionsUnificationState): void;
2562
$handleInlineCompletionSetCurrentModelId(handle: number, modelId: string): void;
2563
$provideSignatureHelp(handle: number, resource: UriComponents, position: IPosition, context: languages.SignatureHelpContext, token: CancellationToken): Promise<ISignatureHelpDto | undefined>;
2564
$releaseSignatureHelp(handle: number, id: number): void;
2565
$provideInlayHints(handle: number, resource: UriComponents, range: IRange, token: CancellationToken): Promise<IInlayHintsDto | undefined>;
2566
$resolveInlayHint(handle: number, id: ChainedCacheId, token: CancellationToken): Promise<IInlayHintDto | undefined>;
2567
$releaseInlayHints(handle: number, id: number): void;
2568
$provideDocumentLinks(handle: number, resource: UriComponents, token: CancellationToken): Promise<ILinksListDto | undefined>;
2569
$resolveDocumentLink(handle: number, id: ChainedCacheId, token: CancellationToken): Promise<ILinkDto | undefined>;
2570
$releaseDocumentLinks(handle: number, id: number): void;
2571
$provideDocumentColors(handle: number, resource: UriComponents, token: CancellationToken): Promise<IRawColorInfo[]>;
2572
$provideColorPresentations(handle: number, resource: UriComponents, colorInfo: IRawColorInfo, token: CancellationToken): Promise<languages.IColorPresentation[] | undefined>;
2573
$provideFoldingRanges(handle: number, resource: UriComponents, context: languages.FoldingContext, token: CancellationToken): Promise<languages.FoldingRange[] | undefined>;
2574
$provideSelectionRanges(handle: number, resource: UriComponents, positions: IPosition[], token: CancellationToken): Promise<languages.SelectionRange[][]>;
2575
$prepareCallHierarchy(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Promise<ICallHierarchyItemDto[] | undefined>;
2576
$provideCallHierarchyIncomingCalls(handle: number, sessionId: string, itemId: string, token: CancellationToken): Promise<IIncomingCallDto[] | undefined>;
2577
$provideCallHierarchyOutgoingCalls(handle: number, sessionId: string, itemId: string, token: CancellationToken): Promise<IOutgoingCallDto[] | undefined>;
2578
$releaseCallHierarchy(handle: number, sessionId: string): void;
2579
$setWordDefinitions(wordDefinitions: ILanguageWordDefinitionDto[]): void;
2580
$prepareTypeHierarchy(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Promise<ITypeHierarchyItemDto[] | undefined>;
2581
$provideTypeHierarchySupertypes(handle: number, sessionId: string, itemId: string, token: CancellationToken): Promise<ITypeHierarchyItemDto[] | undefined>;
2582
$provideTypeHierarchySubtypes(handle: number, sessionId: string, itemId: string, token: CancellationToken): Promise<ITypeHierarchyItemDto[] | undefined>;
2583
$releaseTypeHierarchy(handle: number, sessionId: string): void;
2584
$provideDocumentOnDropEdits(handle: number, requestId: number, resource: UriComponents, position: IPosition, dataTransferDto: DataTransferDTO, token: CancellationToken): Promise<IDocumentDropEditDto[] | undefined>;
2585
$releaseDocumentOnDropEdits(handle: number, cacheId: number): void;
2586
}
2587
2588
export interface ExtHostQuickOpenShape {
2589
$onItemSelected(handle: number): void;
2590
$validateInput(input: string): Promise<string | { content: string; severity: Severity } | null | undefined>;
2591
$onDidChangeActive(sessionId: number, handles: number[]): void;
2592
$onDidChangeSelection(sessionId: number, handles: number[]): void;
2593
$onDidAccept(sessionId: number): void;
2594
$onDidChangeValue(sessionId: number, value: string): void;
2595
$onDidTriggerButton(sessionId: number, handle: number, checked?: boolean): void;
2596
$onDidTriggerItemButton(sessionId: number, itemHandle: number, buttonHandle: number, checked?: boolean): void;
2597
$onDidHide(sessionId: number): void;
2598
}
2599
2600
export interface ExtHostTelemetryShape {
2601
$initializeTelemetryLevel(level: TelemetryLevel, supportsTelemetry: boolean, productConfig?: { usage: boolean; error: boolean }): void;
2602
$onDidChangeTelemetryLevel(level: TelemetryLevel): void;
2603
}
2604
2605
export interface MainThreadMeteredConnectionShape extends IDisposable {
2606
}
2607
2608
export interface ExtHostMeteredConnectionShape {
2609
$initializeIsConnectionMetered(isMetered: boolean): void;
2610
$onDidChangeIsConnectionMetered(isMetered: boolean): void;
2611
}
2612
2613
export interface ITerminalLinkDto {
2614
/** The ID of the link to enable activation and disposal. */
2615
id: number;
2616
/** The startIndex of the link in the line. */
2617
startIndex: number;
2618
/** The length of the link in the line. */
2619
length: number;
2620
/** The descriptive label for what the link does when activated. */
2621
label?: string;
2622
}
2623
2624
export interface ITerminalDimensionsDto {
2625
columns: number;
2626
rows: number;
2627
}
2628
2629
type SingleOrMany<T> = T[] | T;
2630
2631
export interface ITerminalQuickFixTerminalCommandDto {
2632
terminalCommand: string;
2633
shouldExecute?: boolean;
2634
}
2635
2636
export interface ITerminalQuickFixOpenerDto {
2637
uri: UriComponents;
2638
}
2639
2640
export type TerminalQuickFix = ITerminalQuickFixTerminalCommandDto | ITerminalQuickFixOpenerDto | ICommandDto;
2641
2642
export interface TerminalCommandMatchResultDto {
2643
commandLine: string;
2644
commandLineMatch: RegExpMatchArray;
2645
outputMatch?: {
2646
regexMatch: RegExpMatchArray;
2647
outputLines: string[];
2648
};
2649
}
2650
2651
export interface ITerminalCommandDto {
2652
commandLine: string | undefined;
2653
cwd: URI | string | undefined;
2654
exitCode: number | undefined;
2655
output: string | undefined;
2656
}
2657
2658
export interface ITerminalCompletionContextDto {
2659
commandLine: string;
2660
cursorIndex: number;
2661
}
2662
2663
export interface ITerminalCompletionItemDto {
2664
label: string | CompletionItemLabel;
2665
detail?: string;
2666
documentation?: string | IMarkdownString;
2667
icon?: ThemeIcon | undefined;
2668
kind?: number | undefined;
2669
isFile?: boolean | undefined;
2670
isDirectory?: boolean | undefined;
2671
isKeyword?: boolean | undefined;
2672
replacementRange: readonly [number, number];
2673
}
2674
2675
export interface ITerminalCompletionProvider {
2676
id: string;
2677
shellTypes?: TerminalShellType[];
2678
provideCompletions(value: string, cursorPosition: number, token: CancellationToken): Promise<TerminalCompletionListDto<ITerminalCompletionItemDto> | undefined>;
2679
triggerCharacters?: string[];
2680
isBuiltin?: boolean;
2681
}
2682
/**
2683
* Represents a collection of {@link CompletionItem completion items} to be presented
2684
* in the editor.
2685
*/
2686
export class TerminalCompletionListDto<T extends ITerminalCompletionItemDto = ITerminalCompletionItemDto> {
2687
2688
/**
2689
* Resources should be shown in the completions list
2690
*/
2691
resourceOptions?: TerminalCompletionResourceOptionsDto;
2692
2693
/**
2694
* The completion items.
2695
*/
2696
items: T[];
2697
2698
/**
2699
* Creates a new completion list.
2700
*
2701
* @param items The completion items.
2702
* @param isIncomplete The list is not complete.
2703
*/
2704
constructor(items?: T[], resourceOptions?: TerminalCompletionResourceOptionsDto) {
2705
this.items = items ?? [];
2706
this.resourceOptions = resourceOptions;
2707
}
2708
}
2709
2710
export interface TerminalCompletionResourceOptionsDto {
2711
showFiles?: boolean;
2712
showDirectories?: boolean;
2713
globPattern?: string | IRelativePattern;
2714
cwd: UriComponents;
2715
pathSeparator: string;
2716
}
2717
2718
export interface ExtHostTerminalServiceShape {
2719
$acceptTerminalClosed(id: number, exitCode: number | undefined, exitReason: TerminalExitReason): void;
2720
$acceptTerminalOpened(id: number, extHostTerminalId: string | undefined, name: string, shellLaunchConfig: IShellLaunchConfigDto): void;
2721
$acceptActiveTerminalChanged(id: number | null): void;
2722
$acceptTerminalProcessId(id: number, processId: number): void;
2723
$acceptTerminalProcessData(id: number, data: string): void;
2724
$acceptDidExecuteCommand(id: number, command: ITerminalCommandDto): void;
2725
$acceptTerminalTitleChange(id: number, name: string): void;
2726
$acceptTerminalDimensions(id: number, cols: number, rows: number): void;
2727
$acceptTerminalMaximumDimensions(id: number, cols: number, rows: number): void;
2728
$acceptTerminalInteraction(id: number): void;
2729
$acceptTerminalSelection(id: number, selection: string | undefined): void;
2730
$acceptTerminalShellType(id: number, shellType: TerminalShellType | undefined): void;
2731
$startExtensionTerminal(id: number, initialDimensions: ITerminalDimensionsDto | undefined): Promise<ITerminalLaunchError | undefined>;
2732
$acceptProcessAckDataEvent(id: number, charCount: number): void;
2733
$acceptProcessInput(id: number, data: string): void;
2734
$acceptProcessResize(id: number, cols: number, rows: number): void;
2735
$acceptProcessShutdown(id: number, immediate: boolean): void;
2736
$acceptProcessRequestInitialCwd(id: number): void;
2737
$acceptProcessRequestCwd(id: number): void;
2738
$acceptProcessRequestLatency(id: number): Promise<number>;
2739
$provideLinks(id: number, line: string): Promise<ITerminalLinkDto[]>;
2740
$activateLink(id: number, linkId: number): void;
2741
$initEnvironmentVariableCollections(collections: [string, ISerializableEnvironmentVariableCollection][]): void;
2742
$acceptDefaultProfile(profile: ITerminalProfile, automationProfile: ITerminalProfile): void;
2743
$createContributedProfileTerminal(id: string, options: ICreateContributedTerminalProfileOptions): Promise<void>;
2744
$provideTerminalQuickFixes(id: string, matchResult: TerminalCommandMatchResultDto, token: CancellationToken): Promise<SingleOrMany<TerminalQuickFix> | undefined>;
2745
$provideTerminalCompletions(id: string, options: ITerminalCompletionContextDto, token: CancellationToken): Promise<TerminalCompletionListDto | undefined>;
2746
}
2747
2748
export interface ExtHostTerminalShellIntegrationShape {
2749
$shellIntegrationChange(instanceId: number, supportsExecuteCommandApi: boolean): void;
2750
$shellExecutionStart(instanceId: number, supportsExecuteCommandApi: boolean, commandLineValue: string, commandLineConfidence: TerminalShellExecutionCommandLineConfidence, isTrusted: boolean, cwd: string | undefined): void;
2751
$shellExecutionEnd(instanceId: number, commandLineValue: string, commandLineConfidence: TerminalShellExecutionCommandLineConfidence, isTrusted: boolean, exitCode: number | undefined): void;
2752
$shellExecutionData(instanceId: number, data: string): void;
2753
$shellEnvChange(instanceId: number, shellEnvKeys: string[], shellEnvValues: string[], isTrusted: boolean): void;
2754
$cwdChange(instanceId: number, cwd: string | undefined): void;
2755
$closeTerminal(instanceId: number): void;
2756
}
2757
2758
export interface ExtHostSCMShape {
2759
$provideOriginalResource(sourceControlHandle: number, uri: UriComponents, token: CancellationToken): Promise<UriComponents | null>;
2760
$provideSecondaryOriginalResource(sourceControlHandle: number, uri: UriComponents, token: CancellationToken): Promise<UriComponents | null>;
2761
$onInputBoxValueChange(sourceControlHandle: number, value: string): void;
2762
$executeResourceCommand(sourceControlHandle: number, groupHandle: number, handle: number, preserveFocus: boolean): Promise<void>;
2763
$validateInput(sourceControlHandle: number, value: string, cursorPosition: number): Promise<[string | IMarkdownString, number] | undefined>;
2764
$setSelectedSourceControl(selectedSourceControlHandle: number | undefined): Promise<void>;
2765
$provideHistoryItemRefs(sourceControlHandle: number, historyItemRefs: string[] | undefined, token: CancellationToken): Promise<SCMHistoryItemRefDto[] | undefined>;
2766
$provideHistoryItems(sourceControlHandle: number, options: ISCMHistoryOptions, token: CancellationToken): Promise<SCMHistoryItemDto[] | undefined>;
2767
$provideHistoryItemChanges(sourceControlHandle: number, historyItemId: string, historyItemParentId: string | undefined, token: CancellationToken): Promise<SCMHistoryItemChangeDto[] | undefined>;
2768
$resolveHistoryItem(sourceControlHandle: number, historyItemId: string, token: CancellationToken): Promise<SCMHistoryItemDto | undefined>;
2769
$resolveHistoryItemChatContext(sourceControlHandle: number, historyItemId: string, token: CancellationToken): Promise<string | undefined>;
2770
$resolveHistoryItemChangeRangeChatContext(sourceControlHandle: number, historyItemId: string, historyItemParentId: string, path: string, token: CancellationToken): Promise<string | undefined>;
2771
$resolveHistoryItemRefsCommonAncestor(sourceControlHandle: number, historyItemRefs: string[], token: CancellationToken): Promise<string | undefined>;
2772
2773
$provideArtifactGroups(sourceControlHandle: number, token: CancellationToken): Promise<SCMArtifactGroupDto[] | undefined>;
2774
$provideArtifacts(sourceControlHandle: number, group: string, token: CancellationToken): Promise<SCMArtifactDto[] | undefined>;
2775
}
2776
2777
export interface ExtHostQuickDiffShape {
2778
$provideOriginalResource(sourceControlHandle: number, uri: UriComponents, token: CancellationToken): Promise<UriComponents | null>;
2779
}
2780
2781
export interface ExtHostShareShape {
2782
$provideShare(handle: number, shareableItem: IShareableItemDto, token: CancellationToken): Promise<UriComponents | string | undefined>;
2783
}
2784
2785
export interface ExtHostTaskShape {
2786
$provideTasks(handle: number, validTypes: { [key: string]: boolean }): Promise<tasks.ITaskSetDTO>;
2787
$resolveTask(handle: number, taskDTO: tasks.ITaskDTO): Promise<tasks.ITaskDTO | undefined>;
2788
$onDidStartTask(execution: tasks.ITaskExecutionDTO, terminalId: number, resolvedDefinition: tasks.ITaskDefinitionDTO): void;
2789
$onDidStartTaskProcess(value: tasks.ITaskProcessStartedDTO): void;
2790
$onDidEndTaskProcess(value: tasks.ITaskProcessEndedDTO): void;
2791
$OnDidEndTask(execution: tasks.ITaskExecutionDTO): void;
2792
$onDidStartTaskProblemMatchers(status: tasks.ITaskProblemMatcherStartedDto): void;
2793
$onDidEndTaskProblemMatchers(status: tasks.ITaskProblemMatcherEndedDto): void;
2794
$resolveVariables(workspaceFolder: UriComponents, toResolve: { process?: { name: string; cwd?: string }; variables: string[] }): Promise<{ process?: string; variables: { [key: string]: string } }>;
2795
$jsonTasksSupported(): Promise<boolean>;
2796
$findExecutable(command: string, cwd?: string, paths?: string[]): Promise<string | undefined>;
2797
}
2798
2799
export interface IBreakpointDto {
2800
type: string;
2801
id?: string;
2802
enabled: boolean;
2803
condition?: string;
2804
hitCondition?: string;
2805
logMessage?: string;
2806
mode?: string;
2807
}
2808
2809
export interface IFunctionBreakpointDto extends IBreakpointDto {
2810
type: 'function';
2811
functionName: string;
2812
mode?: string;
2813
}
2814
2815
export interface IDataBreakpointDto extends IBreakpointDto {
2816
type: 'data';
2817
dataId: string;
2818
canPersist: boolean;
2819
label: string;
2820
accessTypes?: DebugProtocol.DataBreakpointAccessType[];
2821
accessType: DebugProtocol.DataBreakpointAccessType;
2822
mode?: string;
2823
}
2824
2825
export interface ISourceBreakpointDto extends IBreakpointDto {
2826
type: 'source';
2827
uri: UriComponents;
2828
line: number;
2829
character: number;
2830
}
2831
2832
export interface IBreakpointsDeltaDto {
2833
added?: Array<ISourceBreakpointDto | IFunctionBreakpointDto | IDataBreakpointDto>;
2834
removed?: string[];
2835
changed?: Array<ISourceBreakpointDto | IFunctionBreakpointDto | IDataBreakpointDto>;
2836
}
2837
2838
export interface ISourceMultiBreakpointDto {
2839
type: 'sourceMulti';
2840
uri: UriComponents;
2841
lines: {
2842
id: string;
2843
enabled: boolean;
2844
condition?: string;
2845
hitCondition?: string;
2846
logMessage?: string;
2847
line: number;
2848
character: number;
2849
mode?: string;
2850
}[];
2851
}
2852
2853
export interface IDebugSessionFullDto {
2854
id: DebugSessionUUID;
2855
type: string;
2856
name: string;
2857
parent: DebugSessionUUID | undefined;
2858
folderUri: UriComponents | undefined;
2859
configuration: IConfig;
2860
}
2861
2862
export type IDebugSessionDto = IDebugSessionFullDto | DebugSessionUUID;
2863
2864
export interface IThreadFocusDto {
2865
kind: 'thread';
2866
sessionId: string;
2867
threadId: number;
2868
}
2869
2870
export interface IStackFrameFocusDto {
2871
kind: 'stackFrame';
2872
sessionId: string;
2873
threadId: number;
2874
frameId: number;
2875
}
2876
2877
2878
export interface ExtHostDebugServiceShape {
2879
$substituteVariables(folder: UriComponents | undefined, config: IConfig): Promise<IConfig>;
2880
$runInTerminal(args: DebugProtocol.RunInTerminalRequestArguments, sessionId: string): Promise<number | undefined>;
2881
$startDASession(handle: number, session: IDebugSessionDto): Promise<void>;
2882
$stopDASession(handle: number): Promise<void>;
2883
$sendDAMessage(handle: number, message: DebugProtocol.ProtocolMessage): void;
2884
$resolveDebugConfiguration(handle: number, folder: UriComponents | undefined, debugConfiguration: IConfig, token: CancellationToken): Promise<IConfig | null | undefined>;
2885
$resolveDebugConfigurationWithSubstitutedVariables(handle: number, folder: UriComponents | undefined, debugConfiguration: IConfig, token: CancellationToken): Promise<IConfig | null | undefined>;
2886
$provideDebugConfigurations(handle: number, folder: UriComponents | undefined, token: CancellationToken): Promise<IConfig[]>;
2887
$provideDebugAdapter(handle: number, session: IDebugSessionDto): Promise<Dto<IAdapterDescriptor>>;
2888
$acceptDebugSessionStarted(session: IDebugSessionDto): void;
2889
$acceptDebugSessionTerminated(session: IDebugSessionDto): void;
2890
$acceptDebugSessionActiveChanged(session: IDebugSessionDto | undefined): void;
2891
$acceptDebugSessionCustomEvent(session: IDebugSessionDto, event: any): void;
2892
$acceptBreakpointsDelta(delta: IBreakpointsDeltaDto): void;
2893
$acceptDebugSessionNameChanged(session: IDebugSessionDto, name: string): void;
2894
$acceptStackFrameFocus(focus: IThreadFocusDto | IStackFrameFocusDto | undefined): void;
2895
$provideDebugVisualizers(extensionId: string, id: string, context: IDebugVisualizationContext, token: CancellationToken): Promise<IDebugVisualization.Serialized[]>;
2896
$resolveDebugVisualizer(id: number, token: CancellationToken): Promise<MainThreadDebugVisualization>;
2897
$executeDebugVisualizerCommand(id: number): Promise<void>;
2898
$disposeDebugVisualizers(ids: number[]): void;
2899
$getVisualizerTreeItem(treeId: string, element: IDebugVisualizationContext): Promise<IDebugVisualizationTreeItem.Serialized | undefined>;
2900
$getVisualizerTreeItemChildren(treeId: string, element: number): Promise<IDebugVisualizationTreeItem.Serialized[]>;
2901
$editVisualizerTreeItem(element: number, value: string): Promise<IDebugVisualizationTreeItem.Serialized | undefined>;
2902
$disposeVisualizedTree(element: number): void;
2903
}
2904
2905
2906
export interface DecorationRequest {
2907
readonly id: number;
2908
readonly uri: UriComponents;
2909
}
2910
2911
export type DecorationData = [boolean, string, string | ThemeIcon, ThemeColor];
2912
export type DecorationReply = { [id: number]: DecorationData };
2913
2914
export interface ExtHostDecorationsShape {
2915
$provideDecorations(handle: number, requests: DecorationRequest[], token: CancellationToken): Promise<DecorationReply>;
2916
}
2917
2918
export interface ExtHostWindowShape {
2919
$onDidChangeWindowFocus(value: boolean): void;
2920
$onDidChangeWindowActive(value: boolean): void;
2921
$onDidChangeActiveNativeWindowHandle(handle: string | undefined): void;
2922
}
2923
2924
export type PowerSystemIdleState = 'active' | 'idle' | 'locked' | 'unknown';
2925
export type PowerThermalState = 'unknown' | 'nominal' | 'fair' | 'serious' | 'critical';
2926
export type PowerSaveBlockerType = 'prevent-app-suspension' | 'prevent-display-sleep';
2927
2928
export interface MainThreadPowerShape extends IDisposable {
2929
$getSystemIdleState(idleThreshold: number): Promise<PowerSystemIdleState>;
2930
$getSystemIdleTime(): Promise<number>;
2931
$getCurrentThermalState(): Promise<PowerThermalState>;
2932
$isOnBatteryPower(): Promise<boolean>;
2933
$startPowerSaveBlocker(type: PowerSaveBlockerType): Promise<number>;
2934
$stopPowerSaveBlocker(id: number): Promise<boolean>;
2935
$isPowerSaveBlockerStarted(id: number): Promise<boolean>;
2936
}
2937
2938
export interface ExtHostPowerShape {
2939
$onDidSuspend(): void;
2940
$onDidResume(): void;
2941
$onDidChangeOnBatteryPower(isOnBattery: boolean): void;
2942
$onDidChangeThermalState(state: PowerThermalState): void;
2943
$onDidChangeSpeedLimit(limit: number): void;
2944
$onWillShutdown(): void;
2945
$onDidLockScreen(): void;
2946
$onDidUnlockScreen(): void;
2947
}
2948
2949
export interface ExtHostLogLevelServiceShape {
2950
$setLogLevel(level: LogLevel, resource?: UriComponents): void;
2951
}
2952
2953
export interface MainThreadLoggerShape {
2954
$log(file: UriComponents, messages: [LogLevel, string][]): void;
2955
$flush(file: UriComponents): void;
2956
$createLogger(file: UriComponents, options?: ILoggerOptions): Promise<void>;
2957
$registerLogger(logger: UriDto<ILoggerResource>): Promise<void>;
2958
$deregisterLogger(resource: UriComponents): Promise<void>;
2959
$setVisibility(resource: UriComponents, visible: boolean): Promise<void>;
2960
}
2961
2962
export interface ExtHostOutputServiceShape {
2963
$setVisibleChannel(channelId: string | null): void;
2964
}
2965
2966
export interface ExtHostProgressShape {
2967
$acceptProgressCanceled(handle: number): void;
2968
}
2969
2970
export interface ExtHostCommentsShape {
2971
$createCommentThreadTemplate(commentControllerHandle: number, uriComponents: UriComponents, range: IRange | undefined, editorId?: string): Promise<void>;
2972
$updateCommentThreadTemplate(commentControllerHandle: number, threadHandle: number, range: IRange): Promise<void>;
2973
$updateCommentThread(commentControllerHandle: number, threadHandle: number, changes: CommentThreadChanges): Promise<void>;
2974
$deleteCommentThread(commentControllerHandle: number, commentThreadHandle: number): void;
2975
$provideCommentingRanges(commentControllerHandle: number, uriComponents: UriComponents, token: CancellationToken): Promise<{ ranges: IRange[]; fileComments: boolean } | undefined>;
2976
$toggleReaction(commentControllerHandle: number, threadHandle: number, uri: UriComponents, comment: languages.Comment, reaction: languages.CommentReaction): Promise<void>;
2977
$setActiveComment(controllerHandle: number, commentInfo: { commentThreadHandle: number; uniqueIdInThread?: number } | undefined): Promise<void>;
2978
}
2979
2980
export interface INotebookSelectionChangeEvent {
2981
selections: ICellRange[];
2982
}
2983
2984
export interface INotebookVisibleRangesEvent {
2985
ranges: ICellRange[];
2986
}
2987
2988
export interface INotebookEditorPropertiesChangeData {
2989
visibleRanges?: INotebookVisibleRangesEvent;
2990
selections?: INotebookSelectionChangeEvent;
2991
}
2992
2993
export interface INotebookDocumentPropertiesChangeData {
2994
metadata?: notebookCommon.NotebookDocumentMetadata;
2995
}
2996
2997
export interface INotebookModelAddedData {
2998
uri: UriComponents;
2999
versionId: number;
3000
cells: NotebookCellDto[];
3001
viewType: string;
3002
metadata?: notebookCommon.NotebookDocumentMetadata;
3003
}
3004
3005
export interface INotebookEditorAddData {
3006
id: string;
3007
documentUri: UriComponents;
3008
selections: ICellRange[];
3009
visibleRanges: ICellRange[];
3010
viewColumn?: number;
3011
viewType: string;
3012
}
3013
3014
export interface INotebookDocumentsAndEditorsDelta {
3015
removedDocuments?: UriComponents[];
3016
addedDocuments?: INotebookModelAddedData[];
3017
removedEditors?: string[];
3018
addedEditors?: INotebookEditorAddData[];
3019
newActiveEditor?: string | null;
3020
visibleEditors?: string[];
3021
}
3022
3023
export interface NotebookOutputItemDto {
3024
readonly mime: string;
3025
readonly valueBytes: VSBuffer;
3026
}
3027
3028
export interface NotebookOutputDto {
3029
items: NotebookOutputItemDto[];
3030
outputId: string;
3031
metadata?: Record<string, any>;
3032
}
3033
3034
export interface NotebookCellDataDto {
3035
source: string;
3036
language: string;
3037
mime: string | undefined;
3038
cellKind: notebookCommon.CellKind;
3039
outputs: NotebookOutputDto[];
3040
metadata?: notebookCommon.NotebookCellMetadata;
3041
internalMetadata?: notebookCommon.NotebookCellInternalMetadata;
3042
}
3043
3044
export interface NotebookDataDto {
3045
readonly cells: NotebookCellDataDto[];
3046
readonly metadata: notebookCommon.NotebookDocumentMetadata;
3047
}
3048
3049
export interface NotebookCellDto {
3050
handle: number;
3051
uri: UriComponents;
3052
eol: string;
3053
source: string[];
3054
language: string;
3055
mime?: string;
3056
cellKind: notebookCommon.CellKind;
3057
outputs: NotebookOutputDto[];
3058
metadata?: notebookCommon.NotebookCellMetadata;
3059
internalMetadata?: notebookCommon.NotebookCellInternalMetadata;
3060
}
3061
3062
export type INotebookPartialFileStatsWithMetadata = Omit<files.IFileStatWithMetadata, 'resource' | 'children'>;
3063
3064
export interface ExtHostNotebookShape extends ExtHostNotebookDocumentsAndEditorsShape {
3065
$provideNotebookCellStatusBarItems(handle: number, uri: UriComponents, index: number, token: CancellationToken): Promise<INotebookCellStatusBarListDto | undefined>;
3066
$releaseNotebookCellStatusBarItems(id: number): void;
3067
3068
$dataToNotebook(handle: number, data: VSBuffer, token: CancellationToken): Promise<SerializableObjectWithBuffers<NotebookDataDto>>;
3069
$notebookToData(handle: number, data: SerializableObjectWithBuffers<NotebookDataDto>, token: CancellationToken): Promise<VSBuffer>;
3070
$saveNotebook(handle: number, uri: UriComponents, versionId: number, options: files.IWriteFileOptions, token: CancellationToken): Promise<INotebookPartialFileStatsWithMetadata | files.FileOperationError>;
3071
3072
$searchInNotebooks(handle: number, textQuery: search.ITextQuery, viewTypeFileTargets: NotebookPriorityInfo[], otherViewTypeFileTargets: NotebookPriorityInfo[], token: CancellationToken): Promise<{ results: IRawClosedNotebookFileMatch[]; limitHit: boolean }>;
3073
}
3074
3075
export interface ExtHostNotebookDocumentSaveParticipantShape {
3076
$participateInSave(resource: UriComponents, reason: SaveReason, token: CancellationToken): Promise<boolean>;
3077
}
3078
3079
export interface ExtHostNotebookRenderersShape {
3080
$postRendererMessage(editorId: string, rendererId: string, message: unknown): void;
3081
}
3082
3083
export interface ExtHostNotebookDocumentsAndEditorsShape {
3084
$acceptDocumentAndEditorsDelta(delta: SerializableObjectWithBuffers<INotebookDocumentsAndEditorsDelta>): void;
3085
}
3086
3087
export type NotebookRawContentEventDto =
3088
// notebookCommon.NotebookCellsInitializeEvent<NotebookCellDto>
3089
| {
3090
3091
readonly kind: notebookCommon.NotebookCellsChangeType.ModelChange;
3092
readonly changes: notebookCommon.NotebookCellTextModelSplice<NotebookCellDto>[];
3093
}
3094
| {
3095
readonly kind: notebookCommon.NotebookCellsChangeType.Move;
3096
readonly index: number;
3097
readonly length: number;
3098
readonly newIdx: number;
3099
}
3100
| {
3101
readonly kind: notebookCommon.NotebookCellsChangeType.Output;
3102
readonly index: number;
3103
readonly outputs: NotebookOutputDto[];
3104
}
3105
| {
3106
readonly kind: notebookCommon.NotebookCellsChangeType.OutputItem;
3107
readonly index: number;
3108
readonly outputId: string;
3109
readonly outputItems: NotebookOutputItemDto[];
3110
readonly append: boolean;
3111
}
3112
| notebookCommon.NotebookCellsChangeLanguageEvent
3113
| notebookCommon.NotebookCellsChangeMimeEvent
3114
| notebookCommon.NotebookCellsChangeMetadataEvent
3115
| notebookCommon.NotebookCellsChangeInternalMetadataEvent
3116
// | notebookCommon.NotebookDocumentChangeMetadataEvent
3117
| notebookCommon.NotebookCellContentChangeEvent
3118
// | notebookCommon.NotebookDocumentUnknownChangeEvent
3119
;
3120
3121
export type NotebookCellsChangedEventDto = {
3122
readonly rawEvents: NotebookRawContentEventDto[];
3123
readonly versionId: number;
3124
};
3125
3126
export interface ExtHostNotebookDocumentsShape {
3127
$acceptModelChanged(uriComponents: UriComponents, event: SerializableObjectWithBuffers<NotebookCellsChangedEventDto>, isDirty: boolean, newMetadata?: notebookCommon.NotebookDocumentMetadata): void;
3128
$acceptDirtyStateChanged(uriComponents: UriComponents, isDirty: boolean): void;
3129
$acceptModelSaved(uriComponents: UriComponents): void;
3130
}
3131
3132
export type INotebookEditorViewColumnInfo = Record<string, number>;
3133
3134
export interface ExtHostNotebookEditorsShape {
3135
$acceptEditorPropertiesChanged(id: string, data: INotebookEditorPropertiesChangeData): void;
3136
$acceptEditorViewColumns(data: INotebookEditorViewColumnInfo): void;
3137
}
3138
3139
export interface ExtHostNotebookKernelsShape {
3140
$acceptNotebookAssociation(handle: number, uri: UriComponents, value: boolean): void;
3141
$executeCells(handle: number, uri: UriComponents, handles: number[]): Promise<void>;
3142
$cancelCells(handle: number, uri: UriComponents, handles: number[]): Promise<void>;
3143
$acceptKernelMessageFromRenderer(handle: number, editorId: string, message: any): void;
3144
$provideKernelSourceActions(handle: number, token: CancellationToken): Promise<notebookCommon.INotebookKernelSourceAction[]>;
3145
$provideVariables(handle: number, requestId: string, notebookUri: UriComponents, parentId: number | undefined, kind: 'named' | 'indexed', start: number, token: CancellationToken): Promise<void>;
3146
}
3147
3148
export interface ExtHostInteractiveShape {
3149
$willAddInteractiveDocument(uri: UriComponents, eol: string, languageId: string, notebookUri: UriComponents): void;
3150
$willRemoveInteractiveDocument(uri: UriComponents, notebookUri: UriComponents): void;
3151
}
3152
3153
export interface ExtHostStorageShape {
3154
$acceptValue(shared: boolean, extensionId: string, value: string): void;
3155
}
3156
3157
export interface ExtHostThemingShape {
3158
$onColorThemeChange(themeType: string): void;
3159
}
3160
3161
export interface MainThreadThemingShape extends IDisposable {
3162
}
3163
3164
export interface MainThreadLocalizationShape extends IDisposable {
3165
$fetchBuiltInBundleUri(id: string, language: string): Promise<UriComponents | undefined>;
3166
$fetchBundleContents(uriComponents: UriComponents): Promise<string>;
3167
}
3168
3169
export interface TunnelDto {
3170
remoteAddress: { port: number; host: string };
3171
localAddress: { port: number; host: string } | string;
3172
public: boolean;
3173
privacy: TunnelPrivacyId | string;
3174
protocol: string | undefined;
3175
}
3176
3177
3178
export interface ExtHostTunnelServiceShape {
3179
$forwardPort(tunnelOptions: TunnelOptions, tunnelCreationOptions: TunnelCreationOptions): Promise<TunnelDto | string | undefined>;
3180
$closeTunnel(remote: { host: string; port: number }, silent?: boolean): Promise<void>;
3181
$onDidTunnelsChange(): Promise<void>;
3182
$registerCandidateFinder(enable: boolean): Promise<void>;
3183
$applyCandidateFilter(candidates: CandidatePort[]): Promise<CandidatePort[]>;
3184
$providePortAttributes(handles: number[], ports: number[], pid: number | undefined, commandline: string | undefined, cancellationToken: CancellationToken): Promise<ProvidedPortAttributes[]>;
3185
}
3186
3187
export interface ExtHostTimelineShape {
3188
$getTimeline(source: string, uri: UriComponents, options: TimelineOptions, token: CancellationToken): Promise<Dto<Timeline> | undefined>;
3189
}
3190
3191
export const enum ExtHostTestingResource {
3192
Workspace,
3193
TextDocument
3194
}
3195
3196
export interface ExtHostTestingShape {
3197
$runControllerTests(req: IStartControllerTests[], token: CancellationToken): Promise<{ error?: string }[]>;
3198
$startContinuousRun(req: ICallProfileRunHandler[], token: CancellationToken): Promise<{ error?: string }[]>;
3199
$cancelExtensionTestRun(runId: string | undefined, taskId: string | undefined): void;
3200
/** Handles a diff of tests, as a result of a subscribeToDiffs() call */
3201
$acceptDiff(diff: TestsDiffOp.Serialized[]): void;
3202
/** Expands a test item's children, by the given number of levels. */
3203
$expandTest(testId: string, levels: number): Promise<void>;
3204
/** Requests coverage details for a test run. Errors if not available. */
3205
$getCoverageDetails(coverageId: string, testId: string | undefined, token: CancellationToken): Promise<CoverageDetails.Serialized[]>;
3206
/** Disposes resources associated with a test run. */
3207
$disposeRun(runId: string): void;
3208
/** Configures a test run config. */
3209
$configureRunProfile(controllerId: string, configId: number): void;
3210
/** Asks the controller to refresh its tests */
3211
$refreshTests(controllerId: string, token: CancellationToken): Promise<void>;
3212
/** Ensures any pending test diffs are flushed */
3213
$syncTests(): Promise<void>;
3214
/** Sets the active test run profiles */
3215
$setDefaultRunProfiles(profiles: Record</* controller id */string, /* profile id */ number[]>): void;
3216
$getTestsRelatedToCode(uri: UriComponents, position: IPosition, token: CancellationToken): Promise<string[]>;
3217
$getCodeRelatedToTest(testId: string, token: CancellationToken): Promise<ILocationDto[]>;
3218
3219
// --- test results:
3220
3221
/** Publishes that a test run finished. */
3222
$publishTestResults(results: ISerializedTestResults[]): void;
3223
/** Requests followup actions for a test (failure) message */
3224
$provideTestFollowups(req: TestMessageFollowupRequest, token: CancellationToken): Promise<TestMessageFollowupResponse[]>;
3225
/** Actions a followup actions for a test (failure) message */
3226
$executeTestFollowup(id: number): Promise<void>;
3227
/** Disposes followup actions for a test (failure) message */
3228
$disposeTestFollowups(id: number[]): void;
3229
}
3230
3231
export interface IStartMcpOptions {
3232
launch: McpServerLaunch.Serialized;
3233
defaultCwd?: UriComponents;
3234
errorOnUserInteraction?: boolean;
3235
}
3236
3237
export type IHookCommandDto = Dto<IHookCommand>;
3238
3239
export interface ExtHostHooksShape {
3240
$runHookCommand(hookCommand: IHookCommandDto, input: unknown, token: CancellationToken): Promise<IHookCommandResult>;
3241
}
3242
3243
export interface ExtHostMcpShape {
3244
$substituteVariables(workspaceFolder: UriComponents | undefined, value: McpServerLaunch.Serialized): Promise<McpServerLaunch.Serialized>;
3245
$resolveMcpLaunch(collectionId: string, label: string): Promise<McpServerLaunch.Serialized | undefined>;
3246
$startMcp(id: number, opts: IStartMcpOptions): void;
3247
$stopMcp(id: number): void;
3248
$sendMessage(id: number, message: string): void;
3249
$waitForInitialCollectionProviders(): Promise<void>;
3250
$onDidChangeMcpServerDefinitions(servers: McpServerDefinition.Serialized[]): void;
3251
}
3252
3253
export interface IMcpAuthenticationDetails {
3254
authorizationServer: UriComponents;
3255
authorizationServerMetadata: IAuthorizationServerMetadata;
3256
resourceMetadata: IAuthorizationProtectedResourceMetadata | undefined;
3257
scopes: string[] | undefined;
3258
}
3259
3260
export interface IMcpAuthenticationOptions {
3261
errorOnUserInteraction?: boolean;
3262
forceNewRegistration?: boolean;
3263
}
3264
3265
export const enum IAuthResourceMetadataSource {
3266
Header = 'header',
3267
WellKnown = 'wellKnown',
3268
None = 'none',
3269
}
3270
3271
export const enum IAuthServerMetadataSource {
3272
ResourceMetadata = 'resourceMetadata',
3273
WellKnown = 'wellKnown',
3274
Default = 'default',
3275
}
3276
3277
export interface IAuthMetadataSource {
3278
resourceMetadataSource: IAuthResourceMetadataSource;
3279
serverMetadataSource: IAuthServerMetadataSource;
3280
}
3281
3282
export interface MainThreadMcpShape {
3283
$onDidChangeState(id: number, state: McpConnectionState): void;
3284
$onDidPublishLog(id: number, level: LogLevel, log: string): void;
3285
$onDidReceiveMessage(id: number, message: string): void;
3286
$upsertMcpCollection(collection: McpCollectionDefinition.FromExtHost, servers: McpServerDefinition.Serialized[]): void;
3287
$deleteMcpCollection(collectionId: string): void;
3288
$getTokenFromServerMetadata(id: number, authDetails: IMcpAuthenticationDetails, options?: IMcpAuthenticationOptions): Promise<string | undefined>;
3289
$getTokenForProviderId(id: number, providerId: string, scopes: string[], options?: IMcpAuthenticationOptions): Promise<string | undefined>;
3290
$logMcpAuthSetup(data: IAuthMetadataSource): void;
3291
$startMcpGateway(): Promise<{ address: UriComponents; gatewayId: string } | undefined>;
3292
$disposeMcpGateway(gatewayId: string): void;
3293
}
3294
3295
export interface MainThreadDataChannelsShape extends IDisposable {
3296
}
3297
3298
export interface MainThreadHooksShape extends IDisposable {
3299
$executeHook(hookType: string, sessionResource: UriComponents, input: unknown, token: CancellationToken): Promise<IHookResult[]>;
3300
}
3301
3302
export interface ExtHostDataChannelsShape {
3303
$onDidReceiveData(channelId: string, data: unknown): void;
3304
}
3305
3306
export interface ExtHostLocalizationShape {
3307
getMessage(extensionId: string, details: IStringDetails): string;
3308
getBundle(extensionId: string): { [key: string]: string } | undefined;
3309
getBundleUri(extensionId: string): URI | undefined;
3310
initializeLocalizedMessages(extension: IExtensionDescription): Promise<void>;
3311
}
3312
3313
export interface IStringDetails {
3314
message: string;
3315
args?: Record<string | number, any>;
3316
comment?: string | string[];
3317
}
3318
3319
export interface ITestControllerPatch {
3320
label?: string;
3321
capabilities?: TestControllerCapability;
3322
}
3323
3324
export interface MainThreadTestingShape {
3325
// --- test lifecycle:
3326
3327
/** Registers that there's a test controller with the given ID */
3328
$registerTestController(controllerId: string, label: string, capability: TestControllerCapability): void;
3329
/** Updates the label of an existing test controller. */
3330
$updateController(controllerId: string, patch: ITestControllerPatch): void;
3331
/** Diposes of the test controller with the given ID */
3332
$unregisterTestController(controllerId: string): void;
3333
/** Requests tests published to VS Code. */
3334
$subscribeToDiffs(): void;
3335
/** Stops requesting tests published to VS Code. */
3336
$unsubscribeFromDiffs(): void;
3337
/** Publishes that new tests were available on the given source. */
3338
$publishDiff(controllerId: string, diff: TestsDiffOp.Serialized[]): void;
3339
/** Gets coverage details from a test result. */
3340
$getCoverageDetails(resultId: string, taskIndex: number, uri: UriComponents, token: CancellationToken): Promise<CoverageDetails.Serialized[]>;
3341
3342
// --- test run configurations:
3343
3344
/** Called when a new test run configuration is available */
3345
$publishTestRunProfile(config: ITestRunProfile): void;
3346
/** Updates an existing test run configuration */
3347
$updateTestRunConfig(controllerId: string, configId: number, update: Partial<ITestRunProfile>): void;
3348
/** Removes a previously-published test run config */
3349
$removeTestProfile(controllerId: string, configId: number): void;
3350
3351
3352
// --- test run handling:
3353
3354
/** Request by an extension to run tests. */
3355
$runTests(req: ResolvedTestRunRequest, token: CancellationToken): Promise<string>;
3356
/**
3357
* Adds tests to the run. The tests are given in descending depth. The first
3358
* item will be a previously-known test, or a test root.
3359
*/
3360
$addTestsToRun(controllerId: string, runId: string, tests: ITestItem.Serialized[]): void;
3361
/** Updates the state of a test run in the given run. */
3362
$updateTestStateInRun(runId: string, taskId: string, testId: string, state: TestResultState, duration?: number): void;
3363
/** Appends a message to a test in the run. */
3364
$appendTestMessagesInRun(runId: string, taskId: string, testId: string, messages: ITestMessage.Serialized[]): void;
3365
/** Appends raw output to the test run.. */
3366
$appendOutputToRun(runId: string, taskId: string, output: VSBuffer, location?: ILocationDto, testId?: string): void;
3367
/** Triggered when coverage is added to test results. */
3368
$appendCoverage(runId: string, taskId: string, coverage: IFileCoverage.Serialized): void;
3369
/** Signals a task in a test run started. */
3370
$startedTestRunTask(runId: string, task: ITestRunTask): void;
3371
/** Signals a task in a test run ended. */
3372
$finishedTestRunTask(runId: string, taskId: string): void;
3373
/** Start a new extension-provided test run. */
3374
$startedExtensionTestRun(req: ExtensionRunTestsRequest): void;
3375
/** Signals that an extension-provided test run finished. */
3376
$finishedExtensionTestRun(runId: string): void;
3377
/** Marks a test (or controller) as retired in all results. */
3378
$markTestRetired(testIds: string[] | undefined): void;
3379
}
3380
3381
export type ChatStatusItemDto = {
3382
id: string;
3383
title: string | { label: string; link: string };
3384
description: string;
3385
detail: string | undefined;
3386
};
3387
3388
export interface MainThreadChatStatusShape {
3389
$setEntry(id: string, entry: ChatStatusItemDto): void;
3390
$disposeEntry(id: string): void;
3391
}
3392
3393
export type IChatSessionHistoryItemDto = {
3394
id?: string;
3395
type: 'request';
3396
prompt: string;
3397
participant: string;
3398
command?: string;
3399
variableData?: Dto<IChatRequestVariableData>;
3400
} | {
3401
type: 'response';
3402
parts: IChatProgressDto[];
3403
participant: string;
3404
};
3405
3406
export interface ChatSessionOptionUpdateDto {
3407
readonly optionId: string;
3408
readonly value: string | IChatSessionProviderOptionItem | undefined;
3409
}
3410
3411
export interface ChatSessionOptionUpdateDto2 {
3412
readonly optionId: string;
3413
readonly value: string | IChatSessionProviderOptionItem;
3414
}
3415
3416
export interface ChatSessionDto {
3417
id: string;
3418
resource: UriComponents;
3419
history: Array<IChatSessionHistoryItemDto>;
3420
hasActiveResponseCallback: boolean;
3421
hasRequestHandler: boolean;
3422
supportsInterruption: boolean;
3423
options?: Record<string, string | IChatSessionProviderOptionItem>;
3424
}
3425
3426
export interface IChatSessionProviderOptions {
3427
optionGroups?: IChatSessionProviderOptionGroup[];
3428
}
3429
3430
export interface MainThreadChatSessionsShape extends IDisposable {
3431
$registerChatSessionItemProvider(handle: number, chatSessionType: string): void;
3432
$unregisterChatSessionItemProvider(handle: number): void;
3433
$onDidChangeChatSessionItems(handle: number): void;
3434
$onDidCommitChatSessionItem(handle: number, original: UriComponents, modified: UriComponents): void;
3435
$registerChatSessionContentProvider(handle: number, chatSessionScheme: string): void;
3436
$unregisterChatSessionContentProvider(handle: number): void;
3437
$onDidChangeChatSessionOptions(handle: number, sessionResource: UriComponents, updates: ReadonlyArray<ChatSessionOptionUpdateDto2>): void;
3438
$onDidChangeChatSessionProviderOptions(handle: number): void;
3439
3440
$handleProgressChunk(handle: number, sessionResource: UriComponents, requestId: string, chunks: (IChatProgressDto | [IChatProgressDto, number])[]): Promise<void>;
3441
$handleAnchorResolve(handle: number, sessionResource: UriComponents, requestId: string, requestHandle: string, anchor: Dto<IChatContentInlineReference>): void;
3442
$handleProgressComplete(handle: number, sessionResource: UriComponents, requestId: string): void;
3443
}
3444
3445
export interface ExtHostChatSessionsShape {
3446
$provideChatSessionItems(providerHandle: number, token: CancellationToken): Promise<Dto<IChatSessionItem>[]>;
3447
$onDidChangeChatSessionItemState(providerHandle: number, sessionResource: UriComponents, archived: boolean): void;
3448
3449
$provideChatSessionContent(providerHandle: number, sessionResource: UriComponents, token: CancellationToken): Promise<ChatSessionDto>;
3450
$interruptChatSessionActiveResponse(providerHandle: number, sessionResource: UriComponents, requestId: string): Promise<void>;
3451
$disposeChatSessionContent(providerHandle: number, sessionResource: UriComponents): Promise<void>;
3452
$invokeChatSessionRequestHandler(providerHandle: number, sessionResource: UriComponents, request: IChatAgentRequest, history: any[], token: CancellationToken): Promise<IChatAgentResult>;
3453
$provideChatSessionProviderOptions(providerHandle: number, token: CancellationToken): Promise<IChatSessionProviderOptions | undefined>;
3454
$invokeOptionGroupSearch(providerHandle: number, optionGroupId: string, query: string, token: CancellationToken): Promise<IChatSessionProviderOptionItem[]>;
3455
$provideHandleOptionsChange(providerHandle: number, sessionResource: UriComponents, updates: ReadonlyArray<ChatSessionOptionUpdateDto>, token: CancellationToken): Promise<void>;
3456
}
3457
3458
// --- proxy identifiers
3459
3460
export const MainContext = {
3461
MainThreadAuthentication: createProxyIdentifier<MainThreadAuthenticationShape>('MainThreadAuthentication'),
3462
MainThreadBulkEdits: createProxyIdentifier<MainThreadBulkEditsShape>('MainThreadBulkEdits'),
3463
MainThreadLanguageModels: createProxyIdentifier<MainThreadLanguageModelsShape>('MainThreadLanguageModels'),
3464
MainThreadEmbeddings: createProxyIdentifier<MainThreadEmbeddingsShape>('MainThreadEmbeddings'),
3465
MainThreadChatAgents2: createProxyIdentifier<MainThreadChatAgentsShape2>('MainThreadChatAgents2'),
3466
MainThreadCodeMapper: createProxyIdentifier<MainThreadCodeMapperShape>('MainThreadCodeMapper'),
3467
MainThreadLanguageModelTools: createProxyIdentifier<MainThreadLanguageModelToolsShape>('MainThreadChatSkills'),
3468
MainThreadClipboard: createProxyIdentifier<MainThreadClipboardShape>('MainThreadClipboard'),
3469
MainThreadCommands: createProxyIdentifier<MainThreadCommandsShape>('MainThreadCommands'),
3470
MainThreadComments: createProxyIdentifier<MainThreadCommentsShape>('MainThreadComments'),
3471
MainThreadConfiguration: createProxyIdentifier<MainThreadConfigurationShape>('MainThreadConfiguration'),
3472
MainThreadConsole: createProxyIdentifier<MainThreadConsoleShape>('MainThreadConsole'),
3473
MainThreadDebugService: createProxyIdentifier<MainThreadDebugServiceShape>('MainThreadDebugService'),
3474
MainThreadDecorations: createProxyIdentifier<MainThreadDecorationsShape>('MainThreadDecorations'),
3475
MainThreadDiagnostics: createProxyIdentifier<MainThreadDiagnosticsShape>('MainThreadDiagnostics'),
3476
MainThreadDialogs: createProxyIdentifier<MainThreadDiaglogsShape>('MainThreadDiaglogs'),
3477
MainThreadDocuments: createProxyIdentifier<MainThreadDocumentsShape>('MainThreadDocuments'),
3478
MainThreadDocumentContentProviders: createProxyIdentifier<MainThreadDocumentContentProvidersShape>('MainThreadDocumentContentProviders'),
3479
MainThreadTextEditors: createProxyIdentifier<MainThreadTextEditorsShape>('MainThreadTextEditors'),
3480
MainThreadEditorInsets: createProxyIdentifier<MainThreadEditorInsetsShape>('MainThreadEditorInsets'),
3481
MainThreadEditorTabs: createProxyIdentifier<MainThreadEditorTabsShape>('MainThreadEditorTabs'),
3482
MainThreadErrors: createProxyIdentifier<MainThreadErrorsShape>('MainThreadErrors'),
3483
MainThreadTreeViews: createProxyIdentifier<MainThreadTreeViewsShape>('MainThreadTreeViews'),
3484
MainThreadDownloadService: createProxyIdentifier<MainThreadDownloadServiceShape>('MainThreadDownloadService'),
3485
MainThreadLanguageFeatures: createProxyIdentifier<MainThreadLanguageFeaturesShape>('MainThreadLanguageFeatures'),
3486
MainThreadLanguages: createProxyIdentifier<MainThreadLanguagesShape>('MainThreadLanguages'),
3487
MainThreadLogger: createProxyIdentifier<MainThreadLoggerShape>('MainThreadLogger'),
3488
MainThreadMessageService: createProxyIdentifier<MainThreadMessageServiceShape>('MainThreadMessageService'),
3489
MainThreadOutputService: createProxyIdentifier<MainThreadOutputServiceShape>('MainThreadOutputService'),
3490
MainThreadProgress: createProxyIdentifier<MainThreadProgressShape>('MainThreadProgress'),
3491
MainThreadQuickDiff: createProxyIdentifier<MainThreadQuickDiffShape>('MainThreadQuickDiff'),
3492
MainThreadQuickOpen: createProxyIdentifier<MainThreadQuickOpenShape>('MainThreadQuickOpen'),
3493
MainThreadStatusBar: createProxyIdentifier<MainThreadStatusBarShape>('MainThreadStatusBar'),
3494
MainThreadSecretState: createProxyIdentifier<MainThreadSecretStateShape>('MainThreadSecretState'),
3495
MainThreadStorage: createProxyIdentifier<MainThreadStorageShape>('MainThreadStorage'),
3496
MainThreadSpeech: createProxyIdentifier<MainThreadSpeechShape>('MainThreadSpeechProvider'),
3497
MainThreadTelemetry: createProxyIdentifier<MainThreadTelemetryShape>('MainThreadTelemetry'),
3498
MainThreadMeteredConnection: createProxyIdentifier<MainThreadMeteredConnectionShape>('MainThreadMeteredConnection'),
3499
MainThreadTerminalService: createProxyIdentifier<MainThreadTerminalServiceShape>('MainThreadTerminalService'),
3500
MainThreadTerminalShellIntegration: createProxyIdentifier<MainThreadTerminalShellIntegrationShape>('MainThreadTerminalShellIntegration'),
3501
MainThreadWebviews: createProxyIdentifier<MainThreadWebviewsShape>('MainThreadWebviews'),
3502
MainThreadWebviewPanels: createProxyIdentifier<MainThreadWebviewPanelsShape>('MainThreadWebviewPanels'),
3503
MainThreadWebviewViews: createProxyIdentifier<MainThreadWebviewViewsShape>('MainThreadWebviewViews'),
3504
MainThreadCustomEditors: createProxyIdentifier<MainThreadCustomEditorsShape>('MainThreadCustomEditors'),
3505
MainThreadUrls: createProxyIdentifier<MainThreadUrlsShape>('MainThreadUrls'),
3506
MainThreadUriOpeners: createProxyIdentifier<MainThreadUriOpenersShape>('MainThreadUriOpeners'),
3507
MainThreadProfileContentHandlers: createProxyIdentifier<MainThreadProfileContentHandlersShape>('MainThreadProfileContentHandlers'),
3508
MainThreadWorkspace: createProxyIdentifier<MainThreadWorkspaceShape>('MainThreadWorkspace'),
3509
MainThreadFileSystem: createProxyIdentifier<MainThreadFileSystemShape>('MainThreadFileSystem'),
3510
MainThreadFileSystemEventService: createProxyIdentifier<MainThreadFileSystemEventServiceShape>('MainThreadFileSystemEventService'),
3511
MainThreadExtensionService: createProxyIdentifier<MainThreadExtensionServiceShape>('MainThreadExtensionService'),
3512
MainThreadSCM: createProxyIdentifier<MainThreadSCMShape>('MainThreadSCM'),
3513
MainThreadSearch: createProxyIdentifier<MainThreadSearchShape>('MainThreadSearch'),
3514
MainThreadShare: createProxyIdentifier<MainThreadShareShape>('MainThreadShare'),
3515
MainThreadTask: createProxyIdentifier<MainThreadTaskShape>('MainThreadTask'),
3516
MainThreadWindow: createProxyIdentifier<MainThreadWindowShape>('MainThreadWindow'),
3517
MainThreadPower: createProxyIdentifier<MainThreadPowerShape>('MainThreadPower'),
3518
MainThreadLabelService: createProxyIdentifier<MainThreadLabelServiceShape>('MainThreadLabelService'),
3519
MainThreadNotebook: createProxyIdentifier<MainThreadNotebookShape>('MainThreadNotebook'),
3520
MainThreadNotebookDocuments: createProxyIdentifier<MainThreadNotebookDocumentsShape>('MainThreadNotebookDocumentsShape'),
3521
MainThreadNotebookEditors: createProxyIdentifier<MainThreadNotebookEditorsShape>('MainThreadNotebookEditorsShape'),
3522
MainThreadNotebookKernels: createProxyIdentifier<MainThreadNotebookKernelsShape>('MainThreadNotebookKernels'),
3523
MainThreadNotebookRenderers: createProxyIdentifier<MainThreadNotebookRenderersShape>('MainThreadNotebookRenderers'),
3524
MainThreadInteractive: createProxyIdentifier<MainThreadInteractiveShape>('MainThreadInteractive'),
3525
MainThreadTheming: createProxyIdentifier<MainThreadThemingShape>('MainThreadTheming'),
3526
MainThreadTunnelService: createProxyIdentifier<MainThreadTunnelServiceShape>('MainThreadTunnelService'),
3527
MainThreadManagedSockets: createProxyIdentifier<MainThreadManagedSocketsShape>('MainThreadManagedSockets'),
3528
MainThreadTimeline: createProxyIdentifier<MainThreadTimelineShape>('MainThreadTimeline'),
3529
MainThreadTesting: createProxyIdentifier<MainThreadTestingShape>('MainThreadTesting'),
3530
MainThreadLocalization: createProxyIdentifier<MainThreadLocalizationShape>('MainThreadLocalizationShape'),
3531
MainThreadMcp: createProxyIdentifier<MainThreadMcpShape>('MainThreadMcpShape'),
3532
MainThreadAiRelatedInformation: createProxyIdentifier<MainThreadAiRelatedInformationShape>('MainThreadAiRelatedInformation'),
3533
MainThreadAiEmbeddingVector: createProxyIdentifier<MainThreadAiEmbeddingVectorShape>('MainThreadAiEmbeddingVector'),
3534
MainThreadChatStatus: createProxyIdentifier<MainThreadChatStatusShape>('MainThreadChatStatus'),
3535
MainThreadAiSettingsSearch: createProxyIdentifier<MainThreadAiSettingsSearchShape>('MainThreadAiSettingsSearch'),
3536
MainThreadDataChannels: createProxyIdentifier<MainThreadDataChannelsShape>('MainThreadDataChannels'),
3537
MainThreadHooks: createProxyIdentifier<MainThreadHooksShape>('MainThreadHooks'),
3538
MainThreadChatSessions: createProxyIdentifier<MainThreadChatSessionsShape>('MainThreadChatSessions'),
3539
MainThreadChatOutputRenderer: createProxyIdentifier<MainThreadChatOutputRendererShape>('MainThreadChatOutputRenderer'),
3540
MainThreadChatContext: createProxyIdentifier<MainThreadChatContextShape>('MainThreadChatContext'),
3541
};
3542
3543
export const ExtHostContext = {
3544
ExtHostCodeMapper: createProxyIdentifier<ExtHostCodeMapperShape>('ExtHostCodeMapper'),
3545
ExtHostCommands: createProxyIdentifier<ExtHostCommandsShape>('ExtHostCommands'),
3546
ExtHostConfiguration: createProxyIdentifier<ExtHostConfigurationShape>('ExtHostConfiguration'),
3547
ExtHostDiagnostics: createProxyIdentifier<ExtHostDiagnosticsShape>('ExtHostDiagnostics'),
3548
ExtHostDebugService: createProxyIdentifier<ExtHostDebugServiceShape>('ExtHostDebugService'),
3549
ExtHostDecorations: createProxyIdentifier<ExtHostDecorationsShape>('ExtHostDecorations'),
3550
ExtHostDocumentsAndEditors: createProxyIdentifier<ExtHostDocumentsAndEditorsShape>('ExtHostDocumentsAndEditors'),
3551
ExtHostDocuments: createProxyIdentifier<ExtHostDocumentsShape>('ExtHostDocuments'),
3552
ExtHostDocumentContentProviders: createProxyIdentifier<ExtHostDocumentContentProvidersShape>('ExtHostDocumentContentProviders'),
3553
ExtHostDocumentSaveParticipant: createProxyIdentifier<ExtHostDocumentSaveParticipantShape>('ExtHostDocumentSaveParticipant'),
3554
ExtHostEditors: createProxyIdentifier<ExtHostEditorsShape>('ExtHostEditors'),
3555
ExtHostTreeViews: createProxyIdentifier<ExtHostTreeViewsShape>('ExtHostTreeViews'),
3556
ExtHostFileSystem: createProxyIdentifier<ExtHostFileSystemShape>('ExtHostFileSystem'),
3557
ExtHostFileSystemInfo: createProxyIdentifier<ExtHostFileSystemInfoShape>('ExtHostFileSystemInfo'),
3558
ExtHostFileSystemEventService: createProxyIdentifier<ExtHostFileSystemEventServiceShape>('ExtHostFileSystemEventService'),
3559
ExtHostLanguages: createProxyIdentifier<ExtHostLanguagesShape>('ExtHostLanguages'),
3560
ExtHostLanguageFeatures: createProxyIdentifier<ExtHostLanguageFeaturesShape>('ExtHostLanguageFeatures'),
3561
ExtHostQuickOpen: createProxyIdentifier<ExtHostQuickOpenShape>('ExtHostQuickOpen'),
3562
ExtHostQuickDiff: createProxyIdentifier<ExtHostQuickDiffShape>('ExtHostQuickDiff'),
3563
ExtHostStatusBar: createProxyIdentifier<ExtHostStatusBarShape>('ExtHostStatusBar'),
3564
ExtHostShare: createProxyIdentifier<ExtHostShareShape>('ExtHostShare'),
3565
ExtHostExtensionService: createProxyIdentifier<ExtHostExtensionServiceShape>('ExtHostExtensionService'),
3566
ExtHostLogLevelServiceShape: createProxyIdentifier<ExtHostLogLevelServiceShape>('ExtHostLogLevelServiceShape'),
3567
ExtHostTerminalService: createProxyIdentifier<ExtHostTerminalServiceShape>('ExtHostTerminalService'),
3568
ExtHostTerminalShellIntegration: createProxyIdentifier<ExtHostTerminalShellIntegrationShape>('ExtHostTerminalShellIntegration'),
3569
ExtHostSCM: createProxyIdentifier<ExtHostSCMShape>('ExtHostSCM'),
3570
ExtHostSearch: createProxyIdentifier<ExtHostSearchShape>('ExtHostSearch'),
3571
ExtHostTask: createProxyIdentifier<ExtHostTaskShape>('ExtHostTask'),
3572
ExtHostWorkspace: createProxyIdentifier<ExtHostWorkspaceShape>('ExtHostWorkspace'),
3573
ExtHostWindow: createProxyIdentifier<ExtHostWindowShape>('ExtHostWindow'),
3574
ExtHostPower: createProxyIdentifier<ExtHostPowerShape>('ExtHostPower'),
3575
ExtHostWebviews: createProxyIdentifier<ExtHostWebviewsShape>('ExtHostWebviews'),
3576
ExtHostWebviewPanels: createProxyIdentifier<ExtHostWebviewPanelsShape>('ExtHostWebviewPanels'),
3577
ExtHostCustomEditors: createProxyIdentifier<ExtHostCustomEditorsShape>('ExtHostCustomEditors'),
3578
ExtHostWebviewViews: createProxyIdentifier<ExtHostWebviewViewsShape>('ExtHostWebviewViews'),
3579
ExtHostEditorInsets: createProxyIdentifier<ExtHostEditorInsetsShape>('ExtHostEditorInsets'),
3580
ExtHostEditorTabs: createProxyIdentifier<IExtHostEditorTabsShape>('ExtHostEditorTabs'),
3581
ExtHostProgress: createProxyIdentifier<ExtHostProgressShape>('ExtHostProgress'),
3582
ExtHostComments: createProxyIdentifier<ExtHostCommentsShape>('ExtHostComments'),
3583
ExtHostSecretState: createProxyIdentifier<ExtHostSecretStateShape>('ExtHostSecretState'),
3584
ExtHostStorage: createProxyIdentifier<ExtHostStorageShape>('ExtHostStorage'),
3585
ExtHostUrls: createProxyIdentifier<ExtHostUrlsShape>('ExtHostUrls'),
3586
ExtHostUriOpeners: createProxyIdentifier<ExtHostUriOpenersShape>('ExtHostUriOpeners'),
3587
ExtHostChatOutputRenderer: createProxyIdentifier<ExtHostChatOutputRendererShape>('ExtHostChatOutputRenderer'),
3588
ExtHostProfileContentHandlers: createProxyIdentifier<ExtHostProfileContentHandlersShape>('ExtHostProfileContentHandlers'),
3589
ExtHostOutputService: createProxyIdentifier<ExtHostOutputServiceShape>('ExtHostOutputService'),
3590
ExtHostLabelService: createProxyIdentifier<ExtHostLabelServiceShape>('ExtHostLabelService'),
3591
ExtHostNotebook: createProxyIdentifier<ExtHostNotebookShape>('ExtHostNotebook'),
3592
ExtHostNotebookDocuments: createProxyIdentifier<ExtHostNotebookDocumentsShape>('ExtHostNotebookDocuments'),
3593
ExtHostNotebookEditors: createProxyIdentifier<ExtHostNotebookEditorsShape>('ExtHostNotebookEditors'),
3594
ExtHostNotebookKernels: createProxyIdentifier<ExtHostNotebookKernelsShape>('ExtHostNotebookKernels'),
3595
ExtHostNotebookRenderers: createProxyIdentifier<ExtHostNotebookRenderersShape>('ExtHostNotebookRenderers'),
3596
ExtHostNotebookDocumentSaveParticipant: createProxyIdentifier<ExtHostNotebookDocumentSaveParticipantShape>('ExtHostNotebookDocumentSaveParticipant'),
3597
ExtHostInteractive: createProxyIdentifier<ExtHostInteractiveShape>('ExtHostInteractive'),
3598
ExtHostChatAgents2: createProxyIdentifier<ExtHostChatAgentsShape2>('ExtHostChatAgents'),
3599
ExtHostLanguageModelTools: createProxyIdentifier<ExtHostLanguageModelToolsShape>('ExtHostChatSkills'),
3600
ExtHostChatProvider: createProxyIdentifier<ExtHostLanguageModelsShape>('ExtHostChatProvider'),
3601
ExtHostChatContext: createProxyIdentifier<ExtHostChatContextShape>('ExtHostChatContext'),
3602
ExtHostSpeech: createProxyIdentifier<ExtHostSpeechShape>('ExtHostSpeech'),
3603
ExtHostEmbeddings: createProxyIdentifier<ExtHostEmbeddingsShape>('ExtHostEmbeddings'),
3604
ExtHostAiRelatedInformation: createProxyIdentifier<ExtHostAiRelatedInformationShape>('ExtHostAiRelatedInformation'),
3605
ExtHostAiEmbeddingVector: createProxyIdentifier<ExtHostAiEmbeddingVectorShape>('ExtHostAiEmbeddingVector'),
3606
ExtHostAiSettingsSearch: createProxyIdentifier<ExtHostAiSettingsSearchShape>('ExtHostAiSettingsSearch'),
3607
ExtHostTheming: createProxyIdentifier<ExtHostThemingShape>('ExtHostTheming'),
3608
ExtHostTunnelService: createProxyIdentifier<ExtHostTunnelServiceShape>('ExtHostTunnelService'),
3609
ExtHostManagedSockets: createProxyIdentifier<ExtHostManagedSocketsShape>('ExtHostManagedSockets'),
3610
ExtHostAuthentication: createProxyIdentifier<ExtHostAuthenticationShape>('ExtHostAuthentication'),
3611
ExtHostTimeline: createProxyIdentifier<ExtHostTimelineShape>('ExtHostTimeline'),
3612
ExtHostTesting: createProxyIdentifier<ExtHostTestingShape>('ExtHostTesting'),
3613
ExtHostTelemetry: createProxyIdentifier<ExtHostTelemetryShape>('ExtHostTelemetry'),
3614
ExtHostMeteredConnection: createProxyIdentifier<ExtHostMeteredConnectionShape>('ExtHostMeteredConnection'),
3615
ExtHostLocalization: createProxyIdentifier<ExtHostLocalizationShape>('ExtHostLocalization'),
3616
ExtHostMcp: createProxyIdentifier<ExtHostMcpShape>('ExtHostMcp'),
3617
ExtHostHooks: createProxyIdentifier<ExtHostHooksShape>('ExtHostHooks'),
3618
ExtHostDataChannels: createProxyIdentifier<ExtHostDataChannelsShape>('ExtHostDataChannels'),
3619
ExtHostChatSessions: createProxyIdentifier<ExtHostChatSessionsShape>('ExtHostChatSessions'),
3620
};
3621
3622