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
Snider
a174227a62
feat(flow): add v0.8.0 upgrade flow YAMLs + fix runner queue drain
...
- flow/upgrade/v080-plan.yaml: structured audit for banned imports, tests, comments
- flow/upgrade/v080-implement.yaml: step-by-step implementation with per-step commits
- fix(runner): update workspace Registry on AgentCompleted so concurrency count drops and queue drains
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-26 13:21:59 +00:00
Snider
53482cb0c8
feat: workspace templates via Extract — Gosod pattern for agent dispatch
...
- Move pkg/prompts/lib → pkg/lib (prompt, task, flow, persona, workspace)
- New lib.go: unified package with ExtractWorkspace() using text/template
- Workspace templates: default, security, review — .tmpl files with data injection
- prep.go: uses lib.ExtractWorkspace() + detect helpers for language/build/test
- prompts.go: thin re-export wrapper for backwards compat
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-18 14:03:06 +00:00