semiotic 3.7.5 → 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 (481) hide show
  1. package/CLAUDE.md +54 -12
  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 +1651 -154
  7. package/ai/examples.md +174 -0
  8. package/ai/schema.json +2733 -536
  9. package/ai/surface-manifest.json +200 -0
  10. package/ai/system-prompt.md +18 -3
  11. package/dist/components/CategoryColors.d.ts +1 -1
  12. package/dist/components/ChartContainer.d.ts +91 -0
  13. package/dist/components/ChartGrid.d.ts +11 -1
  14. package/dist/components/CircularBrush.d.ts +61 -0
  15. package/dist/components/ContextLayout.d.ts +5 -1
  16. package/dist/components/DirectManipulationControl.d.ts +63 -0
  17. package/dist/components/LinkedCharts.d.ts +3 -1
  18. package/dist/components/MobileAnnotationCalloutList.d.ts +13 -0
  19. package/dist/components/MobileChartContainer.d.ts +51 -0
  20. package/dist/components/MobileStandardControls.d.ts +68 -0
  21. package/dist/components/SmallMultipleChart.d.ts +84 -0
  22. package/dist/components/Tooltip/FlippingTooltip.d.ts +21 -0
  23. package/dist/components/ai/ChartRecipe.d.ts +16 -0
  24. package/dist/components/ai/IntentMark.d.ts +15 -0
  25. package/dist/components/ai/chartCapabilities.d.ts +8 -1
  26. package/dist/components/ai/chartCapabilityTypes.d.ts +26 -1
  27. package/dist/components/ai/chartClinic.d.ts +91 -0
  28. package/dist/components/ai/chartRecipeRegistry.d.ts +14 -0
  29. package/dist/components/ai/chartRecipes.d.ts +278 -0
  30. package/dist/components/ai/dataPitfallsBridge.d.ts +102 -0
  31. package/dist/components/ai/describeChart.d.ts +7 -0
  32. package/dist/components/ai/describeRecipeChart.d.ts +16 -0
  33. package/dist/components/ai/generativeChart.d.ts +28 -3
  34. package/dist/components/ai/intentManifest.d.ts +62 -0
  35. package/dist/components/ai/navigationTree.d.ts +3 -0
  36. package/dist/components/ai/observedSceneAudit.d.ts +72 -0
  37. package/dist/components/ai/readerGrounding.d.ts +83 -0
  38. package/dist/components/ai/recipeCapability.d.ts +8 -0
  39. package/dist/components/ai/recipeNavigation.d.ts +13 -0
  40. package/dist/components/ai/recipeSemantics.d.ts +11 -0
  41. package/dist/components/ai/repairChartConfig.d.ts +9 -0
  42. package/dist/components/ai/suggestCharts.d.ts +11 -1
  43. package/dist/components/charts/custom/GeoCustomChart.d.ts +48 -0
  44. package/dist/components/charts/custom/NetworkCustomChart.d.ts +8 -2
  45. package/dist/components/charts/custom/OrdinalCustomChart.d.ts +8 -2
  46. package/dist/components/charts/custom/XYCustomChart.d.ts +11 -2
  47. package/dist/components/charts/geo/DistanceCartogram.d.ts +1 -1
  48. package/dist/components/charts/geo/FlowMap.d.ts +1 -1
  49. package/dist/components/charts/geo/ProportionalSymbolMap.d.ts +1 -1
  50. package/dist/components/charts/geo/index.d.ts +2 -0
  51. package/dist/components/charts/index.d.ts +29 -1
  52. package/dist/components/charts/network/ChordDiagram.d.ts +1 -1
  53. package/dist/components/charts/network/CirclePack.d.ts +1 -1
  54. package/dist/components/charts/network/ForceDirectedGraph.d.ts +15 -5
  55. package/dist/components/charts/network/OrbitDiagram.d.ts +1 -1
  56. package/dist/components/charts/network/ProcessSankey.d.ts +1 -1
  57. package/dist/components/charts/network/SankeyDiagram.d.ts +1 -1
  58. package/dist/components/charts/network/TreeDiagram.d.ts +1 -1
  59. package/dist/components/charts/network/Treemap.d.ts +1 -1
  60. package/dist/components/charts/network/useForceLayout.d.ts +17 -0
  61. package/dist/components/charts/ordinal/BarChart.d.ts +1 -1
  62. package/dist/components/charts/ordinal/BoxPlot.d.ts +1 -1
  63. package/dist/components/charts/ordinal/DonutChart.d.ts +1 -1
  64. package/dist/components/charts/ordinal/DotPlot.d.ts +1 -1
  65. package/dist/components/charts/ordinal/FunnelChart.d.ts +1 -1
  66. package/dist/components/charts/ordinal/GroupedBarChart.d.ts +1 -1
  67. package/dist/components/charts/ordinal/Histogram.d.ts +1 -1
  68. package/dist/components/charts/ordinal/PieChart.d.ts +1 -1
  69. package/dist/components/charts/ordinal/RidgelinePlot.d.ts +1 -1
  70. package/dist/components/charts/ordinal/StackedBarChart.d.ts +1 -1
  71. package/dist/components/charts/ordinal/SwarmPlot.d.ts +1 -1
  72. package/dist/components/charts/ordinal/SwimlaneChart.d.ts +1 -1
  73. package/dist/components/charts/ordinal/ViolinPlot.d.ts +1 -1
  74. package/dist/components/charts/physics/ChainReactionChart.d.ts +9 -0
  75. package/dist/components/charts/physics/CollisionSwarmChart.capability.d.ts +2 -0
  76. package/dist/components/charts/physics/CollisionSwarmChart.d.ts +47 -0
  77. package/dist/components/charts/physics/EventDropChart.capability.d.ts +2 -0
  78. package/dist/components/charts/physics/EventDropChart.d.ts +53 -0
  79. package/dist/components/charts/physics/GaltonBoardChart.capability.d.ts +2 -0
  80. package/dist/components/charts/physics/GaltonBoardChart.d.ts +66 -0
  81. package/dist/components/charts/physics/GauntletChart.capability.d.ts +2 -0
  82. package/dist/components/charts/physics/GauntletChart.d.ts +73 -0
  83. package/dist/components/charts/physics/PhysicalFlowChart.capability.d.ts +2 -0
  84. package/dist/components/charts/physics/PhysicalFlowChart.d.ts +63 -0
  85. package/dist/components/charts/physics/PhysicsCustomChart.d.ts +120 -0
  86. package/dist/components/charts/physics/PhysicsPileChart.capability.d.ts +2 -0
  87. package/dist/components/charts/physics/PhysicsPileChart.d.ts +53 -0
  88. package/dist/components/charts/physics/ProcessFlowChart.capability.d.ts +2 -0
  89. package/dist/components/charts/physics/ProcessFlowChart.d.ts +96 -0
  90. package/dist/components/charts/physics/chainReactionOverlay.d.ts +22 -0
  91. package/dist/components/charts/physics/chainReactionRuntime.d.ts +37 -0
  92. package/dist/components/charts/physics/chainReactionTypes.d.ts +97 -0
  93. package/dist/components/charts/physics/collisionSwarmPhysics.d.ts +27 -0
  94. package/dist/components/charts/physics/dependencyMachine.d.ts +188 -0
  95. package/dist/components/charts/physics/eventDropPhysics.d.ts +64 -0
  96. package/dist/components/charts/physics/galtonBoardPhysics.d.ts +28 -0
  97. package/dist/components/charts/physics/gauntletChartProps.d.ts +67 -0
  98. package/dist/components/charts/physics/gauntletChrome.d.ts +33 -0
  99. package/dist/components/charts/physics/gauntletController.d.ts +73 -0
  100. package/dist/components/charts/physics/gauntletEffects.d.ts +36 -0
  101. package/dist/components/charts/physics/gauntletPhysics.d.ts +71 -0
  102. package/dist/components/charts/physics/gauntletRuntime.d.ts +42 -0
  103. package/dist/components/charts/physics/gauntletTypes.d.ts +213 -0
  104. package/dist/components/charts/physics/physicalFlowPhysics.d.ts +57 -0
  105. package/dist/components/charts/physics/physicsChartShared.d.ts +41 -0
  106. package/dist/components/charts/physics/physicsChartUtils.d.ts +18 -0
  107. package/dist/components/charts/physics/physicsEncoding.d.ts +142 -0
  108. package/dist/components/charts/physics/physicsHocHandle.d.ts +53 -0
  109. package/dist/components/charts/physics/physicsHocUtils.d.ts +128 -0
  110. package/dist/components/charts/physics/physicsPilePhysics.d.ts +41 -0
  111. package/dist/components/charts/physics/physicsProcessPrimitives.d.ts +38 -0
  112. package/dist/components/charts/physics/processFlowPhysics.d.ts +97 -0
  113. package/dist/components/charts/realtime/RealtimeHeatmap.d.ts +9 -1
  114. package/dist/components/charts/realtime/RealtimeHistogram.d.ts +9 -1
  115. package/dist/components/charts/realtime/RealtimeLineChart.d.ts +9 -1
  116. package/dist/components/charts/realtime/RealtimeSwarmChart.d.ts +16 -2
  117. package/dist/components/charts/realtime/RealtimeWaterfallChart.d.ts +9 -1
  118. package/dist/components/charts/shared/auditMobileVisualization.d.ts +91 -0
  119. package/dist/components/charts/shared/chartDefinitionPilot.d.ts +145 -0
  120. package/dist/components/charts/shared/chartFamilySets.d.ts +20 -0
  121. package/dist/components/charts/shared/chartSpecCore.d.ts +165 -0
  122. package/dist/components/charts/shared/chartSpecs.d.ts +8 -127
  123. package/dist/components/charts/shared/chartSpecsGeo.d.ts +2 -0
  124. package/dist/components/charts/shared/chartSpecsNetwork.d.ts +2 -0
  125. package/dist/components/charts/shared/chartSpecsOrdinal.d.ts +2 -0
  126. package/dist/components/charts/shared/chartSpecsPhysics.d.ts +2 -0
  127. package/dist/components/charts/shared/chartSpecsRealtime.d.ts +2 -0
  128. package/dist/components/charts/shared/chartSpecsValue.d.ts +2 -0
  129. package/dist/components/charts/shared/chartSpecsXY.d.ts +2 -0
  130. package/dist/components/charts/shared/colorContrast.d.ts +3 -0
  131. package/dist/components/charts/shared/colorUtils.d.ts +16 -1
  132. package/dist/components/charts/shared/diagnoseAnnotationChecks.d.ts +4 -0
  133. package/dist/components/charts/shared/diagnoseConfig.d.ts +9 -14
  134. package/dist/components/charts/shared/diagnoseMisleadingChecks.d.ts +9 -0
  135. package/dist/components/charts/shared/diagnosePhysicsChecks.d.ts +3 -0
  136. package/dist/components/charts/shared/diagnoseTypes.d.ts +10 -0
  137. package/dist/components/charts/shared/hooks.d.ts +28 -5
  138. package/dist/components/charts/shared/motionEncoding.d.ts +145 -0
  139. package/dist/components/charts/shared/responsiveRules.d.ts +56 -0
  140. package/dist/components/charts/shared/streamPropsHelpers.d.ts +12 -2
  141. package/dist/components/charts/shared/temporalStrings.d.ts +7 -0
  142. package/dist/components/charts/shared/types.d.ts +49 -1
  143. package/dist/components/charts/shared/useChartSetup.d.ts +9 -2
  144. package/dist/components/charts/shared/useCustomChartSetup.d.ts +14 -5
  145. package/dist/components/charts/shared/useNetworkChartSetup.d.ts +6 -2
  146. package/dist/components/charts/shared/useOrdinalPieceStyle.d.ts +1 -1
  147. package/dist/components/charts/shared/useStreamingLegend.d.ts +1 -1
  148. package/dist/components/charts/shared/useSyncedPushData.d.ts +49 -0
  149. package/dist/components/charts/shared/validationMap.d.ts +0 -11
  150. package/dist/components/charts/xy/AreaChart.d.ts +1 -1
  151. package/dist/components/charts/xy/BubbleChart.d.ts +1 -1
  152. package/dist/components/charts/xy/LineChart.d.ts +1 -1
  153. package/dist/components/charts/xy/MinimapChart.d.ts +1 -1
  154. package/dist/components/charts/xy/MultiAxisLineChart.d.ts +2 -2
  155. package/dist/components/charts/xy/QuadrantChart.d.ts +1 -1
  156. package/dist/components/charts/xy/Scatterplot.d.ts +1 -1
  157. package/dist/components/charts/xy/ScatterplotMatrix.d.ts +11 -1
  158. package/dist/components/charts/xy/StackedAreaChart.d.ts +9 -4
  159. package/dist/components/controls/controlAudit.d.ts +24 -0
  160. package/dist/components/controls/controlContract.d.ts +57 -0
  161. package/dist/components/data/fromFlintChart.d.ts +74 -0
  162. package/dist/components/data/fromVegaLite.d.ts +27 -0
  163. package/dist/components/data/portability/index.d.ts +6 -3
  164. package/dist/components/data/portability/result.d.ts +52 -0
  165. package/dist/components/data/portability/spec.d.ts +31 -0
  166. package/dist/components/data/portability/vegaLite.d.ts +24 -6
  167. package/dist/components/export/chartConfig.d.ts +11 -0
  168. package/dist/components/realtime/types.d.ts +11 -0
  169. package/dist/components/recipes/annotationLayout.d.ts +29 -0
  170. package/dist/components/recipes/axisFixedForce.d.ts +119 -0
  171. package/dist/components/recipes/{gofishBoba.d.ts → boba.d.ts} +2 -2
  172. package/dist/components/recipes/cyclical.d.ts +39 -0
  173. package/dist/components/recipes/edgeRouter.d.ts +103 -0
  174. package/dist/components/recipes/forceLayout.d.ts +48 -0
  175. package/dist/components/recipes/forceLayoutAsync.d.ts +17 -0
  176. package/dist/components/recipes/gofishBobaHandwritten.d.ts +3 -0
  177. package/dist/components/recipes/gofishDisplayListFixtures.generated.d.ts +37 -0
  178. package/dist/components/recipes/gofishIR.d.ts +178 -132
  179. package/dist/components/recipes/gofishIRExamples.d.ts +30 -81
  180. package/dist/components/recipes/intervalLanes.d.ts +87 -0
  181. package/dist/components/recipes/intervals.d.ts +80 -0
  182. package/dist/components/recipes/isometricLandmarks.d.ts +88 -0
  183. package/dist/components/recipes/isotypeGlyphs.d.ts +17 -0
  184. package/dist/components/recipes/mobileAnnotationStrategy.d.ts +48 -0
  185. package/dist/components/recipes/mobileChartFamilyRecipes.d.ts +59 -0
  186. package/dist/components/recipes/networkAnalysis.d.ts +102 -0
  187. package/dist/components/recipes/networkLayouts.d.ts +83 -0
  188. package/dist/components/recipes/physics.d.ts +122 -0
  189. package/dist/components/recipes/physicsReference.d.ts +102 -0
  190. package/dist/components/recipes/processAggregates.d.ts +32 -0
  191. package/dist/components/recipes/processChrome.d.ts +67 -0
  192. package/dist/components/recipes/processJourney.d.ts +54 -0
  193. package/dist/components/recipes/processPhysics.d.ts +300 -0
  194. package/dist/components/recipes/processVolumeGeometry.d.ts +28 -0
  195. package/dist/components/recipes/radialCoords.d.ts +69 -0
  196. package/dist/components/recipes/random.d.ts +2 -0
  197. package/dist/components/recipes/recipeChrome.d.ts +91 -0
  198. package/dist/components/recipes/recipeGlyph.d.ts +42 -0
  199. package/dist/components/recipes/recipeLegend.d.ts +53 -1
  200. package/dist/components/recipes/recipeUtils.d.ts +52 -0
  201. package/dist/components/recipes/runs.d.ts +59 -0
  202. package/dist/components/recipes/tokenEncoding.d.ts +157 -0
  203. package/dist/components/recipes/tokenLayer.d.ts +79 -0
  204. package/dist/components/recipes/unitize.d.ts +108 -0
  205. package/dist/components/recipes/vector.d.ts +28 -0
  206. package/dist/components/recipes/waffle.d.ts +43 -0
  207. package/dist/components/semiotic-ai-core.d.ts +47 -0
  208. package/dist/components/semiotic-ai.d.ts +50 -8
  209. package/dist/components/semiotic-controls.d.ts +18 -0
  210. package/dist/components/semiotic-experimental.d.ts +38 -9
  211. package/dist/components/semiotic-geo.d.ts +11 -0
  212. package/dist/components/semiotic-network.d.ts +11 -0
  213. package/dist/components/semiotic-ordinal.d.ts +8 -0
  214. package/dist/components/semiotic-physics-matter.d.ts +10 -0
  215. package/dist/components/semiotic-physics-rapier.d.ts +9 -0
  216. package/dist/components/semiotic-physics.d.ts +56 -0
  217. package/dist/components/semiotic-realtime-core.d.ts +34 -0
  218. package/dist/components/semiotic-realtime-react.d.ts +10 -0
  219. package/dist/components/semiotic-realtime.d.ts +4 -30
  220. package/dist/components/semiotic-recipes-core.d.ts +92 -0
  221. package/dist/components/semiotic-recipes-react.d.ts +7 -0
  222. package/dist/components/semiotic-recipes.d.ts +4 -43
  223. package/dist/components/semiotic-server-edge.d.ts +8 -0
  224. package/dist/components/semiotic-server-node.d.ts +5 -0
  225. package/dist/components/semiotic-server.d.ts +2 -2
  226. package/dist/components/semiotic-themes-core.d.ts +53 -0
  227. package/dist/components/semiotic-themes-react.d.ts +4 -0
  228. package/dist/components/semiotic-themes.d.ts +6 -76
  229. package/dist/components/semiotic-utils-core.d.ts +46 -0
  230. package/dist/components/semiotic-utils-react.d.ts +5 -0
  231. package/dist/components/semiotic-utils.d.ts +3 -39
  232. package/dist/components/semiotic-xy.d.ts +8 -0
  233. package/dist/components/semiotic.d.ts +35 -7
  234. package/dist/components/server/animatedGif.d.ts +36 -0
  235. package/dist/components/server/renderEvidence.d.ts +1 -1
  236. package/dist/components/server/renderToStaticSVG.d.ts +3 -35
  237. package/dist/components/server/serverChartConfigShared.d.ts +17 -0
  238. package/dist/components/server/serverChartConfigs.d.ts +19 -9
  239. package/dist/components/server/serverChartConfigsCustom.d.ts +5 -0
  240. package/dist/components/server/serverChartConfigsGeo.d.ts +9 -0
  241. package/dist/components/server/serverChartConfigsNetwork.d.ts +8 -0
  242. package/dist/components/server/serverChartConfigsOrdinal.d.ts +16 -0
  243. package/dist/components/server/serverChartConfigsPhysics.d.ts +9 -0
  244. package/dist/components/server/serverChartConfigsXY.d.ts +11 -0
  245. package/dist/components/server/staticGeo.d.ts +4 -0
  246. package/dist/components/server/staticLegend.d.ts +1 -1
  247. package/dist/components/server/staticNetwork.d.ts +8 -0
  248. package/dist/components/server/staticOrdinal.d.ts +11 -0
  249. package/dist/components/server/staticPhysics.d.ts +3 -0
  250. package/dist/components/server/staticSVGChrome.d.ts +110 -0
  251. package/dist/components/server/staticXY.d.ts +4 -0
  252. package/dist/components/store/ObservationStore.d.ts +3 -2
  253. package/dist/components/store/themeSerialization.d.ts +32 -0
  254. package/dist/components/store/useChartInterrogation.d.ts +9 -0
  255. package/dist/components/stream/AccessibleDataTable.d.ts +3 -13
  256. package/dist/components/stream/FocusRing.d.ts +4 -2
  257. package/dist/components/stream/GeoCanvasHitTester.d.ts +1 -1
  258. package/dist/components/stream/GeoPipelineStore.d.ts +28 -0
  259. package/dist/components/stream/NetworkPipelineStore.d.ts +31 -26
  260. package/dist/components/stream/NetworkSVGOverlay.d.ts +4 -1
  261. package/dist/components/stream/OrdinalPipelineStore.d.ts +46 -2
  262. package/dist/components/stream/PipelineStore.d.ts +81 -170
  263. package/dist/components/stream/SceneGraph.d.ts +9 -1
  264. package/dist/components/stream/StreamGeoFrame.d.ts +1 -1
  265. package/dist/components/stream/StreamNetworkFrame.d.ts +1 -1
  266. package/dist/components/stream/StreamOrdinalFrame.d.ts +1 -1
  267. package/dist/components/stream/StreamXYFrame.d.ts +2 -18
  268. package/dist/components/stream/accessibleDataRows.d.ts +33 -0
  269. package/dist/components/stream/accessorUtils.d.ts +23 -10
  270. package/dist/components/stream/brushAccessibility.d.ts +25 -0
  271. package/dist/components/stream/canvasBackground.d.ts +24 -0
  272. package/dist/components/stream/canvasSetup.d.ts +4 -1
  273. package/dist/components/stream/customLayoutFailure.d.ts +33 -0
  274. package/dist/components/stream/customLayoutPalette.d.ts +19 -9
  275. package/dist/components/stream/frameThemeColors.d.ts +24 -0
  276. package/dist/components/stream/geoAnnotationAnchors.d.ts +14 -0
  277. package/dist/components/stream/geoCartogram.d.ts +17 -0
  278. package/dist/components/stream/geoCustomLayout.d.ts +59 -0
  279. package/dist/components/stream/geoDefaultTooltip.d.ts +11 -0
  280. package/dist/components/stream/geoFrameHelpers.d.ts +34 -0
  281. package/dist/components/stream/geoPipelineHelpers.d.ts +46 -0
  282. package/dist/components/stream/geoTypes.d.ts +56 -7
  283. package/dist/components/stream/glyphDef.d.ts +98 -0
  284. package/dist/components/stream/hitTarget.d.ts +170 -0
  285. package/dist/components/stream/hoverUtils.d.ts +3 -0
  286. package/dist/components/stream/keyboardNav.d.ts +4 -1
  287. package/dist/components/stream/layouts/forceLayoutPlugin.d.ts +9 -1
  288. package/dist/components/stream/layouts/forceLayoutWorkerClient.d.ts +57 -0
  289. package/dist/components/stream/networkBezier.d.ts +10 -0
  290. package/dist/components/stream/networkColorAccessors.d.ts +49 -0
  291. package/dist/components/stream/networkDefaultTooltip.d.ts +10 -0
  292. package/dist/components/stream/networkFrameInteraction.d.ts +37 -0
  293. package/dist/components/stream/networkFramePaint.d.ts +43 -0
  294. package/dist/components/stream/networkPipelineConfig.d.ts +22 -0
  295. package/dist/components/stream/networkPipelineHelpers.d.ts +12 -0
  296. package/dist/components/stream/networkRealtimeEncoding.d.ts +41 -0
  297. package/dist/components/stream/networkTypes.d.ts +76 -5
  298. package/dist/components/stream/ordinalCanvasRenderers.d.ts +7 -0
  299. package/dist/components/stream/ordinalDataIndex.d.ts +5 -0
  300. package/dist/components/stream/ordinalDefaultTooltip.d.ts +10 -0
  301. package/dist/components/stream/ordinalDomain.d.ts +38 -0
  302. package/dist/components/stream/ordinalPipelineUpdateResults.d.ts +12 -0
  303. package/dist/components/stream/ordinalPulse.d.ts +10 -0
  304. package/dist/components/stream/ordinalPulseResources.d.ts +3 -0
  305. package/dist/components/stream/ordinalSceneBuilders/sceneBuilderMap.d.ts +5 -0
  306. package/dist/components/stream/ordinalSpatialIndex.d.ts +9 -0
  307. package/dist/components/stream/ordinalTypes.d.ts +40 -8
  308. package/dist/components/stream/paintNeeds.d.ts +31 -0
  309. package/dist/components/stream/physics/CapacityQueueController.d.ts +5 -0
  310. package/dist/components/stream/physics/CapacityQueueTypes.d.ts +134 -0
  311. package/dist/components/stream/physics/MatterPhysicsEngineAdapter.d.ts +42 -0
  312. package/dist/components/stream/physics/PhysicsAccessibility.d.ts +48 -0
  313. package/dist/components/stream/physics/PhysicsAnnotations.d.ts +58 -0
  314. package/dist/components/stream/physics/PhysicsBodyBudget.d.ts +26 -0
  315. package/dist/components/stream/physics/PhysicsBodySpatialIndex.d.ts +10 -0
  316. package/dist/components/stream/physics/PhysicsCanvasTheme.d.ts +26 -0
  317. package/dist/components/stream/physics/PhysicsControllers.d.ts +75 -0
  318. package/dist/components/stream/physics/PhysicsEngineAdapter.d.ts +59 -0
  319. package/dist/components/stream/physics/PhysicsEngineConformance.d.ts +23 -0
  320. package/dist/components/stream/physics/PhysicsEvidence.d.ts +25 -0
  321. package/dist/components/stream/physics/PhysicsKernel.d.ts +207 -0
  322. package/dist/components/stream/physics/PhysicsOptionalEngineAdapters.d.ts +12 -0
  323. package/dist/components/stream/physics/PhysicsPipelineStore.d.ts +84 -0
  324. package/dist/components/stream/physics/PhysicsPipelineTypes.d.ts +181 -0
  325. package/dist/components/stream/physics/PhysicsSVGOverlay.d.ts +72 -0
  326. package/dist/components/stream/physics/PhysicsSediment.d.ts +69 -0
  327. package/dist/components/stream/physics/PhysicsSettledSVG.d.ts +18 -0
  328. package/dist/components/stream/physics/PhysicsSettledScene.d.ts +21 -0
  329. package/dist/components/stream/physics/PhysicsWorkerClient.d.ts +24 -0
  330. package/dist/components/stream/physics/PhysicsWorkerProtocol.d.ts +101 -0
  331. package/dist/components/stream/physics/PhysicsWorkerRuntime.d.ts +5 -0
  332. package/dist/components/stream/physics/RapierPhysicsEngineAdapter.d.ts +18 -0
  333. package/dist/components/stream/physics/ServiceOperationsControllers.d.ts +27 -0
  334. package/dist/components/stream/physics/ServiceOperationsTypes.d.ts +89 -0
  335. package/dist/components/stream/physics/StreamPhysicsFrame.d.ts +6 -0
  336. package/dist/components/stream/physics/StreamPhysicsTypes.d.ts +302 -0
  337. package/dist/components/stream/physics/physicsBodyCanvas.d.ts +27 -0
  338. package/dist/components/stream/physics/physicsPipelineControls.d.ts +4 -0
  339. package/dist/components/stream/physics/physicsPipelineHelpers.d.ts +41 -0
  340. package/dist/components/stream/physics/physicsPipelineObservations.d.ts +14 -0
  341. package/dist/components/stream/physics/physicsPipelineUpdateResults.d.ts +9 -0
  342. package/dist/components/stream/physics/physicsRegionRuntime.d.ts +54 -0
  343. package/dist/components/stream/physics/physicsSemanticUI.d.ts +20 -0
  344. package/dist/components/stream/physics/usePhysicsFrameLifecyclePolicy.d.ts +16 -0
  345. package/dist/components/stream/pipelineBufferUtils.d.ts +26 -0
  346. package/dist/components/stream/pipelineConfig.d.ts +177 -0
  347. package/dist/components/stream/pipelineDecay.d.ts +20 -2
  348. package/dist/components/stream/pipelineDomainResolution.d.ts +62 -0
  349. package/dist/components/stream/pipelineIdentityOps.d.ts +26 -0
  350. package/dist/components/stream/pipelinePulse.d.ts +16 -2
  351. package/dist/components/stream/pipelineRibbons.d.ts +41 -0
  352. package/dist/components/stream/pipelineSpatialIndex.d.ts +12 -0
  353. package/dist/components/stream/pipelineStoreUpdateResults.d.ts +12 -0
  354. package/dist/components/stream/pipelineStyleResolvers.d.ts +46 -0
  355. package/dist/components/stream/pipelineTransitions.d.ts +2 -0
  356. package/dist/components/stream/pipelineUpdateContract.d.ts +62 -0
  357. package/dist/components/stream/pulseFrameRefresh.d.ts +22 -0
  358. package/dist/components/stream/renderers/glyphCanvasRenderer.d.ts +6 -0
  359. package/dist/components/stream/renderers/resolveCSSColor.d.ts +6 -0
  360. package/dist/components/stream/sceneRevisionDiagnostics.d.ts +18 -0
  361. package/dist/components/stream/streamStoreSync.d.ts +37 -0
  362. package/dist/components/stream/types.d.ts +135 -7
  363. package/dist/components/stream/useFrame.d.ts +21 -2
  364. package/dist/components/stream/useHydration.d.ts +6 -0
  365. package/dist/components/stream/useLegendCategoryEmission.d.ts +5 -0
  366. package/dist/components/stream/workerModuleUrl.d.ts +10 -0
  367. package/dist/components/stream/xyAnnotationAnchors.d.ts +13 -0
  368. package/dist/components/stream/xyCanvasRenderers.d.ts +7 -0
  369. package/dist/components/stream/xyCrosshair.d.ts +11 -0
  370. package/dist/components/stream/xyDateTicks.d.ts +9 -0
  371. package/dist/components/stream/xyDefaultTooltip.d.ts +10 -0
  372. package/dist/components/stream/xySceneBuilders/types.d.ts +4 -4
  373. package/dist/controls.min.js +2 -0
  374. package/dist/controls.module.min.js +2 -0
  375. package/dist/forceLayoutWorker.js +1 -0
  376. package/dist/geo.min.js +1 -1
  377. package/dist/geo.module.min.js +1 -1
  378. package/dist/network.min.js +1 -1
  379. package/dist/network.module.min.js +1 -1
  380. package/dist/ordinal.min.js +1 -1
  381. package/dist/ordinal.module.min.js +1 -1
  382. package/dist/physics-matter.min.js +1 -0
  383. package/dist/physics-matter.module.min.js +1 -0
  384. package/dist/physics-rapier.min.js +1 -0
  385. package/dist/physics-rapier.module.min.js +1 -0
  386. package/dist/physics.min.js +2 -0
  387. package/dist/physics.module.min.js +2 -0
  388. package/dist/physicsWorker.js +1 -0
  389. package/dist/realtime.min.js +1 -1
  390. package/dist/realtime.module.min.js +1 -1
  391. package/dist/semiotic-ai-chunk-OG7BQUUW.module.min.js +2 -0
  392. package/dist/semiotic-ai-core.d.ts +47 -0
  393. package/dist/semiotic-ai-core.min.js +1 -0
  394. package/dist/semiotic-ai-core.module.min.js +1 -0
  395. package/dist/semiotic-ai-statisticalOverlays-CY4WKR4A.module.min.js +2 -0
  396. package/dist/semiotic-ai.d.ts +50 -8
  397. package/dist/semiotic-ai.min.js +1 -1
  398. package/dist/semiotic-ai.module.min.js +1 -1
  399. package/dist/semiotic-chunk-3FSVZ46U.module.min.js +2 -0
  400. package/dist/semiotic-controls.d.ts +18 -0
  401. package/dist/semiotic-data.min.js +1 -1
  402. package/dist/semiotic-data.module.min.js +1 -1
  403. package/dist/semiotic-experimental.d.ts +38 -9
  404. package/dist/semiotic-experimental.min.js +1 -1
  405. package/dist/semiotic-experimental.module.min.js +1 -1
  406. package/dist/semiotic-geo.d.ts +11 -0
  407. package/dist/semiotic-network.d.ts +11 -0
  408. package/dist/semiotic-ordinal.d.ts +8 -0
  409. package/dist/semiotic-physics-matter.d.ts +10 -0
  410. package/dist/semiotic-physics-rapier.d.ts +9 -0
  411. package/dist/semiotic-physics.d.ts +56 -0
  412. package/dist/semiotic-realtime-core.d.ts +34 -0
  413. package/dist/semiotic-realtime-core.min.js +1 -0
  414. package/dist/semiotic-realtime-core.module.min.js +1 -0
  415. package/dist/semiotic-realtime-react.d.ts +10 -0
  416. package/dist/semiotic-realtime-react.min.js +2 -0
  417. package/dist/semiotic-realtime-react.module.min.js +2 -0
  418. package/dist/semiotic-realtime.d.ts +4 -30
  419. package/dist/semiotic-recipes-core.d.ts +92 -0
  420. package/dist/semiotic-recipes-core.min.js +1 -0
  421. package/dist/semiotic-recipes-core.module.min.js +1 -0
  422. package/dist/semiotic-recipes-react.d.ts +7 -0
  423. package/dist/semiotic-recipes-react.min.js +2 -0
  424. package/dist/semiotic-recipes-react.module.min.js +2 -0
  425. package/dist/semiotic-recipes.d.ts +4 -43
  426. package/dist/semiotic-recipes.min.js +1 -1
  427. package/dist/semiotic-recipes.module.min.js +1 -1
  428. package/dist/semiotic-server-edge.d.ts +8 -0
  429. package/dist/semiotic-server-edge.min.js +1 -0
  430. package/dist/semiotic-server-edge.module.min.js +1 -0
  431. package/dist/semiotic-server-node.d.ts +5 -0
  432. package/dist/semiotic-server-node.min.js +1 -0
  433. package/dist/semiotic-server-node.module.min.js +1 -0
  434. package/dist/semiotic-server.d.ts +2 -2
  435. package/dist/semiotic-statisticalOverlays-UOMSFKVJ.module.min.js +2 -0
  436. package/dist/semiotic-themes-core.d.ts +53 -0
  437. package/dist/semiotic-themes-core.min.js +1 -0
  438. package/dist/semiotic-themes-core.module.min.js +1 -0
  439. package/dist/semiotic-themes-react.d.ts +4 -0
  440. package/dist/semiotic-themes-react.min.js +2 -0
  441. package/dist/semiotic-themes-react.module.min.js +2 -0
  442. package/dist/semiotic-themes.d.ts +6 -76
  443. package/dist/semiotic-themes.min.js +1 -2
  444. package/dist/semiotic-themes.module.min.js +1 -2
  445. package/dist/semiotic-utils-core.d.ts +46 -0
  446. package/dist/semiotic-utils-core.min.js +1 -0
  447. package/dist/semiotic-utils-core.module.min.js +1 -0
  448. package/dist/semiotic-utils-react.d.ts +5 -0
  449. package/dist/semiotic-utils-react.min.js +2 -0
  450. package/dist/semiotic-utils-react.module.min.js +2 -0
  451. package/dist/semiotic-utils.d.ts +3 -39
  452. package/dist/semiotic-utils.min.js +1 -2
  453. package/dist/semiotic-utils.module.min.js +1 -2
  454. package/dist/semiotic-value.min.js +1 -1
  455. package/dist/semiotic-value.module.min.js +1 -1
  456. package/dist/semiotic-xy.d.ts +8 -0
  457. package/dist/semiotic.d.ts +35 -7
  458. package/dist/semiotic.min.js +1 -1
  459. package/dist/semiotic.module.min.js +1 -1
  460. package/dist/server.min.js +1 -1
  461. package/dist/server.module.min.js +1 -1
  462. package/dist/xy-chunk-IWD6IB6V.module.min.js +2 -0
  463. package/dist/xy-statisticalOverlays-7RWG6LJT.module.min.js +2 -0
  464. package/dist/xy.min.js +1 -1
  465. package/dist/xy.module.min.js +1 -1
  466. package/package.json +239 -87
  467. package/spec/README.md +152 -0
  468. package/spec/bindings/README.md +35 -0
  469. package/spec/bindings/vega-lite.mjs +112 -0
  470. package/spec/v0.1/annotation-provenance.schema.json +127 -0
  471. package/spec/v0.1/audience-profile.schema.json +67 -0
  472. package/spec/v0.1/chart-capability.schema.json +186 -0
  473. package/dist/components/recipes/gofish.d.ts +0 -207
  474. package/dist/components/recipes/gofishInterpreter.d.ts +0 -52
  475. package/dist/components/recipes/gofishLambdas.d.ts +0 -145
  476. package/dist/semiotic-ai-semiotic-ai-u954ylUn.js +0 -2
  477. package/dist/semiotic-ai-statisticalOverlays-CU7jW05Q.js +0 -1
  478. package/dist/semiotic-semiotic-BmrYbi99.js +0 -2
  479. package/dist/semiotic-statisticalOverlays-IjZw8Lsu.js +0 -1
  480. package/dist/xy-semiotic-xy-Dufu3D0-.js +0 -2
  481. package/dist/xy-statisticalOverlays-3Ni9bRph.js +0 -1
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Gauntlet React-facing controller glue: builds the imperative ref handle,
3
+ * the per-gate capacity controllers, and the per-tick crash/event-application
4
+ * pass. Plain functions (no hooks) called from inside GauntletChart's
5
+ * existing useImperativeHandle/useMemo/useCallback — refs and memoized
6
+ * callbacks are passed in explicitly instead of closed over, so identity and
7
+ * dependency-array semantics are unchanged from before extraction.
8
+ */
9
+ import type { Datum } from "../shared/datumTypes";
10
+ import type { PhysicsFrameHandle } from "./physicsHocHandle";
11
+ import { type CapacityQueueSnapshot, type PhysicsController } from "../../stream/physics/PhysicsControllers";
12
+ import type { PhysicsPipelineControlSurface, PhysicsPipelineTickResult } from "../../stream/physics/PhysicsPipelineStore";
13
+ import type { StreamPhysicsFrameHandle } from "../../stream/physics/StreamPhysicsFrame";
14
+ import { type GauntletCoreBodyFn, type GauntletEffect, type GauntletEvent, type GauntletLayout, type GauntletProjectPlacementFn, type GauntletProjectState, type GauntletPropertyDefinition, type GauntletViabilityFn } from "./gauntletPhysics";
15
+ export declare function capacitySnapshotsEqual(a: readonly CapacityQueueSnapshot[], b: readonly CapacityQueueSnapshot[]): boolean;
16
+ /** Build one capacity-queue controller per gate that declares `capacity`. */
17
+ export declare function buildGauntletCapacityControllers<TDatum extends Datum>(options: {
18
+ dataKey: string;
19
+ gates: GauntletLayout["gates"];
20
+ statesRef: {
21
+ current: readonly GauntletProjectState<TDatum>[];
22
+ };
23
+ processedGateVisitsRef: {
24
+ current: Map<string, number>;
25
+ };
26
+ }): PhysicsController[];
27
+ /** Build the `ref.current` imperative API (push/pushMany/remove/update/clear/...). */
28
+ export declare function buildGauntletImperativeHandle<TDatum extends Datum>(deps: {
29
+ statesRef: {
30
+ current: GauntletProjectState<TDatum>[];
31
+ };
32
+ setStates: (states: GauntletProjectState<TDatum>[]) => void;
33
+ elapsedRef: {
34
+ current: number;
35
+ };
36
+ frameRef: {
37
+ current: StreamPhysicsFrameHandle | null;
38
+ };
39
+ layout: GauntletLayout;
40
+ projectPlacement: GauntletProjectPlacementFn<TDatum> | undefined;
41
+ positiveById: Map<string, GauntletPropertyDefinition>;
42
+ negativeById: Map<string, GauntletPropertyDefinition>;
43
+ coreBody: GauntletCoreBodyFn<TDatum> | undefined;
44
+ createState: (datum: TDatum, index: number, defaultStartedAt?: number) => GauntletProjectState<TDatum>;
45
+ }): PhysicsFrameHandle;
46
+ /** Per-tick crash detection + due-event application, driving `updateProjectState`. */
47
+ export declare function runGauntletTick<TDatum extends Datum>(result: PhysicsPipelineTickResult, controls: PhysicsPipelineControlSurface, deps: {
48
+ frameProps: {
49
+ onTick?: (result: PhysicsPipelineTickResult, controls: PhysicsPipelineControlSurface) => void;
50
+ };
51
+ elapsedRef: {
52
+ current: number;
53
+ };
54
+ statesRef: {
55
+ current: readonly GauntletProjectState<TDatum>[];
56
+ };
57
+ crashDetection: boolean;
58
+ layout: GauntletLayout;
59
+ projectEvents: (project: GauntletProjectState<TDatum>) => readonly GauntletEvent[];
60
+ gateById: Map<string, GauntletLayout["gates"][number]>;
61
+ capacityEventReady: (project: GauntletProjectState<TDatum>, event: GauntletEvent, timeline: readonly GauntletEvent[]) => boolean;
62
+ addBodiesForEffect: (project: GauntletProjectState<TDatum>, effect: GauntletEffect, controls: PhysicsPipelineControlSurface) => void;
63
+ updateProjectState: (projectId: string, updater: (project: GauntletProjectState<TDatum>) => GauntletProjectState<TDatum>) => void;
64
+ viability: GauntletViabilityFn<TDatum> | undefined;
65
+ positiveById: Map<string, GauntletPropertyDefinition>;
66
+ negativeById: Map<string, GauntletPropertyDefinition>;
67
+ outcome: ((project: GauntletProjectState<TDatum>, context: {
68
+ layout: GauntletLayout;
69
+ negativeProperties: Map<string, GauntletPropertyDefinition>;
70
+ positiveProperties: Map<string, GauntletPropertyDefinition>;
71
+ }) => string) | undefined;
72
+ reportCapacity: () => void;
73
+ }): void;
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Pure Gauntlet gate-effect helpers (no React): resolving which attached
3
+ * properties an effect pops, planning bounded property work, and applying
4
+ * an effect to project state.
5
+ */
6
+ import type { Datum } from "../shared/datumTypes";
7
+ import type { GauntletEffect, GauntletEvent, GauntletEventContext, GauntletEventLogItem, GauntletNegativeReplacementOptions, GauntletPopSpec, GauntletProjectState, GauntletPropertyWorkPlan, GauntletPropertyWorkPlanOptions } from "./gauntletTypes";
8
+ export declare function expandIds(input: readonly string[] | Record<string, number> | undefined): string[];
9
+ export declare function isReadonlyStringArray(value: GauntletPopSpec | undefined): value is readonly string[];
10
+ export declare function resolvePopSpecIds(attachedIds: readonly string[], popSpec: GauntletPopSpec | undefined): string[];
11
+ export declare function resolvePopPositiveIds<TDatum extends Datum>(project: GauntletProjectState<TDatum>, effect: GauntletEffect): string[];
12
+ /**
13
+ * Select attached property occurrences without exceeding a bounded work
14
+ * budget. Selection is deterministic: property priority, then attachment
15
+ * order. Expensive occurrences are skipped so later affordable work can fit.
16
+ */
17
+ export declare function planGauntletPropertyWork(options: GauntletPropertyWorkPlanOptions): GauntletPropertyWorkPlan;
18
+ /** Build one add/pop effect for an occurrence-preserving replacement. */
19
+ export declare function replaceGauntletNegative<TDatum extends Datum>(project: GauntletProjectState<TDatum>, options: GauntletNegativeReplacementOptions): GauntletEffect;
20
+ /**
21
+ * Resolve which negative property instances to detach. Returns body indices
22
+ * into `project.negativeIds` so multi-instance loads keep stable body ids.
23
+ */
24
+ export declare function resolvePopNegativeEntries<TDatum extends Datum>(project: GauntletProjectState<TDatum>, effect: GauntletEffect): Array<{
25
+ propertyId: string;
26
+ index: number;
27
+ }>;
28
+ /**
29
+ * Pure project-state transition for a single gate effect. Exported so unit
30
+ * tests can cover popPositive / popNegative / add* without driving the
31
+ * full physics tick loop.
32
+ */
33
+ export declare function applyGauntletEffect<TDatum extends Datum>(project: GauntletProjectState<TDatum>, effect: GauntletEffect, context: GauntletEventContext<TDatum>): GauntletProjectState<TDatum>;
34
+ export declare function eventLogItem(event: GauntletEvent, effects: readonly GauntletEffect[]): GauntletEventLogItem;
35
+ /** Append one semantic event exactly once, even when render ticks outpace state commits. */
36
+ export declare function recordGauntletEvent<TDatum extends Datum>(project: GauntletProjectState<TDatum>, logItem: GauntletEventLogItem): GauntletProjectState<TDatum>;
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Pure Gauntlet physics helpers (no React).
3
+ * Types: `./gauntletTypes`.
4
+ */
5
+ import type { Datum } from "../shared/datumTypes";
6
+ import type { ChartAccessor } from "../shared/types";
7
+ import type { PhysicsPipelineConfig, PhysicsQueuedSpawn } from "../../stream/physics/PhysicsPipelineStore";
8
+ import { type GauntletAccessors, type GauntletCoreBodyFn, type GauntletGate, type GauntletLayout, type GauntletProjectPlacement, type GauntletProjectPlacementFn, type GauntletProjectState, type GauntletPropertyDefinition, type GauntletViabilityFn } from "./gauntletTypes";
9
+ export { CORE_KIND, POSITIVE_KIND, NEGATIVE_KIND } from "./gauntletTypes";
10
+ export type { GauntletAccessors, GauntletBodyDatum, GauntletCoreBodyFn, GauntletEffect, GauntletEvent, GauntletEventContext, GauntletEventLogItem, GauntletGate, GauntletLayout, GauntletNegativeReplacementOptions, GauntletPopSpec, GauntletProjectPlacement, GauntletProjectPlacementFn, GauntletProjectState, GauntletPropertyDefinition, GauntletPropertyForceContext, GauntletPropertyWorkPlan, GauntletPropertyWorkPlanOptions, GauntletViabilityFn } from "./gauntletTypes";
11
+ export declare const DEFAULT_WIDTH = 900;
12
+ export declare const DEFAULT_HEIGHT = 520;
13
+ export declare function gauntletWallColliders(layout: Pick<GauntletLayout, "width" | "floorY">): NonNullable<PhysicsPipelineConfig["colliders"]>;
14
+ export declare function readAccessor<TDatum extends Datum, TValue>(datum: TDatum, index: number, accessor: ChartAccessor<TDatum, TValue> | undefined, fallback: TValue): TValue;
15
+ export declare function propertyLabel(property: GauntletPropertyDefinition | undefined): string;
16
+ export declare function projectCoreId(projectId: string): string;
17
+ export declare function projectPositiveId(projectId: string, propertyId: string): string;
18
+ export declare function projectNegativeId(projectId: string, propertyId: string, index: number): string;
19
+ /** Interior of the collider box (matches wall segments in the frame config). */
20
+ export declare const GAUNTLET_WALL: {
21
+ readonly left: 28;
22
+ readonly top: 76;
23
+ readonly rightInset: 30;
24
+ readonly thickness: 8;
25
+ };
26
+ /**
27
+ * Keep body centers inside the playable gauntlet corridor so satellite
28
+ * property particles never spawn or settle outside the left/right walls
29
+ * (the "stuck on the left" regression for Homes on Main Street).
30
+ */
31
+ export declare function clampGauntletPoint(x: number, y: number, radius: number, layout: Pick<GauntletLayout, "width" | "floorY">): {
32
+ x: number;
33
+ y: number;
34
+ };
35
+ export declare function buildLayout(size: [number, number], gates: readonly GauntletGate[] | undefined, crashOffset: number): GauntletLayout;
36
+ export declare function defaultPlacement(layout: GauntletLayout): Required<GauntletProjectPlacement>;
37
+ export declare function resolvePlacement<TDatum extends Datum>(project: GauntletProjectState<TDatum>, index: number, layout: GauntletLayout, projectPlacement: GauntletProjectPlacementFn<TDatum> | undefined): Required<GauntletProjectPlacement>;
38
+ export declare function featureSlot(ids: readonly string[], id: string): {
39
+ angle: number;
40
+ index: number;
41
+ radius: number;
42
+ };
43
+ export declare function defaultViability<TDatum extends Datum>(project: GauntletProjectState<TDatum>, positiveProperties: Map<string, GauntletPropertyDefinition>, negativeProperties: Map<string, GauntletPropertyDefinition>): number;
44
+ export declare function createInitialState<TDatum extends Datum>(datum: TDatum, index: number, props: GauntletAccessors<TDatum>, positiveProperties: readonly GauntletPropertyDefinition[], negativeProperties: Map<string, GauntletPropertyDefinition>): GauntletProjectState<TDatum>;
45
+ export declare function buildProjectSpawns<TDatum extends Datum>(project: GauntletProjectState<TDatum>, projectIndex: number, layout: GauntletLayout, placement: Required<GauntletProjectPlacement>, positiveProperties: Map<string, GauntletPropertyDefinition>, negativeProperties: Map<string, GauntletPropertyDefinition>, coreBody?: GauntletCoreBodyFn<TDatum>): PhysicsQueuedSpawn[];
46
+ /**
47
+ * Pure Gauntlet world builder for SSR / renderChart. Materializes project
48
+ * cores + property satellites once without React state or gate animation.
49
+ */
50
+ export declare function buildGauntletPhysics<TDatum extends Datum = Datum>(options: {
51
+ data?: readonly TDatum[];
52
+ size?: [number, number];
53
+ gates?: readonly GauntletGate[];
54
+ positiveProperties?: readonly GauntletPropertyDefinition[];
55
+ negativeProperties?: readonly GauntletPropertyDefinition[];
56
+ crashOffset?: number;
57
+ idAccessor?: ChartAccessor<TDatum, string>;
58
+ positiveAccessor?: ChartAccessor<TDatum, readonly string[]>;
59
+ negativeAccessor?: ChartAccessor<TDatum, readonly string[]>;
60
+ metricsAccessor?: ChartAccessor<TDatum, Record<string, number>>;
61
+ initialViability?: ChartAccessor<TDatum, number>;
62
+ startTimeAccessor?: ChartAccessor<TDatum, number>;
63
+ projectPlacement?: GauntletProjectPlacementFn<TDatum>;
64
+ coreBody?: GauntletCoreBodyFn<TDatum>;
65
+ viability?: GauntletViabilityFn<TDatum>;
66
+ }): {
67
+ config: NonNullable<import("../../stream/physics/PhysicsPipelineStore").PhysicsPipelineConfig>;
68
+ initialSpawns: PhysicsQueuedSpawn[];
69
+ layout: GauntletLayout;
70
+ };
71
+ export declare function buildNegativeSpawn<TDatum extends Datum>(project: GauntletProjectState<TDatum>, property: GauntletPropertyDefinition, index: number, x: number, y: number, layout: Pick<GauntletLayout, "width" | "floorY">, spawnAt?: number): PhysicsQueuedSpawn;
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Gauntlet per-frame body force + tick helpers (no React).
3
+ */
4
+ import type { PhysicsBodyState } from "../../stream/physics/PhysicsKernel";
5
+ import type { PhysicsPipelineControlSurface } from "../../stream/physics/PhysicsPipelineStore";
6
+ import type { Datum } from "../shared/datumTypes";
7
+ import { type GauntletCoreBodyFn, type GauntletEffect, type GauntletEvent, type GauntletLayout, type GauntletProjectPlacement, type GauntletProjectPlacementFn, type GauntletProjectState, type GauntletPropertyDefinition } from "./gauntletPhysics";
8
+ export declare function computeGauntletBodyForce<TDatum extends Datum>(options: {
9
+ body: PhysicsBodyState;
10
+ bodies: readonly PhysicsBodyState[];
11
+ layout: GauntletLayout;
12
+ states: readonly GauntletProjectState<TDatum>[];
13
+ projectPlacement: GauntletProjectPlacementFn<TDatum> | undefined;
14
+ positiveById: Map<string, GauntletPropertyDefinition>;
15
+ negativeById: Map<string, GauntletPropertyDefinition>;
16
+ projectEvents: (project: GauntletProjectState<TDatum>) => readonly GauntletEvent[];
17
+ gateById: Map<string, GauntletLayout["gates"][number]>;
18
+ coreForceMode: "route" | "net";
19
+ terminalBehavior: "outcome" | "hold-last";
20
+ elapsed: number;
21
+ }): {
22
+ x: number;
23
+ y: number;
24
+ } | null;
25
+ export declare function spawnBodiesForGauntletEffect<TDatum extends Datum>(options: {
26
+ project: GauntletProjectState<TDatum>;
27
+ effect: GauntletEffect;
28
+ controls: PhysicsPipelineControlSurface;
29
+ layout: GauntletLayout;
30
+ positiveById: Map<string, GauntletPropertyDefinition>;
31
+ negativeById: Map<string, GauntletPropertyDefinition>;
32
+ coreBody?: GauntletCoreBodyFn<TDatum>;
33
+ popBodies: (ids: string[], options?: {
34
+ color?: string;
35
+ durationMs?: number;
36
+ radius?: number;
37
+ }) => unknown;
38
+ }): void;
39
+ export declare function projectRouteTarget<TDatum extends Datum>(elapsed: number, project: GauntletProjectState<TDatum>, layout: GauntletLayout, placement: Required<GauntletProjectPlacement>, events: readonly GauntletEvent[], gateById: Map<string, GauntletLayout["gates"][number]>, terminalBehavior: "outcome" | "hold-last"): {
40
+ x: number;
41
+ y: number;
42
+ };
@@ -0,0 +1,213 @@
1
+ /**
2
+ * Gauntlet domain types + body-kind constants (no heavy runtime).
3
+ */
4
+ import type { Datum } from "../shared/datumTypes";
5
+ import type { ChartAccessor } from "../shared/types";
6
+ import type { PhysicsBodyState } from "../../stream/physics/PhysicsKernel";
7
+ import type { PhysicsQueuedSpawn, PhysicsSpawnSpringSpec } from "../../stream/physics/PhysicsPipelineStore";
8
+ import type { StreamPhysicsRegionEffect } from "../../stream/physics/StreamPhysicsTypes";
9
+ export declare const CORE_KIND: "gauntlet-core";
10
+ export declare const POSITIVE_KIND: "gauntlet-positive";
11
+ export declare const NEGATIVE_KIND: "gauntlet-negative";
12
+ export interface GauntletProjectPlacement {
13
+ graveyardX?: number;
14
+ graveyardY?: number;
15
+ routeY?: number;
16
+ socketX?: number;
17
+ socketY?: number;
18
+ startX?: number;
19
+ startY?: number;
20
+ }
21
+ export interface GauntletPropertyForceContext<TDatum extends Datum = Datum> {
22
+ body: PhysicsBodyState;
23
+ bodies: readonly PhysicsBodyState[];
24
+ core: PhysicsBodyState;
25
+ index: number;
26
+ layout: GauntletLayout;
27
+ placement: Required<GauntletProjectPlacement>;
28
+ project: GauntletProjectState<TDatum>;
29
+ }
30
+ export interface GauntletPropertyDefinition {
31
+ id: string;
32
+ label?: string;
33
+ short?: string;
34
+ color?: string;
35
+ value?: number;
36
+ radius?: number;
37
+ mass?: number;
38
+ buoyancy?: number;
39
+ load?: number;
40
+ /** Work units required to remove one occurrence at a bounded-work gate. */
41
+ work?: number;
42
+ /** Lower values are selected first by the default work-budget planner. */
43
+ priority?: number;
44
+ pull?: {
45
+ x?: number;
46
+ y?: number;
47
+ };
48
+ popColor?: string;
49
+ spring?: false | Partial<PhysicsSpawnSpringSpec>;
50
+ target?: (context: GauntletPropertyForceContext) => {
51
+ x: number;
52
+ y: number;
53
+ } | null | undefined;
54
+ }
55
+ export interface GauntletGate {
56
+ id: string;
57
+ label?: string;
58
+ description?: string;
59
+ color?: string;
60
+ /**
61
+ * Optional shared FIFO capacity for compound cores crossing this gate.
62
+ * Event time remains the earliest arrival; the matching gate event waits
63
+ * until the project's core has been processed.
64
+ */
65
+ capacity?: {
66
+ unitsPerSecond: number;
67
+ /** Reads work units from the source datum or live project state. */
68
+ unitAccessor?: string | ((project: GauntletProjectState) => number);
69
+ maxQueue?: number;
70
+ queueLayout?: "lane" | "none";
71
+ queueSlotSpacing?: number;
72
+ queueStiffness?: number;
73
+ /** Invisible sensor/queue width; independent from the drawn gate width. */
74
+ sensorWidth?: number;
75
+ };
76
+ enabled?: boolean;
77
+ regionEffect?: Partial<Omit<StreamPhysicsRegionEffect, "id" | "shape">>;
78
+ time?: number;
79
+ x?: number;
80
+ width?: number;
81
+ }
82
+ /** Pop one or more attached property ids from a project. */
83
+ export type GauntletPopSpec = readonly string[] | {
84
+ candidates?: readonly string[];
85
+ count?: number;
86
+ ids?: readonly string[];
87
+ };
88
+ export interface GauntletEffect {
89
+ addPositive?: readonly string[] | Record<string, number>;
90
+ addNegative?: readonly string[] | Record<string, number>;
91
+ popPositive?: GauntletPopSpec;
92
+ /**
93
+ * Remove attached negative property bodies — the inverse of the common
94
+ * "pop positives / add negatives" gate. Supports the same array / candidates
95
+ * / ids shape as {@link popPositive}.
96
+ */
97
+ popNegative?: GauntletPopSpec;
98
+ delayDelta?: number;
99
+ metricsDelta?: Record<string, number>;
100
+ outcome?: string;
101
+ stage?: string;
102
+ summary?: string;
103
+ viabilityDelta?: number;
104
+ when?: (context: GauntletEventContext) => boolean;
105
+ }
106
+ export interface GauntletEvent {
107
+ id: string;
108
+ label?: string;
109
+ time: number;
110
+ gateId?: string;
111
+ /** Capacity-gate visit this event waits for. Defaults to its gate-event ordinal. */
112
+ gateVisit?: number;
113
+ effects?: readonly GauntletEffect[];
114
+ final?: boolean;
115
+ outcome?: string;
116
+ routeX?: number;
117
+ routeY?: number;
118
+ summary?: string;
119
+ }
120
+ export interface GauntletEventLogItem {
121
+ id: string;
122
+ label: string;
123
+ summary?: string;
124
+ /** Actual project-local application time (event `time` is the authored earliest time). */
125
+ appliedAt?: number;
126
+ time?: number;
127
+ }
128
+ export interface GauntletProjectState<TDatum extends Datum = Datum> {
129
+ crashX?: number;
130
+ id: string;
131
+ activePositiveIds: string[];
132
+ datum: TDatum;
133
+ delay: number;
134
+ eventsApplied: string[];
135
+ /** Ordered event tape for readouts, replay evidence, and accessibility. */
136
+ eventHistory?: GauntletEventLogItem[];
137
+ killed: boolean;
138
+ lastEvent?: GauntletEventLogItem;
139
+ metrics: Record<string, number>;
140
+ missingPositiveIds: string[];
141
+ negativeIds: string[];
142
+ outcome: string;
143
+ poppedPositiveIds: string[];
144
+ /** Negative property ids removed by {@link GauntletEffect.popNegative}. */
145
+ poppedNegativeIds: string[];
146
+ /** Project-local timeline origin in simulation seconds. */
147
+ startedAt?: number;
148
+ stage: string;
149
+ viability: number;
150
+ }
151
+ export interface GauntletLayout {
152
+ crashY: number;
153
+ floorY: number;
154
+ gates: Array<Required<Pick<GauntletGate, "id" | "x" | "width">> & GauntletGate>;
155
+ graveyardX: number;
156
+ graveyardY: number;
157
+ height: number;
158
+ routeY: number;
159
+ socketX: number;
160
+ startX: number;
161
+ width: number;
162
+ }
163
+ export interface GauntletEventContext<TDatum extends Datum = Datum> {
164
+ event: GauntletEvent;
165
+ gate?: GauntletLayout["gates"][number];
166
+ negativeProperties: Map<string, GauntletPropertyDefinition>;
167
+ positiveProperties: Map<string, GauntletPropertyDefinition>;
168
+ project: GauntletProjectState<TDatum>;
169
+ }
170
+ /** Placement override for a project in layout space. */
171
+ export type GauntletProjectPlacementFn<TDatum extends Datum = Datum> = (project: GauntletProjectState<TDatum>, index: number, layout: GauntletLayout) => Partial<GauntletProjectPlacement>;
172
+ /** Optional spawn overrides for the project core body. */
173
+ export type GauntletCoreBodyFn<TDatum extends Datum = Datum> = (project: GauntletProjectState<TDatum>, index: number, layout: GauntletLayout, placement: Required<GauntletProjectPlacement>) => Partial<PhysicsQueuedSpawn>;
174
+ /** Custom viability scorer. */
175
+ export type GauntletViabilityFn<TDatum extends Datum = Datum> = (project: GauntletProjectState<TDatum>, context: {
176
+ negativeProperties: Map<string, GauntletPropertyDefinition>;
177
+ positiveProperties: Map<string, GauntletPropertyDefinition>;
178
+ }) => number;
179
+ /** Accessors used when seeding project state from user rows. */
180
+ export interface GauntletAccessors<TDatum extends Datum = Datum> {
181
+ idAccessor?: ChartAccessor<TDatum, string>;
182
+ initialViability?: ChartAccessor<TDatum, number>;
183
+ metricsAccessor?: ChartAccessor<TDatum, Record<string, number>>;
184
+ negativeAccessor?: ChartAccessor<TDatum, readonly string[]>;
185
+ positiveAccessor?: ChartAccessor<TDatum, readonly string[]>;
186
+ startTimeAccessor?: ChartAccessor<TDatum, number>;
187
+ }
188
+ export interface GauntletPropertyWorkPlanOptions {
189
+ attachedIds: readonly string[];
190
+ properties: readonly GauntletPropertyDefinition[] | Map<string, GauntletPropertyDefinition>;
191
+ budget: number;
192
+ candidates?: readonly string[];
193
+ }
194
+ export interface GauntletPropertyWorkPlan {
195
+ ids: string[];
196
+ used: number;
197
+ budget: number;
198
+ remaining: number;
199
+ skippedIds: string[];
200
+ }
201
+ export interface GauntletNegativeReplacementOptions {
202
+ from: string;
203
+ to: string;
204
+ count?: number;
205
+ }
206
+ /** Wall colliders matching {@link GAUNTLET_WALL} / SSR builder. */
207
+ export interface GauntletBodyDatum<TDatum extends Datum = Datum> {
208
+ __gauntlet: true;
209
+ kind: typeof CORE_KIND | typeof POSITIVE_KIND | typeof NEGATIVE_KIND;
210
+ projectId: string;
211
+ property?: GauntletPropertyDefinition;
212
+ sourceDatum: TDatum;
213
+ }
@@ -0,0 +1,57 @@
1
+ import type { Datum } from "../shared/datumTypes";
2
+ import type { ChartAccessor } from "../shared/types";
3
+ import { type PhysicsChartArea, type PhysicsChartLayout } from "./physicsChartShared";
4
+ export type PhysicalFlowCoordinateMode = "auto" | "normalized" | "pixels";
5
+ export type PhysicalFlowPathConstraint = "path" | "none";
6
+ export interface PhysicalFlowPoint {
7
+ x: number;
8
+ y: number;
9
+ }
10
+ export type PhysicalFlowRawPath = ReadonlyArray<PhysicalFlowPoint | readonly [number, number]>;
11
+ export interface PhysicalFlowOptions<TNode extends Datum = Datum, TLink extends Datum = Datum> {
12
+ nodes: readonly TNode[];
13
+ links: readonly TLink[];
14
+ nodeIdAccessor: ChartAccessor<TNode, string>;
15
+ nodeXAccessor: ChartAccessor<TNode, number>;
16
+ nodeYAccessor: ChartAccessor<TNode, number>;
17
+ sourceAccessor: ChartAccessor<TLink, string>;
18
+ targetAccessor: ChartAccessor<TLink, string>;
19
+ throughputAccessor: ChartAccessor<TLink, number>;
20
+ pathAccessor?: ChartAccessor<TLink, PhysicalFlowRawPath | undefined>;
21
+ coordinateMode?: PhysicalFlowCoordinateMode;
22
+ particleRate: number;
23
+ maxParticles: number;
24
+ particleRadius: number;
25
+ flowSpeed: number;
26
+ pathConstraint?: PhysicalFlowPathConstraint;
27
+ reducedMotion?: boolean;
28
+ seed: number;
29
+ size: [number, number];
30
+ }
31
+ export interface PhysicalFlowProjectionMetadata {
32
+ kind: "physical-flow";
33
+ coordinateMode: Exclude<PhysicalFlowCoordinateMode, "auto">;
34
+ particleCount: number;
35
+ totalThroughput: number;
36
+ plot: PhysicsChartArea["plot"];
37
+ nodes: Array<{
38
+ id: string;
39
+ label: string;
40
+ x: number;
41
+ y: number;
42
+ sensorId: string;
43
+ incoming: number;
44
+ outgoing: number;
45
+ }>;
46
+ links: Array<{
47
+ id: string;
48
+ source: string;
49
+ target: string;
50
+ sourceLabel: string;
51
+ targetLabel: string;
52
+ throughput: number;
53
+ packetCount: number;
54
+ path: PhysicalFlowPoint[];
55
+ }>;
56
+ }
57
+ export declare function buildPhysicalFlowPhysics<TNode extends Datum, TLink extends Datum>(options: PhysicalFlowOptions<TNode, TLink>): PhysicsChartLayout;
@@ -0,0 +1,41 @@
1
+ import type { Datum } from "../shared/datumTypes";
2
+ import type { ChartAccessor } from "../shared/types";
3
+ import type { Style } from "../../stream/types";
4
+ import type { PhysicsColliderSpec } from "../../stream/physics/PhysicsKernel";
5
+ import type { PhysicsPipelineConfig, PhysicsQueuedSpawn, PhysicsSpawnPacingOptions } from "../../stream/physics/PhysicsPipelineStore";
6
+ import type { PhysicsSemanticItem } from "../../stream/physics/StreamPhysicsTypes";
7
+ export interface PhysicsChartLayout {
8
+ config: PhysicsPipelineConfig;
9
+ initialSpawns: PhysicsQueuedSpawn[];
10
+ initialSpawnPacing?: PhysicsSpawnPacingOptions;
11
+ projectionRows: Array<{
12
+ label: string;
13
+ value: number;
14
+ secondary?: number;
15
+ }>;
16
+ metadata?: Record<string, unknown>;
17
+ }
18
+ export interface PhysicsChartArea {
19
+ width: number;
20
+ height: number;
21
+ plot: {
22
+ x: number;
23
+ y: number;
24
+ width: number;
25
+ height: number;
26
+ };
27
+ }
28
+ export declare function physicsChartArea(size: [number, number]): PhysicsChartArea;
29
+ export declare function hashStringColor(value: unknown): string;
30
+ export declare function styleFromColorAccessor<TDatum extends Datum>(colorBy: ChartAccessor<TDatum, string> | undefined, fallback?: string): (body: {
31
+ datum?: unknown;
32
+ }) => Style;
33
+ export declare function baseConfig(seed: number, colliders: PhysicsColliderSpec[], chartType: string, kernel?: Partial<NonNullable<PhysicsPipelineConfig["kernel"]>>): PhysicsPipelineConfig;
34
+ export declare function projectionRowsToSemanticItems(rows: readonly PhysicsChartLayout["projectionRows"][number][], size: [number, number], noun: string): PhysicsSemanticItem[];
35
+ export declare function readAccessor<TDatum extends Datum, TValue>(datum: TDatum, index: number, accessor: ChartAccessor<TDatum, TValue>): TValue;
36
+ export declare function finiteNumber(value: unknown): number | null;
37
+ export declare function clampNumber(value: number, min: number, max: number): number;
38
+ export declare function positiveNumber(value: unknown, fallback: number): number;
39
+ export declare function normalizedFiniteExtent(extent: readonly [unknown, unknown] | undefined): [number, number] | undefined;
40
+ export declare function safeIdPart(value: unknown): string;
41
+ export declare function seededRandom(seed: number): () => number;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Physics chart layout builders — barrel re-export.
3
+ * Implementations live in per-chart modules next to this file.
4
+ */
5
+ export type { PhysicsChartLayout, PhysicsChartArea } from "./physicsChartShared";
6
+ export { projectionRowsToSemanticItems, physicsChartArea, hashStringColor, styleFromColorAccessor } from "./physicsChartShared";
7
+ export type { GaltonBoardPhysicsOptions, GaltonBoardProjectionMetadata, GaltonMechanicalSampleOptions } from "./galtonBoardPhysics";
8
+ export { generateGaltonMechanicalSamples, buildGaltonBoardPhysics } from "./galtonBoardPhysics";
9
+ export type { EventDropWindowOptions, EventDropPlotRegion, EventDropLidSegment, EventDropProjectionMetadata, EventDropPhysicsOptions } from "./eventDropPhysics";
10
+ export { buildEventDropPhysics, placeEventDropSpawn } from "./eventDropPhysics";
11
+ export type { PhysicsPileMechanicalSampleOptions, PhysicsPileOptions, PileTubeGeometry } from "./physicsPilePhysics";
12
+ export { generatePhysicsPileMechanicalSamples, pileTubeGeometry, buildPhysicsPile } from "./physicsPilePhysics";
13
+ export type { CollisionSwarmPhysicsOptions, CollisionSwarmProjectionMetadata } from "./collisionSwarmPhysics";
14
+ export { buildCollisionSwarmPhysics } from "./collisionSwarmPhysics";
15
+ export type { PhysicalFlowCoordinateMode, PhysicalFlowPathConstraint, PhysicalFlowPoint, PhysicalFlowRawPath, PhysicalFlowOptions, PhysicalFlowProjectionMetadata } from "./physicalFlowPhysics";
16
+ export { buildPhysicalFlowPhysics } from "./physicalFlowPhysics";
17
+ export type { ProcessFlowStageDef, ProcessFlowPhysicsOptions, ProcessFlowProjectionMetadata } from "./processFlowPhysics";
18
+ export { buildProcessFlowPhysics } from "./processFlowPhysics";