- Added functionality for listing, reading, and searching messages in the ROM. - Introduced new commands: `message-list`, `message-read`, and `message-search` with appropriate parameters and descriptions. - Enhanced the CLI to support these commands, including JSON and text output formats. - Updated system prompts and function schemas to reflect the new message handling capabilities.
231 lines
5.5 KiB
JSON
231 lines
5.5 KiB
JSON
[
|
|
{
|
|
"name": "resource-list",
|
|
"description": "List all labeled resources of a specific type (dungeons, sprites, palettes)",
|
|
"parameters": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Resource type to list",
|
|
"enum": [
|
|
"dungeon",
|
|
"room",
|
|
"entrance",
|
|
"overworld",
|
|
"sprite",
|
|
"palette",
|
|
"item",
|
|
"tile16",
|
|
"all"
|
|
]
|
|
},
|
|
"format": {
|
|
"type": "string",
|
|
"description": "Output format",
|
|
"enum": ["json", "table", "text"],
|
|
"default": "table"
|
|
}
|
|
},
|
|
"required": ["type"]
|
|
}
|
|
},
|
|
{
|
|
"name": "resource-search",
|
|
"description": "Search labeled resources by name, ID, or partial match",
|
|
"parameters": {
|
|
"type": "object",
|
|
"properties": {
|
|
"query": {
|
|
"type": "string",
|
|
"description": "Search text (case-insensitive substring match)"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Optional resource category to filter",
|
|
"enum": [
|
|
"dungeon",
|
|
"room",
|
|
"entrance",
|
|
"overworld",
|
|
"sprite",
|
|
"palette",
|
|
"item",
|
|
"tile16",
|
|
"all"
|
|
],
|
|
"default": "all"
|
|
},
|
|
"format": {
|
|
"type": "string",
|
|
"description": "Output format",
|
|
"enum": ["json", "text"],
|
|
"default": "json"
|
|
}
|
|
},
|
|
"required": ["query"]
|
|
}
|
|
},
|
|
{
|
|
"name": "dungeon-list-sprites",
|
|
"description": "List all sprites in a specific dungeon room",
|
|
"parameters": {
|
|
"type": "object",
|
|
"properties": {
|
|
"room": {
|
|
"type": "string",
|
|
"description": "Room ID in hex format (e.g., 0x012)"
|
|
},
|
|
"format": {
|
|
"type": "string",
|
|
"enum": ["json", "text"],
|
|
"default": "json"
|
|
}
|
|
},
|
|
"required": ["room"]
|
|
}
|
|
},
|
|
{
|
|
"name": "dungeon-describe-room",
|
|
"description": "Summarize dungeon room metadata, hazards, and counts",
|
|
"parameters": {
|
|
"type": "object",
|
|
"properties": {
|
|
"room": {
|
|
"type": "string",
|
|
"description": "Room ID in hex format (e.g., 0x012)"
|
|
},
|
|
"format": {
|
|
"type": "string",
|
|
"enum": ["json", "text"],
|
|
"default": "json"
|
|
}
|
|
},
|
|
"required": ["room"]
|
|
}
|
|
},
|
|
{
|
|
"name": "overworld-find-tile",
|
|
"description": "Find all occurrences of a specific tile16 ID on overworld maps",
|
|
"parameters": {
|
|
"type": "object",
|
|
"properties": {
|
|
"tile": {
|
|
"type": "string",
|
|
"description": "Tile16 ID in hex format (e.g., 0x02E)"
|
|
},
|
|
"map": {
|
|
"type": "string",
|
|
"description": "Optional: specific map ID to search (e.g., 0x05)"
|
|
},
|
|
"format": {
|
|
"type": "string",
|
|
"enum": ["json", "text"],
|
|
"default": "json"
|
|
}
|
|
},
|
|
"required": ["tile"]
|
|
}
|
|
},
|
|
{
|
|
"name": "overworld-describe-map",
|
|
"description": "Get summary information about an overworld map",
|
|
"parameters": {
|
|
"type": "object",
|
|
"properties": {
|
|
"map": {
|
|
"type": "string",
|
|
"description": "Map ID in hex format (e.g., 0x00)"
|
|
},
|
|
"format": {
|
|
"type": "string",
|
|
"enum": ["json", "text"],
|
|
"default": "json"
|
|
}
|
|
},
|
|
"required": ["map"]
|
|
}
|
|
},
|
|
{
|
|
"name": "overworld-list-warps",
|
|
"description": "List warp/entrance/exit points on the overworld",
|
|
"parameters": {
|
|
"type": "object",
|
|
"properties": {
|
|
"map": {
|
|
"type": "string",
|
|
"description": "Optional: filter by map ID"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Optional: filter by warp type",
|
|
"enum": ["entrance", "exit", "hole", "all"],
|
|
"default": "all"
|
|
},
|
|
"format": {
|
|
"type": "string",
|
|
"enum": ["json", "text"],
|
|
"default": "json"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "message-list",
|
|
"description": "List all in-game dialogue and text messages from the ROM",
|
|
"parameters": {
|
|
"type": "object",
|
|
"properties": {
|
|
"range": {
|
|
"type": "string",
|
|
"description": "Optional: limit to message ID range in format 'start-end' (e.g., '0-100')"
|
|
},
|
|
"format": {
|
|
"type": "string",
|
|
"enum": ["json", "text"],
|
|
"default": "json"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "message-read",
|
|
"description": "Read a specific message by its ID",
|
|
"parameters": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"description": "Message ID number (0-300+)"
|
|
},
|
|
"format": {
|
|
"type": "string",
|
|
"enum": ["json", "text"],
|
|
"default": "json"
|
|
}
|
|
},
|
|
"required": ["id"]
|
|
}
|
|
},
|
|
{
|
|
"name": "message-search",
|
|
"description": "Search for messages containing specific text",
|
|
"parameters": {
|
|
"type": "object",
|
|
"properties": {
|
|
"query": {
|
|
"type": "string",
|
|
"description": "Text to search for within message content (case-insensitive)"
|
|
},
|
|
"format": {
|
|
"type": "string",
|
|
"enum": ["json", "text"],
|
|
"default": "json"
|
|
}
|
|
},
|
|
"required": ["query"]
|
|
}
|
|
}
|
|
]
|
|
|