api/ folder holds one file per key below. run is api/run.yaml, events is api/events.yaml, and each of those files IS its list — there is no wrapping run: or events: key inside them.
Generated from
nodes/_schema/api.schema.json, the same file the node
linter validates against.Example
api/run.yaml
Fields
object[]
The calls this node makes, in order, always a list. Each step can read what earlier ones returned. Every call but the last must settle; only the last may stream.
object[]
Everything that leaves the node, one row per output connector, in the order
interface.yaml declares them. Lint enforces coverage and order.object
Methods this node offers to others over a service edge, keyed by name. Called by another node rather than by the graph, and each returns a value to the caller.
object
Hands tools to a model and resolves the calls that come back. Declaring it makes the node a callback node.
object
A second, cheaper model writing a status line while the main call runs. A
from: narrator row in events says where the line lands.object
A write straight into the caller’s screen state, pushed after the node settles. A side channel to the person watching, never an output.
audio.schema.json
Binds a voice node to the platform’s audio lane, which is a separate socket. Everything that is not audio belongs in
events.Next steps
Building a node
The guides behind these fields.
Troubleshooting
When a node does not do what you wrote.

