gradeNot graded
get_mission_stateAnswer
Returns the current structured mission graph including rooms, entities, connections, counts, and stable IDs. Call this before modifying an existing mission because a human may have changed the mission since your last read; do not rely on remembered state.
View tool JSON
{
"name": "get_mission_state",
"kind": "answer",
"impl": "imperative",
"description": "Returns the current structured mission graph including rooms, entities, connections, counts, and stable IDs. Call this before modifying an existing mission because a human may have changed the mission since your last read; do not rely on remembered state.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}create_roomAction
Creates a new mission room and returns its stable ID for subsequent entity placement and connections. Supported room types are normal, corridor, security_room, and server_room.
View tool JSON
{
"name": "create_room",
"kind": "act",
"impl": "imperative",
"description": "Creates a new mission room and returns its stable ID for subsequent entity placement and connections. Supported room types are normal, corridor, security_room, and server_room.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"type"
],
"properties": {
"name": {
"type": "string",
"description": "Display name for the new room."
},
"type": {
"type": "string",
"enum": [
"normal",
"corridor",
"server_room",
"security_room"
],
"description": "Room kind: normal, corridor, server_room, or security_room."
},
"x": {
"type": "number",
"description": "Canvas X position. Omit together with y to use a deterministic default."
},
"y": {
"type": "number",
"description": "Canvas Y position. Omit together with x to use a deterministic default."
}
}
}
}update_roomAction
Updates an existing room. Omitted optional fields remain unchanged.
View tool JSON
{
"name": "update_room",
"kind": "act",
"impl": "imperative",
"description": "Updates an existing room. Omitted optional fields remain unchanged.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"roomId"
],
"properties": {
"roomId": {
"type": "string",
"description": "Stable id of the room to modify."
},
"name": {
"type": "string",
"description": "Replacement display name."
},
"type": {
"type": "string",
"enum": [
"normal",
"corridor",
"server_room",
"security_room"
],
"description": "Replacement room kind."
},
"x": {
"type": "number",
"description": "Replacement canvas X position."
},
"y": {
"type": "number",
"description": "Replacement canvas Y position."
}
}
}
}delete_roomSensitive Action
Deletes a room and also removes entities inside it and connections attached to it. This is destructive; prefer targeted mutations when repairing a mission.
View tool JSON
{
"name": "delete_room",
"kind": "transact",
"impl": "imperative",
"description": "Deletes a room and also removes entities inside it and connections attached to it. This is destructive; prefer targeted mutations when repairing a mission.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"roomId"
],
"properties": {
"roomId": {
"type": "string",
"description": "Stable id of the room to delete."
}
}
}
}place_entityAction
Places a NEW entity in the mission. Supported types are player_spawn, extraction, objective, enemy, and keycard. To move an existing entity to another room or position, use update_entity instead of place_entity; place_entity creates a new entity.
View tool JSON
{
"name": "place_entity",
"kind": "act",
"impl": "imperative",
"description": "Places a NEW entity in the mission. Supported types are player_spawn, extraction, objective, enemy, and keycard. To move an existing entity to another room or position, use update_entity instead of place_entity; place_entity creates a new entity.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"enum": [
"player_spawn",
"extraction",
"objective",
"enemy",
"keycard"
],
"description": "Entity kind: player_spawn, extraction, objective, enemy, or keycard."
},
"roomId": {
"type": "string",
"description": "Existing room id to place the entity inside. Omit to place on the canvas."
},
"x": {
"type": "number",
"description": "X position. Relative to the room when roomId is set, otherwise canvas."
},
"y": {
"type": "number",
"description": "Y position. Relative to the room when roomId is set, otherwise canvas."
}
}
}
}create_connectionAction
Creates a bidirectional route between two rooms. A↔B and B↔A represent the same connection; duplicate calls are safe and return the existing connection. Connection type is a design-level classification. A locked connection is a controlled security access route visually, but validation treats locked and normal connections as structurally traversable the same way. Keycard gameplay/possession is not simulated by the current deterministic validator.
View tool JSON
{
"name": "create_connection",
"kind": "act",
"impl": "imperative",
"description": "Creates a bidirectional route between two rooms. A↔B and B↔A represent the same connection; duplicate calls are safe and return the existing connection. Connection type is a design-level classification. A locked connection is a controlled security access route visually, but validation treats locked and normal connections as structurally traversable the same way. Keycard gameplay/possession is not simulated by the current deterministic validator.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"sourceRoomId",
"targetRoomId"
],
"properties": {
"sourceRoomId": {
"type": "string",
"description": "Stable id of one endpoint room. The connection is bidirectional."
},
"targetRoomId": {
"type": "string",
"description": "Stable id of the other endpoint room. A↔B is the same as B↔A."
},
"type": {
"type": "string",
"enum": [
"normal",
"locked"
],
"description": "Connection kind: normal (open) or locked. Omit to create a normal connection."
}
}
}
}delete_connectionSensitive Action
Removes one existing route using its connection ID.
View tool JSON
{
"name": "delete_connection",
"kind": "transact",
"impl": "imperative",
"description": "Removes one existing route using its connection ID.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"connectionId"
],
"properties": {
"connectionId": {
"type": "string",
"description": "Stable id of the connection to delete."
}
}
}
}update_entityAction
Updates an existing entity. PATCH semantics apply: omitted fields remain unchanged. Use roomId to move an existing entity to another room.
View tool JSON
{
"name": "update_entity",
"kind": "act",
"impl": "imperative",
"description": "Updates an existing entity. PATCH semantics apply: omitted fields remain unchanged. Use roomId to move an existing entity to another room.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"entityId"
],
"properties": {
"entityId": {
"type": "string",
"description": "Stable id of the entity to patch."
},
"roomId": {
"type": "string",
"description": "Move the entity into this existing room. Omit to leave the current room unchanged."
},
"x": {
"type": "number",
"description": "Replacement X position. Relative to the room when the entity is room-bound."
},
"y": {
"type": "number",
"description": "Replacement Y position. Relative to the room when the entity is room-bound."
}
}
}
}delete_entitySensitive Action
Removes one existing entity from the mission.
View tool JSON
{
"name": "delete_entity",
"kind": "transact",
"impl": "imperative",
"description": "Removes one existing entity from the mission.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"entityId"
],
"properties": {
"entityId": {
"type": "string",
"description": "Stable id of the entity to delete."
}
}
}
}validate_missionAction
Runs the fixed set of seven deterministic mission checks and returns pass, fail, or skipped results with dependency information where applicable. This validator uses deterministic graph logic, not an LLM. Reachability is structural: locked connections are traversed the same as normal connections, and keycard possession/gameplay is not simulated. Call validate_mission after every repair and after any multi-step structural change to confirm the resulting mission state.
View tool JSON
{
"name": "validate_mission",
"kind": "act",
"impl": "imperative",
"description": "Runs the fixed set of seven deterministic mission checks and returns pass, fail, or skipped results with dependency information where applicable. This validator uses deterministic graph logic, not an LLM. Reachability is structural: locked connections are traversed the same as normal connections, and keycard possession/gameplay is not simulated. Call validate_mission after every repair and after any multi-step structural change to confirm the resulting mission state.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}analyze_missionAnswer
Read-only deterministic structural analysis of the current mission graph. Returns the shortest player-spawn-to-objective and objective-to-extraction routes, hop counts, ordered room and connection IDs, locked connections on each selected shortest path, connections that are single points of failure for required routes, and whether each required segment survives removal of any one connection. This tool does not return a mission-validity verdict and does not replace validate_mission. Use validate_mission for the fixed seven structural checks. Use analyze_mission after validation to inspect structural resilience in a mission that already functions. It changes nothing and writes no Activity entry. If status is INCOMPLETE, read blockedBy. Missing required entities can be created with place_entity; entities that exist but are not assigned to a valid room can be moved with update_entity. Adding connections cannot fix an unassigned critical entity. Locked connections are a design-level classification only. This analysis treats locked and normal links as equally traversable and does not simulate keycard possession or access control. To improve resilience, make one or two targeted connection changes at a time using existing mutation tools, then call analyze_mission and validate_mission again.
View tool JSON
{
"name": "analyze_mission",
"kind": "answer",
"impl": "imperative",
"description": "Read-only deterministic structural analysis of the current mission graph. Returns the shortest player-spawn-to-objective and objective-to-extraction routes, hop counts, ordered room and connection IDs, locked connections on each selected shortest path, connections that are single points of failure for required routes, and whether each required segment survives removal of any one connection. This tool does not return a mission-validity verdict and does not replace validate_mission. Use validate_mission for the fixed seven structural checks. Use analyze_mission after validation to inspect structural resilience in a mission that already functions. It changes nothing and writes no Activity entry. If status is INCOMPLETE, read blockedBy. Missing required entities can be created with place_entity; entities that exist but are not assigned to a valid room can be moved with update_entity. Adding connections cannot fix an unassigned critical entity. Locked connections are a design-level classification only. This analysis treats locked and normal links as equally traversable and does not simulate keycard possession or access control. To improve resilience, make one or two targeted connection changes at a time using existing mutation tools, then call analyze_mission and validate_mission again.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}