docs(graph): clarify runtime guard wording and nested paths for agent inputs

Dark-Alex-17 committed 2026-09-10 12:59:24 -06:00
1 parent b57aa2c2db
commit f092078a75
1 file changed
+8 -2
+8 -2
@@ -309,7 +309,9 @@ resolved strictly (a missing key fails the node before the child starts, with
- A value that is exactly one reference (`"{{inner_width}}"`) hands the
parent's JSON value through unchanged: numbers stay numbers, lists stay
lists, objects stay objects. Scripts in the child see the real type;
the child's own templates stringify it the usual way.
the child's own templates stringify it the usual way. Nested paths work
the same way (`"{{limits.width}}"` hands through `limits.width` with its
type intact).
- Anything else (`"Repo: {{repo}}"`, `"{{a}}-{{b}}"`) renders to a string.
- **`null` is a value, not an absence.** A lone `"{{k}}"` whose parent value
is `null` overlays the child's default with `null`. Because `state_updates`
@@ -318,7 +320,11 @@ resolved strictly (a missing key fails the node before the child starts, with
`x: null`, not its own default.
**Two things are rejected**, both at load time by the validator and again at
runtime for graphs running with `validate_before_run: false`:
runtime for graphs running with `validate_before_run: false`. The validator
messages below name the node; the runtime guards name the agent instead
(`agent '<name>' has no graph.yaml; …` / `agent '<name>': `inputs.initial_prompt`
is reserved …`) and arrive wrapped in the usual `at node '<id>': Agent '<name>'
failed:` context, so the node is still recoverable from the error chain.
- `inputs:` on a node whose `agent` has a `config.yaml` but no `graph.yaml`
(`agent node '<id>': `inputs:` requires agent '<name>' to be a graph agent