Files
Termind/TFI/Application/FeatureModels/MobileSnippetOperations.swift
T
2026-09-13 01:30:00 +08:00

24 lines
680 B
Swift

import TermindDomain
import struct TermindDomain.Host
nonisolated enum MobileSnippetExecutionDecision: Equatable {
case chooseHosts
case confirmDestructive([Host.ID])
case execute([Host.ID])
}
nonisolated enum MobileSnippetOperations {
static func executionDecision(
for snippet: Snippet,
hostIDs: [Host.ID],
requiresHostSelection: Bool
) -> MobileSnippetExecutionDecision {
if requiresHostSelection || hostIDs.isEmpty { return .chooseHosts }
if CommandRiskClassifier.assess(snippet.body).requiresSecondConfirmation {
return .confirmDestructive(hostIDs)
}
return .execute(hostIDs)
}
}