38 lines
1.4 KiB
Go
38 lines
1.4 KiB
Go
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,
|
|
}
|
|
}
|