Files
rea/scripts/lib/product-catalog.d.mts
T
N0zoM1z0 beb9ece7d1 build: add canonical product catalog and docs drift checks
Derive package, tool-family, provider, setup-client, schema-version, and CLI facts from the runtime contract sources into a deterministic checked-in catalog.

Add non-mutating generated-file checks, exact TypeDoc regenerate-and-compare validation, caller-visible documentation fact checks, and CI enforcement through docs:check.

Cover command-router parity, source-derived catalog values, deliberate documentation drift, and stale generated artifacts while preserving runtime behavior.
2026-07-15 17:43:52 +08:00

59 lines
1.6 KiB
TypeScript

export interface ProductCatalog {
readonly catalog_schema_version: number;
readonly package: {
readonly name: string;
readonly version: string;
readonly sdk: Readonly<Record<string, string>>;
readonly skill_version: string;
};
readonly tools: {
readonly total: number;
readonly families: readonly {
readonly id: string;
readonly surface: string;
readonly count: number;
readonly tools: readonly string[];
}[];
};
readonly providers: readonly {
readonly id: string;
readonly name: string;
readonly version: string | null;
readonly capabilities: readonly string[];
}[];
readonly setup_clients: readonly {
readonly id: string;
readonly display_name: string;
readonly format: string;
readonly configuration: string;
}[];
readonly schemas: readonly {
readonly id: string;
readonly version: string | number;
}[];
readonly cli: {
readonly primary_count: number;
readonly commands: readonly string[];
readonly aliases: readonly {
readonly name: string;
readonly target: string;
}[];
};
readonly runtime_catalog: {
readonly counts: Readonly<Record<string, number>>;
readonly digests: Readonly<Record<string, string>>;
};
}
export function createProductCatalog(root: string): Promise<ProductCatalog>;
export function createCliInventory(cli: unknown): {
readonly primary: readonly string[];
readonly aliases: readonly {
readonly name: string;
readonly target: string;
}[];
};
export function serializeProductCatalog(
catalog: ProductCatalog,
): Promise<string>;