semiotic 3.7.4 → 3.8.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.
Files changed (517) hide show
  1. package/CLAUDE.md +60 -15
  2. package/README.md +135 -24
  3. package/agent-skill/semiotic-charts/SKILL.md +146 -0
  4. package/ai/cli.js +133 -45
  5. package/ai/componentMetadata.cjs +6 -1
  6. package/ai/dist/mcp-server.js +1651 -154
  7. package/ai/examples.md +174 -0
  8. package/ai/schema.json +2934 -517
  9. package/ai/surface-manifest.json +200 -0
  10. package/ai/system-prompt.md +19 -3
  11. package/dist/components/Annotation.d.ts +4 -0
  12. package/dist/components/CategoryColors.d.ts +1 -1
  13. package/dist/components/ChartContainer.d.ts +91 -0
  14. package/dist/components/ChartGrid.d.ts +11 -1
  15. package/dist/components/CircularBrush.d.ts +61 -0
  16. package/dist/components/ContextLayout.d.ts +5 -1
  17. package/dist/components/DataSummaryContext.d.ts +1 -0
  18. package/dist/components/DirectManipulationControl.d.ts +63 -0
  19. package/dist/components/LinkedCharts.d.ts +3 -1
  20. package/dist/components/MobileAnnotationCalloutList.d.ts +13 -0
  21. package/dist/components/MobileChartContainer.d.ts +51 -0
  22. package/dist/components/MobileStandardControls.d.ts +68 -0
  23. package/dist/components/SmallMultipleChart.d.ts +84 -0
  24. package/dist/components/Tooltip/FlippingTooltip.d.ts +21 -0
  25. package/dist/components/ai/ChartRecipe.d.ts +16 -0
  26. package/dist/components/ai/IntentMark.d.ts +15 -0
  27. package/dist/components/ai/chartCapabilities.d.ts +8 -1
  28. package/dist/components/ai/chartCapabilityTypes.d.ts +42 -1
  29. package/dist/components/ai/chartClinic.d.ts +91 -0
  30. package/dist/components/ai/chartRecipeRegistry.d.ts +14 -0
  31. package/dist/components/ai/chartRecipes.d.ts +278 -0
  32. package/dist/components/ai/dataPitfallsBridge.d.ts +203 -0
  33. package/dist/components/ai/dataQualityBridge.d.ts +201 -0
  34. package/dist/components/ai/describeChart.d.ts +9 -0
  35. package/dist/components/ai/describeRecipeChart.d.ts +16 -0
  36. package/dist/components/ai/generativeChart.d.ts +170 -0
  37. package/dist/components/ai/intentManifest.d.ts +62 -0
  38. package/dist/components/ai/navigationTree.d.ts +3 -0
  39. package/dist/components/ai/observedSceneAudit.d.ts +72 -0
  40. package/dist/components/ai/readerGrounding.d.ts +83 -0
  41. package/dist/components/ai/recipeCapability.d.ts +8 -0
  42. package/dist/components/ai/recipeNavigation.d.ts +13 -0
  43. package/dist/components/ai/recipeSemantics.d.ts +11 -0
  44. package/dist/components/ai/repairChartConfig.d.ts +9 -0
  45. package/dist/components/ai/suggestCharts.d.ts +11 -1
  46. package/dist/components/charts/custom/GeoCustomChart.d.ts +48 -0
  47. package/dist/components/charts/custom/NetworkCustomChart.d.ts +22 -3
  48. package/dist/components/charts/custom/OrdinalCustomChart.d.ts +8 -2
  49. package/dist/components/charts/custom/XYCustomChart.d.ts +11 -2
  50. package/dist/components/charts/geo/DistanceCartogram.d.ts +1 -1
  51. package/dist/components/charts/geo/FlowMap.d.ts +1 -1
  52. package/dist/components/charts/geo/ProportionalSymbolMap.d.ts +1 -1
  53. package/dist/components/charts/geo/index.d.ts +2 -0
  54. package/dist/components/charts/index.d.ts +29 -1
  55. package/dist/components/charts/network/ChordDiagram.d.ts +1 -1
  56. package/dist/components/charts/network/CirclePack.d.ts +1 -1
  57. package/dist/components/charts/network/ForceDirectedGraph.d.ts +15 -5
  58. package/dist/components/charts/network/OrbitDiagram.d.ts +1 -1
  59. package/dist/components/charts/network/ProcessSankey.d.ts +1 -1
  60. package/dist/components/charts/network/SankeyDiagram.d.ts +1 -1
  61. package/dist/components/charts/network/TreeDiagram.d.ts +1 -1
  62. package/dist/components/charts/network/Treemap.d.ts +1 -1
  63. package/dist/components/charts/network/useForceLayout.d.ts +17 -0
  64. package/dist/components/charts/ordinal/BarChart.d.ts +1 -1
  65. package/dist/components/charts/ordinal/BoxPlot.d.ts +1 -1
  66. package/dist/components/charts/ordinal/DonutChart.d.ts +1 -1
  67. package/dist/components/charts/ordinal/DotPlot.d.ts +1 -1
  68. package/dist/components/charts/ordinal/FunnelChart.d.ts +1 -1
  69. package/dist/components/charts/ordinal/GroupedBarChart.d.ts +1 -1
  70. package/dist/components/charts/ordinal/Histogram.d.ts +1 -1
  71. package/dist/components/charts/ordinal/PieChart.d.ts +1 -1
  72. package/dist/components/charts/ordinal/RidgelinePlot.d.ts +1 -1
  73. package/dist/components/charts/ordinal/StackedBarChart.d.ts +1 -1
  74. package/dist/components/charts/ordinal/SwarmPlot.d.ts +8 -1
  75. package/dist/components/charts/ordinal/SwimlaneChart.d.ts +1 -1
  76. package/dist/components/charts/ordinal/ViolinPlot.d.ts +1 -1
  77. package/dist/components/charts/physics/ChainReactionChart.d.ts +9 -0
  78. package/dist/components/charts/physics/CollisionSwarmChart.capability.d.ts +2 -0
  79. package/dist/components/charts/physics/CollisionSwarmChart.d.ts +47 -0
  80. package/dist/components/charts/physics/EventDropChart.capability.d.ts +2 -0
  81. package/dist/components/charts/physics/EventDropChart.d.ts +53 -0
  82. package/dist/components/charts/physics/GaltonBoardChart.capability.d.ts +2 -0
  83. package/dist/components/charts/physics/GaltonBoardChart.d.ts +66 -0
  84. package/dist/components/charts/physics/GauntletChart.capability.d.ts +2 -0
  85. package/dist/components/charts/physics/GauntletChart.d.ts +73 -0
  86. package/dist/components/charts/physics/PhysicalFlowChart.capability.d.ts +2 -0
  87. package/dist/components/charts/physics/PhysicalFlowChart.d.ts +63 -0
  88. package/dist/components/charts/physics/PhysicsCustomChart.d.ts +120 -0
  89. package/dist/components/charts/physics/PhysicsPileChart.capability.d.ts +2 -0
  90. package/dist/components/charts/physics/PhysicsPileChart.d.ts +53 -0
  91. package/dist/components/charts/physics/ProcessFlowChart.capability.d.ts +2 -0
  92. package/dist/components/charts/physics/ProcessFlowChart.d.ts +96 -0
  93. package/dist/components/charts/physics/chainReactionOverlay.d.ts +22 -0
  94. package/dist/components/charts/physics/chainReactionRuntime.d.ts +37 -0
  95. package/dist/components/charts/physics/chainReactionTypes.d.ts +97 -0
  96. package/dist/components/charts/physics/collisionSwarmPhysics.d.ts +27 -0
  97. package/dist/components/charts/physics/dependencyMachine.d.ts +188 -0
  98. package/dist/components/charts/physics/eventDropPhysics.d.ts +64 -0
  99. package/dist/components/charts/physics/galtonBoardPhysics.d.ts +28 -0
  100. package/dist/components/charts/physics/gauntletChartProps.d.ts +67 -0
  101. package/dist/components/charts/physics/gauntletChrome.d.ts +33 -0
  102. package/dist/components/charts/physics/gauntletController.d.ts +73 -0
  103. package/dist/components/charts/physics/gauntletEffects.d.ts +36 -0
  104. package/dist/components/charts/physics/gauntletPhysics.d.ts +71 -0
  105. package/dist/components/charts/physics/gauntletRuntime.d.ts +42 -0
  106. package/dist/components/charts/physics/gauntletTypes.d.ts +213 -0
  107. package/dist/components/charts/physics/physicalFlowPhysics.d.ts +57 -0
  108. package/dist/components/charts/physics/physicsChartShared.d.ts +41 -0
  109. package/dist/components/charts/physics/physicsChartUtils.d.ts +18 -0
  110. package/dist/components/charts/physics/physicsEncoding.d.ts +142 -0
  111. package/dist/components/charts/physics/physicsHocHandle.d.ts +53 -0
  112. package/dist/components/charts/physics/physicsHocUtils.d.ts +128 -0
  113. package/dist/components/charts/physics/physicsPilePhysics.d.ts +41 -0
  114. package/dist/components/charts/physics/physicsProcessPrimitives.d.ts +38 -0
  115. package/dist/components/charts/physics/processFlowPhysics.d.ts +97 -0
  116. package/dist/components/charts/realtime/RealtimeHeatmap.d.ts +9 -1
  117. package/dist/components/charts/realtime/RealtimeHistogram.d.ts +9 -1
  118. package/dist/components/charts/realtime/RealtimeLineChart.d.ts +30 -1
  119. package/dist/components/charts/realtime/RealtimeSwarmChart.d.ts +16 -2
  120. package/dist/components/charts/realtime/RealtimeWaterfallChart.d.ts +9 -1
  121. package/dist/components/charts/realtime/aggregate.d.ts +51 -0
  122. package/dist/components/charts/realtime/eventTime.d.ts +26 -0
  123. package/dist/components/charts/shared/auditMobileVisualization.d.ts +91 -0
  124. package/dist/components/charts/shared/chartDefinitionPilot.d.ts +145 -0
  125. package/dist/components/charts/shared/chartFamilySets.d.ts +20 -0
  126. package/dist/components/charts/shared/chartSpecCore.d.ts +165 -0
  127. package/dist/components/charts/shared/chartSpecs.d.ts +8 -127
  128. package/dist/components/charts/shared/chartSpecsGeo.d.ts +2 -0
  129. package/dist/components/charts/shared/chartSpecsNetwork.d.ts +2 -0
  130. package/dist/components/charts/shared/chartSpecsOrdinal.d.ts +2 -0
  131. package/dist/components/charts/shared/chartSpecsPhysics.d.ts +2 -0
  132. package/dist/components/charts/shared/chartSpecsRealtime.d.ts +2 -0
  133. package/dist/components/charts/shared/chartSpecsValue.d.ts +2 -0
  134. package/dist/components/charts/shared/chartSpecsXY.d.ts +2 -0
  135. package/dist/components/charts/shared/colorContrast.d.ts +3 -0
  136. package/dist/components/charts/shared/colorPalettes.d.ts +2 -0
  137. package/dist/components/charts/shared/colorUtils.d.ts +17 -13
  138. package/dist/components/charts/shared/diagnoseAnnotationChecks.d.ts +4 -0
  139. package/dist/components/charts/shared/diagnoseConfig.d.ts +9 -14
  140. package/dist/components/charts/shared/diagnoseMisleadingChecks.d.ts +9 -0
  141. package/dist/components/charts/shared/diagnosePhysicsChecks.d.ts +3 -0
  142. package/dist/components/charts/shared/diagnoseTypes.d.ts +10 -0
  143. package/dist/components/charts/shared/hooks.d.ts +28 -5
  144. package/dist/components/charts/shared/minMax.d.ts +3 -0
  145. package/dist/components/charts/shared/motionEncoding.d.ts +145 -0
  146. package/dist/components/charts/shared/radialGeometry.d.ts +0 -18
  147. package/dist/components/charts/shared/responsiveRules.d.ts +56 -0
  148. package/dist/components/charts/shared/smartTooltip.d.ts +27 -0
  149. package/dist/components/charts/shared/statisticalOverlays.d.ts +35 -0
  150. package/dist/components/charts/shared/streamPropsHelpers.d.ts +12 -2
  151. package/dist/components/charts/shared/temporalStrings.d.ts +7 -0
  152. package/dist/components/charts/shared/tooltipUtils.d.ts +2 -0
  153. package/dist/components/charts/shared/types.d.ts +49 -1
  154. package/dist/components/charts/shared/useChartSetup.d.ts +10 -3
  155. package/dist/components/charts/shared/useCustomChartSetup.d.ts +15 -6
  156. package/dist/components/charts/shared/useNetworkChartSetup.d.ts +6 -2
  157. package/dist/components/charts/shared/useOrdinalPieceStyle.d.ts +1 -1
  158. package/dist/components/charts/shared/useStreamingLegend.d.ts +1 -1
  159. package/dist/components/charts/shared/useSyncedPushData.d.ts +49 -0
  160. package/dist/components/charts/shared/validateChartData.d.ts +1 -1
  161. package/dist/components/charts/shared/validationMap.d.ts +0 -11
  162. package/dist/components/charts/xy/AreaChart.d.ts +1 -1
  163. package/dist/components/charts/xy/BubbleChart.d.ts +1 -1
  164. package/dist/components/charts/xy/LineChart.d.ts +1 -1
  165. package/dist/components/charts/xy/MinimapChart.d.ts +1 -1
  166. package/dist/components/charts/xy/MultiAxisLineChart.d.ts +2 -2
  167. package/dist/components/charts/xy/QuadrantChart.d.ts +1 -1
  168. package/dist/components/charts/xy/Scatterplot.d.ts +10 -1
  169. package/dist/components/charts/xy/ScatterplotMatrix.d.ts +11 -1
  170. package/dist/components/charts/xy/StackedAreaChart.d.ts +9 -4
  171. package/dist/components/controls/controlAudit.d.ts +24 -0
  172. package/dist/components/controls/controlContract.d.ts +57 -0
  173. package/dist/components/data/fromArrow.d.ts +54 -0
  174. package/dist/components/data/fromFlintChart.d.ts +74 -0
  175. package/dist/components/data/fromMermaid.d.ts +47 -0
  176. package/dist/components/data/fromObservablePlot.d.ts +69 -0
  177. package/dist/components/data/fromVegaLite.d.ts +27 -0
  178. package/dist/components/data/portability/index.d.ts +17 -0
  179. package/dist/components/data/portability/result.d.ts +52 -0
  180. package/dist/components/data/portability/spec.d.ts +160 -0
  181. package/dist/components/data/portability/vegaLite.d.ts +80 -0
  182. package/dist/components/export/chartConfig.d.ts +11 -0
  183. package/dist/components/realtime/ReorderBuffer.d.ts +54 -0
  184. package/dist/components/realtime/RunningStats.d.ts +66 -0
  185. package/dist/components/realtime/WindowAccumulator.d.ts +105 -0
  186. package/dist/components/realtime/parseWindowDuration.d.ts +12 -0
  187. package/dist/components/realtime/types.d.ts +11 -0
  188. package/dist/components/recipes/annotationLayout.d.ts +29 -0
  189. package/dist/components/recipes/axisFixedForce.d.ts +119 -0
  190. package/dist/components/recipes/boba.d.ts +23 -0
  191. package/dist/components/recipes/customTooltip.d.ts +31 -0
  192. package/dist/components/recipes/cyclical.d.ts +39 -0
  193. package/dist/components/recipes/edgeRouter.d.ts +103 -0
  194. package/dist/components/recipes/forceLayout.d.ts +48 -0
  195. package/dist/components/recipes/forceLayoutAsync.d.ts +17 -0
  196. package/dist/components/recipes/gofishBobaHandwritten.d.ts +3 -0
  197. package/dist/components/recipes/gofishDisplayListFixtures.generated.d.ts +37 -0
  198. package/dist/components/recipes/gofishIR.d.ts +215 -0
  199. package/dist/components/recipes/gofishIRExamples.d.ts +38 -0
  200. package/dist/components/recipes/intervalLanes.d.ts +87 -0
  201. package/dist/components/recipes/intervals.d.ts +80 -0
  202. package/dist/components/recipes/isometricLandmarks.d.ts +88 -0
  203. package/dist/components/recipes/isotypeGlyphs.d.ts +17 -0
  204. package/dist/components/recipes/mermaidDag.d.ts +44 -0
  205. package/dist/components/recipes/mobileAnnotationStrategy.d.ts +48 -0
  206. package/dist/components/recipes/mobileChartFamilyRecipes.d.ts +59 -0
  207. package/dist/components/recipes/networkAnalysis.d.ts +102 -0
  208. package/dist/components/recipes/networkLayouts.d.ts +83 -0
  209. package/dist/components/recipes/packedClusterMatrix.d.ts +166 -0
  210. package/dist/components/recipes/physics.d.ts +122 -0
  211. package/dist/components/recipes/physicsReference.d.ts +102 -0
  212. package/dist/components/recipes/processAggregates.d.ts +32 -0
  213. package/dist/components/recipes/processChrome.d.ts +67 -0
  214. package/dist/components/recipes/processJourney.d.ts +54 -0
  215. package/dist/components/recipes/processPhysics.d.ts +300 -0
  216. package/dist/components/recipes/processVolumeGeometry.d.ts +28 -0
  217. package/dist/components/recipes/radialCoords.d.ts +69 -0
  218. package/dist/components/recipes/random.d.ts +2 -0
  219. package/dist/components/recipes/recipeChrome.d.ts +191 -0
  220. package/dist/components/recipes/recipeGlyph.d.ts +42 -0
  221. package/dist/components/recipes/recipeLegend.d.ts +109 -0
  222. package/dist/components/recipes/recipeUtils.d.ts +157 -0
  223. package/dist/components/recipes/runs.d.ts +59 -0
  224. package/dist/components/recipes/tokenEncoding.d.ts +157 -0
  225. package/dist/components/recipes/tokenLayer.d.ts +79 -0
  226. package/dist/components/recipes/unitize.d.ts +108 -0
  227. package/dist/components/recipes/vector.d.ts +28 -0
  228. package/dist/components/recipes/waffle.d.ts +43 -0
  229. package/dist/components/semiotic-ai-core.d.ts +47 -0
  230. package/dist/components/semiotic-ai.d.ts +52 -4
  231. package/dist/components/semiotic-controls.d.ts +18 -0
  232. package/dist/components/semiotic-data.d.ts +2 -0
  233. package/dist/components/semiotic-experimental.d.ts +49 -0
  234. package/dist/components/semiotic-geo.d.ts +11 -0
  235. package/dist/components/semiotic-network.d.ts +14 -1
  236. package/dist/components/semiotic-ordinal.d.ts +10 -0
  237. package/dist/components/semiotic-physics-matter.d.ts +10 -0
  238. package/dist/components/semiotic-physics-rapier.d.ts +9 -0
  239. package/dist/components/semiotic-physics.d.ts +56 -0
  240. package/dist/components/semiotic-realtime-core.d.ts +34 -0
  241. package/dist/components/semiotic-realtime-react.d.ts +10 -0
  242. package/dist/components/semiotic-realtime.d.ts +4 -22
  243. package/dist/components/semiotic-recipes-core.d.ts +92 -0
  244. package/dist/components/semiotic-recipes-react.d.ts +7 -0
  245. package/dist/components/semiotic-recipes.d.ts +4 -26
  246. package/dist/components/semiotic-server-edge.d.ts +8 -0
  247. package/dist/components/semiotic-server-node.d.ts +5 -0
  248. package/dist/components/semiotic-server.d.ts +2 -2
  249. package/dist/components/semiotic-themes-core.d.ts +53 -0
  250. package/dist/components/semiotic-themes-react.d.ts +4 -0
  251. package/dist/components/semiotic-themes.d.ts +6 -74
  252. package/dist/components/semiotic-utils-core.d.ts +46 -0
  253. package/dist/components/semiotic-utils-react.d.ts +5 -0
  254. package/dist/components/semiotic-utils.d.ts +3 -39
  255. package/dist/components/semiotic-xy.d.ts +10 -0
  256. package/dist/components/semiotic.d.ts +39 -7
  257. package/dist/components/server/animatedGif.d.ts +36 -0
  258. package/dist/components/server/renderEvidence.d.ts +1 -1
  259. package/dist/components/server/renderToStaticSVG.d.ts +3 -35
  260. package/dist/components/server/serverChartConfigShared.d.ts +17 -0
  261. package/dist/components/server/serverChartConfigs.d.ts +19 -9
  262. package/dist/components/server/serverChartConfigsCustom.d.ts +5 -0
  263. package/dist/components/server/serverChartConfigsGeo.d.ts +9 -0
  264. package/dist/components/server/serverChartConfigsNetwork.d.ts +8 -0
  265. package/dist/components/server/serverChartConfigsOrdinal.d.ts +16 -0
  266. package/dist/components/server/serverChartConfigsPhysics.d.ts +9 -0
  267. package/dist/components/server/serverChartConfigsXY.d.ts +11 -0
  268. package/dist/components/server/staticGeo.d.ts +4 -0
  269. package/dist/components/server/staticLegend.d.ts +1 -1
  270. package/dist/components/server/staticNetwork.d.ts +8 -0
  271. package/dist/components/server/staticOrdinal.d.ts +11 -0
  272. package/dist/components/server/staticPhysics.d.ts +3 -0
  273. package/dist/components/server/staticSVGChrome.d.ts +110 -0
  274. package/dist/components/server/staticXY.d.ts +4 -0
  275. package/dist/components/store/ObservationStore.d.ts +23 -3
  276. package/dist/components/store/SelectionStore.d.ts +1 -1
  277. package/dist/components/store/ThemeStore.d.ts +1 -1
  278. package/dist/components/store/TooltipStore.d.ts +1 -1
  279. package/dist/components/store/createStore.d.ts +1 -1
  280. package/dist/components/store/designTokens.d.ts +15 -0
  281. package/dist/components/store/themeSerialization.d.ts +32 -0
  282. package/dist/components/store/useChartInterrogation.d.ts +9 -0
  283. package/dist/components/stream/AccessibleDataTable.d.ts +3 -13
  284. package/dist/components/stream/FocusRing.d.ts +4 -2
  285. package/dist/components/stream/GeoCanvasHitTester.d.ts +1 -1
  286. package/dist/components/stream/GeoPipelineStore.d.ts +28 -0
  287. package/dist/components/stream/NetworkHtmlMarksLayer.d.ts +44 -0
  288. package/dist/components/stream/NetworkPipelineStore.d.ts +62 -25
  289. package/dist/components/stream/NetworkSVGOverlay.d.ts +15 -0
  290. package/dist/components/stream/OrdinalPipelineStore.d.ts +64 -2
  291. package/dist/components/stream/PipelineStore.d.ts +100 -162
  292. package/dist/components/stream/SceneGraph.d.ts +14 -2
  293. package/dist/components/stream/StreamGeoFrame.d.ts +1 -1
  294. package/dist/components/stream/StreamNetworkFrame.d.ts +1 -1
  295. package/dist/components/stream/StreamOrdinalFrame.d.ts +1 -1
  296. package/dist/components/stream/StreamXYFrame.d.ts +2 -18
  297. package/dist/components/stream/accessibleDataRows.d.ts +33 -0
  298. package/dist/components/stream/accessorUtils.d.ts +23 -10
  299. package/dist/components/stream/brushAccessibility.d.ts +25 -0
  300. package/dist/components/stream/canvasBackground.d.ts +24 -0
  301. package/dist/components/stream/canvasSetup.d.ts +4 -1
  302. package/dist/components/stream/customLayout.d.ts +20 -0
  303. package/dist/components/stream/customLayoutDiagnostics.d.ts +11 -0
  304. package/dist/components/stream/customLayoutFailure.d.ts +33 -0
  305. package/dist/components/stream/customLayoutPalette.d.ts +19 -9
  306. package/dist/components/stream/customLayoutSelection.d.ts +52 -0
  307. package/dist/components/stream/frameThemeColors.d.ts +24 -0
  308. package/dist/components/stream/geoAnnotationAnchors.d.ts +14 -0
  309. package/dist/components/stream/geoCartogram.d.ts +17 -0
  310. package/dist/components/stream/geoCustomLayout.d.ts +59 -0
  311. package/dist/components/stream/geoDefaultTooltip.d.ts +11 -0
  312. package/dist/components/stream/geoFrameHelpers.d.ts +34 -0
  313. package/dist/components/stream/geoPipelineHelpers.d.ts +46 -0
  314. package/dist/components/stream/geoTypes.d.ts +56 -7
  315. package/dist/components/stream/glyphDef.d.ts +98 -0
  316. package/dist/components/stream/hitTarget.d.ts +170 -0
  317. package/dist/components/stream/hoverUtils.d.ts +3 -0
  318. package/dist/components/stream/keyboardNav.d.ts +4 -1
  319. package/dist/components/stream/layouts/forceLayoutPlugin.d.ts +9 -1
  320. package/dist/components/stream/layouts/forceLayoutWorkerClient.d.ts +57 -0
  321. package/dist/components/stream/networkBezier.d.ts +10 -0
  322. package/dist/components/stream/networkColorAccessors.d.ts +49 -0
  323. package/dist/components/stream/networkCustomLayout.d.ts +66 -1
  324. package/dist/components/stream/networkDefaultTooltip.d.ts +10 -0
  325. package/dist/components/stream/networkFrameInteraction.d.ts +37 -0
  326. package/dist/components/stream/networkFramePaint.d.ts +43 -0
  327. package/dist/components/stream/networkPipelineConfig.d.ts +22 -0
  328. package/dist/components/stream/networkPipelineHelpers.d.ts +12 -0
  329. package/dist/components/stream/networkRealtimeEncoding.d.ts +41 -0
  330. package/dist/components/stream/networkTypes.d.ts +104 -5
  331. package/dist/components/stream/ordinalCanvasRenderers.d.ts +7 -0
  332. package/dist/components/stream/ordinalCustomLayout.d.ts +17 -1
  333. package/dist/components/stream/ordinalDataIndex.d.ts +5 -0
  334. package/dist/components/stream/ordinalDefaultTooltip.d.ts +10 -0
  335. package/dist/components/stream/ordinalDomain.d.ts +38 -0
  336. package/dist/components/stream/ordinalPipelineUpdateResults.d.ts +12 -0
  337. package/dist/components/stream/ordinalPulse.d.ts +10 -0
  338. package/dist/components/stream/ordinalPulseResources.d.ts +3 -0
  339. package/dist/components/stream/ordinalSceneBuilders/sceneBuilderMap.d.ts +5 -0
  340. package/dist/components/stream/ordinalSceneBuilders/types.d.ts +2 -0
  341. package/dist/components/stream/ordinalSpatialIndex.d.ts +9 -0
  342. package/dist/components/stream/ordinalTypes.d.ts +56 -8
  343. package/dist/components/stream/paintNeeds.d.ts +31 -0
  344. package/dist/components/stream/physics/CapacityQueueController.d.ts +5 -0
  345. package/dist/components/stream/physics/CapacityQueueTypes.d.ts +134 -0
  346. package/dist/components/stream/physics/MatterPhysicsEngineAdapter.d.ts +42 -0
  347. package/dist/components/stream/physics/PhysicsAccessibility.d.ts +48 -0
  348. package/dist/components/stream/physics/PhysicsAnnotations.d.ts +58 -0
  349. package/dist/components/stream/physics/PhysicsBodyBudget.d.ts +26 -0
  350. package/dist/components/stream/physics/PhysicsBodySpatialIndex.d.ts +10 -0
  351. package/dist/components/stream/physics/PhysicsCanvasTheme.d.ts +26 -0
  352. package/dist/components/stream/physics/PhysicsControllers.d.ts +75 -0
  353. package/dist/components/stream/physics/PhysicsEngineAdapter.d.ts +59 -0
  354. package/dist/components/stream/physics/PhysicsEngineConformance.d.ts +23 -0
  355. package/dist/components/stream/physics/PhysicsEvidence.d.ts +25 -0
  356. package/dist/components/stream/physics/PhysicsKernel.d.ts +207 -0
  357. package/dist/components/stream/physics/PhysicsOptionalEngineAdapters.d.ts +12 -0
  358. package/dist/components/stream/physics/PhysicsPipelineStore.d.ts +84 -0
  359. package/dist/components/stream/physics/PhysicsPipelineTypes.d.ts +181 -0
  360. package/dist/components/stream/physics/PhysicsSVGOverlay.d.ts +72 -0
  361. package/dist/components/stream/physics/PhysicsSediment.d.ts +69 -0
  362. package/dist/components/stream/physics/PhysicsSettledSVG.d.ts +18 -0
  363. package/dist/components/stream/physics/PhysicsSettledScene.d.ts +21 -0
  364. package/dist/components/stream/physics/PhysicsWorkerClient.d.ts +24 -0
  365. package/dist/components/stream/physics/PhysicsWorkerProtocol.d.ts +101 -0
  366. package/dist/components/stream/physics/PhysicsWorkerRuntime.d.ts +5 -0
  367. package/dist/components/stream/physics/RapierPhysicsEngineAdapter.d.ts +18 -0
  368. package/dist/components/stream/physics/ServiceOperationsControllers.d.ts +27 -0
  369. package/dist/components/stream/physics/ServiceOperationsTypes.d.ts +89 -0
  370. package/dist/components/stream/physics/StreamPhysicsFrame.d.ts +6 -0
  371. package/dist/components/stream/physics/StreamPhysicsTypes.d.ts +302 -0
  372. package/dist/components/stream/physics/physicsBodyCanvas.d.ts +27 -0
  373. package/dist/components/stream/physics/physicsPipelineControls.d.ts +4 -0
  374. package/dist/components/stream/physics/physicsPipelineHelpers.d.ts +41 -0
  375. package/dist/components/stream/physics/physicsPipelineObservations.d.ts +14 -0
  376. package/dist/components/stream/physics/physicsPipelineUpdateResults.d.ts +9 -0
  377. package/dist/components/stream/physics/physicsRegionRuntime.d.ts +54 -0
  378. package/dist/components/stream/physics/physicsSemanticUI.d.ts +20 -0
  379. package/dist/components/stream/physics/usePhysicsFrameLifecyclePolicy.d.ts +16 -0
  380. package/dist/components/stream/pipelineBufferUtils.d.ts +26 -0
  381. package/dist/components/stream/pipelineConfig.d.ts +177 -0
  382. package/dist/components/stream/pipelineDecay.d.ts +20 -2
  383. package/dist/components/stream/pipelineDomainResolution.d.ts +62 -0
  384. package/dist/components/stream/pipelineIdentityOps.d.ts +26 -0
  385. package/dist/components/stream/pipelinePulse.d.ts +16 -2
  386. package/dist/components/stream/pipelineRibbons.d.ts +41 -0
  387. package/dist/components/stream/pipelineSpatialIndex.d.ts +12 -0
  388. package/dist/components/stream/pipelineStoreUpdateResults.d.ts +12 -0
  389. package/dist/components/stream/pipelineStyleResolvers.d.ts +46 -0
  390. package/dist/components/stream/pipelineTransitions.d.ts +2 -0
  391. package/dist/components/stream/pipelineUpdateContract.d.ts +62 -0
  392. package/dist/components/stream/pulseFrameRefresh.d.ts +22 -0
  393. package/dist/components/stream/renderers/glyphCanvasRenderer.d.ts +6 -0
  394. package/dist/components/stream/renderers/networkSymbolRenderer.d.ts +2 -0
  395. package/dist/components/stream/renderers/resolveCSSColor.d.ts +6 -0
  396. package/dist/components/stream/renderers/symbolCanvasRenderer.d.ts +2 -0
  397. package/dist/components/stream/sceneRevisionDiagnostics.d.ts +18 -0
  398. package/dist/components/stream/stalenessBands.d.ts +28 -0
  399. package/dist/components/stream/streamStoreSync.d.ts +37 -0
  400. package/dist/components/stream/symbolPath.d.ts +24 -0
  401. package/dist/components/stream/types.d.ts +206 -9
  402. package/dist/components/stream/useFrame.d.ts +21 -2
  403. package/dist/components/stream/useHydration.d.ts +6 -0
  404. package/dist/components/stream/useLegendCategoryEmission.d.ts +5 -0
  405. package/dist/components/stream/useStalenessCheck.d.ts +6 -1
  406. package/dist/components/stream/workerModuleUrl.d.ts +10 -0
  407. package/dist/components/stream/xyAnnotationAnchors.d.ts +13 -0
  408. package/dist/components/stream/xyCanvasRenderers.d.ts +7 -0
  409. package/dist/components/stream/xyCrosshair.d.ts +11 -0
  410. package/dist/components/stream/xyDateTicks.d.ts +9 -0
  411. package/dist/components/stream/xyDefaultTooltip.d.ts +10 -0
  412. package/dist/components/stream/xySceneBuilders/pointScene.d.ts +2 -2
  413. package/dist/components/stream/xySceneBuilders/types.d.ts +9 -4
  414. package/dist/controls.min.js +2 -0
  415. package/dist/controls.module.min.js +2 -0
  416. package/dist/forceLayoutWorker.js +1 -0
  417. package/dist/geo.min.js +1 -1
  418. package/dist/geo.module.min.js +1 -1
  419. package/dist/network.min.js +1 -1
  420. package/dist/network.module.min.js +1 -1
  421. package/dist/ordinal.min.js +1 -1
  422. package/dist/ordinal.module.min.js +1 -1
  423. package/dist/physics-matter.min.js +1 -0
  424. package/dist/physics-matter.module.min.js +1 -0
  425. package/dist/physics-rapier.min.js +1 -0
  426. package/dist/physics-rapier.module.min.js +1 -0
  427. package/dist/physics.min.js +2 -0
  428. package/dist/physics.module.min.js +2 -0
  429. package/dist/physicsWorker.js +1 -0
  430. package/dist/realtime.min.js +1 -1
  431. package/dist/realtime.module.min.js +1 -1
  432. package/dist/semiotic-ai-chunk-OG7BQUUW.module.min.js +2 -0
  433. package/dist/semiotic-ai-core.d.ts +47 -0
  434. package/dist/semiotic-ai-core.min.js +1 -0
  435. package/dist/semiotic-ai-core.module.min.js +1 -0
  436. package/dist/semiotic-ai-statisticalOverlays-CY4WKR4A.module.min.js +2 -0
  437. package/dist/semiotic-ai.d.ts +52 -4
  438. package/dist/semiotic-ai.min.js +1 -1
  439. package/dist/semiotic-ai.module.min.js +1 -1
  440. package/dist/semiotic-chunk-3FSVZ46U.module.min.js +2 -0
  441. package/dist/semiotic-controls.d.ts +18 -0
  442. package/dist/semiotic-data.d.ts +2 -0
  443. package/dist/semiotic-data.min.js +1 -1
  444. package/dist/semiotic-data.module.min.js +1 -1
  445. package/dist/semiotic-experimental.d.ts +49 -0
  446. package/dist/semiotic-experimental.min.js +1 -0
  447. package/dist/semiotic-experimental.module.min.js +1 -0
  448. package/dist/semiotic-geo.d.ts +11 -0
  449. package/dist/semiotic-network.d.ts +14 -1
  450. package/dist/semiotic-ordinal.d.ts +10 -0
  451. package/dist/semiotic-physics-matter.d.ts +10 -0
  452. package/dist/semiotic-physics-rapier.d.ts +9 -0
  453. package/dist/semiotic-physics.d.ts +56 -0
  454. package/dist/semiotic-realtime-core.d.ts +34 -0
  455. package/dist/semiotic-realtime-core.min.js +1 -0
  456. package/dist/semiotic-realtime-core.module.min.js +1 -0
  457. package/dist/semiotic-realtime-react.d.ts +10 -0
  458. package/dist/semiotic-realtime-react.min.js +2 -0
  459. package/dist/semiotic-realtime-react.module.min.js +2 -0
  460. package/dist/semiotic-realtime.d.ts +4 -22
  461. package/dist/semiotic-recipes-core.d.ts +92 -0
  462. package/dist/semiotic-recipes-core.min.js +1 -0
  463. package/dist/semiotic-recipes-core.module.min.js +1 -0
  464. package/dist/semiotic-recipes-react.d.ts +7 -0
  465. package/dist/semiotic-recipes-react.min.js +2 -0
  466. package/dist/semiotic-recipes-react.module.min.js +2 -0
  467. package/dist/semiotic-recipes.d.ts +4 -26
  468. package/dist/semiotic-recipes.min.js +1 -1
  469. package/dist/semiotic-recipes.module.min.js +1 -1
  470. package/dist/semiotic-server-edge.d.ts +8 -0
  471. package/dist/semiotic-server-edge.min.js +1 -0
  472. package/dist/semiotic-server-edge.module.min.js +1 -0
  473. package/dist/semiotic-server-node.d.ts +5 -0
  474. package/dist/semiotic-server-node.min.js +1 -0
  475. package/dist/semiotic-server-node.module.min.js +1 -0
  476. package/dist/semiotic-server.d.ts +2 -2
  477. package/dist/semiotic-statisticalOverlays-UOMSFKVJ.module.min.js +2 -0
  478. package/dist/semiotic-themes-core.d.ts +53 -0
  479. package/dist/semiotic-themes-core.min.js +1 -0
  480. package/dist/semiotic-themes-core.module.min.js +1 -0
  481. package/dist/semiotic-themes-react.d.ts +4 -0
  482. package/dist/semiotic-themes-react.min.js +2 -0
  483. package/dist/semiotic-themes-react.module.min.js +2 -0
  484. package/dist/semiotic-themes.d.ts +6 -74
  485. package/dist/semiotic-themes.min.js +1 -2
  486. package/dist/semiotic-themes.module.min.js +1 -2
  487. package/dist/semiotic-utils-core.d.ts +46 -0
  488. package/dist/semiotic-utils-core.min.js +1 -0
  489. package/dist/semiotic-utils-core.module.min.js +1 -0
  490. package/dist/semiotic-utils-react.d.ts +5 -0
  491. package/dist/semiotic-utils-react.min.js +2 -0
  492. package/dist/semiotic-utils-react.module.min.js +2 -0
  493. package/dist/semiotic-utils.d.ts +3 -39
  494. package/dist/semiotic-utils.min.js +1 -2
  495. package/dist/semiotic-utils.module.min.js +1 -2
  496. package/dist/semiotic-value.min.js +1 -1
  497. package/dist/semiotic-value.module.min.js +1 -1
  498. package/dist/semiotic-xy.d.ts +10 -0
  499. package/dist/semiotic.d.ts +39 -7
  500. package/dist/semiotic.min.js +1 -1
  501. package/dist/semiotic.module.min.js +1 -1
  502. package/dist/server.min.js +1 -1
  503. package/dist/server.module.min.js +1 -1
  504. package/dist/xy-chunk-IWD6IB6V.module.min.js +2 -0
  505. package/dist/xy-statisticalOverlays-7RWG6LJT.module.min.js +2 -0
  506. package/dist/xy.min.js +1 -1
  507. package/dist/xy.module.min.js +1 -1
  508. package/package.json +246 -86
  509. package/spec/README.md +152 -0
  510. package/spec/bindings/README.md +35 -0
  511. package/spec/bindings/vega-lite.mjs +112 -0
  512. package/spec/v0.1/annotation-provenance.schema.json +127 -0
  513. package/spec/v0.1/audience-profile.schema.json +67 -0
  514. package/spec/v0.1/chart-capability.schema.json +186 -0
  515. package/dist/semiotic-ai-statisticalOverlays-C2PPlmXv.js +0 -1
  516. package/dist/semiotic-statisticalOverlays-C3DsOgr_.js +0 -1
  517. package/dist/xy-statisticalOverlays-C2PPlmXv.js +0 -1
