mirror of
https://github.com/morluto/rea.git
synced 2026-11-07 05:56:19 -10:00
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.
59 lines
1.6 KiB
TypeScript
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>;
|