Prerequisites
- Python 3.12+
- Windows (prototype), with terminal access
Run the Terminal
From the project directory:
> Terminal_Launcher.bat
This launches terminal.py, displays the ASCII logo, and opens the interactive shell.
Create Your First Sigils
Create User/Sigils/room.yml and User/Sigils/hall.yml:
sigil:
id: room
type: object
properties:
label: "Misty Room"
relations:
connected_to: ["@hall"]
sigil:
id: hall
type: object
properties:
label: "Long Hall"
relations: {}
Define a Relation
Create User/Relations/connected_to.yml:
sigil:
id: connected_to
type: relation
properties:
directed: false
symmetric: true
arity: 2
roles: [subject, subject]
category: association
script: Scripts/connected_to.py
(Optional) Create User/Scripts/connected_to.py:
def handle(pulse: dict, src: str, rel: str, dst: str, api) -> dict:
api.graph.set_property(dst, "visited", True)
return {"targets": None, "updates": {}, "emit": []}
Emit a Pulse
From the terminal, emit a pulse from @room:
> emit @room payload:{ step: 1 }
The pulse will traverse connected_to edges and mark @hall as visited via the relation script.
Folders
ROOT/*: engine defaults (read-only)User/*: project-specific content (overrides, writes)Sigils/,Relations/,Scripts/,Commands/,Modules/ROOT/Utilities/: Windows tools (.exe/.bat/.cmd/.ps1/.py)User/Logs/: runtime pulse and change logs