import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri"; import { ICommandService } from "@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service"; import { IEnvironmentService } from "@codingame/monaco-vscode-api/vscode/vs/platform/environment/common/environment.service"; import { IFileService } from "@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service"; import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation"; import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service"; import { INotificationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification.service"; import { IProgressService } from "@codingame/monaco-vscode-api/vscode/vs/platform/progress/common/progress.service"; import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service"; import { IUserDataProfileService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/userDataProfile/common/userDataProfile.service"; import { IEnsureRepositoryOptions, IPullRepositoryOptions } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/agentPluginRepositoryService"; import { IAgentPluginRepositoryService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/agentPluginRepositoryService.service"; import { IMarketplacePlugin, IMarketplaceReference, IPluginSourceDescriptor, MarketplaceType, PluginSourceKind } from "../common/plugins/pluginMarketplaceService.js"; import { IPluginSource } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/pluginSource"; import { IPluginGitService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/pluginGitService.service"; export declare class AgentPluginRepositoryService implements IAgentPluginRepositoryService { private readonly _commandService; private readonly _fileService; private readonly _logService; private readonly _notificationService; private readonly _pluginGit; private readonly _progressService; private readonly _storageService; readonly _serviceBrand: undefined; readonly agentPluginsHome: URI; private readonly _cacheRoot; private readonly _marketplaceIndex; private readonly _pluginSources; private readonly _cloneSequencer; private readonly _migrationDone; constructor(_commandService: ICommandService, environmentService: IEnvironmentService, _fileService: IFileService, instantiationService: IInstantiationService, _logService: ILogService, _notificationService: INotificationService, _pluginGit: IPluginGitService, _progressService: IProgressService, _storageService: IStorageService, userDataProfileService: IUserDataProfileService); getPluginSource(kind: PluginSourceKind): IPluginSource; getRepositoryUri(marketplace: IMarketplaceReference, marketplaceType?: MarketplaceType): URI; getPluginInstallUri(plugin: IMarketplacePlugin): URI; ensureRepository(marketplace: IMarketplaceReference, options?: IEnsureRepositoryOptions): Promise; pullRepository(marketplace: IMarketplaceReference, options?: IPullRepositoryOptions): Promise; private _getRepoCacheDirForReference; private _loadMarketplaceIndex; private _updateMarketplaceIndex; private _saveMarketplaceIndex; private _cloneRepository; private _getPluginDir; getPluginSourceInstallUri(sourceDescriptor: IPluginSourceDescriptor): URI; ensurePluginSource(plugin: IMarketplacePlugin, options?: IEnsureRepositoryOptions): Promise; updatePluginSource(plugin: IMarketplacePlugin, options?: IPullRepositoryOptions): Promise; fetchRepository(marketplace: IMarketplaceReference): Promise; cleanupPluginSource(plugin: IMarketplacePlugin, otherInstalledDescriptors?: readonly IPluginSourceDescriptor[]): Promise; /** * Walk from {@link child}'s parent toward {@link _cacheRoot}, removing * each directory that is empty. Stops as soon as a non-empty directory * is found or the cache root is reached. Only operates on descendants * of the cache root — returns immediately for paths outside it. */ private _pruneEmptyParents; /** * One-time migration of plugin files from the old internal cache * directory (`{cacheHome}/agentPlugins/`) to the new well-known * location (`~/{dataFolderName}/agent-plugins/`). */ private _migrateDirectory; }