@mapbox/mcp-server 0.8.1 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (415) hide show
  1. package/README.md +165 -0
  2. package/dist/commonjs/index.js +15 -1
  3. package/dist/commonjs/index.js.map +1 -1
  4. package/dist/commonjs/schemas/shared.d.ts +5 -0
  5. package/dist/commonjs/schemas/shared.d.ts.map +1 -1
  6. package/dist/commonjs/schemas/shared.js +11 -1
  7. package/dist/commonjs/schemas/shared.js.map +1 -1
  8. package/dist/commonjs/tools/MapboxApiBasedTool.d.ts +8 -0
  9. package/dist/commonjs/tools/MapboxApiBasedTool.d.ts.map +1 -1
  10. package/dist/commonjs/tools/MapboxApiBasedTool.js +20 -0
  11. package/dist/commonjs/tools/MapboxApiBasedTool.js.map +1 -1
  12. package/dist/commonjs/tools/area-tool/AreaTool.d.ts +21 -0
  13. package/dist/commonjs/tools/area-tool/AreaTool.d.ts.map +1 -0
  14. package/dist/commonjs/tools/area-tool/AreaTool.input.schema.d.ts +19 -0
  15. package/dist/commonjs/tools/area-tool/AreaTool.input.schema.d.ts.map +1 -0
  16. package/dist/commonjs/tools/area-tool/AreaTool.input.schema.js +34 -0
  17. package/dist/commonjs/tools/area-tool/AreaTool.input.schema.js.map +1 -0
  18. package/dist/commonjs/tools/area-tool/AreaTool.js +104 -0
  19. package/dist/commonjs/tools/area-tool/AreaTool.js.map +1 -0
  20. package/dist/commonjs/tools/area-tool/AreaTool.output.schema.d.ts +19 -0
  21. package/dist/commonjs/tools/area-tool/AreaTool.output.schema.d.ts.map +1 -0
  22. package/dist/commonjs/tools/area-tool/AreaTool.output.schema.js +14 -0
  23. package/dist/commonjs/tools/area-tool/AreaTool.output.schema.js.map +1 -0
  24. package/dist/commonjs/tools/bearing-tool/BearingTool.d.ts +22 -0
  25. package/dist/commonjs/tools/bearing-tool/BearingTool.d.ts.map +1 -0
  26. package/dist/commonjs/tools/bearing-tool/BearingTool.input.schema.d.ts +49 -0
  27. package/dist/commonjs/tools/bearing-tool/BearingTool.input.schema.d.ts.map +1 -0
  28. package/dist/commonjs/tools/bearing-tool/BearingTool.input.schema.js +27 -0
  29. package/dist/commonjs/tools/bearing-tool/BearingTool.input.schema.js.map +1 -0
  30. package/dist/commonjs/tools/bearing-tool/BearingTool.js +84 -0
  31. package/dist/commonjs/tools/bearing-tool/BearingTool.js.map +1 -0
  32. package/dist/commonjs/tools/bearing-tool/BearingTool.output.schema.d.ts +52 -0
  33. package/dist/commonjs/tools/bearing-tool/BearingTool.output.schema.d.ts.map +1 -0
  34. package/dist/commonjs/tools/bearing-tool/BearingTool.output.schema.js +21 -0
  35. package/dist/commonjs/tools/bearing-tool/BearingTool.output.schema.js.map +1 -0
  36. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.d.ts +22 -0
  37. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.d.ts.map +1 -0
  38. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.input.schema.d.ts +16 -0
  39. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.input.schema.d.ts.map +1 -0
  40. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.input.schema.js +31 -0
  41. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.input.schema.js.map +1 -0
  42. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.js +107 -0
  43. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.js.map +1 -0
  44. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.output.schema.d.ts +16 -0
  45. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.output.schema.d.ts.map +1 -0
  46. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.output.schema.js +15 -0
  47. package/dist/commonjs/tools/bounding-box-tool/BoundingBoxTool.output.schema.js.map +1 -0
  48. package/dist/commonjs/tools/buffer-tool/BufferTool.d.ts +22 -0
  49. package/dist/commonjs/tools/buffer-tool/BufferTool.d.ts.map +1 -0
  50. package/dist/commonjs/tools/buffer-tool/BufferTool.input.schema.d.ts +22 -0
  51. package/dist/commonjs/tools/buffer-tool/BufferTool.input.schema.d.ts.map +1 -0
  52. package/dist/commonjs/tools/buffer-tool/BufferTool.input.schema.js +35 -0
  53. package/dist/commonjs/tools/buffer-tool/BufferTool.input.schema.js.map +1 -0
  54. package/dist/commonjs/tools/buffer-tool/BufferTool.js +103 -0
  55. package/dist/commonjs/tools/buffer-tool/BufferTool.js.map +1 -0
  56. package/dist/commonjs/tools/buffer-tool/BufferTool.output.schema.d.ts +22 -0
  57. package/dist/commonjs/tools/buffer-tool/BufferTool.output.schema.d.ts.map +1 -0
  58. package/dist/commonjs/tools/buffer-tool/BufferTool.output.schema.js +17 -0
  59. package/dist/commonjs/tools/buffer-tool/BufferTool.output.schema.js.map +1 -0
  60. package/dist/commonjs/tools/category-list-tool/CategoryListTool.d.ts.map +1 -1
  61. package/dist/commonjs/tools/category-list-tool/CategoryListTool.js +2 -1
  62. package/dist/commonjs/tools/category-list-tool/CategoryListTool.js.map +1 -1
  63. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.d.ts.map +1 -1
  64. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.input.schema.d.ts +10 -10
  65. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.js +2 -1
  66. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.js.map +1 -1
  67. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.output.schema.d.ts +44 -44
  68. package/dist/commonjs/tools/centroid-tool/CentroidTool.d.ts +21 -0
  69. package/dist/commonjs/tools/centroid-tool/CentroidTool.d.ts.map +1 -0
  70. package/dist/commonjs/tools/centroid-tool/CentroidTool.input.schema.d.ts +16 -0
  71. package/dist/commonjs/tools/centroid-tool/CentroidTool.input.schema.d.ts.map +1 -0
  72. package/dist/commonjs/tools/centroid-tool/CentroidTool.input.schema.js +29 -0
  73. package/dist/commonjs/tools/centroid-tool/CentroidTool.input.schema.js.map +1 -0
  74. package/dist/commonjs/tools/centroid-tool/CentroidTool.js +81 -0
  75. package/dist/commonjs/tools/centroid-tool/CentroidTool.js.map +1 -0
  76. package/dist/commonjs/tools/centroid-tool/CentroidTool.output.schema.d.ts +31 -0
  77. package/dist/commonjs/tools/centroid-tool/CentroidTool.output.schema.d.ts.map +1 -0
  78. package/dist/commonjs/tools/centroid-tool/CentroidTool.output.schema.js +16 -0
  79. package/dist/commonjs/tools/centroid-tool/CentroidTool.output.schema.js.map +1 -0
  80. package/dist/commonjs/tools/directions-tool/DirectionsTool.d.ts.map +1 -1
  81. package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.d.ts +3 -3
  82. package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.d.ts.map +1 -1
  83. package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.js +6 -7
  84. package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.js.map +1 -1
  85. package/dist/commonjs/tools/directions-tool/DirectionsTool.js +9 -8
  86. package/dist/commonjs/tools/directions-tool/DirectionsTool.js.map +1 -1
  87. package/dist/commonjs/tools/directions-tool/DirectionsTool.output.schema.d.ts +266 -266
  88. package/dist/commonjs/tools/directions-tool/DirectionsTool.output.schema.js +6 -6
  89. package/dist/commonjs/tools/directions-tool/DirectionsTool.output.schema.js.map +1 -1
  90. package/dist/commonjs/tools/directions-tool/cleanResponseData.d.ts +2 -2
  91. package/dist/commonjs/tools/directions-tool/cleanResponseData.d.ts.map +1 -1
  92. package/dist/commonjs/tools/directions-tool/cleanResponseData.js.map +1 -1
  93. package/dist/commonjs/tools/distance-tool/DistanceTool.d.ts +29 -0
  94. package/dist/commonjs/tools/distance-tool/DistanceTool.d.ts.map +1 -0
  95. package/dist/commonjs/tools/distance-tool/DistanceTool.input.schema.d.ts +52 -0
  96. package/dist/commonjs/tools/distance-tool/DistanceTool.input.schema.d.ts.map +1 -0
  97. package/dist/commonjs/tools/distance-tool/DistanceTool.input.schema.js +29 -0
  98. package/dist/commonjs/tools/distance-tool/DistanceTool.input.schema.js.map +1 -0
  99. package/dist/commonjs/tools/distance-tool/DistanceTool.js +95 -0
  100. package/dist/commonjs/tools/distance-tool/DistanceTool.js.map +1 -0
  101. package/dist/commonjs/tools/distance-tool/DistanceTool.output.schema.d.ts +55 -0
  102. package/dist/commonjs/tools/distance-tool/DistanceTool.output.schema.d.ts.map +1 -0
  103. package/dist/commonjs/tools/distance-tool/DistanceTool.output.schema.js +26 -0
  104. package/dist/commonjs/tools/distance-tool/DistanceTool.output.schema.js.map +1 -0
  105. package/dist/commonjs/tools/isochrone-tool/IsochroneTool.d.ts.map +1 -1
  106. package/dist/commonjs/tools/isochrone-tool/IsochroneTool.input.schema.d.ts +2 -2
  107. package/dist/commonjs/tools/isochrone-tool/IsochroneTool.js +2 -1
  108. package/dist/commonjs/tools/isochrone-tool/IsochroneTool.js.map +1 -1
  109. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.d.ts +22 -0
  110. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.d.ts.map +1 -0
  111. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.input.schema.d.ts +43 -0
  112. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.input.schema.d.ts.map +1 -0
  113. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.input.schema.js +60 -0
  114. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.input.schema.js.map +1 -0
  115. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.js +117 -0
  116. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.js.map +1 -0
  117. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.output.schema.d.ts +170 -0
  118. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.output.schema.d.ts.map +1 -0
  119. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.output.schema.js +49 -0
  120. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.output.schema.js.map +1 -0
  121. package/dist/commonjs/tools/matrix-tool/MatrixTool.d.ts.map +1 -1
  122. package/dist/commonjs/tools/matrix-tool/MatrixTool.input.schema.d.ts +3 -3
  123. package/dist/commonjs/tools/matrix-tool/MatrixTool.input.schema.d.ts.map +1 -1
  124. package/dist/commonjs/tools/matrix-tool/MatrixTool.input.schema.js +5 -7
  125. package/dist/commonjs/tools/matrix-tool/MatrixTool.input.schema.js.map +1 -1
  126. package/dist/commonjs/tools/matrix-tool/MatrixTool.js +5 -3
  127. package/dist/commonjs/tools/matrix-tool/MatrixTool.js.map +1 -1
  128. package/dist/commonjs/tools/midpoint-tool/MidpointTool.d.ts +21 -0
  129. package/dist/commonjs/tools/midpoint-tool/MidpointTool.d.ts.map +1 -0
  130. package/dist/commonjs/tools/midpoint-tool/MidpointTool.input.schema.d.ts +49 -0
  131. package/dist/commonjs/tools/midpoint-tool/MidpointTool.input.schema.d.ts.map +1 -0
  132. package/dist/commonjs/tools/midpoint-tool/MidpointTool.input.schema.js +27 -0
  133. package/dist/commonjs/tools/midpoint-tool/MidpointTool.input.schema.js.map +1 -0
  134. package/dist/commonjs/tools/midpoint-tool/MidpointTool.js +81 -0
  135. package/dist/commonjs/tools/midpoint-tool/MidpointTool.js.map +1 -0
  136. package/dist/commonjs/tools/midpoint-tool/MidpointTool.output.schema.d.ts +67 -0
  137. package/dist/commonjs/tools/midpoint-tool/MidpointTool.output.schema.d.ts.map +1 -0
  138. package/dist/commonjs/tools/midpoint-tool/MidpointTool.output.schema.js +24 -0
  139. package/dist/commonjs/tools/midpoint-tool/MidpointTool.output.schema.js.map +1 -0
  140. package/dist/commonjs/tools/optimization-tool/OptimizationTool.d.ts +28 -0
  141. package/dist/commonjs/tools/optimization-tool/OptimizationTool.d.ts.map +1 -0
  142. package/dist/commonjs/tools/optimization-tool/OptimizationTool.input.schema.d.ts +58 -0
  143. package/dist/commonjs/tools/optimization-tool/OptimizationTool.input.schema.d.ts.map +1 -0
  144. package/dist/commonjs/tools/optimization-tool/OptimizationTool.input.schema.js +76 -0
  145. package/dist/commonjs/tools/optimization-tool/OptimizationTool.input.schema.js.map +1 -0
  146. package/dist/commonjs/tools/optimization-tool/OptimizationTool.js +142 -0
  147. package/dist/commonjs/tools/optimization-tool/OptimizationTool.js.map +1 -0
  148. package/dist/commonjs/tools/optimization-tool/OptimizationTool.output.schema.d.ts +621 -0
  149. package/dist/commonjs/tools/optimization-tool/OptimizationTool.output.schema.d.ts.map +1 -0
  150. package/dist/commonjs/tools/optimization-tool/OptimizationTool.output.schema.js +87 -0
  151. package/dist/commonjs/tools/optimization-tool/OptimizationTool.output.schema.js.map +1 -0
  152. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.d.ts +10 -0
  153. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.d.ts.map +1 -0
  154. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.input.schema.d.ts +303 -0
  155. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.input.schema.d.ts.map +1 -0
  156. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.input.schema.js +186 -0
  157. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.input.schema.js.map +1 -0
  158. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.js +332 -0
  159. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.js.map +1 -0
  160. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.output.schema.d.ts +356 -0
  161. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.output.schema.d.ts.map +1 -0
  162. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.output.schema.js +109 -0
  163. package/dist/commonjs/tools/optimization-tool/OptimizationV2Tool.output.schema.js.map +1 -0
  164. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.d.ts +24 -0
  165. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.d.ts.map +1 -0
  166. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.input.schema.d.ts +34 -0
  167. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.input.schema.d.ts.map +1 -0
  168. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.input.schema.js +32 -0
  169. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.input.schema.js.map +1 -0
  170. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.js +84 -0
  171. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.js.map +1 -0
  172. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.output.schema.d.ts +34 -0
  173. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.output.schema.d.ts.map +1 -0
  174. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.output.schema.js +19 -0
  175. package/dist/commonjs/tools/point-in-polygon-tool/PointInPolygonTool.output.schema.js.map +1 -0
  176. package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.d.ts.map +1 -1
  177. package/dist/commonjs/tools/resource-reader-tool/ResourceReaderTool.js.map +1 -1
  178. package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.d.ts.map +1 -1
  179. package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.js +2 -1
  180. package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.js.map +1 -1
  181. package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.output.schema.d.ts +24 -24
  182. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.input.schema.d.ts +10 -10
  183. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.js +3 -3
  184. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.js.map +1 -1
  185. package/dist/commonjs/tools/simplify-tool/SimplifyTool.d.ts +22 -0
  186. package/dist/commonjs/tools/simplify-tool/SimplifyTool.d.ts.map +1 -0
  187. package/dist/commonjs/tools/simplify-tool/SimplifyTool.input.schema.d.ts +22 -0
  188. package/dist/commonjs/tools/simplify-tool/SimplifyTool.input.schema.d.ts.map +1 -0
  189. package/dist/commonjs/tools/simplify-tool/SimplifyTool.input.schema.js +38 -0
  190. package/dist/commonjs/tools/simplify-tool/SimplifyTool.input.schema.js.map +1 -0
  191. package/dist/commonjs/tools/simplify-tool/SimplifyTool.js +108 -0
  192. package/dist/commonjs/tools/simplify-tool/SimplifyTool.js.map +1 -0
  193. package/dist/commonjs/tools/simplify-tool/SimplifyTool.output.schema.d.ts +25 -0
  194. package/dist/commonjs/tools/simplify-tool/SimplifyTool.output.schema.d.ts.map +1 -0
  195. package/dist/commonjs/tools/simplify-tool/SimplifyTool.output.schema.js +23 -0
  196. package/dist/commonjs/tools/simplify-tool/SimplifyTool.output.schema.js.map +1 -0
  197. package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.d.ts.map +1 -1
  198. package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.input.schema.d.ts +8 -8
  199. package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.js +20 -2
  200. package/dist/commonjs/tools/static-map-image-tool/StaticMapImageTool.js.map +1 -1
  201. package/dist/commonjs/tools/toolRegistry.d.ts +12 -1
  202. package/dist/commonjs/tools/toolRegistry.d.ts.map +1 -1
  203. package/dist/commonjs/tools/toolRegistry.js +22 -0
  204. package/dist/commonjs/tools/toolRegistry.js.map +1 -1
  205. package/dist/commonjs/utils/tracing.d.ts.map +1 -1
  206. package/dist/commonjs/utils/tracing.js.map +1 -1
  207. package/dist/commonjs/version.json +3 -3
  208. package/dist/esm/index.js +15 -1
  209. package/dist/esm/index.js.map +1 -1
  210. package/dist/esm/schemas/shared.d.ts +5 -0
  211. package/dist/esm/schemas/shared.d.ts.map +1 -1
  212. package/dist/esm/schemas/shared.js +10 -0
  213. package/dist/esm/schemas/shared.js.map +1 -1
  214. package/dist/esm/tools/MapboxApiBasedTool.d.ts +8 -0
  215. package/dist/esm/tools/MapboxApiBasedTool.d.ts.map +1 -1
  216. package/dist/esm/tools/MapboxApiBasedTool.js +20 -0
  217. package/dist/esm/tools/MapboxApiBasedTool.js.map +1 -1
  218. package/dist/esm/tools/area-tool/AreaTool.d.ts +21 -0
  219. package/dist/esm/tools/area-tool/AreaTool.d.ts.map +1 -0
  220. package/dist/esm/tools/area-tool/AreaTool.input.schema.d.ts +19 -0
  221. package/dist/esm/tools/area-tool/AreaTool.input.schema.d.ts.map +1 -0
  222. package/dist/esm/tools/area-tool/AreaTool.input.schema.js +28 -0
  223. package/dist/esm/tools/area-tool/AreaTool.input.schema.js.map +1 -0
  224. package/dist/esm/tools/area-tool/AreaTool.js +100 -0
  225. package/dist/esm/tools/area-tool/AreaTool.js.map +1 -0
  226. package/dist/esm/tools/area-tool/AreaTool.output.schema.d.ts +19 -0
  227. package/dist/esm/tools/area-tool/AreaTool.output.schema.d.ts.map +1 -0
  228. package/dist/esm/tools/area-tool/AreaTool.output.schema.js +11 -0
  229. package/dist/esm/tools/area-tool/AreaTool.output.schema.js.map +1 -0
  230. package/dist/esm/tools/bearing-tool/BearingTool.d.ts +22 -0
  231. package/dist/esm/tools/bearing-tool/BearingTool.d.ts.map +1 -0
  232. package/dist/esm/tools/bearing-tool/BearingTool.input.schema.d.ts +49 -0
  233. package/dist/esm/tools/bearing-tool/BearingTool.input.schema.d.ts.map +1 -0
  234. package/dist/esm/tools/bearing-tool/BearingTool.input.schema.js +21 -0
  235. package/dist/esm/tools/bearing-tool/BearingTool.input.schema.js.map +1 -0
  236. package/dist/esm/tools/bearing-tool/BearingTool.js +80 -0
  237. package/dist/esm/tools/bearing-tool/BearingTool.js.map +1 -0
  238. package/dist/esm/tools/bearing-tool/BearingTool.output.schema.d.ts +52 -0
  239. package/dist/esm/tools/bearing-tool/BearingTool.output.schema.d.ts.map +1 -0
  240. package/dist/esm/tools/bearing-tool/BearingTool.output.schema.js +18 -0
  241. package/dist/esm/tools/bearing-tool/BearingTool.output.schema.js.map +1 -0
  242. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.d.ts +22 -0
  243. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.d.ts.map +1 -0
  244. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.input.schema.d.ts +16 -0
  245. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.input.schema.d.ts.map +1 -0
  246. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.input.schema.js +25 -0
  247. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.input.schema.js.map +1 -0
  248. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.js +103 -0
  249. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.js.map +1 -0
  250. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.output.schema.d.ts +16 -0
  251. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.output.schema.d.ts.map +1 -0
  252. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.output.schema.js +12 -0
  253. package/dist/esm/tools/bounding-box-tool/BoundingBoxTool.output.schema.js.map +1 -0
  254. package/dist/esm/tools/buffer-tool/BufferTool.d.ts +22 -0
  255. package/dist/esm/tools/buffer-tool/BufferTool.d.ts.map +1 -0
  256. package/dist/esm/tools/buffer-tool/BufferTool.input.schema.d.ts +22 -0
  257. package/dist/esm/tools/buffer-tool/BufferTool.input.schema.d.ts.map +1 -0
  258. package/dist/esm/tools/buffer-tool/BufferTool.input.schema.js +29 -0
  259. package/dist/esm/tools/buffer-tool/BufferTool.input.schema.js.map +1 -0
  260. package/dist/esm/tools/buffer-tool/BufferTool.js +99 -0
  261. package/dist/esm/tools/buffer-tool/BufferTool.js.map +1 -0
  262. package/dist/esm/tools/buffer-tool/BufferTool.output.schema.d.ts +22 -0
  263. package/dist/esm/tools/buffer-tool/BufferTool.output.schema.d.ts.map +1 -0
  264. package/dist/esm/tools/buffer-tool/BufferTool.output.schema.js +14 -0
  265. package/dist/esm/tools/buffer-tool/BufferTool.output.schema.js.map +1 -0
  266. package/dist/esm/tools/category-list-tool/CategoryListTool.d.ts.map +1 -1
  267. package/dist/esm/tools/category-list-tool/CategoryListTool.js +2 -1
  268. package/dist/esm/tools/category-list-tool/CategoryListTool.js.map +1 -1
  269. package/dist/esm/tools/category-search-tool/CategorySearchTool.d.ts.map +1 -1
  270. package/dist/esm/tools/category-search-tool/CategorySearchTool.input.schema.d.ts +10 -10
  271. package/dist/esm/tools/category-search-tool/CategorySearchTool.js +2 -1
  272. package/dist/esm/tools/category-search-tool/CategorySearchTool.js.map +1 -1
  273. package/dist/esm/tools/category-search-tool/CategorySearchTool.output.schema.d.ts +44 -44
  274. package/dist/esm/tools/centroid-tool/CentroidTool.d.ts +21 -0
  275. package/dist/esm/tools/centroid-tool/CentroidTool.d.ts.map +1 -0
  276. package/dist/esm/tools/centroid-tool/CentroidTool.input.schema.d.ts +16 -0
  277. package/dist/esm/tools/centroid-tool/CentroidTool.input.schema.d.ts.map +1 -0
  278. package/dist/esm/tools/centroid-tool/CentroidTool.input.schema.js +23 -0
  279. package/dist/esm/tools/centroid-tool/CentroidTool.input.schema.js.map +1 -0
  280. package/dist/esm/tools/centroid-tool/CentroidTool.js +77 -0
  281. package/dist/esm/tools/centroid-tool/CentroidTool.js.map +1 -0
  282. package/dist/esm/tools/centroid-tool/CentroidTool.output.schema.d.ts +31 -0
  283. package/dist/esm/tools/centroid-tool/CentroidTool.output.schema.d.ts.map +1 -0
  284. package/dist/esm/tools/centroid-tool/CentroidTool.output.schema.js +13 -0
  285. package/dist/esm/tools/centroid-tool/CentroidTool.output.schema.js.map +1 -0
  286. package/dist/esm/tools/directions-tool/DirectionsTool.d.ts.map +1 -1
  287. package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.d.ts +3 -3
  288. package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.d.ts.map +1 -1
  289. package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.js +7 -8
  290. package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.js.map +1 -1
  291. package/dist/esm/tools/directions-tool/DirectionsTool.js +9 -8
  292. package/dist/esm/tools/directions-tool/DirectionsTool.js.map +1 -1
  293. package/dist/esm/tools/directions-tool/DirectionsTool.output.schema.d.ts +266 -266
  294. package/dist/esm/tools/directions-tool/DirectionsTool.output.schema.js +6 -6
  295. package/dist/esm/tools/directions-tool/DirectionsTool.output.schema.js.map +1 -1
  296. package/dist/esm/tools/directions-tool/cleanResponseData.d.ts +2 -2
  297. package/dist/esm/tools/directions-tool/cleanResponseData.d.ts.map +1 -1
  298. package/dist/esm/tools/directions-tool/cleanResponseData.js.map +1 -1
  299. package/dist/esm/tools/distance-tool/DistanceTool.d.ts +29 -0
  300. package/dist/esm/tools/distance-tool/DistanceTool.d.ts.map +1 -0
  301. package/dist/esm/tools/distance-tool/DistanceTool.input.schema.d.ts +52 -0
  302. package/dist/esm/tools/distance-tool/DistanceTool.input.schema.d.ts.map +1 -0
  303. package/dist/esm/tools/distance-tool/DistanceTool.input.schema.js +23 -0
  304. package/dist/esm/tools/distance-tool/DistanceTool.input.schema.js.map +1 -0
  305. package/dist/esm/tools/distance-tool/DistanceTool.js +91 -0
  306. package/dist/esm/tools/distance-tool/DistanceTool.js.map +1 -0
  307. package/dist/esm/tools/distance-tool/DistanceTool.output.schema.d.ts +55 -0
  308. package/dist/esm/tools/distance-tool/DistanceTool.output.schema.d.ts.map +1 -0
  309. package/dist/esm/tools/distance-tool/DistanceTool.output.schema.js +23 -0
  310. package/dist/esm/tools/distance-tool/DistanceTool.output.schema.js.map +1 -0
  311. package/dist/esm/tools/isochrone-tool/IsochroneTool.d.ts.map +1 -1
  312. package/dist/esm/tools/isochrone-tool/IsochroneTool.input.schema.d.ts +2 -2
  313. package/dist/esm/tools/isochrone-tool/IsochroneTool.js +2 -1
  314. package/dist/esm/tools/isochrone-tool/IsochroneTool.js.map +1 -1
  315. package/dist/esm/tools/map-matching-tool/MapMatchingTool.d.ts +22 -0
  316. package/dist/esm/tools/map-matching-tool/MapMatchingTool.d.ts.map +1 -0
  317. package/dist/esm/tools/map-matching-tool/MapMatchingTool.input.schema.d.ts +43 -0
  318. package/dist/esm/tools/map-matching-tool/MapMatchingTool.input.schema.d.ts.map +1 -0
  319. package/dist/esm/tools/map-matching-tool/MapMatchingTool.input.schema.js +57 -0
  320. package/dist/esm/tools/map-matching-tool/MapMatchingTool.input.schema.js.map +1 -0
  321. package/dist/esm/tools/map-matching-tool/MapMatchingTool.js +113 -0
  322. package/dist/esm/tools/map-matching-tool/MapMatchingTool.js.map +1 -0
  323. package/dist/esm/tools/map-matching-tool/MapMatchingTool.output.schema.d.ts +170 -0
  324. package/dist/esm/tools/map-matching-tool/MapMatchingTool.output.schema.d.ts.map +1 -0
  325. package/dist/esm/tools/map-matching-tool/MapMatchingTool.output.schema.js +46 -0
  326. package/dist/esm/tools/map-matching-tool/MapMatchingTool.output.schema.js.map +1 -0
  327. package/dist/esm/tools/matrix-tool/MatrixTool.d.ts.map +1 -1
  328. package/dist/esm/tools/matrix-tool/MatrixTool.input.schema.d.ts +3 -3
  329. package/dist/esm/tools/matrix-tool/MatrixTool.input.schema.d.ts.map +1 -1
  330. package/dist/esm/tools/matrix-tool/MatrixTool.input.schema.js +6 -8
  331. package/dist/esm/tools/matrix-tool/MatrixTool.input.schema.js.map +1 -1
  332. package/dist/esm/tools/matrix-tool/MatrixTool.js +5 -3
  333. package/dist/esm/tools/matrix-tool/MatrixTool.js.map +1 -1
  334. package/dist/esm/tools/midpoint-tool/MidpointTool.d.ts +21 -0
  335. package/dist/esm/tools/midpoint-tool/MidpointTool.d.ts.map +1 -0
  336. package/dist/esm/tools/midpoint-tool/MidpointTool.input.schema.d.ts +49 -0
  337. package/dist/esm/tools/midpoint-tool/MidpointTool.input.schema.d.ts.map +1 -0
  338. package/dist/esm/tools/midpoint-tool/MidpointTool.input.schema.js +21 -0
  339. package/dist/esm/tools/midpoint-tool/MidpointTool.input.schema.js.map +1 -0
  340. package/dist/esm/tools/midpoint-tool/MidpointTool.js +77 -0
  341. package/dist/esm/tools/midpoint-tool/MidpointTool.js.map +1 -0
  342. package/dist/esm/tools/midpoint-tool/MidpointTool.output.schema.d.ts +67 -0
  343. package/dist/esm/tools/midpoint-tool/MidpointTool.output.schema.d.ts.map +1 -0
  344. package/dist/esm/tools/midpoint-tool/MidpointTool.output.schema.js +21 -0
  345. package/dist/esm/tools/midpoint-tool/MidpointTool.output.schema.js.map +1 -0
  346. package/dist/esm/tools/optimization-tool/OptimizationTool.d.ts +28 -0
  347. package/dist/esm/tools/optimization-tool/OptimizationTool.d.ts.map +1 -0
  348. package/dist/esm/tools/optimization-tool/OptimizationTool.input.schema.d.ts +58 -0
  349. package/dist/esm/tools/optimization-tool/OptimizationTool.input.schema.d.ts.map +1 -0
  350. package/dist/esm/tools/optimization-tool/OptimizationTool.input.schema.js +70 -0
  351. package/dist/esm/tools/optimization-tool/OptimizationTool.input.schema.js.map +1 -0
  352. package/dist/esm/tools/optimization-tool/OptimizationTool.js +138 -0
  353. package/dist/esm/tools/optimization-tool/OptimizationTool.js.map +1 -0
  354. package/dist/esm/tools/optimization-tool/OptimizationTool.output.schema.d.ts +621 -0
  355. package/dist/esm/tools/optimization-tool/OptimizationTool.output.schema.d.ts.map +1 -0
  356. package/dist/esm/tools/optimization-tool/OptimizationTool.output.schema.js +84 -0
  357. package/dist/esm/tools/optimization-tool/OptimizationTool.output.schema.js.map +1 -0
  358. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.d.ts +10 -0
  359. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.d.ts.map +1 -0
  360. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.input.schema.d.ts +303 -0
  361. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.input.schema.d.ts.map +1 -0
  362. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.input.schema.js +180 -0
  363. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.input.schema.js.map +1 -0
  364. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.js +329 -0
  365. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.js.map +1 -0
  366. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.output.schema.d.ts +356 -0
  367. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.output.schema.d.ts.map +1 -0
  368. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.output.schema.js +106 -0
  369. package/dist/esm/tools/optimization-tool/OptimizationV2Tool.output.schema.js.map +1 -0
  370. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.d.ts +24 -0
  371. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.d.ts.map +1 -0
  372. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.input.schema.d.ts +34 -0
  373. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.input.schema.d.ts.map +1 -0
  374. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.input.schema.js +26 -0
  375. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.input.schema.js.map +1 -0
  376. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.js +80 -0
  377. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.js.map +1 -0
  378. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.output.schema.d.ts +34 -0
  379. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.output.schema.d.ts.map +1 -0
  380. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.output.schema.js +16 -0
  381. package/dist/esm/tools/point-in-polygon-tool/PointInPolygonTool.output.schema.js.map +1 -0
  382. package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.d.ts.map +1 -1
  383. package/dist/esm/tools/resource-reader-tool/ResourceReaderTool.js.map +1 -1
  384. package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.d.ts.map +1 -1
  385. package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.js +2 -1
  386. package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.js.map +1 -1
  387. package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.output.schema.d.ts +24 -24
  388. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.input.schema.d.ts +10 -10
  389. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.js +3 -3
  390. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.js.map +1 -1
  391. package/dist/esm/tools/simplify-tool/SimplifyTool.d.ts +22 -0
  392. package/dist/esm/tools/simplify-tool/SimplifyTool.d.ts.map +1 -0
  393. package/dist/esm/tools/simplify-tool/SimplifyTool.input.schema.d.ts +22 -0
  394. package/dist/esm/tools/simplify-tool/SimplifyTool.input.schema.d.ts.map +1 -0
  395. package/dist/esm/tools/simplify-tool/SimplifyTool.input.schema.js +32 -0
  396. package/dist/esm/tools/simplify-tool/SimplifyTool.input.schema.js.map +1 -0
  397. package/dist/esm/tools/simplify-tool/SimplifyTool.js +104 -0
  398. package/dist/esm/tools/simplify-tool/SimplifyTool.js.map +1 -0
  399. package/dist/esm/tools/simplify-tool/SimplifyTool.output.schema.d.ts +25 -0
  400. package/dist/esm/tools/simplify-tool/SimplifyTool.output.schema.d.ts.map +1 -0
  401. package/dist/esm/tools/simplify-tool/SimplifyTool.output.schema.js +20 -0
  402. package/dist/esm/tools/simplify-tool/SimplifyTool.output.schema.js.map +1 -0
  403. package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.d.ts.map +1 -1
  404. package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.input.schema.d.ts +8 -8
  405. package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.js +20 -2
  406. package/dist/esm/tools/static-map-image-tool/StaticMapImageTool.js.map +1 -1
  407. package/dist/esm/tools/toolRegistry.d.ts +12 -1
  408. package/dist/esm/tools/toolRegistry.d.ts.map +1 -1
  409. package/dist/esm/tools/toolRegistry.js +22 -0
  410. package/dist/esm/tools/toolRegistry.js.map +1 -1
  411. package/dist/esm/utils/tracing.d.ts.map +1 -1
  412. package/dist/esm/utils/tracing.js.map +1 -1
  413. package/dist/esm/version.json +3 -3
  414. package/package.json +3 -2
  415. /package/patches/{@modelcontextprotocol+sdk+1.25.1.patch → @modelcontextprotocol+sdk+1.25.2.patch} +0 -0
