package app import ( "crypto/sha256" "encoding/hex" "strings" "time" "gitea.maximumdirect.net/eric/narratio/internal/artifactmodel" "gitea.maximumdirect.net/eric/narratio/internal/artifacts" "gitea.maximumdirect.net/eric/narratio/internal/manifest" ) func setAppAnalyzeEvidence(m *manifest.Manifest, key, relativePath string, body []byte) { now := time.Date(2026, 5, 19, 23, 0, 0, 0, time.UTC) record := m.Stages["analyze"] if record == nil { record = &manifest.StageRecord{Name: "analyze", Status: manifest.StatusSucceeded, CreatedAt: now, UpdatedAt: now} m.Stages["analyze"] = record } if record.AnalyzeArtifacts == nil { record.AnalyzeArtifacts = map[string]manifest.AnalyzeArtifactRecord{} } digest := sha256.Sum256(body) record.AnalyzeStateVersion = manifest.AnalyzeStateContractVersion record.AnalyzeArtifacts[key] = manifest.AnalyzeArtifactRecord{ Key: key, Status: manifest.AnalyzeArtifactCurrent, FingerprintVersion: manifest.AnalyzeFingerprintContractVersion, Fingerprint: strings.Repeat("1", 64), Output: &manifest.ArtifactRecord{ Kind: "scriptorium_artifact", SourceID: artifacts.ConfiguredArtifactSourceID(key), LocalPath: relativePath, Contract: &artifactmodel.ContractMetadata{MediaType: "text/markdown", SchemaID: "narratio." + key, SchemaVersion: "1"}, ProducerRunID: "run-1", Checksum: hex.EncodeToString(digest[:]), }, OutputSize: int64(len(body)), ProducerRunID: "run-1", UpdatedAt: now, } }