@mapbox/mcp-server 0.12.7-dev → 0.13.0-dev

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (369) hide show
  1. package/dist/commonjs/config/toolConfig.d.ts +0 -10
  2. package/dist/commonjs/config/toolConfig.d.ts.map +1 -1
  3. package/dist/commonjs/config/toolConfig.js +0 -36
  4. package/dist/commonjs/config/toolConfig.js.map +1 -1
  5. package/dist/commonjs/resources/compute/ComputeResource.d.ts +20 -0
  6. package/dist/commonjs/resources/compute/ComputeResource.d.ts.map +1 -0
  7. package/dist/commonjs/resources/compute/ComputeResource.js +49 -0
  8. package/dist/commonjs/resources/compute/ComputeResource.js.map +1 -0
  9. package/dist/commonjs/resources/inline-payload/InlinePayloadResource.d.ts +17 -0
  10. package/dist/commonjs/resources/inline-payload/InlinePayloadResource.d.ts.map +1 -0
  11. package/dist/commonjs/resources/inline-payload/InlinePayloadResource.js +46 -0
  12. package/dist/commonjs/resources/inline-payload/InlinePayloadResource.js.map +1 -0
  13. package/dist/commonjs/resources/resourceRegistry.d.ts +4 -2
  14. package/dist/commonjs/resources/resourceRegistry.d.ts.map +1 -1
  15. package/dist/commonjs/resources/resourceRegistry.js +16 -6
  16. package/dist/commonjs/resources/resourceRegistry.js.map +1 -1
  17. package/dist/commonjs/resources/ui-apps/MapAppUIResource.d.ts +27 -0
  18. package/dist/commonjs/resources/ui-apps/MapAppUIResource.d.ts.map +1 -0
  19. package/dist/commonjs/resources/ui-apps/{DirectionsAppUIResource.js → MapAppUIResource.js} +15 -17
  20. package/dist/commonjs/resources/ui-apps/MapAppUIResource.js.map +1 -0
  21. package/dist/commonjs/resources/ui-apps/mapAppHtml.d.ts +19 -0
  22. package/dist/commonjs/resources/ui-apps/mapAppHtml.d.ts.map +1 -0
  23. package/dist/commonjs/resources/ui-apps/mapAppHtml.js +1621 -0
  24. package/dist/commonjs/resources/ui-apps/mapAppHtml.js.map +1 -0
  25. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.d.ts.map +1 -1
  26. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.js +46 -41
  27. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.js.map +1 -1
  28. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.output.schema.d.ts +6 -3
  29. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.output.schema.d.ts.map +1 -1
  30. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.output.schema.js +3 -1
  31. package/dist/commonjs/tools/category-search-tool/CategorySearchTool.output.schema.js.map +1 -1
  32. package/dist/commonjs/tools/category-search-tool/buildCategorySearchRequestUrl.d.ts +30 -0
  33. package/dist/commonjs/tools/category-search-tool/buildCategorySearchRequestUrl.d.ts.map +1 -0
  34. package/dist/commonjs/tools/category-search-tool/buildCategorySearchRequestUrl.js +39 -0
  35. package/dist/commonjs/tools/category-search-tool/buildCategorySearchRequestUrl.js.map +1 -0
  36. package/dist/commonjs/tools/difference-tool/DifferenceTool.d.ts.map +1 -1
  37. package/dist/commonjs/tools/difference-tool/DifferenceTool.js +19 -3
  38. package/dist/commonjs/tools/difference-tool/DifferenceTool.js.map +1 -1
  39. package/dist/commonjs/tools/difference-tool/DifferenceTool.output.schema.d.ts +4 -1
  40. package/dist/commonjs/tools/difference-tool/DifferenceTool.output.schema.d.ts.map +1 -1
  41. package/dist/commonjs/tools/difference-tool/DifferenceTool.output.schema.js +7 -3
  42. package/dist/commonjs/tools/difference-tool/DifferenceTool.output.schema.js.map +1 -1
  43. package/dist/commonjs/tools/directions-tool/DirectionsTool.d.ts +0 -9
  44. package/dist/commonjs/tools/directions-tool/DirectionsTool.d.ts.map +1 -1
  45. package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.d.ts.map +1 -1
  46. package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.js +9 -4
  47. package/dist/commonjs/tools/directions-tool/DirectionsTool.input.schema.js.map +1 -1
  48. package/dist/commonjs/tools/directions-tool/DirectionsTool.js +40 -78
  49. package/dist/commonjs/tools/directions-tool/DirectionsTool.js.map +1 -1
  50. package/dist/commonjs/tools/directions-tool/DirectionsTool.output.schema.d.ts +4 -1
  51. package/dist/commonjs/tools/directions-tool/DirectionsTool.output.schema.d.ts.map +1 -1
  52. package/dist/commonjs/tools/directions-tool/DirectionsTool.output.schema.js +10 -4
  53. package/dist/commonjs/tools/directions-tool/DirectionsTool.output.schema.js.map +1 -1
  54. package/dist/commonjs/tools/directions-tool/buildDirectionsRequestUrl.d.ts +2 -2
  55. package/dist/commonjs/tools/directions-tool/buildDirectionsRequestUrl.d.ts.map +1 -1
  56. package/dist/commonjs/tools/directions-tool/buildDirectionsRequestUrl.js +4 -12
  57. package/dist/commonjs/tools/directions-tool/buildDirectionsRequestUrl.js.map +1 -1
  58. package/dist/commonjs/tools/ground-location-tool/GroundLocationTool.d.ts.map +1 -1
  59. package/dist/commonjs/tools/ground-location-tool/GroundLocationTool.js +52 -18
  60. package/dist/commonjs/tools/ground-location-tool/GroundLocationTool.js.map +1 -1
  61. package/dist/commonjs/tools/ground-location-tool/GroundLocationTool.output.schema.d.ts +4 -1
  62. package/dist/commonjs/tools/ground-location-tool/GroundLocationTool.output.schema.d.ts.map +1 -1
  63. package/dist/commonjs/tools/ground-location-tool/GroundLocationTool.output.schema.js +7 -3
  64. package/dist/commonjs/tools/ground-location-tool/GroundLocationTool.output.schema.js.map +1 -1
  65. package/dist/commonjs/tools/ground-location-tool/buildReverseGeocodeUrl.d.ts +19 -0
  66. package/dist/commonjs/tools/ground-location-tool/buildReverseGeocodeUrl.d.ts.map +1 -0
  67. package/dist/commonjs/tools/ground-location-tool/buildReverseGeocodeUrl.js +26 -0
  68. package/dist/commonjs/tools/ground-location-tool/buildReverseGeocodeUrl.js.map +1 -0
  69. package/dist/commonjs/tools/intersect-tool/IntersectTool.d.ts.map +1 -1
  70. package/dist/commonjs/tools/intersect-tool/IntersectTool.js +19 -3
  71. package/dist/commonjs/tools/intersect-tool/IntersectTool.js.map +1 -1
  72. package/dist/commonjs/tools/intersect-tool/IntersectTool.output.schema.d.ts +4 -1
  73. package/dist/commonjs/tools/intersect-tool/IntersectTool.output.schema.d.ts.map +1 -1
  74. package/dist/commonjs/tools/intersect-tool/IntersectTool.output.schema.js +7 -3
  75. package/dist/commonjs/tools/intersect-tool/IntersectTool.output.schema.js.map +1 -1
  76. package/dist/commonjs/tools/isochrone-tool/IsochroneTool.d.ts.map +1 -1
  77. package/dist/commonjs/tools/isochrone-tool/IsochroneTool.js +51 -47
  78. package/dist/commonjs/tools/isochrone-tool/IsochroneTool.js.map +1 -1
  79. package/dist/commonjs/tools/isochrone-tool/IsochroneTool.output.schema.d.ts +4 -5
  80. package/dist/commonjs/tools/isochrone-tool/IsochroneTool.output.schema.d.ts.map +1 -1
  81. package/dist/commonjs/tools/isochrone-tool/IsochroneTool.output.schema.js +7 -3
  82. package/dist/commonjs/tools/isochrone-tool/IsochroneTool.output.schema.js.map +1 -1
  83. package/dist/commonjs/tools/isochrone-tool/buildIsochroneRequestUrl.d.ts +28 -0
  84. package/dist/commonjs/tools/isochrone-tool/buildIsochroneRequestUrl.d.ts.map +1 -0
  85. package/dist/commonjs/tools/isochrone-tool/buildIsochroneRequestUrl.js +44 -0
  86. package/dist/commonjs/tools/isochrone-tool/buildIsochroneRequestUrl.js.map +1 -0
  87. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.d.ts.map +1 -1
  88. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.js +61 -34
  89. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.js.map +1 -1
  90. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.output.schema.d.ts +8 -5
  91. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.output.schema.d.ts.map +1 -1
  92. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.output.schema.js +11 -5
  93. package/dist/commonjs/tools/map-matching-tool/MapMatchingTool.output.schema.js.map +1 -1
  94. package/dist/commonjs/tools/map-matching-tool/buildMapMatchingRequestUrl.d.ts +25 -0
  95. package/dist/commonjs/tools/map-matching-tool/buildMapMatchingRequestUrl.d.ts.map +1 -0
  96. package/dist/commonjs/tools/map-matching-tool/buildMapMatchingRequestUrl.js +33 -0
  97. package/dist/commonjs/tools/map-matching-tool/buildMapMatchingRequestUrl.js.map +1 -0
  98. package/dist/commonjs/tools/optimization-tool/OptimizationTool.d.ts.map +1 -1
  99. package/dist/commonjs/tools/optimization-tool/OptimizationTool.input.schema.d.ts.map +1 -1
  100. package/dist/commonjs/tools/optimization-tool/OptimizationTool.input.schema.js +19 -4
  101. package/dist/commonjs/tools/optimization-tool/OptimizationTool.input.schema.js.map +1 -1
  102. package/dist/commonjs/tools/optimization-tool/OptimizationTool.js +32 -33
  103. package/dist/commonjs/tools/optimization-tool/OptimizationTool.js.map +1 -1
  104. package/dist/commonjs/tools/optimization-tool/OptimizationTool.output.schema.d.ts +3 -5
  105. package/dist/commonjs/tools/optimization-tool/OptimizationTool.output.schema.d.ts.map +1 -1
  106. package/dist/commonjs/tools/optimization-tool/OptimizationTool.output.schema.js +6 -1
  107. package/dist/commonjs/tools/optimization-tool/OptimizationTool.output.schema.js.map +1 -1
  108. package/dist/commonjs/tools/optimization-tool/buildOptimizationRequestUrl.d.ts +30 -0
  109. package/dist/commonjs/tools/optimization-tool/buildOptimizationRequestUrl.d.ts.map +1 -0
  110. package/dist/commonjs/tools/optimization-tool/buildOptimizationRequestUrl.js +45 -0
  111. package/dist/commonjs/tools/optimization-tool/buildOptimizationRequestUrl.js.map +1 -0
  112. package/dist/commonjs/tools/render-map-tool/RenderMapTool.d.ts +60 -0
  113. package/dist/commonjs/tools/render-map-tool/RenderMapTool.d.ts.map +1 -0
  114. package/dist/commonjs/tools/render-map-tool/RenderMapTool.input.schema.d.ts +41 -0
  115. package/dist/commonjs/tools/render-map-tool/RenderMapTool.input.schema.d.ts.map +1 -0
  116. package/dist/commonjs/tools/render-map-tool/RenderMapTool.input.schema.js +99 -0
  117. package/dist/commonjs/tools/render-map-tool/RenderMapTool.input.schema.js.map +1 -0
  118. package/dist/commonjs/tools/render-map-tool/RenderMapTool.js +246 -0
  119. package/dist/commonjs/tools/render-map-tool/RenderMapTool.js.map +1 -0
  120. package/dist/commonjs/tools/render-map-tool/RenderMapTool.output.schema.d.ts +97 -0
  121. package/dist/commonjs/tools/render-map-tool/RenderMapTool.output.schema.d.ts.map +1 -0
  122. package/dist/commonjs/tools/render-map-tool/RenderMapTool.output.schema.js +35 -0
  123. package/dist/commonjs/tools/render-map-tool/RenderMapTool.output.schema.js.map +1 -0
  124. package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.input.schema.d.ts +1 -1
  125. package/dist/commonjs/tools/reverse-geocode-tool/ReverseGeocodeTool.output.schema.d.ts +3 -3
  126. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.d.ts +10 -0
  127. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.d.ts.map +1 -1
  128. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.js +58 -48
  129. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.js.map +1 -1
  130. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.d.ts +3 -0
  131. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.d.ts.map +1 -1
  132. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.js +3 -1
  133. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.js.map +1 -1
  134. package/dist/commonjs/tools/search-and-geocode-tool/buildSearchAndGeocodeRequestUrl.d.ts +37 -0
  135. package/dist/commonjs/tools/search-and-geocode-tool/buildSearchAndGeocodeRequestUrl.d.ts.map +1 -0
  136. package/dist/commonjs/tools/search-and-geocode-tool/buildSearchAndGeocodeRequestUrl.js +51 -0
  137. package/dist/commonjs/tools/search-and-geocode-tool/buildSearchAndGeocodeRequestUrl.js.map +1 -0
  138. package/dist/commonjs/tools/shared/polygonSchema.d.ts +15 -0
  139. package/dist/commonjs/tools/shared/polygonSchema.d.ts.map +1 -1
  140. package/dist/commonjs/tools/shared/polygonSchema.js +23 -2
  141. package/dist/commonjs/tools/shared/polygonSchema.js.map +1 -1
  142. package/dist/commonjs/tools/toolRegistry.d.ts +3 -2
  143. package/dist/commonjs/tools/toolRegistry.d.ts.map +1 -1
  144. package/dist/commonjs/tools/toolRegistry.js +2 -0
  145. package/dist/commonjs/tools/toolRegistry.js.map +1 -1
  146. package/dist/commonjs/tools/union-tool/UnionTool.d.ts.map +1 -1
  147. package/dist/commonjs/tools/union-tool/UnionTool.js +22 -3
  148. package/dist/commonjs/tools/union-tool/UnionTool.js.map +1 -1
  149. package/dist/commonjs/tools/union-tool/UnionTool.output.schema.d.ts +4 -1
  150. package/dist/commonjs/tools/union-tool/UnionTool.output.schema.d.ts.map +1 -1
  151. package/dist/commonjs/tools/union-tool/UnionTool.output.schema.js +7 -3
  152. package/dist/commonjs/tools/union-tool/UnionTool.output.schema.js.map +1 -1
  153. package/dist/commonjs/tools/union-tool/buildPolygonOpsMapPayload.d.ts +21 -0
  154. package/dist/commonjs/tools/union-tool/buildPolygonOpsMapPayload.d.ts.map +1 -0
  155. package/dist/commonjs/tools/union-tool/buildPolygonOpsMapPayload.js +72 -0
  156. package/dist/commonjs/tools/union-tool/buildPolygonOpsMapPayload.js.map +1 -0
  157. package/dist/commonjs/utils/computeRef.d.ts +38 -0
  158. package/dist/commonjs/utils/computeRef.d.ts.map +1 -0
  159. package/dist/commonjs/utils/computeRef.js +116 -0
  160. package/dist/commonjs/utils/computeRef.js.map +1 -0
  161. package/dist/commonjs/utils/inlinePayloadRef.d.ts +32 -0
  162. package/dist/commonjs/utils/inlinePayloadRef.d.ts.map +1 -0
  163. package/dist/commonjs/utils/inlinePayloadRef.js +56 -0
  164. package/dist/commonjs/utils/inlinePayloadRef.js.map +1 -0
  165. package/dist/commonjs/utils/mapAppPayload.d.ts +206 -0
  166. package/dist/commonjs/utils/mapAppPayload.d.ts.map +1 -0
  167. package/dist/commonjs/utils/mapAppPayload.js +129 -0
  168. package/dist/commonjs/utils/mapAppPayload.js.map +1 -0
  169. package/dist/commonjs/utils/selfFetchRef.d.ts +25 -0
  170. package/dist/commonjs/utils/selfFetchRef.d.ts.map +1 -0
  171. package/dist/commonjs/utils/selfFetchRef.js +75 -0
  172. package/dist/commonjs/utils/selfFetchRef.js.map +1 -0
  173. package/dist/commonjs/utils/storeMapPayload.d.ts +71 -0
  174. package/dist/commonjs/utils/storeMapPayload.d.ts.map +1 -0
  175. package/dist/commonjs/utils/storeMapPayload.js +153 -0
  176. package/dist/commonjs/utils/storeMapPayload.js.map +1 -0
  177. package/dist/commonjs/version.json +3 -3
  178. package/dist/esm/config/toolConfig.d.ts +0 -10
  179. package/dist/esm/config/toolConfig.d.ts.map +1 -1
  180. package/dist/esm/config/toolConfig.js +0 -35
  181. package/dist/esm/config/toolConfig.js.map +1 -1
  182. package/dist/esm/resources/compute/ComputeResource.d.ts +20 -0
  183. package/dist/esm/resources/compute/ComputeResource.d.ts.map +1 -0
  184. package/dist/esm/resources/compute/ComputeResource.js +45 -0
  185. package/dist/esm/resources/compute/ComputeResource.js.map +1 -0
  186. package/dist/esm/resources/inline-payload/InlinePayloadResource.d.ts +17 -0
  187. package/dist/esm/resources/inline-payload/InlinePayloadResource.d.ts.map +1 -0
  188. package/dist/esm/resources/inline-payload/InlinePayloadResource.js +42 -0
  189. package/dist/esm/resources/inline-payload/InlinePayloadResource.js.map +1 -0
  190. package/dist/esm/resources/resourceRegistry.d.ts +4 -2
  191. package/dist/esm/resources/resourceRegistry.d.ts.map +1 -1
  192. package/dist/esm/resources/resourceRegistry.js +16 -6
  193. package/dist/esm/resources/resourceRegistry.js.map +1 -1
  194. package/dist/esm/resources/ui-apps/MapAppUIResource.d.ts +27 -0
  195. package/dist/esm/resources/ui-apps/MapAppUIResource.d.ts.map +1 -0
  196. package/dist/esm/resources/ui-apps/{DirectionsAppUIResource.js → MapAppUIResource.js} +13 -15
  197. package/dist/esm/resources/ui-apps/MapAppUIResource.js.map +1 -0
  198. package/dist/esm/resources/ui-apps/mapAppHtml.d.ts +19 -0
  199. package/dist/esm/resources/ui-apps/mapAppHtml.d.ts.map +1 -0
  200. package/dist/esm/resources/ui-apps/mapAppHtml.js +1617 -0
  201. package/dist/esm/resources/ui-apps/mapAppHtml.js.map +1 -0
  202. package/dist/esm/tools/category-search-tool/CategorySearchTool.d.ts.map +1 -1
  203. package/dist/esm/tools/category-search-tool/CategorySearchTool.js +46 -41
  204. package/dist/esm/tools/category-search-tool/CategorySearchTool.js.map +1 -1
  205. package/dist/esm/tools/category-search-tool/CategorySearchTool.output.schema.d.ts +6 -3
  206. package/dist/esm/tools/category-search-tool/CategorySearchTool.output.schema.d.ts.map +1 -1
  207. package/dist/esm/tools/category-search-tool/CategorySearchTool.output.schema.js +3 -1
  208. package/dist/esm/tools/category-search-tool/CategorySearchTool.output.schema.js.map +1 -1
  209. package/dist/esm/tools/category-search-tool/buildCategorySearchRequestUrl.d.ts +30 -0
  210. package/dist/esm/tools/category-search-tool/buildCategorySearchRequestUrl.d.ts.map +1 -0
  211. package/dist/esm/tools/category-search-tool/buildCategorySearchRequestUrl.js +36 -0
  212. package/dist/esm/tools/category-search-tool/buildCategorySearchRequestUrl.js.map +1 -0
  213. package/dist/esm/tools/difference-tool/DifferenceTool.d.ts.map +1 -1
  214. package/dist/esm/tools/difference-tool/DifferenceTool.js +19 -3
  215. package/dist/esm/tools/difference-tool/DifferenceTool.js.map +1 -1
  216. package/dist/esm/tools/difference-tool/DifferenceTool.output.schema.d.ts +4 -1
  217. package/dist/esm/tools/difference-tool/DifferenceTool.output.schema.d.ts.map +1 -1
  218. package/dist/esm/tools/difference-tool/DifferenceTool.output.schema.js +7 -3
  219. package/dist/esm/tools/difference-tool/DifferenceTool.output.schema.js.map +1 -1
  220. package/dist/esm/tools/directions-tool/DirectionsTool.d.ts +0 -9
  221. package/dist/esm/tools/directions-tool/DirectionsTool.d.ts.map +1 -1
  222. package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.d.ts.map +1 -1
  223. package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.js +9 -4
  224. package/dist/esm/tools/directions-tool/DirectionsTool.input.schema.js.map +1 -1
  225. package/dist/esm/tools/directions-tool/DirectionsTool.js +41 -79
  226. package/dist/esm/tools/directions-tool/DirectionsTool.js.map +1 -1
  227. package/dist/esm/tools/directions-tool/DirectionsTool.output.schema.d.ts +4 -1
  228. package/dist/esm/tools/directions-tool/DirectionsTool.output.schema.d.ts.map +1 -1
  229. package/dist/esm/tools/directions-tool/DirectionsTool.output.schema.js +10 -4
  230. package/dist/esm/tools/directions-tool/DirectionsTool.output.schema.js.map +1 -1
  231. package/dist/esm/tools/directions-tool/buildDirectionsRequestUrl.d.ts +2 -2
  232. package/dist/esm/tools/directions-tool/buildDirectionsRequestUrl.d.ts.map +1 -1
  233. package/dist/esm/tools/directions-tool/buildDirectionsRequestUrl.js +4 -12
  234. package/dist/esm/tools/directions-tool/buildDirectionsRequestUrl.js.map +1 -1
  235. package/dist/esm/tools/ground-location-tool/GroundLocationTool.d.ts.map +1 -1
  236. package/dist/esm/tools/ground-location-tool/GroundLocationTool.js +52 -18
  237. package/dist/esm/tools/ground-location-tool/GroundLocationTool.js.map +1 -1
  238. package/dist/esm/tools/ground-location-tool/GroundLocationTool.output.schema.d.ts +4 -1
  239. package/dist/esm/tools/ground-location-tool/GroundLocationTool.output.schema.d.ts.map +1 -1
  240. package/dist/esm/tools/ground-location-tool/GroundLocationTool.output.schema.js +7 -3
  241. package/dist/esm/tools/ground-location-tool/GroundLocationTool.output.schema.js.map +1 -1
  242. package/dist/esm/tools/ground-location-tool/buildReverseGeocodeUrl.d.ts +19 -0
  243. package/dist/esm/tools/ground-location-tool/buildReverseGeocodeUrl.d.ts.map +1 -0
  244. package/dist/esm/tools/ground-location-tool/buildReverseGeocodeUrl.js +23 -0
  245. package/dist/esm/tools/ground-location-tool/buildReverseGeocodeUrl.js.map +1 -0
  246. package/dist/esm/tools/intersect-tool/IntersectTool.d.ts.map +1 -1
  247. package/dist/esm/tools/intersect-tool/IntersectTool.js +19 -3
  248. package/dist/esm/tools/intersect-tool/IntersectTool.js.map +1 -1
  249. package/dist/esm/tools/intersect-tool/IntersectTool.output.schema.d.ts +4 -1
  250. package/dist/esm/tools/intersect-tool/IntersectTool.output.schema.d.ts.map +1 -1
  251. package/dist/esm/tools/intersect-tool/IntersectTool.output.schema.js +7 -3
  252. package/dist/esm/tools/intersect-tool/IntersectTool.output.schema.js.map +1 -1
  253. package/dist/esm/tools/isochrone-tool/IsochroneTool.d.ts.map +1 -1
  254. package/dist/esm/tools/isochrone-tool/IsochroneTool.js +51 -47
  255. package/dist/esm/tools/isochrone-tool/IsochroneTool.js.map +1 -1
  256. package/dist/esm/tools/isochrone-tool/IsochroneTool.output.schema.d.ts +4 -5
  257. package/dist/esm/tools/isochrone-tool/IsochroneTool.output.schema.d.ts.map +1 -1
  258. package/dist/esm/tools/isochrone-tool/IsochroneTool.output.schema.js +7 -3
  259. package/dist/esm/tools/isochrone-tool/IsochroneTool.output.schema.js.map +1 -1
  260. package/dist/esm/tools/isochrone-tool/buildIsochroneRequestUrl.d.ts +28 -0
  261. package/dist/esm/tools/isochrone-tool/buildIsochroneRequestUrl.d.ts.map +1 -0
  262. package/dist/esm/tools/isochrone-tool/buildIsochroneRequestUrl.js +41 -0
  263. package/dist/esm/tools/isochrone-tool/buildIsochroneRequestUrl.js.map +1 -0
  264. package/dist/esm/tools/map-matching-tool/MapMatchingTool.d.ts.map +1 -1
  265. package/dist/esm/tools/map-matching-tool/MapMatchingTool.js +61 -34
  266. package/dist/esm/tools/map-matching-tool/MapMatchingTool.js.map +1 -1
  267. package/dist/esm/tools/map-matching-tool/MapMatchingTool.output.schema.d.ts +8 -5
  268. package/dist/esm/tools/map-matching-tool/MapMatchingTool.output.schema.d.ts.map +1 -1
  269. package/dist/esm/tools/map-matching-tool/MapMatchingTool.output.schema.js +11 -5
  270. package/dist/esm/tools/map-matching-tool/MapMatchingTool.output.schema.js.map +1 -1
  271. package/dist/esm/tools/map-matching-tool/buildMapMatchingRequestUrl.d.ts +25 -0
  272. package/dist/esm/tools/map-matching-tool/buildMapMatchingRequestUrl.d.ts.map +1 -0
  273. package/dist/esm/tools/map-matching-tool/buildMapMatchingRequestUrl.js +30 -0
  274. package/dist/esm/tools/map-matching-tool/buildMapMatchingRequestUrl.js.map +1 -0
  275. package/dist/esm/tools/optimization-tool/OptimizationTool.d.ts.map +1 -1
  276. package/dist/esm/tools/optimization-tool/OptimizationTool.input.schema.d.ts.map +1 -1
  277. package/dist/esm/tools/optimization-tool/OptimizationTool.input.schema.js +19 -4
  278. package/dist/esm/tools/optimization-tool/OptimizationTool.input.schema.js.map +1 -1
  279. package/dist/esm/tools/optimization-tool/OptimizationTool.js +32 -33
  280. package/dist/esm/tools/optimization-tool/OptimizationTool.js.map +1 -1
  281. package/dist/esm/tools/optimization-tool/OptimizationTool.output.schema.d.ts +3 -5
  282. package/dist/esm/tools/optimization-tool/OptimizationTool.output.schema.d.ts.map +1 -1
  283. package/dist/esm/tools/optimization-tool/OptimizationTool.output.schema.js +6 -1
  284. package/dist/esm/tools/optimization-tool/OptimizationTool.output.schema.js.map +1 -1
  285. package/dist/esm/tools/optimization-tool/buildOptimizationRequestUrl.d.ts +30 -0
  286. package/dist/esm/tools/optimization-tool/buildOptimizationRequestUrl.d.ts.map +1 -0
  287. package/dist/esm/tools/optimization-tool/buildOptimizationRequestUrl.js +42 -0
  288. package/dist/esm/tools/optimization-tool/buildOptimizationRequestUrl.js.map +1 -0
  289. package/dist/esm/tools/render-map-tool/RenderMapTool.d.ts +60 -0
  290. package/dist/esm/tools/render-map-tool/RenderMapTool.d.ts.map +1 -0
  291. package/dist/esm/tools/render-map-tool/RenderMapTool.input.schema.d.ts +41 -0
  292. package/dist/esm/tools/render-map-tool/RenderMapTool.input.schema.d.ts.map +1 -0
  293. package/dist/esm/tools/render-map-tool/RenderMapTool.input.schema.js +96 -0
  294. package/dist/esm/tools/render-map-tool/RenderMapTool.input.schema.js.map +1 -0
  295. package/dist/esm/tools/render-map-tool/RenderMapTool.js +242 -0
  296. package/dist/esm/tools/render-map-tool/RenderMapTool.js.map +1 -0
  297. package/dist/esm/tools/render-map-tool/RenderMapTool.output.schema.d.ts +97 -0
  298. package/dist/esm/tools/render-map-tool/RenderMapTool.output.schema.d.ts.map +1 -0
  299. package/dist/esm/tools/render-map-tool/RenderMapTool.output.schema.js +32 -0
  300. package/dist/esm/tools/render-map-tool/RenderMapTool.output.schema.js.map +1 -0
  301. package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.input.schema.d.ts +1 -1
  302. package/dist/esm/tools/reverse-geocode-tool/ReverseGeocodeTool.output.schema.d.ts +3 -3
  303. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.d.ts +10 -0
  304. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.d.ts.map +1 -1
  305. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.js +58 -48
  306. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.js.map +1 -1
  307. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.d.ts +3 -0
  308. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.d.ts.map +1 -1
  309. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.js +3 -1
  310. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.output.schema.js.map +1 -1
  311. package/dist/esm/tools/search-and-geocode-tool/buildSearchAndGeocodeRequestUrl.d.ts +37 -0
  312. package/dist/esm/tools/search-and-geocode-tool/buildSearchAndGeocodeRequestUrl.d.ts.map +1 -0
  313. package/dist/esm/tools/search-and-geocode-tool/buildSearchAndGeocodeRequestUrl.js +48 -0
  314. package/dist/esm/tools/search-and-geocode-tool/buildSearchAndGeocodeRequestUrl.js.map +1 -0
  315. package/dist/esm/tools/shared/polygonSchema.d.ts +15 -0
  316. package/dist/esm/tools/shared/polygonSchema.d.ts.map +1 -1
  317. package/dist/esm/tools/shared/polygonSchema.js +23 -2
  318. package/dist/esm/tools/shared/polygonSchema.js.map +1 -1
  319. package/dist/esm/tools/toolRegistry.d.ts +3 -2
  320. package/dist/esm/tools/toolRegistry.d.ts.map +1 -1
  321. package/dist/esm/tools/toolRegistry.js +2 -0
  322. package/dist/esm/tools/toolRegistry.js.map +1 -1
  323. package/dist/esm/tools/union-tool/UnionTool.d.ts.map +1 -1
  324. package/dist/esm/tools/union-tool/UnionTool.js +22 -3
  325. package/dist/esm/tools/union-tool/UnionTool.js.map +1 -1
  326. package/dist/esm/tools/union-tool/UnionTool.output.schema.d.ts +4 -1
  327. package/dist/esm/tools/union-tool/UnionTool.output.schema.d.ts.map +1 -1
  328. package/dist/esm/tools/union-tool/UnionTool.output.schema.js +7 -3
  329. package/dist/esm/tools/union-tool/UnionTool.output.schema.js.map +1 -1
  330. package/dist/esm/tools/union-tool/buildPolygonOpsMapPayload.d.ts +21 -0
  331. package/dist/esm/tools/union-tool/buildPolygonOpsMapPayload.d.ts.map +1 -0
  332. package/dist/esm/tools/union-tool/buildPolygonOpsMapPayload.js +69 -0
  333. package/dist/esm/tools/union-tool/buildPolygonOpsMapPayload.js.map +1 -0
  334. package/dist/esm/utils/computeRef.d.ts +38 -0
  335. package/dist/esm/utils/computeRef.d.ts.map +1 -0
  336. package/dist/esm/utils/computeRef.js +111 -0
  337. package/dist/esm/utils/computeRef.js.map +1 -0
  338. package/dist/esm/utils/inlinePayloadRef.d.ts +32 -0
  339. package/dist/esm/utils/inlinePayloadRef.d.ts.map +1 -0
  340. package/dist/esm/utils/inlinePayloadRef.js +51 -0
  341. package/dist/esm/utils/inlinePayloadRef.js.map +1 -0
  342. package/dist/esm/utils/mapAppPayload.d.ts +206 -0
  343. package/dist/esm/utils/mapAppPayload.d.ts.map +1 -0
  344. package/dist/esm/utils/mapAppPayload.js +124 -0
  345. package/dist/esm/utils/mapAppPayload.js.map +1 -0
  346. package/dist/esm/utils/selfFetchRef.d.ts +25 -0
  347. package/dist/esm/utils/selfFetchRef.d.ts.map +1 -0
  348. package/dist/esm/utils/selfFetchRef.js +70 -0
  349. package/dist/esm/utils/selfFetchRef.js.map +1 -0
  350. package/dist/esm/utils/storeMapPayload.d.ts +71 -0
  351. package/dist/esm/utils/storeMapPayload.d.ts.map +1 -0
  352. package/dist/esm/utils/storeMapPayload.js +145 -0
  353. package/dist/esm/utils/storeMapPayload.js.map +1 -0
  354. package/dist/esm/version.json +3 -3
  355. package/package.json +2 -2
  356. package/dist/commonjs/resources/ui-apps/DirectionsAppUIResource.d.ts +0 -29
  357. package/dist/commonjs/resources/ui-apps/DirectionsAppUIResource.d.ts.map +0 -1
  358. package/dist/commonjs/resources/ui-apps/DirectionsAppUIResource.js.map +0 -1
  359. package/dist/commonjs/resources/ui-apps/directionsAppHtml.d.ts +0 -45
  360. package/dist/commonjs/resources/ui-apps/directionsAppHtml.d.ts.map +0 -1
  361. package/dist/commonjs/resources/ui-apps/directionsAppHtml.js +0 -579
  362. package/dist/commonjs/resources/ui-apps/directionsAppHtml.js.map +0 -1
  363. package/dist/esm/resources/ui-apps/DirectionsAppUIResource.d.ts +0 -29
  364. package/dist/esm/resources/ui-apps/DirectionsAppUIResource.d.ts.map +0 -1
  365. package/dist/esm/resources/ui-apps/DirectionsAppUIResource.js.map +0 -1
  366. package/dist/esm/resources/ui-apps/directionsAppHtml.d.ts +0 -45
  367. package/dist/esm/resources/ui-apps/directionsAppHtml.d.ts.map +0 -1
  368. package/dist/esm/resources/ui-apps/directionsAppHtml.js +0 -575
  369. package/dist/esm/resources/ui-apps/directionsAppHtml.js.map +0 -1
