Files
Termind/TFM/Features/AI/CommandCardView.swift
T
2026-09-12 23:57:33 +08:00

39 lines
1.1 KiB
Swift

import SwiftUI
import TermindDomain
extension CommandRisk {
var tint: Color {
switch self {
case .safe: TermindColor.success
case .caution: TermindColor.warning
case .destructive: TermindColor.danger
}
}
}
/// The risk label shown on every proposed command.
///
/// The rating comes from `CommandRiskClassifier` running locally, never from the
/// model's own description of what it suggested.
struct RiskBadge: View {
let assessment: RiskAssessment
var compact = false
var body: some View {
Label {
if !compact { Text(assessment.risk.label) }
} icon: {
Image(systemName: assessment.risk.symbol)
}
.font(.caption2.weight(.medium))
.foregroundStyle(assessment.risk.tint)
.padding(.horizontal, compact ? 0 : Metrics.Space.s)
.padding(.vertical, 2)
.background {
if !compact {
Capsule().fill(assessment.risk.tint.opacity(0.12))
}
}
.help(Text(assessment.reasons.first ?? assessment.risk.label))
}
}