@@ -0,0 +1,329 @@
1
+ // Copyright (c) Mapbox, Inc.
2
+ // Licensed under the MIT License.
3
+ import { OptimizationV2InputSchema } from './OptimizationV2Tool.input.schema.js';
4
+ import { OptimizationV2OutputSchema } from './OptimizationV2Tool.output.schema.js';
5
+ /**
6
+ * OptimizationV2Tool - Advanced route optimization using Mapbox Optimization API V2 (BETA)
7
+ *
8
+ * ⚠️ IMPORTANT: This tool uses the V2 API which is currently in beta and requires early access.
9
+ * The tool is not registered by default. To enable it, add it to the toolRegistry.
10
+ *
11
+ * V2 Features:
12
+ * - Time window constraints for services and shipments
13
+ * - Vehicle capacity limits for multiple resource types
14
+ * - Driver shifts with earliest start and latest end times
15
+ * - Pickup and dropoff constraints for shipment handling
16
+ * - Vehicle capabilities requirements (e.g., refrigeration, ladder)
17
+ * - Loading policies (FIFO, LIFO, or any order)
18
+ * - Mandated breaks for vehicles
19
+ *
20
+ * API documentation: https://docs.mapbox.com/api/navigation/optimization/
21
+ */
22
+ /**
23
+ * Helper function to validate JWT format
24
+ */
25
+ function isValidJwtFormat(token) {
26
+ const parts = token.split('.');
27
+ if (parts.length !== 3)
28
+ return false;
29
+ return parts.every((part) => part.length > 0);
30
+ }
31
+ /**
32
+ * Helper function to get Mapbox API endpoint
33
+ */
34
+ function getMapboxApiEndpoint() {
35
+ return process.env.MAPBOX_API_ENDPOINT || 'https://api.mapbox.com/';
36
+ }
37
+ /**
38
+ * Core function to submit optimization job to Mapbox API
39
+ */
40
+ async function submitOptimizationJob(input, accessToken, httpRequest) {
41
+ // Validate: If vehicles are provided, at least one service or shipment is required
42
+ if (input.vehicles && input.vehicles.length > 0) {
43
+ const hasServices = input.services && input.services.length > 0;
44
+ const hasShipments = input.shipments && input.shipments.length > 0;
45
+ if (!hasServices && !hasShipments) {
46
+ throw new Error('When vehicles are provided, at least one service or shipment is required');
47
+ }
48
+ }
49
+ // Convert simplified input to Optimization API v2 format
50
+ // Create locations array with auto-generated names
51
+ const locations = input.coordinates.map((coord, index) => ({
52
+ name: `location-${index}`,
53
+ coordinates: [coord.longitude, coord.latitude]
54
+ }));
55
+ // If vehicles are not provided, create a default vehicle
56
+ let vehicles;
57
+ let services;
58
+ let shipments;
59
+ if (!input.vehicles || input.vehicles.length === 0) {
60
+ // Simplified mode: auto-generate vehicle and services from coordinates
61
+ vehicles = [
62
+ {
63
+ name: 'vehicle-1',
64
+ routing_profile: input.profile,
65
+ start_location: 'location-0', // Start at first location
66
+ end_location: 'location-0' // Return to first location
67
+ }
68
+ ];
69
+ // Create services for all locations except the first (which is start/end)
70
+ services = input.coordinates.slice(1).map((_, index) => ({
71
+ name: `service-${index + 1}`,
72
+ location: `location-${index + 1}`,
73
+ duration: 0 // No service time by default
74
+ }));
75
+ }
76
+ else {
77
+ // Advanced mode: use provided vehicles, services, and shipments
78
+ vehicles = input.vehicles;
79
+ services = input.services || [];
80
+ shipments = input.shipments;
81
+ }
82
+ // Build request body
83
+ const requestBody = {
84
+ version: 1,
85
+ locations,
86
+ vehicles,
87
+ services
88
+ };
89
+ if (shipments && shipments.length > 0) {
90
+ requestBody.shipments = shipments;
91
+ }
92
+ // Step 1: POST to create optimization job
93
+ const postUrl = `${getMapboxApiEndpoint()}optimized-trips/v2?access_token=${accessToken}`;
94
+ const postResponse = await httpRequest(postUrl, {
95
+ method: 'POST',
96
+ headers: { 'Content-Type': 'application/json' },
97
+ body: JSON.stringify(requestBody)
98
+ });
99
+ if (!postResponse.ok) {
100
+ const errorText = await postResponse.text();
101
+ let errorMessage = `Request failed with status ${postResponse.status}: ${postResponse.statusText}`;
102
+ try {
103
+ const errorJson = JSON.parse(errorText);
104
+ if (errorJson.message) {
105
+ errorMessage = `${errorMessage} - ${errorJson.message}`;
106
+ }
107
+ }
108
+ catch {
109
+ // If parsing fails, use the raw text
110
+ if (errorText) {
111
+ errorMessage = `${errorMessage} - ${errorText}`;
112
+ }
113
+ }
114
+ throw new Error(errorMessage);
115
+ }
116
+ const postData = (await postResponse.json());
117
+ return {
118
+ jobId: postData.id,
119
+ status: postData.status
120
+ };
121
+ }
122
+ /**
123
+ * Core function to poll optimization job status
124
+ */
125
+ async function pollOptimizationJob(jobId, accessToken, httpRequest) {
126
+ const getUrl = `${getMapboxApiEndpoint()}optimized-trips/v2/${jobId}?access_token=${accessToken}`;
127
+ const getResponse = await httpRequest(getUrl);
128
+ if (!getResponse.ok) {
129
+ if (getResponse.status === 404) {
130
+ return {
131
+ status: 404,
132
+ error: `Optimization job ${jobId} not found`
133
+ };
134
+ }
135
+ return {
136
+ status: getResponse.status,
137
+ error: `Request failed with status ${getResponse.status}: ${getResponse.statusText}`
138
+ };
139
+ }
140
+ // HTTP 200 means the optimization is complete
141
+ if (getResponse.status === 200) {
142
+ const result = (await getResponse.json());
143
+ return {
144
+ status: 200,
145
+ data: result
146
+ };
147
+ }
148
+ // HTTP 202 means still processing
149
+ return {
150
+ status: 202
151
+ };
152
+ }
153
+ /**
154
+ * Background polling function that runs until job completes
155
+ */
156
+ async function backgroundPollOptimizationJob(jobId, accessToken, httpRequest, taskStore, taskId, maxAttempts, pollingInterval) {
157
+ let attempts = 0;
158
+ while (attempts < maxAttempts) {
159
+ try {
160
+ const pollResult = await pollOptimizationJob(jobId, accessToken, httpRequest);
161
+ if (pollResult.status === 200 && pollResult.data) {
162
+ // Job completed successfully
163
+ try {
164
+ const validatedData = OptimizationV2OutputSchema.parse(pollResult.data);
165
+ await taskStore.storeTaskResult(taskId, 'completed', {
166
+ content: [
167
+ { type: 'text', text: JSON.stringify(validatedData, null, 2) }
168
+ ],
169
+ structuredContent: validatedData
170
+ });
171
+ }
172
+ catch {
173
+ // If validation fails, return raw result anyway
174
+ await taskStore.storeTaskResult(taskId, 'completed', {
175
+ content: [
176
+ { type: 'text', text: JSON.stringify(pollResult.data, null, 2) }
177
+ ],
178
+ structuredContent: pollResult.data
179
+ });
180
+ }
181
+ return;
182
+ }
183
+ else if (pollResult.error) {
184
+ // Job failed or not found
185
+ await taskStore.storeTaskResult(taskId, 'failed', {
186
+ content: [{ type: 'text', text: pollResult.error }],
187
+ isError: true
188
+ });
189
+ return;
190
+ }
191
+ // Still processing (status 202), update task status
192
+ await taskStore.updateTaskStatus(taskId, 'working', `Processing optimization job (attempt ${attempts + 1}/${maxAttempts})`);
193
+ // Wait before next poll
194
+ await new Promise((resolve) => setTimeout(resolve, pollingInterval));
195
+ attempts++;
196
+ }
197
+ catch (error) {
198
+ // Error during polling
199
+ await taskStore.storeTaskResult(taskId, 'failed', {
200
+ content: [
201
+ {
202
+ type: 'text',
203
+ text: `Error polling optimization job: ${error instanceof Error ? error.message : String(error)}`
204
+ }
205
+ ],
206
+ isError: true
207
+ });
208
+ return;
209
+ }
210
+ }
211
+ // Timed out
212
+ await taskStore.storeTaskResult(taskId, 'failed', {
213
+ content: [
214
+ {
215
+ type: 'text',
216
+ text: `Optimization timed out after ${maxAttempts} attempts. Job ID: ${jobId}. You can check the status later using the job ID.`
217
+ }
218
+ ],
219
+ isError: true
220
+ });
221
+ }
222
+ /**
223
+ * Register the Optimization V2 tool as a task-based tool
224
+ *
225
+ * ⚠️ BETA: This tool uses the V2 API which requires early access.
226
+ * Not registered by default - call this function manually to enable.
227
+ */
228
+ export function registerOptimizationV2Task(server, httpRequest) {
229
+ server.experimental.tasks.registerToolTask('optimization_v2_tool', {
230
+ title: 'Optimization Tool V2 (Beta)',
231
+ description: 'Solves vehicle routing problems using the Mapbox Optimization API v2 (Beta). ' +
232
+ 'This is a long-running async task that submits an optimization job and polls for results. ' +
233
+ 'Supports up to 1000 coordinates in {longitude, latitude} format. ' +
234
+ 'Returns optimized routes with stops, ETAs, and dropped items. ' +
235
+ '\n\n' +
236
+ 'USAGE MODES:\n' +
237
+ '1. SIMPLIFIED MODE (recommended for basic routing): Provide only "coordinates" and optionally "profile". ' +
238
+ 'The tool will automatically create a default vehicle that visits all locations in optimized order, ' +
239
+ 'starting and ending at the first coordinate.\n' +
240
+ '2. ADVANCED MODE (for complex scenarios): If you specify "vehicles", you MUST also provide either ' +
241
+ '"services" (single stops like deliveries or pickups) or "shipments" (paired pickup/dropoff tasks). ' +
242
+ 'Each service/shipment defines a stop that vehicles must visit.\n' +
243
+ '\n' +
244
+ 'KEY CONCEPTS:\n' +
245
+ '- "services": Individual stops at locations (e.g., deliver package to address A, pick up at coffee shop B)\n' +
246
+ '- "shipments": Paired pickup/delivery tasks (e.g., pick up from warehouse, deliver to customer)\n' +
247
+ '- "vehicles": Routing agents with optional constraints like time windows, capacities, and capabilities\n' +
248
+ '\n' +
249
+ 'LOCATION NAMING (CRITICAL):\n' +
250
+ 'The tool auto-generates STRING location names from your coordinates array as "location-0", "location-1", "location-2", etc. ' +
251
+ 'When creating services, shipments, or vehicles, you MUST reference these auto-generated STRINGS (NOT integers, NOT array indices):\n' +
252
+ '- coordinates[0] → use STRING "location-0" (NOT integer 0)\n' +
253
+ '\n' +
254
+ 'EXAMPLES:\n' +
255
+ '✓ CORRECT: service.location = "location-2" (string)\n' +
256
+ '✗ WRONG: service.location = 2 (integer)\n' +
257
+ '\n' +
258
+ 'IMPORTANT: This is an async task. The task will start immediately but results will be available later via task polling.',
259
+ inputSchema: OptimizationV2InputSchema,
260
+ outputSchema: OptimizationV2OutputSchema,
261
+ annotations: {
262
+ title: 'Optimization Tool',
263
+ readOnlyHint: true,
264
+ destructiveHint: false,
265
+ idempotentHint: false,
266
+ openWorldHint: true
267
+ }
268
+ }, {
269
+ async createTask(args, extra) {
270
+ // Validate input
271
+ const input = OptimizationV2InputSchema.parse(args);
272
+ // Get and validate access token (from environment only for now)
273
+ const accessToken = process.env.MAPBOX_ACCESS_TOKEN ||
274
+ extra.authInfo?.token;
275
+ if (!accessToken) {
276
+ throw new Error('No access token available. Please provide via Bearer auth or MAPBOX_ACCESS_TOKEN env var');
277
+ }
278
+ if (!isValidJwtFormat(accessToken)) {
279
+ throw new Error('Access token is not in valid JWT format');
280
+ }
281
+ // Create the task
282
+ const task = await extra.taskStore.createTask({
283
+ ttl: 300000 // 5 minutes TTL
284
+ });
285
+ // Submit optimization job to Mapbox API
286
+ try {
287
+ const { jobId } = await submitOptimizationJob(input, accessToken, httpRequest);
288
+ // Start background polling (fire and forget)
289
+ const maxAttempts = input.max_polling_attempts ?? 10;
290
+ const pollingInterval = input.polling_interval_ms ?? 1000;
291
+ // Don't await this - let it run in the background
292
+ void backgroundPollOptimizationJob(jobId, accessToken, httpRequest, extra.taskStore, task.taskId, maxAttempts, pollingInterval);
293
+ // Update task status to show it's working
294
+ await extra.taskStore.updateTaskStatus(task.taskId, 'working', `Optimization job submitted: ${jobId}`);
295
+ // Return CreateTaskResult with the created task
296
+ return {
297
+ task
298
+ };
299
+ }
300
+ catch (error) {
301
+ // Failed to submit job, mark task as failed
302
+ await extra.taskStore.storeTaskResult(task.taskId, 'failed', {
303
+ content: [
304
+ {
305
+ type: 'text',
306
+ text: `Failed to submit optimization job: ${error instanceof Error ? error.message : String(error)}`
307
+ }
308
+ ],
309
+ isError: true
310
+ });
311
+ throw error;
312
+ }
313
+ },
314
+ async getTask(_args, extra) {
315
+ const task = await extra.taskStore.getTask(extra.taskId);
316
+ if (!task) {
317
+ throw new Error(`Task ${extra.taskId} not found`);
318
+ }
319
+ return task;
320
+ },
321
+ async getTaskResult(_args, extra) {
322
+ const result = await extra.taskStore.getTaskResult(extra.taskId);
323
+ // taskStore.getTaskResult returns a Result type, but we know we stored a CallToolResult
324
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
325
+ return result;
326
+ }
327
+ });
328
+ }
329
+ //# sourceMappingURL=OptimizationV2Tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OptimizationV2Tool.js","sourceRoot":"","sources":["../../../../src/tools/optimization-tool/OptimizationV2Tool.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAUlC,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,EACL,0BAA0B,EAE3B,MAAM,uCAAuC,CAAC;AAE/C;;;;;;;;;;;;;;;;GAgBG;AAEH;;GAEG;AACH,SAAS,gBAAgB,CAAC,KAAa;IACrC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACrC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB;IAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,yBAAyB,CAAC;AACtE,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,qBAAqB,CAClC,KAAgD,EAChD,WAAmB,EACnB,WAAwB;IAExB,mFAAmF;IACnF,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAChE,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAEnE,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CACb,0EAA0E,CAC3E,CAAC;QACJ,CAAC;IACH,CAAC;IAED,yDAAyD;IACzD,mDAAmD;IACnD,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACzD,IAAI,EAAE,YAAY,KAAK,EAAE;QACzB,WAAW,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAqB;KACnE,CAAC,CAAC,CAAC;IAEJ,yDAAyD;IACzD,IAAI,QAAwB,CAAC;IAC7B,IAAI,QAAwB,CAAC;IAC7B,IAAI,SAAqC,CAAC;IAE1C,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnD,uEAAuE;QACvE,QAAQ,GAAG;YACT;gBACE,IAAI,EAAE,WAAW;gBACjB,eAAe,EAAE,KAAK,CAAC,OAAO;gBAC9B,cAAc,EAAE,YAAY,EAAE,0BAA0B;gBACxD,YAAY,EAAE,YAAY,CAAC,2BAA2B;aACvD;SACF,CAAC;QAEF,0EAA0E;QAC1E,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACvD,IAAI,EAAE,WAAW,KAAK,GAAG,CAAC,EAAE;YAC5B,QAAQ,EAAE,YAAY,KAAK,GAAG,CAAC,EAAE;YACjC,QAAQ,EAAE,CAAC,CAAC,6BAA6B;SAC1C,CAAC,CAAC,CAAC;IACN,CAAC;SAAM,CAAC;QACN,gEAAgE;QAChE,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC1B,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;QAChC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAC9B,CAAC;IAED,qBAAqB;IACrB,MAAM,WAAW,GAMb;QACF,OAAO,EAAE,CAAC;QACV,SAAS;QACT,QAAQ;QACR,QAAQ;KACT,CAAC;IAEF,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,WAAW,CAAC,SAAS,GAAG,SAAS,CAAC;IACpC,CAAC;IAED,0CAA0C;IAC1C,MAAM,OAAO,GAAG,GAAG,oBAAoB,EAAE,mCAAmC,WAAW,EAAE,CAAC;IAE1F,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE;QAC9C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;KAClC,CAAC,CAAC;IAEH,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;QACrB,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,YAAY,GAAG,8BAA8B,YAAY,CAAC,MAAM,KAAK,YAAY,CAAC,UAAU,EAAE,CAAC;QAEnG,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACxC,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBACtB,YAAY,GAAG,GAAG,YAAY,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;YAC1D,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,qCAAqC;YACrC,IAAI,SAAS,EAAE,CAAC;gBACd,YAAY,GAAG,GAAG,YAAY,MAAM,SAAS,EAAE,CAAC;YAClD,CAAC;QACH,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,MAAM,YAAY,CAAC,IAAI,EAAE,CAG1C,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,EAAE;QAClB,MAAM,EAAE,QAAQ,CAAC,MAAM;KACxB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,mBAAmB,CAChC,KAAa,EACb,WAAmB,EACnB,WAAwB;IAExB,MAAM,MAAM,GAAG,GAAG,oBAAoB,EAAE,sBAAsB,KAAK,iBAAiB,WAAW,EAAE,CAAC;IAClG,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;IAE9C,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;QACpB,IAAI,WAAW,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC/B,OAAO;gBACL,MAAM,EAAE,GAAG;gBACX,KAAK,EAAE,oBAAoB,KAAK,YAAY;aAC7C,CAAC;QACJ,CAAC;QAED,OAAO;YACL,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,KAAK,EAAE,8BAA8B,WAAW,CAAC,MAAM,KAAK,WAAW,CAAC,UAAU,EAAE;SACrF,CAAC;IACJ,CAAC;IAED,8CAA8C;IAC9C,IAAI,WAAW,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,CAAC,MAAM,WAAW,CAAC,IAAI,EAAE,CAAyB,CAAC;QAClE,OAAO;YACL,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,MAAM;SACb,CAAC;IACJ,CAAC;IAED,kCAAkC;IAClC,OAAO;QACL,MAAM,EAAE,GAAG;KACZ,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,6BAA6B,CAC1C,KAAa,EACb,WAAmB,EACnB,WAAwB,EACxB,SAAoB,EACpB,MAAc,EACd,WAAmB,EACnB,eAAuB;IAEvB,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,OAAO,QAAQ,GAAG,WAAW,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAC1C,KAAK,EACL,WAAW,EACX,WAAW,CACZ,CAAC;YAEF,IAAI,UAAU,CAAC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;gBACjD,6BAA6B;gBAC7B,IAAI,CAAC;oBACH,MAAM,aAAa,GAAG,0BAA0B,CAAC,KAAK,CACpD,UAAU,CAAC,IAAI,CAChB,CAAC;oBAEF,MAAM,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE;wBACnD,OAAO,EAAE;4BACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;yBAC/D;wBACD,iBAAiB,EAAE,aAAa;qBACjC,CAAC,CAAC;gBACL,CAAC;gBAAC,MAAM,CAAC;oBACP,gDAAgD;oBAChD,MAAM,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE;wBACnD,OAAO,EAAE;4BACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;yBACjE;wBACD,iBAAiB,EAAE,UAAU,CAAC,IAAI;qBACnC,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO;YACT,CAAC;iBAAM,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;gBAC5B,0BAA0B;gBAC1B,MAAM,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE;oBAChD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC;oBACnD,OAAO,EAAE,IAAI;iBACd,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,oDAAoD;YACpD,MAAM,SAAS,CAAC,gBAAgB,CAC9B,MAAM,EACN,SAAS,EACT,wCAAwC,QAAQ,GAAG,CAAC,IAAI,WAAW,GAAG,CACvE,CAAC;YAEF,wBAAwB;YACxB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;YACrE,QAAQ,EAAE,CAAC;QACb,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,uBAAuB;YACvB,MAAM,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE;gBAChD,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,mCAAmC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;qBAClG;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;YACH,OAAO;QACT,CAAC;IACH,CAAC;IAED,YAAY;IACZ,MAAM,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE;QAChD,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,gCAAgC,WAAW,sBAAsB,KAAK,oDAAoD;aACjI;SACF;QACD,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CACxC,MAAiB,EACjB,WAAwB;IAExB,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,gBAAgB,CACxC,sBAAsB,EACtB;QACE,KAAK,EAAE,6BAA6B;QACpC,WAAW,EACT,+EAA+E;YAC/E,4FAA4F;YAC5F,mEAAmE;YACnE,gEAAgE;YAChE,MAAM;YACN,gBAAgB;YAChB,2GAA2G;YAC3G,qGAAqG;YACrG,gDAAgD;YAChD,oGAAoG;YACpG,qGAAqG;YACrG,kEAAkE;YAClE,IAAI;YACJ,iBAAiB;YACjB,8GAA8G;YAC9G,mGAAmG;YACnG,0GAA0G;YAC1G,IAAI;YACJ,+BAA+B;YAC/B,8HAA8H;YAC9H,sIAAsI;YACtI,8DAA8D;YAC9D,IAAI;YACJ,aAAa;YACb,uDAAuD;YACvD,2CAA2C;YAC3C,IAAI;YACJ,yHAAyH;QAC3H,WAAW,EAAE,yBAAyB;QACtC,YAAY,EAAE,0BAA0B;QACxC,WAAW,EAAE;YACX,KAAK,EAAE,mBAAmB;YAC1B,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,IAAI;SACpB;KACF,EACD;QACE,KAAK,CAAC,UAAU,CAAC,IAAa,EAAE,KAAoC;YAClE,iBAAiB;YACjB,MAAM,KAAK,GAAG,yBAAyB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAEpD,gEAAgE;YAChE,MAAM,WAAW,GACf,OAAO,CAAC,GAAG,CAAC,mBAAmB;gBAE7B,KAGD,CAAC,QAAQ,EAAE,KAAK,CAAC;YACpB,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CACb,0FAA0F,CAC3F,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;YAC7D,CAAC;YAED,kBAAkB;YAClB,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC;gBAC5C,GAAG,EAAE,MAAM,CAAC,gBAAgB;aAC7B,CAAC,CAAC;YAEH,wCAAwC;YACxC,IAAI,CAAC;gBACH,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,qBAAqB,CAC3C,KAAK,EACL,WAAW,EACX,WAAW,CACZ,CAAC;gBAEF,6CAA6C;gBAC7C,MAAM,WAAW,GAAG,KAAK,CAAC,oBAAoB,IAAI,EAAE,CAAC;gBACrD,MAAM,eAAe,GAAG,KAAK,CAAC,mBAAmB,IAAI,IAAI,CAAC;gBAE1D,kDAAkD;gBAClD,KAAK,6BAA6B,CAChC,KAAK,EACL,WAAW,EACX,WAAW,EACX,KAAK,CAAC,SAAS,EACf,IAAI,CAAC,MAAM,EACX,WAAW,EACX,eAAe,CAChB,CAAC;gBAEF,0CAA0C;gBAC1C,MAAM,KAAK,CAAC,SAAS,CAAC,gBAAgB,CACpC,IAAI,CAAC,MAAM,EACX,SAAS,EACT,+BAA+B,KAAK,EAAE,CACvC,CAAC;gBAEF,gDAAgD;gBAChD,OAAO;oBACL,IAAI;iBACL,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,4CAA4C;gBAC5C,MAAM,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE;oBAC3D,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,sCAAsC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;yBACrG;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC,CAAC;gBAEH,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,KAAc,EAAE,KAA8B;YAC1D,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACzD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC,MAAM,YAAY,CAAC,CAAC;YACpD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,KAAK,CAAC,aAAa,CAAC,KAAc,EAAE,KAA8B;YAChE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACjE,wFAAwF;YACxF,8DAA8D;YAC9D,OAAO,MAAa,CAAC;QACvB,CAAC;KACF,CACF,CAAC;AACJ,CAAC"}