/** * Read-only "is this capability already satisfied on this machine?" * detector for the capability catalog (`peaks capability status` / * `peaks capabilities --source ...`). * * `getInstalledCapabilityIds()` returned `[]` unconditionally, so the * catalog could never report anything as installed. This module answers * the question from evidence that already exists on disk — no install * side effect, no network, no subprocess: * * - `everything-claude-code.*` — satisfied when the ECC agents are readable, * i.e. `~/.peaks/agents/ecc/` holds at least one agent (landed by * `peaks ecc install` from the `ecc-universal` dependency). * - a source that maps to an npm package — satisfied when that package * (or its `.bin` shim) is present in the project's `node_modules`. * * Every probe is fail-soft: a throw degrades to "not installed" so the * catalog never breaks because a probe failed. */ export type InstalledCapabilityProbe = { /** Project whose `node_modules` is probed. */ readonly projectRoot: string; /** Override for tests; defaults to `/node_modules`. */ readonly nodeModulesDir?: string; /** Override for tests; defaults to a live probe of the materialized copy. */ readonly eccAgentsAvailable?: boolean; }; /** * Return the capabilityIds whose acquisition is already satisfied. * Sorted + de-duplicated so the JSON envelope is stable across runs. */ export declare function detectInstalledCapabilityIds(probe: InstalledCapabilityProbe): string[];