@mapbox/mcp-server 0.12.7-dev → 0.13.0-dev
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/dist/commonjs/config/toolConfig.d.ts +0 -10
- package/dist/commonjs/config/toolConfig.d.ts.map +1 -1
- package/dist/commonjs/config/toolConfig.js +0 -36
- package/dist/commonjs/config/toolConfig.js.map +1 -1
- package/dist/commonjs/resources/compute/ComputeResource.d.ts +20 -0
- package/dist/commonjs/resources/compute/ComputeResource.d.ts.map +1 -0
- package/dist/commonjs/resources/compute/ComputeResource.js +49 -0
- package/dist/commonjs/resources/compute/ComputeResource.js.map +1 -0
- package/dist/commonjs/resources/inline-payload/InlinePayloadResource.d.ts +17 -0
- package/dist/commonjs/resources/inline-payload/InlinePayloadResource.d.ts.map +1 -0
- package/dist/commonjs/resources/inline-payload/InlinePayloadResource.js +46 -0
- package/dist/commonjs/resources/inline-payload/InlinePayloadResource.js.map +1 -0
- package/dist/commonjs/resources/resourceRegistry.d.ts +4 -2
- package/dist/commonjs/resources/resourceRegistry.d.ts.map +1 -1
- package/dist/commonjs/resources/resourceRegistry.js +16 -6
- package/dist/commonjs/resources/resourceRegistry.js.map +1 -1
- package/dist/commonjs/resources/ui-apps/MapAppUIResource.d.ts +27 -0
- package/dist/commonjs/resources/ui-apps/MapAppUIResource.d.ts.map +1 -0
- package/dist/commonjs/resources/ui-apps/{DirectionsAppUIResource.js → MapAppUIResource.js} +15 -17
- package/dist/commonjs/resources/ui-apps/MapAppUIResource.js.map +1 -0
- package/dist/commonjs/resources/ui-apps/mapAppHtml.d.ts +19 -0
- package/dist/commonjs/resources/ui-apps/mapAppHtml.d.ts.map +1 -0
- package/dist/commonjs/resources/ui-apps/mapAppHtml.js +1621 -0
- package/dist/commonjs/resources/ui-apps/mapAppHtml.js.map +1 -0
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.d.ts.map +1 -1
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.js +46 -41
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.js.map +1 -1
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.output.schema.d.ts +6 -3
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.output.schema.d.ts.map +1 -1
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.output.schema.js +3 -1
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.output.schema.js.map +1 -1
- package/dist/commonjs/tools/category-search-tool/buildCategorySearchRequestUrl.d.ts +30 -0
- package/dist/commonjs/tools/category-search-tool/buildCategorySearchRequestUrl.d.ts.map +1 -0
- package/dist/commonjs/tools/category-search-tool/buildCategorySearchRequestUrl.js +39 -0
- package/dist/commonjs/tools/category-search-tool/buildCategorySearchRequestUrl.js.map +1 -0
- package/dist/commonjs/tools/difference-tool/DifferenceTool.d.ts.map +1 -1
- package/dist/commonjs/tools/difference-tool/DifferenceTool.js +19 -3
- package/dist/commonjs/tools/difference-tool/DifferenceTool.js.map +1 -1
- package/dist/commonjs/tools/difference-tool/DifferenceTool.output.schema.d.ts +4 -1
- package/dist/commonjs/tools/difference-tool/DifferenceTool.output.schema.d.ts.map +1 -1
- package/dist/commonjs/tools/difference-tool/DifferenceTool.output.schema.js +7 -3
- package/dist/commonjs/tools/difference-tool/DifferenceTool.output.schema.js.map +1 -1
- package/dist/commonjs/tools/directions-tool/DirectionsTool.d.ts +0 -9
- package/dist/commonjs/tools/directions-tool/DirectionsTool.d.ts.map +1 -1
- package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.d.ts.map +1 -1
- package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.js +9 -4
- package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.js.map +1 -1
- package/dist/commonjs/tools/directions-tool/DirectionsTool.js +40 -78
- package/dist/commonjs/tools/directions-tool/DirectionsTool.js.map +1 -1
- package/dist/commonjs/tools/directions-tool/DirectionsTool.output.schema.d.ts +4 -1
- package/dist/commonjs/tools/directions-tool/DirectionsTool.output.schema.d.ts.map +1 -1
- package/dist/commonjs/tools/directions-tool/DirectionsTool.output.schema.js +10 -4
- package/dist/commonjs/tools/directions-tool/DirectionsTool.output.schema.js.map +1 -1
- package/dist/commonjs/tools/directions-tool/buildDirectionsRequestUrl.d.ts +2 -2
- package/dist/commonjs/tools/directions-tool/buildDirectionsRequestUrl.d.ts.map +1 -1
- package/dist/commonjs/tools/directions-tool/buildDirectionsRequestUrl.js +4 -12
- package/dist/commonjs/tools/directions-tool/buildDirectionsRequestUrl.js.map +1 -1
- package/dist/commonjs/tools/ground-location-tool/GroundLocationTool.d.ts.map +1 -1
- package/dist/commonjs/tools/ground-location-tool/GroundLocationTool.js +52 -18
- package/dist/commonjs/tools/ground-location-tool/GroundLocationTool.js.map +1 -1
- package/dist/commonjs/tools/ground-location-tool/GroundLocationTool.output.schema.d.ts +4 -1
- package/dist/commonjs/tools/ground-location-tool/GroundLocationTool.output.schema.d.ts.map +1 -1
- package/dist/commonjs/tools/ground-location-tool/GroundLocationTool.output.schema.js +7 -3
- package/dist/commonjs/tools/ground-location-tool/GroundLocationTool.output.schema.js.map +1 -1
- package/dist/commonjs/tools/ground-location-tool/buildReverseGeocodeUrl.d.ts +19 -0
- package/dist/commonjs/tools/ground-location-tool/buildReverseGeocodeUrl.d.ts.map +1 -0
- package/dist/commonjs/tools/ground-location-tool/buildReverseGeocodeUrl.js +26 -0
- package/dist/commonjs/tools/ground-location-tool/buildReverseGeocodeUrl.js.map +1 -0
- package/dist/commonjs/tools/intersect-tool/IntersectTool.d.ts.map +1 -1
- package/dist/commonjs/tools/intersect-tool/IntersectTool.js +19 -3
- package/dist/commonjs/tools/intersect-tool/IntersectTool.js.map +1 -1
- package/dist/commonjs/tools/intersect-tool/IntersectTool.output.schema.d.ts +4 -1
- package/dist/commonjs/tools/intersect-tool/IntersectTool.output.schema.d.ts.map +1 -1
- package/dist/commonjs/tools/intersect-tool/IntersectTool.output.schema.js +7 -3
- package/dist/commonjs/tools/intersect-tool/IntersectTool.output.schema.js.map +1 -1
- package/dist/commonjs/tools/isochrone-tool/IsochroneTool.d.ts.map +1 -1
- package/dist/commonjs/tools/isochrone-tool/IsochroneTool.js +51 -47
- package/dist/commonjs/tools/isochrone-tool/IsochroneTool.js.map +1 -1
- package/dist/commonjs/tools/isochrone-tool/IsochroneTool.output.schema.d.ts +4 -5
- package/dist/commonjs/tools/isochrone-tool/IsochroneTool.output.schema.d.ts.map +1 -1
- package/dist/commonjs/tools/isochrone-tool/IsochroneTool.output.schema.js +7 -3
- package/dist/commonjs/tools/isochrone-tool/IsochroneTool.output.schema.js.map +1 -1
- package/dist/commonjs/tools/isochrone-tool/buildIsochroneRequestUrl.d.ts +28 -0
- package/dist/commonjs/tools/isochrone-tool/buildIsochroneRequestUrl.d.ts.map +1 -0
- package/dist/commonjs/tools/isochrone-tool/buildIsochroneRequestUrl.js +44 -0
- package/dist/commonjs/tools/isochrone-tool/buildIsochroneRequestUrl.js.map +1 -0
- package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.d.ts.map +1 -1
- package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.js +61 -34
- package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.js.map +1 -1
- package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.output.schema.d.ts +8 -5
- package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.output.schema.d.ts.map +1 -1
- package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.output.schema.js +11 -5
- package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.output.schema.js.map +1 -1
- package/dist/commonjs/tools/map-matching-tool/buildMapMatchingRequestUrl.d.ts +25 -0
- package/dist/commonjs/tools/map-matching-tool/buildMapMatchingRequestUrl.d.ts.map +1 -0
- package/dist/commonjs/tools/map-matching-tool/buildMapMatchingRequestUrl.js +33 -0
- package/dist/commonjs/tools/map-matching-tool/buildMapMatchingRequestUrl.js.map +1 -0
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.d.ts.map +1 -1
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.input.schema.d.ts.map +1 -1
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.input.schema.js +19 -4
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.input.schema.js.map +1 -1
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.js +32 -33
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.js.map +1 -1
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.output.schema.d.ts +3 -5
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.output.schema.d.ts.map +1 -1
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.output.schema.js +6 -1
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.output.schema.js.map +1 -1
- package/dist/commonjs/tools/optimization-tool/buildOptimizationRequestUrl.d.ts +30 -0
- package/dist/commonjs/tools/optimization-tool/buildOptimizationRequestUrl.d.ts.map +1 -0
- package/dist/commonjs/tools/optimization-tool/buildOptimizationRequestUrl.js +45 -0
- package/dist/commonjs/tools/optimization-tool/buildOptimizationRequestUrl.js.map +1 -0
- package/dist/commonjs/tools/render-map-tool/RenderMapTool.d.ts +60 -0
- package/dist/commonjs/tools/render-map-tool/RenderMapTool.d.ts.map +1 -0
- package/dist/commonjs/tools/render-map-tool/RenderMapTool.input.schema.d.ts +41 -0
- package/dist/commonjs/tools/render-map-tool/RenderMapTool.input.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/render-map-tool/RenderMapTool.input.schema.js +99 -0
- package/dist/commonjs/tools/render-map-tool/RenderMapTool.input.schema.js.map +1 -0
- package/dist/commonjs/tools/render-map-tool/RenderMapTool.js +246 -0
- package/dist/commonjs/tools/render-map-tool/RenderMapTool.js.map +1 -0
- package/dist/commonjs/tools/render-map-tool/RenderMapTool.output.schema.d.ts +97 -0
- package/dist/commonjs/tools/render-map-tool/RenderMapTool.output.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/render-map-tool/RenderMapTool.output.schema.js +35 -0
- package/dist/commonjs/tools/render-map-tool/RenderMapTool.output.schema.js.map +1 -0
- package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.input.schema.d.ts +1 -1
- package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.output.schema.d.ts +3 -3
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.d.ts +10 -0
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.d.ts.map +1 -1
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.js +58 -48
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.js.map +1 -1
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.d.ts +3 -0
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.d.ts.map +1 -1
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.js +3 -1
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.js.map +1 -1
- package/dist/commonjs/tools/search-and-geocode-tool/buildSearchAndGeocodeRequestUrl.d.ts +37 -0
- package/dist/commonjs/tools/search-and-geocode-tool/buildSearchAndGeocodeRequestUrl.d.ts.map +1 -0
- package/dist/commonjs/tools/search-and-geocode-tool/buildSearchAndGeocodeRequestUrl.js +51 -0
- package/dist/commonjs/tools/search-and-geocode-tool/buildSearchAndGeocodeRequestUrl.js.map +1 -0
- package/dist/commonjs/tools/shared/polygonSchema.d.ts +15 -0
- package/dist/commonjs/tools/shared/polygonSchema.d.ts.map +1 -1
- package/dist/commonjs/tools/shared/polygonSchema.js +23 -2
- package/dist/commonjs/tools/shared/polygonSchema.js.map +1 -1
- package/dist/commonjs/tools/toolRegistry.d.ts +3 -2
- package/dist/commonjs/tools/toolRegistry.d.ts.map +1 -1
- package/dist/commonjs/tools/toolRegistry.js +2 -0
- package/dist/commonjs/tools/toolRegistry.js.map +1 -1
- package/dist/commonjs/tools/union-tool/UnionTool.d.ts.map +1 -1
- package/dist/commonjs/tools/union-tool/UnionTool.js +22 -3
- package/dist/commonjs/tools/union-tool/UnionTool.js.map +1 -1
- package/dist/commonjs/tools/union-tool/UnionTool.output.schema.d.ts +4 -1
- package/dist/commonjs/tools/union-tool/UnionTool.output.schema.d.ts.map +1 -1
- package/dist/commonjs/tools/union-tool/UnionTool.output.schema.js +7 -3
- package/dist/commonjs/tools/union-tool/UnionTool.output.schema.js.map +1 -1
- package/dist/commonjs/tools/union-tool/buildPolygonOpsMapPayload.d.ts +21 -0
- package/dist/commonjs/tools/union-tool/buildPolygonOpsMapPayload.d.ts.map +1 -0
- package/dist/commonjs/tools/union-tool/buildPolygonOpsMapPayload.js +72 -0
- package/dist/commonjs/tools/union-tool/buildPolygonOpsMapPayload.js.map +1 -0
- package/dist/commonjs/utils/computeRef.d.ts +38 -0
- package/dist/commonjs/utils/computeRef.d.ts.map +1 -0
- package/dist/commonjs/utils/computeRef.js +116 -0
- package/dist/commonjs/utils/computeRef.js.map +1 -0
- package/dist/commonjs/utils/inlinePayloadRef.d.ts +32 -0
- package/dist/commonjs/utils/inlinePayloadRef.d.ts.map +1 -0
- package/dist/commonjs/utils/inlinePayloadRef.js +56 -0
- package/dist/commonjs/utils/inlinePayloadRef.js.map +1 -0
- package/dist/commonjs/utils/mapAppPayload.d.ts +206 -0
- package/dist/commonjs/utils/mapAppPayload.d.ts.map +1 -0
- package/dist/commonjs/utils/mapAppPayload.js +129 -0
- package/dist/commonjs/utils/mapAppPayload.js.map +1 -0
- package/dist/commonjs/utils/selfFetchRef.d.ts +25 -0
- package/dist/commonjs/utils/selfFetchRef.d.ts.map +1 -0
- package/dist/commonjs/utils/selfFetchRef.js +75 -0
- package/dist/commonjs/utils/selfFetchRef.js.map +1 -0
- package/dist/commonjs/utils/storeMapPayload.d.ts +71 -0
- package/dist/commonjs/utils/storeMapPayload.d.ts.map +1 -0
- package/dist/commonjs/utils/storeMapPayload.js +153 -0
- package/dist/commonjs/utils/storeMapPayload.js.map +1 -0
- package/dist/commonjs/version.json +3 -3
- package/dist/esm/config/toolConfig.d.ts +0 -10
- package/dist/esm/config/toolConfig.d.ts.map +1 -1
- package/dist/esm/config/toolConfig.js +0 -35
- package/dist/esm/config/toolConfig.js.map +1 -1
- package/dist/esm/resources/compute/ComputeResource.d.ts +20 -0
- package/dist/esm/resources/compute/ComputeResource.d.ts.map +1 -0
- package/dist/esm/resources/compute/ComputeResource.js +45 -0
- package/dist/esm/resources/compute/ComputeResource.js.map +1 -0
- package/dist/esm/resources/inline-payload/InlinePayloadResource.d.ts +17 -0
- package/dist/esm/resources/inline-payload/InlinePayloadResource.d.ts.map +1 -0
- package/dist/esm/resources/inline-payload/InlinePayloadResource.js +42 -0
- package/dist/esm/resources/inline-payload/InlinePayloadResource.js.map +1 -0
- package/dist/esm/resources/resourceRegistry.d.ts +4 -2
- package/dist/esm/resources/resourceRegistry.d.ts.map +1 -1
- package/dist/esm/resources/resourceRegistry.js +16 -6
- package/dist/esm/resources/resourceRegistry.js.map +1 -1
- package/dist/esm/resources/ui-apps/MapAppUIResource.d.ts +27 -0
- package/dist/esm/resources/ui-apps/MapAppUIResource.d.ts.map +1 -0
- package/dist/esm/resources/ui-apps/{DirectionsAppUIResource.js → MapAppUIResource.js} +13 -15
- package/dist/esm/resources/ui-apps/MapAppUIResource.js.map +1 -0
- package/dist/esm/resources/ui-apps/mapAppHtml.d.ts +19 -0
- package/dist/esm/resources/ui-apps/mapAppHtml.d.ts.map +1 -0
- package/dist/esm/resources/ui-apps/mapAppHtml.js +1617 -0
- package/dist/esm/resources/ui-apps/mapAppHtml.js.map +1 -0
- package/dist/esm/tools/category-search-tool/CategorySearchTool.d.ts.map +1 -1
- package/dist/esm/tools/category-search-tool/CategorySearchTool.js +46 -41
- package/dist/esm/tools/category-search-tool/CategorySearchTool.js.map +1 -1
- package/dist/esm/tools/category-search-tool/CategorySearchTool.output.schema.d.ts +6 -3
- package/dist/esm/tools/category-search-tool/CategorySearchTool.output.schema.d.ts.map +1 -1
- package/dist/esm/tools/category-search-tool/CategorySearchTool.output.schema.js +3 -1
- package/dist/esm/tools/category-search-tool/CategorySearchTool.output.schema.js.map +1 -1
- package/dist/esm/tools/category-search-tool/buildCategorySearchRequestUrl.d.ts +30 -0
- package/dist/esm/tools/category-search-tool/buildCategorySearchRequestUrl.d.ts.map +1 -0
- package/dist/esm/tools/category-search-tool/buildCategorySearchRequestUrl.js +36 -0
- package/dist/esm/tools/category-search-tool/buildCategorySearchRequestUrl.js.map +1 -0
- package/dist/esm/tools/difference-tool/DifferenceTool.d.ts.map +1 -1
- package/dist/esm/tools/difference-tool/DifferenceTool.js +19 -3
- package/dist/esm/tools/difference-tool/DifferenceTool.js.map +1 -1
- package/dist/esm/tools/difference-tool/DifferenceTool.output.schema.d.ts +4 -1
- package/dist/esm/tools/difference-tool/DifferenceTool.output.schema.d.ts.map +1 -1
- package/dist/esm/tools/difference-tool/DifferenceTool.output.schema.js +7 -3
- package/dist/esm/tools/difference-tool/DifferenceTool.output.schema.js.map +1 -1
- package/dist/esm/tools/directions-tool/DirectionsTool.d.ts +0 -9
- package/dist/esm/tools/directions-tool/DirectionsTool.d.ts.map +1 -1
- package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.d.ts.map +1 -1
- package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.js +9 -4
- package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.js.map +1 -1
- package/dist/esm/tools/directions-tool/DirectionsTool.js +41 -79
- package/dist/esm/tools/directions-tool/DirectionsTool.js.map +1 -1
- package/dist/esm/tools/directions-tool/DirectionsTool.output.schema.d.ts +4 -1
- package/dist/esm/tools/directions-tool/DirectionsTool.output.schema.d.ts.map +1 -1
- package/dist/esm/tools/directions-tool/DirectionsTool.output.schema.js +10 -4
- package/dist/esm/tools/directions-tool/DirectionsTool.output.schema.js.map +1 -1
- package/dist/esm/tools/directions-tool/buildDirectionsRequestUrl.d.ts +2 -2
- package/dist/esm/tools/directions-tool/buildDirectionsRequestUrl.d.ts.map +1 -1
- package/dist/esm/tools/directions-tool/buildDirectionsRequestUrl.js +4 -12
- package/dist/esm/tools/directions-tool/buildDirectionsRequestUrl.js.map +1 -1
- package/dist/esm/tools/ground-location-tool/GroundLocationTool.d.ts.map +1 -1
- package/dist/esm/tools/ground-location-tool/GroundLocationTool.js +52 -18
- package/dist/esm/tools/ground-location-tool/GroundLocationTool.js.map +1 -1
- package/dist/esm/tools/ground-location-tool/GroundLocationTool.output.schema.d.ts +4 -1
- package/dist/esm/tools/ground-location-tool/GroundLocationTool.output.schema.d.ts.map +1 -1
- package/dist/esm/tools/ground-location-tool/GroundLocationTool.output.schema.js +7 -3
- package/dist/esm/tools/ground-location-tool/GroundLocationTool.output.schema.js.map +1 -1
- package/dist/esm/tools/ground-location-tool/buildReverseGeocodeUrl.d.ts +19 -0
- package/dist/esm/tools/ground-location-tool/buildReverseGeocodeUrl.d.ts.map +1 -0
- package/dist/esm/tools/ground-location-tool/buildReverseGeocodeUrl.js +23 -0
- package/dist/esm/tools/ground-location-tool/buildReverseGeocodeUrl.js.map +1 -0
- package/dist/esm/tools/intersect-tool/IntersectTool.d.ts.map +1 -1
- package/dist/esm/tools/intersect-tool/IntersectTool.js +19 -3
- package/dist/esm/tools/intersect-tool/IntersectTool.js.map +1 -1
- package/dist/esm/tools/intersect-tool/IntersectTool.output.schema.d.ts +4 -1
- package/dist/esm/tools/intersect-tool/IntersectTool.output.schema.d.ts.map +1 -1
- package/dist/esm/tools/intersect-tool/IntersectTool.output.schema.js +7 -3
- package/dist/esm/tools/intersect-tool/IntersectTool.output.schema.js.map +1 -1
- package/dist/esm/tools/isochrone-tool/IsochroneTool.d.ts.map +1 -1
- package/dist/esm/tools/isochrone-tool/IsochroneTool.js +51 -47
- package/dist/esm/tools/isochrone-tool/IsochroneTool.js.map +1 -1
- package/dist/esm/tools/isochrone-tool/IsochroneTool.output.schema.d.ts +4 -5
- package/dist/esm/tools/isochrone-tool/IsochroneTool.output.schema.d.ts.map +1 -1
- package/dist/esm/tools/isochrone-tool/IsochroneTool.output.schema.js +7 -3
- package/dist/esm/tools/isochrone-tool/IsochroneTool.output.schema.js.map +1 -1
- package/dist/esm/tools/isochrone-tool/buildIsochroneRequestUrl.d.ts +28 -0
- package/dist/esm/tools/isochrone-tool/buildIsochroneRequestUrl.d.ts.map +1 -0
- package/dist/esm/tools/isochrone-tool/buildIsochroneRequestUrl.js +41 -0
- package/dist/esm/tools/isochrone-tool/buildIsochroneRequestUrl.js.map +1 -0
- package/dist/esm/tools/map-matching-tool/MapMatchingTool.d.ts.map +1 -1
- package/dist/esm/tools/map-matching-tool/MapMatchingTool.js +61 -34
- package/dist/esm/tools/map-matching-tool/MapMatchingTool.js.map +1 -1
- package/dist/esm/tools/map-matching-tool/MapMatchingTool.output.schema.d.ts +8 -5
- package/dist/esm/tools/map-matching-tool/MapMatchingTool.output.schema.d.ts.map +1 -1
- package/dist/esm/tools/map-matching-tool/MapMatchingTool.output.schema.js +11 -5
- package/dist/esm/tools/map-matching-tool/MapMatchingTool.output.schema.js.map +1 -1
- package/dist/esm/tools/map-matching-tool/buildMapMatchingRequestUrl.d.ts +25 -0
- package/dist/esm/tools/map-matching-tool/buildMapMatchingRequestUrl.d.ts.map +1 -0
- package/dist/esm/tools/map-matching-tool/buildMapMatchingRequestUrl.js +30 -0
- package/dist/esm/tools/map-matching-tool/buildMapMatchingRequestUrl.js.map +1 -0
- package/dist/esm/tools/optimization-tool/OptimizationTool.d.ts.map +1 -1
- package/dist/esm/tools/optimization-tool/OptimizationTool.input.schema.d.ts.map +1 -1
- package/dist/esm/tools/optimization-tool/OptimizationTool.input.schema.js +19 -4
- package/dist/esm/tools/optimization-tool/OptimizationTool.input.schema.js.map +1 -1
- package/dist/esm/tools/optimization-tool/OptimizationTool.js +32 -33
- package/dist/esm/tools/optimization-tool/OptimizationTool.js.map +1 -1
- package/dist/esm/tools/optimization-tool/OptimizationTool.output.schema.d.ts +3 -5
- package/dist/esm/tools/optimization-tool/OptimizationTool.output.schema.d.ts.map +1 -1
- package/dist/esm/tools/optimization-tool/OptimizationTool.output.schema.js +6 -1
- package/dist/esm/tools/optimization-tool/OptimizationTool.output.schema.js.map +1 -1
- package/dist/esm/tools/optimization-tool/buildOptimizationRequestUrl.d.ts +30 -0
- package/dist/esm/tools/optimization-tool/buildOptimizationRequestUrl.d.ts.map +1 -0
- package/dist/esm/tools/optimization-tool/buildOptimizationRequestUrl.js +42 -0
- package/dist/esm/tools/optimization-tool/buildOptimizationRequestUrl.js.map +1 -0
- package/dist/esm/tools/render-map-tool/RenderMapTool.d.ts +60 -0
- package/dist/esm/tools/render-map-tool/RenderMapTool.d.ts.map +1 -0
- package/dist/esm/tools/render-map-tool/RenderMapTool.input.schema.d.ts +41 -0
- package/dist/esm/tools/render-map-tool/RenderMapTool.input.schema.d.ts.map +1 -0
- package/dist/esm/tools/render-map-tool/RenderMapTool.input.schema.js +96 -0
- package/dist/esm/tools/render-map-tool/RenderMapTool.input.schema.js.map +1 -0
- package/dist/esm/tools/render-map-tool/RenderMapTool.js +242 -0
- package/dist/esm/tools/render-map-tool/RenderMapTool.js.map +1 -0
- package/dist/esm/tools/render-map-tool/RenderMapTool.output.schema.d.ts +97 -0
- package/dist/esm/tools/render-map-tool/RenderMapTool.output.schema.d.ts.map +1 -0
- package/dist/esm/tools/render-map-tool/RenderMapTool.output.schema.js +32 -0
- package/dist/esm/tools/render-map-tool/RenderMapTool.output.schema.js.map +1 -0
- package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.input.schema.d.ts +1 -1
- package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.output.schema.d.ts +3 -3
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.d.ts +10 -0
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.d.ts.map +1 -1
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.js +58 -48
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.js.map +1 -1
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.d.ts +3 -0
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.d.ts.map +1 -1
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.js +3 -1
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.js.map +1 -1
- package/dist/esm/tools/search-and-geocode-tool/buildSearchAndGeocodeRequestUrl.d.ts +37 -0
- package/dist/esm/tools/search-and-geocode-tool/buildSearchAndGeocodeRequestUrl.d.ts.map +1 -0
- package/dist/esm/tools/search-and-geocode-tool/buildSearchAndGeocodeRequestUrl.js +48 -0
- package/dist/esm/tools/search-and-geocode-tool/buildSearchAndGeocodeRequestUrl.js.map +1 -0
- package/dist/esm/tools/shared/polygonSchema.d.ts +15 -0
- package/dist/esm/tools/shared/polygonSchema.d.ts.map +1 -1
- package/dist/esm/tools/shared/polygonSchema.js +23 -2
- package/dist/esm/tools/shared/polygonSchema.js.map +1 -1
- package/dist/esm/tools/toolRegistry.d.ts +3 -2
- package/dist/esm/tools/toolRegistry.d.ts.map +1 -1
- package/dist/esm/tools/toolRegistry.js +2 -0
- package/dist/esm/tools/toolRegistry.js.map +1 -1
- package/dist/esm/tools/union-tool/UnionTool.d.ts.map +1 -1
- package/dist/esm/tools/union-tool/UnionTool.js +22 -3
- package/dist/esm/tools/union-tool/UnionTool.js.map +1 -1
- package/dist/esm/tools/union-tool/UnionTool.output.schema.d.ts +4 -1
- package/dist/esm/tools/union-tool/UnionTool.output.schema.d.ts.map +1 -1
- package/dist/esm/tools/union-tool/UnionTool.output.schema.js +7 -3
- package/dist/esm/tools/union-tool/UnionTool.output.schema.js.map +1 -1
- package/dist/esm/tools/union-tool/buildPolygonOpsMapPayload.d.ts +21 -0
- package/dist/esm/tools/union-tool/buildPolygonOpsMapPayload.d.ts.map +1 -0
- package/dist/esm/tools/union-tool/buildPolygonOpsMapPayload.js +69 -0
- package/dist/esm/tools/union-tool/buildPolygonOpsMapPayload.js.map +1 -0
- package/dist/esm/utils/computeRef.d.ts +38 -0
- package/dist/esm/utils/computeRef.d.ts.map +1 -0
- package/dist/esm/utils/computeRef.js +111 -0
- package/dist/esm/utils/computeRef.js.map +1 -0
- package/dist/esm/utils/inlinePayloadRef.d.ts +32 -0
- package/dist/esm/utils/inlinePayloadRef.d.ts.map +1 -0
- package/dist/esm/utils/inlinePayloadRef.js +51 -0
- package/dist/esm/utils/inlinePayloadRef.js.map +1 -0
- package/dist/esm/utils/mapAppPayload.d.ts +206 -0
- package/dist/esm/utils/mapAppPayload.d.ts.map +1 -0
- package/dist/esm/utils/mapAppPayload.js +124 -0
- package/dist/esm/utils/mapAppPayload.js.map +1 -0
- package/dist/esm/utils/selfFetchRef.d.ts +25 -0
- package/dist/esm/utils/selfFetchRef.d.ts.map +1 -0
- package/dist/esm/utils/selfFetchRef.js +70 -0
- package/dist/esm/utils/selfFetchRef.js.map +1 -0
- package/dist/esm/utils/storeMapPayload.d.ts +71 -0
- package/dist/esm/utils/storeMapPayload.d.ts.map +1 -0
- package/dist/esm/utils/storeMapPayload.js +145 -0
- package/dist/esm/utils/storeMapPayload.js.map +1 -0
- package/dist/esm/version.json +3 -3
- package/package.json +2 -2
- package/dist/commonjs/resources/ui-apps/DirectionsAppUIResource.d.ts +0 -29
- package/dist/commonjs/resources/ui-apps/DirectionsAppUIResource.d.ts.map +0 -1
- package/dist/commonjs/resources/ui-apps/DirectionsAppUIResource.js.map +0 -1
- package/dist/commonjs/resources/ui-apps/directionsAppHtml.d.ts +0 -45
- package/dist/commonjs/resources/ui-apps/directionsAppHtml.d.ts.map +0 -1
- package/dist/commonjs/resources/ui-apps/directionsAppHtml.js +0 -579
- package/dist/commonjs/resources/ui-apps/directionsAppHtml.js.map +0 -1
- package/dist/esm/resources/ui-apps/DirectionsAppUIResource.d.ts +0 -29
- package/dist/esm/resources/ui-apps/DirectionsAppUIResource.d.ts.map +0 -1
- package/dist/esm/resources/ui-apps/DirectionsAppUIResource.js.map +0 -1
- package/dist/esm/resources/ui-apps/directionsAppHtml.d.ts +0 -45
- package/dist/esm/resources/ui-apps/directionsAppHtml.d.ts.map +0 -1
- package/dist/esm/resources/ui-apps/directionsAppHtml.js +0 -575
- package/dist/esm/resources/ui-apps/directionsAppHtml.js.map +0 -1
|
@@ -1,579 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// Copyright (c) Mapbox, Inc.
|
|
3
|
-
// Licensed under the MIT License.
|
|
4
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.MAPBOX_GL_VERSION = void 0;
|
|
6
|
-
exports.renderDirectionsAppHtml = renderDirectionsAppHtml;
|
|
7
|
-
/**
|
|
8
|
-
* Render the directions MCP App HTML.
|
|
9
|
-
*
|
|
10
|
-
* The same template is consumed by two ingress paths:
|
|
11
|
-
*
|
|
12
|
-
* 1. **MCP Apps spec** — `DirectionsAppUIResource` reads this resource at
|
|
13
|
-
* `ui://mapbox/directions-app/index.html`. The iframe loads, the agent's
|
|
14
|
-
* tool result is delivered via the `ui/notifications/tool-result`
|
|
15
|
-
* postMessage event, and `extractRoute()` pulls the route out of
|
|
16
|
-
* `structuredContent.routes[0]`.
|
|
17
|
-
*
|
|
18
|
-
* 2. **Legacy MCP-UI spec** — `directions_tool` inlines a `rawHtml`
|
|
19
|
-
* UIResource into its content array (gated by `isMcpUiEnabled()`). The
|
|
20
|
-
* HTML is generated at tool-execute time with the call's input params
|
|
21
|
-
* baked in as an `initialData` script block; the iframe uses those params
|
|
22
|
-
* to self-fetch the route from the Directions API, so it never depends on
|
|
23
|
-
* the host delivering the tool result.
|
|
24
|
-
*
|
|
25
|
-
* One source of truth for the rendering logic; two slim entry conditions.
|
|
26
|
-
*/
|
|
27
|
-
exports.MAPBOX_GL_VERSION = '3.12.0';
|
|
28
|
-
function renderDirectionsAppHtml(params) {
|
|
29
|
-
const { publicToken, apiEndpoint, initialData } = params;
|
|
30
|
-
const glVersion = params.glVersion ?? exports.MAPBOX_GL_VERSION;
|
|
31
|
-
const initialDataScript = initialData
|
|
32
|
-
? `<script id="initial-data" type="application/json">${escapeForScript(JSON.stringify(initialData))}</script>`
|
|
33
|
-
: '';
|
|
34
|
-
return `<!DOCTYPE html>
|
|
35
|
-
<html lang="en">
|
|
36
|
-
<head>
|
|
37
|
-
<meta charset="UTF-8">
|
|
38
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
39
|
-
<title>Directions Preview</title>
|
|
40
|
-
<link href="https://api.mapbox.com/mapbox-gl-js/v${glVersion}/mapbox-gl.css" rel="stylesheet">
|
|
41
|
-
<script src="https://api.mapbox.com/mapbox-gl-js/v${glVersion}/mapbox-gl.js"></script>
|
|
42
|
-
<style>
|
|
43
|
-
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
44
|
-
html, body { width: 100%; height: 100%; overflow: hidden;
|
|
45
|
-
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }
|
|
46
|
-
#map { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
|
|
47
|
-
#summary {
|
|
48
|
-
position: absolute; top: 12px; left: 12px; z-index: 10;
|
|
49
|
-
background: rgba(15, 23, 42, 0.88); color: #f1f5f9;
|
|
50
|
-
padding: 8px 12px; border-radius: 6px;
|
|
51
|
-
font-size: 13px; font-weight: 500;
|
|
52
|
-
box-shadow: 0 2px 8px rgba(0,0,0,0.3);
|
|
53
|
-
max-width: calc(100% - 24px);
|
|
54
|
-
}
|
|
55
|
-
#loading {
|
|
56
|
-
position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
|
|
57
|
-
color: #666; font-size: 16px; z-index: 10; pointer-events: none;
|
|
58
|
-
}
|
|
59
|
-
#error {
|
|
60
|
-
position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
|
|
61
|
-
color: #d32f2f; background: #ffebee; border-radius: 8px;
|
|
62
|
-
padding: 20px; max-width: 400px; text-align: center; z-index: 10;
|
|
63
|
-
}
|
|
64
|
-
</style>
|
|
65
|
-
</head>
|
|
66
|
-
<body>
|
|
67
|
-
<div id="map"></div>
|
|
68
|
-
<div id="summary" style="display:none"></div>
|
|
69
|
-
<div id="loading">Loading directions…</div>
|
|
70
|
-
<div id="error" style="display:none"></div>
|
|
71
|
-
${initialDataScript}
|
|
72
|
-
|
|
73
|
-
<script>
|
|
74
|
-
(function() {
|
|
75
|
-
var TOKEN = ${JSON.stringify(publicToken)};
|
|
76
|
-
var API_ENDPOINT = ${JSON.stringify(apiEndpoint)};
|
|
77
|
-
|
|
78
|
-
var loadingEl = document.getElementById('loading');
|
|
79
|
-
var errorEl = document.getElementById('error');
|
|
80
|
-
var summaryEl = document.getElementById('summary');
|
|
81
|
-
|
|
82
|
-
var map = null;
|
|
83
|
-
var mapLoaded = false;
|
|
84
|
-
var pendingRoute = null;
|
|
85
|
-
var currentDisplayMode = 'inline';
|
|
86
|
-
// Track markers across re-renders so we can remove them before drawing the
|
|
87
|
-
// next route — otherwise a second tool-result delivery stacks pins.
|
|
88
|
-
var routeMarkers = [];
|
|
89
|
-
var routeRendered = false;
|
|
90
|
-
var selfFetchStarted = false;
|
|
91
|
-
|
|
92
|
-
// -------------------------------------------------------------------------
|
|
93
|
-
// Self-fetch: build a Directions API request directly from the tool call's
|
|
94
|
-
// input parameters and fetch the route ourselves, so this map never
|
|
95
|
-
// depends on the tool response carrying geometries="geojson".
|
|
96
|
-
//
|
|
97
|
-
// Mirrors src/tools/directions-tool/buildDirectionsRequestUrl.ts — kept in
|
|
98
|
-
// sync by the parity test in
|
|
99
|
-
// test/tools/directions-tool/directionsUrlParity.test.ts. Always forces
|
|
100
|
-
// geometries=geojson regardless of what the tool call itself requested.
|
|
101
|
-
// -------------------------------------------------------------------------
|
|
102
|
-
function formatIsoDateTimeClient(dateTime) {
|
|
103
|
-
var noTzWithSeconds = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}$/;
|
|
104
|
-
if (noTzWithSeconds.test(dateTime)) {
|
|
105
|
-
return dateTime.substring(0, dateTime.lastIndexOf(':'));
|
|
106
|
-
}
|
|
107
|
-
return dateTime;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
function encodeExcludeClient(value) {
|
|
111
|
-
return value
|
|
112
|
-
.replace(/,/g, '%2C')
|
|
113
|
-
.replace(/\\(/g, '%28')
|
|
114
|
-
.replace(/\\)/g, '%29')
|
|
115
|
-
.replace(/ /g, '%20');
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
function buildDirectionsApiUrl(params, publicToken, apiEndpoint) {
|
|
119
|
-
var coords = params.coordinates
|
|
120
|
-
.map(function(c) { return c.longitude + ',' + c.latitude; })
|
|
121
|
-
.join(';');
|
|
122
|
-
var encodedCoords = encodeURIComponent(coords);
|
|
123
|
-
var profile = params.routing_profile || 'mapbox/driving-traffic';
|
|
124
|
-
|
|
125
|
-
var qp = new URLSearchParams();
|
|
126
|
-
qp.append('access_token', publicToken);
|
|
127
|
-
qp.append('geometries', 'geojson');
|
|
128
|
-
qp.append('alternatives', params.alternatives ? 'true' : 'false');
|
|
129
|
-
qp.append(
|
|
130
|
-
'annotations',
|
|
131
|
-
profile === 'mapbox/driving-traffic'
|
|
132
|
-
? 'distance,congestion,speed'
|
|
133
|
-
: 'distance,speed'
|
|
134
|
-
);
|
|
135
|
-
qp.append('overview', 'full');
|
|
136
|
-
|
|
137
|
-
if (params.depart_at) {
|
|
138
|
-
qp.append('depart_at', formatIsoDateTimeClient(params.depart_at));
|
|
139
|
-
} else if (params.arrive_by) {
|
|
140
|
-
qp.append('arrive_by', formatIsoDateTimeClient(params.arrive_by));
|
|
141
|
-
}
|
|
142
|
-
if (params.max_height !== undefined && params.max_height !== null) {
|
|
143
|
-
qp.append('max_height', String(params.max_height));
|
|
144
|
-
}
|
|
145
|
-
if (params.max_width !== undefined && params.max_width !== null) {
|
|
146
|
-
qp.append('max_width', String(params.max_width));
|
|
147
|
-
}
|
|
148
|
-
if (params.max_weight !== undefined && params.max_weight !== null) {
|
|
149
|
-
qp.append('max_weight', String(params.max_weight));
|
|
150
|
-
}
|
|
151
|
-
qp.append('steps', 'true');
|
|
152
|
-
|
|
153
|
-
var queryString = qp.toString();
|
|
154
|
-
if (params.exclude) {
|
|
155
|
-
queryString += '&exclude=' + encodeExcludeClient(params.exclude);
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
return apiEndpoint + 'directions/v5/' + profile + '/' + encodedCoords + '?' + queryString;
|
|
159
|
-
}
|
|
160
|
-
// Exposed so the parity test (Node vm sandbox) can call this in isolation.
|
|
161
|
-
window.__buildDirectionsApiUrl = buildDirectionsApiUrl;
|
|
162
|
-
|
|
163
|
-
function fetchRouteFromDirectionsApi(params) {
|
|
164
|
-
if (!TOKEN || !params || !params.coordinates) return;
|
|
165
|
-
selfFetchStarted = true;
|
|
166
|
-
var url = buildDirectionsApiUrl(params, TOKEN, API_ENDPOINT);
|
|
167
|
-
fetch(url)
|
|
168
|
-
.then(function(res) {
|
|
169
|
-
if (!res.ok) {
|
|
170
|
-
return res
|
|
171
|
-
.json()
|
|
172
|
-
.catch(function() { return null; })
|
|
173
|
-
.then(function(body) {
|
|
174
|
-
var msg =
|
|
175
|
-
body && body.message
|
|
176
|
-
? body.message
|
|
177
|
-
: 'Directions API error (' + res.status + ')';
|
|
178
|
-
throw new Error(msg);
|
|
179
|
-
});
|
|
180
|
-
}
|
|
181
|
-
return res.json();
|
|
182
|
-
})
|
|
183
|
-
.then(function(data) {
|
|
184
|
-
if (routeRendered) return;
|
|
185
|
-
var route = data && data.routes && data.routes[0];
|
|
186
|
-
var picked = route ? pickRouteGeometry(route) : null;
|
|
187
|
-
if (picked) {
|
|
188
|
-
renderRoute(picked);
|
|
189
|
-
} else {
|
|
190
|
-
showError('Directions API returned no route.');
|
|
191
|
-
}
|
|
192
|
-
})
|
|
193
|
-
.catch(function(err) {
|
|
194
|
-
if (routeRendered) return;
|
|
195
|
-
showError(
|
|
196
|
-
'Could not fetch route: ' + (err && err.message ? err.message : err)
|
|
197
|
-
);
|
|
198
|
-
});
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
// -------------------------------------------------------------------------
|
|
202
|
-
// MCP App postMessage protocol (skipped silently in MCP-UI rawHtml mode)
|
|
203
|
-
// -------------------------------------------------------------------------
|
|
204
|
-
var messageId = 0;
|
|
205
|
-
var pendingRequests = new Map();
|
|
206
|
-
|
|
207
|
-
function sendRequest(method, params) {
|
|
208
|
-
var id = ++messageId;
|
|
209
|
-
try { window.parent.postMessage({ jsonrpc: '2.0', id: id, method: method, params: params || {} }, '*'); } catch (_) {}
|
|
210
|
-
return new Promise(function(resolve, reject) {
|
|
211
|
-
pendingRequests.set(id, { resolve: resolve, reject: reject });
|
|
212
|
-
});
|
|
213
|
-
}
|
|
214
|
-
function sendNotification(method, params) {
|
|
215
|
-
try { window.parent.postMessage({ jsonrpc: '2.0', method: method, params: params || {} }, '*'); } catch (_) {}
|
|
216
|
-
}
|
|
217
|
-
function requestSizeToFit() {
|
|
218
|
-
if (currentDisplayMode !== 'inline') return;
|
|
219
|
-
sendNotification('ui/notifications/size-changed', { height: 500 });
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
window.addEventListener('message', function(event) {
|
|
223
|
-
var message = event.data;
|
|
224
|
-
if (!message || typeof message !== 'object') return;
|
|
225
|
-
|
|
226
|
-
if (message.id !== undefined && pendingRequests.has(message.id)) {
|
|
227
|
-
var handlers = pendingRequests.get(message.id);
|
|
228
|
-
pendingRequests.delete(message.id);
|
|
229
|
-
if (message.error) handlers.reject(new Error(message.error.message));
|
|
230
|
-
else handlers.resolve(message.result);
|
|
231
|
-
return;
|
|
232
|
-
}
|
|
233
|
-
if (message.method === 'ui/notifications/tool-input' && message.params) {
|
|
234
|
-
fetchRouteFromDirectionsApi(message.params.arguments);
|
|
235
|
-
}
|
|
236
|
-
if (message.method === 'ui/notifications/tool-result' && message.params) {
|
|
237
|
-
handleToolResult(message.params);
|
|
238
|
-
}
|
|
239
|
-
if (message.method === 'ui/notifications/host-context-changed' && message.params) {
|
|
240
|
-
var ctx = message.params;
|
|
241
|
-
if (ctx.displayMode) {
|
|
242
|
-
currentDisplayMode = ctx.displayMode;
|
|
243
|
-
if (map) setTimeout(function() { map.resize(); }, 100);
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
});
|
|
247
|
-
|
|
248
|
-
sendRequest('ui/initialize', {
|
|
249
|
-
protocolVersion: '2026-01-26',
|
|
250
|
-
appCapabilities: {},
|
|
251
|
-
appInfo: { name: 'Directions Preview', version: '1.0.0' }
|
|
252
|
-
}).then(function() {
|
|
253
|
-
sendNotification('ui/notifications/initialized', {});
|
|
254
|
-
}, function() {
|
|
255
|
-
sendNotification('ui/notifications/initialized', {});
|
|
256
|
-
});
|
|
257
|
-
|
|
258
|
-
// -------------------------------------------------------------------------
|
|
259
|
-
// Map init
|
|
260
|
-
// -------------------------------------------------------------------------
|
|
261
|
-
function initMap() {
|
|
262
|
-
if (!TOKEN) {
|
|
263
|
-
loadingEl.style.display = 'none';
|
|
264
|
-
errorEl.textContent = 'No Mapbox public token available. Set MAPBOX_PUBLIC_TOKEN or grant tokens:read to the OAuth client.';
|
|
265
|
-
errorEl.style.display = 'block';
|
|
266
|
-
return;
|
|
267
|
-
}
|
|
268
|
-
if (typeof mapboxgl === 'undefined') {
|
|
269
|
-
loadingEl.style.display = 'none';
|
|
270
|
-
errorEl.textContent = 'Mapbox GL JS failed to load.';
|
|
271
|
-
errorEl.style.display = 'block';
|
|
272
|
-
return;
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
mapboxgl.accessToken = TOKEN;
|
|
276
|
-
map = new mapboxgl.Map({
|
|
277
|
-
container: 'map',
|
|
278
|
-
style: 'mapbox://styles/mapbox/streets-v12',
|
|
279
|
-
center: [0, 20],
|
|
280
|
-
zoom: 1.5
|
|
281
|
-
});
|
|
282
|
-
map.addControl(new mapboxgl.NavigationControl(), 'top-left');
|
|
283
|
-
map.on('load', function() {
|
|
284
|
-
mapLoaded = true;
|
|
285
|
-
if (pendingRoute) {
|
|
286
|
-
drawRoute(pendingRoute);
|
|
287
|
-
pendingRoute = null;
|
|
288
|
-
} else {
|
|
289
|
-
consumeInitialData();
|
|
290
|
-
}
|
|
291
|
-
});
|
|
292
|
-
map.on('error', function(e) {
|
|
293
|
-
console.error('Mapbox error:', e && e.error && e.error.message ? e.error.message : e);
|
|
294
|
-
});
|
|
295
|
-
}
|
|
296
|
-
initMap();
|
|
297
|
-
|
|
298
|
-
// -------------------------------------------------------------------------
|
|
299
|
-
// Initial data path (MCP-UI rawHtml): the tool call's input params were
|
|
300
|
-
// baked in server-side. Self-fetch the route from the Directions API
|
|
301
|
-
// rather than relying on baked-in geometry from the tool response.
|
|
302
|
-
// -------------------------------------------------------------------------
|
|
303
|
-
function consumeInitialData() {
|
|
304
|
-
var el = document.getElementById('initial-data');
|
|
305
|
-
if (!el || !el.textContent) return;
|
|
306
|
-
try {
|
|
307
|
-
var data = JSON.parse(el.textContent);
|
|
308
|
-
if (!data || !data.params) return;
|
|
309
|
-
fetchRouteFromDirectionsApi(data.params);
|
|
310
|
-
} catch (_) { /* ignore */ }
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
function handleToolResult(result) {
|
|
314
|
-
if (routeRendered) return;
|
|
315
|
-
var route = extractRoute(result);
|
|
316
|
-
if (route) {
|
|
317
|
-
renderRoute(route);
|
|
318
|
-
return;
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
// Fallback: large directions responses are stored as a temporary resource
|
|
322
|
-
// (mapbox://temp/directions-id) and the structuredContent is stripped of
|
|
323
|
-
// geometry to keep the agent context light. Read it back via the
|
|
324
|
-
// MCP Apps host resources/read bridge.
|
|
325
|
-
var tempUri = findTempResourceUri(result);
|
|
326
|
-
if (tempUri) {
|
|
327
|
-
loadingEl.textContent = 'Fetching full route…';
|
|
328
|
-
sendRequest('resources/read', { uri: tempUri }).then(
|
|
329
|
-
function(rr) {
|
|
330
|
-
if (routeRendered) return;
|
|
331
|
-
var fetched = readResourceJson(rr);
|
|
332
|
-
var fetchedRoute = fetched ? extractRoute({ structuredContent: fetched }) : null;
|
|
333
|
-
if (fetchedRoute) {
|
|
334
|
-
renderRoute(fetchedRoute);
|
|
335
|
-
} else {
|
|
336
|
-
showError('Could not parse route from the temporary resource.');
|
|
337
|
-
}
|
|
338
|
-
},
|
|
339
|
-
function(err) {
|
|
340
|
-
if (routeRendered) return;
|
|
341
|
-
showError('Could not read temporary resource: ' + (err && err.message ? err.message : err));
|
|
342
|
-
}
|
|
343
|
-
);
|
|
344
|
-
return;
|
|
345
|
-
}
|
|
346
|
-
|
|
347
|
-
// Self-fetch (kicked off by the earlier tool-input notification) is
|
|
348
|
-
// either still in flight or already reported its own error via its
|
|
349
|
-
// .catch() handler — either way, this isn't the right error to show.
|
|
350
|
-
if (selfFetchStarted) return;
|
|
351
|
-
|
|
352
|
-
showError('Could not find route data in tool result.');
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
function renderRoute(route) {
|
|
356
|
-
routeRendered = true;
|
|
357
|
-
if (route.summary) {
|
|
358
|
-
summaryEl.textContent = route.summary;
|
|
359
|
-
summaryEl.style.display = 'block';
|
|
360
|
-
}
|
|
361
|
-
if (!map) { loadingEl.style.display = 'none'; return; }
|
|
362
|
-
if (mapLoaded) drawRoute(route);
|
|
363
|
-
else pendingRoute = route;
|
|
364
|
-
}
|
|
365
|
-
|
|
366
|
-
function showError(message) {
|
|
367
|
-
loadingEl.style.display = 'none';
|
|
368
|
-
errorEl.textContent = message;
|
|
369
|
-
errorEl.style.display = 'block';
|
|
370
|
-
}
|
|
371
|
-
|
|
372
|
-
// Mapbox MCP server emits the URI in the summary text content of large
|
|
373
|
-
// responses: "Resource URI: mapbox://temp/directions-<hex>".
|
|
374
|
-
function findTempResourceUri(result) {
|
|
375
|
-
if (!result || !Array.isArray(result.content)) return null;
|
|
376
|
-
for (var i = 0; i < result.content.length; i++) {
|
|
377
|
-
var c = result.content[i];
|
|
378
|
-
if (c && c.type === 'text' && typeof c.text === 'string') {
|
|
379
|
-
var m = c.text.match(/mapbox:\\/\\/temp\\/directions-[0-9a-fA-F]+/);
|
|
380
|
-
if (m) return m[0];
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
return null;
|
|
384
|
-
}
|
|
385
|
-
|
|
386
|
-
// resources/read responses have shape: { contents: [{ text: "<json>", ... }] }
|
|
387
|
-
function readResourceJson(rr) {
|
|
388
|
-
if (!rr || !Array.isArray(rr.contents) || rr.contents.length === 0) return null;
|
|
389
|
-
var first = rr.contents[0];
|
|
390
|
-
if (!first || typeof first.text !== 'string') return null;
|
|
391
|
-
try { return JSON.parse(first.text); } catch (_) { return null; }
|
|
392
|
-
}
|
|
393
|
-
|
|
394
|
-
function extractRoute(result) {
|
|
395
|
-
var sc = result && result.structuredContent;
|
|
396
|
-
if (sc && Array.isArray(sc.routes) && sc.routes.length > 0) {
|
|
397
|
-
var picked = pickRouteGeometry(sc.routes[0]);
|
|
398
|
-
if (picked) return picked;
|
|
399
|
-
}
|
|
400
|
-
if (result && Array.isArray(result.content)) {
|
|
401
|
-
for (var i = 0; i < result.content.length; i++) {
|
|
402
|
-
var c = result.content[i];
|
|
403
|
-
if (c && c.type === 'text' && typeof c.text === 'string') {
|
|
404
|
-
try {
|
|
405
|
-
var parsed = JSON.parse(c.text);
|
|
406
|
-
if (parsed && Array.isArray(parsed.routes) && parsed.routes[0]) {
|
|
407
|
-
var picked2 = pickRouteGeometry(parsed.routes[0]);
|
|
408
|
-
if (picked2) return picked2;
|
|
409
|
-
}
|
|
410
|
-
if (parsed && parsed.geometry && parsed.geometry.coordinates) {
|
|
411
|
-
return parsed;
|
|
412
|
-
}
|
|
413
|
-
} catch (_) { /* not JSON */ }
|
|
414
|
-
}
|
|
415
|
-
}
|
|
416
|
-
}
|
|
417
|
-
return null;
|
|
418
|
-
}
|
|
419
|
-
|
|
420
|
-
// Mapbox Directions can return geometry in 3 shapes:
|
|
421
|
-
// - GeoJSON : { type: 'LineString', coordinates: [[lng,lat], ...] }
|
|
422
|
-
// - polyline : "encoded_string" (precision 5, default)
|
|
423
|
-
// - polyline6: "encoded_string" (precision 6)
|
|
424
|
-
// We accept all three and normalize to GeoJSON for rendering.
|
|
425
|
-
function pickRouteGeometry(route) {
|
|
426
|
-
if (!route || !route.geometry) return null;
|
|
427
|
-
var g = route.geometry;
|
|
428
|
-
if (typeof g === 'object' && Array.isArray(g.coordinates) && g.coordinates.length) {
|
|
429
|
-
return { geometry: g, summary: buildSummary(route) };
|
|
430
|
-
}
|
|
431
|
-
if (typeof g === 'string' && g.length > 0) {
|
|
432
|
-
// Pick precision: polyline6 strings often contain '_' / '@'-like density
|
|
433
|
-
// but the response usually carries a hint at top level. Try 6 first if
|
|
434
|
-
// the response object says so, else 5.
|
|
435
|
-
var coords = decodePolyline(g, 5);
|
|
436
|
-
if (coords.length > 0 && coordsLookSane(coords)) {
|
|
437
|
-
return {
|
|
438
|
-
geometry: { type: 'LineString', coordinates: coords },
|
|
439
|
-
summary: buildSummary(route)
|
|
440
|
-
};
|
|
441
|
-
}
|
|
442
|
-
coords = decodePolyline(g, 6);
|
|
443
|
-
if (coords.length > 0 && coordsLookSane(coords)) {
|
|
444
|
-
return {
|
|
445
|
-
geometry: { type: 'LineString', coordinates: coords },
|
|
446
|
-
summary: buildSummary(route)
|
|
447
|
-
};
|
|
448
|
-
}
|
|
449
|
-
}
|
|
450
|
-
return null;
|
|
451
|
-
}
|
|
452
|
-
|
|
453
|
-
function coordsLookSane(coords) {
|
|
454
|
-
for (var i = 0; i < coords.length; i++) {
|
|
455
|
-
var c = coords[i];
|
|
456
|
-
if (!Array.isArray(c) || c.length !== 2) return false;
|
|
457
|
-
if (c[0] < -180 || c[0] > 180 || c[1] < -90 || c[1] > 90) return false;
|
|
458
|
-
}
|
|
459
|
-
return true;
|
|
460
|
-
}
|
|
461
|
-
|
|
462
|
-
// Standard Google/Mapbox polyline decoder. Precision = 5 (default) or 6.
|
|
463
|
-
function decodePolyline(str, precision) {
|
|
464
|
-
precision = precision || 5;
|
|
465
|
-
var factor = Math.pow(10, precision);
|
|
466
|
-
var coords = [];
|
|
467
|
-
var lat = 0;
|
|
468
|
-
var lng = 0;
|
|
469
|
-
var i = 0;
|
|
470
|
-
while (i < str.length) {
|
|
471
|
-
var shift = 0;
|
|
472
|
-
var result = 0;
|
|
473
|
-
var b;
|
|
474
|
-
do {
|
|
475
|
-
b = str.charCodeAt(i++) - 63;
|
|
476
|
-
result |= (b & 0x1f) << shift;
|
|
477
|
-
shift += 5;
|
|
478
|
-
} while (b >= 0x20 && i < str.length);
|
|
479
|
-
lat += (result & 1) ? ~(result >> 1) : (result >> 1);
|
|
480
|
-
shift = 0;
|
|
481
|
-
result = 0;
|
|
482
|
-
do {
|
|
483
|
-
b = str.charCodeAt(i++) - 63;
|
|
484
|
-
result |= (b & 0x1f) << shift;
|
|
485
|
-
shift += 5;
|
|
486
|
-
} while (b >= 0x20 && i < str.length);
|
|
487
|
-
lng += (result & 1) ? ~(result >> 1) : (result >> 1);
|
|
488
|
-
coords.push([lng / factor, lat / factor]);
|
|
489
|
-
}
|
|
490
|
-
return coords;
|
|
491
|
-
}
|
|
492
|
-
|
|
493
|
-
function buildSummary(route) {
|
|
494
|
-
var parts = [];
|
|
495
|
-
if (typeof route.distance === 'number') {
|
|
496
|
-
parts.push((route.distance / 1609.34).toFixed(1) + ' mi');
|
|
497
|
-
}
|
|
498
|
-
if (typeof route.duration === 'number') {
|
|
499
|
-
parts.push(Math.round(route.duration / 60) + ' min');
|
|
500
|
-
}
|
|
501
|
-
return parts.length ? 'Route: ' + parts.join(', ') : 'Route';
|
|
502
|
-
}
|
|
503
|
-
|
|
504
|
-
function drawRoute(route) {
|
|
505
|
-
if (!route.geometry || !route.geometry.coordinates || !route.geometry.coordinates.length) {
|
|
506
|
-
loadingEl.style.display = 'none';
|
|
507
|
-
errorEl.textContent = 'Route geometry is empty.';
|
|
508
|
-
errorEl.style.display = 'block';
|
|
509
|
-
return;
|
|
510
|
-
}
|
|
511
|
-
|
|
512
|
-
errorEl.style.display = 'none';
|
|
513
|
-
|
|
514
|
-
if (route.summary && summaryEl.style.display === 'none') {
|
|
515
|
-
summaryEl.textContent = route.summary;
|
|
516
|
-
summaryEl.style.display = 'block';
|
|
517
|
-
}
|
|
518
|
-
|
|
519
|
-
if (map.getLayer('route-line')) map.removeLayer('route-line');
|
|
520
|
-
if (map.getSource('route')) map.removeSource('route');
|
|
521
|
-
// Remove any markers from a prior render so we don't stack pins.
|
|
522
|
-
for (var mi = 0; mi < routeMarkers.length; mi++) {
|
|
523
|
-
routeMarkers[mi].remove();
|
|
524
|
-
}
|
|
525
|
-
routeMarkers = [];
|
|
526
|
-
|
|
527
|
-
map.addSource('route', {
|
|
528
|
-
type: 'geojson',
|
|
529
|
-
data: { type: 'Feature', geometry: route.geometry, properties: {} }
|
|
530
|
-
});
|
|
531
|
-
map.addLayer({
|
|
532
|
-
id: 'route-line',
|
|
533
|
-
type: 'line',
|
|
534
|
-
source: 'route',
|
|
535
|
-
layout: { 'line-join': 'round', 'line-cap': 'round' },
|
|
536
|
-
paint: { 'line-color': '#3b82f6', 'line-width': 5, 'line-opacity': 0.85 }
|
|
537
|
-
});
|
|
538
|
-
|
|
539
|
-
var coords = route.geometry.coordinates;
|
|
540
|
-
routeMarkers.push(
|
|
541
|
-
new mapboxgl.Marker({ color: '#22c55e' })
|
|
542
|
-
.setLngLat(coords[0])
|
|
543
|
-
.setPopup(new mapboxgl.Popup().setText('Start'))
|
|
544
|
-
.addTo(map)
|
|
545
|
-
);
|
|
546
|
-
routeMarkers.push(
|
|
547
|
-
new mapboxgl.Marker({ color: '#ef4444' })
|
|
548
|
-
.setLngLat(coords[coords.length - 1])
|
|
549
|
-
.setPopup(new mapboxgl.Popup().setText('End'))
|
|
550
|
-
.addTo(map)
|
|
551
|
-
);
|
|
552
|
-
|
|
553
|
-
var lngs = coords.map(function(c) { return c[0]; });
|
|
554
|
-
var lats = coords.map(function(c) { return c[1]; });
|
|
555
|
-
var bounds = [
|
|
556
|
-
[Math.min.apply(null, lngs), Math.min.apply(null, lats)],
|
|
557
|
-
[Math.max.apply(null, lngs), Math.max.apply(null, lats)]
|
|
558
|
-
];
|
|
559
|
-
|
|
560
|
-
loadingEl.style.display = 'none';
|
|
561
|
-
requestSizeToFit();
|
|
562
|
-
setTimeout(function() {
|
|
563
|
-
map.resize();
|
|
564
|
-
map.fitBounds(bounds, {
|
|
565
|
-
padding: { top: 70, bottom: 30, left: 30, right: 30 },
|
|
566
|
-
duration: 600
|
|
567
|
-
});
|
|
568
|
-
}, 60);
|
|
569
|
-
}
|
|
570
|
-
})();
|
|
571
|
-
</script>
|
|
572
|
-
</body>
|
|
573
|
-
</html>`;
|
|
574
|
-
}
|
|
575
|
-
function escapeForScript(s) {
|
|
576
|
-
// Prevent </script> inside JSON from breaking out of the script tag.
|
|
577
|
-
return s.replace(/<\/script>/gi, '<\\/script>');
|
|
578
|
-
}
|
|
579
|
-
//# sourceMappingURL=directionsAppHtml.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"directionsAppHtml.js","sourceRoot":"","sources":["../../../../src/resources/ui-apps/directionsAppHtml.ts"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,kCAAkC;;;AAyClC,0DA2iBC;AAllBD;;;;;;;;;;;;;;;;;;;GAmBG;AAEU,QAAA,iBAAiB,GAAG,QAAQ,CAAC;AAkB1C,SAAgB,uBAAuB,CAAC,MAKvC;IACC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IACzD,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,yBAAiB,CAAC;IAExD,MAAM,iBAAiB,GAAG,WAAW;QACnC,CAAC,CAAC,qDAAqD,eAAe,CAClE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAC5B,WAAW;QACd,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;;;;;;mDAM0C,SAAS;oDACR,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8B3D,iBAAiB;;;;gBAIH,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;uBACpB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAif1C,CAAC;AACT,CAAC;AAED,SAAS,eAAe,CAAC,CAAS;IAChC,qEAAqE;IACrE,OAAO,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import type { RequestHandlerExtra } from '@modelcontextprotocol/sdk/shared/protocol.js';
|
|
2
|
-
import type { ReadResourceResult, ServerNotification, ServerRequest } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
-
import { BaseResource } from '../BaseResource.js';
|
|
4
|
-
import type { HttpRequest } from '../../utils/types.js';
|
|
5
|
-
/**
|
|
6
|
-
* MCP Apps resource for `directions_tool` — serves the HTML at
|
|
7
|
-
* `ui://mapbox/directions-app/index.html`. The iframe waits for the host to
|
|
8
|
-
* deliver the tool result via the `ui/notifications/tool-result` postMessage
|
|
9
|
-
* event and renders the route from `structuredContent.routes[0]`.
|
|
10
|
-
*
|
|
11
|
-
* The legacy MCP-UI pathway (inline `rawHtml` on the tool result) uses the
|
|
12
|
-
* same HTML template via `renderDirectionsAppHtml` with the call's input
|
|
13
|
-
* params baked in at tool-execute time; the iframe self-fetches the route
|
|
14
|
-
* from the Directions API using those params.
|
|
15
|
-
*/
|
|
16
|
-
export declare class DirectionsAppUIResource extends BaseResource {
|
|
17
|
-
readonly name = "Directions App UI";
|
|
18
|
-
readonly uri = "ui://mapbox/directions-app/index.html";
|
|
19
|
-
readonly description = "Interactive UI for visualizing a Mapbox directions route with Mapbox GL JS (MCP Apps)";
|
|
20
|
-
readonly mimeType = "text/html;profile=mcp-app";
|
|
21
|
-
private readonly httpRequest;
|
|
22
|
-
private readonly apiEndpoint;
|
|
23
|
-
constructor(params: {
|
|
24
|
-
httpRequest: HttpRequest;
|
|
25
|
-
apiEndpoint?: () => string;
|
|
26
|
-
});
|
|
27
|
-
read(_uri: string, extra?: RequestHandlerExtra<ServerRequest, ServerNotification>): Promise<ReadResourceResult>;
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=DirectionsAppUIResource.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DirectionsAppUIResource.d.ts","sourceRoot":"","sources":["../../../../src/resources/ui-apps/DirectionsAppUIResource.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACxF,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACd,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIxD;;;;;;;;;;GAUG;AACH,qBAAa,uBAAwB,SAAQ,YAAY;IACvD,QAAQ,CAAC,IAAI,uBAAuB;IACpC,QAAQ,CAAC,GAAG,2CAA2C;IACvD,QAAQ,CAAC,WAAW,2FACsE;IAC1F,QAAQ,CAAC,QAAQ,+BAAsB;IAEvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAe;gBAE/B,MAAM,EAAE;QAClB,WAAW,EAAE,WAAW,CAAC;QACzB,WAAW,CAAC,EAAE,MAAM,MAAM,CAAC;KAC5B;IAQK,IAAI,CACR,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,mBAAmB,CAAC,aAAa,EAAE,kBAAkB,CAAC,GAC7D,OAAO,CAAC,kBAAkB,CAAC;CAwC/B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DirectionsAppUIResource.js","sourceRoot":"","sources":["../../../../src/resources/ui-apps/DirectionsAppUIResource.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAQlC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE;;;;;;;;;;GAUG;AACH,MAAM,OAAO,uBAAwB,SAAQ,YAAY;IAC9C,IAAI,GAAG,mBAAmB,CAAC;IAC3B,GAAG,GAAG,uCAAuC,CAAC;IAC9C,WAAW,GAClB,uFAAuF,CAAC;IACjF,QAAQ,GAAG,kBAAkB,CAAC;IAEtB,WAAW,CAAc;IACzB,WAAW,CAAe;IAE3C,YAAY,MAGX;QACC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,WAAW;YACd,MAAM,CAAC,WAAW;gBAClB,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,yBAAyB,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,IAAI,CACR,IAAY,EACZ,KAA8D;QAE9D,MAAM,WAAW,GACd,KAAK,EAAE,QAAQ,EAAE,KAA4B;YAC9C,OAAO,CAAC,GAAG,CAAC,mBAAmB;YAC/B,EAAE,CAAC;QAEL,MAAM,WAAW,GAAG,MAAM,wBAAwB,CAAC;YACjD,WAAW;YACX,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;YAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,uBAAuB,CAAC;YACnC,WAAW,EAAE,WAAW,IAAI,EAAE;YAC9B,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;SAChC,CAAC,CAAC;QAEH,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,QAAQ,EAAE,kBAAkB;oBAC5B,IAAI,EAAE,IAAI;oBACV,KAAK,EAAE;wBACL,EAAE,EAAE;4BACF,GAAG,EAAE;gCACH,cAAc,EAAE;oCACd,sBAAsB;oCACtB,2BAA2B;iCAC5B;gCACD,eAAe,EAAE,CAAC,wBAAwB,CAAC;gCAC3C,aAAa,EAAE,CAAC,OAAO,CAAC;6BACzB;4BACD,aAAa,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;yBAC5C;qBACF;iBACF;aACF;SACF,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Render the directions MCP App HTML.
|
|
3
|
-
*
|
|
4
|
-
* The same template is consumed by two ingress paths:
|
|
5
|
-
*
|
|
6
|
-
* 1. **MCP Apps spec** — `DirectionsAppUIResource` reads this resource at
|
|
7
|
-
* `ui://mapbox/directions-app/index.html`. The iframe loads, the agent's
|
|
8
|
-
* tool result is delivered via the `ui/notifications/tool-result`
|
|
9
|
-
* postMessage event, and `extractRoute()` pulls the route out of
|
|
10
|
-
* `structuredContent.routes[0]`.
|
|
11
|
-
*
|
|
12
|
-
* 2. **Legacy MCP-UI spec** — `directions_tool` inlines a `rawHtml`
|
|
13
|
-
* UIResource into its content array (gated by `isMcpUiEnabled()`). The
|
|
14
|
-
* HTML is generated at tool-execute time with the call's input params
|
|
15
|
-
* baked in as an `initialData` script block; the iframe uses those params
|
|
16
|
-
* to self-fetch the route from the Directions API, so it never depends on
|
|
17
|
-
* the host delivering the tool result.
|
|
18
|
-
*
|
|
19
|
-
* One source of truth for the rendering logic; two slim entry conditions.
|
|
20
|
-
*/
|
|
21
|
-
export declare const MAPBOX_GL_VERSION = "3.12.0";
|
|
22
|
-
export interface DirectionsAppInitialParams {
|
|
23
|
-
coordinates: {
|
|
24
|
-
longitude: number;
|
|
25
|
-
latitude: number;
|
|
26
|
-
}[];
|
|
27
|
-
routing_profile?: string;
|
|
28
|
-
alternatives?: boolean;
|
|
29
|
-
exclude?: string;
|
|
30
|
-
depart_at?: string;
|
|
31
|
-
arrive_by?: string;
|
|
32
|
-
max_height?: number;
|
|
33
|
-
max_width?: number;
|
|
34
|
-
max_weight?: number;
|
|
35
|
-
}
|
|
36
|
-
export interface DirectionsAppInitialData {
|
|
37
|
-
params: DirectionsAppInitialParams;
|
|
38
|
-
}
|
|
39
|
-
export declare function renderDirectionsAppHtml(params: {
|
|
40
|
-
publicToken: string;
|
|
41
|
-
apiEndpoint: string;
|
|
42
|
-
glVersion?: string;
|
|
43
|
-
initialData?: DirectionsAppInitialData;
|
|
44
|
-
}): string;
|
|
45
|
-
//# sourceMappingURL=directionsAppHtml.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"directionsAppHtml.d.ts","sourceRoot":"","sources":["../../../../src/resources/ui-apps/directionsAppHtml.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAE1C,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACvD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,0BAA0B,CAAC;CACpC;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,wBAAwB,CAAC;CACxC,GAAG,MAAM,CAsiBT"}
|