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.
- package/CLAUDE.md +14 -9
- package/README.md +56 -55
- package/ai/behaviorContracts.cjs +9 -0
- package/ai/dist/mcp-server.js +240 -30
- package/ai/schema.json +616 -42
- package/ai/surface-manifest.json +3 -2
- package/ai/system-prompt.md +7 -3
- package/dist/__tests__/scenarios/mcpProtocolTypes.d.ts +20 -0
- package/dist/chunk-OrdinalBrushOverlay-PXHQYDB2.module.min.js +2 -0
- package/dist/chunk-XYBrushOverlay-ECZJJLAJ.module.min.js +1 -0
- package/dist/chunk-XYBrushOverlay-EP2SV3UI.module.min.js +2 -0
- package/dist/chunk-chunk-255KDHW5.module.min.js +1 -0
- package/dist/chunk-chunk-27HVVXS6.module.min.js +1 -0
- package/dist/chunk-chunk-2CXCXRB4.module.min.js +1 -0
- package/dist/chunk-chunk-2JGJ5GUG.module.min.js +2 -0
- package/dist/chunk-chunk-2UN3ANRN.module.min.js +2 -0
- package/dist/chunk-chunk-2VUEY5TH.module.min.js +1 -0
- package/dist/chunk-chunk-2WVCH4PL.module.min.js +1 -0
- package/dist/chunk-chunk-5UKL5W76.module.min.js +2 -0
- package/dist/chunk-chunk-5WEFWNUW.module.min.js +2 -0
- package/dist/chunk-chunk-6F6GEAQU.module.min.js +1 -0
- package/dist/chunk-chunk-7LHMKRKE.module.min.js +2 -0
- package/dist/chunk-chunk-BHYTYMY2.module.min.js +2 -0
- package/dist/chunk-chunk-C6EJ4IOD.module.min.js +2 -0
- package/dist/chunk-chunk-CA3YDW6F.module.min.js +1 -0
- package/dist/chunk-chunk-CP3EN6KZ.module.min.js +1 -0
- package/dist/chunk-chunk-CYIML3AV.module.min.js +2 -0
- package/dist/chunk-chunk-DNY43POY.module.min.js +1 -0
- package/dist/chunk-chunk-DSNGDNJY.module.min.js +1 -0
- package/dist/chunk-chunk-E7MIQX7D.module.min.js +2 -0
- package/dist/chunk-chunk-EMO5NUGE.module.min.js +1 -0
- package/dist/chunk-chunk-ES4DCG3L.module.min.js +1 -0
- package/dist/chunk-chunk-FAKO3RGQ.module.min.js +2 -0
- package/dist/chunk-chunk-FYY2ACNJ.module.min.js +2 -0
- package/dist/chunk-chunk-G7WFWHAD.module.min.js +2 -0
- package/dist/chunk-chunk-GMQ5AYTD.module.min.js +1 -0
- package/dist/chunk-chunk-H4PPRW6N.module.min.js +1 -0
- package/dist/chunk-chunk-IFYPMWKY.module.min.js +1 -0
- package/dist/chunk-chunk-J3ELI22J.module.min.js +1 -0
- package/dist/chunk-chunk-J3QOW4OE.module.min.js +0 -0
- package/dist/chunk-chunk-J3XWETBJ.module.min.js +2 -0
- package/dist/chunk-chunk-JCG72SGW.module.min.js +2 -0
- package/dist/{semiotic-ai-chunk-OG7BQUUW.module.min.js → chunk-chunk-JJ2OOIET.module.min.js} +0 -1
- package/dist/chunk-chunk-KTWEBFMX.module.min.js +2 -0
- package/dist/chunk-chunk-L6D3I3V7.module.min.js +2 -0
- package/dist/chunk-chunk-M337NY6L.module.min.js +1 -0
- package/dist/chunk-chunk-NO4MCQVD.module.min.js +1 -0
- package/dist/chunk-chunk-ODUZEEBH.module.min.js +2 -0
- package/dist/chunk-chunk-P6UBCMSQ.module.min.js +2 -0
- package/dist/chunk-chunk-Q2YADC2V.module.min.js +2 -0
- package/dist/chunk-chunk-QRIBHZYW.module.min.js +1 -0
- package/dist/chunk-chunk-QSQVBIJA.module.min.js +1 -0
- package/dist/chunk-chunk-RCF52Z42.module.min.js +2 -0
- package/dist/chunk-chunk-RH5TSQPH.module.min.js +1 -0
- package/dist/chunk-chunk-ROP4HI7H.module.min.js +2 -0
- package/dist/chunk-chunk-RZH7VZYS.module.min.js +2 -0
- package/dist/chunk-chunk-SIRIJ3DY.module.min.js +1 -0
- package/dist/chunk-chunk-STZFFTAN.module.min.js +2 -0
- package/dist/chunk-chunk-SV4XAZ3Q.module.min.js +1 -0
- package/dist/chunk-chunk-T27ZEV6A.module.min.js +1 -0
- package/dist/chunk-chunk-U3AGQ5EF.module.min.js +2 -0
- package/dist/chunk-chunk-U66USBWU.module.min.js +1 -0
- package/dist/chunk-chunk-VVCA3DB7.module.min.js +1 -0
- package/dist/chunk-chunk-W3DB2MN4.module.min.js +2 -0
- package/dist/chunk-chunk-WCX6U47H.module.min.js +2 -0
- package/dist/chunk-chunk-WDIN4LRC.module.min.js +1 -0
- package/dist/chunk-chunk-XEVJDUTH.module.min.js +1 -0
- package/dist/chunk-chunk-XOYX77KF.module.min.js +2 -0
- package/dist/chunk-chunk-YCQYG6J5.module.min.js +2 -0
- package/dist/chunk-chunk-YHNZCPOZ.module.min.js +2 -0
- package/dist/chunk-chunk-YWZB3KPI.module.min.js +2 -0
- package/dist/chunk-chunk-Z5KXAVQD.module.min.js +2 -0
- package/dist/chunk-chunk-ZCNBUZPL.module.min.js +2 -0
- package/dist/chunk-chunk-ZLKRTF5N.module.min.js +2 -0
- package/dist/chunk-chunk-ZTNVDWAK.module.min.js +2 -0
- package/dist/chunk-statisticalOverlays-6MVAK5RW.module.min.js +2 -0
- package/dist/components/AccessibleNavTree.d.ts +7 -1
- package/dist/components/ai/chartClinicMetadata.generated.d.ts +15 -0
- package/dist/components/ai/useNavigationSync.d.ts +17 -2
- package/dist/components/chartContainerMobile.d.ts +9 -0
- package/dist/components/charts/geo/ChoroplethMap.d.ts +19 -2
- package/dist/components/charts/geo/DistanceCartogram.d.ts +14 -2
- package/dist/components/charts/geo/FlowMap.d.ts +10 -6
- package/dist/components/charts/geo/ProportionalSymbolMap.d.ts +14 -2
- package/dist/components/charts/index.d.ts +6 -0
- package/dist/components/charts/network/ChordDiagram.d.ts +9 -1
- package/dist/components/charts/network/ForceDirectedGraph.d.ts +11 -0
- package/dist/components/charts/network/SankeyDiagram.d.ts +9 -1
- package/dist/components/charts/ordinal/BarChart.d.ts +21 -0
- package/dist/components/charts/ordinal/GroupedBarChart.d.ts +11 -0
- package/dist/components/charts/ordinal/StackedBarChart.d.ts +11 -0
- package/dist/components/charts/physics/CollisionSwarmChart.d.ts +7 -0
- package/dist/components/charts/physics/EventDropChart.d.ts +7 -0
- package/dist/components/charts/physics/GaltonBoardChart.d.ts +8 -0
- package/dist/components/charts/physics/PhysicalFlowChart.d.ts +7 -0
- package/dist/components/charts/physics/PhysicsCustomChart.d.ts +4 -25
- package/dist/components/charts/physics/PhysicsPileChart.d.ts +7 -0
- package/dist/components/charts/physics/physicsChartShared.d.ts +17 -1
- package/dist/components/charts/physics/physicsCustomLayout.d.ts +32 -0
- package/dist/components/charts/shared/AnnotationLabel.d.ts +88 -0
- package/dist/components/charts/shared/annotationActivation.d.ts +35 -0
- package/dist/components/charts/shared/annotationLabelLayout.d.ts +5 -0
- package/dist/components/charts/shared/annotationRules.d.ts +2 -1
- package/dist/components/charts/shared/auditAccessibilityText.d.ts +13 -0
- package/dist/components/charts/shared/chartSelectionUtils.d.ts +4 -0
- package/dist/components/charts/shared/chartSpecCore.d.ts +3 -3
- package/dist/components/charts/shared/datumTypes.d.ts +2 -0
- package/dist/components/charts/shared/diagnoseAnnotationChecks.d.ts +2 -0
- package/dist/components/charts/shared/formatUtils.d.ts +3 -3
- package/dist/components/charts/shared/hatchFill.d.ts +87 -0
- package/dist/components/charts/shared/hooks.d.ts +7 -6
- package/dist/components/charts/shared/knownChartComponents.d.ts +9 -0
- package/dist/components/charts/shared/leastSquaresRegression.d.ts +16 -0
- package/dist/components/charts/shared/mergeShapeStyle.d.ts +3 -2
- package/dist/components/charts/shared/semanticInteractions.d.ts +42 -0
- package/dist/components/charts/shared/sparseArray.d.ts +1 -1
- package/dist/components/charts/shared/streamPropsHelpers.d.ts +6 -4
- package/dist/components/charts/shared/styleRules.d.ts +205 -0
- package/dist/components/charts/shared/tooltipUtils.d.ts +22 -9
- package/dist/components/charts/shared/types.d.ts +9 -6
- package/dist/components/charts/shared/useAreaSeriesSetup.d.ts +16 -2
- package/dist/components/charts/shared/useChartSetup.d.ts +2 -2
- package/dist/components/charts/shared/useCustomChartSetup.d.ts +3 -0
- package/dist/components/charts/shared/useFrameImperativeHandle.d.ts +1 -2
- package/dist/components/charts/shared/useLikertAggregation.d.ts +4 -4
- package/dist/components/charts/shared/useOrdinalBrush.d.ts +2 -1
- package/dist/components/charts/shared/useOrdinalPieceStyle.d.ts +24 -1
- package/dist/components/charts/shared/useStreamingLegend.d.ts +1 -1
- package/dist/components/charts/shared/useXYLineStyle.d.ts +10 -0
- package/dist/components/charts/shared/useXYPointStyle.d.ts +19 -1
- package/dist/components/charts/shared/validateChartData.d.ts +7 -5
- package/dist/components/charts/shared/validationMap.d.ts +11 -2
- package/dist/components/charts/shared/validationMap.generated.d.ts +6 -0
- package/dist/components/charts/shared/withChartWrapper.d.ts +4 -3
- package/dist/components/charts/value/targetPresentation.d.ts +22 -0
- package/dist/components/charts/value/types.d.ts +5 -6
- package/dist/components/charts/xy/AreaChart.d.ts +8 -0
- package/dist/components/charts/xy/BubbleChart.d.ts +9 -0
- package/dist/components/charts/xy/ConnectedScatterplot.d.ts +7 -0
- package/dist/components/charts/xy/DifferenceChart.d.ts +1 -52
- package/dist/components/charts/xy/Heatmap.d.ts +2 -2
- package/dist/components/charts/xy/LineChart.d.ts +11 -0
- package/dist/components/charts/xy/QuadrantChart.d.ts +7 -0
- package/dist/components/charts/xy/Scatterplot.d.ts +10 -0
- package/dist/components/charts/xy/StackedAreaChart.d.ts +7 -0
- package/dist/components/charts/xy/differenceSegments.d.ts +49 -0
- package/dist/components/charts/xy/scatterplotMatrixInteractionTypes.d.ts +12 -0
- package/dist/components/controls/SentenceFilter.d.ts +97 -0
- package/dist/components/data/fromVegaLite.d.ts +19 -9
- package/dist/components/rough/createRoughRenderMode.d.ts +46 -0
- package/dist/components/semiotic-ai.d.ts +3 -1
- package/dist/components/semiotic-controls.d.ts +2 -0
- package/dist/components/semiotic-geo.d.ts +4 -0
- package/dist/components/semiotic-network.d.ts +4 -0
- package/dist/components/semiotic-ordinal.d.ts +6 -0
- package/dist/components/semiotic-physics.d.ts +4 -0
- package/dist/components/semiotic-rough.d.ts +4 -0
- package/dist/components/semiotic-utils-core.d.ts +4 -0
- package/dist/components/semiotic-xy.d.ts +4 -0
- package/dist/components/semiotic.d.ts +9 -1
- package/dist/components/server/optionalImageTypes.d.ts +37 -0
- package/dist/components/server/serverChartConfigShared.d.ts +9 -5
- package/dist/components/server/serverChartConfigs.d.ts +4 -4
- package/dist/components/server/staticAnnotations.d.ts +6 -3
- package/dist/components/server/staticLegend.d.ts +1 -1
- package/dist/components/server/staticNetwork.d.ts +4 -4
- package/dist/components/server/staticSVGChrome.d.ts +5 -4
- package/dist/components/store/ObservationStore.d.ts +21 -1
- package/dist/components/stream/AccessibleDataTable.d.ts +4 -10
- package/dist/components/stream/AriaLiveTooltip.d.ts +9 -0
- package/dist/components/stream/CanvasHitTester.d.ts +4 -4
- package/dist/components/stream/DataSourceAdapter.d.ts +1 -1
- package/dist/components/stream/FrameRuntime.d.ts +57 -0
- package/dist/components/stream/GeoParticlePool.d.ts +1 -1
- package/dist/components/stream/GeoPipelineStore.d.ts +43 -12
- package/dist/components/stream/GeoSVGOverlay.d.ts +64 -0
- package/dist/components/stream/NetworkCanvasHitTester.d.ts +2 -1
- package/dist/components/stream/NetworkPipelineStore.d.ts +24 -21
- package/dist/components/stream/NetworkSSRFrame.d.ts +17 -0
- package/dist/components/stream/NetworkSVGOverlay.d.ts +6 -0
- package/dist/components/stream/OrdinalBrushOverlay.d.ts +1 -2
- package/dist/components/stream/OrdinalBrushOverlayLazy.d.ts +9 -0
- package/dist/components/stream/OrdinalCanvasHitTester.d.ts +2 -2
- package/dist/components/stream/OrdinalPipelineStore.d.ts +13 -13
- package/dist/components/stream/OrdinalSVGOverlay.d.ts +9 -1
- package/dist/components/stream/OrdinalStyleResolver.d.ts +12 -0
- package/dist/components/stream/ParticlePool.d.ts +1 -1
- package/dist/components/stream/PipelineStore.d.ts +12 -16
- package/dist/components/stream/SVGOverlay.d.ts +6 -0
- package/dist/components/stream/SceneGraph.d.ts +3 -3
- package/dist/components/stream/XYBrushOverlayLazy.d.ts +17 -0
- package/dist/components/stream/accessorUtils.d.ts +2 -2
- package/dist/components/stream/annotationAccessorResolver.d.ts +2 -2
- package/dist/components/stream/frameGraphics.d.ts +4 -0
- package/dist/components/stream/frameKeyboardNavigation.d.ts +45 -0
- package/dist/components/stream/geoPipelineHelpers.d.ts +3 -3
- package/dist/components/stream/geoPipelineUpdateResults.d.ts +34 -0
- package/dist/components/stream/geoSceneBuilder.d.ts +16 -0
- package/dist/components/stream/geoTypes.d.ts +48 -15
- package/dist/components/stream/hitTestUtils.d.ts +2 -2
- package/dist/components/stream/hoverUtils.d.ts +4 -2
- package/dist/components/stream/layouts/forceLayoutWorkerClient.d.ts +1 -0
- package/dist/components/stream/layouts/hierarchyUtils.d.ts +2 -2
- package/dist/components/stream/networkCustomLayoutRunner.d.ts +23 -0
- package/dist/components/stream/networkCustomRestyle.d.ts +15 -0
- package/dist/components/stream/networkFrameAnimation.d.ts +7 -0
- package/dist/components/stream/networkFrameHandleTypes.d.ts +39 -0
- package/dist/components/stream/networkFrameObservations.d.ts +15 -0
- package/dist/components/stream/networkFramePaint.d.ts +11 -2
- package/dist/components/stream/networkInteractionTypes.d.ts +26 -0
- package/dist/components/stream/networkPipelineConfig.d.ts +2 -2
- package/dist/components/stream/networkPipelineUpdateResults.d.ts +38 -0
- package/dist/components/stream/networkTypes.d.ts +37 -56
- package/dist/components/stream/ordinalCanvasRenderers.d.ts +2 -2
- package/dist/components/stream/ordinalPipelineUpdateResults.d.ts +20 -1
- package/dist/components/stream/ordinalSceneBuilders/types.d.ts +2 -2
- package/dist/components/stream/ordinalTypes.d.ts +30 -3
- package/dist/components/stream/physics/PhysicsPipelineStore.d.ts +2 -0
- package/dist/components/stream/physics/PhysicsSVGOverlay.d.ts +6 -0
- package/dist/components/stream/physics/StreamPhysicsTypes.d.ts +21 -6
- package/dist/components/stream/physics/physicsFrameObservations.d.ts +19 -0
- package/dist/components/stream/physics/physicsFrameSetup.d.ts +4 -0
- package/dist/components/stream/physics/physicsPipelineUpdateResults.d.ts +19 -1
- package/dist/components/stream/physics/usePhysicsFrameLifecyclePolicy.d.ts +3 -1
- package/dist/components/stream/pipelineConfig.d.ts +4 -2
- package/dist/components/stream/pipelineDecay.d.ts +2 -2
- package/dist/components/stream/pipelinePulse.d.ts +2 -2
- package/dist/components/stream/pipelineStoreUpdateResults.d.ts +23 -2
- package/dist/components/stream/pipelineTransitions.d.ts +1 -1
- package/dist/components/stream/pipelineUpdateContract.d.ts +7 -0
- package/dist/components/stream/pipelineUpdateStore.d.ts +21 -0
- package/dist/components/stream/renderBackend.d.ts +27 -0
- package/dist/components/stream/renderers/canvasRenderHelpers.d.ts +15 -1
- package/dist/components/stream/renderers/geoCanvasRenderer.d.ts +3 -2
- package/dist/components/stream/renderers/networkParticleRenderer.d.ts +1 -1
- package/dist/components/stream/sceneRenderBackendTypes.d.ts +28 -0
- package/dist/components/stream/sceneRevisionDiagnostics.d.ts +31 -4
- package/dist/components/stream/streamSemanticTypes.d.ts +16 -0
- package/dist/components/stream/streamThemeTypes.d.ts +14 -0
- package/dist/components/stream/svgOverlayUtils.d.ts +10 -0
- package/dist/components/stream/test-utils/frameScheduler.d.ts +12 -0
- package/dist/components/stream/test-utils/revisionConsumption.d.ts +13 -0
- package/dist/components/stream/titleLayout.d.ts +31 -0
- package/dist/components/stream/types.d.ts +30 -65
- package/dist/components/stream/useCanvasFrameHost.d.ts +71 -0
- package/dist/components/stream/useFrame.d.ts +23 -0
- package/dist/components/stream/useLegendCategoryEmission.d.ts +3 -3
- package/dist/components/stream/useSemanticFrameInteractions.d.ts +22 -0
- package/dist/components/stream/useUpdateResultSnapshot.d.ts +7 -0
- package/dist/components/stream/xyFrameAxisTypes.d.ts +50 -0
- package/dist/components/stream/xySceneBuilders/types.d.ts +6 -5
- package/dist/controls.min.js +1 -1
- package/dist/controls.module.min.js +1 -1
- package/dist/forceLayoutWorker.js +1 -1
- package/dist/geo.min.js +1 -1
- package/dist/geo.module.min.js +1 -1
- package/dist/network.min.js +1 -1
- package/dist/network.module.min.js +1 -1
- package/dist/ordinal.min.js +1 -1
- package/dist/ordinal.module.min.js +1 -1
- package/dist/physics-matter.min.js +1 -1
- package/dist/physics-matter.module.min.js +1 -1
- package/dist/physics-rapier.min.js +1 -1
- package/dist/physics-rapier.module.min.js +1 -1
- package/dist/physics.min.js +1 -1
- package/dist/physics.module.min.js +1 -1
- package/dist/physicsWorker.js +1 -1
- package/dist/realtime.min.js +1 -1
- package/dist/realtime.module.min.js +1 -1
- package/dist/rough.min.js +1 -0
- package/dist/rough.module.min.js +1 -0
- package/dist/semiotic-ai-core.min.js +1 -1
- package/dist/semiotic-ai-core.module.min.js +1 -1
- package/dist/semiotic-ai.d.ts +3 -1
- package/dist/semiotic-ai.min.js +1 -1
- package/dist/semiotic-ai.module.min.js +1 -1
- package/dist/semiotic-controls.d.ts +2 -0
- package/dist/semiotic-data.min.js +1 -1
- package/dist/semiotic-data.module.min.js +1 -1
- package/dist/semiotic-experimental.min.js +1 -1
- package/dist/semiotic-experimental.module.min.js +1 -1
- package/dist/semiotic-geo.d.ts +4 -0
- package/dist/semiotic-network.d.ts +4 -0
- package/dist/semiotic-ordinal.d.ts +6 -0
- package/dist/semiotic-physics.d.ts +4 -0
- package/dist/semiotic-realtime-core.min.js +1 -1
- package/dist/semiotic-realtime-core.module.min.js +1 -1
- package/dist/semiotic-realtime-react.min.js +1 -1
- package/dist/semiotic-realtime-react.module.min.js +1 -1
- package/dist/semiotic-recipes-core.min.js +1 -1
- package/dist/semiotic-recipes-core.module.min.js +1 -1
- package/dist/semiotic-recipes-react.min.js +1 -1
- package/dist/semiotic-recipes-react.module.min.js +1 -1
- package/dist/semiotic-recipes.min.js +1 -1
- package/dist/semiotic-recipes.module.min.js +1 -1
- package/dist/semiotic-rough.d.ts +4 -0
- package/dist/semiotic-server-edge.min.js +1 -1
- package/dist/semiotic-server-edge.module.min.js +1 -1
- package/dist/semiotic-server-node.min.js +1 -1
- package/dist/semiotic-server-node.module.min.js +1 -1
- package/dist/semiotic-themes-core.min.js +1 -1
- package/dist/semiotic-themes-core.module.min.js +1 -1
- package/dist/semiotic-themes-react.min.js +1 -1
- package/dist/semiotic-themes-react.module.min.js +1 -1
- package/dist/semiotic-themes.min.js +1 -1
- package/dist/semiotic-themes.module.min.js +1 -1
- package/dist/semiotic-utils-core.d.ts +4 -0
- package/dist/semiotic-utils-core.min.js +1 -1
- package/dist/semiotic-utils-core.module.min.js +1 -1
- package/dist/semiotic-utils-react.min.js +1 -1
- package/dist/semiotic-utils-react.module.min.js +1 -1
- package/dist/semiotic-utils.min.js +1 -1
- package/dist/semiotic-utils.module.min.js +1 -1
- package/dist/semiotic-value.min.js +1 -1
- package/dist/semiotic-value.module.min.js +1 -1
- package/dist/semiotic-xy.d.ts +4 -0
- package/dist/semiotic.d.ts +9 -1
- package/dist/semiotic.min.js +1 -1
- package/dist/semiotic.module.min.js +1 -1
- package/dist/server.min.js +1 -1
- package/dist/server.module.min.js +1 -1
- package/dist/test-utils/capturedFrameProps.d.ts +67 -0
- package/dist/test-utils/frameMock.d.ts +12 -9
- package/dist/xy.min.js +1 -1
- package/dist/xy.module.min.js +1 -1
- package/package.json +29 -10
- package/dist/semiotic-ai-statisticalOverlays-CY4WKR4A.module.min.js +0 -2
- package/dist/semiotic-chunk-3FSVZ46U.module.min.js +0 -2
- package/dist/semiotic-statisticalOverlays-UOMSFKVJ.module.min.js +0 -2
- package/dist/xy-chunk-IWD6IB6V.module.min.js +0 -2
- package/dist/xy-statisticalOverlays-7RWG6LJT.module.min.js +0 -2
package/ai/dist/mcp-server.js
CHANGED
|
@@ -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 = `${
|
|
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 =
|
|
33828
|
+
const list = availableComponents.map(
|
|
33829
|
+
({ name, renderable: renderable2 }) => renderable2 ? `${name} [renderable]` : name
|
|
33830
|
+
);
|
|
33711
33831
|
return {
|
|
33712
|
-
content: [{
|
|
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: [{
|
|
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
|
|
33733
|
-
const
|
|
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: [{
|
|
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({
|
|
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
|
|
34598
|
-
const mobile = (0, import_ai3.auditMobileVisualization)(args.component, args.props, { viewportWidth: args.viewportWidth
|
|
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
|
-
|
|
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: {
|
|
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: {
|
|
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:
|
|
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" &&
|
|
35292
|
-
res
|
|
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
|
|
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:
|
|
35609
|
+
signal: requestAbortSignal,
|
|
35400
35610
|
limits: renderExecutionLimits
|
|
35401
35611
|
});
|
|
35402
35612
|
const transport = new StreamableHTTPServerTransport({
|