{{ 'XP.AgentEvolution.PublicationStatus.' + (lifecycle()?.publicationStatus || 'preparing') | translate }}

{{ title() }}

{{ change().presentation?.resourceLabel || ('XP.AgentEvolution.ResourceContextUnavailable' | translate) }}

@if (change().presentation?.contextLabel; as context) {

{{ context }}

}
@if (link(); as target) { {{ (mode() === 'release' ? 'XP.AgentEvolution.OpenEffectHistory' : change().status === 'pending_approval' ? 'XP.AgentEvolution.ReviewInStudio' : 'XP.AgentEvolution.OpenBusinessStudio' ) | translate }} } @else if (change().presentationUnavailable) {

{{ 'XP.AgentEvolution.WorkbenchUnavailable' | translate }}

}
{{ 'XP.AgentEvolution.StrategyLabel' | translate }}: {{ text(change().strategy.definition.label) }} v{{ change().strategy.definition.version }} {{ 'XP.AgentEvolution.EffectStatus.' + (lifecycle()?.effectStatus || 'pending') | translate }}
    @for (step of steps(); track step.key) {
  1. {{ 'XP.AgentEvolution.StrategyStage.' + step.key | translate }}

    {{ 'XP.AgentEvolution.StageStatus.' + step.status | translate }}

  2. }
@if (canReview()) {
} @if (canPublish()) { }

{{ (mode() === 'release' ? 'XP.AgentEvolution.ResourcePublicationHint' : 'XP.AgentEvolution.ResourceReviewHint') | translate }}

{{ 'XP.AgentEvolution.Baseline' | translate }}
{{ change().baseline.version }}
{{ 'XP.AgentEvolution.ResourceChecks' | translate }}
{{ change().evaluation?.assessment === 'not_applicable' ? ('XP.AgentEvolution.AssessmentNotApplicable' | translate) : change().evaluation ? passed() + ' / ' + change().evaluation!.checks.length : ('XP.AgentEvolution.PendingEvaluation' | translate) }}
@for (readiness of change().evaluation?.readiness ?? []; track readiness.key) {
{{ text(readiness.label) }}
{{ 'XP.AgentEvolution.ReadinessStatus.' + readiness.status | translate }}
} @for (metric of change().presentation?.metrics ?? []; track metric.key) {
{{ text(metric.label) }}
{{ metric.value ?? '—' }} @if (metric.total !== undefined) { / {{ metric.total }} }
}
@if (change().presentation?.effect; as effect) {

{{ text(effect.label) }} {{ text(effect.description) }}

} @if (change().candidate; as candidate) { @if (candidate.changes.length) {
{{ 'XP.AgentEvolution.CandidateChanges' | translate }} @for (delta of candidate.changes; track $index) {

{{ delta.path }} · {{ delta.summary }}

@if (delta.before) {
{{ delta.before }}
}
{{ delta.after }}
}
} } @if (change().approval; as approval) {

{{ 'XP.AgentEvolution.HumanReview' | translate }}

{{ approval.reason }}

{{ 'XP.AgentEvolution.ResourceStatus.' + approval.decision | translate }} · {{ approval.decidedAt | date: 'yyyy-MM-dd HH:mm' }}

} @if (change().evaluation?.assessment === 'not_applicable') {

{{ 'XP.AgentEvolution.AssessmentNotApplicableHint' | translate }}

} @else if (change().evaluation; as evaluation) {
{{ 'XP.AgentEvolution.TestResults' | translate }} · {{ passed() }} / {{ evaluation.checks.length }}
@for (check of evaluation.checks; track check.checkId) {

{{ check.title }}

{{ check.origin }} · {{ (check.passed ? 'XP.AgentEvolution.CheckPassed' : 'XP.AgentEvolution.CheckFailed') | translate }}

{{ 'XP.AgentEvolution.CheckDetails' | translate }}

{{ check.details }}

}
@for (readiness of evaluation.readiness; track readiness.key) { @if (readiness.reasons.length) {

{{ text(readiness.label) }}

@for (reason of readiness.reasons; track $index) {

{{ reason }}

}
} }
}
{{ 'XP.AgentEvolution.AuditDetails' | translate }}
{{ 'XP.AgentEvolution.ChangeRecord' | translate }}
{{ change().changeId }}
{{ 'XP.AgentEvolution.Target' | translate }}
{{ change().targetId }}
{{ 'XP.AgentEvolution.BaselineHash' | translate }}
{{ change().baseline.hash }}
{{ 'XP.AgentEvolution.CandidateHash' | translate }}
{{ change().candidate?.artifact?.hash || '—' }}
@if (change().receipt; as receipt) {
{{ 'XP.AgentEvolution.WriteReceipt' | translate }}
{{ receipt.receiptId }}
{{ 'XP.AgentEvolution.PublishedVersion' | translate }}
{{ receipt.resource.version }}
} @if (change().evaluation; as evaluation) {
{{ 'XP.AgentEvolution.EvaluatorVersion' | translate }}
{{ evaluation.datasetVersion }} · {{ evaluation.runId }}
} @if (change().approval; as approval) {
{{ 'XP.AgentEvolution.Actor' | translate }}
{{ approval.actorId }}
}
{{ 'XP.AgentEvolution.ImmutableResourceDetails' | translate }}
{{ change() | json }}