Add byre-hands: screen capture and app control tools for agents
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
import Foundation
|
||||
|
||||
extension Dictionary where Key == String, Value == Any {
|
||||
func int(_ key: String) -> Int? {
|
||||
return (self[key] as? NSNumber)?.intValue
|
||||
}
|
||||
|
||||
func double(_ key: String) -> Double? {
|
||||
return (self[key] as? NSNumber)?.doubleValue
|
||||
}
|
||||
|
||||
func string(_ key: String) -> String? {
|
||||
return self[key] as? String
|
||||
}
|
||||
|
||||
func bool(_ key: String) -> Bool {
|
||||
return (self[key] as? NSNumber)?.boolValue ?? false
|
||||
}
|
||||
|
||||
func dict(_ key: String) -> [String: Any]? {
|
||||
return self[key] as? [String: Any]
|
||||
}
|
||||
|
||||
func ms(_ key: String) throws -> Int? {
|
||||
guard let v = int(key) else {
|
||||
return nil
|
||||
}
|
||||
if v < 0 || v > 600_000 {
|
||||
throw ToolError("\(key) must be between 0 and 600000 ms")
|
||||
}
|
||||
return v
|
||||
}
|
||||
|
||||
func require<T>(_ key: String, _ get: (String) -> T?) throws -> T {
|
||||
guard let v = get(key) else {
|
||||
throw ToolError("missing or malformed argument: \(key)")
|
||||
}
|
||||
return v
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user