semiotic 3.7.5 → 3.8.1

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 (575) hide show
  1. package/CLAUDE.md +63 -18
  2. package/README.md +121 -27
  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 +1741 -163
  7. package/ai/examples.md +174 -0
  8. package/ai/schema.json +2733 -536
  9. package/ai/surface-manifest.json +201 -0
  10. package/ai/system-prompt.md +20 -4
  11. package/dist/__tests__/scenarios/mcpProtocolTypes.d.ts +20 -0
  12. package/dist/components/AccessibleNavTree.d.ts +7 -1
  13. package/dist/components/CategoryColors.d.ts +1 -1
  14. package/dist/components/ChartContainer.d.ts +91 -0
  15. package/dist/components/ChartGrid.d.ts +11 -1
  16. package/dist/components/CircularBrush.d.ts +61 -0
  17. package/dist/components/ContextLayout.d.ts +5 -1
  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 +26 -1
  29. package/dist/components/ai/chartClinic.d.ts +91 -0
  30. package/dist/components/ai/chartClinicMetadata.generated.d.ts +15 -0
  31. package/dist/components/ai/chartRecipeRegistry.d.ts +14 -0
  32. package/dist/components/ai/chartRecipes.d.ts +278 -0
  33. package/dist/components/ai/dataPitfallsBridge.d.ts +102 -0
  34. package/dist/components/ai/describeChart.d.ts +7 -0
  35. package/dist/components/ai/describeRecipeChart.d.ts +16 -0
  36. package/dist/components/ai/generativeChart.d.ts +28 -3
  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/ai/useNavigationSync.d.ts +17 -2
  47. package/dist/components/chartContainerMobile.d.ts +9 -0
  48. package/dist/components/charts/custom/GeoCustomChart.d.ts +48 -0
  49. package/dist/components/charts/custom/NetworkCustomChart.d.ts +8 -2
  50. package/dist/components/charts/custom/OrdinalCustomChart.d.ts +8 -2
  51. package/dist/components/charts/custom/XYCustomChart.d.ts +11 -2
  52. package/dist/components/charts/geo/ChoroplethMap.d.ts +19 -2
  53. package/dist/components/charts/geo/DistanceCartogram.d.ts +15 -3
  54. package/dist/components/charts/geo/FlowMap.d.ts +11 -7
  55. package/dist/components/charts/geo/ProportionalSymbolMap.d.ts +15 -3
  56. package/dist/components/charts/geo/index.d.ts +2 -0
  57. package/dist/components/charts/index.d.ts +35 -1
  58. package/dist/components/charts/network/ChordDiagram.d.ts +10 -2
  59. package/dist/components/charts/network/CirclePack.d.ts +1 -1
  60. package/dist/components/charts/network/ForceDirectedGraph.d.ts +26 -5
  61. package/dist/components/charts/network/OrbitDiagram.d.ts +1 -1
  62. package/dist/components/charts/network/ProcessSankey.d.ts +1 -1
  63. package/dist/components/charts/network/SankeyDiagram.d.ts +10 -2
  64. package/dist/components/charts/network/TreeDiagram.d.ts +1 -1
  65. package/dist/components/charts/network/Treemap.d.ts +1 -1
  66. package/dist/components/charts/network/useForceLayout.d.ts +17 -0
  67. package/dist/components/charts/ordinal/BarChart.d.ts +22 -1
  68. package/dist/components/charts/ordinal/BoxPlot.d.ts +1 -1
  69. package/dist/components/charts/ordinal/DonutChart.d.ts +1 -1
  70. package/dist/components/charts/ordinal/DotPlot.d.ts +1 -1
  71. package/dist/components/charts/ordinal/FunnelChart.d.ts +1 -1
  72. package/dist/components/charts/ordinal/GroupedBarChart.d.ts +12 -1
  73. package/dist/components/charts/ordinal/Histogram.d.ts +1 -1
  74. package/dist/components/charts/ordinal/PieChart.d.ts +1 -1
  75. package/dist/components/charts/ordinal/RidgelinePlot.d.ts +1 -1
  76. package/dist/components/charts/ordinal/StackedBarChart.d.ts +12 -1
  77. package/dist/components/charts/ordinal/SwarmPlot.d.ts +1 -1
  78. package/dist/components/charts/ordinal/SwimlaneChart.d.ts +1 -1
  79. package/dist/components/charts/ordinal/ViolinPlot.d.ts +1 -1
  80. package/dist/components/charts/physics/ChainReactionChart.d.ts +9 -0
  81. package/dist/components/charts/physics/CollisionSwarmChart.capability.d.ts +2 -0
  82. package/dist/components/charts/physics/CollisionSwarmChart.d.ts +54 -0
  83. package/dist/components/charts/physics/EventDropChart.capability.d.ts +2 -0
  84. package/dist/components/charts/physics/EventDropChart.d.ts +60 -0
  85. package/dist/components/charts/physics/GaltonBoardChart.capability.d.ts +2 -0
  86. package/dist/components/charts/physics/GaltonBoardChart.d.ts +74 -0
  87. package/dist/components/charts/physics/GauntletChart.capability.d.ts +2 -0
  88. package/dist/components/charts/physics/GauntletChart.d.ts +73 -0
  89. package/dist/components/charts/physics/PhysicalFlowChart.capability.d.ts +2 -0
  90. package/dist/components/charts/physics/PhysicalFlowChart.d.ts +63 -0
  91. package/dist/components/charts/physics/PhysicsCustomChart.d.ts +99 -0
  92. package/dist/components/charts/physics/PhysicsPileChart.capability.d.ts +2 -0
  93. package/dist/components/charts/physics/PhysicsPileChart.d.ts +60 -0
  94. package/dist/components/charts/physics/ProcessFlowChart.capability.d.ts +2 -0
  95. package/dist/components/charts/physics/ProcessFlowChart.d.ts +96 -0
  96. package/dist/components/charts/physics/chainReactionOverlay.d.ts +22 -0
  97. package/dist/components/charts/physics/chainReactionRuntime.d.ts +37 -0
  98. package/dist/components/charts/physics/chainReactionTypes.d.ts +97 -0
  99. package/dist/components/charts/physics/collisionSwarmPhysics.d.ts +27 -0
  100. package/dist/components/charts/physics/dependencyMachine.d.ts +188 -0
  101. package/dist/components/charts/physics/eventDropPhysics.d.ts +64 -0
  102. package/dist/components/charts/physics/galtonBoardPhysics.d.ts +28 -0
  103. package/dist/components/charts/physics/gauntletChartProps.d.ts +67 -0
  104. package/dist/components/charts/physics/gauntletChrome.d.ts +33 -0
  105. package/dist/components/charts/physics/gauntletController.d.ts +73 -0
  106. package/dist/components/charts/physics/gauntletEffects.d.ts +36 -0
  107. package/dist/components/charts/physics/gauntletPhysics.d.ts +71 -0
  108. package/dist/components/charts/physics/gauntletRuntime.d.ts +42 -0
  109. package/dist/components/charts/physics/gauntletTypes.d.ts +213 -0
  110. package/dist/components/charts/physics/physicalFlowPhysics.d.ts +57 -0
  111. package/dist/components/charts/physics/physicsChartShared.d.ts +57 -0
  112. package/dist/components/charts/physics/physicsChartUtils.d.ts +18 -0
  113. package/dist/components/charts/physics/physicsCustomLayout.d.ts +32 -0
  114. package/dist/components/charts/physics/physicsEncoding.d.ts +142 -0
  115. package/dist/components/charts/physics/physicsHocHandle.d.ts +53 -0
  116. package/dist/components/charts/physics/physicsHocUtils.d.ts +128 -0
  117. package/dist/components/charts/physics/physicsPilePhysics.d.ts +41 -0
  118. package/dist/components/charts/physics/physicsProcessPrimitives.d.ts +38 -0
  119. package/dist/components/charts/physics/processFlowPhysics.d.ts +97 -0
  120. package/dist/components/charts/realtime/RealtimeHeatmap.d.ts +9 -1
  121. package/dist/components/charts/realtime/RealtimeHistogram.d.ts +9 -1
  122. package/dist/components/charts/realtime/RealtimeLineChart.d.ts +9 -1
  123. package/dist/components/charts/realtime/RealtimeSwarmChart.d.ts +16 -2
  124. package/dist/components/charts/realtime/RealtimeWaterfallChart.d.ts +9 -1
  125. package/dist/components/charts/shared/AnnotationLabel.d.ts +88 -0
  126. package/dist/components/charts/shared/annotationActivation.d.ts +35 -0
  127. package/dist/components/charts/shared/annotationLabelLayout.d.ts +5 -0
  128. package/dist/components/charts/shared/annotationRules.d.ts +2 -1
  129. package/dist/components/charts/shared/auditMobileVisualization.d.ts +91 -0
  130. package/dist/components/charts/shared/chartDefinitionPilot.d.ts +145 -0
  131. package/dist/components/charts/shared/chartFamilySets.d.ts +20 -0
  132. package/dist/components/charts/shared/chartSelectionUtils.d.ts +4 -0
  133. package/dist/components/charts/shared/chartSpecCore.d.ts +165 -0
  134. package/dist/components/charts/shared/chartSpecs.d.ts +8 -127
  135. package/dist/components/charts/shared/chartSpecsGeo.d.ts +2 -0
  136. package/dist/components/charts/shared/chartSpecsNetwork.d.ts +2 -0
  137. package/dist/components/charts/shared/chartSpecsOrdinal.d.ts +2 -0
  138. package/dist/components/charts/shared/chartSpecsPhysics.d.ts +2 -0
  139. package/dist/components/charts/shared/chartSpecsRealtime.d.ts +2 -0
  140. package/dist/components/charts/shared/chartSpecsValue.d.ts +2 -0
  141. package/dist/components/charts/shared/chartSpecsXY.d.ts +2 -0
  142. package/dist/components/charts/shared/colorContrast.d.ts +3 -0
  143. package/dist/components/charts/shared/colorUtils.d.ts +16 -1
  144. package/dist/components/charts/shared/datumTypes.d.ts +2 -0
  145. package/dist/components/charts/shared/diagnoseAnnotationChecks.d.ts +6 -0
  146. package/dist/components/charts/shared/diagnoseConfig.d.ts +9 -14
  147. package/dist/components/charts/shared/diagnoseMisleadingChecks.d.ts +9 -0
  148. package/dist/components/charts/shared/diagnosePhysicsChecks.d.ts +3 -0
  149. package/dist/components/charts/shared/diagnoseTypes.d.ts +10 -0
  150. package/dist/components/charts/shared/formatUtils.d.ts +3 -3
  151. package/dist/components/charts/shared/hatchFill.d.ts +87 -0
  152. package/dist/components/charts/shared/hooks.d.ts +34 -10
  153. package/dist/components/charts/shared/knownChartComponents.d.ts +9 -0
  154. package/dist/components/charts/shared/leastSquaresRegression.d.ts +16 -0
  155. package/dist/components/charts/shared/mergeShapeStyle.d.ts +3 -2
  156. package/dist/components/charts/shared/motionEncoding.d.ts +145 -0
  157. package/dist/components/charts/shared/responsiveRules.d.ts +56 -0
  158. package/dist/components/charts/shared/semanticInteractions.d.ts +42 -0
  159. package/dist/components/charts/shared/sparseArray.d.ts +1 -1
  160. package/dist/components/charts/shared/streamPropsHelpers.d.ts +17 -5
  161. package/dist/components/charts/shared/styleRules.d.ts +205 -0
  162. package/dist/components/charts/shared/temporalStrings.d.ts +7 -0
  163. package/dist/components/charts/shared/tooltipUtils.d.ts +22 -9
  164. package/dist/components/charts/shared/types.d.ts +58 -7
  165. package/dist/components/charts/shared/useAreaSeriesSetup.d.ts +16 -2
  166. package/dist/components/charts/shared/useChartSetup.d.ts +11 -4
  167. package/dist/components/charts/shared/useCustomChartSetup.d.ts +17 -5
  168. package/dist/components/charts/shared/useFrameImperativeHandle.d.ts +1 -2
  169. package/dist/components/charts/shared/useLikertAggregation.d.ts +4 -4
  170. package/dist/components/charts/shared/useNetworkChartSetup.d.ts +6 -2
  171. package/dist/components/charts/shared/useOrdinalBrush.d.ts +2 -1
  172. package/dist/components/charts/shared/useOrdinalPieceStyle.d.ts +25 -2
  173. package/dist/components/charts/shared/useStreamingLegend.d.ts +2 -2
  174. package/dist/components/charts/shared/useSyncedPushData.d.ts +49 -0
  175. package/dist/components/charts/shared/useXYLineStyle.d.ts +10 -0
  176. package/dist/components/charts/shared/useXYPointStyle.d.ts +19 -1
  177. package/dist/components/charts/shared/validateChartData.d.ts +7 -5
  178. package/dist/components/charts/shared/validationMap.d.ts +7 -9
  179. package/dist/components/charts/shared/validationMap.generated.d.ts +6 -0
  180. package/dist/components/charts/shared/withChartWrapper.d.ts +4 -3
  181. package/dist/components/charts/value/targetPresentation.d.ts +22 -0
  182. package/dist/components/charts/value/types.d.ts +5 -6
  183. package/dist/components/charts/xy/AreaChart.d.ts +9 -1
  184. package/dist/components/charts/xy/BubbleChart.d.ts +10 -1
  185. package/dist/components/charts/xy/ConnectedScatterplot.d.ts +7 -0
  186. package/dist/components/charts/xy/DifferenceChart.d.ts +1 -52
  187. package/dist/components/charts/xy/Heatmap.d.ts +2 -2
  188. package/dist/components/charts/xy/LineChart.d.ts +12 -1
  189. package/dist/components/charts/xy/MinimapChart.d.ts +1 -1
  190. package/dist/components/charts/xy/MultiAxisLineChart.d.ts +2 -2
  191. package/dist/components/charts/xy/QuadrantChart.d.ts +8 -1
  192. package/dist/components/charts/xy/Scatterplot.d.ts +11 -1
  193. package/dist/components/charts/xy/ScatterplotMatrix.d.ts +11 -1
  194. package/dist/components/charts/xy/StackedAreaChart.d.ts +16 -4
  195. package/dist/components/charts/xy/differenceSegments.d.ts +49 -0
  196. package/dist/components/charts/xy/scatterplotMatrixInteractionTypes.d.ts +12 -0
  197. package/dist/components/controls/SentenceFilter.d.ts +97 -0
  198. package/dist/components/controls/controlAudit.d.ts +24 -0
  199. package/dist/components/controls/controlContract.d.ts +57 -0
  200. package/dist/components/data/fromFlintChart.d.ts +74 -0
  201. package/dist/components/data/fromVegaLite.d.ts +46 -9
  202. package/dist/components/data/portability/index.d.ts +6 -3
  203. package/dist/components/data/portability/result.d.ts +52 -0
  204. package/dist/components/data/portability/spec.d.ts +31 -0
  205. package/dist/components/data/portability/vegaLite.d.ts +24 -6
  206. package/dist/components/export/chartConfig.d.ts +11 -0
  207. package/dist/components/realtime/types.d.ts +11 -0
  208. package/dist/components/recipes/annotationLayout.d.ts +29 -0
  209. package/dist/components/recipes/axisFixedForce.d.ts +119 -0
  210. package/dist/components/recipes/{gofishBoba.d.ts → boba.d.ts} +2 -2
  211. package/dist/components/recipes/cyclical.d.ts +39 -0
  212. package/dist/components/recipes/edgeRouter.d.ts +103 -0
  213. package/dist/components/recipes/forceLayout.d.ts +48 -0
  214. package/dist/components/recipes/forceLayoutAsync.d.ts +17 -0
  215. package/dist/components/recipes/gofishBobaHandwritten.d.ts +3 -0
  216. package/dist/components/recipes/gofishDisplayListFixtures.generated.d.ts +37 -0
  217. package/dist/components/recipes/gofishIR.d.ts +178 -132
  218. package/dist/components/recipes/gofishIRExamples.d.ts +30 -81
  219. package/dist/components/recipes/intervalLanes.d.ts +87 -0
  220. package/dist/components/recipes/intervals.d.ts +80 -0
  221. package/dist/components/recipes/isometricLandmarks.d.ts +88 -0
  222. package/dist/components/recipes/isotypeGlyphs.d.ts +17 -0
  223. package/dist/components/recipes/mobileAnnotationStrategy.d.ts +48 -0
  224. package/dist/components/recipes/mobileChartFamilyRecipes.d.ts +59 -0
  225. package/dist/components/recipes/networkAnalysis.d.ts +102 -0
  226. package/dist/components/recipes/networkLayouts.d.ts +83 -0
  227. package/dist/components/recipes/physics.d.ts +122 -0
  228. package/dist/components/recipes/physicsReference.d.ts +102 -0
  229. package/dist/components/recipes/processAggregates.d.ts +32 -0
  230. package/dist/components/recipes/processChrome.d.ts +67 -0
  231. package/dist/components/recipes/processJourney.d.ts +54 -0
  232. package/dist/components/recipes/processPhysics.d.ts +300 -0
  233. package/dist/components/recipes/processVolumeGeometry.d.ts +28 -0
  234. package/dist/components/recipes/radialCoords.d.ts +69 -0
  235. package/dist/components/recipes/random.d.ts +2 -0
  236. package/dist/components/recipes/recipeChrome.d.ts +91 -0
  237. package/dist/components/recipes/recipeGlyph.d.ts +42 -0
  238. package/dist/components/recipes/recipeLegend.d.ts +53 -1
  239. package/dist/components/recipes/recipeUtils.d.ts +52 -0
  240. package/dist/components/recipes/runs.d.ts +59 -0
  241. package/dist/components/recipes/tokenEncoding.d.ts +157 -0
  242. package/dist/components/recipes/tokenLayer.d.ts +79 -0
  243. package/dist/components/recipes/unitize.d.ts +108 -0
  244. package/dist/components/recipes/vector.d.ts +28 -0
  245. package/dist/components/recipes/waffle.d.ts +43 -0
  246. package/dist/components/rough/createRoughRenderMode.d.ts +46 -0
  247. package/dist/components/semiotic-ai-core.d.ts +47 -0
  248. package/dist/components/semiotic-ai.d.ts +53 -9
  249. package/dist/components/semiotic-controls.d.ts +20 -0
  250. package/dist/components/semiotic-experimental.d.ts +38 -9
  251. package/dist/components/semiotic-geo.d.ts +15 -0
  252. package/dist/components/semiotic-network.d.ts +15 -0
  253. package/dist/components/semiotic-ordinal.d.ts +14 -0
  254. package/dist/components/semiotic-physics-matter.d.ts +10 -0
  255. package/dist/components/semiotic-physics-rapier.d.ts +9 -0
  256. package/dist/components/semiotic-physics.d.ts +60 -0
  257. package/dist/components/semiotic-realtime-core.d.ts +34 -0
  258. package/dist/components/semiotic-realtime-react.d.ts +10 -0
  259. package/dist/components/semiotic-realtime.d.ts +4 -30
  260. package/dist/components/semiotic-recipes-core.d.ts +92 -0
  261. package/dist/components/semiotic-recipes-react.d.ts +7 -0
  262. package/dist/components/semiotic-recipes.d.ts +4 -43
  263. package/dist/components/semiotic-rough.d.ts +4 -0
  264. package/dist/components/semiotic-server-edge.d.ts +8 -0
  265. package/dist/components/semiotic-server-node.d.ts +5 -0
  266. package/dist/components/semiotic-server.d.ts +2 -2
  267. package/dist/components/semiotic-themes-core.d.ts +53 -0
  268. package/dist/components/semiotic-themes-react.d.ts +4 -0
  269. package/dist/components/semiotic-themes.d.ts +6 -76
  270. package/dist/components/semiotic-utils-core.d.ts +50 -0
  271. package/dist/components/semiotic-utils-react.d.ts +5 -0
  272. package/dist/components/semiotic-utils.d.ts +3 -39
  273. package/dist/components/semiotic-xy.d.ts +12 -0
  274. package/dist/components/semiotic.d.ts +44 -8
  275. package/dist/components/server/animatedGif.d.ts +36 -0
  276. package/dist/components/server/optionalImageTypes.d.ts +37 -0
  277. package/dist/components/server/renderEvidence.d.ts +1 -1
  278. package/dist/components/server/renderToStaticSVG.d.ts +3 -35
  279. package/dist/components/server/serverChartConfigShared.d.ts +21 -0
  280. package/dist/components/server/serverChartConfigs.d.ts +22 -12
  281. package/dist/components/server/serverChartConfigsCustom.d.ts +5 -0
  282. package/dist/components/server/serverChartConfigsGeo.d.ts +9 -0
  283. package/dist/components/server/serverChartConfigsNetwork.d.ts +8 -0
  284. package/dist/components/server/serverChartConfigsOrdinal.d.ts +16 -0
  285. package/dist/components/server/serverChartConfigsPhysics.d.ts +9 -0
  286. package/dist/components/server/serverChartConfigsXY.d.ts +11 -0
  287. package/dist/components/server/staticAnnotations.d.ts +6 -3
  288. package/dist/components/server/staticGeo.d.ts +4 -0
  289. package/dist/components/server/staticLegend.d.ts +2 -2
  290. package/dist/components/server/staticNetwork.d.ts +8 -0
  291. package/dist/components/server/staticOrdinal.d.ts +11 -0
  292. package/dist/components/server/staticPhysics.d.ts +3 -0
  293. package/dist/components/server/staticSVGChrome.d.ts +110 -0
  294. package/dist/components/server/staticXY.d.ts +4 -0
  295. package/dist/components/store/ObservationStore.d.ts +23 -2
  296. package/dist/components/store/themeSerialization.d.ts +32 -0
  297. package/dist/components/store/useChartInterrogation.d.ts +9 -0
  298. package/dist/components/stream/AccessibleDataTable.d.ts +7 -23
  299. package/dist/components/stream/AriaLiveTooltip.d.ts +9 -0
  300. package/dist/components/stream/CanvasHitTester.d.ts +4 -4
  301. package/dist/components/stream/DataSourceAdapter.d.ts +1 -1
  302. package/dist/components/stream/FocusRing.d.ts +4 -2
  303. package/dist/components/stream/FrameRuntime.d.ts +57 -0
  304. package/dist/components/stream/GeoCanvasHitTester.d.ts +1 -1
  305. package/dist/components/stream/GeoParticlePool.d.ts +1 -1
  306. package/dist/components/stream/GeoPipelineStore.d.ts +62 -3
  307. package/dist/components/stream/GeoSVGOverlay.d.ts +64 -0
  308. package/dist/components/stream/NetworkCanvasHitTester.d.ts +2 -1
  309. package/dist/components/stream/NetworkPipelineStore.d.ts +44 -36
  310. package/dist/components/stream/NetworkSSRFrame.d.ts +17 -0
  311. package/dist/components/stream/NetworkSVGOverlay.d.ts +10 -1
  312. package/dist/components/stream/OrdinalCanvasHitTester.d.ts +2 -2
  313. package/dist/components/stream/OrdinalPipelineStore.d.ts +55 -11
  314. package/dist/components/stream/OrdinalSVGOverlay.d.ts +9 -1
  315. package/dist/components/stream/OrdinalStyleResolver.d.ts +12 -0
  316. package/dist/components/stream/ParticlePool.d.ts +1 -1
  317. package/dist/components/stream/PipelineStore.d.ts +81 -174
  318. package/dist/components/stream/SVGOverlay.d.ts +6 -0
  319. package/dist/components/stream/SceneGraph.d.ts +12 -4
  320. package/dist/components/stream/StreamGeoFrame.d.ts +1 -1
  321. package/dist/components/stream/StreamNetworkFrame.d.ts +1 -1
  322. package/dist/components/stream/StreamOrdinalFrame.d.ts +1 -1
  323. package/dist/components/stream/StreamXYFrame.d.ts +2 -18
  324. package/dist/components/stream/accessibleDataRows.d.ts +33 -0
  325. package/dist/components/stream/accessorUtils.d.ts +25 -12
  326. package/dist/components/stream/annotationAccessorResolver.d.ts +2 -2
  327. package/dist/components/stream/brushAccessibility.d.ts +25 -0
  328. package/dist/components/stream/canvasBackground.d.ts +24 -0
  329. package/dist/components/stream/canvasSetup.d.ts +4 -1
  330. package/dist/components/stream/customLayoutFailure.d.ts +33 -0
  331. package/dist/components/stream/customLayoutPalette.d.ts +19 -9
  332. package/dist/components/stream/frameGraphics.d.ts +4 -0
  333. package/dist/components/stream/frameKeyboardNavigation.d.ts +45 -0
  334. package/dist/components/stream/frameThemeColors.d.ts +24 -0
  335. package/dist/components/stream/geoAnnotationAnchors.d.ts +14 -0
  336. package/dist/components/stream/geoCartogram.d.ts +17 -0
  337. package/dist/components/stream/geoCustomLayout.d.ts +59 -0
  338. package/dist/components/stream/geoDefaultTooltip.d.ts +11 -0
  339. package/dist/components/stream/geoFrameHelpers.d.ts +34 -0
  340. package/dist/components/stream/geoPipelineHelpers.d.ts +46 -0
  341. package/dist/components/stream/geoPipelineUpdateResults.d.ts +34 -0
  342. package/dist/components/stream/geoSceneBuilder.d.ts +16 -0
  343. package/dist/components/stream/geoTypes.d.ts +97 -15
  344. package/dist/components/stream/glyphDef.d.ts +98 -0
  345. package/dist/components/stream/hitTarget.d.ts +170 -0
  346. package/dist/components/stream/hitTestUtils.d.ts +2 -2
  347. package/dist/components/stream/hoverUtils.d.ts +7 -2
  348. package/dist/components/stream/keyboardNav.d.ts +4 -1
  349. package/dist/components/stream/layouts/forceLayoutPlugin.d.ts +9 -1
  350. package/dist/components/stream/layouts/forceLayoutWorkerClient.d.ts +58 -0
  351. package/dist/components/stream/layouts/hierarchyUtils.d.ts +2 -2
  352. package/dist/components/stream/networkBezier.d.ts +10 -0
  353. package/dist/components/stream/networkColorAccessors.d.ts +49 -0
  354. package/dist/components/stream/networkCustomLayoutRunner.d.ts +23 -0
  355. package/dist/components/stream/networkCustomRestyle.d.ts +15 -0
  356. package/dist/components/stream/networkDefaultTooltip.d.ts +10 -0
  357. package/dist/components/stream/networkFrameAnimation.d.ts +7 -0
  358. package/dist/components/stream/networkFrameHandleTypes.d.ts +39 -0
  359. package/dist/components/stream/networkFrameInteraction.d.ts +37 -0
  360. package/dist/components/stream/networkFrameObservations.d.ts +15 -0
  361. package/dist/components/stream/networkFramePaint.d.ts +52 -0
  362. package/dist/components/stream/networkInteractionTypes.d.ts +26 -0
  363. package/dist/components/stream/networkPipelineConfig.d.ts +22 -0
  364. package/dist/components/stream/networkPipelineHelpers.d.ts +12 -0
  365. package/dist/components/stream/networkPipelineUpdateResults.d.ts +38 -0
  366. package/dist/components/stream/networkRealtimeEncoding.d.ts +41 -0
  367. package/dist/components/stream/networkTypes.d.ts +103 -51
  368. package/dist/components/stream/ordinalCanvasRenderers.d.ts +7 -0
  369. package/dist/components/stream/ordinalDataIndex.d.ts +5 -0
  370. package/dist/components/stream/ordinalDefaultTooltip.d.ts +10 -0
  371. package/dist/components/stream/ordinalDomain.d.ts +38 -0
  372. package/dist/components/stream/ordinalPipelineUpdateResults.d.ts +31 -0
  373. package/dist/components/stream/ordinalPulse.d.ts +10 -0
  374. package/dist/components/stream/ordinalPulseResources.d.ts +3 -0
  375. package/dist/components/stream/ordinalSceneBuilders/sceneBuilderMap.d.ts +5 -0
  376. package/dist/components/stream/ordinalSceneBuilders/types.d.ts +2 -2
  377. package/dist/components/stream/ordinalSpatialIndex.d.ts +9 -0
  378. package/dist/components/stream/ordinalTypes.d.ts +68 -9
  379. package/dist/components/stream/paintNeeds.d.ts +31 -0
  380. package/dist/components/stream/physics/CapacityQueueController.d.ts +5 -0
  381. package/dist/components/stream/physics/CapacityQueueTypes.d.ts +134 -0
  382. package/dist/components/stream/physics/MatterPhysicsEngineAdapter.d.ts +42 -0
  383. package/dist/components/stream/physics/PhysicsAccessibility.d.ts +48 -0
  384. package/dist/components/stream/physics/PhysicsAnnotations.d.ts +58 -0
  385. package/dist/components/stream/physics/PhysicsBodyBudget.d.ts +26 -0
  386. package/dist/components/stream/physics/PhysicsBodySpatialIndex.d.ts +10 -0
  387. package/dist/components/stream/physics/PhysicsCanvasTheme.d.ts +26 -0
  388. package/dist/components/stream/physics/PhysicsControllers.d.ts +75 -0
  389. package/dist/components/stream/physics/PhysicsEngineAdapter.d.ts +59 -0
  390. package/dist/components/stream/physics/PhysicsEngineConformance.d.ts +23 -0
  391. package/dist/components/stream/physics/PhysicsEvidence.d.ts +25 -0
  392. package/dist/components/stream/physics/PhysicsKernel.d.ts +207 -0
  393. package/dist/components/stream/physics/PhysicsOptionalEngineAdapters.d.ts +12 -0
  394. package/dist/components/stream/physics/PhysicsPipelineStore.d.ts +86 -0
  395. package/dist/components/stream/physics/PhysicsPipelineTypes.d.ts +181 -0
  396. package/dist/components/stream/physics/PhysicsSVGOverlay.d.ts +78 -0
  397. package/dist/components/stream/physics/PhysicsSediment.d.ts +69 -0
  398. package/dist/components/stream/physics/PhysicsSettledSVG.d.ts +18 -0
  399. package/dist/components/stream/physics/PhysicsSettledScene.d.ts +21 -0
  400. package/dist/components/stream/physics/PhysicsWorkerClient.d.ts +24 -0
  401. package/dist/components/stream/physics/PhysicsWorkerProtocol.d.ts +101 -0
  402. package/dist/components/stream/physics/PhysicsWorkerRuntime.d.ts +5 -0
  403. package/dist/components/stream/physics/RapierPhysicsEngineAdapter.d.ts +18 -0
  404. package/dist/components/stream/physics/ServiceOperationsControllers.d.ts +27 -0
  405. package/dist/components/stream/physics/ServiceOperationsTypes.d.ts +89 -0
  406. package/dist/components/stream/physics/StreamPhysicsFrame.d.ts +6 -0
  407. package/dist/components/stream/physics/StreamPhysicsTypes.d.ts +317 -0
  408. package/dist/components/stream/physics/physicsBodyCanvas.d.ts +27 -0
  409. package/dist/components/stream/physics/physicsFrameObservations.d.ts +19 -0
  410. package/dist/components/stream/physics/physicsFrameSetup.d.ts +4 -0
  411. package/dist/components/stream/physics/physicsPipelineControls.d.ts +4 -0
  412. package/dist/components/stream/physics/physicsPipelineHelpers.d.ts +41 -0
  413. package/dist/components/stream/physics/physicsPipelineObservations.d.ts +14 -0
  414. package/dist/components/stream/physics/physicsPipelineUpdateResults.d.ts +27 -0
  415. package/dist/components/stream/physics/physicsRegionRuntime.d.ts +54 -0
  416. package/dist/components/stream/physics/physicsSemanticUI.d.ts +20 -0
  417. package/dist/components/stream/physics/usePhysicsFrameLifecyclePolicy.d.ts +18 -0
  418. package/dist/components/stream/pipelineBufferUtils.d.ts +26 -0
  419. package/dist/components/stream/pipelineConfig.d.ts +179 -0
  420. package/dist/components/stream/pipelineDecay.d.ts +21 -3
  421. package/dist/components/stream/pipelineDomainResolution.d.ts +62 -0
  422. package/dist/components/stream/pipelineIdentityOps.d.ts +26 -0
  423. package/dist/components/stream/pipelinePulse.d.ts +17 -3
  424. package/dist/components/stream/pipelineRibbons.d.ts +41 -0
  425. package/dist/components/stream/pipelineSpatialIndex.d.ts +12 -0
  426. package/dist/components/stream/pipelineStoreUpdateResults.d.ts +33 -0
  427. package/dist/components/stream/pipelineStyleResolvers.d.ts +46 -0
  428. package/dist/components/stream/pipelineTransitions.d.ts +3 -1
  429. package/dist/components/stream/pipelineUpdateContract.d.ts +69 -0
  430. package/dist/components/stream/pipelineUpdateStore.d.ts +21 -0
  431. package/dist/components/stream/pulseFrameRefresh.d.ts +22 -0
  432. package/dist/components/stream/renderBackend.d.ts +27 -0
  433. package/dist/components/stream/renderers/canvasRenderHelpers.d.ts +15 -1
  434. package/dist/components/stream/renderers/geoCanvasRenderer.d.ts +3 -2
  435. package/dist/components/stream/renderers/glyphCanvasRenderer.d.ts +6 -0
  436. package/dist/components/stream/renderers/networkParticleRenderer.d.ts +1 -1
  437. package/dist/components/stream/renderers/resolveCSSColor.d.ts +6 -0
  438. package/dist/components/stream/sceneRenderBackendTypes.d.ts +28 -0
  439. package/dist/components/stream/sceneRevisionDiagnostics.d.ts +45 -0
  440. package/dist/components/stream/streamSemanticTypes.d.ts +16 -0
  441. package/dist/components/stream/streamStoreSync.d.ts +37 -0
  442. package/dist/components/stream/streamThemeTypes.d.ts +14 -0
  443. package/dist/components/stream/svgOverlayUtils.d.ts +10 -0
  444. package/dist/components/stream/test-utils/frameScheduler.d.ts +12 -0
  445. package/dist/components/stream/test-utils/revisionConsumption.d.ts +13 -0
  446. package/dist/components/stream/titleLayout.d.ts +31 -0
  447. package/dist/components/stream/types.d.ts +165 -72
  448. package/dist/components/stream/useCanvasFrameHost.d.ts +71 -0
  449. package/dist/components/stream/useFrame.d.ts +44 -2
  450. package/dist/components/stream/useHydration.d.ts +6 -0
  451. package/dist/components/stream/useLegendCategoryEmission.d.ts +5 -0
  452. package/dist/components/stream/useSemanticFrameInteractions.d.ts +22 -0
  453. package/dist/components/stream/useUpdateResultSnapshot.d.ts +7 -0
  454. package/dist/components/stream/workerModuleUrl.d.ts +10 -0
  455. package/dist/components/stream/xyAnnotationAnchors.d.ts +13 -0
  456. package/dist/components/stream/xyCanvasRenderers.d.ts +7 -0
  457. package/dist/components/stream/xyCrosshair.d.ts +11 -0
  458. package/dist/components/stream/xyDateTicks.d.ts +9 -0
  459. package/dist/components/stream/xyDefaultTooltip.d.ts +10 -0
  460. package/dist/components/stream/xyFrameAxisTypes.d.ts +50 -0
  461. package/dist/components/stream/xySceneBuilders/types.d.ts +10 -9
  462. package/dist/controls.min.js +2 -0
  463. package/dist/controls.module.min.js +2 -0
  464. package/dist/forceLayoutWorker.js +1 -0
  465. package/dist/geo.min.js +1 -1
  466. package/dist/geo.module.min.js +1 -1
  467. package/dist/network.min.js +1 -1
  468. package/dist/network.module.min.js +1 -1
  469. package/dist/ordinal.min.js +1 -1
  470. package/dist/ordinal.module.min.js +1 -1
  471. package/dist/physics-matter.min.js +1 -0
  472. package/dist/physics-matter.module.min.js +1 -0
  473. package/dist/physics-rapier.min.js +1 -0
  474. package/dist/physics-rapier.module.min.js +1 -0
  475. package/dist/physics.min.js +2 -0
  476. package/dist/physics.module.min.js +2 -0
  477. package/dist/physicsWorker.js +1 -0
  478. package/dist/realtime.min.js +1 -1
  479. package/dist/realtime.module.min.js +1 -1
  480. package/dist/rough.min.js +1 -0
  481. package/dist/rough.module.min.js +1 -0
  482. package/dist/semiotic-ai-chunk-OG7BQUUW.module.min.js +2 -0
  483. package/dist/semiotic-ai-core.d.ts +47 -0
  484. package/dist/semiotic-ai-core.min.js +1 -0
  485. package/dist/semiotic-ai-core.module.min.js +1 -0
  486. package/dist/semiotic-ai-statisticalOverlays-CY4WKR4A.module.min.js +2 -0
  487. package/dist/semiotic-ai.d.ts +53 -9
  488. package/dist/semiotic-ai.min.js +1 -1
  489. package/dist/semiotic-ai.module.min.js +1 -1
  490. package/dist/semiotic-chunk-3FSVZ46U.module.min.js +2 -0
  491. package/dist/semiotic-controls.d.ts +20 -0
  492. package/dist/semiotic-data.min.js +1 -1
  493. package/dist/semiotic-data.module.min.js +1 -1
  494. package/dist/semiotic-experimental.d.ts +38 -9
  495. package/dist/semiotic-experimental.min.js +1 -1
  496. package/dist/semiotic-experimental.module.min.js +1 -1
  497. package/dist/semiotic-geo.d.ts +15 -0
  498. package/dist/semiotic-network.d.ts +15 -0
  499. package/dist/semiotic-ordinal.d.ts +14 -0
  500. package/dist/semiotic-physics-matter.d.ts +10 -0
  501. package/dist/semiotic-physics-rapier.d.ts +9 -0
  502. package/dist/semiotic-physics.d.ts +60 -0
  503. package/dist/semiotic-realtime-core.d.ts +34 -0
  504. package/dist/semiotic-realtime-core.min.js +1 -0
  505. package/dist/semiotic-realtime-core.module.min.js +1 -0
  506. package/dist/semiotic-realtime-react.d.ts +10 -0
  507. package/dist/semiotic-realtime-react.min.js +2 -0
  508. package/dist/semiotic-realtime-react.module.min.js +2 -0
  509. package/dist/semiotic-realtime.d.ts +4 -30
  510. package/dist/semiotic-recipes-core.d.ts +92 -0
  511. package/dist/semiotic-recipes-core.min.js +1 -0
  512. package/dist/semiotic-recipes-core.module.min.js +1 -0
  513. package/dist/semiotic-recipes-react.d.ts +7 -0
  514. package/dist/semiotic-recipes-react.min.js +2 -0
  515. package/dist/semiotic-recipes-react.module.min.js +2 -0
  516. package/dist/semiotic-recipes.d.ts +4 -43
  517. package/dist/semiotic-recipes.min.js +1 -1
  518. package/dist/semiotic-recipes.module.min.js +1 -1
  519. package/dist/semiotic-rough.d.ts +4 -0
  520. package/dist/semiotic-server-edge.d.ts +8 -0
  521. package/dist/semiotic-server-edge.min.js +1 -0
  522. package/dist/semiotic-server-edge.module.min.js +1 -0
  523. package/dist/semiotic-server-node.d.ts +5 -0
  524. package/dist/semiotic-server-node.min.js +1 -0
  525. package/dist/semiotic-server-node.module.min.js +1 -0
  526. package/dist/semiotic-server.d.ts +2 -2
  527. package/dist/semiotic-statisticalOverlays-UOMSFKVJ.module.min.js +2 -0
  528. package/dist/semiotic-themes-core.d.ts +53 -0
  529. package/dist/semiotic-themes-core.min.js +1 -0
  530. package/dist/semiotic-themes-core.module.min.js +1 -0
  531. package/dist/semiotic-themes-react.d.ts +4 -0
  532. package/dist/semiotic-themes-react.min.js +2 -0
  533. package/dist/semiotic-themes-react.module.min.js +2 -0
  534. package/dist/semiotic-themes.d.ts +6 -76
  535. package/dist/semiotic-themes.min.js +1 -2
  536. package/dist/semiotic-themes.module.min.js +1 -2
  537. package/dist/semiotic-utils-core.d.ts +50 -0
  538. package/dist/semiotic-utils-core.min.js +1 -0
  539. package/dist/semiotic-utils-core.module.min.js +1 -0
  540. package/dist/semiotic-utils-react.d.ts +5 -0
  541. package/dist/semiotic-utils-react.min.js +2 -0
  542. package/dist/semiotic-utils-react.module.min.js +2 -0
  543. package/dist/semiotic-utils.d.ts +3 -39
  544. package/dist/semiotic-utils.min.js +1 -2
  545. package/dist/semiotic-utils.module.min.js +1 -2
  546. package/dist/semiotic-value.min.js +1 -1
  547. package/dist/semiotic-value.module.min.js +1 -1
  548. package/dist/semiotic-xy.d.ts +12 -0
  549. package/dist/semiotic.d.ts +44 -8
  550. package/dist/semiotic.min.js +1 -1
  551. package/dist/semiotic.module.min.js +1 -1
  552. package/dist/server.min.js +1 -1
  553. package/dist/server.module.min.js +1 -1
  554. package/dist/test-utils/capturedFrameProps.d.ts +67 -0
  555. package/dist/test-utils/frameMock.d.ts +12 -9
  556. package/dist/xy-chunk-IWD6IB6V.module.min.js +2 -0
  557. package/dist/xy-statisticalOverlays-7RWG6LJT.module.min.js +2 -0
  558. package/dist/xy.min.js +1 -1
  559. package/dist/xy.module.min.js +1 -1
  560. package/package.json +259 -88
  561. package/spec/README.md +152 -0
  562. package/spec/bindings/README.md +35 -0
  563. package/spec/bindings/vega-lite.mjs +112 -0
  564. package/spec/v0.1/annotation-provenance.schema.json +127 -0
  565. package/spec/v0.1/audience-profile.schema.json +67 -0
  566. package/spec/v0.1/chart-capability.schema.json +186 -0
  567. package/dist/components/recipes/gofish.d.ts +0 -207
  568. package/dist/components/recipes/gofishInterpreter.d.ts +0 -52
  569. package/dist/components/recipes/gofishLambdas.d.ts +0 -145
  570. package/dist/semiotic-ai-semiotic-ai-u954ylUn.js +0 -2
  571. package/dist/semiotic-ai-statisticalOverlays-CU7jW05Q.js +0 -1
  572. package/dist/semiotic-semiotic-BmrYbi99.js +0 -2
  573. package/dist/semiotic-statisticalOverlays-IjZw8Lsu.js +0 -1
  574. package/dist/xy-semiotic-xy-Dufu3D0-.js +0 -2
  575. package/dist/xy-statisticalOverlays-3Ni9bRph.js +0 -1
