2026-03-06 18:35:58 +00:00
|
|
|
package recipe
|
|
|
|
|
|
|
|
|
|
import "fmt"
|
|
|
|
|
|
|
|
|
|
type Runner struct {
|
|
|
|
|
Recipe *Recipe
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func NewRunner(r *Recipe) *Runner {
|
|
|
|
|
return &Runner{Recipe: r}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (r *Runner) Run() error {
|
2026-03-06 19:00:16 +00:00
|
|
|
fmt.Printf("🍳 Starting recipe: %s v%s\n\n", r.Recipe.Name, r.Recipe.Version)
|
|
|
|
|
|
2026-03-06 18:35:58 +00:00
|
|
|
for _, step := range r.Recipe.Steps {
|
|
|
|
|
fmt.Printf("Step %d/%d: %s\n", step.Number, len(r.Recipe.Steps), step.Title)
|
2026-03-06 19:00:16 +00:00
|
|
|
// TODO: here we will send step.Instructions (plus Objective/Expected) to the LLM
|
|
|
|
|
// and handle the response according to Expected output
|
|
|
|
|
fmt.Println(" → (LLM call coming soon)")
|
2026-03-06 18:35:58 +00:00
|
|
|
}
|
2026-03-06 19:00:16 +00:00
|
|
|
|
|
|
|
|
fmt.Println("\n✅ Recipe complete.")
|
2026-03-06 18:35:58 +00:00
|
|
|
return nil
|
|
|
|
|
}
|