import type { BlobStore } from '../../storage/domains/blobs/base.js'; import type { SkillVersionTree } from '../../storage/types.js'; import type { SkillSource, SkillSourceEntry, SkillSourceStat } from './skill-source.js'; /** * A skill entry for the composite source. * Each entry represents one skill's versioned tree, mounted under a directory name. */ export interface VersionedSkillEntry { /** Directory name for this skill (used as the subdirectory under the root) */ dirName: string; /** The skill version's file tree manifest */ tree: SkillVersionTree; /** When this version was created */ versionCreatedAt: Date; } /** * A SkillSource that composes multiple versioned skill trees into a virtual directory. * * Each skill is mounted under a directory name, so the composite source looks like: * / (root - virtual) * /brand-guidelines/ (skill 1 root) * /brand-guidelines/SKILL.md (skill 1 files from blob store) * /tone-of-voice/ (skill 2 root) * /tone-of-voice/SKILL.md (skill 2 files from blob store) * * This allows WorkspaceSkillsImpl to discover skills normally by scanning the root * for subdirectories containing SKILL.md. * * Can also include a fallback source for "live" skills that read from the filesystem. */ export declare class CompositeVersionedSkillSource implements SkillSource { #private; constructor(entries: VersionedSkillEntry[], blobStore: BlobStore, options?: { /** Fallback source for "live" skills that read from the filesystem */ fallback?: SkillSource; /** Skill directory names that should be served from the fallback source */ fallbackSkills?: string[]; }); exists(path: string): Promise; stat(path: string): Promise; readFile(path: string): Promise; readdir(path: string): Promise; realpath(path: string): Promise; } //# sourceMappingURL=composite-versioned-skill-source.d.ts.map