cueward-adapter-macos 0.5.0

macOS adapter for Cueward with Safari, Notes, Messages, Reminders, Calendar, Screenshot, Clipboard, and OCR integrations.
import Cocoa

func workspaceConfiguration(newInstance: Bool = false) -> NSWorkspace.OpenConfiguration {
    let config = NSWorkspace.OpenConfiguration()
    config.activates = false
    config.addsToRecentItems = false
    config.hidesOthers = false
    config.promptsUserIfNeeded = false
    config.createsNewApplicationInstance = newInstance
    config.allowsRunningApplicationSubstitution = false
    return config
}

func awaitApplication(_ completion: LaunchCompletion<(NSRunningApplication?, Bool)>,
                      at url: URL, operation: String) -> NSRunningApplication {
    while true {
        switch completion.poll() {
        case .pending: RunLoop.current.run(until: Date().addingTimeInterval(0.05))
        case .timedOut: fail("\(operation) completion timed out; request may still complete")
        case .completed(let result):
            guard let app = result.0, result.1 else {
                fail("application \(operation) failed; inspect running apps before retrying")
            }
            guard app.bundleURL.map({ canonical($0) == url }) == true else {
                fail("returned application path differs from request; delivery is uncertain")
            }
            return app
        }
    }
}