@@ -2,6 +2,7 @@ import type { Datum } from "../charts/shared/datumTypes";
2
2
  import type { ChartCapability, ChartFamily } from "./chartCapabilityTypes";
3
3
  import type { IntentId } from "./intents";
4
4
  import type { AudienceProfile } from "./audienceProfile";
5
+ import type { ChartRecipe } from "./chartRecipes";
5
6
  /**
6
7
  * describeChart — generate a layered natural-language description of a chart
7
8
  * from its `(component, props)` config, following Lundgard & Satyanarayan's
@@ -66,6 +67,8 @@ export interface DescribeChartResult {
66
67
  * an AI- or watcher-authored note is qualified as such.
67
68
  */
68
69
  annotations?: string;
70
+ /** Optional recipe risks/misuse guidance, included only when requested. */
71
+ caveats?: string[];
69
72
  }
70
73
  export interface DescribeChartOptions {
71
74
  /**
@@ -90,6 +93,10 @@ export interface DescribeChartOptions {
90
93
  * an unfamiliar reader leans on the description.
91
94
  */
92
95
  audience?: AudienceProfile;
96
+ /** Explicit recipe; otherwise `props.recipe`, `props.recipeId`, then registry are checked. */
97
+ recipe?: ChartRecipe;
98
+ /** Include declared recipe risks/caveats in the structured result. */
99
+ includeCaveats?: boolean;
93
100
  }
