/** * Skill resolver — quét 2 tầng path, parse frontmatter, dedupe theo precedence. * * 1. /.redai/skills// project-manual * 2. ~/.redai/skills// global-manual * * Discovery rules: * - Cả 2 tầng đều scan dạng "manual": tìm subdir trực tiếp có SKILL.md. * - Skill từ npm package được `redai skill install` extract content (SKILL.md * + references/scripts/examples/assets) vào ~/.redai/skills//, KHÔNG * nằm trong node_modules. → resolver không cần biết "npm" hay "manual". * * Output: { skills: SkillMeta[], conflicts: SkillMeta[] } * - skills: danh sách đã dedupe (winner theo precedence). * - conflicts: tất cả entry bị che (loser) — dùng cho `redai skill list --conflicts`. */ import { SkillMeta } from './types'; export interface ResolveResult { skills: SkillMeta[]; conflicts: SkillMeta[]; } export interface ResolverOptions { cwd?: string; } export declare function resolveSkills(opts?: ResolverOptions): ResolveResult; /** Lookup 1 skill theo tên. */ export declare function findSkill(name: string, opts?: ResolverOptions): SkillMeta | undefined; /** * Check 1 package.json có phải skill package không. * Export để `store.ts` validate npm package trước khi extract. */ export declare function isRedaiSkillPackage(pkg: Record): boolean; /** * Pick skill name từ redai block / frontmatter / package name. * Ưu tiên: redai.skillName > frontmatter.name > strip "redai-skill-" prefix. */ export declare function pickSkillName(redai: Record, fm: Record, pkg: Record): string;