semiotic 3.7.4 → 3.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (517) hide show
  1. package/CLAUDE.md +60 -15
  2. package/README.md +135 -24
  3. package/agent-skill/semiotic-charts/SKILL.md +146 -0
  4. package/ai/cli.js +133 -45
  5. package/ai/componentMetadata.cjs +6 -1
  6. package/ai/dist/mcp-server.js +1651 -154
  7. package/ai/examples.md +174 -0
  8. package/ai/schema.json +2934 -517
  9. package/ai/surface-manifest.json +200 -0
  10. package/ai/system-prompt.md +19 -3
  11. package/dist/components/Annotation.d.ts +4 -0
  12. package/dist/components/CategoryColors.d.ts +1 -1
  13. package/dist/components/ChartContainer.d.ts +91 -0
  14. package/dist/components/ChartGrid.d.ts +11 -1
  15. package/dist/components/CircularBrush.d.ts +61 -0
  16. package/dist/components/ContextLayout.d.ts +5 -1
  17. package/dist/components/DataSummaryContext.d.ts +1 -0
  18. package/dist/components/DirectManipulationControl.d.ts +63 -0
  19. package/dist/components/LinkedCharts.d.ts +3 -1
  20. package/dist/components/MobileAnnotationCalloutList.d.ts +13 -0
  21. package/dist/components/MobileChartContainer.d.ts +51 -0
  22. package/dist/components/MobileStandardControls.d.ts +68 -0
  23. package/dist/components/SmallMultipleChart.d.ts +84 -0
  24. package/dist/components/Tooltip/FlippingTooltip.d.ts +21 -0
  25. package/dist/components/ai/ChartRecipe.d.ts +16 -0
  26. package/dist/components/ai/IntentMark.d.ts +15 -0
  27. package/dist/components/ai/chartCapabilities.d.ts +8 -1
  28. package/dist/components/ai/chartCapabilityTypes.d.ts +42 -1
  29. package/dist/components/ai/chartClinic.d.ts +91 -0
  30. package/dist/components/ai/chartRecipeRegistry.d.ts +14 -0
  31. package/dist/components/ai/chartRecipes.d.ts +278 -0
  32. package/dist/components/ai/dataPitfallsBridge.d.ts +203 -0
  33. package/dist/components/ai/dataQualityBridge.d.ts +201 -0
  34. package/dist/components/ai/describeChart.d.ts +9 -0
  35. package/dist/components/ai/describeRecipeChart.d.ts +16 -0
  36. package/dist/components/ai/generativeChart.d.ts +170 -0
  37. package/dist/components/ai/intentManifest.d.ts +62 -0
  38. package/dist/components/ai/navigationTree.d.ts +3 -0
  39. package/dist/components/ai/observedSceneAudit.d.ts +72 -0
  40. package/dist/components/ai/readerGrounding.d.ts +83 -0
  41. package/dist/components/ai/recipeCapability.d.ts +8 -0
  42. package/dist/components/ai/recipeNavigation.d.ts +13 -0
  43. package/dist/components/ai/recipeSemantics.d.ts +11 -0
  44. package/dist/components/ai/repairChartConfig.d.ts +9 -0
  45. package/dist/components/ai/suggestCharts.d.ts +11 -1
  46. package/dist/components/charts/custom/GeoCustomChart.d.ts +48 -0
  47. package/dist/components/charts/custom/NetworkCustomChart.d.ts +22 -3
  48. package/dist/components/charts/custom/OrdinalCustomChart.d.ts +8 -2
  49. package/dist/components/charts/custom/XYCustomChart.d.ts +11 -2
  50. package/dist/components/charts/geo/DistanceCartogram.d.ts +1 -1
  51. package/dist/components/charts/geo/FlowMap.d.ts +1 -1
  52. package/dist/components/charts/geo/ProportionalSymbolMap.d.ts +1 -1
  53. package/dist/components/charts/geo/index.d.ts +2 -0
  54. package/dist/components/charts/index.d.ts +29 -1
  55. package/dist/components/charts/network/ChordDiagram.d.ts +1 -1
  56. package/dist/components/charts/network/CirclePack.d.ts +1 -1
  57. package/dist/components/charts/network/ForceDirectedGraph.d.ts +15 -5
  58. package/dist/components/charts/network/OrbitDiagram.d.ts +1 -1
  59. package/dist/components/charts/network/ProcessSankey.d.ts +1 -1
  60. package/dist/components/charts/network/SankeyDiagram.d.ts +1 -1
  61. package/dist/components/charts/network/TreeDiagram.d.ts +1 -1
  62. package/dist/components/charts/network/Treemap.d.ts +1 -1
  63. package/dist/components/charts/network/useForceLayout.d.ts +17 -0
  64. package/dist/components/charts/ordinal/BarChart.d.ts +1 -1
  65. package/dist/components/charts/ordinal/BoxPlot.d.ts +1 -1
  66. package/dist/components/charts/ordinal/DonutChart.d.ts +1 -1
  67. package/dist/components/charts/ordinal/DotPlot.d.ts +1 -1
  68. package/dist/components/charts/ordinal/FunnelChart.d.ts +1 -1
  69. package/dist/components/charts/ordinal/GroupedBarChart.d.ts +1 -1
  70. package/dist/components/charts/ordinal/Histogram.d.ts +1 -1
  71. package/dist/components/charts/ordinal/PieChart.d.ts +1 -1
  72. package/dist/components/charts/ordinal/RidgelinePlot.d.ts +1 -1
  73. package/dist/components/charts/ordinal/StackedBarChart.d.ts +1 -1
  74. package/dist/components/charts/ordinal/SwarmPlot.d.ts +8 -1
  75. package/dist/components/charts/ordinal/SwimlaneChart.d.ts +1 -1
  76. package/dist/components/charts/ordinal/ViolinPlot.d.ts +1 -1
  77. package/dist/components/charts/physics/ChainReactionChart.d.ts +9 -0
  78. package/dist/components/charts/physics/CollisionSwarmChart.capability.d.ts +2 -0
  79. package/dist/components/charts/physics/CollisionSwarmChart.d.ts +47 -0
  80. package/dist/components/charts/physics/EventDropChart.capability.d.ts +2 -0
  81. package/dist/components/charts/physics/EventDropChart.d.ts +53 -0
  82. package/dist/components/charts/physics/GaltonBoardChart.capability.d.ts +2 -0
  83. package/dist/components/charts/physics/GaltonBoardChart.d.ts +66 -0
  84. package/dist/components/charts/physics/GauntletChart.capability.d.ts +2 -0
  85. package/dist/components/charts/physics/GauntletChart.d.ts +73 -0
  86. package/dist/components/charts/physics/PhysicalFlowChart.capability.d.ts +2 -0
  87. package/dist/components/charts/physics/PhysicalFlowChart.d.ts +63 -0
  88. package/dist/components/charts/physics/PhysicsCustomChart.d.ts +120 -0
  89. package/dist/components/charts/physics/PhysicsPileChart.capability.d.ts +2 -0
  90. package/dist/components/charts/physics/PhysicsPileChart.d.ts +53 -0
  91. package/dist/components/charts/physics/ProcessFlowChart.capability.d.ts +2 -0
  92. package/dist/components/charts/physics/ProcessFlowChart.d.ts +96 -0
  93. package/dist/components/charts/physics/chainReactionOverlay.d.ts +22 -0
  94. package/dist/components/charts/physics/chainReactionRuntime.d.ts +37 -0
  95. package/dist/components/charts/physics/chainReactionTypes.d.ts +97 -0
  96. package/dist/components/charts/physics/collisionSwarmPhysics.d.ts +27 -0
  97. package/dist/components/charts/physics/dependencyMachine.d.ts +188 -0
  98. package/dist/components/charts/physics/eventDropPhysics.d.ts +64 -0
  99. package/dist/components/charts/physics/galtonBoardPhysics.d.ts +28 -0
  100. package/dist/components/charts/physics/gauntletChartProps.d.ts +67 -0
  101. package/dist/components/charts/physics/gauntletChrome.d.ts +33 -0
  102. package/dist/components/charts/physics/gauntletController.d.ts +73 -0
  103. package/dist/components/charts/physics/gauntletEffects.d.ts +36 -0
  104. package/dist/components/charts/physics/gauntletPhysics.d.ts +71 -0
  105. package/dist/components/charts/physics/gauntletRuntime.d.ts +42 -0
  106. package/dist/components/charts/physics/gauntletTypes.d.ts +213 -0
  107. package/dist/components/charts/physics/physicalFlowPhysics.d.ts +57 -0
  108. package/dist/components/charts/physics/physicsChartShared.d.ts +41 -0
  109. package/dist/components/charts/physics/physicsChartUtils.d.ts +18 -0
  110. package/dist/components/charts/physics/physicsEncoding.d.ts +142 -0
  111. package/dist/components/charts/physics/physicsHocHandle.d.ts +53 -0
  112. package/dist/components/charts/physics/physicsHocUtils.d.ts +128 -0
  113. package/dist/components/charts/physics/physicsPilePhysics.d.ts +41 -0
  114. package/dist/components/charts/physics/physicsProcessPrimitives.d.ts +38 -0
  115. package/dist/components/charts/physics/processFlowPhysics.d.ts +97 -0
  116. package/dist/components/charts/realtime/RealtimeHeatmap.d.ts +9 -1
  117. package/dist/components/charts/realtime/RealtimeHistogram.d.ts +9 -1
  118. package/dist/components/charts/realtime/RealtimeLineChart.d.ts +30 -1
  119. package/dist/components/charts/realtime/RealtimeSwarmChart.d.ts +16 -2
  120. package/dist/components/charts/realtime/RealtimeWaterfallChart.d.ts +9 -1
  121. package/dist/components/charts/realtime/aggregate.d.ts +51 -0
  122. package/dist/components/charts/realtime/eventTime.d.ts +26 -0
  123. package/dist/components/charts/shared/auditMobileVisualization.d.ts +91 -0
  124. package/dist/components/charts/shared/chartDefinitionPilot.d.ts +145 -0
  125. package/dist/components/charts/shared/chartFamilySets.d.ts +20 -0
  126. package/dist/components/charts/shared/chartSpecCore.d.ts +165 -0
  127. package/dist/components/charts/shared/chartSpecs.d.ts +8 -127
  128. package/dist/components/charts/shared/chartSpecsGeo.d.ts +2 -0
  129. package/dist/components/charts/shared/chartSpecsNetwork.d.ts +2 -0
  130. package/dist/components/charts/shared/chartSpecsOrdinal.d.ts +2 -0
  131. package/dist/components/charts/shared/chartSpecsPhysics.d.ts +2 -0
  132. package/dist/components/charts/shared/chartSpecsRealtime.d.ts +2 -0
  133. package/dist/components/charts/shared/chartSpecsValue.d.ts +2 -0
  134. package/dist/components/charts/shared/chartSpecsXY.d.ts +2 -0
  135. package/dist/components/charts/shared/colorContrast.d.ts +3 -0
  136. package/dist/components/charts/shared/colorPalettes.d.ts +2 -0
  137. package/dist/components/charts/shared/colorUtils.d.ts +17 -13
  138. package/dist/components/charts/shared/diagnoseAnnotationChecks.d.ts +4 -0
  139. package/dist/components/charts/shared/diagnoseConfig.d.ts +9 -14
  140. package/dist/components/charts/shared/diagnoseMisleadingChecks.d.ts +9 -0
  141. package/dist/components/charts/shared/diagnosePhysicsChecks.d.ts +3 -0
  142. package/dist/components/charts/shared/diagnoseTypes.d.ts +10 -0
  143. package/dist/components/charts/shared/hooks.d.ts +28 -5
  144. package/dist/components/charts/shared/minMax.d.ts +3 -0
  145. package/dist/components/charts/shared/motionEncoding.d.ts +145 -0
  146. package/dist/components/charts/shared/radialGeometry.d.ts +0 -18
  147. package/dist/components/charts/shared/responsiveRules.d.ts +56 -0
  148. package/dist/components/charts/shared/smartTooltip.d.ts +27 -0
  149. package/dist/components/charts/shared/statisticalOverlays.d.ts +35 -0
  150. package/dist/components/charts/shared/streamPropsHelpers.d.ts +12 -2
  151. package/dist/components/charts/shared/temporalStrings.d.ts +7 -0
  152. package/dist/components/charts/shared/tooltipUtils.d.ts +2 -0
  153. package/dist/components/charts/shared/types.d.ts +49 -1
  154. package/dist/components/charts/shared/useChartSetup.d.ts +10 -3
  155. package/dist/components/charts/shared/useCustomChartSetup.d.ts +15 -6
  156. package/dist/components/charts/shared/useNetworkChartSetup.d.ts +6 -2
  157. package/dist/components/charts/shared/useOrdinalPieceStyle.d.ts +1 -1
  158. package/dist/components/charts/shared/useStreamingLegend.d.ts +1 -1
  159. package/dist/components/charts/shared/useSyncedPushData.d.ts +49 -0
  160. package/dist/components/charts/shared/validateChartData.d.ts +1 -1
  161. package/dist/components/charts/shared/validationMap.d.ts +0 -11
  162. package/dist/components/charts/xy/AreaChart.d.ts +1 -1
  163. package/dist/components/charts/xy/BubbleChart.d.ts +1 -1
  164. package/dist/components/charts/xy/LineChart.d.ts +1 -1
  165. package/dist/components/charts/xy/MinimapChart.d.ts +1 -1
  166. package/dist/components/charts/xy/MultiAxisLineChart.d.ts +2 -2
  167. package/dist/components/charts/xy/QuadrantChart.d.ts +1 -1
  168. package/dist/components/charts/xy/Scatterplot.d.ts +10 -1
  169. package/dist/components/charts/xy/ScatterplotMatrix.d.ts +11 -1
  170. package/dist/components/charts/xy/StackedAreaChart.d.ts +9 -4
  171. package/dist/components/controls/controlAudit.d.ts +24 -0
  172. package/dist/components/controls/controlContract.d.ts +57 -0
  173. package/dist/components/data/fromArrow.d.ts +54 -0
  174. package/dist/components/data/fromFlintChart.d.ts +74 -0
  175. package/dist/components/data/fromMermaid.d.ts +47 -0
  176. package/dist/components/data/fromObservablePlot.d.ts +69 -0
  177. package/dist/components/data/fromVegaLite.d.ts +27 -0
  178. package/dist/components/data/portability/index.d.ts +17 -0
  179. package/dist/components/data/portability/result.d.ts +52 -0
  180. package/dist/components/data/portability/spec.d.ts +160 -0
  181. package/dist/components/data/portability/vegaLite.d.ts +80 -0
  182. package/dist/components/export/chartConfig.d.ts +11 -0
  183. package/dist/components/realtime/ReorderBuffer.d.ts +54 -0
  184. package/dist/components/realtime/RunningStats.d.ts +66 -0
  185. package/dist/components/realtime/WindowAccumulator.d.ts +105 -0
  186. package/dist/components/realtime/parseWindowDuration.d.ts +12 -0
  187. package/dist/components/realtime/types.d.ts +11 -0
  188. package/dist/components/recipes/annotationLayout.d.ts +29 -0
  189. package/dist/components/recipes/axisFixedForce.d.ts +119 -0
  190. package/dist/components/recipes/boba.d.ts +23 -0
  191. package/dist/components/recipes/customTooltip.d.ts +31 -0
  192. package/dist/components/recipes/cyclical.d.ts +39 -0
  193. package/dist/components/recipes/edgeRouter.d.ts +103 -0
  194. package/dist/components/recipes/forceLayout.d.ts +48 -0
  195. package/dist/components/recipes/forceLayoutAsync.d.ts +17 -0
  196. package/dist/components/recipes/gofishBobaHandwritten.d.ts +3 -0
  197. package/dist/components/recipes/gofishDisplayListFixtures.generated.d.ts +37 -0
  198. package/dist/components/recipes/gofishIR.d.ts +215 -0
  199. package/dist/components/recipes/gofishIRExamples.d.ts +38 -0
  200. package/dist/components/recipes/intervalLanes.d.ts +87 -0
  201. package/dist/components/recipes/intervals.d.ts +80 -0
  202. package/dist/components/recipes/isometricLandmarks.d.ts +88 -0
  203. package/dist/components/recipes/isotypeGlyphs.d.ts +17 -0
  204. package/dist/components/recipes/mermaidDag.d.ts +44 -0
  205. package/dist/components/recipes/mobileAnnotationStrategy.d.ts +48 -0
  206. package/dist/components/recipes/mobileChartFamilyRecipes.d.ts +59 -0
  207. package/dist/components/recipes/networkAnalysis.d.ts +102 -0
  208. package/dist/components/recipes/networkLayouts.d.ts +83 -0
  209. package/dist/components/recipes/packedClusterMatrix.d.ts +166 -0
  210. package/dist/components/recipes/physics.d.ts +122 -0
  211. package/dist/components/recipes/physicsReference.d.ts +102 -0
  212. package/dist/components/recipes/processAggregates.d.ts +32 -0
  213. package/dist/components/recipes/processChrome.d.ts +67 -0
  214. package/dist/components/recipes/processJourney.d.ts +54 -0
  215. package/dist/components/recipes/processPhysics.d.ts +300 -0
  216. package/dist/components/recipes/processVolumeGeometry.d.ts +28 -0
  217. package/dist/components/recipes/radialCoords.d.ts +69 -0
  218. package/dist/components/recipes/random.d.ts +2 -0
  219. package/dist/components/recipes/recipeChrome.d.ts +191 -0
  220. package/dist/components/recipes/recipeGlyph.d.ts +42 -0
  221. package/dist/components/recipes/recipeLegend.d.ts +109 -0
  222. package/dist/components/recipes/recipeUtils.d.ts +157 -0
  223. package/dist/components/recipes/runs.d.ts +59 -0
  224. package/dist/components/recipes/tokenEncoding.d.ts +157 -0
  225. package/dist/components/recipes/tokenLayer.d.ts +79 -0
  226. package/dist/components/recipes/unitize.d.ts +108 -0
  227. package/dist/components/recipes/vector.d.ts +28 -0
  228. package/dist/components/recipes/waffle.d.ts +43 -0
  229. package/dist/components/semiotic-ai-core.d.ts +47 -0
  230. package/dist/components/semiotic-ai.d.ts +52 -4
  231. package/dist/components/semiotic-controls.d.ts +18 -0
  232. package/dist/components/semiotic-data.d.ts +2 -0
  233. package/dist/components/semiotic-experimental.d.ts +49 -0
  234. package/dist/components/semiotic-geo.d.ts +11 -0
  235. package/dist/components/semiotic-network.d.ts +14 -1
  236. package/dist/components/semiotic-ordinal.d.ts +10 -0
  237. package/dist/components/semiotic-physics-matter.d.ts +10 -0
  238. package/dist/components/semiotic-physics-rapier.d.ts +9 -0
  239. package/dist/components/semiotic-physics.d.ts +56 -0
  240. package/dist/components/semiotic-realtime-core.d.ts +34 -0
  241. package/dist/components/semiotic-realtime-react.d.ts +10 -0
  242. package/dist/components/semiotic-realtime.d.ts +4 -22
  243. package/dist/components/semiotic-recipes-core.d.ts +92 -0
  244. package/dist/components/semiotic-recipes-react.d.ts +7 -0
  245. package/dist/components/semiotic-recipes.d.ts +4 -26
  246. package/dist/components/semiotic-server-edge.d.ts +8 -0
  247. package/dist/components/semiotic-server-node.d.ts +5 -0
  248. package/dist/components/semiotic-server.d.ts +2 -2
  249. package/dist/components/semiotic-themes-core.d.ts +53 -0
  250. package/dist/components/semiotic-themes-react.d.ts +4 -0
  251. package/dist/components/semiotic-themes.d.ts +6 -74
  252. package/dist/components/semiotic-utils-core.d.ts +46 -0
  253. package/dist/components/semiotic-utils-react.d.ts +5 -0
  254. package/dist/components/semiotic-utils.d.ts +3 -39
  255. package/dist/components/semiotic-xy.d.ts +10 -0
  256. package/dist/components/semiotic.d.ts +39 -7
  257. package/dist/components/server/animatedGif.d.ts +36 -0
  258. package/dist/components/server/renderEvidence.d.ts +1 -1
  259. package/dist/components/server/renderToStaticSVG.d.ts +3 -35
  260. package/dist/components/server/serverChartConfigShared.d.ts +17 -0
  261. package/dist/components/server/serverChartConfigs.d.ts +19 -9
  262. package/dist/components/server/serverChartConfigsCustom.d.ts +5 -0
  263. package/dist/components/server/serverChartConfigsGeo.d.ts +9 -0
  264. package/dist/components/server/serverChartConfigsNetwork.d.ts +8 -0
  265. package/dist/components/server/serverChartConfigsOrdinal.d.ts +16 -0
  266. package/dist/components/server/serverChartConfigsPhysics.d.ts +9 -0
  267. package/dist/components/server/serverChartConfigsXY.d.ts +11 -0
  268. package/dist/components/server/staticGeo.d.ts +4 -0
  269. package/dist/components/server/staticLegend.d.ts +1 -1
  270. package/dist/components/server/staticNetwork.d.ts +8 -0
  271. package/dist/components/server/staticOrdinal.d.ts +11 -0
  272. package/dist/components/server/staticPhysics.d.ts +3 -0
  273. package/dist/components/server/staticSVGChrome.d.ts +110 -0
  274. package/dist/components/server/staticXY.d.ts +4 -0
  275. package/dist/components/store/ObservationStore.d.ts +23 -3
  276. package/dist/components/store/SelectionStore.d.ts +1 -1
  277. package/dist/components/store/ThemeStore.d.ts +1 -1
  278. package/dist/components/store/TooltipStore.d.ts +1 -1
  279. package/dist/components/store/createStore.d.ts +1 -1
  280. package/dist/components/store/designTokens.d.ts +15 -0
  281. package/dist/components/store/themeSerialization.d.ts +32 -0
  282. package/dist/components/store/useChartInterrogation.d.ts +9 -0
  283. package/dist/components/stream/AccessibleDataTable.d.ts +3 -13
  284. package/dist/components/stream/FocusRing.d.ts +4 -2
  285. package/dist/components/stream/GeoCanvasHitTester.d.ts +1 -1
  286. package/dist/components/stream/GeoPipelineStore.d.ts +28 -0
  287. package/dist/components/stream/NetworkHtmlMarksLayer.d.ts +44 -0
  288. package/dist/components/stream/NetworkPipelineStore.d.ts +62 -25
  289. package/dist/components/stream/NetworkSVGOverlay.d.ts +15 -0
  290. package/dist/components/stream/OrdinalPipelineStore.d.ts +64 -2
  291. package/dist/components/stream/PipelineStore.d.ts +100 -162
  292. package/dist/components/stream/SceneGraph.d.ts +14 -2
  293. package/dist/components/stream/StreamGeoFrame.d.ts +1 -1
  294. package/dist/components/stream/StreamNetworkFrame.d.ts +1 -1
  295. package/dist/components/stream/StreamOrdinalFrame.d.ts +1 -1
  296. package/dist/components/stream/StreamXYFrame.d.ts +2 -18
  297. package/dist/components/stream/accessibleDataRows.d.ts +33 -0
  298. package/dist/components/stream/accessorUtils.d.ts +23 -10
  299. package/dist/components/stream/brushAccessibility.d.ts +25 -0
  300. package/dist/components/stream/canvasBackground.d.ts +24 -0
  301. package/dist/components/stream/canvasSetup.d.ts +4 -1
  302. package/dist/components/stream/customLayout.d.ts +20 -0
  303. package/dist/components/stream/customLayoutDiagnostics.d.ts +11 -0
  304. package/dist/components/stream/customLayoutFailure.d.ts +33 -0
  305. package/dist/components/stream/customLayoutPalette.d.ts +19 -9
  306. package/dist/components/stream/customLayoutSelection.d.ts +52 -0
  307. package/dist/components/stream/frameThemeColors.d.ts +24 -0
  308. package/dist/components/stream/geoAnnotationAnchors.d.ts +14 -0
  309. package/dist/components/stream/geoCartogram.d.ts +17 -0
  310. package/dist/components/stream/geoCustomLayout.d.ts +59 -0
  311. package/dist/components/stream/geoDefaultTooltip.d.ts +11 -0
  312. package/dist/components/stream/geoFrameHelpers.d.ts +34 -0
  313. package/dist/components/stream/geoPipelineHelpers.d.ts +46 -0
  314. package/dist/components/stream/geoTypes.d.ts +56 -7
  315. package/dist/components/stream/glyphDef.d.ts +98 -0
  316. package/dist/components/stream/hitTarget.d.ts +170 -0
  317. package/dist/components/stream/hoverUtils.d.ts +3 -0
  318. package/dist/components/stream/keyboardNav.d.ts +4 -1
  319. package/dist/components/stream/layouts/forceLayoutPlugin.d.ts +9 -1
  320. package/dist/components/stream/layouts/forceLayoutWorkerClient.d.ts +57 -0
  321. package/dist/components/stream/networkBezier.d.ts +10 -0
  322. package/dist/components/stream/networkColorAccessors.d.ts +49 -0
  323. package/dist/components/stream/networkCustomLayout.d.ts +66 -1
  324. package/dist/components/stream/networkDefaultTooltip.d.ts +10 -0
  325. package/dist/components/stream/networkFrameInteraction.d.ts +37 -0
  326. package/dist/components/stream/networkFramePaint.d.ts +43 -0
  327. package/dist/components/stream/networkPipelineConfig.d.ts +22 -0
  328. package/dist/components/stream/networkPipelineHelpers.d.ts +12 -0
  329. package/dist/components/stream/networkRealtimeEncoding.d.ts +41 -0
  330. package/dist/components/stream/networkTypes.d.ts +104 -5
  331. package/dist/components/stream/ordinalCanvasRenderers.d.ts +7 -0
  332. package/dist/components/stream/ordinalCustomLayout.d.ts +17 -1
  333. package/dist/components/stream/ordinalDataIndex.d.ts +5 -0
  334. package/dist/components/stream/ordinalDefaultTooltip.d.ts +10 -0
  335. package/dist/components/stream/ordinalDomain.d.ts +38 -0
  336. package/dist/components/stream/ordinalPipelineUpdateResults.d.ts +12 -0
  337. package/dist/components/stream/ordinalPulse.d.ts +10 -0
  338. package/dist/components/stream/ordinalPulseResources.d.ts +3 -0
  339. package/dist/components/stream/ordinalSceneBuilders/sceneBuilderMap.d.ts +5 -0
  340. package/dist/components/stream/ordinalSceneBuilders/types.d.ts +2 -0
  341. package/dist/components/stream/ordinalSpatialIndex.d.ts +9 -0
  342. package/dist/components/stream/ordinalTypes.d.ts +56 -8
  343. package/dist/components/stream/paintNeeds.d.ts +31 -0
  344. package/dist/components/stream/physics/CapacityQueueController.d.ts +5 -0
  345. package/dist/components/stream/physics/CapacityQueueTypes.d.ts +134 -0
  346. package/dist/components/stream/physics/MatterPhysicsEngineAdapter.d.ts +42 -0
  347. package/dist/components/stream/physics/PhysicsAccessibility.d.ts +48 -0
  348. package/dist/components/stream/physics/PhysicsAnnotations.d.ts +58 -0
  349. package/dist/components/stream/physics/PhysicsBodyBudget.d.ts +26 -0
  350. package/dist/components/stream/physics/PhysicsBodySpatialIndex.d.ts +10 -0
  351. package/dist/components/stream/physics/PhysicsCanvasTheme.d.ts +26 -0
  352. package/dist/components/stream/physics/PhysicsControllers.d.ts +75 -0
  353. package/dist/components/stream/physics/PhysicsEngineAdapter.d.ts +59 -0
  354. package/dist/components/stream/physics/PhysicsEngineConformance.d.ts +23 -0
  355. package/dist/components/stream/physics/PhysicsEvidence.d.ts +25 -0
  356. package/dist/components/stream/physics/PhysicsKernel.d.ts +207 -0
  357. package/dist/components/stream/physics/PhysicsOptionalEngineAdapters.d.ts +12 -0
  358. package/dist/components/stream/physics/PhysicsPipelineStore.d.ts +84 -0
  359. package/dist/components/stream/physics/PhysicsPipelineTypes.d.ts +181 -0
  360. package/dist/components/stream/physics/PhysicsSVGOverlay.d.ts +72 -0
  361. package/dist/components/stream/physics/PhysicsSediment.d.ts +69 -0
  362. package/dist/components/stream/physics/PhysicsSettledSVG.d.ts +18 -0
  363. package/dist/components/stream/physics/PhysicsSettledScene.d.ts +21 -0
  364. package/dist/components/stream/physics/PhysicsWorkerClient.d.ts +24 -0
  365. package/dist/components/stream/physics/PhysicsWorkerProtocol.d.ts +101 -0
  366. package/dist/components/stream/physics/PhysicsWorkerRuntime.d.ts +5 -0
  367. package/dist/components/stream/physics/RapierPhysicsEngineAdapter.d.ts +18 -0
  368. package/dist/components/stream/physics/ServiceOperationsControllers.d.ts +27 -0
  369. package/dist/components/stream/physics/ServiceOperationsTypes.d.ts +89 -0
  370. package/dist/components/stream/physics/StreamPhysicsFrame.d.ts +6 -0
  371. package/dist/components/stream/physics/StreamPhysicsTypes.d.ts +302 -0
  372. package/dist/components/stream/physics/physicsBodyCanvas.d.ts +27 -0
  373. package/dist/components/stream/physics/physicsPipelineControls.d.ts +4 -0
  374. package/dist/components/stream/physics/physicsPipelineHelpers.d.ts +41 -0
  375. package/dist/components/stream/physics/physicsPipelineObservations.d.ts +14 -0
  376. package/dist/components/stream/physics/physicsPipelineUpdateResults.d.ts +9 -0
  377. package/dist/components/stream/physics/physicsRegionRuntime.d.ts +54 -0
  378. package/dist/components/stream/physics/physicsSemanticUI.d.ts +20 -0
  379. package/dist/components/stream/physics/usePhysicsFrameLifecyclePolicy.d.ts +16 -0
  380. package/dist/components/stream/pipelineBufferUtils.d.ts +26 -0
  381. package/dist/components/stream/pipelineConfig.d.ts +177 -0
  382. package/dist/components/stream/pipelineDecay.d.ts +20 -2
  383. package/dist/components/stream/pipelineDomainResolution.d.ts +62 -0
  384. package/dist/components/stream/pipelineIdentityOps.d.ts +26 -0
  385. package/dist/components/stream/pipelinePulse.d.ts +16 -2
  386. package/dist/components/stream/pipelineRibbons.d.ts +41 -0
  387. package/dist/components/stream/pipelineSpatialIndex.d.ts +12 -0
  388. package/dist/components/stream/pipelineStoreUpdateResults.d.ts +12 -0
  389. package/dist/components/stream/pipelineStyleResolvers.d.ts +46 -0
  390. package/dist/components/stream/pipelineTransitions.d.ts +2 -0
  391. package/dist/components/stream/pipelineUpdateContract.d.ts +62 -0
  392. package/dist/components/stream/pulseFrameRefresh.d.ts +22 -0
  393. package/dist/components/stream/renderers/glyphCanvasRenderer.d.ts +6 -0
  394. package/dist/components/stream/renderers/networkSymbolRenderer.d.ts +2 -0
  395. package/dist/components/stream/renderers/resolveCSSColor.d.ts +6 -0
  396. package/dist/components/stream/renderers/symbolCanvasRenderer.d.ts +2 -0
  397. package/dist/components/stream/sceneRevisionDiagnostics.d.ts +18 -0
  398. package/dist/components/stream/stalenessBands.d.ts +28 -0
  399. package/dist/components/stream/streamStoreSync.d.ts +37 -0
  400. package/dist/components/stream/symbolPath.d.ts +24 -0
  401. package/dist/components/stream/types.d.ts +206 -9
  402. package/dist/components/stream/useFrame.d.ts +21 -2
  403. package/dist/components/stream/useHydration.d.ts +6 -0
  404. package/dist/components/stream/useLegendCategoryEmission.d.ts +5 -0
  405. package/dist/components/stream/useStalenessCheck.d.ts +6 -1
  406. package/dist/components/stream/workerModuleUrl.d.ts +10 -0
  407. package/dist/components/stream/xyAnnotationAnchors.d.ts +13 -0
  408. package/dist/components/stream/xyCanvasRenderers.d.ts +7 -0
  409. package/dist/components/stream/xyCrosshair.d.ts +11 -0
  410. package/dist/components/stream/xyDateTicks.d.ts +9 -0
  411. package/dist/components/stream/xyDefaultTooltip.d.ts +10 -0
  412. package/dist/components/stream/xySceneBuilders/pointScene.d.ts +2 -2
  413. package/dist/components/stream/xySceneBuilders/types.d.ts +9 -4
  414. package/dist/controls.min.js +2 -0
  415. package/dist/controls.module.min.js +2 -0
  416. package/dist/forceLayoutWorker.js +1 -0
  417. package/dist/geo.min.js +1 -1
  418. package/dist/geo.module.min.js +1 -1
  419. package/dist/network.min.js +1 -1
  420. package/dist/network.module.min.js +1 -1
  421. package/dist/ordinal.min.js +1 -1
  422. package/dist/ordinal.module.min.js +1 -1
  423. package/dist/physics-matter.min.js +1 -0
  424. package/dist/physics-matter.module.min.js +1 -0
  425. package/dist/physics-rapier.min.js +1 -0
  426. package/dist/physics-rapier.module.min.js +1 -0
  427. package/dist/physics.min.js +2 -0
  428. package/dist/physics.module.min.js +2 -0
  429. package/dist/physicsWorker.js +1 -0
  430. package/dist/realtime.min.js +1 -1
  431. package/dist/realtime.module.min.js +1 -1
  432. package/dist/semiotic-ai-chunk-OG7BQUUW.module.min.js +2 -0
  433. package/dist/semiotic-ai-core.d.ts +47 -0
  434. package/dist/semiotic-ai-core.min.js +1 -0
  435. package/dist/semiotic-ai-core.module.min.js +1 -0
  436. package/dist/semiotic-ai-statisticalOverlays-CY4WKR4A.module.min.js +2 -0
  437. package/dist/semiotic-ai.d.ts +52 -4
  438. package/dist/semiotic-ai.min.js +1 -1
  439. package/dist/semiotic-ai.module.min.js +1 -1
  440. package/dist/semiotic-chunk-3FSVZ46U.module.min.js +2 -0
  441. package/dist/semiotic-controls.d.ts +18 -0
  442. package/dist/semiotic-data.d.ts +2 -0
  443. package/dist/semiotic-data.min.js +1 -1
  444. package/dist/semiotic-data.module.min.js +1 -1
  445. package/dist/semiotic-experimental.d.ts +49 -0
  446. package/dist/semiotic-experimental.min.js +1 -0
  447. package/dist/semiotic-experimental.module.min.js +1 -0
  448. package/dist/semiotic-geo.d.ts +11 -0
  449. package/dist/semiotic-network.d.ts +14 -1
  450. package/dist/semiotic-ordinal.d.ts +10 -0
  451. package/dist/semiotic-physics-matter.d.ts +10 -0
  452. package/dist/semiotic-physics-rapier.d.ts +9 -0
  453. package/dist/semiotic-physics.d.ts +56 -0
  454. package/dist/semiotic-realtime-core.d.ts +34 -0
  455. package/dist/semiotic-realtime-core.min.js +1 -0
  456. package/dist/semiotic-realtime-core.module.min.js +1 -0
  457. package/dist/semiotic-realtime-react.d.ts +10 -0
  458. package/dist/semiotic-realtime-react.min.js +2 -0
  459. package/dist/semiotic-realtime-react.module.min.js +2 -0
  460. package/dist/semiotic-realtime.d.ts +4 -22
  461. package/dist/semiotic-recipes-core.d.ts +92 -0
  462. package/dist/semiotic-recipes-core.min.js +1 -0
  463. package/dist/semiotic-recipes-core.module.min.js +1 -0
  464. package/dist/semiotic-recipes-react.d.ts +7 -0
  465. package/dist/semiotic-recipes-react.min.js +2 -0
  466. package/dist/semiotic-recipes-react.module.min.js +2 -0
  467. package/dist/semiotic-recipes.d.ts +4 -26
  468. package/dist/semiotic-recipes.min.js +1 -1
  469. package/dist/semiotic-recipes.module.min.js +1 -1
  470. package/dist/semiotic-server-edge.d.ts +8 -0
  471. package/dist/semiotic-server-edge.min.js +1 -0
  472. package/dist/semiotic-server-edge.module.min.js +1 -0
  473. package/dist/semiotic-server-node.d.ts +5 -0
  474. package/dist/semiotic-server-node.min.js +1 -0
  475. package/dist/semiotic-server-node.module.min.js +1 -0
  476. package/dist/semiotic-server.d.ts +2 -2
  477. package/dist/semiotic-statisticalOverlays-UOMSFKVJ.module.min.js +2 -0
  478. package/dist/semiotic-themes-core.d.ts +53 -0
  479. package/dist/semiotic-themes-core.min.js +1 -0
  480. package/dist/semiotic-themes-core.module.min.js +1 -0
  481. package/dist/semiotic-themes-react.d.ts +4 -0
  482. package/dist/semiotic-themes-react.min.js +2 -0
  483. package/dist/semiotic-themes-react.module.min.js +2 -0
  484. package/dist/semiotic-themes.d.ts +6 -74
  485. package/dist/semiotic-themes.min.js +1 -2
  486. package/dist/semiotic-themes.module.min.js +1 -2
  487. package/dist/semiotic-utils-core.d.ts +46 -0
  488. package/dist/semiotic-utils-core.min.js +1 -0
  489. package/dist/semiotic-utils-core.module.min.js +1 -0
  490. package/dist/semiotic-utils-react.d.ts +5 -0
  491. package/dist/semiotic-utils-react.min.js +2 -0
  492. package/dist/semiotic-utils-react.module.min.js +2 -0
  493. package/dist/semiotic-utils.d.ts +3 -39
  494. package/dist/semiotic-utils.min.js +1 -2
  495. package/dist/semiotic-utils.module.min.js +1 -2
  496. package/dist/semiotic-value.min.js +1 -1
  497. package/dist/semiotic-value.module.min.js +1 -1
  498. package/dist/semiotic-xy.d.ts +10 -0
  499. package/dist/semiotic.d.ts +39 -7
  500. package/dist/semiotic.min.js +1 -1
  501. package/dist/semiotic.module.min.js +1 -1
  502. package/dist/server.min.js +1 -1
  503. package/dist/server.module.min.js +1 -1
  504. package/dist/xy-chunk-IWD6IB6V.module.min.js +2 -0
  505. package/dist/xy-statisticalOverlays-7RWG6LJT.module.min.js +2 -0
  506. package/dist/xy.min.js +1 -1
  507. package/dist/xy.module.min.js +1 -1
  508. package/package.json +246 -86
  509. package/spec/README.md +152 -0
  510. package/spec/bindings/README.md +35 -0
  511. package/spec/bindings/vega-lite.mjs +112 -0
  512. package/spec/v0.1/annotation-provenance.schema.json +127 -0
  513. package/spec/v0.1/audience-profile.schema.json +67 -0
  514. package/spec/v0.1/chart-capability.schema.json +186 -0
  515. package/dist/semiotic-ai-statisticalOverlays-C2PPlmXv.js +0 -1
  516. package/dist/semiotic-statisticalOverlays-C3DsOgr_.js +0 -1
  517. package/dist/xy-statisticalOverlays-C2PPlmXv.js +0 -1
