semiotic 3.8.0 → 3.8.2

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 (331) hide show
  1. package/CLAUDE.md +14 -9
  2. package/README.md +56 -55
  3. package/ai/behaviorContracts.cjs +9 -0
  4. package/ai/dist/mcp-server.js +240 -30
  5. package/ai/schema.json +616 -42
  6. package/ai/surface-manifest.json +3 -2
  7. package/ai/system-prompt.md +7 -3
  8. package/dist/__tests__/scenarios/mcpProtocolTypes.d.ts +20 -0
  9. package/dist/chunk-OrdinalBrushOverlay-PXHQYDB2.module.min.js +2 -0
  10. package/dist/chunk-XYBrushOverlay-ECZJJLAJ.module.min.js +1 -0
  11. package/dist/chunk-XYBrushOverlay-EP2SV3UI.module.min.js +2 -0
  12. package/dist/chunk-chunk-255KDHW5.module.min.js +1 -0
  13. package/dist/chunk-chunk-27HVVXS6.module.min.js +1 -0
  14. package/dist/chunk-chunk-2CXCXRB4.module.min.js +1 -0
  15. package/dist/chunk-chunk-2JGJ5GUG.module.min.js +2 -0
  16. package/dist/chunk-chunk-2UN3ANRN.module.min.js +2 -0
  17. package/dist/chunk-chunk-2VUEY5TH.module.min.js +1 -0
  18. package/dist/chunk-chunk-2WVCH4PL.module.min.js +1 -0
  19. package/dist/chunk-chunk-5UKL5W76.module.min.js +2 -0
  20. package/dist/chunk-chunk-5WEFWNUW.module.min.js +2 -0
  21. package/dist/chunk-chunk-6F6GEAQU.module.min.js +1 -0
  22. package/dist/chunk-chunk-7LHMKRKE.module.min.js +2 -0
  23. package/dist/chunk-chunk-BHYTYMY2.module.min.js +2 -0
  24. package/dist/chunk-chunk-C6EJ4IOD.module.min.js +2 -0
  25. package/dist/chunk-chunk-CA3YDW6F.module.min.js +1 -0
  26. package/dist/chunk-chunk-CP3EN6KZ.module.min.js +1 -0
  27. package/dist/chunk-chunk-CYIML3AV.module.min.js +2 -0
  28. package/dist/chunk-chunk-DNY43POY.module.min.js +1 -0
  29. package/dist/chunk-chunk-DSNGDNJY.module.min.js +1 -0
  30. package/dist/chunk-chunk-E7MIQX7D.module.min.js +2 -0
  31. package/dist/chunk-chunk-EMO5NUGE.module.min.js +1 -0
  32. package/dist/chunk-chunk-ES4DCG3L.module.min.js +1 -0
  33. package/dist/chunk-chunk-FAKO3RGQ.module.min.js +2 -0
  34. package/dist/chunk-chunk-FYY2ACNJ.module.min.js +2 -0
  35. package/dist/chunk-chunk-G7WFWHAD.module.min.js +2 -0
  36. package/dist/chunk-chunk-GMQ5AYTD.module.min.js +1 -0
  37. package/dist/chunk-chunk-H4PPRW6N.module.min.js +1 -0
  38. package/dist/chunk-chunk-IFYPMWKY.module.min.js +1 -0
  39. package/dist/chunk-chunk-J3ELI22J.module.min.js +1 -0
  40. package/dist/chunk-chunk-J3QOW4OE.module.min.js +0 -0
  41. package/dist/chunk-chunk-J3XWETBJ.module.min.js +2 -0
  42. package/dist/chunk-chunk-JCG72SGW.module.min.js +2 -0
  43. package/dist/{semiotic-ai-chunk-OG7BQUUW.module.min.js → chunk-chunk-JJ2OOIET.module.min.js} +0 -1
  44. package/dist/chunk-chunk-KTWEBFMX.module.min.js +2 -0
  45. package/dist/chunk-chunk-L6D3I3V7.module.min.js +2 -0
  46. package/dist/chunk-chunk-M337NY6L.module.min.js +1 -0
  47. package/dist/chunk-chunk-NO4MCQVD.module.min.js +1 -0
  48. package/dist/chunk-chunk-ODUZEEBH.module.min.js +2 -0
  49. package/dist/chunk-chunk-P6UBCMSQ.module.min.js +2 -0
  50. package/dist/chunk-chunk-Q2YADC2V.module.min.js +2 -0
  51. package/dist/chunk-chunk-QRIBHZYW.module.min.js +1 -0
  52. package/dist/chunk-chunk-QSQVBIJA.module.min.js +1 -0
  53. package/dist/chunk-chunk-RCF52Z42.module.min.js +2 -0
  54. package/dist/chunk-chunk-RH5TSQPH.module.min.js +1 -0
  55. package/dist/chunk-chunk-ROP4HI7H.module.min.js +2 -0
  56. package/dist/chunk-chunk-RZH7VZYS.module.min.js +2 -0
  57. package/dist/chunk-chunk-SIRIJ3DY.module.min.js +1 -0
  58. package/dist/chunk-chunk-STZFFTAN.module.min.js +2 -0
  59. package/dist/chunk-chunk-SV4XAZ3Q.module.min.js +1 -0
  60. package/dist/chunk-chunk-T27ZEV6A.module.min.js +1 -0
  61. package/dist/chunk-chunk-U3AGQ5EF.module.min.js +2 -0
  62. package/dist/chunk-chunk-U66USBWU.module.min.js +1 -0
  63. package/dist/chunk-chunk-VVCA3DB7.module.min.js +1 -0
  64. package/dist/chunk-chunk-W3DB2MN4.module.min.js +2 -0
  65. package/dist/chunk-chunk-WCX6U47H.module.min.js +2 -0
  66. package/dist/chunk-chunk-WDIN4LRC.module.min.js +1 -0
  67. package/dist/chunk-chunk-XEVJDUTH.module.min.js +1 -0
  68. package/dist/chunk-chunk-XOYX77KF.module.min.js +2 -0
  69. package/dist/chunk-chunk-YCQYG6J5.module.min.js +2 -0
  70. package/dist/chunk-chunk-YHNZCPOZ.module.min.js +2 -0
  71. package/dist/chunk-chunk-YWZB3KPI.module.min.js +2 -0
  72. package/dist/chunk-chunk-Z5KXAVQD.module.min.js +2 -0
  73. package/dist/chunk-chunk-ZCNBUZPL.module.min.js +2 -0
  74. package/dist/chunk-chunk-ZLKRTF5N.module.min.js +2 -0
  75. package/dist/chunk-chunk-ZTNVDWAK.module.min.js +2 -0
  76. package/dist/chunk-statisticalOverlays-6MVAK5RW.module.min.js +2 -0
  77. package/dist/components/AccessibleNavTree.d.ts +7 -1
  78. package/dist/components/ai/chartClinicMetadata.generated.d.ts +15 -0
  79. package/dist/components/ai/useNavigationSync.d.ts +17 -2
  80. package/dist/components/chartContainerMobile.d.ts +9 -0
  81. package/dist/components/charts/geo/ChoroplethMap.d.ts +19 -2
  82. package/dist/components/charts/geo/DistanceCartogram.d.ts +14 -2
  83. package/dist/components/charts/geo/FlowMap.d.ts +10 -6
  84. package/dist/components/charts/geo/ProportionalSymbolMap.d.ts +14 -2
  85. package/dist/components/charts/index.d.ts +6 -0
  86. package/dist/components/charts/network/ChordDiagram.d.ts +9 -1
  87. package/dist/components/charts/network/ForceDirectedGraph.d.ts +11 -0
  88. package/dist/components/charts/network/SankeyDiagram.d.ts +9 -1
  89. package/dist/components/charts/ordinal/BarChart.d.ts +21 -0
  90. package/dist/components/charts/ordinal/GroupedBarChart.d.ts +11 -0
  91. package/dist/components/charts/ordinal/StackedBarChart.d.ts +11 -0
  92. package/dist/components/charts/physics/CollisionSwarmChart.d.ts +7 -0
  93. package/dist/components/charts/physics/EventDropChart.d.ts +7 -0
  94. package/dist/components/charts/physics/GaltonBoardChart.d.ts +8 -0
  95. package/dist/components/charts/physics/PhysicalFlowChart.d.ts +7 -0
  96. package/dist/components/charts/physics/PhysicsCustomChart.d.ts +4 -25
  97. package/dist/components/charts/physics/PhysicsPileChart.d.ts +7 -0
  98. package/dist/components/charts/physics/physicsChartShared.d.ts +17 -1
  99. package/dist/components/charts/physics/physicsCustomLayout.d.ts +32 -0
  100. package/dist/components/charts/shared/AnnotationLabel.d.ts +88 -0
  101. package/dist/components/charts/shared/annotationActivation.d.ts +35 -0
  102. package/dist/components/charts/shared/annotationLabelLayout.d.ts +5 -0
  103. package/dist/components/charts/shared/annotationRules.d.ts +2 -1
  104. package/dist/components/charts/shared/auditAccessibilityText.d.ts +13 -0
  105. package/dist/components/charts/shared/chartSelectionUtils.d.ts +4 -0
  106. package/dist/components/charts/shared/chartSpecCore.d.ts +3 -3
  107. package/dist/components/charts/shared/datumTypes.d.ts +2 -0
  108. package/dist/components/charts/shared/diagnoseAnnotationChecks.d.ts +2 -0
  109. package/dist/components/charts/shared/formatUtils.d.ts +3 -3
  110. package/dist/components/charts/shared/hatchFill.d.ts +87 -0
  111. package/dist/components/charts/shared/hooks.d.ts +7 -6
  112. package/dist/components/charts/shared/knownChartComponents.d.ts +9 -0
  113. package/dist/components/charts/shared/leastSquaresRegression.d.ts +16 -0
  114. package/dist/components/charts/shared/mergeShapeStyle.d.ts +3 -2
  115. package/dist/components/charts/shared/semanticInteractions.d.ts +42 -0
  116. package/dist/components/charts/shared/sparseArray.d.ts +1 -1
  117. package/dist/components/charts/shared/streamPropsHelpers.d.ts +6 -4
  118. package/dist/components/charts/shared/styleRules.d.ts +205 -0
  119. package/dist/components/charts/shared/tooltipUtils.d.ts +22 -9
  120. package/dist/components/charts/shared/types.d.ts +9 -6
  121. package/dist/components/charts/shared/useAreaSeriesSetup.d.ts +16 -2
  122. package/dist/components/charts/shared/useChartSetup.d.ts +2 -2
  123. package/dist/components/charts/shared/useCustomChartSetup.d.ts +3 -0
  124. package/dist/components/charts/shared/useFrameImperativeHandle.d.ts +1 -2
  125. package/dist/components/charts/shared/useLikertAggregation.d.ts +4 -4
  126. package/dist/components/charts/shared/useOrdinalBrush.d.ts +2 -1
  127. package/dist/components/charts/shared/useOrdinalPieceStyle.d.ts +24 -1
  128. package/dist/components/charts/shared/useStreamingLegend.d.ts +1 -1
  129. package/dist/components/charts/shared/useXYLineStyle.d.ts +10 -0
  130. package/dist/components/charts/shared/useXYPointStyle.d.ts +19 -1
  131. package/dist/components/charts/shared/validateChartData.d.ts +7 -5
  132. package/dist/components/charts/shared/validationMap.d.ts +11 -2
  133. package/dist/components/charts/shared/validationMap.generated.d.ts +6 -0
  134. package/dist/components/charts/shared/withChartWrapper.d.ts +4 -3
  135. package/dist/components/charts/value/targetPresentation.d.ts +22 -0
  136. package/dist/components/charts/value/types.d.ts +5 -6
  137. package/dist/components/charts/xy/AreaChart.d.ts +8 -0
  138. package/dist/components/charts/xy/BubbleChart.d.ts +9 -0
  139. package/dist/components/charts/xy/ConnectedScatterplot.d.ts +7 -0
  140. package/dist/components/charts/xy/DifferenceChart.d.ts +1 -52
  141. package/dist/components/charts/xy/Heatmap.d.ts +2 -2
  142. package/dist/components/charts/xy/LineChart.d.ts +11 -0
  143. package/dist/components/charts/xy/QuadrantChart.d.ts +7 -0
  144. package/dist/components/charts/xy/Scatterplot.d.ts +10 -0
  145. package/dist/components/charts/xy/StackedAreaChart.d.ts +7 -0
  146. package/dist/components/charts/xy/differenceSegments.d.ts +49 -0
  147. package/dist/components/charts/xy/scatterplotMatrixInteractionTypes.d.ts +12 -0
  148. package/dist/components/controls/SentenceFilter.d.ts +97 -0
  149. package/dist/components/data/fromVegaLite.d.ts +19 -9
  150. package/dist/components/rough/createRoughRenderMode.d.ts +46 -0
  151. package/dist/components/semiotic-ai.d.ts +3 -1
  152. package/dist/components/semiotic-controls.d.ts +2 -0
  153. package/dist/components/semiotic-geo.d.ts +4 -0
  154. package/dist/components/semiotic-network.d.ts +4 -0
  155. package/dist/components/semiotic-ordinal.d.ts +6 -0
  156. package/dist/components/semiotic-physics.d.ts +4 -0
  157. package/dist/components/semiotic-rough.d.ts +4 -0
  158. package/dist/components/semiotic-utils-core.d.ts +4 -0
  159. package/dist/components/semiotic-xy.d.ts +4 -0
  160. package/dist/components/semiotic.d.ts +9 -1
  161. package/dist/components/server/optionalImageTypes.d.ts +37 -0
  162. package/dist/components/server/serverChartConfigShared.d.ts +9 -5
  163. package/dist/components/server/serverChartConfigs.d.ts +4 -4
  164. package/dist/components/server/staticAnnotations.d.ts +6 -3
  165. package/dist/components/server/staticLegend.d.ts +1 -1
  166. package/dist/components/server/staticNetwork.d.ts +4 -4
  167. package/dist/components/server/staticSVGChrome.d.ts +5 -4
  168. package/dist/components/store/ObservationStore.d.ts +21 -1
  169. package/dist/components/stream/AccessibleDataTable.d.ts +4 -10
  170. package/dist/components/stream/AriaLiveTooltip.d.ts +9 -0
  171. package/dist/components/stream/CanvasHitTester.d.ts +4 -4
  172. package/dist/components/stream/DataSourceAdapter.d.ts +1 -1
  173. package/dist/components/stream/FrameRuntime.d.ts +57 -0
  174. package/dist/components/stream/GeoParticlePool.d.ts +1 -1
  175. package/dist/components/stream/GeoPipelineStore.d.ts +43 -12
  176. package/dist/components/stream/GeoSVGOverlay.d.ts +64 -0
  177. package/dist/components/stream/NetworkCanvasHitTester.d.ts +2 -1
  178. package/dist/components/stream/NetworkPipelineStore.d.ts +24 -21
  179. package/dist/components/stream/NetworkSSRFrame.d.ts +17 -0
  180. package/dist/components/stream/NetworkSVGOverlay.d.ts +6 -0
  181. package/dist/components/stream/OrdinalBrushOverlay.d.ts +1 -2
  182. package/dist/components/stream/OrdinalBrushOverlayLazy.d.ts +9 -0
  183. package/dist/components/stream/OrdinalCanvasHitTester.d.ts +2 -2
  184. package/dist/components/stream/OrdinalPipelineStore.d.ts +13 -13
  185. package/dist/components/stream/OrdinalSVGOverlay.d.ts +9 -1
  186. package/dist/components/stream/OrdinalStyleResolver.d.ts +12 -0
  187. package/dist/components/stream/ParticlePool.d.ts +1 -1
  188. package/dist/components/stream/PipelineStore.d.ts +12 -16
  189. package/dist/components/stream/SVGOverlay.d.ts +6 -0
  190. package/dist/components/stream/SceneGraph.d.ts +3 -3
  191. package/dist/components/stream/XYBrushOverlayLazy.d.ts +17 -0
  192. package/dist/components/stream/accessorUtils.d.ts +2 -2
  193. package/dist/components/stream/annotationAccessorResolver.d.ts +2 -2
  194. package/dist/components/stream/frameGraphics.d.ts +4 -0
  195. package/dist/components/stream/frameKeyboardNavigation.d.ts +45 -0
  196. package/dist/components/stream/geoPipelineHelpers.d.ts +3 -3
  197. package/dist/components/stream/geoPipelineUpdateResults.d.ts +34 -0
  198. package/dist/components/stream/geoSceneBuilder.d.ts +16 -0
  199. package/dist/components/stream/geoTypes.d.ts +48 -15
  200. package/dist/components/stream/hitTestUtils.d.ts +2 -2
  201. package/dist/components/stream/hoverUtils.d.ts +4 -2
  202. package/dist/components/stream/layouts/forceLayoutWorkerClient.d.ts +1 -0
  203. package/dist/components/stream/layouts/hierarchyUtils.d.ts +2 -2
  204. package/dist/components/stream/networkCustomLayoutRunner.d.ts +23 -0
  205. package/dist/components/stream/networkCustomRestyle.d.ts +15 -0
  206. package/dist/components/stream/networkFrameAnimation.d.ts +7 -0
  207. package/dist/components/stream/networkFrameHandleTypes.d.ts +39 -0
  208. package/dist/components/stream/networkFrameObservations.d.ts +15 -0
  209. package/dist/components/stream/networkFramePaint.d.ts +11 -2
  210. package/dist/components/stream/networkInteractionTypes.d.ts +26 -0
  211. package/dist/components/stream/networkPipelineConfig.d.ts +2 -2
  212. package/dist/components/stream/networkPipelineUpdateResults.d.ts +38 -0
  213. package/dist/components/stream/networkTypes.d.ts +37 -56
  214. package/dist/components/stream/ordinalCanvasRenderers.d.ts +2 -2
  215. package/dist/components/stream/ordinalPipelineUpdateResults.d.ts +20 -1
  216. package/dist/components/stream/ordinalSceneBuilders/types.d.ts +2 -2
  217. package/dist/components/stream/ordinalTypes.d.ts +30 -3
  218. package/dist/components/stream/physics/PhysicsPipelineStore.d.ts +2 -0
  219. package/dist/components/stream/physics/PhysicsSVGOverlay.d.ts +6 -0
  220. package/dist/components/stream/physics/StreamPhysicsTypes.d.ts +21 -6
  221. package/dist/components/stream/physics/physicsFrameObservations.d.ts +19 -0
  222. package/dist/components/stream/physics/physicsFrameSetup.d.ts +4 -0
  223. package/dist/components/stream/physics/physicsPipelineUpdateResults.d.ts +19 -1
  224. package/dist/components/stream/physics/usePhysicsFrameLifecyclePolicy.d.ts +3 -1
  225. package/dist/components/stream/pipelineConfig.d.ts +4 -2
  226. package/dist/components/stream/pipelineDecay.d.ts +2 -2
  227. package/dist/components/stream/pipelinePulse.d.ts +2 -2
  228. package/dist/components/stream/pipelineStoreUpdateResults.d.ts +23 -2
  229. package/dist/components/stream/pipelineTransitions.d.ts +1 -1
  230. package/dist/components/stream/pipelineUpdateContract.d.ts +7 -0
  231. package/dist/components/stream/pipelineUpdateStore.d.ts +21 -0
  232. package/dist/components/stream/renderBackend.d.ts +27 -0
  233. package/dist/components/stream/renderers/canvasRenderHelpers.d.ts +15 -1
  234. package/dist/components/stream/renderers/geoCanvasRenderer.d.ts +3 -2
  235. package/dist/components/stream/renderers/networkParticleRenderer.d.ts +1 -1
  236. package/dist/components/stream/sceneRenderBackendTypes.d.ts +28 -0
  237. package/dist/components/stream/sceneRevisionDiagnostics.d.ts +31 -4
  238. package/dist/components/stream/streamSemanticTypes.d.ts +16 -0
  239. package/dist/components/stream/streamThemeTypes.d.ts +14 -0
  240. package/dist/components/stream/svgOverlayUtils.d.ts +10 -0
  241. package/dist/components/stream/test-utils/frameScheduler.d.ts +12 -0
  242. package/dist/components/stream/test-utils/revisionConsumption.d.ts +13 -0
  243. package/dist/components/stream/titleLayout.d.ts +31 -0
  244. package/dist/components/stream/types.d.ts +30 -65
  245. package/dist/components/stream/useCanvasFrameHost.d.ts +71 -0
  246. package/dist/components/stream/useFrame.d.ts +23 -0
  247. package/dist/components/stream/useLegendCategoryEmission.d.ts +3 -3
  248. package/dist/components/stream/useSemanticFrameInteractions.d.ts +22 -0
  249. package/dist/components/stream/useUpdateResultSnapshot.d.ts +7 -0
  250. package/dist/components/stream/xyFrameAxisTypes.d.ts +50 -0
  251. package/dist/components/stream/xySceneBuilders/types.d.ts +6 -5
  252. package/dist/controls.min.js +1 -1
  253. package/dist/controls.module.min.js +1 -1
  254. package/dist/forceLayoutWorker.js +1 -1
  255. package/dist/geo.min.js +1 -1
  256. package/dist/geo.module.min.js +1 -1
  257. package/dist/network.min.js +1 -1
  258. package/dist/network.module.min.js +1 -1
  259. package/dist/ordinal.min.js +1 -1
  260. package/dist/ordinal.module.min.js +1 -1
  261. package/dist/physics-matter.min.js +1 -1
  262. package/dist/physics-matter.module.min.js +1 -1
  263. package/dist/physics-rapier.min.js +1 -1
  264. package/dist/physics-rapier.module.min.js +1 -1
  265. package/dist/physics.min.js +1 -1
  266. package/dist/physics.module.min.js +1 -1
  267. package/dist/physicsWorker.js +1 -1
  268. package/dist/realtime.min.js +1 -1
  269. package/dist/realtime.module.min.js +1 -1
  270. package/dist/rough.min.js +1 -0
  271. package/dist/rough.module.min.js +1 -0
  272. package/dist/semiotic-ai-core.min.js +1 -1
  273. package/dist/semiotic-ai-core.module.min.js +1 -1
  274. package/dist/semiotic-ai.d.ts +3 -1
  275. package/dist/semiotic-ai.min.js +1 -1
  276. package/dist/semiotic-ai.module.min.js +1 -1
  277. package/dist/semiotic-controls.d.ts +2 -0
  278. package/dist/semiotic-data.min.js +1 -1
  279. package/dist/semiotic-data.module.min.js +1 -1
  280. package/dist/semiotic-experimental.min.js +1 -1
  281. package/dist/semiotic-experimental.module.min.js +1 -1
  282. package/dist/semiotic-geo.d.ts +4 -0
  283. package/dist/semiotic-network.d.ts +4 -0
  284. package/dist/semiotic-ordinal.d.ts +6 -0
  285. package/dist/semiotic-physics.d.ts +4 -0
  286. package/dist/semiotic-realtime-core.min.js +1 -1
  287. package/dist/semiotic-realtime-core.module.min.js +1 -1
  288. package/dist/semiotic-realtime-react.min.js +1 -1
  289. package/dist/semiotic-realtime-react.module.min.js +1 -1
  290. package/dist/semiotic-recipes-core.min.js +1 -1
  291. package/dist/semiotic-recipes-core.module.min.js +1 -1
  292. package/dist/semiotic-recipes-react.min.js +1 -1
  293. package/dist/semiotic-recipes-react.module.min.js +1 -1
  294. package/dist/semiotic-recipes.min.js +1 -1
  295. package/dist/semiotic-recipes.module.min.js +1 -1
  296. package/dist/semiotic-rough.d.ts +4 -0
  297. package/dist/semiotic-server-edge.min.js +1 -1
  298. package/dist/semiotic-server-edge.module.min.js +1 -1
  299. package/dist/semiotic-server-node.min.js +1 -1
  300. package/dist/semiotic-server-node.module.min.js +1 -1
  301. package/dist/semiotic-themes-core.min.js +1 -1
  302. package/dist/semiotic-themes-core.module.min.js +1 -1
  303. package/dist/semiotic-themes-react.min.js +1 -1
  304. package/dist/semiotic-themes-react.module.min.js +1 -1
  305. package/dist/semiotic-themes.min.js +1 -1
  306. package/dist/semiotic-themes.module.min.js +1 -1
  307. package/dist/semiotic-utils-core.d.ts +4 -0
  308. package/dist/semiotic-utils-core.min.js +1 -1
  309. package/dist/semiotic-utils-core.module.min.js +1 -1
  310. package/dist/semiotic-utils-react.min.js +1 -1
  311. package/dist/semiotic-utils-react.module.min.js +1 -1
  312. package/dist/semiotic-utils.min.js +1 -1
  313. package/dist/semiotic-utils.module.min.js +1 -1
  314. package/dist/semiotic-value.min.js +1 -1
  315. package/dist/semiotic-value.module.min.js +1 -1
  316. package/dist/semiotic-xy.d.ts +4 -0
  317. package/dist/semiotic.d.ts +9 -1
  318. package/dist/semiotic.min.js +1 -1
  319. package/dist/semiotic.module.min.js +1 -1
  320. package/dist/server.min.js +1 -1
  321. package/dist/server.module.min.js +1 -1
  322. package/dist/test-utils/capturedFrameProps.d.ts +67 -0
  323. package/dist/test-utils/frameMock.d.ts +12 -9
  324. package/dist/xy.min.js +1 -1
  325. package/dist/xy.module.min.js +1 -1
  326. package/package.json +29 -10
  327. package/dist/semiotic-ai-statisticalOverlays-CY4WKR4A.module.min.js +0 -2
  328. package/dist/semiotic-chunk-3FSVZ46U.module.min.js +0 -2
  329. package/dist/semiotic-statisticalOverlays-UOMSFKVJ.module.min.js +0 -2
  330. package/dist/xy-chunk-IWD6IB6V.module.min.js +0 -2
  331. package/dist/xy-statisticalOverlays-7RWG6LJT.module.min.js +0 -2
