@hachej/boring-bi-dashboard
v0.1.87
Published
BI dashboard plugin primitives for Boring workspace: BSL-backed dashboard specs, charts, metrics, filters, and Perspective panels.
Readme
@hachej/boring-bi-dashboard
BI dashboard plugin primitives for Boring workspace.
This package is the host-side home for the BSL dashboard UX:
- prompt/agent output should target a neutral
boring.generated-paneJSON contract withprofile: "bi-dashboard" - the plugin renders approved dashboard components in boring-ui
- data-bridge owns query execution and adapters
- the plugin maps dashboard components to generated-pane, data-bridge, and Perspective runtimes
Current scope includes the generated-pane BI profile, structured validation, JSON/Arrow data-bridge query execution, and Perspective-backed dashboard charts/tables.
Panel
The plugin registers:
- panel:
bi-dashboard.panel - command:
bi-dashboard.open
Dashboard contract
Agents should generate specs shaped like:
{
"kind": "boring.generated-pane",
"profile": "bi-dashboard",
"version": 1,
"title": "Revenue Overview",
"queries": {
"revenue_by_month": {
"id": "revenue_by_month",
"model": "orders",
"query": "sm.group_by(\"month\").aggregate(\"revenue\").order_by(\"month\")"
}
},
"root": "dashboard",
"elements": {
"dashboard": {
"type": "DashboardGrid",
"props": { "columns": 12 },
"children": ["revenue-line"]
},
"revenue-line": {
"type": "BSLChart",
"props": {
"queryId": "revenue_by_month",
"renderer": "echarts",
"chartType": "line",
"x": "month",
"y": "revenue"
}
}
}
}Example and playground
Example workspace fixtures live in example/:
example/data/people.csvexample/dashboards/people.dashboard.jsonexample/eval/bi-dashboard.yaml
Run the plugin through the existing workspace playground without making it a default playground plugin:
pnpm --filter @hachej/boring-bi-dashboard playground:devRun the authoring eval through the plugin-local playground runner:
pnpm --filter @hachej/boring-bi-dashboard playground:evalThe runner checks that the agent writes a dashboard file and validates the generated JSON with parseDashboardSpec.
See playground/README.md for full playground commands.
