{{ 'XP.AgentEvolution.ChangeDetail.Resource' | translate }}: {{ change().presentation?.resourceLabel || ('XP.AgentEvolution.ResourceContextUnavailable' | translate) }}
@if (change().presentation?.contextLabel; as context) {{{ 'XP.AgentEvolution.ChangeDetail.Context' | translate }}: {{ context }}
} }{{ 'XP.AgentEvolution.ChangeDetail.FailureReason' | translate }}
@for (reason of detail().reasons; track $index) {{{ reason }}
} @empty {{{ 'XP.AgentEvolution.ChangeDetail.NoFailureReason' | translate }}
}{{ 'XP.AgentEvolution.ChangeDetail.NextStep' | translate }}: {{ 'XP.AgentEvolution.ChangeDetail.' + (detail().guidanceKey || 'Next.' + detail().result) | translate: { subject: adoptionSubject() } }}
@if (!canReview() && !canPublish() && link(); as target) { {{ 'XP.AgentEvolution.ChangeDetail.Action.' + detail().action | translate: { subject: adoptionSubject() } }} } @else if (change().presentationUnavailable || detail().failed) {{{ 'XP.AgentEvolution.WorkbenchUnavailable' | translate }}
} @if (canReview()) { @if (combinedPublication()) {{{ 'XP.AgentEvolution.ApproveAndPublishHint' | translate }}
}{{ 'XP.AgentEvolution.ContinuePublicationHint' | translate }}
} }{{ text(detail().business?.rationale) || text(change().presentation?.description) || ('XP.AgentEvolution.ChangeDetail.NoRationale' | translate) }}
@for (source of detail().business?.evidence ?? []; track source.key) {{{ source.documentName || ('XP.AgentEvolution.ChangeDetail.NoFileName' | translate) }}
@if (source.page !== undefined) { {{ 'XP.AgentEvolution.ChangeDetail.Page' | translate: { page: source.page } }} } @if (source.location) { {{ 'XP.AgentEvolution.ChangeDetail.Location' | translate }}: {{ source.location }} } @if (source.page === undefined && !source.location) { {{ 'XP.AgentEvolution.ChangeDetail.NoLocation' | translate }} }
{{ source.quote || ('XP.AgentEvolution.ChangeDetail.NoQuote' | translate) }}@if (source.document; as document) { {{ 'XP.AgentEvolution.ChangeDetail.ViewSource' | translate }} } @else if (link(); as target) { {{ 'XP.AgentEvolution.ChangeDetail.CheckSourceInWorkbench' | translate }} }
{{ 'XP.AgentEvolution.ChangeDetail.NoEvidence' | translate }}
}{{ 'XP.AgentEvolution.ChangeDetail.DraftComparisonHint' | translate }}
@for (delta of detail().business?.changes ?? []; track delta.key) {{{ 'XP.AgentEvolution.ChangeDetail.NoComparison' | translate }}
} } @else {{{ 'XP.AgentEvolution.ChangeDetail.ProposalOnly' | translate }}
}{{ 'XP.AgentEvolution.ChangeDetail.OriginalProposal' | translate }}
{{ text(detail().business?.proposal) || ('XP.AgentEvolution.ChangeDetail.NoProposal' | translate) }}
{{ step.labelKey | translate: { subject: adoptionSubject() } }}
{{ 'XP.AgentEvolution.ChangeDetail.Stage.' + step.status | translate }}
@if (step.blockedBy) {{{ 'XP.AgentEvolution.ChangeDetail.BlockedByPrevious' | translate }}
}{{ (detail().checkBlockedBy === 'candidate' ? 'XP.AgentEvolution.ChangeDetail.ChecksBlocked' : 'XP.AgentEvolution.ChangeDetail.BlockedByPrevious' ) | translate }}
}{{ 'XP.AgentEvolution.ChangeDetail.PublicationRequirements' | translate }}: {{ (evaluation.assessment === 'not_applicable' ? 'XP.AgentEvolution.AssessmentNotApplicable' : evaluation.passed ? 'XP.AgentEvolution.CheckPassed' : 'XP.AgentEvolution.CheckFailed' ) | translate }}
@for (readiness of evaluation.readiness; track readiness.key) {{{ text(readiness.label) }}: {{ 'XP.AgentEvolution.ReadinessStatus.' + readiness.status | translate }}
}{{ text(detail().business?.validationHint) || ('XP.AgentEvolution.ChangeDetail.CheckBoundaryHint' | translate) }}
{{ text(effect.description) }}
}{{ approval.reason }}
{{ 'XP.AgentEvolution.ResourceStatus.' + approval.decision | translate }} · {{ approval.decidedAt | date: 'yyyy-MM-dd HH:mm' }}
{{ 'XP.AgentEvolution.AssessmentNotApplicableHint' | translate }}
} @else if (change().evaluation; as evaluation) {{{ check.title }}
{{ (check.passed ? 'XP.AgentEvolution.CheckPassed' : 'XP.AgentEvolution.CheckFailed') | translate }}
{{ check.details }}
{{ text(readiness.label) }}
@for (reason of readiness.reasons; track $index) {{{ reason }}
}{{ change() | json }}