@mapbox/mcp-server 0.8.1 → 0.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (431) hide show
  1. package/README.md +191 -0
  2. package/dist/commonjs/index.js +94 -6
  3. package/dist/commonjs/index.js.map +1 -1
  4. package/dist/commonjs/prompts/SearchAlongRoutePrompt.d.ts +26 -0
  5. package/dist/commonjs/prompts/SearchAlongRoutePrompt.d.ts.map +1 -0
  6. package/dist/commonjs/prompts/SearchAlongRoutePrompt.js +164 -0
  7. package/dist/commonjs/prompts/SearchAlongRoutePrompt.js.map +1 -0
  8. package/dist/commonjs/prompts/promptRegistry.d.ts +2 -1
  9. package/dist/commonjs/prompts/promptRegistry.d.ts.map +1 -1
  10. package/dist/commonjs/prompts/promptRegistry.js +2 -0
  11. package/dist/commonjs/prompts/promptRegistry.js.map +1 -1
  12. package/dist/commonjs/schemas/shared.d.ts +5 -0
  13. package/dist/commonjs/schemas/shared.d.ts.map +1 -1
  14. package/dist/commonjs/schemas/shared.js +11 -1
  15. package/dist/commonjs/schemas/shared.js.map +1 -1
  16. package/dist/commonjs/tools/MapboxApiBasedTool.d.ts +8 -0
  17. package/dist/commonjs/tools/MapboxApiBasedTool.d.ts.map +1 -1
  18. package/dist/commonjs/tools/MapboxApiBasedTool.js +20 -0
  19. package/dist/commonjs/tools/MapboxApiBasedTool.js.map +1 -1
  20. package/dist/commonjs/tools/area-tool/AreaTool.d.ts +21 -0
  21. package/dist/commonjs/tools/area-tool/AreaTool.d.ts.map +1 -0
  22. package/dist/commonjs/tools/area-tool/AreaTool.input.schema.d.ts +19 -0
  23. package/dist/commonjs/tools/area-tool/AreaTool.input.schema.d.ts.map +1 -0
  24. package/dist/commonjs/tools/area-tool/AreaTool.input.schema.js +34 -0
  25. package/dist/commonjs/tools/area-tool/AreaTool.input.schema.js.map +1 -0
  26. package/dist/commonjs/tools/area-tool/AreaTool.js +104 -0
  27. package/dist/commonjs/tools/area-tool/AreaTool.js.map +1 -0
  28. package/dist/commonjs/tools/area-tool/AreaTool.output.schema.d.ts +19 -0
  29. package/dist/commonjs/tools/area-tool/AreaTool.output.schema.d.ts.map +1 -0
  30. package/dist/commonjs/tools/area-tool/AreaTool.output.schema.js +14 -0
  31. package/dist/commonjs/tools/area-tool/AreaTool.output.schema.js.map +1 -0
  32. package/dist/commonjs/tools/bearing-tool/BearingTool.d.ts +22 -0
  33. package/dist/commonjs/tools/bearing-tool/BearingTool.d.ts.map +1 -0
  34. package/dist/commonjs/tools/bearing-tool/BearingTool.input.schema.d.ts +49 -0
  35. package/dist/commonjs/tools/bearing-tool/BearingTool.input.schema.d.ts.map +1 -0
  36. package/dist/commonjs/tools/bearing-tool/BearingTool.input.schema.js +27 -0
  37. package/dist/commonjs/tools/bearing-tool/BearingTool.input.schema.js.map +1 -0
  38. package/dist/commonjs/tools/bearing-tool/BearingTool.js +84 -0
  39. package/dist/commonjs/tools/bearing-tool/BearingTool.js.map +1 -0
  40. package/dist/commonjs/tools/bearing-tool/BearingTool.output.schema.d.ts +52 -0
  41. package/dist/commonjs/tools/bearing-tool/BearingTool.output.schema.d.ts.map +1 -0
  42. package/dist/commonjs/tools/bearing-tool/BearingTool.output.schema.js +21 -0
  43. package/dist/commonjs/tools/bearing-tool/BearingTool.output.schema.js.map +1 -0
  44. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.d.ts +22 -0
  45. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.d.ts.map +1 -0
  46. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.input.schema.d.ts +16 -0
  47. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.input.schema.d.ts.map +1 -0
  48. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.input.schema.js +31 -0
  49. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.input.schema.js.map +1 -0
  50. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.js +107 -0
  51. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.js.map +1 -0
  52. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.output.schema.d.ts +16 -0
  53. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.output.schema.d.ts.map +1 -0
  54. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.output.schema.js +15 -0
  55. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.output.schema.js.map +1 -0
  56. package/dist/commonjs/tools/buffer-tool/BufferTool.d.ts +22 -0
  57. package/dist/commonjs/tools/buffer-tool/BufferTool.d.ts.map +1 -0
  58. package/dist/commonjs/tools/buffer-tool/BufferTool.input.schema.d.ts +22 -0
  59. package/dist/commonjs/tools/buffer-tool/BufferTool.input.schema.d.ts.map +1 -0
  60. package/dist/commonjs/tools/buffer-tool/BufferTool.input.schema.js +35 -0
  61. package/dist/commonjs/tools/buffer-tool/BufferTool.input.schema.js.map +1 -0
  62. package/dist/commonjs/tools/buffer-tool/BufferTool.js +103 -0
  63. package/dist/commonjs/tools/buffer-tool/BufferTool.js.map +1 -0
  64. package/dist/commonjs/tools/buffer-tool/BufferTool.output.schema.d.ts +22 -0
  65. package/dist/commonjs/tools/buffer-tool/BufferTool.output.schema.d.ts.map +1 -0
  66. package/dist/commonjs/tools/buffer-tool/BufferTool.output.schema.js +17 -0
  67. package/dist/commonjs/tools/buffer-tool/BufferTool.output.schema.js.map +1 -0
  68. package/dist/commonjs/tools/category-list-tool/CategoryListTool.d.ts.map +1 -1
  69. package/dist/commonjs/tools/category-list-tool/CategoryListTool.js +2 -1
  70. package/dist/commonjs/tools/category-list-tool/CategoryListTool.js.map +1 -1
  71. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.d.ts.map +1 -1
  72. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.input.schema.d.ts +10 -10
  73. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.js +2 -1
  74. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.js.map +1 -1
  75. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.output.schema.d.ts +44 -44
  76. package/dist/commonjs/tools/centroid-tool/CentroidTool.d.ts +21 -0
  77. package/dist/commonjs/tools/centroid-tool/CentroidTool.d.ts.map +1 -0
  78. package/dist/commonjs/tools/centroid-tool/CentroidTool.input.schema.d.ts +16 -0
  79. package/dist/commonjs/tools/centroid-tool/CentroidTool.input.schema.d.ts.map +1 -0
  80. package/dist/commonjs/tools/centroid-tool/CentroidTool.input.schema.js +29 -0
  81. package/dist/commonjs/tools/centroid-tool/CentroidTool.input.schema.js.map +1 -0
  82. package/dist/commonjs/tools/centroid-tool/CentroidTool.js +81 -0
  83. package/dist/commonjs/tools/centroid-tool/CentroidTool.js.map +1 -0
  84. package/dist/commonjs/tools/centroid-tool/CentroidTool.output.schema.d.ts +31 -0
  85. package/dist/commonjs/tools/centroid-tool/CentroidTool.output.schema.d.ts.map +1 -0
  86. package/dist/commonjs/tools/centroid-tool/CentroidTool.output.schema.js +16 -0
  87. package/dist/commonjs/tools/centroid-tool/CentroidTool.output.schema.js.map +1 -0
  88. package/dist/commonjs/tools/directions-tool/DirectionsTool.d.ts.map +1 -1
  89. package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.d.ts +3 -3
  90. package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.d.ts.map +1 -1
  91. package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.js +6 -7
  92. package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.js.map +1 -1
  93. package/dist/commonjs/tools/directions-tool/DirectionsTool.js +9 -8
  94. package/dist/commonjs/tools/directions-tool/DirectionsTool.js.map +1 -1
  95. package/dist/commonjs/tools/directions-tool/DirectionsTool.output.schema.d.ts +266 -266
  96. package/dist/commonjs/tools/directions-tool/DirectionsTool.output.schema.js +6 -6
  97. package/dist/commonjs/tools/directions-tool/DirectionsTool.output.schema.js.map +1 -1
  98. package/dist/commonjs/tools/directions-tool/cleanResponseData.d.ts +2 -2
  99. package/dist/commonjs/tools/directions-tool/cleanResponseData.d.ts.map +1 -1
  100. package/dist/commonjs/tools/directions-tool/cleanResponseData.js.map +1 -1
  101. package/dist/commonjs/tools/distance-tool/DistanceTool.d.ts +29 -0
  102. package/dist/commonjs/tools/distance-tool/DistanceTool.d.ts.map +1 -0
  103. package/dist/commonjs/tools/distance-tool/DistanceTool.input.schema.d.ts +52 -0
  104. package/dist/commonjs/tools/distance-tool/DistanceTool.input.schema.d.ts.map +1 -0
  105. package/dist/commonjs/tools/distance-tool/DistanceTool.input.schema.js +29 -0
  106. package/dist/commonjs/tools/distance-tool/DistanceTool.input.schema.js.map +1 -0
  107. package/dist/commonjs/tools/distance-tool/DistanceTool.js +95 -0
  108. package/dist/commonjs/tools/distance-tool/DistanceTool.js.map +1 -0
  109. package/dist/commonjs/tools/distance-tool/DistanceTool.output.schema.d.ts +55 -0
  110. package/dist/commonjs/tools/distance-tool/DistanceTool.output.schema.d.ts.map +1 -0
  111. package/dist/commonjs/tools/distance-tool/DistanceTool.output.schema.js +26 -0
  112. package/dist/commonjs/tools/distance-tool/DistanceTool.output.schema.js.map +1 -0
  113. package/dist/commonjs/tools/isochrone-tool/IsochroneTool.d.ts.map +1 -1
  114. package/dist/commonjs/tools/isochrone-tool/IsochroneTool.input.schema.d.ts +2 -2
  115. package/dist/commonjs/tools/isochrone-tool/IsochroneTool.js +2 -1
  116. package/dist/commonjs/tools/isochrone-tool/IsochroneTool.js.map +1 -1
  117. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.d.ts +22 -0
  118. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.d.ts.map +1 -0
  119. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.input.schema.d.ts +43 -0
  120. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.input.schema.d.ts.map +1 -0
  121. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.input.schema.js +60 -0
  122. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.input.schema.js.map +1 -0
  123. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.js +117 -0
  124. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.js.map +1 -0
  125. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.output.schema.d.ts +170 -0
  126. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.output.schema.d.ts.map +1 -0
  127. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.output.schema.js +49 -0
  128. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.output.schema.js.map +1 -0
  129. package/dist/commonjs/tools/matrix-tool/MatrixTool.d.ts.map +1 -1
  130. package/dist/commonjs/tools/matrix-tool/MatrixTool.input.schema.d.ts +3 -3
  131. package/dist/commonjs/tools/matrix-tool/MatrixTool.input.schema.d.ts.map +1 -1
  132. package/dist/commonjs/tools/matrix-tool/MatrixTool.input.schema.js +5 -7
  133. package/dist/commonjs/tools/matrix-tool/MatrixTool.input.schema.js.map +1 -1
  134. package/dist/commonjs/tools/matrix-tool/MatrixTool.js +5 -3
  135. package/dist/commonjs/tools/matrix-tool/MatrixTool.js.map +1 -1
  136. package/dist/commonjs/tools/midpoint-tool/MidpointTool.d.ts +21 -0
  137. package/dist/commonjs/tools/midpoint-tool/MidpointTool.d.ts.map +1 -0
  138. package/dist/commonjs/tools/midpoint-tool/MidpointTool.input.schema.d.ts +49 -0
  139. package/dist/commonjs/tools/midpoint-tool/MidpointTool.input.schema.d.ts.map +1 -0
  140. package/dist/commonjs/tools/midpoint-tool/MidpointTool.input.schema.js +27 -0
  141. package/dist/commonjs/tools/midpoint-tool/MidpointTool.input.schema.js.map +1 -0
  142. package/dist/commonjs/tools/midpoint-tool/MidpointTool.js +81 -0
  143. package/dist/commonjs/tools/midpoint-tool/MidpointTool.js.map +1 -0
  144. package/dist/commonjs/tools/midpoint-tool/MidpointTool.output.schema.d.ts +67 -0
  145. package/dist/commonjs/tools/midpoint-tool/MidpointTool.output.schema.d.ts.map +1 -0
  146. package/dist/commonjs/tools/midpoint-tool/MidpointTool.output.schema.js +24 -0
  147. package/dist/commonjs/tools/midpoint-tool/MidpointTool.output.schema.js.map +1 -0
  148. package/dist/commonjs/tools/optimization-tool/OptimizationTool.d.ts +28 -0
  149. package/dist/commonjs/tools/optimization-tool/OptimizationTool.d.ts.map +1 -0
  150. package/dist/commonjs/tools/optimization-tool/OptimizationTool.input.schema.d.ts +58 -0
  151. package/dist/commonjs/tools/optimization-tool/OptimizationTool.input.schema.d.ts.map +1 -0
  152. package/dist/commonjs/tools/optimization-tool/OptimizationTool.input.schema.js +76 -0
  153. package/dist/commonjs/tools/optimization-tool/OptimizationTool.input.schema.js.map +1 -0
  154. package/dist/commonjs/tools/optimization-tool/OptimizationTool.js +142 -0
  155. package/dist/commonjs/tools/optimization-tool/OptimizationTool.js.map +1 -0
  156. package/dist/commonjs/tools/optimization-tool/OptimizationTool.output.schema.d.ts +621 -0
  157. package/dist/commonjs/tools/optimization-tool/OptimizationTool.output.schema.d.ts.map +1 -0
  158. package/dist/commonjs/tools/optimization-tool/OptimizationTool.output.schema.js +87 -0
  159. package/dist/commonjs/tools/optimization-tool/OptimizationTool.output.schema.js.map +1 -0
  160. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.d.ts +10 -0
  161. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.d.ts.map +1 -0
  162. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.input.schema.d.ts +303 -0
  163. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.input.schema.d.ts.map +1 -0
  164. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.input.schema.js +186 -0
  165. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.input.schema.js.map +1 -0
  166. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.js +332 -0
  167. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.js.map +1 -0
  168. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.output.schema.d.ts +356 -0
  169. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.output.schema.d.ts.map +1 -0
  170. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.output.schema.js +109 -0
  171. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.output.schema.js.map +1 -0
  172. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.d.ts +24 -0
  173. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.d.ts.map +1 -0
  174. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.input.schema.d.ts +34 -0
  175. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.input.schema.d.ts.map +1 -0
  176. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.input.schema.js +32 -0
  177. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.input.schema.js.map +1 -0
  178. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.js +84 -0
  179. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.js.map +1 -0
  180. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.output.schema.d.ts +34 -0
  181. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.output.schema.d.ts.map +1 -0
  182. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.output.schema.js +19 -0
  183. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.output.schema.js.map +1 -0
  184. package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.d.ts.map +1 -1
  185. package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.js.map +1 -1
  186. package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.d.ts.map +1 -1
  187. package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.js +2 -1
  188. package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.js.map +1 -1
  189. package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.output.schema.d.ts +24 -24
  190. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.input.schema.d.ts +10 -10
  191. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.js +3 -3
  192. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.js.map +1 -1
  193. package/dist/commonjs/tools/simplify-tool/SimplifyTool.d.ts +22 -0
  194. package/dist/commonjs/tools/simplify-tool/SimplifyTool.d.ts.map +1 -0
  195. package/dist/commonjs/tools/simplify-tool/SimplifyTool.input.schema.d.ts +22 -0
  196. package/dist/commonjs/tools/simplify-tool/SimplifyTool.input.schema.d.ts.map +1 -0
  197. package/dist/commonjs/tools/simplify-tool/SimplifyTool.input.schema.js +38 -0
  198. package/dist/commonjs/tools/simplify-tool/SimplifyTool.input.schema.js.map +1 -0
  199. package/dist/commonjs/tools/simplify-tool/SimplifyTool.js +108 -0
  200. package/dist/commonjs/tools/simplify-tool/SimplifyTool.js.map +1 -0
  201. package/dist/commonjs/tools/simplify-tool/SimplifyTool.output.schema.d.ts +25 -0
  202. package/dist/commonjs/tools/simplify-tool/SimplifyTool.output.schema.d.ts.map +1 -0
  203. package/dist/commonjs/tools/simplify-tool/SimplifyTool.output.schema.js +23 -0
  204. package/dist/commonjs/tools/simplify-tool/SimplifyTool.output.schema.js.map +1 -0
  205. package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.d.ts.map +1 -1
  206. package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.input.schema.d.ts +8 -8
  207. package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.js +20 -2
  208. package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.js.map +1 -1
  209. package/dist/commonjs/tools/toolRegistry.d.ts +62 -1
  210. package/dist/commonjs/tools/toolRegistry.d.ts.map +1 -1
  211. package/dist/commonjs/tools/toolRegistry.js +90 -5
  212. package/dist/commonjs/tools/toolRegistry.js.map +1 -1
  213. package/dist/commonjs/utils/tracing.d.ts.map +1 -1
  214. package/dist/commonjs/utils/tracing.js.map +1 -1
  215. package/dist/commonjs/version.json +3 -3
  216. package/dist/esm/index.js +95 -7
  217. package/dist/esm/index.js.map +1 -1
  218. package/dist/esm/prompts/SearchAlongRoutePrompt.d.ts +26 -0
  219. package/dist/esm/prompts/SearchAlongRoutePrompt.d.ts.map +1 -0
  220. package/dist/esm/prompts/SearchAlongRoutePrompt.js +160 -0
  221. package/dist/esm/prompts/SearchAlongRoutePrompt.js.map +1 -0
  222. package/dist/esm/prompts/promptRegistry.d.ts +2 -1
  223. package/dist/esm/prompts/promptRegistry.d.ts.map +1 -1
  224. package/dist/esm/prompts/promptRegistry.js +2 -0
  225. package/dist/esm/prompts/promptRegistry.js.map +1 -1
  226. package/dist/esm/schemas/shared.d.ts +5 -0
  227. package/dist/esm/schemas/shared.d.ts.map +1 -1
  228. package/dist/esm/schemas/shared.js +10 -0
  229. package/dist/esm/schemas/shared.js.map +1 -1
  230. package/dist/esm/tools/MapboxApiBasedTool.d.ts +8 -0
  231. package/dist/esm/tools/MapboxApiBasedTool.d.ts.map +1 -1
  232. package/dist/esm/tools/MapboxApiBasedTool.js +20 -0
  233. package/dist/esm/tools/MapboxApiBasedTool.js.map +1 -1
  234. package/dist/esm/tools/area-tool/AreaTool.d.ts +21 -0
  235. package/dist/esm/tools/area-tool/AreaTool.d.ts.map +1 -0
  236. package/dist/esm/tools/area-tool/AreaTool.input.schema.d.ts +19 -0
  237. package/dist/esm/tools/area-tool/AreaTool.input.schema.d.ts.map +1 -0
  238. package/dist/esm/tools/area-tool/AreaTool.input.schema.js +28 -0
  239. package/dist/esm/tools/area-tool/AreaTool.input.schema.js.map +1 -0
  240. package/dist/esm/tools/area-tool/AreaTool.js +100 -0
  241. package/dist/esm/tools/area-tool/AreaTool.js.map +1 -0
  242. package/dist/esm/tools/area-tool/AreaTool.output.schema.d.ts +19 -0
  243. package/dist/esm/tools/area-tool/AreaTool.output.schema.d.ts.map +1 -0
  244. package/dist/esm/tools/area-tool/AreaTool.output.schema.js +11 -0
  245. package/dist/esm/tools/area-tool/AreaTool.output.schema.js.map +1 -0
  246. package/dist/esm/tools/bearing-tool/BearingTool.d.ts +22 -0
  247. package/dist/esm/tools/bearing-tool/BearingTool.d.ts.map +1 -0
  248. package/dist/esm/tools/bearing-tool/BearingTool.input.schema.d.ts +49 -0
  249. package/dist/esm/tools/bearing-tool/BearingTool.input.schema.d.ts.map +1 -0
  250. package/dist/esm/tools/bearing-tool/BearingTool.input.schema.js +21 -0
  251. package/dist/esm/tools/bearing-tool/BearingTool.input.schema.js.map +1 -0
  252. package/dist/esm/tools/bearing-tool/BearingTool.js +80 -0
  253. package/dist/esm/tools/bearing-tool/BearingTool.js.map +1 -0
  254. package/dist/esm/tools/bearing-tool/BearingTool.output.schema.d.ts +52 -0
  255. package/dist/esm/tools/bearing-tool/BearingTool.output.schema.d.ts.map +1 -0
  256. package/dist/esm/tools/bearing-tool/BearingTool.output.schema.js +18 -0
  257. package/dist/esm/tools/bearing-tool/BearingTool.output.schema.js.map +1 -0
  258. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.d.ts +22 -0
  259. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.d.ts.map +1 -0
  260. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.input.schema.d.ts +16 -0
  261. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.input.schema.d.ts.map +1 -0
  262. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.input.schema.js +25 -0
  263. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.input.schema.js.map +1 -0
  264. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.js +103 -0
  265. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.js.map +1 -0
  266. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.output.schema.d.ts +16 -0
  267. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.output.schema.d.ts.map +1 -0
  268. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.output.schema.js +12 -0
  269. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.output.schema.js.map +1 -0
  270. package/dist/esm/tools/buffer-tool/BufferTool.d.ts +22 -0
  271. package/dist/esm/tools/buffer-tool/BufferTool.d.ts.map +1 -0
  272. package/dist/esm/tools/buffer-tool/BufferTool.input.schema.d.ts +22 -0
  273. package/dist/esm/tools/buffer-tool/BufferTool.input.schema.d.ts.map +1 -0
  274. package/dist/esm/tools/buffer-tool/BufferTool.input.schema.js +29 -0
  275. package/dist/esm/tools/buffer-tool/BufferTool.input.schema.js.map +1 -0
  276. package/dist/esm/tools/buffer-tool/BufferTool.js +99 -0
  277. package/dist/esm/tools/buffer-tool/BufferTool.js.map +1 -0
  278. package/dist/esm/tools/buffer-tool/BufferTool.output.schema.d.ts +22 -0
  279. package/dist/esm/tools/buffer-tool/BufferTool.output.schema.d.ts.map +1 -0
  280. package/dist/esm/tools/buffer-tool/BufferTool.output.schema.js +14 -0
  281. package/dist/esm/tools/buffer-tool/BufferTool.output.schema.js.map +1 -0
  282. package/dist/esm/tools/category-list-tool/CategoryListTool.d.ts.map +1 -1
  283. package/dist/esm/tools/category-list-tool/CategoryListTool.js +2 -1
  284. package/dist/esm/tools/category-list-tool/CategoryListTool.js.map +1 -1
  285. package/dist/esm/tools/category-search-tool/CategorySearchTool.d.ts.map +1 -1
  286. package/dist/esm/tools/category-search-tool/CategorySearchTool.input.schema.d.ts +10 -10
  287. package/dist/esm/tools/category-search-tool/CategorySearchTool.js +2 -1
  288. package/dist/esm/tools/category-search-tool/CategorySearchTool.js.map +1 -1
  289. package/dist/esm/tools/category-search-tool/CategorySearchTool.output.schema.d.ts +44 -44
  290. package/dist/esm/tools/centroid-tool/CentroidTool.d.ts +21 -0
  291. package/dist/esm/tools/centroid-tool/CentroidTool.d.ts.map +1 -0
  292. package/dist/esm/tools/centroid-tool/CentroidTool.input.schema.d.ts +16 -0
  293. package/dist/esm/tools/centroid-tool/CentroidTool.input.schema.d.ts.map +1 -0
  294. package/dist/esm/tools/centroid-tool/CentroidTool.input.schema.js +23 -0
  295. package/dist/esm/tools/centroid-tool/CentroidTool.input.schema.js.map +1 -0
  296. package/dist/esm/tools/centroid-tool/CentroidTool.js +77 -0
  297. package/dist/esm/tools/centroid-tool/CentroidTool.js.map +1 -0
  298. package/dist/esm/tools/centroid-tool/CentroidTool.output.schema.d.ts +31 -0
  299. package/dist/esm/tools/centroid-tool/CentroidTool.output.schema.d.ts.map +1 -0
  300. package/dist/esm/tools/centroid-tool/CentroidTool.output.schema.js +13 -0
  301. package/dist/esm/tools/centroid-tool/CentroidTool.output.schema.js.map +1 -0
  302. package/dist/esm/tools/directions-tool/DirectionsTool.d.ts.map +1 -1
  303. package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.d.ts +3 -3
  304. package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.d.ts.map +1 -1
  305. package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.js +7 -8
  306. package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.js.map +1 -1
  307. package/dist/esm/tools/directions-tool/DirectionsTool.js +9 -8
  308. package/dist/esm/tools/directions-tool/DirectionsTool.js.map +1 -1
  309. package/dist/esm/tools/directions-tool/DirectionsTool.output.schema.d.ts +266 -266
  310. package/dist/esm/tools/directions-tool/DirectionsTool.output.schema.js +6 -6
  311. package/dist/esm/tools/directions-tool/DirectionsTool.output.schema.js.map +1 -1
  312. package/dist/esm/tools/directions-tool/cleanResponseData.d.ts +2 -2
  313. package/dist/esm/tools/directions-tool/cleanResponseData.d.ts.map +1 -1
  314. package/dist/esm/tools/directions-tool/cleanResponseData.js.map +1 -1
  315. package/dist/esm/tools/distance-tool/DistanceTool.d.ts +29 -0
  316. package/dist/esm/tools/distance-tool/DistanceTool.d.ts.map +1 -0
  317. package/dist/esm/tools/distance-tool/DistanceTool.input.schema.d.ts +52 -0
  318. package/dist/esm/tools/distance-tool/DistanceTool.input.schema.d.ts.map +1 -0
  319. package/dist/esm/tools/distance-tool/DistanceTool.input.schema.js +23 -0
  320. package/dist/esm/tools/distance-tool/DistanceTool.input.schema.js.map +1 -0
  321. package/dist/esm/tools/distance-tool/DistanceTool.js +91 -0
  322. package/dist/esm/tools/distance-tool/DistanceTool.js.map +1 -0
  323. package/dist/esm/tools/distance-tool/DistanceTool.output.schema.d.ts +55 -0
  324. package/dist/esm/tools/distance-tool/DistanceTool.output.schema.d.ts.map +1 -0
  325. package/dist/esm/tools/distance-tool/DistanceTool.output.schema.js +23 -0
  326. package/dist/esm/tools/distance-tool/DistanceTool.output.schema.js.map +1 -0
  327. package/dist/esm/tools/isochrone-tool/IsochroneTool.d.ts.map +1 -1
  328. package/dist/esm/tools/isochrone-tool/IsochroneTool.input.schema.d.ts +2 -2
  329. package/dist/esm/tools/isochrone-tool/IsochroneTool.js +2 -1
  330. package/dist/esm/tools/isochrone-tool/IsochroneTool.js.map +1 -1
  331. package/dist/esm/tools/map-matching-tool/MapMatchingTool.d.ts +22 -0
  332. package/dist/esm/tools/map-matching-tool/MapMatchingTool.d.ts.map +1 -0
  333. package/dist/esm/tools/map-matching-tool/MapMatchingTool.input.schema.d.ts +43 -0
  334. package/dist/esm/tools/map-matching-tool/MapMatchingTool.input.schema.d.ts.map +1 -0
  335. package/dist/esm/tools/map-matching-tool/MapMatchingTool.input.schema.js +57 -0
  336. package/dist/esm/tools/map-matching-tool/MapMatchingTool.input.schema.js.map +1 -0
  337. package/dist/esm/tools/map-matching-tool/MapMatchingTool.js +113 -0
  338. package/dist/esm/tools/map-matching-tool/MapMatchingTool.js.map +1 -0
  339. package/dist/esm/tools/map-matching-tool/MapMatchingTool.output.schema.d.ts +170 -0
  340. package/dist/esm/tools/map-matching-tool/MapMatchingTool.output.schema.d.ts.map +1 -0
  341. package/dist/esm/tools/map-matching-tool/MapMatchingTool.output.schema.js +46 -0
  342. package/dist/esm/tools/map-matching-tool/MapMatchingTool.output.schema.js.map +1 -0
  343. package/dist/esm/tools/matrix-tool/MatrixTool.d.ts.map +1 -1
  344. package/dist/esm/tools/matrix-tool/MatrixTool.input.schema.d.ts +3 -3
  345. package/dist/esm/tools/matrix-tool/MatrixTool.input.schema.d.ts.map +1 -1
  346. package/dist/esm/tools/matrix-tool/MatrixTool.input.schema.js +6 -8
  347. package/dist/esm/tools/matrix-tool/MatrixTool.input.schema.js.map +1 -1
  348. package/dist/esm/tools/matrix-tool/MatrixTool.js +5 -3
  349. package/dist/esm/tools/matrix-tool/MatrixTool.js.map +1 -1
  350. package/dist/esm/tools/midpoint-tool/MidpointTool.d.ts +21 -0
  351. package/dist/esm/tools/midpoint-tool/MidpointTool.d.ts.map +1 -0
  352. package/dist/esm/tools/midpoint-tool/MidpointTool.input.schema.d.ts +49 -0
  353. package/dist/esm/tools/midpoint-tool/MidpointTool.input.schema.d.ts.map +1 -0
  354. package/dist/esm/tools/midpoint-tool/MidpointTool.input.schema.js +21 -0
  355. package/dist/esm/tools/midpoint-tool/MidpointTool.input.schema.js.map +1 -0
  356. package/dist/esm/tools/midpoint-tool/MidpointTool.js +77 -0
  357. package/dist/esm/tools/midpoint-tool/MidpointTool.js.map +1 -0
  358. package/dist/esm/tools/midpoint-tool/MidpointTool.output.schema.d.ts +67 -0
  359. package/dist/esm/tools/midpoint-tool/MidpointTool.output.schema.d.ts.map +1 -0
  360. package/dist/esm/tools/midpoint-tool/MidpointTool.output.schema.js +21 -0
  361. package/dist/esm/tools/midpoint-tool/MidpointTool.output.schema.js.map +1 -0
  362. package/dist/esm/tools/optimization-tool/OptimizationTool.d.ts +28 -0
  363. package/dist/esm/tools/optimization-tool/OptimizationTool.d.ts.map +1 -0
  364. package/dist/esm/tools/optimization-tool/OptimizationTool.input.schema.d.ts +58 -0
  365. package/dist/esm/tools/optimization-tool/OptimizationTool.input.schema.d.ts.map +1 -0
  366. package/dist/esm/tools/optimization-tool/OptimizationTool.input.schema.js +70 -0
  367. package/dist/esm/tools/optimization-tool/OptimizationTool.input.schema.js.map +1 -0
  368. package/dist/esm/tools/optimization-tool/OptimizationTool.js +138 -0
  369. package/dist/esm/tools/optimization-tool/OptimizationTool.js.map +1 -0
  370. package/dist/esm/tools/optimization-tool/OptimizationTool.output.schema.d.ts +621 -0
  371. package/dist/esm/tools/optimization-tool/OptimizationTool.output.schema.d.ts.map +1 -0
  372. package/dist/esm/tools/optimization-tool/OptimizationTool.output.schema.js +84 -0
  373. package/dist/esm/tools/optimization-tool/OptimizationTool.output.schema.js.map +1 -0
  374. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.d.ts +10 -0
  375. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.d.ts.map +1 -0
  376. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.input.schema.d.ts +303 -0
  377. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.input.schema.d.ts.map +1 -0
  378. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.input.schema.js +180 -0
  379. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.input.schema.js.map +1 -0
  380. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.js +329 -0
  381. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.js.map +1 -0
  382. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.output.schema.d.ts +356 -0
  383. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.output.schema.d.ts.map +1 -0
  384. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.output.schema.js +106 -0
  385. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.output.schema.js.map +1 -0
  386. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.d.ts +24 -0
  387. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.d.ts.map +1 -0
  388. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.input.schema.d.ts +34 -0
  389. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.input.schema.d.ts.map +1 -0
  390. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.input.schema.js +26 -0
  391. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.input.schema.js.map +1 -0
  392. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.js +80 -0
  393. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.js.map +1 -0
  394. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.output.schema.d.ts +34 -0
  395. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.output.schema.d.ts.map +1 -0
  396. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.output.schema.js +16 -0
  397. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.output.schema.js.map +1 -0
  398. package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.d.ts.map +1 -1
  399. package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.js.map +1 -1
  400. package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.d.ts.map +1 -1
  401. package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.js +2 -1
  402. package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.js.map +1 -1
  403. package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.output.schema.d.ts +24 -24
  404. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.input.schema.d.ts +10 -10
  405. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.js +3 -3
  406. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.js.map +1 -1
  407. package/dist/esm/tools/simplify-tool/SimplifyTool.d.ts +22 -0
  408. package/dist/esm/tools/simplify-tool/SimplifyTool.d.ts.map +1 -0
  409. package/dist/esm/tools/simplify-tool/SimplifyTool.input.schema.d.ts +22 -0
  410. package/dist/esm/tools/simplify-tool/SimplifyTool.input.schema.d.ts.map +1 -0
  411. package/dist/esm/tools/simplify-tool/SimplifyTool.input.schema.js +32 -0
  412. package/dist/esm/tools/simplify-tool/SimplifyTool.input.schema.js.map +1 -0
  413. package/dist/esm/tools/simplify-tool/SimplifyTool.js +104 -0
  414. package/dist/esm/tools/simplify-tool/SimplifyTool.js.map +1 -0
  415. package/dist/esm/tools/simplify-tool/SimplifyTool.output.schema.d.ts +25 -0
  416. package/dist/esm/tools/simplify-tool/SimplifyTool.output.schema.d.ts.map +1 -0
  417. package/dist/esm/tools/simplify-tool/SimplifyTool.output.schema.js +20 -0
  418. package/dist/esm/tools/simplify-tool/SimplifyTool.output.schema.js.map +1 -0
  419. package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.d.ts.map +1 -1
  420. package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.input.schema.d.ts +8 -8
  421. package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.js +20 -2
  422. package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.js.map +1 -1
  423. package/dist/esm/tools/toolRegistry.d.ts +62 -1
  424. package/dist/esm/tools/toolRegistry.d.ts.map +1 -1
  425. package/dist/esm/tools/toolRegistry.js +86 -4
  426. package/dist/esm/tools/toolRegistry.js.map +1 -1
  427. package/dist/esm/utils/tracing.d.ts.map +1 -1
  428. package/dist/esm/utils/tracing.js.map +1 -1
  429. package/dist/esm/version.json +3 -3
  430. package/package.json +3 -2
  431. /package/patches/{@modelcontextprotocol+sdk+1.25.1.patch → @modelcontextprotocol+sdk+1.25.3.patch} +0 -0
