Commit graph

1 commit

Author SHA1 Message Date
Snider
8858545f63 feat(agent/lib/flow): YAML flow library — Parse + ParseFile + LoadEmbedded
New pkg/lib/flow package per RFC §Flow System:

types.Flow{Name, Description, Steps}, types.Step{Name, Cmd, Args,
ContinueOnError}.

Parse(reader io.Reader) (Flow, error): YAML decoder
ParseFile(path string) (Flow, error): reads via core.Fs, then Parse
LoadEmbedded(name string) (Flow, error): bundled flow templates;
.md files only treated as flows when they contain YAML frontmatter

Validation: steps may be absent (empty Steps slice OK); any declared
step must define cmd.

Pairs with #160 (run/flow command at pkg/agentic/flow.go) — that
consumes types from this library for sequential step execution.

Tests cover: valid YAML, continueOnError, empty input, malformed
YAML, missing cmd, temp-file ParseFile, missing embedded files,
markdown-template failure (current state — embedded markdown is
content not YAML).

Co-authored-by: Codex <noreply@openai.com>
Closes tasks.lthn.sh/view.php?id=229
2026-04-25 20:21:33 +01:00