// Package notarius declares the adapter contract for Notarius CLI invocations. package notarius import ( "context" "time" ) const ReceiptSchemaVersion = "notarius.run-result.v1" // Runner is the adapter boundary for a complete Notarius pipeline invocation. type Runner interface { Run(ctx context.Context, req RunRequest) (RunResult, error) } // RunRequest contains the resolved inputs and diagnostic destinations for one invocation. type RunRequest struct { Binary string ConfigPath string PipelineID string InputPath string OutputRoot string WorkingDirectory string ReceiptPath string LogPath string Timeout time.Duration } // Receipt is the transport-neutral successful run receipt. type Receipt struct { SchemaVersion string RunID string PipelineID string OutputDirectory string IndexFile string NormalizedOutputCount int RejectedOutputCount int WarningCount int ValidationStatus string DebugDirectory string } // LaneDescriptor identifies one normalized lane payload discovered through the index. type LaneDescriptor struct { LaneID string File string Path string MediaType string ModuleKey string SchemaID string SchemaName string SchemaVersion string } // PipelineDescriptor identifies a pipeline-wide artifact discovered through the index. type PipelineDescriptor struct { ArtifactKind string File string Path string MediaType string SchemaID string SchemaName string SchemaVersion string } // Index describes the validated bundle-management and artifact paths. type Index struct { Path string ManifestFile string ManifestPath string RejectedFile string RejectedPath string WarningsFile string WarningsPath string Lanes []LaneDescriptor ChunkMap *PipelineDescriptor EvidenceContext *PipelineDescriptor } // RejectionSummary retains structured rejection identity without free-form messages. type RejectionSummary struct { Stage string StepID string LaneID string ModuleKey string ChunkID string ValidatorName string ReasonCode string } // WarningSummary retains structured warning identity without free-form messages. type WarningSummary struct { Scope string ReasonCode string } // RunResult describes a successfully decoded and validated Notarius bundle. type RunResult struct { Receipt Receipt Index Index BundleRoot string ReceiptPath string LogPath string ExitCode int Duration time.Duration Rejections []RejectionSummary Warnings []WarningSummary }