@@ -1,575 +0,0 @@
1
- // Copyright (c) Mapbox, Inc.
2
- // Licensed under the MIT License.
3
- /**
4
- * Render the directions MCP App HTML.
5
- *
6
- * The same template is consumed by two ingress paths:
7
- *
8
- * 1. **MCP Apps spec** — `DirectionsAppUIResource` reads this resource at
9
- * `ui://mapbox/directions-app/index.html`. The iframe loads, the agent's
10
- * tool result is delivered via the `ui/notifications/tool-result`
11
- * postMessage event, and `extractRoute()` pulls the route out of
12
- * `structuredContent.routes[0]`.
13
- *
14
- * 2. **Legacy MCP-UI spec** — `directions_tool` inlines a `rawHtml`
15
- * UIResource into its content array (gated by `isMcpUiEnabled()`). The
16
- * HTML is generated at tool-execute time with the call's input params
17
- * baked in as an `initialData` script block; the iframe uses those params
18
- * to self-fetch the route from the Directions API, so it never depends on
19
- * the host delivering the tool result.
20
- *
21
- * One source of truth for the rendering logic; two slim entry conditions.
22
- */
23
- export const MAPBOX_GL_VERSION = '3.12.0';
24
- export function renderDirectionsAppHtml(params) {
25
- const { publicToken, apiEndpoint, initialData } = params;
26
- const glVersion = params.glVersion ?? MAPBOX_GL_VERSION;
27
- const initialDataScript = initialData
28
- ? `<script id="initial-data" type="application/json">${escapeForScript(JSON.stringify(initialData))}</script>`
29
- : '';
30
- return `<!DOCTYPE html>
31
- <html lang="en">
32
- <head>
33
- <meta charset="UTF-8">
34
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
35
- <title>Directions Preview</title>
36
- <link href="https://api.mapbox.com/mapbox-gl-js/v${glVersion}/mapbox-gl.css" rel="stylesheet">
37
- <script src="https://api.mapbox.com/mapbox-gl-js/v${glVersion}/mapbox-gl.js"></script>
38
- <style>
39
- * { margin: 0; padding: 0; box-sizing: border-box; }
40
- html, body { width: 100%; height: 100%; overflow: hidden;
41
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }
42
- #map { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
43
- #summary {
44
- position: absolute; top: 12px; left: 12px; z-index: 10;
45
- background: rgba(15, 23, 42, 0.88); color: #f1f5f9;
46
- padding: 8px 12px; border-radius: 6px;
47
- font-size: 13px; font-weight: 500;
48
- box-shadow: 0 2px 8px rgba(0,0,0,0.3);
49
- max-width: calc(100% - 24px);
50
- }
51
- #loading {
52
- position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
53
- color: #666; font-size: 16px; z-index: 10; pointer-events: none;
54
- }
55
- #error {
56
- position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
57
- color: #d32f2f; background: #ffebee; border-radius: 8px;
58
- padding: 20px; max-width: 400px; text-align: center; z-index: 10;
59
- }
60
- </style>
61
- </head>
62
- <body>
63
- <div id="map"></div>
64
- <div id="summary" style="display:none"></div>
65
- <div id="loading">Loading directions…</div>
66
- <div id="error" style="display:none"></div>
67
- ${initialDataScript}
68
-
69
- <script>
70
- (function() {
71
- var TOKEN = ${JSON.stringify(publicToken)};
72
- var API_ENDPOINT = ${JSON.stringify(apiEndpoint)};
73
-
74
- var loadingEl = document.getElementById('loading');
75
- var errorEl = document.getElementById('error');
76
- var summaryEl = document.getElementById('summary');
77
-
78
- var map = null;
79
- var mapLoaded = false;
80
- var pendingRoute = null;
81
- var currentDisplayMode = 'inline';
82
- // Track markers across re-renders so we can remove them before drawing the
83
- // next route — otherwise a second tool-result delivery stacks pins.
84
- var routeMarkers = [];
85
- var routeRendered = false;
86
- var selfFetchStarted = false;
87
-
88
- // -------------------------------------------------------------------------
89
- // Self-fetch: build a Directions API request directly from the tool call's
90
- // input parameters and fetch the route ourselves, so this map never
91
- // depends on the tool response carrying geometries="geojson".
92
- //
93
- // Mirrors src/tools/directions-tool/buildDirectionsRequestUrl.ts — kept in
94
- // sync by the parity test in
95
- // test/tools/directions-tool/directionsUrlParity.test.ts. Always forces
96
- // geometries=geojson regardless of what the tool call itself requested.
97
- // -------------------------------------------------------------------------
98
- function formatIsoDateTimeClient(dateTime) {
99
- var noTzWithSeconds = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}$/;
100
- if (noTzWithSeconds.test(dateTime)) {
101
- return dateTime.substring(0, dateTime.lastIndexOf(':'));
102
- }
103
- return dateTime;
104
- }
105
-
106
- function encodeExcludeClient(value) {
107
- return value
108
- .replace(/,/g, '%2C')
109
- .replace(/\\(/g, '%28')
110
- .replace(/\\)/g, '%29')
111
- .replace(/ /g, '%20');
112
- }
113
-
114
- function buildDirectionsApiUrl(params, publicToken, apiEndpoint) {
115
- var coords = params.coordinates
116
- .map(function(c) { return c.longitude + ',' + c.latitude; })
117
- .join(';');
118
- var encodedCoords = encodeURIComponent(coords);
119
- var profile = params.routing_profile || 'mapbox/driving-traffic';
120
-
121
- var qp = new URLSearchParams();
122
- qp.append('access_token', publicToken);
123
- qp.append('geometries', 'geojson');
124
- qp.append('alternatives', params.alternatives ? 'true' : 'false');
125
- qp.append(
126
- 'annotations',
127
- profile === 'mapbox/driving-traffic'
128
- ? 'distance,congestion,speed'
129
- : 'distance,speed'
130
- );
131
- qp.append('overview', 'full');
132
-
133
- if (params.depart_at) {
134
- qp.append('depart_at', formatIsoDateTimeClient(params.depart_at));
135
- } else if (params.arrive_by) {
136
- qp.append('arrive_by', formatIsoDateTimeClient(params.arrive_by));
137
- }
138
- if (params.max_height !== undefined && params.max_height !== null) {
139
- qp.append('max_height', String(params.max_height));
140
- }
141
- if (params.max_width !== undefined && params.max_width !== null) {
142
- qp.append('max_width', String(params.max_width));
143
- }
144
- if (params.max_weight !== undefined && params.max_weight !== null) {
145
- qp.append('max_weight', String(params.max_weight));
146
- }
147
- qp.append('steps', 'true');
148
-
149
- var queryString = qp.toString();
150
- if (params.exclude) {
151
- queryString += '&exclude=' + encodeExcludeClient(params.exclude);
152
- }
153
-
154
- return apiEndpoint + 'directions/v5/' + profile + '/' + encodedCoords + '?' + queryString;
155
- }
156
- // Exposed so the parity test (Node vm sandbox) can call this in isolation.
157
- window.__buildDirectionsApiUrl = buildDirectionsApiUrl;
158
-
159
- function fetchRouteFromDirectionsApi(params) {
160
- if (!TOKEN || !params || !params.coordinates) return;
161
- selfFetchStarted = true;
162
- var url = buildDirectionsApiUrl(params, TOKEN, API_ENDPOINT);
163
- fetch(url)
164
- .then(function(res) {
165
- if (!res.ok) {
166
- return res
167
- .json()
168
- .catch(function() { return null; })
169
- .then(function(body) {
170
- var msg =
171
- body && body.message
172
- ? body.message
173
- : 'Directions API error (' + res.status + ')';
174
- throw new Error(msg);
175
- });
176
- }
177
- return res.json();
178
- })
179
- .then(function(data) {
180
- if (routeRendered) return;
181
- var route = data && data.routes && data.routes[0];
182
- var picked = route ? pickRouteGeometry(route) : null;
183
- if (picked) {
184
- renderRoute(picked);
185
- } else {
186
- showError('Directions API returned no route.');
187
- }
188
- })
189
- .catch(function(err) {
190
- if (routeRendered) return;
191
- showError(
192
- 'Could not fetch route: ' + (err && err.message ? err.message : err)
193
- );
194
- });
195
- }
196
-
197
- // -------------------------------------------------------------------------
198
- // MCP App postMessage protocol (skipped silently in MCP-UI rawHtml mode)
199
- // -------------------------------------------------------------------------
200
- var messageId = 0;
201
- var pendingRequests = new Map();
202
-
203
- function sendRequest(method, params) {
204
- var id = ++messageId;
205
- try { window.parent.postMessage({ jsonrpc: '2.0', id: id, method: method, params: params || {} }, '*'); } catch (_) {}
206
- return new Promise(function(resolve, reject) {
207
- pendingRequests.set(id, { resolve: resolve, reject: reject });
208
- });
209
- }
210
- function sendNotification(method, params) {
211
- try { window.parent.postMessage({ jsonrpc: '2.0', method: method, params: params || {} }, '*'); } catch (_) {}
212
- }
213
- function requestSizeToFit() {
214
- if (currentDisplayMode !== 'inline') return;
215
- sendNotification('ui/notifications/size-changed', { height: 500 });
216
- }
217
-
218
- window.addEventListener('message', function(event) {
219
- var message = event.data;
220
- if (!message || typeof message !== 'object') return;
221
-
222
- if (message.id !== undefined && pendingRequests.has(message.id)) {
223
- var handlers = pendingRequests.get(message.id);
224
- pendingRequests.delete(message.id);
225
- if (message.error) handlers.reject(new Error(message.error.message));
226
- else handlers.resolve(message.result);
227
- return;
228
- }
229
- if (message.method === 'ui/notifications/tool-input' && message.params) {
230
- fetchRouteFromDirectionsApi(message.params.arguments);
231
- }
232
- if (message.method === 'ui/notifications/tool-result' && message.params) {
233
- handleToolResult(message.params);
234
- }
235
- if (message.method === 'ui/notifications/host-context-changed' && message.params) {
236
- var ctx = message.params;
237
- if (ctx.displayMode) {
238
- currentDisplayMode = ctx.displayMode;
239
- if (map) setTimeout(function() { map.resize(); }, 100);
240
- }
241
- }
242
- });
243
-
244
- sendRequest('ui/initialize', {
245
- protocolVersion: '2026-01-26',
246
- appCapabilities: {},
247
- appInfo: { name: 'Directions Preview', version: '1.0.0' }
248
- }).then(function() {
249
- sendNotification('ui/notifications/initialized', {});
250
- }, function() {
251
- sendNotification('ui/notifications/initialized', {});
252
- });
253
-
254
- // -------------------------------------------------------------------------
255
- // Map init
256
- // -------------------------------------------------------------------------
257
- function initMap() {
258
- if (!TOKEN) {
259
- loadingEl.style.display = 'none';
260
- errorEl.textContent = 'No Mapbox public token available. Set MAPBOX_PUBLIC_TOKEN or grant tokens:read to the OAuth client.';
261
- errorEl.style.display = 'block';
262
- return;
263
- }
264
- if (typeof mapboxgl === 'undefined') {
265
- loadingEl.style.display = 'none';
266
- errorEl.textContent = 'Mapbox GL JS failed to load.';
267
- errorEl.style.display = 'block';
268
- return;
269
- }
270
-
271
- mapboxgl.accessToken = TOKEN;
272
- map = new mapboxgl.Map({
273
- container: 'map',
274
- style: 'mapbox://styles/mapbox/streets-v12',
275
- center: [0, 20],
276
- zoom: 1.5
277
- });
278
- map.addControl(new mapboxgl.NavigationControl(), 'top-left');
279
- map.on('load', function() {
280
- mapLoaded = true;
281
- if (pendingRoute) {
282
- drawRoute(pendingRoute);
283
- pendingRoute = null;
284
- } else {
285
- consumeInitialData();
286
- }
287
- });
288
- map.on('error', function(e) {
289
- console.error('Mapbox error:', e && e.error && e.error.message ? e.error.message : e);
290
- });
291
- }
292
- initMap();
293
-
294
- // -------------------------------------------------------------------------
295
- // Initial data path (MCP-UI rawHtml): the tool call's input params were
296
- // baked in server-side. Self-fetch the route from the Directions API
297
- // rather than relying on baked-in geometry from the tool response.
298
- // -------------------------------------------------------------------------
299
- function consumeInitialData() {
300
- var el = document.getElementById('initial-data');
301
- if (!el || !el.textContent) return;
302
- try {
303
- var data = JSON.parse(el.textContent);
304
- if (!data || !data.params) return;
305
- fetchRouteFromDirectionsApi(data.params);
306
- } catch (_) { /* ignore */ }
307
- }
308
-
309
- function handleToolResult(result) {
310
- if (routeRendered) return;
311
- var route = extractRoute(result);
312
- if (route) {
313
- renderRoute(route);
314
- return;
315
- }
316
-
317
- // Fallback: large directions responses are stored as a temporary resource
318
- // (mapbox://temp/directions-id) and the structuredContent is stripped of
319
- // geometry to keep the agent context light. Read it back via the
320
- // MCP Apps host resources/read bridge.
321
- var tempUri = findTempResourceUri(result);
322
- if (tempUri) {
323
- loadingEl.textContent = 'Fetching full route…';
324
- sendRequest('resources/read', { uri: tempUri }).then(
325
- function(rr) {
326
- if (routeRendered) return;
327
- var fetched = readResourceJson(rr);
328
- var fetchedRoute = fetched ? extractRoute({ structuredContent: fetched }) : null;
329
- if (fetchedRoute) {
330
- renderRoute(fetchedRoute);
331
- } else {
332
- showError('Could not parse route from the temporary resource.');
333
- }
334
- },
335
- function(err) {
336
- if (routeRendered) return;
337
- showError('Could not read temporary resource: ' + (err && err.message ? err.message : err));
338
- }
339
- );
340
- return;
341
- }
342
-
343
- // Self-fetch (kicked off by the earlier tool-input notification) is
344
- // either still in flight or already reported its own error via its
345
- // .catch() handler — either way, this isn't the right error to show.
346
- if (selfFetchStarted) return;
347
-
348
- showError('Could not find route data in tool result.');
349
- }
350
-
351
- function renderRoute(route) {
352
- routeRendered = true;
353
- if (route.summary) {
354
- summaryEl.textContent = route.summary;
355
- summaryEl.style.display = 'block';
356
- }
357
- if (!map) { loadingEl.style.display = 'none'; return; }
358
- if (mapLoaded) drawRoute(route);
359
- else pendingRoute = route;
360
- }
361
-
362
- function showError(message) {
363
- loadingEl.style.display = 'none';
364
- errorEl.textContent = message;
365
- errorEl.style.display = 'block';
366
- }
367
-
368
- // Mapbox MCP server emits the URI in the summary text content of large
369
- // responses: "Resource URI: mapbox://temp/directions-<hex>".
370
- function findTempResourceUri(result) {
371
- if (!result || !Array.isArray(result.content)) return null;
372
- for (var i = 0; i < result.content.length; i++) {
373
- var c = result.content[i];
374
- if (c && c.type === 'text' && typeof c.text === 'string') {
375
- var m = c.text.match(/mapbox:\\/\\/temp\\/directions-[0-9a-fA-F]+/);
376
- if (m) return m[0];
377
- }
378
- }
379
- return null;
380
- }
381
-
382
- // resources/read responses have shape: { contents: [{ text: "<json>", ... }] }
383
- function readResourceJson(rr) {
384
- if (!rr || !Array.isArray(rr.contents) || rr.contents.length === 0) return null;
385
- var first = rr.contents[0];
386
- if (!first || typeof first.text !== 'string') return null;
387
- try { return JSON.parse(first.text); } catch (_) { return null; }
388
- }
389
-
390
- function extractRoute(result) {
391
- var sc = result && result.structuredContent;
392
- if (sc && Array.isArray(sc.routes) && sc.routes.length > 0) {
393
- var picked = pickRouteGeometry(sc.routes[0]);
394
- if (picked) return picked;
395
- }
396
- if (result && Array.isArray(result.content)) {
397
- for (var i = 0; i < result.content.length; i++) {
398
- var c = result.content[i];
399
- if (c && c.type === 'text' && typeof c.text === 'string') {
400
- try {
401
- var parsed = JSON.parse(c.text);
402
- if (parsed && Array.isArray(parsed.routes) && parsed.routes[0]) {
403
- var picked2 = pickRouteGeometry(parsed.routes[0]);
404
- if (picked2) return picked2;
405
- }
406
- if (parsed && parsed.geometry && parsed.geometry.coordinates) {
407
- return parsed;
408
- }
409
- } catch (_) { /* not JSON */ }
410
- }
411
- }
412
- }
413
- return null;
414
- }
415
-
416
- // Mapbox Directions can return geometry in 3 shapes:
417
- // - GeoJSON : { type: 'LineString', coordinates: [[lng,lat], ...] }
418
- // - polyline : "encoded_string" (precision 5, default)
419
- // - polyline6: "encoded_string" (precision 6)
420
- // We accept all three and normalize to GeoJSON for rendering.
421
- function pickRouteGeometry(route) {
422
- if (!route || !route.geometry) return null;
423
- var g = route.geometry;
424
- if (typeof g === 'object' && Array.isArray(g.coordinates) && g.coordinates.length) {
425
- return { geometry: g, summary: buildSummary(route) };
426
- }
427
- if (typeof g === 'string' && g.length > 0) {
428
- // Pick precision: polyline6 strings often contain '_' / '@'-like density
429
- // but the response usually carries a hint at top level. Try 6 first if
430
- // the response object says so, else 5.
431
- var coords = decodePolyline(g, 5);
432
- if (coords.length > 0 && coordsLookSane(coords)) {
433
- return {
434
- geometry: { type: 'LineString', coordinates: coords },
435
- summary: buildSummary(route)
436
- };
437
- }
438
- coords = decodePolyline(g, 6);
439
- if (coords.length > 0 && coordsLookSane(coords)) {
440
- return {
441
- geometry: { type: 'LineString', coordinates: coords },
442
- summary: buildSummary(route)
443
- };
444
- }
445
- }
446
- return null;
447
- }
448
-
449
- function coordsLookSane(coords) {
450
- for (var i = 0; i < coords.length; i++) {
451
- var c = coords[i];
452
- if (!Array.isArray(c) || c.length !== 2) return false;
453
- if (c[0] < -180 || c[0] > 180 || c[1] < -90 || c[1] > 90) return false;
454
- }
455
- return true;
456
- }
457
-
458
- // Standard Google/Mapbox polyline decoder. Precision = 5 (default) or 6.
459
- function decodePolyline(str, precision) {
460
- precision = precision || 5;
461
- var factor = Math.pow(10, precision);
462
- var coords = [];
463
- var lat = 0;
464
- var lng = 0;
465
- var i = 0;
466
- while (i < str.length) {
467
- var shift = 0;
468
- var result = 0;
469
- var b;
470
- do {
471
- b = str.charCodeAt(i++) - 63;
472
- result |= (b & 0x1f) << shift;
473
- shift += 5;
474
- } while (b >= 0x20 && i < str.length);
475
- lat += (result & 1) ? ~(result >> 1) : (result >> 1);
476
- shift = 0;
477
- result = 0;
478
- do {
479
- b = str.charCodeAt(i++) - 63;
480
- result |= (b & 0x1f) << shift;
481
- shift += 5;
482
- } while (b >= 0x20 && i < str.length);
483
- lng += (result & 1) ? ~(result >> 1) : (result >> 1);
484
- coords.push([lng / factor, lat / factor]);
485
- }
486
- return coords;
487
- }
488
-
489
- function buildSummary(route) {
490
- var parts = [];
491
- if (typeof route.distance === 'number') {
492
- parts.push((route.distance / 1609.34).toFixed(1) + ' mi');
493
- }
494
- if (typeof route.duration === 'number') {
495
- parts.push(Math.round(route.duration / 60) + ' min');
496
- }
497
- return parts.length ? 'Route: ' + parts.join(', ') : 'Route';
498
- }
499
-
500
- function drawRoute(route) {
501
- if (!route.geometry || !route.geometry.coordinates || !route.geometry.coordinates.length) {
502
- loadingEl.style.display = 'none';
503
- errorEl.textContent = 'Route geometry is empty.';
504
- errorEl.style.display = 'block';
505
- return;
506
- }
507
-
508
- errorEl.style.display = 'none';
509
-
510
- if (route.summary && summaryEl.style.display === 'none') {
511
- summaryEl.textContent = route.summary;
512
- summaryEl.style.display = 'block';
513
- }
514
-
515
- if (map.getLayer('route-line')) map.removeLayer('route-line');
516
- if (map.getSource('route')) map.removeSource('route');
517
- // Remove any markers from a prior render so we don't stack pins.
518
- for (var mi = 0; mi < routeMarkers.length; mi++) {
519
- routeMarkers[mi].remove();
520
- }
521
- routeMarkers = [];
522
-
523
- map.addSource('route', {
524
- type: 'geojson',
525
- data: { type: 'Feature', geometry: route.geometry, properties: {} }
526
- });
527
- map.addLayer({
528
- id: 'route-line',
529
- type: 'line',
530
- source: 'route',
531
- layout: { 'line-join': 'round', 'line-cap': 'round' },
532
- paint: { 'line-color': '#3b82f6', 'line-width': 5, 'line-opacity': 0.85 }
533
- });
534
-
535
- var coords = route.geometry.coordinates;
536
- routeMarkers.push(
537
- new mapboxgl.Marker({ color: '#22c55e' })
538
- .setLngLat(coords[0])
539
- .setPopup(new mapboxgl.Popup().setText('Start'))
540
- .addTo(map)
541
- );
542
- routeMarkers.push(
543
- new mapboxgl.Marker({ color: '#ef4444' })
544
- .setLngLat(coords[coords.length - 1])
545
- .setPopup(new mapboxgl.Popup().setText('End'))
546
- .addTo(map)
547
- );
548
-
549
- var lngs = coords.map(function(c) { return c[0]; });
550
- var lats = coords.map(function(c) { return c[1]; });
551
- var bounds = [
552
- [Math.min.apply(null, lngs), Math.min.apply(null, lats)],
553
- [Math.max.apply(null, lngs), Math.max.apply(null, lats)]
554
- ];
555
-
556
- loadingEl.style.display = 'none';
557
- requestSizeToFit();
558
- setTimeout(function() {
559
- map.resize();
560
- map.fitBounds(bounds, {
561
- padding: { top: 70, bottom: 30, left: 30, right: 30 },
562
- duration: 600
563
- });
564
- }, 60);
565
- }
566
- })();
567
- </script>
568
- </body>
569
- </html>`;
570
- }
571
- function escapeForScript(s) {
572
- // Prevent </script> inside JSON from breaking out of the script tag.
573
- return s.replace(/<\/script>/gi, '<\\/script>');
574
- }
575
- //# sourceMappingURL=directionsAppHtml.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"directionsAppHtml.js","sourceRoot":"","sources":["../../../../src/resources/ui-apps/directionsAppHtml.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,kCAAkC;AAElC;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAkB1C,MAAM,UAAU,uBAAuB,CAAC,MAKvC;IACC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IACzD,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,iBAAiB,CAAC;IAExD,MAAM,iBAAiB,GAAG,WAAW;QACnC,CAAC,CAAC,qDAAqD,eAAe,CAClE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAC5B,WAAW;QACd,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;;;;;;mDAM0C,SAAS;oDACR,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8B3D,iBAAiB;;;;gBAIH,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;uBACpB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAif1C,CAAC;AACT,CAAC;AAED,SAAS,eAAe,CAAC,CAAS;IAChC,qEAAqE;IACrE,OAAO,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;AAClD,CAAC"}