@ai-gui/plugin-bigscreen 0.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/LICENSE +21 -0
- package/README.md +96 -0
- package/dist/index.cjs +588 -0
- package/dist/index.d.cts +205 -0
- package/dist/index.d.ts +205 -0
- package/dist/index.js +574 -0
- package/dist/mount-BPBXhD2D.cjs +298 -0
- package/dist/mount-DVHPS1xP.js +297 -0
- package/dist/options-BpHnWRpI.cjs +499 -0
- package/dist/options-C087Peeh.js +415 -0
- package/package.json +76 -0
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import { AIGuiPlugin } from "@ai-gui/core";
|
|
2
|
+
import { EChartsCoreOption } from "echarts/core";
|
|
3
|
+
|
|
4
|
+
//#region src/types.d.ts
|
|
5
|
+
/** The palette a screen is drawn in. `dark` is the big-screen look; `light` sits on a white page. */
|
|
6
|
+
/** The palette a screen is drawn in. `dark` is the big-screen look; `light` sits on a white page. */
|
|
7
|
+
type ScreenTheme = "dark" | "light";
|
|
8
|
+
interface PanelBase {
|
|
9
|
+
title?: string;
|
|
10
|
+
/** How many of the screen's columns the panel takes. Default 4 of 12. */
|
|
11
|
+
span?: number;
|
|
12
|
+
/** Body height in CSS pixels. Default depends on the kind. */
|
|
13
|
+
height?: number;
|
|
14
|
+
}
|
|
15
|
+
/** One number, counted up from zero when it appears, with an optional change and sparkline. */
|
|
16
|
+
interface KpiPanel extends PanelBase {
|
|
17
|
+
kind: "kpi";
|
|
18
|
+
value: number;
|
|
19
|
+
unit?: string;
|
|
20
|
+
prefix?: string;
|
|
21
|
+
/** Digits after the decimal point. Default 0. */
|
|
22
|
+
decimals?: number;
|
|
23
|
+
/** Change as a fraction: 0.12 is +12%. */
|
|
24
|
+
delta?: number;
|
|
25
|
+
/** Whether a positive delta is good. Default true. */
|
|
26
|
+
upIsGood?: boolean;
|
|
27
|
+
/** A short series drawn as a sparkline under the number. */
|
|
28
|
+
trend?: number[];
|
|
29
|
+
label?: string;
|
|
30
|
+
}
|
|
31
|
+
/** A dial or a ring showing how far `value` is along `max`. */
|
|
32
|
+
interface GaugePanel extends PanelBase {
|
|
33
|
+
kind: "gauge";
|
|
34
|
+
value: number;
|
|
35
|
+
max?: number;
|
|
36
|
+
unit?: string;
|
|
37
|
+
style?: "dial" | "ring";
|
|
38
|
+
/** Fractions of `max` at which the colour turns amber, then red. */
|
|
39
|
+
thresholds?: [number, number];
|
|
40
|
+
}
|
|
41
|
+
/** Horizontal bars, longest first, growing in when they appear. */
|
|
42
|
+
interface RankPanel extends PanelBase {
|
|
43
|
+
kind: "rank";
|
|
44
|
+
items: Array<{
|
|
45
|
+
name: string;
|
|
46
|
+
value: number;
|
|
47
|
+
}>;
|
|
48
|
+
unit?: string;
|
|
49
|
+
/** Show this many; the rest are dropped. Default 8. */
|
|
50
|
+
top?: number;
|
|
51
|
+
}
|
|
52
|
+
/** Any ECharts option, drawn on canvas with the screen's palette and entrance animation. */
|
|
53
|
+
interface ChartPanel extends PanelBase {
|
|
54
|
+
kind: "chart";
|
|
55
|
+
option: Record<string, unknown>;
|
|
56
|
+
}
|
|
57
|
+
/** A 3D chart over the `data` points, slowly turning. */
|
|
58
|
+
interface Chart3dPanel extends PanelBase {
|
|
59
|
+
kind: "chart3d";
|
|
60
|
+
type: "bar3D" | "scatter3D" | "surface" | "line3D";
|
|
61
|
+
/** Points as [x, y, z]; with category axes x and y are indexes into them. */
|
|
62
|
+
data: Array<[number, number, number]>;
|
|
63
|
+
xAxis?: string[];
|
|
64
|
+
yAxis?: string[];
|
|
65
|
+
rotate?: boolean;
|
|
66
|
+
}
|
|
67
|
+
/** A globe with arcs between places and points on it. */
|
|
68
|
+
interface GlobePanel extends PanelBase {
|
|
69
|
+
kind: "globe";
|
|
70
|
+
arcs?: Array<{
|
|
71
|
+
from: [number, number];
|
|
72
|
+
to: [number, number];
|
|
73
|
+
label?: string;
|
|
74
|
+
}>;
|
|
75
|
+
points?: Array<{
|
|
76
|
+
coord: [number, number];
|
|
77
|
+
label?: string;
|
|
78
|
+
value?: number;
|
|
79
|
+
}>;
|
|
80
|
+
rotate?: boolean;
|
|
81
|
+
}
|
|
82
|
+
type Panel = KpiPanel | GaugePanel | RankPanel | ChartPanel | Chart3dPanel | GlobePanel;
|
|
83
|
+
type PanelKind = Panel["kind"];
|
|
84
|
+
interface ScreenDefinition {
|
|
85
|
+
title?: string;
|
|
86
|
+
subtitle?: string;
|
|
87
|
+
theme: ScreenTheme;
|
|
88
|
+
/** The accent colour, as a hex string. */
|
|
89
|
+
accent?: string;
|
|
90
|
+
/** Grid columns. Default 12. */
|
|
91
|
+
columns: number;
|
|
92
|
+
panels: Panel[];
|
|
93
|
+
}
|
|
94
|
+
interface BigscreenOptions {
|
|
95
|
+
/** Refuse a screen with more panels than this. Default 24. */
|
|
96
|
+
maxPanels?: number;
|
|
97
|
+
/** Refuse a fence larger than this, before parsing it. Default 64 KiB. */
|
|
98
|
+
maxSourceBytes?: number;
|
|
99
|
+
/** Host override: `false` draws everything at its final state, no count-ups, no rotation. Default true. */
|
|
100
|
+
animate?: boolean;
|
|
101
|
+
/** Host override for the palette; a screen's own `theme` wins when set in the fence. */
|
|
102
|
+
theme?: ScreenTheme;
|
|
103
|
+
}
|
|
104
|
+
interface BigscreenError {
|
|
105
|
+
code: "invalid-json" | "invalid-definition" | "too-large";
|
|
106
|
+
message: string;
|
|
107
|
+
}
|
|
108
|
+
type BigscreenResult<T> = {
|
|
109
|
+
ok: true;
|
|
110
|
+
value: T;
|
|
111
|
+
} | {
|
|
112
|
+
ok: false;
|
|
113
|
+
error: BigscreenError;
|
|
114
|
+
}; //#endregion
|
|
115
|
+
//#region src/prompt.d.ts
|
|
116
|
+
/**
|
|
117
|
+
* The model-facing rules for a data wall.
|
|
118
|
+
*
|
|
119
|
+
* The rule that must survive editing is "只用对话里已有的数字": a screen full of counting
|
|
120
|
+
* numbers looks like evidence, and a model that fills gaps with plausible figures produces a
|
|
121
|
+
* convincing lie. The examples show every panel kind once, because that is what a model copies,
|
|
122
|
+
* and the numbers in them are obviously placeholders.
|
|
123
|
+
*
|
|
124
|
+
* You rarely want this directly: `buildSystemPrompt({ registry, plugins, locale })` from
|
|
125
|
+
* `@ai-gui/core` collects the card specs and every enabled plugin's spec in one call, in the
|
|
126
|
+
* product's language. Reach for this only to inspect or override one plugin's rules.
|
|
127
|
+
*/
|
|
128
|
+
declare function bigscreenPromptSpec(locale?: string): string;
|
|
129
|
+
|
|
130
|
+
//#endregion
|
|
131
|
+
//#region src/parse.d.ts
|
|
132
|
+
/** Validate one `bigscreen` fence, or explain why it cannot be shown. */
|
|
133
|
+
declare function parseBigscreen(source: string, options?: {
|
|
134
|
+
maxPanels?: number;
|
|
135
|
+
maxSourceBytes?: number;
|
|
136
|
+
theme?: ScreenTheme;
|
|
137
|
+
}): BigscreenResult<ScreenDefinition>;
|
|
138
|
+
|
|
139
|
+
//#endregion
|
|
140
|
+
//#region src/palette.d.ts
|
|
141
|
+
interface Palette {
|
|
142
|
+
accent: string;
|
|
143
|
+
text: string;
|
|
144
|
+
muted: string;
|
|
145
|
+
good: string;
|
|
146
|
+
bad: string;
|
|
147
|
+
warn: string;
|
|
148
|
+
track: string;
|
|
149
|
+
/** The series colours charts cycle through. */
|
|
150
|
+
series: string[];
|
|
151
|
+
gridLine: string;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Two palettes, one per theme.
|
|
155
|
+
*
|
|
156
|
+
* The dark one is the data-wall look — deep navy, cyan accent, a little glow; the light one is
|
|
157
|
+
* the same screen on a white page. The accent can be overridden per screen, and the series
|
|
158
|
+
* colours start from it so a screen reads as one thing rather than a collage.
|
|
159
|
+
*/
|
|
160
|
+
declare function palette(definition: Pick<ScreenDefinition, "theme" | "accent">): Palette;
|
|
161
|
+
/** `#rrggbb` with an alpha, for glows and fills. */
|
|
162
|
+
declare function withAlpha(hex: string, alpha: number): string;
|
|
163
|
+
|
|
164
|
+
//#endregion
|
|
165
|
+
//#region src/options.d.ts
|
|
166
|
+
/** Format a number for a label: thousands grouped, up to `decimals` places. */
|
|
167
|
+
declare function formatNumber(value: number, decimals?: number): string;
|
|
168
|
+
/** The colour a gauge shows at `fraction` of its range. */
|
|
169
|
+
declare function gaugeColour(fraction: number, thresholds: [number, number] | undefined, c: Palette): string;
|
|
170
|
+
declare function gaugeOption(panel: GaugePanel, c: Palette, animate: boolean): EChartsCoreOption;
|
|
171
|
+
/**
|
|
172
|
+
* The screen's palette laid over whatever the model wrote.
|
|
173
|
+
*
|
|
174
|
+
* The model's option wins on anything it sets; this only fills in the colours, the font, the
|
|
175
|
+
* transparent background and the entrance animation a screen wants, so a plain `bar` series
|
|
176
|
+
* still looks like it belongs.
|
|
177
|
+
*/
|
|
178
|
+
declare function chartOption(panel: ChartPanel, c: Palette, animate: boolean): EChartsCoreOption;
|
|
179
|
+
declare function chart3dOption(panel: Chart3dPanel, c: Palette, animate: boolean): EChartsCoreOption;
|
|
180
|
+
/**
|
|
181
|
+
* A globe without a satellite photograph.
|
|
182
|
+
*
|
|
183
|
+
* ECharts' globe wants a texture, and the usual one is an image fetched from somewhere — which a
|
|
184
|
+
* page must not do on a model's say-so. So the texture is painted here: a deep sphere with a
|
|
185
|
+
* graticule, which is what a data wall's globe looks like anyway. Arcs get a moving trail.
|
|
186
|
+
*/
|
|
187
|
+
|
|
188
|
+
declare function globeOption(panel: GlobePanel, c: Palette, animate: boolean, texture: string | undefined): EChartsCoreOption;
|
|
189
|
+
|
|
190
|
+
//#endregion
|
|
191
|
+
//#region src/index.d.ts
|
|
192
|
+
declare const bigscreenCss: string;
|
|
193
|
+
/**
|
|
194
|
+
* A data wall: KPIs that count up, gauges that sweep, ranks that grow, charts that draw
|
|
195
|
+
* themselves, and 3D bars and globes that turn — laid out on a grid the model chooses.
|
|
196
|
+
*
|
|
197
|
+
* The screen is presentation, not evidence. Where the numbers must be the host's — a BI board
|
|
198
|
+
* over real queries — `@ai-gui/plugin-dashboard` is the block, and it refuses to let the model
|
|
199
|
+
* write a row. This one lets the model lay out the numbers it was given, which is what a
|
|
200
|
+
* summary, a demo or a briefing needs, and the prompt spec tells it never to invent them.
|
|
201
|
+
*/
|
|
202
|
+
declare function bigscreen(options?: BigscreenOptions): AIGuiPlugin;
|
|
203
|
+
|
|
204
|
+
//#endregion
|
|
205
|
+
export { BigscreenError, BigscreenOptions, BigscreenResult, Chart3dPanel, ChartPanel, GaugePanel, GlobePanel, KpiPanel, Panel, PanelKind, RankPanel, ScreenDefinition, ScreenTheme, bigscreen, bigscreenCss, bigscreenPromptSpec, chart3dOption, chartOption, formatNumber, gaugeColour, gaugeOption, globeOption, palette, parseBigscreen, withAlpha };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import { AIGuiPlugin } from "@ai-gui/core";
|
|
2
|
+
import { EChartsCoreOption } from "echarts/core";
|
|
3
|
+
|
|
4
|
+
//#region src/types.d.ts
|
|
5
|
+
/** The palette a screen is drawn in. `dark` is the big-screen look; `light` sits on a white page. */
|
|
6
|
+
/** The palette a screen is drawn in. `dark` is the big-screen look; `light` sits on a white page. */
|
|
7
|
+
type ScreenTheme = "dark" | "light";
|
|
8
|
+
interface PanelBase {
|
|
9
|
+
title?: string;
|
|
10
|
+
/** How many of the screen's columns the panel takes. Default 4 of 12. */
|
|
11
|
+
span?: number;
|
|
12
|
+
/** Body height in CSS pixels. Default depends on the kind. */
|
|
13
|
+
height?: number;
|
|
14
|
+
}
|
|
15
|
+
/** One number, counted up from zero when it appears, with an optional change and sparkline. */
|
|
16
|
+
interface KpiPanel extends PanelBase {
|
|
17
|
+
kind: "kpi";
|
|
18
|
+
value: number;
|
|
19
|
+
unit?: string;
|
|
20
|
+
prefix?: string;
|
|
21
|
+
/** Digits after the decimal point. Default 0. */
|
|
22
|
+
decimals?: number;
|
|
23
|
+
/** Change as a fraction: 0.12 is +12%. */
|
|
24
|
+
delta?: number;
|
|
25
|
+
/** Whether a positive delta is good. Default true. */
|
|
26
|
+
upIsGood?: boolean;
|
|
27
|
+
/** A short series drawn as a sparkline under the number. */
|
|
28
|
+
trend?: number[];
|
|
29
|
+
label?: string;
|
|
30
|
+
}
|
|
31
|
+
/** A dial or a ring showing how far `value` is along `max`. */
|
|
32
|
+
interface GaugePanel extends PanelBase {
|
|
33
|
+
kind: "gauge";
|
|
34
|
+
value: number;
|
|
35
|
+
max?: number;
|
|
36
|
+
unit?: string;
|
|
37
|
+
style?: "dial" | "ring";
|
|
38
|
+
/** Fractions of `max` at which the colour turns amber, then red. */
|
|
39
|
+
thresholds?: [number, number];
|
|
40
|
+
}
|
|
41
|
+
/** Horizontal bars, longest first, growing in when they appear. */
|
|
42
|
+
interface RankPanel extends PanelBase {
|
|
43
|
+
kind: "rank";
|
|
44
|
+
items: Array<{
|
|
45
|
+
name: string;
|
|
46
|
+
value: number;
|
|
47
|
+
}>;
|
|
48
|
+
unit?: string;
|
|
49
|
+
/** Show this many; the rest are dropped. Default 8. */
|
|
50
|
+
top?: number;
|
|
51
|
+
}
|
|
52
|
+
/** Any ECharts option, drawn on canvas with the screen's palette and entrance animation. */
|
|
53
|
+
interface ChartPanel extends PanelBase {
|
|
54
|
+
kind: "chart";
|
|
55
|
+
option: Record<string, unknown>;
|
|
56
|
+
}
|
|
57
|
+
/** A 3D chart over the `data` points, slowly turning. */
|
|
58
|
+
interface Chart3dPanel extends PanelBase {
|
|
59
|
+
kind: "chart3d";
|
|
60
|
+
type: "bar3D" | "scatter3D" | "surface" | "line3D";
|
|
61
|
+
/** Points as [x, y, z]; with category axes x and y are indexes into them. */
|
|
62
|
+
data: Array<[number, number, number]>;
|
|
63
|
+
xAxis?: string[];
|
|
64
|
+
yAxis?: string[];
|
|
65
|
+
rotate?: boolean;
|
|
66
|
+
}
|
|
67
|
+
/** A globe with arcs between places and points on it. */
|
|
68
|
+
interface GlobePanel extends PanelBase {
|
|
69
|
+
kind: "globe";
|
|
70
|
+
arcs?: Array<{
|
|
71
|
+
from: [number, number];
|
|
72
|
+
to: [number, number];
|
|
73
|
+
label?: string;
|
|
74
|
+
}>;
|
|
75
|
+
points?: Array<{
|
|
76
|
+
coord: [number, number];
|
|
77
|
+
label?: string;
|
|
78
|
+
value?: number;
|
|
79
|
+
}>;
|
|
80
|
+
rotate?: boolean;
|
|
81
|
+
}
|
|
82
|
+
type Panel = KpiPanel | GaugePanel | RankPanel | ChartPanel | Chart3dPanel | GlobePanel;
|
|
83
|
+
type PanelKind = Panel["kind"];
|
|
84
|
+
interface ScreenDefinition {
|
|
85
|
+
title?: string;
|
|
86
|
+
subtitle?: string;
|
|
87
|
+
theme: ScreenTheme;
|
|
88
|
+
/** The accent colour, as a hex string. */
|
|
89
|
+
accent?: string;
|
|
90
|
+
/** Grid columns. Default 12. */
|
|
91
|
+
columns: number;
|
|
92
|
+
panels: Panel[];
|
|
93
|
+
}
|
|
94
|
+
interface BigscreenOptions {
|
|
95
|
+
/** Refuse a screen with more panels than this. Default 24. */
|
|
96
|
+
maxPanels?: number;
|
|
97
|
+
/** Refuse a fence larger than this, before parsing it. Default 64 KiB. */
|
|
98
|
+
maxSourceBytes?: number;
|
|
99
|
+
/** Host override: `false` draws everything at its final state, no count-ups, no rotation. Default true. */
|
|
100
|
+
animate?: boolean;
|
|
101
|
+
/** Host override for the palette; a screen's own `theme` wins when set in the fence. */
|
|
102
|
+
theme?: ScreenTheme;
|
|
103
|
+
}
|
|
104
|
+
interface BigscreenError {
|
|
105
|
+
code: "invalid-json" | "invalid-definition" | "too-large";
|
|
106
|
+
message: string;
|
|
107
|
+
}
|
|
108
|
+
type BigscreenResult<T> = {
|
|
109
|
+
ok: true;
|
|
110
|
+
value: T;
|
|
111
|
+
} | {
|
|
112
|
+
ok: false;
|
|
113
|
+
error: BigscreenError;
|
|
114
|
+
}; //#endregion
|
|
115
|
+
//#region src/prompt.d.ts
|
|
116
|
+
/**
|
|
117
|
+
* The model-facing rules for a data wall.
|
|
118
|
+
*
|
|
119
|
+
* The rule that must survive editing is "只用对话里已有的数字": a screen full of counting
|
|
120
|
+
* numbers looks like evidence, and a model that fills gaps with plausible figures produces a
|
|
121
|
+
* convincing lie. The examples show every panel kind once, because that is what a model copies,
|
|
122
|
+
* and the numbers in them are obviously placeholders.
|
|
123
|
+
*
|
|
124
|
+
* You rarely want this directly: `buildSystemPrompt({ registry, plugins, locale })` from
|
|
125
|
+
* `@ai-gui/core` collects the card specs and every enabled plugin's spec in one call, in the
|
|
126
|
+
* product's language. Reach for this only to inspect or override one plugin's rules.
|
|
127
|
+
*/
|
|
128
|
+
declare function bigscreenPromptSpec(locale?: string): string;
|
|
129
|
+
|
|
130
|
+
//#endregion
|
|
131
|
+
//#region src/parse.d.ts
|
|
132
|
+
/** Validate one `bigscreen` fence, or explain why it cannot be shown. */
|
|
133
|
+
declare function parseBigscreen(source: string, options?: {
|
|
134
|
+
maxPanels?: number;
|
|
135
|
+
maxSourceBytes?: number;
|
|
136
|
+
theme?: ScreenTheme;
|
|
137
|
+
}): BigscreenResult<ScreenDefinition>;
|
|
138
|
+
|
|
139
|
+
//#endregion
|
|
140
|
+
//#region src/palette.d.ts
|
|
141
|
+
interface Palette {
|
|
142
|
+
accent: string;
|
|
143
|
+
text: string;
|
|
144
|
+
muted: string;
|
|
145
|
+
good: string;
|
|
146
|
+
bad: string;
|
|
147
|
+
warn: string;
|
|
148
|
+
track: string;
|
|
149
|
+
/** The series colours charts cycle through. */
|
|
150
|
+
series: string[];
|
|
151
|
+
gridLine: string;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Two palettes, one per theme.
|
|
155
|
+
*
|
|
156
|
+
* The dark one is the data-wall look — deep navy, cyan accent, a little glow; the light one is
|
|
157
|
+
* the same screen on a white page. The accent can be overridden per screen, and the series
|
|
158
|
+
* colours start from it so a screen reads as one thing rather than a collage.
|
|
159
|
+
*/
|
|
160
|
+
declare function palette(definition: Pick<ScreenDefinition, "theme" | "accent">): Palette;
|
|
161
|
+
/** `#rrggbb` with an alpha, for glows and fills. */
|
|
162
|
+
declare function withAlpha(hex: string, alpha: number): string;
|
|
163
|
+
|
|
164
|
+
//#endregion
|
|
165
|
+
//#region src/options.d.ts
|
|
166
|
+
/** Format a number for a label: thousands grouped, up to `decimals` places. */
|
|
167
|
+
declare function formatNumber(value: number, decimals?: number): string;
|
|
168
|
+
/** The colour a gauge shows at `fraction` of its range. */
|
|
169
|
+
declare function gaugeColour(fraction: number, thresholds: [number, number] | undefined, c: Palette): string;
|
|
170
|
+
declare function gaugeOption(panel: GaugePanel, c: Palette, animate: boolean): EChartsCoreOption;
|
|
171
|
+
/**
|
|
172
|
+
* The screen's palette laid over whatever the model wrote.
|
|
173
|
+
*
|
|
174
|
+
* The model's option wins on anything it sets; this only fills in the colours, the font, the
|
|
175
|
+
* transparent background and the entrance animation a screen wants, so a plain `bar` series
|
|
176
|
+
* still looks like it belongs.
|
|
177
|
+
*/
|
|
178
|
+
declare function chartOption(panel: ChartPanel, c: Palette, animate: boolean): EChartsCoreOption;
|
|
179
|
+
declare function chart3dOption(panel: Chart3dPanel, c: Palette, animate: boolean): EChartsCoreOption;
|
|
180
|
+
/**
|
|
181
|
+
* A globe without a satellite photograph.
|
|
182
|
+
*
|
|
183
|
+
* ECharts' globe wants a texture, and the usual one is an image fetched from somewhere — which a
|
|
184
|
+
* page must not do on a model's say-so. So the texture is painted here: a deep sphere with a
|
|
185
|
+
* graticule, which is what a data wall's globe looks like anyway. Arcs get a moving trail.
|
|
186
|
+
*/
|
|
187
|
+
|
|
188
|
+
declare function globeOption(panel: GlobePanel, c: Palette, animate: boolean, texture: string | undefined): EChartsCoreOption;
|
|
189
|
+
|
|
190
|
+
//#endregion
|
|
191
|
+
//#region src/index.d.ts
|
|
192
|
+
declare const bigscreenCss: string;
|
|
193
|
+
/**
|
|
194
|
+
* A data wall: KPIs that count up, gauges that sweep, ranks that grow, charts that draw
|
|
195
|
+
* themselves, and 3D bars and globes that turn — laid out on a grid the model chooses.
|
|
196
|
+
*
|
|
197
|
+
* The screen is presentation, not evidence. Where the numbers must be the host's — a BI board
|
|
198
|
+
* over real queries — `@ai-gui/plugin-dashboard` is the block, and it refuses to let the model
|
|
199
|
+
* write a row. This one lets the model lay out the numbers it was given, which is what a
|
|
200
|
+
* summary, a demo or a briefing needs, and the prompt spec tells it never to invent them.
|
|
201
|
+
*/
|
|
202
|
+
declare function bigscreen(options?: BigscreenOptions): AIGuiPlugin;
|
|
203
|
+
|
|
204
|
+
//#endregion
|
|
205
|
+
export { BigscreenError, BigscreenOptions, BigscreenResult, Chart3dPanel, ChartPanel, GaugePanel, GlobePanel, KpiPanel, Panel, PanelKind, RankPanel, ScreenDefinition, ScreenTheme, bigscreen, bigscreenCss, bigscreenPromptSpec, chart3dOption, chartOption, formatNumber, gaugeColour, gaugeOption, globeOption, palette, parseBigscreen, withAlpha };
|