import Foundation
import Combine
import AppKit

protocol AgentStatusCheckerProtocol: ObservableObject {
    var running: Bool { get }
}

class AgentStatusChecker: ObservableObject, AgentStatusCheckerProtocol {

    @Published var running: Bool = false

    init() {
        check()
    }

    func check() {
        running = secretAgentProcess != nil
    }

    var secretAgentProcess: NSRunningApplication? {
        NSRunningApplication.runningApplications(withBundleIdentifier: Constants.secretAgentAppID).first
    }

}

extension AgentStatusChecker {

    enum Constants {
        static let secretAgentAppID = "com.maxgoedjen.Secretive.SecretAgent"
    }

}