@@ -4036,7 +4036,7 @@ var require_core = __commonJS({
4036
4036
  constructor(opts = {}) {
4037
4037
  this.schemas = {};
4038
4038
  this.refs = {};
4039
- this.formats = {};
4039
+ this.formats = /* @__PURE__ */ Object.create(null);
4040
4040
  this._compilations = /* @__PURE__ */ new Set();
4041
4041
  this._loading = {};
4042
4042
  this._cache = /* @__PURE__ */ new Map();
@@ -7559,6 +7559,15 @@ var require_behaviorContracts = __commonJS({
7559
7559
  ];
7560
7560
  var STATIC_DATA_COMPONENTS = loadStaticDataComponentsFromSchema();
7561
7561
  var BEHAVIOR_CONTRACTS2 = [
7562
+ {
7563
+ id: "accessibility.description-props",
7564
+ category: "accessibility",
7565
+ title: "Accessible chart text uses direct chart props",
7566
+ severity: "warning",
7567
+ appliesTo: {},
7568
+ summary: "High-level charts expose title for the visible name, description for a concise accessible description, summary for a screen-reader-only takeaway and interaction guidance, and accessibleTable for the data-table fallback.",
7569
+ agentAction: "Put title, description, summary, and accessibleTable directly on the chart component when they appear in its schema. For generated L1\u2013L3 description or a navigable chart tree, use ChartContainer with chartConfig plus describe and/or navigable; do not invent frameProps fields."
7570
+ },
7562
7571
  {
7563
7572
  id: "props.data-required-by-usage-mode",
7564
7573
  category: "required-props",
@@ -32383,6 +32392,59 @@ function resolveHTTPListenHost(args, env = process.env) {
32383
32392
  return getFlagValue(args, "--host")?.trim() || env.MCP_HOST?.trim() || DEFAULT_HTTP_HOST;
32384
32393
  }
32385
32394
 
32395
+ // ai/mcp-request-cancellation.ts
32396
+ function createMcpRequestCancellationSignal(req, res) {
32397
+ const controller = new AbortController();
32398
+ const abort = () => controller.abort();
32399
+ req.once("aborted", abort);
32400
+ req.once("close", () => {
32401
+ if (!req.complete) abort();
32402
+ });
32403
+ res.once("close", () => {
32404
+ if (!res.writableFinished) abort();
32405
+ });
32406
+ return controller.signal;
32407
+ }
32408
+
32409
+ // ai/mcp-build-info.ts
32410
+ function nonEmptyEnvValue(env, name) {
32411
+ const value = env[name]?.trim();
32412
+ return value || void 0;
32413
+ }
32414
+ function normalizeGitSha(value) {
32415
+ return value && /^[0-9a-f]{40,128}$/i.test(value) ? value.toLowerCase() : void 0;
32416
+ }
32417
+ function resolveDeploymentChannel(value) {
32418
+ return value?.toLowerCase() === "nightly" ? "nightly" : "stable";
32419
+ }
32420
+ function resolveSemioticBuildInfo(options) {
32421
+ const env = options.env ?? process.env;
32422
+ const commitSha = normalizeGitSha(nonEmptyEnvValue(env, "SEMIOTIC_GIT_SHA"));
32423
+ return {
32424
+ channel: resolveDeploymentChannel(
32425
+ nonEmptyEnvValue(env, "SEMIOTIC_DEPLOYMENT_CHANNEL")
32426
+ ),
32427
+ packageVersion: options.packageVersion,
32428
+ surfaceVersion: options.surfaceVersion,
32429
+ ...commitSha ? { commitSha, shortCommitSha: commitSha.slice(0, 7) } : {},
32430
+ ...nonEmptyEnvValue(env, "SEMIOTIC_BUILD_ID") ? { buildId: nonEmptyEnvValue(env, "SEMIOTIC_BUILD_ID") } : {},
32431
+ ...nonEmptyEnvValue(env, "SEMIOTIC_BUILD_TIME") ? { builtAt: nonEmptyEnvValue(env, "SEMIOTIC_BUILD_TIME") } : {},
32432
+ toolProfile: options.toolProfile,
32433
+ nodeVersion: options.nodeVersion ?? process.version
32434
+ };
32435
+ }
32436
+ function mcpServerInfoForBuild(buildInfo) {
32437
+ if (buildInfo.channel !== "nightly") {
32438
+ return { name: "semiotic", version: buildInfo.packageVersion };
32439
+ }
32440
+ const packageVersion = buildInfo.packageVersion.split("+", 1)[0];
32441
+ const nightlyVersion = packageVersion.includes("-nightly") ? packageVersion : `${packageVersion}-nightly`;
32442
+ return {
32443
+ name: "semiotic-nightly",
32444
+ version: `${nightlyVersion}+${buildInfo.shortCommitSha || "unknown"}`
32445
+ };
32446
+ }
32447
+
32386
32448
  // ai/mcp-logging.ts
32387
32449
  var DEFAULT_MCP_LOG_LEVEL = "info";
32388
32450
  var DEFAULT_MCP_LOG_RETENTION_DAYS = 30;
@@ -32422,7 +32484,6 @@ var SAFE_ROUTES = /* @__PURE__ */ new Set([
32422
32484
  "/",
32423
32485
  "/mcp",
32424
32486
  "/health",
32425
- "/healthz",
32426
32487
  "/.well-known/openai-apps-challenge"
32427
32488
  ]);
32428
32489
  function boundedPositiveInteger(value, fallback, min, max) {
@@ -33059,6 +33120,12 @@ var {
33059
33120
  } = import_behaviorContracts.default;
33060
33121
  var schemaPath = path.resolve(__dirname, "../schema.json");
33061
33122
  var schema = JSON.parse(fs.readFileSync(schemaPath, "utf-8"));
33123
+ var packageManifestPath = path.resolve(__dirname, "../../package.json");
33124
+ var packageManifest = JSON.parse(fs.readFileSync(packageManifestPath, "utf-8"));
33125
+ if (typeof packageManifest.version !== "string" || !packageManifest.version) {
33126
+ throw new Error("Semiotic package.json must provide a package version");
33127
+ }
33128
+ var PACKAGE_VERSION = packageManifest.version;
33062
33129
  var schemaByComponent = {};
33063
33130
  for (const tool of schema.tools) {
33064
33131
  schemaByComponent[tool.function.name] = tool.function;
@@ -33700,16 +33767,71 @@ function capInteractiveWidgetResult(result) {
33700
33767
  setting: "MCP_MAX_WIDGET_OUTPUT_BYTES"
33701
33768
  });
33702
33769
  }
33703
- var SURFACE_VERSION = `${schema.version || "3.0.0"}-ai`;
33770
+ var SURFACE_VERSION = `${PACKAGE_VERSION}-ai`;
33771
+ function buildInfoForProfile(profile) {
33772
+ return resolveSemioticBuildInfo({
33773
+ packageVersion: PACKAGE_VERSION,
33774
+ surfaceVersion: SURFACE_VERSION,
33775
+ toolProfile: profile
33776
+ });
33777
+ }
33704
33778
  function profileResult(result) {
33705
33779
  return { ...result, surfaceVersion: SURFACE_VERSION };
33706
33780
  }
33781
+ function schemaAccessibilityGuidance(entry) {
33782
+ const properties = entry?.parameters?.properties ?? {};
33783
+ const directProps = Object.fromEntries(
33784
+ ["title", "description", "summary", "accessibleTable"].filter((name) => properties[name]).map((name) => [name, properties[name]])
33785
+ );
33786
+ return {
33787
+ directProps,
33788
+ chartContainer: {
33789
+ component: "ChartContainer",
33790
+ requires: ["chartConfig"],
33791
+ titleProp: "title",
33792
+ subtitleProp: "subtitle",
33793
+ describeProp: "describe",
33794
+ navigableProp: "navigable",
33795
+ description: "Use ChartContainer with chartConfig plus describe for a generated L1\u2013L3 description and navigable for a screen-reader navigation tree."
33796
+ }
33797
+ };
33798
+ }
33799
+ function accessibilityRecommendation(component, props, data) {
33800
+ const directProps = schemaAccessibilityGuidance(schemaByComponent[component]).directProps;
33801
+ const recommendation = {};
33802
+ const categoryAccessor = typeof props.categoryAccessor === "string" ? props.categoryAccessor : void 0;
33803
+ const valueAccessor = typeof props.valueAccessor === "string" ? props.valueAccessor : void 0;
33804
+ if (directProps.description && typeof props.description !== "string") {
33805
+ recommendation.description = categoryAccessor && valueAccessor ? `${component} comparing ${valueAccessor} by ${categoryAccessor}.` : `${component} chart.`;
33806
+ }
33807
+ if (directProps.summary && typeof props.summary !== "string") {
33808
+ const numericRows = categoryAccessor && valueAccessor ? data.map((row) => ({ category: row[categoryAccessor], value: row[valueAccessor] })).filter((row) => typeof row.value === "number" && Number.isFinite(row.value)) : [];
33809
+ const highest = numericRows.reduce(
33810
+ (current, row) => !current || row.value > current.value ? row : current,
33811
+ void 0
33812
+ );
33813
+ recommendation.summary = highest ? `${String(highest.category)} is highest at ${highest.value}. Use arrow keys to move between chart marks.` : "Use arrow keys to move between chart marks.";
33814
+ }
33815
+ return Object.keys(recommendation).length > 0 ? {
33816
+ location: "direct-component-props",
33817
+ props: recommendation,
33818
+ chartContainer: schemaAccessibilityGuidance(schemaByComponent[component]).chartContainer
33819
+ } : void 0;
33820
+ }
33707
33821
  async function getSchemaHandler(args) {
33708
33822
  const component = args.component;
33823
+ const availableComponents = allComponentNames.map((name) => ({
33824
+ name,
33825
+ renderable: metadataForComponent(name).renderable
33826
+ }));
33709
33827
  if (!component) {
33710
- const list = allComponentNames.map((name) => metadataForComponent(name).renderable ? `${name} [renderable]` : name);
33828
+ const list = availableComponents.map(
33829
+ ({ name, renderable: renderable2 }) => renderable2 ? `${name} [renderable]` : name
33830
+ );
33711
33831
  return {
33712
- content: [{ type: "text", text: `Available components (${allComponentNames.length}):
33832
+ content: [{
33833
+ type: "text",
33834
+ text: `Available components (${allComponentNames.length}):
33713
33835
  ${list.join(", ")}
33714
33836
 
33715
33837
  Components marked [renderable] can be rendered to SVG via renderChart (pass theme parameter for styled output). Others (Realtime*) require a browser environment.
@@ -33718,27 +33840,55 @@ For full agent context, read MCP resources: semiotic://schema, semiotic://compon
33718
33840
 
33719
33841
  All charts support CSS custom properties for theming (--semiotic-bg, --semiotic-text, --semiotic-grid, etc.) and <ThemeProvider>. Use COLOR_BLIND_SAFE_CATEGORICAL (import from semiotic/themes) for accessible color palettes.
33720
33842
 
33721
- Pass { component: '<name>' } to get the prop schema for a specific component.` }]
33843
+ Pass { component: '<name>' } to get the prop schema for a specific component.`
33844
+ }],
33845
+ structuredContent: profileResult({
33846
+ status: "component-list",
33847
+ availableComponents
33848
+ })
33722
33849
  };
33723
33850
  }
33724
33851
  const entry = schemaByComponent[component];
33725
33852
  if (!entry) {
33726
33853
  const available = Object.keys(schemaByComponent).sort();
33727
33854
  return {
33728
- content: [{ type: "text", text: `Unknown component "${component}". Available: ${available.join(", ")}` }],
33855
+ content: [{
33856
+ type: "text",
33857
+ text: `Unknown component "${component}". Available: ${available.join(", ")}`
33858
+ }],
33859
+ structuredContent: profileResult({
33860
+ status: "unknown-component",
33861
+ component,
33862
+ availableComponents
33863
+ }),
33729
33864
  isError: true
33730
33865
  };
33731
33866
  }
33732
- const renderableNote = metadataForComponent(component).renderable ? "This component can be rendered to SVG via renderChart." : "This component requires a browser environment and cannot be rendered via renderChart.";
33733
- const contracts = behaviorContractsFor({ component, props: {} });
33867
+ const renderable = metadataForComponent(component).renderable;
33868
+ const renderableNote = renderable ? "This component can be rendered to SVG via renderChart." : "This component requires a browser environment and cannot be rendered via renderChart.";
33869
+ const contracts = behaviorContractsFor({
33870
+ component,
33871
+ props: {}
33872
+ });
33734
33873
  const contractText = contracts.length > 0 ? `
33735
33874
 
33736
33875
  Behavior contracts:
33737
33876
  ${JSON.stringify(contracts, null, 2)}` : "";
33738
33877
  return {
33739
- content: [{ type: "text", text: `${renderableNote}
33878
+ content: [{
33879
+ type: "text",
33880
+ text: `${renderableNote}
33740
33881
 
33741
- ${JSON.stringify(entry, null, 2)}${contractText}` }]
33882
+ ${JSON.stringify(entry, null, 2)}${contractText}`
33883
+ }],
33884
+ structuredContent: profileResult({
33885
+ status: "component-schema",
33886
+ component,
33887
+ renderable,
33888
+ schema: entry,
33889
+ accessibility: schemaAccessibilityGuidance(entry),
33890
+ behaviorContracts: contracts
33891
+ })
33742
33892
  };
33743
33893
  }
33744
33894
  var SUGGEST_INTENT_ALIASES = {
@@ -34580,9 +34730,17 @@ async function improveChartHandler(args) {
34580
34730
  const repair = (0, import_ai3.repairChartConfig)(args.component, data, { intent });
34581
34731
  const capability = (0, import_ai3.getCapability)(args.component);
34582
34732
  const variants = capability ? (0, import_ai3.proposeVariant)(args.component, capability, { profile: (0, import_ai3.profileData)(data), intent }) : [];
34733
+ const accessibility = accessibilityRecommendation(args.component, args.props, data);
34583
34734
  return {
34584
34735
  content: [{ type: "text", text: `Improvement analysis for ${args.component}: ${diagnosis.diagnoses.length} diagnosis item(s), repair status ${repair.status}, ${variants.length} variant proposal(s).` }],
34585
- structuredContent: profileResult({ status: repair.status === "ok" ? "reviewed" : "repair-needed", component: args.component, diagnostics: diagnosis.diagnoses, repair, variants })
34736
+ structuredContent: profileResult({
34737
+ status: repair.status === "ok" ? "reviewed" : "repair-needed",
34738
+ component: args.component,
34739
+ diagnostics: diagnosis.diagnoses,
34740
+ repair,
34741
+ variants,
34742
+ ...accessibility ? { accessibilityRecommendation: accessibility } : {}
34743
+ })
34586
34744
  };
34587
34745
  }
34588
34746
  async function explainChartHandler(args) {
@@ -34594,8 +34752,8 @@ async function explainChartHandler(args) {
34594
34752
  }
34595
34753
  async function auditChartHandler(args) {
34596
34754
  const diagnosis = (0, import_ai3.diagnoseConfig)(args.component, args.props);
34597
- const accessibility = (0, import_ai3.auditAccessibility)(args.component, args.props, { inChartContainer: true, describe: true, navigable: true });
34598
- const mobile = (0, import_ai3.auditMobileVisualization)(args.component, args.props, { viewportWidth: args.viewportWidth, inChartContainer: true });
34755
+ const accessibility = (0, import_ai3.auditAccessibility)(args.component, args.props);
34756
+ const mobile = (0, import_ai3.auditMobileVisualization)(args.component, args.props, { viewportWidth: args.viewportWidth });
34599
34757
  const blocking = diagnosis.diagnoses.some((item) => item.severity === "error") || !accessibility.ok || !mobile.ok;
34600
34758
  return {
34601
34759
  content: [{ type: "text", text: `Audit for ${args.component}: ${blocking ? "blocking findings need attention" : "no blocking findings"}.` }],
@@ -34610,15 +34768,25 @@ var READ_ONLY_TOOL_ANNOTATIONS = {
34610
34768
  openWorldHint: false
34611
34769
  };
34612
34770
  function createServer2(profile = "developer", options = {}) {
34771
+ const buildInfo = buildInfoForProfile(profile);
34613
34772
  const serverRenderContext = {
34614
34773
  signal: options.signal,
34615
34774
  limits: options.limits ?? resolveMcpRenderExecutionLimits()
34616
34775
  };
34617
34776
  const srv = new McpServer({
34618
- name: "semiotic",
34619
- version: schema.version || "3.0.0",
34777
+ ...mcpServerInfoForBuild(buildInfo),
34620
34778
  description: "Deterministic Semiotic chart selection, validation, rendering, and non-visual chart grounding. Use suggestCharts, getSchema, diagnoseConfig, and renderChart in that order for static chart generation."
34621
34779
  });
34780
+ srv.registerResource(
34781
+ "semiotic-build-info",
34782
+ "semiotic://build-info",
34783
+ {
34784
+ title: "Semiotic Build Information",
34785
+ description: "Read-only deployment identity for this Semiotic MCP server.",
34786
+ mimeType: "application/json"
34787
+ },
34788
+ (uri) => textResource(uri, "application/json", JSON.stringify(buildInfo, null, 2))
34789
+ );
34622
34790
  srv.registerResource(
34623
34791
  "semiotic-schema",
34624
34792
  "semiotic://schema",
@@ -34784,7 +34952,19 @@ function createServer2(profile = "developer", options = {}) {
34784
34952
  title: "Improve an existing chart",
34785
34953
  description: "Diagnose a chart configuration, assess data fit, and propose repairs or variants.",
34786
34954
  inputSchema: { component: external_exports3.string(), props: external_exports3.record(external_exports3.string(), external_exports3.unknown()), data: external_exports3.array(external_exports3.record(external_exports3.string(), external_exports3.unknown())).optional(), intent: external_exports3.union([external_exports3.string(), external_exports3.array(external_exports3.string())]).optional() },
34787
- outputSchema: { status: external_exports3.enum(["reviewed", "repair-needed"]), component: external_exports3.string(), surfaceVersion: external_exports3.string() },
34955
+ outputSchema: {
34956
+ status: external_exports3.enum(["reviewed", "repair-needed"]),
34957
+ component: external_exports3.string(),
34958
+ diagnostics: external_exports3.array(external_exports3.unknown()),
34959
+ repair: external_exports3.record(external_exports3.string(), external_exports3.unknown()),
34960
+ variants: external_exports3.array(external_exports3.unknown()),
34961
+ accessibilityRecommendation: external_exports3.object({
34962
+ location: external_exports3.literal("direct-component-props"),
34963
+ props: external_exports3.record(external_exports3.string(), external_exports3.string()),
34964
+ chartContainer: external_exports3.record(external_exports3.string(), external_exports3.unknown())
34965
+ }).optional(),
34966
+ surfaceVersion: external_exports3.string()
34967
+ },
34788
34968
  annotations: READ_ONLY_TOOL_ANNOTATIONS
34789
34969
  }, improveChartHandler);
34790
34970
  srv.registerTool("explainChart", {
@@ -34804,7 +34984,31 @@ function createServer2(profile = "developer", options = {}) {
34804
34984
  srv.registerTool("getChartSchema", {
34805
34985
  title: "Get a chart schema",
34806
34986
  description: "Return canonical Semiotic prop-schema guidance for code editing and advanced configuration.",
34807
- inputSchema: { component: external_exports3.string().optional() },
34987
+ inputSchema: {
34988
+ component: external_exports3.string().optional()
34989
+ },
34990
+ outputSchema: {
34991
+ status: external_exports3.enum([
34992
+ "component-list",
34993
+ "component-schema",
34994
+ "unknown-component"
34995
+ ]),
34996
+ component: external_exports3.string().optional(),
34997
+ renderable: external_exports3.boolean().optional(),
34998
+ availableComponents: external_exports3.array(
34999
+ external_exports3.object({
35000
+ name: external_exports3.string(),
35001
+ renderable: external_exports3.boolean()
35002
+ })
35003
+ ).optional(),
35004
+ schema: external_exports3.record(external_exports3.string(), external_exports3.unknown()).optional(),
35005
+ accessibility: external_exports3.object({
35006
+ directProps: external_exports3.record(external_exports3.string(), external_exports3.unknown()),
35007
+ chartContainer: external_exports3.record(external_exports3.string(), external_exports3.unknown())
35008
+ }).optional(),
35009
+ behaviorContracts: external_exports3.array(external_exports3.unknown()).optional(),
35010
+ surfaceVersion: external_exports3.string()
35011
+ },
34808
35012
  annotations: READ_ONLY_TOOL_ANNOTATIONS
34809
35013
  }, getSchemaHandler);
34810
35014
  return srv;
@@ -35223,19 +35427,26 @@ async function main() {
35223
35427
  reason: "request_stream_error"
35224
35428
  }));
35225
35429
  });
35430
+ const buildInfo = buildInfoForProfile(toolProfile);
35226
35431
  const healthBody = () => JSON.stringify({
35227
35432
  status: "ok",
35228
35433
  name: "semiotic-mcp",
35229
- version: schema.version || "3.0.0",
35434
+ version: buildInfo.packageVersion,
35230
35435
  transport: "streamable-http",
35231
- mode: "stateless"
35436
+ mode: "stateless",
35437
+ channel: buildInfo.channel,
35438
+ packageVersion: buildInfo.packageVersion,
35439
+ surfaceVersion: buildInfo.surfaceVersion,
35440
+ ...buildInfo.commitSha ? { commitSha: buildInfo.commitSha } : {},
35441
+ ...buildInfo.buildId ? { buildId: buildInfo.buildId } : {},
35442
+ ...buildInfo.builtAt ? { builtAt: buildInfo.builtAt } : {}
35232
35443
  });
35444
+ const writeHealthResponse = (res) => {
35445
+ res.writeHead(200, { "Content-Type": "application/json" });
35446
+ res.end(healthBody());
35447
+ };
35233
35448
  const httpServer = http.createServer(async (req, res) => {
35234
35449
  const requestStartedAt = Date.now();
35235
- const requestAbortController = new AbortController();
35236
- const abortRequest = () => requestAbortController.abort();
35237
- req.on("aborted", abortRequest);
35238
- req.on("close", abortRequest);
35239
35450
  const pathname = (() => {
35240
35451
  try {
35241
35452
  return new URL(req.url || "/", "http://localhost").pathname;
@@ -35288,9 +35499,8 @@ async function main() {
35288
35499
  return;
35289
35500
  }
35290
35501
  }
35291
- if (req.method === "GET" && (pathname === "/healthz" || pathname === "/health")) {
35292
- res.writeHead(200, { "Content-Type": "application/json" });
35293
- res.end(healthBody());
35502
+ if (req.method === "GET" && pathname === "/health") {
35503
+ writeHealthResponse(res);
35294
35504
  return;
35295
35505
  }
35296
35506
  if (req.method === "GET" && pathname === "/.well-known/openai-apps-challenge" && openaiAppsChallengeToken) {
@@ -35312,8 +35522,7 @@ async function main() {
35312
35522
  res.end(JSON.stringify({ jsonrpc: "2.0", error: { code: -32e3, message: "Method not allowed (stateless server offers no SSE stream)" }, id: null }));
35313
35523
  return;
35314
35524
  }
35315
- res.writeHead(200, { "Content-Type": "application/json" });
35316
- res.end(healthBody());
35525
+ writeHealthResponse(res);
35317
35526
  return;
35318
35527
  }
35319
35528
  if (req.method !== "POST") {
@@ -35321,6 +35530,7 @@ async function main() {
35321
35530
  res.end(JSON.stringify({ jsonrpc: "2.0", error: { code: -32e3, message: "Method not allowed" }, id: null }));
35322
35531
  return;
35323
35532
  }
35533
+ const requestAbortSignal = createMcpRequestCancellationSignal(req, res);
35324
35534
  if (!hasSupportedAccept(String(req.headers.accept || ""))) {
35325
35535
  mcpLogger.warn("request_rejected", {
35326
35536
  reason: "unsupported_accept",
@@ -35396,7 +35606,7 @@ async function main() {
35396
35606
  return;
35397
35607
  }
35398
35608
  const srv = createServer2(toolProfile, {
35399
- signal: requestAbortController.signal,
35609
+ signal: requestAbortSignal,
35400
35610
  limits: renderExecutionLimits
35401
35611
  });
35402
35612
  const transport = new StreamableHTTPServerTransport({