86 lines
2.3 KiB
Swift
86 lines
2.3 KiB
Swift
import Foundation
|
|
|
|
public enum ClawdbotSystemCommand: String, Codable, Sendable {
|
|
case run = "system.run"
|
|
case which = "system.which"
|
|
case notify = "system.notify"
|
|
case execApprovalsGet = "system.execApprovals.get"
|
|
case execApprovalsSet = "system.execApprovals.set"
|
|
}
|
|
|
|
public enum ClawdbotNotificationPriority: String, Codable, Sendable {
|
|
case passive
|
|
case active
|
|
case timeSensitive
|
|
}
|
|
|
|
public enum ClawdbotNotificationDelivery: String, Codable, Sendable {
|
|
case system
|
|
case overlay
|
|
case auto
|
|
}
|
|
|
|
public struct ClawdbotSystemRunParams: Codable, Sendable, Equatable {
|
|
public var command: [String]
|
|
public var rawCommand: String?
|
|
public var cwd: String?
|
|
public var env: [String: String]?
|
|
public var timeoutMs: Int?
|
|
public var needsScreenRecording: Bool?
|
|
public var agentId: String?
|
|
public var sessionKey: String?
|
|
public var approved: Bool?
|
|
|
|
public init(
|
|
command: [String],
|
|
rawCommand: String? = nil,
|
|
cwd: String? = nil,
|
|
env: [String: String]? = nil,
|
|
timeoutMs: Int? = nil,
|
|
needsScreenRecording: Bool? = nil,
|
|
agentId: String? = nil,
|
|
sessionKey: String? = nil,
|
|
approved: Bool? = nil)
|
|
{
|
|
self.command = command
|
|
self.rawCommand = rawCommand
|
|
self.cwd = cwd
|
|
self.env = env
|
|
self.timeoutMs = timeoutMs
|
|
self.needsScreenRecording = needsScreenRecording
|
|
self.agentId = agentId
|
|
self.sessionKey = sessionKey
|
|
self.approved = approved
|
|
}
|
|
}
|
|
|
|
public struct ClawdbotSystemWhichParams: Codable, Sendable, Equatable {
|
|
public var bins: [String]
|
|
|
|
public init(bins: [String]) {
|
|
self.bins = bins
|
|
}
|
|
}
|
|
|
|
public struct ClawdbotSystemNotifyParams: Codable, Sendable, Equatable {
|
|
public var title: String
|
|
public var body: String
|
|
public var sound: String?
|
|
public var priority: ClawdbotNotificationPriority?
|
|
public var delivery: ClawdbotNotificationDelivery?
|
|
|
|
public init(
|
|
title: String,
|
|
body: String,
|
|
sound: String? = nil,
|
|
priority: ClawdbotNotificationPriority? = nil,
|
|
delivery: ClawdbotNotificationDelivery? = nil)
|
|
{
|
|
self.title = title
|
|
self.body = body
|
|
self.sound = sound
|
|
self.priority = priority
|
|
self.delivery = delivery
|
|
}
|
|
}
|