Actively revamping this pet if anyone would like it’s files.
pet.json
{
"id": "ordl-dejavu",
"displayName": "Deja Vu",
"description": "A hooded lantern-bearing research sentinel that carries open inquiry through uncertainty and leaves a path for those who follow.",
"spriteVersionNumber": 2,
"spritesheetPath": "spritesheet.webp"
}
behavior-map.json
{
"schema": "codex-pet-behavior-map/v1",
"pet": {
"id": "ordl-dejavu",
"displayName": "Deja Vu",
"manifestPath": "pet.json",
"spritesheetPath": "spritesheet.webp",
"spriteVersionNumber": 2,
"cellSize": {
"width": 192,
"height": 208
},
"grid": {
"columns": 8,
"rows": 11
}
},
"rendererContract": {
"nativeCodexStates": "fixed-v2-rows",
"semanticAliases": "sidecar",
"note": "The native Codex pet manifest remains strict and uses fixed v2 rows. This sidecar gives external behavior orchestration and future renderers the recovered ORDL/Ralph semantics without adding unsupported manifest fields."
},
"semanticAliases": {
"observe": "idle",
"path-making-right": "running-right",
"path-making-left": "running-left",
"orient": "look-directions",
"signal": "waving",
"breakthrough": "jumping",
"recover": "failed",
"operator-gate": "waiting",
"thinking": "running",
"discovery": "review"
},
"states": {
"idle": {
"rows": [0],
"frames": 6,
"frameColumns": [0, 1, 2, 3, 4, 5],
"intent": "Observe and maintain a stable research context."
},
"running-right": {
"rows": [1],
"frames": 8,
"frameColumns": [0, 1, 2, 3, 4, 5, 6, 7],
"intent": "Make a path toward the screen-right frontier."
},
"running-left": {
"rows": [2],
"frames": 8,
"frameColumns": [0, 1, 2, 3, 4, 5, 6, 7],
"intent": "Retrace, branch, or carry the path toward screen-left."
},
"waving": {
"rows": [3],
"frames": 4,
"frameColumns": [0, 1, 2, 3],
"intent": "Signal a checkpoint, acknowledgement, or handoff."
},
"jumping": {
"rows": [4],
"frames": 5,
"frameColumns": [0, 1, 2, 3, 4],
"intent": "Cross a boundary or mark a breakthrough."
},
"failed": {
"rows": [5],
"frames": 8,
"frameColumns": [0, 1, 2, 3, 4, 5, 6, 7],
"intent": "Hold a blocked or rejected branch as recoverable state."
},
"waiting": {
"rows": [6],
"frames": 6,
"frameColumns": [0, 1, 2, 3, 4, 5],
"intent": "Pause at the operator gate for approval, authority, help, or input."
},
"running": {
"rows": [7],
"frames": 6,
"frameColumns": [0, 1, 2, 3, 4, 5],
"intent": "Think, process, and construct the next path or RalphFlow step."
},
"review": {
"rows": [8],
"frames": 6,
"frameColumns": [0, 1, 2, 3, 4, 5],
"intent": "Inspect evidence, artifacts, and results to discover what comes next."
},
"look-directions": {
"rows": [9, 10],
"frames": 16,
"frameColumns": [0, 1, 2, 3, 4, 5, 6, 7],
"directionsDegrees": [0, 22.5, 45, 67.5, 90, 112.5, 135, 157.5, 180, 202.5, 225, 247.5, 270, 292.5, 315, 337.5],
"intent": "Orient toward and check a new frontier point before acting."
}
},
"loops": {
"behavior": [
"observe",
"thinking",
"path-making-right|path-making-left",
"discovery",
"operator-gate",
"thinking"
],
"recovery": [
"recover",
"thinking"
],
"breakthrough": [
"discovery",
"breakthrough",
"observe"
]
},
"legacyCorrelation": {
"sourceAtlasPath": "dejavu.png",
"sourceGrid": {
"columns": 8,
"rows": 9,
"cellWidth": 192,
"cellHeight": 208
},
"usedCellsByRow": {
"0": 6,
"1": 8,
"2": 8,
"3": 4,
"4": 5,
"5": 8,
"6": 6,
"7": 6,
"8": 6
},
"alphaSilhouettePreservedInV2": true,
"addedNeutralFrame": {
"row": 0,
"column": 6,
"intent": "Neutral/front fallback while selecting a look direction."
}
}
}