Expand description
The graph AST: nodes = {...} and branches = {...}.
A node’s in is an expression over other nodes’ outputs, not just a bare
name — Record/List are what make fan-in possible. See
docs/superpowers/specs/2026-08-03-dag-core-design.md for the full
rationale; this module is purely the parsed shape, with no typechecking
or execution logic (those live in cuttlefish-host).
Structs§
- Branches
branches = { node_name = { "label" -> target; ... }; ... }- Graph
Parser - A self-contained recursive-descent parser for the
nodes = {...}andbranches = {...}bodies, operating directly on a token slice. - Node
- One node in the graph.
- Node
Graph nodes = { name = { ... }; ... }
Enums§
- Input
Expr - What feeds a node’s input.
Functions§
- is_
simple_ chain - Whether a graph is a strict linear chain — a single strand where node
i’s sole input (if any) isFromNodeof nodei-1, nothing more: