Track completed execution artifact paths
This commit is contained in:
@@ -534,6 +534,7 @@ type finalizeRenderedReportRequest struct {
|
||||
Resolved report.Resolved
|
||||
Metadata state.Metadata
|
||||
MetadataPath string
|
||||
ExecutionArtifact *state.PromptExecutionArtifact
|
||||
ManagedReportPath string
|
||||
OutputPath string
|
||||
Notifier Notifier
|
||||
@@ -556,15 +557,24 @@ func finalizeRenderedReport(ctx context.Context, req finalizeRenderedReportReque
|
||||
if req.ManagedReportPath == "" {
|
||||
return finalizeRenderedReportResult{}, fmt.Errorf("managed report path is required for report %q", req.Resolved.Definition.ID)
|
||||
}
|
||||
if req.ExecutionArtifact == nil {
|
||||
return finalizeRenderedReportResult{}, fmt.Errorf("prompt execution artifact is required for report %q", req.Resolved.Definition.ID)
|
||||
}
|
||||
|
||||
result := finalizeRenderedReportResult{Metadata: req.Metadata, MetadataPath: req.MetadataPath}
|
||||
if req.OutputPath != "" {
|
||||
if req.GenerationErr == nil && req.OutputPath != req.ManagedReportPath {
|
||||
if req.OutputPath != "" && req.GenerationErr == nil {
|
||||
if req.OutputPath != req.ManagedReportPath {
|
||||
if err := fileutil.CopyFileAtomic(req.ManagedReportPath, req.OutputPath); err != nil {
|
||||
return result, err
|
||||
}
|
||||
result.OutputPath = req.OutputPath
|
||||
req.ExecutionArtifact.Paths.OutputPath = req.OutputPath
|
||||
if _, err := req.Store.SavePromptExecution(ctx, req.Resolved, *req.ExecutionArtifact); err != nil {
|
||||
return result, err
|
||||
}
|
||||
} else {
|
||||
result.OutputPath = req.OutputPath
|
||||
}
|
||||
result.OutputPath = req.OutputPath
|
||||
}
|
||||
|
||||
metadata := req.Metadata
|
||||
@@ -588,6 +598,10 @@ func finalizeRenderedReport(ctx context.Context, req finalizeRenderedReportReque
|
||||
result.Notification = notification
|
||||
metadata.NotificationPath = notificationPath
|
||||
result.Metadata = metadata
|
||||
req.ExecutionArtifact.Paths.NotificationPath = notificationPath
|
||||
if _, saveErr := req.Store.SavePromptExecution(ctx, req.Resolved, *req.ExecutionArtifact); saveErr != nil {
|
||||
return result, saveErr
|
||||
}
|
||||
metadataPath, saveErr := req.Store.SaveMetadata(ctx, metadata)
|
||||
if saveErr != nil {
|
||||
return result, saveErr
|
||||
|
||||
Reference in New Issue
Block a user