@bicharts/chart-mcp 0.6.125 → 0.6.127

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bicharts/chart-mcp",
3
- "version": "0.6.125",
3
+ "version": "0.6.127",
4
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",
@@ -51,8 +51,8 @@
51
51
  },
52
52
  "// 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.",
53
53
  "devDependencies": {
54
- "@bicharts/chart-host": "^0.6.125",
55
- "@bicharts/shape-core": "^0.6.125",
54
+ "@bicharts/chart-host": "^0.6.127",
55
+ "@bicharts/shape-core": "^0.6.127",
56
56
  "@modelcontextprotocol/sdk": "^1.32.1",
57
57
  "@types/node": "^26.6.5",
58
58
  "@types/papaparse": "^5.3.14",
@@ -1013,6 +1013,13 @@ everything it plots. A query that takes only part of a pick's key (`treatAs(cell
1013
1013
  stage cell) names that part: `scopedBy={{ filter: cell, takes: ["Region"] }}` says "Europe", never "Europe · 3-Propose",
1014
1014
  and a stage-only pick adds nothing to that chart's line.
1015
1015
 
1016
+ **A chart that rates every row shows the picked ones: give it every row and pass the picks as `viewedBy`.** A Churn risk
1017
+ list rates each customer against how long every customer has stayed. Narrow its query by a pick and it rates only what
1018
+ the pick left - one joining quarter's customers can't be rated at all, since none of them was watched longer than the
1019
+ others. So its query takes NONE of the page's picks, it carries each pick's key column (a quarter label column for a
1020
+ quarter pick), and the picks go in `viewedBy={[channel, quarter]}`: the chart rates against everyone and lists the picked
1021
+ customers, and its caption says both ("124 active customers in 2023 Q2 ...; each rated against all 3,600 customers").
1022
+
1016
1023
  **A panel a pick cannot reach says so on its card.** When a pick can't reach a panel or one of its encodings (its query
1017
1024
  takes only part of the pick's key, or none of it), or a figure's measure removes that pick's filter on purpose (a close
1018
1025
  rate kept across every stage beside open pipeline that follows the stage), that card says so in one line: "Close rate
@@ -1406,6 +1413,10 @@ name, list, apply, and which one is applied now - `applied`, the saved scenario
1406
1413
  save keeps what was typed), and, with Rayfin's functions on, the `addSavedScenario` function each save runs through, so
1407
1414
  the server stamps its time.
1408
1415
 
1416
+ A chart's own segmented row (Retention curves' "Compare by Channel | Plan | Region") is a control too:
1417
+ `controls.values.compare` is the reader's choice, from the first draw, and the page re-renders when the reader switches
1418
+ it - so a page that filters by what the chart compares reads it there, never from the chart's source.
1419
+
1409
1420
  **8. What stays the template's job - this is additive, never a replacement:** sign-in, the query hooks
1410
1421
  (`useSemanticModelQuery`; a page filter feeds it through `filterQuery`), the theme (`useCssTheme`, which
1411
1422
  `bic-chart-options.ts` builds on), the app's database (Rayfin's data service), `VisualContainer` headers, the template's