@@ -0,0 +1,24 @@
1
+ import type { PhysicsPipelineConfig, PhysicsPipelineSnapshot, PhysicsQueuedSpawn, PhysicsSpawnPacingOptions } from "./PhysicsPipelineStore";
2
+ import { type PhysicsWorkerCommand, type PhysicsWorkerFrame, type PhysicsWorkerResponsePayload } from "./PhysicsWorkerProtocol";
3
+ export declare function canUsePhysicsWorker(): boolean;
4
+ export declare function createPhysicsWorker(): Worker;
5
+ export declare class PhysicsWorkerSession {
6
+ private nextRequestId;
7
+ private pending;
8
+ private worker;
9
+ constructor(worker?: Worker);
10
+ request(command: PhysicsWorkerCommand, signal?: AbortSignal): Promise<PhysicsWorkerResponsePayload>;
11
+ init(config?: PhysicsPipelineConfig, initialSpawns?: PhysicsQueuedSpawn[], initialSpawnPacing?: PhysicsSpawnPacingOptions, signal?: AbortSignal): Promise<PhysicsWorkerFrame>;
12
+ restore(snapshot: PhysicsPipelineSnapshot, signal?: AbortSignal): Promise<PhysicsWorkerFrame>;
13
+ initFromSnapshot(config: PhysicsPipelineConfig | undefined, snapshot: PhysicsPipelineSnapshot, signal?: AbortSignal): Promise<PhysicsWorkerFrame>;
14
+ enqueue(spawns: PhysicsQueuedSpawn[], pacing?: PhysicsSpawnPacingOptions, signal?: AbortSignal): Promise<PhysicsWorkerFrame>;
15
+ tick(deltaSeconds: number, signal?: AbortSignal): Promise<PhysicsWorkerFrame>;
16
+ settle(maxSteps?: number, signal?: AbortSignal): Promise<PhysicsWorkerFrame>;
17
+ snapshot(signal?: AbortSignal): Promise<PhysicsPipelineSnapshot>;
18
+ remove(ids: string[], signal?: AbortSignal): Promise<{
19
+ frame: PhysicsWorkerFrame;
20
+ removed: string[];
21
+ }>;
22
+ terminate(): void;
23
+ private rejectAll;
24
+ }
@@ -0,0 +1,101 @@
1
+ import type { PhysicsBodyState } from "./PhysicsKernel";
2
+ import type { PhysicsPipelineConfig, PhysicsPipelineObservationOptions, PhysicsPipelineSnapshot, PhysicsPipelineTickResult, PhysicsQueuedSpawn, PhysicsSpawnPacingOptions } from "./PhysicsPipelineStore";
3
+ import type { PhysicsSedimentBinSnapshot } from "./PhysicsSediment";
4
+ export type PhysicsExecution = "auto" | "worker" | "sync";
5
+ export declare const DEFAULT_PHYSICS_WORKER_BODY_THRESHOLD = 2500;
6
+ export type PhysicsWorkerObservationOptions = Omit<PhysicsPipelineObservationOptions, "onObservation" | "onSimulationStateChange">;
7
+ export type PhysicsWorkerSedimentConfig = false | {
8
+ binAccessor?: string;
9
+ labelAccessor?: string;
10
+ valueAccessor?: number | string;
11
+ retainBodyIds?: number;
12
+ };
13
+ export type PhysicsWorkerPipelineConfig = Omit<PhysicsPipelineConfig, "engine" | "observation" | "sediment"> & {
14
+ observation?: PhysicsWorkerObservationOptions;
15
+ sediment?: PhysicsWorkerSedimentConfig;
16
+ };
17
+ export interface PhysicsWorkerFrame {
18
+ bodies: PhysicsBodyState[];
19
+ ids: string[];
20
+ positions: Float32Array;
21
+ result: PhysicsPipelineTickResult;
22
+ sediment: PhysicsSedimentBinSnapshot[];
23
+ sleeping: Uint8Array;
24
+ snapshot?: PhysicsPipelineSnapshot;
25
+ velocities: Float32Array;
26
+ }
27
+ export type PhysicsWorkerCommand = {
28
+ type: "init";
29
+ config?: PhysicsWorkerPipelineConfig;
30
+ initialSpawns?: PhysicsQueuedSpawn[];
31
+ initialSpawnPacing?: PhysicsSpawnPacingOptions;
32
+ snapshot?: PhysicsPipelineSnapshot;
33
+ } | {
34
+ type: "configure";
35
+ config: PhysicsWorkerPipelineConfig;
36
+ } | {
37
+ type: "enqueue";
38
+ spawns: PhysicsQueuedSpawn[];
39
+ pacing?: PhysicsSpawnPacingOptions;
40
+ } | {
41
+ type: "tick";
42
+ deltaSeconds: number;
43
+ } | {
44
+ type: "settle";
45
+ maxSteps?: number;
46
+ } | {
47
+ type: "snapshot";
48
+ } | {
49
+ type: "restore";
50
+ snapshot: PhysicsPipelineSnapshot;
51
+ } | {
52
+ type: "clear";
53
+ } | {
54
+ type: "remove";
55
+ ids: string[];
56
+ } | {
57
+ type: "applyImpulse";
58
+ id: string;
59
+ ix: number;
60
+ iy: number;
61
+ } | {
62
+ type: "setPaused";
63
+ paused: boolean;
64
+ } | {
65
+ type: "setVisible";
66
+ visible: boolean;
67
+ };
68
+ export interface PhysicsWorkerRequest {
69
+ command: PhysicsWorkerCommand;
70
+ requestId: number;
71
+ }
72
+ export type PhysicsWorkerResponsePayload = {
73
+ type: "frame";
74
+ frame: PhysicsWorkerFrame;
75
+ } | {
76
+ type: "removed";
77
+ frame: PhysicsWorkerFrame;
78
+ removed: string[];
79
+ } | {
80
+ type: "snapshot";
81
+ snapshot: PhysicsPipelineSnapshot;
82
+ };
83
+ export type PhysicsWorkerResponse = {
84
+ ok: true;
85
+ payload: PhysicsWorkerResponsePayload;
86
+ requestId: number;
87
+ } | {
88
+ error: {
89
+ message: string;
90
+ name?: string;
91
+ stack?: string;
92
+ };
93
+ ok: false;
94
+ requestId: number;
95
+ };
96
+ export declare function isPhysicsWorkerConfigSupported(config: PhysicsPipelineConfig | undefined): boolean;
97
+ export declare function isPhysicsWorkerPacingSupported(pacing: PhysicsSpawnPacingOptions | undefined): boolean;
98
+ export declare function createPhysicsWorkerConfig(config?: PhysicsPipelineConfig | undefined): PhysicsWorkerPipelineConfig;
99
+ export declare function shouldUsePhysicsWorker(execution: PhysicsExecution, liveBodies: number, queuedBodies?: number, threshold?: number): boolean;
100
+ export declare function packPhysicsWorkerFrame(result: PhysicsPipelineTickResult, bodies: PhysicsBodyState[], sediment?: PhysicsSedimentBinSnapshot[], snapshot?: PhysicsPipelineSnapshot): PhysicsWorkerFrame;
101
+ export declare function physicsWorkerFrameTransferables(frame: PhysicsWorkerFrame): Transferable[];
@@ -0,0 +1,5 @@
1
+ import { type PhysicsWorkerCommand, type PhysicsWorkerResponsePayload } from "./PhysicsWorkerProtocol";
2
+ export interface PhysicsWorkerRuntime {
3
+ handle: (command: PhysicsWorkerCommand) => PhysicsWorkerResponsePayload;
4
+ }
5
+ export declare function createPhysicsWorkerRuntime(): PhysicsWorkerRuntime;
@@ -0,0 +1,18 @@
1
+ import type { PhysicsEngineCapabilities } from "./PhysicsEngineAdapter";
2
+ export declare const RAPIER_PHYSICS_PACKAGE = "@dimforge/rapier2d-compat";
3
+ export declare const RAPIER_PHYSICS_IMPORT_PATH = "semiotic/physics/rapier";
4
+ export declare const RAPIER_PHYSICS_ENGINE_DECISION: {
5
+ readonly selectedPackage: "@dimforge/rapier2d-compat";
6
+ readonly rejectedPackage: "@dimforge/rapier2d-deterministic";
7
+ readonly determinism: "tolerance";
8
+ readonly reason: "Use @dimforge/rapier2d-compat for the optional browser adapter path because it is the maintained npm/WASM package with standard bundler behavior. Treat Rapier visual/position conformance as tolerance-classed; keep the built-in kernel as the strict deterministic default.";
9
+ };
10
+ export declare const RAPIER_PHYSICS_CAPABILITIES: PhysicsEngineCapabilities;
11
+ export declare const RAPIER_PHYSICS_INSTALL: {
12
+ readonly engine: "Rapier 2D";
13
+ readonly importPath: "semiotic/physics/rapier";
14
+ readonly packageName: "@dimforge/rapier2d-compat";
15
+ readonly installCommand: "npm install @dimforge/rapier2d-compat";
16
+ };
17
+ export declare function loadRapierPhysicsPeer(): Promise<unknown>;
18
+ export declare function rapierPhysicsDependencyError(cause?: unknown): Error;
@@ -0,0 +1,27 @@
1
+ import type { PhysicsController } from "./PhysicsControllers";
2
+ import type { DependencyGateOptions, DependencyGateSnapshot, ServiceLevelCaseInfo, ServiceLevelControllerOptions, ServiceLevelSnapshot, ServiceResourceAssignment, ServiceResourcePoolOptions, ServiceResourcePoolSnapshot } from "./ServiceOperationsTypes";
3
+ export interface ServiceResourcePoolController extends PhysicsController {
4
+ assign: (caseBodyId: string) => ServiceResourceAssignment | null;
5
+ release: (caseBodyId: string) => boolean;
6
+ getAssignment: (caseBodyId: string) => ServiceResourceAssignment | undefined;
7
+ getSnapshot: () => ServiceResourcePoolSnapshot;
8
+ }
9
+ /**
10
+ * Models finite, visible service resources. Assignment is intentionally
11
+ * explicit so domain controllers decide scheduling while this controller
12
+ * supplies physical tethers, return-to-home force, and resource evidence.
13
+ */
14
+ export declare function createServiceResourcePoolController(options: ServiceResourcePoolOptions): ServiceResourcePoolController;
15
+ export interface ServiceLevelController extends PhysicsController {
16
+ protect: (bodyId: string) => boolean;
17
+ complete: (bodyId: string) => boolean;
18
+ getCase: (bodyId: string) => ServiceLevelCaseInfo | undefined;
19
+ getSnapshot: () => ServiceLevelSnapshot;
20
+ }
21
+ /** Tracks service-level outcomes independently from the force simulation. */
22
+ export declare function createServiceLevelController(options: ServiceLevelControllerOptions): ServiceLevelController;
23
+ export interface DependencyGateController extends PhysicsController {
24
+ getSnapshot: () => DependencyGateSnapshot;
25
+ }
26
+ /** Holds dependency-bound work until an external condition or scheduled recovery opens. */
27
+ export declare function createDependencyGateController(options: DependencyGateOptions): DependencyGateController;
@@ -0,0 +1,89 @@
1
+ import type { PhysicsBodyState, PhysicsColliderBodyFilter } from "./PhysicsKernel";
2
+ import type { StreamPhysicsRegionVector } from "./StreamPhysicsFrame";
3
+ export type ServiceLevelCaseState = "waiting" | "protected" | "unhappy" | "resolved" | "resolved-unhappy";
4
+ export interface ServiceResourceDefinition {
5
+ id: string;
6
+ /** Defaults to `id`; use this when the visual body has a different id. */
7
+ bodyId?: string;
8
+ /** Resting point used while the resource is unassigned. */
9
+ home: {
10
+ x: number;
11
+ y: number;
12
+ };
13
+ }
14
+ export interface ServiceResourceAssignment {
15
+ resourceId: string;
16
+ resourceBodyId: string;
17
+ caseBodyId: string;
18
+ assignedAt: number;
19
+ }
20
+ export interface ServiceResourcePoolSnapshot {
21
+ total: number;
22
+ available: number;
23
+ assigned: number;
24
+ assignments: ServiceResourceAssignment[];
25
+ simulatedAt: number;
26
+ metricRevision: number;
27
+ }
28
+ export interface ServiceResourcePoolOptions {
29
+ id?: string;
30
+ resources: readonly ServiceResourceDefinition[];
31
+ /** Pulls an assigned resource toward its case (default 0.45). */
32
+ assignmentForce?: number;
33
+ /** Place an assigned resource ahead of its case to express directional service. */
34
+ assignmentOffset?: StreamPhysicsRegionVector;
35
+ /** Returns an idle resource to its home point (default 0.35). */
36
+ returnForce?: number;
37
+ /** Small reciprocal force that makes an assignment readable as a tether. */
38
+ caseAttraction?: number;
39
+ }
40
+ export interface ServiceLevelCaseInfo {
41
+ bodyId: string;
42
+ openedAt: number;
43
+ deadlineAt: number;
44
+ state: ServiceLevelCaseState;
45
+ completedAt?: number;
46
+ protectedAt?: number;
47
+ }
48
+ export interface ServiceLevelSnapshot {
49
+ total: number;
50
+ waiting: number;
51
+ protected: number;
52
+ unhappy: number;
53
+ resolved: number;
54
+ resolvedUnhappy: number;
55
+ simulatedAt: number;
56
+ metricRevision: number;
57
+ }
58
+ export interface ServiceLevelControllerOptions {
59
+ id?: string;
60
+ /** Only matching bodies become service cases. */
61
+ bodyFilter?: PhysicsColliderBodyFilter;
62
+ /** String form reads `body.datum[field]`; values are simulated seconds. */
63
+ deadlineAccessor: string | ((body: PhysicsBodyState) => number | null | undefined);
64
+ /** Entering this region marks a case complete. Completion may also be explicit. */
65
+ completionRegionId?: string;
66
+ onStateChange?: (caseInfo: ServiceLevelCaseInfo) => void;
67
+ }
68
+ export interface DependencyGateSnapshot {
69
+ regionId: string;
70
+ isOpen: boolean;
71
+ blocked: number;
72
+ released: number;
73
+ simulatedAt: number;
74
+ metricRevision: number;
75
+ }
76
+ export interface DependencyGateOptions {
77
+ id?: string;
78
+ regionId: string;
79
+ bodyFilter?: PhysicsColliderBodyFilter;
80
+ /** Defaults to closed until `opensAt`; provide `isOpen` for live external state. */
81
+ opensAt?: number;
82
+ isOpen?: (simulatedAt: number) => boolean;
83
+ /** Pull strength toward the closed gate's center (default 0.4). */
84
+ holdForce?: number;
85
+ /** Applied once to every held body as the gate opens. */
86
+ releaseImpulse?: StreamPhysicsRegionVector;
87
+ onHeld?: (body: PhysicsBodyState) => void;
88
+ onReleased?: (body: PhysicsBodyState) => void;
89
+ }
@@ -0,0 +1,6 @@
1
+ import * as React from "react";
2
+ import type { StreamPhysicsFrameHandle, StreamPhysicsFrameProps } from "./StreamPhysicsTypes";
3
+ export type { PhysicsBodyMark, StreamPhysicsPopOptions } from "./physicsBodyCanvas";
4
+ export type { PhysicsBodySelection, PhysicsBodySemanticItemAccessor, PhysicsBodySemanticItemContext, PhysicsBodyStyleContext, PhysicsHoverData, PhysicsSemanticItem, StreamPhysicsBodyForce, StreamPhysicsBodyForceContext, StreamPhysicsBodyRegionState, StreamPhysicsExecutionState, StreamPhysicsFrameHandle, StreamPhysicsFrameProps, StreamPhysicsRegionEffect, StreamPhysicsRegionEffectContext, StreamPhysicsRegionEvent, StreamPhysicsRegionKind, StreamPhysicsRegionVector } from "./StreamPhysicsTypes";
5
+ export declare const StreamPhysicsFrame: React.NamedExoticComponent<StreamPhysicsFrameProps & React.RefAttributes<StreamPhysicsFrameHandle>>;
6
+ export default StreamPhysicsFrame;
@@ -0,0 +1,302 @@
1
+ /**
2
+ * Public types for StreamPhysicsFrame — region effects, body semantics,
3
+ * frame props / handle. Kept separate so region runtime + canvas helpers
4
+ * can import types without pulling the full React frame module.
5
+ */
6
+ import type * as React from "react";
7
+ import type { FrameGraphicsProp, FrameMargin, FrameScheduler } from "../useFrame";
8
+ import type { Style } from "../types";
9
+ import type { Datum } from "../../charts/shared/datumTypes";
10
+ import type { OnObservationCallback } from "../../store/ObservationStore";
11
+ import type { AutoPlaceAnnotations } from "../../recipes/annotationLayout";
12
+ import type { AnnotationContext } from "../../realtime/types";
13
+ import type { GradientLegendConfig, LegendGroup, LegendLayout } from "../../types/legendTypes";
14
+ import type { FocusRingProps } from "../FocusRing";
15
+ import type { PhysicsBodyState, PhysicsColliderBodyFilter, PhysicsColliderShape } from "./PhysicsKernel";
16
+ import type { PhysicsPipelineConfig, PhysicsPipelineControlSurface, PhysicsPipelineStore, PhysicsPipelineTickResult, PhysicsQueuedSpawn, PhysicsSpawnPacingOptions, PhysicsSimulationState, PhysicsObservationEvent } from "./PhysicsPipelineStore";
17
+ import type { PhysicsController } from "./PhysicsControllers";
18
+ import type { PhysicsExecution } from "./PhysicsWorkerProtocol";
19
+ import type { StreamPhysicsPopOptions } from "./physicsBodyCanvas";
20
+ export interface PhysicsBodySelection {
21
+ isActive?: boolean;
22
+ predicate?: (body: PhysicsBodyState) => boolean;
23
+ }
24
+ export type StreamPhysicsRegionKind = "region" | "membrane" | "charge-gate" | "force-field" | "sink" | "source";
25
+ export interface StreamPhysicsRegionVector {
26
+ x?: number;
27
+ y?: number;
28
+ }
29
+ export interface StreamPhysicsBodyRegionState {
30
+ activeRegionIds: string[];
31
+ regionIds: string[];
32
+ charges: Record<string, unknown>;
33
+ attributes: Record<string, unknown>;
34
+ energy: number;
35
+ }
36
+ export interface StreamPhysicsRegionEffectContext {
37
+ body: PhysicsBodyState;
38
+ region: StreamPhysicsRegionEffect;
39
+ regionState: StreamPhysicsBodyRegionState;
40
+ }
41
+ export interface StreamPhysicsRegionEvent {
42
+ type: "region-enter" | "region-exit";
43
+ bodyId: string;
44
+ datum?: unknown;
45
+ observation: PhysicsObservationEvent;
46
+ region: StreamPhysicsRegionEffect;
47
+ regionState: StreamPhysicsBodyRegionState;
48
+ }
49
+ export interface StreamPhysicsRegionEffect {
50
+ /**
51
+ * Stable region id. This is used for observations, accessibility labels,
52
+ * body region state, and generated sensor collider ids.
53
+ */
54
+ id: string;
55
+ /**
56
+ * Visual/semantic intent. The physics behavior is controlled by the other
57
+ * properties; kind lets charts and agents describe the region correctly.
58
+ */
59
+ kind?: StreamPhysicsRegionKind;
60
+ label?: string;
61
+ description?: string;
62
+ shape: PhysicsColliderShape;
63
+ /**
64
+ * Add a solid collider with the same shape in addition to the sensor region.
65
+ * Defaults to false because information membranes normally tax or annotate
66
+ * bodies without hard-blocking them.
67
+ */
68
+ collider?: boolean | "solid" | "boundary";
69
+ /**
70
+ * Optional filter applied to generated region sensors and colliders. This is
71
+ * useful for permeable regions where one body class should observe or collide
72
+ * with a boundary while other bodies pass through.
73
+ */
74
+ bodyFilter?: PhysicsColliderBodyFilter;
75
+ /**
76
+ * Segment thickness used when `collider` is `"boundary"` for an AABB region.
77
+ */
78
+ colliderThickness?: number;
79
+ friction?: number;
80
+ restitution?: number;
81
+ /**
82
+ * The generated sensor collider id. Override only when coordinating with
83
+ * existing observations.
84
+ */
85
+ sensorId?: string;
86
+ binId?: string;
87
+ /**
88
+ * State attached to a body when it enters the region. `true` on a
89
+ * charge-gate means a charge value of 1.
90
+ */
91
+ charge?: boolean | number | string | ((context: StreamPhysicsRegionEffectContext) => unknown);
92
+ energyDelta?: number;
93
+ attributes?: Record<string, unknown> | ((context: StreamPhysicsRegionEffectContext) => Record<string, unknown>);
94
+ /**
95
+ * Continuous force applied while a body is inside the region. This is modeled
96
+ * as a per-frame impulse and currently runs on the sync execution path.
97
+ */
98
+ force?: StreamPhysicsRegionVector | ((context: StreamPhysicsRegionEffectContext) => StreamPhysicsRegionVector | null | undefined);
99
+ /**
100
+ * Linear damping applied while a body is inside the region. Values are
101
+ * per-second-ish coefficients and are intentionally lightweight.
102
+ */
103
+ damping?: number;
104
+ impulseOnEnter?: StreamPhysicsRegionVector | ((context: StreamPhysicsRegionEffectContext) => StreamPhysicsRegionVector | null | undefined);
105
+ impulseOnExit?: StreamPhysicsRegionVector | ((context: StreamPhysicsRegionEffectContext) => StreamPhysicsRegionVector | null | undefined);
106
+ bodyStyle?: Style | ((body: PhysicsBodyState, context: PhysicsBodyStyleContext) => Style);
107
+ /**
108
+ * Set to false to suppress generated keyboard/accessibility semantics.
109
+ * Pass a partial item to override the generated label/description/group.
110
+ */
111
+ semanticItem?: false | Partial<PhysicsSemanticItem>;
112
+ metadata?: unknown;
113
+ onEnter?: (event: StreamPhysicsRegionEvent) => void;
114
+ onExit?: (event: StreamPhysicsRegionEvent) => void;
115
+ }
116
+ export interface PhysicsBodyStyleContext {
117
+ selected: boolean;
118
+ simulationState: PhysicsSimulationState;
119
+ regionState?: StreamPhysicsBodyRegionState;
120
+ regions?: StreamPhysicsRegionEffect[];
121
+ }
122
+ export interface StreamPhysicsExecutionState {
123
+ execution: "sync" | "worker";
124
+ liveBodies: number;
125
+ queuedBodies: number;
126
+ reason?: string;
127
+ requested: PhysicsExecution;
128
+ }
129
+ export interface PhysicsSemanticItem {
130
+ bodyId?: string;
131
+ id?: string;
132
+ label: string;
133
+ description?: string;
134
+ datum?: unknown;
135
+ x: number;
136
+ y: number;
137
+ shape?: FocusRingProps["shape"];
138
+ width?: number;
139
+ height?: number;
140
+ pathData?: string;
141
+ group?: string;
142
+ }
143
+ export interface PhysicsBodySemanticItemContext {
144
+ index: number;
145
+ simulationState: PhysicsSimulationState;
146
+ }
147
+ export type PhysicsBodySemanticItemAccessor = (body: PhysicsBodyState, context: PhysicsBodySemanticItemContext) => false | null | undefined | Partial<PhysicsSemanticItem>;
148
+ export interface StreamPhysicsBodyForceContext {
149
+ body: PhysicsBodyState;
150
+ bodies: readonly PhysicsBodyState[];
151
+ index: number;
152
+ regionState?: StreamPhysicsBodyRegionState;
153
+ regions?: StreamPhysicsRegionEffect[];
154
+ simulationState: PhysicsSimulationState;
155
+ }
156
+ export type StreamPhysicsBodyForce = StreamPhysicsRegionVector | ((context: StreamPhysicsBodyForceContext) => StreamPhysicsRegionVector | null | undefined);
157
+ export interface PhysicsHoverData {
158
+ __semioticHoverData: true;
159
+ body: PhysicsBodyState;
160
+ data: unknown;
161
+ id: string;
162
+ type: "body";
163
+ x: number;
164
+ y: number;
165
+ }
166
+ export interface StreamPhysicsFrameProps {
167
+ accessibleTable?: boolean;
168
+ /**
169
+ * Canvas fill. When set, overrides the theme background unless
170
+ * `backgroundGraphics` already owns the backdrop. Pass `"transparent"`
171
+ * to composite over siblings (same contract as StreamXYFrame).
172
+ */
173
+ background?: string;
174
+ backgroundGraphics?: FrameGraphicsProp;
175
+ /**
176
+ * Optional rAF seam for deterministic frame-loop scheduling in tests.
177
+ * When omitted, the browser's requestAnimationFrame is used.
178
+ */
179
+ frameScheduler?: FrameScheduler;
180
+ /**
181
+ * Monotonic milliseconds used for frame deltas, semantic throttling,
182
+ * pop animations, and frame-originated observation timestamps. Inject a
183
+ * deterministic clock for replayable tests or evidence capture.
184
+ */
185
+ clock?: () => number;
186
+ bodySemanticItemLimit?: number;
187
+ bodySemanticItems?: boolean | PhysicsBodySemanticItemAccessor;
188
+ bodySemanticUpdateMs?: number;
189
+ bodyForces?: StreamPhysicsBodyForce;
190
+ bodyStyle?: Style | ((body: PhysicsBodyState, context: PhysicsBodyStyleContext) => Style);
191
+ /** Identifier included on `onObservation` events and pipeline observations. */
192
+ chartId?: string;
193
+ className?: string;
194
+ /**
195
+ * Uniform fill for bodies when `bodyStyle` does not set `fill`.
196
+ * Accepts CSS vars (`var(--semiotic-primary)`).
197
+ */
198
+ color?: string;
199
+ config?: PhysicsPipelineConfig;
200
+ /**
201
+ * Process plugins that tick with the physics heartbeat (capacity queues,
202
+ * portals, custom process rules). Prefer controllers over pumping
203
+ * `layoutConfig` every frame. Controllers with `continuous` keep RAF alive
204
+ * while they still have work even if the kernel is sleeping.
205
+ */
206
+ controllers?: readonly PhysicsController[];
207
+ /**
208
+ * Keep the animation loop alive even when the physics store reports no
209
+ * pending work. Use for frame-local systems that drive motion from `onTick`
210
+ * or other imperative controls instead of queued spawns/body forces.
211
+ * Also set automatically when any controller opts into continuous mode.
212
+ */
213
+ continuous?: boolean;
214
+ description?: string;
215
+ /** Dashboard hierarchy class hook (`stream-physics-frame--emphasis-*`). */
216
+ emphasis?: "primary" | "secondary";
217
+ /**
218
+ * Chart display mode (primary/context/sparkline/mobile). HOCs resolve this
219
+ * via `useChartMode` and pass it for class hooks + ChartContainer export.
220
+ */
221
+ chartMode?: "primary" | "context" | "sparkline" | "mobile";
222
+ enableHover?: boolean;
223
+ foregroundGraphics?: FrameGraphicsProp;
224
+ hoverRadius?: number;
225
+ initialSpawns?: PhysicsQueuedSpawn[];
226
+ initialSpawnPacing?: PhysicsSpawnPacingOptions;
227
+ /**
228
+ * Semiotic annotations (label/callout/threshold/…). Pixel-space `x`/`y`,
229
+ * or `pointId`/`bodyId` to track a live body. Notes with
230
+ * `physics: "barrier"|"sensor"` also feed colliders via PhysicsAnnotations.
231
+ */
232
+ annotations?: Datum[];
233
+ autoPlaceAnnotations?: AutoPlaceAnnotations;
234
+ svgAnnotationRules?: (annotation: Datum, index: number, context: AnnotationContext) => React.ReactNode;
235
+ legend?: React.ReactNode | {
236
+ legendGroups: LegendGroup[];
237
+ } | {
238
+ gradient: GradientLegendConfig;
239
+ };
240
+ legendHoverBehavior?: (item: {
241
+ label: string;
242
+ } | null) => void;
243
+ legendClickBehavior?: (item: {
244
+ label: string;
245
+ }) => void;
246
+ legendHighlightedCategory?: string | null;
247
+ legendIsolatedCategories?: Set<string>;
248
+ legendPosition?: "right" | "left" | "top" | "bottom";
249
+ legendLayout?: LegendLayout;
250
+ margin?: Partial<FrameMargin>;
251
+ /**
252
+ * Structured interaction events (hover / hover-end / click / click-end) —
253
+ * same contract as XY/ordinal/network frames for AI + coordinated views.
254
+ */
255
+ onObservation?: OnObservationCallback;
256
+ /**
257
+ * Click on a body (or empty canvas when null). Prefer this over
258
+ * `onBodyPointerDown` when you only need the Semiotic click contract.
259
+ */
260
+ onClick?: (datum: unknown | null, event: {
261
+ x: number;
262
+ y: number;
263
+ body: PhysicsBodyState | null;
264
+ }) => void;
265
+ onRegionEvent?: (event: StreamPhysicsRegionEvent) => void;
266
+ onSimulationExecutionChange?: (state: StreamPhysicsExecutionState) => void;
267
+ onBodyPointerDown?: (body: PhysicsBodyState | null, event: React.PointerEvent<HTMLCanvasElement>) => void;
268
+ onBodyHover?: (body: PhysicsBodyState | null, hover: PhysicsHoverData | null) => void;
269
+ onSemanticItemActivate?: (item: PhysicsSemanticItem) => void;
270
+ onSemanticItemFocus?: (item: PhysicsSemanticItem | null) => void;
271
+ onTick?: (result: PhysicsPipelineTickResult, controls: PhysicsPipelineControlSurface) => void;
272
+ /** Uniform opacity for bodies when `bodyStyle` does not set `opacity`. */
273
+ opacity?: number;
274
+ paused?: boolean;
275
+ responsiveHeight?: boolean;
276
+ responsiveWidth?: boolean;
277
+ regionEffects?: StreamPhysicsRegionEffect[];
278
+ selectedBodyStyle?: Style | ((body: PhysicsBodyState, context: PhysicsBodyStyleContext) => Style);
279
+ selection?: PhysicsBodySelection | null;
280
+ semanticItems?: PhysicsSemanticItem[];
281
+ simulationExecution?: PhysicsExecution;
282
+ size?: [number, number];
283
+ /** Uniform stroke for bodies when `bodyStyle` does not set `stroke`. */
284
+ stroke?: string;
285
+ strokeWidth?: number;
286
+ summary?: string;
287
+ suspendWhenHidden?: boolean;
288
+ title?: string | React.ReactNode;
289
+ tooltipContent?: (hover: PhysicsHoverData) => React.ReactNode;
290
+ workerBodyThreshold?: number;
291
+ renderBody?: (ctx: CanvasRenderingContext2D, body: PhysicsBodyState, style: Style) => void;
292
+ beforePaint?: (ctx: CanvasRenderingContext2D, bodies: PhysicsBodyState[]) => void;
293
+ afterPaint?: (ctx: CanvasRenderingContext2D, bodies: PhysicsBodyState[]) => void;
294
+ }
295
+ export interface StreamPhysicsFrameHandle extends PhysicsPipelineControlSurface {
296
+ getData: () => PhysicsBodyState[];
297
+ getRegionState: (bodyId?: string) => StreamPhysicsBodyRegionState | Record<string, StreamPhysicsBodyRegionState> | undefined;
298
+ clearRegionState: (bodyId?: string) => void;
299
+ getStore: () => PhysicsPipelineStore;
300
+ popBodies: (ids: string[], options?: StreamPhysicsPopOptions) => string[];
301
+ }
302
+ export type { StreamPhysicsPopOptions };
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Canvas body drawing + pop animations for StreamPhysicsFrame.
3
+ * Pure paint helpers — no React / store dependency.
4
+ */
5
+ import type { Style } from "../types";
6
+ import type { PhysicsBodyState } from "./PhysicsKernel";
7
+ /**
8
+ * Body mark kinds for process identity without custom renderBody.
9
+ * Set via bodyStyle.mark or datum.__physicsMark / datum.mark.
10
+ */
11
+ export type PhysicsBodyMark = "circle" | "halo" | "faceted" | "pill" | "diamond" | "square";
12
+ export interface StreamPhysicsPopOptions {
13
+ color?: string;
14
+ durationMs?: number;
15
+ radius?: number;
16
+ }
17
+ export interface StreamPhysicsPopAnimation {
18
+ body: PhysicsBodyState;
19
+ color: string;
20
+ durationMs: number;
21
+ radius: number;
22
+ startedAt: number;
23
+ }
24
+ export declare function resolveBodyMark(body: PhysicsBodyState, style: Style): PhysicsBodyMark;
25
+ export declare function drawBody(ctx: CanvasRenderingContext2D, body: PhysicsBodyState, style: Style): void;
26
+ export declare function physicsBodyRadius(body: PhysicsBodyState): number;
27
+ export declare function drawPopAnimations(ctx: CanvasRenderingContext2D, animations: Map<string, StreamPhysicsPopAnimation>, now: number): boolean;
@@ -0,0 +1,4 @@
1
+ import type { PhysicsPipelineStore } from "./PhysicsPipelineStore";
2
+ import type { PhysicsPipelineControlSurface } from "./PhysicsPipelineTypes";
3
+ /** Project the store's public methods into the stable imperative control API. */
4
+ export declare function createPhysicsPipelineControls(store: PhysicsPipelineStore): PhysicsPipelineControlSurface;
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Pure physics pipeline helpers: spawn scheduling, colliders, cloning, hit geometry.
3
+ * Extracted from PhysicsPipelineStore so the store class stays orchestration-only.
4
+ */
5
+ import { type PhysicsActiveSensorPair, type PhysicsBodyState, type PhysicsColliderSpec, type PhysicsKernelOptions, type PhysicsKernelSnapshot } from "./PhysicsKernel";
6
+ import type { PhysicsBodyBudgetOptions } from "./PhysicsBodyBudget";
7
+ import type { PhysicsBoundsColliderOptions, PhysicsObservationEvent, PhysicsPipelineConfig, PhysicsPipelineObservationOptions, PhysicsPipelineQueuedSpawnSnapshot, PhysicsPlotBounds, PhysicsQueuedSpawn, PhysicsSensorObservationConfig, PhysicsSimulationState, PhysicsSpawnPacingOptions, PhysicsXBinColliderOptions } from "./PhysicsPipelineTypes";
8
+ export type InternalQueuedSpawn = PhysicsPipelineQueuedSpawnSnapshot;
9
+ export declare const DEFAULT_PHYSICS_PIPELINE_CONFIG: Required<Omit<PhysicsPipelineConfig, "bodyBudget" | "colliders" | "engine" | "kernel" | "observation" | "sediment">>;
10
+ export interface NormalizedObservationConfig {
11
+ chartId: string;
12
+ chartType: string;
13
+ sensors: Record<string, PhysicsSensorObservationConfig>;
14
+ onObservation?: (event: PhysicsObservationEvent) => void;
15
+ onSimulationStateChange?: (state: PhysicsSimulationState, previousState: PhysicsSimulationState) => void;
16
+ }
17
+ export declare const DEFAULT_OBSERVATION_CONFIG: NormalizedObservationConfig;
18
+ export declare function normalizeObservationConfig(options?: PhysicsPipelineObservationOptions, previous?: NormalizedObservationConfig): NormalizedObservationConfig;
19
+ export declare function cloneSpawn(spawn: PhysicsQueuedSpawn): PhysicsQueuedSpawn;
20
+ export declare function finiteNumber(value: unknown): number | undefined;
21
+ export declare function schedulePhysicsSpawns(spawns: PhysicsQueuedSpawn[], options?: PhysicsSpawnPacingOptions): PhysicsQueuedSpawn[];
22
+ export declare function cloneQueuedSpawn(spawn: InternalQueuedSpawn): InternalQueuedSpawn;
23
+ export declare function cloneColliders(colliders: PhysicsColliderSpec[]): PhysicsColliderSpec[];
24
+ export declare function cloneBodyBudgetOptions(options: false | PhysicsBodyBudgetOptions): false | PhysicsBodyBudgetOptions;
25
+ export declare function sortQueue(a: InternalQueuedSpawn, b: InternalQueuedSpawn): number;
26
+ export declare function requiredKernelOptions(kernel: PhysicsKernelSnapshot["options"]): Required<PhysicsKernelOptions>;
27
+ export declare function bodySearchRadius(body: PhysicsBodyState): number;
28
+ export declare function bodyHitDistanceSquared(body: PhysicsBodyState, x: number, y: number, radius: number): number | null;
29
+ export declare function sensorPairKey(sensorId: string, bodyId: string): string;
30
+ export declare function parseSensorPairKey(key: string): PhysicsActiveSensorPair;
31
+ export type PhysicsQuadtreeLeaf = {
32
+ data?: PhysicsBodyState;
33
+ next?: PhysicsQuadtreeLeaf;
34
+ length?: number;
35
+ };
36
+ export declare function collidersFromPlotBounds(bounds: PhysicsPlotBounds, options?: PhysicsBoundsColliderOptions): PhysicsColliderSpec[];
37
+ export declare function collidersFromXScaleBins(options: PhysicsXBinColliderOptions): PhysicsColliderSpec[];
38
+ export interface PhysicsPipelineEvictionResult {
39
+ evicted: string[];
40
+ sedimented: string[];
41
+ }