@mapbox/mcp-server 0.4.1 → 0.5.0

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 (32) hide show
  1. package/README.md +5 -19
  2. package/dist/commonjs/tools/{poi-search-tool/PoiSearchTool.d.ts → search-and-geocode-tool/SearchAndGeocodeTool.d.ts} +8 -20
  3. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.d.ts.map +1 -0
  4. package/dist/commonjs/tools/{poi-search-tool/PoiSearchTool.js → search-and-geocode-tool/SearchAndGeocodeTool.js} +32 -64
  5. package/dist/commonjs/tools/search-and-geocode-tool/SearchAndGeocodeTool.js.map +1 -0
  6. package/dist/commonjs/tools/toolRegistry.d.ts +2 -3
  7. package/dist/commonjs/tools/toolRegistry.d.ts.map +1 -1
  8. package/dist/commonjs/tools/toolRegistry.js +3 -5
  9. package/dist/commonjs/tools/toolRegistry.js.map +1 -1
  10. package/dist/commonjs/version.json +3 -3
  11. package/dist/esm/tools/{poi-search-tool/PoiSearchTool.d.ts → search-and-geocode-tool/SearchAndGeocodeTool.d.ts} +8 -20
  12. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.d.ts.map +1 -0
  13. package/dist/esm/tools/{poi-search-tool/PoiSearchTool.js → search-and-geocode-tool/SearchAndGeocodeTool.js} +30 -62
  14. package/dist/esm/tools/search-and-geocode-tool/SearchAndGeocodeTool.js.map +1 -0
  15. package/dist/esm/tools/toolRegistry.d.ts +2 -3
  16. package/dist/esm/tools/toolRegistry.d.ts.map +1 -1
  17. package/dist/esm/tools/toolRegistry.js +3 -5
  18. package/dist/esm/tools/toolRegistry.js.map +1 -1
  19. package/dist/esm/version.json +3 -3
  20. package/package.json +1 -1
  21. package/dist/commonjs/tools/forward-geocode-tool/ForwardGeocodeTool.d.ts +0 -98
  22. package/dist/commonjs/tools/forward-geocode-tool/ForwardGeocodeTool.d.ts.map +0 -1
  23. package/dist/commonjs/tools/forward-geocode-tool/ForwardGeocodeTool.js +0 -212
  24. package/dist/commonjs/tools/forward-geocode-tool/ForwardGeocodeTool.js.map +0 -1
  25. package/dist/commonjs/tools/poi-search-tool/PoiSearchTool.d.ts.map +0 -1
  26. package/dist/commonjs/tools/poi-search-tool/PoiSearchTool.js.map +0 -1
  27. package/dist/esm/tools/forward-geocode-tool/ForwardGeocodeTool.d.ts +0 -98
  28. package/dist/esm/tools/forward-geocode-tool/ForwardGeocodeTool.d.ts.map +0 -1
  29. package/dist/esm/tools/forward-geocode-tool/ForwardGeocodeTool.js +0 -208
  30. package/dist/esm/tools/forward-geocode-tool/ForwardGeocodeTool.js.map +0 -1
  31. package/dist/esm/tools/poi-search-tool/PoiSearchTool.d.ts.map +0 -1
  32. package/dist/esm/tools/poi-search-tool/PoiSearchTool.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  import { MapboxApiBasedTool } from '../MapboxApiBasedTool.js';
3
3
  import { fetchClient } from '../../utils/fetchRequest.js';
