rpgmaker-mz-mcp 1.1.0 → 1.2.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 +24 -5
- package/dist/tools/allTools.d.ts.map +1 -1
- package/dist/tools/allTools.js +2 -0
- package/dist/tools/allTools.js.map +1 -1
- package/dist/tools/idTools.d.ts +75 -0
- package/dist/tools/idTools.d.ts.map +1 -0
- package/dist/tools/idTools.js +183 -0
- package/dist/tools/idTools.js.map +1 -0
- package/dist/tools/systemTools.d.ts +4 -2
- package/dist/tools/systemTools.d.ts.map +1 -1
- package/dist/tools/systemTools.js +45 -8
- package/dist/tools/systemTools.js.map +1 -1
- package/dist/tools/validationTools.d.ts +11 -1
- package/dist/tools/validationTools.d.ts.map +1 -1
- package/dist/tools/validationTools.js +4 -1
- package/dist/tools/validationTools.js.map +1 -1
- package/dist/validation/idUsage.d.ts +44 -0
- package/dist/validation/idUsage.d.ts.map +1 -0
- package/dist/validation/idUsage.js +273 -0
- package/dist/validation/idUsage.js.map +1 -0
- package/package.json +1 -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
|
+
**119 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
|
|
|
@@ -144,7 +144,7 @@ The easiest path is the `.mcpb` bundle from [Releases](https://github.com/Redseb
|
|
|
144
144
|
|
|
145
145
|
## Available tools
|
|
146
146
|
|
|
147
|
-
All
|
|
147
|
+
All 119 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
148
|
|
|
149
149
|
<details>
|
|
150
150
|
<summary><strong>Expand the full tool reference</strong></summary>
|
|
@@ -271,6 +271,11 @@ Read-only builders that return editor-faithful `EventCommand` sequences; land th
|
|
|
271
271
|
- `validate_event`, `validate_project` — event-command-shape validation (read-only)
|
|
272
272
|
- `validate_references` — cross-file id-integrity audit (party→actor, transfer→map, effect→state/skill/common-event, drops→item, map-tree cycles, …)
|
|
273
273
|
|
|
274
|
+
### ID allocation
|
|
275
|
+
|
|
276
|
+
- `list_allocated_ids` — which switch / variable / common-event IDs are already spoken for, derived from the project's own JSON; with `id`, every place that one is referenced
|
|
277
|
+
- `next_free_id` — reserve the next unallocated ID(s) instead of picking one by hand
|
|
278
|
+
|
|
274
279
|
</details>
|
|
275
280
|
|
|
276
281
|
## Input validation
|
|
@@ -292,6 +297,16 @@ Because the check runs *before* the commit, a `dryRun` of a write that would be
|
|
|
292
297
|
|
|
293
298
|
`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.
|
|
294
299
|
|
|
300
|
+
## ID allocation
|
|
301
|
+
|
|
302
|
+
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.
|
|
303
|
+
|
|
304
|
+
`list_allocated_ids` answers "what's taken?" **from the project files themselves** — never a hand-maintained list, which would drift the moment someone edited in the RPG Maker editor. An ID counts as allocated if it is *declared* (a `System.json` label, a `CommonEvents` row) **or** *referenced* anywhere: event page conditions and command lists, common events, troop pages, and Common Event skill/item effects. Both halves matter — a named-but-unused switch is a claim someone staked, and a used-but-unnamed one is a claim nobody wrote down. Pass `id` to ask the narrower question: where is switch 23 actually used, before I touch it?
|
|
305
|
+
|
|
306
|
+
`next_free_id` hands back the next unallocated ID(s), strictly above everything already taken. Holes below the highest ID are left alone by default (a hole is often an ID claimed in notes but not yet written); `reuseGaps: true` fills them when you're compacting deliberately. It's read-only — it suggests IDs, it doesn't write them, so name what you take with `set_switch_name` / `set_variable_name` to make the claim visible to whoever edits next. Those two grow the `System.json` name list when the ID is past the end, so an ID from `next_free_id` can always be labelled without opening the editor.
|
|
307
|
+
|
|
308
|
+
Like the command validator, the usage scan is **curated, not exhaustive**: it covers the commands that carry switch/variable IDs (Control Switches/Variables, Conditional Branch, the "designation by variable" forms of Transfer Player, Change Gold/Items, Change HP/MP/EXP/Level, …), and every report states the command codes it scanned. An ID used only from a `Script` (355) or a plugin command (357) will read as free.
|
|
309
|
+
|
|
295
310
|
## Dry-run preview
|
|
296
311
|
|
|
297
312
|
Every tool that writes to the project accepts an optional `dryRun` argument. When `dryRun: true`, the tool computes what it _would_ write and returns a diff instead of touching any files:
|
|
@@ -363,15 +378,19 @@ The advertised tool count lives in a few human-facing spots — the README prose
|
|
|
363
378
|
```bash
|
|
364
379
|
npm version minor # or patch/major — bumps package.json + tags
|
|
365
380
|
npm run sync:version # stamp the new version into the other manifests
|
|
366
|
-
git add -A && git commit --amend --no-edit
|
|
381
|
+
git add -A && git commit --amend --no-edit
|
|
382
|
+
git push && git push origin vX.Y.Z # amend rewrites the tagged commit, so push the tag explicitly
|
|
367
383
|
|
|
368
384
|
npm publish # publish to npm (runs the full gate via prepublishOnly)
|
|
369
385
|
mcp-publisher publish # update the MCP registry listing (server.json; login: mcp-publisher login github)
|
|
370
|
-
npm run bundle:mcpb # build rpgmaker-mz-mcp.mcpb
|
|
386
|
+
npm run bundle:mcpb # build rpgmaker-mz-mcp.mcpb
|
|
387
|
+
gh release create vX.Y.Z rpgmaker-mz-mcp.mcpb --title vX.Y.Z --notes "..." # publish the GitHub release + attach the bundle
|
|
371
388
|
```
|
|
372
389
|
|
|
373
390
|
The Claude Code plugin needs no separate publish — users' installs update from this repo (the plugin runs the npm package via `npx rpgmaker-mz-mcp@latest`, so bumping npm is what ships new tools).
|
|
374
391
|
|
|
392
|
+
`git commit --amend` rewrites the commit `npm version`'s tag points to, so `--follow-tags` on the next push won't pick it up — push the tag by name explicitly, and don't forget the `gh release create` step, since nothing before it actually creates the GitHub release.
|
|
393
|
+
|
|
375
394
|
## Project structure
|
|
376
395
|
|
|
377
396
|
```
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"allTools.d.ts","sourceRoot":"","sources":["../../src/tools/allTools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"allTools.d.ts","sourceRoot":"","sources":["../../src/tools/allTools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AA2BhD;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,cAAc,EA0B9C,CAAC"}
|
package/dist/tools/allTools.js
CHANGED
|
@@ -22,6 +22,7 @@ import { listToolDefinitions } from './listTools.js';
|
|
|
22
22
|
import { validationToolDefinitions } from './validationTools.js';
|
|
23
23
|
import { pluginScanToolDefinitions } from './pluginScanTools.js';
|
|
24
24
|
import { batchToolDefinitions } from './batchTools.js';
|
|
25
|
+
import { idToolDefinitions } from './idTools.js';
|
|
25
26
|
/**
|
|
26
27
|
* Every tool the server exposes, gathered from the per-domain tool modules.
|
|
27
28
|
* Kept in its own side-effect-free module so it can be imported by both the
|
|
@@ -50,6 +51,7 @@ export const allToolDefinitions = [
|
|
|
50
51
|
...assetToolDefinitions,
|
|
51
52
|
...listToolDefinitions,
|
|
52
53
|
...validationToolDefinitions,
|
|
54
|
+
...idToolDefinitions,
|
|
53
55
|
...batchToolDefinitions,
|
|
54
56
|
...pluginScanToolDefinitions,
|
|
55
57
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"allTools.js","sourceRoot":"","sources":["../../src/tools/allTools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"allTools.js","sourceRoot":"","sources":["../../src/tools/allTools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAqB;IAClD,GAAG,sBAAsB;IACzB,GAAG,oBAAoB;IACvB,GAAG,mBAAmB;IACtB,GAAG,oBAAoB;IACvB,GAAG,kBAAkB;IACrB,GAAG,qBAAqB;IACxB,GAAG,oBAAoB;IACvB,GAAG,oBAAoB;IACvB,GAAG,0BAA0B;IAC7B,GAAG,mBAAmB;IACtB,GAAG,2BAA2B;IAC9B,GAAG,wBAAwB;IAC3B,GAAG,qBAAqB;IACxB,GAAG,mBAAmB;IACtB,GAAG,sBAAsB;IACzB,GAAG,oBAAoB;IACvB,GAAG,qBAAqB;IACxB,GAAG,sBAAsB;IACzB,GAAG,qBAAqB;IACxB,GAAG,oBAAoB;IACvB,GAAG,mBAAmB;IACtB,GAAG,yBAAyB;IAC5B,GAAG,iBAAiB;IACpB,GAAG,oBAAoB;IACvB,GAAG,yBAAyB;CAC7B,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { ToolDefinition } from '../registry.js';
|
|
2
|
+
import { IdNamespace } from '../validation/idUsage.js';
|
|
3
|
+
/** One id that is spoken for, and why. */
|
|
4
|
+
export interface AllocatedId {
|
|
5
|
+
id: number;
|
|
6
|
+
/** The System.json label (switch/variable) or record name (common_event); `''` when unnamed. */
|
|
7
|
+
name: string;
|
|
8
|
+
/**
|
|
9
|
+
* Whether the id is *declared*: a non-empty System.json label, or a live
|
|
10
|
+
* CommonEvents row. An id that is referenced but not declared is still
|
|
11
|
+
* allocated — someone is using it — but nothing names it.
|
|
12
|
+
*/
|
|
13
|
+
declared: boolean;
|
|
14
|
+
referenceCount: number;
|
|
15
|
+
/** A sample of reference sites; `referenceCount` is the true total. */
|
|
16
|
+
referencedBy: Array<{
|
|
17
|
+
path: string;
|
|
18
|
+
via: string;
|
|
19
|
+
}>;
|
|
20
|
+
}
|
|
21
|
+
export interface AllocationReport {
|
|
22
|
+
type: IdNamespace;
|
|
23
|
+
count: number;
|
|
24
|
+
/** Highest allocated id, or 0 when nothing is allocated. */
|
|
25
|
+
highest: number;
|
|
26
|
+
/** Unallocated ids below `highest` — holes left by deletions or sparse picking. */
|
|
27
|
+
gaps: number[];
|
|
28
|
+
/**
|
|
29
|
+
* switch/variable only: how many ids System.json declares slots for. Ids above
|
|
30
|
+
* this still work at runtime, but the editor won't show a name for them until
|
|
31
|
+
* the array grows (`set_switch_name`/`set_variable_name` grow it).
|
|
32
|
+
*/
|
|
33
|
+
declaredCapacity?: number;
|
|
34
|
+
allocated: AllocatedId[];
|
|
35
|
+
/** What this scan does and doesn't see. */
|
|
36
|
+
coverage: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Every id of one namespace that is spoken for, derived from the project files.
|
|
40
|
+
*
|
|
41
|
+
* "Allocated" means declared (a System.json label / a CommonEvents row) **or**
|
|
42
|
+
* referenced anywhere. Both halves matter: a named-but-unused switch is a claim
|
|
43
|
+
* a previous session staked, and a used-but-unnamed one is a claim nobody wrote
|
|
44
|
+
* down. Handing either out again produces the failure this exists to prevent —
|
|
45
|
+
* silent, no crash, surfacing hours into a playtest as a door that's already
|
|
46
|
+
* open.
|
|
47
|
+
*
|
|
48
|
+
* With `id`, reports just that one id (including `allocated: false` if it's
|
|
49
|
+
* free) with a fuller list of reference sites — "where is switch 23 used?".
|
|
50
|
+
*/
|
|
51
|
+
export declare function listAllocatedIds(projectPath: string, type: IdNamespace, id?: number): Promise<AllocationReport | (AllocatedId & {
|
|
52
|
+
type: IdNamespace;
|
|
53
|
+
allocated: boolean;
|
|
54
|
+
})>;
|
|
55
|
+
export interface NextFreeIdResult {
|
|
56
|
+
type: IdNamespace;
|
|
57
|
+
ids: number[];
|
|
58
|
+
/** `append` = above every allocated id; `gap-fill` = holes first, then append. */
|
|
59
|
+
strategy: 'append' | 'gap-fill';
|
|
60
|
+
highest: number;
|
|
61
|
+
declaredCapacity?: number;
|
|
62
|
+
warnings: string[];
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Hand back the next unallocated id(s) so a session never picks one by hand.
|
|
66
|
+
*
|
|
67
|
+
* Defaults to **append** — strictly above every id already spoken for. Holes are
|
|
68
|
+
* left alone by default on purpose: a gap is usually an id a *concurrent or
|
|
69
|
+
* recent* session has claimed in its notes but not yet written into the project,
|
|
70
|
+
* and reusing it is exactly the collision this tool exists to prevent. Pass
|
|
71
|
+
* `reuseGaps` when compacting a project deliberately.
|
|
72
|
+
*/
|
|
73
|
+
export declare function nextFreeId(projectPath: string, type: IdNamespace, count?: number, reuseGaps?: boolean): Promise<NextFreeIdResult>;
|
|
74
|
+
export declare const idToolDefinitions: ToolDefinition[];
|
|
75
|
+
//# sourceMappingURL=idTools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"idTools.d.ts","sourceRoot":"","sources":["../../src/tools/idTools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD,OAAO,EACL,WAAW,EAIZ,MAAM,0BAA0B,CAAC;AAYlC,0CAA0C;AAC1C,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,gGAAgG;IAChG,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,uEAAuE;IACvE,YAAY,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAC;IAChB,mFAAmF;IACnF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,WAAW,EAAE,CAAC;IACzB,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAsDD;;;;;;;;;;;;GAYG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,WAAW,EACjB,EAAE,CAAC,EAAE,MAAM,GACV,OAAO,CAAC,gBAAgB,GAAG,CAAC,WAAW,GAAG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC,CAwCvF;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,WAAW,CAAC;IAClB,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,kFAAkF;IAClF,QAAQ,EAAE,QAAQ,GAAG,UAAU,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,wBAAsB,UAAU,CAC9B,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,WAAW,EACjB,KAAK,SAAI,EACT,SAAS,UAAQ,GAChB,OAAO,CAAC,gBAAgB,CAAC,CAiC3B;AAKD,eAAO,MAAM,iBAAiB,EAAE,cAAc,EAsC7C,CAAC"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { loadProjectData } from './validationTools.js';
|
|
3
|
+
import { scanIdUsage, scannedCommandCodes, } from '../validation/idUsage.js';
|
|
4
|
+
const ID_NAMESPACES = ['switch', 'variable', 'common_event'];
|
|
5
|
+
/** How many reference sites are listed per id in a whole-namespace listing. */
|
|
6
|
+
const REFERENCE_SAMPLE = 3;
|
|
7
|
+
/** …and when the caller asked about one specific id, where the detail is the point. */
|
|
8
|
+
const REFERENCE_SAMPLE_SINGLE = 50;
|
|
9
|
+
/** Ceiling on ids handed out, so a corrupt project can't produce an absurd suggestion. */
|
|
10
|
+
const MAX_ID = 5000;
|
|
11
|
+
/** Group raw reference hits by id. */
|
|
12
|
+
function byId(refs) {
|
|
13
|
+
const grouped = new Map();
|
|
14
|
+
for (const ref of refs) {
|
|
15
|
+
const existing = grouped.get(ref.id);
|
|
16
|
+
if (existing)
|
|
17
|
+
existing.push(ref);
|
|
18
|
+
else
|
|
19
|
+
grouped.set(ref.id, [ref]);
|
|
20
|
+
}
|
|
21
|
+
return grouped;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* The declared label for every id of a namespace: the System.json `switches` /
|
|
25
|
+
* `variables` arrays, or common-event record names. Only non-empty labels count
|
|
26
|
+
* — RPG Maker pads both arrays with `''` for every unused slot, so an empty
|
|
27
|
+
* string means "slot exists, nobody claimed it".
|
|
28
|
+
*/
|
|
29
|
+
function declaredNames(data, ns) {
|
|
30
|
+
const names = new Map();
|
|
31
|
+
if (ns === 'common_event') {
|
|
32
|
+
for (const commonEvent of data.commonEvents) {
|
|
33
|
+
if (commonEvent)
|
|
34
|
+
names.set(commonEvent.id, commonEvent.name ?? '');
|
|
35
|
+
}
|
|
36
|
+
return names;
|
|
37
|
+
}
|
|
38
|
+
const labels = ns === 'switch' ? data.system?.switches : data.system?.variables;
|
|
39
|
+
if (Array.isArray(labels)) {
|
|
40
|
+
labels.forEach((label, id) => {
|
|
41
|
+
if (id > 0 && typeof label === 'string' && label !== '')
|
|
42
|
+
names.set(id, label);
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
return names;
|
|
46
|
+
}
|
|
47
|
+
/** How many ids System.json declares slots for (`undefined` for common events). */
|
|
48
|
+
function declaredCapacity(data, ns) {
|
|
49
|
+
if (ns === 'common_event')
|
|
50
|
+
return undefined;
|
|
51
|
+
const labels = ns === 'switch' ? data.system?.switches : data.system?.variables;
|
|
52
|
+
return Array.isArray(labels) ? Math.max(labels.length - 1, 0) : undefined;
|
|
53
|
+
}
|
|
54
|
+
function coverageNote(ns) {
|
|
55
|
+
const codes = scannedCommandCodes(ns).join(', ');
|
|
56
|
+
return (`Derived from the project's own JSON — event pages (conditions + commands), common events, and troop pages. ` +
|
|
57
|
+
`Command codes scanned for ${ns} ids: ${codes}. Like the command validator this table is curated, not exhaustive: ` +
|
|
58
|
+
`an id used only from a Script (355) or a plugin command (357) will read as free.`);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Every id of one namespace that is spoken for, derived from the project files.
|
|
62
|
+
*
|
|
63
|
+
* "Allocated" means declared (a System.json label / a CommonEvents row) **or**
|
|
64
|
+
* referenced anywhere. Both halves matter: a named-but-unused switch is a claim
|
|
65
|
+
* a previous session staked, and a used-but-unnamed one is a claim nobody wrote
|
|
66
|
+
* down. Handing either out again produces the failure this exists to prevent —
|
|
67
|
+
* silent, no crash, surfacing hours into a playtest as a door that's already
|
|
68
|
+
* open.
|
|
69
|
+
*
|
|
70
|
+
* With `id`, reports just that one id (including `allocated: false` if it's
|
|
71
|
+
* free) with a fuller list of reference sites — "where is switch 23 used?".
|
|
72
|
+
*/
|
|
73
|
+
export async function listAllocatedIds(projectPath, type, id) {
|
|
74
|
+
const data = await loadProjectData(projectPath);
|
|
75
|
+
const refs = byId(scanIdUsage(data, type));
|
|
76
|
+
const names = declaredNames(data, type);
|
|
77
|
+
const build = (target, sample) => {
|
|
78
|
+
const hits = refs.get(target) ?? [];
|
|
79
|
+
return {
|
|
80
|
+
id: target,
|
|
81
|
+
name: names.get(target) ?? '',
|
|
82
|
+
declared: names.has(target),
|
|
83
|
+
referenceCount: hits.length,
|
|
84
|
+
referencedBy: hits.slice(0, sample).map(({ path, via }) => ({ path, via })),
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
if (id !== undefined) {
|
|
88
|
+
const entry = build(id, REFERENCE_SAMPLE_SINGLE);
|
|
89
|
+
return { type, allocated: entry.declared || entry.referenceCount > 0, ...entry };
|
|
90
|
+
}
|
|
91
|
+
const ids = [...new Set([...names.keys(), ...refs.keys()])].sort((a, b) => a - b);
|
|
92
|
+
const allocated = ids.map((each) => build(each, REFERENCE_SAMPLE));
|
|
93
|
+
const highest = ids.length > 0 ? ids[ids.length - 1] : 0;
|
|
94
|
+
const claimed = new Set(ids);
|
|
95
|
+
const gaps = [];
|
|
96
|
+
for (let candidate = 1; candidate < highest; candidate++) {
|
|
97
|
+
if (!claimed.has(candidate))
|
|
98
|
+
gaps.push(candidate);
|
|
99
|
+
}
|
|
100
|
+
return {
|
|
101
|
+
type,
|
|
102
|
+
count: allocated.length,
|
|
103
|
+
highest,
|
|
104
|
+
gaps,
|
|
105
|
+
declaredCapacity: declaredCapacity(data, type),
|
|
106
|
+
allocated,
|
|
107
|
+
coverage: coverageNote(type),
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Hand back the next unallocated id(s) so a session never picks one by hand.
|
|
112
|
+
*
|
|
113
|
+
* Defaults to **append** — strictly above every id already spoken for. Holes are
|
|
114
|
+
* left alone by default on purpose: a gap is usually an id a *concurrent or
|
|
115
|
+
* recent* session has claimed in its notes but not yet written into the project,
|
|
116
|
+
* and reusing it is exactly the collision this tool exists to prevent. Pass
|
|
117
|
+
* `reuseGaps` when compacting a project deliberately.
|
|
118
|
+
*/
|
|
119
|
+
export async function nextFreeId(projectPath, type, count = 1, reuseGaps = false) {
|
|
120
|
+
const report = (await listAllocatedIds(projectPath, type));
|
|
121
|
+
const warnings = [];
|
|
122
|
+
const ids = [];
|
|
123
|
+
if (reuseGaps)
|
|
124
|
+
ids.push(...report.gaps.slice(0, count));
|
|
125
|
+
for (let next = report.highest + 1; ids.length < count; next++) {
|
|
126
|
+
if (next > MAX_ID) {
|
|
127
|
+
warnings.push(`Stopped at id ${MAX_ID}: the project already allocates ids that high, which usually means corrupt data rather than a real need.`);
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
ids.push(next);
|
|
131
|
+
}
|
|
132
|
+
const capacity = report.declaredCapacity;
|
|
133
|
+
if (capacity !== undefined && ids.some((each) => each > capacity)) {
|
|
134
|
+
const plural = type === 'switch' ? 'switches' : 'variables';
|
|
135
|
+
warnings.push(`System.json declares ${capacity} ${plural}. Ids above that work at runtime, but have no name slot until the array grows — ` +
|
|
136
|
+
`set_${type}_name grows it for you.`);
|
|
137
|
+
}
|
|
138
|
+
return {
|
|
139
|
+
type,
|
|
140
|
+
ids,
|
|
141
|
+
strategy: reuseGaps ? 'gap-fill' : 'append',
|
|
142
|
+
highest: report.highest,
|
|
143
|
+
declaredCapacity: capacity,
|
|
144
|
+
warnings,
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
const TYPE_DESCRIPTION = 'Which id namespace: switch, variable, or common_event. Database rows (actors, items, …) are not here — create_*/batch_create assign those ids, and list_names shows what exists.';
|
|
148
|
+
export const idToolDefinitions = [
|
|
149
|
+
{
|
|
150
|
+
name: 'list_allocated_ids',
|
|
151
|
+
description: 'Show which switch / variable / common-event IDs are already spoken for, derived from the project\'s own JSON (never a hand-maintained list, which would drift the moment someone edited in the RPG Maker editor). An id counts as allocated if it is declared (a System.json label, a CommonEvents row) OR referenced anywhere — event page conditions and command lists, common events, troop pages, and Common Event skill/item effects. Use this before reusing an id, and pass `id` to answer "where is switch 23 actually used?" before touching it. Returns { count, highest, gaps, declaredCapacity, allocated[], coverage }. Read-only. To claim a fresh id instead, use next_free_id.',
|
|
152
|
+
inputSchema: {
|
|
153
|
+
type: z.enum(ID_NAMESPACES).describe(TYPE_DESCRIPTION),
|
|
154
|
+
id: z
|
|
155
|
+
.number()
|
|
156
|
+
.int()
|
|
157
|
+
.positive()
|
|
158
|
+
.optional()
|
|
159
|
+
.describe('Report just this id — whether it is allocated, its label, and every place it is referenced. Omitted = the whole namespace.'),
|
|
160
|
+
},
|
|
161
|
+
handler: (ctx, args) => listAllocatedIds(ctx.projectPath, args.type, args.id),
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
name: 'next_free_id',
|
|
165
|
+
description: 'Reserve the next unallocated switch / variable / common-event ID(s) instead of picking one by hand. Ids are handed out strictly above every id already declared or referenced, so two sessions editing the same project over time cannot silently claim the same switch — a collision that never crashes and only surfaces hours into a playtest as a door that is inexplicably already open. Pass `reuseGaps: true` to fill holes below the highest id first (off by default: a hole is often an id claimed in notes but not yet written). Read-only — it suggests ids, it does not write them; name what you take with set_switch_name / set_variable_name so the next session sees the claim.',
|
|
166
|
+
inputSchema: {
|
|
167
|
+
type: z.enum(ID_NAMESPACES).describe(TYPE_DESCRIPTION),
|
|
168
|
+
count: z
|
|
169
|
+
.number()
|
|
170
|
+
.int()
|
|
171
|
+
.positive()
|
|
172
|
+
.max(100)
|
|
173
|
+
.optional()
|
|
174
|
+
.describe('How many consecutive free ids to return (default 1)'),
|
|
175
|
+
reuseGaps: z
|
|
176
|
+
.boolean()
|
|
177
|
+
.optional()
|
|
178
|
+
.describe('Fill unallocated holes below the highest id first (default false)'),
|
|
179
|
+
},
|
|
180
|
+
handler: (ctx, args) => nextFreeId(ctx.projectPath, args.type, args.count, args.reuseGaps),
|
|
181
|
+
},
|
|
182
|
+
];
|
|
183
|
+
//# sourceMappingURL=idTools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"idTools.js","sourceRoot":"","sources":["../../src/tools/idTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,8 @@ export declare function updateSystem(projectPath: string, updates: Partial<Syste
|
|
|
13
13
|
*/
|
|
14
14
|
export declare function getVariables(projectPath: string): Promise<string[]>;
|
|
15
15
|
/**
|
|
16
|
-
* Set a variable name
|
|
16
|
+
* Set a variable name. Grows the `variables` array if the id is past the end
|
|
17
|
+
* (see {@link growNameSlots}).
|
|
17
18
|
*/
|
|
18
19
|
export declare function setVariableName(projectPath: string, variableId: number, name: string): Promise<void>;
|
|
19
20
|
/**
|
|
@@ -21,7 +22,8 @@ export declare function setVariableName(projectPath: string, variableId: number,
|
|
|
21
22
|
*/
|
|
22
23
|
export declare function getSwitches(projectPath: string): Promise<string[]>;
|
|
23
24
|
/**
|
|
24
|
-
* Set a switch name
|
|
25
|
+
* Set a switch name. Grows the `switches` array if the id is past the end (see
|
|
26
|
+
* {@link growNameSlots}).
|
|
25
27
|
*/
|
|
26
28
|
export declare function setSwitchName(projectPath: string, switchId: number, name: string): Promise<void>;
|
|
27
29
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"systemTools.d.ts","sourceRoot":"","sources":["../../src/tools/systemTools.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,KAAK,EAA2B,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAIhD;;GAEG;AACH,wBAAsB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAGxE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAC3B,OAAO,CAAC,UAAU,CAAC,CAQrB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAGzE;
|
|
1
|
+
{"version":3,"file":"systemTools.d.ts","sourceRoot":"","sources":["../../src/tools/systemTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,13 +27,48 @@ export async function getVariables(projectPath) {
|
|
|
27
27
|
return system.variables;
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
|
-
*
|
|
30
|
+
* The block the RPG Maker editor grows the switch/variable name lists in. Growing
|
|
31
|
+
* to a multiple of it keeps a file this server wrote indistinguishable from one
|
|
32
|
+
* the editor saved.
|
|
33
|
+
*/
|
|
34
|
+
const NAME_BLOCK = 20;
|
|
35
|
+
/**
|
|
36
|
+
* Hard ceiling on automatic growth. A four-digit id is far more likely to be a
|
|
37
|
+
* typo than a real need, and silently allocating thousands of empty name slots
|
|
38
|
+
* would bloat System.json without anyone noticing.
|
|
39
|
+
*/
|
|
40
|
+
const MAX_NAME_SLOTS = 5000;
|
|
41
|
+
/**
|
|
42
|
+
* Grow a System.json name array (`switches`/`variables`) so `id` has a slot,
|
|
43
|
+
* padding with `''` exactly as the editor does. Returns the array unchanged when
|
|
44
|
+
* the slot already exists.
|
|
45
|
+
*
|
|
46
|
+
* Without this an agent working from `next_free_id` hits a wall the moment it
|
|
47
|
+
* exhausts the default 20 slots — and the only remedy would be "open the RPG
|
|
48
|
+
* Maker editor", in a workflow whose whole premise is not needing to. Nothing is
|
|
49
|
+
* lost by growing: the engine reads `$gameSwitches` independently of these
|
|
50
|
+
* labels, which exist for the editor UI.
|
|
51
|
+
*/
|
|
52
|
+
function growNameSlots(names, id, label) {
|
|
53
|
+
if (id < names.length)
|
|
54
|
+
return;
|
|
55
|
+
if (id > MAX_NAME_SLOTS) {
|
|
56
|
+
throw new Error(`${label} id ${id} is beyond the ${MAX_NAME_SLOTS}-slot ceiling (project declares ${names.length - 1}). That is almost certainly a typo — check next_free_id.`);
|
|
57
|
+
}
|
|
58
|
+
const grown = Math.ceil((id + 1) / NAME_BLOCK) * NAME_BLOCK;
|
|
59
|
+
while (names.length < grown)
|
|
60
|
+
names.push('');
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Set a variable name. Grows the `variables` array if the id is past the end
|
|
64
|
+
* (see {@link growNameSlots}).
|
|
31
65
|
*/
|
|
32
66
|
export async function setVariableName(projectPath, variableId, name) {
|
|
33
67
|
const system = await getSystem(projectPath);
|
|
34
|
-
if (variableId < 1
|
|
35
|
-
throw new Error(`Variable id ${variableId} is out of range (
|
|
68
|
+
if (variableId < 1) {
|
|
69
|
+
throw new Error(`Variable id ${variableId} is out of range (ids are 1-based).`);
|
|
36
70
|
}
|
|
71
|
+
growNameSlots(system.variables, variableId, 'Variable');
|
|
37
72
|
system.variables[variableId] = name;
|
|
38
73
|
const systemPath = getDataPath(projectPath, 'System.json');
|
|
39
74
|
await commitChange(systemPath, system);
|
|
@@ -46,13 +81,15 @@ export async function getSwitches(projectPath) {
|
|
|
46
81
|
return system.switches;
|
|
47
82
|
}
|
|
48
83
|
/**
|
|
49
|
-
* Set a switch name
|
|
84
|
+
* Set a switch name. Grows the `switches` array if the id is past the end (see
|
|
85
|
+
* {@link growNameSlots}).
|
|
50
86
|
*/
|
|
51
87
|
export async function setSwitchName(projectPath, switchId, name) {
|
|
52
88
|
const system = await getSystem(projectPath);
|
|
53
|
-
if (switchId < 1
|
|
54
|
-
throw new Error(`Switch id ${switchId} is out of range (
|
|
89
|
+
if (switchId < 1) {
|
|
90
|
+
throw new Error(`Switch id ${switchId} is out of range (ids are 1-based).`);
|
|
55
91
|
}
|
|
92
|
+
growNameSlots(system.switches, switchId, 'Switch');
|
|
56
93
|
system.switches[switchId] = name;
|
|
57
94
|
const systemPath = getDataPath(projectPath, 'System.json');
|
|
58
95
|
await commitChange(systemPath, system);
|
|
@@ -268,7 +305,7 @@ export const systemToolDefinitions = [
|
|
|
268
305
|
{
|
|
269
306
|
name: 'set_variable_name',
|
|
270
307
|
mutates: true,
|
|
271
|
-
description:
|
|
308
|
+
description: "Set a variable name. Grows the project's variable list if the id is past the end (padded to the editor's 20-slot block), so an id from next_free_id can always be labelled. Naming a variable as soon as you claim it is what makes it visible to the next session — see list_allocated_ids.",
|
|
272
309
|
inputSchema: {
|
|
273
310
|
variableId: z.number().int().positive().describe('The 1-based variable ID'),
|
|
274
311
|
name: z.string().describe('The name to assign'),
|
|
@@ -287,7 +324,7 @@ export const systemToolDefinitions = [
|
|
|
287
324
|
{
|
|
288
325
|
name: 'set_switch_name',
|
|
289
326
|
mutates: true,
|
|
290
|
-
description:
|
|
327
|
+
description: "Set a switch name. Grows the project's switch list if the id is past the end (padded to the editor's 20-slot block), so an id from next_free_id can always be labelled. Naming a switch as soon as you claim it is what makes it visible to the next session — see list_allocated_ids.",
|
|
291
328
|
inputSchema: {
|
|
292
329
|
switchId: z.number().int().positive().describe('The 1-based switch ID'),
|
|
293
330
|
name: z.string().describe('The name to assign'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"systemTools.js","sourceRoot":"","sources":["../../src/tools/systemTools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"systemTools.js","sourceRoot":"","sources":["../../src/tools/systemTools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACnG,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,WAAmB;IACjD,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC3D,OAAO,MAAM,YAAY,CAAa,UAAU,CAAC,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,WAAmB,EACnB,OAA4B;IAE5B,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,aAAa,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;IAEhD,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC3D,MAAM,YAAY,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAE9C,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,WAAmB;IACpD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;IAC5C,OAAO,MAAM,CAAC,SAAS,CAAC;AAC1B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,GAAG,EAAE,CAAC;AAEtB;;;;GAIG;AACH,MAAM,cAAc,GAAG,IAAI,CAAC;AAE5B;;;;;;;;;;GAUG;AACH,SAAS,aAAa,CAAC,KAAe,EAAE,EAAU,EAAE,KAAa;IAC/D,IAAI,EAAE,GAAG,KAAK,CAAC,MAAM;QAAE,OAAO;IAC9B,IAAI,EAAE,GAAG,cAAc,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,GAAG,KAAK,OAAO,EAAE,kBAAkB,cAAc,mCAAmC,KAAK,CAAC,MAAM,GAAG,CAAC,0DAA0D,CAC/J,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,UAAU,CAAC;IAC5D,OAAO,KAAK,CAAC,MAAM,GAAG,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,WAAmB,EACnB,UAAkB,EAClB,IAAY;IAEZ,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,eAAe,UAAU,qCAAqC,CAAC,CAAC;IAClF,CAAC;IACD,aAAa,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IACxD,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IAEpC,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC3D,MAAM,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,WAAmB;IACnD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;IAC5C,OAAO,MAAM,CAAC,QAAQ,CAAC;AACzB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,WAAmB,EACnB,QAAgB,EAChB,IAAY;IAEZ,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,aAAa,QAAQ,qCAAqC,CAAC,CAAC;IAC9E,CAAC;IACD,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACnD,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IAEjC,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC3D,MAAM,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,WAAmB;IACvD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;IAC5C,OAAO,MAAM,CAAC,YAAY,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,WAAmB,EACnB,YAAsB;IAEtB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAmB,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;IAC7F,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,yBAAyB,EAAE,gCAAgC,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;IAEnC,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC3D,MAAM,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,WAAmB;IAEnB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;IAC5C,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,UAAU;QACxB,CAAC,EAAE,MAAM,CAAC,MAAM;QAChB,CAAC,EAAE,MAAM,CAAC,MAAM;KACjB,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,WAAmB,EACnB,KAAa,EACb,CAAS,EACT,CAAS;IAET,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAU,WAAW,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC;IAC7F,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,mBAAmB,KAAK,kCAAkC,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,YAAY,CAAU,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;IACxE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CACb,sBAAsB,CAAC,KAAK,CAAC,8BAA8B,KAAK,KAAK,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,GAAG,CAChG,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAClB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAElB,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC3D,MAAM,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,WAAmB;IACpD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;IAC5C,OAAO,MAAM,CAAC,SAAS,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,WAAmB,EAAE,KAAa;IACtE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;IAEzB,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC3D,MAAM,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACzC,CAAC;AAWD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,WAAmB;IACtD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;IAC5C,OAAO;QACL,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,SAAS,EAAE,MAAM,CAAC,YAAY;KAC/B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,WAAmB,EACnB,OAA6B;IAE7B,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;QAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAC7E,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;QAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAC7E,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;QAAE,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IACvE,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;QAAE,MAAM,CAAC,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC;IAE7E,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC3D,MAAM,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAEvC,OAAO;QACL,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,SAAS,EAAE,MAAM,CAAC,YAAY;KAC/B,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,wBAAwB,CACrC,WAAmB,EACnB,OAA6B;IAE7B,MAAM,QAAQ,GAAwB,EAAE,CAAC;IACzC,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACrC,QAAQ,CAAC,IAAI,CACX,GAAG,CAAC,MAAM,gBAAgB,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,UAAU,EAAE;YACrE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,OAAO;YACd,WAAW,EAAE,iDAAiD;SAC/D,CAAC,CAAC,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACrC,QAAQ,CAAC,IAAI,CACX,GAAG,CAAC,MAAM,gBAAgB,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,UAAU,EAAE;YACrE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,OAAO;YACd,WAAW,EAAE,iDAAiD;SAC/D,CAAC,CAAC,CACJ,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACnC,QAAQ,CAAC,IAAI,CACX,GAAG,CAAC,MAAM,gBAAgB,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE;YACpE,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,OAAO;YACd,WAAW,EAAE,4CAA4C;SAC1D,CAAC,CAAC,CACJ,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,WAAmB;IAChD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;IAC5C,OAAO,MAAM,CAAC,KAAK,CAAC;AACtB,CAAC;AAKD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,WAAmB,EACnB,QAAsB,EACtB,GAAW,EACX,KAAa;IAEb,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAE3B,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC5B,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC9B,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACjE,MAAM,IAAI,KAAK,CAAC,SAAS,QAAQ,UAAU,GAAG,wBAAwB,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3F,CAAC;QACD,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,MAAM,YAAY,CAAC,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC;IACpE,OAAO,KAAK,CAAC;AACf,CAAC;AAKD,2FAA2F;AAC3F,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,WAAmB,EAAE,QAAsB;IACxE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;IAC5C,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC1B,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,WAAmB,EACnB,QAAsB,EACtB,KAAa,EACb,IAAY;IAEZ,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,UAAU,KAAK,wBAAwB,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;IACvF,CAAC;IACD,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAElB,MAAM,YAAY,CAAC,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC;IACpE,OAAO,GAAG,CAAC;AACb,CAAC;AAED,mEAAmE;AACnE,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,WAAmB,EAAE,IAAY;IACrE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,MAAM,YAAY,CAAC,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAqB;IACrD;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,iBAAiB;QAC9B,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC;KAC7C;IACD;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,6BAA6B;QAC1C,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC;KAChD;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,IAAI;QACb,WAAW,EACT,8RAA8R;QAChS,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;YAC3E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;SAChD;QACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YAC3B,MAAM,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACnE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;KACF;IACD;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,2BAA2B;QACxC,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC;KAC/C;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,IAAI;QACb,WAAW,EACT,wRAAwR;QAC1R,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YACvE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;SAChD;QACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YAC3B,MAAM,aAAa,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;KACF;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,oBAAoB;QACjC,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC;KAChD;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,uBAAuB;QACpC,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE;QACjE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YAC3B,MAAM,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;KACF;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EACT,+QAA+Q;QACjR,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC;KAClD;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE,IAAI;QACb,WAAW,EACT,2WAA2W;QAC7W,WAAW,EAAE;YACX,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,uEAAuE,CAAC;YACpF,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,+EAA+E,CAAC;YAC5F,QAAQ,EAAE,CAAC;iBACR,MAAM,CAAC;gBACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;gBACnE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;gBACnE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;gBACnE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;aAChE,CAAC;iBACD,QAAQ,EAAE;iBACV,QAAQ,CAAC,gDAAgD,CAAC;YAC7D,SAAS,EAAE,CAAC;iBACT,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CACP,sGAAsG,CACvG;SACJ;QACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YAC3B,MAAM,OAAO,GAAyB,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;gBAAE,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACxE,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;gBAAE,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACxE,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAChC,OAAO,CAAC,QAAQ,GAAG;oBACjB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;oBACxB,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE;oBAClC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,GAAG;oBACjC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;iBAC5B,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;gBAAE,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAErE,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChD,iBAAiB,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC;gBAC3C,wBAAwB,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC;aACnD,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;QAC1E,CAAC;KACF;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EAAE,kDAAkD;QAC/D,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC;KACvD;IACD;QACE,IAAI,EAAE,0BAA0B;QAChC,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,mCAAmC;QAChD,WAAW,EAAE;YACX,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAC9D,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAC7D,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;SAC9D;QACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YAC3B,MAAM,sBAAsB,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;KACF;IACD;QACE,IAAI,EAAE,WAAW;QACjB,WAAW,EACT,uIAAuI;QACzI,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;KACnF;IACD;QACE,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,IAAI;QACb,WAAW,EACT,mHAAmH;QACrH,WAAW,EAAE;YACX,YAAY,EAAE,CAAC;iBACZ,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;iBAClC,QAAQ,CAAC,0CAA0C,CAAC;SACxD;QACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YAC3B,MAAM,kBAAkB,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAC7D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5D,CAAC;KACF;IACD;QACE,IAAI,EAAE,WAAW;QACjB,WAAW,EACT,uIAAuI;QACzI,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC;KAC5C;IACD;QACE,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,IAAI;QACb,WAAW,EACT,gMAAgM;QAClM,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC;iBACR,IAAI,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;iBACjD,QAAQ,CAAC,0BAA0B,CAAC;YACvC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;YAC3F,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;SAChD;QACD,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CACrB,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,QAAwB,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC;KAChF;IACD;QACE,IAAI,EAAE,WAAW;QACjB,WAAW,EACT,qJAAqJ;QACvJ,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC;iBACR,IAAI,CAAC,CAAC,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;iBAC3E,QAAQ,CAAC,+BAA+B,CAAC;SAC7C;QACD,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,QAAwB,CAAC;KACjF;IACD;QACE,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,IAAI;QACb,WAAW,EACT,+KAA+K;QACjL,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC;iBACR,IAAI,CAAC,CAAC,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;iBAC3E,QAAQ,CAAC,+BAA+B,CAAC;YAC5C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;YACzF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;SAC/C;QACD,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CACrB,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,QAAwB,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC;KACrF;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,sEAAsE;QACnF,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE;QACtE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YAC3B,MAAM,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAClD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QACpD,CAAC;KACF;CACF,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ToolDefinition } from '../registry.js';
|
|
2
2
|
import { ValidationWarning } from '../validation/eventCommands.js';
|
|
3
|
-
import { ReferenceWarning } from '../validation/references.js';
|
|
3
|
+
import { ProjectData, ReferenceWarning } from '../validation/references.js';
|
|
4
4
|
import { AssetWarning } from '../validation/assets.js';
|
|
5
5
|
/**
|
|
6
6
|
* Validate a single event's command lists against the known-command table.
|
|
@@ -23,6 +23,16 @@ export declare function validateProjectTool(projectPath: string): Promise<{
|
|
|
23
23
|
mapId: number;
|
|
24
24
|
}>;
|
|
25
25
|
}>;
|
|
26
|
+
/**
|
|
27
|
+
* Load the whole project snapshot the reference linter needs. Every read fails
|
|
28
|
+
* soft: a missing/unreadable file yields an empty array (or `null` for
|
|
29
|
+
* `Animations.json`/`System.json`), so the audit degrades to fewer checks rather
|
|
30
|
+
* than throwing.
|
|
31
|
+
*
|
|
32
|
+
* Shared with the id-allocation scan (`tools/idTools.ts`), which needs the same
|
|
33
|
+
* whole-project snapshot.
|
|
34
|
+
*/
|
|
35
|
+
export declare function loadProjectData(projectPath: string): Promise<ProjectData>;
|
|
26
36
|
/**
|
|
27
37
|
* Cross-file reference-integrity audit for the whole project. Read-only and
|
|
28
38
|
* warn-by-default: reports dangling/cyclic references (a Transfer Player to a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validationTools.d.ts","sourceRoot":"","sources":["../../src/tools/validationTools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAiC,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAElG,OAAO,
|
|
1
|
+
{"version":3,"file":"validationTools.d.ts","sourceRoot":"","sources":["../../src/tools/validationTools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAiC,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAElG,OAAO,EAAmB,WAAW,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC7F,OAAO,EAIL,YAAY,EACb,MAAM,yBAAyB,CAAC;AAajC;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,iBAAiB,EAAE,CAAA;CAAE,CAAC,CAOzF;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IACtE,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,KAAK,CAAC,iBAAiB,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACxD,CAAC,CAuBD;AAUD;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CA8C/E;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,gBAAgB,EAAE,CAAA;CAAE,CAAC,CAIxD;AAwED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,CAOpD;AAED,eAAO,MAAM,yBAAyB,EAAE,cAAc,EAgCrD,CAAC"}
|
|
@@ -55,8 +55,11 @@ async function loadArray(projectPath, file) {
|
|
|
55
55
|
* soft: a missing/unreadable file yields an empty array (or `null` for
|
|
56
56
|
* `Animations.json`/`System.json`), so the audit degrades to fewer checks rather
|
|
57
57
|
* than throwing.
|
|
58
|
+
*
|
|
59
|
+
* Shared with the id-allocation scan (`tools/idTools.ts`), which needs the same
|
|
60
|
+
* whole-project snapshot.
|
|
58
61
|
*/
|
|
59
|
-
async function loadProjectData(projectPath) {
|
|
62
|
+
export async function loadProjectData(projectPath) {
|
|
60
63
|
const mapInfos = await loadArray(projectPath, 'MapInfos.json');
|
|
61
64
|
const maps = [];
|
|
62
65
|
for (const info of mapInfos) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validationTools.js","sourceRoot":"","sources":["../../src/tools/validationTools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAqB,MAAM,gCAAgC,CAAC;AAClG,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,eAAe,EAAiC,MAAM,6BAA6B,CAAC;AAC7F,OAAO,EACL,WAAW,GAIZ,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAa,MAAM,iBAAiB,CAAC;AAYxD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,WAAmB,EACnB,KAAa,EACb,OAAe;IAEf,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC7D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,SAAS,OAAO,qBAAqB,KAAK,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,WAAmB;IAK3D,MAAM,KAAK,GAAG,CAAC,MAAM,WAAW,CAAC,WAAW,CAAC,CAAuB,CAAC;IACrE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAmB,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE5F,MAAM,QAAQ,GAAiD,EAAE,CAAC;IAClE,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,GAAG,CAAC;QACR,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,yEAAyE;YACzE,SAAS;QACX,CAAC;QACD,WAAW,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1C,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;AAC9D,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,SAAS,CAAI,WAAmB,EAAE,IAAY;IAC3D,OAAO,iBAAiB,CAAI,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"validationTools.js","sourceRoot":"","sources":["../../src/tools/validationTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { EventCommand } from '../utils/types.js';
|
|
2
|
+
import { ProjectData } from './references.js';
|
|
3
|
+
/**
|
|
4
|
+
* The id namespaces an author picks a number in by hand. Deliberately narrow:
|
|
5
|
+
* these are the three where nothing assigns the id for you, so two sessions
|
|
6
|
+
* editing the same project can silently claim the same one. Database rows
|
|
7
|
+
* (actors, items, …) are not here — `create_*`/`batch_create` assign those ids,
|
|
8
|
+
* and `list_names` already shows what exists.
|
|
9
|
+
*
|
|
10
|
+
* Self switches (command 123, A–D) are also absent on purpose: they're scoped to
|
|
11
|
+
* one event, so they can't collide across sessions.
|
|
12
|
+
*/
|
|
13
|
+
export type IdNamespace = 'switch' | 'variable' | 'common_event';
|
|
14
|
+
/** A single place an id is referenced. */
|
|
15
|
+
export interface IdReference {
|
|
16
|
+
id: number;
|
|
17
|
+
/** Where the reference sits, e.g. `map 3 / event 7 / page 0 / command 4`. */
|
|
18
|
+
path: string;
|
|
19
|
+
/** What carries it, e.g. `Control Switches` or `page condition (switch1Id)`. */
|
|
20
|
+
via: string;
|
|
21
|
+
}
|
|
22
|
+
/** The command codes scanned for a namespace — surfaced so callers can state their coverage. */
|
|
23
|
+
export declare function scannedCommandCodes(ns: IdNamespace): number[];
|
|
24
|
+
/**
|
|
25
|
+
* Every id of one namespace referenced by a single event command. Unlisted
|
|
26
|
+
* codes and parameters that aren't positive integers yield nothing, so a
|
|
27
|
+
* malformed command degrades to "no references" rather than throwing.
|
|
28
|
+
*/
|
|
29
|
+
export declare function commandIdRefs(command: EventCommand, ns: IdNamespace): Array<{
|
|
30
|
+
id: number;
|
|
31
|
+
via: string;
|
|
32
|
+
}>;
|
|
33
|
+
/**
|
|
34
|
+
* Every reference to one id namespace across the whole project: map event pages
|
|
35
|
+
* (conditions and commands), common events (trigger switch and commands), troop
|
|
36
|
+
* pages (battle conditions and commands), and — for common events — skill/item
|
|
37
|
+
* effects that call one.
|
|
38
|
+
*
|
|
39
|
+
* Pure, so it's unit-testable without file I/O. Derived entirely from the
|
|
40
|
+
* project's own JSON, which is the point: a hand-maintained ledger of claimed
|
|
41
|
+
* ids drifts the moment someone edits in the RPG Maker editor.
|
|
42
|
+
*/
|
|
43
|
+
export declare function scanIdUsage(data: ProjectData, ns: IdNamespace): IdReference[];
|
|
44
|
+
//# sourceMappingURL=idUsage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"idUsage.d.ts","sourceRoot":"","sources":["../../src/validation/idUsage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA4C,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;;;;;;;;GASG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,cAAc,CAAC;AAEjE,0CAA0C;AAC1C,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,GAAG,EAAE,MAAM,CAAC;CACb;AAoID,gGAAgG;AAChG,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,WAAW,GAAG,MAAM,EAAE,CAI7D;AAQD;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,YAAY,EACrB,EAAE,EAAE,WAAW,GACd,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CA8BpC;AAiFD;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,GAAG,WAAW,EAAE,CAmC7E"}
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A Control Switches/Variables range is normally a handful of ids; this only
|
|
3
|
+
* stops a corrupt or hand-written `[1, 999999]` from expanding into a
|
|
4
|
+
* million-entry result.
|
|
5
|
+
*/
|
|
6
|
+
const MAX_RANGE = 1000;
|
|
7
|
+
/**
|
|
8
|
+
* Curated (not exhaustive) — the same stance as `KNOWN_COMMANDS`. It covers
|
|
9
|
+
* every command this server's own builders emit plus the hand-authored ones an
|
|
10
|
+
* agent is likely to meet; an unlisted command contributes no references, so a
|
|
11
|
+
* switch used only from a `Script` (355) or a plugin command (357) reads as
|
|
12
|
+
* free. Callers surface that caveat.
|
|
13
|
+
*/
|
|
14
|
+
const SWITCH_REFS = {
|
|
15
|
+
111: { name: 'Conditional Branch', conditional: [{ when: [[0, 0]], indices: [1] }] },
|
|
16
|
+
121: { name: 'Control Switches', range: [0, 1] },
|
|
17
|
+
};
|
|
18
|
+
const VARIABLE_REFS = {
|
|
19
|
+
103: { name: 'Input Number', always: [0] },
|
|
20
|
+
104: { name: 'Select Item', always: [0] },
|
|
21
|
+
111: {
|
|
22
|
+
name: 'Conditional Branch',
|
|
23
|
+
conditional: [
|
|
24
|
+
{ when: [[0, 1]], indices: [1] },
|
|
25
|
+
// Comparing a variable against another variable: params[2] === 1.
|
|
26
|
+
{
|
|
27
|
+
when: [
|
|
28
|
+
[0, 1],
|
|
29
|
+
[2, 1],
|
|
30
|
+
],
|
|
31
|
+
indices: [3],
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
},
|
|
35
|
+
// operateValue(operation, operandType, operand): operandType 1 = variable.
|
|
36
|
+
122: {
|
|
37
|
+
name: 'Control Variables',
|
|
38
|
+
range: [0, 1],
|
|
39
|
+
conditional: [{ when: [[3, 1]], indices: [4] }],
|
|
40
|
+
},
|
|
41
|
+
125: { name: 'Change Gold', conditional: [{ when: [[1, 1]], indices: [2] }] },
|
|
42
|
+
126: { name: 'Change Items', conditional: [{ when: [[2, 1]], indices: [3] }] },
|
|
43
|
+
127: { name: 'Change Weapons', conditional: [{ when: [[2, 1]], indices: [3] }] },
|
|
44
|
+
128: { name: 'Change Armors', conditional: [{ when: [[2, 1]], indices: [3] }] },
|
|
45
|
+
201: { name: 'Transfer Player', conditional: [{ when: [[0, 1]], indices: [1, 2, 3] }] },
|
|
46
|
+
202: { name: 'Set Vehicle Location', conditional: [{ when: [[1, 1]], indices: [2, 3, 4] }] },
|
|
47
|
+
203: { name: 'Set Event Location', conditional: [{ when: [[1, 1]], indices: [2, 3] }] },
|
|
48
|
+
285: {
|
|
49
|
+
name: 'Get Location Info',
|
|
50
|
+
always: [0],
|
|
51
|
+
conditional: [{ when: [[2, 1]], indices: [3, 4] }],
|
|
52
|
+
},
|
|
53
|
+
// iterateActorEx(params[0], params[1]): actor designated by variable when params[0] === 1.
|
|
54
|
+
311: {
|
|
55
|
+
name: 'Change HP',
|
|
56
|
+
conditional: [
|
|
57
|
+
{ when: [[0, 1]], indices: [1] },
|
|
58
|
+
{ when: [[3, 1]], indices: [4] },
|
|
59
|
+
],
|
|
60
|
+
},
|
|
61
|
+
312: {
|
|
62
|
+
name: 'Change MP',
|
|
63
|
+
conditional: [
|
|
64
|
+
{ when: [[0, 1]], indices: [1] },
|
|
65
|
+
{ when: [[3, 1]], indices: [4] },
|
|
66
|
+
],
|
|
67
|
+
},
|
|
68
|
+
313: { name: 'Change State', conditional: [{ when: [[0, 1]], indices: [1] }] },
|
|
69
|
+
314: { name: 'Recover All', conditional: [{ when: [[0, 1]], indices: [1] }] },
|
|
70
|
+
315: {
|
|
71
|
+
name: 'Change EXP',
|
|
72
|
+
conditional: [
|
|
73
|
+
{ when: [[0, 1]], indices: [1] },
|
|
74
|
+
{ when: [[3, 1]], indices: [4] },
|
|
75
|
+
],
|
|
76
|
+
},
|
|
77
|
+
316: {
|
|
78
|
+
name: 'Change Level',
|
|
79
|
+
conditional: [
|
|
80
|
+
{ when: [[0, 1]], indices: [1] },
|
|
81
|
+
{ when: [[3, 1]], indices: [4] },
|
|
82
|
+
],
|
|
83
|
+
},
|
|
84
|
+
317: {
|
|
85
|
+
name: 'Change Parameter',
|
|
86
|
+
conditional: [
|
|
87
|
+
{ when: [[0, 1]], indices: [1] },
|
|
88
|
+
{ when: [[4, 1]], indices: [5] },
|
|
89
|
+
],
|
|
90
|
+
},
|
|
91
|
+
318: { name: 'Change Skill', conditional: [{ when: [[0, 1]], indices: [1] }] },
|
|
92
|
+
326: {
|
|
93
|
+
name: 'Change TP',
|
|
94
|
+
conditional: [
|
|
95
|
+
{ when: [[0, 1]], indices: [1] },
|
|
96
|
+
{ when: [[3, 1]], indices: [4] },
|
|
97
|
+
],
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
const COMMON_EVENT_REFS = {
|
|
101
|
+
117: { name: 'Common Event', always: [0] },
|
|
102
|
+
};
|
|
103
|
+
const REF_TABLES = {
|
|
104
|
+
switch: SWITCH_REFS,
|
|
105
|
+
variable: VARIABLE_REFS,
|
|
106
|
+
common_event: COMMON_EVENT_REFS,
|
|
107
|
+
};
|
|
108
|
+
/** The command codes scanned for a namespace — surfaced so callers can state their coverage. */
|
|
109
|
+
export function scannedCommandCodes(ns) {
|
|
110
|
+
return Object.keys(REF_TABLES[ns])
|
|
111
|
+
.map(Number)
|
|
112
|
+
.sort((a, b) => a - b);
|
|
113
|
+
}
|
|
114
|
+
/** A positive integer id, or `undefined` for anything else (missing, 0, a string, …). */
|
|
115
|
+
function idAt(parameters, index) {
|
|
116
|
+
const value = parameters[index];
|
|
117
|
+
return typeof value === 'number' && Number.isInteger(value) && value > 0 ? value : undefined;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Every id of one namespace referenced by a single event command. Unlisted
|
|
121
|
+
* codes and parameters that aren't positive integers yield nothing, so a
|
|
122
|
+
* malformed command degrades to "no references" rather than throwing.
|
|
123
|
+
*/
|
|
124
|
+
export function commandIdRefs(command, ns) {
|
|
125
|
+
const spec = REF_TABLES[ns][command?.code];
|
|
126
|
+
if (!spec || !Array.isArray(command.parameters))
|
|
127
|
+
return [];
|
|
128
|
+
const parameters = command.parameters;
|
|
129
|
+
const ids = [];
|
|
130
|
+
for (const index of spec.always ?? []) {
|
|
131
|
+
const id = idAt(parameters, index);
|
|
132
|
+
if (id !== undefined)
|
|
133
|
+
ids.push(id);
|
|
134
|
+
}
|
|
135
|
+
for (const group of spec.conditional ?? []) {
|
|
136
|
+
if (!group.when.every(([index, value]) => parameters[index] === value))
|
|
137
|
+
continue;
|
|
138
|
+
for (const index of group.indices) {
|
|
139
|
+
const id = idAt(parameters, index);
|
|
140
|
+
if (id !== undefined)
|
|
141
|
+
ids.push(id);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
if (spec.range) {
|
|
145
|
+
const start = idAt(parameters, spec.range[0]);
|
|
146
|
+
const end = idAt(parameters, spec.range[1]);
|
|
147
|
+
if (start !== undefined) {
|
|
148
|
+
const last = Math.min(end !== undefined && end >= start ? end : start, start + MAX_RANGE - 1);
|
|
149
|
+
for (let id = start; id <= last; id++)
|
|
150
|
+
ids.push(id);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return ids.map((id) => ({ id, via: spec.name }));
|
|
154
|
+
}
|
|
155
|
+
/** Scan one command list, tagging each reference with the list's path. */
|
|
156
|
+
function scanList(list, path, ns) {
|
|
157
|
+
if (!Array.isArray(list))
|
|
158
|
+
return [];
|
|
159
|
+
const refs = [];
|
|
160
|
+
list.forEach((command, i) => {
|
|
161
|
+
for (const { id, via } of commandIdRefs(command, ns)) {
|
|
162
|
+
refs.push({ id, path: `${path} / command ${i}`, via });
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
return refs;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Switch/variable references that live in an event page's *conditions* rather
|
|
169
|
+
* than its command list — the gate that decides which page runs. A page
|
|
170
|
+
* condition only reads its id when the matching `*Valid` flag is set, so an
|
|
171
|
+
* unused slot (which still holds a stale id) isn't counted.
|
|
172
|
+
*/
|
|
173
|
+
function pageConditionRefs(page, path, ns) {
|
|
174
|
+
const conditions = page?.conditions;
|
|
175
|
+
if (!conditions)
|
|
176
|
+
return [];
|
|
177
|
+
const refs = [];
|
|
178
|
+
if (ns === 'switch') {
|
|
179
|
+
if (conditions.switch1Valid && conditions.switch1Id > 0) {
|
|
180
|
+
refs.push({ id: conditions.switch1Id, path, via: 'page condition (switch1Id)' });
|
|
181
|
+
}
|
|
182
|
+
if (conditions.switch2Valid && conditions.switch2Id > 0) {
|
|
183
|
+
refs.push({ id: conditions.switch2Id, path, via: 'page condition (switch2Id)' });
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
if (ns === 'variable' && conditions.variableValid && conditions.variableId > 0) {
|
|
187
|
+
refs.push({ id: conditions.variableId, path, via: 'page condition (variableId)' });
|
|
188
|
+
}
|
|
189
|
+
return refs;
|
|
190
|
+
}
|
|
191
|
+
/** Every reference carried by one map event's pages (conditions + command lists). */
|
|
192
|
+
function mapEventRefs(event, mapId, ns) {
|
|
193
|
+
if (!Array.isArray(event.pages))
|
|
194
|
+
return [];
|
|
195
|
+
const refs = [];
|
|
196
|
+
event.pages.forEach((page, pi) => {
|
|
197
|
+
const path = `map ${mapId} / event ${event.id} / page ${pi}`;
|
|
198
|
+
refs.push(...pageConditionRefs(page, path, ns));
|
|
199
|
+
refs.push(...scanList(page?.list, path, ns));
|
|
200
|
+
});
|
|
201
|
+
return refs;
|
|
202
|
+
}
|
|
203
|
+
/** Common-event references: the autorun/parallel gate switch, plus the command list. */
|
|
204
|
+
function commonEventRefs(commonEvent, ns) {
|
|
205
|
+
const path = `common event ${commonEvent.id}`;
|
|
206
|
+
const refs = [];
|
|
207
|
+
// trigger 0 = call-only, in which case switchId is ignored by the engine.
|
|
208
|
+
if (ns === 'switch' && commonEvent.trigger !== 0 && commonEvent.switchId > 0) {
|
|
209
|
+
refs.push({ id: commonEvent.switchId, path, via: 'common event trigger switch' });
|
|
210
|
+
}
|
|
211
|
+
refs.push(...scanList(commonEvent.list, path, ns));
|
|
212
|
+
return refs;
|
|
213
|
+
}
|
|
214
|
+
/** Skill/item effects that run a common event (Game_Action effect code 44). */
|
|
215
|
+
const EFFECT_COMMON_EVENT = 44;
|
|
216
|
+
function effectRefs(effects, path) {
|
|
217
|
+
if (!Array.isArray(effects))
|
|
218
|
+
return [];
|
|
219
|
+
const refs = [];
|
|
220
|
+
effects.forEach((effect, i) => {
|
|
221
|
+
if (effect?.code === EFFECT_COMMON_EVENT && effect.dataId > 0) {
|
|
222
|
+
refs.push({ id: effect.dataId, path: `${path} / effect ${i}`, via: 'Common Event effect' });
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
return refs;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Every reference to one id namespace across the whole project: map event pages
|
|
229
|
+
* (conditions and commands), common events (trigger switch and commands), troop
|
|
230
|
+
* pages (battle conditions and commands), and — for common events — skill/item
|
|
231
|
+
* effects that call one.
|
|
232
|
+
*
|
|
233
|
+
* Pure, so it's unit-testable without file I/O. Derived entirely from the
|
|
234
|
+
* project's own JSON, which is the point: a hand-maintained ledger of claimed
|
|
235
|
+
* ids drifts the moment someone edits in the RPG Maker editor.
|
|
236
|
+
*/
|
|
237
|
+
export function scanIdUsage(data, ns) {
|
|
238
|
+
const refs = [];
|
|
239
|
+
for (const map of data.maps) {
|
|
240
|
+
for (const event of map.events) {
|
|
241
|
+
if (event)
|
|
242
|
+
refs.push(...mapEventRefs(event, map.id, ns));
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
for (const commonEvent of data.commonEvents) {
|
|
246
|
+
if (commonEvent)
|
|
247
|
+
refs.push(...commonEventRefs(commonEvent, ns));
|
|
248
|
+
}
|
|
249
|
+
for (const troop of data.troops) {
|
|
250
|
+
if (!troop || !Array.isArray(troop.pages))
|
|
251
|
+
continue;
|
|
252
|
+
troop.pages.forEach((page, pi) => {
|
|
253
|
+
const path = `troop ${troop.id} / page ${pi}`;
|
|
254
|
+
const conditions = page?.conditions;
|
|
255
|
+
if (ns === 'switch' && conditions?.switchValid && conditions.switchId > 0) {
|
|
256
|
+
refs.push({ id: conditions.switchId, path, via: 'troop page condition (switchId)' });
|
|
257
|
+
}
|
|
258
|
+
refs.push(...scanList(page?.list, path, ns));
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
if (ns === 'common_event') {
|
|
262
|
+
for (const skill of data.skills) {
|
|
263
|
+
if (skill)
|
|
264
|
+
refs.push(...effectRefs(skill.effects, `skill ${skill.id}`));
|
|
265
|
+
}
|
|
266
|
+
for (const item of data.items) {
|
|
267
|
+
if (item)
|
|
268
|
+
refs.push(...effectRefs(item.effects, `item ${item.id}`));
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
return refs;
|
|
272
|
+
}
|
|
273
|
+
//# sourceMappingURL=idUsage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"idUsage.js","sourceRoot":"","sources":["../../src/validation/idUsage.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED