MCPcopy Create free account
hub / github.com/compozy/agh / Validate

Method Validate

internal/task/validate.go:502–560  ·  view source on GitHub ↗

Validate reports whether the task-run record contains the canonical persisted shape.

()

Source from the content-addressed store, hash-verified

500
501// Validate reports whether the task-run record contains the canonical persisted shape.
502func (r Run) Validate() error {
503 if strings.TrimSpace(r.ID) == "" {
504 return fmt.Errorf("%w: task_run.id is required", ErrValidation)
505 }
506 if strings.TrimSpace(r.TaskID) == "" {
507 return fmt.Errorf("%w: task_run.task_id is required", ErrValidation)
508 }
509 if err := r.Status.Validate("task_run.status"); err != nil {
510 return err
511 }
512 if r.Attempt <= 0 {
513 return fmt.Errorf("%w: task_run.attempt must be positive: %d", ErrValidation, r.Attempt)
514 }
515 if err := validateRunLineageFields(r); err != nil {
516 return err
517 }
518 if r.ClaimedBy != nil {
519 if err := r.ClaimedBy.Validate("task_run.claimed_by"); err != nil {
520 return err
521 }
522 }
523 if err := r.Origin.Validate("task_run.origin"); err != nil {
524 return err
525 }
526 status := r.Status.Normalize()
527 if (status == TaskRunStatusQueued || status == TaskRunStatusNeedsAttention) &&
528 strings.TrimSpace(r.SessionID) != "" {
529 return fmt.Errorf(
530 "%w: task_run.session_id must be empty while status is %q",
531 ErrValidation,
532 status,
533 )
534 }
535 if err := validateRunLeaseMetadata(r); err != nil {
536 return err
537 }
538 if err := ValidateCapabilityIDs(r.RequiredCapabilities, "task_run.required_capabilities"); err != nil {
539 return err
540 }
541 if err := ValidateCapabilityIDs(r.PreferredCapabilities, "task_run.preferred_capabilities"); err != nil {
542 return err
543 }
544 if err := validateTaskRunReviewGateFields(r); err != nil {
545 return err
546 }
547 if err := ValidateMetadataSize(r.Metadata, "task_run.metadata"); err != nil {
548 return err
549 }
550 if hasRawClaimTokenField(r.Metadata) {
551 return fmt.Errorf("%w: task_run.metadata must not contain raw lease credentials", ErrValidation)
552 }
553 if err := ValidateResultSize(r.Result, "task_run.result"); err != nil {
554 return err
555 }
556 if hasRawClaimTokenField(r.Result) {
557 return fmt.Errorf("%w: task_run.result must not contain raw lease credentials", ErrValidation)
558 }
559 return nil

Callers 1

RecordRunReviewMethod · 0.95

Calls 9

validateRunLineageFieldsFunction · 0.85
validateRunLeaseMetadataFunction · 0.85
ValidateCapabilityIDsFunction · 0.85
ValidateMetadataSizeFunction · 0.85
hasRawClaimTokenFieldFunction · 0.85
ValidateResultSizeFunction · 0.85
ValidateMethod · 0.65
NormalizeMethod · 0.45

Tested by 1

RecordRunReviewMethod · 0.76