import ActivityKit import Foundation /// Shared schema used by iOS app + Live Activity widget extension. struct OpenClawActivityAttributes: ActivityAttributes { var agentName: String var sessionKey: String struct ContentState: Codable, Hashable { var statusText: String var isIdle: Bool var isDisconnected: Bool var isConnecting: Bool var startedAt: Date } } #if DEBUG extension OpenClawActivityAttributes { static let preview = OpenClawActivityAttributes(agentName: "main", sessionKey: "main") } extension OpenClawActivityAttributes.ContentState { static let connecting = OpenClawActivityAttributes.ContentState( statusText: "Connecting...", isIdle: false, isDisconnected: false, isConnecting: true, startedAt: .now) static let idle = OpenClawActivityAttributes.ContentState( statusText: "Idle", isIdle: true, isDisconnected: false, isConnecting: false, startedAt: .now) static let disconnected = OpenClawActivityAttributes.ContentState( statusText: "Disconnected", isIdle: false, isDisconnected: true, isConnecting: false, startedAt: .now) } #endif