94
101
  /** The communicative act a built-in intent implies, or undefined if unknown. */
95
102
  export declare function communicativeActForIntent(intent: IntentId): CommunicativeAct | undefined;
@@ -99,6 +106,8 @@ export declare function communicativeActForIntent(intent: IntentId): Communicati
99
106
  * family classification. Returns undefined only when nothing identifies it.
100
107
  */
101
108
  export declare function resolveCommunicativeAct(component: string, context: ChartCapability | DescribeCapabilityContext | undefined): CommunicativeAct | undefined;
109
+ /** True when props carry a provenanced, system/agent-generated alert annotation. */
110
+ export declare function hasGeneratedAlertAnnotation(props: Datum): boolean;
102
111
  /** Build a number formatter — compact (6.5M) for large magnitudes, plain
103
112
  * otherwise. Exported so the navigation tree formats values identically. */
104
113
  export declare function chartValueFormatter(locale?: string): (n: number) => string;
@@ -0,0 +1,16 @@
1
+ import type { Datum } from "../charts/shared/datumTypes";
2
+ import type { AudienceProfile } from "./audienceProfile";
3
+ import type { ChartRecipe } from "./chartRecipes";
4
+ import type { DescribeChartResult, DescribeLevel } from "./describeChart";
5
+ export interface DescribeRecipeChartOptions {
6
+ levels?: DescribeLevel[];
7
+ locale?: string;
8
+ audience?: AudienceProfile;
9
+ includeCaveats?: boolean;
10
+ }
11
+ /**
12
+ * Generate a recipe-specific layered description. A registered implementation
13
+ * may supply bespoke prose; otherwise declared roles/encodings/intents produce
14
+ * an honest portable fallback.
15
+ */
16
+ export declare function describeRecipeChart(recipe: ChartRecipe, props: Datum, options?: DescribeRecipeChartOptions): DescribeChartResult;
@@ -0,0 +1,170 @@
1
+ /**
2
+ * Generative-UI trust layer.
3
+ *
4
+ * "Generation is cheap; trust is scarce." An LLM can emit chart code in a
5
+ * sentence — but hand-written JSX breaks on first paint, and a plausible-looking
6
+ * chart for the wrong data misleads exactly the reader who can't tell. This
7
+ * module is the trust layer an AI framework wraps around chart generation: it
8
+ * turns an LLM's *proposal* (a component name + props) into a result that is
9
+ * either validated and diagnosed (and, when a renderer is injected, proven to
10
+ * paint) or accompanied by structured reasons and ranked alternatives to retry
11
+ * with — never an unchecked chart.
12
+ *
13
+ * It composes the already-shipped surface into the documented loop —
14
+ * **generate → validate → diagnose → repair → render+prove** — and rides
15
+ * `ChartConfig`, the gate-defended public artifact. It is framework-agnostic by
16
+ * construction: no Vercel/LangChain/OpenAI/Anthropic SDK enters the library
17
+ * (the tool-definition shapers below are pure object transforms over JSON
18
+ * Schema). The one heavy step — rendering to SVG with render evidence — is
19
+ * *dependency-injected* (`RenderFn`), so this module stays free of server deps
20
+ * and usable in a browser, an edge runtime, or a notebook.
21
+ */
22
+ import type { Datum } from "../charts/shared/datumTypes";
23
+ import type { ChartConfig } from "../export/chartConfig";
24
+ import type { ValidationResult } from "../charts/shared/validateProps";
25
+ import type { Diagnosis } from "../charts/shared/diagnoseConfig";
26
+ import type { RepairResult } from "./repairChartConfig";
27
+ import type { IntentId } from "./intents";
28
+ import type { RenderEvidence } from "../server/renderEvidence";
29
+ /**
30
+ * A renderer that turns a validated config into SVG + render evidence. Inject
31
+ * `renderChartWithEvidence` from `semiotic/server` in Node/SSR; omit it in the
32
+ * browser (the helper still validates, diagnoses, repairs, and emits JSX).
33
+ */
34
+ export type RenderFn = (component: string, props: Datum) => {
35
+ svg: string;
36
+ evidence: RenderEvidence;
37
+ };
38
+ export interface PrepareChartInput {
39
+ /** Chart component name the model proposed (e.g. "LineChart"). */
40
+ component: string;
41
+ /** Props the model proposed. */
42
+ props?: Datum;
43
+ }
44
+ export interface PrepareChartOptions {
45
+ /**
46
+ * The dataset, used to route a repair when the proposed chart is unknown or a
47
+ * poor fit. When present, `repair` runs by default.
48
+ */
49
+ data?: ReadonlyArray<Datum>;
50
+ /** Ranking intent passed to repair's alternative search. */
51
+ intent?: IntentId | IntentId[];
52
+ /** Run `diagnoseConfig` anti-pattern checks (default true). */
53
+ diagnose?: boolean;
54
+ /**
55
+ * Run repair routing (fit check + ranked alternatives). Default: true when
56
+ * `data` is provided, false otherwise (repair needs the data to profile).
57
+ */
58
+ repair?: boolean;
59
+ /**
60
+ * Inject a renderer to prove the config paints (and to read render evidence —
61
+ * the first-try oracle). When omitted, the result has no `svg`/`evidence`,
62
+ * and `ok` is decided on validation + diagnostics alone.
63
+ */
64
+ render?: RenderFn;
65
+ /**
66
+ * Treat error-severity diagnostics as blocking `ok` (default true). Set false
67
+ * to let a caller surface warnings without failing the gate.
68
+ */
69
+ treatErrorsAsBlocking?: boolean;
70
+ }
71
+ export interface PrepareChartResult {
72
+ /**
73
+ * True only when the proposal is trustworthy: it validates, carries no
74
+ * error-severity diagnostics, and — if a renderer was injected — produced a
75
+ * non-empty scene. A `false` result is the signal to retry with `reasons` and
76
+ * `repair.alternatives`, never to paint.
77
+ */
78
+ ok: boolean;
79
+ component: string;
80
+ props: Datum;
81
+ /** The serializable, validated config — present whenever the component is known. */
82
+ config?: ChartConfig;
83
+ /** JSX string for the validated config (only when a config could be built). */
84
+ jsx?: string;
85
+ /** Structural validation: required props, types, enums, accessor/data shape. */
86
+ validation: ValidationResult;
87
+ /** Anti-pattern diagnostics (empty data, misleading design, contrast, …). */
88
+ diagnostics: Diagnosis[];
89
+ /** Fit verdict + ranked alternatives, when repair ran. */
90
+ repair?: RepairResult;
91
+ /** Render evidence (mark count, domains, ariaLabel, …) when a renderer ran. */
92
+ evidence?: RenderEvidence;
93
+ /** Rendered SVG when a renderer ran. */
94
+ svg?: string;
95
+ /** Human-readable reasons the proposal is not `ok` (empty when `ok`). */
96
+ reasons: string[];
97
+ }
98
+ /**
99
+ * Run an LLM chart proposal through the trust loop. Pure except for any side
100
+ * effects of an injected `render` function.
101
+ */
102
+ export declare function prepareChart(input: PrepareChartInput, options?: PrepareChartOptions): PrepareChartResult;
103
+ /**
104
+ * A tool definition expressed as JSON Schema — the common denominator every
105
+ * agent framework accepts. Mirrors the MCP `renderChart` contract so an
106
+ * in-process tool and the MCP server speak the same shape.
107
+ */
108
+ export interface ChartToolDefinition {
109
+ name: string;
110
+ description: string;
111
+ /** JSON Schema for the tool input. */
112
+ inputSchema: Record<string, unknown>;
113
+ }
114
+ export interface ChartToolOptions {
115
+ /** Override the tool name (default "render_semiotic_chart"). */
116
+ name?: string;
117
+ /** Restrict the component enum to this allow-list (default: the whole registry). */
118
+ components?: ReadonlyArray<string>;
119
+ }
120
+ /**
121
+ * Build a framework-agnostic tool definition for generating a Semiotic chart.
122
+ * Pass it (or a shaper's output) to your agent framework, and pair it with
123
+ * {@link createChartToolHandler} for the execute step.
124
+ */
125
+ export declare function chartGenerationTool(options?: ChartToolOptions): ChartToolDefinition;
126
+ /** Shape a tool definition for the Anthropic Messages API `tools` array. */
127
+ export declare function toAnthropicTool(def: ChartToolDefinition): {
128
+ name: string;
129
+ description: string;
130
+ input_schema: Record<string, unknown>;
131
+ };
132
+ /** Shape a tool definition for the OpenAI Chat Completions `tools` array. */
133
+ export declare function toOpenAITool(def: ChartToolDefinition): {
134
+ type: "function";
135
+ function: {
136
+ name: string;
137
+ description: string;
138
+ parameters: Record<string, unknown>;
139
+ };
140
+ };
141
+ /** A flat function-tool shape for the OpenAI Responses API. */
142
+ export interface OpenAIResponsesTool {
143
+ type: "function";
144
+ name: string;
145
+ description: string;
146
+ parameters: Record<string, unknown>;
147
+ strict: boolean;
148
+ }
149
+ export interface OpenAIResponsesToolOptions {
150
+ /**
151
+ * Enable OpenAI strict mode. The definition must use closed objects and
152
+ * declare every property as required (nullable properties are supported).
153
+ * The generic chart tool intentionally leaves `props` open, so use a
154
+ * component-specific definition before setting this to true.
155
+ */
156
+ strict?: boolean;
157
+ }
158
+ /**
159
+ * Shape a tool definition for the OpenAI Responses API `tools` array.
160
+ *
161
+ * This is deliberately separate from {@link toOpenAITool}: Chat Completions
162
+ * nests the function under `function`, whereas Responses uses a flat object.
163
+ */
164
+ export declare function toOpenAIResponsesTool(def: ChartToolDefinition, options?: OpenAIResponsesToolOptions): OpenAIResponsesTool;
165
+ /**
166
+ * Build the execute handler for the chart tool: it runs {@link prepareChart} on
167
+ * the tool input and returns the trust-loop result. Inject a `render` fn (from
168
+ * `semiotic/server`) and/or the `data` for fit checking via `optionsFor`.
169
+ */
170
+ export declare function createChartToolHandler(optionsFor?: (input: PrepareChartInput) => PrepareChartOptions): (input: PrepareChartInput) => PrepareChartResult;
@@ -0,0 +1,62 @@
1
+ import type { ChartRecipe } from "./chartRecipes";
2
+ export interface IntentManifest {
3
+ ididVersion: string;
4
+ chartId: string;
5
+ title?: string;
6
+ author?: string;
7
+ createdAt?: string;
8
+ intent: {
9
+ primary: string;
10
+ secondary?: string[];
11
+ communicativeAct?: string;
12
+ };
13
+ audience?: {
14
+ primary?: string;
15
+ familiarityAssumptions?: Record<string, string>;
16
+ literacyTargets?: {
17
+ feature: string;
18
+ rationale: string;
19
+ }[];
20
+ };
21
+ reception?: {
22
+ channels: string[];
23
+ strengths?: string[];
24
+ risks?: string[];
25
+ scaffolds?: string[];
26
+ memorableForm?: boolean;
27
+ };
28
+ designContract?: {
29
+ chartFamily?: string;
30
+ whyThisForm?: string;
31
+ whyNotDefault?: string;
32
+ risks?: string[];
33
+ misuse?: string[];
34
+ };
35
+ accessibility?: {
36
+ description?: string;
37
+ navigation?: boolean;
38
+ dataFallback?: boolean;
39
+ manualChecks?: string[];
40
+ };
41
+ provenance?: {
42
+ dataSources?: string[];
43
+ code?: string;
44
+ reviewStatus?: string;
45
+ generatedBy?: string;
46
+ };
47
+ lifecycle?: {
48
+ staleAfter?: string;
49
+ refreshPolicy?: string;
50
+ annotationStatus?: string;
51
+ };
52
+ }
53
+ export declare function summarizeIntentManifest(manifest: IntentManifest): string;
54
+ export interface IntentManifestFromRecipeOptions {
55
+ chartId: string;
56
+ title?: string;
57
+ description?: string;
58
+ dataSources?: string[];
59
+ reviewStatus?: string;
60
+ }
61
+ /** Project a chart recipe into the cross-chart Intent Mark standard. */
62
+ export declare function intentManifestFromRecipe(recipe: ChartRecipe, options: IntentManifestFromRecipeOptions): IntentManifest;
@@ -1,4 +1,5 @@
1
1
  import type { Datum } from "../charts/shared/datumTypes";