@@ -0,0 +1,278 @@
1
+ import type { Datum } from "../charts/shared/datumTypes";
2
+ import type { CustomLayout } from "../stream/customLayout";
3
+ import type { GeoCustomLayout } from "../stream/geoCustomLayout";
4
+ import type { NetworkCustomLayout } from "../stream/networkCustomLayout";
5
+ import type { OrdinalCustomLayout } from "../stream/ordinalCustomLayout";
6
+ import type { NavTreeNode } from "./navigationTree";
7
+ import type { IntentId } from "./intents";
8
+ import type { VisualizationControlDefinition } from "../controls/controlContract";
9
+ /**
10
+ * A frame identifies the rendering/runtime substrate a recipe expects. It does
11
+ * not identify the recipe's analytical meaning — that lives in dataRoles,
12
+ * encodings, intents, and designContract.
13
+ */
14
+ export type ChartRecipeFrameFamily = "XYFrame" | "OrdinalFrame" | "NetworkFrame" | "GeoFrame" | "XYCustomChart" | "NetworkCustomChart" | "OrdinalCustomChart" | "GeoCustomChart" | "Other";
15
+ export type ChartRecipePortability = "portable" | "local";
16
+ /**
17
+ * JSON-schema-compatible metadata for serializable recipe configuration.
18
+ * Kept structurally open in v0 so callers can use JSON Schema, Zod-emitted
19
+ * schema, or another serializable schema vocabulary without an adapter.
20
+ */
21
+ export type SerializableSchema = Record<string, unknown>;
22
+ interface RecipeDatumMarker<TDatum> {
23
+ /** Type-only marker; never required on a runtime layout function. */
24
+ readonly __chartRecipeDatumType?: TDatum;
25
+ }
26
+ /**
27
+ * Any of Semiotic's four custom-layout contracts. The datum marker preserves a
28
+ * recipe author's datum generic without changing the established layout APIs.
29
+ */
30
+ export type CustomLayoutFunction<TDatum extends Datum = Datum, TConfig extends object = Record<string, unknown>> = (CustomLayout<TConfig> | OrdinalCustomLayout<TConfig> | NetworkCustomLayout<TConfig> | GeoCustomLayout<TConfig>) & RecipeDatumMarker<TDatum>;
31
+ /**
32
+ * Serializable reference used by portable recipes. A host registry resolves
33
+ * the id to executable layout code; local recipes may carry the function
34
+ * directly instead.
35
+ */
36
+ export interface RegisteredRecipeLayout {
37
+ id: string;
38
+ importPath?: string;
39
+ exportName?: string;
40
+ }
41
+ export type DataSemanticType = "nominal" | "ordinal" | "quantitative" | "temporal" | "identifier" | "boolean" | "geographic" | "unknown";
42
+ export interface DataRoleDefinition {
43
+ /** Open role vocabulary: category/value, node-id, edge-source, longitude, etc. */
44
+ role: string;
45
+ /** Concrete/default field used by this recipe/example. May be omitted for computed roles. */
46
+ field?: string;
47
+ /** Recipe config key that can bind this role to a different concrete field. */
48
+ accessor?: string;
49
+ required?: boolean;
50
+ semanticType: DataSemanticType;
51
+ description?: string;
52
+ /** Which input collection owns the field for multi-table/network/geo recipes. */
53
+ source?: "data" | "nodes" | "edges" | "areas" | "points" | "lines" | string;
54
+ }
55
+ export type EncodingChannel = "position" | "count" | "color" | "size" | "shape" | "length" | "area" | "angle" | "connection" | "order" | "texture" | "motion" | "label" | string;
56
+ export interface EncodingDefinition {
57
+ channel: EncodingChannel;
58
+ /** One role or a relationship among several roles. */
59
+ role: string | string[];
60
+ meaning: string;
61
+ /** Other channels that preserve this meaning when the primary channel fails. */
62
+ redundantWith?: string[];
63
+ }
64
+ /**
65
+ * String shorthand keeps v0 manifests approachable. The object form adds the
66
+ * rationale/strength needed by suggestion and explanation surfaces.
67
+ */
68
+ export type IntentDefinition = IntentId | {
69
+ /** Canonical intent id. `name` is accepted as an author-friendly alias. */
70
+ id?: IntentId;
71
+ name?: IntentId;
72
+ strength?: "primary" | "secondary" | "supporting";
73
+ score?: number;
74
+ rationale?: string;
75
+ };
76
+ export interface AudienceFitDefinition {
77
+ audience: string;
78
+ fit: "strong" | "moderate" | "weak" | "avoid";
79
+ rationale?: string;
80
+ }
81
+ export interface LiteracyTargetDefinition {
82
+ concept: string;
83
+ rationale: string;
84
+ }
85
+ /**
86
+ * Example-local audience vocabulary. This mirrors the seed manifests used in
87
+ * the docs while audienceFit supports a compact list for ranking systems.
88
+ */
89
+ export interface RecipeAudienceDefinition {
90
+ primary?: string;
91
+ familiarity?: Record<string, string | number>;
92
+ literacyTargets?: LiteracyTargetDefinition[];
93
+ }
94
+ export interface ReceptionDefinition {
95
+ channels: string[];
96
+ strengths?: string[];
97
+ risks?: string[];
98
+ scaffolds?: string[];
99
+ /** Whether distinct form/memorability is an intentional reception benefit. */
100
+ memorableForm?: boolean;
101
+ }
102
+ export interface DesignContractDefinition {
103
+ whyCustom: string;
104
+ /** Alias used by Intent Mark / portable manifests. */
105
+ whyThisForm?: string;
106
+ whyNotDefault?: string;
107
+ defaultAlternative?: string;
108
+ tradeoff?: string;
109
+ caveats?: string[];
110
+ misuse?: string[];
111
+ }
112
+ export interface RecipeStrategyContext<TDatum extends Datum = Datum, TConfig extends object = Record<string, unknown>> {
113
+ data: ReadonlyArray<TDatum>;
114
+ config: TConfig;
115
+ locale?: string;
116
+ }
117
+ export interface RecipeDescription {
118
+ text: string;
119
+ levels?: {
120
+ l1?: string;
121
+ l2?: string;
122
+ l3?: string;
123
+ l4?: string;
124
+ };
125
+ }
126
+ export type DescriptionStrategy<TDatum extends Datum = Datum, TConfig extends object = Record<string, unknown>> = (context: RecipeStrategyContext<TDatum, TConfig>) => RecipeDescription;
127
+ export type NavigationStrategy<TDatum extends Datum = Datum, TConfig extends object = Record<string, unknown>> = (context: RecipeStrategyContext<TDatum, TConfig>) => NavTreeNode;
128
+ /**
129
+ * JSON-safe navigation contract for portable recipes. Role names resolve
130
+ * through `dataRoles`; templates use `{field}`, `{role}`, and `{count}` tokens.
131
+ */
132
+ export interface PortableNavigationStrategy {
133
+ groupByRole?: string;
134
+ groupBy?: string[];
135
+ itemLabelTemplate?: string;
136
+ summaryTemplate?: string;
137
+ idRole?: string;
138
+ }
139
+ export interface AccessibilityTableField {
140
+ role?: string;
141
+ field?: string;
142
+ label: string;
143
+ format?: "number" | "percent" | "date" | string;
144
+ }
145
+ export interface AccessibilityExpectations {
146
+ keyboardNavigation?: "required" | "recommended" | "not-applicable";
147
+ accessibleTable?: "required" | "recommended" | "not-applicable";
148
+ description?: "required" | "recommended" | "not-applicable";
149
+ /** The semantic unit readers should traverse instead of raw visual primitives. */
150
+ navigationGranularity?: "datum" | "category" | "group" | "node" | "edge" | "summary" | string;
151
+ dataBearingSceneNodes?: "required" | "recommended" | "not-applicable";
152
+ fallbackTable?: boolean;
153
+ redundantEncodings?: string[];
154
+ requirements?: string[];
155
+ /** Fields the scene-backed accessible table must preserve. */
156
+ tableFields?: AccessibilityTableField[];
157
+ /** Author-friendly aliases used by portable manifests. */
158
+ requiresTitle?: boolean;
159
+ requiresSummary?: boolean;
160
+ requiresAccessibleTable?: boolean;
161
+ minimumHitTarget?: number;
162
+ tableRoles?: string[];
163
+ }
164
+ export interface MobileInteractionDefinition {
165
+ /** Primary phone interaction, e.g. "tap", "button", "drag", "none". */
166
+ primary?: string;
167
+ /** Standard non-hover alternatives available to the reader. */
168
+ alternatives?: string[];
169
+ /** How hover detail is recovered on touch devices, e.g. "tap-to-lock". */
170
+ hoverFallback?: string;
171
+ /** Comfortable pointer target in CSS pixels. */
172
+ targetSize?: number;
173
+ }
174
+ export interface MobileLabelDefinition {
175
+ /** Label strategy at phone width, e.g. "direct", "inline", "external", "legend". */
176
+ strategy?: string;
177
+ /** Minimum resolved label font size in CSS pixels. */
178
+ minFontSize?: number;
179
+ }
180
+ export interface MobileCustomSemanticsDefinition {
181
+ /** Whether emitted scene nodes retain data semantics for audit/grounding. */
182
+ dataBearingSceneNodes?: boolean;
183
+ /** Whether emitted scene nodes use stable ids across renders. */
184
+ stableIds?: boolean;
185
+ /** Semantic unit readers should traverse on a phone. */
186
+ navigationGranularity?: string;
187
+ }
188
+ export interface MobileDesignDefinition {
189
+ /** Overall mobile design strategy, e.g. "responsive", "small-multiples", "summary-cards". */
190
+ strategy?: string;
191
+ /** True when the layout intentionally recomputes for narrow viewports. */
192
+ responsive?: boolean;
193
+ /** Alias for responsive, friendlier in portable manifests. */
194
+ supportsResponsiveLayout?: boolean;
195
+ /** Widths this recipe/adapter has designed variants for. */
196
+ breakpoints?: number[];
197
+ /** Minimum CSS viewport width the authored design supports. */
198
+ minViewportWidth?: number;
199
+ /** Mobile mark budget before aggregation/faceting/progressive disclosure. */
200
+ maxMarks?: number;
201
+ /** Mobile annotation budget before collapsing notes out of the plot. */
202
+ maxAnnotations?: number;
203
+ /** Minimum pointer target the recipe/adapter provides. */
204
+ minimumHitTarget?: number;
205
+ /** Whether the mobile view provides a title/summary/card before the visual. */
206
+ summary?: boolean | string;
207
+ interaction?: MobileInteractionDefinition;
208
+ labels?: MobileLabelDefinition;
209
+ custom?: MobileCustomSemanticsDefinition;
210
+ }
211
+ export interface RecipeAuditExpectations {
212
+ maxCategories?: number;
213
+ maxMarks?: number;
214
+ minimumHitTargetSize?: number;
215
+ requireStableIds?: boolean;
216
+ requireDatumCoverage?: boolean;
217
+ expectedSceneNodeTypes?: string[];
218
+ checks?: string[];
219
+ }
220
+ export interface RecipeExample<TDatum extends Datum = Datum, TConfig extends object = Record<string, unknown>> {
221
+ name: string;
222
+ description?: string;
223
+ data?: ReadonlyArray<TDatum>;
224
+ config?: TConfig;
225
+ path?: string;
226
+ }
227
+ export interface RecipePortabilityConfig {
228
+ schema: SerializableSchema;
229
+ }
230
+ /**
231
+ * Declarative identity/meaning contract for a custom chart recipe.
232
+ *
233
+ * Required v0 fields intentionally stay small. A recipe can participate before
234
+ * it has a schema, generated description, custom navigation tree, or detailed
235
+ * audit expectations; those layers can be added without changing its identity.
236
+ */
237
+ export interface ChartRecipe<TDatum extends Datum = Datum, TConfig extends object = Record<string, unknown>> {
238
+ id: string;
239
+ name: string;
240
+ version?: string;
241
+ frameFamily: ChartRecipeFrameFamily;
242
+ portability: ChartRecipePortability;
243
+ layout?: CustomLayoutFunction<TDatum, TConfig> | RegisteredRecipeLayout;
244
+ layoutConfigSchema?: SerializableSchema;
245
+ portabilityConfig?: RecipePortabilityConfig;
246
+ dataRoles: DataRoleDefinition[];
247
+ encodings?: EncodingDefinition[];
248
+ intents: IntentDefinition[];
249
+ audience?: RecipeAudienceDefinition;
250
+ audienceFit?: AudienceFitDefinition[];
251
+ reception?: ReceptionDefinition;
252
+ designContract: DesignContractDefinition;
253
+ accessibility: AccessibilityExpectations;
254
+ /** Phone-specific contract consumed by audits, agents, and portable adapters. */
255
+ mobile?: MobileDesignDefinition;
256
+ /** Portable controls expose state semantics, never frame-specific handlers. */
257
+ controls?: ReadonlyArray<VisualizationControlDefinition>;
258
+ description?: DescriptionStrategy<TDatum, TConfig>;
259
+ navigation?: NavigationStrategy<TDatum, TConfig> | PortableNavigationStrategy;
260
+ audit?: RecipeAuditExpectations;
261
+ caveats?: string[];
262
+ examples?: RecipeExample<TDatum, TConfig>[];
263
+ }
264
+ /**
265
+ * Define a chart recipe with full generic inference. Intentionally an identity
266
+ * function in v0: the value is the shared, inspectable shape rather than hidden
267
+ * registration or runtime behavior.
268
+ */
269
+ export declare function defineChartRecipe<TDatum extends Datum = Datum, TConfig extends object = Record<string, unknown>>(recipe: ChartRecipe<TDatum, TConfig>): ChartRecipe<TDatum, TConfig>;
270
+ /**
271
+ * Runtime validation is intentionally limited to contract integrity. It does
272
+ * not try to validate a recipe's domain-specific layout configuration.
273
+ */
274
+ export declare function validateChartRecipe<TDatum extends Datum = Datum, TConfig extends object = Record<string, unknown>>(recipe: ChartRecipe<TDatum, TConfig>): void;
275
+ export declare function isRegisteredRecipeLayout(layout: unknown): layout is RegisteredRecipeLayout;
276
+ /** True when a value can cross JSON/CLI/MCP boundaries without data loss. */
277
+ export declare function isJsonSafe(value: unknown, seen?: Set<object>): boolean;
278
+ export {};
@@ -86,6 +86,108 @@ export interface DataPitfallsBridgeResult {
86
86
  diagnosis?: DiagnosisResult;
87
87
  accessibility?: AccessibilityAuditResult;
88
88
  }
