/** * True when the bundled SKILL.md declares a version different from the one * recorded for this installed skill — i.e. the on-disk skill is stale. Returns * false whenever the question cannot be answered: the skill was removed from the * bundle (sync-skills drops it), the bundled frontmatter can't be parsed, or the * bundled file can't be read at all. * * That last case is why the read is INSIDE the try. `readSkillContent` propagates * every non-ENOENT I/O error by design, and all three callers here are best-effort * reporters that must not fail on it: `cli/serve.ts` runs this at boot behind a * guard commented "never let manifest IO issues block serve" (its filter sat * outside that guard, so an EACCES on one bundled file stopped the daemon from * starting), `cli/doctor.ts` runs it to REPORT on a broken install, and * `deriveSkillManifestInfo` below promises never to throw. "Cannot assess" is not * "behind", and it is certainly not "crash". */ export declare function isSkillBehind(entryName: string, entrySkillVersion: string, skillsRoot?: string): boolean; interface SkillManifestInfo { /** The installed skill version (uniform across entries at install time), or null. */ skillVersion: string | null; /** Null when nothing is installed; else true iff no installed skill is behind the bundle. */ skillCompatible: boolean | null; } /** * Derive the skill-version / compatibility summary reported by GET /status from * the real install manifest. Never throws — a future/corrupt manifest degrades to * the "unknown" ({ null, null }) shape rather than failing the status response. */ export declare function deriveSkillManifestInfo(homeDir?: string, skillsRoot?: string): SkillManifestInfo; export {}; //# sourceMappingURL=skill-drift.d.ts.map