@mapbox/mcp-server 0.8.1 → 0.8.3
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/README.md +191 -0
- package/dist/commonjs/index.js +94 -6
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/prompts/SearchAlongRoutePrompt.d.ts +26 -0
- package/dist/commonjs/prompts/SearchAlongRoutePrompt.d.ts.map +1 -0
- package/dist/commonjs/prompts/SearchAlongRoutePrompt.js +164 -0
- package/dist/commonjs/prompts/SearchAlongRoutePrompt.js.map +1 -0
- package/dist/commonjs/prompts/promptRegistry.d.ts +2 -1
- package/dist/commonjs/prompts/promptRegistry.d.ts.map +1 -1
- package/dist/commonjs/prompts/promptRegistry.js +2 -0
- package/dist/commonjs/prompts/promptRegistry.js.map +1 -1
- package/dist/commonjs/schemas/shared.d.ts +5 -0
- package/dist/commonjs/schemas/shared.d.ts.map +1 -1
- package/dist/commonjs/schemas/shared.js +11 -1
- package/dist/commonjs/schemas/shared.js.map +1 -1
- package/dist/commonjs/tools/MapboxApiBasedTool.d.ts +8 -0
- package/dist/commonjs/tools/MapboxApiBasedTool.d.ts.map +1 -1
- package/dist/commonjs/tools/MapboxApiBasedTool.js +20 -0
- package/dist/commonjs/tools/MapboxApiBasedTool.js.map +1 -1
- package/dist/commonjs/tools/area-tool/AreaTool.d.ts +21 -0
- package/dist/commonjs/tools/area-tool/AreaTool.d.ts.map +1 -0
- package/dist/commonjs/tools/area-tool/AreaTool.input.schema.d.ts +19 -0
- package/dist/commonjs/tools/area-tool/AreaTool.input.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/area-tool/AreaTool.input.schema.js +34 -0
- package/dist/commonjs/tools/area-tool/AreaTool.input.schema.js.map +1 -0
- package/dist/commonjs/tools/area-tool/AreaTool.js +104 -0
- package/dist/commonjs/tools/area-tool/AreaTool.js.map +1 -0
- package/dist/commonjs/tools/area-tool/AreaTool.output.schema.d.ts +19 -0
- package/dist/commonjs/tools/area-tool/AreaTool.output.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/area-tool/AreaTool.output.schema.js +14 -0
- package/dist/commonjs/tools/area-tool/AreaTool.output.schema.js.map +1 -0
- package/dist/commonjs/tools/bearing-tool/BearingTool.d.ts +22 -0
- package/dist/commonjs/tools/bearing-tool/BearingTool.d.ts.map +1 -0
- package/dist/commonjs/tools/bearing-tool/BearingTool.input.schema.d.ts +49 -0
- package/dist/commonjs/tools/bearing-tool/BearingTool.input.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/bearing-tool/BearingTool.input.schema.js +27 -0
- package/dist/commonjs/tools/bearing-tool/BearingTool.input.schema.js.map +1 -0
- package/dist/commonjs/tools/bearing-tool/BearingTool.js +84 -0
- package/dist/commonjs/tools/bearing-tool/BearingTool.js.map +1 -0
- package/dist/commonjs/tools/bearing-tool/BearingTool.output.schema.d.ts +52 -0
- package/dist/commonjs/tools/bearing-tool/BearingTool.output.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/bearing-tool/BearingTool.output.schema.js +21 -0
- package/dist/commonjs/tools/bearing-tool/BearingTool.output.schema.js.map +1 -0
- package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.d.ts +22 -0
- package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.d.ts.map +1 -0
- package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.input.schema.d.ts +16 -0
- package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.input.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.input.schema.js +31 -0
- package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.input.schema.js.map +1 -0
- package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.js +107 -0
- package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.js.map +1 -0
- package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.output.schema.d.ts +16 -0
- package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.output.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.output.schema.js +15 -0
- package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.output.schema.js.map +1 -0
- package/dist/commonjs/tools/buffer-tool/BufferTool.d.ts +22 -0
- package/dist/commonjs/tools/buffer-tool/BufferTool.d.ts.map +1 -0
- package/dist/commonjs/tools/buffer-tool/BufferTool.input.schema.d.ts +22 -0
- package/dist/commonjs/tools/buffer-tool/BufferTool.input.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/buffer-tool/BufferTool.input.schema.js +35 -0
- package/dist/commonjs/tools/buffer-tool/BufferTool.input.schema.js.map +1 -0
- package/dist/commonjs/tools/buffer-tool/BufferTool.js +103 -0
- package/dist/commonjs/tools/buffer-tool/BufferTool.js.map +1 -0
- package/dist/commonjs/tools/buffer-tool/BufferTool.output.schema.d.ts +22 -0
- package/dist/commonjs/tools/buffer-tool/BufferTool.output.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/buffer-tool/BufferTool.output.schema.js +17 -0
- package/dist/commonjs/tools/buffer-tool/BufferTool.output.schema.js.map +1 -0
- package/dist/commonjs/tools/category-list-tool/CategoryListTool.d.ts.map +1 -1
- package/dist/commonjs/tools/category-list-tool/CategoryListTool.js +2 -1
- package/dist/commonjs/tools/category-list-tool/CategoryListTool.js.map +1 -1
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.d.ts.map +1 -1
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.input.schema.d.ts +10 -10
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.js +2 -1
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.js.map +1 -1
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.output.schema.d.ts +44 -44
- package/dist/commonjs/tools/centroid-tool/CentroidTool.d.ts +21 -0
- package/dist/commonjs/tools/centroid-tool/CentroidTool.d.ts.map +1 -0
- package/dist/commonjs/tools/centroid-tool/CentroidTool.input.schema.d.ts +16 -0
- package/dist/commonjs/tools/centroid-tool/CentroidTool.input.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/centroid-tool/CentroidTool.input.schema.js +29 -0
- package/dist/commonjs/tools/centroid-tool/CentroidTool.input.schema.js.map +1 -0
- package/dist/commonjs/tools/centroid-tool/CentroidTool.js +81 -0
- package/dist/commonjs/tools/centroid-tool/CentroidTool.js.map +1 -0
- package/dist/commonjs/tools/centroid-tool/CentroidTool.output.schema.d.ts +31 -0
- package/dist/commonjs/tools/centroid-tool/CentroidTool.output.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/centroid-tool/CentroidTool.output.schema.js +16 -0
- package/dist/commonjs/tools/centroid-tool/CentroidTool.output.schema.js.map +1 -0
- package/dist/commonjs/tools/directions-tool/DirectionsTool.d.ts.map +1 -1
- package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.d.ts +3 -3
- package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.d.ts.map +1 -1
- package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.js +6 -7
- package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.js.map +1 -1
- package/dist/commonjs/tools/directions-tool/DirectionsTool.js +9 -8
- package/dist/commonjs/tools/directions-tool/DirectionsTool.js.map +1 -1
- package/dist/commonjs/tools/directions-tool/DirectionsTool.output.schema.d.ts +266 -266
- package/dist/commonjs/tools/directions-tool/DirectionsTool.output.schema.js +6 -6
- package/dist/commonjs/tools/directions-tool/DirectionsTool.output.schema.js.map +1 -1
- package/dist/commonjs/tools/directions-tool/cleanResponseData.d.ts +2 -2
- package/dist/commonjs/tools/directions-tool/cleanResponseData.d.ts.map +1 -1
- package/dist/commonjs/tools/directions-tool/cleanResponseData.js.map +1 -1
- package/dist/commonjs/tools/distance-tool/DistanceTool.d.ts +29 -0
- package/dist/commonjs/tools/distance-tool/DistanceTool.d.ts.map +1 -0
- package/dist/commonjs/tools/distance-tool/DistanceTool.input.schema.d.ts +52 -0
- package/dist/commonjs/tools/distance-tool/DistanceTool.input.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/distance-tool/DistanceTool.input.schema.js +29 -0
- package/dist/commonjs/tools/distance-tool/DistanceTool.input.schema.js.map +1 -0
- package/dist/commonjs/tools/distance-tool/DistanceTool.js +95 -0
- package/dist/commonjs/tools/distance-tool/DistanceTool.js.map +1 -0
- package/dist/commonjs/tools/distance-tool/DistanceTool.output.schema.d.ts +55 -0
- package/dist/commonjs/tools/distance-tool/DistanceTool.output.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/distance-tool/DistanceTool.output.schema.js +26 -0
- package/dist/commonjs/tools/distance-tool/DistanceTool.output.schema.js.map +1 -0
- package/dist/commonjs/tools/isochrone-tool/IsochroneTool.d.ts.map +1 -1
- package/dist/commonjs/tools/isochrone-tool/IsochroneTool.input.schema.d.ts +2 -2
- package/dist/commonjs/tools/isochrone-tool/IsochroneTool.js +2 -1
- package/dist/commonjs/tools/isochrone-tool/IsochroneTool.js.map +1 -1
- package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.d.ts +22 -0
- package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.d.ts.map +1 -0
- package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.input.schema.d.ts +43 -0
- package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.input.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.input.schema.js +60 -0
- package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.input.schema.js.map +1 -0
- package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.js +117 -0
- package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.js.map +1 -0
- package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.output.schema.d.ts +170 -0
- package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.output.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.output.schema.js +49 -0
- package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.output.schema.js.map +1 -0
- package/dist/commonjs/tools/matrix-tool/MatrixTool.d.ts.map +1 -1
- package/dist/commonjs/tools/matrix-tool/MatrixTool.input.schema.d.ts +3 -3
- package/dist/commonjs/tools/matrix-tool/MatrixTool.input.schema.d.ts.map +1 -1
- package/dist/commonjs/tools/matrix-tool/MatrixTool.input.schema.js +5 -7
- package/dist/commonjs/tools/matrix-tool/MatrixTool.input.schema.js.map +1 -1
- package/dist/commonjs/tools/matrix-tool/MatrixTool.js +5 -3
- package/dist/commonjs/tools/matrix-tool/MatrixTool.js.map +1 -1
- package/dist/commonjs/tools/midpoint-tool/MidpointTool.d.ts +21 -0
- package/dist/commonjs/tools/midpoint-tool/MidpointTool.d.ts.map +1 -0
- package/dist/commonjs/tools/midpoint-tool/MidpointTool.input.schema.d.ts +49 -0
- package/dist/commonjs/tools/midpoint-tool/MidpointTool.input.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/midpoint-tool/MidpointTool.input.schema.js +27 -0
- package/dist/commonjs/tools/midpoint-tool/MidpointTool.input.schema.js.map +1 -0
- package/dist/commonjs/tools/midpoint-tool/MidpointTool.js +81 -0
- package/dist/commonjs/tools/midpoint-tool/MidpointTool.js.map +1 -0
- package/dist/commonjs/tools/midpoint-tool/MidpointTool.output.schema.d.ts +67 -0
- package/dist/commonjs/tools/midpoint-tool/MidpointTool.output.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/midpoint-tool/MidpointTool.output.schema.js +24 -0
- package/dist/commonjs/tools/midpoint-tool/MidpointTool.output.schema.js.map +1 -0
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.d.ts +28 -0
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.d.ts.map +1 -0
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.input.schema.d.ts +58 -0
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.input.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.input.schema.js +76 -0
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.input.schema.js.map +1 -0
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.js +142 -0
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.js.map +1 -0
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.output.schema.d.ts +621 -0
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.output.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.output.schema.js +87 -0
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.output.schema.js.map +1 -0
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.d.ts +10 -0
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.d.ts.map +1 -0
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.input.schema.d.ts +303 -0
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.input.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.input.schema.js +186 -0
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.input.schema.js.map +1 -0
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.js +332 -0
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.js.map +1 -0
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.output.schema.d.ts +356 -0
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.output.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.output.schema.js +109 -0
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.output.schema.js.map +1 -0
- package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.d.ts +24 -0
- package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.d.ts.map +1 -0
- package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.input.schema.d.ts +34 -0
- package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.input.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.input.schema.js +32 -0
- package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.input.schema.js.map +1 -0
- package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.js +84 -0
- package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.js.map +1 -0
- package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.output.schema.d.ts +34 -0
- package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.output.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.output.schema.js +19 -0
- package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.output.schema.js.map +1 -0
- package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.d.ts.map +1 -1
- package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.js.map +1 -1
- package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.d.ts.map +1 -1
- package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.js +2 -1
- package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.js.map +1 -1
- package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.output.schema.d.ts +24 -24
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.input.schema.d.ts +10 -10
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.js +3 -3
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.js.map +1 -1
- package/dist/commonjs/tools/simplify-tool/SimplifyTool.d.ts +22 -0
- package/dist/commonjs/tools/simplify-tool/SimplifyTool.d.ts.map +1 -0
- package/dist/commonjs/tools/simplify-tool/SimplifyTool.input.schema.d.ts +22 -0
- package/dist/commonjs/tools/simplify-tool/SimplifyTool.input.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/simplify-tool/SimplifyTool.input.schema.js +38 -0
- package/dist/commonjs/tools/simplify-tool/SimplifyTool.input.schema.js.map +1 -0
- package/dist/commonjs/tools/simplify-tool/SimplifyTool.js +108 -0
- package/dist/commonjs/tools/simplify-tool/SimplifyTool.js.map +1 -0
- package/dist/commonjs/tools/simplify-tool/SimplifyTool.output.schema.d.ts +25 -0
- package/dist/commonjs/tools/simplify-tool/SimplifyTool.output.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/simplify-tool/SimplifyTool.output.schema.js +23 -0
- package/dist/commonjs/tools/simplify-tool/SimplifyTool.output.schema.js.map +1 -0
- package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.d.ts.map +1 -1
- package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.input.schema.d.ts +8 -8
- package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.js +20 -2
- package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.js.map +1 -1
- package/dist/commonjs/tools/toolRegistry.d.ts +62 -1
- package/dist/commonjs/tools/toolRegistry.d.ts.map +1 -1
- package/dist/commonjs/tools/toolRegistry.js +90 -5
- package/dist/commonjs/tools/toolRegistry.js.map +1 -1
- package/dist/commonjs/utils/tracing.d.ts.map +1 -1
- package/dist/commonjs/utils/tracing.js.map +1 -1
- package/dist/commonjs/version.json +3 -3
- package/dist/esm/index.js +95 -7
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/prompts/SearchAlongRoutePrompt.d.ts +26 -0
- package/dist/esm/prompts/SearchAlongRoutePrompt.d.ts.map +1 -0
- package/dist/esm/prompts/SearchAlongRoutePrompt.js +160 -0
- package/dist/esm/prompts/SearchAlongRoutePrompt.js.map +1 -0
- package/dist/esm/prompts/promptRegistry.d.ts +2 -1
- package/dist/esm/prompts/promptRegistry.d.ts.map +1 -1
- package/dist/esm/prompts/promptRegistry.js +2 -0
- package/dist/esm/prompts/promptRegistry.js.map +1 -1
- package/dist/esm/schemas/shared.d.ts +5 -0
- package/dist/esm/schemas/shared.d.ts.map +1 -1
- package/dist/esm/schemas/shared.js +10 -0
- package/dist/esm/schemas/shared.js.map +1 -1
- package/dist/esm/tools/MapboxApiBasedTool.d.ts +8 -0
- package/dist/esm/tools/MapboxApiBasedTool.d.ts.map +1 -1
- package/dist/esm/tools/MapboxApiBasedTool.js +20 -0
- package/dist/esm/tools/MapboxApiBasedTool.js.map +1 -1
- package/dist/esm/tools/area-tool/AreaTool.d.ts +21 -0
- package/dist/esm/tools/area-tool/AreaTool.d.ts.map +1 -0
- package/dist/esm/tools/area-tool/AreaTool.input.schema.d.ts +19 -0
- package/dist/esm/tools/area-tool/AreaTool.input.schema.d.ts.map +1 -0
- package/dist/esm/tools/area-tool/AreaTool.input.schema.js +28 -0
- package/dist/esm/tools/area-tool/AreaTool.input.schema.js.map +1 -0
- package/dist/esm/tools/area-tool/AreaTool.js +100 -0
- package/dist/esm/tools/area-tool/AreaTool.js.map +1 -0
- package/dist/esm/tools/area-tool/AreaTool.output.schema.d.ts +19 -0
- package/dist/esm/tools/area-tool/AreaTool.output.schema.d.ts.map +1 -0
- package/dist/esm/tools/area-tool/AreaTool.output.schema.js +11 -0
- package/dist/esm/tools/area-tool/AreaTool.output.schema.js.map +1 -0
- package/dist/esm/tools/bearing-tool/BearingTool.d.ts +22 -0
- package/dist/esm/tools/bearing-tool/BearingTool.d.ts.map +1 -0
- package/dist/esm/tools/bearing-tool/BearingTool.input.schema.d.ts +49 -0
- package/dist/esm/tools/bearing-tool/BearingTool.input.schema.d.ts.map +1 -0
- package/dist/esm/tools/bearing-tool/BearingTool.input.schema.js +21 -0
- package/dist/esm/tools/bearing-tool/BearingTool.input.schema.js.map +1 -0
- package/dist/esm/tools/bearing-tool/BearingTool.js +80 -0
- package/dist/esm/tools/bearing-tool/BearingTool.js.map +1 -0
- package/dist/esm/tools/bearing-tool/BearingTool.output.schema.d.ts +52 -0
- package/dist/esm/tools/bearing-tool/BearingTool.output.schema.d.ts.map +1 -0
- package/dist/esm/tools/bearing-tool/BearingTool.output.schema.js +18 -0
- package/dist/esm/tools/bearing-tool/BearingTool.output.schema.js.map +1 -0
- package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.d.ts +22 -0
- package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.d.ts.map +1 -0
- package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.input.schema.d.ts +16 -0
- package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.input.schema.d.ts.map +1 -0
- package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.input.schema.js +25 -0
- package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.input.schema.js.map +1 -0
- package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.js +103 -0
- package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.js.map +1 -0
- package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.output.schema.d.ts +16 -0
- package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.output.schema.d.ts.map +1 -0
- package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.output.schema.js +12 -0
- package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.output.schema.js.map +1 -0
- package/dist/esm/tools/buffer-tool/BufferTool.d.ts +22 -0
- package/dist/esm/tools/buffer-tool/BufferTool.d.ts.map +1 -0
- package/dist/esm/tools/buffer-tool/BufferTool.input.schema.d.ts +22 -0
- package/dist/esm/tools/buffer-tool/BufferTool.input.schema.d.ts.map +1 -0
- package/dist/esm/tools/buffer-tool/BufferTool.input.schema.js +29 -0
- package/dist/esm/tools/buffer-tool/BufferTool.input.schema.js.map +1 -0
- package/dist/esm/tools/buffer-tool/BufferTool.js +99 -0
- package/dist/esm/tools/buffer-tool/BufferTool.js.map +1 -0
- package/dist/esm/tools/buffer-tool/BufferTool.output.schema.d.ts +22 -0
- package/dist/esm/tools/buffer-tool/BufferTool.output.schema.d.ts.map +1 -0
- package/dist/esm/tools/buffer-tool/BufferTool.output.schema.js +14 -0
- package/dist/esm/tools/buffer-tool/BufferTool.output.schema.js.map +1 -0
- package/dist/esm/tools/category-list-tool/CategoryListTool.d.ts.map +1 -1
- package/dist/esm/tools/category-list-tool/CategoryListTool.js +2 -1
- package/dist/esm/tools/category-list-tool/CategoryListTool.js.map +1 -1
- package/dist/esm/tools/category-search-tool/CategorySearchTool.d.ts.map +1 -1
- package/dist/esm/tools/category-search-tool/CategorySearchTool.input.schema.d.ts +10 -10
- package/dist/esm/tools/category-search-tool/CategorySearchTool.js +2 -1
- package/dist/esm/tools/category-search-tool/CategorySearchTool.js.map +1 -1
- package/dist/esm/tools/category-search-tool/CategorySearchTool.output.schema.d.ts +44 -44
- package/dist/esm/tools/centroid-tool/CentroidTool.d.ts +21 -0
- package/dist/esm/tools/centroid-tool/CentroidTool.d.ts.map +1 -0
- package/dist/esm/tools/centroid-tool/CentroidTool.input.schema.d.ts +16 -0
- package/dist/esm/tools/centroid-tool/CentroidTool.input.schema.d.ts.map +1 -0
- package/dist/esm/tools/centroid-tool/CentroidTool.input.schema.js +23 -0
- package/dist/esm/tools/centroid-tool/CentroidTool.input.schema.js.map +1 -0
- package/dist/esm/tools/centroid-tool/CentroidTool.js +77 -0
- package/dist/esm/tools/centroid-tool/CentroidTool.js.map +1 -0
- package/dist/esm/tools/centroid-tool/CentroidTool.output.schema.d.ts +31 -0
- package/dist/esm/tools/centroid-tool/CentroidTool.output.schema.d.ts.map +1 -0
- package/dist/esm/tools/centroid-tool/CentroidTool.output.schema.js +13 -0
- package/dist/esm/tools/centroid-tool/CentroidTool.output.schema.js.map +1 -0
- package/dist/esm/tools/directions-tool/DirectionsTool.d.ts.map +1 -1
- package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.d.ts +3 -3
- package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.d.ts.map +1 -1
- package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.js +7 -8
- package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.js.map +1 -1
- package/dist/esm/tools/directions-tool/DirectionsTool.js +9 -8
- package/dist/esm/tools/directions-tool/DirectionsTool.js.map +1 -1
- package/dist/esm/tools/directions-tool/DirectionsTool.output.schema.d.ts +266 -266
- package/dist/esm/tools/directions-tool/DirectionsTool.output.schema.js +6 -6
- package/dist/esm/tools/directions-tool/DirectionsTool.output.schema.js.map +1 -1
- package/dist/esm/tools/directions-tool/cleanResponseData.d.ts +2 -2
- package/dist/esm/tools/directions-tool/cleanResponseData.d.ts.map +1 -1
- package/dist/esm/tools/directions-tool/cleanResponseData.js.map +1 -1
- package/dist/esm/tools/distance-tool/DistanceTool.d.ts +29 -0
- package/dist/esm/tools/distance-tool/DistanceTool.d.ts.map +1 -0
- package/dist/esm/tools/distance-tool/DistanceTool.input.schema.d.ts +52 -0
- package/dist/esm/tools/distance-tool/DistanceTool.input.schema.d.ts.map +1 -0
- package/dist/esm/tools/distance-tool/DistanceTool.input.schema.js +23 -0
- package/dist/esm/tools/distance-tool/DistanceTool.input.schema.js.map +1 -0
- package/dist/esm/tools/distance-tool/DistanceTool.js +91 -0
- package/dist/esm/tools/distance-tool/DistanceTool.js.map +1 -0
- package/dist/esm/tools/distance-tool/DistanceTool.output.schema.d.ts +55 -0
- package/dist/esm/tools/distance-tool/DistanceTool.output.schema.d.ts.map +1 -0
- package/dist/esm/tools/distance-tool/DistanceTool.output.schema.js +23 -0
- package/dist/esm/tools/distance-tool/DistanceTool.output.schema.js.map +1 -0
- package/dist/esm/tools/isochrone-tool/IsochroneTool.d.ts.map +1 -1
- package/dist/esm/tools/isochrone-tool/IsochroneTool.input.schema.d.ts +2 -2
- package/dist/esm/tools/isochrone-tool/IsochroneTool.js +2 -1
- package/dist/esm/tools/isochrone-tool/IsochroneTool.js.map +1 -1
- package/dist/esm/tools/map-matching-tool/MapMatchingTool.d.ts +22 -0
- package/dist/esm/tools/map-matching-tool/MapMatchingTool.d.ts.map +1 -0
- package/dist/esm/tools/map-matching-tool/MapMatchingTool.input.schema.d.ts +43 -0
- package/dist/esm/tools/map-matching-tool/MapMatchingTool.input.schema.d.ts.map +1 -0
- package/dist/esm/tools/map-matching-tool/MapMatchingTool.input.schema.js +57 -0
- package/dist/esm/tools/map-matching-tool/MapMatchingTool.input.schema.js.map +1 -0
- package/dist/esm/tools/map-matching-tool/MapMatchingTool.js +113 -0
- package/dist/esm/tools/map-matching-tool/MapMatchingTool.js.map +1 -0
- package/dist/esm/tools/map-matching-tool/MapMatchingTool.output.schema.d.ts +170 -0
- package/dist/esm/tools/map-matching-tool/MapMatchingTool.output.schema.d.ts.map +1 -0
- package/dist/esm/tools/map-matching-tool/MapMatchingTool.output.schema.js +46 -0
- package/dist/esm/tools/map-matching-tool/MapMatchingTool.output.schema.js.map +1 -0
- package/dist/esm/tools/matrix-tool/MatrixTool.d.ts.map +1 -1
- package/dist/esm/tools/matrix-tool/MatrixTool.input.schema.d.ts +3 -3
- package/dist/esm/tools/matrix-tool/MatrixTool.input.schema.d.ts.map +1 -1
- package/dist/esm/tools/matrix-tool/MatrixTool.input.schema.js +6 -8
- package/dist/esm/tools/matrix-tool/MatrixTool.input.schema.js.map +1 -1
- package/dist/esm/tools/matrix-tool/MatrixTool.js +5 -3
- package/dist/esm/tools/matrix-tool/MatrixTool.js.map +1 -1
- package/dist/esm/tools/midpoint-tool/MidpointTool.d.ts +21 -0
- package/dist/esm/tools/midpoint-tool/MidpointTool.d.ts.map +1 -0
- package/dist/esm/tools/midpoint-tool/MidpointTool.input.schema.d.ts +49 -0
- package/dist/esm/tools/midpoint-tool/MidpointTool.input.schema.d.ts.map +1 -0
- package/dist/esm/tools/midpoint-tool/MidpointTool.input.schema.js +21 -0
- package/dist/esm/tools/midpoint-tool/MidpointTool.input.schema.js.map +1 -0
- package/dist/esm/tools/midpoint-tool/MidpointTool.js +77 -0
- package/dist/esm/tools/midpoint-tool/MidpointTool.js.map +1 -0
- package/dist/esm/tools/midpoint-tool/MidpointTool.output.schema.d.ts +67 -0
- package/dist/esm/tools/midpoint-tool/MidpointTool.output.schema.d.ts.map +1 -0
- package/dist/esm/tools/midpoint-tool/MidpointTool.output.schema.js +21 -0
- package/dist/esm/tools/midpoint-tool/MidpointTool.output.schema.js.map +1 -0
- package/dist/esm/tools/optimization-tool/OptimizationTool.d.ts +28 -0
- package/dist/esm/tools/optimization-tool/OptimizationTool.d.ts.map +1 -0
- package/dist/esm/tools/optimization-tool/OptimizationTool.input.schema.d.ts +58 -0
- package/dist/esm/tools/optimization-tool/OptimizationTool.input.schema.d.ts.map +1 -0
- package/dist/esm/tools/optimization-tool/OptimizationTool.input.schema.js +70 -0
- package/dist/esm/tools/optimization-tool/OptimizationTool.input.schema.js.map +1 -0
- package/dist/esm/tools/optimization-tool/OptimizationTool.js +138 -0
- package/dist/esm/tools/optimization-tool/OptimizationTool.js.map +1 -0
- package/dist/esm/tools/optimization-tool/OptimizationTool.output.schema.d.ts +621 -0
- package/dist/esm/tools/optimization-tool/OptimizationTool.output.schema.d.ts.map +1 -0
- package/dist/esm/tools/optimization-tool/OptimizationTool.output.schema.js +84 -0
- package/dist/esm/tools/optimization-tool/OptimizationTool.output.schema.js.map +1 -0
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.d.ts +10 -0
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.d.ts.map +1 -0
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.input.schema.d.ts +303 -0
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.input.schema.d.ts.map +1 -0
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.input.schema.js +180 -0
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.input.schema.js.map +1 -0
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.js +329 -0
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.js.map +1 -0
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.output.schema.d.ts +356 -0
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.output.schema.d.ts.map +1 -0
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.output.schema.js +106 -0
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.output.schema.js.map +1 -0
- package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.d.ts +24 -0
- package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.d.ts.map +1 -0
- package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.input.schema.d.ts +34 -0
- package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.input.schema.d.ts.map +1 -0
- package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.input.schema.js +26 -0
- package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.input.schema.js.map +1 -0
- package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.js +80 -0
- package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.js.map +1 -0
- package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.output.schema.d.ts +34 -0
- package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.output.schema.d.ts.map +1 -0
- package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.output.schema.js +16 -0
- package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.output.schema.js.map +1 -0
- package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.d.ts.map +1 -1
- package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.js.map +1 -1
- package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.d.ts.map +1 -1
- package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.js +2 -1
- package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.js.map +1 -1
- package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.output.schema.d.ts +24 -24
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.input.schema.d.ts +10 -10
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.js +3 -3
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.js.map +1 -1
- package/dist/esm/tools/simplify-tool/SimplifyTool.d.ts +22 -0
- package/dist/esm/tools/simplify-tool/SimplifyTool.d.ts.map +1 -0
- package/dist/esm/tools/simplify-tool/SimplifyTool.input.schema.d.ts +22 -0
- package/dist/esm/tools/simplify-tool/SimplifyTool.input.schema.d.ts.map +1 -0
- package/dist/esm/tools/simplify-tool/SimplifyTool.input.schema.js +32 -0
- package/dist/esm/tools/simplify-tool/SimplifyTool.input.schema.js.map +1 -0
- package/dist/esm/tools/simplify-tool/SimplifyTool.js +104 -0
- package/dist/esm/tools/simplify-tool/SimplifyTool.js.map +1 -0
- package/dist/esm/tools/simplify-tool/SimplifyTool.output.schema.d.ts +25 -0
- package/dist/esm/tools/simplify-tool/SimplifyTool.output.schema.d.ts.map +1 -0
- package/dist/esm/tools/simplify-tool/SimplifyTool.output.schema.js +20 -0
- package/dist/esm/tools/simplify-tool/SimplifyTool.output.schema.js.map +1 -0
- package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.d.ts.map +1 -1
- package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.input.schema.d.ts +8 -8
- package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.js +20 -2
- package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.js.map +1 -1
- package/dist/esm/tools/toolRegistry.d.ts +62 -1
- package/dist/esm/tools/toolRegistry.d.ts.map +1 -1
- package/dist/esm/tools/toolRegistry.js +86 -4
- package/dist/esm/tools/toolRegistry.js.map +1 -1
- package/dist/esm/utils/tracing.d.ts.map +1 -1
- package/dist/esm/utils/tracing.js.map +1 -1
- package/dist/esm/version.json +3 -3
- package/package.json +3 -2
- /package/patches/{@modelcontextprotocol+sdk+1.25.1.patch → @modelcontextprotocol+sdk+1.25.3.patch} +0 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// Copyright (c) Mapbox, Inc.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
import z from 'zod';
|
|
4
|
+
const CoordinateSchema = z
|
|
5
|
+
.array(z.number())
|
|
6
|
+
.length(2)
|
|
7
|
+
.describe('Coordinate as [longitude, latitude]');
|
|
8
|
+
/**
|
|
9
|
+
* Input schema for AreaTool
|
|
10
|
+
*/
|
|
11
|
+
export const AreaInputSchema = z.object({
|
|
12
|
+
geometry: z
|
|
13
|
+
.union([
|
|
14
|
+
// Polygon
|
|
15
|
+
z.array(z.array(CoordinateSchema)).min(1),
|
|
16
|
+
// MultiPolygon
|
|
17
|
+
z.array(z.array(z.array(CoordinateSchema))).min(1)
|
|
18
|
+
])
|
|
19
|
+
.describe('Polygon or MultiPolygon coordinates. ' +
|
|
20
|
+
'Polygon: array of rings (first is outer, rest are holes). ' +
|
|
21
|
+
'MultiPolygon: array of polygons.'),
|
|
22
|
+
units: z
|
|
23
|
+
.enum(['meters', 'kilometers', 'feet', 'miles', 'acres', 'hectares'])
|
|
24
|
+
.optional()
|
|
25
|
+
.default('meters')
|
|
26
|
+
.describe('Unit of measurement for area')
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=AreaTool.input.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AreaTool.input.schema.js","sourceRoot":"","sources":["../../../../src/tools/area-tool/AreaTool.input.schema.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAElC,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,MAAM,gBAAgB,GAAG,CAAC;KACvB,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KACjB,MAAM,CAAC,CAAC,CAAC;KACT,QAAQ,CAAC,qCAAqC,CAAC,CAAC;AAEnD;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,QAAQ,EAAE,CAAC;SACR,KAAK,CAAC;QACL,UAAU;QACV,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,eAAe;QACf,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;KACnD,CAAC;SACD,QAAQ,CACP,uCAAuC;QACrC,4DAA4D;QAC5D,kCAAkC,CACrC;IACH,KAAK,EAAE,CAAC;SACL,IAAI,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;SACpE,QAAQ,EAAE;SACV,OAAO,CAAC,QAAQ,CAAC;SACjB,QAAQ,CAAC,8BAA8B,CAAC;CAC5C,CAAC,CAAC"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
// Copyright (c) Mapbox, Inc.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
import { area as turfArea, polygon, multiPolygon } from '@turf/turf';
|
|
4
|
+
import { context, SpanStatusCode, trace } from '@opentelemetry/api';
|
|
5
|
+
import { createLocalToolExecutionContext } from '../../utils/tracing.js';
|
|
6
|
+
import { BaseTool } from '../BaseTool.js';
|
|
7
|
+
import { AreaInputSchema } from './AreaTool.input.schema.js';
|
|
8
|
+
import { AreaOutputSchema } from './AreaTool.output.schema.js';
|
|
9
|
+
/**
|
|
10
|
+
* AreaTool - Calculate the area of a polygon or multipolygon
|
|
11
|
+
*/
|
|
12
|
+
export class AreaTool extends BaseTool {
|
|
13
|
+
name = 'area_tool';
|
|
14
|
+
description = 'Calculate the area of a polygon or multipolygon. ' +
|
|
15
|
+
'Supports various units including square meters, kilometers, acres, and hectares. ' +
|
|
16
|
+
'Works offline without API calls.';
|
|
17
|
+
annotations = {
|
|
18
|
+
title: 'Calculate Area',
|
|
19
|
+
readOnlyHint: true,
|
|
20
|
+
destructiveHint: false,
|
|
21
|
+
idempotentHint: true,
|
|
22
|
+
openWorldHint: false
|
|
23
|
+
};
|
|
24
|
+
constructor() {
|
|
25
|
+
super({
|
|
26
|
+
inputSchema: AreaInputSchema,
|
|
27
|
+
outputSchema: AreaOutputSchema
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
async run(rawInput) {
|
|
31
|
+
const toolContext = createLocalToolExecutionContext(this.name, 0);
|
|
32
|
+
return await context.with(trace.setSpan(context.active(), toolContext.span), async () => {
|
|
33
|
+
try {
|
|
34
|
+
const input = AreaInputSchema.parse(rawInput);
|
|
35
|
+
// Determine if it's a polygon or multipolygon based on depth
|
|
36
|
+
const isMultiPolygon = Array.isArray(input.geometry[0]) &&
|
|
37
|
+
Array.isArray(input.geometry[0][0]) &&
|
|
38
|
+
Array.isArray(input.geometry[0][0][0]);
|
|
39
|
+
const geom = isMultiPolygon
|
|
40
|
+
? multiPolygon(input.geometry)
|
|
41
|
+
: polygon(input.geometry);
|
|
42
|
+
// Calculate area in square meters first
|
|
43
|
+
const areaInSquareMeters = turfArea(geom);
|
|
44
|
+
// Convert to requested units
|
|
45
|
+
let area;
|
|
46
|
+
switch (input.units) {
|
|
47
|
+
case 'meters':
|
|
48
|
+
area = areaInSquareMeters;
|
|
49
|
+
break;
|
|
50
|
+
case 'kilometers':
|
|
51
|
+
area = areaInSquareMeters / 1000000;
|
|
52
|
+
break;
|
|
53
|
+
case 'feet':
|
|
54
|
+
area = areaInSquareMeters * 10.7639;
|
|
55
|
+
break;
|
|
56
|
+
case 'miles':
|
|
57
|
+
area = areaInSquareMeters / 2589988.11;
|
|
58
|
+
break;
|
|
59
|
+
case 'acres':
|
|
60
|
+
area = areaInSquareMeters / 4046.86;
|
|
61
|
+
break;
|
|
62
|
+
case 'hectares':
|
|
63
|
+
area = areaInSquareMeters / 10000;
|
|
64
|
+
break;
|
|
65
|
+
default:
|
|
66
|
+
area = areaInSquareMeters;
|
|
67
|
+
}
|
|
68
|
+
const result = {
|
|
69
|
+
area: Math.round(area * 1000) / 1000,
|
|
70
|
+
units: input.units
|
|
71
|
+
};
|
|
72
|
+
const validatedResult = this.validateOutput(result);
|
|
73
|
+
const text = `Area: ${validatedResult.area} square ${validatedResult.units}`;
|
|
74
|
+
toolContext.span.setStatus({ code: SpanStatusCode.OK });
|
|
75
|
+
toolContext.span.end();
|
|
76
|
+
return {
|
|
77
|
+
content: [{ type: 'text', text }],
|
|
78
|
+
structuredContent: validatedResult,
|
|
79
|
+
isError: false
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
84
|
+
toolContext.span.setStatus({
|
|
85
|
+
code: SpanStatusCode.ERROR,
|
|
86
|
+
message: errorMessage
|
|
87
|
+
});
|
|
88
|
+
toolContext.span.end();
|
|
89
|
+
this.log('error', `${this.name}: ${errorMessage}`);
|
|
90
|
+
return {
|
|
91
|
+
content: [
|
|
92
|
+
{ type: 'text', text: `AreaTool: ${errorMessage}` }
|
|
93
|
+
],
|
|
94
|
+
isError: true
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=AreaTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AreaTool.js","sourceRoot":"","sources":["../../../../src/tools/area-tool/AreaTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Output schema for AreaTool
|
|
4
|
+
*/
|
|
5
|
+
export declare const AreaOutputSchema: z.ZodObject<{
|
|
6
|
+
area: z.ZodNumber;
|
|
7
|
+
units: z.ZodString;
|
|
8
|
+
}, "strip", z.ZodTypeAny, {
|
|
9
|
+
units: string;
|
|
10
|
+
area: number;
|
|
11
|
+
}, {
|
|
12
|
+
units: string;
|
|
13
|
+
area: number;
|
|
14
|
+
}>;
|
|
15
|
+
/**
|
|
16
|
+
* Type inference for AreaOutput
|
|
17
|
+
*/
|
|
18
|
+
export type AreaOutput = z.infer<typeof AreaOutputSchema>;
|
|
19
|
+
//# sourceMappingURL=AreaTool.output.schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AreaTool.output.schema.d.ts","sourceRoot":"","sources":["../../../../src/tools/area-tool/AreaTool.output.schema.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;EAG3B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// Copyright (c) Mapbox, Inc.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
/**
|
|
5
|
+
* Output schema for AreaTool
|
|
6
|
+
*/
|
|
7
|
+
export const AreaOutputSchema = z.object({
|
|
8
|
+
area: z.number().describe('Calculated area'),
|
|
9
|
+
units: z.string().describe('Unit of measurement')
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=AreaTool.output.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AreaTool.output.schema.js","sourceRoot":"","sources":["../../../../src/tools/area-tool/AreaTool.output.schema.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAElC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC5C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;CAClD,CAAC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { BaseTool } from '../BaseTool.js';
|
|
2
|
+
import { BearingInputSchema } from './BearingTool.input.schema.js';
|
|
3
|
+
import { BearingOutputSchema } from './BearingTool.output.schema.js';
|
|
4
|
+
import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
|
|
5
|
+
/**
|
|
6
|
+
* BearingTool - Calculate the bearing between two geographic coordinates
|
|
7
|
+
*/
|
|
8
|
+
export declare class BearingTool extends BaseTool<typeof BearingInputSchema, typeof BearingOutputSchema> {
|
|
9
|
+
readonly name = "bearing_tool";
|
|
10
|
+
readonly description: string;
|
|
11
|
+
readonly annotations: {
|
|
12
|
+
title: string;
|
|
13
|
+
readOnlyHint: boolean;
|
|
14
|
+
destructiveHint: boolean;
|
|
15
|
+
idempotentHint: boolean;
|
|
16
|
+
openWorldHint: boolean;
|
|
17
|
+
};
|
|
18
|
+
constructor();
|
|
19
|
+
run(rawInput: unknown): Promise<CallToolResult>;
|
|
20
|
+
private bearingToCardinal;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=BearingTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BearingTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/bearing-tool/BearingTool.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EACL,mBAAmB,EAEpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEzE;;GAEG;AACH,qBAAa,WAAY,SAAQ,QAAQ,CACvC,OAAO,kBAAkB,EACzB,OAAO,mBAAmB,CAC3B;IACC,QAAQ,CAAC,IAAI,kBAAkB;IAC/B,QAAQ,CAAC,WAAW,SAGiB;IAErC,QAAQ,CAAC,WAAW;;;;;;MAMlB;;IASI,GAAG,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC;IA2DrD,OAAO,CAAC,iBAAiB;CAK1B"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import z from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Input schema for BearingTool
|
|
4
|
+
*/
|
|
5
|
+
export declare const BearingInputSchema: z.ZodObject<{
|
|
6
|
+
from: z.ZodObject<{
|
|
7
|
+
longitude: z.ZodNumber;
|
|
8
|
+
latitude: z.ZodNumber;
|
|
9
|
+
}, "strip", z.ZodTypeAny, {
|
|
10
|
+
longitude: number;
|
|
11
|
+
latitude: number;
|
|
12
|
+
}, {
|
|
13
|
+
longitude: number;
|
|
14
|
+
latitude: number;
|
|
15
|
+
}>;
|
|
16
|
+
to: z.ZodObject<{
|
|
17
|
+
longitude: z.ZodNumber;
|
|
18
|
+
latitude: z.ZodNumber;
|
|
19
|
+
}, "strip", z.ZodTypeAny, {
|
|
20
|
+
longitude: number;
|
|
21
|
+
latitude: number;
|
|
22
|
+
}, {
|
|
23
|
+
longitude: number;
|
|
24
|
+
latitude: number;
|
|
25
|
+
}>;
|
|
26
|
+
}, "strip", z.ZodTypeAny, {
|
|
27
|
+
from: {
|
|
28
|
+
longitude: number;
|
|
29
|
+
latitude: number;
|
|
30
|
+
};
|
|
31
|
+
to: {
|
|
32
|
+
longitude: number;
|
|
33
|
+
latitude: number;
|
|
34
|
+
};
|
|
35
|
+
}, {
|
|
36
|
+
from: {
|
|
37
|
+
longitude: number;
|
|
38
|
+
latitude: number;
|
|
39
|
+
};
|
|
40
|
+
to: {
|
|
41
|
+
longitude: number;
|
|
42
|
+
latitude: number;
|
|
43
|
+
};
|
|
44
|
+
}>;
|
|
45
|
+
/**
|
|
46
|
+
* Type inference for BearingInput
|
|
47
|
+
*/
|
|
48
|
+
export type BearingInput = z.infer<typeof BearingInputSchema>;
|
|
49
|
+
//# sourceMappingURL=BearingTool.input.schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BearingTool.input.schema.d.ts","sourceRoot":"","sources":["../../../../src/tools/bearing-tool/BearingTool.input.schema.ts"],"names":[],"mappings":"AAGA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAa7B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// Copyright (c) Mapbox, Inc.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
import z from 'zod';
|
|
4
|
+
/**
|
|
5
|
+
* Input schema for BearingTool
|
|
6
|
+
*/
|
|
7
|
+
export const BearingInputSchema = z.object({
|
|
8
|
+
from: z
|
|
9
|
+
.object({
|
|
10
|
+
longitude: z.number().min(-180).max(180),
|
|
11
|
+
latitude: z.number().min(-90).max(90)
|
|
12
|
+
})
|
|
13
|
+
.describe('Starting coordinate'),
|
|
14
|
+
to: z
|
|
15
|
+
.object({
|
|
16
|
+
longitude: z.number().min(-180).max(180),
|
|
17
|
+
latitude: z.number().min(-90).max(90)
|
|
18
|
+
})
|
|
19
|
+
.describe('Ending coordinate')
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=BearingTool.input.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BearingTool.input.schema.js","sourceRoot":"","sources":["../../../../src/tools/bearing-tool/BearingTool.input.schema.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAElC,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC;SACJ,MAAM,CAAC;QACN,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QACxC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;KACtC,CAAC;SACD,QAAQ,CAAC,qBAAqB,CAAC;IAClC,EAAE,EAAE,CAAC;SACF,MAAM,CAAC;QACN,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QACxC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;KACtC,CAAC;SACD,QAAQ,CAAC,mBAAmB,CAAC;CACjC,CAAC,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
// Copyright (c) Mapbox, Inc.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
import { bearing as turfBearing } from '@turf/turf';
|
|
4
|
+
import { context, SpanStatusCode, trace } from '@opentelemetry/api';
|
|
5
|
+
import { createLocalToolExecutionContext } from '../../utils/tracing.js';
|
|
6
|
+
import { BaseTool } from '../BaseTool.js';
|
|
7
|
+
import { BearingInputSchema } from './BearingTool.input.schema.js';
|
|
8
|
+
import { BearingOutputSchema } from './BearingTool.output.schema.js';
|
|
9
|
+
/**
|
|
10
|
+
* BearingTool - Calculate the bearing between two geographic coordinates
|
|
11
|
+
*/
|
|
12
|
+
export class BearingTool extends BaseTool {
|
|
13
|
+
name = 'bearing_tool';
|
|
14
|
+
description = 'Calculate the bearing (compass direction) from one point to another. ' +
|
|
15
|
+
'Returns bearing in degrees where 0° is North, 90° is East, 180° is South, and 270° is West. ' +
|
|
16
|
+
'Works offline without API calls.';
|
|
17
|
+
annotations = {
|
|
18
|
+
title: 'Calculate Bearing',
|
|
19
|
+
readOnlyHint: true,
|
|
20
|
+
destructiveHint: false,
|
|
21
|
+
idempotentHint: true,
|
|
22
|
+
openWorldHint: false
|
|
23
|
+
};
|
|
24
|
+
constructor() {
|
|
25
|
+
super({
|
|
26
|
+
inputSchema: BearingInputSchema,
|
|
27
|
+
outputSchema: BearingOutputSchema
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
async run(rawInput) {
|
|
31
|
+
const toolContext = createLocalToolExecutionContext(this.name, 0);
|
|
32
|
+
return await context.with(trace.setSpan(context.active(), toolContext.span), async () => {
|
|
33
|
+
try {
|
|
34
|
+
const input = BearingInputSchema.parse(rawInput);
|
|
35
|
+
const { from, to } = input;
|
|
36
|
+
const bearing = turfBearing([from.longitude, from.latitude], [to.longitude, to.latitude]);
|
|
37
|
+
// Convert from -180 to 180 range to 0-360 range
|
|
38
|
+
const normalizedBearing = bearing < 0 ? bearing + 360 : bearing;
|
|
39
|
+
const result = {
|
|
40
|
+
bearing: Math.round(normalizedBearing * 100) / 100,
|
|
41
|
+
from,
|
|
42
|
+
to
|
|
43
|
+
};
|
|
44
|
+
const validatedResult = this.validateOutput(result);
|
|
45
|
+
const text = `Bearing: ${validatedResult.bearing}° ` +
|
|
46
|
+
`(${this.bearingToCardinal(validatedResult.bearing)})\n` +
|
|
47
|
+
`From: [${validatedResult.from.longitude}, ${validatedResult.from.latitude}]\n` +
|
|
48
|
+
`To: [${validatedResult.to.longitude}, ${validatedResult.to.latitude}]`;
|
|
49
|
+
toolContext.span.setStatus({ code: SpanStatusCode.OK });
|
|
50
|
+
toolContext.span.end();
|
|
51
|
+
return {
|
|
52
|
+
content: [{ type: 'text', text }],
|
|
53
|
+
structuredContent: validatedResult,
|
|
54
|
+
isError: false
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
59
|
+
toolContext.span.setStatus({
|
|
60
|
+
code: SpanStatusCode.ERROR,
|
|
61
|
+
message: errorMessage
|
|
62
|
+
});
|
|
63
|
+
toolContext.span.end();
|
|
64
|
+
this.log('error', `${this.name}: ${errorMessage}`);
|
|
65
|
+
return {
|
|
66
|
+
content: [
|
|
67
|
+
{ type: 'text', text: `BearingTool: ${errorMessage}` }
|
|
68
|
+
],
|
|
69
|
+
isError: true
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
bearingToCardinal(bearing) {
|
|
75
|
+
const directions = ['N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW'];
|
|
76
|
+
const index = Math.round(bearing / 45) % 8;
|
|
77
|
+
return directions[index];
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=BearingTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BearingTool.js","sourceRoot":"","sources":["../../../../src/tools/bearing-tool/BearingTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Output schema for BearingTool
|
|
4
|
+
*/
|
|
5
|
+
export declare const BearingOutputSchema: z.ZodObject<{
|
|
6
|
+
bearing: z.ZodNumber;
|
|
7
|
+
from: z.ZodObject<{
|
|
8
|
+
longitude: z.ZodNumber;
|
|
9
|
+
latitude: z.ZodNumber;
|
|
10
|
+
}, "strip", z.ZodTypeAny, {
|
|
11
|
+
longitude: number;
|
|
12
|
+
latitude: number;
|
|
13
|
+
}, {
|
|
14
|
+
longitude: number;
|
|
15
|
+
latitude: number;
|
|
16
|
+
}>;
|
|
17
|
+
to: z.ZodObject<{
|
|
18
|
+
longitude: z.ZodNumber;
|
|
19
|
+
latitude: z.ZodNumber;
|
|
20
|
+
}, "strip", z.ZodTypeAny, {
|
|
21
|
+
longitude: number;
|
|
22
|
+
latitude: number;
|
|
23
|
+
}, {
|
|
24
|
+
longitude: number;
|
|
25
|
+
latitude: number;
|
|
26
|
+
}>;
|
|
27
|
+
}, "strip", z.ZodTypeAny, {
|
|
28
|
+
from: {
|
|
29
|
+
longitude: number;
|
|
30
|
+
latitude: number;
|
|
31
|
+
};
|
|
32
|
+
to: {
|
|
33
|
+
longitude: number;
|
|
34
|
+
latitude: number;
|
|
35
|
+
};
|
|
36
|
+
bearing: number;
|
|
37
|
+
}, {
|
|
38
|
+
from: {
|
|
39
|
+
longitude: number;
|
|
40
|
+
latitude: number;
|
|
41
|
+
};
|
|
42
|
+
to: {
|
|
43
|
+
longitude: number;
|
|
44
|
+
latitude: number;
|
|
45
|
+
};
|
|
46
|
+
bearing: number;
|
|
47
|
+
}>;
|
|
48
|
+
/**
|
|
49
|
+
* Type inference for BearingOutput
|
|
50
|
+
*/
|
|
51
|
+
export type BearingOutput = z.infer<typeof BearingOutputSchema>;
|
|
52
|
+
//# sourceMappingURL=BearingTool.output.schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BearingTool.output.schema.d.ts","sourceRoot":"","sources":["../../../../src/tools/bearing-tool/BearingTool.output.schema.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU9B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// Copyright (c) Mapbox, Inc.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
/**
|
|
5
|
+
* Output schema for BearingTool
|
|
6
|
+
*/
|
|
7
|
+
export const BearingOutputSchema = z.object({
|
|
8
|
+
bearing: z.number().describe('Bearing in degrees (0-360, where 0 is North)'),
|
|
9
|
+
from: z.object({
|
|
10
|
+
longitude: z.number(),
|
|
11
|
+
latitude: z.number()
|
|
12
|
+
}),
|
|
13
|
+
to: z.object({
|
|
14
|
+
longitude: z.number(),
|
|
15
|
+
latitude: z.number()
|
|
16
|
+
})
|
|
17
|
+
});
|
|
18
|
+
//# sourceMappingURL=BearingTool.output.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BearingTool.output.schema.js","sourceRoot":"","sources":["../../../../src/tools/bearing-tool/BearingTool.output.schema.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAElC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;IAC5E,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACb,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;KACrB,CAAC;IACF,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;QACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;KACrB,CAAC;CACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { BaseTool } from '../BaseTool.js';
|
|
2
|
+
import { BoundingBoxInputSchema } from './BoundingBoxTool.input.schema.js';
|
|
3
|
+
import { BoundingBoxOutputSchema } from './BoundingBoxTool.output.schema.js';
|
|
4
|
+
import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
|
|
5
|
+
/**
|
|
6
|
+
* BoundingBoxTool - Calculate the bounding box of a geometry
|
|
7
|
+
*/
|
|
8
|
+
export declare class BoundingBoxTool extends BaseTool<typeof BoundingBoxInputSchema, typeof BoundingBoxOutputSchema> {
|
|
9
|
+
readonly name = "bbox_tool";
|
|
10
|
+
readonly description: string;
|
|
11
|
+
readonly annotations: {
|
|
12
|
+
title: string;
|
|
13
|
+
readOnlyHint: boolean;
|
|
14
|
+
destructiveHint: boolean;
|
|
15
|
+
idempotentHint: boolean;
|
|
16
|
+
openWorldHint: boolean;
|
|
17
|
+
};
|
|
18
|
+
constructor();
|
|
19
|
+
run(rawInput: unknown): Promise<CallToolResult>;
|
|
20
|
+
private getArrayDepth;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=BoundingBoxTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BoundingBoxTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/bounding-box-tool/BoundingBoxTool.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EACL,uBAAuB,EAExB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEzE;;GAEG;AACH,qBAAa,eAAgB,SAAQ,QAAQ,CAC3C,OAAO,sBAAsB,EAC7B,OAAO,uBAAuB,CAC/B;IACC,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,WAAW,SAGiB;IAErC,QAAQ,CAAC,WAAW;;;;;;MAMlB;;IASI,GAAG,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC;IA6ErD,OAAO,CAAC,aAAa;CAKtB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import z from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Input schema for BoundingBoxTool
|
|
4
|
+
*/
|
|
5
|
+
export declare const BoundingBoxInputSchema: z.ZodObject<{
|
|
6
|
+
geometry: z.ZodUnion<[z.ZodArray<z.ZodNumber, "many">, z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">, z.ZodArray<z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">, "many">, z.ZodArray<z.ZodArray<z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">, "many">, "many">]>;
|
|
7
|
+
}, "strip", z.ZodTypeAny, {
|
|
8
|
+
geometry: number[] | number[][] | number[][][] | number[][][][];
|
|
9
|
+
}, {
|
|
10
|
+
geometry: number[] | number[][] | number[][][] | number[][][][];
|
|
11
|
+
}>;
|
|
12
|
+
/**
|
|
13
|
+
* Type inference for BoundingBoxInput
|
|
14
|
+
*/
|
|
15
|
+
export type BoundingBoxInput = z.infer<typeof BoundingBoxInputSchema>;
|
|
16
|
+
//# sourceMappingURL=BoundingBoxTool.input.schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BoundingBoxTool.input.schema.d.ts","sourceRoot":"","sources":["../../../../src/tools/bounding-box-tool/BoundingBoxTool.input.schema.ts"],"names":[],"mappings":"AAGA,OAAO,CAAC,MAAM,KAAK,CAAC;AAOpB;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;EAejC,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// Copyright (c) Mapbox, Inc.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
import z from 'zod';
|
|
4
|
+
const CoordinateSchema = z
|
|
5
|
+
.array(z.number())
|
|
6
|
+
.length(2)
|
|
7
|
+
.describe('Coordinate as [longitude, latitude]');
|
|
8
|
+
/**
|
|
9
|
+
* Input schema for BoundingBoxTool
|
|
10
|
+
*/
|
|
11
|
+
export const BoundingBoxInputSchema = z.object({
|
|
12
|
+
geometry: z
|
|
13
|
+
.union([
|
|
14
|
+
// Point
|
|
15
|
+
z.array(z.number()).length(2),
|
|
16
|
+
// LineString or array of points
|
|
17
|
+
z.array(CoordinateSchema).min(1),
|
|
18
|
+
// Polygon
|
|
19
|
+
z.array(z.array(CoordinateSchema)).min(1),
|
|
20
|
+
// MultiPolygon
|
|
21
|
+
z.array(z.array(z.array(CoordinateSchema))).min(1)
|
|
22
|
+
])
|
|
23
|
+
.describe('Geometry coordinates (Point, LineString, Polygon, or MultiPolygon)')
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=BoundingBoxTool.input.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BoundingBoxTool.input.schema.js","sourceRoot":"","sources":["../../../../src/tools/bounding-box-tool/BoundingBoxTool.input.schema.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAElC,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,MAAM,gBAAgB,GAAG,CAAC;KACvB,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KACjB,MAAM,CAAC,CAAC,CAAC;KACT,QAAQ,CAAC,qCAAqC,CAAC,CAAC;AAEnD;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,QAAQ,EAAE,CAAC;SACR,KAAK,CAAC;QACL,QAAQ;QACR,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7B,gCAAgC;QAChC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,UAAU;QACV,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,eAAe;QACf,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;KACnD,CAAC;SACD,QAAQ,CACP,oEAAoE,CACrE;CACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
// Copyright (c) Mapbox, Inc.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
import { bbox as turfBbox, point, lineString, polygon, multiPolygon } from '@turf/turf';
|
|
4
|
+
import { context, SpanStatusCode, trace } from '@opentelemetry/api';
|
|
5
|
+
import { createLocalToolExecutionContext } from '../../utils/tracing.js';
|
|
6
|
+
import { BaseTool } from '../BaseTool.js';
|
|
7
|
+
import { BoundingBoxInputSchema } from './BoundingBoxTool.input.schema.js';
|
|
8
|
+
import { BoundingBoxOutputSchema } from './BoundingBoxTool.output.schema.js';
|
|
9
|
+
/**
|
|
10
|
+
* BoundingBoxTool - Calculate the bounding box of a geometry
|
|
11
|
+
*/
|
|
12
|
+
export class BoundingBoxTool extends BaseTool {
|
|
13
|
+
name = 'bbox_tool';
|
|
14
|
+
description = 'Calculate the bounding box (extent) of any geometry. ' +
|
|
15
|
+
'Returns the minimum and maximum longitude and latitude that encompass the geometry. ' +
|
|
16
|
+
'Works offline without API calls.';
|
|
17
|
+
annotations = {
|
|
18
|
+
title: 'Calculate Bounding Box',
|
|
19
|
+
readOnlyHint: true,
|
|
20
|
+
destructiveHint: false,
|
|
21
|
+
idempotentHint: true,
|
|
22
|
+
openWorldHint: false
|
|
23
|
+
};
|
|
24
|
+
constructor() {
|
|
25
|
+
super({
|
|
26
|
+
inputSchema: BoundingBoxInputSchema,
|
|
27
|
+
outputSchema: BoundingBoxOutputSchema
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
async run(rawInput) {
|
|
31
|
+
const toolContext = createLocalToolExecutionContext(this.name, 0);
|
|
32
|
+
return await context.with(trace.setSpan(context.active(), toolContext.span), async () => {
|
|
33
|
+
try {
|
|
34
|
+
const input = BoundingBoxInputSchema.parse(rawInput);
|
|
35
|
+
// Determine geometry type based on structure depth
|
|
36
|
+
let geom;
|
|
37
|
+
const depth = this.getArrayDepth(input.geometry);
|
|
38
|
+
if (depth === 1) {
|
|
39
|
+
// Point [lon, lat]
|
|
40
|
+
geom = point(input.geometry);
|
|
41
|
+
}
|
|
42
|
+
else if (depth === 2) {
|
|
43
|
+
// LineString [[lon, lat], [lon, lat], ...]
|
|
44
|
+
geom = lineString(input.geometry);
|
|
45
|
+
}
|
|
46
|
+
else if (depth === 3) {
|
|
47
|
+
// Polygon [[[lon, lat], ...]]
|
|
48
|
+
geom = polygon(input.geometry);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
// MultiPolygon [[[[lon, lat], ...]]]
|
|
52
|
+
geom = multiPolygon(input.geometry);
|
|
53
|
+
}
|
|
54
|
+
const bboxArray = turfBbox(geom);
|
|
55
|
+
const result = {
|
|
56
|
+
bbox: [
|
|
57
|
+
Math.round(bboxArray[0] * 1000000) / 1000000,
|
|
58
|
+
Math.round(bboxArray[1] * 1000000) / 1000000,
|
|
59
|
+
Math.round(bboxArray[2] * 1000000) / 1000000,
|
|
60
|
+
Math.round(bboxArray[3] * 1000000) / 1000000
|
|
61
|
+
]
|
|
62
|
+
};
|
|
63
|
+
const validatedResult = this.validateOutput(result);
|
|
64
|
+
const text = `Bounding Box: [${validatedResult.bbox[0]}, ${validatedResult.bbox[1]}, ${validatedResult.bbox[2]}, ${validatedResult.bbox[3]}]\n` +
|
|
65
|
+
`Southwest: [${validatedResult.bbox[0]}, ${validatedResult.bbox[1]}]\n` +
|
|
66
|
+
`Northeast: [${validatedResult.bbox[2]}, ${validatedResult.bbox[3]}]`;
|
|
67
|
+
toolContext.span.setStatus({ code: SpanStatusCode.OK });
|
|
68
|
+
toolContext.span.end();
|
|
69
|
+
return {
|
|
70
|
+
content: [{ type: 'text', text }],
|
|
71
|
+
structuredContent: validatedResult,
|
|
72
|
+
isError: false
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
77
|
+
toolContext.span.setStatus({
|
|
78
|
+
code: SpanStatusCode.ERROR,
|
|
79
|
+
message: errorMessage
|
|
80
|
+
});
|
|
81
|
+
toolContext.span.end();
|
|
82
|
+
this.log('error', `${this.name}: ${errorMessage}`);
|
|
83
|
+
return {
|
|
84
|
+
content: [
|
|
85
|
+
{
|
|
86
|
+
type: 'text',
|
|
87
|
+
text: `BoundingBoxTool: ${errorMessage}`
|
|
88
|
+
}
|
|
89
|
+
],
|
|
90
|
+
isError: true
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
getArrayDepth(arr) {
|
|
96
|
+
if (!Array.isArray(arr))
|
|
97
|
+
return 0;
|
|
98
|
+
if (!Array.isArray(arr[0]))
|
|
99
|
+
return 1;
|
|
100
|
+
return 1 + this.getArrayDepth(arr[0]);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=BoundingBoxTool.js.map
|