// Package state persists report artifacts and metadata. package state import ( "context" "gitea.maximumdirect.net/eric/weatherreporter/internal/briefing" "gitea.maximumdirect.net/eric/weatherreporter/internal/promptinput" "gitea.maximumdirect.net/eric/weatherreporter/internal/report" ) type Store interface { Paths(report.Resolved) (ArtifactPaths, error) SaveBriefing(context.Context, report.Resolved, briefing.Package) (string, error) SaveDataPackage(context.Context, report.Resolved, promptinput.Package) (string, error) SavePreflight(context.Context, report.Resolved, PreflightArtifact) (string, error) PrepareRenderedReport(context.Context, report.Resolved) (string, error) SaveMetadata(context.Context, Metadata) (string, error) FindPriorSnapshot(context.Context, report.Resolved) (*PriorSnapshot, error) FindPriorDailySnapshot(context.Context, report.Resolved) (*PriorSnapshot, error) LoadBriefing(context.Context, string) (briefing.Package, error) } type PriorSnapshot struct { Metadata Metadata BriefingPath string } type PreflightArtifact struct { Command []string `json:"command"` Stdout string `json:"stdout"` Stderr string `json:"stderr"` StdoutTruncated bool `json:"stdoutTruncated,omitempty"` StderrTruncated bool `json:"stderrTruncated,omitempty"` ExitCode int `json:"exitCode"` }