rpgmaker-mz-mcp 1.3.0 → 1.4.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.
- package/README.md +66 -10
- package/dist/events/commandBuilders.d.ts +32 -3
- package/dist/events/commandBuilders.d.ts.map +1 -1
- package/dist/events/commandBuilders.js +59 -6
- package/dist/events/commandBuilders.js.map +1 -1
- package/dist/index.js +45 -3
- package/dist/index.js.map +1 -1
- package/dist/playtest/chromium.d.ts +38 -0
- package/dist/playtest/chromium.d.ts.map +1 -0
- package/dist/playtest/chromium.js +139 -0
- package/dist/playtest/chromium.js.map +1 -0
- package/dist/playtest/driver.d.ts +17 -0
- package/dist/playtest/driver.d.ts.map +1 -0
- package/dist/playtest/driver.js +364 -0
- package/dist/playtest/driver.js.map +1 -0
- package/dist/playtest/output.d.ts +17 -0
- package/dist/playtest/output.d.ts.map +1 -0
- package/dist/playtest/output.js +39 -0
- package/dist/playtest/output.js.map +1 -0
- package/dist/playtest/playtest.d.ts +58 -0
- package/dist/playtest/playtest.d.ts.map +1 -0
- package/dist/playtest/playtest.js +389 -0
- package/dist/playtest/playtest.js.map +1 -0
- package/dist/playtest/render.d.ts +62 -0
- package/dist/playtest/render.d.ts.map +1 -0
- package/dist/playtest/render.js +96 -0
- package/dist/playtest/render.js.map +1 -0
- package/dist/playtest/session.d.ts +41 -0
- package/dist/playtest/session.d.ts.map +1 -0
- package/dist/playtest/session.js +108 -0
- package/dist/playtest/session.js.map +1 -0
- package/dist/playtest/staticServer.d.ts +14 -0
- package/dist/playtest/staticServer.d.ts.map +1 -0
- package/dist/playtest/staticServer.js +83 -0
- package/dist/playtest/staticServer.js.map +1 -0
- package/dist/playtest/steps.d.ts +253 -0
- package/dist/playtest/steps.d.ts.map +1 -0
- package/dist/playtest/steps.js +148 -0
- package/dist/playtest/steps.js.map +1 -0
- package/dist/playtest/text.d.ts +10 -0
- package/dist/playtest/text.d.ts.map +1 -0
- package/dist/playtest/text.js +22 -0
- package/dist/playtest/text.js.map +1 -0
- package/dist/registry.d.ts +14 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js.map +1 -1
- package/dist/tiles/blueprint.d.ts +72 -0
- package/dist/tiles/blueprint.d.ts.map +1 -0
- package/dist/tiles/blueprint.js +157 -0
- package/dist/tiles/blueprint.js.map +1 -0
- package/dist/tiles/catalog/index.d.ts +42 -5
- package/dist/tiles/catalog/index.d.ts.map +1 -1
- package/dist/tiles/catalog/index.js +99 -4
- package/dist/tiles/catalog/index.js.map +1 -1
- package/dist/tools/allTools.d.ts.map +1 -1
- package/dist/tools/allTools.js +6 -0
- package/dist/tools/allTools.js.map +1 -1
- package/dist/tools/batchTools.d.ts.map +1 -1
- package/dist/tools/batchTools.js +64 -8
- package/dist/tools/batchTools.js.map +1 -1
- package/dist/tools/battleTools.d.ts +49 -6
- package/dist/tools/battleTools.d.ts.map +1 -1
- package/dist/tools/battleTools.js +252 -11
- package/dist/tools/battleTools.js.map +1 -1
- package/dist/tools/catalogTools.d.ts +10 -0
- package/dist/tools/catalogTools.d.ts.map +1 -1
- package/dist/tools/catalogTools.js +46 -6
- package/dist/tools/catalogTools.js.map +1 -1
- package/dist/tools/eventCommandTools.d.ts +6 -0
- package/dist/tools/eventCommandTools.d.ts.map +1 -1
- package/dist/tools/eventCommandTools.js +51 -2
- package/dist/tools/eventCommandTools.js.map +1 -1
- package/dist/tools/eventPageTools.d.ts +2 -0
- package/dist/tools/eventPageTools.d.ts.map +1 -1
- package/dist/tools/eventPageTools.js +5 -1
- package/dist/tools/eventPageTools.js.map +1 -1
- package/dist/tools/exportTools.d.ts +61 -0
- package/dist/tools/exportTools.d.ts.map +1 -0
- package/dist/tools/exportTools.js +525 -0
- package/dist/tools/exportTools.js.map +1 -0
- package/dist/tools/itemTools.d.ts.map +1 -1
- package/dist/tools/itemTools.js +1 -0
- package/dist/tools/itemTools.js.map +1 -1
- package/dist/tools/mapTools.d.ts +59 -5
- package/dist/tools/mapTools.d.ts.map +1 -1
- package/dist/tools/mapTools.js +139 -26
- package/dist/tools/mapTools.js.map +1 -1
- package/dist/tools/objectTools.d.ts +28 -0
- package/dist/tools/objectTools.d.ts.map +1 -1
- package/dist/tools/objectTools.js +88 -2
- package/dist/tools/objectTools.js.map +1 -1
- package/dist/tools/paintTools.d.ts.map +1 -1
- package/dist/tools/paintTools.js +225 -0
- package/dist/tools/paintTools.js.map +1 -1
- package/dist/tools/playtestTools.d.ts +3 -0
- package/dist/tools/playtestTools.d.ts.map +1 -0
- package/dist/tools/playtestTools.js +100 -0
- package/dist/tools/playtestTools.js.map +1 -0
- package/dist/tools/recordTools.d.ts +116 -0
- package/dist/tools/recordTools.d.ts.map +1 -0
- package/dist/tools/recordTools.js +205 -0
- package/dist/tools/recordTools.js.map +1 -0
- package/dist/tools/skillTools.d.ts +19 -0
- package/dist/tools/skillTools.d.ts.map +1 -1
- package/dist/tools/skillTools.js +96 -27
- package/dist/tools/skillTools.js.map +1 -1
- package/dist/tools/validationTools.d.ts.map +1 -1
- package/dist/tools/validationTools.js +21 -7
- package/dist/tools/validationTools.js.map +1 -1
- package/dist/utils/zip.d.ts +34 -0
- package/dist/utils/zip.d.ts.map +1 -0
- package/dist/utils/zip.js +104 -0
- package/dist/utils/zip.js.map +1 -0
- package/dist/validation/assets.d.ts.map +1 -1
- package/dist/validation/assets.js +26 -2
- package/dist/validation/assets.js.map +1 -1
- package/dist/validation/eventCommands.d.ts.map +1 -1
- package/dist/validation/eventCommands.js +10 -8
- package/dist/validation/eventCommands.js.map +1 -1
- package/dist/validation/references.d.ts +7 -1
- package/dist/validation/references.d.ts.map +1 -1
- package/dist/validation/references.js +85 -2
- package/dist/validation/references.js.map +1 -1
- package/dist/validation/textMetrics.d.ts +18 -0
- package/dist/validation/textMetrics.d.ts.map +1 -1
- package/dist/validation/textMetrics.js +74 -0
- package/dist/validation/textMetrics.js.map +1 -1
- package/package.json +4 -1
package/README.md
CHANGED
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
# RPG Maker MZ MCP Server
|
|
6
6
|
|
|
7
7
|
[](https://github.com/Redseb/rpgmaker-mz-mcp/actions/workflows/ci.yml)
|
|
8
|
-
[](#available-tools)
|
|
9
9
|
[](https://modelcontextprotocol.io/)
|
|
10
10
|
[](tsconfig.json)
|
|
11
11
|
[](package.json)
|
|
12
12
|
[](#license)
|
|
13
13
|
|
|
14
|
-
**
|
|
14
|
+
**128 tools** that let an AI assistant read and write an RPG Maker MZ project directly — actors, classes, skills, items, equipment, states, enemies, troops, common events, maps, tiles, tilesets, events, and system settings — instead of hand-editing everything in the editor.
|
|
15
15
|
|
|
16
16
|
_"Add a town under the world map, paint it with grass, and drop in a shopkeeper who sells potions"_ → done, in-project, no editor clicks.
|
|
17
17
|
|
|
@@ -70,12 +70,13 @@ New here? Read [SETUP.md](SETUP.md) for the full walkthrough and [EXAMPLES.md](E
|
|
|
70
70
|
|
|
71
71
|
- **Database CRUD** — actors, classes (with learnings & param curves), skills (full-control + simplified damage/heal/buff/state helpers), items, weapons, armors, states, enemies, and troops. Only a `name` is required to create; everything else falls back to the editor's true "New X" template.
|
|
72
72
|
- **Maps & the map tree** — create/delete maps, batch-reparent/reorder/rename with a cycle guard, and edit map properties. New maps register in `MapInfos.json` exactly as the editor expects.
|
|
73
|
-
- **Tile painting (with automatic autotiling)** — `paint_tiles`/`fill_area` set tiles on any of the six map layers and recompute autotile shapes (and their neighbours') from same-kind adjacency, so a filled region borders itself correctly. `place_object` stamps multi-tile B/C objects (houses, trees) and reports their passability footprint.
|
|
73
|
+
- **Tile painting (with automatic autotiling)** — `paint_tiles`/`fill_area` set tiles on any of the six map layers and recompute autotile shapes (and their neighbours') from same-kind adjacency, so a filled region borders itself correctly. `paint_blueprint` paints a whole area from ASCII rows + a legend in one call (multi-layer cells, catalog names, A4 wall faces derived automatically) and returns a passability overview. `place_object` stamps multi-tile B/C objects (houses, trees) and reports their passability footprint.
|
|
74
74
|
- **Semantic tile catalog** — `find_tile "grass"` → a paintable tile id. Built-in catalogs for every default tileset (Overworld, Outside, Inside, Dungeon, SF), sourced from RPG Maker's own English name sidecars. A bundled vision-bootstrap skill catalogs **custom** tilesets.
|
|
75
75
|
- **Passability & terrain** — read a tile's flags or a map cell's layered passability (`get_tile_flags`/`check_passability`), and **edit** passability/terrain-tag/behaviour flags (`set_tile_flags`).
|
|
76
76
|
- **Event-command builders** — high-level, read-only builders that emit the exact `EventCommand` sequences the editor writes (including tricky recursive branch blocks and continuation rows), landed on a page via `insert_event_commands`. Covers dialogue & flow, game-state changes, presentation/transitions, and scene processing.
|
|
77
77
|
- **Event & NPC ergonomics** — `create_npc` places a complete talking NPC in one call; `set_event_page` merges a page's graphic + behavior in place.
|
|
78
78
|
- **Asset awareness** — `list_assets` enumerates valid character/face/tileset/audio names so events never reference a missing file.
|
|
79
|
+
- **See and play the build** — `render_map` screenshots a map exactly as the engine draws it (whole map or a game-screen view) and `run_playtest` drives a scripted headless session (load a state, trigger events, read dialogue, pick choices, walk, auto-battle, screenshot), both reporting console errors and missing assets. Validators prove structure; these show what the player sees.
|
|
79
80
|
- **Correctness layer** — Zod-validated inputs, throw-by-default event validation (a structurally invalid write is refused, not saved-and-warned-about), a cross-file reference linter (`validate_references`), and a dry-run/diff preview on every write.
|
|
80
81
|
|
|
81
82
|
## How it fits together
|
|
@@ -144,7 +145,7 @@ The easiest path is the `.mcpb` bundle from [Releases](https://github.com/Redseb
|
|
|
144
145
|
|
|
145
146
|
## Available tools
|
|
146
147
|
|
|
147
|
-
All
|
|
148
|
+
All 128 tools, grouped by area. Tools that write to the project accept an optional `dryRun` argument (see [Dry-run preview](#dry-run-preview)); those that can refuse a structurally invalid write also accept `force` (see [Event validation](#event-validation-throw-by-default)).
|
|
148
149
|
|
|
149
150
|
<details>
|
|
150
151
|
<summary><strong>Expand the full tool reference</strong></summary>
|
|
@@ -166,7 +167,7 @@ All 119 tools, grouped by area. Tools that write to the project accept an option
|
|
|
166
167
|
|
|
167
168
|
### Skills
|
|
168
169
|
|
|
169
|
-
- `create_skill` (full control), `update_skill`, `search_skills`
|
|
170
|
+
- `create_skill` (full control — every Skills.json field incl. `occasion`, `hitType`, `speed`, `repeats`, `successRate`, `tpGain`, required weapon types, `message2`, `note`; `hitType` defaults to magical for Magic skills, physical for other damage, certain for heals/ally scopes), `update_skill`, `search_skills`
|
|
170
171
|
- `create_damage_skill`, `create_healing_skill`, `create_buff_skill`, `create_state_skill` — natural-language-friendly helpers for common skill types
|
|
171
172
|
|
|
172
173
|
### Items & equipment
|
|
@@ -183,6 +184,8 @@ All 119 tools, grouped by area. Tools that write to the project accept an option
|
|
|
183
184
|
|
|
184
185
|
- `create_enemy`, `update_enemy`, `search_enemies`
|
|
185
186
|
- `create_troop`, `update_troop`, `search_troops` — `create_troop` validates that every member references an existing enemy
|
|
187
|
+
- `build_troop_page` — build a battle-event page `{ conditions, list, span }` from a compact trigger (`when`: `turn [a, b]`, `enemyHpBelow [slot, pct]`, `actorHpBelow [actorId, pct]`, `switch`, `turnEnd` — ANDed) and a `span` (`battle` / `turn` / `moment`), no hand-built 12-field conditions object. Read-only
|
|
188
|
+
- `add_troop_page` — append (or insert at `position`) one page to a troop without re-sending the others; warns on an HP condition pointing past the troop's members
|
|
186
189
|
|
|
187
190
|
### Common events
|
|
188
191
|
|
|
@@ -206,7 +209,7 @@ All 119 tools, grouped by area. Tools that write to the project accept an option
|
|
|
206
209
|
|
|
207
210
|
### Event & NPC ergonomics
|
|
208
211
|
|
|
209
|
-
- `create_npc` — one-shot "talking NPC": graphic + trigger + a talk list from `text` or explicit `commands`
|
|
212
|
+
- `create_npc` — one-shot "talking NPC": graphic + trigger + a talk list from `text` (optionally auto word-wrapped with `wrap`) or explicit `commands`
|
|
210
213
|
- `create_chest` — one-shot treasure chest: the two-page self-switch idiom (give item/weapon/armor/gold, then never again)
|
|
211
214
|
- `create_transfer` — one-shot map transfer, in either working idiom: face a solid landmark (`action_button`) or step on a doormat (`player_touch`)
|
|
212
215
|
- `set_event_page` — merge a page's graphic + behavior (sprite, trigger, priority, movement, flags) in place
|
|
@@ -219,6 +222,7 @@ Read-only builders that return editor-faithful `EventCommand` sequences; land th
|
|
|
219
222
|
- **Game state:** `build_control_switch` (121/123), `build_control_variable` (122), `build_change_gold` (125), `build_change_items` (126–128), `build_change_party_member` (129)
|
|
220
223
|
- **Presentation & transitions:** `build_transfer_player` (201), `build_play_audio` (BGM/BGS/ME/SE), `build_screen_effect` (fade/tint/flash/shake), `build_picture` (show/erase), `build_character_effect` (animation/balloon)
|
|
221
224
|
- **Scenes:** `build_battle_processing` (301), `build_shop_processing` (302/605), `build_name_input` (303), `build_change_actor` (HP/MP/state/recover/EXP/level, 311–316)
|
|
225
|
+
- **Battle (troop pages):** `build_battle_command` — enemy appear (335, reveal a hidden member), change enemy state (333, one slot or the whole troop), abort battle (340)
|
|
222
226
|
- **Insertion:** `insert_event_commands` — splice a built sequence into a map event page (the default `target`), a common event body, or a troop battle-event page, then validate
|
|
223
227
|
|
|
224
228
|
### Move routes
|
|
@@ -237,6 +241,7 @@ Read-only builders that return editor-faithful `EventCommand` sequences; land th
|
|
|
237
241
|
- `describe_tile` — decode a raw tile id (sheet, autotile kind/shape, geometry)
|
|
238
242
|
- `get_tile_catalog`, `find_tile` — resolve human names ↔ paintable tile ids (`find_tile` can widen the search to a custom sheet's catalog descriptions with `searchDescriptions`)
|
|
239
243
|
- `paint_tiles`, `fill_area` — paint with automatic autotiling
|
|
244
|
+
- `paint_blueprint` — paint a whole area from an ASCII blueprint + legend in one write: `[layer, tile]` pairs per glyph, catalog names instead of ids, `{ wall: { top } }` entries whose vertical runs get their bottom cell turned into the wall-side (face) kind (top + 8 kinds), stale upper layers cleared; returns per-layer counts and a `#`/`.` passability map
|
|
240
245
|
- `place_object` — stamp a multi-tile B/C object and report its passability footprint
|
|
241
246
|
|
|
242
247
|
### Tileset flags (passability / terrain)
|
|
@@ -249,6 +254,34 @@ Read-only builders that return editor-faithful `EventCommand` sequences; land th
|
|
|
249
254
|
|
|
250
255
|
- `list_assets` — enumerate available asset basenames (characters, faces, tilesets, pictures, audio, …)
|
|
251
256
|
|
|
257
|
+
### Web export
|
|
258
|
+
|
|
259
|
+
- `export_web` — build a **pruned HTML5 deployment** for itch.io or any static host: `index.html`, `js/`, `css/`, `fonts/`, `icon/` and `data/*.json`, plus only the `img/`/`audio/`/`movies/` files something references (every string in the data files, string literals in the core engine scripts and plugins, plugin `@default`s; `img/system/` is always kept, and every `.ogg`/`.m4a` variant of a kept track). Effekseer effects are pruned the same way: an `effects/*.efkefc` is kept only if its name is a real effect reference (an animation's `effectName`, a Plugin Command argument in an event, or a plugin parameter/string — not other data strings, so a state or animation *named* `Poison` doesn't pull in `Poison.efkefc`), together with the textures/models it lists inside the file; if a kept effect can't be parsed, all of `effects/`' textures and models are kept. When nothing references an effect, no `effects/` folder is exported. Writes the folder to `outDir` and, with `zip` (default), `<outDir>.zip` with `index.html` at the archive root. Returns file/byte counts, kept/dropped asset counts and paths (effects included), the screen size from `System.advanced` (use it as the itch embed size), and warnings past itch's 1000-file / 200 MB-per-file limits. `prune: false` copies every asset — use it if a plugin builds asset names at runtime. Writes nothing inside the project; `outDir` can't be the project or sit inside a folder it copies, and an existing non-empty `outDir` is only replaced if it's a previous `export_web` output.
|
|
260
|
+
|
|
261
|
+
### Headless render & playtest
|
|
262
|
+
|
|
263
|
+
Boots the project's own `index.html` in a headless Chromium to check what validators can't: how a map looks and how it plays. Read-only — nothing is written into the project; PNGs go to `<os tmpdir>/rpgmaker-mz-mcp/renders/` unless you pass `out`. Pass `inline: true` to also get the PNG(s) back as image content in the tool response.
|
|
264
|
+
|
|
265
|
+
- `render_map` — screenshot one map. By default it renders the **whole map** in one image (the canvas is resized to `width×height×48` px, the player is hidden, autorun/parallel events are frozen so a cutscene can't cover the map, and the map-name banner is off). Pass `x` + `y` to get a normal 816×624 game-screen view centred on that tile instead (the player is shown). `showEvents: false` draws bare tiles; `switches` turns switches on first to see a later story state; `runEvents: true` lets events run. Returns the PNG path and `problems`: console errors, page errors, and HTTP 404s (a missing image is drawn blank and listed there instead of stopping the engine on its load-error screen). Maps over 4800 px on a side need the `x`/`y` view.
|
|
266
|
+
- `run_playtest` — run a script of steps in one browser session. Each step returns `ok` plus details, and the run stops at the first failing step:
|
|
267
|
+
- `load` `{mapId, x, y, direction?, party?, level?, gold?, switches?, variables?, selfSwitches?, items?, equip?, encounters?}` starts a new game at that spot with that state. Random encounters stay off unless `encounters: true`.
|
|
268
|
+
- `startEvent` `{eventId}` triggers a map event and lets it run until it shows text or goes idle. If the event transfers the player, the step waits for the new map and reports it as `transferredTo` `{mapId, x, y}`.
|
|
269
|
+
- `advanceText` `{maxMs?}` presses OK until the event goes idle. It stops early at an open choice list or a battle, and returns the message lines shown (with speaker names) and any open choices. Text shown during a battle comes back separately as `battleLines`, so it isn't mixed into the map event's dialogue.
|
|
270
|
+
- `choose` `{index}` picks a 0-based choice.
|
|
271
|
+
- `walk` `{direction, steps?}` walks tile by tile and reports the tile it ended on (`to`). If a tile refused entry, it reports both the player's tile (`stoppedAt`) and the tile that refused (`blockedTile`), which is how you find invisible walls. It stops early when a touch event fires; if that event is a door, it waits for the transfer to finish, so `to` and `transferredTo` are on the new map. `eventRunning`/`messageOpen` say the event is still going (follow up with `advanceText`).
|
|
272
|
+
- `press` `{button, times?}` and `wait` `{ms}`.
|
|
273
|
+
- `autoBattle` `{troopId?, canEscape?, canLose?, maxMs?}` fights a battle that has already started, or starts `troopId`, on auto AI, giving up after `maxMs` (default 60 s). It reports `victory`/`defeat`/`escaped`, the final HP of both sides, and the battle's message `lines` (troop battle events, victory text). Battles are fast-forwarded: the engine runs 20 frames for every frame it draws, so the fight plays out exactly as it would (same logic, same odds), only faster. A 10-turn boss fight takes about 5 s instead of 80 s. Pass `realtime: true` on the run to watch battles at normal speed, and raise `maxMs` to match. Only battles are sped up; the map, walking and dialogue run at normal speed.
|
|
274
|
+
- `screenshot` `{name?}` saves a PNG.
|
|
275
|
+
- `eval` `{script}` returns the value of a JS expression evaluated in the game page, such as `"$gameSwitches.value(3)"`.
|
|
276
|
+
|
|
277
|
+
Reported text (`lines`, `battleLines`, `choices`, speaker names) reads the way the message window shows it. `\V[n]`, `\N[n]`, `\P[n]` and `\G` are filled in from the game state at the time, and control codes such as `\C[n]`, `\I[n]`, `\{`, `\.` and `\|` are removed, so victory text comes back as `92 EXP received!`.
|
|
278
|
+
|
|
279
|
+
The response ends with `finalState` (scene, map, position, gold, party) and `problems`. `startEvent` and `autoBattle` refuse to start while an event or message is still running (for example, a map's autorun cutscene right after `load`) and tell you to `advanceText` first.
|
|
280
|
+
|
|
281
|
+
**Requirements.** Both tools need `playwright-core`. It's an **optional dependency**, so a failed install never breaks the other tools; these two just return an error that tells you how to fix it. They also need a Chromium. No browser is downloaded: the server uses the newest `chrome-headless-shell` (or full Chromium) in the Playwright cache (`~/Library/Caches/ms-playwright`, `~/.cache/ms-playwright`, `%LOCALAPPDATA%\ms-playwright`, or `PLAYWRIGHT_BROWSERS_PATH`). If you don't have one, run `npx playwright install chromium-headless-shell`, or set `RPGMAKER_MCP_CHROMIUM` to any Chrome/Chromium executable. Each call takes about 1–2 s to boot, plus however long the script runs.
|
|
282
|
+
|
|
283
|
+
**Long runs.** A `run_playtest` script with long cutscenes or `realtime` battles can take a minute or more, which is longer than many MCP clients wait by default (the TypeScript SDK gives up after 60 s with `-32001 Request timed out`). If the client sends a `progressToken`, the server sends a progress notification for each step and every 5 s during long ones, so a client using `resetTimeoutOnProgress` (or a longer timeout) keeps waiting. If your client can do neither, split the script into several shorter runs.
|
|
284
|
+
|
|
252
285
|
### System & vocabulary
|
|
253
286
|
|
|
254
287
|
- `get_system`, `get_game_title`, `update_game_title`
|
|
@@ -262,14 +295,19 @@ Read-only builders that return editor-faithful `EventCommand` sequences; land th
|
|
|
262
295
|
|
|
263
296
|
### Batch creation
|
|
264
297
|
|
|
265
|
-
- `batch_create` — create many records of one type (actors, items, weapons, armors, skills, enemies, states, classes) in a single call and a **single file write**; ids allocate sequentially, so a record can reference a sibling made earlier in the same batch
|
|
298
|
+
- `batch_create` — create many records of one type (actors, items, weapons, armors, skills, enemies, states, classes) in a single call and a **single file write**; ids allocate sequentially, so a record can reference a sibling made earlier in the same batch; record fields the matching `create_*` tool doesn't accept come back as warnings instead of vanishing silently
|
|
299
|
+
|
|
300
|
+
### Deleting records
|
|
301
|
+
|
|
302
|
+
- `delete_record` — delete one database record (actor, class, skill, item, weapon, armor, enemy, troop, state, common event) by nulling its slot, so no other id shifts; reports every reference the deletion would leave dangling and **refuses** when there are any unless `force: true`
|
|
303
|
+
- `reset_table` — clear a whole table except the ids in `keep` (e.g. `reset_table('skill', { keep: [1, 2] })` wipes the RTP skills but keeps Attack/Guard); kept records stay at their own id, trailing empty slots are trimmed, and it refuses on dangling references the same way
|
|
266
304
|
|
|
267
305
|
### Index & validation
|
|
268
306
|
|
|
269
307
|
- `list_names` — cheap `{ id, name }` index for a table (actors, items, skills, maps, enemies, …)
|
|
270
308
|
- `get_database` — full records from one table (actors, classes, items, weapons, armors, skills, enemies, troops, states, common_events), or a single record by `id`
|
|
271
309
|
- `validate_event`, `validate_project` — event-command-shape validation (read-only)
|
|
272
|
-
- `validate_references` — cross-file id-integrity audit (party→actor, transfer→map, effect→state/skill/common-event, drops→item, map-tree cycles, …)
|
|
310
|
+
- `validate_references` — cross-file id-integrity audit (party→actor, transfer→map, effect→state/skill/common-event, drops→item, Change Items/Shop/Battle Processing→item/troop, encounters→troop, map-tree cycles, …)
|
|
273
311
|
|
|
274
312
|
### ID allocation
|
|
275
313
|
|
|
@@ -315,10 +353,26 @@ Drop a **`.rpgmaker-mcp.json`** in the project root to replace the estimate with
|
|
|
315
353
|
|
|
316
354
|
Everything fails soft: no file, bad JSON, or a malformed `text` section leaves the built-in estimate in place, so a broken config is never worse than no config. The file is re-read when its mtime changes, and warnings then report real widths (`Show Text line is 650px but the message window fits 616px with a face shown`).
|
|
317
355
|
|
|
356
|
+
**Auto-wrap.** Rather than fixing overflowing lines by hand, pass `wrap: true` to `build_show_text` or `create_npc` and write whole paragraphs: the text is word-wrapped to exactly the width the warning checks (the default estimate or your `.rpgmaker-mcp.json` metrics; escape codes like `\C[n]` never count or get split) and split into as many 4-line message boxes as needed, each with the same face/speaker. `wrap: true` (or `"soft"`) reflows every entry as one paragraph; `"hard"` keeps each entry and `\n` as a forced line break and only wraps lines that are too long.
|
|
357
|
+
|
|
318
358
|
## Reference linting
|
|
319
359
|
|
|
320
360
|
`validate_references` performs a **cross-file id-integrity audit** — orthogonal to the command-shape check above. It walks the whole database and flags references that point at something that doesn't exist: a starting party member with no matching actor, a Transfer Player targeting a missing map, a skill effect that adds a non-existent state, an enemy dropping an unknown item, a cyclic map-tree parent, and more. Every check is warn-by-default and guarded against false positives on partially-loaded projects.
|
|
321
361
|
|
|
362
|
+
## Deleting records and resetting tables
|
|
363
|
+
|
|
364
|
+
A new MZ project ships RTP-flavoured database rows whose icons, animations and battlers point at RTP art. When you replace the art wholesale, the natural workflow is "clear the database, then author my own" — `reset_table` is that first step, and `delete_record` removes a single row.
|
|
365
|
+
|
|
366
|
+
Database arrays are **index = id**, so both tools **null the slot rather than splice**: nothing is renumbered, and no surviving reference silently starts pointing at a different record. `reset_table` keeps each `keep` id at its own index and trims trailing empty slots (a table with nothing kept becomes `[null]`); new records from `create_*` / `batch_create` then allocate from the highest live id.
|
|
367
|
+
|
|
368
|
+
Before writing, both tools work out which references the removal would leave dangling, by running the `validate_references` audit with and without the removed rows and keeping only the findings the removal introduces (references that were already broken aren't blamed on it). Removing skill 1 (Attack), skill 2 (Guard) or state 1 (Knockout) is always reported too, since the engine hard-codes those ids. If anything would dangle, the write is **refused** and nothing reaches disk — pass `force: true` to go ahead anyway, or `dryRun: true` to preview what disappears and what would break (a dry-run reports `requiresForce` instead of throwing). The scan covers what `validate_references` covers and says so in a `coverage` field: traits, actor starting equipment, event page conditions, Conditional Branch operands, and Script/plugin commands are not scanned.
|
|
369
|
+
|
|
370
|
+
```
|
|
371
|
+
reset_table({ type: 'skill', keep: [1, 2], dryRun: true }) // what goes, what breaks
|
|
372
|
+
reset_table({ type: 'skill', keep: [1, 2], force: true }) // do it
|
|
373
|
+
batch_create({ type: 'skill', records: [...] }) // author the replacements
|
|
374
|
+
```
|
|
375
|
+
|
|
322
376
|
## ID allocation
|
|
323
377
|
|
|
324
378
|
Switches, variables and common-event IDs are one global namespace, and nothing in RPG Maker stops a later edit from claiming an ID an earlier one already used. The failure is silent — no crash, no validator hit, just a door that is inexplicably already open hours into a playtest.
|
|
@@ -364,7 +418,7 @@ A write tool that echoes the whole record back costs the one caller that always
|
|
|
364
418
|
| `update_map_event`, `set_event_page`, `add_event_command` | event identity + per-page `trigger` / `priorityType` / `moveType` / graphic / `listLength` |
|
|
365
419
|
| `insert_event_commands` | `listLength` + `listCodes` — the resulting command **codes**, without the parameters |
|
|
366
420
|
| `create_common_event`, `update_common_event` | identity, trigger wiring, `listLength` + `listCodes` |
|
|
367
|
-
| `create_troop`, `update_troop` | identity, members, per-page `listLength` |
|
|
421
|
+
| `create_troop`, `update_troop`, `add_troop_page` | identity, members, per-page `listLength` |
|
|
368
422
|
|
|
369
423
|
The rule: **keep what you would assert on, drop what you would only re-read.** Command codes stay, because they are how you verify a splice landed where you asked (`is the 302 still after the two 101s`); command parameters go, because they are what you just wrote.
|
|
370
424
|
|
|
@@ -374,7 +428,7 @@ Measured on six calls from one real authoring session: **115,080 → 3,672 chara
|
|
|
374
428
|
|
|
375
429
|
## Custom-tileset catalog skill
|
|
376
430
|
|
|
377
|
-
The default tilesets are cataloged out of the box. For a **custom** (non-RTP) tileset, a bundled Claude skill under `.claude/skills/tileset-catalog/` slices each sheet into labelled samples, has Claude vision-name them, and writes a versioned, project-scoped catalog to `data/tilecatalog/` — after which `find_tile`/`get_tile_catalog` resolve names for that sheet too. Those drafts also record what each tile *looks like*, so `find_tile` with `searchDescriptions: true` can match that text when a machine-drafted name is too terse to search by. The skill ships a dependency-free PNG codec and engine-exact tile geometry, so it runs anywhere Node does.
|
|
431
|
+
The default tilesets are cataloged out of the box. A non-default sheet that ships an RPG Maker `.txt` name sidecar next to it (`img/tilesets/<Sheet>.txt`, one `Name|日本語名` line per tile — commercial DLC packs include these) is cataloged automatically too: its names come back with `source: 'sidecar'`, no catalog files needed. Precedence per tile: a human-verified (`manual`) `data/tilecatalog/` entry > the sidecar > a vision draft. For a **custom** (non-RTP) tileset with no sidecar, a bundled Claude skill under `.claude/skills/tileset-catalog/` slices each sheet into labelled samples, has Claude vision-name them, and writes a versioned, project-scoped catalog to `data/tilecatalog/` — after which `find_tile`/`get_tile_catalog` resolve names for that sheet too. Those drafts also record what each tile *looks like*, so `find_tile` with `searchDescriptions: true` can match that text when a machine-drafted name is too terse to search by. The skill ships a dependency-free PNG codec and engine-exact tile geometry, so it runs anywhere Node does.
|
|
378
432
|
|
|
379
433
|
## Example prompts
|
|
380
434
|
|
|
@@ -446,6 +500,8 @@ rpgmaker-mz-mcp/
|
|
|
446
500
|
│ ├── events/ # Pure event-command builders (no I/O)
|
|
447
501
|
│ ├── tiles/ # Tile subsystem: codec, autotile solver, paint core,
|
|
448
502
|
│ │ # flag codec, and the semantic catalog
|
|
503
|
+
│ ├── playtest/ # Headless engine driver: Chromium discovery, static server,
|
|
504
|
+
│ │ # render_map + run_playtest (optional playwright-core)
|
|
449
505
|
│ ├── validation/ # Known-command tables + event/move/plugin/reference validators
|
|
450
506
|
│ └── utils/ # File I/O, the commit choke point, and RPG Maker MZ types
|
|
451
507
|
├── test/ # Vitest suite
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { EventCommand } from '../utils/types.js';
|
|
2
|
+
import { TextMetrics, WrapMode } from '../validation/textMetrics.js';
|
|
2
3
|
/**
|
|
3
4
|
* Splice built commands into a command list before its code-0 end marker (or at
|
|
4
5
|
* `position` when it's a valid in-range index). Shared by every insert path
|
|
@@ -23,12 +24,22 @@ export interface ShowTextOptions {
|
|
|
23
24
|
speakerName?: string;
|
|
24
25
|
/** Indentation level in the target list. Default 0. */
|
|
25
26
|
indent?: number;
|
|
27
|
+
/**
|
|
28
|
+
* Auto word-wrap to the message window and split into 4-line boxes (one 101 setup
|
|
29
|
+
* per box). `true` = `'soft'` (reflow everything as one paragraph); `'hard'` keeps
|
|
30
|
+
* each entry / `\n` as a forced break. Default off: one 401 per entry, verbatim.
|
|
31
|
+
*/
|
|
32
|
+
wrap?: boolean | WrapMode;
|
|
33
|
+
/** Metrics to wrap with. Default: the active project's (same as the width check). */
|
|
34
|
+
metrics?: TextMetrics;
|
|
26
35
|
}
|
|
27
36
|
/**
|
|
28
37
|
* Show Text (command 101 setup + one 401 line per text line). `lines` are the
|
|
29
|
-
* message lines;
|
|
30
|
-
*
|
|
31
|
-
*
|
|
38
|
+
* message lines; MZ does not word-wrap, so by default pass one entry per visual
|
|
39
|
+
* line you intend. With `wrap`, the lines are word-wrapped to the width the
|
|
40
|
+
* line-width check uses and split into as many 4-line boxes as needed, each with
|
|
41
|
+
* its own identical 101 setup. Face/background/position/speaker match the
|
|
42
|
+
* editor's Show Text dialog.
|
|
32
43
|
*/
|
|
33
44
|
export declare function showText(lines: string[], options?: ShowTextOptions): EventCommand[];
|
|
34
45
|
/** Choice list window position (left/middle/right). */
|
|
@@ -402,4 +413,22 @@ export declare function changeExp(target: ActorTarget, operation: GainOperation,
|
|
|
402
413
|
* `[designation, actorId, operation, operandType, operand, showLevelUp]`.
|
|
403
414
|
*/
|
|
404
415
|
export declare function changeLevel(target: ActorTarget, operation: GainOperation, operand: GainOperand, showLevelUp?: boolean, indent?: number): EventCommand;
|
|
416
|
+
/**
|
|
417
|
+
* Enemy Appear (command 335) — reveal a troop member that started `hidden` (a
|
|
418
|
+
* mid-battle summon / reinforcement). `enemyIndex` is the 0-based troop slot
|
|
419
|
+
* (`members[]` order), NOT an enemy id. On disk: `[enemyIndex]`.
|
|
420
|
+
*/
|
|
421
|
+
export declare function enemyAppear(enemyIndex: number, indent?: number): EventCommand;
|
|
422
|
+
/**
|
|
423
|
+
* Change Enemy State (command 333) — add or remove a state on one troop member
|
|
424
|
+
* (0-based slot) or the entire troop (`enemyIndex` -1). On disk:
|
|
425
|
+
* `[enemyIndex, operation(0 add/1 remove), stateId]`.
|
|
426
|
+
*/
|
|
427
|
+
export declare function changeEnemyState(enemyIndex: number, operation: 'add' | 'remove', stateId: number, indent?: number): EventCommand;
|
|
428
|
+
/**
|
|
429
|
+
* Abort Battle (command 340) — end the battle immediately with no victory or
|
|
430
|
+
* defeat (the "yield" fight); a Battle Processing with canEscape takes its
|
|
431
|
+
* Escape branch. Parameterless on disk.
|
|
432
|
+
*/
|
|
433
|
+
export declare function abortBattle(indent?: number): EventCommand;
|
|
405
434
|
//# sourceMappingURL=commandBuilders.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandBuilders.d.ts","sourceRoot":"","sources":["../../src/events/commandBuilders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"commandBuilders.d.ts","sourceRoot":"","sources":["../../src/events/commandBuilders.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { MESSAGE_BOX_LINES, getActiveTextMetrics, wrapLines, } from '../validation/textMetrics.js';
|
|
1
2
|
/**
|
|
2
3
|
* Splice built commands into a command list before its code-0 end marker (or at
|
|
3
4
|
* `position` when it's a valid in-range index). Shared by every insert path
|
|
@@ -69,6 +70,9 @@ const CODE = {
|
|
|
69
70
|
RECOVER_ALL: 314,
|
|
70
71
|
CHANGE_EXP: 315,
|
|
71
72
|
CHANGE_LEVEL: 316,
|
|
73
|
+
CHANGE_ENEMY_STATE: 333,
|
|
74
|
+
ENEMY_APPEAR: 335,
|
|
75
|
+
ABORT_BATTLE: 340,
|
|
72
76
|
END_OF_LIST: 0,
|
|
73
77
|
};
|
|
74
78
|
/** Encode a switch/self-switch on/off value as the engine's code (0 on, 1 off). */
|
|
@@ -96,20 +100,34 @@ const POSITION_CODE = { top: 0, middle: 1, bottom: 2 };
|
|
|
96
100
|
const BACKGROUND_CODE = { window: 0, dim: 1, transparent: 2 };
|
|
97
101
|
/**
|
|
98
102
|
* Show Text (command 101 setup + one 401 line per text line). `lines` are the
|
|
99
|
-
* message lines;
|
|
100
|
-
*
|
|
101
|
-
*
|
|
103
|
+
* message lines; MZ does not word-wrap, so by default pass one entry per visual
|
|
104
|
+
* line you intend. With `wrap`, the lines are word-wrapped to the width the
|
|
105
|
+
* line-width check uses and split into as many 4-line boxes as needed, each with
|
|
106
|
+
* its own identical 101 setup. Face/background/position/speaker match the
|
|
107
|
+
* editor's Show Text dialog.
|
|
102
108
|
*/
|
|
103
109
|
export function showText(lines, options = {}) {
|
|
104
110
|
const indent = options.indent ?? 0;
|
|
105
|
-
const
|
|
106
|
-
|
|
111
|
+
const faceName = options.faceName ?? '';
|
|
112
|
+
const setup = () => cmd(CODE.SHOW_TEXT, indent, [
|
|
113
|
+
faceName,
|
|
107
114
|
options.faceIndex ?? 0,
|
|
108
115
|
BACKGROUND_CODE[options.background ?? 'window'],
|
|
109
116
|
POSITION_CODE[options.position ?? 'bottom'],
|
|
110
117
|
options.speakerName ?? '',
|
|
111
118
|
]);
|
|
112
|
-
|
|
119
|
+
const toLine = (line) => cmd(CODE.SHOW_TEXT_LINE, indent, [String(line)]);
|
|
120
|
+
if (!options.wrap)
|
|
121
|
+
return [setup(), ...lines.map(toLine)];
|
|
122
|
+
const mode = options.wrap === 'hard' ? 'hard' : 'soft';
|
|
123
|
+
const wrapped = wrapLines(lines, faceName !== '', mode, options.metrics ?? getActiveTextMetrics());
|
|
124
|
+
if (wrapped.length === 0)
|
|
125
|
+
return [setup()];
|
|
126
|
+
const out = [];
|
|
127
|
+
for (let i = 0; i < wrapped.length; i += MESSAGE_BOX_LINES) {
|
|
128
|
+
out.push(setup(), ...wrapped.slice(i, i + MESSAGE_BOX_LINES).map(toLine));
|
|
129
|
+
}
|
|
130
|
+
return out;
|
|
113
131
|
}
|
|
114
132
|
const CHOICE_POSITION_CODE = { left: 0, middle: 1, right: 2 };
|
|
115
133
|
/**
|
|
@@ -551,4 +569,39 @@ export function changeLevel(target, operation, operand, showLevelUp = false, ind
|
|
|
551
569
|
showLevelUp,
|
|
552
570
|
]);
|
|
553
571
|
}
|
|
572
|
+
// --- Battle (troop battle-event) commands ---
|
|
573
|
+
/**
|
|
574
|
+
* Enemy Appear (command 335) — reveal a troop member that started `hidden` (a
|
|
575
|
+
* mid-battle summon / reinforcement). `enemyIndex` is the 0-based troop slot
|
|
576
|
+
* (`members[]` order), NOT an enemy id. On disk: `[enemyIndex]`.
|
|
577
|
+
*/
|
|
578
|
+
export function enemyAppear(enemyIndex, indent = 0) {
|
|
579
|
+
if (!Number.isInteger(enemyIndex) || enemyIndex < 0) {
|
|
580
|
+
throw new Error(`enemyAppear needs a 0-based troop slot index, got ${enemyIndex}`);
|
|
581
|
+
}
|
|
582
|
+
return cmd(CODE.ENEMY_APPEAR, indent, [enemyIndex]);
|
|
583
|
+
}
|
|
584
|
+
/**
|
|
585
|
+
* Change Enemy State (command 333) — add or remove a state on one troop member
|
|
586
|
+
* (0-based slot) or the entire troop (`enemyIndex` -1). On disk:
|
|
587
|
+
* `[enemyIndex, operation(0 add/1 remove), stateId]`.
|
|
588
|
+
*/
|
|
589
|
+
export function changeEnemyState(enemyIndex, operation, stateId, indent = 0) {
|
|
590
|
+
if (!Number.isInteger(enemyIndex) || enemyIndex < -1) {
|
|
591
|
+
throw new Error(`changeEnemyState needs a troop slot index (or -1 = entire troop), got ${enemyIndex}`);
|
|
592
|
+
}
|
|
593
|
+
return cmd(CODE.CHANGE_ENEMY_STATE, indent, [
|
|
594
|
+
enemyIndex,
|
|
595
|
+
operation === 'remove' ? 1 : 0,
|
|
596
|
+
stateId,
|
|
597
|
+
]);
|
|
598
|
+
}
|
|
599
|
+
/**
|
|
600
|
+
* Abort Battle (command 340) — end the battle immediately with no victory or
|
|
601
|
+
* defeat (the "yield" fight); a Battle Processing with canEscape takes its
|
|
602
|
+
* Escape branch. Parameterless on disk.
|
|
603
|
+
*/
|
|
604
|
+
export function abortBattle(indent = 0) {
|
|
605
|
+
return cmd(CODE.ABORT_BATTLE, indent);
|
|
606
|
+
}
|
|
554
607
|
//# sourceMappingURL=commandBuilders.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandBuilders.js","sourceRoot":"","sources":["../../src/events/commandBuilders.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"commandBuilders.js","sourceRoot":"","sources":["../../src/events/commandBuilders.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EAGjB,oBAAoB,EACpB,SAAS,GACV,MAAM,8BAA8B,CAAC;AAEtC;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,IAAoB,EACpB,QAAwB,EACxB,QAAiB;IAEjB,MAAM,QAAQ,GACZ,QAAQ,KAAK,SAAS,IAAI,QAAQ,IAAI,CAAC,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;QACnE,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,0CAA0C;IACjE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC;AACxC,CAAC;AAED;;;;;;;;;;;GAWG;AAEH,qDAAqD;AACrD,MAAM,IAAI,GAAG;IACX,SAAS,EAAE,GAAG;IACd,cAAc,EAAE,GAAG;IACnB,YAAY,EAAE,GAAG;IACjB,WAAW,EAAE,GAAG;IAChB,WAAW,EAAE,GAAG;IAChB,WAAW,EAAE,GAAG;IAChB,kBAAkB,EAAE,GAAG;IACvB,IAAI,EAAE,GAAG;IACT,UAAU,EAAE,GAAG;IACf,UAAU,EAAE,GAAG;IACf,KAAK,EAAE,GAAG;IACV,aAAa,EAAE,GAAG;IAClB,gBAAgB,EAAE,GAAG;IACrB,iBAAiB,EAAE,GAAG;IACtB,mBAAmB,EAAE,GAAG;IACxB,WAAW,EAAE,GAAG;IAChB,YAAY,EAAE,GAAG;IACjB,cAAc,EAAE,GAAG;IACnB,aAAa,EAAE,GAAG;IAClB,mBAAmB,EAAE,GAAG;IACxB,eAAe,EAAE,GAAG;IACpB,cAAc,EAAE,GAAG;IACnB,YAAY,EAAE,GAAG;IACjB,cAAc,EAAE,GAAG;IACnB,aAAa,EAAE,GAAG;IAClB,WAAW,EAAE,GAAG;IAChB,YAAY,EAAE,GAAG;IACjB,YAAY,EAAE,GAAG;IACjB,IAAI,EAAE,GAAG;IACT,YAAY,EAAE,GAAG;IACjB,aAAa,EAAE,GAAG;IAClB,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,GAAG;IACZ,iBAAiB,EAAE,GAAG;IACtB,eAAe,EAAE,GAAG;IACpB,UAAU,EAAE,GAAG;IACf,UAAU,EAAE,GAAG;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,YAAY,EAAE,GAAG;IACjB,WAAW,EAAE,GAAG;IAChB,UAAU,EAAE,GAAG;IACf,YAAY,EAAE,GAAG;IACjB,kBAAkB,EAAE,GAAG;IACvB,YAAY,EAAE,GAAG;IACjB,YAAY,EAAE,GAAG;IACjB,WAAW,EAAE,CAAC;CACN,CAAC;AAEX,mFAAmF;AACnF,MAAM,KAAK,GAAG,CAAC,KAAoB,EAAU,EAAE,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE1E,uEAAuE;AACvE,SAAS,GAAG,CAAC,IAAY,EAAE,MAAc,EAAE,aAAwB,EAAE;IACnE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AACtC,CAAC;AAED;;;;;GAKG;AACH,SAAS,UAAU,CAAC,IAAgC,EAAE,WAAmB;IACvE,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;IAC5B,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAC/B,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,EACxC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CACnC,CAAC;IACF,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACjC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,SAAS,GAAG,WAAW,EAAE;QACrD,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;KACrD,CAAC,CACH,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;IACjD,OAAO,OAAO,CAAC;AACjB,CAAC;AAOD,MAAM,aAAa,GAAiC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AACrF,MAAM,eAAe,GAAmC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;AAyB9F;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAe,EAAE,UAA2B,EAAE;IACrE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,GAAiB,EAAE,CAC/B,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE;QAC1B,QAAQ;QACR,OAAO,CAAC,SAAS,IAAI,CAAC;QACtB,eAAe,CAAC,OAAO,CAAC,UAAU,IAAI,QAAQ,CAAC;QAC/C,aAAa,CAAC,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC;QAC3C,OAAO,CAAC,WAAW,IAAI,EAAE;KAC1B,CAAC,CAAC;IACL,MAAM,MAAM,GAAG,CAAC,IAAY,EAAgB,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEhG,IAAI,CAAC,OAAO,CAAC,IAAI;QAAE,OAAO,CAAC,KAAK,EAAE,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAE1D,MAAM,IAAI,GAAa,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IACjE,MAAM,OAAO,GAAG,SAAS,CACvB,KAAK,EACL,QAAQ,KAAK,EAAE,EACf,IAAI,EACJ,OAAO,CAAC,OAAO,IAAI,oBAAoB,EAAE,CAC1C,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAmB,EAAE,CAAC;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,iBAAiB,EAAE,CAAC;QAC3D,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAID,MAAM,oBAAoB,GAAmC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AAuB9F;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,OAAiB,EAAE,UAA8B,EAAE;IAC7E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC;IACzB,MAAM,eAAe,GAAG,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC;IAC3D,MAAM,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC;IAEjF,MAAM,GAAG,GAAmB;QAC1B,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE;YAC7B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC7B,UAAU;YACV,OAAO,CAAC,WAAW,IAAI,CAAC;YACxB,oBAAoB,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC;YACjD,eAAe,CAAC,OAAO,CAAC,UAAU,IAAI,QAAQ,CAAC;SAChD,CAAC;KACH,CAAC;IAEF,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC5B,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,GAAG,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,IAAI,eAAe,EAAE,CAAC;QACpB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;QACxC,GAAG,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IACxC,OAAO,GAAG,CAAC;AACb,CAAC;AAID,MAAM,eAAe,GAA+B;IAClD,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,IAAI,EAAE,CAAC;CACR,CAAC;AAGF,MAAM,iBAAiB,GAAgC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AAuBpF,yEAAyE;AACzE,MAAM,UAAU,mBAAmB,CAAC,SAA0B;IAC5D,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,QAAQ;YACX,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,KAAK,aAAa;YAChB,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,MAAM,GAAG,SAAS,CAAC,eAAe,KAAK,SAAS,CAAC;YACvD,OAAO;gBACL,CAAC;gBACD,SAAS,CAAC,UAAU;gBACpB,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACd,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,IAAI,CAAC,CAAC;gBAC9D,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC;aACtC,CAAC;QACJ,CAAC;QACD,KAAK,gBAAgB;YACnB,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACnC,KAAK,MAAM;YACT,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,EAAE,iBAAiB,CAAC,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC;QAC5E,KAAK,MAAM;YACT,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAWD;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAA0B,EAC1B,UAAoC,EAAE;IAEtC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC;IAEzB,MAAM,GAAG,GAAmB;QAC1B,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACpE,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC;KACzC,CAAC;IAEF,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACrC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QACjC,GAAG,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IACvC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,IAAI,CAAC,MAAc,EAAE,MAAM,GAAG,CAAC;IAC7C,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,SAAS,CAAC,MAAM,GAAG,CAAC;IAClC,OAAO,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;AAC1C,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,KAAK,CAAC,IAAY,EAAE,MAAM,GAAG,CAAC;IAC5C,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,MAAM,GAAG,CAAC;IAClD,OAAO,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,0BAA0B;AAE1B;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAe,EACf,KAAa,EACb,QAAsB,IAAI,EAC1B,MAAM,GAAG,CAAC;IAEV,OAAO,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAA2B,EAC3B,QAAsB,IAAI,EAC1B,MAAM,GAAG,CAAC;IAEV,OAAO,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC;AAID,MAAM,uBAAuB,GAAsC;IACjE,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;CACP,CAAC;AAcF,6FAA6F;AAC7F,SAAS,qBAAqB,CAAC,OAAwB;IACrD,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,UAAU;YACb,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5B,KAAK,UAAU;YACb,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QACjC,KAAK,QAAQ;YACX,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACvC,KAAK,WAAW;YACd,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AASD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,UAAkB,EAClB,SAA4B,EAC5B,OAAwB,EACxB,UAAmC,EAAE;IAErC,OAAO,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;QACtD,UAAU;QACV,OAAO,CAAC,KAAK,IAAI,UAAU;QAC3B,uBAAuB,CAAC,SAAS,CAAC;QAClC,GAAG,qBAAqB,CAAC,OAAO,CAAC;KAClC,CAAC,CAAC;AACL,CAAC;AAQD;;;GAGG;AACH,SAAS,kBAAkB,CAAC,SAAwB,EAAE,OAAoB;IACxE,MAAM,MAAM,GAAG,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,OAAO,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AACpG,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,UAAU,CACxB,SAAwB,EACxB,OAAoB,EACpB,MAAM,GAAG,CAAC;IAEV,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,MAAc,EACd,SAAwB,EACxB,OAAoB,EACpB,MAAM,GAAG,CAAC;IAEV,OAAO,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC3B,QAAgB,EAChB,SAAwB,EACxB,OAAoB,EACpB,YAAY,GAAG,KAAK,EACpB,MAAM,GAAG,CAAC;IAEV,OAAO,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE;QACtC,QAAQ;QACR,GAAG,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC;QACzC,YAAY;KACb,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,OAAe,EACf,SAAwB,EACxB,OAAoB,EACpB,YAAY,GAAG,KAAK,EACpB,MAAM,GAAG,CAAC;IAEV,OAAO,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE;QACrC,OAAO;QACP,GAAG,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC;QACzC,YAAY;KACb,CAAC,CAAC;AACL,CAAC;AAKD;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAe,EACf,SAA+B,EAC/B,UAAU,GAAG,KAAK,EAClB,MAAM,GAAG,CAAC;IAEV,OAAO,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,EAAE;QAC3C,OAAO;QACP,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,UAAU;KACX,CAAC,CAAC;AACL,CAAC;AAMD,MAAM,uBAAuB,GAAsC;IACjE,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;IACR,EAAE,EAAE,CAAC;CACN,CAAC;AAGF,MAAM,kBAAkB,GAAiC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AAgBzF;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAa,EACb,CAAS,EACT,CAAS,EACT,UAAiC,EAAE;IAEnC,OAAO,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;QACpD,OAAO,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,KAAK;QACL,CAAC;QACD,CAAC;QACD,uBAAuB,CAAC,OAAO,CAAC,SAAS,IAAI,QAAQ,CAAC;QACtD,kBAAkB,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC;KAC5C,CAAC,CAAC;AACL,CAAC;AAgBD,MAAM,UAAU,GAA8B;IAC5C,GAAG,EAAE,IAAI,CAAC,QAAQ;IAClB,GAAG,EAAE,IAAI,CAAC,QAAQ;IAClB,EAAE,EAAE,IAAI,CAAC,OAAO;IAChB,EAAE,EAAE,IAAI,CAAC,OAAO;CACjB,CAAC;AAEF,0FAA0F;AAC1F,SAAS,UAAU,CAAC,KAAiB;IACnC,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE;QAC1B,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,GAAG;QACzB,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC;KACpB,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,IAAe,EAAE,KAAiB,EAAE,MAAM,GAAG,CAAC;IACtE,OAAO,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC;AAKD;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,SAAqB,EAAE,MAAM,GAAG,CAAC;IAC1D,OAAO,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;AACxF,CAAC;AAKD;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,IAAe,EAAE,QAAQ,GAAG,EAAE,EAAE,IAAI,GAAG,IAAI,EAAE,MAAM,GAAG,CAAC;IAChF,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,KAAgB,EAChB,QAAQ,GAAG,EAAE,EACb,IAAI,GAAG,IAAI,EACX,MAAM,GAAG,CAAC;IAEV,OAAO,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;AACjE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,KAAK,GAAG,CAAC,EACT,KAAK,GAAG,CAAC,EACT,QAAQ,GAAG,EAAE,EACb,IAAI,GAAG,IAAI,EACX,MAAM,GAAG,CAAC;IAEV,OAAO,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;AACxE,CAAC;AAID,MAAM,mBAAmB,GAAkC,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AAGxF,MAAM,eAAe,GAA8B;IACjD,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,CAAC;IACX,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE,CAAC;CACV,CAAC;AAqBF;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CACzB,SAAiB,EACjB,IAAY,EACZ,UAA8B,EAAE;IAEhC,OAAO,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;QACjD,SAAS;QACT,IAAI;QACJ,mBAAmB,CAAC,OAAO,CAAC,MAAM,IAAI,YAAY,CAAC;QACnD,CAAC;QACD,OAAO,CAAC,CAAC,IAAI,CAAC;QACd,OAAO,CAAC,CAAC,IAAI,CAAC;QACd,OAAO,CAAC,MAAM,IAAI,GAAG;QACrB,OAAO,CAAC,MAAM,IAAI,GAAG;QACrB,OAAO,CAAC,OAAO,IAAI,GAAG;QACtB,eAAe,CAAC,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC;KAC3C,CAAC,CAAC;AACL,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,YAAY,CAAC,SAAiB,EAAE,MAAM,GAAG,CAAC;IACxD,OAAO,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AACtD,CAAC;AAQD;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC3B,WAA4B,EAC5B,WAAmB,EACnB,IAAI,GAAG,KAAK,EACZ,MAAM,GAAG,CAAC;IAEV,OAAO,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,WAA4B,EAC5B,SAAiB,EACjB,IAAI,GAAG,KAAK,EACZ,MAAM,GAAG,CAAC;IAEV,OAAO,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;AACxE,CAAC;AAaD;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAkB,EAClB,SAAS,GAAG,KAAK,EACjB,OAAO,GAAG,KAAK,EACf,MAAM,GAAG,CAAC;IAEV,MAAM,WAAW,GACf,KAAK,CAAC,IAAI,KAAK,UAAU;QACvB,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC;QACvB,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ;YACvB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACR,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,OAAO,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC,GAAG,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;AACnF,CAAC;AAWD,MAAM,mBAAmB,GAAqC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AAE/F,oFAAoF;AACpF,SAAS,cAAc,CAAC,IAAc;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC;IACzC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9F,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAiB,EACjB,YAAY,GAAG,KAAK,EACpB,MAAM,GAAG,CAAC;IAEV,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC;IAC/B,MAAM,GAAG,GAAmB;QAC1B,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC;KAC5E,CAAC;IACF,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACrF,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,OAAe,EAAE,SAAS,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC;IAClE,OAAO,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;AAC5D,CAAC;AAUD,kFAAkF;AAClF,SAAS,iBAAiB,CAAC,MAAmB;IAC5C,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;AACnF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CACtB,MAAmB,EACnB,SAAwB,EACxB,OAAoB,EACpB,aAAa,GAAG,KAAK,EACrB,MAAM,GAAG,CAAC;IAEV,OAAO,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE;QACjC,GAAG,iBAAiB,CAAC,MAAM,CAAC;QAC5B,GAAG,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC;QACzC,aAAa;KACd,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CACtB,MAAmB,EACnB,SAAwB,EACxB,OAAoB,EACpB,MAAM,GAAG,CAAC;IAEV,OAAO,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE;QACjC,GAAG,iBAAiB,CAAC,MAAM,CAAC;QAC5B,GAAG,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC;KAC1C,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,MAAmB,EACnB,SAA2B,EAC3B,OAAe,EACf,MAAM,GAAG,CAAC;IAEV,OAAO,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE;QACpC,GAAG,iBAAiB,CAAC,MAAM,CAAC;QAC5B,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,UAAU,CAAC,MAAmB,EAAE,MAAM,GAAG,CAAC;IACxD,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CACvB,MAAmB,EACnB,SAAwB,EACxB,OAAoB,EACpB,WAAW,GAAG,KAAK,EACnB,MAAM,GAAG,CAAC;IAEV,OAAO,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE;QAClC,GAAG,iBAAiB,CAAC,MAAM,CAAC;QAC5B,GAAG,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC;QACzC,WAAW;KACZ,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CACzB,MAAmB,EACnB,SAAwB,EACxB,OAAoB,EACpB,WAAW,GAAG,KAAK,EACnB,MAAM,GAAG,CAAC;IAEV,OAAO,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE;QACpC,GAAG,iBAAiB,CAAC,MAAM,CAAC;QAC5B,GAAG,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC;QACzC,WAAW;KACZ,CAAC,CAAC;AACL,CAAC;AAED,+CAA+C;AAE/C;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,UAAkB,EAAE,MAAM,GAAG,CAAC;IACxD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,qDAAqD,UAAU,EAAE,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;AACtD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,UAAkB,EAClB,SAA2B,EAC3B,OAAe,EACf,MAAM,GAAG,CAAC;IAEV,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CACb,yEAAyE,UAAU,EAAE,CACtF,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,EAAE;QAC1C,UAAU;QACV,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,MAAM,GAAG,CAAC;IACpC,OAAO,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AACxC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -3,6 +3,7 @@ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
|
3
3
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
4
4
|
import { basename } from 'path';
|
|
5
5
|
import { readFileSync } from 'fs';
|
|
6
|
+
import { readFile } from 'fs/promises';
|
|
6
7
|
import { validateProjectPath } from './utils/fileHandler.js';
|
|
7
8
|
import { buildRegistry, schemaFor, shapeResult } from './registry.js';
|
|
8
9
|
import { commitStore } from './utils/commit.js';
|
|
@@ -67,6 +68,34 @@ async function runTool(tool, ctx, args) {
|
|
|
67
68
|
...(wouldReturn === undefined ? {} : { wouldReturn }),
|
|
68
69
|
};
|
|
69
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* Build a `reportProgress` hook for one tool call, or undefined when the client
|
|
73
|
+
* didn't ask for progress (no `progressToken`). Notifications are fire-and-forget
|
|
74
|
+
* — a lost one must never fail the tool — and a `progress` that doesn't increase
|
|
75
|
+
* is dropped, since the spec requires it to grow with every notification.
|
|
76
|
+
*/
|
|
77
|
+
function progressReporter(extra) {
|
|
78
|
+
const progressToken = extra?._meta?.progressToken;
|
|
79
|
+
if (progressToken === undefined)
|
|
80
|
+
return undefined;
|
|
81
|
+
let last = -Infinity;
|
|
82
|
+
return (progress, total, message) => {
|
|
83
|
+
if (!(progress > last))
|
|
84
|
+
return;
|
|
85
|
+
last = progress;
|
|
86
|
+
extra
|
|
87
|
+
.sendNotification({
|
|
88
|
+
method: 'notifications/progress',
|
|
89
|
+
params: {
|
|
90
|
+
progressToken,
|
|
91
|
+
progress,
|
|
92
|
+
...(total !== undefined ? { total } : {}),
|
|
93
|
+
...(message ? { message } : {}),
|
|
94
|
+
},
|
|
95
|
+
})
|
|
96
|
+
.catch(() => undefined);
|
|
97
|
+
};
|
|
98
|
+
}
|
|
70
99
|
function buildServer(initialProjectPath) {
|
|
71
100
|
const server = new McpServer({ name: 'rpgmaker-mz-server', version: serverVersion() });
|
|
72
101
|
// The project path is session state, not a constant: it starts from the env
|
|
@@ -78,7 +107,7 @@ function buildServer(initialProjectPath) {
|
|
|
78
107
|
// Fail loudly on duplicate tool names before wiring anything up.
|
|
79
108
|
buildRegistry(allToolDefinitions);
|
|
80
109
|
for (const def of allToolDefinitions) {
|
|
81
|
-
server.registerTool(def.name, { description: def.description, inputSchema: schemaFor(def) }, async (args) => {
|
|
110
|
+
server.registerTool(def.name, { description: def.description, inputSchema: schemaFor(def) }, async (args, extra) => {
|
|
82
111
|
try {
|
|
83
112
|
if (def.requiresProject !== false) {
|
|
84
113
|
if (!projectPath) {
|
|
@@ -94,8 +123,21 @@ function buildServer(initialProjectPath) {
|
|
|
94
123
|
// Cached by mtime, fails soft to the built-in character estimate.
|
|
95
124
|
setActiveTextMetrics(await loadProjectTextMetrics(projectPath));
|
|
96
125
|
}
|
|
97
|
-
const
|
|
98
|
-
|
|
126
|
+
const reportProgress = progressReporter(extra);
|
|
127
|
+
const result = await runTool(def, { projectPath, setProjectPath, reportProgress }, args);
|
|
128
|
+
const content = [
|
|
129
|
+
{ type: 'text', text: JSON.stringify(result, null, 2) },
|
|
130
|
+
];
|
|
131
|
+
for (const file of def.images?.(result, args) ?? []) {
|
|
132
|
+
try {
|
|
133
|
+
const data = (await readFile(file)).toString('base64');
|
|
134
|
+
content.push({ type: 'image', data, mimeType: 'image/png' });
|
|
135
|
+
}
|
|
136
|
+
catch {
|
|
137
|
+
// The path is already in the JSON text; a missing file just isn't inlined.
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return { content };
|
|
99
141
|
}
|
|
100
142
|
catch (error) {
|
|
101
143
|
const message = error instanceof Error ? error.message : String(error);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|