/** * Optional Features — Installation Status Probe * * Resolves whether each feature in the catalog is currently available * by attempting to read its packages from the AIWG install's * `node_modules`. Pure best-effort — never throws on missing packages, * just reports them as not installed. * * @implements #1219 */ import { type FeatureDefinition } from './catalog.js'; export interface PackageStatus { /** Package name as published on npm */ name: string; /** True if `node_modules//package.json` resolves */ installed: boolean; /** Version from the package.json if installed */ version: string | null; /** Absolute path to the resolved package.json (for diagnostics) */ path: string | null; } export interface FeatureStatus { /** Feature definition (forwarded for convenience) */ feature: FeatureDefinition; /** Per-package install status */ packages: PackageStatus[]; /** True iff all packages in the feature resolve */ available: boolean; /** Names of any missing packages (subset of feature.packages) */ missing: string[]; } /** Status of a single named feature. Returns null if the name is unknown. */ export declare function getFeatureStatus(name: string): Promise; /** Status of every feature in the catalog. */ export declare function getAllFeatureStatuses(): Promise; /** * Format a single feature status as a one-line "doctor row": * ✓ embeddings installed (@xenova/transformers 2.17.2, hnswlib-node 3.0.0) * ○ pty not installed — `aiwg features install pty` to enable */ export declare function formatStatusLine(status: FeatureStatus, indent?: string): string; //# sourceMappingURL=status.d.ts.map