2025-12-09 00:56:46 +01:00
|
|
|
import Foundation
|
2025-12-14 05:04:58 +00:00
|
|
|
import Observation
|
2025-12-09 00:56:46 +01:00
|
|
|
|
|
|
|
|
@MainActor
|
2025-12-14 05:04:58 +00:00
|
|
|
@Observable
|
|
|
|
|
final class AgentEventStore {
|
2025-12-09 00:56:46 +01:00
|
|
|
static let shared = AgentEventStore()
|
|
|
|
|
|
2025-12-14 05:04:58 +00:00
|
|
|
private(set) var events: [ControlAgentEvent] = []
|
2025-12-09 00:56:46 +01:00
|
|
|
private let maxEvents = 400
|
|
|
|
|
|
|
|
|
|
func append(_ event: ControlAgentEvent) {
|
|
|
|
|
self.events.append(event)
|
2025-12-09 04:42:32 +01:00
|
|
|
if self.events.count > self.maxEvents {
|
|
|
|
|
self.events.removeFirst(self.events.count - self.maxEvents)
|
2025-12-09 00:56:46 +01:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func clear() {
|
|
|
|
|
self.events.removeAll()
|
|
|
|
|
}
|
|
|
|
|
}
|