feat(aura-cli, aura-engine): use-aware unwired introspection; gang-rule prose; LinComb discovery
Harvest sweep, batch 5 of 6. - introspect --unwired resolves use refs through the registry store: the parse+resolve phase is extracted from graph build's path into the shared parse_and_resolve_ops, so a use-bearing document introspects identically to how it builds (fetch, C29 gate, label resolution) — retiring both the hard miss and the 'content id' mislabeling of by-name refs. The engine's subgraph closure contract is unchanged (store-freedom binds the engine, not the CLI caller). - ganging a spliced instance's member path refuses with the rule (OpError::GangOfSplicedInstance) instead of the typo-shaped no-such-param prose; the leaf-typo case keeps its UnknownParam shape under a new sibling pin. - the --node pending note names the follow-up moves on the current surface (build, then introspect --params / --unwired), and the authoring guide gains a worked LinComb op-script example (args-then-bind order, term[i]/weights[i], verified by building it). refs #339 refs #341
This commit is contained in:
@@ -334,6 +334,33 @@ re-run records, §3).
|
||||
(`sub.value` is tapped here purely to illustrate; any interior output field is
|
||||
a legal tap source, and a producer needs no other consumer to be tapped.)
|
||||
|
||||
### Worked example: a `LinComb` op-script
|
||||
|
||||
`LinComb` is **arg-bearing** (#271): `graph introspect --node LinComb` shows
|
||||
only the `arity` arg and the pending note until `args` supplies it — the
|
||||
ports (`term[0]`, `term[1]`, …) and params (`weights[0]`, `weights[1]`, …)
|
||||
form only once `arity` is real, one pair per term. A minimal weighted blend
|
||||
of two sources:
|
||||
|
||||
```json
|
||||
[
|
||||
{"op": "source", "role": "a", "kind": "F64"},
|
||||
{"op": "source", "role": "b", "kind": "F64"},
|
||||
{"op": "add", "type": "LinComb", "name": "combo",
|
||||
"args": {"arity": "2"}, "bind": {"weights[0]": {"F64": 0.7}}},
|
||||
{"op": "feed", "role": "a", "into": ["combo.term[0]"]},
|
||||
{"op": "feed", "role": "b", "into": ["combo.term[1]"]},
|
||||
{"op": "expose", "from": "combo.value", "as": "blend"}
|
||||
]
|
||||
```
|
||||
|
||||
`args` fixes the arity BEFORE `bind`/`feed` can address `term[i]`/`weights[i]`
|
||||
at all — the same closed-args-then-bind order every arg-bearing type follows
|
||||
(§0/#271). `weights[0]` is bound to `0.7` here, so it becomes a default
|
||||
(#246); the unbound `weights[1]` stays a required axis, appearing in `graph
|
||||
introspect --params` as `combo.weights[1]:F64` (alongside
|
||||
`combo.weights[0]:F64 default=0.7`).
|
||||
|
||||
### Session anchoring: the `SessionFrankfurt` preset
|
||||
|
||||
To anchor logic to the trading session, the closed vocabulary ships a
|
||||
|
||||
Reference in New Issue
Block a user