46 lines
1.3 KiB
Swift
46 lines
1.3 KiB
Swift
import Foundation
|
|
|
|
struct AgentIdentity: Codable, Equatable {
|
|
var name: String
|
|
var theme: String
|
|
var emoji: String
|
|
|
|
var isEmpty: Bool {
|
|
self.name.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty &&
|
|
self.theme.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty &&
|
|
self.emoji.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty
|
|
}
|
|
}
|
|
|
|
enum AgentIdentityEmoji {
|
|
static func suggest(theme: String) -> String {
|
|
let normalized = theme.trimmingCharacters(in: .whitespacesAndNewlines).lowercased()
|
|
if normalized.isEmpty { return "🦞" }
|
|
|
|
let table: [(needle: String, emoji: String)] = [
|
|
("lobster", "🦞"),
|
|
("sloth", "🦥"),
|
|
("octopus", "🐙"),
|
|
("crab", "🦀"),
|
|
("shark", "🦈"),
|
|
("cat", "🐈"),
|
|
("dog", "🐕"),
|
|
("owl", "🦉"),
|
|
("fox", "🦊"),
|
|
("otter", "🦦"),
|
|
("raccoon", "🦝"),
|
|
("badger", "🦡"),
|
|
("hedgehog", "🦔"),
|
|
("koala", "🐨"),
|
|
("penguin", "🐧"),
|
|
("frog", "🐸"),
|
|
("bear", "🐻"),
|
|
]
|
|
|
|
for entry in table where normalized.contains(entry.needle) {
|
|
return entry.emoji
|
|
}
|
|
return "🦞"
|
|
}
|
|
}
|