@ace-sdk/cli
Version:
ACE CLI - Command-line tool for intelligent pattern learning and playbook management
84 lines • 2.1 kB
TypeScript
/**
* Plugin loader and management service
*/
import { Plugin, PluginManifest, PluginRegistry, PluginContext } from '../types/plugin.js';
import { Logger } from './logger.js';
/**
* Plugin loader - discovers, loads, and manages ACE CLI plugins
*
* Plugins are stored in ~/.ace/plugins/
* Plugin registry is stored in ~/.ace/plugins.json
*/
export declare class PluginLoader {
private pluginsDir;
private registryFile;
private registry;
private loadedPlugins;
private logger;
constructor(logger: Logger);
/**
* Load plugin registry from disk
*/
private loadRegistry;
/**
* Save plugin registry to disk
*/
private saveRegistry;
/**
* Get plugin registry
*/
getRegistry(): PluginRegistry;
/**
* Discover all plugins in plugins directory
*/
discoverPlugins(): PluginManifest[];
/**
* Load plugin manifest from directory
*/
private loadManifest;
/**
* Load and activate a plugin
*/
loadPlugin(name: string, context: PluginContext): Promise<Plugin>;
/**
* Check if plugin is trusted
*/
isTrusted(manifest: PluginManifest): boolean;
/**
* Check if plugin is enabled
*/
isEnabled(name: string): boolean;
/**
* Trust a plugin
*/
trustPlugin(name: string, version: string): void;
/**
* Untrust a plugin
*/
untrustPlugin(name: string): void;
/**
* Enable a plugin
*/
enablePlugin(name: string): void;
/**
* Disable a plugin
*/
disablePlugin(name: string): void;
/**
* Get loaded plugin
*/
getPlugin(name: string): Plugin | undefined;
/**
* List all loaded plugins
*/
listLoadedPlugins(): Plugin[];
/**
* Execute a plugin command
*/
executePluginCommand(pluginName: string, commandName: string, args: any[], context: PluginContext): Promise<any>;
}
/**
* Get the global plugin loader instance
*/
export declare function getPluginLoader(logger: Logger): PluginLoader;
//# sourceMappingURL=plugin-loader.d.ts.map