Merge branch 'main' into quiet-leopon

This commit is contained in:
Matt Bierner
2025-07-18 14:04:32 -07:00
601 changed files with 18154 additions and 6265 deletions

View File

@@ -43,6 +43,7 @@ import { IExtHostCommands } from './extHostCommands.js';
import { createExtHostComments } from './extHostComments.js';
import { ExtHostConfigProvider, IExtHostConfiguration } from './extHostConfiguration.js';
import { ExtHostCustomEditors } from './extHostCustomEditors.js';
import { IExtHostDataChannels } from './extHostDataChannels.js';
import { IExtHostDebugService } from './extHostDebugService.js';
import { IExtHostDecorations } from './extHostDecorations.js';
import { ExtHostDiagnostics } from './extHostDiagnostics.js';
@@ -111,6 +112,7 @@ import { ExtHostWebviewViews } from './extHostWebviewView.js';
import { IExtHostWindow } from './extHostWindow.js';
import { IExtHostWorkspace } from './extHostWorkspace.js';
import { ExtHostAiSettingsSearch } from './extHostAiSettingsSearch.js';
import { ExtHostChatSessions } from './extHostChatSessions.js';
import { ExtHostChatOutputRenderer } from './extHostChatOutputRenderer.js';
export interface IExtensionRegistries {
@@ -152,6 +154,7 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
const extHostAuthentication = accessor.get(IExtHostAuthentication);
const extHostLanguageModels = accessor.get(IExtHostLanguageModels);
const extHostMcp = accessor.get(IExtHostMpcService);
const extHostDataChannels = accessor.get(IExtHostDataChannels);
// register addressable instances
rpcProtocol.set(ExtHostContext.ExtHostFileSystemInfo, extHostFileSystemInfo);
@@ -170,6 +173,7 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
rpcProtocol.set(ExtHostContext.ExtHostProgress, extHostProgress);
rpcProtocol.set(ExtHostContext.ExtHostAuthentication, extHostAuthentication);
rpcProtocol.set(ExtHostContext.ExtHostChatProvider, extHostLanguageModels);
rpcProtocol.set(ExtHostContext.ExtHostDataChannels, extHostDataChannels);
// automatically create and register addressable instances
const extHostDecorations = rpcProtocol.set(ExtHostContext.ExtHostDecorations, accessor.get(IExtHostDecorations));
@@ -227,6 +231,8 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
const extHostStatusBar = rpcProtocol.set(ExtHostContext.ExtHostStatusBar, new ExtHostStatusBar(rpcProtocol, extHostCommands.converter));
const extHostSpeech = rpcProtocol.set(ExtHostContext.ExtHostSpeech, new ExtHostSpeech(rpcProtocol));
const extHostEmbeddings = rpcProtocol.set(ExtHostContext.ExtHostEmbeddings, new ExtHostEmbeddings(rpcProtocol));
const extHostChatSessions = rpcProtocol.set(ExtHostContext.ExtHostChatSessions, new ExtHostChatSessions(extHostCommands, rpcProtocol, extHostLogService));
rpcProtocol.set(ExtHostContext.ExtHostMcp, accessor.get(IExtHostMpcService));
// Check that no named customers are missing
@@ -453,6 +459,10 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
get appCommit(): string | undefined {
checkProposedApiEnabled(extension, 'resolvers');
return initData.commit;
},
getDataChannel<T>(channelId: string): vscode.DataChannel<T> {
checkProposedApiEnabled(extension, 'dataChannels');
return extHostDataChannels.createDataChannel(extension, channelId);
}
};
if (!initData.environment.extensionTestsLocationURI) {
@@ -1265,8 +1275,11 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
return extHostSCM.getLastInputBox(extension)!; // Strict null override - Deprecated api
},
createSourceControl(id: string, label: string, rootUri?: vscode.Uri) {
return extHostSCM.createSourceControl(extension, id, label, rootUri);
createSourceControl(id: string, label: string, rootUri?: vscode.Uri, iconPath?: vscode.IconPath, parent?: vscode.SourceControl): vscode.SourceControl {
if (iconPath || parent) {
checkProposedApiEnabled(extension, 'scmProviderOptions');
}
return extHostSCM.createSourceControl(extension, id, label, rootUri, iconPath, parent);
}
};
@@ -1359,11 +1372,20 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
get taskExecutions(): vscode.TaskExecution[] {
return extHostTask.taskExecutions;
},
onDidStartTask: (listeners, thisArgs?, disposables?) => {
if (!isProposedApiEnabled(extension, 'taskExecutionTerminal')) {
thisArgs.terminal = undefined;
}
return _asExtensionEvent(extHostTask.onDidStartTask)(listeners, thisArgs, disposables);
onDidStartTask: (listener: (e: vscode.TaskStartEvent) => any, thisArgs?: any, disposables?) => {
const wrappedListener = (event: vscode.TaskStartEvent) => {
if (!isProposedApiEnabled(extension, 'taskExecutionTerminal')) {
if (event?.execution?.terminal !== undefined) {
event.execution.terminal = undefined;
}
}
const eventWithExecution = {
...event,
execution: event.execution
};
return listener.call(thisArgs, eventWithExecution);
};
return _asExtensionEvent(extHostTask.onDidStartTask)(wrappedListener, thisArgs, disposables);
},
onDidEndTask: (listeners, thisArgs?, disposables?) => {
return _asExtensionEvent(extHostTask.onDidEndTask)(listeners, thisArgs, disposables);
@@ -1485,10 +1507,14 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
checkProposedApiEnabled(extension, 'chatParticipantPrivate');
return _asExtensionEvent(extHostChatAgents2.onDidDisposeChatSession)(listeners, thisArgs, disposables);
},
registerChatSessionsProvider: (provider: vscode.ChatSessionsProvider) => {
checkProposedApiEnabled(extension, 'chatSessionsProvider');
return extHostChatSessions.registerChatSessionsProvider(provider);
},
registerChatOutputRenderer: (mime: string, renderer: vscode.ChatOutputRenderer) => {
checkProposedApiEnabled(extension, 'chatOutputRenderer');
return extHostChatOutputRenderer.registerChatOutputRenderer(extension, mime, renderer);
}
},
};
// namespace: lm
@@ -1499,9 +1525,9 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
onDidChangeChatModels: (listener, thisArgs?, disposables?) => {
return extHostLanguageModels.onDidChangeProviders(listener, thisArgs, disposables);
},
registerChatModelProvider: (id, provider, metadata) => {
registerChatModelProvider: (vendor, provider) => {
checkProposedApiEnabled(extension, 'chatProvider');
return extHostLanguageModels.registerLanguageModel(extension, id, provider, metadata);
return extHostLanguageModels.registerLanguageModelProvider(extension, vendor, provider);
},
// --- embeddings
get embeddingModels() {
@@ -1541,6 +1567,10 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
},
registerMcpServerDefinitionProvider(id, provider) {
return extHostMcp.registerMcpConfigurationProvider(extension, id, provider);
},
onDidChangeChatRequestTools(...args) {
checkProposedApiEnabled(extension, 'chatParticipantAdditions');
return _asExtensionEvent(extHostChatAgents2.onDidChangeChatRequestTools)(...args);
}
};
@@ -1838,6 +1868,8 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
LanguageModelToolResult: extHostTypes.LanguageModelToolResult,
LanguageModelToolResult2: extHostTypes.LanguageModelToolResult2,
LanguageModelDataPart: extHostTypes.LanguageModelDataPart,
LanguageModelToolExtensionSource: extHostTypes.LanguageModelToolExtensionSource,
LanguageModelToolMCPSource: extHostTypes.LanguageModelToolMCPSource,
ExtendedLanguageModelToolResult: extHostTypes.ExtendedLanguageModelToolResult,
PreparedTerminalToolInvocation: extHostTypes.PreparedTerminalToolInvocation,
LanguageModelChatToolMode: extHostTypes.LanguageModelChatToolMode,