UNPKG

@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
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 };