@mapbox/mcp-server 0.16.1-dev → 0.17.0-dev
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -0
- package/dist/commonjs/index.js +14 -14
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/prompts/BasePrompt.d.ts +1 -1
- package/dist/commonjs/prompts/BasePrompt.d.ts.map +1 -1
- package/dist/commonjs/prompts/FindPlacesNearbyPrompt.d.ts +1 -1
- package/dist/commonjs/prompts/FindPlacesNearbyPrompt.d.ts.map +1 -1
- package/dist/commonjs/prompts/GetDirectionsPrompt.d.ts +1 -1
- package/dist/commonjs/prompts/GetDirectionsPrompt.d.ts.map +1 -1
- package/dist/commonjs/prompts/SearchAlongRoutePrompt.d.ts +1 -1
- package/dist/commonjs/prompts/SearchAlongRoutePrompt.d.ts.map +1 -1
- package/dist/commonjs/prompts/ShowReachableAreasPrompt.d.ts +1 -1
- package/dist/commonjs/prompts/ShowReachableAreasPrompt.d.ts.map +1 -1
- package/dist/commonjs/resources/BaseResource.d.ts +2 -4
- package/dist/commonjs/resources/BaseResource.d.ts.map +1 -1
- package/dist/commonjs/resources/BaseResource.js +4 -4
- package/dist/commonjs/resources/BaseResource.js.map +1 -1
- package/dist/commonjs/resources/MapboxApiBasedResource.d.ts +2 -3
- package/dist/commonjs/resources/MapboxApiBasedResource.d.ts.map +1 -1
- package/dist/commonjs/resources/MapboxApiBasedResource.js +1 -1
- package/dist/commonjs/resources/MapboxApiBasedResource.js.map +1 -1
- package/dist/commonjs/resources/category-list/CategoryListResource.d.ts +1 -1
- package/dist/commonjs/resources/category-list/CategoryListResource.d.ts.map +1 -1
- package/dist/commonjs/resources/compute/ComputeResource.d.ts +2 -3
- package/dist/commonjs/resources/compute/ComputeResource.d.ts.map +1 -1
- package/dist/commonjs/resources/compute/ComputeResource.js.map +1 -1
- package/dist/commonjs/resources/inline-payload/InlinePayloadResource.d.ts +2 -3
- package/dist/commonjs/resources/inline-payload/InlinePayloadResource.d.ts.map +1 -1
- package/dist/commonjs/resources/inline-payload/InlinePayloadResource.js.map +1 -1
- package/dist/commonjs/resources/place-photo/PlacePhotoResource.d.ts +1 -1
- package/dist/commonjs/resources/place-photo/PlacePhotoResource.d.ts.map +1 -1
- package/dist/commonjs/resources/temporary/TemporaryDataResource.d.ts +2 -3
- package/dist/commonjs/resources/temporary/TemporaryDataResource.d.ts.map +1 -1
- package/dist/commonjs/resources/temporary/TemporaryDataResource.js +1 -1
- package/dist/commonjs/resources/temporary/TemporaryDataResource.js.map +1 -1
- package/dist/commonjs/resources/tool-response/ToolResponseResource.d.ts +1 -1
- package/dist/commonjs/resources/tool-response/ToolResponseResource.d.ts.map +1 -1
- package/dist/commonjs/resources/ui-apps/MapAppUIResource.d.ts +2 -3
- package/dist/commonjs/resources/ui-apps/MapAppUIResource.d.ts.map +1 -1
- package/dist/commonjs/resources/ui-apps/MapAppUIResource.js +1 -1
- package/dist/commonjs/resources/ui-apps/MapAppUIResource.js.map +1 -1
- package/dist/commonjs/resources/version/VersionResource.d.ts +1 -1
- package/dist/commonjs/resources/version/VersionResource.d.ts.map +1 -1
- package/dist/commonjs/tools/BaseTool.d.ts +2 -4
- package/dist/commonjs/tools/BaseTool.d.ts.map +1 -1
- package/dist/commonjs/tools/BaseTool.js +19 -4
- package/dist/commonjs/tools/BaseTool.js.map +1 -1
- package/dist/commonjs/tools/MapboxApiBasedTool.d.ts +2 -3
- package/dist/commonjs/tools/MapboxApiBasedTool.d.ts.map +1 -1
- package/dist/commonjs/tools/MapboxApiBasedTool.js +2 -4
- package/dist/commonjs/tools/MapboxApiBasedTool.js.map +1 -1
- package/dist/commonjs/tools/area-tool/AreaTool.d.ts +1 -1
- package/dist/commonjs/tools/area-tool/AreaTool.d.ts.map +1 -1
- package/dist/commonjs/tools/area-tool/AreaTool.input.schema.d.ts +1 -1
- package/dist/commonjs/tools/bearing-tool/BearingTool.d.ts +1 -1
- package/dist/commonjs/tools/bearing-tool/BearingTool.d.ts.map +1 -1
- package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.d.ts +1 -1
- package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.d.ts.map +1 -1
- package/dist/commonjs/tools/buffer-tool/BufferTool.d.ts +1 -1
- package/dist/commonjs/tools/buffer-tool/BufferTool.d.ts.map +1 -1
- package/dist/commonjs/tools/buffer-tool/BufferTool.input.schema.d.ts +1 -1
- package/dist/commonjs/tools/category-list-tool/CategoryListTool.d.ts +1 -1
- package/dist/commonjs/tools/category-list-tool/CategoryListTool.d.ts.map +1 -1
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.d.ts +1 -1
- package/dist/commonjs/tools/category-search-tool/CategorySearchTool.d.ts.map +1 -1
- package/dist/commonjs/tools/centroid-tool/CentroidTool.d.ts +1 -1
- package/dist/commonjs/tools/centroid-tool/CentroidTool.d.ts.map +1 -1
- package/dist/commonjs/tools/convex-tool/ConvexTool.d.ts +1 -1
- package/dist/commonjs/tools/convex-tool/ConvexTool.d.ts.map +1 -1
- package/dist/commonjs/tools/destination-tool/DestinationTool.d.ts +1 -1
- package/dist/commonjs/tools/destination-tool/DestinationTool.d.ts.map +1 -1
- package/dist/commonjs/tools/destination-tool/DestinationTool.input.schema.d.ts +1 -1
- package/dist/commonjs/tools/difference-tool/DifferenceTool.d.ts +1 -1
- package/dist/commonjs/tools/difference-tool/DifferenceTool.d.ts.map +1 -1
- package/dist/commonjs/tools/directions-tool/DirectionsTool.d.ts +1 -1
- package/dist/commonjs/tools/directions-tool/DirectionsTool.d.ts.map +1 -1
- package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.d.ts +4 -0
- package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.d.ts.map +1 -1
- package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.js +19 -3
- package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.js.map +1 -1
- package/dist/commonjs/tools/directions-tool/DirectionsTool.js +7 -2
- package/dist/commonjs/tools/directions-tool/DirectionsTool.js.map +1 -1
- package/dist/commonjs/tools/directions-tool/buildDirectionsRequestUrl.d.ts +1 -0
- package/dist/commonjs/tools/directions-tool/buildDirectionsRequestUrl.d.ts.map +1 -1
- package/dist/commonjs/tools/directions-tool/buildDirectionsRequestUrl.js +15 -2
- package/dist/commonjs/tools/directions-tool/buildDirectionsRequestUrl.js.map +1 -1
- package/dist/commonjs/tools/directions-tool/cleanResponseData.d.ts +3 -3
- package/dist/commonjs/tools/directions-tool/cleanResponseData.d.ts.map +1 -1
- package/dist/commonjs/tools/directions-tool/cleanResponseData.js +33 -20
- package/dist/commonjs/tools/directions-tool/cleanResponseData.js.map +1 -1
- package/dist/commonjs/tools/distance-tool/DistanceTool.d.ts +1 -1
- package/dist/commonjs/tools/distance-tool/DistanceTool.d.ts.map +1 -1
- package/dist/commonjs/tools/distance-tool/DistanceTool.input.schema.d.ts +2 -2
- package/dist/commonjs/tools/feedback-tool/FeedbackTool.d.ts +38 -0
- package/dist/commonjs/tools/feedback-tool/FeedbackTool.d.ts.map +1 -0
- package/dist/commonjs/tools/feedback-tool/FeedbackTool.input.schema.d.ts +41 -0
- package/dist/commonjs/tools/feedback-tool/FeedbackTool.input.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/feedback-tool/FeedbackTool.input.schema.js +65 -0
- package/dist/commonjs/tools/feedback-tool/FeedbackTool.input.schema.js.map +1 -0
- package/dist/commonjs/tools/feedback-tool/FeedbackTool.js +229 -0
- package/dist/commonjs/tools/feedback-tool/FeedbackTool.js.map +1 -0
- package/dist/commonjs/tools/feedback-tool/FeedbackTool.output.schema.d.ts +23 -0
- package/dist/commonjs/tools/feedback-tool/FeedbackTool.output.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/feedback-tool/FeedbackTool.output.schema.js +37 -0
- package/dist/commonjs/tools/feedback-tool/FeedbackTool.output.schema.js.map +1 -0
- package/dist/commonjs/tools/ground-location-tool/GroundLocationTool.d.ts +1 -1
- package/dist/commonjs/tools/ground-location-tool/GroundLocationTool.d.ts.map +1 -1
- package/dist/commonjs/tools/index.d.ts +4 -0
- package/dist/commonjs/tools/index.d.ts.map +1 -1
- package/dist/commonjs/tools/index.js +6 -1
- package/dist/commonjs/tools/index.js.map +1 -1
- package/dist/commonjs/tools/intersect-tool/IntersectTool.d.ts +1 -1
- package/dist/commonjs/tools/intersect-tool/IntersectTool.d.ts.map +1 -1
- package/dist/commonjs/tools/isochrone-tool/IsochroneTool.d.ts +1 -1
- package/dist/commonjs/tools/isochrone-tool/IsochroneTool.d.ts.map +1 -1
- package/dist/commonjs/tools/length-tool/LengthTool.d.ts +1 -1
- package/dist/commonjs/tools/length-tool/LengthTool.d.ts.map +1 -1
- package/dist/commonjs/tools/length-tool/LengthTool.input.schema.d.ts +1 -1
- package/dist/commonjs/tools/lenientOutputSchema.d.ts +16 -0
- package/dist/commonjs/tools/lenientOutputSchema.d.ts.map +1 -0
- package/dist/commonjs/tools/lenientOutputSchema.js +36 -0
- package/dist/commonjs/tools/lenientOutputSchema.js.map +1 -0
- package/dist/commonjs/tools/list-public-tokens-tool/ListPublicTokensTool.d.ts +35 -0
- package/dist/commonjs/tools/list-public-tokens-tool/ListPublicTokensTool.d.ts.map +1 -0
- package/dist/commonjs/tools/list-public-tokens-tool/ListPublicTokensTool.input.schema.d.ts +12 -0
- package/dist/commonjs/tools/list-public-tokens-tool/ListPublicTokensTool.input.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/list-public-tokens-tool/ListPublicTokensTool.input.schema.js +22 -0
- package/dist/commonjs/tools/list-public-tokens-tool/ListPublicTokensTool.input.schema.js.map +1 -0
- package/dist/commonjs/tools/list-public-tokens-tool/ListPublicTokensTool.js +196 -0
- package/dist/commonjs/tools/list-public-tokens-tool/ListPublicTokensTool.js.map +1 -0
- package/dist/commonjs/tools/list-public-tokens-tool/ListPublicTokensTool.output.schema.d.ts +25 -0
- package/dist/commonjs/tools/list-public-tokens-tool/ListPublicTokensTool.output.schema.d.ts.map +1 -0
- package/dist/commonjs/tools/list-public-tokens-tool/ListPublicTokensTool.output.schema.js +29 -0
- package/dist/commonjs/tools/list-public-tokens-tool/ListPublicTokensTool.output.schema.js.map +1 -0
- package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.d.ts +1 -1
- package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.d.ts.map +1 -1
- package/dist/commonjs/tools/matrix-tool/MatrixTool.d.ts +1 -1
- package/dist/commonjs/tools/matrix-tool/MatrixTool.d.ts.map +1 -1
- package/dist/commonjs/tools/midpoint-tool/MidpointTool.d.ts +1 -1
- package/dist/commonjs/tools/midpoint-tool/MidpointTool.d.ts.map +1 -1
- package/dist/commonjs/tools/nearest-point-on-line-tool/NearestPointOnLineTool.d.ts +1 -1
- package/dist/commonjs/tools/nearest-point-on-line-tool/NearestPointOnLineTool.d.ts.map +1 -1
- package/dist/commonjs/tools/nearest-point-on-line-tool/NearestPointOnLineTool.input.schema.d.ts +1 -1
- package/dist/commonjs/tools/nearest-point-tool/NearestPointTool.d.ts +1 -1
- package/dist/commonjs/tools/nearest-point-tool/NearestPointTool.d.ts.map +1 -1
- package/dist/commonjs/tools/nearest-point-tool/NearestPointTool.input.schema.d.ts +1 -1
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.d.ts +1 -1
- package/dist/commonjs/tools/optimization-tool/OptimizationTool.d.ts.map +1 -1
- package/dist/commonjs/tools/place-details-tool/PlaceDetailsTool.d.ts +1 -1
- package/dist/commonjs/tools/place-details-tool/PlaceDetailsTool.d.ts.map +1 -1
- package/dist/commonjs/tools/points-within-polygon-tool/PointsWithinPolygonTool.d.ts +1 -1
- package/dist/commonjs/tools/points-within-polygon-tool/PointsWithinPolygonTool.d.ts.map +1 -1
- package/dist/commonjs/tools/render-map-tool/RenderMapTool.d.ts +2 -3
- package/dist/commonjs/tools/render-map-tool/RenderMapTool.d.ts.map +1 -1
- package/dist/commonjs/tools/render-map-tool/RenderMapTool.js +2 -4
- package/dist/commonjs/tools/render-map-tool/RenderMapTool.js.map +1 -1
- package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.d.ts +2 -3
- package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.d.ts.map +1 -1
- package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.js +2 -6
- package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.js.map +1 -1
- package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.d.ts +1 -1
- package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.d.ts.map +1 -1
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.d.ts +1 -1
- package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.d.ts.map +1 -1
- package/dist/commonjs/tools/simplify-tool/SimplifyTool.d.ts +1 -1
- package/dist/commonjs/tools/simplify-tool/SimplifyTool.d.ts.map +1 -1
- package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.d.ts +1 -1
- package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.d.ts.map +1 -1
- package/dist/commonjs/tools/toolRegistry.d.ts +4 -2
- package/dist/commonjs/tools/toolRegistry.d.ts.map +1 -1
- package/dist/commonjs/tools/toolRegistry.js +4 -0
- package/dist/commonjs/tools/toolRegistry.js.map +1 -1
- package/dist/commonjs/tools/union-tool/UnionTool.d.ts +1 -1
- package/dist/commonjs/tools/union-tool/UnionTool.d.ts.map +1 -1
- package/dist/commonjs/tools/validateOutput.d.ts +1 -1
- package/dist/commonjs/tools/validateOutput.d.ts.map +1 -1
- package/dist/commonjs/utils/directionsRef.d.ts.map +1 -1
- package/dist/commonjs/utils/directionsRef.js +3 -0
- package/dist/commonjs/utils/directionsRef.js.map +1 -1
- package/dist/commonjs/utils/index.js +2 -2
- package/dist/commonjs/utils/index.js.map +1 -1
- package/dist/commonjs/utils/jsonSchema2020.d.ts +8 -14
- package/dist/commonjs/utils/jsonSchema2020.d.ts.map +1 -1
- package/dist/commonjs/utils/jsonSchema2020.js +8 -40
- package/dist/commonjs/utils/jsonSchema2020.js.map +1 -1
- package/dist/commonjs/utils/serverInstructions.d.ts.map +1 -1
- package/dist/commonjs/utils/serverInstructions.js +3 -0
- package/dist/commonjs/utils/serverInstructions.js.map +1 -1
- package/dist/commonjs/utils/urlSafety.d.ts.map +1 -1
- package/dist/commonjs/utils/urlSafety.js +4 -3
- package/dist/commonjs/utils/urlSafety.js.map +1 -1
- package/dist/commonjs/version.json +3 -3
- package/dist/esm/index.js +9 -9
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/prompts/BasePrompt.d.ts +1 -1
- package/dist/esm/prompts/BasePrompt.d.ts.map +1 -1
- package/dist/esm/prompts/FindPlacesNearbyPrompt.d.ts +1 -1
- package/dist/esm/prompts/FindPlacesNearbyPrompt.d.ts.map +1 -1
- package/dist/esm/prompts/GetDirectionsPrompt.d.ts +1 -1
- package/dist/esm/prompts/GetDirectionsPrompt.d.ts.map +1 -1
- package/dist/esm/prompts/SearchAlongRoutePrompt.d.ts +1 -1
- package/dist/esm/prompts/SearchAlongRoutePrompt.d.ts.map +1 -1
- package/dist/esm/prompts/ShowReachableAreasPrompt.d.ts +1 -1
- package/dist/esm/prompts/ShowReachableAreasPrompt.d.ts.map +1 -1
- package/dist/esm/resources/BaseResource.d.ts +2 -4
- package/dist/esm/resources/BaseResource.d.ts.map +1 -1
- package/dist/esm/resources/BaseResource.js +3 -3
- package/dist/esm/resources/BaseResource.js.map +1 -1
- package/dist/esm/resources/MapboxApiBasedResource.d.ts +2 -3
- package/dist/esm/resources/MapboxApiBasedResource.d.ts.map +1 -1
- package/dist/esm/resources/MapboxApiBasedResource.js +1 -1
- package/dist/esm/resources/MapboxApiBasedResource.js.map +1 -1
- package/dist/esm/resources/category-list/CategoryListResource.d.ts +1 -1
- package/dist/esm/resources/category-list/CategoryListResource.d.ts.map +1 -1
- package/dist/esm/resources/compute/ComputeResource.d.ts +2 -3
- package/dist/esm/resources/compute/ComputeResource.d.ts.map +1 -1
- package/dist/esm/resources/compute/ComputeResource.js.map +1 -1
- package/dist/esm/resources/inline-payload/InlinePayloadResource.d.ts +2 -3
- package/dist/esm/resources/inline-payload/InlinePayloadResource.d.ts.map +1 -1
- package/dist/esm/resources/inline-payload/InlinePayloadResource.js.map +1 -1
- package/dist/esm/resources/place-photo/PlacePhotoResource.d.ts +1 -1
- package/dist/esm/resources/place-photo/PlacePhotoResource.d.ts.map +1 -1
- package/dist/esm/resources/temporary/TemporaryDataResource.d.ts +2 -3
- package/dist/esm/resources/temporary/TemporaryDataResource.d.ts.map +1 -1
- package/dist/esm/resources/temporary/TemporaryDataResource.js +1 -1
- package/dist/esm/resources/temporary/TemporaryDataResource.js.map +1 -1
- package/dist/esm/resources/tool-response/ToolResponseResource.d.ts +1 -1
- package/dist/esm/resources/tool-response/ToolResponseResource.d.ts.map +1 -1
- package/dist/esm/resources/ui-apps/MapAppUIResource.d.ts +2 -3
- package/dist/esm/resources/ui-apps/MapAppUIResource.d.ts.map +1 -1
- package/dist/esm/resources/ui-apps/MapAppUIResource.js +1 -1
- package/dist/esm/resources/ui-apps/MapAppUIResource.js.map +1 -1
- package/dist/esm/resources/version/VersionResource.d.ts +1 -1
- package/dist/esm/resources/version/VersionResource.d.ts.map +1 -1
- package/dist/esm/tools/BaseTool.d.ts +2 -4
- package/dist/esm/tools/BaseTool.d.ts.map +1 -1
- package/dist/esm/tools/BaseTool.js +19 -4
- package/dist/esm/tools/BaseTool.js.map +1 -1
- package/dist/esm/tools/MapboxApiBasedTool.d.ts +2 -3
- package/dist/esm/tools/MapboxApiBasedTool.d.ts.map +1 -1
- package/dist/esm/tools/MapboxApiBasedTool.js +2 -4
- package/dist/esm/tools/MapboxApiBasedTool.js.map +1 -1
- package/dist/esm/tools/area-tool/AreaTool.d.ts +1 -1
- package/dist/esm/tools/area-tool/AreaTool.d.ts.map +1 -1
- package/dist/esm/tools/area-tool/AreaTool.input.schema.d.ts +1 -1
- package/dist/esm/tools/bearing-tool/BearingTool.d.ts +1 -1
- package/dist/esm/tools/bearing-tool/BearingTool.d.ts.map +1 -1
- package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.d.ts +1 -1
- package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.d.ts.map +1 -1
- package/dist/esm/tools/buffer-tool/BufferTool.d.ts +1 -1
- package/dist/esm/tools/buffer-tool/BufferTool.d.ts.map +1 -1
- package/dist/esm/tools/buffer-tool/BufferTool.input.schema.d.ts +1 -1
- package/dist/esm/tools/category-list-tool/CategoryListTool.d.ts +1 -1
- package/dist/esm/tools/category-list-tool/CategoryListTool.d.ts.map +1 -1
- package/dist/esm/tools/category-search-tool/CategorySearchTool.d.ts +1 -1
- package/dist/esm/tools/category-search-tool/CategorySearchTool.d.ts.map +1 -1
- package/dist/esm/tools/centroid-tool/CentroidTool.d.ts +1 -1
- package/dist/esm/tools/centroid-tool/CentroidTool.d.ts.map +1 -1
- package/dist/esm/tools/convex-tool/ConvexTool.d.ts +1 -1
- package/dist/esm/tools/convex-tool/ConvexTool.d.ts.map +1 -1
- package/dist/esm/tools/destination-tool/DestinationTool.d.ts +1 -1
- package/dist/esm/tools/destination-tool/DestinationTool.d.ts.map +1 -1
- package/dist/esm/tools/destination-tool/DestinationTool.input.schema.d.ts +1 -1
- package/dist/esm/tools/difference-tool/DifferenceTool.d.ts +1 -1
- package/dist/esm/tools/difference-tool/DifferenceTool.d.ts.map +1 -1
- package/dist/esm/tools/directions-tool/DirectionsTool.d.ts +1 -1
- package/dist/esm/tools/directions-tool/DirectionsTool.d.ts.map +1 -1
- package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.d.ts +4 -0
- package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.d.ts.map +1 -1
- package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.js +19 -3
- package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.js.map +1 -1
- package/dist/esm/tools/directions-tool/DirectionsTool.js +7 -2
- package/dist/esm/tools/directions-tool/DirectionsTool.js.map +1 -1
- package/dist/esm/tools/directions-tool/buildDirectionsRequestUrl.d.ts +1 -0
- package/dist/esm/tools/directions-tool/buildDirectionsRequestUrl.d.ts.map +1 -1
- package/dist/esm/tools/directions-tool/buildDirectionsRequestUrl.js +15 -2
- package/dist/esm/tools/directions-tool/buildDirectionsRequestUrl.js.map +1 -1
- package/dist/esm/tools/directions-tool/cleanResponseData.d.ts +3 -3
- package/dist/esm/tools/directions-tool/cleanResponseData.d.ts.map +1 -1
- package/dist/esm/tools/directions-tool/cleanResponseData.js +33 -20
- package/dist/esm/tools/directions-tool/cleanResponseData.js.map +1 -1
- package/dist/esm/tools/distance-tool/DistanceTool.d.ts +1 -1
- package/dist/esm/tools/distance-tool/DistanceTool.d.ts.map +1 -1
- package/dist/esm/tools/distance-tool/DistanceTool.input.schema.d.ts +2 -2
- package/dist/esm/tools/feedback-tool/FeedbackTool.d.ts +38 -0
- package/dist/esm/tools/feedback-tool/FeedbackTool.d.ts.map +1 -0
- package/dist/esm/tools/feedback-tool/FeedbackTool.input.schema.d.ts +41 -0
- package/dist/esm/tools/feedback-tool/FeedbackTool.input.schema.d.ts.map +1 -0
- package/dist/esm/tools/feedback-tool/FeedbackTool.input.schema.js +62 -0
- package/dist/esm/tools/feedback-tool/FeedbackTool.input.schema.js.map +1 -0
- package/dist/esm/tools/feedback-tool/FeedbackTool.js +225 -0
- package/dist/esm/tools/feedback-tool/FeedbackTool.js.map +1 -0
- package/dist/esm/tools/feedback-tool/FeedbackTool.output.schema.d.ts +23 -0
- package/dist/esm/tools/feedback-tool/FeedbackTool.output.schema.d.ts.map +1 -0
- package/dist/esm/tools/feedback-tool/FeedbackTool.output.schema.js +34 -0
- package/dist/esm/tools/feedback-tool/FeedbackTool.output.schema.js.map +1 -0
- package/dist/esm/tools/ground-location-tool/GroundLocationTool.d.ts +1 -1
- package/dist/esm/tools/ground-location-tool/GroundLocationTool.d.ts.map +1 -1
- package/dist/esm/tools/index.d.ts +4 -0
- package/dist/esm/tools/index.d.ts.map +1 -1
- package/dist/esm/tools/index.js +4 -0
- package/dist/esm/tools/index.js.map +1 -1
- package/dist/esm/tools/intersect-tool/IntersectTool.d.ts +1 -1
- package/dist/esm/tools/intersect-tool/IntersectTool.d.ts.map +1 -1
- package/dist/esm/tools/isochrone-tool/IsochroneTool.d.ts +1 -1
- package/dist/esm/tools/isochrone-tool/IsochroneTool.d.ts.map +1 -1
- package/dist/esm/tools/isochrone-tool/IsochroneTool.output.schema.d.ts +3 -3
- package/dist/esm/tools/length-tool/LengthTool.d.ts +1 -1
- package/dist/esm/tools/length-tool/LengthTool.d.ts.map +1 -1
- package/dist/esm/tools/length-tool/LengthTool.input.schema.d.ts +1 -1
- package/dist/esm/tools/lenientOutputSchema.d.ts +16 -0
- package/dist/esm/tools/lenientOutputSchema.d.ts.map +1 -0
- package/dist/esm/tools/lenientOutputSchema.js +33 -0
- package/dist/esm/tools/lenientOutputSchema.js.map +1 -0
- package/dist/esm/tools/list-public-tokens-tool/ListPublicTokensTool.d.ts +35 -0
- package/dist/esm/tools/list-public-tokens-tool/ListPublicTokensTool.d.ts.map +1 -0
- package/dist/esm/tools/list-public-tokens-tool/ListPublicTokensTool.input.schema.d.ts +12 -0
- package/dist/esm/tools/list-public-tokens-tool/ListPublicTokensTool.input.schema.d.ts.map +1 -0
- package/dist/esm/tools/list-public-tokens-tool/ListPublicTokensTool.input.schema.js +16 -0
- package/dist/esm/tools/list-public-tokens-tool/ListPublicTokensTool.input.schema.js.map +1 -0
- package/dist/esm/tools/list-public-tokens-tool/ListPublicTokensTool.js +191 -0
- package/dist/esm/tools/list-public-tokens-tool/ListPublicTokensTool.js.map +1 -0
- package/dist/esm/tools/list-public-tokens-tool/ListPublicTokensTool.output.schema.d.ts +25 -0
- package/dist/esm/tools/list-public-tokens-tool/ListPublicTokensTool.output.schema.d.ts.map +1 -0
- package/dist/esm/tools/list-public-tokens-tool/ListPublicTokensTool.output.schema.js +26 -0
- package/dist/esm/tools/list-public-tokens-tool/ListPublicTokensTool.output.schema.js.map +1 -0
- package/dist/esm/tools/map-matching-tool/MapMatchingTool.d.ts +1 -1
- package/dist/esm/tools/map-matching-tool/MapMatchingTool.d.ts.map +1 -1
- package/dist/esm/tools/map-matching-tool/MapMatchingTool.input.schema.d.ts +1 -1
- package/dist/esm/tools/matrix-tool/MatrixTool.d.ts +1 -1
- package/dist/esm/tools/matrix-tool/MatrixTool.d.ts.map +1 -1
- package/dist/esm/tools/matrix-tool/MatrixTool.input.schema.d.ts +1 -1
- package/dist/esm/tools/midpoint-tool/MidpointTool.d.ts +1 -1
- package/dist/esm/tools/midpoint-tool/MidpointTool.d.ts.map +1 -1
- package/dist/esm/tools/nearest-point-on-line-tool/NearestPointOnLineTool.d.ts +1 -1
- package/dist/esm/tools/nearest-point-on-line-tool/NearestPointOnLineTool.d.ts.map +1 -1
- package/dist/esm/tools/nearest-point-on-line-tool/NearestPointOnLineTool.input.schema.d.ts +1 -1
- package/dist/esm/tools/nearest-point-tool/NearestPointTool.d.ts +1 -1
- package/dist/esm/tools/nearest-point-tool/NearestPointTool.d.ts.map +1 -1
- package/dist/esm/tools/nearest-point-tool/NearestPointTool.input.schema.d.ts +1 -1
- package/dist/esm/tools/optimization-tool/OptimizationTool.d.ts +1 -1
- package/dist/esm/tools/optimization-tool/OptimizationTool.d.ts.map +1 -1
- package/dist/esm/tools/optimization-tool/OptimizationTool.input.schema.d.ts +1 -1
- package/dist/esm/tools/place-details-tool/PlaceDetailsTool.d.ts +1 -1
- package/dist/esm/tools/place-details-tool/PlaceDetailsTool.d.ts.map +1 -1
- package/dist/esm/tools/points-within-polygon-tool/PointsWithinPolygonTool.d.ts +1 -1
- package/dist/esm/tools/points-within-polygon-tool/PointsWithinPolygonTool.d.ts.map +1 -1
- package/dist/esm/tools/render-map-tool/RenderMapTool.d.ts +2 -3
- package/dist/esm/tools/render-map-tool/RenderMapTool.d.ts.map +1 -1
- package/dist/esm/tools/render-map-tool/RenderMapTool.js +2 -4
- package/dist/esm/tools/render-map-tool/RenderMapTool.js.map +1 -1
- package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.d.ts +2 -3
- package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.d.ts.map +1 -1
- package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.js +2 -6
- package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.js.map +1 -1
- package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.d.ts +1 -1
- package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.d.ts.map +1 -1
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.d.ts +1 -1
- package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.d.ts.map +1 -1
- package/dist/esm/tools/simplify-tool/SimplifyTool.d.ts +1 -1
- package/dist/esm/tools/simplify-tool/SimplifyTool.d.ts.map +1 -1
- package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.d.ts +1 -1
- package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.d.ts.map +1 -1
- package/dist/esm/tools/toolRegistry.d.ts +4 -2
- package/dist/esm/tools/toolRegistry.d.ts.map +1 -1
- package/dist/esm/tools/toolRegistry.js +4 -0
- package/dist/esm/tools/toolRegistry.js.map +1 -1
- package/dist/esm/tools/union-tool/UnionTool.d.ts +1 -1
- package/dist/esm/tools/union-tool/UnionTool.d.ts.map +1 -1
- package/dist/esm/tools/validateOutput.d.ts +1 -1
- package/dist/esm/tools/validateOutput.d.ts.map +1 -1
- package/dist/esm/utils/directionsRef.d.ts.map +1 -1
- package/dist/esm/utils/directionsRef.js +3 -0
- package/dist/esm/utils/directionsRef.js.map +1 -1
- package/dist/esm/utils/index.js +2 -2
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/jsonSchema2020.d.ts +8 -14
- package/dist/esm/utils/jsonSchema2020.d.ts.map +1 -1
- package/dist/esm/utils/jsonSchema2020.js +8 -40
- package/dist/esm/utils/jsonSchema2020.js.map +1 -1
- package/dist/esm/utils/serverInstructions.d.ts.map +1 -1
- package/dist/esm/utils/serverInstructions.js +3 -0
- package/dist/esm/utils/serverInstructions.js.map +1 -1
- package/dist/esm/utils/urlSafety.d.ts.map +1 -1
- package/dist/esm/utils/urlSafety.js +4 -3
- package/dist/esm/utils/urlSafety.js.map +1 -1
- package/dist/esm/version.json +3 -3
- package/package.json +7 -3
- package/patches/README.md +10 -34
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.d.ts +0 -10
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.d.ts.map +0 -1
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.input.schema.d.ts +0 -93
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.input.schema.d.ts.map +0 -1
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.input.schema.js +0 -186
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.input.schema.js.map +0 -1
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.js +0 -332
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.js.map +0 -1
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.output.schema.d.ts +0 -34
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.output.schema.d.ts.map +0 -1
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.output.schema.js +0 -109
- package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.output.schema.js.map +0 -1
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.d.ts +0 -10
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.d.ts.map +0 -1
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.input.schema.d.ts +0 -93
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.input.schema.d.ts.map +0 -1
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.input.schema.js +0 -180
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.input.schema.js.map +0 -1
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.js +0 -329
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.js.map +0 -1
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.output.schema.d.ts +0 -34
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.output.schema.d.ts.map +0 -1
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.output.schema.js +0 -106
- package/dist/esm/tools/optimization-tool/OptimizationV2Tool.output.schema.js.map +0 -1
- package/patches/@modelcontextprotocol+sdk+1.30.0.patch +0 -66
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildDirectionsRequestUrl.js","sourceRoot":"","sources":["../../../../src/tools/directions-tool/buildDirectionsRequestUrl.ts"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,kCAAkC;;
|
|
1
|
+
{"version":3,"file":"buildDirectionsRequestUrl.js","sourceRoot":"","sources":["../../../../src/tools/directions-tool/buildDirectionsRequestUrl.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,12 +32,12 @@ interface RawIncident {
|
|
|
32
32
|
length?: number;
|
|
33
33
|
[key: string]: unknown;
|
|
34
34
|
}
|
|
35
|
-
interface
|
|
36
|
-
|
|
35
|
+
interface RawManeuver {
|
|
36
|
+
instruction?: string;
|
|
37
37
|
[key: string]: unknown;
|
|
38
38
|
}
|
|
39
39
|
interface RawStep {
|
|
40
|
-
|
|
40
|
+
maneuver?: RawManeuver;
|
|
41
41
|
[key: string]: unknown;
|
|
42
42
|
}
|
|
43
43
|
interface RawLeg {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cleanResponseData.d.ts","sourceRoot":"","sources":["../../../../src/tools/directions-tool/cleanResponseData.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAG9E,UAAU,WAAW;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,UAAU,aAAa;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,UAAU,QAAQ;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,UAAU,eAAe;IACvB,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,UAAU,WAAW;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,UAAU,
|
|
1
|
+
{"version":3,"file":"cleanResponseData.d.ts","sourceRoot":"","sources":["../../../../src/tools/directions-tool/cleanResponseData.ts"],"names":[],"mappings":"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"}
|
|
@@ -59,8 +59,8 @@ function cleanResponseData(input, data) {
|
|
|
59
59
|
const routeUniqueNotificationMessages = new Set();
|
|
60
60
|
// Collect all incidents across all legs of this route
|
|
61
61
|
const routeIncidents = [];
|
|
62
|
-
// Collect
|
|
63
|
-
const
|
|
62
|
+
// Collect turn-by-turn instructions from all steps
|
|
63
|
+
const routeInstructions = [];
|
|
64
64
|
let totalDistanceWeightedSpeed = 0; // Sum of (speed × distance) for each segment
|
|
65
65
|
let sumDistanceMeters = 0;
|
|
66
66
|
// Object to track distance by congestion type
|
|
@@ -70,6 +70,11 @@ function cleanResponseData(input, data) {
|
|
|
70
70
|
moderate: 0,
|
|
71
71
|
low: 0
|
|
72
72
|
};
|
|
73
|
+
// The API only returns a congestion annotation at all when overview=full
|
|
74
|
+
// was requested (see buildDirectionsRequestUrl.ts) — tracked here so we
|
|
75
|
+
// can omit congestion_information entirely rather than reporting a
|
|
76
|
+
// misleading all-zero breakdown when it was never requested.
|
|
77
|
+
let sawCongestionAnnotation = false;
|
|
73
78
|
if (route.legs) {
|
|
74
79
|
route.legs.forEach((leg) => {
|
|
75
80
|
if (leg.annotation?.speed && leg.annotation?.distance) {
|
|
@@ -82,6 +87,7 @@ function cleanResponseData(input, data) {
|
|
|
82
87
|
});
|
|
83
88
|
}
|
|
84
89
|
if (leg.annotation?.congestion && leg.annotation?.distance) {
|
|
90
|
+
sawCongestionAnnotation = true;
|
|
85
91
|
// iterate every congestion string in leg.annotation.congestion
|
|
86
92
|
// each string is one of `severe, heavy, moderate, low, unknown`
|
|
87
93
|
// keep track of total distance by type of congestion
|
|
@@ -127,15 +133,14 @@ function cleanResponseData(input, data) {
|
|
|
127
133
|
});
|
|
128
134
|
});
|
|
129
135
|
}
|
|
130
|
-
//
|
|
136
|
+
// One instruction per step, e.g. "Bear right onto Great Portland
|
|
137
|
+
// Street/A4201". `maneuver.instruction` comes back whenever
|
|
138
|
+
// steps=true; `step.voiceInstructions` would need
|
|
139
|
+
// voice_instructions=true, which this tool doesn't send.
|
|
131
140
|
if (leg.steps) {
|
|
132
141
|
leg.steps.forEach((step) => {
|
|
133
|
-
if (step.
|
|
134
|
-
step.
|
|
135
|
-
if (instruction.announcement) {
|
|
136
|
-
routeAnnouncements.push(instruction.announcement);
|
|
137
|
-
}
|
|
138
|
-
});
|
|
142
|
+
if (step.maneuver?.instruction) {
|
|
143
|
+
routeInstructions.push(step.maneuver.instruction);
|
|
139
144
|
}
|
|
140
145
|
});
|
|
141
146
|
}
|
|
@@ -149,19 +154,27 @@ function cleanResponseData(input, data) {
|
|
|
149
154
|
cleanedRoute.notifications_summary = Array.from(routeUniqueNotificationMessages);
|
|
150
155
|
// Add all incidents with the specified fields as a new property on the route
|
|
151
156
|
cleanedRoute.incidents_summary = routeIncidents;
|
|
152
|
-
//
|
|
153
|
-
//
|
|
154
|
-
|
|
155
|
-
|
|
157
|
+
// One instruction per maneuver, so even a long route with dozens of
|
|
158
|
+
// turns fits. The cap only guards against extreme cases, like many
|
|
159
|
+
// waypoints each with a complex urban leg.
|
|
160
|
+
const MAX_INSTRUCTIONS = 200;
|
|
161
|
+
if (routeInstructions.length >= 1 &&
|
|
162
|
+
routeInstructions.length <= MAX_INSTRUCTIONS) {
|
|
163
|
+
cleanedRoute.instructions = routeInstructions;
|
|
156
164
|
}
|
|
157
165
|
cleanedRoute.num_legs = route.legs?.length || 0;
|
|
158
|
-
// Add congestion distance information to route
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
166
|
+
// Add congestion distance information to route, but only when the API
|
|
167
|
+
// actually returned a congestion annotation -- omitted (rather than
|
|
168
|
+
// reported as all-zero) when it wasn't requested/available, so this
|
|
169
|
+
// can't be misread as "confirmed no traffic anywhere".
|
|
170
|
+
if (sawCongestionAnnotation) {
|
|
171
|
+
cleanedRoute.congestion_information = {
|
|
172
|
+
length_low: Math.round(congestionTypeToDistance.low),
|
|
173
|
+
length_moderate: Math.round(congestionTypeToDistance.moderate),
|
|
174
|
+
length_heavy: Math.round(congestionTypeToDistance.heavy),
|
|
175
|
+
length_severe: Math.round(congestionTypeToDistance.severe)
|
|
176
|
+
};
|
|
177
|
+
}
|
|
165
178
|
// Calculate and add average speed in km/h
|
|
166
179
|
if (sumDistanceMeters > 0 && totalDistanceWeightedSpeed > 0) {
|
|
167
180
|
// Calculate distance-weighted average speed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cleanResponseData.js","sourceRoot":"","sources":["../../../../src/tools/directions-tool/cleanResponseData.ts"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,kCAAkC;;AAmIlC,
|
|
1
|
+
{"version":3,"file":"cleanResponseData.js","sourceRoot":"","sources":["../../../../src/tools/directions-tool/cleanResponseData.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BaseTool } from '../BaseTool.js';
|
|
2
2
|
import { DistanceInputSchema } from './DistanceTool.input.schema.js';
|
|
3
3
|
import { DistanceOutputSchema } from './DistanceTool.output.schema.js';
|
|
4
|
-
import type { CallToolResult } from '@modelcontextprotocol/
|
|
4
|
+
import type { CallToolResult } from '@modelcontextprotocol/server';
|
|
5
5
|
/**
|
|
6
6
|
* DistanceTool - Calculate distance between two geographic coordinates
|
|
7
7
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DistanceTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/distance-tool/DistanceTool.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EACL,oBAAoB,EAErB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"DistanceTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/distance-tool/DistanceTool.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EACL,oBAAoB,EAErB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE;;;;;GAKG;AACH,qBAAa,YAAa,SAAQ,QAAQ,CACxC,OAAO,mBAAmB,EAC1B,OAAO,oBAAoB,CAC5B;IACC,QAAQ,CAAC,IAAI,mBAAmB;IAChC,QAAQ,CAAC,WAAW,SAIqC;IAEzD,QAAQ,CAAC,WAAW;;;;;;MAMlB;;IASF;;;;OAIG;IACG,GAAG,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC;CAoEtD"}
|
|
@@ -12,11 +12,11 @@ export declare const DistanceInputSchema: z.ZodObject<{
|
|
|
12
12
|
latitude: z.ZodNumber;
|
|
13
13
|
}, z.core.$strip>;
|
|
14
14
|
units: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
15
|
+
meters: "meters";
|
|
15
16
|
kilometers: "kilometers";
|
|
16
17
|
miles: "miles";
|
|
17
|
-
meters: "meters";
|
|
18
|
-
feet: "feet";
|
|
19
18
|
nauticalmiles: "nauticalmiles";
|
|
19
|
+
feet: "feet";
|
|
20
20
|
}>>>;
|
|
21
21
|
}, z.core.$strip>;
|
|
22
22
|
/**
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { CallToolResult } from '@modelcontextprotocol/server';
|
|
2
|
+
import { MapboxApiBasedTool } from '../MapboxApiBasedTool.js';
|
|
3
|
+
import { FeedbackInputSchema, type FeedbackInput } from './FeedbackTool.input.schema.js';
|
|
4
|
+
import { FeedbackOutputSchema } from './FeedbackTool.output.schema.js';
|
|
5
|
+
import type { HttpRequest } from '../../utils/types.js';
|
|
6
|
+
export declare class FeedbackTool extends MapboxApiBasedTool<typeof FeedbackInputSchema, typeof FeedbackOutputSchema> {
|
|
7
|
+
name: string;
|
|
8
|
+
description: string;
|
|
9
|
+
annotations: {
|
|
10
|
+
title: string;
|
|
11
|
+
readOnlyHint: boolean;
|
|
12
|
+
destructiveHint: boolean;
|
|
13
|
+
idempotentHint: boolean;
|
|
14
|
+
openWorldHint: boolean;
|
|
15
|
+
};
|
|
16
|
+
constructor(params: {
|
|
17
|
+
httpRequest: HttpRequest;
|
|
18
|
+
});
|
|
19
|
+
/**
|
|
20
|
+
* When the client supports elicitation, ask the user to confirm the report
|
|
21
|
+
* before it is sent. A client without elicitation relies on the model having
|
|
22
|
+
* confirmed in chat, as the description asks. If the prompt itself fails,
|
|
23
|
+
* nothing is sent: unlike directions_tool's route picker, falling through
|
|
24
|
+
* here would send a report the user never saw.
|
|
25
|
+
*/
|
|
26
|
+
private confirmWithUser;
|
|
27
|
+
/**
|
|
28
|
+
* Look for a report this account already sent about the same problem: same
|
|
29
|
+
* category, still awaiting review, sent recently, within a few meters. The
|
|
30
|
+
* Feedback API only lists the token's own account's reports and can't filter
|
|
31
|
+
* by location, so this fetches recent ones and compares distances here. It
|
|
32
|
+
* can't see other accounts' reports. Needs user-feedback:read; without it,
|
|
33
|
+
* or on any error, the report is sent unchecked rather than blocked.
|
|
34
|
+
*/
|
|
35
|
+
private findEarlierReport;
|
|
36
|
+
protected execute(input: FeedbackInput, accessToken: string): Promise<CallToolResult>;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=FeedbackTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FeedbackTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/feedback-tool/FeedbackTool.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EACL,mBAAmB,EACnB,KAAK,aAAa,EACnB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,oBAAoB,EAErB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAexD,qBAAa,YAAa,SAAQ,kBAAkB,CAClD,OAAO,mBAAmB,EAC1B,OAAO,oBAAoB,CAC5B;IACC,IAAI,SAAmB;IACvB,WAAW,SAa0C;IACrD,WAAW;;;;;;MAMT;gBAEU,MAAM,EAAE;QAAE,WAAW,EAAE,WAAW,CAAA;KAAE;IAQhD;;;;;;OAMG;YACW,eAAe;IAmC7B;;;;;;;OAOG;YACW,iBAAiB;cAoDf,OAAO,CACrB,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,cAAc,CAAC;CA+G3B"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* The Feedback Agent's default categories that a chat user can report on.
|
|
4
|
+
* Leaves out the ones that only make sense inside a navigation app (voice
|
|
5
|
+
* guidance, banners, rerouting, puck positioning, arrival, speed traps) and
|
|
6
|
+
* `non_feedback`.
|
|
7
|
+
* Docs: https://docs.mapbox.com/ios/navigation/v2/guides/feedback-agent/#default-categories
|
|
8
|
+
*/
|
|
9
|
+
export declare const FEEDBACK_CATEGORIES: readonly ["poi_closed", "poi_details", "poi_location", "poi_missing", "map_data_issue", "map_rendering_issue", "poor_routing_issue", "alternative_route_issue", "no_route", "illegal_turn", "illegal_entrance", "missing_expected_maneuver", "eta_issue", "road_closure_issue", "road_incident_issue", "speed_limit_issue", "traffic_issue", "false_negative_traffic_issue", "false_positive_traffic_issue", "application_issue"];
|
|
10
|
+
export declare const FeedbackInputSchema: z.ZodObject<{
|
|
11
|
+
feedback: z.ZodString;
|
|
12
|
+
category: z.ZodEnum<{
|
|
13
|
+
poi_closed: "poi_closed";
|
|
14
|
+
poi_details: "poi_details";
|
|
15
|
+
poi_location: "poi_location";
|
|
16
|
+
poi_missing: "poi_missing";
|
|
17
|
+
map_data_issue: "map_data_issue";
|
|
18
|
+
map_rendering_issue: "map_rendering_issue";
|
|
19
|
+
poor_routing_issue: "poor_routing_issue";
|
|
20
|
+
alternative_route_issue: "alternative_route_issue";
|
|
21
|
+
no_route: "no_route";
|
|
22
|
+
illegal_turn: "illegal_turn";
|
|
23
|
+
illegal_entrance: "illegal_entrance";
|
|
24
|
+
missing_expected_maneuver: "missing_expected_maneuver";
|
|
25
|
+
eta_issue: "eta_issue";
|
|
26
|
+
road_closure_issue: "road_closure_issue";
|
|
27
|
+
road_incident_issue: "road_incident_issue";
|
|
28
|
+
speed_limit_issue: "speed_limit_issue";
|
|
29
|
+
traffic_issue: "traffic_issue";
|
|
30
|
+
false_negative_traffic_issue: "false_negative_traffic_issue";
|
|
31
|
+
false_positive_traffic_issue: "false_positive_traffic_issue";
|
|
32
|
+
application_issue: "application_issue";
|
|
33
|
+
}>;
|
|
34
|
+
coordinates: z.ZodObject<{
|
|
35
|
+
longitude: z.ZodNumber;
|
|
36
|
+
latitude: z.ZodNumber;
|
|
37
|
+
}, z.core.$strip>;
|
|
38
|
+
send_anyway: z.ZodOptional<z.ZodBoolean>;
|
|
39
|
+
}, z.core.$strip>;
|
|
40
|
+
export type FeedbackInput = z.infer<typeof FeedbackInputSchema>;
|
|
41
|
+
//# sourceMappingURL=FeedbackTool.input.schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FeedbackTool.input.schema.d.ts","sourceRoot":"","sources":["../../../../src/tools/feedback-tool/FeedbackTool.input.schema.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,maAqBtB,CAAC;AAEX,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmC9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Mapbox, Inc.
|
|
3
|
+
// Licensed under the MIT License.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.FeedbackInputSchema = exports.FEEDBACK_CATEGORIES = void 0;
|
|
6
|
+
const zod_1 = require("zod");
|
|
7
|
+
const shared_js_1 = require("../../schemas/shared.js");
|
|
8
|
+
/**
|
|
9
|
+
* The Feedback Agent's default categories that a chat user can report on.
|
|
10
|
+
* Leaves out the ones that only make sense inside a navigation app (voice
|
|
11
|
+
* guidance, banners, rerouting, puck positioning, arrival, speed traps) and
|
|
12
|
+
* `non_feedback`.
|
|
13
|
+
* Docs: https://docs.mapbox.com/ios/navigation/v2/guides/feedback-agent/#default-categories
|
|
14
|
+
*/
|
|
15
|
+
exports.FEEDBACK_CATEGORIES = [
|
|
16
|
+
'poi_closed',
|
|
17
|
+
'poi_details',
|
|
18
|
+
'poi_location',
|
|
19
|
+
'poi_missing',
|
|
20
|
+
'map_data_issue',
|
|
21
|
+
'map_rendering_issue',
|
|
22
|
+
'poor_routing_issue',
|
|
23
|
+
'alternative_route_issue',
|
|
24
|
+
'no_route',
|
|
25
|
+
'illegal_turn',
|
|
26
|
+
'illegal_entrance',
|
|
27
|
+
'missing_expected_maneuver',
|
|
28
|
+
'eta_issue',
|
|
29
|
+
'road_closure_issue',
|
|
30
|
+
'road_incident_issue',
|
|
31
|
+
'speed_limit_issue',
|
|
32
|
+
'traffic_issue',
|
|
33
|
+
'false_negative_traffic_issue',
|
|
34
|
+
'false_positive_traffic_issue',
|
|
35
|
+
'application_issue'
|
|
36
|
+
];
|
|
37
|
+
exports.FeedbackInputSchema = zod_1.z.object({
|
|
38
|
+
feedback: zod_1.z
|
|
39
|
+
.string()
|
|
40
|
+
.trim()
|
|
41
|
+
.min(1, 'Feedback text is required.')
|
|
42
|
+
.max(2000, 'Feedback text must be 2000 characters or fewer.')
|
|
43
|
+
.describe("What is wrong, in the user's own words, plus what it should be if they said. " +
|
|
44
|
+
'Name the place or road. Example: "Blue Bottle Coffee at 66 Mint St has closed permanently."'),
|
|
45
|
+
category: zod_1.z
|
|
46
|
+
.enum(exports.FEEDBACK_CATEGORIES)
|
|
47
|
+
.describe('The kind of problem:\n' +
|
|
48
|
+
'- poi_closed: the place no longer exists\n' +
|
|
49
|
+
'- poi_details: wrong name, hours, phone, website or other details\n' +
|
|
50
|
+
'- poi_location: the place is on the wrong spot\n' +
|
|
51
|
+
'- poi_missing: a place, address or business could not be found\n' +
|
|
52
|
+
'- map_data_issue / map_rendering_issue: wrong map features, or the map draws wrong\n' +
|
|
53
|
+
'- poor_routing_issue / alternative_route_issue / no_route: a bad, missing or no route\n' +
|
|
54
|
+
'- illegal_turn / illegal_entrance / missing_expected_maneuver: a turn or entrance the route got wrong\n' +
|
|
55
|
+
'- eta_issue: the travel time was wrong\n' +
|
|
56
|
+
'- road_closure_issue / road_incident_issue / speed_limit_issue: road data\n' +
|
|
57
|
+
'- traffic_issue / false_negative_traffic_issue / false_positive_traffic_issue: traffic shown wrong (missed congestion, or congestion that is not there)\n' +
|
|
58
|
+
'- application_issue: a problem with this app, not the map data'),
|
|
59
|
+
coordinates: shared_js_1.coordinateSchema.describe('Where the problem is: the place or the spot on the route, usually taken from an earlier search or directions result. Do not guess.'),
|
|
60
|
+
send_anyway: zod_1.z
|
|
61
|
+
.boolean()
|
|
62
|
+
.optional()
|
|
63
|
+
.describe('Skip the check for an earlier report from this account. Set it only after the tool said a report already exists and the user says theirs is about a different problem.')
|
|
64
|
+
});
|
|
65
|
+
//# sourceMappingURL=FeedbackTool.input.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FeedbackTool.input.schema.js","sourceRoot":"","sources":["../../../../src/tools/feedback-tool/FeedbackTool.input.schema.ts"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,kCAAkC;;;AAElC,6BAAwB;AACxB,uDAA2D;AAE3D;;;;;;GAMG;AACU,QAAA,mBAAmB,GAAG;IACjC,YAAY;IACZ,aAAa;IACb,cAAc;IACd,aAAa;IACb,gBAAgB;IAChB,qBAAqB;IACrB,oBAAoB;IACpB,yBAAyB;IACzB,UAAU;IACV,cAAc;IACd,kBAAkB;IAClB,2BAA2B;IAC3B,WAAW;IACX,oBAAoB;IACpB,qBAAqB;IACrB,mBAAmB;IACnB,eAAe;IACf,8BAA8B;IAC9B,8BAA8B;IAC9B,mBAAmB;CACX,CAAC;AAEE,QAAA,mBAAmB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1C,QAAQ,EAAE,OAAC;SACR,MAAM,EAAE;SACR,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,EAAE,4BAA4B,CAAC;SACpC,GAAG,CAAC,IAAI,EAAE,iDAAiD,CAAC;SAC5D,QAAQ,CACP,+EAA+E;QAC7E,6FAA6F,CAChG;IACH,QAAQ,EAAE,OAAC;SACR,IAAI,CAAC,2BAAmB,CAAC;SACzB,QAAQ,CACP,wBAAwB;QACtB,4CAA4C;QAC5C,qEAAqE;QACrE,kDAAkD;QAClD,kEAAkE;QAClE,sFAAsF;QACtF,yFAAyF;QACzF,yGAAyG;QACzG,0CAA0C;QAC1C,6EAA6E;QAC7E,2JAA2J;QAC3J,gEAAgE,CACnE;IACH,WAAW,EAAE,4BAAgB,CAAC,QAAQ,CACpC,oIAAoI,CACrI;IACD,WAAW,EAAE,OAAC;SACX,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CACP,wKAAwK,CACzK;CACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Mapbox, Inc.
|
|
3
|
+
// Licensed under the MIT License.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.FeedbackTool = void 0;
|
|
6
|
+
const node_crypto_1 = require("node:crypto");
|
|
7
|
+
const turf_1 = require("@turf/turf");
|
|
8
|
+
const MapboxApiBasedTool_js_1 = require("../MapboxApiBasedTool.js");
|
|
9
|
+
const FeedbackTool_input_schema_js_1 = require("./FeedbackTool.input.schema.js");
|
|
10
|
+
const FeedbackTool_output_schema_js_1 = require("./FeedbackTool.output.schema.js");
|
|
11
|
+
/** How far back, and how close, an earlier report counts as the same one. */
|
|
12
|
+
const DUPLICATE_WINDOW_DAYS = 30;
|
|
13
|
+
const DUPLICATE_RADIUS_METERS = 50;
|
|
14
|
+
class FeedbackTool extends MapboxApiBasedTool_js_1.MapboxApiBasedTool {
|
|
15
|
+
name = 'feedback_tool';
|
|
16
|
+
description = 'Report a problem with Mapbox map, place or routing data to Mapbox through the Feedback API, ' +
|
|
17
|
+
'for example a place that has closed, wrong details or location for a place, a missing place, ' +
|
|
18
|
+
'a closed road, or a route with an illegal turn. Mapbox reviews each report and may fix the data. ' +
|
|
19
|
+
'Use it only when the user asks to report a problem, or agrees when you offer. ' +
|
|
20
|
+
'Before calling it, show the user the exact feedback text, category and location you will send ' +
|
|
21
|
+
'and get their go-ahead; the report goes to Mapbox under their account. ' +
|
|
22
|
+
'Take the coordinates from an earlier search, place or directions result rather than guessing. ' +
|
|
23
|
+
'Send one report per problem, and do not resend one that already succeeded. ' +
|
|
24
|
+
"Each report may be billed to the account, so before sending, the tool checks the account's own " +
|
|
25
|
+
`reports from the last ${DUPLICATE_WINDOW_DAYS} days and does not send if one with the same category ` +
|
|
26
|
+
`within ${DUPLICATE_RADIUS_METERS} m is still awaiting review; it returns that report instead. ` +
|
|
27
|
+
'Only set send_anyway when the user says the earlier report is about a different problem. ' +
|
|
28
|
+
'Returns the report id and its status (received).';
|
|
29
|
+
annotations = {
|
|
30
|
+
title: 'Report Map Feedback',
|
|
31
|
+
readOnlyHint: false,
|
|
32
|
+
destructiveHint: false,
|
|
33
|
+
idempotentHint: false,
|
|
34
|
+
openWorldHint: true
|
|
35
|
+
};
|
|
36
|
+
constructor(params) {
|
|
37
|
+
super({
|
|
38
|
+
inputSchema: FeedbackTool_input_schema_js_1.FeedbackInputSchema,
|
|
39
|
+
outputSchema: FeedbackTool_output_schema_js_1.FeedbackOutputSchema,
|
|
40
|
+
httpRequest: params.httpRequest
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* When the client supports elicitation, ask the user to confirm the report
|
|
45
|
+
* before it is sent. A client without elicitation relies on the model having
|
|
46
|
+
* confirmed in chat, as the description asks. If the prompt itself fails,
|
|
47
|
+
* nothing is sent: unlike directions_tool's route picker, falling through
|
|
48
|
+
* here would send a report the user never saw.
|
|
49
|
+
*/
|
|
50
|
+
async confirmWithUser(input) {
|
|
51
|
+
const server = this.activeServer;
|
|
52
|
+
const supportsElicitation = server?.server.getClientCapabilities?.()?.elicitation !== undefined;
|
|
53
|
+
if (!server || !supportsElicitation)
|
|
54
|
+
return 'not-asked';
|
|
55
|
+
try {
|
|
56
|
+
const { longitude, latitude } = input.coordinates;
|
|
57
|
+
const result = await server.server.elicitInput({
|
|
58
|
+
mode: 'form',
|
|
59
|
+
message: 'Send this report to Mapbox?\n\n' +
|
|
60
|
+
`"${input.feedback}"\n` +
|
|
61
|
+
`Category: ${input.category}\n` +
|
|
62
|
+
`Location: ${latitude}, ${longitude}`,
|
|
63
|
+
requestedSchema: {
|
|
64
|
+
type: 'object',
|
|
65
|
+
properties: {
|
|
66
|
+
send: {
|
|
67
|
+
type: 'boolean',
|
|
68
|
+
title: 'Send report',
|
|
69
|
+
default: true
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
required: ['send']
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
return result.action === 'accept' && result.content?.send === true
|
|
76
|
+
? 'confirmed'
|
|
77
|
+
: 'declined';
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
return 'declined';
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Look for a report this account already sent about the same problem: same
|
|
85
|
+
* category, still awaiting review, sent recently, within a few meters. The
|
|
86
|
+
* Feedback API only lists the token's own account's reports and can't filter
|
|
87
|
+
* by location, so this fetches recent ones and compares distances here. It
|
|
88
|
+
* can't see other accounts' reports. Needs user-feedback:read; without it,
|
|
89
|
+
* or on any error, the report is sent unchecked rather than blocked.
|
|
90
|
+
*/
|
|
91
|
+
async findEarlierReport(input, accessToken) {
|
|
92
|
+
const url = new URL('user-feedback/v1/feedback', MapboxApiBasedTool_js_1.MapboxApiBasedTool.mapboxApiEndpoint);
|
|
93
|
+
url.searchParams.set('category', input.category);
|
|
94
|
+
url.searchParams.set('status', 'received');
|
|
95
|
+
url.searchParams.set('created_after', new Date(Date.now() - DUPLICATE_WINDOW_DAYS * 24 * 60 * 60 * 1000).toISOString());
|
|
96
|
+
url.searchParams.set('sort_by', 'created_at');
|
|
97
|
+
url.searchParams.set('order', 'desc');
|
|
98
|
+
url.searchParams.set('limit', '200');
|
|
99
|
+
url.searchParams.set('access_token', accessToken);
|
|
100
|
+
try {
|
|
101
|
+
const response = await this.httpRequest(url.toString());
|
|
102
|
+
if (!response.ok) {
|
|
103
|
+
return {
|
|
104
|
+
kind: 'unchecked',
|
|
105
|
+
reason: response.status === 401 || response.status === 403
|
|
106
|
+
? 'the access token lacks the user-feedback:read scope'
|
|
107
|
+
: `the Feedback API returned ${response.status}`
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
const page = (await response.json());
|
|
111
|
+
const here = [input.coordinates.longitude, input.coordinates.latitude];
|
|
112
|
+
for (const raw of page.items ?? []) {
|
|
113
|
+
const parsed = FeedbackTool_output_schema_js_1.FeedbackOutputSchema.safeParse(raw);
|
|
114
|
+
if (!parsed.success || !parsed.data.location)
|
|
115
|
+
continue;
|
|
116
|
+
const { lon, lat } = parsed.data.location;
|
|
117
|
+
const meters = (0, turf_1.distance)(here, [lon, lat], { units: 'meters' });
|
|
118
|
+
if (meters <= DUPLICATE_RADIUS_METERS) {
|
|
119
|
+
return { kind: 'duplicate', item: parsed.data };
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return { kind: 'none' };
|
|
123
|
+
}
|
|
124
|
+
catch {
|
|
125
|
+
return {
|
|
126
|
+
kind: 'unchecked',
|
|
127
|
+
reason: 'the Feedback API could not be reached'
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
async execute(input, accessToken) {
|
|
132
|
+
const check = input.send_anyway
|
|
133
|
+
? { kind: 'unchecked', reason: 'send_anyway was set' }
|
|
134
|
+
: await this.findEarlierReport(input, accessToken);
|
|
135
|
+
if (check.kind === 'duplicate') {
|
|
136
|
+
const earlier = check.item;
|
|
137
|
+
return {
|
|
138
|
+
content: [
|
|
139
|
+
{
|
|
140
|
+
type: 'text',
|
|
141
|
+
text: `Not sent: this account already reported a ${earlier.category} here ` +
|
|
142
|
+
`(report ${earlier.id}, status: ${earlier.status}${earlier.created_at ? `, sent ${earlier.created_at}` : ''}): ` +
|
|
143
|
+
`"${earlier.feedback}". It is still awaiting review, so a second report would only add a charge. ` +
|
|
144
|
+
'If the user says this is a different problem, call again with send_anyway: true.'
|
|
145
|
+
}
|
|
146
|
+
],
|
|
147
|
+
structuredContent: {
|
|
148
|
+
...earlier,
|
|
149
|
+
duplicate: true
|
|
150
|
+
},
|
|
151
|
+
isError: false
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
const confirmation = await this.confirmWithUser(input);
|
|
155
|
+
if (confirmation === 'declined') {
|
|
156
|
+
return {
|
|
157
|
+
content: [
|
|
158
|
+
{
|
|
159
|
+
type: 'text',
|
|
160
|
+
text: 'The user did not confirm the report, so nothing was sent to Mapbox.'
|
|
161
|
+
}
|
|
162
|
+
],
|
|
163
|
+
isError: false
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
// The pipeline's RetryPolicy retries 5xx and 429 responses, POSTs
|
|
167
|
+
// included. Picking the id here means a retry resends the same item
|
|
168
|
+
// rather than a second one.
|
|
169
|
+
const body = {
|
|
170
|
+
id: (0, node_crypto_1.randomUUID)(),
|
|
171
|
+
feedback: input.feedback,
|
|
172
|
+
category: input.category,
|
|
173
|
+
lat: input.coordinates.latitude,
|
|
174
|
+
lon: input.coordinates.longitude
|
|
175
|
+
};
|
|
176
|
+
const url = new URL('user-feedback/v1/feedback', MapboxApiBasedTool_js_1.MapboxApiBasedTool.mapboxApiEndpoint);
|
|
177
|
+
url.searchParams.set('access_token', accessToken);
|
|
178
|
+
const response = await this.httpRequest(url.toString(), {
|
|
179
|
+
method: 'POST',
|
|
180
|
+
headers: { 'Content-Type': 'application/json' },
|
|
181
|
+
body: JSON.stringify(body)
|
|
182
|
+
});
|
|
183
|
+
if (!response.ok) {
|
|
184
|
+
const errorMessage = await this.getErrorMessage(response);
|
|
185
|
+
const scopeHint = response.status === 401 || response.status === 403
|
|
186
|
+
? ' The access token needs the user-feedback:write scope to send feedback.'
|
|
187
|
+
: '';
|
|
188
|
+
return {
|
|
189
|
+
content: [
|
|
190
|
+
{
|
|
191
|
+
type: 'text',
|
|
192
|
+
text: `Feedback API error: ${errorMessage}.${scopeHint}`
|
|
193
|
+
}
|
|
194
|
+
],
|
|
195
|
+
isError: true
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
// The report is in at this point, so an unexpected response body must not
|
|
199
|
+
// turn into an error (the model might resend). Fall back to what we sent,
|
|
200
|
+
// which still matches the output schema the SDK validates against. No
|
|
201
|
+
// log message: Claude Desktop shows a call that logs as failed.
|
|
202
|
+
const parsed = FeedbackTool_output_schema_js_1.FeedbackOutputSchema.safeParse(await response.json().catch(() => undefined));
|
|
203
|
+
const data = parsed.success
|
|
204
|
+
? parsed.data
|
|
205
|
+
: {
|
|
206
|
+
id: body.id,
|
|
207
|
+
status: 'received',
|
|
208
|
+
category: body.category,
|
|
209
|
+
feedback: body.feedback,
|
|
210
|
+
location: { lon: body.lon, lat: body.lat }
|
|
211
|
+
};
|
|
212
|
+
return {
|
|
213
|
+
content: [
|
|
214
|
+
{
|
|
215
|
+
type: 'text',
|
|
216
|
+
text: `Sent to Mapbox. Report ${data.id}, status: ${data.status}. ` +
|
|
217
|
+
'Mapbox reviews reports and may update the map data; the status changes to fixed, reviewed or out_of_scope once it has.' +
|
|
218
|
+
(check.kind === 'unchecked' && !input.send_anyway
|
|
219
|
+
? ` (Earlier reports were not checked for duplicates: ${check.reason}.)`
|
|
220
|
+
: '')
|
|
221
|
+
}
|
|
222
|
+
],
|
|
223
|
+
structuredContent: data,
|
|
224
|
+
isError: false
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
exports.FeedbackTool = FeedbackTool;
|
|
229
|
+
//# sourceMappingURL=FeedbackTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FeedbackTool.js","sourceRoot":"","sources":["../../../../src/tools/feedback-tool/FeedbackTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* The feedback item the Feedback API returns after a POST.
|
|
4
|
+
* Docs: https://docs.mapbox.com/api/feedback/#the-feedback-item-object
|
|
5
|
+
*/
|
|
6
|
+
export declare const FeedbackOutputSchema: z.ZodObject<{
|
|
7
|
+
id: z.ZodString;
|
|
8
|
+
status: z.ZodString;
|
|
9
|
+
category: z.ZodString;
|
|
10
|
+
feedback: z.ZodString;
|
|
11
|
+
location: z.ZodOptional<z.ZodObject<{
|
|
12
|
+
place_name: z.ZodOptional<z.ZodString>;
|
|
13
|
+
lon: z.ZodNumber;
|
|
14
|
+
lat: z.ZodNumber;
|
|
15
|
+
}, z.core.$loose>>;
|
|
16
|
+
trace_id: z.ZodOptional<z.ZodString>;
|
|
17
|
+
received_at: z.ZodOptional<z.ZodString>;
|
|
18
|
+
created_at: z.ZodOptional<z.ZodString>;
|
|
19
|
+
updated_at: z.ZodOptional<z.ZodString>;
|
|
20
|
+
duplicate: z.ZodOptional<z.ZodBoolean>;
|
|
21
|
+
}, z.core.$loose>;
|
|
22
|
+
export type FeedbackOutput = z.infer<typeof FeedbackOutputSchema>;
|
|
23
|
+
//# sourceMappingURL=FeedbackTool.output.schema.d.ts.map
|