Path: blob/main/extensions/copilot/src/extension/externalAgents/node/modelProxyProvider.ts
13399 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 type * as vscode from 'vscode';6import { Disposable } from '../../../util/vs/base/common/lifecycle';7import { URI } from '../../../util/vs/base/common/uri';8import { IInstantiationService } from '../../../util/vs/platform/instantiation/common/instantiation';9import { OpenAILanguageModelServer } from './oaiLanguageModelServer';1011export class LanguageModelProxyProvider implements vscode.LanguageModelProxyProvider {12constructor(13@IInstantiationService private readonly instantiationService: IInstantiationService14) { }1516async provideModelProxy(forExtensionId: string, token: vscode.CancellationToken): Promise<vscode.LanguageModelProxy | undefined> {17const server = this.instantiationService.createInstance(OpenAILanguageModelServer);18await server.start();1920return new OpenAILanguageModelProxy(server);21}22}2324class OpenAILanguageModelProxy extends Disposable implements vscode.LanguageModelProxy {25public readonly uri: vscode.Uri;26public readonly key: string;2728constructor(29runningServer: OpenAILanguageModelServer,30) {31super();32this._register(runningServer);3334const config = runningServer.getConfig();35this.uri = URI.parse(`http://localhost:${config.port}`);36this.key = config.nonce;37}38}394041