import { type Skill } from './skills.js'; /** * Bundle version. Bumped whenever resources/ecc/ is refreshed from * upstream OR when the seedHooks() set materially changes. * * History: * '1.0.0' — initial bundle (33 skills, 16 agents, 3 commands, flat rules) * '2.0.0' — refreshed from upstream 2.0.0-rc.1 * (228 skills, 60 agents, 75 commands, 19 language rule subdirs; * adds config-protection + simplified GateGuard hooks) * '2.1.0' — adds quality-gate + format-typecheck-hint hooks (M1 leftovers) */ export declare const BUNDLE_VERSION = "2.1.0"; export interface EccState { installedAt: string; version: string; counts: { skills: number; agents: number; commands: number; rules: number; prompts: number; }; } export declare function loadEccState(): EccState | null; export declare function eccResourcesAvailable(): boolean; export interface ImportReport { skills: number; agents: number; commands: number; rules: number; prompts: number; errors: string[]; } export declare function listEccCommands(): string[]; /** * Resolve a `/ecc-` command to its prompt body. Frontmatter is stripped; * if `allowed_tools` is set, it's preserved as a note at the top. */ export declare function getEccCommandPrompt(name: string): string | null; /** * Re-seed ECC hooks against the CURRENT install path. Called on every * startup (when ECC is already installed) to self-heal stale absolute * paths from a prior install location. Idempotent. * * Safe to call repeatedly — strips and re-adds the __ecc__-tagged hooks * each time. Returns the number of hooks now seeded (0 if ecc-hooks.cjs * is missing on this machine, in which case we leave hooks.json alone). */ export declare function reseedEccHooks(): number; export declare function installEcc(opts?: { verbose?: boolean; }): ImportReport; export declare function printEccStatus(): void; export declare function printEccSkills(): void; export declare function printEccAgents(): void; export declare function printEccCommandList(): void; /** * Match the user's free-form text against ECC skill triggers and return the * top-matching skill prompt body, or null if nothing fires. Used to auto-inject * skill content into the system prompt — bumps relevance for that turn. */ export declare function findEccSkillForQuery(query: string): Skill | null; /** * Same scoring as findEccSkillForQuery but returns the top-K hits. * Used by the progressive-disclosure system prompt injection to surface * multiple potentially-relevant skill names + descriptions without * burning the token budget on full prompt bodies. */ export declare function findEccSkillsForQuery(query: string, limit?: number): Skill[]; /** * Look up a skill by exact or substring name match. Used by the * skill_view tool to expand a Level-0 reference (name only) to the * Level-1 full prompt body the model needs to actually apply. */ export declare function findEccSkillByName(name: string): Skill | null;