@tomtom-org/maps-sdk-plugin-agent-toolkit 0.17.1 → 0.17.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,768 @@
1
+ # Changelog
2
+
3
+ ## 0.17.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [#2821](https://github.com/tomtom-internal/maps-sdk-js/pull/2821) [`9f0d43b`](https://github.com/tomtom-internal/maps-sdk-js/commit/9f0d43be079eb933c12436c0cb20cd18faaf87ca) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - `setMapStyling` leaves out the base map's new `buildings3D.hover` and `buildings3D.click` knobs, which show only under a base-map event handler the agent never registers
8
+
9
+ - [#2823](https://github.com/tomtom-internal/maps-sdk-js/pull/2823) [`d1b906f`](https://github.com/tomtom-internal/maps-sdk-js/commit/d1b906f460c33607bf9789475ad85bff339b7c3b) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - The package ships its `CHANGELOG.md`, as the SDK does, so you can read what changed between two releases from `node_modules`
10
+
11
+ - [#2813](https://github.com/tomtom-internal/maps-sdk-js/pull/2813) [`c186703`](https://github.com/tomtom-internal/maps-sdk-js/commit/c1867038e9a38e300ea72e8812419204bf008e73) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - Dropped entries tear down fully, and the sandbox, the traffic monitor and re-runs no longer race each other
12
+
13
+ - A route that `single` mode drops stops its traffic monitor, and a single-mode places entry clears its polygons
14
+ - Incident listeners survive `resetState`, and the `resetState` tool also resets the map, even when a custom slice fails to reset
15
+ - The code sandbox survives a lost frame and frees itself on `destroy()`; `executeMaplibreCode` returns `NaN` and `Infinity` as `null`, and reports its source and layer changes when its result can't be returned
16
+ - Concurrent removals, mid-show drops and module creation no longer leave stale entries, focus, parameters or drawn layers behind
17
+ - Bias and ranges handle the antimeridian, waypoints keep their altitude, and tools report errors instead of throwing
18
+ - A `setRoute` time without a UTC offset is the local time at the origin for `departAt` and at the destination for `arriveBy`, not the browser's
19
+ - `setRoute` keeps the cost-model fields a call leaves out
20
+ - `dataEntries.places.enabled: false` also removes `reverseGeocode`
21
+ - `locatePlace` and `discoverPlaces` report a failed boundary fetch in `geometryError` and `geometriesError`
22
+ - `getTrackerHistory` orders events and its coverage by sample time
23
+ - Cancelling `analyseData`, `processData` or `createTracker` also cancels their boundary requests
24
+ - An entry id no entry has gets an error naming the entry kind and the recall call that lists the ids
25
+
26
+ ## 0.17.1
27
+
28
+ ### Patch Changes
29
+
30
+ - [#2803](https://github.com/tomtom-internal/maps-sdk-js/pull/2803) [`1a62c72`](https://github.com/tomtom-internal/maps-sdk-js/commit/1a62c72eb372d037397bb88485ea731763f3e554) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - The README links the repository's security policy page, which sends a vulnerability report to TomTom's HackerOne program
31
+
32
+ ## 0.17.0
33
+
34
+ ### Minor Changes
35
+
36
+ - [#2722](https://github.com/tomtom-internal/maps-sdk-js/pull/2722) [`9eff3f9`](https://github.com/tomtom-internal/maps-sdk-js/commit/9eff3f9f11ae3c358e0df83e9241cfb4a00f7282) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - **Breaking:** The agent runs on the Vercel AI SDK 7, so the `ai` peer dependency moves up to `^7.0.143`
37
+ - Move your own AI SDK calls to version 7 with its [migration guide](https://ai-sdk.dev/docs/migration-guides/migration-guide-7-0), for example `@ai-sdk/react` 4 and your model provider's next major.
38
+ - **Breaking:** `MapAgentOptions.prepareStep` takes the AI SDK 7 `PrepareStepFunction<ToolSet>`. An `instructions` or `messages` override it returns now carries over to the later steps of the turn.
39
+ - **Breaking:** The `maplibre-gl` peer dependency moves up to `^6.15.0`, and the `zod` peer dependency to `^4.6.7`.
40
+
41
+ - [#2782](https://github.com/tomtom-internal/maps-sdk-js/pull/2782) [`8747f76`](https://github.com/tomtom-internal/maps-sdk-js/commit/8747f76001de9166c3946774e19ec39fe2f6b2c8) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - **Breaking:** `addByodSource` loads only public `https://` URLs unless you set `byod.validateSourceUrl`, so the model can no longer point it at your own origin, `localhost` or a private network address
42
+
43
+ - **Breaking:** Without `byod.validateSourceUrl`, it refuses `http://` URLs, the page's own origin, `localhost`-style hostnames and loopback, private, link-local and other non-public IP addresses. To load from your origin or a local development server, allow those URLs in `byod.validateSourceUrl`, which replaces the default policy.
44
+ - **Breaking:** The fetch sends no cookies or other credentials and refuses redirects, and any failure returns one generic error to the model, with no HTTP status or part of the response.
45
+ - examples: the `map-site-selection-agent-react` code and README say its BYOD loads take any public https URL
46
+
47
+ - [#2783](https://github.com/tomtom-internal/maps-sdk-js/pull/2783) [`2815e76`](https://github.com/tomtom-internal/maps-sdk-js/commit/2815e7630ec737f128ac38c938dd404298531d77) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - **Breaking:** `executeMaplibreCode` is no longer a default tool, because the code the model writes for it runs in your page with no sandbox. To keep it, add `tools: { executeMaplibreCode: createExecuteMaplibreCodeTool() }` to `createMapAgent`
48
+
49
+ - [#2750](https://github.com/tomtom-internal/maps-sdk-js/pull/2750) [`94d3c8e`](https://github.com/tomtom-internal/maps-sdk-js/commit/94d3c8ea13a3b02631f152a03dd30af42ae5fd55) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - **Breaking:** agent-toolkit: a tool call carrying a top-level key the tool's `z.object` input schema doesn't declare fails with the key's name, which the model sees and can correct, instead of the key vanishing from `input`. This covers custom tools and the schemas a scope rebuilds
50
+
51
+ - [#2701](https://github.com/tomtom-internal/maps-sdk-js/pull/2701) [`023e169`](https://github.com/tomtom-internal/maps-sdk-js/commit/023e16920b92fa77bd86c50b87408b5fa666b558) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - **Breaking:** `setRoute` only calculates and shows a route; how it looks moves to the display and styling tools
52
+
53
+ - **Breaking:** `setRoute` drops `showWaypoints` and `showSummaryBubbles`. Hide a route's pins with `updateRoutesDisplay({ waypoints: false })`, and its summary bubbles with `setMapStyling({ set: { "routes.summaryBubbles.visible": false } })`. A system prompt that names the old flags should name these instead
54
+ - `updateRoutesDisplay` takes `waypoints` to show or hide the pins of the entries it targets, the latest one when it names none. Hidden pins stay hidden each time the route shows again, through `RoutingState.setWaypointsShown`; `showEntry`'s `showWaypoints` still applies to that one show. With pins hidden, `addWaypointsToRoute` still extends the route
55
+
56
+ - [#2784](https://github.com/tomtom-internal/maps-sdk-js/pull/2784) [`636d8ae`](https://github.com/tomtom-internal/maps-sdk-js/commit/636d8ae0b80de130c438d5ee8847a3759088ae23) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - **Breaking:** In the browser, `analyseData`, `processData`, `createTracker` and `clusterIncidents` return an error to the model when the code sandbox can't start, instead of running the generated code in the page, and a call 30 seconds or more later tries the sandbox again
57
+ - Set `codeExecution: { allowMainThreadFallback: true }` to run the code in the page, not isolated, when the sandbox can't start. That choice does not retry the sandbox.
58
+ - A page with a document but no `Worker` fails closed the same way, rather than running the code on the page.
59
+ - `agent.getCodeExecutionMode()` reports where generated code runs: `not-started`, `iframe-worker`, `unavailable` or `main-thread`.
60
+ - A page CSP that blocks the sandbox's worker or `'unsafe-eval'` now fails the start too, rather than every run. The code-generation guide lists the directives the sandbox needs.
61
+
62
+ ### Patch Changes
63
+
64
+ - [#2705](https://github.com/tomtom-internal/maps-sdk-js/pull/2705) [`4ff91a2`](https://github.com/tomtom-internal/maps-sdk-js/commit/4ff91a2a6c9e62e5c3ec8db8f15e12d692d86aa3) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - The `discoverPlaces` schema the model reads caps `maxDetourTimeSeconds` at `3600`, the service's maximum
65
+
66
+ - [#2703](https://github.com/tomtom-internal/maps-sdk-js/pull/2703) [`ade1487`](https://github.com/tomtom-internal/maps-sdk-js/commit/ade1487f102d949776a61fd13cf55d5ba1d165de) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - The `discoverPlaces` schema the model reads says a negative detour time, a route through the POI that is faster than the original one, sorts first
67
+
68
+ - [#2704](https://github.com/tomtom-internal/maps-sdk-js/pull/2704) [`165e7c2`](https://github.com/tomtom-internal/maps-sdk-js/commit/165e7c25e4be2f60192d98556af50b870f8c6e9d) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - The places schema the model reads says `localizedCategories` is in English whatever the request language
69
+
70
+ - [#2701](https://github.com/tomtom-internal/maps-sdk-js/pull/2701) [`023e169`](https://github.com/tomtom-internal/maps-sdk-js/commit/023e16920b92fa77bd86c50b87408b5fa666b558) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - The agent tells route alternatives apart and points out a route's tolls, jams or roads on the map, without writing code for either
71
+
72
+ - Each route summary names the main roads it takes in `via`, and each alternative says what it adds and avoids against route 0 in `comparedToBest`, such as a toll road or a jam. `setRoute`, the waypoint tools and `recallState` return them, so the agent can answer "how do the routes differ?" from them, with no code to write
73
+ - `updateRoutesDisplay` takes `focus` to ring sections of the selected route and zoom to them: section types such as `tollRoad`, `traffic` or `distinct`, road numbers such as `A2`, and `pick` for the longest one, the jam with the most delay or one by its index. `focus: null` clears the ring. A monitored route keeps its selected alternative and its focus each time the monitor recalculates it
74
+ - `updateRoutesDisplay` switches the selected alternative without drawing the route again, so the summary bubbles stay put and an index the entry doesn't have is refused
75
+ - Routes come with their `curve` and `curvyStretch` sections, which the SDK finds in the geometry with no extra request. Each summary says how winding the route is in `timeInCurvesPercent`, the share of its travel time in curves. `focus` takes both types and `pick: 'curviest'`, and `setMapStyling` draws them with `routes.sections.curve.visible`. The agent plans without guidance, so a turn at a junction counts as a curve
76
+ - The sandbox's `routeUtils` adds `getSectionsWithin`, `getImportantRoads`, `compareRoutes` and `isHairpin`
77
+
78
+ - [#2701](https://github.com/tomtom-internal/maps-sdk-js/pull/2701) [`023e169`](https://github.com/tomtom-internal/maps-sdk-js/commit/023e16920b92fa77bd86c50b87408b5fa666b558) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - `createTracker` costs the model fewer tokens: each turn offers only the entry kinds its rule reads
79
+
80
+ - `createTracker` is now scopable like `analyseData`, so a tracker over incidents and places drops the other kinds' fields and schemas, about half to two thirds of its schema. It also leaves out the kinds `dataEntries` disables
81
+
82
+ - [#2723](https://github.com/tomtom-internal/maps-sdk-js/pull/2723) [`d5f5fdb`](https://github.com/tomtom-internal/maps-sdk-js/commit/d5f5fdb80ea32b2ba95a18c4cbd0118c72dc3654) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - The route shape that `analyseData` and `processData` give the model says a traffic section's `eventId` is the tail of an incident's `id`, so the code it writes matches incidents by that suffix
83
+
84
+ - [#2724](https://github.com/tomtom-internal/maps-sdk-js/pull/2724) [`2cf2e55`](https://github.com/tomtom-internal/maps-sdk-js/commit/2cf2e554793280c067cef0f3864486eb617711ce) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - **Breaking:** core: the bbox utilities read and return a box crossing the antimeridian as `west > east`, as RFC 7946 and the services do, so fitting the map to results around Fiji frames Fiji rather than the whole world
85
+
86
+ - **Breaking:** core: `bboxFromCoordsArray`, and `bboxFromGeoJSON` on points, return the box across the antimeridian when it is narrower than the one from the lowest to the highest longitude. A tie, or input spanning -180 to 180, keeps the latter, so every country in the world still gives `[-180, …, 180]`
87
+ - **Breaking:** core: `bboxFromGeoJSON` reads a line or ring along its edges, which don't wrap, so a ring past 180 gives the box across the antimeridian and one from -100 to 100 stays `[-100, …, 100]`
88
+ - **Breaking:** core: `bboxFromBBoxes`, and `bboxFromGeoJSON` on several features or parts, return the narrowest box containing every input, so merging a box across the antimeridian with another keeps both
89
+ - **Breaking:** core: `polygonFromBBox` draws a box across the antimeridian with its east edge at `east + 360`, around the box rather than the rest of the world, and `bboxFromGeoJSON` reads that ring back as the same box
90
+ - map: `TomTomMap.getBBox` with padding returns a view across the antimeridian as `west > east`, and a view wider than 180° whole
91
+ - services: `geometrySearch` ranks a polygon across the antimeridian by its own width when it keeps the largest 50
92
+ - agent-toolkit: `getTrafficAreaAnalytics` reads a `bbox` across the antimeridian as the area it covers, and the tools describe a bbox as `[west, south, east, north]`. It needs SDK 1.0.0-rc.4
93
+
94
+ - [#2742](https://github.com/tomtom-internal/maps-sdk-js/pull/2742) [`2fcc1ab`](https://github.com/tomtom-internal/maps-sdk-js/commit/2fcc1abc07bcdf89aff3942ff1207637ed00f419) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - The `license` field reads `SEE LICENSE IN LICENSE.txt`, the form npm and license scanners recognise, so they point to the package's own `LICENSE.txt` instead of reporting an unknown license
95
+
96
+ - [#2734](https://github.com/tomtom-internal/maps-sdk-js/pull/2734) [`9a12d95`](https://github.com/tomtom-internal/maps-sdk-js/commit/9a12d95c22e60e69fb1891237344ca259aa236a5) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - Installs beside `@tomtom-org/maps-sdk` 1.0.0 and every later 1.x release: the peer range on the SDK runs up to `<2.0.0` instead of stopping below 1.0.0
97
+
98
+ - [#2697](https://github.com/tomtom-internal/maps-sdk-js/pull/2697) [`3d9c9a3`](https://github.com/tomtom-internal/maps-sdk-js/commit/3d9c9a34b897cf8eb791096620ed3e18dead1966) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - The package page on npm and the API reference of its entry points say the plugin is in Public Preview until its 1.0.0 release, as its guides already do
99
+
100
+ - [#2748](https://github.com/tomtom-internal/maps-sdk-js/pull/2748) [`2597ffe`](https://github.com/tomtom-internal/maps-sdk-js/commit/2597ffeaff5f42079109938b277590c95726ca33) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - **Breaking:** core, services: a route or leg summary's `trafficDelayInSeconds` and `trafficLengthInMeters` are optional, present only when the routing service sends them, rather than `0` when it leaves them out
101
+
102
+ - core: `trafficDelayInSeconds` is the delay of the traffic events along `trafficLengthInMeters`. For the gap to free-flow, use `Math.max(0, liveTrafficIncidentsTravelTimeInSeconds - noTrafficTravelTimeInSeconds)`, with `computeTravelTimeFor: 'all'`
103
+ - agent-toolkit: the route shape `analyseData`, `processData`, `clusterIncidents` and `createTracker` give the model says what `trafficDelayInSeconds` measures and how to work out the gap to free-flow
104
+ - examples: `react-route-planner` shows the traffic delay against free flow, and the delay of the traffic events on a row of its own
105
+
106
+ ## 0.16.0
107
+
108
+ ### Minor Changes
109
+
110
+ - [#2688](https://github.com/tomtom-internal/maps-sdk-js/pull/2688) [`af7a24e`](https://github.com/tomtom-internal/maps-sdk-js/commit/af7a24e336bcd2062fa102e78e3614787f5888d5) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - **Breaking:** `PlacesEntry.geometries` and the boundaries `PlacesState` fetches, shows and returns are typed `PolygonFeature`, with the Geometry Data service's own properties, not `PolygonFeature<CommonPlaceProps>`
111
+ - The route schema the model reads marks a traffic section's `tec` optional
112
+ - `find_reachable_areas` keeps the other origins' ranges when one origin's service call fails, and lists that origin under `skipped` with the error; with no range at all, it returns the first error's code
113
+
114
+ ### Patch Changes
115
+
116
+ - [#2642](https://github.com/tomtom-internal/maps-sdk-js/pull/2642) [`1d75842`](https://github.com/tomtom-internal/maps-sdk-js/commit/1d75842ba862bf87648eb33beef02d64df7db366) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - Showing a route without its summary bubbles keeps the bubbles' other settings, the knobs set on them included
117
+
118
+ - [#2650](https://github.com/tomtom-internal/maps-sdk-js/pull/2650) [`3ce0603`](https://github.com/tomtom-internal/maps-sdk-js/commit/3ce0603daadfa044b4797a25db21278f1c267302) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - The route schema the model reads describes `sections.distinct`, the stretches each route has to itself
119
+
120
+ - [#2693](https://github.com/tomtom-internal/maps-sdk-js/pull/2693) [`db69794`](https://github.com/tomtom-internal/maps-sdk-js/commit/db69794e00011a820e2046a161e5390d07b8bb7a) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - Plugins are side-effect free, so your bundler drops every part of a plugin your app doesn't use
121
+
122
+ - Each plugin declares `"sideEffects": false`, and its knob catalogue and other module-level tables are dropped when nothing reads them
123
+ - flyover takes `@turf/turf` as a peer dependency, the copy the SDK already requires, instead of bundling its own
124
+ - The plugins' bundles keep their module-level names, as the SDK's do, so Sandpack and builds that transpile `node_modules` with Babel run their loops correctly
125
+
126
+ ## 0.15.1
127
+
128
+ ### Patch Changes
129
+
130
+ - [#2627](https://github.com/tomtom-internal/maps-sdk-js/pull/2627) [`e09550e`](https://github.com/tomtom-internal/maps-sdk-js/commit/e09550ebbd9a46d464bb186fb4ec220cafc55170) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - The `maplibre-gl` peer dependency moves up to `^6.13.0`
131
+
132
+ - [#2590](https://github.com/tomtom-internal/maps-sdk-js/pull/2590) [`75fb3ea`](https://github.com/tomtom-internal/maps-sdk-js/commit/75fb3eab4d38b2aad8f4f671c3fd84f78ffc19f3) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - license: the privacy clause of `LICENSE.txt` now links the TomTom Privacy Policy, https://www.tomtom.com/privacy/
133
+
134
+ - [#2548](https://github.com/tomtom-internal/maps-sdk-js/pull/2548) [`89660b0`](https://github.com/tomtom-internal/maps-sdk-js/commit/89660b065154b0211cb7234fa5d2da6f74ba9086) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - **Breaking:** map: a knob id is the path of its setting in the configuration on every module, and `setKnobs` sets several knobs in one checked change
135
+ - map: `setKnobs(module, catalogue, values)` checks every value against its knob, then applies them all in one change and one `config-change`. If it refuses one value, it sets none. `KnobValues<CONFIG, ID>` types the values by id
136
+ - map: `StylingFoundationsModuleConfig` nests each setting along its id, as every other module does: `{ labels: { sizeFactor: 1.2 } }` instead of `{ 'labels.sizeFactor': 1.2 }`. `setKnob`, `setKnobs`, `getKnob`, `resetKnob` and `MapPresetSettings` keep the ids
137
+ - map: `StylingFoundationsModule`'s `updateConfig` merges one level deep, as on every module, so `updateConfig({ colors: { water } })` replaces the colours set before. Set a single colour with `setKnob`. Its `applyConfig` and `updateConfig` no longer check values at run time, as on every module. `setKnob` and `setKnobs` do
138
+ - map: a `KnobTarget` implements `_setKnobValues(values)` instead of `_setKnobValue(id, value)`, and a subclass of `AbstractMapModule` inherits it. For a plugin's own target, `knobValueIn`, `configWithKnobs` and `configWithoutKnob` implement the hooks
139
+ - map-effects: `MapEffectsSettings` is `MapEffectsConfig`, and nests each knob along its id: `new MapEffects(map, { bloom: { intensity: 0.5 } })`. `updateConfig` replaces each effect it names, while `setKnob` and `setKnobs` keep the rest of an effect. The constructor, `applyConfig` and `updateConfig` no longer check values at run time, as on a map module. `setKnob` and `setKnobs` do. The plugin needs SDK 1.0.0-rc.2
140
+ - agent-toolkit: `setMapStyling` reads the styling knobs at their paths, and the plugin needs SDK 1.0.0-rc.2
141
+ - examples: the map effects playground restores its panel from `localStorage` with `setKnobs`
142
+
143
+ - [#2630](https://github.com/tomtom-internal/maps-sdk-js/pull/2630) [`5f5c5dd`](https://github.com/tomtom-internal/maps-sdk-js/commit/5f5c5dd44f4cd8076d1cda3960198d41732707fa) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - The map styling tool sets every map label in a serif or italic typeface through the `labels.typeface` knob
144
+
145
+ - [#2614](https://github.com/tomtom-internal/maps-sdk-js/pull/2614) [`fe596fc`](https://github.com/tomtom-internal/maps-sdk-js/commit/fe596fcb2d1c5a05dddb77547f48debc1b856a12) Thanks [@JulianChinAFoeng-TomTom](https://github.com/JulianChinAFoeng-TomTom)! - tests: each package's unit test run now fails when its coverage drops below the goals in `TESTING.md`
146
+
147
+ ## 0.15.0
148
+
149
+ ### Minor Changes
150
+
151
+ - [#2511](https://github.com/tomtom-internal/maps-sdk-js/pull/2511) [`0a2544c`](https://github.com/tomtom-internal/maps-sdk-js/commit/0a2544ce8d10e4c41f94da113bef97e972646c23) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - **Breaking:** `setLayerProperties` replaces `setPaintProperties` and `setLayoutProperties`, `setMapStyling` lists only the knobs a turn touches, and it styles the layers the agent drew
152
+ - `setMapStyling` sets the look knobs of every layer the agent drew, shown now or later: `places.*`, `routes.*` (sections included), `geometries.*`, `ranges.*`, `traffic.areaAnalytics.*` and `traffic.incidentDetails.*`; showing them, the marker type and the fill style stay with the display tools
153
+ - `updateRoutesDisplay` drops `color`, now `setMapStyling({ set: { 'routes.color': … } })`; `RoutingState.color` and `setColor` give way to `RoutingState.knobs`
154
+ - `updateTrafficAreaAnalyticsDisplay` drops `mode`, `metric`, `palette`, `scaleMode`, `maxHeightMeters`, `metersPerUnit` and `filter`, now the `traffic.areaAnalytics.*` knobs
155
+ - Each entry slice holds its modules' look as a `SliceKnobs`, such as `state.routing.knobs` and `state.places.geometriesKnobs`
156
+ - Showing a custom geometries or places entry in another fill style keeps the styling set on its module
157
+ - `setLayerProperties({ changes: [{ layerId, paint?, layout? }] })` sets both kinds of property on a style layer in one call
158
+ - `setMapStyling` is scopable: the classifier picks the knob families a turn touches (`look`, `baseMap`, `pois`, `trafficFlow`, `trafficIncidents`, `terrain`, `places`, `routes`, `geometries`, `ranges`, `trafficAreaAnalytics`, `trafficIncidentDetails`), and its `set` parameter lists only their ids, while any id stays settable
159
+ - An unknown knob id is refused with the closest ids, such as `did you mean pois.label.color?`
160
+ - The default tools count 51
161
+ - New example prompts cover planned roadworks, analytics recolouring, the dark styles, incident descriptions in another language and geopolitical views
162
+
163
+ ### Patch Changes
164
+
165
+ - [#2517](https://github.com/tomtom-internal/maps-sdk-js/pull/2517) [`49611d0`](https://github.com/tomtom-internal/maps-sdk-js/commit/49611d0ac91dc0b584e3d059d1f654208bdead6c) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - The README installs every peer dependency, `@tomtom-org/maps-sdk-plugin-map-theme` included
166
+ - `@ai-sdk/react` is listed for the `useChat` example
167
+ - The example links open the docs portal rather than a path outside the package
168
+ - The `ToolEntry` shape lists the scope, loop-control and `execute` options fields
169
+
170
+ ## 0.14.0
171
+
172
+ ### Minor Changes
173
+
174
+ - [#2502](https://github.com/tomtom-internal/maps-sdk-js/pull/2502) [`4f211b4`](https://github.com/tomtom-internal/maps-sdk-js/commit/4f211b42c5fd6f1eb8806e9c6f4d87ca53d4c860) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - **Breaking:** `setMapStyling` shows, hides and filters the base map, its POIs and the live traffic overlays by knob id, replacing the four `toggleTiles*` tools
175
+ - `toggleTilesBaseMapLayerGroups` is `setMapStyling` with `visible` and `groups.<group>.visible`
176
+ - `toggleTilesPOIs` is `pois.visible` and `pois.filters.categories.show` / `.values`
177
+ - `toggleTilesTrafficFlow` and `toggleTilesTrafficIncidents` are `traffic.flow.visible` and `traffic.incidents.visible`, with their `filters.*` knobs
178
+ - `setMapStyling({ reset: true })` resets what the map shows too, not only its look
179
+ - The default tools count 52
180
+ - `traffic.incidents.timeValidity` brings the planned incidents onto the overlay too
181
+
182
+ - [#2505](https://github.com/tomtom-internal/maps-sdk-js/pull/2505) [`308c3af`](https://github.com/tomtom-internal/maps-sdk-js/commit/308c3af3a5375b12293b2018413f4f78286739d6) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - **Breaking:** map: the last config properties and knob ids off the shared vocabulary follow it: a size preset is a `*Preset`, a fill style sits under `fill`, and a unit is named once
183
+ - map: `GeometriesModule` and `ReachableRangesModule` take `fill: { style }` instead of `fillStyle`, and `TrafficAreaAnalyticsModule` `regionPolygon: { fill: { style } }` instead of `regionPolygon.fillStyle`; a feature's `properties.fillStyle` stays
184
+ - map: `RoutingModule` `width`, `sections.<type>.width` and `waypoints.size` are `widthPreset`, `sections.<type>.widthPreset` and `waypoints.sizePreset`
185
+ - map: `PlacesModule` `cluster.source` takes `radius`, `maxZoom`, `minPoints` and `properties` instead of MapLibre's `clusterRadius`, `clusterMaxZoom`, `clusterMinPoints` and `clusterProperties`, typed by `PlacesClusterSourceConfig`
186
+ - map: `PlacesModule` `label.offset` is `label.distance`, since an `offset` is an `[x, y]` displacement on every module
187
+ - map: `TrafficAreaAnalyticsModule` `height.maxHeightMeters` and `height.minHeightMeters` are `height.maxMeters` and `height.minMeters`, in `setHeight` too
188
+ - map: each renamed property's knob id follows it
189
+ - agent-toolkit: the tools keep their parameters, and the plugin needs SDK 1.0.0-rc.0
190
+
191
+ - [#2507](https://github.com/tomtom-internal/maps-sdk-js/pull/2507) [`9ab7e7c`](https://github.com/tomtom-internal/maps-sdk-js/commit/9ab7e7c4e5e97950f9c6ba06ff228ac99393a3d4) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - **Breaking:** map: each standard style ID is the Orbis style it loads, in camelCase
192
+ - map: `standardLight`, `standardDark`, `drivingLight`, `drivingDark` and `satellite` are `streetLight`, `streetDark`, `streetLightDriving`, `streetDarkDriving` and `streetSatellite`; `monoLight` and `monoDark` stay
193
+ - agent-toolkit: `setMapStandardStyle` takes the new IDs, `resetState` reverts to `streetLight`, and the plugin needs SDK 1.0.0-rc.0
194
+ - map-theme, landmarks-3d: their docs name the new IDs
195
+
196
+ ### Patch Changes
197
+
198
+ - [#2500](https://github.com/tomtom-internal/maps-sdk-js/pull/2500) [`d19d11d`](https://github.com/tomtom-internal/maps-sdk-js/commit/d19d11d41546bac2dd870560b9508bb0b3a2ce2a) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - The `maplibre-gl` peer dependency moves up to `^6.12.0`
199
+
200
+ - [#2495](https://github.com/tomtom-internal/maps-sdk-js/pull/2495) [`530b895`](https://github.com/tomtom-internal/maps-sdk-js/commit/530b8955ebe0d6724b9dc14d5a0d08a37e4b4df8) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - The route schema the model reads no longer lists the EV and fuel consumption fields the SDK dropped from route summaries
201
+
202
+ - [#2502](https://github.com/tomtom-internal/maps-sdk-js/pull/2502) [`4f211b4`](https://github.com/tomtom-internal/maps-sdk-js/commit/4f211b42c5fd6f1eb8806e9c6f4d87ca53d4c860) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - The agent can show disputed borders from a country's view, turn on 3D terrain, and answer tolls, ferries and traffic delay questions from a route
203
+ - New default tool `setGeopoliticalView`, which sets the view on the map and for the searches that follow
204
+ - `setMapStyling` takes every terrain knob: `terrain.hillshade.visible`, `terrain.elevation.visible` and `terrain.elevation.exaggeration` too
205
+ - Route summaries carry `sectionCounts` (toll roads, ferries, traffic…) and the `countries` crossed, and `setRoute` requests the free-flow, historic and live-traffic travel times
206
+ - A tool whose TomTom service or map call fails returns the `SDKErrorCode` as `code`, and its error text says whether retrying helps
207
+ - `updateTrafficAreaAnalyticsDisplay` colours by `freeFlowSpeed` and `networkLength` too
208
+
209
+ - [#2489](https://github.com/tomtom-internal/maps-sdk-js/pull/2489) [`640b53b`](https://github.com/tomtom-internal/maps-sdk-js/commit/640b53bf1c0ea20ce996053ee2f1a664310a381d) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - `recallState` and `setMapStyling` read the map style as a standard style, the only kind the SDK loads
210
+ - `recallState`'s `mapStyle` is always `{ id }`, one of `standardStyleIDs`: `streetLight` for a map created without a `style`, instead of `null`
211
+ - `setMapStyling` switches a map created without a `style` to `streetDark` when a theme comes out dark, as it does for an explicit `streetLight`
212
+
213
+ - [#2512](https://github.com/tomtom-internal/maps-sdk-js/pull/2512) [`f8e49db`](https://github.com/tomtom-internal/maps-sdk-js/commit/f8e49dbf1876097b2a0c62cf5e6c1e1feb494178) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - **Breaking:** map: the sky, space, incident delay and hillshade knobs are named as every other knob is: a part's settings sit under it, and no name repeats its parent
214
+ - map: `StylingFoundationsModule` knob ids `view.sky`, `view.skyColor`, `view.horizonColor` and `view.spaceColor` are `view.sky.visible`, `view.sky.color`, `view.sky.horizonColor` and `view.space.color`, in `styleColorKnobIds`, `getStyleColor` and map presets too
215
+ - map: `TrafficIncidentsModule` `filters: { delays: { mustHaveDelay, minDelayMinutes } }` is `filters: { delays: { required, minMinutes } }`, and the knob ids follow
216
+ - map: `TerrainModule` `hillshade: { lightDirection, exaggeration, shadowColor, highlightColor, accentColor }` is `hillshade: { light: { direction }, intensity, colors: { shaded, lit, steep } }`, and the knob ids follow, in `styleColorKnobIds` and `getStyleColor` too; `exaggeration` is now only the raised surface's vertical scale
217
+ - agent-toolkit: `setMapStyling`'s globe example sets `view.sky.visible`
218
+
219
+ - [#2506](https://github.com/tomtom-internal/maps-sdk-js/pull/2506) [`12099bd`](https://github.com/tomtom-internal/maps-sdk-js/commit/12099bdc040f3ce2d3990266bfb42024cda7956c) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - The package ships without source maps, so a stack trace through the plugin points into its minified bundle
220
+ - An app's own source maps still lead a trace to the plugin's frames (`dist/index.es.js:1:2345`); share such a trace in a report and TomTom maps it back to the source
221
+
222
+ ## 0.13.0
223
+
224
+ ### Minor Changes
225
+
226
+ - [#2477](https://github.com/tomtom-internal/maps-sdk-js/pull/2477) [`5b00d34`](https://github.com/tomtom-internal/maps-sdk-js/commit/5b00d34ea25ef436fe6ae53fa46b986837e4fcf7) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - **Breaking:** map: CustomGeoJSONModule places its layers with `beforeLayerConfig`, as every other module does, and can still put a layer below any layer outside the style
227
+ - map: a layer's `beforeID: mapStyleLayerIDs.lowestLabel` is `beforeLayerConfig: 'lowestLabel'`; `beforeLayerConfig: { layerID }` goes below another layer, such as one of this or another module's
228
+ - map: `beforeLayerConfig` on the module places every layer that sets none, `'top'` by default
229
+ - agent-toolkit: `setByodLayers` keeps its `beforeID` parameter and needs SDK 0.64.0
230
+
231
+ ### Patch Changes
232
+
233
+ - [#2479](https://github.com/tomtom-internal/maps-sdk-js/pull/2479) [`b6ec343`](https://github.com/tomtom-internal/maps-sdk-js/commit/b6ec3438fb953ba344dbdc5a9c3cf5c0c4190e03) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - agent-toolkit: `createMapAgent`'s `tools` option and `resolveTools` accept any `ToolDefinition`, so `DEFAULT_TOOLS` values and `ToolEntryBuilder`s type-check without a cast
234
+ - Updated dependencies:
235
+ - @tomtom-org/maps-sdk@0.64.0
236
+ - @tomtom-org/maps-sdk-plugin-map-theme@0.3.0
237
+
238
+ ## 0.12.0
239
+
240
+ ### Minor Changes
241
+
242
+ - [#2466](https://github.com/tomtom-internal/maps-sdk-js/pull/2466) [`9959fff`](https://github.com/tomtom-internal/maps-sdk-js/commit/9959fffc945a70012a8f8c6b2cbd69ce46cbf274) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - **Breaking:** map: whole base-map layer groups are `BaseMapModule`'s alone; the StylingModule knobs `basemap.<group>`, `buildings.footprints`, `buildings.3d` and `roads.shields` are gone
243
+ - map: show or hide a group with `baseMap.setVisible(visible, { layerGroups: { show: 'only', values: ['buildings3D'] } })`, or `setKnob(baseMap, baseMapKnobCatalogue, 'groups.buildings3D.visible', true)`
244
+ - map: the `data-viz`, `night-driving` and `minimal` presets no longer show or hide the building groups and the road shields
245
+ - agent-toolkit: the `toggleTilesBaseMapLayerGroups` tool shows and hides whole groups, or the whole base map, and reports which groups are hidden; `setMapStyling` no longer takes the group knobs
246
+
247
+ - [#2466](https://github.com/tomtom-internal/maps-sdk-js/pull/2466) [`9959fff`](https://github.com/tomtom-internal/maps-sdk-js/commit/9959fffc945a70012a8f8c6b2cbd69ce46cbf274) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - **Breaking:** map-effects: `bloom.only` names the style colour knobs by their map-wide ids (`'traffic.incidents.colors.major'`, `'pois.label.color'`), and `StylingColorKnobGroup` is `StyleColorKnobGroup`
248
+ - map-effects: the scope reads the colours with the SDK's `getStyleColor`, so it no longer needs a `StylingFoundationsModule` on the map
249
+ - agent-toolkit: `setMapStyling` sets the look knobs on the module owning each (Styling, BaseMap road markings, POIs, traffic flow and incidents, the terrain hillshade) by its map-wide id, and its `preset` applies a map preset with `applyMapPreset`
250
+
251
+ - [#2466](https://github.com/tomtom-internal/maps-sdk-js/pull/2466) [`9959fff`](https://github.com/tomtom-internal/maps-sdk-js/commit/9959fffc945a70012a8f8c6b2cbd69ce46cbf274) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - **Breaking:** map: `StylingModule` is `StylingFoundationsModule`, the name of what it holds now that every other module styles its own layers
252
+ - map: its types and catalogue follow: `StylingFoundationsModuleConfig`, `StylingFoundationsEvents`, `StylingFoundationsKnob`, `StylingFoundationsKnobId`, `StylingFoundationsKnobKind`, `StylingFoundationsKnobRange`, `StylingFoundationsKnobValue`, `StylingFoundationsKnobValueOf`, `StylingFoundationsKnobAppliesTo`, `stylingFoundationsKnobCatalogue`, `stylingFoundationsKnobIds`, `stylingFoundationsKnobKinds` and `stylingFoundationsKnobAppliesTo`
253
+ - agent-toolkit: the base-map state's `getStylingModule()` is `getStylingFoundationsModule()`
254
+
255
+ ### Patch Changes
256
+
257
+ - [#2472](https://github.com/tomtom-internal/maps-sdk-js/pull/2472) [`40f759a`](https://github.com/tomtom-internal/maps-sdk-js/commit/40f759a77fecb015c15dcab06925c334170fda7d) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - agent-toolkit: the `ai` peer dependency requires `^6.0.300`
258
+
259
+ - [#2466](https://github.com/tomtom-internal/maps-sdk-js/pull/2466) [`9959fff`](https://github.com/tomtom-internal/maps-sdk-js/commit/9959fffc945a70012a8f8c6b2cbd69ce46cbf274) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - **Breaking:** map-effects: `MapEffects` loses `set`, `get` and `reset`: one knob goes through the SDK's `setKnob`, `getKnob` and `resetKnob` with `effectKnobCatalogue`, several through `updateConfig(settings)`, and `resetConfig()` turns everything off
260
+ - map-effects: `applyConfig` checks every value before it replaces any, so a refused value leaves the effects as they were instead of clearing them
261
+ - map-effects: the peer range starts at `@tomtom-org/maps-sdk` 0.63.0
262
+ - agent-toolkit: `setMapStyling` sets and resets knobs through the SDK's `setKnob` and `resetKnob`, and the peer range starts at `@tomtom-org/maps-sdk` 0.63.0
263
+ - Updated dependencies:
264
+ - @tomtom-org/maps-sdk@0.63.0
265
+ - @tomtom-org/maps-sdk-plugin-map-theme@0.2.3
266
+
267
+ ## 0.11.0
268
+
269
+ ### Minor Changes
270
+
271
+ - [#2405](https://github.com/tomtom-internal/maps-sdk-js/pull/2405) [`bcf52f2`](https://github.com/tomtom-internal/maps-sdk-js/commit/bcf52f23bd3a5bd365df02249776d9a84f6b9b01) Thanks [@JulianChinAFoeng-TomTom](https://github.com/JulianChinAFoeng-TomTom)! - **Breaking:** getCurrentLocation sends the model the user's position rounded to about 100 m by default, and `createGetCurrentLocationTool({ fullPrecision: true })` builds the tool that sends the exact one.
272
+
273
+ - **Breaking:** getCurrentLocation: the position is rounded to 3 decimals (about 100 m), `accuracy` is at least 111 m and `timestamp` is left out, from a fix that is not high-accuracy and up to 60 s old. Replace the default with `createGetCurrentLocationTool({ fullPrecision: true })` for the exact, high-accuracy position and its timestamp
274
+ - `createGetCurrentLocationTool` builds the getCurrentLocation tool, and `GetCurrentLocationToolOptions` names its `fullPrecision` option
275
+
276
+ - [#2425](https://github.com/tomtom-internal/maps-sdk-js/pull/2425) [`d4bae68`](https://github.com/tomtom-internal/maps-sdk-js/commit/d4bae6859816468374f9747f6e46a14fe8b931b2) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - **Breaking:** `updateTrafficAreaAnalyticsDisplay` takes `palette` for `colorTheme`, and `maxHeightMeters` or `metersPerUnit` for `heightScale`
277
+
278
+ - updateTrafficAreaAnalyticsDisplay: **Breaking:** `colorTheme` is `palette`, which takes the SDK's `areaAnalyticsPalettes`. Migrate `colorTheme: 'heat'` to `palette: 'heat'`
279
+ - updateTrafficAreaAnalyticsDisplay: **Breaking:** `heightScale` is `maxHeightMeters`, the tallest cell's height under the `predefinedRange` and `currentRange` scale modes, and `metersPerUnit` sets the metres per unit of the metric under `raw`, which it switches to; a call that sets both, or one with the other's `scaleMode`, is refused. Migrate `heightScale: 200` to `maxHeightMeters: 200`
280
+ - updateTrafficAreaAnalyticsDisplay: the `scaleMode` description names `predefinedRange` as the default, the one the SDK applies
281
+ - The peer dependency on `@tomtom-org/maps-sdk` is the range `>=0.62.0 <1.0.0`, the first release with `areaAnalyticsPalettes`, `setPalette` and `metersPerUnit`
282
+
283
+ ### Patch Changes
284
+
285
+ - [#2427](https://github.com/tomtom-internal/maps-sdk-js/pull/2427) [`9affb66`](https://github.com/tomtom-internal/maps-sdk-js/commit/9affb66951216905481851de1175f487eb808e2e) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - The README's `useChat` snippet and the `createMapAgent` example compile against `ai@6`, and the README's tool tables list exactly the tools in `DEFAULT_TOOLS`.
286
+
287
+ - [#2431](https://github.com/tomtom-internal/maps-sdk-js/pull/2431) [`4bbf37d`](https://github.com/tomtom-internal/maps-sdk-js/commit/4bbf37d567b98811dc2175e9c3f8c571d65867bf) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - Fixes:
288
+ - The traffic incident tools show incidents with `TrafficIncidentDetailsModule`, and the styling tools read the style with `getStyleInput()`
289
+
290
+ - [#2429](https://github.com/tomtom-internal/maps-sdk-js/pull/2429) [`092c6cd`](https://github.com/tomtom-internal/maps-sdk-js/commit/092c6cdd0d1e8d4b3f2aa1c22886ca655980fc8b) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - The peer dependency on `@tomtom-org/maps-sdk` is the range `>=0.62.0 <1.0.0`, the first release whose map modules change their settings through `updateConfig` and filter area analytics with `setFilters`.
291
+
292
+ - [#2436](https://github.com/tomtom-internal/maps-sdk-js/pull/2436) [`a4e54b1`](https://github.com/tomtom-internal/maps-sdk-js/commit/a4e54b1ae883341adfd6eeb3511a0f9f1b3fd9c1) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - findReachableAreas draws its ranges with the SDK's `ReachableRangesModule`, so their bands take the map's accent and land colours and follow a theme the agent sets
293
+
294
+ - `RangeState.getEntryRangesModule` returns the entry's `ReachableRangesModule`; `getEntryGeometriesModule` now returns a plain `GeometriesModule` for drawing the entry's polygons in a style of your own, cleared with the entry; a later call changes only its fill style, keeping the styling applied since
295
+ - `resetState` clears each ranges entry's geometries module too
296
+ - Place boundaries and custom geometries draw in the map's accent instead of one rainbow colour each, as the SDK's `fillStyledGeometryConfig` no longer has a default palette; outlined ones keep a neutral grey border
297
+ - Updated dependencies:
298
+ - @tomtom-org/maps-sdk@0.62.0
299
+ - @tomtom-org/maps-sdk-plugin-map-theme@0.2.2
300
+
301
+ ## 0.10.1
302
+
303
+ ### Patch Changes
304
+
305
+ - [#2248](https://github.com/tomtom-internal/maps-sdk-js/pull/2248) [`266202b`](https://github.com/tomtom-internal/maps-sdk-js/commit/266202bba8b3bf2db74b7c17e53d50654284e475) Thanks [@carlosprietofernandez-tomtom](https://github.com/carlosprietofernandez-tomtom)! - `discoverPlaces` resolves category words to their best-ranked POI categories, at most 10 per search.
306
+
307
+ - discoverPlaces: a natural-language `poiCategories` term resolves to at most three of the categories the SDK's ranked `getPOICategoryCodes` filter returns first, instead of every category whose name or synonym contains it, so "café" no longer searches truck stops ("Transport Café")
308
+ - discoverPlaces: a search holds at most 10 category codes, the exact codes first and then each term's best match in turn, since the Places API rejects more; "bar" alone used to expand to 15
309
+ - getPOICategoryCodes: returns each filter's best-matching categories through the SDK's ranked `filters`, so "bar" gives Bar rather than every category holding the word
310
+ - `getViewportBias`, `MIN_VIEWPORT_BIAS_ZOOM`, `locatePlace` and `QueryAs` are documented for custom tools that resolve a place near the map view
311
+
312
+ - [#2389](https://github.com/tomtom-internal/maps-sdk-js/pull/2389) [`04ee5de`](https://github.com/tomtom-internal/maps-sdk-js/commit/04ee5de36942abebd8d59f111925dc83d3056340) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - `discoverPlaces` resolves its `poiCategories` words in one `resolvePOICategories` lookup and lists the words nothing matched.
313
+
314
+ - discoverPlaces: `poiCategories` resolves through the SDK's `resolvePOICategories` in one lookup across all inputs, so a category ranked below a matched parent is left out as the parent already covers it
315
+ - discoverPlaces: `unmatchedPoiCategories` in the result lists the `poiCategories` inputs left out because nothing matched them, and the error when none matches suggests a broader word or an exact code
316
+ - discoverPlaces: the tool tells the model to pass category words straight in instead of calling `getPOICategoryCodes` first, which no longer runs before it; `getPOICategoryCodes` is described for looking up or listing codes
317
+ - discoverPlaces: a failed category lookup returns a tool error instead of throwing
318
+
319
+ - [#2352](https://github.com/tomtom-internal/maps-sdk-js/pull/2352) [`1882c43`](https://github.com/tomtom-internal/maps-sdk-js/commit/1882c433fee8d2756013291a7e3e35f05424adf3) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - `setRoute`, `addWaypointsToRoute`, `replaceWaypointInRoute`, `removeWaypointsFromRoute` and `discoverPlaces` return `{ error }` with the service's message when the route calculation or the search result handling fails, instead of throwing it past the AI SDK, which showed the chat only "An error occurred."
320
+
321
+ - [#2318](https://github.com/tomtom-internal/maps-sdk-js/pull/2318) [`646c9c9`](https://github.com/tomtom-internal/maps-sdk-js/commit/646c9c99bcf12bb0c3398ac10b96fac2343241ff) Thanks [@carlosprietofernandez-tomtom](https://github.com/carlosprietofernandez-tomtom)! - `getTrafficAreaAnalytics` works in UTC days and hours, and reports the dates the response analysed.
322
+
323
+ - `getTrafficAreaAnalytics` leaves an omitted `endDate` to the SDK default of three days ago, and reports the dates the response analysed, as UTC days, in its summary and entry label
324
+ - `getTrafficAreaAnalytics` tells the model that its `hours` filter and every returned day and hour label are UTC, so it converts from the area's local time, and no longer returns a `timezone` the service never sends
325
+ - The traffic area analytics schema that `analyseData`, `processData` and `clusterIncidents` show the model drops `timezone`, says the region `name` comes only when the request names the region, and describes the UTC `daily`, `hourly` and `average` entries of `timedData`
326
+
327
+ - [#2397](https://github.com/tomtom-internal/maps-sdk-js/pull/2397) [`8a5a28f`](https://github.com/tomtom-internal/maps-sdk-js/commit/8a5a28fb69c567dc3ebc9c6603bb30ee406c1d36) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - `discoverPlaces` in `maxDetour` mode searches along the route with the SDK's `discoverPlaces`, so the toolkit no longer imports `alongRouteSearch`, which the SDK does not export
328
+
329
+ - [#2378](https://github.com/tomtom-internal/maps-sdk-js/pull/2378) [`a245526`](https://github.com/tomtom-internal/maps-sdk-js/commit/a245526b2cebc9ebdc4f5bd57dd8ebc8ecf58ac1) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - The reachable range tools pass `reachableRangeGeometryConfig` its options object, which needs `@tomtom-org/maps-sdk` `>=0.61.0`.
330
+
331
+ - The reachable range tools build their geometry config with the options object `reachableRangeGeometryConfig` takes
332
+ - The `@tomtom-org/maps-sdk` peer dependency requires `>=0.61.0 <1.0.0`, the first release where `reachableRangeGeometryConfig` takes an options object
333
+
334
+ - [#2401](https://github.com/tomtom-internal/maps-sdk-js/pull/2401) [`07d7e52`](https://github.com/tomtom-internal/maps-sdk-js/commit/07d7e52a1de9d5422899175414331dc3b75e72fd) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - `toggleTilesPOIs` rejects a call whose `filterCategories.values` names no POI category or category group, listing the unknown values, rather than passing them to the map
335
+
336
+ - [#2416](https://github.com/tomtom-internal/maps-sdk-js/pull/2416) [`4d2acd0`](https://github.com/tomtom-internal/maps-sdk-js/commit/4d2acd0eba34f2c8386a85b771261f4d1b9b9a10) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - agent-toolkit and map-effects check knob values with the SDK's `validateKnobValue`.
337
+
338
+ - agent-toolkit: `toggleTilesPOIs` checks `filterCategories.values` with the SDK's `validateKnobValue`, so its error names every refused value the way the map does
339
+ - map-effects: `set` checks values with the SDK's `validateKnobValue`, so a `color` knob refuses a string that is no CSS colour, and the peer range starts at `@tomtom-org/maps-sdk` 0.61.0
340
+ - map-effects: every `effectKnobCatalogue` range has `bounds: 'hard'`
341
+
342
+ - [#2338](https://github.com/tomtom-internal/maps-sdk-js/pull/2338) [`9095b5d`](https://github.com/tomtom-internal/maps-sdk-js/commit/9095b5d952788eed8f0c2610a300fafc90b12bba) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - The places tools create and restyle their modules with the SDK's `markerType` and `applyMarkerType`
343
+
344
+ - [#2413](https://github.com/tomtom-internal/maps-sdk-js/pull/2413) [`94e5baa`](https://github.com/tomtom-internal/maps-sdk-js/commit/94e5baaf8399ac8acf62266a8b707f45ac6e4db0) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - The README points to `LICENSE.txt`, as the other plugins' READMEs do
345
+
346
+ - [#2414](https://github.com/tomtom-internal/maps-sdk-js/pull/2414) [`7cfe598`](https://github.com/tomtom-internal/maps-sdk-js/commit/7cfe598e8b7e1096a13399d1a086b11f06116b72) Thanks [@JulianChinAFoeng-TomTom](https://github.com/JulianChinAFoeng-TomTom)! - A new guide, What the agent sends, and where, lists what reaches the model provider each turn, when `getCurrentLocation` reads the user's position, and which URLs `addByodSource` and `setMapStyling` load from the user's browser
347
+ - Updated dependencies:
348
+ - @tomtom-org/maps-sdk@0.61.0
349
+ - @tomtom-org/maps-sdk-plugin-map-theme@0.2.2
350
+
351
+ ## 0.10.0
352
+
353
+ ### Minor Changes
354
+
355
+ - [#2336](https://github.com/tomtom-internal/maps-sdk-js/pull/2336) [`a117660`](https://github.com/tomtom-internal/maps-sdk-js/commit/a11766044b72a7a8128e882fc58b55f151e7db7c) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)!
356
+
357
+ - **Breaking:** The `updateRoutesDisplay` tool's `mainColor` input and output → `color`; `RoutingState.mainColor` → `color` and `RoutingState.setMainColor` → `setColor`
358
+ - The `@tomtom-org/maps-sdk` peer dependency requires `>=0.60.0 <1.0.0`, the first release with the top-level route `color`
359
+
360
+ ### Patch Changes
361
+
362
+ - Updated dependencies:
363
+ - @tomtom-org/maps-sdk@0.60.0
364
+ - @tomtom-org/maps-sdk-plugin-map-theme@0.2.0
365
+
366
+ ## 0.9.0
367
+
368
+ ### Minor Changes
369
+
370
+ - [#2333](https://github.com/tomtom-internal/maps-sdk-js/pull/2333) [`a52f5f0`](https://github.com/tomtom-internal/maps-sdk-js/commit/a52f5f02acfecdfcc1b05800652f6e16037b0a7a) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)!
371
+
372
+ - **Breaking:** `findReachableAreas`, `processData` (`show.customGeometries`, `show.placesGeometries`), `updatePlacesDisplay` (`geometry`), `locatePlace` (`geometry`) and `discoverPlaces` (`geometries`) take `fillStyle` instead of `theme`, as the SDK's `GeometriesModuleConfig` names it
373
+ - **Breaking:** The ranges and custom-geometries entries record the fill style they are shown with in `_shownFillStyle` instead of `_shownTheme`
374
+
375
+ ### Patch Changes
376
+
377
+ - [#2193](https://github.com/tomtom-internal/maps-sdk-js/pull/2193) [`c324ff0`](https://github.com/tomtom-internal/maps-sdk-js/commit/c324ff04afb892a600eda5ca9e6576d380ccc9c7) Thanks [@JulianChinAFoeng-TomTom](https://github.com/JulianChinAFoeng-TomTom)! - The places tools pass their category and area-type restrictions through the SDK's `filters` object ([#2193](https://github.com/tomtom-internal/maps-sdk-js/issues/2193))
378
+
379
+ - [#1903](https://github.com/tomtom-internal/maps-sdk-js/pull/1903) [`84e7d71`](https://github.com/tomtom-internal/maps-sdk-js/commit/84e7d717ea57c122dcbe49eb0ed9bebd10eae6e9) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - The `createTracker` and `getTrackerHistory` tools pass SonarQube analysis, with unchanged behaviour ([#1903](https://github.com/tomtom-internal/maps-sdk-js/issues/1903))
380
+
381
+ - [#2101](https://github.com/tomtom-internal/maps-sdk-js/pull/2101) [`f066146`](https://github.com/tomtom-internal/maps-sdk-js/commit/f066146bed70481f8bb3c705b808bda634b7b905) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)!
382
+
383
+ - `setMapStyling({ theme })` also returns the theme's `accent` in `themeColors`, and a themed map recolours the routes and place pins the agent drew unless it set a colour for them
384
+ - The peer dependencies are `@tomtom-org/maps-sdk` `>=0.59.0 <1.0.0` and `@tomtom-org/maps-sdk-plugin-map-theme` `>=0.2.0`, the first releases with the accent
385
+
386
+ - [#2334](https://github.com/tomtom-internal/maps-sdk-js/pull/2334) [`1fa401b`](https://github.com/tomtom-internal/maps-sdk-js/commit/1fa401bb7a7ab40061caad66651ee509f96c44be) Thanks [@carlosprietofernandez-tomtom](https://github.com/carlosprietofernandez-tomtom)! - `recallState` for a traffic area analytics entry lists only the region names the response has, instead of one `undefined` per region, and the traffic area analytics schema the data tools hand the model marks `name` and `timezone` optional ([#2334](https://github.com/tomtom-internal/maps-sdk-js/issues/2334))
387
+ - Updated dependencies:
388
+ - @tomtom-org/maps-sdk-plugin-map-theme@0.2.0
389
+
390
+ ## 0.8.0
391
+
392
+ ### Minor Changes
393
+
394
+ - [#2216](https://github.com/tomtom-internal/maps-sdk-js/pull/2216) [`5bfbe75`](https://github.com/tomtom-internal/maps-sdk-js/commit/5bfbe75ec9517789c8624fd2ede1034590e51d48) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - **Breaking:** the POI filter mode is `'all-except'` instead of `'all_except'`, in `toggleTilesPOIs`'s input and `recallState`'s output, following the SDK's `FilterShowMode`
395
+
396
+ - [#2223](https://github.com/tomtom-internal/maps-sdk-js/pull/2223) [`e0417a9`](https://github.com/tomtom-internal/maps-sdk-js/commit/e0417a900d9954567180fe96325160f484563c7e) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - **Breaking:** The `describeMapStyling` tool is removed. `setMapStyling`'s schema now names every knob id with the range or values it accepts, so the model needs no separate call before setting one.
397
+
398
+ ### Patch Changes
399
+
400
+ - [#2232](https://github.com/tomtom-internal/maps-sdk-js/pull/2232) [`f7e1c3e`](https://github.com/tomtom-internal/maps-sdk-js/commit/f7e1c3e534cabefd56d09a03ae68bf8b5c90ed06) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - The README's example links point at `examples/map-traffic-agent-react`, which the public repository ships, instead of an internal-only example ([#2232](https://github.com/tomtom-internal/maps-sdk-js/issues/2232))
401
+
402
+ - [#2217](https://github.com/tomtom-internal/maps-sdk-js/pull/2217) [`8eff899`](https://github.com/tomtom-internal/maps-sdk-js/commit/8eff899c713586296529fb22a4c84f3663fa0859) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - The `maplibre-gl` peer dependency requires `^6.11.2`, `zod` `^4.6.5` and `ai` `^6.0.291`
403
+
404
+ - [#2213](https://github.com/tomtom-internal/maps-sdk-js/pull/2213) [`115f8a4`](https://github.com/tomtom-internal/maps-sdk-js/commit/115f8a48dbea201145da4bec3bb8e50d90ddc0ab) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - The routes schema the model reads describes a street name as `{ text }`, following the SDK dropping phonetic transcriptions from route guidance ([#2213](https://github.com/tomtom-internal/maps-sdk-js/issues/2213))
405
+
406
+ - [#2242](https://github.com/tomtom-internal/maps-sdk-js/pull/2242) [`8d48ac8`](https://github.com/tomtom-internal/maps-sdk-js/commit/8d48ac87c76270554b67340495318b0f8bb167b2) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - services: the TSDoc of reachable ranges, Long Distance EV Routing, EV charging stations availability and traffic area analytics says which API key access each needs; reachable ranges are marked as a private preview
407
+
408
+ - [#2189](https://github.com/tomtom-internal/maps-sdk-js/pull/2189) [`834257b`](https://github.com/tomtom-internal/maps-sdk-js/commit/834257b27bee5c60e1cc1782a466d7f6a6f5f8d8) Thanks [@JulianChinAFoeng-TomTom](https://github.com/JulianChinAFoeng-TomTom)! - The places tools search through the SDK's `discoverPlaces`, and the category codes their schemas name are the SDK's Places Search v3 ones — `CHARGING_LOCATION`, `FUEL_STATION`, `SUPERMARKET`, `PARK_AND_RECREATION_AREA` ([#2189](https://github.com/tomtom-internal/maps-sdk-js/issues/2189))
409
+
410
+ - [#2094](https://github.com/tomtom-internal/maps-sdk-js/pull/2094) [`ddd6a97`](https://github.com/tomtom-internal/maps-sdk-js/commit/ddd6a9749bc140ba90fbc6abf8e6bf648b64db9a) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)!
411
+
412
+ - `setMapStyling` takes a `theme: { colors | imageUrl, mode }` and returns the resolved `themeColors`, so a conversation can theme the map from a brand, a website, an artist or a mood; a theme that comes out the other light or dark than the standard style switches to its variant first, reported as `switchedStyle`
413
+ - `@tomtom-org/maps-sdk-plugin-map-theme` is a new peer dependency, behind `setMapStyling({ theme })`
414
+ - Updated dependencies:
415
+ - @tomtom-org/maps-sdk@0.58.0
416
+ - @tomtom-org/maps-sdk-plugin-map-theme@0.1.0
417
+
418
+ ## 0.7.0
419
+
420
+ ### Minor Changes
421
+
422
+ - [#2092](https://github.com/tomtom-internal/maps-sdk-js/pull/2092) [`a8d3fde`](https://github.com/tomtom-internal/maps-sdk-js/commit/a8d3fdef60c84278dc9f1c326d390aaed2af7154) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - **Breaking:** `toggleTilesBaseMapLayerGroups` is removed: `setMapStyling` covers the base-map layer groups as `basemap.<group>` knobs, and the building groups as `buildings.footprints` / `buildings.3d`
423
+
424
+ - [#2056](https://github.com/tomtom-internal/maps-sdk-js/pull/2056) [`892139d`](https://github.com/tomtom-internal/maps-sdk-js/commit/892139d642f4e78cfe061ea246452effab171ea0) Thanks [@AlvaroGraca-TomTom](https://github.com/AlvaroGraca-TomTom)! - **Breaking:** `BaseMapState.getHillshadeModule` is removed, with the SDK's `HillshadeModule`
425
+
426
+ ### Patch Changes
427
+
428
+ - [#2100](https://github.com/tomtom-internal/maps-sdk-js/pull/2100) [`2f9aa90`](https://github.com/tomtom-internal/maps-sdk-js/commit/2f9aa90eae8bed1d90fd16388664f577b65b0c1c) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - Recolouring a shown route or hiding its summary bubbles goes through the SDK's `updateConfig`, so it needs the SDK release that ships it ([#2100](https://github.com/tomtom-internal/maps-sdk-js/issues/2100))
429
+ - Updated dependencies:
430
+ - @tomtom-org/maps-sdk@0.57.0
431
+
432
+ ## 0.6.1
433
+
434
+ ### Patch Changes
435
+
436
+ - [#2188](https://github.com/tomtom-internal/maps-sdk-js/pull/2188) [`9e1d080`](https://github.com/tomtom-internal/maps-sdk-js/commit/9e1d080397ee2d16b6185873661890e5a81f7b65) Thanks [@AlvaroGraca-TomTom](https://github.com/AlvaroGraca-TomTom)!
437
+
438
+ - setMapStyling: the tool describes and demonstrates the ten map colours (`colors.*`) of the SDK styling API
439
+ - discoverPlaces and the shared place schemas follow the places GA search API
440
+ - Accept every SDK release below 1.0: the peer dependency on `@tomtom-org/maps-sdk` is the range `>=0.55.1 <1.0.0` instead of an exact version
441
+ - Updated dependencies:
442
+ - @tomtom-org/maps-sdk@0.56.0
443
+
444
+ ## [0.6.0](https://github.com/tomtom-internal/maps-sdk-js/compare/maps-sdk-plugin-agent-toolkit-v0.5.4...maps-sdk-plugin-agent-toolkit-v0.6.0) (2026-09-21)
445
+
446
+
447
+ ### ⚠ BREAKING CHANGES
448
+
449
+ * **map:** precise types for custom styles, places props and traffic data ([#2161](https://github.com/tomtom-internal/maps-sdk-js/issues/2161))
450
+ * **services:** replace flat geo-bias fields with a single geoBias option ([#2158](https://github.com/tomtom-internal/maps-sdk-js/issues/2158))
451
+ * **routing:** phase 3 — land the response data v3 already returns ([#2077](https://github.com/tomtom-internal/maps-sdk-js/issues/2077))
452
+ * **map:** styling GA phase 0 - resetState, awaited lifecycle, custom themes ([#2088](https://github.com/tomtom-internal/maps-sdk-js/issues/2088))
453
+ * **map:** add more dark theme styling ([#2108](https://github.com/tomtom-internal/maps-sdk-js/issues/2108))
454
+ * **routing:** drop the circle waypoint the API never had ([#2109](https://github.com/tomtom-internal/maps-sdk-js/issues/2109))
455
+ * **map:** scoped module events and per-map shared style modules (lsi-159) ([#2062](https://github.com/tomtom-internal/maps-sdk-js/issues/2062))
456
+ * **map:** replace get() with create() on data-owned map modules ([#2058](https://github.com/tomtom-internal/maps-sdk-js/issues/2058))
457
+
458
+ ### Features
459
+
460
+ * **map:** add more dark theme styling ([#2108](https://github.com/tomtom-internal/maps-sdk-js/issues/2108)) ([b53d60a](https://github.com/tomtom-internal/maps-sdk-js/commit/b53d60ae9a75c394605de947b8c84d441f8d6660))
461
+ * **map:** replace get() with create() on data-owned map modules ([#2058](https://github.com/tomtom-internal/maps-sdk-js/issues/2058)) ([9d3d81e](https://github.com/tomtom-internal/maps-sdk-js/commit/9d3d81e349d21ce00368c12462c5919f6d8da491))
462
+ * **map:** scoped module events and per-map shared style modules (lsi-159) ([#2062](https://github.com/tomtom-internal/maps-sdk-js/issues/2062)) ([d91519e](https://github.com/tomtom-internal/maps-sdk-js/commit/d91519e870f2796a9874aa0b10651b7bc350b81e))
463
+ * **map:** styling GA phase 0 - resetState, awaited lifecycle, custom themes ([#2088](https://github.com/tomtom-internal/maps-sdk-js/issues/2088)) ([657e9f7](https://github.com/tomtom-internal/maps-sdk-js/commit/657e9f7b5177404dbe163111b805def0910b07d0))
464
+ * **map:** styling GA phase 1 — StylingModule and the describe() catalogue ([#2089](https://github.com/tomtom-internal/maps-sdk-js/issues/2089)) ([4379765](https://github.com/tomtom-internal/maps-sdk-js/commit/437976535b976b33573002ade2d3611a3013ac28))
465
+ * **map:** styling GA phase 2 - view knobs, presets, map-effects plugin ([#2090](https://github.com/tomtom-internal/maps-sdk-js/issues/2090)) ([a672ffb](https://github.com/tomtom-internal/maps-sdk-js/commit/a672ffbe5f9d2c61e009674e44ac49a4b9e0c980))
466
+ * **routing:** drop the circle waypoint the API never had ([#2109](https://github.com/tomtom-internal/maps-sdk-js/issues/2109)) ([a25365b](https://github.com/tomtom-internal/maps-sdk-js/commit/a25365b8f491cc0b85001386601f2265c4ca05e2))
467
+ * **routing:** phase 3 — land the response data v3 already returns ([#2077](https://github.com/tomtom-internal/maps-sdk-js/issues/2077)) ([d071f02](https://github.com/tomtom-internal/maps-sdk-js/commit/d071f02a30cbe6abf14423dc0309c782480f8a06))
468
+ * **services:** replace flat geo-bias fields with a single geoBias option ([#2158](https://github.com/tomtom-internal/maps-sdk-js/issues/2158)) ([14fdb49](https://github.com/tomtom-internal/maps-sdk-js/commit/14fdb491b1a481ea49e050bee399be570a5120e0))
469
+ * **service:** support request cancellation via AbortSignal ([#2136](https://github.com/tomtom-internal/maps-sdk-js/issues/2136)) ([f2df5e4](https://github.com/tomtom-internal/maps-sdk-js/commit/f2df5e42547e0d4fab79e078f375d419a82dd2a1))
470
+
471
+
472
+ ### Bug Fixes
473
+
474
+ * stop partial route updates clobbering config, give BYOD reset a contract ([#2097](https://github.com/tomtom-internal/maps-sdk-js/issues/2097)) ([e69e37e](https://github.com/tomtom-internal/maps-sdk-js/commit/e69e37ec833f665ec00b1b32835296e4918f9ad9))
475
+
476
+
477
+ ### Code Refactoring
478
+
479
+ * **map:** precise types for custom styles, places props and traffic data ([#2161](https://github.com/tomtom-internal/maps-sdk-js/issues/2161)) ([8f2a9bd](https://github.com/tomtom-internal/maps-sdk-js/commit/8f2a9bd80073cfaa5087e09698167aedebc1acba))
480
+
481
+ ## [0.5.4](https://github.com/tomtom-internal/maps-sdk-js/compare/maps-sdk-plugin-agent-toolkit-v0.5.3...maps-sdk-plugin-agent-toolkit-v0.5.4) (2026-08-25)
482
+
483
+
484
+ ### Bug Fixes
485
+
486
+ * **docs:** correct stale APIs, dead links and drifted contributor docs ([#2053](https://github.com/tomtom-internal/maps-sdk-js/issues/2053)) ([fa3dc7b](https://github.com/tomtom-internal/maps-sdk-js/commit/fa3dc7bab594c685a1235376abb2ac9c386ebb81))
487
+
488
+ ## [0.5.3](https://github.com/tomtom-internal/maps-sdk-js/compare/maps-sdk-plugin-agent-toolkit-v0.5.2...maps-sdk-plugin-agent-toolkit-v0.5.3) (2026-08-24)
489
+
490
+
491
+ ### Bug Fixes
492
+
493
+ * **agent-toolkit:** range-check the sandbox fitOnMap bbox ([6d1c02e](https://github.com/tomtom-internal/maps-sdk-js/commit/6d1c02e5e8d15bcc50c385479e72bddc662dc61c))
494
+
495
+ ## [0.5.2](https://github.com/tomtom-internal/maps-sdk-js/compare/maps-sdk-plugin-agent-toolkit-v0.5.1...maps-sdk-plugin-agent-toolkit-v0.5.2) (2026-08-24)
496
+
497
+
498
+ ### Features
499
+
500
+ * add BaseMapModule appearance API and upgrade maplibre-gl to v6 ([#2035](https://github.com/tomtom-internal/maps-sdk-js/issues/2035)) ([f6b5296](https://github.com/tomtom-internal/maps-sdk-js/commit/f6b52966d456f1f73a9ce9dbe3a7b19eac164bc3))
501
+ * attribute map traffic to the product embedding the SDK ([#2028](https://github.com/tomtom-internal/maps-sdk-js/issues/2028)) ([644089f](https://github.com/tomtom-internal/maps-sdk-js/commit/644089f7921e12caf9405bea715a62e3c7c8aa97))
502
+
503
+
504
+ ### Bug Fixes
505
+
506
+ * **agent-toolkit:** range-check model coordinates and report plugin coverage ([#2048](https://github.com/tomtom-internal/maps-sdk-js/issues/2048)) ([8a4bcde](https://github.com/tomtom-internal/maps-sdk-js/commit/8a4bcde241e0d6339c84d037a547e79ed5be9adc))
507
+
508
+ ## [0.5.1](https://github.com/tomtom-internal/maps-sdk-js/compare/maps-sdk-plugin-agent-toolkit-v0.5.0...maps-sdk-plugin-agent-toolkit-v0.5.1) (2026-08-04)
509
+
510
+
511
+ ### Features
512
+
513
+ * **examples:** move the traffic and site-selection agents to Las Vegas ([#2016](https://github.com/tomtom-internal/maps-sdk-js/issues/2016)) ([4b19cb9](https://github.com/tomtom-internal/maps-sdk-js/commit/4b19cb994fee43e28bead4b6595526679d63e569))
514
+
515
+
516
+ ### Bug Fixes
517
+
518
+ * location resolver selecting subdivision over parent city ([#2024](https://github.com/tomtom-internal/maps-sdk-js/issues/2024)) ([11b44ef](https://github.com/tomtom-internal/maps-sdk-js/commit/11b44ef67f2811b67011a3cdc228e0d105d10736))
519
+
520
+ ## [0.5.0](https://github.com/tomtom-internal/maps-sdk-js/compare/maps-sdk-plugin-agent-toolkit-v0.4.4...maps-sdk-plugin-agent-toolkit-v0.5.0) (2026-07-24)
521
+
522
+
523
+ ### ⚠ BREAKING CHANGES
524
+
525
+ * **map:** improve base map layer groups ([#1966](https://github.com/tomtom-internal/maps-sdk-js/issues/1966))
526
+
527
+ ### Features
528
+
529
+ * **map:** improve base map layer groups ([#1966](https://github.com/tomtom-internal/maps-sdk-js/issues/1966)) ([4bf43b8](https://github.com/tomtom-internal/maps-sdk-js/commit/4bf43b88910378e129ff2ec8d486eaf67a6210b6))
530
+
531
+
532
+ ### Bug Fixes
533
+
534
+ * **agent-toolkit:** surface reverse-geocode no-match as an error ([#1995](https://github.com/tomtom-internal/maps-sdk-js/issues/1995)) ([8582a44](https://github.com/tomtom-internal/maps-sdk-js/commit/8582a4407776e44e7fd5cd28d12411748bc7ed79))
535
+ * chat UX polish, whitespace hex rendering, entry-id collision in toolkit ([#1999](https://github.com/tomtom-internal/maps-sdk-js/issues/1999)) ([c1b97db](https://github.com/tomtom-internal/maps-sdk-js/commit/c1b97dbe0e577918f0c391704632ee76378c23a3))
536
+
537
+ ## [0.4.4](https://github.com/tomtom-internal/maps-sdk-js/compare/maps-sdk-plugin-agent-toolkit-v0.4.3...maps-sdk-plugin-agent-toolkit-v0.4.4) (2026-07-07)
538
+
539
+
540
+ ### Features
541
+
542
+ * **examples:** add byod district prompts and per-district traffic monitoring ([#1978](https://github.com/tomtom-internal/maps-sdk-js/issues/1978)) ([60fe0e8](https://github.com/tomtom-internal/maps-sdk-js/commit/60fe0e8619a1efa7b40c0061aa40293fb89179f1))
543
+
544
+
545
+ ### Bug Fixes
546
+
547
+ * **agent-toolkit:** resolve routing waypoints by place id or entry id ([#1974](https://github.com/tomtom-internal/maps-sdk-js/issues/1974)) ([e73a15f](https://github.com/tomtom-internal/maps-sdk-js/commit/e73a15f8f6d0a7b796b36b5d6a58ee04437e1f70))
548
+ * **agent-toolkit:** ungate scope and cross kind schemas ([#1977](https://github.com/tomtom-internal/maps-sdk-js/issues/1977)) ([6a4cb2e](https://github.com/tomtom-internal/maps-sdk-js/commit/6a4cb2e8925072d301a615bc285b1394af4eb28b))
549
+
550
+ ## [0.4.3](https://github.com/tomtom-internal/maps-sdk-js/compare/maps-sdk-plugin-agent-toolkit-v0.4.2...maps-sdk-plugin-agent-toolkit-v0.4.3) (2026-07-03)
551
+
552
+
553
+ ### Bug Fixes
554
+
555
+ * **agent-toolkit:** unblock npm publishing of the plugin ([#1962](https://github.com/tomtom-internal/maps-sdk-js/issues/1962)) ([b0ae964](https://github.com/tomtom-internal/maps-sdk-js/commit/b0ae9647970ab03e3ed6906b529bdb6c7aba6b3a))
556
+
557
+ ## [0.4.2](https://github.com/tomtom-internal/maps-sdk-js/compare/maps-sdk-plugin-agent-toolkit-v0.4.1...maps-sdk-plugin-agent-toolkit-v0.4.2) (2026-07-03)
558
+
559
+
560
+ ### Features
561
+
562
+ * **examples:** agent telemetry and Azure Monitor observability dashboard ([#1936](https://github.com/tomtom-internal/maps-sdk-js/issues/1936)) ([92893fe](https://github.com/tomtom-internal/maps-sdk-js/commit/92893febbdcb6e1c1617867d1de3f0115c95815b))
563
+
564
+
565
+ ### Bug Fixes
566
+
567
+ * **agent-toolkit:** accept places entry ids in where.placeIds ([#1935](https://github.com/tomtom-internal/maps-sdk-js/issues/1935)) ([5cf934d](https://github.com/tomtom-internal/maps-sdk-js/commit/5cf934ddcabdc9c48ead7c1e6cb530e7fa57a2e2))
568
+ * **agent-toolkit:** guard setMapStandardStyle against accidental style changes ([#1951](https://github.com/tomtom-internal/maps-sdk-js/issues/1951)) ([eed6211](https://github.com/tomtom-internal/maps-sdk-js/commit/eed62110b17efb7fb8b894f3433c97760a68ee5f))
569
+ * **agent-toolkit:** prefer dedicated tools over the MapLibre escape hatch ([#1954](https://github.com/tomtom-internal/maps-sdk-js/issues/1954)) ([a67a548](https://github.com/tomtom-internal/maps-sdk-js/commit/a67a54850c8ac25ed2624e3478137bc16a1d63c5))
570
+ * **agent-toolkit:** validate processData places and trace derived ids ([#1949](https://github.com/tomtom-internal/maps-sdk-js/issues/1949)) ([f820d53](https://github.com/tomtom-internal/maps-sdk-js/commit/f820d535f3b75f2467bed380b78407c87f243cad))
571
+
572
+ ## [0.4.1](https://github.com/tomtom-internal/maps-sdk-js/compare/maps-sdk-plugin-agent-toolkit-v0.4.0...maps-sdk-plugin-agent-toolkit-v0.4.1) (2026-06-30)
573
+
574
+
575
+ ### Features
576
+
577
+ * **agent-toolkit:** expose sandbox data-tool inputs as per-entry records only ([#1890](https://github.com/tomtom-internal/maps-sdk-js/issues/1890)) ([ae53be5](https://github.com/tomtom-internal/maps-sdk-js/commit/ae53be54707aaa063d4a948d42226ae35761a2da))
578
+ * **examples:** unify the agent example UI + clarifyIntent survey wizard ([#1923](https://github.com/tomtom-internal/maps-sdk-js/issues/1923)) ([d1b3e05](https://github.com/tomtom-internal/maps-sdk-js/commit/d1b3e0561134df7e3330ff04f360c1419a59d5ab))
579
+ * **toolkit:** add clarifyIntent tool and add alwaysActive flag to tools ([#1883](https://github.com/tomtom-internal/maps-sdk-js/issues/1883)) ([112a58a](https://github.com/tomtom-internal/maps-sdk-js/commit/112a58abf731faed3df14618f41f0a63ddf57ed1))
580
+ * **traffic-agent:** watched-area highlight, grouped Event tracker, summary follows focus ([#1914](https://github.com/tomtom-internal/maps-sdk-js/issues/1914)) ([54476ec](https://github.com/tomtom-internal/maps-sdk-js/commit/54476ec3415956a960f6013243cf1640f5480c9b))
581
+
582
+
583
+ ### Bug Fixes
584
+
585
+ * **agent-toolkit:** register an empty entry for zero-incident results ([#1924](https://github.com/tomtom-internal/maps-sdk-js/issues/1924)) ([aed58c2](https://github.com/tomtom-internal/maps-sdk-js/commit/aed58c2be416ddfe3369fc6ac8f9991dcbb982a4))
586
+
587
+ ## [0.4.0](https://github.com/tomtom-internal/maps-sdk-js/compare/maps-sdk-plugin-agent-toolkit-v0.3.1...maps-sdk-plugin-agent-toolkit-v0.4.0) (2026-06-24)
588
+
589
+
590
+ ### ⚠ BREAKING CHANGES
591
+
592
+ * **agent-toolkit:** consolidate per-kind recall tools into recallState ([#1868](https://github.com/tomtom-internal/maps-sdk-js/issues/1868))
593
+ * **agent-toolkit:** analysis and incidents clustering improvements ([#1851](https://github.com/tomtom-internal/maps-sdk-js/issues/1851))
594
+ * **traffic, map-display:** migrate to Orbis v2 GA ([#1829](https://github.com/tomtom-internal/maps-sdk-js/issues/1829))
595
+
596
+ ### Features
597
+
598
+ * **agent-toolkit:** `resolvedAreas` — surface where every query resolved ([#1863](https://github.com/tomtom-internal/maps-sdk-js/issues/1863)) ([f89f5cd](https://github.com/tomtom-internal/maps-sdk-js/commit/f89f5cdb1e09362d4d3cef0c33e118a3fe29af42))
599
+ * **agent-toolkit:** analysis and incidents clustering improvements ([#1851](https://github.com/tomtom-internal/maps-sdk-js/issues/1851)) ([c9aa482](https://github.com/tomtom-internal/maps-sdk-js/commit/c9aa4829056ae6779cd88415ff20b30be6f5e26a))
600
+ * **agent-toolkit:** app-supplied URL-validator hook for addByodSource ([#1855](https://github.com/tomtom-internal/maps-sdk-js/issues/1855)) ([b9a38a8](https://github.com/tomtom-internal/maps-sdk-js/commit/b9a38a8263f6d54f8094c507ffa9d36f447686d5))
601
+ * **agent-toolkit:** fold incident monitoring into getTrafficIncidents ([#1847](https://github.com/tomtom-internal/maps-sdk-js/issues/1847)) ([6e63e92](https://github.com/tomtom-internal/maps-sdk-js/commit/6e63e92571f4617f0502b18344a5252c6ee9902c))
602
+ * **agent-toolkit:** generic trackers on the analyses registry ([#1876](https://github.com/tomtom-internal/maps-sdk-js/issues/1876)) ([8d05187](https://github.com/tomtom-internal/maps-sdk-js/commit/8d051871979e9f6ce2b281ae63b06286a56e62ea))
603
+ * **agent-toolkit:** keep untrusted BYOD free-text out of model context ([#1854](https://github.com/tomtom-internal/maps-sdk-js/issues/1854)) ([935c6eb](https://github.com/tomtom-internal/maps-sdk-js/commit/935c6eb12899abe25fe5d5c1dfe42fb474ee5fa0))
604
+ * **agent-toolkit:** monitor routes — periodic live-traffic recalculation ([#1869](https://github.com/tomtom-internal/maps-sdk-js/issues/1869)) ([ca20d3c](https://github.com/tomtom-internal/maps-sdk-js/commit/ca20d3cec0e20dcf247109ff0643b7104ba3ac9c))
605
+ * **agent-toolkit:** sandbox data-tool execution in a browser iframe-worker ([#1857](https://github.com/tomtom-internal/maps-sdk-js/issues/1857)) ([1103cf2](https://github.com/tomtom-internal/maps-sdk-js/commit/1103cf2599379e57b19b7400da053fb7a5d96f73))
606
+ * **agent-toolkit:** split and compact the base system prompt ([#1884](https://github.com/tomtom-internal/maps-sdk-js/issues/1884)) ([bc9ff9e](https://github.com/tomtom-internal/maps-sdk-js/commit/bc9ff9e5146dc92c610be8edaf463e1e3ac28bce))
607
+ * **agent-toolkit:** unify where-resolution ([#1834](https://github.com/tomtom-internal/maps-sdk-js/issues/1834)) ([6720e02](https://github.com/tomtom-internal/maps-sdk-js/commit/6720e026b22b25b0cfe180fa7b811b4fa1daa18c))
608
+ * **traffic, map-display:** migrate to Orbis v2 GA ([#1829](https://github.com/tomtom-internal/maps-sdk-js/issues/1829)) ([6ccd244](https://github.com/tomtom-internal/maps-sdk-js/commit/6ccd2445de3ef4e209b30cdd13009e2408328d80))
609
+
610
+
611
+ ### Reverts
612
+
613
+ * feat(traffic, map-display)!: migrate to Orbis v2 GA ([#1829](https://github.com/tomtom-internal/maps-sdk-js/issues/1829)) ([#1880](https://github.com/tomtom-internal/maps-sdk-js/issues/1880)) ([12ed6b9](https://github.com/tomtom-internal/maps-sdk-js/commit/12ed6b9dcc6b7e2c22d3525aa05f85c1ba6b5e89))
614
+
615
+
616
+ ### Code Refactoring
617
+
618
+ * **agent-toolkit:** consolidate per-kind recall tools into recallState ([#1868](https://github.com/tomtom-internal/maps-sdk-js/issues/1868)) ([a519e1f](https://github.com/tomtom-internal/maps-sdk-js/commit/a519e1f82efc571ef64492e269706482b67b1ef7))
619
+
620
+ ## [0.3.1](https://github.com/tomtom-internal/maps-sdk-js/compare/maps-sdk-plugin-agent-toolkit-v0.3.0...maps-sdk-plugin-agent-toolkit-v0.3.1) (2026-06-10)
621
+
622
+
623
+ ### Features
624
+
625
+ * **agent-toolkit:** deterministic DBSCAN clustering tool ([c1d31b4](https://github.com/tomtom-internal/maps-sdk-js/commit/c1d31b4ddb1e71bf8bcbae5bdc57b3400d9cedcd))
626
+
627
+ ## [0.3.0](https://github.com/tomtom-internal/maps-sdk-js/compare/maps-sdk-plugin-agent-toolkit-v0.2.12...maps-sdk-plugin-agent-toolkit-v0.3.0) (2026-06-04)
628
+
629
+
630
+ ### ⚠ BREAKING CHANGES
631
+
632
+ * **events:** scope + dedupe allEventFeatures, typed substitution
633
+ * **agent-toolkit:** byod improvements ([#1816](https://github.com/tomtom-internal/maps-sdk-js/issues/1816))
634
+
635
+ ### Features
636
+
637
+ * **agent-toolkit:** byod improvements ([#1816](https://github.com/tomtom-internal/maps-sdk-js/issues/1816)) ([4aeddca](https://github.com/tomtom-internal/maps-sdk-js/commit/4aeddca52a1da30cde36f6dbb18ddad689f47f27))
638
+ * **events:** scope + dedupe allEventFeatures, typed substitution ([036c9c4](https://github.com/tomtom-internal/maps-sdk-js/commit/036c9c41be660b92ed80b74cae4b998ce595f94d))
639
+
640
+
641
+ ### Bug Fixes
642
+
643
+ * **agent-toolkit:** add missing [@group](https://github.com/group) tags on exported types ([#1803](https://github.com/tomtom-internal/maps-sdk-js/issues/1803)) ([67f1cf3](https://github.com/tomtom-internal/maps-sdk-js/commit/67f1cf3c383d2e0db544cead55d16a66342ec4c2))
644
+ * **agent-toolkit:** public docs cleanup — links, system-prompt guidance, internal refs ([#1804](https://github.com/tomtom-internal/maps-sdk-js/issues/1804)) ([283fbc9](https://github.com/tomtom-internal/maps-sdk-js/commit/283fbc9f588e261baf1112805f77102b88ce7f5a))
645
+
646
+ ## [0.2.12](https://github.com/tomtom-internal/maps-sdk-js/compare/maps-sdk-plugin-agent-toolkit-v0.2.11...maps-sdk-plugin-agent-toolkit-v0.2.12) (2026-05-22)
647
+
648
+
649
+ ### Features
650
+
651
+ * **agent-toolkit:** expand plugin documentation ([#1793](https://github.com/tomtom-internal/maps-sdk-js/issues/1793)) ([3f55084](https://github.com/tomtom-internal/maps-sdk-js/commit/3f550843ca92b2f08460759b200794e94178e87d))
652
+
653
+
654
+ ### Bug Fixes
655
+
656
+ * **agent-toolkit:** split scenario tests into sanity / full suites ([#1798](https://github.com/tomtom-internal/maps-sdk-js/issues/1798)) ([b9b1fe8](https://github.com/tomtom-internal/maps-sdk-js/commit/b9b1fe8a6dcdf8f6e6fb156a2f251351b04851c9))
657
+ * **agent-toolkit:** stabilize locate-place scenario prompt ([#1795](https://github.com/tomtom-internal/maps-sdk-js/issues/1795)) ([6883269](https://github.com/tomtom-internal/maps-sdk-js/commit/6883269ccfd261c66067de6f8290d28a9dd83b91))
658
+
659
+ ## [0.2.11](https://github.com/tomtom-internal/maps-sdk-js/compare/maps-sdk-plugin-agent-toolkit-v0.2.10...maps-sdk-plugin-agent-toolkit-v0.2.11) (2026-05-21)
660
+
661
+
662
+ ### Bug Fixes
663
+
664
+ * **agent-toolkit:** point README docs link at overview page ([b2aba55](https://github.com/tomtom-internal/maps-sdk-js/commit/b2aba55dccab4109b12a9358bc5003a066926e9b))
665
+
666
+ ## [0.2.10](https://github.com/tomtom-internal/maps-sdk-js/compare/maps-sdk-plugin-agent-toolkit-v0.2.9...maps-sdk-plugin-agent-toolkit-v0.2.10) (2026-05-21)
667
+
668
+
669
+ ### Bug Fixes
670
+
671
+ * engineering guideline updates for agent toolkit ([dd24926](https://github.com/tomtom-internal/maps-sdk-js/commit/dd2492643fc67fc8e7dd3f6247f21569227b5912))
672
+
673
+ ## [0.2.9](https://github.com/tomtom-internal/maps-sdk-js/compare/maps-sdk-plugin-agent-toolkit-v0.2.8...maps-sdk-plugin-agent-toolkit-v0.2.9) (2026-05-21)
674
+
675
+
676
+ ### Features
677
+
678
+ * code generation tools with updated docs ([ef1a7fa](https://github.com/tomtom-internal/maps-sdk-js/commit/ef1a7fac2120e093564afeabd8def3ab7e93dc94))
679
+
680
+ ## [0.2.8](https://github.com/tomtom-internal/maps-sdk-js/compare/maps-sdk-plugin-agent-toolkit-v0.2.7...maps-sdk-plugin-agent-toolkit-v0.2.8) (2026-05-21)
681
+
682
+
683
+ ### Features
684
+
685
+ * upgrade SDK agent toolkit and fix release process ([#1782](https://github.com/tomtom-internal/maps-sdk-js/issues/1782)) ([6e09446](https://github.com/tomtom-internal/maps-sdk-js/commit/6e094469c689dd824a29bfaea9cc67cbe931390d))
686
+
687
+ ## [0.2.7](https://github.com/tomtom-internal/maps-sdk-js/compare/maps-sdk-plugin-agent-toolkit-v0.2.6...maps-sdk-plugin-agent-toolkit-v0.2.7) (2026-05-15)
688
+
689
+
690
+ ### Features
691
+
692
+ * exploration search with area tags ([#1763](https://github.com/tomtom-internal/maps-sdk-js/issues/1763)) ([65327e6](https://github.com/tomtom-internal/maps-sdk-js/commit/65327e66eca351db365b5453e3801b420cee32e4))
693
+
694
+
695
+ ### Bug Fixes
696
+
697
+ * agent toolkit place prompt fixes and clearing unnecessary modules ([#1773](https://github.com/tomtom-internal/maps-sdk-js/issues/1773)) ([1aa1873](https://github.com/tomtom-internal/maps-sdk-js/commit/1aa1873811705077d40af1942d38c4c5bf3d9568))
698
+
699
+ ## [0.2.6](https://github.com/tomtom-internal/maps-sdk-js/compare/maps-sdk-plugin-agent-toolkit-v0.2.5...maps-sdk-plugin-agent-toolkit-v0.2.6) (2026-05-12)
700
+
701
+
702
+ ### Features
703
+
704
+ * agent evaluation testing [LSI-285] ([#1747](https://github.com/tomtom-internal/maps-sdk-js/issues/1747)) ([dd02bec](https://github.com/tomtom-internal/maps-sdk-js/commit/dd02bec020e08b517c2908d2690d8bf0f9ae0aa3))
705
+
706
+
707
+ ### Bug Fixes
708
+
709
+ * upgrade and fix deps ([#1762](https://github.com/tomtom-internal/maps-sdk-js/issues/1762)) ([f5f1f8e](https://github.com/tomtom-internal/maps-sdk-js/commit/f5f1f8ed8d6168f24fdee900f580587fcc434422))
710
+
711
+ ## [0.2.5](https://github.com/tomtom-internal/maps-sdk-js/compare/maps-sdk-plugin-agent-toolkit-v0.2.4...maps-sdk-plugin-agent-toolkit-v0.2.5) (2026-05-11)
712
+
713
+
714
+ ### Features
715
+
716
+ * **agent-toolkit:** live traffic agent ([f16863c](https://github.com/tomtom-internal/maps-sdk-js/commit/f16863c85f99dbebe167c7afe8adc6c8d81fbdb4))
717
+
718
+
719
+ ### Bug Fixes
720
+
721
+ * **traffic-incident-details:** drop non-filterable iconCategory codes ([61d2eb3](https://github.com/tomtom-internal/maps-sdk-js/commit/61d2eb3abadc6d7190a7a69fb55be09761d1f427))
722
+
723
+ ## [0.2.4](https://github.com/tomtom-internal/maps-sdk-js/compare/maps-sdk-plugin-agent-toolkit-v0.2.3...maps-sdk-plugin-agent-toolkit-v0.2.4) (2026-04-30)
724
+
725
+
726
+ ### Features
727
+
728
+ * add managePlaces tool and centralize places display state ([0cc5005](https://github.com/tomtom-internal/maps-sdk-js/commit/0cc50050469f5ae8fa3450afc572c9491346f2e1))
729
+ * improve api reference types, adjust syntax for agent toolkit plugin, and improve agents.md ([9428902](https://github.com/tomtom-internal/maps-sdk-js/commit/9428902605299302fdbb206f22a514e6761d0716))
730
+
731
+
732
+ ### Bug Fixes
733
+
734
+ * LSI-259 Fix tests that were failing because API changed response from 403 to 401 ([#1729](https://github.com/tomtom-internal/maps-sdk-js/issues/1729)) ([6c5c3ec](https://github.com/tomtom-internal/maps-sdk-js/commit/6c5c3ecd3e6c7212266f5d9c63da3d0b0d52b8c3))
735
+
736
+ ## [0.2.3](https://github.com/tomtom-internal/maps-sdk-js/compare/maps-sdk-plugin-agent-toolkit-v0.2.2...maps-sdk-plugin-agent-toolkit-v0.2.3) (2026-04-14)
737
+
738
+
739
+ ### Bug Fixes
740
+
741
+ * update agent toolkit link in readme ([8659362](https://github.com/tomtom-internal/maps-sdk-js/commit/86593623e7e790fdc7c2a89b70d7292076b53aa5))
742
+
743
+ ## [0.2.2](https://github.com/tomtom-internal/maps-sdk-js/compare/maps-sdk-plugin-agent-toolkit-v0.2.1...maps-sdk-plugin-agent-toolkit-v0.2.2) (2026-04-14)
744
+
745
+
746
+ ### Bug Fixes
747
+
748
+ * rename map-agent plugin to agent-toolkit ([535b0f5](https://github.com/tomtom-internal/maps-sdk-js/commit/535b0f57c1b3ec2fedae70a351b52463594ebebe))
749
+
750
+ ## [0.2.1](https://github.com/tomtom-internal/maps-sdk-js/compare/maps-sdk-plugin-ai-agent-v0.2.0...maps-sdk-plugin-ai-agent-v0.2.1) (2026-04-10)
751
+
752
+
753
+ ### Features
754
+
755
+ * new module events to react to config changes and shown features ([28e295e](https://github.com/tomtom-internal/maps-sdk-js/commit/28e295ea1a36cf85361469a1210434684e6d7689))
756
+
757
+
758
+ ### Bug Fixes
759
+
760
+ * ai plugin docs diagrams ([bbbf011](https://github.com/tomtom-internal/maps-sdk-js/commit/bbbf011fd39ec0b82e455891fe6b3f601f8a0a72))
761
+ * serialize dates as ISO strings for safe LLM parsing. Example transport cleanup ([dab7d79](https://github.com/tomtom-internal/maps-sdk-js/commit/dab7d7912892f76e256d677c9ed416c1f1bc447c))
762
+
763
+ ## [0.2.0](https://github.com/tomtom-internal/maps-sdk-js/compare/maps-sdk-plugin-ai-agent-v0.1.0...maps-sdk-plugin-ai-agent-v0.2.0) (2026-04-09)
764
+
765
+
766
+ ### Features
767
+
768
+ * Initial release! Explore the README and documentation for further information.