2
+ import type { ChartRecipe } from "./chartRecipes";
2
3
  /**
3
4
  * buildNavigationTree — turn a chart config into a structured, labeled
4
5
  * navigation tree (chart → axes/series → data points), following the Olli /
@@ -30,6 +31,8 @@ export interface BuildNavigationTreeOptions {
30
31
  /** Cap leaves per branch (keeps a 50k-row chart from building a giant tree). Default 200. */
31
32
  maxLeaves?: number;
32
33
  locale?: string;
34
+ /** Explicit recipe; otherwise props/registry dispatch is used. */
35
+ recipe?: ChartRecipe;
33
36
  }
34
37
  /**
35
38
  * Build a structured navigation tree for a chart config. Full trees for XY,
@@ -0,0 +1,72 @@
1
+ import type { Datum } from "../charts/shared/datumTypes";
2
+ import type { NavTreeNode } from "./navigationTree";
3
+ import type { ChartRecipe } from "./chartRecipes";
4
+ export type ObservedAuditStatus = "pass" | "warn" | "fail" | "manual" | "not-applicable";
5
+ export interface ObservedAuditFinding {
6
+ id: string;
7
+ category: "geometry" | "identity" | "coverage" | "interaction" | "accessibility" | "visual" | "manual-at";
8
+ status: ObservedAuditStatus;
9
+ message: string;
10
+ evidence?: Record<string, unknown>;
11
+ remediation?: string;
12
+ }
13
+ export interface DeclaredRecipeSemantics {
14
+ dataRoles: string[];
15
+ intents: string[];
16
+ accessibilityExpectations: string[];
17
+ fallbackDeclared: boolean;
18
+ designContractDeclared: boolean;
19
+ }
20
+ export interface AuditObservedSceneInput {
21
+ recipe: ChartRecipe;
22
+ /** A getCustomLayout() result, a node array, or a frame-specific scene bundle. */
23
+ scene: ReadonlyArray<Record<string, unknown>> | {
24
+ nodes?: ReadonlyArray<Record<string, unknown>>;
25
+ sceneNodes?: ReadonlyArray<Record<string, unknown>>;
26
+ sceneEdges?: ReadonlyArray<Record<string, unknown>>;
27
+ } | null | undefined;
28
+ inputData: ReadonlyArray<Datum>;
29
+ annotations?: ReadonlyArray<Datum>;
30
+ dimensions: {
31
+ width: number;
32
+ height: number;
33
+ plot?: {
34
+ x?: number;
35
+ y?: number;
36
+ width: number;
37
+ height: number;
38
+ };
39
+ };
40
+ theme?: {
41
+ background?: string;
42
+ categorical?: string[];
43
+ };
44
+ layoutConfig?: Record<string, unknown>;
45
+ chart?: {
46
+ title?: string;
47
+ summary?: string;
48
+ description?: string;
49
+ accessibleTable?: boolean;
50
+ navigationTree?: NavTreeNode;
51
+ selectedIds?: ReadonlyArray<string>;
52
+ };
53
+ }
54
+ export interface ObservedSceneAuditResult {
55
+ recipeId: string;
56
+ ok: boolean;
57
+ summary: {
58
+ marks: number;
59
+ passes: number;
60
+ warnings: number;
61
+ failures: number;
62
+ manual: number;
63
+ };
64
+ declaredSemantics: DeclaredRecipeSemantics;
65
+ observedSceneEvidence: ObservedAuditFinding[];
66
+ manualATChecks: ObservedAuditFinding[];
67
+ }
68
+ /**
69
+ * Audit what a custom layout actually emitted. The report deliberately keeps
70
+ * declared meaning, observed evidence, and manual AT/reception checks separate.
71
+ */
72
+ export declare function auditObservedScene(input: AuditObservedSceneInput): ObservedSceneAuditResult;
@@ -40,6 +40,12 @@ export interface ChartReaderGroundingOptions {
40
40
  maxLeaves?: number;
41
41
  /** Skip the navigation structure (e.g. to save tokens). Default false. */
42
42
  includeStructure?: boolean;
43
+ /**
44
+ * Include physics runtime grounding for StreamPhysicsFrame/physics HOCs.
45
+ * Default: auto-detect from physics chart props. Pass false to omit, true to
46
+ * force extraction from props, or an object to supply snapshot/evidence rows.
47
+ */
48
+ physics?: boolean | PhysicsReaderGroundingInput;
43
49
  }
