@mapbox/mcp-server 0.12.7 → 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 -640
- 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 -636
- package/dist/esm/resources/ui-apps/directionsAppHtml.js.map +0 -1
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
// Copyright (c) Mapbox, Inc.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
// Zod mirror of MapAppPayload, kept loose on paint/layout/geometry internals
|
|
5
|
+
// (those are already validated by construction in the payload builders) -
|
|
6
|
+
// this exists so `render_map_tool` can declare the inline payload shape on
|
|
7
|
+
// its output schema without a strict validator stripping it. See
|
|
8
|
+
// RenderMapTool.output.schema.ts for why the inline copy matters.
|
|
9
|
+
const GeometrySchema = z.object({
|
|
10
|
+
type: z.enum(['Point', 'LineString', 'Polygon', 'MultiPolygon']),
|
|
11
|
+
coordinates: z.unknown()
|
|
12
|
+
});
|
|
13
|
+
const FeatureSchema = z.object({
|
|
14
|
+
type: z.literal('Feature'),
|
|
15
|
+
geometry: GeometrySchema,
|
|
16
|
+
properties: z.record(z.string(), z.unknown()).optional()
|
|
17
|
+
});
|
|
18
|
+
const FeatureCollectionSchema = z.object({
|
|
19
|
+
type: z.literal('FeatureCollection'),
|
|
20
|
+
features: z.array(FeatureSchema)
|
|
21
|
+
});
|
|
22
|
+
const MapAppLayerSchema = z.object({
|
|
23
|
+
id: z.string(),
|
|
24
|
+
type: z.enum(['fill', 'line', 'circle', 'symbol']),
|
|
25
|
+
data: z.union([FeatureSchema, FeatureCollectionSchema]),
|
|
26
|
+
paint: z.record(z.string(), z.unknown()).optional(),
|
|
27
|
+
layout: z.record(z.string(), z.unknown()).optional()
|
|
28
|
+
});
|
|
29
|
+
const MapAppMarkerSchema = z.object({
|
|
30
|
+
coordinates: z.tuple([z.number(), z.number()]),
|
|
31
|
+
style: z.enum(['pin', 'numbered', 'start', 'end']).optional(),
|
|
32
|
+
label: z.string().optional(),
|
|
33
|
+
color: z.string().optional(),
|
|
34
|
+
popup: z.string().optional()
|
|
35
|
+
});
|
|
36
|
+
const MapAppLegendEntrySchema = z.object({
|
|
37
|
+
label: z.string(),
|
|
38
|
+
color: z.string(),
|
|
39
|
+
opacity: z.number().optional()
|
|
40
|
+
});
|
|
41
|
+
const MapAppCameraSchema = z.object({
|
|
42
|
+
center: z.tuple([z.number(), z.number()]).optional(),
|
|
43
|
+
zoom: z.number().optional(),
|
|
44
|
+
bounds: z
|
|
45
|
+
.tuple([
|
|
46
|
+
z.tuple([z.number(), z.number()]),
|
|
47
|
+
z.tuple([z.number(), z.number()])
|
|
48
|
+
])
|
|
49
|
+
.optional()
|
|
50
|
+
});
|
|
51
|
+
const MapAppSelfFetchSchema = z.object({
|
|
52
|
+
tool: z.enum([
|
|
53
|
+
'directions',
|
|
54
|
+
'isochrone',
|
|
55
|
+
'map_matching',
|
|
56
|
+
'search',
|
|
57
|
+
'category_search',
|
|
58
|
+
'optimization',
|
|
59
|
+
'ground_location'
|
|
60
|
+
]),
|
|
61
|
+
params: z.record(z.string(), z.unknown())
|
|
62
|
+
});
|
|
63
|
+
export const MapAppPayloadSchema = z.object({
|
|
64
|
+
summary: z.string().optional(),
|
|
65
|
+
layers: z.array(MapAppLayerSchema),
|
|
66
|
+
markers: z.array(MapAppMarkerSchema).optional(),
|
|
67
|
+
legend: z.array(MapAppLegendEntrySchema).optional(),
|
|
68
|
+
camera: MapAppCameraSchema.optional(),
|
|
69
|
+
selfFetch: z.array(MapAppSelfFetchSchema).optional()
|
|
70
|
+
});
|
|
71
|
+
/**
|
|
72
|
+
* Decode a Mapbox polyline string (precision 5 by default) to a GeoJSON
|
|
73
|
+
* LineString. Used tool-side so the iframe never has to do this — the
|
|
74
|
+
* generic renderer only ever sees GeoJSON.
|
|
75
|
+
*
|
|
76
|
+
* Returns null if the decoded coordinates fall outside lng/lat bounds,
|
|
77
|
+
* which can happen if the precision is wrong (the Directions API can emit
|
|
78
|
+
* polyline6 when `geometries=polyline6`). Callers should try precision 6
|
|
79
|
+
* as a fallback.
|
|
80
|
+
*/
|
|
81
|
+
export function decodePolyline(str, precision = 5) {
|
|
82
|
+
if (!str || typeof str !== 'string')
|
|
83
|
+
return null;
|
|
84
|
+
const factor = Math.pow(10, precision);
|
|
85
|
+
const coords = [];
|
|
86
|
+
let lat = 0;
|
|
87
|
+
let lng = 0;
|
|
88
|
+
let i = 0;
|
|
89
|
+
while (i < str.length) {
|
|
90
|
+
let shift = 0;
|
|
91
|
+
let result = 0;
|
|
92
|
+
let b;
|
|
93
|
+
do {
|
|
94
|
+
b = str.charCodeAt(i++) - 63;
|
|
95
|
+
result |= (b & 0x1f) << shift;
|
|
96
|
+
shift += 5;
|
|
97
|
+
} while (b >= 0x20 && i < str.length);
|
|
98
|
+
lat += result & 1 ? ~(result >> 1) : result >> 1;
|
|
99
|
+
shift = 0;
|
|
100
|
+
result = 0;
|
|
101
|
+
do {
|
|
102
|
+
b = str.charCodeAt(i++) - 63;
|
|
103
|
+
result |= (b & 0x1f) << shift;
|
|
104
|
+
shift += 5;
|
|
105
|
+
} while (b >= 0x20 && i < str.length);
|
|
106
|
+
lng += result & 1 ? ~(result >> 1) : result >> 1;
|
|
107
|
+
const lngOut = lng / factor;
|
|
108
|
+
const latOut = lat / factor;
|
|
109
|
+
if (lngOut < -180 || lngOut > 180 || latOut < -90 || latOut > 90) {
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
coords.push([lngOut, latOut]);
|
|
113
|
+
}
|
|
114
|
+
return coords;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Convenience: decode polyline with precision-5 then precision-6 fallback.
|
|
118
|
+
* If both produce out-of-range coordinates, returns null and the caller
|
|
119
|
+
* should skip emitting a map-app payload (the geometry can't be drawn).
|
|
120
|
+
*/
|
|
121
|
+
export function decodePolylineWithFallback(str) {
|
|
122
|
+
return decodePolyline(str, 5) ?? decodePolyline(str, 6);
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=mapAppPayload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapAppPayload.js","sourceRoot":"","sources":["../../../src/utils/mapAppPayload.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { MapAppPayload, MapAppSelfFetch } from './mapAppPayload.js';
|
|
2
|
+
export type SelfFetchTool = MapAppSelfFetch['tool'];
|
|
3
|
+
/**
|
|
4
|
+
* Build a ref for a tool whose map preview is fetched by the iframe itself,
|
|
5
|
+
* directly from the Mapbox API using its own public token — rather than
|
|
6
|
+
* server-computed geometry stashed behind an opaque UUID.
|
|
7
|
+
*
|
|
8
|
+
* `params` is the tool's own call arguments (already visible to the LLM —
|
|
9
|
+
* nothing new is exposed), base64'd into the URI. Unlike `mapbox://temp/`
|
|
10
|
+
* refs, there is nothing server-side to lose on a restart: resolving this
|
|
11
|
+
* ref just unwraps the params back into a `MapAppPayload.selfFetch` entry
|
|
12
|
+
* for the iframe to act on, with no I/O and no store involved.
|
|
13
|
+
*/
|
|
14
|
+
export declare function buildSelfFetchRef(tool: SelfFetchTool, params: Record<string, unknown>): string;
|
|
15
|
+
export declare function isSelfFetchRef(uri: string): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Unwrap a `mapbox://selffetch/...` ref back into a minimal `MapAppPayload`
|
|
18
|
+
* carrying only a `selfFetch` entry — no layers/markers of its own. The
|
|
19
|
+
* iframe resolves the actual geometry client-side after the initial render
|
|
20
|
+
* (see the `selffetch` handling in `mapAppHtml.ts`). Returns null if the ref
|
|
21
|
+
* isn't a self-fetch ref, names an unrecognized tool, or its data doesn't
|
|
22
|
+
* decode.
|
|
23
|
+
*/
|
|
24
|
+
export declare function resolveSelfFetchRef(uri: string): MapAppPayload | null;
|
|
25
|
+
//# sourceMappingURL=selfFetchRef.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selfFetchRef.d.ts","sourceRoot":"","sources":["../../../src/utils/selfFetchRef.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAIzE,MAAM,MAAM,aAAa,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;AAYpD;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,MAAM,CAKR;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CA2BrE"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
// Copyright (c) Mapbox, Inc.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
const SELF_FETCH_URI_PREFIX = 'mapbox://selffetch/';
|
|
4
|
+
const SELF_FETCH_TOOLS = [
|
|
5
|
+
'directions',
|
|
6
|
+
'isochrone',
|
|
7
|
+
'map_matching',
|
|
8
|
+
'search',
|
|
9
|
+
'category_search',
|
|
10
|
+
'optimization',
|
|
11
|
+
'ground_location'
|
|
12
|
+
];
|
|
13
|
+
/**
|
|
14
|
+
* Build a ref for a tool whose map preview is fetched by the iframe itself,
|
|
15
|
+
* directly from the Mapbox API using its own public token — rather than
|
|
16
|
+
* server-computed geometry stashed behind an opaque UUID.
|
|
17
|
+
*
|
|
18
|
+
* `params` is the tool's own call arguments (already visible to the LLM —
|
|
19
|
+
* nothing new is exposed), base64'd into the URI. Unlike `mapbox://temp/`
|
|
20
|
+
* refs, there is nothing server-side to lose on a restart: resolving this
|
|
21
|
+
* ref just unwraps the params back into a `MapAppPayload.selfFetch` entry
|
|
22
|
+
* for the iframe to act on, with no I/O and no store involved.
|
|
23
|
+
*/
|
|
24
|
+
export function buildSelfFetchRef(tool, params) {
|
|
25
|
+
const data = Buffer.from(JSON.stringify(params), 'utf8').toString('base64url');
|
|
26
|
+
return `${SELF_FETCH_URI_PREFIX}${tool}?data=${data}`;
|
|
27
|
+
}
|
|
28
|
+
export function isSelfFetchRef(uri) {
|
|
29
|
+
return uri.startsWith(SELF_FETCH_URI_PREFIX);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Unwrap a `mapbox://selffetch/...` ref back into a minimal `MapAppPayload`
|
|
33
|
+
* carrying only a `selfFetch` entry — no layers/markers of its own. The
|
|
34
|
+
* iframe resolves the actual geometry client-side after the initial render
|
|
35
|
+
* (see the `selffetch` handling in `mapAppHtml.ts`). Returns null if the ref
|
|
36
|
+
* isn't a self-fetch ref, names an unrecognized tool, or its data doesn't
|
|
37
|
+
* decode.
|
|
38
|
+
*/
|
|
39
|
+
export function resolveSelfFetchRef(uri) {
|
|
40
|
+
if (!isSelfFetchRef(uri))
|
|
41
|
+
return null;
|
|
42
|
+
let tool;
|
|
43
|
+
let encoded;
|
|
44
|
+
try {
|
|
45
|
+
const parsed = new URL(uri);
|
|
46
|
+
tool = parsed.pathname.replace(/^\//, '');
|
|
47
|
+
encoded = parsed.searchParams.get('data');
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
if (!encoded)
|
|
53
|
+
return null;
|
|
54
|
+
if (!SELF_FETCH_TOOLS.includes(tool))
|
|
55
|
+
return null;
|
|
56
|
+
let params;
|
|
57
|
+
try {
|
|
58
|
+
params = JSON.parse(Buffer.from(encoded, 'base64url').toString('utf8'));
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
if (!params || typeof params !== 'object')
|
|
64
|
+
return null;
|
|
65
|
+
return {
|
|
66
|
+
layers: [],
|
|
67
|
+
selfFetch: [{ tool: tool, params }]
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=selfFetchRef.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selfFetchRef.js","sourceRoot":"","sources":["../../../src/utils/selfFetchRef.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAIlC,MAAM,qBAAqB,GAAG,qBAAqB,CAAC;AAIpD,MAAM,gBAAgB,GAA6B;IACjD,YAAY;IACZ,WAAW;IACX,cAAc;IACd,QAAQ;IACR,iBAAiB;IACjB,cAAc;IACd,iBAAiB;CAClB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAmB,EACnB,MAA+B;IAE/B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,QAAQ,CAC/D,WAAW,CACZ,CAAC;IACF,OAAO,GAAG,qBAAqB,GAAG,IAAI,SAAS,IAAI,EAAE,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,OAAO,GAAG,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,IAAI,IAAY,CAAC;IACjB,IAAI,OAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC1C,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAqB,CAAC;QAAE,OAAO,IAAI,CAAC;IAEnE,IAAI,MAA+B,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAEvD,OAAO;QACL,MAAM,EAAE,EAAE;QACV,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAqB,EAAE,MAAM,EAAE,CAAC;KACrD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { MapAppPayload } from './mapAppPayload.js';
|
|
3
|
+
export declare const MAX_INLINE_PAYLOAD_BYTES: number;
|
|
4
|
+
/**
|
|
5
|
+
* Schema for the `mapboxRender` field that data tools attach to their
|
|
6
|
+
* structuredContent. Each tool declares this on its output schema so
|
|
7
|
+
* Claude Desktop (and any other host that strictly validates tool results
|
|
8
|
+
* against the published output schema) doesn't flag the response.
|
|
9
|
+
*/
|
|
10
|
+
export declare const MapAppRefSchema: z.ZodObject<{
|
|
11
|
+
ref: z.ZodString;
|
|
12
|
+
}, z.core.$strip>;
|
|
13
|
+
export type MapAppRef = z.infer<typeof MapAppRefSchema>;
|
|
14
|
+
/**
|
|
15
|
+
* Stash a `MapAppPayload` server-side and return a short reference the LLM
|
|
16
|
+
* can pass to `render_map_tool` instead of inlining the whole payload as
|
|
17
|
+
* tool-call arguments. With detailed geometry (a directions polyline can
|
|
18
|
+
* easily be 5–50 KB), having the LLM emit the payload token-by-token costs
|
|
19
|
+
* 20–30 seconds per render and risks Anthropic API timeouts on big
|
|
20
|
+
* payloads (e.g. polygon-op chains). Passing a ref instead keeps the LLM's
|
|
21
|
+
* emission down to a few tokens.
|
|
22
|
+
*
|
|
23
|
+
* `owner` must be the same account identifier (`getUserNameFromToken`) the
|
|
24
|
+
* caller resolves for its own token — `TemporaryDataResource.read()` fails
|
|
25
|
+
* closed on an unowned resource, so omitting this makes the ref permanently
|
|
26
|
+
* unreadable via the real `resources/read` path the render iframe uses (it
|
|
27
|
+
* always 404s), even though callers that read the manager directly (like
|
|
28
|
+
* `resolveMapPayloadRef`) wouldn't notice anything wrong.
|
|
29
|
+
*/
|
|
30
|
+
export declare function storeMapPayload(payload: MapAppPayload, owner?: string): string;
|
|
31
|
+
/**
|
|
32
|
+
* Build the `mapboxRender` field for `render_map_tool`'s own structuredContent
|
|
33
|
+
* - the one tool result the iframe actually reads. Includes the resolved
|
|
34
|
+
* payload inline (in addition to `ref`) when it's small enough, because
|
|
35
|
+
* ChatGPT's MCP Apps bridge delivers `structuredContent` to the iframe intact
|
|
36
|
+
* but has no `resources/read` equivalent at all - the ref alone is
|
|
37
|
+
* permanently unusable there. Claude Desktop strips `structuredContent`
|
|
38
|
+
* before it reaches the iframe, so it's unaffected either way and keeps
|
|
39
|
+
* using the ref (via the sentinel-tagged text) + `resources/read`.
|
|
40
|
+
*
|
|
41
|
+
* Only `render_map_tool` needs this: it's the only tool that declares
|
|
42
|
+
* `_meta.ui.resourceUri`, so it's the only tool result the iframe ever sees.
|
|
43
|
+
*/
|
|
44
|
+
export declare function buildMapboxRenderField(ref: string, payload: MapAppPayload): {
|
|
45
|
+
ref: string;
|
|
46
|
+
} & Partial<MapAppPayload>;
|
|
47
|
+
/**
|
|
48
|
+
* One-line render hint that data tools append to their text output. Tells the
|
|
49
|
+
* LLM the EXACT shape of the next call so it doesn't hallucinate a ref URI.
|
|
50
|
+
* (Seen in the wild: Sonnet inventing `mapbox-isochrone-tool-result://0` when
|
|
51
|
+
* only structuredContent.mapboxRender.ref had the real `mapbox://temp/map-payload-…`
|
|
52
|
+
* URI — including the literal string in the visible text fixes that.)
|
|
53
|
+
*/
|
|
54
|
+
export declare function renderHint(ref: string): string;
|
|
55
|
+
/**
|
|
56
|
+
* Resolve a `mapbox://temp/map-payload-...` ref back to its `MapAppPayload`.
|
|
57
|
+
* Returns null if the ref is unknown, expired, or owned by a different
|
|
58
|
+
* account than `owner` — this is the same account-scoping enforced by
|
|
59
|
+
* `TemporaryDataResource.read()` (a caller passing another account's ref
|
|
60
|
+
* would otherwise have it silently merged and re-served under their own
|
|
61
|
+
* ref, bypassing the read-side check entirely since this goes straight to
|
|
62
|
+
* the manager rather than through `resources/read`).
|
|
63
|
+
*/
|
|
64
|
+
export declare function resolveMapPayloadRef(ref: string, owner: string | undefined): MapAppPayload | null;
|
|
65
|
+
/**
|
|
66
|
+
* Merge multiple `MapAppPayload`s into one. Layer/marker IDs are
|
|
67
|
+
* deduplicated by appending an index suffix when collisions happen.
|
|
68
|
+
* Summaries are joined with " · ". Legends are concatenated.
|
|
69
|
+
*/
|
|
70
|
+
export declare function mergeMapPayloads(payloads: MapAppPayload[]): MapAppPayload;
|
|
71
|
+
//# sourceMappingURL=storeMapPayload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storeMapPayload.d.ts","sourceRoot":"","sources":["../../../src/utils/storeMapPayload.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMxD,eAAO,MAAM,wBAAwB,QAAY,CAAC;AAElD;;;;;GAKG;AACH,eAAO,MAAM,eAAe;;iBAUzB,CAAC;AAEJ,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAIxD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,aAAa,EACtB,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CAcR;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,aAAa,GACrB;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAM1C;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK9C;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,aAAa,GAAG,IAAI,CAMtB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,aAAa,CA8BzE"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
// Copyright (c) Mapbox, Inc.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
import { randomUUID } from 'node:crypto';
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { temporaryResourceManager } from './temporaryResourceManager.js';
|
|
6
|
+
// Above this size, only the ref is included inline (the ref+resources/read
|
|
7
|
+
// path still works for hosts that support it) - matches the 50KB threshold
|
|
8
|
+
// already used elsewhere (e.g. the directions/isochrone large-response
|
|
9
|
+
// stash) for the same "don't bloat the response" reasoning.
|
|
10
|
+
export const MAX_INLINE_PAYLOAD_BYTES = 50 * 1024;
|
|
11
|
+
/**
|
|
12
|
+
* Schema for the `mapboxRender` field that data tools attach to their
|
|
13
|
+
* structuredContent. Each tool declares this on its output schema so
|
|
14
|
+
* Claude Desktop (and any other host that strictly validates tool results
|
|
15
|
+
* against the published output schema) doesn't flag the response.
|
|
16
|
+
*/
|
|
17
|
+
export const MapAppRefSchema = z
|
|
18
|
+
.object({
|
|
19
|
+
ref: z
|
|
20
|
+
.string()
|
|
21
|
+
.describe('Server-side payload reference. Pass to `render_map_tool` via `payload_refs: ["<this ref>"]` to display the data on a live Mapbox GL JS map.')
|
|
22
|
+
})
|
|
23
|
+
.describe('Map-payload reference for `render_map_tool`. Surfaced so the LLM can chain the next call without re-emitting geometry.');
|
|
24
|
+
const TEMP_URI_PREFIX = 'mapbox://temp/map-payload-';
|
|
25
|
+
/**
|
|
26
|
+
* Stash a `MapAppPayload` server-side and return a short reference the LLM
|
|
27
|
+
* can pass to `render_map_tool` instead of inlining the whole payload as
|
|
28
|
+
* tool-call arguments. With detailed geometry (a directions polyline can
|
|
29
|
+
* easily be 5–50 KB), having the LLM emit the payload token-by-token costs
|
|
30
|
+
* 20–30 seconds per render and risks Anthropic API timeouts on big
|
|
31
|
+
* payloads (e.g. polygon-op chains). Passing a ref instead keeps the LLM's
|
|
32
|
+
* emission down to a few tokens.
|
|
33
|
+
*
|
|
34
|
+
* `owner` must be the same account identifier (`getUserNameFromToken`) the
|
|
35
|
+
* caller resolves for its own token — `TemporaryDataResource.read()` fails
|
|
36
|
+
* closed on an unowned resource, so omitting this makes the ref permanently
|
|
37
|
+
* unreadable via the real `resources/read` path the render iframe uses (it
|
|
38
|
+
* always 404s), even though callers that read the manager directly (like
|
|
39
|
+
* `resolveMapPayloadRef`) wouldn't notice anything wrong.
|
|
40
|
+
*/
|
|
41
|
+
export function storeMapPayload(payload, owner) {
|
|
42
|
+
const id = randomUUID();
|
|
43
|
+
const uri = `${TEMP_URI_PREFIX}${id}`;
|
|
44
|
+
// 30-minute TTL is the temporaryResourceManager default — same as the
|
|
45
|
+
// directions/isochrone large-response stash, so the lifetime story is
|
|
46
|
+
// consistent across uses.
|
|
47
|
+
temporaryResourceManager.create({
|
|
48
|
+
id,
|
|
49
|
+
uri,
|
|
50
|
+
data: payload,
|
|
51
|
+
owner,
|
|
52
|
+
metadata: { toolName: 'map-payload' }
|
|
53
|
+
});
|
|
54
|
+
return uri;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Build the `mapboxRender` field for `render_map_tool`'s own structuredContent
|
|
58
|
+
* - the one tool result the iframe actually reads. Includes the resolved
|
|
59
|
+
* payload inline (in addition to `ref`) when it's small enough, because
|
|
60
|
+
* ChatGPT's MCP Apps bridge delivers `structuredContent` to the iframe intact
|
|
61
|
+
* but has no `resources/read` equivalent at all - the ref alone is
|
|
62
|
+
* permanently unusable there. Claude Desktop strips `structuredContent`
|
|
63
|
+
* before it reaches the iframe, so it's unaffected either way and keeps
|
|
64
|
+
* using the ref (via the sentinel-tagged text) + `resources/read`.
|
|
65
|
+
*
|
|
66
|
+
* Only `render_map_tool` needs this: it's the only tool that declares
|
|
67
|
+
* `_meta.ui.resourceUri`, so it's the only tool result the iframe ever sees.
|
|
68
|
+
*/
|
|
69
|
+
export function buildMapboxRenderField(ref, payload) {
|
|
70
|
+
const byteSize = Buffer.byteLength(JSON.stringify(payload), 'utf8');
|
|
71
|
+
if (byteSize > MAX_INLINE_PAYLOAD_BYTES) {
|
|
72
|
+
return { ref };
|
|
73
|
+
}
|
|
74
|
+
return { ref, ...payload };
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* One-line render hint that data tools append to their text output. Tells the
|
|
78
|
+
* LLM the EXACT shape of the next call so it doesn't hallucinate a ref URI.
|
|
79
|
+
* (Seen in the wild: Sonnet inventing `mapbox-isochrone-tool-result://0` when
|
|
80
|
+
* only structuredContent.mapboxRender.ref had the real `mapbox://temp/map-payload-…`
|
|
81
|
+
* URI — including the literal string in the visible text fixes that.)
|
|
82
|
+
*/
|
|
83
|
+
export function renderHint(ref) {
|
|
84
|
+
return (`\n\n📍 To show this on a live Mapbox GL JS map, call:\n` +
|
|
85
|
+
` render_map_tool({ "payload_refs": ["${ref}"] })`);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Resolve a `mapbox://temp/map-payload-...` ref back to its `MapAppPayload`.
|
|
89
|
+
* Returns null if the ref is unknown, expired, or owned by a different
|
|
90
|
+
* account than `owner` — this is the same account-scoping enforced by
|
|
91
|
+
* `TemporaryDataResource.read()` (a caller passing another account's ref
|
|
92
|
+
* would otherwise have it silently merged and re-served under their own
|
|
93
|
+
* ref, bypassing the read-side check entirely since this goes straight to
|
|
94
|
+
* the manager rather than through `resources/read`).
|
|
95
|
+
*/
|
|
96
|
+
export function resolveMapPayloadRef(ref, owner) {
|
|
97
|
+
if (!ref.startsWith(TEMP_URI_PREFIX))
|
|
98
|
+
return null;
|
|
99
|
+
const entry = temporaryResourceManager.get(ref);
|
|
100
|
+
if (!entry || !entry.data)
|
|
101
|
+
return null;
|
|
102
|
+
if (!entry.owner || !owner || entry.owner !== owner)
|
|
103
|
+
return null;
|
|
104
|
+
return entry.data;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Merge multiple `MapAppPayload`s into one. Layer/marker IDs are
|
|
108
|
+
* deduplicated by appending an index suffix when collisions happen.
|
|
109
|
+
* Summaries are joined with " · ". Legends are concatenated.
|
|
110
|
+
*/
|
|
111
|
+
export function mergeMapPayloads(payloads) {
|
|
112
|
+
const seenLayerIds = new Set();
|
|
113
|
+
const layers = [];
|
|
114
|
+
const markers = [];
|
|
115
|
+
const legend = [];
|
|
116
|
+
const summaries = [];
|
|
117
|
+
const selfFetch = [];
|
|
118
|
+
payloads.forEach((p, payloadIdx) => {
|
|
119
|
+
if (p.summary)
|
|
120
|
+
summaries.push(p.summary);
|
|
121
|
+
if (Array.isArray(p.layers)) {
|
|
122
|
+
for (const layer of p.layers) {
|
|
123
|
+
let id = layer.id;
|
|
124
|
+
if (seenLayerIds.has(id))
|
|
125
|
+
id = `${layer.id}-${payloadIdx}`;
|
|
126
|
+
seenLayerIds.add(id);
|
|
127
|
+
layers.push({ ...layer, id });
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
if (Array.isArray(p.markers))
|
|
131
|
+
markers.push(...p.markers);
|
|
132
|
+
if (Array.isArray(p.legend))
|
|
133
|
+
legend.push(...p.legend);
|
|
134
|
+
if (Array.isArray(p.selfFetch))
|
|
135
|
+
selfFetch.push(...p.selfFetch);
|
|
136
|
+
});
|
|
137
|
+
return {
|
|
138
|
+
summary: summaries.length > 0 ? summaries.join(' · ') : undefined,
|
|
139
|
+
layers,
|
|
140
|
+
markers: markers.length > 0 ? markers : undefined,
|
|
141
|
+
legend: legend.length > 0 ? legend : undefined,
|
|
142
|
+
selfFetch: selfFetch.length > 0 ? selfFetch : undefined
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=storeMapPayload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storeMapPayload.js","sourceRoot":"","sources":["../../../src/utils/storeMapPayload.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAElC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAGzE,2EAA2E;AAC3E,2EAA2E;AAC3E,uEAAuE;AACvE,4DAA4D;AAC5D,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,GAAG,IAAI,CAAC;AAElD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC;KAC7B,MAAM,CAAC;IACN,GAAG,EAAE,CAAC;SACH,MAAM,EAAE;SACR,QAAQ,CACP,6IAA6I,CAC9I;CACJ,CAAC;KACD,QAAQ,CACP,wHAAwH,CACzH,CAAC;AAIJ,MAAM,eAAe,GAAG,4BAA4B,CAAC;AAErD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAsB,EACtB,KAAc;IAEd,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;IACxB,MAAM,GAAG,GAAG,GAAG,eAAe,GAAG,EAAE,EAAE,CAAC;IACtC,sEAAsE;IACtE,sEAAsE;IACtE,0BAA0B;IAC1B,wBAAwB,CAAC,MAAM,CAAC;QAC9B,EAAE;QACF,GAAG;QACH,IAAI,EAAE,OAAO;QACb,KAAK;QACL,QAAQ,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE;KACtC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,sBAAsB,CACpC,GAAW,EACX,OAAsB;IAEtB,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;IACpE,IAAI,QAAQ,GAAG,wBAAwB,EAAE,CAAC;QACxC,OAAO,EAAE,GAAG,EAAE,CAAC;IACjB,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;AAC7B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,OAAO,CACL,yDAAyD;QACzD,0CAA0C,GAAG,OAAO,CACrD,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAClC,GAAW,EACX,KAAyB;IAEzB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC;QAAE,OAAO,IAAI,CAAC;IAClD,MAAM,KAAK,GAAG,wBAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACjE,OAAO,KAAK,CAAC,IAAqB,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAyB;IACxD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,MAAM,OAAO,GAA0C,EAAE,CAAC;IAC1D,MAAM,MAAM,GAAyC,EAAE,CAAC;IACxD,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,SAAS,GAA4C,EAAE,CAAC;IAE9D,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE;QACjC,IAAI,CAAC,CAAC,OAAO;YAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;gBAC7B,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;gBAClB,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;oBAAE,EAAE,GAAG,GAAG,KAAK,CAAC,EAAE,IAAI,UAAU,EAAE,CAAC;gBAC3D,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACrB,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;QACjE,MAAM;QACN,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QACjD,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAC9C,SAAS,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;KACxD,CAAC;AACJ,CAAC"}
|
package/dist/esm/version.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mapbox/mcp-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0-dev",
|
|
4
4
|
"description": "Mapbox MCP server.",
|
|
5
5
|
"mcpName": "io.github.mapbox/mcp-server",
|
|
6
6
|
"main": "./dist/commonjs/index.js",
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
"generate-version": "node scripts/build-helpers.cjs generate-version",
|
|
18
18
|
"inspect:build": "npm run build && npx @modelcontextprotocol/inspector -e MAPBOX_ACCESS_TOKEN=\"$MAPBOX_ACCESS_TOKEN\" node dist/esm/index.js",
|
|
19
19
|
"inspect:dev": "npx @modelcontextprotocol/inspector -e MAPBOX_ACCESS_TOKEN=\"$MAPBOX_ACCESS_TOKEN\" npx -y tsx src/index.ts",
|
|
20
|
+
"dev:http": "npx -y tsx scripts/dev-http-server.ts",
|
|
20
21
|
"lint": "eslint \"./src/**/*.{ts,tsx}\" \"./test/**/*.{ts,tsx}\" \"./examples/**/*.{ts,tsx}\"",
|
|
21
22
|
"lint:fix": "eslint \"./src/**/*.{ts,tsx}\" \"./test/**/*.{ts,tsx}\" \"./examples/**/*.{ts,tsx}\" --fix",
|
|
22
23
|
"postinstall": "patch-package || (cd ../../.. && node ./node_modules/patch-package/index.js --patch-dir ./node_modules/@mapbox/mcp-server/patches) || true",
|
|
@@ -76,7 +77,6 @@
|
|
|
76
77
|
"mcp"
|
|
77
78
|
],
|
|
78
79
|
"dependencies": {
|
|
79
|
-
"@mcp-ui/server": "^6.1.0",
|
|
80
80
|
"@modelcontextprotocol/ext-apps": "^1.1.1",
|
|
81
81
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
82
82
|
"@opentelemetry/api": "^1.9.1",
|
|
@@ -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,kEAA2E;AAC3E,wDAAkD;AAElD,2EAA4E;AAC5E,iEAAiE;AAEjE;;;;;;;;;;GAUG;AACH,MAAa,uBAAwB,SAAQ,8BAAY;IAC9C,IAAI,GAAG,mBAAmB,CAAC;IAC3B,GAAG,GAAG,uCAAuC,CAAC;IAC9C,WAAW,GAClB,uFAAuF,CAAC;IACjF,QAAQ,GAAG,2BAAkB,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,IAAA,+CAAwB,EAAC;YACjD,WAAW;YACX,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;YAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,IAAA,8CAAuB,EAAC;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,2BAAkB;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;AAhED,0DAgEC"}
|
|
@@ -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,CAmmBT"}
|