@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.
44 lines (43 loc) • 1.51 kB
TypeScript
/** Closed action types a spec may declare. Catalog metadata may list more. */
export declare const SPEC_ACTIONS: readonly ["hover", "resize", "select", "submit", "approve", "reject"];
export type SpecAction = (typeof SPEC_ACTIONS)[number];
export declare const SPEC_ACTION_SET: ReadonlySet<string>;
export type SpecBindValue = string | {
field: string;
};
export type SpecBindMap = Record<string, SpecBindValue>;
export type SpecBindItem = {
role: string;
field: string;
};
export type SpecTool = {
name: string;
};
export type SpecField = string | {
name?: string;
id?: string;
label?: string;
};
/**
* Workspace spec. No `data: row[]` — rows arrive through the data-channel handle.
* `allowedActions` is the closed Stage 3 set only — catalog extras (pan/zoom) stay off the spec.
* `binds` require `fields` so a missing column is detectable.
*/
export type WorkspaceSpec = {
component: string;
props?: Record<string, unknown>;
binds?: SpecBindMap | readonly SpecBindItem[];
fields?: readonly SpecField[];
allowedActions?: readonly string[];
actions?: readonly string[];
tools?: readonly {
name?: string;
[key: string]: unknown;
}[];
children?: readonly unknown[];
label?: string;
/** Signed data-link. Widget fetches rows here — never from the MCP tool result. */
dataUrl?: string;
/** Host tool the widget calls to read the signed payload. Not a model-facing tool. */
callServerTool?: string;
};