/** * SkillSource - Minimal interface for loading skills. * * This abstraction allows skills to be loaded from different sources: * - WorkspaceFilesystem * - LocalSkillSource (read-only from local disk) * * The interface only includes methods needed for discovery and reading. */ /** * File stat info for skill sources. * Aligned with FileStat from WorkspaceFilesystem. */ export interface SkillSourceStat { /** File or directory name */ name: string; /** 'file' or 'directory' */ type: 'file' | 'directory'; /** Size in bytes (0 for directories) */ size: number; /** Creation time */ createdAt: Date; /** Last modification time */ modifiedAt: Date; /** MIME type (for files) */ mimeType?: string; } /** * Directory entry from readdir. */ export interface SkillSourceEntry { /** Entry name (file or directory name) */ name: string; /** Entry type */ type: 'file' | 'directory'; /** Whether this entry is a symbolic link */ isSymlink?: boolean; } /** * Minimal read-only interface for loading skills. * * This is the subset of WorkspaceFilesystem methods needed for skill discovery. * Implementations can be backed by workspace filesystem, local disk, or other sources. */ export interface SkillSource { /** * Check if a path exists. */ exists(path: string): Promise; /** * Get file/directory stat info. * Only modifiedAt is required for staleness checks. */ stat(path: string): Promise; /** * Read a file's contents. */ readFile(path: string): Promise; /** * List directory contents. */ readdir(path: string): Promise; /** * Resolve a path to its canonical form. * Sources without aliases or symlinks can return the input path unchanged. */ realpath?(path: string): Promise; } //# sourceMappingURL=skill-source.d.ts.map