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,48 @@
1
+ import type { NavTreeNode } from "../../ai/navigationTree";
2
+ import type { PhysicsBodyState } from "./PhysicsKernel";
3
+ import type { PhysicsObservationEvent } from "./PhysicsPipelineStore";
4
+ export interface PhysicsProjectionContainerSpec {
5
+ id: string;
6
+ label: string;
7
+ count?: number;
8
+ secondary?: number;
9
+ secondaryLabel?: string;
10
+ observed?: number;
11
+ metadata?: Record<string, unknown>;
12
+ }
13
+ export interface PhysicsProjectionBodySummary {
14
+ id: string;
15
+ label: string;
16
+ datum?: unknown;
17
+ }
18
+ export interface PhysicsSettledProjectionRow {
19
+ id: string;
20
+ label: string;
21
+ count: number;
22
+ share: number;
23
+ secondary?: number;
24
+ secondaryLabel?: string;
25
+ observed?: number;
26
+ bodyIds: string[];
27
+ recentBodies: PhysicsProjectionBodySummary[];
28
+ metadata?: Record<string, unknown>;
29
+ }
30
+ export interface PhysicsSettledProjectionOptions {
31
+ bodies?: PhysicsBodyState[];
32
+ getContainerId?: (body: PhysicsBodyState) => string | undefined;
33
+ getBodyLabel?: (body: PhysicsBodyState) => string | undefined;
34
+ recentBodyLimit?: number;
35
+ }
36
+ export interface PhysicsNavigationTreeOptions {
37
+ chartId?: string;
38
+ chartType?: string;
39
+ title?: string;
40
+ projectionLabel?: string;
41
+ maxBodiesPerContainer?: number;
42
+ }
43
+ export interface PhysicsObservationAnnouncementOptions {
44
+ getDatumLabel?: (datum: unknown, event: PhysicsObservationEvent) => string | undefined;
45
+ }
46
+ export declare function buildPhysicsSettledProjection(containers: PhysicsProjectionContainerSpec[], options?: PhysicsSettledProjectionOptions): PhysicsSettledProjectionRow[];
47
+ export declare function buildPhysicsNavigationTree(rows: PhysicsSettledProjectionRow[], options?: PhysicsNavigationTreeOptions): NavTreeNode;
48
+ export declare function physicsObservationAnnouncement(event: PhysicsObservationEvent, options?: PhysicsObservationAnnouncementOptions): string | null;
@@ -0,0 +1,58 @@
1
+ import type { PhysicsBodyState, PhysicsColliderSpec } from "./PhysicsKernel";
2
+ import type { PhysicsPlotBounds } from "./PhysicsPipelineStore";
3
+ export type PhysicsAnnotationRole = "barrier" | "sensor";
4
+ export type PhysicsAnnotationAxis = "x" | "y";
5
+ export interface PhysicsStaticAnnotation {
6
+ id: string;
7
+ label: string;
8
+ x: number;
9
+ y: number;
10
+ x1?: number;
11
+ x2?: number;
12
+ y1?: number;
13
+ y2?: number;
14
+ dx?: number;
15
+ dy?: number;
16
+ physics?: PhysicsAnnotationRole;
17
+ axis?: PhysicsAnnotationAxis;
18
+ colliderId?: string;
19
+ thickness?: number;
20
+ restitution?: number;
21
+ friction?: number;
22
+ description?: string;
23
+ }
24
+ export interface PhysicsBodyAnnotation {
25
+ id: string;
26
+ label: string;
27
+ bodyId: string;
28
+ dx?: number;
29
+ dy?: number;
30
+ description?: string;
31
+ }
32
+ export interface PhysicsResolvedBodyAnnotation extends PhysicsBodyAnnotation {
33
+ anchorX: number;
34
+ anchorY: number;
35
+ labelX: number;
36
+ labelY: number;
37
+ body: PhysicsBodyState;
38
+ }
39
+ export interface PhysicsAnnotationSummary {
40
+ bodyCount: number;
41
+ barrierCount: number;
42
+ sensorCount: number;
43
+ staticCount: number;
44
+ totalCount: number;
45
+ }
46
+ export interface PhysicsAnnotationColliderOptions {
47
+ idPrefix?: string;
48
+ plotBounds?: PhysicsPlotBounds;
49
+ defaultAxis?: PhysicsAnnotationAxis;
50
+ barrierThickness?: number;
51
+ sensorThickness?: number;
52
+ thickness?: number;
53
+ barrierRestitution?: number;
54
+ barrierFriction?: number;
55
+ }
56
+ export declare function collidersFromPhysicsAnnotations(annotations?: PhysicsStaticAnnotation[], options?: PhysicsAnnotationColliderOptions): PhysicsColliderSpec[];
57
+ export declare function resolvePhysicsBodyAnnotations(annotations: PhysicsBodyAnnotation[], bodies: PhysicsBodyState[]): PhysicsResolvedBodyAnnotation[];
58
+ export declare function summarizePhysicsAnnotations(staticAnnotations?: PhysicsStaticAnnotation[], bodyAnnotations?: PhysicsBodyAnnotation[]): PhysicsAnnotationSummary;
@@ -0,0 +1,26 @@
1
+ export type PhysicsBodyBudgetState = "ok" | "warning" | "overflow";
2
+ export type PhysicsBodyBudgetAction = "continue" | "evict" | "retain" | "sediment";
3
+ export interface PhysicsBodyBudgetOptions {
4
+ warnAt?: number;
5
+ }
6
+ export interface PhysicsBodyBudgetInput {
7
+ bodyLimit?: number;
8
+ engineMaxBodiesHint?: number;
9
+ evictionEnabled?: boolean;
10
+ liveBodies: number;
11
+ queuedBodies?: number;
12
+ sedimentEnabled?: boolean;
13
+ options?: false | PhysicsBodyBudgetOptions;
14
+ }
15
+ export interface PhysicsBodyBudgetDecision {
16
+ action: PhysicsBodyBudgetAction;
17
+ bodyLimit?: number;
18
+ engineMaxBodiesHint?: number;
19
+ liveBodies: number;
20
+ overflow: number;
21
+ projectedBodies: number;
22
+ queuedBodies: number;
23
+ state: PhysicsBodyBudgetState;
24
+ warnAt?: number;
25
+ }
26
+ export declare function evaluatePhysicsBodyBudget(input: PhysicsBodyBudgetInput): PhysicsBodyBudgetDecision;
@@ -0,0 +1,10 @@
1
+ import type { PhysicsEngineAdapter } from "./PhysicsEngineAdapter";
2
+ import type { PhysicsBodyState } from "./PhysicsKernel";
3
+ /** Revision-keyed body index used by PhysicsPipelineStore hit testing. */
4
+ export declare class PhysicsBodySpatialIndex {
5
+ private maxSearchRadius;
6
+ private revision;
7
+ private tree;
8
+ hitTest(world: PhysicsEngineAdapter, revision: number, liveBodyOrder: readonly string[], x: number, y: number, radius?: number): PhysicsBodyState | null;
9
+ private ensure;
10
+ }
@@ -0,0 +1,26 @@
1
+ export interface PhysicsCanvasTheme {
2
+ annotationBackground: string;
3
+ annotationStroke: string;
4
+ annotationText: string;
5
+ background: string;
6
+ border: string;
7
+ closedWindowFill: string;
8
+ closedWindowStroke: string;
9
+ danger: string;
10
+ focus: string;
11
+ grid: string;
12
+ gutterFill: string;
13
+ lateFill: string;
14
+ openWindowFill: string;
15
+ openWindowStroke: string;
16
+ primary: string;
17
+ selectedFill: string;
18
+ selectedStroke: string;
19
+ success: string;
20
+ text: string;
21
+ textSecondary: string;
22
+ warning: string;
23
+ }
24
+ export declare const DEFAULT_PHYSICS_CANVAS_THEME: PhysicsCanvasTheme;
25
+ export declare function physicsCanvasColorWithAlpha(color: string, opacity: number): string;
26
+ export declare function resolvePhysicsCanvasTheme(ctx: CanvasRenderingContext2D): PhysicsCanvasTheme;
@@ -0,0 +1,75 @@
1
+ /** Stateful process rules that ride StreamPhysicsFrame's live heartbeat. */
2
+ import type { PhysicsBodyState } from "./PhysicsKernel";
3
+ import type { PhysicsPipelineControlSurface, PhysicsPipelineTickResult } from "./PhysicsPipelineStore";
4
+ import type { StreamPhysicsBodyForce, StreamPhysicsBodyForceContext, StreamPhysicsBodyRegionState, StreamPhysicsRegionVector } from "./StreamPhysicsFrame";
5
+ import { createCapacityQueueController } from "./CapacityQueueController";
6
+ export { createCapacityQueueController };
7
+ export type { CapacityQueueAbandonedInfo, CapacityQueueAgeSummary, CapacityQueueBlockedInfo, CapacityQueueControllerOptions, CapacityQueueProcessedInfo, CapacityQueueSnapshot, CapacityQueueVisitInfo, CapacityQueueWindowSnapshot } from "./CapacityQueueTypes";
8
+ export interface PhysicsControllerTickContext {
9
+ result: PhysicsPipelineTickResult;
10
+ controls: PhysicsPipelineControlSurface;
11
+ /**
12
+ * Exact simulated seconds advanced by the kernel for this callback:
13
+ * `result.steps * fixedDt`. This is zero when a pipeline tick does not run a
14
+ * fixed substep, so time-based controller work must not advance on that tick.
15
+ */
16
+ dt: number;
17
+ elapsed: number;
18
+ /**
19
+ * Region membership for a body (active region ids, charges, attributes).
20
+ * Backed by StreamPhysicsFrame region state.
21
+ */
22
+ getRegionState: (bodyId: string) => StreamPhysicsBodyRegionState | undefined;
23
+ }
24
+ export interface PhysicsController {
25
+ /** Stable id for debugging / observation. */
26
+ id: string;
27
+ /**
28
+ * Keep the RAF loop alive even when the kernel reports allSleeping.
29
+ * Capacity queues and continuous process rules should set this true.
30
+ */
31
+ continuous?: boolean;
32
+ /**
33
+ * Called after each store tick and continuous-force application. It may run
34
+ * with `context.dt === 0` when the frame only synchronizes runtime state.
35
+ */
36
+ tick: (context: PhysicsControllerTickContext) => void;
37
+ /**
38
+ * Optional force contribution composed into StreamPhysicsFrame bodyForces.
39
+ * The frame integrates the returned vector over simulated fixed-step time
40
+ * and applies no impulse when the tick advances zero substeps. Return null to
41
+ * skip this body.
42
+ */
43
+ bodyForce?: (context: StreamPhysicsBodyForceContext) => StreamPhysicsRegionVector | null | undefined;
44
+ /** Optional live metrics for settled projection / readouts. */
45
+ getSnapshot?: () => unknown;
46
+ dispose?: () => void;
47
+ }
48
+ export interface ComposedPhysicsControllers {
49
+ controllers: PhysicsController[];
50
+ continuous: boolean;
51
+ onTick: (result: PhysicsPipelineTickResult, controls: PhysicsPipelineControlSurface, extras: {
52
+ dt: number;
53
+ elapsed: number;
54
+ getRegionState: PhysicsControllerTickContext["getRegionState"];
55
+ }) => void;
56
+ bodyForce: StreamPhysicsBodyForce;
57
+ }
58
+ /**
59
+ * Compose controllers into a single continuous flag, bodyForce, and onTick.
60
+ * Call onTick from StreamPhysicsFrame after each pipeline tick; `ctx.dt`
61
+ * accounts for every fixed substep completed by that tick.
62
+ */
63
+ export declare function composePhysicsControllers(controllers: readonly PhysicsController[] | undefined | null): ComposedPhysicsControllers | null;
64
+ /** Apply one portal impulse per active-region visit. */
65
+ export declare function createPortalController(options: {
66
+ id?: string;
67
+ fromRegionId: string;
68
+ impulse?: StreamPhysicsRegionVector;
69
+ continuous?: boolean;
70
+ onPortal?: (body: PhysicsBodyState) => void;
71
+ }): PhysicsController;
72
+ export type PhysicsControllerFactory = typeof createCapacityQueueController;
73
+ export { createDependencyGateController, createServiceLevelController, createServiceResourcePoolController } from "./ServiceOperationsControllers";
74
+ export type { DependencyGateController, ServiceLevelController, ServiceResourcePoolController } from "./ServiceOperationsControllers";
75
+ export type { DependencyGateOptions, DependencyGateSnapshot, ServiceLevelCaseInfo, ServiceLevelCaseState, ServiceLevelControllerOptions, ServiceLevelSnapshot, ServiceResourceAssignment, ServiceResourceDefinition, ServiceResourcePoolOptions, ServiceResourcePoolSnapshot } from "./ServiceOperationsTypes";
@@ -0,0 +1,59 @@
1
+ import { type PhysicsActiveSensorPair, type PhysicsBodySpec, type PhysicsBodyState, type PhysicsColliderSpec, type PhysicsKernelEvent, type PhysicsKernelOptions, type PhysicsKernelSnapshot, type PhysicsSpringSpec } from "./PhysicsKernel";
2
+ export type PhysicsEngineDeterminism = "strict" | "tolerance" | "none";
3
+ export interface PhysicsEngineCapabilities {
4
+ engine: string;
5
+ determinism: PhysicsEngineDeterminism;
6
+ sensors: boolean;
7
+ joints: boolean;
8
+ ccd: boolean;
9
+ maxBodiesHint: number;
10
+ worker: boolean;
11
+ }
12
+ export interface PhysicsEngineAdapter {
13
+ readonly id: string;
14
+ readonly capabilities: PhysicsEngineCapabilities;
15
+ init: (options?: PhysicsKernelOptions) => void;
16
+ spawn: (spec: PhysicsBodySpec) => void;
17
+ remove: (ids: string[]) => void;
18
+ setColliders: (colliders: PhysicsColliderSpec[]) => void;
19
+ setConstraint: (spec: PhysicsSpringSpec) => string;
20
+ removeConstraint: (id: string) => void;
21
+ applyImpulse: (id: string, ix: number, iy: number) => void;
22
+ step: (dtSeconds?: number) => void;
23
+ settle: (maxSteps?: number, dtSeconds?: number) => number;
24
+ readState: (out?: PhysicsBodyState[]) => PhysicsBodyState[];
25
+ events: () => PhysicsKernelEvent[];
26
+ activeSensorPairs: () => PhysicsActiveSensorPair[];
27
+ allSleeping: () => boolean;
28
+ snapshot: () => PhysicsKernelSnapshot;
29
+ restore: (snapshot: PhysicsKernelSnapshot) => void;
30
+ nextRandom: () => number;
31
+ dispose: () => void;
32
+ }
33
+ export type PhysicsEngineAdapterFactory = (options?: PhysicsKernelOptions) => PhysicsEngineAdapter;
34
+ export type PhysicsEngineAdapterInput = PhysicsEngineAdapter | PhysicsEngineAdapterFactory;
35
+ export declare class BuiltInPhysicsEngineAdapter implements PhysicsEngineAdapter {
36
+ readonly id = "builtin";
37
+ readonly capabilities: PhysicsEngineCapabilities;
38
+ private world;
39
+ constructor(options?: PhysicsKernelOptions);
40
+ init(options?: PhysicsKernelOptions): void;
41
+ spawn(spec: PhysicsBodySpec): void;
42
+ remove(ids: string[]): void;
43
+ setColliders(colliders: PhysicsColliderSpec[]): void;
44
+ setConstraint(spec: PhysicsSpringSpec): string;
45
+ removeConstraint(id: string): void;
46
+ applyImpulse(id: string, ix: number, iy: number): void;
47
+ step(dtSeconds?: number): void;
48
+ settle(maxSteps?: number, dtSeconds?: number): number;
49
+ readState(out?: PhysicsBodyState[]): PhysicsBodyState[];
50
+ events(): PhysicsKernelEvent[];
51
+ activeSensorPairs(): PhysicsActiveSensorPair[];
52
+ allSleeping(): boolean;
53
+ snapshot(): PhysicsKernelSnapshot;
54
+ restore(snapshot: PhysicsKernelSnapshot): void;
55
+ nextRandom(): number;
56
+ dispose(): void;
57
+ }
58
+ export declare function createDefaultPhysicsEngineAdapter(options?: PhysicsKernelOptions): PhysicsEngineAdapter;
59
+ export declare function resolvePhysicsEngineAdapter(input: PhysicsEngineAdapterInput | undefined, options?: PhysicsKernelOptions): PhysicsEngineAdapter;
@@ -0,0 +1,23 @@
1
+ import type { PhysicsEngineAdapterFactory, PhysicsEngineDeterminism } from "./PhysicsEngineAdapter";
2
+ export interface PhysicsEngineConformanceOptions {
3
+ determinism?: PhysicsEngineDeterminism;
4
+ tolerance?: number;
5
+ }
6
+ export interface PhysicsEngineConformanceBody {
7
+ id: string;
8
+ x: number;
9
+ y: number;
10
+ vx: number;
11
+ vy: number;
12
+ sleeping: boolean;
13
+ }
14
+ export interface PhysicsEngineConformanceResult {
15
+ deterministicReplay: PhysicsEngineConformanceBody[];
16
+ sensorEvents: string[];
17
+ sensorFinalX: number;
18
+ sleepWakeEvents: string[];
19
+ snapshotReplay: PhysicsEngineConformanceBody[];
20
+ springBodyX: number;
21
+ }
22
+ export declare function runPhysicsEngineConformance(factory: PhysicsEngineAdapterFactory, _options?: PhysicsEngineConformanceOptions): PhysicsEngineConformanceResult;
23
+ export declare function comparePhysicsEngineConformance(actual: PhysicsEngineConformanceResult, expected: PhysicsEngineConformanceResult, options?: PhysicsEngineConformanceOptions): string[];
@@ -0,0 +1,25 @@
1
+ import type { PhysicsSettledProjectionRow } from "./PhysicsAccessibility";
2
+ import type { PhysicsBodyState } from "./PhysicsKernel";
3
+ import type { PhysicsPipelineSnapshot } from "./PhysicsPipelineStore";
4
+ export interface PhysicsEvidenceBinCount {
5
+ id: string;
6
+ label: string;
7
+ count: number;
8
+ secondary?: number;
9
+ secondaryLabel?: string;
10
+ observed?: number;
11
+ }
12
+ export interface PhysicsSettledEvidence {
13
+ bodyCount: number;
14
+ sleepingCount: number;
15
+ settled: boolean;
16
+ stepsRun: number;
17
+ seed: number;
18
+ binCounts: PhysicsEvidenceBinCount[];
19
+ }
20
+ export interface PhysicsSettledEvidenceOptions {
21
+ bodies?: PhysicsBodyState[];
22
+ projectionRows?: PhysicsSettledProjectionRow[];
23
+ stepsRun?: number;
24
+ }
25
+ export declare function buildPhysicsSettledEvidence(snapshot: PhysicsPipelineSnapshot, options?: PhysicsSettledEvidenceOptions): PhysicsSettledEvidence;
@@ -0,0 +1,207 @@
1
+ export type PhysicsBodyShape = {
2
+ type: "circle";
3
+ radius: number;
4
+ } | {
5
+ type: "aabb";
6
+ width: number;
7
+ height: number;
8
+ };
9
+ export type PhysicsColliderShape = {
10
+ type: "aabb";
11
+ x: number;
12
+ y: number;
13
+ width: number;
14
+ height: number;
15
+ } | {
16
+ type: "segment";
17
+ x1: number;
18
+ y1: number;
19
+ x2: number;
20
+ y2: number;
21
+ thickness?: number;
22
+ };
23
+ export interface PhysicsKernelOptions {
24
+ seed?: number;
25
+ gravity?: {
26
+ x: number;
27
+ y: number;
28
+ };
29
+ fixedDt?: number;
30
+ cellSize?: number;
31
+ collisionIterations?: number;
32
+ velocityDamping?: number;
33
+ sleepSpeed?: number;
34
+ sleepAfter?: number;
35
+ restitution?: number;
36
+ friction?: number;
37
+ /** Speed cap (px/s) applied each substep to prevent tunneling through thin walls. */
38
+ maxVelocity?: number;
39
+ /**
40
+ * Contact impact speed (px/s) above which a resting/sleeping body is woken.
41
+ * Higher than `sleepSpeed` so a settled pile is not churned by every arrival —
42
+ * a sleeping body acts as a static anchor until something hits it hard enough.
43
+ */
44
+ contactWakeSpeed?: number;
45
+ }
46
+ export interface PhysicsBodySpec {
47
+ id: string;
48
+ x: number;
49
+ y: number;
50
+ vx?: number;
51
+ vy?: number;
52
+ angle?: number;
53
+ mass?: number;
54
+ restitution?: number;
55
+ friction?: number;
56
+ /** Disable body-body contacts for visual/tethered satellite marks. */
57
+ bodyCollisions?: boolean;
58
+ shape: PhysicsBodyShape;
59
+ datum?: unknown;
60
+ }
61
+ export interface PhysicsBodyState {
62
+ id: string;
63
+ x: number;
64
+ y: number;
65
+ prevX: number;
66
+ prevY: number;
67
+ vx: number;
68
+ vy: number;
69
+ angle: number;
70
+ mass: number;
71
+ bodyCollisions?: boolean;
72
+ shape: PhysicsBodyShape;
73
+ sleeping: boolean;
74
+ datum?: unknown;
75
+ }
76
+ export interface PhysicsColliderBodyFilterSpec {
77
+ property: string;
78
+ equals?: unknown;
79
+ notEquals?: unknown;
80
+ oneOf?: unknown[];
81
+ notOneOf?: unknown[];
82
+ }
83
+ export type PhysicsColliderBodyFilter = PhysicsColliderBodyFilterSpec | ((body: PhysicsBodyState) => boolean);
84
+ export interface PhysicsColliderSpec {
85
+ id: string;
86
+ shape: PhysicsColliderShape;
87
+ sensor?: boolean;
88
+ restitution?: number;
89
+ friction?: number;
90
+ /**
91
+ * Optional body filter for permeable colliders. Bodies that do not match the
92
+ * filter ignore this collider or sensor entirely. Object filters are worker
93
+ * serializable; function filters require sync execution.
94
+ */
95
+ bodyFilter?: PhysicsColliderBodyFilter;
96
+ }
97
+ export interface PhysicsSpringSpec {
98
+ id?: string;
99
+ bodyId: string;
100
+ target: {
101
+ type: "point";
102
+ x: number;
103
+ y: number;
104
+ } | {
105
+ type: "body";
106
+ bodyId: string;
107
+ };
108
+ restLength?: number;
109
+ stiffness?: number;
110
+ damping?: number;
111
+ }
112
+ export interface PhysicsKernelSnapshotBody extends PhysicsBodyState {
113
+ bodyCollisions: boolean;
114
+ index: number;
115
+ sleepTime: number;
116
+ restitution?: number;
117
+ friction?: number;
118
+ }
119
+ export interface PhysicsKernelSnapshotCollider extends PhysicsColliderSpec {
120
+ index: number;
121
+ }
122
+ export interface PhysicsKernelSnapshotSpring extends Required<Omit<PhysicsSpringSpec, "target">> {
123
+ target: PhysicsSpringSpec["target"];
124
+ }
125
+ export type PhysicsKernelEvent = {
126
+ type: "contact";
127
+ bodyId: string;
128
+ otherId: string;
129
+ sensor: false;
130
+ } | {
131
+ type: "sensor-enter";
132
+ bodyId: string;
133
+ sensorId: string;
134
+ } | {
135
+ type: "sensor-exit";
136
+ bodyId: string;
137
+ sensorId: string;
138
+ } | {
139
+ type: "sleep";
140
+ bodyId: string;
141
+ } | {
142
+ type: "wake";
143
+ bodyId: string;
144
+ };
145
+ export interface PhysicsActiveSensorPair {
146
+ sensorId: string;
147
+ bodyId: string;
148
+ }
149
+ export interface PhysicsKernelSnapshot {
150
+ options: Required<PhysicsKernelOptions>;
151
+ bodies: PhysicsKernelSnapshotBody[];
152
+ colliders: PhysicsKernelSnapshotCollider[];
153
+ springs: PhysicsKernelSnapshotSpring[];
154
+ activeSensors: string[];
155
+ }
156
+ export declare class PhysicsKernelWorld {
157
+ readonly capabilities: {
158
+ determinism: "strict";
159
+ sensors: boolean;
160
+ joints: boolean;
161
+ ccd: boolean;
162
+ maxBodiesHint: number;
163
+ worker: boolean;
164
+ };
165
+ private options;
166
+ private bodies;
167
+ private colliders;
168
+ private springs;
169
+ private activeSensors;
170
+ private supportedThisStep;
171
+ private lastEvents;
172
+ private nextBodyIndex;
173
+ private nextColliderIndex;
174
+ private nextSpringIndex;
175
+ private random;
176
+ constructor(options?: PhysicsKernelOptions);
177
+ init(options?: PhysicsKernelOptions): void;
178
+ spawn(spec: PhysicsBodySpec): void;
179
+ remove(ids: string[]): void;
180
+ setColliders(colliders: PhysicsColliderSpec[]): void;
181
+ setConstraint(spec: PhysicsSpringSpec): string;
182
+ removeConstraint(id: string): void;
183
+ applyImpulse(id: string, ix: number, iy: number): void;
184
+ step(dtSeconds?: number): void;
185
+ settle(maxSteps?: number, dtSeconds?: number): number;
186
+ readState(out?: PhysicsBodyState[]): PhysicsBodyState[];
187
+ events(): PhysicsKernelEvent[];
188
+ activeSensorPairs(): PhysicsActiveSensorPair[];
189
+ allSleeping(): boolean;
190
+ snapshot(): PhysicsKernelSnapshot;
191
+ restore(snapshot: PhysicsKernelSnapshot): void;
192
+ dispose(): void;
193
+ private sortedBodies;
194
+ private sortedColliders;
195
+ private applySprings;
196
+ private resolveBodyPairs;
197
+ private bodyPairKeys;
198
+ private resolveDynamicCollision;
199
+ private applyFriction;
200
+ private resolveColliders;
201
+ private resolveStaticCollision;
202
+ private updateSensors;
203
+ private updateSleeping;
204
+ private wake;
205
+ /** Uses the deterministic PRNG for future jittered spawn helpers. */
206
+ nextRandom(): number;
207
+ }
@@ -0,0 +1,12 @@
1
+ export interface PhysicsOptionalEngineInstallDetails {
2
+ engine: string;
3
+ importPath: string;
4
+ packageName: string;
5
+ installCommand: string;
6
+ }
7
+ export declare class PhysicsOptionalEngineDependencyError extends Error {
8
+ readonly details: PhysicsOptionalEngineInstallDetails;
9
+ constructor(details: PhysicsOptionalEngineInstallDetails, cause?: unknown);
10
+ }
11
+ export declare function optionalEngineDependencyError(details: PhysicsOptionalEngineInstallDetails, cause?: unknown): PhysicsOptionalEngineDependencyError;
12
+ export declare function loadOptionalPhysicsPeer(details: PhysicsOptionalEngineInstallDetails): Promise<unknown>;
@@ -0,0 +1,84 @@
1
+ import { type PhysicsBodyState, type PhysicsColliderSpec, type PhysicsKernelEvent, type PhysicsSpringSpec } from "./PhysicsKernel";
2
+ import { type PhysicsSedimentBinSnapshot, type PhysicsSedimentColumn, type PhysicsSedimentHeightfieldOptions, type PhysicsSedimentTotals } from "./PhysicsSediment";
3
+ import { type PhysicsBodyBudgetDecision } from "./PhysicsBodyBudget";
4
+ import type { PhysicsObservationEvent, PhysicsObservationRecord, PhysicsPipelineConfig, PhysicsPipelineControlSurface, PhysicsPipelineSnapshot, PhysicsPipelineTickResult, PhysicsQueuedSpawn, PhysicsSpawnPacingOptions } from "./PhysicsPipelineTypes";
5
+ import { type UpdateResult } from "../pipelineUpdateContract";
6
+ export type { PhysicsPlotBounds, PhysicsBoundsColliderOptions, PhysicsXBinColliderOptions, PhysicsSpawnSpringSpec, PhysicsQueuedSpawn, PhysicsSpawnPacing, PhysicsSpawnTimeAccessor, PhysicsSpawnPacingOptions, PhysicsPipelineQueuedSpawnSnapshot, PhysicsObservationEventType, PhysicsSimulationState, PhysicsObservationEvent, PhysicsObservationRecord, PhysicsSensorObservationConfig, PhysicsPipelineObservationOptions, PhysicsPipelineConfig, PhysicsPipelineTickResult, PhysicsPipelineSnapshot, PhysicsPipelineControlSurface } from "./PhysicsPipelineTypes";
7
+ export { schedulePhysicsSpawns, collidersFromPlotBounds, collidersFromXScaleBins } from "./physicsPipelineHelpers";
8
+ export type { ChangeSet, Invalidation, RevisionSet, UpdateResult } from "../pipelineUpdateContract";
9
+ export declare class PhysicsPipelineStore {
10
+ private activeSensorPairs;
11
+ private accumulator;
12
+ private bodyBudget;
13
+ private bodyBudgetObservationKey;
14
+ private config;
15
+ /** Raw public config references, used only for no-op classification. */
16
+ private configInput;
17
+ private engineInput?;
18
+ private bodySpatialIndex;
19
+ private elapsedSeconds;
20
+ private liveBodyOrder;
21
+ private nextSequence;
22
+ private observation;
23
+ private paused;
24
+ private queue;
25
+ private revision;
26
+ private updateResults;
27
+ private sediment;
28
+ private simulationState;
29
+ private visible;
30
+ private world;
31
+ constructor(config?: PhysicsPipelineConfig);
32
+ updateConfig(config: PhysicsPipelineConfig): void;
33
+ /** Additive explicit-result form of {@link updateConfig}. */
34
+ updateConfigWithResult(config: PhysicsPipelineConfig): UpdateResult;
35
+ setColliders(colliders: PhysicsColliderSpec[]): void;
36
+ enqueue(spawn: PhysicsQueuedSpawn | PhysicsQueuedSpawn[], pacing?: PhysicsSpawnPacingOptions): void;
37
+ /** Additive explicit-result form of {@link enqueue}. */
38
+ enqueueWithResult(spawn: PhysicsQueuedSpawn | PhysicsQueuedSpawn[], pacing?: PhysicsSpawnPacingOptions): UpdateResult;
39
+ spawnNow(spawn: PhysicsQueuedSpawn): void;
40
+ clear(): void;
41
+ tick(deltaSeconds: number): PhysicsPipelineTickResult;
42
+ settle(maxSteps?: number): number;
43
+ settleWithObservations(maxSteps?: number): PhysicsPipelineTickResult;
44
+ readBodies(out?: PhysicsBodyState[]): PhysicsBodyState[];
45
+ readSediment(): PhysicsSedimentBinSnapshot[];
46
+ bodyBudgetStatus(): PhysicsBodyBudgetDecision;
47
+ sedimentTotals(): PhysicsSedimentTotals;
48
+ sedimentHeightfield(options?: PhysicsSedimentHeightfieldOptions): PhysicsSedimentColumn[];
49
+ hitTest(x: number, y: number, radius?: number): PhysicsBodyState | null;
50
+ events(): PhysicsKernelEvent[];
51
+ allSleeping(): boolean;
52
+ hasPendingWork(): boolean;
53
+ queueSize(): number;
54
+ liveBodyCount(): number;
55
+ elapsed(): number;
56
+ recordObservation(record: PhysicsObservationRecord): PhysicsObservationEvent;
57
+ /** Most recent explicit update result for a revision-aware host or tool. */
58
+ getLastUpdateResult(): UpdateResult;
59
+ version(): number;
60
+ setPaused(paused: boolean): void;
61
+ setVisible(visible: boolean): void;
62
+ remove(ids: string[]): string[];
63
+ setConstraint(spec: PhysicsSpringSpec): string;
64
+ removeConstraint(id: string): void;
65
+ applyImpulse(id: string, ix: number, iy: number): void;
66
+ nextRandom(): number;
67
+ controls(): PhysicsPipelineControlSurface;
68
+ snapshot(): PhysicsPipelineSnapshot;
69
+ restore(snapshot: PhysicsPipelineSnapshot): void;
70
+ private spawnDue;
71
+ private spawnOne;
72
+ private result;
73
+ private observeKernelEvents;
74
+ private observeSensorTransitions;
75
+ private removeActiveSensorPairsForBodies;
76
+ private observationContext;
77
+ private emitObservation;
78
+ private evaluateBodyBudget;
79
+ private observeBodyBudget;
80
+ private syncSimulationState;
81
+ private evictOverflow;
82
+ private absorbSediment;
83
+ private sleepingFirstEvictionOrder;
84
+ }