40 lines
1.5 KiB
TypeScript
40 lines
1.5 KiB
TypeScript
/** Data Hub BSI catalog tile: which BSI Kernel catalog and ISO 27001 mapping are active, and where from. */
|
|
export interface BsiCatalogState {
|
|
version: 1;
|
|
/** `bundled`: the pinned snapshots shipped with ASSESSOR; `bsi`: stored by `Update from BSI`. */
|
|
origin: 'bundled' | 'bsi';
|
|
updatedAt?: string;
|
|
catalogVersion: string;
|
|
crosswalkVersion: string;
|
|
requirementCount: number;
|
|
crosswalkEntryCount: number;
|
|
catalogSha256: string;
|
|
crosswalkSha256: string;
|
|
/** Mapping targets the active catalog does not contain; they are reported, never reinterpreted. */
|
|
missingTargets: string[];
|
|
}
|
|
|
|
export interface BsiCatalogRefreshResult extends BsiCatalogState {
|
|
updated: boolean;
|
|
}
|
|
|
|
/**
|
|
* Data Hub BSI tile: the retrieval index of the active Kernel catalog for direct BSI mappings (user decision
|
|
* 2026-10-09). `outdated` means only an index of another catalog state exists; `unavailable` means embedding or
|
|
* Qdrant is not configured. A BSI mapping still builds a missing index itself.
|
|
*/
|
|
export interface BsiSearchIndexStatus {
|
|
version: 1;
|
|
state: 'unavailable' | 'not-built' | 'outdated' | 'building' | 'built' | 'failed';
|
|
catalogVersion: string;
|
|
corpusVersion: string;
|
|
requirementCount: number;
|
|
/** Indexed chunks of the active catalog state; a requirement with long guidance has several. */
|
|
indexedChunks: number;
|
|
/** While building: embedded chunks of all chunks. */
|
|
progress?: { completed: number; total: number };
|
|
builtAt?: string;
|
|
error?: string;
|
|
disabledReason?: string;
|
|
}
|