@codingame/monaco-vscode-extensions-service-override
Version:
VSCode public API plugged on the monaco editor - extensions service-override
39 lines (36 loc) • 1.87 kB
JavaScript
import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
import { Disposable, DisposableMap } from 'vscode/vscode/vs/base/common/lifecycle';
import { ExtHostContext, MainContext } from 'vscode/vscode/vs/workbench/api/common/extHost.protocol';
import { ILanguageModelToolsService } from 'vscode/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service';
import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
let MainThreadLanguageModelTools = class MainThreadLanguageModelTools extends Disposable {
constructor(extHostContext, _languageModelToolsService) {
super();
this._languageModelToolsService = _languageModelToolsService;
this._tools = this._register(( new DisposableMap()));
this._proxy = ( extHostContext.getProxy(ExtHostContext.ExtHostLanguageModelTools));
this._register(this._languageModelToolsService.onDidChangeTools(e => this._proxy.$acceptToolDelta(e)));
}
async $getTools() {
return Array.from(this._languageModelToolsService.getTools());
}
$invokeTool(name, parameters, token) {
return this._languageModelToolsService.invokeTool(name, parameters, token);
}
$registerTool(name) {
const disposable = this._languageModelToolsService.registerToolImplementation(name, {
invoke: async (parameters, token) => {
return await this._proxy.$invokeTool(name, parameters, token);
},
});
this._tools.set(name, disposable);
}
$unregisterTool(name) {
this._tools.deleteAndDispose(name);
}
};
MainThreadLanguageModelTools = __decorate([
extHostNamedCustomer(MainContext.MainThreadLanguageModelTools),
( __param(1, ILanguageModelToolsService))
], MainThreadLanguageModelTools);
export { MainThreadLanguageModelTools };