feat: use canonical TOML path strings

This commit is contained in:
lda
2026-06-27 15:24:34 +07:00 Verified
parent 4b03f54a1d
commit 5cfe513efc
29 changed files with 431 additions and 421 deletions
@@ -54,7 +54,7 @@ and wrapper hints before using it. Do not assume every content block is text.
Incorrect:
```json
{"source": {"root": "local", "parts": ["content"]}, "target": {"root": "state", "parts": ["summary"]}}
{"source": "content", "target": "state.summary"}
```
Correct: filter `content` to text blocks, extract each `text`, then combine or
@@ -73,14 +73,14 @@ The plan file is the low-level workflow model. It is not a draft workspace.
"node": "example.source.read",
"input": [
{
"path": { "root": "input", "parts": ["text"] },
"target": { "root": "local", "parts": ["text"] }
"path": "input.text",
"target": "text"
}
],
"output": [
{
"source": { "root": "local", "parts": ["text"] },
"target": { "root": "state", "parts": ["notes"] }
"source": "text",
"target": "state.notes"
}
]
},
@@ -90,14 +90,14 @@ The plan file is the low-level workflow model. It is not a draft workspace.
"node": "example.source.extract",
"input": [
{
"path": { "root": "state", "parts": ["notes"] },
"target": { "root": "local", "parts": ["text"] }
"path": "state.notes",
"target": "text"
}
],
"output": [
{
"source": { "root": "local", "parts": [] },
"target": { "root": "state", "parts": ["report"] }
"source": ".",
"target": "state.report"
}
]
}
@@ -108,8 +108,8 @@ The plan file is the low-level workflow model. It is not a draft workspace.
],
"output": [
{
"path": { "root": "state", "parts": ["report"] },
"target": { "root": "local", "parts": ["report"] }
"path": "state.report",
"target": "report"
}
]
}
@@ -30,8 +30,8 @@ Step input bindings read graph values into node-local input:
```json
{
"target": { "root": "local", "parts": ["text"] },
"path": { "root": "input", "parts": ["text"] }
"target": "text",
"path": "input.text"
}
```
@@ -39,8 +39,8 @@ Step output bindings write node-local output into workflow state:
```json
{
"source": { "root": "local", "parts": ["echoed"] },
"target": { "root": "state", "parts": ["echoed"] }
"source": "echoed",
"target": "state.echoed"
}
```
@@ -49,8 +49,8 @@ Top-level workflow output uses `path` / `target`, not step-level
```json
{
"path": { "root": "state", "parts": ["echoed"] },
"target": { "root": "local", "parts": ["echoed"] }
"path": "state.echoed",
"target": "echoed"
}
```