@struktoai/mirage-core
Version:
A Unified Virtual Filesystem For AI Agents
36 lines • 1.44 kB
TypeScript
import type { PostgresAccessor } from '../../accessor/postgres.ts';
import type { ColumnInfo, ColumnStats, EnumInfo, ForeignKey } from './client.ts';
type ColumnRole = 'dimensions' | 'time_dimensions' | 'facts';
interface ColumnEntry {
name: string;
expr: string;
data_type: string;
description?: string;
is_enum?: boolean;
sample_values?: string[];
}
interface Relationship {
left_table: string;
right_table: string;
relationship_columns: {
left_column: string;
right_column: string;
}[];
}
export interface EntitySemanticJson {
name: string;
schema: string;
kind: string;
description?: string;
primary_key?: string[];
dimensions?: ColumnEntry[];
time_dimensions?: ColumnEntry[];
facts?: ColumnEntry[];
relationships?: Relationship[];
}
export declare function classifyColumn(name: string, dataType: string, keyColumns: ReadonlySet<string>): ColumnRole;
export declare function buildColumnEntry(column: ColumnInfo, comment: string | undefined, enumInfo: EnumInfo | undefined, stats: ColumnStats | undefined): ColumnEntry;
export declare function buildRelationships(foreignKeys: readonly ForeignKey[], schema: string, name: string): Relationship[];
export declare function buildEntitySemanticJson(accessor: PostgresAccessor, schema: string, name: string, kind: string): Promise<EntitySemanticJson>;
export {};
//# sourceMappingURL=semantic.d.ts.map