use new input/output field

This commit is contained in:
lda
2026-05-21 03:09:26 +07:00 Verified
parent c37be4f13c
commit 6e768435d8
8 changed files with 400 additions and 82 deletions
+8 -8
View File
@@ -51,26 +51,26 @@ Responsibilities:
Typical entry points:
- `use(node_spec, id=..., in_map=..., out_map=...)`
- `use(node_spec, id=..., input=[...], output=[...])`
- `condition(...)`
- `foreach(...)`
- `interrupt(...)`
- `connect(...)`
- `compile()`
`in_map` and `out_map` remain authoring convenience parameters. The compiled
core `NodeUse` shape is canonical `input` and `output` binding lists:
`input` and `output` use the same canonical binding-list shape as core
`NodeUse`:
```json
{
"input": [{"target": "text", "path": "input.text"}],
"output": [{"source": "echoed", "target": "state.echoed"}]
"input": [{"target": {"root": "local", "parts": ["text"]}, "path": {"root": "input", "parts": ["text"]}}],
"output": [{"source": {"root": "local", "parts": ["echoed"]}, "target": {"root": "state", "parts": ["echoed"]}}]
}
```
Authoring should not teach client LLMs that `in_map`, `input_values`, or
`out_map` are the preferred core model. Those names are compatibility inputs
and Python-builder sugar.
`in_map`, `input_values`, and `out_map` are deprecated compatibility sugar for
Python authors. Client LLMs and MCP/JSON callers should use canonical binding
lists so structural paths live inside structs, not as unhashable map keys.
### `NodeCatalog`