import type { SourceMeta } from "../capability/types"; import type { SkillsSettings } from "../config/settings"; import type { SkillPromptDetails } from "../session/messages"; export interface Skill { name: string; description: string; filePath: string; baseDir: string; source: string; /** * When `true`, the skill is loaded and reachable via `skill://` and * (when enabled) `/skill:`, but is excluded from the rendered system * prompt's `` listing. */ hide?: boolean; /** Source metadata for display */ _source?: SourceMeta; } export interface SkillWarning { skillPath: string; message: string; } export interface LoadSkillsResult { skills: Skill[]; warnings: SkillWarning[]; } /** * Process-global snapshot of skills the active session loaded. * Read by internal URL protocol handlers (skill://). */ export declare function getActiveSkills(): readonly Skill[]; /** Replace the active skill snapshot. Called once per top-level session. */ export declare function setActiveSkills(value: readonly Skill[]): void; /** Reset the active skill snapshot. Test-only. */ export declare function resetActiveSkillsForTests(): void; export interface LoadSkillsFromDirOptions { /** Directory to scan for skills */ dir: string; /** Source identifier for these skills */ source: string; } export declare function loadSkillsFromDir(options: LoadSkillsFromDirOptions): Promise; export interface LoadSkillsOptions extends SkillsSettings { /** Working directory for project-local skills. Default: getProjectDir() */ cwd?: string; } /** * Load skills from all configured locations. * Returns skills and any validation warnings. */ export declare function loadSkills(options?: LoadSkillsOptions): Promise; export interface BuiltSkillPromptMessage { message: string; details: SkillPromptDetails; } export declare function getSkillSlashCommandName(skill: Pick): string; export declare function buildSkillPromptMessage(skill: Pick, args: string): Promise;