4
- const PoiSearchInputSchema = z.object({
4
+ const SearchAndGeocodeInputSchema = z.object({
5
5
  q: z
6
6
  .string()
7
7
  .max(256)
@@ -10,13 +10,6 @@ const PoiSearchInputSchema = z.object({
10
10
  .string()
11
11
  .optional()
12
12
  .describe('ISO language code for the response (e.g., "en", "es", "fr", "de", "ja")'),
13
- limit: z
14
- .number()
15
- .min(1)
16
- .max(10)
17
- .optional()
18
- .default(10)
19
- .describe('Maximum number of results to return (1-10)'),
20
13
  proximity: z
21
14
  .union([
22
15
  z.object({
@@ -28,21 +21,6 @@ const PoiSearchInputSchema = z.object({
28
21
  if (val === 'ip') {
29
22
  return 'ip';
30
23
  }
31
- // Handle JSON-stringified object: "{\"longitude\": -82.458107, \"latitude\": 27.937259}"
32
- if (val.startsWith('{') && val.endsWith('}')) {
33
- try {
34
- const parsed = JSON.parse(val);
35
- if (typeof parsed === 'object' &&
36
- parsed !== null &&
37
- typeof parsed.longitude === 'number' &&
38
- typeof parsed.latitude === 'number') {
39
- return { longitude: parsed.longitude, latitude: parsed.latitude };
40
- }
41
- }
42
- catch {
43
- // Fall back to other formats
44
- }
45
- }
46
24
  // Handle string that looks like an array: "[-82.451668, 27.942964]"
47
25
  if (val.startsWith('[') && val.endsWith(']')) {
48
26
  const coords = val
@@ -50,19 +28,19 @@ const PoiSearchInputSchema = z.object({
50
28
  .split(',')
51
29
  .map((s) => Number(s.trim()));
52
30
  if (coords.length === 2 && !isNaN(coords[0]) && !isNaN(coords[1])) {
53
- return { longitude: coords[0], latitude: coords[1] };
31
+ return coords;
54
32
  }
55
33
  }
56
34
  // Handle comma-separated string: "-82.451668,27.942964"
57
35
  const parts = val.split(',').map((s) => Number(s.trim()));
58
36
  if (parts.length === 2 && !isNaN(parts[0]) && !isNaN(parts[1])) {
59
- return { longitude: parts[0], latitude: parts[1] };
37
+ return parts;
60
38
  }
61
- throw new Error('Invalid proximity format. Expected {longitude, latitude}, "longitude,latitude", or "ip"');
39
+ throw new Error('Invalid proximity format. Expected [longitude, latitude], "longitude,latitude", or "ip"');
62
40
  })
63
41
  ])
64
42
  .optional()
65
- .describe('Location to bias results towards. Either coordinate object with longitude and latitude or "ip" for IP-based location. STRONGLY ENCOURAGED for relevant results.'),
43
+ .describe('Location to bias results towards. Either [longitude, latitude] or "ip" for IP-based location. STRONGLY ENCOURAGED for relevant results.'),
66
44
  bbox: z
67
45
  .object({
68
46
  minLongitude: z.number().min(-180).max(180),
@@ -71,7 +49,7 @@ const PoiSearchInputSchema = z.object({
71
49
  maxLatitude: z.number().min(-90).max(90)
72
50
  })
73
51
  .optional()
74
- .describe('Bounding box to limit results within specified bounds'),
52
+ .describe('Bounding box to limit results within [minLon, minLat, maxLon, maxLat]'),
75
53
  country: z
76
54
  .array(z.string().length(2))
77
55
  .optional()
@@ -102,20 +80,14 @@ const PoiSearchInputSchema = z.object({
102
80
  latitude: z.number().min(-90).max(90)
103
81
  })
104
82
  .optional()
105
- .describe('Starting point for ETA calculations as coordinate object with longitude and latitude'),
106
- format: z
107
- .enum(['json_string', 'formatted_text'])
108
- .optional()
109
- .default('formatted_text')
110
- .describe('Output format: "json_string" returns raw GeoJSON data as a JSON string that can be parsed; "formatted_text" returns human-readable text with place names, addresses, and coordinates. Both return as text content but json_string contains parseable JSON data while formatted_text is for display.')
111
83
  });
112
- export class PoiSearchTool extends MapboxApiBasedTool {
113
- name = 'poi_search_tool';
114
- description = "Find one specific place or brand location by its proper name or unique brand. Use only when the user's query includes a distinct title (e.g., \"The Met\", \"Starbucks Reserve Roastery\") or a brand they want all nearby branches of (e.g., \"Macy's stores near me\"). Do not use for generic place types such as 'museums', 'coffee shops', 'tacos', etc. Setting a proximity point is strongly encouraged for more relevant results. Always try to use a limit of at least 3 in case the user's intended result is not the first result. Supports both JSON and text output formats.";
115
- fetch;
116
- constructor(fetch = fetchClient) {
117
- super({ inputSchema: PoiSearchInputSchema });
118
- this.fetch = fetch;
84
+ export class SearchAndGeocodeTool extends MapboxApiBasedTool {
85
+ fetchImpl;
86
+ name = 'search_and_geocode_tool';
87
+ description = "Search for POIs, brands, chains, geocode cities, towns, addresses. Do not use for generic place types such as 'museums', 'coffee shops', 'tacos', etc, because category_search_tool is better for that. Setting a proximity point is strongly encouraged for more local results.";
88
+ constructor(fetchImpl = fetchClient) {
89
+ super({ inputSchema: SearchAndGeocodeInputSchema });
90
+ this.fetchImpl = fetchImpl;
119
91
  }
120
92
  formatGeoJsonToText(geoJsonResponse) {
121
93
  if (!geoJsonResponse ||
@@ -160,7 +132,7 @@ export class PoiSearchTool extends MapboxApiBasedTool {
160
132
  return results.join('\n\n');
161
133
  }
162
134
  async execute(input, accessToken) {
163
- this.log('info', `PoiSearchTool: Starting search with input: ${JSON.stringify(input)}`);
135
+ this.log('info', `SearchAndGeocodeTool: Starting search with input: ${JSON.stringify(input)}`);
164
136
  const url = new URL(`${MapboxApiBasedTool.mapboxApiEndpoint}search/searchbox/v1/forward`);
165
137
  // Required parameters
166
138
  url.searchParams.append('q', input.q);
@@ -169,21 +141,23 @@ export class PoiSearchTool extends MapboxApiBasedTool {
169
141
  if (input.language) {
170
142
  url.searchParams.append('language', input.language);
171
143
  }
172
- if (input.limit !== undefined) {
173
- url.searchParams.append('limit', input.limit.toString());
174
- }
144
+ // Hard code limit to 10
145
+ url.searchParams.append('limit', '10');
175
146
  if (input.proximity) {
176
147
  if (input.proximity === 'ip') {
177
148
  url.searchParams.append('proximity', 'ip');
178
149
  }
150
+ else if (Array.isArray(input.proximity)) {
151
+ const [lng, lat] = input.proximity;
152
+ url.searchParams.append('proximity', `${lng},${lat}`);
153
+ }
179
154
  else {
180
- const { longitude, latitude } = input.proximity;
181
- url.searchParams.append('proximity', `${longitude},${latitude}`);
155
+ // Object format with longitude/latitude properties
156
+ url.searchParams.append('proximity', `${input.proximity.longitude},${input.proximity.latitude}`);
182
157
  }
183
158
  }
184
159
  if (input.bbox) {
185
- const { minLongitude, minLatitude, maxLongitude, maxLatitude } = input.bbox;
186
- url.searchParams.append('bbox', `${minLongitude},${minLatitude},${maxLongitude},${maxLatitude}`);
160
+ url.searchParams.append('bbox', `${input.bbox.minLongitude},${input.bbox.minLatitude},${input.bbox.maxLongitude},${input.bbox.maxLatitude}`);
187
161
  }
188
162
  if (input.country && input.country.length > 0) {
189
163
  url.searchParams.append('country', input.country.join(','));
@@ -204,24 +178,18 @@ export class PoiSearchTool extends MapboxApiBasedTool {
204
178
  url.searchParams.append('navigation_profile', input.navigation_profile);
205
179
  }
206
180
  if (input.origin) {
207
- const { longitude, latitude } = input.origin;
208
- url.searchParams.append('origin', `${longitude},${latitude}`);
181
+ url.searchParams.append('origin', `${input.origin.longitude},${input.origin.latitude}`);
209
182
  }
210
- this.log('info', `PoiSearchTool: Fetching from URL: ${url.toString().replace(accessToken, '[REDACTED]')}`);
211
- const response = await this.fetch(url.toString());
183
+ this.log('info', `SearchAndGeocodeTool: Fetching from URL: ${url.toString().replace(accessToken, '[REDACTED]')}`);
184
+ const response = await this.fetchImpl(url.toString());
212
185
  if (!response.ok) {
213
186
  const errorBody = await response.text();
214
- this.log('error', `PoiSearchTool: API Error - Status: ${response.status}, Body: ${errorBody}`);
187
+ this.log('error', `SearchAndGeocodeTool: API Error - Status: ${response.status}, Body: ${errorBody}`);
215
188
  throw new Error(`Failed to search: ${response.status} ${response.statusText}`);
216
189
  }
217
190
  const data = await response.json();
218
- this.log('info', `PoiSearchTool: Successfully completed search, found ${data.features?.length || 0} results`);
219
- if (input.format === 'json_string') {
220
- return { type: 'text', text: JSON.stringify(data, null, 2) };
221
- }
222
- else {
223
- return { type: 'text', text: this.formatGeoJsonToText(data) };
224
- }
191
+ this.log('info', `SearchAndGeocodeTool: Successfully completed search, found ${data.features?.length || 0} results`);
192
+ return { type: 'text', text: this.formatGeoJsonToText(data) };
225
193
  }
226
194
  }
227
- //# sourceMappingURL=PoiSearchTool.js.map
195
+ //# sourceMappingURL=SearchAndGeocodeTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchAndGeocodeTool.js","sourceRoot":"","sources":["../../../../src/tools/search-and-geocode-tool/SearchAndGeocodeTool.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,13 @@
1
1
  import { CategoryListTool } from './category-list-tool/CategoryListTool.js';
2
2
  import { CategorySearchTool } from './category-search-tool/CategorySearchTool.js';
3
3
  import { DirectionsTool } from './directions-tool/DirectionsTool.js';
4
- import { ForwardGeocodeTool } from './forward-geocode-tool/ForwardGeocodeTool.js';
5
4
  import { IsochroneTool } from './isochrone-tool/IsochroneTool.js';
6
5
  import { MatrixTool } from './matrix-tool/MatrixTool.js';
7
- import { PoiSearchTool } from './poi-search-tool/PoiSearchTool.js';
8
6
  import { ReverseGeocodeTool } from './reverse-geocode-tool/ReverseGeocodeTool.js';
9
7
  import { StaticMapImageTool } from './static-map-image-tool/StaticMapImageTool.js';
8
+ import { SearchAndGeocodeTool } from './search-and-geocode-tool/SearchAndGeocodeTool.js';
10
9
  import { VersionTool } from './version-tool/VersionTool.js';
11
- export declare const ALL_TOOLS: readonly [VersionTool, CategoryListTool, CategorySearchTool, DirectionsTool, ForwardGeocodeTool, IsochroneTool, MatrixTool, PoiSearchTool, ReverseGeocodeTool, StaticMapImageTool];
10
+ export declare const ALL_TOOLS: readonly [VersionTool, CategoryListTool, CategorySearchTool, DirectionsTool, IsochroneTool, MatrixTool, ReverseGeocodeTool, StaticMapImageTool, SearchAndGeocodeTool];
12
11
  export type ToolInstance = (typeof ALL_TOOLS)[number];
13
12
  export declare function getAllTools(): readonly ToolInstance[];
14
13
  export declare function getToolByName(name: string): ToolInstance | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"toolRegistry.d.ts","sourceRoot":"","sources":["../../../src/tools/toolRegistry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAG5D,eAAO,MAAM,SAAS,oLAYZ,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtD,wBAAgB,WAAW,IAAI,SAAS,YAAY,EAAE,CAErD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEpE"}
1
+ {"version":3,"file":"toolRegistry.d.ts","sourceRoot":"","sources":["../../../src/tools/toolRegistry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAG5D,eAAO,MAAM,SAAS,uKAWZ,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtD,wBAAgB,WAAW,IAAI,SAAS,YAAY,EAAE,CAErD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEpE"}
@@ -2,12 +2,11 @@
2
2
  import { CategoryListTool } from './category-list-tool/CategoryListTool.js';
3
3
  import { CategorySearchTool } from './category-search-tool/CategorySearchTool.js';
4
4
  import { DirectionsTool } from './directions-tool/DirectionsTool.js';
5
- import { ForwardGeocodeTool } from './forward-geocode-tool/ForwardGeocodeTool.js';
6
5
  import { IsochroneTool } from './isochrone-tool/IsochroneTool.js';
7
6
  import { MatrixTool } from './matrix-tool/MatrixTool.js';
8
- import { PoiSearchTool } from './poi-search-tool/PoiSearchTool.js';
9
7
  import { ReverseGeocodeTool } from './reverse-geocode-tool/ReverseGeocodeTool.js';
10
8
  import { StaticMapImageTool } from './static-map-image-tool/StaticMapImageTool.js';
9
+ import { SearchAndGeocodeTool } from './search-and-geocode-tool/SearchAndGeocodeTool.js';
11
10
  import { VersionTool } from './version-tool/VersionTool.js';
12
11
  // Central registry of all tools
13
12
  export const ALL_TOOLS = [
@@ -16,12 +15,11 @@ export const ALL_TOOLS = [
16
15
  new CategoryListTool(),
17
16
  new CategorySearchTool(),
18
17
  new DirectionsTool(),
19
- new ForwardGeocodeTool(),
20
18
  new IsochroneTool(),
21
19
  new MatrixTool(),
22
- new PoiSearchTool(),
23
20
  new ReverseGeocodeTool(),
24
- new StaticMapImageTool()
21
+ new StaticMapImageTool(),
22
+ new SearchAndGeocodeTool()
25
23
  ];
26
24
  export function getAllTools() {
27
25
  return ALL_TOOLS;
@@ -1 +1 @@
1
- {"version":3,"file":"toolRegistry.js","sourceRoot":"","sources":["../../../src/tools/toolRegistry.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE5D,gCAAgC;AAChC,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,gCAAgC;IAChC,IAAI,WAAW,EAAE;IACjB,IAAI,gBAAgB,EAAE;IACtB,IAAI,kBAAkB,EAAE;IACxB,IAAI,cAAc,EAAE;IACpB,IAAI,kBAAkB,EAAE;IACxB,IAAI,aAAa,EAAE;IACnB,IAAI,UAAU,EAAE;IAChB,IAAI,aAAa,EAAE;IACnB,IAAI,kBAAkB,EAAE;IACxB,IAAI,kBAAkB,EAAE;CAChB,CAAC;AAIX,MAAM,UAAU,WAAW;IACzB,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACtD,CAAC"}
1
+ {"version":3,"file":"toolRegistry.js","sourceRoot":"","sources":["../../../src/tools/toolRegistry.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE5D,gCAAgC;AAChC,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,gCAAgC;IAChC,IAAI,WAAW,EAAE;IACjB,IAAI,gBAAgB,EAAE;IACtB,IAAI,kBAAkB,EAAE;IACxB,IAAI,cAAc,EAAE;IACpB,IAAI,aAAa,EAAE;IACnB,IAAI,UAAU,EAAE;IAChB,IAAI,kBAAkB,EAAE;IACxB,IAAI,kBAAkB,EAAE;IACxB,IAAI,oBAAoB,EAAE;CAClB,CAAC;AAIX,MAAM,UAAU,WAAW;IACzB,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACtD,CAAC"}
@@ -1,6 +1,6 @@
1
1
  {
2
- "sha": "1a5def587509baf23ddf95a7ed08f7d428b3a6e8",
3
- "tag": "v0.4.0-8-g1a5def5",
2
+ "sha": "8f695d0a0a9533ad85438081fd732afc28fc3792",
3
+ "tag": "v0.4.1-1-g8f695d0",
4
4
  "branch": "main",
5
- "version": "0.4.1"
5
+ "version": "0.5.0"
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mapbox/mcp-server",
3
- "version": "0.4.1",
3
+ "version": "0.5.0",
4
4
  "description": "Mapbox MCP server.",
5
5
  "main": "./dist/commonjs/index.js",
6
6
  "module": "./dist/esm/index.js",
@@ -1,98 +0,0 @@
1
- import { z } from 'zod';
2
- import { MapboxApiBasedTool } from '../MapboxApiBasedTool.js';
3
- declare const ForwardGeocodeInputSchema: z.ZodObject<{
4
- q: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
5
- permanent: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
6
- autocomplete: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
7
- bbox: z.ZodOptional<z.ZodObject<{
8
- minLongitude: z.ZodNumber;
9
- minLatitude: z.ZodNumber;
10
- maxLongitude: z.ZodNumber;
11
- maxLatitude: z.ZodNumber;
12
- }, "strip", z.ZodTypeAny, {
13
- minLongitude: number;
14
- minLatitude: number;
15
- maxLongitude: number;
16
- maxLatitude: number;
17
- }, {
18
- minLongitude: number;
19
- minLatitude: number;
20
- maxLongitude: number;
21
- maxLatitude: number;
22
- }>>;
23
- country: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
24
- format: z.ZodDefault<z.ZodOptional<z.ZodEnum<["json_string", "formatted_text"]>>>;
25
- language: z.ZodOptional<z.ZodString>;
26
- limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
27
- proximity: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
28
- longitude: z.ZodNumber;
29
- latitude: z.ZodNumber;
30
- }, "strip", z.ZodTypeAny, {
31
- longitude: number;
32
- latitude: number;
33
- }, {
34
- longitude: number;
35
- latitude: number;
36
- }>, z.ZodEffects<z.ZodString, "ip" | {
37
- longitude: any;
38
- latitude: any;
39
- }, string>]>>;
40
- types: z.ZodOptional<z.ZodArray<z.ZodEnum<["country", "region", "postcode", "district", "place", "locality", "neighborhood", "address"]>, "many">>;
41
- worldview: z.ZodDefault<z.ZodOptional<z.ZodEnum<["us", "cn", "jp", "in"]>>>;
42
- }, "strip", z.ZodTypeAny, {
43
- limit: number;
44
- format: "json_string" | "formatted_text";
45
- q: string;
46
- permanent: boolean;
47
- autocomplete: boolean;
48
- worldview: "us" | "cn" | "jp" | "in";
49
- language?: string | undefined;
50
- proximity?: "ip" | {
51
- longitude: number;
52
- latitude: number;
53
- } | {
54
- longitude: any;
55
- latitude: any;
56
- } | undefined;
57
- bbox?: {
58
- minLongitude: number;
59
- minLatitude: number;
60
- maxLongitude: number;
61
- maxLatitude: number;
62
- } | undefined;
63
- country?: string[] | undefined;
64
- types?: ("country" | "region" | "postcode" | "district" | "place" | "locality" | "neighborhood" | "address")[] | undefined;
65
- }, {
66
- q: string;
67
- language?: string | undefined;
68
- limit?: number | undefined;
69
- proximity?: string | {
70
- longitude: number;
71
- latitude: number;
72
- } | undefined;
73
- bbox?: {
74
- minLongitude: number;
75
- minLatitude: number;
76
- maxLongitude: number;
77
- maxLatitude: number;
78
- } | undefined;
79
- country?: string[] | undefined;
80
- format?: "json_string" | "formatted_text" | undefined;
81
- permanent?: boolean | undefined;
82
- autocomplete?: boolean | undefined;
83
- types?: ("country" | "region" | "postcode" | "district" | "place" | "locality" | "neighborhood" | "address")[] | undefined;
84
- worldview?: "us" | "cn" | "jp" | "in" | undefined;
85
- }>;
86
- export declare class ForwardGeocodeTool extends MapboxApiBasedTool<typeof ForwardGeocodeInputSchema> {
87
- private fetch;
88
- name: string;
89
- description: string;
90
- constructor(fetch?: typeof globalThis.fetch);
91
- private formatGeoJsonToText;
92
- protected execute(input: z.infer<typeof ForwardGeocodeInputSchema>, accessToken: string): Promise<{
93
- type: 'text';
94
- text: string;
95
- }>;
96
- }
97
- export {};
98
- //# sourceMappingURL=ForwardGeocodeTool.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ForwardGeocodeTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/forward-geocode-tool/ForwardGeocodeTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAG9D,QAAA,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiI7B,CAAC;AAEH,qBAAa,kBAAmB,SAAQ,kBAAkB,CACxD,OAAO,yBAAyB,CACjC;IAKa,OAAO,CAAC,KAAK;IAJzB,IAAI,SAA0B;IAC9B,WAAW,SAC4Z;gBAEnZ,KAAK,GAAE,OAAO,UAAU,CAAC,KAAmB;IAIhE,OAAO,CAAC,mBAAmB;cA+CX,OAAO,CACrB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,EAChD,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAmE3C"}
@@ -1,212 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ForwardGeocodeTool = void 0;
4
- const zod_1 = require("zod");
5
- const MapboxApiBasedTool_js_1 = require("../MapboxApiBasedTool.js");
6
- const fetchRequest_js_1 = require("../../utils/fetchRequest.js");
7
- const ForwardGeocodeInputSchema = zod_1.z.object({
8
- q: zod_1.z
9
- .string()
10
- .max(256)
11
- .refine((val) => !val.includes(';'), 'Search text cannot contain semicolons')
12
- .refine((val) => val.split(/\s+/).length <= 20, 'Search text cannot exceed 20 words')
13
- .describe('Search text to geocode. Max 256 characters, 20 words, no semicolons.'),
14
- permanent: zod_1.z
15
- .boolean()
16
- .optional()
17
- .default(false)
18
- .describe('Whether results can be stored permanently'),
19
- autocomplete: zod_1.z
20
- .boolean()
21
- .optional()
22
- .default(true)
23
- .describe('Return partial/suggested results for partial queries'),
24
- bbox: zod_1.z
25
- .object({
26
- minLongitude: zod_1.z.number().min(-180).max(180),
27
- minLatitude: zod_1.z.number().min(-90).max(90),
28
- maxLongitude: zod_1.z.number().min(-180).max(180),
29
- maxLatitude: zod_1.z.number().min(-90).max(90)
30
- })
31
- .optional()
32
- .describe('Bounding box to limit results within specified bounds'),
33
- country: zod_1.z
34
- .array(zod_1.z.string().length(2))
35
- .optional()
36
- .describe('Array of ISO 3166 alpha 2 country codes to limit results'),
37
- format: zod_1.z
38
- .enum(['json_string', 'formatted_text'])
39
- .optional()
40
- .default('formatted_text')
41
- .describe('Output format: "json_string" returns raw GeoJSON data as a JSON string that can be parsed; "formatted_text" returns human-readable text with place names, addresses, and coordinates. Both return as text content but json_string contains parseable JSON data while formatted_text is for display.'),
42
- language: zod_1.z
43
- .string()
44
- .optional()
45
- .describe('IETF language tag for the response (e.g., "en", "es", "fr", "de", "ja")'),
46
- limit: zod_1.z
47
- .number()
48
- .min(1)
49
- .max(10)
50
- .optional()
51
- .default(5)
52
- .describe('Maximum number of results to return (1-10)'),
53
- proximity: zod_1.z
54
- .union([
55
- zod_1.z.object({
56
- longitude: zod_1.z.number().min(-180).max(180),
57
- latitude: zod_1.z.number().min(-90).max(90)
58
- }),
59
- zod_1.z.string().transform((val) => {
60
- // Handle special case of 'ip'
61
- if (val === 'ip') {
62
- return 'ip';
63
- }
64
- // Handle JSON-stringified object: "{\"longitude\": -82.458107, \"latitude\": 27.937259}"
65
- if (val.startsWith('{') && val.endsWith('}')) {
66
- try {
67
- const parsed = JSON.parse(val);
68
- if (typeof parsed === 'object' &&
69
- parsed !== null &&
70
- typeof parsed.longitude === 'number' &&
71
- typeof parsed.latitude === 'number') {
72
- return { longitude: parsed.longitude, latitude: parsed.latitude };
73
- }
74
- }
75
- catch {
76
- // Fall back to other formats
77
- }
78
- }
79
- // Handle string that looks like an array: "[-82.451668, 27.942964]"
80
- if (val.startsWith('[') && val.endsWith(']')) {
81
- const coords = val
82
- .slice(1, -1)
83
- .split(',')
84
- .map((s) => Number(s.trim()));
85
- if (coords.length === 2 && !isNaN(coords[0]) && !isNaN(coords[1])) {
86
- return { longitude: coords[0], latitude: coords[1] };
87
- }
88
- }
89
- // Handle comma-separated string: "-82.451668,27.942964"
90
- const parts = val.split(',').map((s) => Number(s.trim()));
91
- if (parts.length === 2 && !isNaN(parts[0]) && !isNaN(parts[1])) {
92
- return { longitude: parts[0], latitude: parts[1] };
93
- }
94
- throw new Error('Invalid proximity format. Expected {longitude, latitude}, "longitude,latitude", or "ip"');
95
- })
96
- ])
97
- .optional()
98
- .describe('Location to bias results towards. Either [longitude, latitude] coordinates or "ip" for IP-based location. Can help get more relevant results when searching in a specific area.'),
99
- types: zod_1.z
100
- .array(zod_1.z.enum([
101
- 'country',
102
- 'region',
103
- 'postcode',
104
- 'district',
105
- 'place',
106
- 'locality',
107
- 'neighborhood',
108
- 'address'
109
- ]))
110
- .optional()
111
- .describe('Array of feature types to filter results'),
112
- worldview: zod_1.z
113
- .enum(['us', 'cn', 'jp', 'in'])
114
- .optional()
115
- .default('us')
116
- .describe('Returns features from a specific regional perspective')
117
- });
118
- class ForwardGeocodeTool extends MapboxApiBasedTool_js_1.MapboxApiBasedTool {
119
- fetch;
120
- name = 'forward_geocode_tool';
121
- description = 'This tool converts addresses, cities, towns, neighborhoods, districts, postcodes, regions, and countries into geographic coordinates using Mapbox Geocoding API v6. Setting a proximity point helps to bias results towards a specific area for more relevant results. Do not use this tool for geocoding points of interest like businesses, landmarks, historic sites, museums, etc. Supports both JSON and text output formats.';
122
- constructor(fetch = fetchRequest_js_1.fetchClient) {
123
- super({ inputSchema: ForwardGeocodeInputSchema });
124
- this.fetch = fetch;
125
- }
126
- formatGeoJsonToText(geoJsonResponse) {
127
- if (!geoJsonResponse ||
128
- !geoJsonResponse.features ||
129
- geoJsonResponse.features.length === 0) {
130
- return 'No results found.';
131
- }
132
- const results = geoJsonResponse.features.map((feature, index) => {
133
- const props = feature.properties || {};
134
- const geom = feature.geometry || {};
135
- let result = `${index + 1}. `;
136
- // Place name
137
- result += `${props.name}`;
138
- if (props.name_preferred) {
139
- result += ` (${props.name_preferred})`;
140
- }
141
- // Full address
142
- if (props.full_address) {
143
- result += `\n Address: ${props.full_address}`;
144
- }
145
- else if (props.place_formatted) {
146
- result += `\n Address: ${props.place_formatted}`;
147
- }
148
- // Geographic coordinates
149
- if (geom.coordinates && Array.isArray(geom.coordinates)) {
150
- const [lng, lat] = geom.coordinates;
151
- result += `\n Coordinates: ${lat}, ${lng}`;
152
- }
153
- // Feature type
154
- if (props.feature_type) {
155
- result += `\n Type: ${props.feature_type}`;
156
- }
157
- return result;
158
- });
159
- return results.join('\n\n');
160
- }
161
- async execute(input, accessToken) {
162
- const url = new URL(`${MapboxApiBasedTool_js_1.MapboxApiBasedTool.mapboxApiEndpoint}search/geocode/v6/forward`);
163
- // Required parameters
164
- url.searchParams.append('q', input.q);
165
- url.searchParams.append('access_token', accessToken);
166
- // Optional parameters
167
- url.searchParams.append('permanent', input.permanent.toString());
168
- url.searchParams.append('autocomplete', input.autocomplete.toString());
169
- url.searchParams.append('format', 'geojson');
170
- url.searchParams.append('limit', input.limit.toString());
171
- url.searchParams.append('worldview', input.worldview);
172
- if (input.bbox) {
173
- const { minLongitude, minLatitude, maxLongitude, maxLatitude } = input.bbox;
174
- url.searchParams.append('bbox', `${minLongitude},${minLatitude},${maxLongitude},${maxLatitude}`);
175
- }
176
- if (input.country && input.country.length > 0) {
177
- url.searchParams.append('country', input.country.join(','));
178
- }
179
- if (input.language) {
180
- url.searchParams.append('language', input.language);
181
- }
182
- if (input.proximity) {
183
- if (input.proximity === 'ip') {
184
- url.searchParams.append('proximity', 'ip');
185
- }
186
- else {
187
- const { longitude, latitude } = input.proximity;
188
- url.searchParams.append('proximity', `${longitude},${latitude}`);
189
- }
190
- }
191
- if (input.types && input.types.length > 0) {
192
- url.searchParams.append('types', input.types.join(','));
193
- }
194
- const response = await this.fetch(url.toString());
195
- if (!response.ok) {
196
- throw new Error(`Failed to geocode: ${response.status} ${response.statusText}`);
197
- }
198
- const data = (await response.json());
199
- // Check if the response has features
200
- if (!data || !data.features || data.features.length === 0) {
201
- return { type: 'text', text: 'No results found.' };
202
- }
203
- if (input.format === 'json_string') {
204
- return { type: 'text', text: JSON.stringify(data, null, 2) };
205
- }
206
- else {
207
- return { type: 'text', text: this.formatGeoJsonToText(data) };
208
- }
209
- }
210
- }
211
- exports.ForwardGeocodeTool = ForwardGeocodeTool;
212
- //# sourceMappingURL=ForwardGeocodeTool.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ForwardGeocodeTool.js","sourceRoot":"","sources":["../../../../src/tools/forward-geocode-tool/ForwardGeocodeTool.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PoiSearchTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/poi-search-tool/PoiSearchTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAG9D,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0HxB,CAAC;AAEH,qBAAa,aAAc,SAAQ,kBAAkB,CACnD,OAAO,oBAAoB,CAC5B;IACC,IAAI,SAAqB;IACzB,WAAW,SACmjB;IAE9jB,OAAO,CAAC,KAAK,CAA0B;gBAE3B,KAAK,GAAE,OAAO,UAAU,CAAC,KAAmB;IAKxD,OAAO,CAAC,mBAAmB;cAsDX,OAAO,CACrB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,EAC3C,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAoG3C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PoiSearchTool.js","sourceRoot":"","sources":["../../../../src/tools/poi-search-tool/PoiSearchTool.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,oEAA8D;AAC9D,iEAA0D;AAE1D,MAAM,oBAAoB,GAAG,OAAC,CAAC,MAAM,CAAC;IACpC,CAAC,EAAE,OAAC;SACD,MAAM,EAAE;SACR,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,CAAC,+CAA+C,CAAC;IAC5D,QAAQ,EAAE,OAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,yEAAyE,CAC1E;IACH,KAAK,EAAE,OAAC;SACL,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,QAAQ,EAAE;SACV,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CAAC,4CAA4C,CAAC;IACzD,SAAS,EAAE,OAAC;SACT,KAAK,CAAC;QACL,OAAC,CAAC,MAAM,CAAC;YACP,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;YACxC,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;SACtC,CAAC;QACF,OAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;YAC3B,8BAA8B;YAC9B,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACjB,OAAO,IAAa,CAAC;YACvB,CAAC;YACD,yFAAyF;YACzF,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7C,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC/B,IACE,OAAO,MAAM,KAAK,QAAQ;wBAC1B,MAAM,KAAK,IAAI;wBACf,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;wBACpC,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,EACnC,CAAC;wBACD,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACpE,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,6BAA6B;gBAC/B,CAAC;YACH,CAAC;YACD,oEAAoE;YACpE,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7C,MAAM,MAAM,GAAG,GAAG;qBACf,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;qBACZ,KAAK,CAAC,GAAG,CAAC;qBACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAChC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAClE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvD,CAAC;YACH,CAAC;YACD,wDAAwD;YACxD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC1D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,CAAC;YACD,MAAM,IAAI,KAAK,CACb,yFAAyF,CAC1F,CAAC;QACJ,CAAC,CAAC;KACH,CAAC;SACD,QAAQ,EAAE;SACV,QAAQ,CACP,iKAAiK,CAClK;IACH,IAAI,EAAE,OAAC;SACJ,MAAM,CAAC;QACN,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QAC3C,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QACxC,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QAC3C,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;KACzC,CAAC;SACD,QAAQ,EAAE;SACV,QAAQ,CAAC,uDAAuD,CAAC;IACpE,OAAO,EAAE,OAAC;SACP,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAC3B,QAAQ,EAAE;SACV,QAAQ,CAAC,0DAA0D,CAAC;IACvE,KAAK,EAAE,OAAC;SACL,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CACP,8EAA8E,CAC/E;IACH,YAAY,EAAE,OAAC;SACZ,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CACP,mEAAmE,CACpE;IACH,aAAa,EAAE,OAAC;SACb,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,mCAAmC,CAAC;IAChD,QAAQ,EAAE,OAAC;SACR,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC;SACpB,QAAQ,EAAE;SACV,QAAQ,CAAC,oDAAoD,CAAC;IACjE,kBAAkB,EAAE,OAAC;SAClB,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;SAC1D,QAAQ,EAAE;SACV,QAAQ,CAAC,sCAAsC,CAAC;IACnD,MAAM,EAAE,OAAC;SACN,MAAM,CAAC;QACN,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QACxC,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;KACtC,CAAC;SACD,QAAQ,EAAE;SACV,QAAQ,CACP,sFAAsF,CACvF;IACH,MAAM,EAAE,OAAC;SACN,IAAI,CAAC,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;SACvC,QAAQ,EAAE;SACV,OAAO,CAAC,gBAAgB,CAAC;SACzB,QAAQ,CACP,qSAAqS,CACtS;CACJ,CAAC,CAAC;AAEH,MAAa,aAAc,SAAQ,0CAElC;IACC,IAAI,GAAG,iBAAiB,CAAC;IACzB,WAAW,GACT,2jBAA2jB,CAAC;IAEtjB,KAAK,CAA0B;IAEvC,YAAY,QAAiC,6BAAW;QACtD,KAAK,CAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAEO,mBAAmB,CAAC,eAAoB;QAC9C,IACE,CAAC,eAAe;YAChB,CAAC,eAAe,CAAC,QAAQ;YACzB,eAAe,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EACrC,CAAC;YACD,OAAO,mBAAmB,CAAC;QAC7B,CAAC;QAED,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,CAAC,GAAG,CAC1C,CAAC,OAAY,EAAE,KAAa,EAAE,EAAE;YAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;YAEpC,IAAI,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC;YAE9B,WAAW;YACX,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAC1B,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,KAAK,CAAC,cAAc,GAAG,CAAC;YACzC,CAAC;YAED,eAAe;YACf,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;gBACvB,MAAM,IAAI,iBAAiB,KAAK,CAAC,YAAY,EAAE,CAAC;YAClD,CAAC;iBAAM,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;gBACjC,MAAM,IAAI,iBAAiB,KAAK,CAAC,eAAe,EAAE,CAAC;YACrD,CAAC;YAED,yBAAyB;YACzB,IAAI,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;gBACxD,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;gBACpC,MAAM,IAAI,qBAAqB,GAAG,KAAK,GAAG,EAAE,CAAC;YAC/C,CAAC;YAED,eAAe;YACf,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;gBACvB,MAAM,IAAI,cAAc,KAAK,CAAC,YAAY,EAAE,CAAC;YAC/C,CAAC;YAED,uBAAuB;YACvB,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC5D,MAAM,IAAI,kBAAkB,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9D,CAAC;iBAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC1B,MAAM,IAAI,kBAAkB,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC/C,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC,CACF,CAAC;QAEF,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAES,KAAK,CAAC,OAAO,CACrB,KAA2C,EAC3C,WAAmB;QAEnB,IAAI,CAAC,GAAG,CACN,MAAM,EACN,8CAA8C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CACtE,CAAC;QAEF,MAAM,GAAG,GAAG,IAAI,GAAG,CACjB,GAAG,0CAAkB,CAAC,iBAAiB,6BAA6B,CACrE,CAAC;QAEF,sBAAsB;QACtB,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QACtC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QAErD,sBAAsB;QACtB,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC9B,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;gBAC7B,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC;gBAChD,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,SAAS,IAAI,QAAQ,EAAE,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,GAC5D,KAAK,CAAC,IAAI,CAAC;YACb,GAAG,CAAC,YAAY,CAAC,MAAM,CACrB,MAAM,EACN,GAAG,YAAY,IAAI,WAAW,IAAI,YAAY,IAAI,WAAW,EAAE,CAChE,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,EAAE,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACtC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3E,CAAC;QAED,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;YAC7B,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,oBAAoB,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC1E,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;YAC7C,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,SAAS,IAAI,QAAQ,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,CAAC,GAAG,CACN,MAAM,EACN,qCAAqC,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,CACzF,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAElD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxC,IAAI,CAAC,GAAG,CACN,OAAO,EACP,sCAAsC,QAAQ,CAAC,MAAM,WAAW,SAAS,EAAE,CAC5E,CAAC;YACF,MAAM,IAAI,KAAK,CACb,qBAAqB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAC9D,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,GAAG,CACN,MAAM,EACN,uDAAwD,IAAY,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,UAAU,CACrG,CAAC;QAEF,IAAI,KAAK,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YACnC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;QAChE,CAAC;IACH,CAAC;CACF;AA3KD,sCA2KC"}