@mapbox/mcp-server 0.8.1 → 0.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +165 -0
- package/dist/commonjs/index.js +15 -1
- package/dist/commonjs/index.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 +12 -1
- package/dist/commonjs/tools/toolRegistry.d.ts.map +1 -1
- package/dist/commonjs/tools/toolRegistry.js +22 -0
- 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 +15 -1
- package/dist/esm/index.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 +12 -1
- package/dist/esm/tools/toolRegistry.d.ts.map +1 -1
- package/dist/esm/tools/toolRegistry.js +22 -0
- 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.2.patch} +0 -0
|
@@ -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 MidpointTool
|
|
6
|
+
*/
|
|
7
|
+
export const MidpointInputSchema = 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=MidpointTool.input.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MidpointTool.input.schema.js","sourceRoot":"","sources":["../../../../src/tools/midpoint-tool/MidpointTool.input.schema.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAElC,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,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,77 @@
|
|
|
1
|
+
// Copyright (c) Mapbox, Inc.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
import { midpoint as turfMidpoint, point } 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 { MidpointInputSchema } from './MidpointTool.input.schema.js';
|
|
8
|
+
import { MidpointOutputSchema } from './MidpointTool.output.schema.js';
|
|
9
|
+
/**
|
|
10
|
+
* MidpointTool - Calculate the geographic midpoint between two coordinates
|
|
11
|
+
*/
|
|
12
|
+
export class MidpointTool extends BaseTool {
|
|
13
|
+
name = 'midpoint_tool';
|
|
14
|
+
description = 'Calculate the geographic midpoint between two coordinates. ' +
|
|
15
|
+
'Returns the point that is halfway between the two input points along the great circle path. ' +
|
|
16
|
+
'Works offline without API calls.';
|
|
17
|
+
annotations = {
|
|
18
|
+
title: 'Calculate Midpoint',
|
|
19
|
+
readOnlyHint: true,
|
|
20
|
+
destructiveHint: false,
|
|
21
|
+
idempotentHint: true,
|
|
22
|
+
openWorldHint: false
|
|
23
|
+
};
|
|
24
|
+
constructor() {
|
|
25
|
+
super({
|
|
26
|
+
inputSchema: MidpointInputSchema,
|
|
27
|
+
outputSchema: MidpointOutputSchema
|
|
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 = MidpointInputSchema.parse(rawInput);
|
|
35
|
+
const { from, to } = input;
|
|
36
|
+
const pt1 = point([from.longitude, from.latitude]);
|
|
37
|
+
const pt2 = point([to.longitude, to.latitude]);
|
|
38
|
+
const mid = turfMidpoint(pt1, pt2);
|
|
39
|
+
const result = {
|
|
40
|
+
midpoint: {
|
|
41
|
+
longitude: Math.round(mid.geometry.coordinates[0] * 1000000) / 1000000,
|
|
42
|
+
latitude: Math.round(mid.geometry.coordinates[1] * 1000000) / 1000000
|
|
43
|
+
},
|
|
44
|
+
from,
|
|
45
|
+
to
|
|
46
|
+
};
|
|
47
|
+
const validatedResult = this.validateOutput(result);
|
|
48
|
+
const text = `Midpoint: [${validatedResult.midpoint.longitude}, ${validatedResult.midpoint.latitude}]\n` +
|
|
49
|
+
`From: [${validatedResult.from.longitude}, ${validatedResult.from.latitude}]\n` +
|
|
50
|
+
`To: [${validatedResult.to.longitude}, ${validatedResult.to.latitude}]`;
|
|
51
|
+
toolContext.span.setStatus({ code: SpanStatusCode.OK });
|
|
52
|
+
toolContext.span.end();
|
|
53
|
+
return {
|
|
54
|
+
content: [{ type: 'text', text }],
|
|
55
|
+
structuredContent: validatedResult,
|
|
56
|
+
isError: false
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
61
|
+
toolContext.span.setStatus({
|
|
62
|
+
code: SpanStatusCode.ERROR,
|
|
63
|
+
message: errorMessage
|
|
64
|
+
});
|
|
65
|
+
toolContext.span.end();
|
|
66
|
+
this.log('error', `${this.name}: ${errorMessage}`);
|
|
67
|
+
return {
|
|
68
|
+
content: [
|
|
69
|
+
{ type: 'text', text: `MidpointTool: ${errorMessage}` }
|
|
70
|
+
],
|
|
71
|
+
isError: true
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=MidpointTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MidpointTool.js","sourceRoot":"","sources":["../../../../src/tools/midpoint-tool/MidpointTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Output schema for MidpointTool
|
|
4
|
+
*/
|
|
5
|
+
export declare const MidpointOutputSchema: z.ZodObject<{
|
|
6
|
+
midpoint: 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
|
+
from: 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
|
+
to: z.ZodObject<{
|
|
27
|
+
longitude: z.ZodNumber;
|
|
28
|
+
latitude: z.ZodNumber;
|
|
29
|
+
}, "strip", z.ZodTypeAny, {
|
|
30
|
+
longitude: number;
|
|
31
|
+
latitude: number;
|
|
32
|
+
}, {
|
|
33
|
+
longitude: number;
|
|
34
|
+
latitude: number;
|
|
35
|
+
}>;
|
|
36
|
+
}, "strip", z.ZodTypeAny, {
|
|
37
|
+
from: {
|
|
38
|
+
longitude: number;
|
|
39
|
+
latitude: number;
|
|
40
|
+
};
|
|
41
|
+
to: {
|
|
42
|
+
longitude: number;
|
|
43
|
+
latitude: number;
|
|
44
|
+
};
|
|
45
|
+
midpoint: {
|
|
46
|
+
longitude: number;
|
|
47
|
+
latitude: number;
|
|
48
|
+
};
|
|
49
|
+
}, {
|
|
50
|
+
from: {
|
|
51
|
+
longitude: number;
|
|
52
|
+
latitude: number;
|
|
53
|
+
};
|
|
54
|
+
to: {
|
|
55
|
+
longitude: number;
|
|
56
|
+
latitude: number;
|
|
57
|
+
};
|
|
58
|
+
midpoint: {
|
|
59
|
+
longitude: number;
|
|
60
|
+
latitude: number;
|
|
61
|
+
};
|
|
62
|
+
}>;
|
|
63
|
+
/**
|
|
64
|
+
* Type inference for MidpointOutput
|
|
65
|
+
*/
|
|
66
|
+
export type MidpointOutput = z.infer<typeof MidpointOutputSchema>;
|
|
67
|
+
//# sourceMappingURL=MidpointTool.output.schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MidpointTool.output.schema.d.ts","sourceRoot":"","sources":["../../../../src/tools/midpoint-tool/MidpointTool.output.schema.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAa/B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// Copyright (c) Mapbox, Inc.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
/**
|
|
5
|
+
* Output schema for MidpointTool
|
|
6
|
+
*/
|
|
7
|
+
export const MidpointOutputSchema = z.object({
|
|
8
|
+
midpoint: z.object({
|
|
9
|
+
longitude: z.number(),
|
|
10
|
+
latitude: z.number()
|
|
11
|
+
}),
|
|
12
|
+
from: z.object({
|
|
13
|
+
longitude: z.number(),
|
|
14
|
+
latitude: z.number()
|
|
15
|
+
}),
|
|
16
|
+
to: z.object({
|
|
17
|
+
longitude: z.number(),
|
|
18
|
+
latitude: z.number()
|
|
19
|
+
})
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=MidpointTool.output.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MidpointTool.output.schema.js","sourceRoot":"","sources":["../../../../src/tools/midpoint-tool/MidpointTool.output.schema.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAElC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;QACjB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;KACrB,CAAC;IACF,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,28 @@
|
|
|
1
|
+
import { MapboxApiBasedTool } from '../MapboxApiBasedTool.js';
|
|
2
|
+
import { OptimizationInputSchema, type OptimizationInput } from './OptimizationTool.input.schema.js';
|
|
3
|
+
import { OptimizationOutputSchema } from './OptimizationTool.output.schema.js';
|
|
4
|
+
import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
|
|
5
|
+
import type { ToolExecutionContext } from '../../utils/tracing.js';
|
|
6
|
+
import type { HttpRequest } from '../../utils/types.js';
|
|
7
|
+
/**
|
|
8
|
+
* OptimizationTool - Find optimal route through multiple coordinates (V1 API)
|
|
9
|
+
*
|
|
10
|
+
* Uses the Mapbox Optimization API V1 to solve the Traveling Salesman Problem
|
|
11
|
+
* and return the shortest route by travel time through a set of coordinates.
|
|
12
|
+
*/
|
|
13
|
+
export declare class OptimizationTool extends MapboxApiBasedTool<typeof OptimizationInputSchema, typeof OptimizationOutputSchema> {
|
|
14
|
+
readonly name = "optimization_tool";
|
|
15
|
+
readonly description: string;
|
|
16
|
+
readonly annotations: {
|
|
17
|
+
title: string;
|
|
18
|
+
readOnlyHint: boolean;
|
|
19
|
+
destructiveHint: boolean;
|
|
20
|
+
idempotentHint: boolean;
|
|
21
|
+
openWorldHint: boolean;
|
|
22
|
+
};
|
|
23
|
+
constructor(params: {
|
|
24
|
+
httpRequest: HttpRequest;
|
|
25
|
+
});
|
|
26
|
+
protected execute(input: OptimizationInput, accessToken: string, toolContext: ToolExecutionContext): Promise<CallToolResult>;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=OptimizationTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OptimizationTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/optimization-tool/OptimizationTool.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EACL,uBAAuB,EACvB,KAAK,iBAAiB,EACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,wBAAwB,EAEzB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,kBAAkB,CACtD,OAAO,uBAAuB,EAC9B,OAAO,wBAAwB,CAChC;IACC,QAAQ,CAAC,IAAI,uBAAuB;IACpC,QAAQ,CAAC,WAAW,SAGmE;IAEvF,QAAQ,CAAC,WAAW;;;;;;MAMlB;gBAEU,MAAM,EAAE;QAAE,WAAW,EAAE,WAAW,CAAA;KAAE;cAQhC,OAAO,CACrB,KAAK,EAAE,iBAAiB,EACxB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,oBAAoB,GAChC,OAAO,CAAC,cAAc,CAAC;CAuI3B"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import z from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Input schema for OptimizationTool (V1 API)
|
|
4
|
+
*
|
|
5
|
+
* The V1 Optimization API finds the optimal (shortest by travel time) route
|
|
6
|
+
* through a set of coordinates, solving the Traveling Salesman Problem.
|
|
7
|
+
*/
|
|
8
|
+
export declare const OptimizationInputSchema: z.ZodObject<{
|
|
9
|
+
coordinates: z.ZodArray<z.ZodObject<{
|
|
10
|
+
longitude: z.ZodNumber;
|
|
11
|
+
latitude: z.ZodNumber;
|
|
12
|
+
}, "strip", z.ZodTypeAny, {
|
|
13
|
+
longitude: number;
|
|
14
|
+
latitude: number;
|
|
15
|
+
}, {
|
|
16
|
+
longitude: number;
|
|
17
|
+
latitude: number;
|
|
18
|
+
}>, "many">;
|
|
19
|
+
profile: z.ZodDefault<z.ZodOptional<z.ZodEnum<["mapbox/driving", "mapbox/walking", "mapbox/cycling", "mapbox/driving-traffic"]>>>;
|
|
20
|
+
source: z.ZodDefault<z.ZodOptional<z.ZodEnum<["any", "first"]>>>;
|
|
21
|
+
destination: z.ZodDefault<z.ZodOptional<z.ZodEnum<["any", "last"]>>>;
|
|
22
|
+
roundtrip: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
23
|
+
geometries: z.ZodDefault<z.ZodOptional<z.ZodEnum<["geojson", "polyline", "polyline6"]>>>;
|
|
24
|
+
overview: z.ZodDefault<z.ZodOptional<z.ZodEnum<["full", "simplified", "false"]>>>;
|
|
25
|
+
steps: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
26
|
+
annotations: z.ZodOptional<z.ZodArray<z.ZodEnum<["duration", "distance", "speed"]>, "many">>;
|
|
27
|
+
language: z.ZodOptional<z.ZodString>;
|
|
28
|
+
}, "strip", z.ZodTypeAny, {
|
|
29
|
+
coordinates: {
|
|
30
|
+
longitude: number;
|
|
31
|
+
latitude: number;
|
|
32
|
+
}[];
|
|
33
|
+
geometries: "geojson" | "polyline" | "polyline6";
|
|
34
|
+
steps: boolean;
|
|
35
|
+
overview: "false" | "simplified" | "full";
|
|
36
|
+
profile: "mapbox/driving-traffic" | "mapbox/driving" | "mapbox/walking" | "mapbox/cycling";
|
|
37
|
+
source: "any" | "first";
|
|
38
|
+
destination: "any" | "last";
|
|
39
|
+
roundtrip: boolean;
|
|
40
|
+
annotations?: ("duration" | "distance" | "speed")[] | undefined;
|
|
41
|
+
language?: string | undefined;
|
|
42
|
+
}, {
|
|
43
|
+
coordinates: {
|
|
44
|
+
longitude: number;
|
|
45
|
+
latitude: number;
|
|
46
|
+
}[];
|
|
47
|
+
annotations?: ("duration" | "distance" | "speed")[] | undefined;
|
|
48
|
+
language?: string | undefined;
|
|
49
|
+
geometries?: "geojson" | "polyline" | "polyline6" | undefined;
|
|
50
|
+
steps?: boolean | undefined;
|
|
51
|
+
overview?: "false" | "simplified" | "full" | undefined;
|
|
52
|
+
profile?: "mapbox/driving-traffic" | "mapbox/driving" | "mapbox/walking" | "mapbox/cycling" | undefined;
|
|
53
|
+
source?: "any" | "first" | undefined;
|
|
54
|
+
destination?: "any" | "last" | undefined;
|
|
55
|
+
roundtrip?: boolean | undefined;
|
|
56
|
+
}>;
|
|
57
|
+
export type OptimizationInput = z.infer<typeof OptimizationInputSchema>;
|
|
58
|
+
//# sourceMappingURL=OptimizationTool.input.schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OptimizationTool.input.schema.d.ts","sourceRoot":"","sources":["../../../../src/tools/optimization-tool/OptimizationTool.input.schema.ts"],"names":[],"mappings":"AAGA,OAAO,CAAC,MAAM,KAAK,CAAC;AAapB;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2DlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
// Copyright (c) Mapbox, Inc.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
import z from 'zod';
|
|
4
|
+
import { coordinateSchema } from '../../schemas/shared.js';
|
|
5
|
+
// Profile schema (driving, walking, cycling, driving-traffic)
|
|
6
|
+
const profileSchema = z
|
|
7
|
+
.enum([
|
|
8
|
+
'mapbox/driving',
|
|
9
|
+
'mapbox/walking',
|
|
10
|
+
'mapbox/cycling',
|
|
11
|
+
'mapbox/driving-traffic'
|
|
12
|
+
])
|
|
13
|
+
.describe('Routing profile');
|
|
14
|
+
/**
|
|
15
|
+
* Input schema for OptimizationTool (V1 API)
|
|
16
|
+
*
|
|
17
|
+
* The V1 Optimization API finds the optimal (shortest by travel time) route
|
|
18
|
+
* through a set of coordinates, solving the Traveling Salesman Problem.
|
|
19
|
+
*/
|
|
20
|
+
export const OptimizationInputSchema = z.object({
|
|
21
|
+
coordinates: z
|
|
22
|
+
.array(coordinateSchema)
|
|
23
|
+
.min(2, 'At least 2 coordinates are required')
|
|
24
|
+
.max(12, 'Maximum 12 coordinates allowed for V1 API')
|
|
25
|
+
.describe('Array of {longitude, latitude} coordinate pairs to optimize a route through. ' +
|
|
26
|
+
'The V1 API supports 2-12 coordinates and returns the optimal visiting order.'),
|
|
27
|
+
profile: profileSchema
|
|
28
|
+
.optional()
|
|
29
|
+
.default('mapbox/driving')
|
|
30
|
+
.describe('Routing profile to use for optimization'),
|
|
31
|
+
source: z
|
|
32
|
+
.enum(['any', 'first'])
|
|
33
|
+
.optional()
|
|
34
|
+
.default('any')
|
|
35
|
+
.describe('Location to start the trip. "any" allows any coordinate, "first" forces the first coordinate as start.'),
|
|
36
|
+
destination: z
|
|
37
|
+
.enum(['any', 'last'])
|
|
38
|
+
.optional()
|
|
39
|
+
.default('any')
|
|
40
|
+
.describe('Location to end the trip. "any" allows any coordinate, "last" forces the last coordinate as end.'),
|
|
41
|
+
roundtrip: z
|
|
42
|
+
.boolean()
|
|
43
|
+
.optional()
|
|
44
|
+
.default(true)
|
|
45
|
+
.describe('Whether to return to the starting point. Set to false for one-way trips.'),
|
|
46
|
+
geometries: z
|
|
47
|
+
.enum(['geojson', 'polyline', 'polyline6'])
|
|
48
|
+
.optional()
|
|
49
|
+
.default('geojson')
|
|
50
|
+
.describe('Format for route geometry'),
|
|
51
|
+
overview: z
|
|
52
|
+
.enum(['full', 'simplified', 'false'])
|
|
53
|
+
.optional()
|
|
54
|
+
.default('simplified')
|
|
55
|
+
.describe('Detail level of route geometry'),
|
|
56
|
+
steps: z
|
|
57
|
+
.boolean()
|
|
58
|
+
.optional()
|
|
59
|
+
.default(false)
|
|
60
|
+
.describe('Whether to include turn-by-turn instructions'),
|
|
61
|
+
annotations: z
|
|
62
|
+
.array(z.enum(['duration', 'distance', 'speed']))
|
|
63
|
+
.optional()
|
|
64
|
+
.describe('Additional metadata to include for each route segment'),
|
|
65
|
+
language: z
|
|
66
|
+
.string()
|
|
67
|
+
.optional()
|
|
68
|
+
.describe('Language for instructions (if steps=true). ISO 639-1 code (e.g., "en", "es").')
|
|
69
|
+
});
|
|
70
|
+
//# sourceMappingURL=OptimizationTool.input.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OptimizationTool.input.schema.js","sourceRoot":"","sources":["../../../../src/tools/optimization-tool/OptimizationTool.input.schema.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAElC,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,8DAA8D;AAC9D,MAAM,aAAa,GAAG,CAAC;KACpB,IAAI,CAAC;IACJ,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,wBAAwB;CACzB,CAAC;KACD,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AAE/B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,WAAW,EAAE,CAAC;SACX,KAAK,CAAC,gBAAgB,CAAC;SACvB,GAAG,CAAC,CAAC,EAAE,qCAAqC,CAAC;SAC7C,GAAG,CAAC,EAAE,EAAE,2CAA2C,CAAC;SACpD,QAAQ,CACP,+EAA+E;QAC7E,8EAA8E,CACjF;IACH,OAAO,EAAE,aAAa;SACnB,QAAQ,EAAE;SACV,OAAO,CAAC,gBAAgB,CAAC;SACzB,QAAQ,CAAC,yCAAyC,CAAC;IACtD,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SACtB,QAAQ,EAAE;SACV,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CACP,wGAAwG,CACzG;IACH,WAAW,EAAE,CAAC;SACX,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;SACrB,QAAQ,EAAE;SACV,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CACP,kGAAkG,CACnG;IACH,SAAS,EAAE,CAAC;SACT,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CACP,0EAA0E,CAC3E;IACH,UAAU,EAAE,CAAC;SACV,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;SAC1C,QAAQ,EAAE;SACV,OAAO,CAAC,SAAS,CAAC;SAClB,QAAQ,CAAC,2BAA2B,CAAC;IACxC,QAAQ,EAAE,CAAC;SACR,IAAI,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;SACrC,QAAQ,EAAE;SACV,OAAO,CAAC,YAAY,CAAC;SACrB,QAAQ,CAAC,gCAAgC,CAAC;IAC7C,KAAK,EAAE,CAAC;SACL,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,8CAA8C,CAAC;IAC3D,WAAW,EAAE,CAAC;SACX,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;SAChD,QAAQ,EAAE;SACV,QAAQ,CAAC,uDAAuD,CAAC;IACpE,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,+EAA+E,CAChF;CACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
// Copyright (c) Mapbox, Inc.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
import { SpanStatusCode } from '@opentelemetry/api';
|
|
4
|
+
import { MapboxApiBasedTool } from '../MapboxApiBasedTool.js';
|
|
5
|
+
import { OptimizationInputSchema } from './OptimizationTool.input.schema.js';
|
|
6
|
+
import { OptimizationOutputSchema } from './OptimizationTool.output.schema.js';
|
|
7
|
+
/**
|
|
8
|
+
* OptimizationTool - Find optimal route through multiple coordinates (V1 API)
|
|
9
|
+
*
|
|
10
|
+
* Uses the Mapbox Optimization API V1 to solve the Traveling Salesman Problem
|
|
11
|
+
* and return the shortest route by travel time through a set of coordinates.
|
|
12
|
+
*/
|
|
13
|
+
export class OptimizationTool extends MapboxApiBasedTool {
|
|
14
|
+
name = 'optimization_tool';
|
|
15
|
+
description = 'Find the optimal (shortest by travel time) route through a set of 2-12 coordinates. ' +
|
|
16
|
+
'Solves the Traveling Salesman Problem to determine the best visiting order. ' +
|
|
17
|
+
'Supports options for starting point, ending point, and whether to return to start.';
|
|
18
|
+
annotations = {
|
|
19
|
+
title: 'Optimize Multi-Stop Route',
|
|
20
|
+
readOnlyHint: true,
|
|
21
|
+
destructiveHint: false,
|
|
22
|
+
idempotentHint: true,
|
|
23
|
+
openWorldHint: true
|
|
24
|
+
};
|
|
25
|
+
constructor(params) {
|
|
26
|
+
super({
|
|
27
|
+
inputSchema: OptimizationInputSchema,
|
|
28
|
+
outputSchema: OptimizationOutputSchema,
|
|
29
|
+
httpRequest: params.httpRequest
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
async execute(input, accessToken, toolContext) {
|
|
33
|
+
try {
|
|
34
|
+
// Format coordinates for URL: "lon,lat;lon,lat;..."
|
|
35
|
+
const coordinatesStr = input.coordinates
|
|
36
|
+
.map((coord) => `${coord.longitude},${coord.latitude}`)
|
|
37
|
+
.join(';');
|
|
38
|
+
// Build query parameters
|
|
39
|
+
const params = new URLSearchParams({
|
|
40
|
+
access_token: accessToken
|
|
41
|
+
});
|
|
42
|
+
if (input.source) {
|
|
43
|
+
params.set('source', input.source);
|
|
44
|
+
}
|
|
45
|
+
if (input.destination) {
|
|
46
|
+
params.set('destination', input.destination);
|
|
47
|
+
}
|
|
48
|
+
params.set('roundtrip', String(input.roundtrip));
|
|
49
|
+
if (input.geometries) {
|
|
50
|
+
params.set('geometries', input.geometries);
|
|
51
|
+
}
|
|
52
|
+
if (input.overview) {
|
|
53
|
+
params.set('overview', input.overview);
|
|
54
|
+
}
|
|
55
|
+
if (input.steps !== undefined) {
|
|
56
|
+
params.set('steps', String(input.steps));
|
|
57
|
+
}
|
|
58
|
+
if (input.annotations && input.annotations.length > 0) {
|
|
59
|
+
params.set('annotations', input.annotations.join(','));
|
|
60
|
+
}
|
|
61
|
+
if (input.language) {
|
|
62
|
+
params.set('language', input.language);
|
|
63
|
+
}
|
|
64
|
+
// Build URL: GET /optimized-trips/v1/{profile}/{coordinates}
|
|
65
|
+
const url = `${MapboxApiBasedTool.mapboxApiEndpoint}optimized-trips/v1/${input.profile}/${coordinatesStr}?${params.toString()}`;
|
|
66
|
+
toolContext.span.setAttribute('optimization.coordinates_count', input.coordinates.length);
|
|
67
|
+
toolContext.span.setAttribute('optimization.profile', input.profile);
|
|
68
|
+
toolContext.span.setAttribute('optimization.roundtrip', input.roundtrip);
|
|
69
|
+
// Make synchronous GET request
|
|
70
|
+
const response = await this.httpRequest(url);
|
|
71
|
+
if (!response.ok) {
|
|
72
|
+
const errorMessage = await this.getErrorMessage(response);
|
|
73
|
+
toolContext.span.setStatus({
|
|
74
|
+
code: SpanStatusCode.ERROR,
|
|
75
|
+
message: errorMessage
|
|
76
|
+
});
|
|
77
|
+
return {
|
|
78
|
+
content: [
|
|
79
|
+
{
|
|
80
|
+
type: 'text',
|
|
81
|
+
text: `Optimization API error: ${errorMessage}`
|
|
82
|
+
}
|
|
83
|
+
],
|
|
84
|
+
isError: true
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
const data = (await response.json());
|
|
88
|
+
// Validate output
|
|
89
|
+
const validatedResult = this.validateOutput(data);
|
|
90
|
+
// Check for API error in response
|
|
91
|
+
if (validatedResult.code !== 'Ok') {
|
|
92
|
+
const errorMsg = validatedResult.message || validatedResult.code;
|
|
93
|
+
toolContext.span.setStatus({
|
|
94
|
+
code: SpanStatusCode.ERROR,
|
|
95
|
+
message: errorMsg
|
|
96
|
+
});
|
|
97
|
+
return {
|
|
98
|
+
content: [
|
|
99
|
+
{ type: 'text', text: `Optimization error: ${errorMsg}` }
|
|
100
|
+
],
|
|
101
|
+
structuredContent: validatedResult,
|
|
102
|
+
isError: true
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
// Format success response
|
|
106
|
+
const trip = validatedResult.trips[0];
|
|
107
|
+
const durationMin = (trip.duration / 60).toFixed(1);
|
|
108
|
+
const distanceKm = (trip.distance / 1000).toFixed(2);
|
|
109
|
+
const text = `Optimized route through ${validatedResult.waypoints.length} waypoints:\n` +
|
|
110
|
+
`- Total duration: ${durationMin} minutes\n` +
|
|
111
|
+
`- Total distance: ${distanceKm} km\n` +
|
|
112
|
+
`- Optimized order: ${validatedResult.waypoints.map((_, i) => i).join(' → ')}`;
|
|
113
|
+
toolContext.span.setAttribute('optimization.duration_seconds', trip.duration);
|
|
114
|
+
toolContext.span.setAttribute('optimization.distance_meters', trip.distance);
|
|
115
|
+
toolContext.span.setAttribute('optimization.waypoints_count', validatedResult.waypoints.length);
|
|
116
|
+
return {
|
|
117
|
+
content: [{ type: 'text', text }],
|
|
118
|
+
structuredContent: validatedResult,
|
|
119
|
+
isError: false
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
124
|
+
toolContext.span.setStatus({
|
|
125
|
+
code: SpanStatusCode.ERROR,
|
|
126
|
+
message: errorMessage
|
|
127
|
+
});
|
|
128
|
+
this.log('error', `${this.name}: ${errorMessage}`);
|
|
129
|
+
return {
|
|
130
|
+
content: [
|
|
131
|
+
{ type: 'text', text: `OptimizationTool: ${errorMessage}` }
|
|
132
|
+
],
|
|
133
|
+
isError: true
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=OptimizationTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OptimizationTool.js","sourceRoot":"","sources":["../../../../src/tools/optimization-tool/OptimizationTool.ts"],"names":[],"mappings":"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"}
|