89
+ export type DataPitfallsSeverity = "info" | "warning" | "error" | (string & {});
90
+ export type DataPitfallsInputKind = "text" | "code" | "image" | "document" | "slides" | "chain" | (string & {});
91
+ export interface DataPitfallsFinding {
92
+ ruleId: string;
93
+ name: string;
94
+ domain: string;
95
+ severity: DataPitfallsSeverity;
96
+ evidence?: string;
97
+ remediation?: string;
98
+ explanation?: string;
99
+ condition?: string;
100
+ [key: string]: unknown;
101
+ }
102
+ export interface DataPitfallsReport {
103
+ kind: DataPitfallsInputKind;
104
+ findings: DataPitfallsFinding[];
105
+ [key: string]: unknown;
106
+ }
107
+ export type DataPitfallsNotificationLevel = "info" | "warning" | "error" | "neutral";
108
+ export interface DataPitfallsChartNotification {
109
+ id?: string;
110
+ level?: DataPitfallsNotificationLevel;
111
+ title?: string;
112
+ message: string;
113
+ source?: string;
114
+ dismissible?: boolean;
115
+ }
116
+ export type DataPitfallsNotificationMessage = (finding: DataPitfallsFinding, index: number, report: DataPitfallsReport) => string;
117
+ export interface DataPitfallsNotificationBridgeOptions {
118
+ /** Cap emitted notifications. `meta.count` keeps the uncapped finding count. */
119
+ max?: number;
120
+ /** Prefix for the source tag. Default: "datapitfalls". */
121
+ sourcePrefix?: string;
122
+ /** Passed through to ChartContainer notifications when set. */
123
+ dismissible?: boolean;
124
+ /** Custom message mapper. Defaults to remediation, explanation, evidence, then condition. */
125
+ message?: DataPitfallsNotificationMessage;
126
+ }
127
+ export interface DataPitfallsNotificationBridge {
128
+ notifications: DataPitfallsChartNotification[];
129
+ meta: {
130
+ count: number;
131
+ kind: DataPitfallsInputKind;
132
+ };
133
+ }
134
+ export type DataPitfallsAnnotationType = "label" | "text";
135
+ export interface DataPitfallsSemioticAnnotation {
136
+ type: DataPitfallsAnnotationType;
137
+ title: string;
138
+ label: string;
139
+ wrap: number;
140
+ color: string;
141
+ className: string;
142
+ emphasis: "primary" | "secondary";
143
+ provenance: {
144
+ author: "datapitfalls";
145
+ authorKind: "watcher";
146
+ source: "computed";
147
+ basis: "llm-inference";
148
+ stableId: string;
149
+ };
150
+ dataPitfall: {
151
+ ruleId: string;
152
+ domain: string;
153
+ severity: DataPitfallsSeverity;
154
+ evidence: string;
155
+ };
156
+ [key: string]: unknown;
157
+ }
158
+ export interface DataPitfallsAnnotationBridgeOptions {
159
+ /** Override severity colors. Merged over the defaults. */
160
+ palette?: Partial<Record<string, string>>;
161
+ /** Cap emitted annotations. `meta.count` keeps the uncapped finding count. */
162
+ max?: number;
163
+ /** Text wrap width passed through to Semiotic v3 annotations. Default: 240. */
164
+ wrap?: number;
165
+ /** Semiotic v3 annotation type. Default: "label". */
166
+ type?: DataPitfallsAnnotationType;
167
+ /**
168
+ * Optional host-owned anchoring. Return `{ x, y }`, data accessors, or any
169
+ * other Semiotic annotation fields for findings you can position.
170
+ */
171
+ anchorFor?: (finding: DataPitfallsFinding, index: number, report: DataPitfallsReport) => Record<string, unknown> | null | undefined;
172
+ }
173
+ export interface DataPitfallsAnnotationBridge {
174
+ annotations: DataPitfallsSemioticAnnotation[];
175
+ meta: {
176
+ count: number;
177
+ kind: DataPitfallsInputKind;
178
+ };
179
+ }
180
+ export declare const DEFAULT_DATA_PITFALLS_ANNOTATION_PALETTE: {
181
+ readonly info: "#2563eb";
182
+ readonly warning: "#d97706";
183
+ readonly error: "#dc2626";
184
+ };
185
+ export declare function dataPitfallsFindingToNotification(finding: DataPitfallsFinding, options?: DataPitfallsNotificationBridgeOptions, index?: number, report?: DataPitfallsReport): DataPitfallsChartNotification;
186
+ export declare function toDataPitfallsNotifications(report: DataPitfallsReport, options?: DataPitfallsNotificationBridgeOptions): DataPitfallsChartNotification[];
187
+ export declare function buildDataPitfallsNotificationBridge(report: DataPitfallsReport, options?: DataPitfallsNotificationBridgeOptions): DataPitfallsNotificationBridge;
188
+ export declare function dataPitfallsFindingToAnnotation(finding: DataPitfallsFinding, options?: DataPitfallsAnnotationBridgeOptions, index?: number, report?: DataPitfallsReport): DataPitfallsSemioticAnnotation;
189
+ export declare function toDataPitfallsAnnotations(report: DataPitfallsReport, options?: DataPitfallsAnnotationBridgeOptions): DataPitfallsSemioticAnnotation[];
190
+ export declare function buildDataPitfallsAnnotationBridge(report: DataPitfallsReport, options?: DataPitfallsAnnotationBridgeOptions): DataPitfallsAnnotationBridge;
89
191
  /**
90
192
  * Build a Data Pitfalls-compatible chain input from a Semiotic chart config.
91
193
  *
@@ -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;
@@ -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;
@@ -6,8 +6,9 @@
6
6
  * chart for the wrong data misleads exactly the reader who can't tell. This
7
7
  * module is the trust layer an AI framework wraps around chart generation: it
8
8
  * turns an LLM's *proposal* (a component name + props) into a result that is
9
- * either guaranteed-renderable or accompanied by structured reasons and ranked
10
- * alternatives to retry with never a broken chart.
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.
11
12
  *
12
13
  * It composes the already-shipped surface into the documented loop —
13
14
  * **generate → validate → diagnose → repair → render+prove** — and rides
@@ -128,7 +129,7 @@ export declare function toAnthropicTool(def: ChartToolDefinition): {
128
129
  description: string;
129
130
  input_schema: Record<string, unknown>;
130
131
  };
131
- /** Shape a tool definition for the OpenAI / function-calling `tools` array. */
132
+ /** Shape a tool definition for the OpenAI Chat Completions `tools` array. */
132
133
  export declare function toOpenAITool(def: ChartToolDefinition): {
133
134
  type: "function";
134
135
  function: {
@@ -137,6 +138,30 @@ export declare function toOpenAITool(def: ChartToolDefinition): {
137
138
  parameters: Record<string, unknown>;
138
139
  };
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;
140
165
  /**
141
166
  * Build the execute handler for the chart tool: it runs {@link prepareChart} on
142
167
  * the tool input and returns the trust-loop result. Inject a `render` fn (from
@@ -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;