2026-10-20 21:30:39 -07:00
|
|
|
package workflow
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"bytes"
|
|
|
|
|
"encoding/json"
|
|
|
|
|
"fmt"
|
|
|
|
|
|
|
|
|
|
"g.fc.run/ai/byre/internal/api"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func Parse(data []byte) (api.WorkflowDefinition, error) {
|
|
|
|
|
def := api.WorkflowDefinition{}
|
|
|
|
|
dec := json.NewDecoder(bytes.NewReader(data))
|
|
|
|
|
dec.DisallowUnknownFields()
|
|
|
|
|
err := dec.Decode(&def)
|
|
|
|
|
if err != nil {
|
2026-10-23 18:36:11 -07:00
|
|
|
return api.WorkflowDefinition{}, fmt.Errorf("%w: %w", ErrInvalid, err)
|
2026-10-20 21:30:39 -07:00
|
|
|
}
|
|
|
|
|
return def, Validate(def)
|
|
|
|
|
}
|