feat: use canonical TOML path strings
This commit is contained in:
@@ -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"
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user