@@ -0,0 +1,332 @@
1
+ "use strict";
2
+ // Copyright (c) Mapbox, Inc.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.registerOptimizationV2Task = registerOptimizationV2Task;
6
+ const OptimizationV2Tool_input_schema_js_1 = require("./OptimizationV2Tool.input.schema.js");
7
+ const OptimizationV2Tool_output_schema_js_1 = require("./OptimizationV2Tool.output.schema.js");
8
+ /**
9
+ * OptimizationV2Tool - Advanced route optimization using Mapbox Optimization API V2 (BETA)
10
+ *
11
+ * ⚠️ IMPORTANT: This tool uses the V2 API which is currently in beta and requires early access.
12
+ * The tool is not registered by default. To enable it, add it to the toolRegistry.
13
+ *
14
+ * V2 Features:
15
+ * - Time window constraints for services and shipments
16
+ * - Vehicle capacity limits for multiple resource types
17
+ * - Driver shifts with earliest start and latest end times
18
+ * - Pickup and dropoff constraints for shipment handling
19
+ * - Vehicle capabilities requirements (e.g., refrigeration, ladder)
20
+ * - Loading policies (FIFO, LIFO, or any order)
21
+ * - Mandated breaks for vehicles
22
+ *
23
+ * API documentation: https://docs.mapbox.com/api/navigation/optimization/
24
+ */
25
+ /**
26
+ * Helper function to validate JWT format
27
+ */
28
+ function isValidJwtFormat(token) {
29
+ const parts = token.split('.');
30
+ if (parts.length !== 3)
31
+ return false;
32
+ return parts.every((part) => part.length > 0);
33
+ }
34
+ /**
35
+ * Helper function to get Mapbox API endpoint
36
+ */
37
+ function getMapboxApiEndpoint() {
38
+ return process.env.MAPBOX_API_ENDPOINT || 'https://api.mapbox.com/';
39
+ }
40
+ /**
41
+ * Core function to submit optimization job to Mapbox API
42
+ */
43
+ async function submitOptimizationJob(input, accessToken, httpRequest) {
44
+ // Validate: If vehicles are provided, at least one service or shipment is required
45
+ if (input.vehicles && input.vehicles.length > 0) {
46
+ const hasServices = input.services && input.services.length > 0;
47
+ const hasShipments = input.shipments && input.shipments.length > 0;
48
+ if (!hasServices && !hasShipments) {
49
+ throw new Error('When vehicles are provided, at least one service or shipment is required');
50
+ }
51
+ }
52
+ // Convert simplified input to Optimization API v2 format
53
+ // Create locations array with auto-generated names
54
+ const locations = input.coordinates.map((coord, index) => ({
55
+ name: `location-${index}`,
56
+ coordinates: [coord.longitude, coord.latitude]
57
+ }));
58
+ // If vehicles are not provided, create a default vehicle
59
+ let vehicles;
60
+ let services;
61
+ let shipments;
62
+ if (!input.vehicles || input.vehicles.length === 0) {
63
+ // Simplified mode: auto-generate vehicle and services from coordinates
64
+ vehicles = [
65
+ {
66
+ name: 'vehicle-1',
67
+ routing_profile: input.profile,
68
+ start_location: 'location-0', // Start at first location
69
+ end_location: 'location-0' // Return to first location
70
+ }
71
+ ];
72
+ // Create services for all locations except the first (which is start/end)
73
+ services = input.coordinates.slice(1).map((_, index) => ({
74
+ name: `service-${index + 1}`,
75
+ location: `location-${index + 1}`,
76
+ duration: 0 // No service time by default
77
+ }));
78
+ }
79
+ else {
80
+ // Advanced mode: use provided vehicles, services, and shipments
81
+ vehicles = input.vehicles;
82
+ services = input.services || [];
83
+ shipments = input.shipments;
84
+ }
85
+ // Build request body
86
+ const requestBody = {
87
+ version: 1,
88
+ locations,
89
+ vehicles,
90
+ services
91
+ };
92
+ if (shipments && shipments.length > 0) {
93
+ requestBody.shipments = shipments;
94
+ }
95
+ // Step 1: POST to create optimization job
96
+ const postUrl = `${getMapboxApiEndpoint()}optimized-trips/v2?access_token=${accessToken}`;
97
+ const postResponse = await httpRequest(postUrl, {
98
+ method: 'POST',
99
+ headers: { 'Content-Type': 'application/json' },
100
+ body: JSON.stringify(requestBody)
101
+ });
102
+ if (!postResponse.ok) {
103
+ const errorText = await postResponse.text();
104
+ let errorMessage = `Request failed with status ${postResponse.status}: ${postResponse.statusText}`;
105
+ try {
106
+ const errorJson = JSON.parse(errorText);
107
+ if (errorJson.message) {
108
+ errorMessage = `${errorMessage} - ${errorJson.message}`;
109
+ }
110
+ }
111
+ catch {
112
+ // If parsing fails, use the raw text
113
+ if (errorText) {
114
+ errorMessage = `${errorMessage} - ${errorText}`;
115
+ }
116
+ }
117
+ throw new Error(errorMessage);
118
+ }
119
+ const postData = (await postResponse.json());
120
+ return {
121
+ jobId: postData.id,
122
+ status: postData.status
123
+ };
124
+ }
125
+ /**
126
+ * Core function to poll optimization job status
127
+ */
128
+ async function pollOptimizationJob(jobId, accessToken, httpRequest) {
129
+ const getUrl = `${getMapboxApiEndpoint()}optimized-trips/v2/${jobId}?access_token=${accessToken}`;
130
+ const getResponse = await httpRequest(getUrl);
131
+ if (!getResponse.ok) {
132
+ if (getResponse.status === 404) {
133
+ return {
134
+ status: 404,
135
+ error: `Optimization job ${jobId} not found`
136
+ };
137
+ }
138
+ return {
139
+ status: getResponse.status,
140
+ error: `Request failed with status ${getResponse.status}: ${getResponse.statusText}`
141
+ };
142
+ }
143
+ // HTTP 200 means the optimization is complete
144
+ if (getResponse.status === 200) {
145
+ const result = (await getResponse.json());
146
+ return {
147
+ status: 200,
148
+ data: result
149
+ };
150
+ }
151
+ // HTTP 202 means still processing
152
+ return {
153
+ status: 202
154
+ };
155
+ }
156
+ /**
157
+ * Background polling function that runs until job completes
158
+ */
159
+ async function backgroundPollOptimizationJob(jobId, accessToken, httpRequest, taskStore, taskId, maxAttempts, pollingInterval) {
160
+ let attempts = 0;
161
+ while (attempts < maxAttempts) {
162
+ try {
163
+ const pollResult = await pollOptimizationJob(jobId, accessToken, httpRequest);
164
+ if (pollResult.status === 200 && pollResult.data) {
165
+ // Job completed successfully
166
+ try {
167
+ const validatedData = OptimizationV2Tool_output_schema_js_1.OptimizationV2OutputSchema.parse(pollResult.data);
168
+ await taskStore.storeTaskResult(taskId, 'completed', {
169
+ content: [
170
+ { type: 'text', text: JSON.stringify(validatedData, null, 2) }
171
+ ],
172
+ structuredContent: validatedData
173
+ });
174
+ }
175
+ catch {
176
+ // If validation fails, return raw result anyway
177
+ await taskStore.storeTaskResult(taskId, 'completed', {
178
+ content: [
179
+ { type: 'text', text: JSON.stringify(pollResult.data, null, 2) }
180
+ ],
181
+ structuredContent: pollResult.data
182
+ });
183
+ }
184
+ return;
185
+ }
186
+ else if (pollResult.error) {
187
+ // Job failed or not found
188
+ await taskStore.storeTaskResult(taskId, 'failed', {
189
+ content: [{ type: 'text', text: pollResult.error }],
190
+ isError: true
191
+ });
192
+ return;
193
+ }
194
+ // Still processing (status 202), update task status
195
+ await taskStore.updateTaskStatus(taskId, 'working', `Processing optimization job (attempt ${attempts + 1}/${maxAttempts})`);
196
+ // Wait before next poll
197
+ await new Promise((resolve) => setTimeout(resolve, pollingInterval));
198
+ attempts++;
199
+ }
200
+ catch (error) {
201
+ // Error during polling
202
+ await taskStore.storeTaskResult(taskId, 'failed', {
203
+ content: [
204
+ {
205
+ type: 'text',
206
+ text: `Error polling optimization job: ${error instanceof Error ? error.message : String(error)}`
207
+ }
208
+ ],
209
+ isError: true
210
+ });
211
+ return;
212
+ }
213
+ }
214
+ // Timed out
215
+ await taskStore.storeTaskResult(taskId, 'failed', {
216
+ content: [
217
+ {
218
+ type: 'text',
219
+ text: `Optimization timed out after ${maxAttempts} attempts. Job ID: ${jobId}. You can check the status later using the job ID.`
220
+ }
221
+ ],
222
+ isError: true
223
+ });
224
+ }
225
+ /**
226
+ * Register the Optimization V2 tool as a task-based tool
227
+ *
228
+ * ⚠️ BETA: This tool uses the V2 API which requires early access.
229
+ * Not registered by default - call this function manually to enable.
230
+ */
231
+ function registerOptimizationV2Task(server, httpRequest) {
232
+ server.experimental.tasks.registerToolTask('optimization_v2_tool', {
233
+ title: 'Optimization Tool V2 (Beta)',
234
+ description: 'Solves vehicle routing problems using the Mapbox Optimization API v2 (Beta). ' +
235
+ 'This is a long-running async task that submits an optimization job and polls for results. ' +
236
+ 'Supports up to 1000 coordinates in {longitude, latitude} format. ' +
237
+ 'Returns optimized routes with stops, ETAs, and dropped items. ' +
238
+ '\n\n' +
239
+ 'USAGE MODES:\n' +
240
+ '1. SIMPLIFIED MODE (recommended for basic routing): Provide only "coordinates" and optionally "profile". ' +
241
+ 'The tool will automatically create a default vehicle that visits all locations in optimized order, ' +
242
+ 'starting and ending at the first coordinate.\n' +
243
+ '2. ADVANCED MODE (for complex scenarios): If you specify "vehicles", you MUST also provide either ' +
244
+ '"services" (single stops like deliveries or pickups) or "shipments" (paired pickup/dropoff tasks). ' +
245
+ 'Each service/shipment defines a stop that vehicles must visit.\n' +
246
+ '\n' +
247
+ 'KEY CONCEPTS:\n' +
248
+ '- "services": Individual stops at locations (e.g., deliver package to address A, pick up at coffee shop B)\n' +
249
+ '- "shipments": Paired pickup/delivery tasks (e.g., pick up from warehouse, deliver to customer)\n' +
250
+ '- "vehicles": Routing agents with optional constraints like time windows, capacities, and capabilities\n' +
251
+ '\n' +
252
+ 'LOCATION NAMING (CRITICAL):\n' +
253
+ 'The tool auto-generates STRING location names from your coordinates array as "location-0", "location-1", "location-2", etc. ' +
254
+ 'When creating services, shipments, or vehicles, you MUST reference these auto-generated STRINGS (NOT integers, NOT array indices):\n' +
255
+ '- coordinates[0] → use STRING "location-0" (NOT integer 0)\n' +
256
+ '\n' +
257
+ 'EXAMPLES:\n' +
258
+ '✓ CORRECT: service.location = "location-2" (string)\n' +
259
+ '✗ WRONG: service.location = 2 (integer)\n' +
260
+ '\n' +
261
+ 'IMPORTANT: This is an async task. The task will start immediately but results will be available later via task polling.',
262
+ inputSchema: OptimizationV2Tool_input_schema_js_1.OptimizationV2InputSchema,
263
+ outputSchema: OptimizationV2Tool_output_schema_js_1.OptimizationV2OutputSchema,
264
+ annotations: {
265
+ title: 'Optimization Tool',
266
+ readOnlyHint: true,
267
+ destructiveHint: false,
268
+ idempotentHint: false,
269
+ openWorldHint: true
270
+ }
271
+ }, {
272
+ async createTask(args, extra) {
273
+ // Validate input
274
+ const input = OptimizationV2Tool_input_schema_js_1.OptimizationV2InputSchema.parse(args);
275
+ // Get and validate access token (from environment only for now)
276
+ const accessToken = process.env.MAPBOX_ACCESS_TOKEN ||
277
+ extra.authInfo?.token;
278
+ if (!accessToken) {
279
+ throw new Error('No access token available. Please provide via Bearer auth or MAPBOX_ACCESS_TOKEN env var');
280
+ }
281
+ if (!isValidJwtFormat(accessToken)) {
282
+ throw new Error('Access token is not in valid JWT format');
283
+ }
284
+ // Create the task
285
+ const task = await extra.taskStore.createTask({
286
+ ttl: 300000 // 5 minutes TTL
287
+ });
288
+ // Submit optimization job to Mapbox API
289
+ try {
290
+ const { jobId } = await submitOptimizationJob(input, accessToken, httpRequest);
291
+ // Start background polling (fire and forget)
292
+ const maxAttempts = input.max_polling_attempts ?? 10;
293
+ const pollingInterval = input.polling_interval_ms ?? 1000;
294
+ // Don't await this - let it run in the background
295
+ void backgroundPollOptimizationJob(jobId, accessToken, httpRequest, extra.taskStore, task.taskId, maxAttempts, pollingInterval);
296
+ // Update task status to show it's working
297
+ await extra.taskStore.updateTaskStatus(task.taskId, 'working', `Optimization job submitted: ${jobId}`);
298
+ // Return CreateTaskResult with the created task
299
+ return {
300
+ task
301
+ };
302
+ }
303
+ catch (error) {
304
+ // Failed to submit job, mark task as failed
305
+ await extra.taskStore.storeTaskResult(task.taskId, 'failed', {
306
+ content: [
307
+ {
308
+ type: 'text',
309
+ text: `Failed to submit optimization job: ${error instanceof Error ? error.message : String(error)}`
310
+ }
311
+ ],
312
+ isError: true
313
+ });
314
+ throw error;
315
+ }
316
+ },
317
+ async getTask(_args, extra) {
318
+ const task = await extra.taskStore.getTask(extra.taskId);
319
+ if (!task) {
320
+ throw new Error(`Task ${extra.taskId} not found`);
321
+ }
322
+ return task;
323
+ },
324
+ async getTaskResult(_args, extra) {
325
+ const result = await extra.taskStore.getTaskResult(extra.taskId);
326
+ // taskStore.getTaskResult returns a Result type, but we know we stored a CallToolResult
327
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
328
+ return result;
329
+ }
330
+ });
331
+ }
332
+ //# sourceMappingURL=OptimizationV2Tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OptimizationV2Tool.js","sourceRoot":"","sources":["../../../../src/tools/optimization-tool/OptimizationV2Tool.ts"],"names":[],"mappings":"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"}