Path: blob/main/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsService.ts
4780 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 { Disposable } from '../../../../../base/common/lifecycle.js';6import { URI } from '../../../../../base/common/uri.js';7import { createDecorator, IInstantiationService } from '../../../../../platform/instantiation/common/instantiation.js';8import { AgentSessionsModel, IAgentSession, IAgentSessionsModel } from './agentSessionsModel.js';910export interface IAgentSessionsService {1112readonly _serviceBrand: undefined;1314readonly model: IAgentSessionsModel;1516getSession(resource: URI): IAgentSession | undefined;17}1819export class AgentSessionsService extends Disposable implements IAgentSessionsService {2021declare readonly _serviceBrand: undefined;2223private _model: IAgentSessionsModel | undefined;24get model(): IAgentSessionsModel {25if (!this._model) {26this._model = this._register(this.instantiationService.createInstance(AgentSessionsModel));27this._model.resolve(undefined /* all providers */);28}2930return this._model;31}3233constructor(@IInstantiationService private readonly instantiationService: IInstantiationService) {34super();35}3637getSession(resource: URI): IAgentSession | undefined {38return this.model.getSession(resource);39}40}4142export const IAgentSessionsService = createDecorator<IAgentSessionsService>('agentSessions');434445