Path: blob/main/src/vs/workbench/api/common/extHost.protocol.ts
3296 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import { VSBuffer } from '../../../base/common/buffer.js';6import { CancellationToken } from '../../../base/common/cancellation.js';7import { IRemoteConsoleLog } from '../../../base/common/console.js';8import { SerializedError } from '../../../base/common/errors.js';9import { IRelativePattern } from '../../../base/common/glob.js';10import { IMarkdownString } from '../../../base/common/htmlContent.js';11import { IJSONSchema } from '../../../base/common/jsonSchema.js';12import { IDisposable } from '../../../base/common/lifecycle.js';13import { IAuthorizationProtectedResourceMetadata, IAuthorizationServerMetadata, IAuthorizationTokenResponse } from '../../../base/common/oauth.js';14import * as performance from '../../../base/common/performance.js';15import Severity from '../../../base/common/severity.js';16import { ThemeColor, ThemeIcon } from '../../../base/common/themables.js';17import { URI, UriComponents, UriDto } from '../../../base/common/uri.js';18import { RenderLineNumbersType, TextEditorCursorStyle } from '../../../editor/common/config/editorOptions.js';19import { ISingleEditOperation } from '../../../editor/common/core/editOperation.js';20import { IPosition } from '../../../editor/common/core/position.js';21import { IRange } from '../../../editor/common/core/range.js';22import { ISelection, Selection } from '../../../editor/common/core/selection.js';23import { IChange } from '../../../editor/common/diff/legacyLinesDiffComputer.js';24import * as editorCommon from '../../../editor/common/editorCommon.js';25import { StandardTokenType } from '../../../editor/common/encodedTokenAttributes.js';26import * as languages from '../../../editor/common/languages.js';27import { CompletionItemLabel } from '../../../editor/common/languages.js';28import { CharacterPair, CommentRule, EnterAction } from '../../../editor/common/languages/languageConfiguration.js';29import { EndOfLineSequence } from '../../../editor/common/model.js';30import { EditSuggestionId } from '../../../editor/common/textModelEditSource.js';31import { ISerializedModelContentChangedEvent } from '../../../editor/common/textModelEvents.js';32import { IAccessibilityInformation } from '../../../platform/accessibility/common/accessibility.js';33import { ILocalizedString } from '../../../platform/action/common/action.js';34import { ConfigurationTarget, IConfigurationChange, IConfigurationData, IConfigurationOverrides } from '../../../platform/configuration/common/configuration.js';35import { ConfigurationScope } from '../../../platform/configuration/common/configurationRegistry.js';36import { IExtensionIdWithVersion } from '../../../platform/extensionManagement/common/extensionStorage.js';37import { ExtensionIdentifier, IExtensionDescription } from '../../../platform/extensions/common/extensions.js';38import * as files from '../../../platform/files/common/files.js';39import { ResourceLabelFormatter } from '../../../platform/label/common/label.js';40import { ILoggerOptions, ILoggerResource, LogLevel } from '../../../platform/log/common/log.js';41import { IMarkerData } from '../../../platform/markers/common/markers.js';42import { IProgressOptions, IProgressStep } from '../../../platform/progress/common/progress.js';43import * as quickInput from '../../../platform/quickinput/common/quickInput.js';44import { IRemoteConnectionData, TunnelDescription } from '../../../platform/remote/common/remoteAuthorityResolver.js';45import { AuthInfo, Credentials } from '../../../platform/request/common/request.js';46import { ClassifiedEvent, IGDPRProperty, OmitMetadata, StrictPropertyCheck } from '../../../platform/telemetry/common/gdprTypings.js';47import { TelemetryLevel } from '../../../platform/telemetry/common/telemetry.js';48import { ISerializableEnvironmentDescriptionMap, ISerializableEnvironmentVariableCollection } from '../../../platform/terminal/common/environmentVariable.js';49import { ICreateContributedTerminalProfileOptions, IProcessProperty, IProcessReadyWindowsPty, IShellLaunchConfigDto, ITerminalEnvironment, ITerminalLaunchError, ITerminalProfile, TerminalExitReason, TerminalLocation, TerminalShellType } from '../../../platform/terminal/common/terminal.js';50import { ProvidedPortAttributes, TunnelCreationOptions, TunnelOptions, TunnelPrivacyId, TunnelProviderFeatures } from '../../../platform/tunnel/common/tunnel.js';51import { EditSessionIdentityMatch } from '../../../platform/workspace/common/editSessions.js';52import { WorkspaceTrustRequestOptions } from '../../../platform/workspace/common/workspaceTrust.js';53import { SaveReason } from '../../common/editor.js';54import { IRevealOptions, ITreeItem, IViewBadge } from '../../common/views.js';55import { CallHierarchyItem } from '../../contrib/callHierarchy/common/callHierarchy.js';56import { IChatAgentMetadata, IChatAgentRequest, IChatAgentResult, UserSelectedTools } from '../../contrib/chat/common/chatAgents.js';57import { ICodeMapperRequest, ICodeMapperResult } from '../../contrib/chat/common/chatCodeMapperService.js';58import { IChatRelatedFile, IChatRelatedFileProviderMetadata as IChatRelatedFilesProviderMetadata, IChatRequestDraft } from '../../contrib/chat/common/chatEditingService.js';59import { IChatProgressHistoryResponseContent } from '../../contrib/chat/common/chatModel.js';60import { ChatResponseClearToPreviousToolInvocationReason, IChatContentInlineReference, IChatFollowup, IChatNotebookEdit, IChatProgress, IChatTask, IChatTaskDto, IChatUserActionEvent, IChatVoteAction } from '../../contrib/chat/common/chatService.js';61import { IChatSessionItem } from '../../contrib/chat/common/chatSessionsService.js';62import { IChatRequestVariableValue } from '../../contrib/chat/common/chatVariables.js';63import { ChatAgentLocation } from '../../contrib/chat/common/constants.js';64import { IChatMessage, IChatResponsePart, ILanguageModelChatMetadataAndIdentifier, ILanguageModelChatSelector } from '../../contrib/chat/common/languageModels.js';65import { IPreparedToolInvocation, IToolInvocation, IToolInvocationPreparationContext, IToolProgressStep, IToolResult, ToolDataSource } from '../../contrib/chat/common/languageModelToolsService.js';66import { DebugConfigurationProviderTriggerKind, IAdapterDescriptor, IConfig, IDebugSessionReplMode, IDebugTestRunReference, IDebugVisualization, IDebugVisualizationContext, IDebugVisualizationTreeItem, MainThreadDebugVisualization } from '../../contrib/debug/common/debug.js';67import { McpCollectionDefinition, McpConnectionState, McpServerDefinition, McpServerLaunch } from '../../contrib/mcp/common/mcpTypes.js';68import * as notebookCommon from '../../contrib/notebook/common/notebookCommon.js';69import { CellExecutionUpdateType } from '../../contrib/notebook/common/notebookExecutionService.js';70import { ICellExecutionComplete, ICellExecutionStateUpdate } from '../../contrib/notebook/common/notebookExecutionStateService.js';71import { ICellRange } from '../../contrib/notebook/common/notebookRange.js';72import { ISCMHistoryOptions } from '../../contrib/scm/common/history.js';73import { InputValidationType } from '../../contrib/scm/common/scm.js';74import { IWorkspaceSymbol, NotebookPriorityInfo } from '../../contrib/search/common/search.js';75import { IRawClosedNotebookFileMatch } from '../../contrib/search/common/searchNotebookHelpers.js';76import { IKeywordRecognitionEvent, ISpeechProviderMetadata, ISpeechToTextEvent, ITextToSpeechEvent } from '../../contrib/speech/common/speechService.js';77import { CoverageDetails, ExtensionRunTestsRequest, ICallProfileRunHandler, IFileCoverage, ISerializedTestResults, IStartControllerTests, ITestItem, ITestMessage, ITestRunProfile, ITestRunTask, ResolvedTestRunRequest, TestControllerCapability, TestMessageFollowupRequest, TestMessageFollowupResponse, TestResultState, TestsDiffOp } from '../../contrib/testing/common/testTypes.js';78import { Timeline, TimelineChangeEvent, TimelineOptions, TimelineProviderDescriptor } from '../../contrib/timeline/common/timeline.js';79import { TypeHierarchyItem } from '../../contrib/typeHierarchy/common/typeHierarchy.js';80import { RelatedInformationResult, RelatedInformationType } from '../../services/aiRelatedInformation/common/aiRelatedInformation.js';81import { AiSettingsSearchProviderOptions, AiSettingsSearchResult } from '../../services/aiSettingsSearch/common/aiSettingsSearch.js';82import { AuthenticationSession, AuthenticationSessionAccount, AuthenticationSessionsChangeEvent, IAuthenticationCreateSessionOptions, IAuthenticationGetSessionsOptions } from '../../services/authentication/common/authentication.js';83import { EditorGroupColumn } from '../../services/editor/common/editorGroupColumn.js';84import { IExtensionDescriptionDelta, IStaticWorkspaceData } from '../../services/extensions/common/extensionHostProtocol.js';85import { IResolveAuthorityResult } from '../../services/extensions/common/extensionHostProxy.js';86import { ActivationKind, ExtensionActivationReason, MissingExtensionDependency } from '../../services/extensions/common/extensions.js';87import { Dto, IRPCProtocol, SerializableObjectWithBuffers, createProxyIdentifier } from '../../services/extensions/common/proxyIdentifier.js';88import { IInlineCompletionsUnificationState } from '../../services/inlineCompletions/common/inlineCompletionsUnification.js';89import { ILanguageStatus } from '../../services/languageStatus/common/languageStatusService.js';90import { OutputChannelUpdateMode } from '../../services/output/common/output.js';91import { CandidatePort } from '../../services/remote/common/tunnelModel.js';92import { IFileQueryBuilderOptions, ITextQueryBuilderOptions } from '../../services/search/common/queryBuilder.js';93import * as search from '../../services/search/common/search.js';94import { AISearchKeyword, TextSearchCompleteMessage } from '../../services/search/common/searchExtTypes.js';95import { ISaveProfileResult } from '../../services/userDataProfile/common/userDataProfile.js';96import { IExtHostDocumentSaveDelegate } from './extHostDocumentData.js';97import { TerminalShellExecutionCommandLineConfidence } from './extHostTypes.js';98import * as tasks from './shared/tasks.js';99100export interface IWorkspaceData extends IStaticWorkspaceData {101folders: { uri: UriComponents; name: string; index: number }[];102}103104export interface IConfigurationInitData extends IConfigurationData {105configurationScopes: [string, ConfigurationScope | undefined][];106}107108export interface IMainContext extends IRPCProtocol {109}110111// --- main thread112113export interface MainThreadClipboardShape extends IDisposable {114$readText(): Promise<string>;115$writeText(value: string): Promise<void>;116}117118export interface MainThreadCommandsShape extends IDisposable {119$registerCommand(id: string): void;120$unregisterCommand(id: string): void;121$fireCommandActivationEvent(id: string): void;122$executeCommand(id: string, args: any[] | SerializableObjectWithBuffers<any[]>, retry: boolean): Promise<unknown | undefined>;123$getCommands(): Promise<string[]>;124}125126export interface CommentProviderFeatures {127reactionGroup?: languages.CommentReaction[];128reactionHandler?: boolean;129options?: languages.CommentOptions;130}131132export interface CommentChanges {133readonly uniqueIdInThread: number;134readonly body: string | IMarkdownString;135readonly userName: string;136readonly userIconPath?: UriComponents;137readonly contextValue?: string;138readonly commentReactions?: languages.CommentReaction[];139readonly label?: string;140readonly mode?: languages.CommentMode;141readonly state?: languages.CommentState;142readonly timestamp?: string;143}144145export type CommentThreadChanges<T = IRange> = Partial<{146range: T | undefined;147label: string;148contextValue: string | null;149comments: CommentChanges[];150collapseState: languages.CommentThreadCollapsibleState;151canReply: boolean | languages.CommentAuthorInformation;152state: languages.CommentThreadState;153applicability: languages.CommentThreadApplicability;154isTemplate: boolean;155}>;156157export interface MainThreadCommentsShape extends IDisposable {158$registerCommentController(handle: number, id: string, label: string, extensionId: string): void;159$unregisterCommentController(handle: number): void;160$updateCommentControllerFeatures(handle: number, features: CommentProviderFeatures): void;161$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;162$updateCommentThread(handle: number, commentThreadHandle: number, threadId: string, resource: UriComponents, changes: CommentThreadChanges): void;163$deleteCommentThread(handle: number, commentThreadHandle: number): void;164$updateCommentingRanges(handle: number, resourceHints?: languages.CommentingRangeResourceHint): void;165$revealCommentThread(handle: number, commentThreadHandle: number, commentUniqueIdInThread: number, options: languages.CommentThreadRevealOptions): Promise<void>;166$hideCommentThread(handle: number, commentThreadHandle: number): void;167}168169export interface AuthenticationForceNewSessionOptions {170detail?: string;171sessionToRecreate?: AuthenticationSession;172}173174export interface AuthenticationInteractiveOptions {175detail?: string;176learnMore?: UriComponents;177sessionToRecreate?: AuthenticationSession;178}179180export interface AuthenticationGetSessionOptions {181clearSessionPreference?: boolean;182createIfNone?: boolean | AuthenticationInteractiveOptions;183forceNewSession?: boolean | AuthenticationInteractiveOptions;184silent?: boolean;185account?: AuthenticationSessionAccount;186}187188export interface AuthenticationChallenge {189scheme: string;190params: Record<string, string>;191}192193export interface AuthenticationWWWAuthenticateRequest {194wwwAuthenticate: string;195scopes?: readonly string[];196}197198//TODO: I don't love the name of this interface...199export interface AuthenticationConstraint {200challenges: readonly AuthenticationChallenge[];201scopes?: readonly string[];202}203204export interface MainThreadAuthenticationShape extends IDisposable {205$registerAuthenticationProvider(id: string, label: string, supportsMultipleAccounts: boolean, supportedAuthorizationServers?: UriComponents[], supportsChallenges?: boolean): Promise<void>;206$unregisterAuthenticationProvider(id: string): Promise<void>;207$sendDidChangeSessions(providerId: string, event: AuthenticationSessionsChangeEvent): Promise<void>;208$getSession(providerId: string, scopeListOrRequest: ReadonlyArray<string> | AuthenticationWWWAuthenticateRequest, extensionId: string, extensionName: string, options: AuthenticationGetSessionOptions): Promise<AuthenticationSession | undefined>;209$getAccounts(providerId: string): Promise<ReadonlyArray<AuthenticationSessionAccount>>;210$removeSession(providerId: string, sessionId: string): Promise<void>;211$waitForUriHandler(expectedUri: UriComponents): Promise<UriComponents>;212$showContinueNotification(message: string): Promise<boolean>;213$showDeviceCodeModal(userCode: string, verificationUri: string): Promise<boolean>;214$promptForClientRegistration(authorizationServerUrl: string): Promise<{ clientId: string; clientSecret?: string } | undefined>;215$registerDynamicAuthenticationProvider(id: string, label: string, authorizationServer: UriComponents, clientId: string, clientSecret?: string): Promise<void>;216$setSessionsForDynamicAuthProvider(authProviderId: string, clientId: string, sessions: (IAuthorizationTokenResponse & { created_at: number })[]): Promise<void>;217$sendDidChangeDynamicProviderInfo({ providerId, clientId, authorizationServer, label, clientSecret }: { providerId: string; clientId?: string; authorizationServer?: UriComponents; label?: string; clientSecret?: string }): Promise<void>;218}219220export interface MainThreadSecretStateShape extends IDisposable {221$getPassword(extensionId: string, key: string): Promise<string | undefined>;222$setPassword(extensionId: string, key: string, value: string): Promise<void>;223$deletePassword(extensionId: string, key: string): Promise<void>;224$getKeys(extensionId: string): Promise<string[]>;225}226227export interface MainThreadConfigurationShape extends IDisposable {228$updateConfigurationOption(target: ConfigurationTarget | null, key: string, value: unknown, overrides: IConfigurationOverrides | undefined, scopeToLanguage: boolean | undefined): Promise<void>;229$removeConfigurationOption(target: ConfigurationTarget | null, key: string, overrides: IConfigurationOverrides | undefined, scopeToLanguage: boolean | undefined): Promise<void>;230}231232export interface MainThreadDiagnosticsShape extends IDisposable {233$changeMany(owner: string, entries: [UriComponents, IMarkerData[] | undefined][]): void;234$clear(owner: string): void;235}236237export interface MainThreadDialogOpenOptions {238defaultUri?: UriComponents;239openLabel?: string;240canSelectFiles?: boolean;241canSelectFolders?: boolean;242canSelectMany?: boolean;243filters?: { [name: string]: string[] };244title?: string;245allowUIResources?: boolean;246}247248export interface MainThreadDialogSaveOptions {249defaultUri?: UriComponents;250saveLabel?: string;251filters?: { [name: string]: string[] };252title?: string;253}254255export interface MainThreadDiaglogsShape extends IDisposable {256$showOpenDialog(options?: MainThreadDialogOpenOptions): Promise<UriComponents[] | undefined>;257$showSaveDialog(options?: MainThreadDialogSaveOptions): Promise<UriComponents | undefined>;258}259260export interface MainThreadDecorationsShape extends IDisposable {261$registerDecorationProvider(handle: number, label: string): void;262$unregisterDecorationProvider(handle: number): void;263$onDidChange(handle: number, resources: UriComponents[] | null): void;264}265266export interface MainThreadDocumentContentProvidersShape extends IDisposable {267$registerTextContentProvider(handle: number, scheme: string): void;268$unregisterTextContentProvider(handle: number): void;269$onVirtualDocumentChange(uri: UriComponents, value: string): Promise<void>;270}271272export interface MainThreadDocumentsShape extends IDisposable, IExtHostDocumentSaveDelegate {273$tryCreateDocument(options?: { language?: string; content?: string; encoding?: string }): Promise<UriComponents>;274$tryOpenDocument(uri: UriComponents, options?: { encoding?: string }): Promise<UriComponents>;275$trySaveDocument(uri: UriComponents): Promise<boolean>;276}277278export interface ITextEditorConfigurationUpdate {279tabSize?: number | 'auto';280indentSize?: number | 'tabSize';281insertSpaces?: boolean | 'auto';282cursorStyle?: TextEditorCursorStyle;283lineNumbers?: RenderLineNumbersType;284}285286export interface IResolvedTextEditorConfiguration {287tabSize: number;288indentSize: number;289originalIndentSize: number | 'tabSize';290insertSpaces: boolean;291cursorStyle: TextEditorCursorStyle;292lineNumbers: RenderLineNumbersType;293}294295export enum TextEditorRevealType {296Default = 0,297InCenter = 1,298InCenterIfOutsideViewport = 2,299AtTop = 3300}301302export interface IUndoStopOptions {303undoStopBefore: boolean;304undoStopAfter: boolean;305}306307export interface IApplyEditsOptions extends IUndoStopOptions {308setEndOfLine?: EndOfLineSequence;309}310311export interface ISnippetOptions extends IUndoStopOptions {312keepWhitespace?: boolean;313}314export interface ITextDocumentShowOptions {315position?: EditorGroupColumn;316preserveFocus?: boolean;317pinned?: boolean;318selection?: IRange;319}320321export interface MainThreadBulkEditsShape extends IDisposable {322$tryApplyWorkspaceEdit(workspaceEditDto: SerializableObjectWithBuffers<IWorkspaceEditDto>, undoRedoGroupId?: number, respectAutoSaveConfig?: boolean): Promise<boolean>;323}324325export interface MainThreadTextEditorsShape extends IDisposable {326$tryShowTextDocument(resource: UriComponents, options: ITextDocumentShowOptions): Promise<string | undefined>;327$registerTextEditorDecorationType(extensionId: ExtensionIdentifier, key: string, options: editorCommon.IDecorationRenderOptions): void;328$removeTextEditorDecorationType(key: string): void;329$tryShowEditor(id: string, position: EditorGroupColumn): Promise<void>;330$tryHideEditor(id: string): Promise<void>;331$trySetOptions(id: string, options: ITextEditorConfigurationUpdate): Promise<void>;332$trySetDecorations(id: string, key: string, ranges: editorCommon.IDecorationOptions[]): Promise<void>;333$trySetDecorationsFast(id: string, key: string, ranges: number[]): Promise<void>;334$tryRevealRange(id: string, range: IRange, revealType: TextEditorRevealType): Promise<void>;335$trySetSelections(id: string, selections: ISelection[]): Promise<void>;336$tryApplyEdits(id: string, modelVersionId: number, edits: ISingleEditOperation[], opts: IApplyEditsOptions): Promise<boolean>;337$tryInsertSnippet(id: string, modelVersionId: number, template: string, selections: readonly IRange[], opts: IUndoStopOptions): Promise<boolean>;338$getDiffInformation(id: string): Promise<IChange[]>;339}340341export interface MainThreadTreeViewsShape extends IDisposable {342$registerTreeViewDataProvider(treeViewId: string, options: { showCollapseAll: boolean; canSelectMany: boolean; dropMimeTypes: readonly string[]; dragMimeTypes: readonly string[]; hasHandleDrag: boolean; hasHandleDrop: boolean; manuallyManageCheckboxes: boolean }): Promise<void>;343$refresh(treeViewId: string, itemsToRefresh?: { [treeItemHandle: string]: ITreeItem }): Promise<void>;344$reveal(treeViewId: string, itemInfo: { item: ITreeItem; parentChain: ITreeItem[] } | undefined, options: IRevealOptions): Promise<void>;345$setMessage(treeViewId: string, message: string | IMarkdownString): void;346$setTitle(treeViewId: string, title: string, description: string | undefined): void;347$setBadge(treeViewId: string, badge: IViewBadge | undefined): void;348$resolveDropFileData(destinationViewId: string, requestId: number, dataItemId: string): Promise<VSBuffer>;349$disposeTree(treeViewId: string): Promise<void>;350}351352export interface MainThreadDownloadServiceShape extends IDisposable {353$download(uri: UriComponents, to: UriComponents): Promise<void>;354}355356export interface MainThreadErrorsShape extends IDisposable {357$onUnexpectedError(err: any | SerializedError): void;358}359360export interface MainThreadConsoleShape extends IDisposable {361$logExtensionHostMessage(msg: IRemoteConsoleLog): void;362}363364export interface IRegExpDto {365pattern: string;366flags?: string;367}368export interface IIndentationRuleDto {369decreaseIndentPattern: IRegExpDto;370increaseIndentPattern: IRegExpDto;371indentNextLinePattern?: IRegExpDto;372unIndentedLinePattern?: IRegExpDto;373}374export interface IOnEnterRuleDto {375beforeText: IRegExpDto;376afterText?: IRegExpDto;377previousLineText?: IRegExpDto;378action: EnterAction;379}380export interface ILanguageConfigurationDto {381comments?: CommentRule;382brackets?: CharacterPair[];383wordPattern?: IRegExpDto;384indentationRules?: IIndentationRuleDto;385onEnterRules?: IOnEnterRuleDto[];386__electricCharacterSupport?: {387brackets?: any;388docComment?: {389scope: string;390open: string;391lineStart: string;392close?: string;393};394};395__characterPairSupport?: {396autoClosingPairs: {397open: string;398close: string;399notIn?: string[];400}[];401};402autoClosingPairs?: {403open: string;404close: string;405notIn?: string[];406}[];407}408409export type GlobPattern = string | IRelativePattern;410411export interface IRelativePatternDto extends IRelativePattern {412baseUri: UriComponents;413}414415export interface IDocumentFilterDto {416$serialized: true;417language?: string;418scheme?: string;419pattern?: string | IRelativePattern;420exclusive?: boolean;421notebookType?: string;422isBuiltin?: boolean;423}424425export interface IShareableItemDto {426resourceUri: UriComponents;427selection?: IRange;428}429430export interface IDocumentContextItemDto {431readonly uri: UriComponents;432readonly version: number;433readonly ranges: IRange[];434}435436export interface IConversationItemDto {437readonly type: 'request' | 'response';438readonly message: string;439readonly references?: IDocumentContextItemDto[];440}441442export interface IMappedEditsContextDto {443documents: IDocumentContextItemDto[][];444conversation?: IConversationItemDto[];445}446447export interface ICodeBlockDto {448code: string;449resource: UriComponents;450}451452export interface IMappedEditsRequestDto {453readonly codeBlocks: ICodeBlockDto[];454readonly conversation?: IConversationItemDto[];455}456457export interface IMappedEditsResultDto {458readonly errorMessage?: string;459}460461export interface ISignatureHelpProviderMetadataDto {462readonly triggerCharacters: readonly string[];463readonly retriggerCharacters: readonly string[];464}465466export interface IdentifiableInlineCompletions extends languages.InlineCompletions<IdentifiableInlineCompletion> {467pid: number;468languageId: string;469}470471export interface IdentifiableInlineCompletion extends languages.InlineCompletion {472idx: number;473suggestionId: EditSuggestionId | undefined;474}475476export interface MainThreadLanguageFeaturesShape extends IDisposable {477$unregister(handle: number): void;478$registerDocumentSymbolProvider(handle: number, selector: IDocumentFilterDto[], label: string): void;479$registerCodeLensSupport(handle: number, selector: IDocumentFilterDto[], eventHandle: number | undefined): void;480$emitCodeLensEvent(eventHandle: number, event?: any): void;481$registerDefinitionSupport(handle: number, selector: IDocumentFilterDto[]): void;482$registerDeclarationSupport(handle: number, selector: IDocumentFilterDto[]): void;483$registerImplementationSupport(handle: number, selector: IDocumentFilterDto[]): void;484$registerTypeDefinitionSupport(handle: number, selector: IDocumentFilterDto[]): void;485$registerHoverProvider(handle: number, selector: IDocumentFilterDto[]): void;486$registerEvaluatableExpressionProvider(handle: number, selector: IDocumentFilterDto[]): void;487$registerInlineValuesProvider(handle: number, selector: IDocumentFilterDto[], eventHandle: number | undefined): void;488$emitInlineValuesEvent(eventHandle: number, event?: any): void;489$registerDocumentHighlightProvider(handle: number, selector: IDocumentFilterDto[]): void;490$registerMultiDocumentHighlightProvider(handle: number, selector: IDocumentFilterDto[]): void;491$registerLinkedEditingRangeProvider(handle: number, selector: IDocumentFilterDto[]): void;492$registerReferenceSupport(handle: number, selector: IDocumentFilterDto[]): void;493$registerCodeActionSupport(handle: number, selector: IDocumentFilterDto[], metadata: ICodeActionProviderMetadataDto, displayName: string, extensionID: string, supportsResolve: boolean): void;494$registerPasteEditProvider(handle: number, selector: IDocumentFilterDto[], metadata: IPasteEditProviderMetadataDto): void;495$registerDocumentFormattingSupport(handle: number, selector: IDocumentFilterDto[], extensionId: ExtensionIdentifier, displayName: string): void;496$registerRangeFormattingSupport(handle: number, selector: IDocumentFilterDto[], extensionId: ExtensionIdentifier, displayName: string, supportRanges: boolean): void;497$registerOnTypeFormattingSupport(handle: number, selector: IDocumentFilterDto[], autoFormatTriggerCharacters: string[], extensionId: ExtensionIdentifier): void;498$registerNavigateTypeSupport(handle: number, supportsResolve: boolean): void;499$registerRenameSupport(handle: number, selector: IDocumentFilterDto[], supportsResolveInitialValues: boolean): void;500$registerNewSymbolNamesProvider(handle: number, selector: IDocumentFilterDto[]): void;501$registerDocumentSemanticTokensProvider(handle: number, selector: IDocumentFilterDto[], legend: languages.SemanticTokensLegend, eventHandle: number | undefined): void;502$emitDocumentSemanticTokensEvent(eventHandle: number): void;503$registerDocumentRangeSemanticTokensProvider(handle: number, selector: IDocumentFilterDto[], legend: languages.SemanticTokensLegend): void;504$registerCompletionsProvider(handle: number, selector: IDocumentFilterDto[], triggerCharacters: string[], supportsResolveDetails: boolean, extensionId: ExtensionIdentifier): void;505$registerInlineCompletionsSupport(handle: number, selector: IDocumentFilterDto[], supportsHandleDidShowCompletionItem: boolean, extensionId: string, extensionVersion: string, yieldToId: string | undefined, yieldsToExtensionIds: string[], displayName: string | undefined, debounceDelayMs: number | undefined, excludesExtensionIds: string[], eventHandle: number | undefined): void;506$emitInlineCompletionsChange(handle: number): void;507$registerSignatureHelpProvider(handle: number, selector: IDocumentFilterDto[], metadata: ISignatureHelpProviderMetadataDto): void;508$registerInlayHintsProvider(handle: number, selector: IDocumentFilterDto[], supportsResolve: boolean, eventHandle: number | undefined, displayName: string | undefined): void;509$emitInlayHintsEvent(eventHandle: number): void;510$registerDocumentLinkProvider(handle: number, selector: IDocumentFilterDto[], supportsResolve: boolean): void;511$registerDocumentColorProvider(handle: number, selector: IDocumentFilterDto[]): void;512$registerFoldingRangeProvider(handle: number, selector: IDocumentFilterDto[], extensionId: ExtensionIdentifier, eventHandle: number | undefined): void;513$emitFoldingRangeEvent(eventHandle: number, event?: any): void;514$registerSelectionRangeProvider(handle: number, selector: IDocumentFilterDto[]): void;515$registerCallHierarchyProvider(handle: number, selector: IDocumentFilterDto[]): void;516$registerTypeHierarchyProvider(handle: number, selector: IDocumentFilterDto[]): void;517$registerDocumentOnDropEditProvider(handle: number, selector: IDocumentFilterDto[], metadata?: IDocumentDropEditProviderMetadata): void;518$resolvePasteFileData(handle: number, requestId: number, dataId: string): Promise<VSBuffer>;519$resolveDocumentOnDropFileData(handle: number, requestId: number, dataId: string): Promise<VSBuffer>;520$setLanguageConfiguration(handle: number, languageId: string, configuration: ILanguageConfigurationDto): void;521}522523export interface MainThreadLanguagesShape extends IDisposable {524$changeLanguage(resource: UriComponents, languageId: string): Promise<void>;525$tokensAtPosition(resource: UriComponents, position: IPosition): Promise<undefined | { type: StandardTokenType; range: IRange }>;526$setLanguageStatus(handle: number, status: ILanguageStatus): void;527$removeLanguageStatus(handle: number): void;528}529530export interface MainThreadMessageOptions {531source?: { identifier: ExtensionIdentifier; label: string };532modal?: boolean;533detail?: string;534useCustom?: boolean;535}536537export interface MainThreadMessageServiceShape extends IDisposable {538$showMessage(severity: Severity, message: string, options: MainThreadMessageOptions, commands: { title: string; isCloseAffordance: boolean; handle: number }[]): Promise<number | undefined>;539}540541export interface MainThreadOutputServiceShape extends IDisposable {542$register(label: string, file: UriComponents, languageId: string | undefined, extensionId: string): Promise<string>;543$update(channelId: string, mode: OutputChannelUpdateMode, till?: number): Promise<void>;544$reveal(channelId: string, preserveFocus: boolean): Promise<void>;545$close(channelId: string): Promise<void>;546$dispose(channelId: string): Promise<void>;547}548549export interface MainThreadProgressShape extends IDisposable {550551$startProgress(handle: number, options: IProgressOptions, extensionId?: string): Promise<void>;552$progressReport(handle: number, message: IProgressStep): void;553$progressEnd(handle: number): void;554}555556/**557* A terminal that is created on the extension host side is temporarily assigned558* a UUID by the extension host that created it. Once the renderer side has assigned559* a real numeric id, the numeric id will be used.560*561* All other terminals (that are not created on the extension host side) always562* use the numeric id.563*/564export type ExtHostTerminalIdentifier = number | string;565566export interface TerminalLaunchConfig {567name?: string;568shellPath?: string;569shellArgs?: string[] | string;570cwd?: string | UriComponents;571env?: ITerminalEnvironment;572icon?: URI | { light: URI; dark: URI } | ThemeIcon;573color?: string;574initialText?: string;575waitOnExit?: boolean;576strictEnv?: boolean;577hideFromUser?: boolean;578isExtensionCustomPtyTerminal?: boolean;579forceShellIntegration?: boolean;580isFeatureTerminal?: boolean;581isExtensionOwnedTerminal?: boolean;582useShellEnvironment?: boolean;583location?: TerminalLocation | { viewColumn: number; preserveFocus?: boolean } | { parentTerminal: ExtHostTerminalIdentifier } | { splitActiveTerminal: boolean };584isTransient?: boolean;585shellIntegrationNonce?: string;586}587588589export interface MainThreadTerminalServiceShape extends IDisposable {590$createTerminal(extHostTerminalId: string, config: TerminalLaunchConfig): Promise<void>;591$dispose(id: ExtHostTerminalIdentifier): void;592$hide(id: ExtHostTerminalIdentifier): void;593$sendText(id: ExtHostTerminalIdentifier, text: string, shouldExecute: boolean): void;594$show(id: ExtHostTerminalIdentifier, preserveFocus: boolean): void;595$registerProcessSupport(isSupported: boolean): void;596$registerProfileProvider(id: string, extensionIdentifier: string): void;597$unregisterProfileProvider(id: string): void;598$registerCompletionProvider(id: string, extensionIdentifier: string, ...triggerCharacters: string[]): void;599$unregisterCompletionProvider(id: string): void;600$registerQuickFixProvider(id: string, extensionIdentifier: string): void;601$unregisterQuickFixProvider(id: string): void;602$setEnvironmentVariableCollection(extensionIdentifier: string, persistent: boolean, collection: ISerializableEnvironmentVariableCollection | undefined, descriptionMap: ISerializableEnvironmentDescriptionMap): void;603604// Optional event toggles605$startSendingDataEvents(): void;606$stopSendingDataEvents(): void;607$startSendingCommandEvents(): void;608$stopSendingCommandEvents(): void;609$startLinkProvider(): void;610$stopLinkProvider(): void;611612// Process613$sendProcessData(terminalId: number, data: string): void;614$sendProcessReady(terminalId: number, pid: number, cwd: string, windowsPty: IProcessReadyWindowsPty | undefined): void;615$sendProcessProperty(terminalId: number, property: IProcessProperty<any>): void;616$sendProcessExit(terminalId: number, exitCode: number | undefined): void;617}618619export interface MainThreadTerminalShellIntegrationShape extends IDisposable {620$executeCommand(terminalId: number, commandLine: string): void;621}622623export type TransferQuickPickItemOrSeparator = TransferQuickPickItem | quickInput.IQuickPickSeparator;624export interface TransferQuickPickItem {625handle: number;626627// shared properties from IQuickPickItem628type?: 'item';629label: string;630iconPath?: { light?: URI; dark: URI };631iconClass?: string;632description?: string;633detail?: string;634picked?: boolean;635alwaysShow?: boolean;636buttons?: TransferQuickInputButton[];637}638639export interface TransferQuickInputButton extends quickInput.IQuickInputButton {640handle: number;641}642643export type TransferQuickInput = TransferQuickPick | TransferInputBox;644645export interface BaseTransferQuickInput {646647[key: string]: any;648649id: number;650651title?: string;652653type?: 'quickPick' | 'inputBox';654655enabled?: boolean;656657busy?: boolean;658659visible?: boolean;660}661662export interface TransferQuickPick extends BaseTransferQuickInput {663664type?: 'quickPick';665666value?: string;667668placeholder?: string;669670buttons?: TransferQuickInputButton[];671672items?: TransferQuickPickItemOrSeparator[];673674activeItems?: number[];675676selectedItems?: number[];677678canSelectMany?: boolean;679680ignoreFocusOut?: boolean;681682matchOnDescription?: boolean;683684matchOnDetail?: boolean;685686sortByLabel?: boolean;687}688689export interface TransferInputBox extends BaseTransferQuickInput {690691type?: 'inputBox';692693value?: string;694695valueSelection?: Readonly<[number, number]>;696697placeholder?: string;698699password?: boolean;700701buttons?: TransferQuickInputButton[];702703prompt?: string;704705validationMessage?: string;706}707708export interface IInputBoxOptions {709title?: string;710value?: string;711valueSelection?: Readonly<[number, number]>;712prompt?: string;713placeHolder?: string;714password?: boolean;715ignoreFocusOut?: boolean;716}717718export interface MainThreadQuickOpenShape extends IDisposable {719$show(instance: number, options: quickInput.IPickOptions<TransferQuickPickItem>, token: CancellationToken): Promise<number | number[] | undefined>;720$setItems(instance: number, items: TransferQuickPickItemOrSeparator[]): Promise<void>;721$setError(instance: number, error: Error): Promise<void>;722$input(options: IInputBoxOptions | undefined, validateInput: boolean, token: CancellationToken): Promise<string | undefined>;723$createOrUpdate(params: TransferQuickInput): Promise<void>;724$dispose(id: number): Promise<void>;725}726727export interface MainThreadStatusBarShape extends IDisposable {728$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;729$disposeEntry(id: string): void;730}731732export type StatusBarItemDto = {733entryId: string;734alignLeft: boolean;735priority?: number;736name: string;737text: string;738tooltip?: string;739command?: string;740accessibilityInformation?: IAccessibilityInformation;741};742743export interface ExtHostStatusBarShape {744$acceptStaticEntries(added?: StatusBarItemDto[]): void;745$provideTooltip(entryId: string, cancellation: CancellationToken): Promise<string | IMarkdownString | undefined>;746}747748export interface MainThreadStorageShape extends IDisposable {749$initializeExtensionStorage(shared: boolean, extensionId: string): Promise<string | undefined>;750$setValue(shared: boolean, extensionId: string, value: object): Promise<void>;751$registerExtensionStorageKeysToSync(extension: IExtensionIdWithVersion, keys: string[]): void;752}753754export interface MainThreadTelemetryShape extends IDisposable {755$publicLog(eventName: string, data?: any): void;756$publicLog2<E extends ClassifiedEvent<OmitMetadata<T>> = never, T extends IGDPRProperty = never>(eventName: string, data?: StrictPropertyCheck<T, E>): void;757}758759export interface MainThreadEditorInsetsShape extends IDisposable {760$createEditorInset(handle: number, id: string, uri: UriComponents, line: number, height: number, options: IWebviewContentOptions, extensionId: ExtensionIdentifier, extensionLocation: UriComponents): Promise<void>;761$disposeEditorInset(handle: number): void;762763$setHtml(handle: number, value: string): void;764$setOptions(handle: number, options: IWebviewContentOptions): void;765$postMessage(handle: number, value: any): Promise<boolean>;766}767768export interface ExtHostEditorInsetsShape {769$onDidDispose(handle: number): void;770$onDidReceiveMessage(handle: number, message: any): void;771}772773//#region --- tabs model774775export const enum TabInputKind {776UnknownInput,777TextInput,778TextDiffInput,779TextMergeInput,780NotebookInput,781NotebookDiffInput,782CustomEditorInput,783WebviewEditorInput,784TerminalEditorInput,785InteractiveEditorInput,786ChatEditorInput,787MultiDiffEditorInput788}789790export const enum TabModelOperationKind {791TAB_OPEN,792TAB_CLOSE,793TAB_UPDATE,794TAB_MOVE795}796797export interface UnknownInputDto {798kind: TabInputKind.UnknownInput;799}800801export interface TextInputDto {802kind: TabInputKind.TextInput;803uri: UriComponents;804}805806export interface TextDiffInputDto {807kind: TabInputKind.TextDiffInput;808original: UriComponents;809modified: UriComponents;810}811812export interface TextMergeInputDto {813kind: TabInputKind.TextMergeInput;814base: UriComponents;815input1: UriComponents;816input2: UriComponents;817result: UriComponents;818}819820export interface NotebookInputDto {821kind: TabInputKind.NotebookInput;822notebookType: string;823uri: UriComponents;824}825826export interface NotebookDiffInputDto {827kind: TabInputKind.NotebookDiffInput;828notebookType: string;829original: UriComponents;830modified: UriComponents;831}832833export interface CustomInputDto {834kind: TabInputKind.CustomEditorInput;835viewType: string;836uri: UriComponents;837}838839export interface WebviewInputDto {840kind: TabInputKind.WebviewEditorInput;841viewType: string;842}843844export interface InteractiveEditorInputDto {845kind: TabInputKind.InteractiveEditorInput;846uri: UriComponents;847inputBoxUri: UriComponents;848}849850export interface ChatEditorInputDto {851kind: TabInputKind.ChatEditorInput;852}853854export interface MultiDiffEditorInputDto {855kind: TabInputKind.MultiDiffEditorInput;856diffEditors: TextDiffInputDto[];857}858859export interface TabInputDto {860kind: TabInputKind.TerminalEditorInput;861}862863export type AnyInputDto = UnknownInputDto | TextInputDto | TextDiffInputDto | MultiDiffEditorInputDto | TextMergeInputDto | NotebookInputDto | NotebookDiffInputDto | CustomInputDto | WebviewInputDto | InteractiveEditorInputDto | ChatEditorInputDto | TabInputDto;864865export interface MainThreadEditorTabsShape extends IDisposable {866// manage tabs: move, close, rearrange etc867$moveTab(tabId: string, index: number, viewColumn: EditorGroupColumn, preserveFocus?: boolean): void;868$closeTab(tabIds: string[], preserveFocus?: boolean): Promise<boolean>;869$closeGroup(groupIds: number[], preservceFocus?: boolean): Promise<boolean>;870}871872export interface IEditorTabGroupDto {873isActive: boolean;874viewColumn: EditorGroupColumn;875// Decided not to go with simple index here due to opening and closing causing index shifts876// This allows us to patch the model without having to do full rebuilds877tabs: IEditorTabDto[];878groupId: number;879}880881export interface TabOperation {882readonly kind: TabModelOperationKind.TAB_OPEN | TabModelOperationKind.TAB_CLOSE | TabModelOperationKind.TAB_UPDATE | TabModelOperationKind.TAB_MOVE;883// TODO @lramos15 Possibly get rid of index for tab update, it's only needed for open and close884readonly index: number;885readonly tabDto: IEditorTabDto;886readonly groupId: number;887readonly oldIndex?: number;888}889890export interface IEditorTabDto {891id: string;892label: string;893input: AnyInputDto;894editorId?: string;895isActive: boolean;896isPinned: boolean;897isPreview: boolean;898isDirty: boolean;899}900901export interface IExtHostEditorTabsShape {902// Accepts a whole new model903$acceptEditorTabModel(tabGroups: IEditorTabGroupDto[]): void;904// Only when group property changes (not the tabs inside)905$acceptTabGroupUpdate(groupDto: IEditorTabGroupDto): void;906// When a tab is added, removed, or updated907$acceptTabOperation(operation: TabOperation): void;908}909910//#endregion911912export type WebviewHandle = string;913914export interface WebviewPanelShowOptions {915readonly viewColumn?: EditorGroupColumn;916readonly preserveFocus?: boolean;917}918919export interface WebviewExtensionDescription {920readonly id: ExtensionIdentifier;921readonly location: UriComponents;922}923924export enum WebviewEditorCapabilities {925Editable,926SupportsHotExit,927}928929export interface IWebviewPortMapping {930readonly webviewPort: number;931readonly extensionHostPort: number;932}933934export interface IWebviewContentOptions {935readonly enableScripts?: boolean;936readonly enableForms?: boolean;937readonly enableCommandUris?: boolean | readonly string[];938readonly localResourceRoots?: readonly UriComponents[];939readonly portMapping?: readonly IWebviewPortMapping[];940}941942export interface IWebviewPanelOptions {943readonly enableFindWidget?: boolean;944readonly retainContextWhenHidden?: boolean;945}946947export interface CustomTextEditorCapabilities {948readonly supportsMove?: boolean;949}950951export const enum WebviewMessageArrayBufferViewType {952Int8Array = 1,953Uint8Array = 2,954Uint8ClampedArray = 3,955Int16Array = 4,956Uint16Array = 5,957Int32Array = 6,958Uint32Array = 7,959Float32Array = 8,960Float64Array = 9,961BigInt64Array = 10,962BigUint64Array = 11,963}964965export interface WebviewMessageArrayBufferReference {966readonly $$vscode_array_buffer_reference$$: true;967968readonly index: number;969970/**971* Tracks if the reference is to a view instead of directly to an ArrayBuffer.972*/973readonly view?: {974readonly type: WebviewMessageArrayBufferViewType;975readonly byteLength: number;976readonly byteOffset: number;977};978}979980export interface MainThreadWebviewsShape extends IDisposable {981$setHtml(handle: WebviewHandle, value: string): void;982$setOptions(handle: WebviewHandle, options: IWebviewContentOptions): void;983$postMessage(handle: WebviewHandle, value: string, ...buffers: VSBuffer[]): Promise<boolean>;984}985986export interface IWebviewIconPath {987readonly light: UriComponents;988readonly dark: UriComponents;989}990991export interface IWebviewInitData {992readonly title: string;993readonly webviewOptions: IWebviewContentOptions;994readonly panelOptions: IWebviewPanelOptions;995readonly serializeBuffersForPostMessage: boolean;996}997998export interface MainThreadWebviewPanelsShape extends IDisposable {999$createWebviewPanel(1000extension: WebviewExtensionDescription,1001handle: WebviewHandle,1002viewType: string,1003initData: IWebviewInitData,1004showOptions: WebviewPanelShowOptions,1005): void;1006$disposeWebview(handle: WebviewHandle): void;1007$reveal(handle: WebviewHandle, showOptions: WebviewPanelShowOptions): void;1008$setTitle(handle: WebviewHandle, value: string): void;1009$setIconPath(handle: WebviewHandle, value: IWebviewIconPath | undefined): void;10101011$registerSerializer(viewType: string, options: { serializeBuffersForPostMessage: boolean }): void;1012$unregisterSerializer(viewType: string): void;1013}10141015export interface MainThreadCustomEditorsShape extends IDisposable {1016$registerTextEditorProvider(extension: WebviewExtensionDescription, viewType: string, options: IWebviewPanelOptions, capabilities: CustomTextEditorCapabilities, serializeBuffersForPostMessage: boolean): void;1017$registerCustomEditorProvider(extension: WebviewExtensionDescription, viewType: string, options: IWebviewPanelOptions, supportsMultipleEditorsPerDocument: boolean, serializeBuffersForPostMessage: boolean): void;1018$unregisterEditorProvider(viewType: string): void;10191020$onDidEdit(resource: UriComponents, viewType: string, editId: number, label: string | undefined): void;1021$onContentChange(resource: UriComponents, viewType: string): void;1022}10231024export interface MainThreadWebviewViewsShape extends IDisposable {1025$registerWebviewViewProvider(extension: WebviewExtensionDescription, viewType: string, options: { retainContextWhenHidden?: boolean; serializeBuffersForPostMessage: boolean }): void;1026$unregisterWebviewViewProvider(viewType: string): void;10271028$setWebviewViewTitle(handle: WebviewHandle, value: string | undefined): void;1029$setWebviewViewDescription(handle: WebviewHandle, value: string | undefined): void;1030$setWebviewViewBadge(handle: WebviewHandle, badge: IViewBadge | undefined): void;10311032$show(handle: WebviewHandle, preserveFocus: boolean): void;1033}10341035export interface WebviewPanelViewStateData {1036[handle: string]: {1037readonly active: boolean;1038readonly visible: boolean;1039readonly position: EditorGroupColumn;1040};1041}10421043export interface ExtHostWebviewsShape {1044$onMessage(handle: WebviewHandle, jsonSerializedMessage: string, buffers: SerializableObjectWithBuffers<VSBuffer[]>): void;1045$onMissingCsp(handle: WebviewHandle, extensionId: string): void;1046}10471048export interface ExtHostWebviewPanelsShape {1049$onDidChangeWebviewPanelViewStates(newState: WebviewPanelViewStateData): void;1050$onDidDisposeWebviewPanel(handle: WebviewHandle): Promise<void>;1051$deserializeWebviewPanel(1052newWebviewHandle: WebviewHandle,1053viewType: string,1054initData: {1055title: string;1056state: any;1057webviewOptions: IWebviewContentOptions;1058panelOptions: IWebviewPanelOptions;1059active: boolean;1060},1061position: EditorGroupColumn,1062): Promise<void>;1063}10641065export interface ExtHostCustomEditorsShape {1066$resolveCustomEditor(1067resource: UriComponents,1068newWebviewHandle: WebviewHandle,1069viewType: string,1070initData: {1071title: string;1072contentOptions: IWebviewContentOptions;1073options: IWebviewPanelOptions;1074active: boolean;1075},1076position: EditorGroupColumn,1077cancellation: CancellationToken1078): Promise<void>;1079$createCustomDocument(resource: UriComponents, viewType: string, backupId: string | undefined, untitledDocumentData: VSBuffer | undefined, cancellation: CancellationToken): Promise<{ editable: boolean }>;1080$disposeCustomDocument(resource: UriComponents, viewType: string): Promise<void>;10811082$undo(resource: UriComponents, viewType: string, editId: number, isDirty: boolean): Promise<void>;1083$redo(resource: UriComponents, viewType: string, editId: number, isDirty: boolean): Promise<void>;1084$revert(resource: UriComponents, viewType: string, cancellation: CancellationToken): Promise<void>;1085$disposeEdits(resourceComponents: UriComponents, viewType: string, editIds: number[]): void;10861087$onSave(resource: UriComponents, viewType: string, cancellation: CancellationToken): Promise<void>;1088$onSaveAs(resource: UriComponents, viewType: string, targetResource: UriComponents, cancellation: CancellationToken): Promise<void>;10891090$backup(resource: UriComponents, viewType: string, cancellation: CancellationToken): Promise<string>;10911092$onMoveCustomEditor(handle: WebviewHandle, newResource: UriComponents, viewType: string): Promise<void>;1093}10941095export interface ExtHostWebviewViewsShape {1096$resolveWebviewView(webviewHandle: WebviewHandle, viewType: string, title: string | undefined, state: any, cancellation: CancellationToken): Promise<void>;10971098$onDidChangeWebviewViewVisibility(webviewHandle: WebviewHandle, visible: boolean): void;10991100$disposeWebviewView(webviewHandle: WebviewHandle): void;1101}11021103export interface MainThreadManagedSocketsShape extends IDisposable {1104$registerSocketFactory(socketFactoryId: number): Promise<void>;1105$unregisterSocketFactory(socketFactoryId: number): Promise<void>;1106$onDidManagedSocketHaveData(socketId: number, data: VSBuffer): void;1107$onDidManagedSocketClose(socketId: number, error: string | undefined): void;1108$onDidManagedSocketEnd(socketId: number): void;1109}11101111export interface ExtHostManagedSocketsShape {1112$openRemoteSocket(socketFactoryId: number): Promise<number>;1113$remoteSocketWrite(socketId: number, buffer: VSBuffer): void;1114$remoteSocketEnd(socketId: number): void;1115$remoteSocketDrain(socketId: number): Promise<void>;1116}11171118export enum CellOutputKind {1119Text = 1,1120Error = 2,1121Rich = 31122}11231124export enum NotebookEditorRevealType {1125Default = 0,1126InCenter = 1,1127InCenterIfOutsideViewport = 2,1128AtTop = 31129}11301131export interface INotebookDocumentShowOptions {1132position?: EditorGroupColumn;1133preserveFocus?: boolean;1134pinned?: boolean;1135selections?: ICellRange[];1136label?: string;1137}11381139export type INotebookCellStatusBarEntryDto = Dto<notebookCommon.INotebookCellStatusBarItem>;11401141export interface INotebookCellStatusBarListDto {1142items: INotebookCellStatusBarEntryDto[];1143cacheId: number;1144}11451146export interface MainThreadNotebookShape extends IDisposable {1147$registerNotebookSerializer(handle: number, extension: notebookCommon.NotebookExtensionDescription, viewType: string, options: notebookCommon.TransientOptions, registration: notebookCommon.INotebookContributionData | undefined): void;1148$unregisterNotebookSerializer(handle: number): void;11491150$registerNotebookCellStatusBarItemProvider(handle: number, eventHandle: number | undefined, viewType: string): Promise<void>;1151$unregisterNotebookCellStatusBarItemProvider(handle: number, eventHandle: number | undefined): Promise<void>;1152$emitCellStatusBarEvent(eventHandle: number): void;1153}11541155export interface MainThreadNotebookEditorsShape extends IDisposable {1156$tryShowNotebookDocument(uriComponents: UriComponents, viewType: string, options: INotebookDocumentShowOptions): Promise<string>;1157$tryRevealRange(id: string, range: ICellRange, revealType: NotebookEditorRevealType): Promise<void>;1158$trySetSelections(id: string, range: ICellRange[]): void;1159}11601161export interface MainThreadNotebookDocumentsShape extends IDisposable {1162$tryCreateNotebook(options: { viewType: string; content?: NotebookDataDto }): Promise<UriComponents>;1163$tryOpenNotebook(uriComponents: UriComponents): Promise<UriComponents>;1164$trySaveNotebook(uri: UriComponents): Promise<boolean>;1165}11661167export interface INotebookKernelDto2 {1168id: string;1169notebookType: string;1170extensionId: ExtensionIdentifier;1171extensionLocation: UriComponents;1172label: string;1173detail?: string;1174description?: string;1175supportedLanguages?: string[];1176supportsInterrupt?: boolean;1177supportsExecutionOrder?: boolean;1178preloads?: { uri: UriComponents; provides: readonly string[] }[];1179hasVariableProvider?: boolean;1180}11811182export interface INotebookProxyKernelDto {1183id: string;1184notebookType: string;1185extensionId: ExtensionIdentifier;1186extensionLocation: UriComponents;1187label: string;1188detail?: string;1189description?: string;1190kind?: string;1191}11921193export interface ICellExecuteOutputEditDto {1194editType: CellExecutionUpdateType.Output;1195cellHandle: number;1196append?: boolean;1197outputs: NotebookOutputDto[];1198}11991200export interface ICellExecuteOutputItemEditDto {1201editType: CellExecutionUpdateType.OutputItems;1202append?: boolean;1203outputId: string;1204items: NotebookOutputItemDto[];1205}12061207export interface ICellExecutionStateUpdateDto extends ICellExecutionStateUpdate {1208}12091210export interface ICellExecutionCompleteDto extends ICellExecutionComplete {1211}12121213export type ICellExecuteUpdateDto = ICellExecuteOutputEditDto | ICellExecuteOutputItemEditDto | ICellExecutionStateUpdateDto;12141215export interface VariablesResult {1216id: number;1217name: string;1218value: string;1219type?: string;1220language?: string;1221expression?: string;1222hasNamedChildren: boolean;1223indexedChildrenCount: number;1224extensionId: string;1225}12261227export interface MainThreadNotebookKernelsShape extends IDisposable {1228$postMessage(handle: number, editorId: string | undefined, message: any): Promise<boolean>;1229$addKernel(handle: number, data: INotebookKernelDto2): Promise<void>;1230$updateKernel(handle: number, data: Partial<INotebookKernelDto2>): void;1231$removeKernel(handle: number): void;1232$updateNotebookPriority(handle: number, uri: UriComponents, value: number | undefined): void;12331234$createExecution(handle: number, controllerId: string, uri: UriComponents, cellHandle: number): void;1235$updateExecution(handle: number, data: SerializableObjectWithBuffers<ICellExecuteUpdateDto[]>): void;1236$completeExecution(handle: number, data: SerializableObjectWithBuffers<ICellExecutionCompleteDto>): void;12371238$createNotebookExecution(handle: number, controllerId: string, uri: UriComponents): void;1239$beginNotebookExecution(handle: number,): void;1240$completeNotebookExecution(handle: number): void;12411242$addKernelDetectionTask(handle: number, notebookType: string): Promise<void>;1243$removeKernelDetectionTask(handle: number): void;12441245$addKernelSourceActionProvider(handle: number, eventHandle: number, notebookType: string): Promise<void>;1246$removeKernelSourceActionProvider(handle: number, eventHandle: number): void;1247$emitNotebookKernelSourceActionsChangeEvent(eventHandle: number): void;1248$receiveVariable(requestId: string, variable: VariablesResult): void;1249$variablesUpdated(notebookUri: UriComponents): void;1250}12511252export interface MainThreadNotebookRenderersShape extends IDisposable {1253$postMessage(editorId: string | undefined, rendererId: string, message: unknown): Promise<boolean>;1254}12551256export interface MainThreadInteractiveShape extends IDisposable {1257}12581259export interface MainThreadSpeechShape extends IDisposable {1260$registerProvider(handle: number, identifier: string, metadata: ISpeechProviderMetadata): void;1261$unregisterProvider(handle: number): void;12621263$emitSpeechToTextEvent(session: number, event: ISpeechToTextEvent): void;1264$emitTextToSpeechEvent(session: number, event: ITextToSpeechEvent): void;1265$emitKeywordRecognitionEvent(session: number, event: IKeywordRecognitionEvent): void;1266}12671268export interface ExtHostSpeechShape {1269$createSpeechToTextSession(handle: number, session: number, language?: string): Promise<void>;1270$cancelSpeechToTextSession(session: number): Promise<void>;12711272$createTextToSpeechSession(handle: number, session: number, language?: string): Promise<void>;1273$synthesizeSpeech(session: number, text: string): Promise<void>;1274$cancelTextToSpeechSession(session: number): Promise<void>;12751276$createKeywordRecognitionSession(handle: number, session: number): Promise<void>;1277$cancelKeywordRecognitionSession(session: number): Promise<void>;1278}12791280export interface MainThreadLanguageModelsShape extends IDisposable {1281$registerLanguageModelProvider(vendor: string): void;1282$onLMProviderChange(vendor: string): void;1283$unregisterProvider(vendor: string): void;1284$tryStartChatRequest(extension: ExtensionIdentifier, modelIdentifier: string, requestId: number, messages: SerializableObjectWithBuffers<IChatMessage[]>, options: {}, token: CancellationToken): Promise<void>;1285$reportResponsePart(requestId: number, chunk: SerializableObjectWithBuffers<IChatResponsePart | IChatResponsePart[]>): Promise<void>;1286$reportResponseDone(requestId: number, error: SerializedError | undefined): Promise<void>;1287$selectChatModels(selector: ILanguageModelChatSelector): Promise<string[]>;1288$countTokens(modelId: string, value: string | IChatMessage, token: CancellationToken): Promise<number>;1289$fileIsIgnored(uri: UriComponents, token: CancellationToken): Promise<boolean>;1290$registerFileIgnoreProvider(handle: number): void;1291$unregisterFileIgnoreProvider(handle: number): void;1292}12931294export interface ExtHostLanguageModelsShape {1295$provideLanguageModelChatInfo(vendor: string, options: { silent: boolean }, token: CancellationToken): Promise<ILanguageModelChatMetadataAndIdentifier[]>;1296$updateModelAccesslist(data: { from: ExtensionIdentifier; to: ExtensionIdentifier; enabled: boolean }[]): void;1297$startChatRequest(modelId: string, requestId: number, from: ExtensionIdentifier, messages: SerializableObjectWithBuffers<IChatMessage[]>, options: { [name: string]: any }, token: CancellationToken): Promise<void>;1298$acceptResponsePart(requestId: number, chunk: SerializableObjectWithBuffers<IChatResponsePart | IChatResponsePart[]>): Promise<void>;1299$acceptResponseDone(requestId: number, error: SerializedError | undefined): Promise<void>;1300$provideTokenLength(modelId: string, value: string | IChatMessage, token: CancellationToken): Promise<number>;1301$isFileIgnored(handle: number, uri: UriComponents, token: CancellationToken): Promise<boolean>;1302}13031304export interface MainThreadEmbeddingsShape extends IDisposable {1305$registerEmbeddingProvider(handle: number, identifier: string): void;1306$unregisterEmbeddingProvider(handle: number): void;1307$computeEmbeddings(embeddingsModel: string, input: string[], token: CancellationToken): Promise<({ values: number[] }[])>;1308}13091310export interface ExtHostEmbeddingsShape {1311$provideEmbeddings(handle: number, input: string[], token: CancellationToken): Promise<{ values: number[] }[]>;1312$acceptEmbeddingModels(models: string[]): void;1313}13141315export interface IExtensionChatAgentMetadata extends Dto<IChatAgentMetadata> {1316hasFollowups?: boolean;1317}13181319export interface IDynamicChatAgentProps {1320name: string;1321publisherName: string;1322description?: string;1323fullName?: string;1324}13251326export interface IChatAgentProgressShape {1327$handleProgressChunk(requestId: string, chunks: (IChatProgressDto | [IChatProgressDto, number])[]): Promise<void>;1328$handleAnchorResolve(requestId: string, handle: string, anchor: Dto<IChatContentInlineReference>): void;1329}13301331export interface MainThreadChatAgentsShape2 extends IChatAgentProgressShape, IDisposable {1332$registerAgent(handle: number, extension: ExtensionIdentifier, id: string, metadata: IExtensionChatAgentMetadata, dynamicProps: IDynamicChatAgentProps | undefined): void;1333$registerChatParticipantDetectionProvider(handle: number): void;1334$unregisterChatParticipantDetectionProvider(handle: number): void;1335$registerRelatedFilesProvider(handle: number, metadata: IChatRelatedFilesProviderMetadata): void;1336$unregisterRelatedFilesProvider(handle: number): void;1337$registerAgentCompletionsProvider(handle: number, id: string, triggerCharacters: string[]): void;1338$unregisterAgentCompletionsProvider(handle: number, id: string): void;1339$updateAgent(handle: number, metadataUpdate: IExtensionChatAgentMetadata): void;1340$unregisterAgent(handle: number): void;13411342$transferActiveChatSession(toWorkspace: UriComponents): void;1343}13441345export interface ICodeMapperTextEdit {1346uri: URI;1347edits: languages.TextEdit[];1348}13491350export interface ICodeMapperNotebookEditDto {1351uri: URI;1352edits: ICellEditOperationDto[];1353}13541355export type ICodeMapperProgressDto = Dto<ICodeMapperTextEdit> | Dto<ICodeMapperNotebookEditDto>;13561357export interface MainThreadCodeMapperShape extends IDisposable {1358$registerCodeMapperProvider(handle: number, displayName: string): void;1359$unregisterCodeMapperProvider(handle: number): void;1360$handleProgress(requestId: string, data: ICodeMapperProgressDto): Promise<void>;1361}13621363export interface IChatAgentCompletionItem {1364id: string;1365fullName?: string;1366icon?: string;1367insertText?: string;1368label: string | languages.CompletionItemLabel;1369value: IChatRequestVariableValueDto;1370detail?: string;1371documentation?: string | IMarkdownString;1372command?: ICommandDto;1373}13741375export type IChatContentProgressDto =1376| Dto<Exclude<IChatProgressHistoryResponseContent, IChatTask>>1377| IChatTaskDto;13781379export type IChatAgentHistoryEntryDto = {1380request: IChatAgentRequest;1381response: ReadonlyArray<IChatContentProgressDto>;1382result: IChatAgentResult;1383};13841385export interface ExtHostChatAgentsShape2 {1386$invokeAgent(handle: number, request: Dto<IChatAgentRequest>, context: { history: IChatAgentHistoryEntryDto[] }, token: CancellationToken): Promise<IChatAgentResult | undefined>;1387$provideFollowups(request: Dto<IChatAgentRequest>, handle: number, result: IChatAgentResult, context: { history: IChatAgentHistoryEntryDto[] }, token: CancellationToken): Promise<IChatFollowup[]>;1388$acceptFeedback(handle: number, result: IChatAgentResult, voteAction: IChatVoteAction): void;1389$acceptAction(handle: number, result: IChatAgentResult, action: IChatUserActionEvent): void;1390$invokeCompletionProvider(handle: number, query: string, token: CancellationToken): Promise<IChatAgentCompletionItem[]>;1391$provideChatTitle(handle: number, context: IChatAgentHistoryEntryDto[], token: CancellationToken): Promise<string | undefined>;1392$provideChatSummary(handle: number, context: IChatAgentHistoryEntryDto[], token: CancellationToken): Promise<string | undefined>;1393$releaseSession(sessionId: string): void;1394$detectChatParticipant(handle: number, request: Dto<IChatAgentRequest>, context: { history: IChatAgentHistoryEntryDto[] }, options: { participants: IChatParticipantMetadata[]; location: ChatAgentLocation }, token: CancellationToken): Promise<IChatParticipantDetectionResult | null | undefined>;1395$provideRelatedFiles(handle: number, request: Dto<IChatRequestDraft>, token: CancellationToken): Promise<Dto<IChatRelatedFile>[] | undefined>;1396$setRequestTools(requestId: string, tools: UserSelectedTools): void;1397}1398export interface IChatParticipantMetadata {1399participant: string;1400command?: string;1401disambiguation: { category: string; description: string; examples: string[] }[];1402}14031404export interface IChatParticipantDetectionResult {1405participant: string;1406command?: string;1407}14081409export interface IToolDataDto {1410id: string;1411toolReferenceName?: string;1412tags?: string[];1413displayName: string;1414userDescription?: string;1415modelDescription: string;1416source: Dto<ToolDataSource>;1417inputSchema?: IJSONSchema;1418}14191420export interface MainThreadLanguageModelToolsShape extends IDisposable {1421$getTools(): Promise<Dto<IToolDataDto>[]>;1422$acceptToolProgress(callId: string, progress: IToolProgressStep): void;1423$invokeTool(dto: IToolInvocation, token?: CancellationToken): Promise<Dto<IToolResult> | SerializableObjectWithBuffers<Dto<IToolResult>>>;1424$countTokensForInvocation(callId: string, input: string, token: CancellationToken): Promise<number>;1425$registerTool(id: string): void;1426$unregisterTool(name: string): void;1427}14281429export type IChatRequestVariableValueDto = Dto<IChatRequestVariableValue>;14301431export interface ExtHostLanguageModelToolsShape {1432$onDidChangeTools(tools: IToolDataDto[]): void;1433$invokeTool(dto: IToolInvocation, token: CancellationToken): Promise<Dto<IToolResult> | SerializableObjectWithBuffers<Dto<IToolResult>>>;1434$countTokensForInvocation(callId: string, input: string, token: CancellationToken): Promise<number>;14351436$prepareToolInvocation(toolId: string, context: IToolInvocationPreparationContext, token: CancellationToken): Promise<IPreparedToolInvocation | undefined>;1437}14381439export interface MainThreadUrlsShape extends IDisposable {1440$registerUriHandler(handle: number, extensionId: ExtensionIdentifier, extensionDisplayName: string): Promise<void>;1441$unregisterUriHandler(handle: number): Promise<void>;1442$createAppUri(uri: UriComponents): Promise<UriComponents>;1443}14441445export interface IChatResponseProgressFileTreeData {1446label: string;1447uri: URI;1448children?: IChatResponseProgressFileTreeData[];1449}14501451export type IDocumentContextDto = {1452uri: UriComponents;1453version: number;1454ranges: IRange[];1455};14561457export type IChatProgressDto =1458| Dto<Exclude<IChatProgress, IChatTask | IChatNotebookEdit>>1459| IChatTaskDto1460| IChatNotebookEditDto1461| IChatResponseClearToPreviousToolInvocationDto;14621463export interface ExtHostUrlsShape {1464$handleExternalUri(handle: number, uri: UriComponents): Promise<void>;1465}14661467export interface MainThreadUriOpenersShape extends IDisposable {1468$registerUriOpener(id: string, schemes: readonly string[], extensionId: ExtensionIdentifier, label: string): Promise<void>;1469$unregisterUriOpener(id: string): Promise<void>;1470}14711472export interface ExtHostUriOpenersShape {1473$canOpenUri(id: string, uri: UriComponents, token: CancellationToken): Promise<languages.ExternalUriOpenerPriority>;1474$openUri(id: string, context: { resolvedUri: UriComponents; sourceUri: UriComponents }, token: CancellationToken): Promise<void>;1475}14761477export interface MainThreadChatOutputRendererShape extends IDisposable {1478$registerChatOutputRenderer(viewType: string, extensionId: ExtensionIdentifier, extensionLocation: UriComponents): void;1479$unregisterChatOutputRenderer(viewType: string): void;1480}14811482export interface ExtHostChatOutputRendererShape {1483$renderChatOutput(viewType: string, mime: string, valueData: VSBuffer, webviewHandle: string, token: CancellationToken): Promise<void>;1484}14851486export interface MainThreadProfileContentHandlersShape {1487$registerProfileContentHandler(id: string, name: string, description: string | undefined, extensionId: string): Promise<void>;1488$unregisterProfileContentHandler(id: string): Promise<void>;1489}14901491export interface ExtHostProfileContentHandlersShape {1492$saveProfile(id: string, name: string, content: string, token: CancellationToken): Promise<UriDto<ISaveProfileResult> | null>;1493$readProfile(id: string, idOrUri: string | UriComponents, token: CancellationToken): Promise<string | null>;1494}14951496export interface ITextSearchComplete {1497limitHit?: boolean;1498message?: TextSearchCompleteMessage | TextSearchCompleteMessage[];1499}15001501export interface MainThreadWorkspaceShape extends IDisposable {1502$startFileSearch(includeFolder: UriComponents | null, options: IFileQueryBuilderOptions, token: CancellationToken): Promise<UriComponents[] | null>;1503$startTextSearch(query: search.IPatternInfo, folder: UriComponents | null, options: ITextQueryBuilderOptions, requestId: number, token: CancellationToken): Promise<ITextSearchComplete | null>;1504$checkExists(folders: readonly UriComponents[], includes: string[], token: CancellationToken): Promise<boolean>;1505$save(uri: UriComponents, options: { saveAs: boolean }): Promise<UriComponents | undefined>;1506$saveAll(includeUntitled?: boolean): Promise<boolean>;1507$updateWorkspaceFolders(extensionName: string, index: number, deleteCount: number, workspaceFoldersToAdd: { uri: UriComponents; name?: string }[]): Promise<void>;1508$resolveProxy(url: string): Promise<string | undefined>;1509$lookupAuthorization(authInfo: AuthInfo): Promise<Credentials | undefined>;1510$lookupKerberosAuthorization(url: string): Promise<string | undefined>;1511$loadCertificates(): Promise<string[]>;1512$requestWorkspaceTrust(options?: WorkspaceTrustRequestOptions): Promise<boolean | undefined>;1513$registerEditSessionIdentityProvider(handle: number, scheme: string): void;1514$unregisterEditSessionIdentityProvider(handle: number): void;1515$registerCanonicalUriProvider(handle: number, scheme: string): void;1516$unregisterCanonicalUriProvider(handle: number): void;1517$resolveDecoding(resource: UriComponents | undefined, options?: { encoding?: string }): Promise<{ preferredEncoding: string; guessEncoding: boolean; candidateGuessEncodings: string[] }>;1518$validateDetectedEncoding(resource: UriComponents | undefined, detectedEncoding: string, options?: { encoding?: string }): Promise<string>;1519$resolveEncoding(resource: UriComponents | undefined, options?: { encoding?: string }): Promise<{ encoding: string; addBOM: boolean }>;1520}15211522export interface IFileChangeDto {1523resource: UriComponents;1524type: files.FileChangeType;1525}15261527export interface MainThreadFileSystemShape extends IDisposable {1528$registerFileSystemProvider(handle: number, scheme: string, capabilities: files.FileSystemProviderCapabilities, readonlyMessage?: IMarkdownString): Promise<void>;1529$unregisterProvider(handle: number): void;1530$onFileSystemChange(handle: number, resource: IFileChangeDto[]): void;15311532$stat(resource: UriComponents): Promise<files.IStat>;1533$readdir(resource: UriComponents): Promise<[string, files.FileType][]>;1534$readFile(resource: UriComponents): Promise<VSBuffer>;1535$writeFile(resource: UriComponents, content: VSBuffer): Promise<void>;1536$rename(resource: UriComponents, target: UriComponents, opts: files.IFileOverwriteOptions): Promise<void>;1537$copy(resource: UriComponents, target: UriComponents, opts: files.IFileOverwriteOptions): Promise<void>;1538$mkdir(resource: UriComponents): Promise<void>;1539$delete(resource: UriComponents, opts: files.IFileDeleteOptions): Promise<void>;15401541$ensureActivation(scheme: string): Promise<void>;1542}15431544export interface MainThreadFileSystemEventServiceShape extends IDisposable {1545$watch(extensionId: string, session: number, resource: UriComponents, opts: files.IWatchOptions, correlate: boolean): void;1546$unwatch(session: number): void;1547}15481549export interface MainThreadLabelServiceShape extends IDisposable {1550$registerResourceLabelFormatter(handle: number, formatter: ResourceLabelFormatter): void;1551$unregisterResourceLabelFormatter(handle: number): void;1552}15531554export interface MainThreadSearchShape extends IDisposable {1555$registerFileSearchProvider(handle: number, scheme: string): void;1556$registerAITextSearchProvider(handle: number, scheme: string): void;1557$registerTextSearchProvider(handle: number, scheme: string): void;1558$unregisterProvider(handle: number): void;1559$handleFileMatch(handle: number, session: number, data: UriComponents[]): void;1560$handleTextMatch(handle: number, session: number, data: search.IRawFileMatch2[]): void;1561$handleKeywordResult(handle: number, session: number, data: AISearchKeyword): void;1562$handleTelemetry(eventName: string, data: any): void;1563}15641565export interface MainThreadShareShape extends IDisposable {1566$registerShareProvider(handle: number, selector: IDocumentFilterDto[], id: string, label: string, priority: number): void;1567$unregisterShareProvider(handle: number): void;1568}15691570export interface MainThreadTaskShape extends IDisposable {1571$createTaskId(task: tasks.ITaskDTO): Promise<string>;1572$registerTaskProvider(handle: number, type: string): Promise<void>;1573$unregisterTaskProvider(handle: number): Promise<void>;1574$fetchTasks(filter?: tasks.ITaskFilterDTO): Promise<tasks.ITaskDTO[]>;1575$getTaskExecution(value: tasks.ITaskHandleDTO | tasks.ITaskDTO): Promise<tasks.ITaskExecutionDTO>;1576$executeTask(task: tasks.ITaskHandleDTO | tasks.ITaskDTO): Promise<tasks.ITaskExecutionDTO>;1577$terminateTask(id: string): Promise<void>;1578$registerTaskSystem(scheme: string, info: tasks.ITaskSystemInfoDTO): void;1579$customExecutionComplete(id: string, result?: number): Promise<void>;1580$registerSupportedExecutions(custom?: boolean, shell?: boolean, process?: boolean): Promise<void>;1581}15821583export interface MainThreadExtensionServiceShape extends IDisposable {1584$getExtension(extensionId: string): Promise<Dto<IExtensionDescription> | undefined>;1585$activateExtension(extensionId: ExtensionIdentifier, reason: ExtensionActivationReason): Promise<void>;1586$onWillActivateExtension(extensionId: ExtensionIdentifier): Promise<void>;1587$onDidActivateExtension(extensionId: ExtensionIdentifier, codeLoadingTime: number, activateCallTime: number, activateResolvedTime: number, activationReason: ExtensionActivationReason): void;1588$onExtensionActivationError(extensionId: ExtensionIdentifier, error: SerializedError, missingExtensionDependency: MissingExtensionDependency | null): Promise<void>;1589$onExtensionRuntimeError(extensionId: ExtensionIdentifier, error: SerializedError): void;1590$setPerformanceMarks(marks: performance.PerformanceMark[]): Promise<void>;1591$asBrowserUri(uri: UriComponents): Promise<UriComponents>;1592}15931594export interface SCMProviderFeatures {1595hasHistoryProvider?: boolean;1596hasQuickDiffProvider?: boolean;1597quickDiffLabel?: string;1598hasSecondaryQuickDiffProvider?: boolean;1599secondaryQuickDiffLabel?: string;1600count?: number;1601commitTemplate?: string;1602acceptInputCommand?: languages.Command;1603actionButton?: SCMActionButtonDto | null;1604statusBarCommands?: ICommandDto[];1605contextValue?: string;1606}16071608export interface SCMActionButtonDto {1609command: ICommandDto & { shortTitle?: string };1610secondaryCommands?: ICommandDto[][];1611enabled: boolean;1612}16131614export interface SCMGroupFeatures {1615hideWhenEmpty?: boolean;1616contextValue?: string;1617}16181619export type SCMRawResource = [1620number /*handle*/,1621UriComponents /*resourceUri*/,1622[UriComponents | ThemeIcon | undefined, UriComponents | ThemeIcon | undefined] /*icons: light, dark*/,1623string /*tooltip*/,1624boolean /*strike through*/,1625boolean /*faded*/,1626string /*context value*/,1627ICommandDto | undefined /*command*/,1628UriComponents | undefined /* multiFileDiffEditorOriginalUri */,1629UriComponents | undefined /* multiFileDiffEditorModifiedUri */,1630];16311632export type SCMRawResourceSplice = [1633number /* start */,1634number /* delete count */,1635SCMRawResource[]1636];16371638export type SCMRawResourceSplices = [1639number, /*handle*/1640SCMRawResourceSplice[]1641];16421643export interface SCMHistoryItemRefDto {1644readonly id: string;1645readonly name: string;1646readonly revision?: string;1647readonly category?: string;1648readonly description?: string;1649readonly icon?: UriComponents | { light: UriComponents; dark: UriComponents } | ThemeIcon;1650}16511652export interface SCMHistoryItemRefsChangeEventDto {1653readonly added: readonly SCMHistoryItemRefDto[];1654readonly modified: readonly SCMHistoryItemRefDto[];1655readonly removed: readonly SCMHistoryItemRefDto[];1656readonly silent: boolean;1657}16581659export interface SCMHistoryItemDto {1660readonly id: string;1661readonly parentIds: string[];1662readonly subject: string;1663readonly message: string;1664readonly displayId?: string;1665readonly author?: string;1666readonly authorIcon?: UriComponents | { light: UriComponents; dark: UriComponents } | ThemeIcon;1667readonly authorEmail?: string;1668readonly timestamp?: number;1669readonly statistics?: {1670readonly files: number;1671readonly insertions: number;1672readonly deletions: number;1673};1674readonly references?: SCMHistoryItemRefDto[];1675}16761677export interface SCMHistoryItemChangeDto {1678readonly uri: UriComponents;1679readonly originalUri: UriComponents | undefined;1680readonly modifiedUri: UriComponents | undefined;1681}16821683export interface MainThreadSCMShape extends IDisposable {1684$registerSourceControl(handle: number, parentHandle: number | undefined, id: string, label: string, rootUri: UriComponents | undefined, iconPath: UriComponents | { light: UriComponents; dark: UriComponents } | ThemeIcon | undefined, inputBoxDocumentUri: UriComponents): Promise<void>;1685$updateSourceControl(handle: number, features: SCMProviderFeatures): Promise<void>;1686$unregisterSourceControl(handle: number): Promise<void>;16871688$registerGroups(sourceControlHandle: number, groups: [number /*handle*/, string /*id*/, string /*label*/, SCMGroupFeatures, /* multiDiffEditorEnableViewChanges */ boolean][], splices: SCMRawResourceSplices[]): Promise<void>;1689$updateGroup(sourceControlHandle: number, handle: number, features: SCMGroupFeatures): Promise<void>;1690$updateGroupLabel(sourceControlHandle: number, handle: number, label: string): Promise<void>;1691$unregisterGroup(sourceControlHandle: number, handle: number): Promise<void>;16921693$spliceResourceStates(sourceControlHandle: number, splices: SCMRawResourceSplices[]): Promise<void>;16941695$setInputBoxValue(sourceControlHandle: number, value: string): Promise<void>;1696$setInputBoxPlaceholder(sourceControlHandle: number, placeholder: string): Promise<void>;1697$setInputBoxEnablement(sourceControlHandle: number, enabled: boolean): Promise<void>;1698$setInputBoxVisibility(sourceControlHandle: number, visible: boolean): Promise<void>;1699$showValidationMessage(sourceControlHandle: number, message: string | IMarkdownString, type: InputValidationType): Promise<void>;1700$setValidationProviderIsEnabled(sourceControlHandle: number, enabled: boolean): Promise<void>;17011702$onDidChangeHistoryProviderCurrentHistoryItemRefs(sourceControlHandle: number, historyItemRef?: SCMHistoryItemRefDto, historyItemRemoteRef?: SCMHistoryItemRefDto, historyItemBaseRef?: SCMHistoryItemRefDto): Promise<void>;1703$onDidChangeHistoryProviderHistoryItemRefs(sourceControlHandle: number, historyItemRefs: SCMHistoryItemRefsChangeEventDto): Promise<void>;1704}17051706export interface MainThreadQuickDiffShape extends IDisposable {1707$registerQuickDiffProvider(handle: number, selector: IDocumentFilterDto[], id: string, label: string, rootUri: UriComponents | undefined): Promise<void>;1708$unregisterQuickDiffProvider(handle: number): Promise<void>;1709}17101711export type DebugSessionUUID = string;17121713export interface IDebugConfiguration {1714type: string;1715name: string;1716request: string;1717[key: string]: any;1718}17191720export interface IStartDebuggingOptions {1721parentSessionID?: DebugSessionUUID;1722lifecycleManagedByParent?: boolean;1723repl?: IDebugSessionReplMode;1724noDebug?: boolean;1725compact?: boolean;1726suppressDebugToolbar?: boolean;1727suppressDebugStatusbar?: boolean;1728suppressDebugView?: boolean;1729suppressSaveBeforeStart?: boolean;1730testRun?: IDebugTestRunReference;1731}17321733export interface MainThreadDebugServiceShape extends IDisposable {1734$registerDebugTypes(debugTypes: string[]): void;1735$sessionCached(sessionID: string): void;1736$acceptDAMessage(handle: number, message: DebugProtocol.ProtocolMessage): void;1737$acceptDAError(handle: number, name: string, message: string, stack: string | undefined): void;1738$acceptDAExit(handle: number, code: number | undefined, signal: string | undefined): void;1739$registerDebugConfigurationProvider(type: string, triggerKind: DebugConfigurationProviderTriggerKind, hasProvideMethod: boolean, hasResolveMethod: boolean, hasResolve2Method: boolean, handle: number): Promise<void>;1740$registerDebugAdapterDescriptorFactory(type: string, handle: number): Promise<void>;1741$unregisterDebugConfigurationProvider(handle: number): void;1742$unregisterDebugAdapterDescriptorFactory(handle: number): void;1743$startDebugging(folder: UriComponents | undefined, nameOrConfig: string | IDebugConfiguration, options: IStartDebuggingOptions): Promise<boolean>;1744$stopDebugging(sessionId: DebugSessionUUID | undefined): Promise<void>;1745$setDebugSessionName(id: DebugSessionUUID, name: string): void;1746$customDebugAdapterRequest(id: DebugSessionUUID, command: string, args: any): Promise<any>;1747$getDebugProtocolBreakpoint(id: DebugSessionUUID, breakpoinId: string): Promise<DebugProtocol.Breakpoint | undefined>;1748$appendDebugConsole(value: string): void;1749$registerBreakpoints(breakpoints: Array<ISourceMultiBreakpointDto | IFunctionBreakpointDto | IDataBreakpointDto>): Promise<void>;1750$unregisterBreakpoints(breakpointIds: string[], functionBreakpointIds: string[], dataBreakpointIds: string[]): Promise<void>;1751$registerDebugVisualizer(extensionId: string, id: string): void;1752$unregisterDebugVisualizer(extensionId: string, id: string): void;1753$registerDebugVisualizerTree(treeId: string, canEdit: boolean): void;1754$unregisterDebugVisualizerTree(treeId: string): void;1755}17561757export interface IOpenUriOptions {1758readonly allowTunneling?: boolean;1759readonly allowContributedOpeners?: boolean | string;1760}17611762export interface MainThreadWindowShape extends IDisposable {1763$getInitialState(): Promise<{ isFocused: boolean; isActive: boolean }>;1764$openUri(uri: UriComponents, uriString: string | undefined, options: IOpenUriOptions): Promise<boolean>;1765$asExternalUri(uri: UriComponents, options: IOpenUriOptions): Promise<UriComponents>;1766}17671768export enum CandidatePortSource {1769None = 0,1770Process = 1,1771Output = 2,1772Hybrid = 31773}17741775export interface PortAttributesSelector {1776portRange?: [number, number] | number;1777commandPattern?: RegExp;1778}17791780export interface MainThreadTunnelServiceShape extends IDisposable {1781$openTunnel(tunnelOptions: TunnelOptions, source: string | undefined): Promise<TunnelDto | undefined>;1782$closeTunnel(remote: { host: string; port: number }): Promise<void>;1783$getTunnels(): Promise<TunnelDescription[]>;1784$setTunnelProvider(features: TunnelProviderFeatures | undefined, enablePortsView: boolean): Promise<void>;1785$setRemoteTunnelService(processId: number): Promise<void>;1786$setCandidateFilter(): Promise<void>;1787$onFoundNewCandidates(candidates: CandidatePort[]): Promise<void>;1788$setCandidatePortSource(source: CandidatePortSource): Promise<void>;1789$registerPortsAttributesProvider(selector: PortAttributesSelector, providerHandle: number): Promise<void>;1790$unregisterPortsAttributesProvider(providerHandle: number): Promise<void>;1791}17921793export interface MainThreadTimelineShape extends IDisposable {1794$registerTimelineProvider(provider: TimelineProviderDescriptor): void;1795$unregisterTimelineProvider(source: string): void;1796$emitTimelineChangeEvent(e: TimelineChangeEvent | undefined): void;1797}17981799export interface HoverWithId extends languages.Hover {1800/**1801* Id of the hover1802*/1803id: number;1804}18051806// -- extension host18071808export interface ICommandMetadataDto {1809/**1810* NOTE: Please use an ILocalizedString. string is in the type for backcompat for now.1811* A short summary of what the command does. This will be used in:1812* - API commands1813* - when showing keybindings that have no other UX1814* - when searching for commands in the Command Palette1815*/1816readonly description: ILocalizedString | string;1817readonly args?: ReadonlyArray<{1818readonly name: string;1819readonly isOptional?: boolean;1820readonly description?: string;1821}>;1822readonly returns?: string;1823}18241825export interface ICodeMapperRequestDto extends Dto<ICodeMapperRequest> {1826requestId: string;1827}18281829export interface ExtHostCodeMapperShape {1830$mapCode(handle: number, request: ICodeMapperRequestDto, token: CancellationToken): Promise<ICodeMapperResult | null | undefined>;1831}18321833export interface ExtHostCommandsShape {1834$executeContributedCommand(id: string, ...args: any[]): Promise<unknown>;1835$getContributedCommandMetadata(): Promise<{ [id: string]: string | ICommandMetadataDto }>;1836}18371838export interface ExtHostConfigurationShape {1839$initializeConfiguration(data: IConfigurationInitData): void;1840$acceptConfigurationChanged(data: IConfigurationInitData, change: IConfigurationChange): void;1841}18421843export interface ExtHostDiagnosticsShape {1844$acceptMarkersChange(data: [UriComponents, IMarkerData[]][]): void;1845}18461847export interface ExtHostDocumentContentProvidersShape {1848$provideTextDocumentContent(handle: number, uri: UriComponents): Promise<string | null | undefined>;1849}18501851export interface IModelAddedData {1852uri: UriComponents;1853versionId: number;1854lines: string[];1855EOL: string;1856languageId: string;1857isDirty: boolean;1858encoding: string;1859}1860export interface ExtHostDocumentsShape {1861$acceptModelLanguageChanged(strURL: UriComponents, newLanguageId: string): void;1862$acceptModelSaved(strURL: UriComponents): void;1863$acceptDirtyStateChanged(strURL: UriComponents, isDirty: boolean): void;1864$acceptEncodingChanged(strURL: UriComponents, encoding: string): void;1865$acceptModelChanged(strURL: UriComponents, e: ISerializedModelContentChangedEvent, isDirty: boolean): void;1866}18671868export interface ExtHostDocumentSaveParticipantShape {1869$participateInSave(resource: UriComponents, reason: SaveReason): Promise<boolean[]>;1870}18711872export interface ITextEditorAddData {1873id: string;1874documentUri: UriComponents;1875options: IResolvedTextEditorConfiguration;1876selections: ISelection[];1877visibleRanges: IRange[];1878editorPosition: EditorGroupColumn | undefined;1879}1880export interface ITextEditorPositionData {1881[id: string]: EditorGroupColumn;1882}18831884export type ITextEditorChange = [1885originalStartLineNumber: number,1886originalEndLineNumberExclusive: number,1887modifiedStartLineNumber: number,1888modifiedEndLineNumberExclusive: number1889];18901891export interface ITextEditorDiffInformation {1892readonly documentVersion: number;1893readonly original: UriComponents | undefined;1894readonly modified: UriComponents;1895readonly changes: readonly ITextEditorChange[];1896}18971898export interface IEditorPropertiesChangeData {1899options: IResolvedTextEditorConfiguration | null;1900selections: ISelectionChangeEvent | null;1901visibleRanges: IRange[] | null;1902}1903export interface ISelectionChangeEvent {1904selections: Selection[];1905source?: string;1906}19071908export interface ExtHostEditorsShape {1909$acceptEditorPropertiesChanged(id: string, props: IEditorPropertiesChangeData): void;1910$acceptEditorPositionData(data: ITextEditorPositionData): void;1911$acceptEditorDiffInformation(id: string, diffInformation: ITextEditorDiffInformation[] | undefined): void;1912}19131914export interface IDocumentsAndEditorsDelta {1915removedDocuments?: UriComponents[];1916addedDocuments?: IModelAddedData[];1917removedEditors?: string[];1918addedEditors?: ITextEditorAddData[];1919newActiveEditor?: string | null;1920}19211922export interface ExtHostDocumentsAndEditorsShape {1923$acceptDocumentsAndEditorsDelta(delta: IDocumentsAndEditorsDelta): void;1924}19251926export interface IDataTransferFileDTO {1927readonly id: string;1928readonly name: string;1929readonly uri?: UriComponents;1930}19311932export interface DataTransferItemDTO {1933id: string;1934readonly asString: string;1935readonly fileData: IDataTransferFileDTO | undefined;1936readonly uriListData?: ReadonlyArray<string | UriComponents>;1937}19381939export interface DataTransferDTO {1940items: Array<readonly [/* type */string, DataTransferItemDTO]>;1941}19421943export interface CheckboxUpdate {1944treeItemHandle: string;1945newState: boolean;1946}19471948export interface ExtHostTreeViewsShape {1949/**1950* To reduce what is sent on the wire:1951* w1952* x1953* y1954* z1955*1956* for [x,y] returns1957* [[1,z]], where the inner array is [original index, ...children]1958*/1959$getChildren(treeViewId: string, treeItemHandles?: string[]): Promise<(number | ITreeItem)[][] | undefined>;1960$handleDrop(destinationViewId: string, requestId: number, treeDataTransfer: DataTransferDTO, targetHandle: string | undefined, token: CancellationToken, operationUuid?: string, sourceViewId?: string, sourceTreeItemHandles?: string[]): Promise<void>;1961$handleDrag(sourceViewId: string, sourceTreeItemHandles: string[], operationUuid: string, token: CancellationToken): Promise<DataTransferDTO | undefined>;1962$setExpanded(treeViewId: string, treeItemHandle: string, expanded: boolean): void;1963$setSelectionAndFocus(treeViewId: string, selectionHandles: string[], focusHandle: string): void;1964$setVisible(treeViewId: string, visible: boolean): void;1965$changeCheckboxState(treeViewId: string, checkboxUpdates: CheckboxUpdate[]): void;1966$hasResolve(treeViewId: string): Promise<boolean>;1967$resolve(treeViewId: string, treeItemHandle: string, token: CancellationToken): Promise<ITreeItem | undefined>;1968}19691970export interface ExtHostWorkspaceShape {1971$initializeWorkspace(workspace: IWorkspaceData | null, trusted: boolean): void;1972$acceptWorkspaceData(workspace: IWorkspaceData | null): void;1973$handleTextSearchResult(result: search.IRawFileMatch2, requestId: number): void;1974$onDidGrantWorkspaceTrust(): void;1975$getEditSessionIdentifier(folder: UriComponents, token: CancellationToken): Promise<string | undefined>;1976$provideEditSessionIdentityMatch(folder: UriComponents, identity1: string, identity2: string, token: CancellationToken): Promise<EditSessionIdentityMatch | undefined>;1977$onWillCreateEditSessionIdentity(folder: UriComponents, token: CancellationToken, timeout: number): Promise<void>;1978$provideCanonicalUri(uri: UriComponents, targetScheme: string, token: CancellationToken): Promise<UriComponents | undefined>;1979}19801981export interface ExtHostFileSystemInfoShape {1982$acceptProviderInfos(uri: UriComponents, capabilities: number | null): void;1983}19841985export interface ExtHostFileSystemShape {1986$stat(handle: number, resource: UriComponents): Promise<files.IStat>;1987$readdir(handle: number, resource: UriComponents): Promise<[string, files.FileType][]>;1988$readFile(handle: number, resource: UriComponents): Promise<VSBuffer>;1989$writeFile(handle: number, resource: UriComponents, content: VSBuffer, opts: files.IFileWriteOptions): Promise<void>;1990$rename(handle: number, resource: UriComponents, target: UriComponents, opts: files.IFileOverwriteOptions): Promise<void>;1991$copy(handle: number, resource: UriComponents, target: UriComponents, opts: files.IFileOverwriteOptions): Promise<void>;1992$mkdir(handle: number, resource: UriComponents): Promise<void>;1993$delete(handle: number, resource: UriComponents, opts: files.IFileDeleteOptions): Promise<void>;1994$watch(handle: number, session: number, resource: UriComponents, opts: files.IWatchOptions): void;1995$unwatch(handle: number, session: number): void;1996$open(handle: number, resource: UriComponents, opts: files.IFileOpenOptions): Promise<number>;1997$close(handle: number, fd: number): Promise<void>;1998$read(handle: number, fd: number, pos: number, length: number): Promise<VSBuffer>;1999$write(handle: number, fd: number, pos: number, data: VSBuffer): Promise<number>;2000}20012002export interface ExtHostLabelServiceShape {2003$registerResourceLabelFormatter(formatter: ResourceLabelFormatter): IDisposable;2004}20052006export interface ExtHostAuthenticationShape {2007$getSessions(id: string, scopes: string[] | undefined, options: IAuthenticationGetSessionsOptions): Promise<ReadonlyArray<AuthenticationSession>>;2008$createSession(id: string, scopes: string[], options: IAuthenticationCreateSessionOptions): Promise<AuthenticationSession>;2009$getSessionsFromChallenges(id: string, constraint: AuthenticationConstraint, options: IAuthenticationGetSessionsOptions): Promise<ReadonlyArray<AuthenticationSession>>;2010$createSessionFromChallenges(id: string, constraint: AuthenticationConstraint, options: IAuthenticationCreateSessionOptions): Promise<AuthenticationSession>;2011$removeSession(id: string, sessionId: string): Promise<void>;2012$onDidChangeAuthenticationSessions(id: string, label: string, extensionIdFilter?: string[]): Promise<void>;2013$onDidUnregisterAuthenticationProvider(id: string): Promise<void>;2014$registerDynamicAuthProvider(authorizationServer: UriComponents, serverMetadata: IAuthorizationServerMetadata, resource?: IAuthorizationProtectedResourceMetadata, clientId?: string, clientSecret?: string, initialTokens?: (IAuthorizationTokenResponse & { created_at: number })[]): Promise<string>;2015$onDidChangeDynamicAuthProviderTokens(authProviderId: string, clientId: string, tokens?: (IAuthorizationTokenResponse & { created_at: number })[]): Promise<void>;2016}20172018export interface ExtHostAiRelatedInformationShape {2019$provideAiRelatedInformation(handle: number, query: string, token: CancellationToken): Promise<RelatedInformationResult[]>;2020}20212022export interface MainThreadAiRelatedInformationShape {2023$getAiRelatedInformation(query: string, types: RelatedInformationType[]): Promise<RelatedInformationResult[]>;2024$registerAiRelatedInformationProvider(handle: number, type: RelatedInformationType): void;2025$unregisterAiRelatedInformationProvider(handle: number): void;2026}20272028export interface ExtHostAiSettingsSearchShape {2029$startSearch(handle: number, query: string, option: AiSettingsSearchProviderOptions, token: CancellationToken): Promise<void>;2030}20312032export interface MainThreadAiSettingsSearchShape {2033$registerAiSettingsSearchProvider(handle: number): void;2034$unregisterAiSettingsSearchProvider(handle: number): void;2035$handleSearchResult(handle: number, result: AiSettingsSearchResult): void;2036}20372038export interface ExtHostAiEmbeddingVectorShape {2039$provideAiEmbeddingVector(handle: number, strings: string[], token: CancellationToken): Promise<number[][]>;2040}20412042export interface MainThreadAiEmbeddingVectorShape {2043$registerAiEmbeddingVectorProvider(model: string, handle: number): void;2044$unregisterAiEmbeddingVectorProvider(handle: number): void;2045}20462047export interface ExtHostSecretStateShape {2048$onDidChangePassword(e: { extensionId: string; key: string }): Promise<void>;2049}20502051export interface ExtHostSearchShape {2052$enableExtensionHostSearch(): void;2053$getAIName(handle: number): Promise<string | undefined>;2054$provideFileSearchResults(handle: number, session: number, query: search.IRawQuery, token: CancellationToken): Promise<search.ISearchCompleteStats>;2055$provideAITextSearchResults(handle: number, session: number, query: search.IRawAITextQuery, token: CancellationToken): Promise<search.ISearchCompleteStats>;2056$provideTextSearchResults(handle: number, session: number, query: search.IRawTextQuery, token: CancellationToken): Promise<search.ISearchCompleteStats>;2057$clearCache(cacheKey: string): Promise<void>;2058}20592060export interface ExtHostExtensionServiceShape {2061$resolveAuthority(remoteAuthority: string, resolveAttempt: number): Promise<Dto<IResolveAuthorityResult>>;2062/**2063* Returns `null` if no resolver for `remoteAuthority` is found.2064*/2065$getCanonicalURI(remoteAuthority: string, uri: UriComponents): Promise<UriComponents | null>;2066$startExtensionHost(extensionsDelta: IExtensionDescriptionDelta): Promise<void>;2067$extensionTestsExecute(): Promise<number>;2068$activateByEvent(activationEvent: string, activationKind: ActivationKind): Promise<void>;2069$activate(extensionId: ExtensionIdentifier, reason: ExtensionActivationReason): Promise<boolean>;2070$setRemoteEnvironment(env: { [key: string]: string | null }): Promise<void>;2071$updateRemoteConnectionData(connectionData: IRemoteConnectionData): Promise<void>;20722073$deltaExtensions(extensionsDelta: IExtensionDescriptionDelta): Promise<void>;20742075$test_latency(n: number): Promise<number>;2076$test_up(b: VSBuffer): Promise<number>;2077$test_down(size: number): Promise<VSBuffer>;2078}20792080export interface FileSystemEvents {2081session?: number;2082created: UriComponents[];2083changed: UriComponents[];2084deleted: UriComponents[];2085}20862087export interface SourceTargetPair {2088source?: UriComponents;2089target: UriComponents;2090}20912092export interface IWillRunFileOperationParticipation {2093edit: IWorkspaceEditDto;2094extensionNames: string[];2095}20962097export interface ExtHostFileSystemEventServiceShape {2098$onFileEvent(events: FileSystemEvents): void;2099$onWillRunFileOperation(operation: files.FileOperation, files: readonly SourceTargetPair[], timeout: number, token: CancellationToken): Promise<IWillRunFileOperationParticipation | undefined>;2100$onDidRunFileOperation(operation: files.FileOperation, files: readonly SourceTargetPair[]): void;2101}21022103export interface ExtHostLanguagesShape {2104$acceptLanguageIds(ids: string[]): void;2105}21062107export interface ExtHostHeapServiceShape {2108$onGarbageCollection(ids: number[]): void;2109}2110export interface IRawColorInfo {2111color: [number, number, number, number];2112range: IRange;2113}21142115export class IdObject {2116_id?: number;2117private static _n = 0;2118static mixin<T extends object>(object: T): T & IdObject {2119(<any>object)._id = IdObject._n++;2120return <any>object;2121}2122}21232124export const enum ISuggestDataDtoField {2125label = 'a',2126kind = 'b',2127detail = 'c',2128documentation = 'd',2129sortText = 'e',2130filterText = 'f',2131preselect = 'g',2132insertText = 'h',2133insertTextRules = 'i',2134range = 'j',2135commitCharacters = 'k',2136additionalTextEdits = 'l',2137kindModifier = 'm',2138commandIdent = 'n',2139commandId = 'o',2140commandArguments = 'p',2141}21422143export interface ISuggestDataDto {2144[ISuggestDataDtoField.label]: string | languages.CompletionItemLabel;2145[ISuggestDataDtoField.kind]?: languages.CompletionItemKind;2146[ISuggestDataDtoField.detail]?: string;2147[ISuggestDataDtoField.documentation]?: string | IMarkdownString;2148[ISuggestDataDtoField.sortText]?: string;2149[ISuggestDataDtoField.filterText]?: string;2150[ISuggestDataDtoField.preselect]?: true;2151[ISuggestDataDtoField.insertText]?: string;2152[ISuggestDataDtoField.insertTextRules]?: languages.CompletionItemInsertTextRule;2153[ISuggestDataDtoField.range]?: IRange | { insert: IRange; replace: IRange };2154[ISuggestDataDtoField.commitCharacters]?: string;2155[ISuggestDataDtoField.additionalTextEdits]?: ISingleEditOperation[];2156[ISuggestDataDtoField.kindModifier]?: languages.CompletionItemTag[];2157// Command2158[ISuggestDataDtoField.commandIdent]?: string;2159[ISuggestDataDtoField.commandId]?: string;2160[ISuggestDataDtoField.commandArguments]?: any[];2161// not-standard2162x?: ChainedCacheId;2163}21642165export const enum ISuggestResultDtoField {2166defaultRanges = 'a',2167completions = 'b',2168isIncomplete = 'c',2169duration = 'd',2170}21712172export interface ISuggestResultDto {2173[ISuggestResultDtoField.defaultRanges]: { insert: IRange; replace: IRange };2174[ISuggestResultDtoField.completions]: ISuggestDataDto[];2175[ISuggestResultDtoField.isIncomplete]: undefined | true;2176[ISuggestResultDtoField.duration]: number;2177x?: number;2178}21792180export interface ISignatureHelpDto {2181id: CacheId;2182signatures: languages.SignatureInformation[];2183activeSignature: number;2184activeParameter: number;2185}21862187export interface ISignatureHelpContextDto {2188readonly triggerKind: languages.SignatureHelpTriggerKind;2189readonly triggerCharacter: string | undefined;2190readonly isRetrigger: boolean;2191readonly activeSignatureHelp: ISignatureHelpDto | undefined;2192}21932194export type IInlayHintDto = CachedSessionItem<Dto<languages.InlayHint>>;21952196export type IInlayHintsDto = CachedSession<{ hints: IInlayHintDto[] }>;21972198export type ILocationDto = Dto<languages.Location>;2199export type ILocationLinkDto = Dto<languages.LocationLink>;22002201export type IWorkspaceSymbolDto = CachedSessionItem<Dto<IWorkspaceSymbol>>;2202export type IWorkspaceSymbolsDto = CachedSession<{ symbols: IWorkspaceSymbolDto[] }>;22032204export interface IWorkspaceEditEntryMetadataDto {2205needsConfirmation: boolean;2206label: string;2207description?: string;2208iconPath?: { id: string } | UriComponents | { light: UriComponents; dark: UriComponents };2209}22102211export interface IChatNotebookEditDto {2212uri: UriComponents;2213edits: ICellEditOperationDto[];2214kind: 'notebookEdit';2215done?: boolean;2216}22172218export interface IChatResponseClearToPreviousToolInvocationDto {2219kind: 'clearToPreviousToolInvocation';2220reason: ChatResponseClearToPreviousToolInvocationReason;2221}22222223export type ICellEditOperationDto =2224notebookCommon.ICellMetadataEdit2225| notebookCommon.IDocumentMetadataEdit2226| {2227editType: notebookCommon.CellEditType.Replace;2228index: number;2229count: number;2230cells: NotebookCellDataDto[];2231};22322233export type IWorkspaceCellEditDto = Dto<Omit<notebookCommon.IWorkspaceNotebookCellEdit, 'cellEdit'>> & { cellEdit: ICellEditOperationDto };22342235export type IWorkspaceFileEditDto = Dto<2236Omit<languages.IWorkspaceFileEdit, 'options'> & {2237options?: Omit<languages.WorkspaceFileEditOptions, 'contents'> & { contents?: { type: 'base64'; value: string } | { type: 'dataTransferItem'; id: string } };2238}>;22392240export type IWorkspaceTextEditDto = Dto<languages.IWorkspaceTextEdit>;22412242export interface IWorkspaceEditDto {2243edits: Array<IWorkspaceFileEditDto | IWorkspaceTextEditDto | IWorkspaceCellEditDto>;2244}22452246export type ICommandDto = { $ident?: string } & languages.Command;22472248export interface ICodeActionDto {2249cacheId?: ChainedCacheId;2250title: string;2251edit?: IWorkspaceEditDto;2252diagnostics?: Dto<IMarkerData[]>;2253command?: ICommandDto;2254kind?: string;2255isPreferred?: boolean;2256isAI?: boolean;2257disabled?: string;2258ranges?: IRange[];2259}22602261export interface ICodeActionListDto {2262cacheId: CacheId;2263actions: ReadonlyArray<ICodeActionDto>;2264}22652266export interface ICodeActionProviderMetadataDto {2267readonly providedKinds?: readonly string[];2268readonly documentation?: ReadonlyArray<{ readonly kind: string; readonly command: ICommandDto }>;2269}22702271export type CacheId = number;2272export type ChainedCacheId = [CacheId, CacheId];22732274type CachedSessionItem<T> = T & { cacheId?: ChainedCacheId };2275type CachedSession<T> = T & { cacheId?: CacheId };22762277export type ILinksListDto = CachedSession<{ links: ILinkDto[] }>;2278export type ILinkDto = CachedSessionItem<Dto<languages.ILink>>;22792280export type ICodeLensListDto = CachedSession<{ lenses: ICodeLensDto[] }>;2281export type ICodeLensDto = CachedSessionItem<Dto<languages.CodeLens>>;22822283export type ICallHierarchyItemDto = Dto<CallHierarchyItem>;22842285export interface IIncomingCallDto {2286from: ICallHierarchyItemDto;2287fromRanges: IRange[];2288}22892290export interface IOutgoingCallDto {2291fromRanges: IRange[];2292to: ICallHierarchyItemDto;2293}22942295export interface ILanguageWordDefinitionDto {2296languageId: string;2297regexSource: string;2298regexFlags: string;2299}23002301export interface ILinkedEditingRangesDto {2302ranges: IRange[];2303wordPattern?: IRegExpDto;2304}23052306export interface IInlineValueContextDto {2307frameId: number;2308stoppedLocation: IRange;2309}23102311export type ITypeHierarchyItemDto = Dto<TypeHierarchyItem>;23122313export interface IPasteEditProviderMetadataDto {2314readonly supportsCopy: boolean;2315readonly supportsPaste: boolean;2316readonly supportsResolve: boolean;23172318readonly providedPasteEditKinds?: readonly string[];2319readonly copyMimeTypes?: readonly string[];2320readonly pasteMimeTypes?: readonly string[];2321}23222323export interface IDocumentPasteContextDto {2324readonly only: string | undefined;2325readonly triggerKind: languages.DocumentPasteTriggerKind;2326}23272328export interface IPasteEditDto {2329_cacheId?: ChainedCacheId;2330title: string;2331kind: { value: string } | undefined;2332insertText: string | { snippet: string };2333additionalEdit?: IWorkspaceEditDto;2334yieldTo?: readonly string[];2335}23362337export interface IDocumentDropEditProviderMetadata {2338readonly supportsResolve: boolean;23392340readonly dropMimeTypes: readonly string[];2341readonly providedDropKinds?: readonly string[];2342}23432344export interface IDocumentDropEditDto {2345_cacheId?: ChainedCacheId;2346title: string;2347kind: string | undefined;2348insertText: string | { snippet: string };2349additionalEdit?: IWorkspaceEditDto;2350yieldTo?: readonly string[];2351}23522353export interface ExtHostLanguageFeaturesShape {2354$provideDocumentSymbols(handle: number, resource: UriComponents, token: CancellationToken): Promise<languages.DocumentSymbol[] | undefined>;2355$provideCodeLenses(handle: number, resource: UriComponents, token: CancellationToken): Promise<ICodeLensListDto | undefined>;2356$resolveCodeLens(handle: number, symbol: ICodeLensDto, token: CancellationToken): Promise<ICodeLensDto | undefined>;2357$releaseCodeLenses(handle: number, id: number): void;2358$provideDefinition(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Promise<ILocationLinkDto[]>;2359$provideDeclaration(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Promise<ILocationLinkDto[]>;2360$provideImplementation(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Promise<ILocationLinkDto[]>;2361$provideTypeDefinition(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Promise<ILocationLinkDto[]>;2362$provideHover(handle: number, resource: UriComponents, position: IPosition, context: languages.HoverContext<{ id: number }> | undefined, token: CancellationToken): Promise<HoverWithId | undefined>;2363$releaseHover(handle: number, id: number): void;2364$provideEvaluatableExpression(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Promise<languages.EvaluatableExpression | undefined>;2365$provideInlineValues(handle: number, resource: UriComponents, range: IRange, context: languages.InlineValueContext, token: CancellationToken): Promise<languages.InlineValue[] | undefined>;2366$provideDocumentHighlights(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Promise<languages.DocumentHighlight[] | undefined>;2367$provideMultiDocumentHighlights(handle: number, resource: UriComponents, position: IPosition, otherModels: UriComponents[], token: CancellationToken): Promise<Dto<languages.MultiDocumentHighlight[]> | undefined>;2368$provideLinkedEditingRanges(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Promise<ILinkedEditingRangesDto | undefined>;2369$provideReferences(handle: number, resource: UriComponents, position: IPosition, context: languages.ReferenceContext, token: CancellationToken): Promise<ILocationDto[] | undefined>;2370$provideCodeActions(handle: number, resource: UriComponents, rangeOrSelection: IRange | ISelection, context: languages.CodeActionContext, token: CancellationToken): Promise<ICodeActionListDto | undefined>;2371$resolveCodeAction(handle: number, id: ChainedCacheId, token: CancellationToken): Promise<{ edit?: IWorkspaceEditDto; command?: ICommandDto }>;2372$releaseCodeActions(handle: number, cacheId: number): void;2373$prepareDocumentPaste(handle: number, uri: UriComponents, ranges: readonly IRange[], dataTransfer: DataTransferDTO, token: CancellationToken): Promise<DataTransferDTO | undefined>;2374$providePasteEdits(handle: number, requestId: number, uri: UriComponents, ranges: IRange[], dataTransfer: DataTransferDTO, context: IDocumentPasteContextDto, token: CancellationToken): Promise<IPasteEditDto[] | undefined>;2375$resolvePasteEdit(handle: number, id: ChainedCacheId, token: CancellationToken): Promise<{ insertText?: string; additionalEdit?: IWorkspaceEditDto }>;2376$releasePasteEdits(handle: number, cacheId: number): void;2377$provideDocumentFormattingEdits(handle: number, resource: UriComponents, options: languages.FormattingOptions, token: CancellationToken): Promise<languages.TextEdit[] | undefined>;2378$provideDocumentRangeFormattingEdits(handle: number, resource: UriComponents, range: IRange, options: languages.FormattingOptions, token: CancellationToken): Promise<languages.TextEdit[] | undefined>;2379$provideDocumentRangesFormattingEdits(handle: number, resource: UriComponents, range: IRange[], options: languages.FormattingOptions, token: CancellationToken): Promise<languages.TextEdit[] | undefined>;2380$provideOnTypeFormattingEdits(handle: number, resource: UriComponents, position: IPosition, ch: string, options: languages.FormattingOptions, token: CancellationToken): Promise<languages.TextEdit[] | undefined>;2381$provideWorkspaceSymbols(handle: number, search: string, token: CancellationToken): Promise<IWorkspaceSymbolsDto>;2382$resolveWorkspaceSymbol(handle: number, symbol: IWorkspaceSymbolDto, token: CancellationToken): Promise<IWorkspaceSymbolDto | undefined>;2383$releaseWorkspaceSymbols(handle: number, id: number): void;2384$provideRenameEdits(handle: number, resource: UriComponents, position: IPosition, newName: string, token: CancellationToken): Promise<IWorkspaceEditDto & { rejectReason?: string } | undefined>;2385$resolveRenameLocation(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Promise<languages.RenameLocation | undefined>;2386$supportsAutomaticNewSymbolNamesTriggerKind(handle: number): Promise<boolean | undefined>;2387$provideNewSymbolNames(handle: number, resource: UriComponents, range: IRange, triggerKind: languages.NewSymbolNameTriggerKind, token: CancellationToken): Promise<languages.NewSymbolName[] | undefined>;2388$provideDocumentSemanticTokens(handle: number, resource: UriComponents, previousResultId: number, token: CancellationToken): Promise<VSBuffer | null>;2389$releaseDocumentSemanticTokens(handle: number, semanticColoringResultId: number): void;2390$provideDocumentRangeSemanticTokens(handle: number, resource: UriComponents, range: IRange, token: CancellationToken): Promise<VSBuffer | null>;2391$provideCompletionItems(handle: number, resource: UriComponents, position: IPosition, context: languages.CompletionContext, token: CancellationToken): Promise<ISuggestResultDto | undefined>;2392$resolveCompletionItem(handle: number, id: ChainedCacheId, token: CancellationToken): Promise<ISuggestDataDto | undefined>;2393$releaseCompletionItems(handle: number, id: number): void;2394$provideInlineCompletions(handle: number, resource: UriComponents, position: IPosition, context: languages.InlineCompletionContext, token: CancellationToken): Promise<IdentifiableInlineCompletions | undefined>;2395$handleInlineCompletionDidShow(handle: number, pid: number, idx: number, updatedInsertText: string): void;2396$handleInlineCompletionPartialAccept(handle: number, pid: number, idx: number, acceptedCharacters: number, info: languages.PartialAcceptInfo): void;2397$handleInlineCompletionEndOfLifetime(handle: number, pid: number, idx: number, reason: languages.InlineCompletionEndOfLifeReason<{ pid: number; idx: number }>): void;2398$handleInlineCompletionRejection(handle: number, pid: number, idx: number): void;2399$freeInlineCompletionsList(handle: number, pid: number, reason: languages.InlineCompletionsDisposeReason): void;2400$acceptInlineCompletionsUnificationState(state: IInlineCompletionsUnificationState): void;2401$provideSignatureHelp(handle: number, resource: UriComponents, position: IPosition, context: languages.SignatureHelpContext, token: CancellationToken): Promise<ISignatureHelpDto | undefined>;2402$releaseSignatureHelp(handle: number, id: number): void;2403$provideInlayHints(handle: number, resource: UriComponents, range: IRange, token: CancellationToken): Promise<IInlayHintsDto | undefined>;2404$resolveInlayHint(handle: number, id: ChainedCacheId, token: CancellationToken): Promise<IInlayHintDto | undefined>;2405$releaseInlayHints(handle: number, id: number): void;2406$provideDocumentLinks(handle: number, resource: UriComponents, token: CancellationToken): Promise<ILinksListDto | undefined>;2407$resolveDocumentLink(handle: number, id: ChainedCacheId, token: CancellationToken): Promise<ILinkDto | undefined>;2408$releaseDocumentLinks(handle: number, id: number): void;2409$provideDocumentColors(handle: number, resource: UriComponents, token: CancellationToken): Promise<IRawColorInfo[]>;2410$provideColorPresentations(handle: number, resource: UriComponents, colorInfo: IRawColorInfo, token: CancellationToken): Promise<languages.IColorPresentation[] | undefined>;2411$provideFoldingRanges(handle: number, resource: UriComponents, context: languages.FoldingContext, token: CancellationToken): Promise<languages.FoldingRange[] | undefined>;2412$provideSelectionRanges(handle: number, resource: UriComponents, positions: IPosition[], token: CancellationToken): Promise<languages.SelectionRange[][]>;2413$prepareCallHierarchy(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Promise<ICallHierarchyItemDto[] | undefined>;2414$provideCallHierarchyIncomingCalls(handle: number, sessionId: string, itemId: string, token: CancellationToken): Promise<IIncomingCallDto[] | undefined>;2415$provideCallHierarchyOutgoingCalls(handle: number, sessionId: string, itemId: string, token: CancellationToken): Promise<IOutgoingCallDto[] | undefined>;2416$releaseCallHierarchy(handle: number, sessionId: string): void;2417$setWordDefinitions(wordDefinitions: ILanguageWordDefinitionDto[]): void;2418$prepareTypeHierarchy(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Promise<ITypeHierarchyItemDto[] | undefined>;2419$provideTypeHierarchySupertypes(handle: number, sessionId: string, itemId: string, token: CancellationToken): Promise<ITypeHierarchyItemDto[] | undefined>;2420$provideTypeHierarchySubtypes(handle: number, sessionId: string, itemId: string, token: CancellationToken): Promise<ITypeHierarchyItemDto[] | undefined>;2421$releaseTypeHierarchy(handle: number, sessionId: string): void;2422$provideDocumentOnDropEdits(handle: number, requestId: number, resource: UriComponents, position: IPosition, dataTransferDto: DataTransferDTO, token: CancellationToken): Promise<IDocumentDropEditDto[] | undefined>;2423$releaseDocumentOnDropEdits(handle: number, cacheId: number): void;2424}24252426export interface ExtHostQuickOpenShape {2427$onItemSelected(handle: number): void;2428$validateInput(input: string): Promise<string | { content: string; severity: Severity } | null | undefined>;2429$onDidChangeActive(sessionId: number, handles: number[]): void;2430$onDidChangeSelection(sessionId: number, handles: number[]): void;2431$onDidAccept(sessionId: number): void;2432$onDidChangeValue(sessionId: number, value: string): void;2433$onDidTriggerButton(sessionId: number, handle: number): void;2434$onDidTriggerItemButton(sessionId: number, itemHandle: number, buttonHandle: number): void;2435$onDidHide(sessionId: number): void;2436}24372438export interface ExtHostTelemetryShape {2439$initializeTelemetryLevel(level: TelemetryLevel, supportsTelemetry: boolean, productConfig?: { usage: boolean; error: boolean }): void;2440$onDidChangeTelemetryLevel(level: TelemetryLevel): void;2441}24422443export interface ITerminalLinkDto {2444/** The ID of the link to enable activation and disposal. */2445id: number;2446/** The startIndex of the link in the line. */2447startIndex: number;2448/** The length of the link in the line. */2449length: number;2450/** The descriptive label for what the link does when activated. */2451label?: string;2452}24532454export interface ITerminalDimensionsDto {2455columns: number;2456rows: number;2457}24582459type SingleOrMany<T> = T[] | T;24602461export interface ITerminalQuickFixTerminalCommandDto {2462terminalCommand: string;2463shouldExecute?: boolean;2464}24652466export interface ITerminalQuickFixOpenerDto {2467uri: UriComponents;2468}24692470export type TerminalQuickFix = ITerminalQuickFixTerminalCommandDto | ITerminalQuickFixOpenerDto | ICommandDto;24712472export interface TerminalCommandMatchResultDto {2473commandLine: string;2474commandLineMatch: RegExpMatchArray;2475outputMatch?: {2476regexMatch: RegExpMatchArray;2477outputLines: string[];2478};2479}24802481export interface ITerminalCommandDto {2482commandLine: string | undefined;2483cwd: URI | string | undefined;2484exitCode: number | undefined;2485output: string | undefined;2486}24872488export interface ITerminalCompletionContextDto {2489commandLine: string;2490cursorPosition: number;2491allowFallbackCompletions: boolean;2492}24932494export interface ITerminalCompletionItemDto {2495label: string | CompletionItemLabel;2496detail?: string;2497documentation?: string | IMarkdownString;2498icon?: ThemeIcon | undefined;2499isFile?: boolean | undefined;2500isDirectory?: boolean | undefined;2501isKeyword?: boolean | undefined;2502replacementIndex: number;2503replacementLength: number;2504}25052506export interface ITerminalCompletionProvider {2507id: string;2508shellTypes?: TerminalShellType[];2509provideCompletions(value: string, cursorPosition: number, token: CancellationToken): Promise<TerminalCompletionListDto<ITerminalCompletionItemDto> | undefined>;2510triggerCharacters?: string[];2511isBuiltin?: boolean;2512}2513/**2514* Represents a collection of {@link CompletionItem completion items} to be presented2515* in the editor.2516*/2517export class TerminalCompletionListDto<T extends ITerminalCompletionItemDto = ITerminalCompletionItemDto> {25182519/**2520* Resources should be shown in the completions list2521*/2522resourceRequestConfig?: TerminalResourceRequestConfigDto;25232524/**2525* The completion items.2526*/2527items: T[];25282529/**2530* Creates a new completion list.2531*2532* @param items The completion items.2533* @param isIncomplete The list is not complete.2534*/2535constructor(items?: T[], resourceRequestConfig?: TerminalResourceRequestConfigDto) {2536this.items = items ?? [];2537this.resourceRequestConfig = resourceRequestConfig;2538}2539}25402541export interface TerminalResourceRequestConfigDto {2542filesRequested?: boolean;2543foldersRequested?: boolean;2544fileExtensions?: string[];2545cwd?: UriComponents;2546pathSeparator: string;2547}25482549export interface ExtHostTerminalServiceShape {2550$acceptTerminalClosed(id: number, exitCode: number | undefined, exitReason: TerminalExitReason): void;2551$acceptTerminalOpened(id: number, extHostTerminalId: string | undefined, name: string, shellLaunchConfig: IShellLaunchConfigDto): void;2552$acceptActiveTerminalChanged(id: number | null): void;2553$acceptTerminalProcessId(id: number, processId: number): void;2554$acceptTerminalProcessData(id: number, data: string): void;2555$acceptDidExecuteCommand(id: number, command: ITerminalCommandDto): void;2556$acceptTerminalTitleChange(id: number, name: string): void;2557$acceptTerminalDimensions(id: number, cols: number, rows: number): void;2558$acceptTerminalMaximumDimensions(id: number, cols: number, rows: number): void;2559$acceptTerminalInteraction(id: number): void;2560$acceptTerminalSelection(id: number, selection: string | undefined): void;2561$acceptTerminalShellType(id: number, shellType: TerminalShellType | undefined): void;2562$startExtensionTerminal(id: number, initialDimensions: ITerminalDimensionsDto | undefined): Promise<ITerminalLaunchError | undefined>;2563$acceptProcessAckDataEvent(id: number, charCount: number): void;2564$acceptProcessInput(id: number, data: string): void;2565$acceptProcessResize(id: number, cols: number, rows: number): void;2566$acceptProcessShutdown(id: number, immediate: boolean): void;2567$acceptProcessRequestInitialCwd(id: number): void;2568$acceptProcessRequestCwd(id: number): void;2569$acceptProcessRequestLatency(id: number): Promise<number>;2570$provideLinks(id: number, line: string): Promise<ITerminalLinkDto[]>;2571$activateLink(id: number, linkId: number): void;2572$initEnvironmentVariableCollections(collections: [string, ISerializableEnvironmentVariableCollection][]): void;2573$acceptDefaultProfile(profile: ITerminalProfile, automationProfile: ITerminalProfile): void;2574$createContributedProfileTerminal(id: string, options: ICreateContributedTerminalProfileOptions): Promise<void>;2575$provideTerminalQuickFixes(id: string, matchResult: TerminalCommandMatchResultDto, token: CancellationToken): Promise<SingleOrMany<TerminalQuickFix> | undefined>;2576$provideTerminalCompletions(id: string, options: ITerminalCompletionContextDto, token: CancellationToken): Promise<TerminalCompletionListDto | undefined>;2577}25782579export interface ExtHostTerminalShellIntegrationShape {2580$shellIntegrationChange(instanceId: number): void;2581$shellExecutionStart(instanceId: number, commandLineValue: string, commandLineConfidence: TerminalShellExecutionCommandLineConfidence, isTrusted: boolean, cwd: string | undefined): void;2582$shellExecutionEnd(instanceId: number, commandLineValue: string, commandLineConfidence: TerminalShellExecutionCommandLineConfidence, isTrusted: boolean, exitCode: number | undefined): void;2583$shellExecutionData(instanceId: number, data: string): void;2584$shellEnvChange(instanceId: number, shellEnvKeys: string[], shellEnvValues: string[], isTrusted: boolean): void;2585$cwdChange(instanceId: number, cwd: string | undefined): void;2586$closeTerminal(instanceId: number): void;2587}25882589export interface ExtHostSCMShape {2590$provideOriginalResource(sourceControlHandle: number, uri: UriComponents, token: CancellationToken): Promise<UriComponents | null>;2591$provideSecondaryOriginalResource(sourceControlHandle: number, uri: UriComponents, token: CancellationToken): Promise<UriComponents | null>;2592$onInputBoxValueChange(sourceControlHandle: number, value: string): void;2593$executeResourceCommand(sourceControlHandle: number, groupHandle: number, handle: number, preserveFocus: boolean): Promise<void>;2594$validateInput(sourceControlHandle: number, value: string, cursorPosition: number): Promise<[string | IMarkdownString, number] | undefined>;2595$setSelectedSourceControl(selectedSourceControlHandle: number | undefined): Promise<void>;2596$provideHistoryItemRefs(sourceControlHandle: number, historyItemRefs: string[] | undefined, token: CancellationToken): Promise<SCMHistoryItemRefDto[] | undefined>;2597$provideHistoryItems(sourceControlHandle: number, options: ISCMHistoryOptions, token: CancellationToken): Promise<SCMHistoryItemDto[] | undefined>;2598$provideHistoryItemChanges(sourceControlHandle: number, historyItemId: string, historyItemParentId: string | undefined, token: CancellationToken): Promise<SCMHistoryItemChangeDto[] | undefined>;2599$resolveHistoryItemChatContext(sourceControlHandle: number, historyItemId: string, token: CancellationToken): Promise<string | undefined>;2600$resolveHistoryItemRefsCommonAncestor(sourceControlHandle: number, historyItemRefs: string[], token: CancellationToken): Promise<string | undefined>;2601}26022603export interface ExtHostQuickDiffShape {2604$provideOriginalResource(sourceControlHandle: number, uri: UriComponents, token: CancellationToken): Promise<UriComponents | null>;2605}26062607export interface ExtHostShareShape {2608$provideShare(handle: number, shareableItem: IShareableItemDto, token: CancellationToken): Promise<UriComponents | string | undefined>;2609}26102611export interface ExtHostTaskShape {2612$provideTasks(handle: number, validTypes: { [key: string]: boolean }): Promise<tasks.ITaskSetDTO>;2613$resolveTask(handle: number, taskDTO: tasks.ITaskDTO): Promise<tasks.ITaskDTO | undefined>;2614$onDidStartTask(execution: tasks.ITaskExecutionDTO, terminalId: number, resolvedDefinition: tasks.ITaskDefinitionDTO): void;2615$onDidStartTaskProcess(value: tasks.ITaskProcessStartedDTO): void;2616$onDidEndTaskProcess(value: tasks.ITaskProcessEndedDTO): void;2617$OnDidEndTask(execution: tasks.ITaskExecutionDTO): void;2618$onDidStartTaskProblemMatchers(status: tasks.ITaskProblemMatcherStartedDto): void;2619$onDidEndTaskProblemMatchers(status: tasks.ITaskProblemMatcherEndedDto): void;2620$resolveVariables(workspaceFolder: UriComponents, toResolve: { process?: { name: string; cwd?: string }; variables: string[] }): Promise<{ process?: string; variables: { [key: string]: string } }>;2621$jsonTasksSupported(): Promise<boolean>;2622$findExecutable(command: string, cwd?: string, paths?: string[]): Promise<string | undefined>;2623}26242625export interface IBreakpointDto {2626type: string;2627id?: string;2628enabled: boolean;2629condition?: string;2630hitCondition?: string;2631logMessage?: string;2632mode?: string;2633}26342635export interface IFunctionBreakpointDto extends IBreakpointDto {2636type: 'function';2637functionName: string;2638mode?: string;2639}26402641export interface IDataBreakpointDto extends IBreakpointDto {2642type: 'data';2643dataId: string;2644canPersist: boolean;2645label: string;2646accessTypes?: DebugProtocol.DataBreakpointAccessType[];2647accessType: DebugProtocol.DataBreakpointAccessType;2648mode?: string;2649}26502651export interface ISourceBreakpointDto extends IBreakpointDto {2652type: 'source';2653uri: UriComponents;2654line: number;2655character: number;2656}26572658export interface IBreakpointsDeltaDto {2659added?: Array<ISourceBreakpointDto | IFunctionBreakpointDto | IDataBreakpointDto>;2660removed?: string[];2661changed?: Array<ISourceBreakpointDto | IFunctionBreakpointDto | IDataBreakpointDto>;2662}26632664export interface ISourceMultiBreakpointDto {2665type: 'sourceMulti';2666uri: UriComponents;2667lines: {2668id: string;2669enabled: boolean;2670condition?: string;2671hitCondition?: string;2672logMessage?: string;2673line: number;2674character: number;2675mode?: string;2676}[];2677}26782679export interface IDebugSessionFullDto {2680id: DebugSessionUUID;2681type: string;2682name: string;2683parent: DebugSessionUUID | undefined;2684folderUri: UriComponents | undefined;2685configuration: IConfig;2686}26872688export type IDebugSessionDto = IDebugSessionFullDto | DebugSessionUUID;26892690export interface IThreadFocusDto {2691kind: 'thread';2692sessionId: string;2693threadId: number;2694}26952696export interface IStackFrameFocusDto {2697kind: 'stackFrame';2698sessionId: string;2699threadId: number;2700frameId: number;2701}270227032704export interface ExtHostDebugServiceShape {2705$substituteVariables(folder: UriComponents | undefined, config: IConfig): Promise<IConfig>;2706$runInTerminal(args: DebugProtocol.RunInTerminalRequestArguments, sessionId: string): Promise<number | undefined>;2707$startDASession(handle: number, session: IDebugSessionDto): Promise<void>;2708$stopDASession(handle: number): Promise<void>;2709$sendDAMessage(handle: number, message: DebugProtocol.ProtocolMessage): void;2710$resolveDebugConfiguration(handle: number, folder: UriComponents | undefined, debugConfiguration: IConfig, token: CancellationToken): Promise<IConfig | null | undefined>;2711$resolveDebugConfigurationWithSubstitutedVariables(handle: number, folder: UriComponents | undefined, debugConfiguration: IConfig, token: CancellationToken): Promise<IConfig | null | undefined>;2712$provideDebugConfigurations(handle: number, folder: UriComponents | undefined, token: CancellationToken): Promise<IConfig[]>;2713$provideDebugAdapter(handle: number, session: IDebugSessionDto): Promise<Dto<IAdapterDescriptor>>;2714$acceptDebugSessionStarted(session: IDebugSessionDto): void;2715$acceptDebugSessionTerminated(session: IDebugSessionDto): void;2716$acceptDebugSessionActiveChanged(session: IDebugSessionDto | undefined): void;2717$acceptDebugSessionCustomEvent(session: IDebugSessionDto, event: any): void;2718$acceptBreakpointsDelta(delta: IBreakpointsDeltaDto): void;2719$acceptDebugSessionNameChanged(session: IDebugSessionDto, name: string): void;2720$acceptStackFrameFocus(focus: IThreadFocusDto | IStackFrameFocusDto | undefined): void;2721$provideDebugVisualizers(extensionId: string, id: string, context: IDebugVisualizationContext, token: CancellationToken): Promise<IDebugVisualization.Serialized[]>;2722$resolveDebugVisualizer(id: number, token: CancellationToken): Promise<MainThreadDebugVisualization>;2723$executeDebugVisualizerCommand(id: number): Promise<void>;2724$disposeDebugVisualizers(ids: number[]): void;2725$getVisualizerTreeItem(treeId: string, element: IDebugVisualizationContext): Promise<IDebugVisualizationTreeItem.Serialized | undefined>;2726$getVisualizerTreeItemChildren(treeId: string, element: number): Promise<IDebugVisualizationTreeItem.Serialized[]>;2727$editVisualizerTreeItem(element: number, value: string): Promise<IDebugVisualizationTreeItem.Serialized | undefined>;2728$disposeVisualizedTree(element: number): void;2729}273027312732export interface DecorationRequest {2733readonly id: number;2734readonly uri: UriComponents;2735}27362737export type DecorationData = [boolean, string, string | ThemeIcon, ThemeColor];2738export type DecorationReply = { [id: number]: DecorationData };27392740export interface ExtHostDecorationsShape {2741$provideDecorations(handle: number, requests: DecorationRequest[], token: CancellationToken): Promise<DecorationReply>;2742}27432744export interface ExtHostWindowShape {2745$onDidChangeWindowFocus(value: boolean): void;2746$onDidChangeWindowActive(value: boolean): void;2747$onDidChangeActiveNativeWindowHandle(handle: string | undefined): void;2748}27492750export interface ExtHostLogLevelServiceShape {2751$setLogLevel(level: LogLevel, resource?: UriComponents): void;2752}27532754export interface MainThreadLoggerShape {2755$log(file: UriComponents, messages: [LogLevel, string][]): void;2756$flush(file: UriComponents): void;2757$createLogger(file: UriComponents, options?: ILoggerOptions): Promise<void>;2758$registerLogger(logger: UriDto<ILoggerResource>): Promise<void>;2759$deregisterLogger(resource: UriComponents): Promise<void>;2760$setVisibility(resource: UriComponents, visible: boolean): Promise<void>;2761}27622763export interface ExtHostOutputServiceShape {2764$setVisibleChannel(channelId: string | null): void;2765}27662767export interface ExtHostProgressShape {2768$acceptProgressCanceled(handle: number): void;2769}27702771export interface ExtHostCommentsShape {2772$createCommentThreadTemplate(commentControllerHandle: number, uriComponents: UriComponents, range: IRange | undefined, editorId?: string): Promise<void>;2773$updateCommentThreadTemplate(commentControllerHandle: number, threadHandle: number, range: IRange): Promise<void>;2774$updateCommentThread(commentControllerHandle: number, threadHandle: number, changes: CommentThreadChanges): Promise<void>;2775$deleteCommentThread(commentControllerHandle: number, commentThreadHandle: number): void;2776$provideCommentingRanges(commentControllerHandle: number, uriComponents: UriComponents, token: CancellationToken): Promise<{ ranges: IRange[]; fileComments: boolean } | undefined>;2777$toggleReaction(commentControllerHandle: number, threadHandle: number, uri: UriComponents, comment: languages.Comment, reaction: languages.CommentReaction): Promise<void>;2778$setActiveComment(controllerHandle: number, commentInfo: { commentThreadHandle: number; uniqueIdInThread?: number } | undefined): Promise<void>;2779}27802781export interface INotebookSelectionChangeEvent {2782selections: ICellRange[];2783}27842785export interface INotebookVisibleRangesEvent {2786ranges: ICellRange[];2787}27882789export interface INotebookEditorPropertiesChangeData {2790visibleRanges?: INotebookVisibleRangesEvent;2791selections?: INotebookSelectionChangeEvent;2792}27932794export interface INotebookDocumentPropertiesChangeData {2795metadata?: notebookCommon.NotebookDocumentMetadata;2796}27972798export interface INotebookModelAddedData {2799uri: UriComponents;2800versionId: number;2801cells: NotebookCellDto[];2802viewType: string;2803metadata?: notebookCommon.NotebookDocumentMetadata;2804}28052806export interface INotebookEditorAddData {2807id: string;2808documentUri: UriComponents;2809selections: ICellRange[];2810visibleRanges: ICellRange[];2811viewColumn?: number;2812viewType: string;2813}28142815export interface INotebookDocumentsAndEditorsDelta {2816removedDocuments?: UriComponents[];2817addedDocuments?: INotebookModelAddedData[];2818removedEditors?: string[];2819addedEditors?: INotebookEditorAddData[];2820newActiveEditor?: string | null;2821visibleEditors?: string[];2822}28232824export interface NotebookOutputItemDto {2825readonly mime: string;2826readonly valueBytes: VSBuffer;2827}28282829export interface NotebookOutputDto {2830items: NotebookOutputItemDto[];2831outputId: string;2832metadata?: Record<string, any>;2833}28342835export interface NotebookCellDataDto {2836source: string;2837language: string;2838mime: string | undefined;2839cellKind: notebookCommon.CellKind;2840outputs: NotebookOutputDto[];2841metadata?: notebookCommon.NotebookCellMetadata;2842internalMetadata?: notebookCommon.NotebookCellInternalMetadata;2843}28442845export interface NotebookDataDto {2846readonly cells: NotebookCellDataDto[];2847readonly metadata: notebookCommon.NotebookDocumentMetadata;2848}28492850export interface NotebookCellDto {2851handle: number;2852uri: UriComponents;2853eol: string;2854source: string[];2855language: string;2856mime?: string;2857cellKind: notebookCommon.CellKind;2858outputs: NotebookOutputDto[];2859metadata?: notebookCommon.NotebookCellMetadata;2860internalMetadata?: notebookCommon.NotebookCellInternalMetadata;2861}28622863export type INotebookPartialFileStatsWithMetadata = Omit<files.IFileStatWithMetadata, 'resource' | 'children'>;28642865export interface ExtHostNotebookShape extends ExtHostNotebookDocumentsAndEditorsShape {2866$provideNotebookCellStatusBarItems(handle: number, uri: UriComponents, index: number, token: CancellationToken): Promise<INotebookCellStatusBarListDto | undefined>;2867$releaseNotebookCellStatusBarItems(id: number): void;28682869$dataToNotebook(handle: number, data: VSBuffer, token: CancellationToken): Promise<SerializableObjectWithBuffers<NotebookDataDto>>;2870$notebookToData(handle: number, data: SerializableObjectWithBuffers<NotebookDataDto>, token: CancellationToken): Promise<VSBuffer>;2871$saveNotebook(handle: number, uri: UriComponents, versionId: number, options: files.IWriteFileOptions, token: CancellationToken): Promise<INotebookPartialFileStatsWithMetadata | files.FileOperationError>;28722873$searchInNotebooks(handle: number, textQuery: search.ITextQuery, viewTypeFileTargets: NotebookPriorityInfo[], otherViewTypeFileTargets: NotebookPriorityInfo[], token: CancellationToken): Promise<{ results: IRawClosedNotebookFileMatch[]; limitHit: boolean }>;2874}28752876export interface ExtHostNotebookDocumentSaveParticipantShape {2877$participateInSave(resource: UriComponents, reason: SaveReason, token: CancellationToken): Promise<boolean>;2878}28792880export interface ExtHostNotebookRenderersShape {2881$postRendererMessage(editorId: string, rendererId: string, message: unknown): void;2882}28832884export interface ExtHostNotebookDocumentsAndEditorsShape {2885$acceptDocumentAndEditorsDelta(delta: SerializableObjectWithBuffers<INotebookDocumentsAndEditorsDelta>): void;2886}28872888export type NotebookRawContentEventDto =2889// notebookCommon.NotebookCellsInitializeEvent<NotebookCellDto>2890| {28912892readonly kind: notebookCommon.NotebookCellsChangeType.ModelChange;2893readonly changes: notebookCommon.NotebookCellTextModelSplice<NotebookCellDto>[];2894}2895| {2896readonly kind: notebookCommon.NotebookCellsChangeType.Move;2897readonly index: number;2898readonly length: number;2899readonly newIdx: number;2900}2901| {2902readonly kind: notebookCommon.NotebookCellsChangeType.Output;2903readonly index: number;2904readonly outputs: NotebookOutputDto[];2905}2906| {2907readonly kind: notebookCommon.NotebookCellsChangeType.OutputItem;2908readonly index: number;2909readonly outputId: string;2910readonly outputItems: NotebookOutputItemDto[];2911readonly append: boolean;2912}2913| notebookCommon.NotebookCellsChangeLanguageEvent2914| notebookCommon.NotebookCellsChangeMimeEvent2915| notebookCommon.NotebookCellsChangeMetadataEvent2916| notebookCommon.NotebookCellsChangeInternalMetadataEvent2917// | notebookCommon.NotebookDocumentChangeMetadataEvent2918| notebookCommon.NotebookCellContentChangeEvent2919// | notebookCommon.NotebookDocumentUnknownChangeEvent2920;29212922export type NotebookCellsChangedEventDto = {2923readonly rawEvents: NotebookRawContentEventDto[];2924readonly versionId: number;2925};29262927export interface ExtHostNotebookDocumentsShape {2928$acceptModelChanged(uriComponents: UriComponents, event: SerializableObjectWithBuffers<NotebookCellsChangedEventDto>, isDirty: boolean, newMetadata?: notebookCommon.NotebookDocumentMetadata): void;2929$acceptDirtyStateChanged(uriComponents: UriComponents, isDirty: boolean): void;2930$acceptModelSaved(uriComponents: UriComponents): void;2931}29322933export type INotebookEditorViewColumnInfo = Record<string, number>;29342935export interface ExtHostNotebookEditorsShape {2936$acceptEditorPropertiesChanged(id: string, data: INotebookEditorPropertiesChangeData): void;2937$acceptEditorViewColumns(data: INotebookEditorViewColumnInfo): void;2938}29392940export interface ExtHostNotebookKernelsShape {2941$acceptNotebookAssociation(handle: number, uri: UriComponents, value: boolean): void;2942$executeCells(handle: number, uri: UriComponents, handles: number[]): Promise<void>;2943$cancelCells(handle: number, uri: UriComponents, handles: number[]): Promise<void>;2944$acceptKernelMessageFromRenderer(handle: number, editorId: string, message: any): void;2945$provideKernelSourceActions(handle: number, token: CancellationToken): Promise<notebookCommon.INotebookKernelSourceAction[]>;2946$provideVariables(handle: number, requestId: string, notebookUri: UriComponents, parentId: number | undefined, kind: 'named' | 'indexed', start: number, token: CancellationToken): Promise<void>;2947}29482949export interface ExtHostInteractiveShape {2950$willAddInteractiveDocument(uri: UriComponents, eol: string, languageId: string, notebookUri: UriComponents): void;2951$willRemoveInteractiveDocument(uri: UriComponents, notebookUri: UriComponents): void;2952}29532954export interface ExtHostStorageShape {2955$acceptValue(shared: boolean, extensionId: string, value: string): void;2956}29572958export interface ExtHostThemingShape {2959$onColorThemeChange(themeType: string): void;2960}29612962export interface MainThreadThemingShape extends IDisposable {2963}29642965export interface MainThreadLocalizationShape extends IDisposable {2966$fetchBuiltInBundleUri(id: string, language: string): Promise<UriComponents | undefined>;2967$fetchBundleContents(uriComponents: UriComponents): Promise<string>;2968}29692970export interface TunnelDto {2971remoteAddress: { port: number; host: string };2972localAddress: { port: number; host: string } | string;2973public: boolean;2974privacy: TunnelPrivacyId | string;2975protocol: string | undefined;2976}297729782979export interface ExtHostTunnelServiceShape {2980$forwardPort(tunnelOptions: TunnelOptions, tunnelCreationOptions: TunnelCreationOptions): Promise<TunnelDto | string | undefined>;2981$closeTunnel(remote: { host: string; port: number }, silent?: boolean): Promise<void>;2982$onDidTunnelsChange(): Promise<void>;2983$registerCandidateFinder(enable: boolean): Promise<void>;2984$applyCandidateFilter(candidates: CandidatePort[]): Promise<CandidatePort[]>;2985$providePortAttributes(handles: number[], ports: number[], pid: number | undefined, commandline: string | undefined, cancellationToken: CancellationToken): Promise<ProvidedPortAttributes[]>;2986}29872988export interface ExtHostTimelineShape {2989$getTimeline(source: string, uri: UriComponents, options: TimelineOptions, token: CancellationToken): Promise<Dto<Timeline> | undefined>;2990}29912992export const enum ExtHostTestingResource {2993Workspace,2994TextDocument2995}29962997export interface ExtHostTestingShape {2998$runControllerTests(req: IStartControllerTests[], token: CancellationToken): Promise<{ error?: string }[]>;2999$startContinuousRun(req: ICallProfileRunHandler[], token: CancellationToken): Promise<{ error?: string }[]>;3000$cancelExtensionTestRun(runId: string | undefined, taskId: string | undefined): void;3001/** Handles a diff of tests, as a result of a subscribeToDiffs() call */3002$acceptDiff(diff: TestsDiffOp.Serialized[]): void;3003/** Expands a test item's children, by the given number of levels. */3004$expandTest(testId: string, levels: number): Promise<void>;3005/** Requests coverage details for a test run. Errors if not available. */3006$getCoverageDetails(coverageId: string, testId: string | undefined, token: CancellationToken): Promise<CoverageDetails.Serialized[]>;3007/** Disposes resources associated with a test run. */3008$disposeRun(runId: string): void;3009/** Configures a test run config. */3010$configureRunProfile(controllerId: string, configId: number): void;3011/** Asks the controller to refresh its tests */3012$refreshTests(controllerId: string, token: CancellationToken): Promise<void>;3013/** Ensures any pending test diffs are flushed */3014$syncTests(): Promise<void>;3015/** Sets the active test run profiles */3016$setDefaultRunProfiles(profiles: Record</* controller id */string, /* profile id */ number[]>): void;3017$getTestsRelatedToCode(uri: UriComponents, position: IPosition, token: CancellationToken): Promise<string[]>;3018$getCodeRelatedToTest(testId: string, token: CancellationToken): Promise<ILocationDto[]>;30193020// --- test results:30213022/** Publishes that a test run finished. */3023$publishTestResults(results: ISerializedTestResults[]): void;3024/** Requests followup actions for a test (failure) message */3025$provideTestFollowups(req: TestMessageFollowupRequest, token: CancellationToken): Promise<TestMessageFollowupResponse[]>;3026/** Actions a followup actions for a test (failure) message */3027$executeTestFollowup(id: number): Promise<void>;3028/** Disposes followup actions for a test (failure) message */3029$disposeTestFollowups(id: number[]): void;3030}30313032export interface ExtHostMcpShape {3033$resolveMcpLaunch(collectionId: string, label: string): Promise<McpServerLaunch.Serialized | undefined>;3034$startMcp(id: number, launch: McpServerLaunch.Serialized): void;3035$stopMcp(id: number): void;3036$sendMessage(id: number, message: string): void;3037$waitForInitialCollectionProviders(): Promise<void>;3038}30393040export interface MainThreadMcpShape {3041$onDidChangeState(id: number, state: McpConnectionState): void;3042$onDidPublishLog(id: number, level: LogLevel, log: string): void;3043$onDidReceiveMessage(id: number, message: string): void;3044$upsertMcpCollection(collection: McpCollectionDefinition.FromExtHost, servers: McpServerDefinition.Serialized[]): void;3045$deleteMcpCollection(collectionId: string): void;3046$getTokenFromServerMetadata(id: number, authorizationServer: UriComponents, serverMetadata: IAuthorizationServerMetadata, resourceMetadata: IAuthorizationProtectedResourceMetadata | undefined): Promise<string | undefined>;3047}30483049export interface MainThreadDataChannelsShape extends IDisposable {3050}30513052export interface ExtHostDataChannelsShape {3053$onDidReceiveData(channelId: string, data: unknown): void;3054}30553056export interface ExtHostLocalizationShape {3057getMessage(extensionId: string, details: IStringDetails): string;3058getBundle(extensionId: string): { [key: string]: string } | undefined;3059getBundleUri(extensionId: string): URI | undefined;3060initializeLocalizedMessages(extension: IExtensionDescription): Promise<void>;3061}30623063export interface IStringDetails {3064message: string;3065args?: Record<string | number, any>;3066comment?: string | string[];3067}30683069export interface ITestControllerPatch {3070label?: string;3071capabilities?: TestControllerCapability;3072}30733074export interface MainThreadTestingShape {3075// --- test lifecycle:30763077/** Registers that there's a test controller with the given ID */3078$registerTestController(controllerId: string, label: string, capability: TestControllerCapability): void;3079/** Updates the label of an existing test controller. */3080$updateController(controllerId: string, patch: ITestControllerPatch): void;3081/** Diposes of the test controller with the given ID */3082$unregisterTestController(controllerId: string): void;3083/** Requests tests published to VS Code. */3084$subscribeToDiffs(): void;3085/** Stops requesting tests published to VS Code. */3086$unsubscribeFromDiffs(): void;3087/** Publishes that new tests were available on the given source. */3088$publishDiff(controllerId: string, diff: TestsDiffOp.Serialized[]): void;3089/** Gets coverage details from a test result. */3090$getCoverageDetails(resultId: string, taskIndex: number, uri: UriComponents, token: CancellationToken): Promise<CoverageDetails.Serialized[]>;30913092// --- test run configurations:30933094/** Called when a new test run configuration is available */3095$publishTestRunProfile(config: ITestRunProfile): void;3096/** Updates an existing test run configuration */3097$updateTestRunConfig(controllerId: string, configId: number, update: Partial<ITestRunProfile>): void;3098/** Removes a previously-published test run config */3099$removeTestProfile(controllerId: string, configId: number): void;310031013102// --- test run handling:31033104/** Request by an extension to run tests. */3105$runTests(req: ResolvedTestRunRequest, token: CancellationToken): Promise<string>;3106/**3107* Adds tests to the run. The tests are given in descending depth. The first3108* item will be a previously-known test, or a test root.3109*/3110$addTestsToRun(controllerId: string, runId: string, tests: ITestItem.Serialized[]): void;3111/** Updates the state of a test run in the given run. */3112$updateTestStateInRun(runId: string, taskId: string, testId: string, state: TestResultState, duration?: number): void;3113/** Appends a message to a test in the run. */3114$appendTestMessagesInRun(runId: string, taskId: string, testId: string, messages: ITestMessage.Serialized[]): void;3115/** Appends raw output to the test run.. */3116$appendOutputToRun(runId: string, taskId: string, output: VSBuffer, location?: ILocationDto, testId?: string): void;3117/** Triggered when coverage is added to test results. */3118$appendCoverage(runId: string, taskId: string, coverage: IFileCoverage.Serialized): void;3119/** Signals a task in a test run started. */3120$startedTestRunTask(runId: string, task: ITestRunTask): void;3121/** Signals a task in a test run ended. */3122$finishedTestRunTask(runId: string, taskId: string): void;3123/** Start a new extension-provided test run. */3124$startedExtensionTestRun(req: ExtensionRunTestsRequest): void;3125/** Signals that an extension-provided test run finished. */3126$finishedExtensionTestRun(runId: string): void;3127/** Marks a test (or controller) as retired in all results. */3128$markTestRetired(testIds: string[] | undefined): void;3129}31303131export type ChatStatusItemDto = {3132id: string;3133title: string | { label: string; link: string };3134description: string;3135detail: string | undefined;3136};31373138export interface MainThreadChatStatusShape {3139$setEntry(id: string, entry: ChatStatusItemDto): void;3140$disposeEntry(id: string): void;3141}31423143export type IChatSessionHistoryItemDto = { type: 'request'; prompt: string; participant: string } | { type: 'response'; parts: IChatProgressDto[]; participant: string };31443145export interface ChatSessionDto {3146id: string;3147history: Array<IChatSessionHistoryItemDto>;3148hasActiveResponseCallback: boolean;3149hasRequestHandler: boolean;3150supportsInterruption: boolean;3151}315231533154export interface MainThreadChatSessionsShape extends IDisposable {3155$registerChatSessionItemProvider(handle: number, chatSessionType: string): void;3156$unregisterChatSessionItemProvider(handle: number): void;3157$onDidChangeChatSessionItems(handle: number): void;31583159$registerChatSessionContentProvider(handle: number, chatSessionType: string): void;3160$unregisterChatSessionContentProvider(handle: number): void;31613162$handleProgressChunk(handle: number, sessionId: string, requestId: string, chunks: (IChatProgressDto | [IChatProgressDto, number])[]): Promise<void>;3163$handleAnchorResolve(handle: number, sessionId: string, requestId: string, requestHandle: string, anchor: Dto<IChatContentInlineReference>): void;3164$handleProgressComplete(handle: number, sessionId: string, requestId: string): void;31653166$showChatSession(chatSessionType: string, sessionId: string, position: EditorGroupColumn | undefined): Promise<void>;3167}31683169export interface ExtHostChatSessionsShape {3170$provideChatSessionItems(providerHandle: number, token: CancellationToken): Promise<Dto<IChatSessionItem>[]>;3171$provideNewChatSessionItem(providerHandle: number, options: { request: IChatAgentRequest; prompt?: string; history?: any[]; metadata?: any }, token: CancellationToken): Promise<Dto<IChatSessionItem>>;31723173$provideChatSessionContent(providerHandle: number, sessionId: string, token: CancellationToken): Promise<ChatSessionDto>;3174$interruptChatSessionActiveResponse(providerHandle: number, sessionId: string, requestId: string): Promise<void>;3175$disposeChatSessionContent(providerHandle: number, sessionId: string): Promise<void>;3176$invokeChatSessionRequestHandler(providerHandle: number, id: string, request: IChatAgentRequest, history: any[], token: CancellationToken): Promise<IChatAgentResult>;3177}31783179// --- proxy identifiers31803181export const MainContext = {3182MainThreadAuthentication: createProxyIdentifier<MainThreadAuthenticationShape>('MainThreadAuthentication'),3183MainThreadBulkEdits: createProxyIdentifier<MainThreadBulkEditsShape>('MainThreadBulkEdits'),3184MainThreadLanguageModels: createProxyIdentifier<MainThreadLanguageModelsShape>('MainThreadLanguageModels'),3185MainThreadEmbeddings: createProxyIdentifier<MainThreadEmbeddingsShape>('MainThreadEmbeddings'),3186MainThreadChatAgents2: createProxyIdentifier<MainThreadChatAgentsShape2>('MainThreadChatAgents2'),3187MainThreadCodeMapper: createProxyIdentifier<MainThreadCodeMapperShape>('MainThreadCodeMapper'),3188MainThreadLanguageModelTools: createProxyIdentifier<MainThreadLanguageModelToolsShape>('MainThreadChatSkills'),3189MainThreadClipboard: createProxyIdentifier<MainThreadClipboardShape>('MainThreadClipboard'),3190MainThreadCommands: createProxyIdentifier<MainThreadCommandsShape>('MainThreadCommands'),3191MainThreadComments: createProxyIdentifier<MainThreadCommentsShape>('MainThreadComments'),3192MainThreadConfiguration: createProxyIdentifier<MainThreadConfigurationShape>('MainThreadConfiguration'),3193MainThreadConsole: createProxyIdentifier<MainThreadConsoleShape>('MainThreadConsole'),3194MainThreadDebugService: createProxyIdentifier<MainThreadDebugServiceShape>('MainThreadDebugService'),3195MainThreadDecorations: createProxyIdentifier<MainThreadDecorationsShape>('MainThreadDecorations'),3196MainThreadDiagnostics: createProxyIdentifier<MainThreadDiagnosticsShape>('MainThreadDiagnostics'),3197MainThreadDialogs: createProxyIdentifier<MainThreadDiaglogsShape>('MainThreadDiaglogs'),3198MainThreadDocuments: createProxyIdentifier<MainThreadDocumentsShape>('MainThreadDocuments'),3199MainThreadDocumentContentProviders: createProxyIdentifier<MainThreadDocumentContentProvidersShape>('MainThreadDocumentContentProviders'),3200MainThreadTextEditors: createProxyIdentifier<MainThreadTextEditorsShape>('MainThreadTextEditors'),3201MainThreadEditorInsets: createProxyIdentifier<MainThreadEditorInsetsShape>('MainThreadEditorInsets'),3202MainThreadEditorTabs: createProxyIdentifier<MainThreadEditorTabsShape>('MainThreadEditorTabs'),3203MainThreadErrors: createProxyIdentifier<MainThreadErrorsShape>('MainThreadErrors'),3204MainThreadTreeViews: createProxyIdentifier<MainThreadTreeViewsShape>('MainThreadTreeViews'),3205MainThreadDownloadService: createProxyIdentifier<MainThreadDownloadServiceShape>('MainThreadDownloadService'),3206MainThreadLanguageFeatures: createProxyIdentifier<MainThreadLanguageFeaturesShape>('MainThreadLanguageFeatures'),3207MainThreadLanguages: createProxyIdentifier<MainThreadLanguagesShape>('MainThreadLanguages'),3208MainThreadLogger: createProxyIdentifier<MainThreadLoggerShape>('MainThreadLogger'),3209MainThreadMessageService: createProxyIdentifier<MainThreadMessageServiceShape>('MainThreadMessageService'),3210MainThreadOutputService: createProxyIdentifier<MainThreadOutputServiceShape>('MainThreadOutputService'),3211MainThreadProgress: createProxyIdentifier<MainThreadProgressShape>('MainThreadProgress'),3212MainThreadQuickDiff: createProxyIdentifier<MainThreadQuickDiffShape>('MainThreadQuickDiff'),3213MainThreadQuickOpen: createProxyIdentifier<MainThreadQuickOpenShape>('MainThreadQuickOpen'),3214MainThreadStatusBar: createProxyIdentifier<MainThreadStatusBarShape>('MainThreadStatusBar'),3215MainThreadSecretState: createProxyIdentifier<MainThreadSecretStateShape>('MainThreadSecretState'),3216MainThreadStorage: createProxyIdentifier<MainThreadStorageShape>('MainThreadStorage'),3217MainThreadSpeech: createProxyIdentifier<MainThreadSpeechShape>('MainThreadSpeechProvider'),3218MainThreadTelemetry: createProxyIdentifier<MainThreadTelemetryShape>('MainThreadTelemetry'),3219MainThreadTerminalService: createProxyIdentifier<MainThreadTerminalServiceShape>('MainThreadTerminalService'),3220MainThreadTerminalShellIntegration: createProxyIdentifier<MainThreadTerminalShellIntegrationShape>('MainThreadTerminalShellIntegration'),3221MainThreadWebviews: createProxyIdentifier<MainThreadWebviewsShape>('MainThreadWebviews'),3222MainThreadWebviewPanels: createProxyIdentifier<MainThreadWebviewPanelsShape>('MainThreadWebviewPanels'),3223MainThreadWebviewViews: createProxyIdentifier<MainThreadWebviewViewsShape>('MainThreadWebviewViews'),3224MainThreadCustomEditors: createProxyIdentifier<MainThreadCustomEditorsShape>('MainThreadCustomEditors'),3225MainThreadUrls: createProxyIdentifier<MainThreadUrlsShape>('MainThreadUrls'),3226MainThreadUriOpeners: createProxyIdentifier<MainThreadUriOpenersShape>('MainThreadUriOpeners'),3227MainThreadProfileContentHandlers: createProxyIdentifier<MainThreadProfileContentHandlersShape>('MainThreadProfileContentHandlers'),3228MainThreadWorkspace: createProxyIdentifier<MainThreadWorkspaceShape>('MainThreadWorkspace'),3229MainThreadFileSystem: createProxyIdentifier<MainThreadFileSystemShape>('MainThreadFileSystem'),3230MainThreadFileSystemEventService: createProxyIdentifier<MainThreadFileSystemEventServiceShape>('MainThreadFileSystemEventService'),3231MainThreadExtensionService: createProxyIdentifier<MainThreadExtensionServiceShape>('MainThreadExtensionService'),3232MainThreadSCM: createProxyIdentifier<MainThreadSCMShape>('MainThreadSCM'),3233MainThreadSearch: createProxyIdentifier<MainThreadSearchShape>('MainThreadSearch'),3234MainThreadShare: createProxyIdentifier<MainThreadShareShape>('MainThreadShare'),3235MainThreadTask: createProxyIdentifier<MainThreadTaskShape>('MainThreadTask'),3236MainThreadWindow: createProxyIdentifier<MainThreadWindowShape>('MainThreadWindow'),3237MainThreadLabelService: createProxyIdentifier<MainThreadLabelServiceShape>('MainThreadLabelService'),3238MainThreadNotebook: createProxyIdentifier<MainThreadNotebookShape>('MainThreadNotebook'),3239MainThreadNotebookDocuments: createProxyIdentifier<MainThreadNotebookDocumentsShape>('MainThreadNotebookDocumentsShape'),3240MainThreadNotebookEditors: createProxyIdentifier<MainThreadNotebookEditorsShape>('MainThreadNotebookEditorsShape'),3241MainThreadNotebookKernels: createProxyIdentifier<MainThreadNotebookKernelsShape>('MainThreadNotebookKernels'),3242MainThreadNotebookRenderers: createProxyIdentifier<MainThreadNotebookRenderersShape>('MainThreadNotebookRenderers'),3243MainThreadInteractive: createProxyIdentifier<MainThreadInteractiveShape>('MainThreadInteractive'),3244MainThreadTheming: createProxyIdentifier<MainThreadThemingShape>('MainThreadTheming'),3245MainThreadTunnelService: createProxyIdentifier<MainThreadTunnelServiceShape>('MainThreadTunnelService'),3246MainThreadManagedSockets: createProxyIdentifier<MainThreadManagedSocketsShape>('MainThreadManagedSockets'),3247MainThreadTimeline: createProxyIdentifier<MainThreadTimelineShape>('MainThreadTimeline'),3248MainThreadTesting: createProxyIdentifier<MainThreadTestingShape>('MainThreadTesting'),3249MainThreadLocalization: createProxyIdentifier<MainThreadLocalizationShape>('MainThreadLocalizationShape'),3250MainThreadMcp: createProxyIdentifier<MainThreadMcpShape>('MainThreadMcpShape'),3251MainThreadAiRelatedInformation: createProxyIdentifier<MainThreadAiRelatedInformationShape>('MainThreadAiRelatedInformation'),3252MainThreadAiEmbeddingVector: createProxyIdentifier<MainThreadAiEmbeddingVectorShape>('MainThreadAiEmbeddingVector'),3253MainThreadChatStatus: createProxyIdentifier<MainThreadChatStatusShape>('MainThreadChatStatus'),3254MainThreadAiSettingsSearch: createProxyIdentifier<MainThreadAiSettingsSearchShape>('MainThreadAiSettingsSearch'),3255MainThreadDataChannels: createProxyIdentifier<MainThreadDataChannelsShape>('MainThreadDataChannels'),3256MainThreadChatSessions: createProxyIdentifier<MainThreadChatSessionsShape>('MainThreadChatSessions'),3257MainThreadChatOutputRenderer: createProxyIdentifier<MainThreadChatOutputRendererShape>('MainThreadChatOutputRenderer'),3258};32593260export const ExtHostContext = {3261ExtHostCodeMapper: createProxyIdentifier<ExtHostCodeMapperShape>('ExtHostCodeMapper'),3262ExtHostCommands: createProxyIdentifier<ExtHostCommandsShape>('ExtHostCommands'),3263ExtHostConfiguration: createProxyIdentifier<ExtHostConfigurationShape>('ExtHostConfiguration'),3264ExtHostDiagnostics: createProxyIdentifier<ExtHostDiagnosticsShape>('ExtHostDiagnostics'),3265ExtHostDebugService: createProxyIdentifier<ExtHostDebugServiceShape>('ExtHostDebugService'),3266ExtHostDecorations: createProxyIdentifier<ExtHostDecorationsShape>('ExtHostDecorations'),3267ExtHostDocumentsAndEditors: createProxyIdentifier<ExtHostDocumentsAndEditorsShape>('ExtHostDocumentsAndEditors'),3268ExtHostDocuments: createProxyIdentifier<ExtHostDocumentsShape>('ExtHostDocuments'),3269ExtHostDocumentContentProviders: createProxyIdentifier<ExtHostDocumentContentProvidersShape>('ExtHostDocumentContentProviders'),3270ExtHostDocumentSaveParticipant: createProxyIdentifier<ExtHostDocumentSaveParticipantShape>('ExtHostDocumentSaveParticipant'),3271ExtHostEditors: createProxyIdentifier<ExtHostEditorsShape>('ExtHostEditors'),3272ExtHostTreeViews: createProxyIdentifier<ExtHostTreeViewsShape>('ExtHostTreeViews'),3273ExtHostFileSystem: createProxyIdentifier<ExtHostFileSystemShape>('ExtHostFileSystem'),3274ExtHostFileSystemInfo: createProxyIdentifier<ExtHostFileSystemInfoShape>('ExtHostFileSystemInfo'),3275ExtHostFileSystemEventService: createProxyIdentifier<ExtHostFileSystemEventServiceShape>('ExtHostFileSystemEventService'),3276ExtHostLanguages: createProxyIdentifier<ExtHostLanguagesShape>('ExtHostLanguages'),3277ExtHostLanguageFeatures: createProxyIdentifier<ExtHostLanguageFeaturesShape>('ExtHostLanguageFeatures'),3278ExtHostQuickOpen: createProxyIdentifier<ExtHostQuickOpenShape>('ExtHostQuickOpen'),3279ExtHostQuickDiff: createProxyIdentifier<ExtHostQuickDiffShape>('ExtHostQuickDiff'),3280ExtHostStatusBar: createProxyIdentifier<ExtHostStatusBarShape>('ExtHostStatusBar'),3281ExtHostShare: createProxyIdentifier<ExtHostShareShape>('ExtHostShare'),3282ExtHostExtensionService: createProxyIdentifier<ExtHostExtensionServiceShape>('ExtHostExtensionService'),3283ExtHostLogLevelServiceShape: createProxyIdentifier<ExtHostLogLevelServiceShape>('ExtHostLogLevelServiceShape'),3284ExtHostTerminalService: createProxyIdentifier<ExtHostTerminalServiceShape>('ExtHostTerminalService'),3285ExtHostTerminalShellIntegration: createProxyIdentifier<ExtHostTerminalShellIntegrationShape>('ExtHostTerminalShellIntegration'),3286ExtHostSCM: createProxyIdentifier<ExtHostSCMShape>('ExtHostSCM'),3287ExtHostSearch: createProxyIdentifier<ExtHostSearchShape>('ExtHostSearch'),3288ExtHostTask: createProxyIdentifier<ExtHostTaskShape>('ExtHostTask'),3289ExtHostWorkspace: createProxyIdentifier<ExtHostWorkspaceShape>('ExtHostWorkspace'),3290ExtHostWindow: createProxyIdentifier<ExtHostWindowShape>('ExtHostWindow'),3291ExtHostWebviews: createProxyIdentifier<ExtHostWebviewsShape>('ExtHostWebviews'),3292ExtHostWebviewPanels: createProxyIdentifier<ExtHostWebviewPanelsShape>('ExtHostWebviewPanels'),3293ExtHostCustomEditors: createProxyIdentifier<ExtHostCustomEditorsShape>('ExtHostCustomEditors'),3294ExtHostWebviewViews: createProxyIdentifier<ExtHostWebviewViewsShape>('ExtHostWebviewViews'),3295ExtHostEditorInsets: createProxyIdentifier<ExtHostEditorInsetsShape>('ExtHostEditorInsets'),3296ExtHostEditorTabs: createProxyIdentifier<IExtHostEditorTabsShape>('ExtHostEditorTabs'),3297ExtHostProgress: createProxyIdentifier<ExtHostProgressShape>('ExtHostProgress'),3298ExtHostComments: createProxyIdentifier<ExtHostCommentsShape>('ExtHostComments'),3299ExtHostSecretState: createProxyIdentifier<ExtHostSecretStateShape>('ExtHostSecretState'),3300ExtHostStorage: createProxyIdentifier<ExtHostStorageShape>('ExtHostStorage'),3301ExtHostUrls: createProxyIdentifier<ExtHostUrlsShape>('ExtHostUrls'),3302ExtHostUriOpeners: createProxyIdentifier<ExtHostUriOpenersShape>('ExtHostUriOpeners'),3303ExtHostChatOutputRenderer: createProxyIdentifier<ExtHostChatOutputRendererShape>('ExtHostChatOutputRenderer'),3304ExtHostProfileContentHandlers: createProxyIdentifier<ExtHostProfileContentHandlersShape>('ExtHostProfileContentHandlers'),3305ExtHostOutputService: createProxyIdentifier<ExtHostOutputServiceShape>('ExtHostOutputService'),3306ExtHostLabelService: createProxyIdentifier<ExtHostLabelServiceShape>('ExtHostLabelService'),3307ExtHostNotebook: createProxyIdentifier<ExtHostNotebookShape>('ExtHostNotebook'),3308ExtHostNotebookDocuments: createProxyIdentifier<ExtHostNotebookDocumentsShape>('ExtHostNotebookDocuments'),3309ExtHostNotebookEditors: createProxyIdentifier<ExtHostNotebookEditorsShape>('ExtHostNotebookEditors'),3310ExtHostNotebookKernels: createProxyIdentifier<ExtHostNotebookKernelsShape>('ExtHostNotebookKernels'),3311ExtHostNotebookRenderers: createProxyIdentifier<ExtHostNotebookRenderersShape>('ExtHostNotebookRenderers'),3312ExtHostNotebookDocumentSaveParticipant: createProxyIdentifier<ExtHostNotebookDocumentSaveParticipantShape>('ExtHostNotebookDocumentSaveParticipant'),3313ExtHostInteractive: createProxyIdentifier<ExtHostInteractiveShape>('ExtHostInteractive'),3314ExtHostChatAgents2: createProxyIdentifier<ExtHostChatAgentsShape2>('ExtHostChatAgents'),3315ExtHostLanguageModelTools: createProxyIdentifier<ExtHostLanguageModelToolsShape>('ExtHostChatSkills'),3316ExtHostChatProvider: createProxyIdentifier<ExtHostLanguageModelsShape>('ExtHostChatProvider'),3317ExtHostSpeech: createProxyIdentifier<ExtHostSpeechShape>('ExtHostSpeech'),3318ExtHostEmbeddings: createProxyIdentifier<ExtHostEmbeddingsShape>('ExtHostEmbeddings'),3319ExtHostAiRelatedInformation: createProxyIdentifier<ExtHostAiRelatedInformationShape>('ExtHostAiRelatedInformation'),3320ExtHostAiEmbeddingVector: createProxyIdentifier<ExtHostAiEmbeddingVectorShape>('ExtHostAiEmbeddingVector'),3321ExtHostAiSettingsSearch: createProxyIdentifier<ExtHostAiSettingsSearchShape>('ExtHostAiSettingsSearch'),3322ExtHostTheming: createProxyIdentifier<ExtHostThemingShape>('ExtHostTheming'),3323ExtHostTunnelService: createProxyIdentifier<ExtHostTunnelServiceShape>('ExtHostTunnelService'),3324ExtHostManagedSockets: createProxyIdentifier<ExtHostManagedSocketsShape>('ExtHostManagedSockets'),3325ExtHostAuthentication: createProxyIdentifier<ExtHostAuthenticationShape>('ExtHostAuthentication'),3326ExtHostTimeline: createProxyIdentifier<ExtHostTimelineShape>('ExtHostTimeline'),3327ExtHostTesting: createProxyIdentifier<ExtHostTestingShape>('ExtHostTesting'),3328ExtHostTelemetry: createProxyIdentifier<ExtHostTelemetryShape>('ExtHostTelemetry'),3329ExtHostLocalization: createProxyIdentifier<ExtHostLocalizationShape>('ExtHostLocalization'),3330ExtHostMcp: createProxyIdentifier<ExtHostMcpShape>('ExtHostMcp'),3331ExtHostDataChannels: createProxyIdentifier<ExtHostDataChannelsShape>('ExtHostDataChannels'),3332ExtHostChatSessions: createProxyIdentifier<ExtHostChatSessionsShape>('ExtHostChatSessions'),3333};333433353336