agent/pkg/lib/flow
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
..
upgrade revert fcb9c189e5 2026-04-23 12:32:57 +01:00
cpp.md revert fcb9c189e5 2026-04-23 12:32:57 +01:00
docker.md revert fcb9c189e5 2026-04-23 12:32:57 +01:00
flow.go feat(agent/lib/flow): YAML flow library — Parse + ParseFile + LoadEmbedded 2026-04-25 20:21:33 +01:00
flow_test.go feat(agent/lib/flow): YAML flow library — Parse + ParseFile + LoadEmbedded 2026-04-25 20:21:33 +01:00
git.md revert fcb9c189e5 2026-04-23 12:32:57 +01:00
go.md revert fcb9c189e5 2026-04-23 12:32:57 +01:00
npm.md revert fcb9c189e5 2026-04-23 12:32:57 +01:00
php.md revert fcb9c189e5 2026-04-23 12:32:57 +01:00
prod-push-polish.md revert fcb9c189e5 2026-04-23 12:32:57 +01:00
py.md revert fcb9c189e5 2026-04-23 12:32:57 +01:00
release.md revert fcb9c189e5 2026-04-23 12:32:57 +01:00
ts.md revert fcb9c189e5 2026-04-23 12:32:57 +01:00