44
50
  export interface ChartReaderGroundingIntent {
45
51
  /** The communicative act the chart performs. */
@@ -51,6 +57,81 @@ export interface ChartReaderGroundingIntent {
51
57
  /** Resolved per-intent scores, when the caller passed them (not from a raw descriptor). */
52
58
  intentScores?: Partial<Record<IntentId, number>>;
53
59
  }
60
+ export interface PhysicsReaderGroundingAggregate {
61
+ id?: string;
62
+ label: string;
63
+ count: number;
64
+ secondary?: number;
65
+ secondaryLabel?: string;
66
+ observed?: number;
67
+ }
68
+ export interface PhysicsReaderGroundingAggregates {
69
+ rows: PhysicsReaderGroundingAggregate[];
70
+ totalCount: number;
71
+ populatedCount: number;
72
+ leader?: PhysicsReaderGroundingAggregate;
73
+ }
74
+ export interface PhysicsReaderGroundingSimulation {
75
+ state?: string;
76
+ settled?: boolean;
77
+ elapsedSeconds?: number;
78
+ paused?: boolean;
79
+ visible?: boolean;
80
+ seed?: number;
81
+ gravity?: {
82
+ x: number;
83
+ y: number;
84
+ };
85
+ fixedDt?: number;
86
+ timeScale?: number;
87
+ maxSubsteps?: number;
88
+ liveBodies?: number;
89
+ sleepingBodies?: number;
90
+ queued?: number;
91
+ bodyLimit?: number;
92
+ eviction?: string;
93
+ }
94
+ export interface PhysicsReaderGroundingGeometry {
95
+ colliders?: number;
96
+ sensors?: number;
97
+ springs?: number;
98
+ activeSensorPairs?: number;
99
+ }
100
+ export interface PhysicsReaderGroundingSediment {
101
+ bins: number;
102
+ count: number;
103
+ total?: number;
104
+ leader?: {
105
+ id?: string;
106
+ label: string;
107
+ count: number;
108
+ total?: number;
109
+ };
110
+ }
111
+ export interface PhysicsReaderGroundingInput {
112
+ /** PhysicsPipelineSnapshot or a structurally equivalent object. */
113
+ snapshot?: unknown;
114
+ /** PhysicsSettledEvidence or a structurally equivalent object. */
115
+ evidence?: unknown;
116
+ /** PhysicsPipelineConfig or equivalent runtime config. */
117
+ config?: unknown;
118
+ /** Settled projection rows / evidence bin counts. */
119
+ projectionRows?: readonly unknown[];
120
+ /** Alias for projectionRows when callers already name the rows aggregates. */
121
+ aggregates?: readonly unknown[];
122
+ /** Physics sediment bin snapshots. */
123
+ sediment?: readonly unknown[];
124
+ /** Precomputed sediment totals, if available. */
125
+ sedimentTotals?: unknown;
126
+ }
127
+ export interface PhysicsReaderGrounding {
128
+ simulation: PhysicsReaderGroundingSimulation;
129
+ geometry?: PhysicsReaderGroundingGeometry;
130
+ aggregates?: PhysicsReaderGroundingAggregates;
131
+ sediment?: PhysicsReaderGroundingSediment;
132
+ /** Compact prose appended to `ChartReaderGrounding.text`. */
133
+ text: string;
134
+ }
54
135
  export interface ChartReaderGrounding {
55
136
  component: string;
56
137
  /** Layered L1–L3 description ({ text, levels }). */
@@ -59,6 +140,8 @@ export interface ChartReaderGrounding {
59
140
  intent?: ChartReaderGroundingIntent;
60
141
  /** Structured navigation tree (chart → axes/series → datum). Omitted when `includeStructure: false`. */
61
142
  structure?: NavTreeNode;
143
+ /** Physics-specific runtime grounding for simulation charts. */
144
+ physics?: PhysicsReaderGrounding;
62
145
  /** L1–L4 joined into one prose blob an LLM can read directly. */
63
146
  text: string;
64
147
  }
@@ -0,0 +1,8 @@
1
+ import type { ChartCapability, ChartDataProfile } from "./chartCapabilityTypes";
2
+ import type { ChartRecipe, DataRoleDefinition } from "./chartRecipes";
3
+ export declare function resolveRecipeRoleField(recipe: ChartRecipe, role: DataRoleDefinition, profile: ChartDataProfile): string | undefined;
4
+ /**
5
+ * Adapt a declarative recipe into the existing capability engine. Raw custom
6
+ * frame HOCs remain excluded; named recipes participate as distinct candidates.
7
+ */
8
+ export declare function recipeToChartCapability(recipe: ChartRecipe): ChartCapability;
@@ -0,0 +1,13 @@
1
+ import type { Datum } from "../charts/shared/datumTypes";
2
+ import type { ChartRecipe } from "./chartRecipes";
3
+ import type { NavTreeNode } from "./navigationTree";
4
+ export interface RecipeNavigationOptions {
5
+ maxLeaves?: number;
6
+ locale?: string;
7
+ }
8
+ /**
9
+ * Build navigation from a recipe strategy, or from its declared data roles
10
+ * when no strategy exists. The fallback always produces data leaves rather
11
+ * than collapsing an unfamiliar custom chart to a root-only node.
12
+ */
13
+ export declare function buildRecipeNavigationTree(recipe: ChartRecipe, props: Datum, options?: RecipeNavigationOptions): NavTreeNode;
@@ -0,0 +1,11 @@
1
+ import type { Datum } from "../charts/shared/datumTypes";
2
+ import type { ChartRecipe, DataRoleDefinition, IntentDefinition } from "./chartRecipes";
3
+ export declare function recipeIntentId(intent: IntentDefinition): string | undefined;
4
+ export declare function recipeConfig(props: Datum): Record<string, unknown>;
5
+ export declare function recipeData(props: Datum): Datum[];
6
+ export declare function resolveRecipeForChart(component: string, props: Datum, explicit?: ChartRecipe): ChartRecipe | undefined;
7
+ export declare function fieldForRole(role: DataRoleDefinition, config: Record<string, unknown>, data?: ReadonlyArray<Datum>): string | undefined;
8
+ export declare function roleByName(recipe: ChartRecipe, name: string): DataRoleDefinition | undefined;
9
+ export declare function firstRole(recipe: ChartRecipe, semanticTypes: DataRoleDefinition["semanticType"][]): DataRoleDefinition | undefined;
10
+ export declare function roleValue(datum: Datum, role: DataRoleDefinition | undefined, config: Record<string, unknown>, data: ReadonlyArray<Datum>): unknown;
11
+ export declare function fillRecipeTemplate(template: string, datum: Datum | undefined, recipe: ChartRecipe, config: Record<string, unknown>, data: ReadonlyArray<Datum>, extra?: Record<string, string | number>): string;
@@ -1,6 +1,7 @@
1
1
  import type { Datum } from "../charts/shared/datumTypes";
2
2
  import type { ChartDataProfile, Suggestion } from "./chartCapabilityTypes";
3
3
  import type { IntentId } from "./intents";
4
+ import type { ObservedSceneAuditResult } from "./observedSceneAudit";
4
5
  /**
5
6
  * Repair result when the chosen chart fits the data — nothing to fix.
6
7
  */
@@ -9,6 +10,8 @@ export interface RepairOkResult {
9
10
  component: string;
10
11
  /** The same data profile that was evaluated. */
11
12
  profile: ChartDataProfile;
13
+ /** Recipe-specific reception/accessibility repairs, even when data shape fits. */
14
+ repairs?: string[];
12
15
  }
13
16
  /**
14
17
  * Repair result when the chosen chart doesn't fit. Carries the diagnostic
@@ -24,6 +27,7 @@ export interface RepairAlternativeResult {
24
27
  /** Whether the caller intended one of the alternatives anyway. */
25
28
  alternatives: Suggestion[];
26
29
  profile: ChartDataProfile;
30
+ repairs?: string[];
27
31
  }
28
32
  /**
29
33
  * Repair result when no capability is registered for the asked component.
@@ -34,6 +38,7 @@ export interface RepairUnknownResult {
34
38
  /** Closest matches by family/intent — best effort. */
35
39
  alternatives: Suggestion[];
36
40
  profile: ChartDataProfile;
41
+ repairs?: string[];
37
42
  }
