/** * public-boundary.ts — the public/private boundary for the published corpus. * * Some skills are PUBLIC (they ship in the open-source `@hasna/skills` package). * Others are PRIVATE/TEAM (fleet-operational, PII-bearing, internal) and must * NEVER enter the published npm files-list. This module lets a skill declare its * visibility and provides enforcement that detects any private skill leaking into * the real package file list. * * A skill is treated as PRIVATE (fully excluded from publish) when ANY of: * - `package.json` -> `skills.visibility` is one of team|private|internal * - `package.json` -> `skills.publish` is `false` * - a marker file `.private` exists in the skill directory * - `SKILL.md` frontmatter declares `visibility: team|private|internal` * * Note: `hosted` / `remote` / `private-hosted` skills are a DIFFERENT concept — * they ship metadata (package.json) with their `src/` stripped. Those are premium * hosted skills and are handled by the existing hosted-metadata boundary, not here. */ export type SkillVisibility = "public" | "team" | "private" | "internal"; export declare function isPrivateVisibility(value: string | undefined): value is SkillVisibility; /** Determine whether a skill directory is private (must never be published). */ export declare function isPrivateSkillDir(skillDir: string): boolean; /** List the slugs of every private skill under a `skills/` root, sorted. */ export declare function listPrivateSkillSlugs(skillsRoot: string): string[]; /** * Given the real package file list and the set of private slugs, return every * packed path that belongs to a private skill. A non-empty result means a private * skill leaked into the publishable package. */ export declare function findPrivatePacklistLeaks(packedPaths: string[], privateSlugs: Iterable): string[];