@fusedashlabs/ui9000-workspace
Version:
UI9000 workspace MCP. One tool, show_workspace, draws a chart from your table. Set TYPESAFE_API_KEY to let Jev choose the chart.
28 lines (27 loc) • 1.24 kB
TypeScript
/**
* Column-oriented view of one dataset — the profiler's only input.
*
* A Table is the parsed shape of a CSV: header names plus raw cell text in row
* order. The profiler never sees typed rows, so a fixture CSV and a live
* dataset go through exactly the same classification.
*/
export type TableColumn = {
/** Header text, as written. Matching is done on a normalized copy. */
name: string;
/** Raw cell text, one entry per row, in row order. */
values: readonly string[];
};
export type Table = {
columns: readonly TableColumn[];
};
/** Rows in the table — the longest column wins if a CSV row was short. */
export declare function tableRowCount(table: Table): number;
/** Row-oriented copy of a Table. Used to persist / profile, not as MCP tool output. */
export declare function tableToRows(table: Table): Record<string, string>[];
/** Header text reduced to letters and digits: `Created At` and `created_at` match. */
export declare function normalizeName(name: string): string;
/**
* Minimal RFC 4180 reader: quoted fields, `""` escapes, CR/LF or LF, blank
* lines skipped. Enough for fixtures; the profiler owns no other parsing.
*/
export declare function parseCsvTable(text: string): Table;