38
43
  export type RepairResult = RepairOkResult | RepairAlternativeResult | RepairUnknownResult;
39
44
  export interface RepairOptions {
@@ -45,6 +50,10 @@ export interface RepairOptions {
45
50
  maxAlternatives?: number;
46
51
  /** Pre-computed profile, avoids recomputation. */
47
52
  profile?: ChartDataProfile;
53
+ /** Current rendered props, used for recipe-specific repair guidance. */
54
+ props?: Datum;
55
+ /** Optional observed-scene evidence from auditObservedScene(). */
56
+ observedSceneAudit?: ObservedSceneAuditResult;
48
57
  }
49
58
  /**
50
59
  * Validate that a chart component is a sensible choice for a dataset, and
@@ -2,7 +2,7 @@ import type { Datum } from "../charts/shared/datumTypes";
2
2
  import { type ProfileDataOptions } from "./profileData";
3
3
  import type { ChartCapability, ChartDataProfile, ScaledSuggestionGroups, Suggestion } from "./chartCapabilityTypes";
4
4
  import type { IntentId } from "./intents";
5
- import { type AudienceProfile } from "./audienceProfile";
5
+ import { type AudienceProfile, type ReceptionModality } from "./audienceProfile";
6
6
  import { type DataQualityProfile, type DataScaleProfile } from "./dataScaleProfile";
7
7
  export interface SuggestChartsOptions extends ProfileDataOptions {
8
8
  /** Ranking intent(s). When omitted, suggestions are ranked by mean intent score. */
@@ -39,6 +39,12 @@ export interface SuggestChartsOptions extends ProfileDataOptions {
39
39
  * `dataScaleProfile.ts`.
40
40
  */
41
41
  quality?: DataQualityProfile;
42
+ /** Restrict recipe candidates by portability tier. Built-ins are unaffected. */
43
+ portability?: "portable" | "local";
44
+ /** Controls how strongly declared recipe reception risks affect ranking. */
45
+ riskTolerance?: "low" | "medium" | "high";
46
+ /** Explicit reception channel when no full AudienceProfile is available. */
47
+ receptionChannel?: ReceptionModality;
42
48
  }
43
49
  /**
44
50
  * Suggest charts for a dataset, ranked by intent suitability.
@@ -85,6 +91,10 @@ export declare function scoreChart(component: string, data: ReadonlyArray<Datum>
85
91
  intent?: IntentId | IntentId[];
86
92
  variantKey?: string;
87
93
  profile?: ChartDataProfile;
94
+ audience?: AudienceProfile;
95
+ portability?: "portable" | "local";
96
+ riskTolerance?: "low" | "medium" | "high";
97
+ receptionChannel?: ReceptionModality;
88
98
  }): Suggestion | {
89
99
  reason: string;
90
100
  };
@@ -0,0 +1,48 @@
1
+ import * as React from "react";
2
+ import type { ProjectionProp, StreamGeoFrameProps } from "../../stream/geoTypes";
3
+ import type { GeoCustomLayout } from "../../stream/geoCustomLayout";
4
+ import type { ChartRecipe } from "../../ai/chartRecipes";
5
+ import type { RealtimeFrameHandle } from "../../realtime/types";
6
+ import type { Datum } from "../shared/datumTypes";
7
+ import type { BaseChartProps, ChartAccessor } from "../shared/types";
8
+ import { type TooltipProp } from "../../Tooltip/Tooltip";
9
+ export interface GeoCustomChartProps<TDatum extends Datum = Datum, TConfig extends object = Record<string, unknown>> extends BaseChartProps {
10
+ /** Geographic point data supplied to `GeoLayoutContext.points`. */
11
+ points?: TDatum[];
12
+ /** Geographic areas supplied to `GeoLayoutContext.areas`. */
13
+ areas?: GeoJSON.Feature[];
14
+ /** Geographic line/flow records supplied to `GeoLayoutContext.lines`. */
15
+ lines?: TDatum[];
16
+ /** Layout function that emits GeoFrame scene nodes and optional overlays. */
17
+ layout: GeoCustomLayout<TConfig>;
18
+ /** User configuration threaded to `GeoLayoutContext.config`. */
19
+ layoutConfig?: TConfig;
20
+ /** Receives a structured diagnostic if the layout throws. */
21
+ onLayoutError?: StreamGeoFrameProps["onLayoutError"];
22
+ recipe?: ChartRecipe<TDatum, TConfig>;
23
+ recipeId?: string;
24
+ /** Projection resolved before the custom layout runs. @default "equirectangular" */
25
+ projection?: ProjectionProp;
26
+ xAccessor?: StreamGeoFrameProps<TDatum>["xAccessor"];
27
+ yAccessor?: StreamGeoFrameProps<TDatum>["yAccessor"];
28
+ lineDataAccessor?: StreamGeoFrameProps<TDatum>["lineDataAccessor"];
29
+ /** Field or function that declares the semantic category used for custom-layout color. */
30
+ colorBy?: ChartAccessor<TDatum, string>;
31
+ colorScheme?: string | string[] | Record<string, string>;
32
+ enableHover?: boolean;
33
+ tooltip?: TooltipProp;
34
+ annotations?: Datum[];
35
+ /** Additional StreamGeoFrame props excluding fields controlled by this HOC. */
36
+ frameProps?: Partial<Omit<StreamGeoFrameProps, "areas" | "points" | "lines" | "projection" | "size" | "customLayout" | "layoutConfig" | "layoutSelection" | "xAccessor" | "yAccessor" | "lineDataAccessor">>;
37
+ }
38
+ /**
39
+ * GeoCustomChart — escape hatch for bespoke geographic geometry.
40
+ *
41
+ * The frame resolves the projection and continues to own canvas rendering,
42
+ * polygon/point/line hit-testing, accessibility, tooltips, selection, and SSR.
43
+ * The supplied layout owns only the scene geometry and SVG overlays.
44
+ */
45
+ export declare const GeoCustomChart: {
46
+ <TDatum extends Datum = Datum, TConfig extends object = Record<string, unknown>>(props: GeoCustomChartProps<TDatum, TConfig> & React.RefAttributes<RealtimeFrameHandle>): React.ReactElement | null;
47
+ displayName?: string;
48
+ };