@bicharts/chart-mcp 0.6.112 → 0.6.114
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/README.md +4 -3
- package/dist/index.mjs +130 -128
- package/package.json +4 -4
- package/skills/bic-charts/SKILL.md +11 -3
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bicharts/chart-mcp",
|
|
3
|
-
"version": "0.6.
|
|
4
|
-
"description": "AI Data Components for Power BI, Excel, Fabric Apps and the web, over MCP:
|
|
3
|
+
"version": "0.6.114",
|
|
4
|
+
"description": "AI Data Components for Power BI, Excel, Fabric Apps and the web, over MCP: working what-if apps, interactive tables and bivariate maps first, plus about 90 everyday chart types, with selection and cross-filtering already wired. It profiles your table locally; the code it writes is yours and runs with no license.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mcp",
|
|
7
7
|
"modelcontextprotocol",
|
|
@@ -47,8 +47,8 @@
|
|
|
47
47
|
},
|
|
48
48
|
"// dependencies": "NONE, deliberately. dist/ bundles every module the server uses, so a runtime dependency installs nothing it needs - it only makes npx fetch that package (and its tree) before the first start. Everything the bundle carries is a devDependency; scripts/verify-package.mjs fails the release if a dependency appears or a shipped file imports anything but Node's built-ins.",
|
|
49
49
|
"devDependencies": {
|
|
50
|
-
"@bicharts/chart-host": "^0.6.
|
|
51
|
-
"@bicharts/shape-core": "^0.6.
|
|
50
|
+
"@bicharts/chart-host": "^0.6.113",
|
|
51
|
+
"@bicharts/shape-core": "^0.6.113",
|
|
52
52
|
"@modelcontextprotocol/sdk": "^1.32.1",
|
|
53
53
|
"@types/node": "^26.6.5",
|
|
54
54
|
"@types/papaparse": "^5.3.14",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: bic-charts
|
|
3
|
-
description: Build a web app or dashboard containing BIC-generated charts, maps, tables and app widgets — a bubble map, a table with in-cell bars, a table readers work with and keep their own way, a what-if widget, linked cross-filtering. Use whenever the bic-chart MCP tools are available and the task is "put a chart, map, table, widget or dashboard in this app".
|
|
3
|
+
description: Build a web app or dashboard containing BIC-generated charts, maps, tables and app widgets — a bubble map, a table with in-cell bars, a table readers work with and keep their own way, a what-if widget, linked cross-filtering. Use whenever the bic-chart MCP tools are available and the task is "put a chart, map, table, widget or dashboard in this app" - including a plain table, grid or list of rows a person will sort, resize, hide columns of or browse - ask the chart server for it (list_eligible_charts) before hand-building one or using a template's grid.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Building an app with BIC charts
|
|
@@ -898,7 +898,11 @@ arrive already narrowed, and the chart can't see a filter applied to its query:
|
|
|
898
898
|
one country's totals and ranked what the filter left. Given `scopedBy={country}` (or `scopedBy={[fromMap, fromTable]}`),
|
|
899
899
|
the chart names the pick while it is active - "North America · United States only", "rank 2 of 3 (United States
|
|
900
900
|
only)" - and goes back to its own titles when it clears. Pass every filter its query's `treatAs` takes; a panel narrowed
|
|
901
|
-
with `filterBy` needs nothing more, its component tells the chart itself.
|
|
901
|
+
with `filterBy` needs nothing more, its component tells the chart itself. A panel whose query removes a pick on every
|
|
902
|
+
figure it plots (each measure under `REMOVEFILTERS`, `ALL` or an `ALLEXCEPT` that drops the picked column, as the closed
|
|
903
|
+
deal figures are under a stage pick) isn't narrowed by it: leave that pick out of its `scopedBy`, or apply it, or its
|
|
904
|
+
scope line names a stage its marks never move for. `check_app` flags a `scopedBy` pick the panel's query removes from
|
|
905
|
+
everything it plots.
|
|
902
906
|
|
|
903
907
|
`check_app` lists each chart's wiring - filtered query, highlight only, or none - and warns on a panel no click
|
|
904
908
|
reaches, and on a filtered-query panel with no `scopedBy`. Say that list in your reply, with any panel you left whole and why, so a gap is seen before deploy.
|
|
@@ -1202,7 +1206,11 @@ const markDone = useCallback(async (taskId: string) => {
|
|
|
1202
1206
|
- **A dialog of your own** (a form over the page) uses `useDialogFocus(ref, onClose)` from `src/lib/bic-dialog.ts`:
|
|
1203
1207
|
Tab stays inside it, Escape closes it (it asks first when a field holds typed text, and an open list inside it, such
|
|
1204
1208
|
as the target picker's, takes its own Escape), and focus goes back to what opened it - or, when a save repainted that (a
|
|
1205
|
-
chart's badge), to its replacement.
|
|
1209
|
+
chart's badge), to its replacement. Typed means the reader changed a field and it holds text that differs from what
|
|
1210
|
+
it held when the dialog opened: a field you fill (the picker started at the chart's pick, a form opened on a saved row)
|
|
1211
|
+
isn't typed, so `closeFromBackdrop` still closes it. Save through the form's `onSubmit` and clear the fields on
|
|
1212
|
+
success: the helper then takes what the fields hold as the new start, so a country chosen before the save no longer
|
|
1213
|
+
holds the backdrop.
|
|
1206
1214
|
|
|
1207
1215
|
`check_app` flags a placeholder name in a write, a time written from the browser's clock, an entity that takes any
|
|
1208
1216
|
name on create or lets any row be updated again, a name it stores that its policy doesn't check against the token, a write that resolves before its reload lands, and a dialog that
|