36 std::string
GetName()
const override {
return "tools-list"; }
37 std::string
GetUsage()
const override {
return "tools-list"; }
42 return absl::OkStatus();
46 return absl::UnimplementedError(
47 "Handled by ToolDispatcher meta-tool handler");
53 std::string
GetName()
const override {
return "tools-describe"; }
55 return "tools-describe --name=<tool>";
61 return absl::OkStatus();
65 return absl::UnimplementedError(
66 "Handled by ToolDispatcher meta-tool handler");
72 std::string
GetName()
const override {
return "tools-search"; }
74 return "tools-search --query=<keyword>";
80 return absl::OkStatus();
84 return absl::UnimplementedError(
85 "Handled by ToolDispatcher meta-tool handler");
93 "Get detailed information about a tool",
94 "tools-describe --name=<tool>", {},
false,
false,
97 "tools-search --query=<keyword>", {},
false,
false,
102 "resource-list --type=<type>",
103 {
"resource-list --type=dungeon"},
true,
false,
106 "resource-search --query=<query>",
107 {
"resource-search --query=castle"},
true,
false,
112 "List sprites in a dungeon room",
113 "dungeon-list-sprites --room=<id>", {},
true,
false,
116 "dungeon-describe-room --room=<id>", {},
true,
false,
119 "dungeon-export-room --room=<id>", {},
true,
false,
122 "dungeon-list-objects --room=<id>", {},
true,
false,
125 "List custom collision tiles for a room",
126 "dungeon-list-custom-collision --room=<id>", {},
true,
129 "Export custom collision maps to JSON",
130 "dungeon-export-custom-collision-json --out=<path> "
131 "[--room=<id>|--rooms=<ids>|--all] [--report=<path>]",
135 "Import custom collision maps from JSON",
136 "dungeon-import-custom-collision-json --in=<path> "
137 "[--dry-run] [--replace-all --force] [--report=<path>]",
141 "Export water fill zones to JSON",
142 "dungeon-export-water-fill-json --out=<path> "
143 "[--room=<id>|--rooms=<ids>|--all] [--report=<path>]",
146 "Import water fill zones from JSON",
147 "dungeon-import-water-fill-json --in=<path> [--dry-run] "
148 "[--strict-masks] [--report=<path>]",
151 "dungeon-minecart-audit",
"dungeon",
152 "Audit minecart-related room data (objects/sprites/collision)",
153 "dungeon-minecart-audit --room=<id>", {},
true,
false,
156 "Enumerate track tile positions/types with ASCII grid for "
158 "dungeon-minecart-map --room=<id>", {},
true,
false,
161 "dungeon-get-room-tiles --room=<id>", {},
true,
false,
164 "dungeon-set-room-property",
"dungeon",
"Set room property",
165 "dungeon-set-room-property --room=<id> --key=<key> --value=<val>", {},
true,
168 "dungeon-room-header --room=<id>", {},
true,
false,
173 "overworld-find-tile --tile=<id>", {},
true,
false,
176 "overworld-describe-map --map=<id>", {},
true,
false,
179 "overworld-list-warps --map=<id>", {},
true,
false,
182 "overworld-list-sprites --map=<id>", {},
true,
false,
185 "overworld-get-entrance --id=<id>", {},
true,
false,
188 "overworld-tile-stats", {},
true,
false,
195 "message-read --id=<id>", {},
true,
false,
198 "message-search --query=<text>", {},
true,
false,
201 "dialogue-list", {},
true,
false,
204 "dialogue-read --id=<id>", {},
true,
false,
207 "dialogue-search --query=<text>", {},
true,
false,
212 "gui-place-tile --x=<x> --y=<y> --tile=<id>", {},
false,
215 "gui-click --target=<type:label> [--widget-key=<key>] "
216 "[--click-type=<left|right|middle|double>]",
219 "gui-type --target=<type:label> --text=<text> "
220 "[--widget-key=<key>] [--clear-first]",
223 "gui-wait",
"gui",
"Wait for GUI condition/widget",
224 "gui-wait --condition=<condition> [--widget-key=<key>] [--timeout-ms=<ms>]",
227 "gui-assert --condition=<condition> [--widget-key=<key>]",
230 "gui-discover-tool", {},
false,
false,
233 "gui-screenshot", {},
false,
false,
236 "Get a high-level summary of visible GUI widgets",
237 "gui-summarize-widgets", {},
false,
false,
244 "music-info --id=<id>", {},
true,
false,
253 "sprite-properties --id=<id>", {},
true,
false,
256 "sprite-palette --id=<id>", {},
true,
false,
261 "filesystem-list --path=<path>", {},
false,
false,
264 "filesystem-read --path=<path>", {},
false,
false,
267 "filesystem-exists --path=<path>", {},
false,
false,
270 "filesystem-info --path=<path>", {},
false,
false,
275 "memory-analyze --address=<addr> --length=<len>", {},
true,
278 "memory-search --pattern=<hex>", {},
true,
false,
289 "tools-helper-list", {},
false,
false,
292 "tools-harness-state", {},
false,
false,
295 "Extract vanilla ROM values",
"tools-extract-values", {},
298 "tools-extract-golden", {},
true,
false,
301 "tools-patch-v3", {},
true,
false,
306 "Find tiles with similar patterns",
307 "visual-find-similar-tiles", {},
true,
false,
310 "Identify unused regions",
"visual-analyze-spritesheet", {},
315 "Generate tile usage histogram",
"visual-tile-histogram",
322 "codegen-freespace-patch", {},
true,
false,
325 "codegen-sprite-template", {},
false,
false,
328 "Generate event handler",
"codegen-event-handler", {},
345 "project-graph",
"project",
346 "Query project graph info (files, symbols, config)",
347 "project-graph --query=<info|files|symbols> [--path=<folder>]", {},
true,
352 "emulator-step", {},
true,
false,
357 "emulator-pause", {},
true,
false,
360 "emulator-reset", {},
true,
false,
363 "emulator-get-state", {},
true,
false,
366 "emulator-set-breakpoint", {},
true,
false,
369 "emulator-clear-breakpoint", {},
true,
false,
372 "emulator-list-breakpoints", {},
true,
false,
375 "emulator-read-memory", {},
true,
false,
378 "emulator-write-memory", {},
true,
false,
381 "emulator-get-registers", {},
true,
false,
384 "emulator-get-metrics", {},
true,
false,
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
Command handler for listing dialogue messages.
Command handler for reading dialogue messages.
Command handler for searching dialogue messages.
Command handler for describing a dungeon room.
Command handler for exporting room data.
Command handler for getting room tiles.
Command handler for listing objects in a room.
Command handler for listing sprites in a dungeon room.
Command handler for reading raw room header bytes (diagnostic)
Command handler for setting room properties.
Command handler for GUI assertions.
Command handler for clicking GUI elements.
Command handler for placing tiles via GUI automation.
Command handler for taking screenshots.
Command handler for typing into GUI inputs.
Command handler for waiting on GUI conditions.
Command handler for listing messages.
Command handler for reading messages.
Command handler for searching messages.
Command handler for getting music track information.
Command handler for listing music tracks.
Command handler for getting detailed music track data.
Command handler for describing overworld maps.
Command handler for finding tiles in overworld.
Command handler for getting entrance information.
Command handler for listing sprites in overworld.
Command handler for listing warps in overworld.
Command handler for getting tile statistics.
Command handler for listing resource labels by type.
Command handler for searching resource labels.
Command handler for listing sprites.
Command handler for getting sprite palette information.
Command handler for getting sprite properties.
Utility for parsing common CLI argument patterns.
Base class for CLI command handlers.
CLI command handlers for test helper tools.