export type ProviderId = "copilot"; export type ProviderSupportState = "native" | "handoff" | "stub" | "unsupported"; export type CompatProviderState = "supported" | "fallback" | "unsupported"; export interface ProviderSupport { state: ProviderSupportState; notes: string; } export interface Capability { id: string; name: string; title: string; category: "clarification" | "planning" | "execution" | "tracking" | "verification" | string; summary: string; notes: string; defaultCommand: string; phase1: boolean; sourceSkill: string; providers: Record; support: Record; providerSupport: Record; } export interface CapabilityCatalog { schemaVersion: number; providerStates: ProviderSupportState[]; compatProviderStates?: CompatProviderState[]; capabilities: Capability[]; } export interface SkillProjection { name: string; capabilityId: string; capabilityIds: string[]; source: string; sourcePath: string; canonicalPath: string; description: string; aliases: string[]; slashCommands: string[]; projections: Record; summary: string; support: string; projection: "skill-wrapper" | "capability-handoff" | string; phase1: boolean; handoffOnly?: boolean; } export type SkillEntry = SkillProjection; export interface SkillCatalog { schemaVersion: number; canonicalRoot: string; commandPrefix: string; skills: SkillProjection[]; } export interface CatalogBundle { capabilities: CapabilityCatalog; skills: SkillCatalog; } export interface CatalogValidationIssue { code: string; message: string; path: string; } export interface CatalogValidationResult { ok: boolean; issues: CatalogValidationIssue[]; capabilityIds: string[]; skillNames: string[]; } export declare function defaultCatalogDir(): string; export declare function loadCapabilityCatalog(catalogDir?: string): CapabilityCatalog; export declare function loadSkillCatalog(catalogDir?: string): SkillCatalog; export declare function loadCatalogBundle(catalogDir?: string): CatalogBundle; export declare function phase1Skills(catalog?: SkillCatalog): SkillProjection[]; export declare function phase1SkillNames(catalog?: SkillCatalog): string[]; export declare function phase1SlashCommands(catalog?: SkillCatalog): string[]; export declare function findCapability(id: string, catalog?: CapabilityCatalog): Capability | undefined; export declare function validateCatalog(catalog?: SkillCatalog): string[]; export declare function validateCatalogBundle(bundle?: CatalogBundle): CatalogValidationResult;