Files
yaze/assets/agent/function_schemas.json
scawful 85bc14e93e feat: Add overworld sprite and entrance commands to agent tool
- Implemented new commands for listing overworld sprites and retrieving entrance details.
- Enhanced CLI functionality to support filtering by map, world, and sprite ID with JSON and text output formats.
- Introduced tile statistics analysis command for detailed tile usage insights.
- Updated function schemas and system prompts to reflect the new commands and their parameters.
2025-10-04 21:27:10 -04:00

303 lines
7.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"]
}
},
{
"name": "overworld-list-sprites",
"description": "List sprites on the overworld with optional filters for map, world, or sprite ID",
"parameters": {
"type": "object",
"properties": {
"map": {
"type": "string",
"description": "Optional: filter by map ID (0x00-0x9F)"
},
"world": {
"type": "string",
"description": "Optional: filter by world (0=light, 1=dark, 2=special)"
},
"sprite_id": {
"type": "string",
"description": "Optional: filter by sprite ID (0x00-0xFF)"
},
"format": {
"type": "string",
"enum": ["json", "text"],
"default": "json"
}
}
}
},
{
"name": "overworld-get-entrance",
"description": "Get detailed information about a specific overworld entrance by its ID",
"parameters": {
"type": "object",
"properties": {
"entrance_id": {
"type": "string",
"description": "Entrance ID number (0-128)"
},
"format": {
"type": "string",
"enum": ["json", "text"],
"default": "json"
}
},
"required": ["entrance_id"]
}
},
{
"name": "overworld-tile-stats",
"description": "Analyze usage statistics for a specific tile16 ID across the overworld",
"parameters": {
"type": "object",
"properties": {
"tile_id": {
"type": "string",
"description": "Tile16 ID to analyze (0x0000-0xFFFF, hex or decimal)"
},
"map": {
"type": "string",
"description": "Optional: limit analysis to specific map ID"
},
"world": {
"type": "string",
"description": "Optional: limit analysis to specific world (0=light, 1=dark, 2=special)"
},
"format": {
"type": "string",
"enum": ["json", "text"],
"default": "json"
}
},
"required": ["tile_id"]
}
}
]