aiwg
Version:
Deployment tool and support utility for AI context. Copies agents, skills, commands, rules, and behaviors into the paths each AI platform reads (Claude Code, Codex, Copilot, Cursor, Warp, OpenClaw, and 6 more) so one source of truth works across 10 platfo
147 lines • 3.32 kB
TypeScript
/**
* Plugin Status Command
*
* Provides status reporting and health monitoring for all plugin types
* (frameworks, add-ons, extensions).
*
* @module src/plugin/plugin-status
*/
/**
* Plugin types
*/
export type PluginType = 'framework' | 'add-on' | 'extension';
/**
* Health status levels
*/
export type HealthStatus = 'healthy' | 'warning' | 'error';
/**
* Plugin entry from registry
*/
export interface PluginEntry {
id: string;
type: PluginType;
name: string;
version: string;
path: string;
installedAt: string;
parentFramework?: string;
projects?: string[];
health?: {
status: HealthStatus;
lastCheck: string;
issues?: string[];
};
}
/**
* Plugin status result
*/
export interface PluginStatusResult {
id: string;
type: PluginType;
name: string;
version: string;
installedAt: string;
path: string;
health: HealthStatus;
healthDetails: string[];
projects?: string[];
parentFramework?: string;
diskUsage?: number;
}
/**
* Status summary
*/
export interface StatusSummary {
totalPlugins: number;
healthyCount: number;
warningCount: number;
errorCount: number;
frameworkCount: number;
addOnCount: number;
extensionCount: number;
totalDiskUsage: number;
legacyMode: boolean;
}
/**
* Status command options
*/
export interface StatusOptions {
type?: PluginType;
pluginId?: string;
verbose?: boolean;
}
/**
* PluginStatus provides status reporting for plugins
*/
export declare class PluginStatus {
private aiwgRoot;
private registryPath;
constructor(aiwgRoot: string);
/**
* Get status of all plugins or filtered by options
*
* @param options - Filter options
* @returns Array of plugin status results
*/
getStatus(options?: StatusOptions): Promise<PluginStatusResult[]>;
/**
* Get status summary
*
* @returns Summary statistics
*/
getSummary(): Promise<StatusSummary>;
/**
* Get status of a single plugin
*
* @param plugin - Plugin entry
* @param verbose - Include detailed information
* @returns Plugin status result
*/
private getPluginStatus;
/**
* Perform health check on a plugin
*
* @param plugin - Plugin entry
* @returns Health check result
*/
private performHealthCheck;
/**
* Get disk usage for a plugin
*
* @param plugin - Plugin entry
* @returns Disk usage in bytes
*/
private getPluginDiskUsage;
/**
* Calculate total size of a directory
*/
private calculateDirectorySize;
/**
* Check if workspace is in legacy mode
*
* @returns True if no frameworks directory exists
*/
private isLegacyMode;
/**
* Load plugins from registry
*
* @returns Array of plugin entries
*/
private loadPlugins;
/**
* Generate text report
*
* @param options - Status options
* @returns Formatted text report
*/
generateReport(options?: StatusOptions): Promise<string>;
/**
* Get health status icon
*/
private getHealthIcon;
/**
* Format bytes as human-readable string
*/
private formatBytes;
}
//# sourceMappingURL=plugin-status.d.ts.map