import Darwin import Foundation enum InstanceIdentity { private static let suiteName = "com.clawdbot.shared" private static let instanceIdKey = "instanceId" private static var defaults: UserDefaults { UserDefaults(suiteName: suiteName) ?? .standard } static let instanceId: String = { let defaults = Self.defaults if let existing = defaults.string(forKey: instanceIdKey)? .trimmingCharacters(in: .whitespacesAndNewlines), !existing.isEmpty { return existing } let id = UUID().uuidString.lowercased() defaults.set(id, forKey: instanceIdKey) return id }() static let displayName: String = { if let name = Host.current().localizedName?.trimmingCharacters(in: .whitespacesAndNewlines), !name.isEmpty { return name } return "clawdbot" }() static let modelIdentifier: String? = { var size = 0 guard sysctlbyname("hw.model", nil, &size, nil, 0) == 0, size > 1 else { return nil } var buffer = [CChar](repeating: 0, count: size) guard sysctlbyname("hw.model", &buffer, &size, nil, 0) == 0 else { return nil } let bytes = buffer.prefix { $0 != 0 }.map { UInt8(bitPattern: $0) } guard let raw = String(bytes: bytes, encoding: .utf8) else { return nil } let trimmed = raw.trimmingCharacters(in: .whitespacesAndNewlines) return trimmed.isEmpty ? nil : trimmed }() }