// Generated by scripts/protocol-gen-swift.ts — do not edit by hand // swiftlint:disable file_length import Foundation public let GATEWAY_PROTOCOL_VERSION = 4 public let GATEWAY_MIN_PROTOCOL_VERSION = 4 private struct GatewayAnyCodingKey: CodingKey, Hashable { let stringValue: String let intValue: Int? init?(stringValue: String) { self.stringValue = stringValue self.intValue = nil } init?(intValue: Int) { self.stringValue = String(intValue) self.intValue = intValue } } public enum ErrorCode: String, Codable, Sendable { case notLinked = "NOT_LINKED" case notPaired = "NOT_PAIRED" case agentTimeout = "AGENT_TIMEOUT" case invalidRequest = "INVALID_REQUEST" case approvalNotFound = "APPROVAL_NOT_FOUND" case unavailable = "UNAVAILABLE" } public enum EnvironmentStatus: String, Codable, Sendable { case available = "available" case unavailable = "unavailable" case starting = "starting" case stopping = "stopping" case error = "error" } public enum WorkerEnvironmentState: String, Codable, Sendable { case requested = "requested" case provisioning = "provisioning" case bootstrapping = "bootstrapping" case ready = "ready" case attached = "attached" case idle = "idle" case draining = "draining" case destroying = "destroying" case destroyed = "destroyed" case failed = "failed" case orphaned = "orphaned" } public enum WorkerTunnelStatus: String, Codable, Sendable { case stopped = "stopped" case connecting = "connecting" case connected = "connected" case reconnecting = "reconnecting" } public enum NodePresenceAliveReason: String, Codable, Sendable { case background = "background" case silentPush = "silent_push" case bgAppRefresh = "bg_app_refresh" case significantLocation = "significant_location" case manual = "manual" case connect = "connect" } public enum SessionFileKind: String, Codable, Sendable { case modified = "modified" case read = "read" } public enum SessionFileRelevance: String, Codable, Sendable { case modified = "modified" case read = "read" case mixed = "mixed" } public enum SessionDiffFileStatus: String, Codable, Sendable { case added = "added" case modified = "modified" case deleted = "deleted" case renamed = "renamed" } public enum TaskSuggestionResolution: String, Codable, Sendable { case dismissed = "dismissed" case accepted = "accepted" case expired = "expired" } public enum ApprovalKind: String, Codable, Sendable { case exec = "exec" case plugin = "plugin" } public enum ApprovalDecision: String, Codable, Sendable { case allowOnce = "allow-once" case allowAlways = "allow-always" case deny = "deny" } public enum ApprovalAllowDecision: String, Codable, Sendable { case allowOnce = "allow-once" case allowAlways = "allow-always" } public enum ApprovalAllowedReason: String, Codable, Sendable { case user = "user" } public enum ApprovalDeniedReason: String, Codable, Sendable { case user = "user" case malformedVerdict = "malformed-verdict" case noRoute = "no-route" case storageCorrupt = "storage-corrupt" } public enum ApprovalExpiredReason: String, Codable, Sendable { case timeout = "timeout" } public enum ApprovalCancelledReason: String, Codable, Sendable { case runAborted = "run-aborted" case gatewayRestart = "gateway-restart" } public enum PluginApprovalSeverity: String, Codable, Sendable { case info = "info" case warning = "warning" case critical = "critical" } public enum ApprovalTerminalReason: String, Codable, Sendable { case user = "user" case timeout = "timeout" case malformedVerdict = "malformed-verdict" case noRoute = "no-route" case runAborted = "run-aborted" case gatewayRestart = "gateway-restart" case storageCorrupt = "storage-corrupt" } public struct ConnectParams: Codable, Sendable { public let minprotocol: Int public let maxprotocol: Int public let client: [String: AnyCodable] public let caps: [String]? public let commands: [String]? public let permissions: [String: AnyCodable]? public let pathenv: String? public let role: String? public let scopes: [String]? public let device: [String: AnyCodable]? public let auth: [String: AnyCodable]? public let locale: String? public let useragent: String? public init( minprotocol: Int, maxprotocol: Int, client: [String: AnyCodable], caps: [String]? = nil, commands: [String]? = nil, permissions: [String: AnyCodable]? = nil, pathenv: String? = nil, role: String? = nil, scopes: [String]? = nil, device: [String: AnyCodable]? = nil, auth: [String: AnyCodable]? = nil, locale: String? = nil, useragent: String? = nil) { self.minprotocol = minprotocol self.maxprotocol = maxprotocol self.client = client self.caps = caps self.commands = commands self.permissions = permissions self.pathenv = pathenv self.role = role self.scopes = scopes self.device = device self.auth = auth self.locale = locale self.useragent = useragent } private enum CodingKeys: String, CodingKey { case minprotocol = "minProtocol" case maxprotocol = "maxProtocol" case client case caps case commands case permissions case pathenv = "pathEnv" case role case scopes case device case auth case locale case useragent = "userAgent" } } public struct WorkerAdmissionHandshake: Codable, Sendable { public let bundlehash: String public let openclawversion: String public let protocolfeatures: [String] public init( bundlehash: String, openclawversion: String, protocolfeatures: [String]) { self.bundlehash = bundlehash self.openclawversion = openclawversion self.protocolfeatures = protocolfeatures } private enum CodingKeys: String, CodingKey { case bundlehash = "bundleHash" case openclawversion = "openclawVersion" case protocolfeatures = "protocolFeatures" } } public struct HelloOk: Codable, Sendable { public let type: String public let _protocol: Int public let server: [String: AnyCodable] public let features: [String: AnyCodable] public let snapshot: Snapshot public let controluitabs: [[String: AnyCodable]]? public let pluginsurfaceurls: [String: AnyCodable]? public let auth: [String: AnyCodable] public let policy: [String: AnyCodable] public init( type: String, _protocol: Int, server: [String: AnyCodable], features: [String: AnyCodable], snapshot: Snapshot, controluitabs: [[String: AnyCodable]]? = nil, pluginsurfaceurls: [String: AnyCodable]? = nil, auth: [String: AnyCodable], policy: [String: AnyCodable]) { self.type = type self._protocol = _protocol self.server = server self.features = features self.snapshot = snapshot self.controluitabs = controluitabs self.pluginsurfaceurls = pluginsurfaceurls self.auth = auth self.policy = policy } private enum CodingKeys: String, CodingKey { case type case _protocol = "protocol" case server case features case snapshot case controluitabs = "controlUiTabs" case pluginsurfaceurls = "pluginSurfaceUrls" case auth case policy } } public struct RequestFrame: Codable, Sendable { public let type: String public let id: String public let method: String public let params: AnyCodable? public init( type: String, id: String, method: String, params: AnyCodable? = nil) { self.type = type self.id = id self.method = method self.params = params } private enum CodingKeys: String, CodingKey { case type case id case method case params } } public struct ResponseFrame: Codable, Sendable { public let type: String public let id: String public let ok: Bool public let payload: AnyCodable? public let error: ErrorShape? public init( type: String, id: String, ok: Bool, payload: AnyCodable? = nil, error: ErrorShape? = nil) { self.type = type self.id = id self.ok = ok self.payload = payload self.error = error } private enum CodingKeys: String, CodingKey { case type case id case ok case payload case error } } public struct EventFrame: Codable, Sendable { public let type: String public let event: String public let payload: AnyCodable? public let seq: Int? public let stateversion: StateVersion? public init( type: String, event: String, payload: AnyCodable? = nil, seq: Int? = nil, stateversion: StateVersion? = nil) { self.type = type self.event = event self.payload = payload self.seq = seq self.stateversion = stateversion } private enum CodingKeys: String, CodingKey { case type case event case payload case seq case stateversion = "stateVersion" } } public struct PresenceEntry: Codable, Sendable { public let host: String? public let ip: String? public let version: String? public let platform: String? public let devicefamily: String? public let modelidentifier: String? public let mode: String? public let lastinputseconds: Int? public let reason: String? public let tags: [String]? public let text: String? public let ts: Int public let deviceid: String? public let roles: [String]? public let scopes: [String]? public let instanceid: String? public init( host: String? = nil, ip: String? = nil, version: String? = nil, platform: String? = nil, devicefamily: String? = nil, modelidentifier: String? = nil, mode: String? = nil, lastinputseconds: Int? = nil, reason: String? = nil, tags: [String]? = nil, text: String? = nil, ts: Int, deviceid: String? = nil, roles: [String]? = nil, scopes: [String]? = nil, instanceid: String? = nil) { self.host = host self.ip = ip self.version = version self.platform = platform self.devicefamily = devicefamily self.modelidentifier = modelidentifier self.mode = mode self.lastinputseconds = lastinputseconds self.reason = reason self.tags = tags self.text = text self.ts = ts self.deviceid = deviceid self.roles = roles self.scopes = scopes self.instanceid = instanceid } private enum CodingKeys: String, CodingKey { case host case ip case version case platform case devicefamily = "deviceFamily" case modelidentifier = "modelIdentifier" case mode case lastinputseconds = "lastInputSeconds" case reason case tags case text case ts case deviceid = "deviceId" case roles case scopes case instanceid = "instanceId" } } public struct StateVersion: Codable, Sendable { public let presence: Int public let health: Int public init( presence: Int, health: Int) { self.presence = presence self.health = health } private enum CodingKeys: String, CodingKey { case presence case health } } public struct Snapshot: Codable, Sendable { public let presence: [PresenceEntry] public let health: AnyCodable public let stateversion: StateVersion public let uptimems: Int public let configpath: String? public let statedir: String? public let sessiondefaults: [String: AnyCodable]? public let authmode: AnyCodable? public let updateavailable: [String: AnyCodable]? public init( presence: [PresenceEntry], health: AnyCodable, stateversion: StateVersion, uptimems: Int, configpath: String? = nil, statedir: String? = nil, sessiondefaults: [String: AnyCodable]? = nil, authmode: AnyCodable? = nil, updateavailable: [String: AnyCodable]? = nil) { self.presence = presence self.health = health self.stateversion = stateversion self.uptimems = uptimems self.configpath = configpath self.statedir = statedir self.sessiondefaults = sessiondefaults self.authmode = authmode self.updateavailable = updateavailable } private enum CodingKeys: String, CodingKey { case presence case health case stateversion = "stateVersion" case uptimems = "uptimeMs" case configpath = "configPath" case statedir = "stateDir" case sessiondefaults = "sessionDefaults" case authmode = "authMode" case updateavailable = "updateAvailable" } } public struct ErrorShape: Codable, Sendable { public let code: String public let message: String public let details: AnyCodable? public let retryable: Bool? public let retryafterms: Int? public init( code: String, message: String, details: AnyCodable? = nil, retryable: Bool? = nil, retryafterms: Int? = nil) { self.code = code self.message = message self.details = details self.retryable = retryable self.retryafterms = retryafterms } private enum CodingKeys: String, CodingKey { case code case message case details case retryable case retryafterms = "retryAfterMs" } } public struct GatewaySuspendTaskBlocker: Codable, Sendable { public let taskid: String public let status: String public let runtime: AnyCodable public let runid: String? public let label: String? public let title: String? public init( taskid: String, status: String, runtime: AnyCodable, runid: String? = nil, label: String? = nil, title: String? = nil) { self.taskid = taskid self.status = status self.runtime = runtime self.runid = runid self.label = label self.title = title } private enum CodingKeys: String, CodingKey { case taskid = "taskId" case status case runtime case runid = "runId" case label case title } } public struct GatewaySuspendBlocker: Codable, Sendable { public let kind: AnyCodable public let count: Int public let message: String public let task: GatewaySuspendTaskBlocker? public init( kind: AnyCodable, count: Int, message: String, task: GatewaySuspendTaskBlocker? = nil) { self.kind = kind self.count = count self.message = message self.task = task } private enum CodingKeys: String, CodingKey { case kind case count case message case task } } public struct GatewaySuspendPrepareParams: Codable, Sendable { public let requestid: String public init( requestid: String) { self.requestid = requestid } private enum CodingKeys: String, CodingKey { case requestid = "requestId" } } public struct GatewaySuspendPrepareBusyResult: Codable, Sendable { public let status: String public let reason: AnyCodable public let retryafterms: Int public let activecount: Int public let blockers: [GatewaySuspendBlocker] public init( status: String, reason: AnyCodable, retryafterms: Int, activecount: Int, blockers: [GatewaySuspendBlocker]) { self.status = status self.reason = reason self.retryafterms = retryafterms self.activecount = activecount self.blockers = blockers } private enum CodingKeys: String, CodingKey { case status case reason case retryafterms = "retryAfterMs" case activecount = "activeCount" case blockers } } public struct GatewaySuspendPrepareReadyResult: Codable, Sendable { public let status: String public let suspensionid: String public let expiresatms: Int public let activecount: Int public let blockers: [GatewaySuspendBlocker] public init( status: String, suspensionid: String, expiresatms: Int, activecount: Int, blockers: [GatewaySuspendBlocker]) { self.status = status self.suspensionid = suspensionid self.expiresatms = expiresatms self.activecount = activecount self.blockers = blockers } private enum CodingKeys: String, CodingKey { case status case suspensionid = "suspensionId" case expiresatms = "expiresAtMs" case activecount = "activeCount" case blockers } } public struct GatewaySuspendStatusParams: Codable, Sendable { public let suspensionid: String public init( suspensionid: String) { self.suspensionid = suspensionid } private enum CodingKeys: String, CodingKey { case suspensionid = "suspensionId" } } public struct GatewaySuspendStatusRunningResult: Codable, Sendable { public let status: String public init( status: String) { self.status = status } private enum CodingKeys: String, CodingKey { case status } } public struct GatewaySuspendStatusReadyResult: Codable, Sendable { public let status: String public let expiresatms: Int public init( status: String, expiresatms: Int) { self.status = status self.expiresatms = expiresatms } private enum CodingKeys: String, CodingKey { case status case expiresatms = "expiresAtMs" } } public struct GatewaySuspendResumeParams: Codable, Sendable { public let suspensionid: String public init( suspensionid: String) { self.suspensionid = suspensionid } private enum CodingKeys: String, CodingKey { case suspensionid = "suspensionId" } } public struct GatewaySuspendResumeResult: Codable, Sendable { public let ok: Bool public let status: String public let resumed: Bool public init( ok: Bool, status: String, resumed: Bool) { self.ok = ok self.status = status self.resumed = resumed } private enum CodingKeys: String, CodingKey { case ok case status case resumed } } public struct WorkerEnvironmentMetadata: Codable, Sendable { public let providerid: String public let leaseid: String? public let state: WorkerEnvironmentState public let agems: Int public let idlems: Int? public let attachedsessionids: [String] public let tunnelstatus: WorkerTunnelStatus public init( providerid: String, leaseid: String? = nil, state: WorkerEnvironmentState, agems: Int, idlems: Int? = nil, attachedsessionids: [String], tunnelstatus: WorkerTunnelStatus) { self.providerid = providerid self.leaseid = leaseid self.state = state self.agems = agems self.idlems = idlems self.attachedsessionids = attachedsessionids self.tunnelstatus = tunnelstatus } private enum CodingKeys: String, CodingKey { case providerid = "providerId" case leaseid = "leaseId" case state case agems = "ageMs" case idlems = "idleMs" case attachedsessionids = "attachedSessionIds" case tunnelstatus = "tunnelStatus" } } public struct EnvironmentSummary: Codable, Sendable { public let id: String public let type: String public let label: String? public let status: EnvironmentStatus public let capabilities: [String]? public let worker: WorkerEnvironmentMetadata? public init( id: String, type: String, label: String? = nil, status: EnvironmentStatus, capabilities: [String]? = nil, worker: WorkerEnvironmentMetadata? = nil) { self.id = id self.type = type self.label = label self.status = status self.capabilities = capabilities self.worker = worker } private enum CodingKeys: String, CodingKey { case id case type case label case status case capabilities case worker } } public struct EnvironmentsCreateParams: Codable, Sendable { public let profileid: String public let idempotencykey: String public init( profileid: String, idempotencykey: String) { self.profileid = profileid self.idempotencykey = idempotencykey } private enum CodingKeys: String, CodingKey { case profileid = "profileId" case idempotencykey = "idempotencyKey" } } public struct EnvironmentsCreateResult: Codable, Sendable { public let id: String public let type: String public let label: String? public let status: EnvironmentStatus public let capabilities: [String]? public let worker: WorkerEnvironmentMetadata? public init( id: String, type: String, label: String? = nil, status: EnvironmentStatus, capabilities: [String]? = nil, worker: WorkerEnvironmentMetadata? = nil) { self.id = id self.type = type self.label = label self.status = status self.capabilities = capabilities self.worker = worker } private enum CodingKeys: String, CodingKey { case id case type case label case status case capabilities case worker } } public struct EnvironmentsDestroyParams: Codable, Sendable { public let environmentid: String public init( environmentid: String) { self.environmentid = environmentid } private enum CodingKeys: String, CodingKey { case environmentid = "environmentId" } } public struct EnvironmentsDestroyResult: Codable, Sendable { public let id: String public let type: String public let label: String? public let status: EnvironmentStatus public let capabilities: [String]? public let worker: WorkerEnvironmentMetadata? public init( id: String, type: String, label: String? = nil, status: EnvironmentStatus, capabilities: [String]? = nil, worker: WorkerEnvironmentMetadata? = nil) { self.id = id self.type = type self.label = label self.status = status self.capabilities = capabilities self.worker = worker } private enum CodingKeys: String, CodingKey { case id case type case label case status case capabilities case worker } } public struct EnvironmentsListParams: Codable, Sendable {} public struct EnvironmentsListResult: Codable, Sendable { public let environments: [EnvironmentSummary] public init( environments: [EnvironmentSummary]) { self.environments = environments } private enum CodingKeys: String, CodingKey { case environments } } public struct EnvironmentsStatusParams: Codable, Sendable { public let environmentid: String public init( environmentid: String) { self.environmentid = environmentid } private enum CodingKeys: String, CodingKey { case environmentid = "environmentId" } } public struct EnvironmentsStatusResult: Codable, Sendable { public let id: String public let type: String public let label: String? public let status: EnvironmentStatus public let capabilities: [String]? public let worker: WorkerEnvironmentMetadata? public init( id: String, type: String, label: String? = nil, status: EnvironmentStatus, capabilities: [String]? = nil, worker: WorkerEnvironmentMetadata? = nil) { self.id = id self.type = type self.label = label self.status = status self.capabilities = capabilities self.worker = worker } private enum CodingKeys: String, CodingKey { case id case type case label case status case capabilities case worker } } public struct SystemInfoParams: Codable, Sendable {} public struct SystemInfoResult: Codable, Sendable { public let machinename: String public let hostname: String public let platform: String public let release: String public let arch: String public let oslabel: String public let lanaddress: String? public let port: Int? public let nodeversion: String public let pid: Int public let uptimems: Int public let cpucount: Int public let cpumodel: String? public let loadaverage: [AnyCodable]? public let memorytotalbytes: Int public let memoryfreebytes: Int public let disktotalbytes: Int? public let diskavailablebytes: Int? public let diskpath: String? public init( machinename: String, hostname: String, platform: String, release: String, arch: String, oslabel: String, lanaddress: String? = nil, port: Int? = nil, nodeversion: String, pid: Int, uptimems: Int, cpucount: Int, cpumodel: String? = nil, loadaverage: [AnyCodable]? = nil, memorytotalbytes: Int, memoryfreebytes: Int, disktotalbytes: Int? = nil, diskavailablebytes: Int? = nil, diskpath: String? = nil) { self.machinename = machinename self.hostname = hostname self.platform = platform self.release = release self.arch = arch self.oslabel = oslabel self.lanaddress = lanaddress self.port = port self.nodeversion = nodeversion self.pid = pid self.uptimems = uptimems self.cpucount = cpucount self.cpumodel = cpumodel self.loadaverage = loadaverage self.memorytotalbytes = memorytotalbytes self.memoryfreebytes = memoryfreebytes self.disktotalbytes = disktotalbytes self.diskavailablebytes = diskavailablebytes self.diskpath = diskpath } private enum CodingKeys: String, CodingKey { case machinename = "machineName" case hostname case platform case release case arch case oslabel = "osLabel" case lanaddress = "lanAddress" case port case nodeversion = "nodeVersion" case pid case uptimems = "uptimeMs" case cpucount = "cpuCount" case cpumodel = "cpuModel" case loadaverage = "loadAverage" case memorytotalbytes = "memoryTotalBytes" case memoryfreebytes = "memoryFreeBytes" case disktotalbytes = "diskTotalBytes" case diskavailablebytes = "diskAvailableBytes" case diskpath = "diskPath" } } public struct AgentEvent: Codable, Sendable { public let runid: String public let seq: Int public let stream: String public let ts: Int public let spawnedby: String? public let isheartbeat: Bool? public let data: [String: AnyCodable] public init( runid: String, seq: Int, stream: String, ts: Int, spawnedby: String? = nil, isheartbeat: Bool? = nil, data: [String: AnyCodable]) { self.runid = runid self.seq = seq self.stream = stream self.ts = ts self.spawnedby = spawnedby self.isheartbeat = isheartbeat self.data = data } private enum CodingKeys: String, CodingKey { case runid = "runId" case seq case stream case ts case spawnedby = "spawnedBy" case isheartbeat = "isHeartbeat" case data } } public struct MessageActionParams: Codable, Sendable { public let channel: String public let action: String public let params: [String: AnyCodable] public let accountid: String? public let requesteraccountid: String? public let requestersenderid: String? public let senderisowner: Bool? public let sessionkey: String? public let sessionid: String? public let inboundturnkind: String? public let agentid: String? public let toolcontext: [String: AnyCodable]? public let conversationreadorigin: String? public let idempotencykey: String public init( channel: String, action: String, params: [String: AnyCodable], accountid: String? = nil, requesteraccountid: String? = nil, requestersenderid: String? = nil, senderisowner: Bool? = nil, sessionkey: String? = nil, sessionid: String? = nil, inboundturnkind: String? = nil, agentid: String? = nil, toolcontext: [String: AnyCodable]? = nil, conversationreadorigin: String? = nil, idempotencykey: String) { self.channel = channel self.action = action self.params = params self.accountid = accountid self.requesteraccountid = requesteraccountid self.requestersenderid = requestersenderid self.senderisowner = senderisowner self.sessionkey = sessionkey self.sessionid = sessionid self.inboundturnkind = inboundturnkind self.agentid = agentid self.toolcontext = toolcontext self.conversationreadorigin = conversationreadorigin self.idempotencykey = idempotencykey } private enum CodingKeys: String, CodingKey { case channel case action case params case accountid = "accountId" case requesteraccountid = "requesterAccountId" case requestersenderid = "requesterSenderId" case senderisowner = "senderIsOwner" case sessionkey = "sessionKey" case sessionid = "sessionId" case inboundturnkind = "inboundTurnKind" case agentid = "agentId" case toolcontext = "toolContext" case conversationreadorigin = "conversationReadOrigin" case idempotencykey = "idempotencyKey" } } public struct SendParams: Codable, Sendable { public let to: String public let message: String? public let mediaurl: String? public let mediaurls: [String]? public let buffer: String? public let filename: String? public let contenttype: String? public let asvoice: Bool? public let gifplayback: Bool? public let channel: String? public let accountid: String? public let agentid: String? public let replytoid: String? public let threadid: String? public let forcedocument: Bool? public let silent: Bool? public let parsemode: String? public let sessionkey: String? public let idempotencykey: String public init( to: String, message: String? = nil, mediaurl: String? = nil, mediaurls: [String]? = nil, buffer: String? = nil, filename: String? = nil, contenttype: String? = nil, asvoice: Bool? = nil, gifplayback: Bool? = nil, channel: String? = nil, accountid: String? = nil, agentid: String? = nil, replytoid: String? = nil, threadid: String? = nil, forcedocument: Bool? = nil, silent: Bool? = nil, parsemode: String? = nil, sessionkey: String? = nil, idempotencykey: String) { self.to = to self.message = message self.mediaurl = mediaurl self.mediaurls = mediaurls self.buffer = buffer self.filename = filename self.contenttype = contenttype self.asvoice = asvoice self.gifplayback = gifplayback self.channel = channel self.accountid = accountid self.agentid = agentid self.replytoid = replytoid self.threadid = threadid self.forcedocument = forcedocument self.silent = silent self.parsemode = parsemode self.sessionkey = sessionkey self.idempotencykey = idempotencykey } private enum CodingKeys: String, CodingKey { case to case message case mediaurl = "mediaUrl" case mediaurls = "mediaUrls" case buffer case filename case contenttype = "contentType" case asvoice = "asVoice" case gifplayback = "gifPlayback" case channel case accountid = "accountId" case agentid = "agentId" case replytoid = "replyToId" case threadid = "threadId" case forcedocument = "forceDocument" case silent case parsemode = "parseMode" case sessionkey = "sessionKey" case idempotencykey = "idempotencyKey" } } public struct PollParams: Codable, Sendable { public let to: String public let question: String public let options: [String] public let maxselections: Int? public let durationseconds: Int? public let durationhours: Int? public let silent: Bool? public let isanonymous: Bool? public let threadid: String? public let channel: String? public let accountid: String? public let idempotencykey: String public init( to: String, question: String, options: [String], maxselections: Int? = nil, durationseconds: Int? = nil, durationhours: Int? = nil, silent: Bool? = nil, isanonymous: Bool? = nil, threadid: String? = nil, channel: String? = nil, accountid: String? = nil, idempotencykey: String) { self.to = to self.question = question self.options = options self.maxselections = maxselections self.durationseconds = durationseconds self.durationhours = durationhours self.silent = silent self.isanonymous = isanonymous self.threadid = threadid self.channel = channel self.accountid = accountid self.idempotencykey = idempotencykey } private enum CodingKeys: String, CodingKey { case to case question case options case maxselections = "maxSelections" case durationseconds = "durationSeconds" case durationhours = "durationHours" case silent case isanonymous = "isAnonymous" case threadid = "threadId" case channel case accountid = "accountId" case idempotencykey = "idempotencyKey" } } public struct AgentParams: Codable, Sendable { public let message: String public let agentid: String? public let provider: String? public let model: String? public let to: String? public let replyto: String? public let sessionid: String? public let sessionkey: String? public let thinking: String? public let deliver: Bool? public let attachments: [AnyCodable]? public let channel: String? public let replychannel: String? public let accountid: String? public let replyaccountid: String? public let threadid: String? public let groupid: String? public let groupchannel: String? public let groupspace: String? public let timeout: Int? public let besteffortdeliver: Bool? public let lane: String? public let cwd: String? public let cleanupbundlemcponrunend: Bool? public let modelrun: Bool? public let promptmode: AnyCodable? public let extrasystemprompt: String? public let bootstrapcontextmode: AnyCodable? public let bootstrapcontextrunkind: AnyCodable? public let acpturnsource: String? public let internalruntimehandoffid: String? public let execapprovalfollowupexpectedsessionid: String? public let internalevents: [[String: AnyCodable]]? public let inputprovenance: [String: AnyCodable]? public let suppresspromptpersistence: Bool? public let sessioneffects: AnyCodable? public let sourcereplydeliverymode: AnyCodable? public let disablemessagetool: Bool? public let forcerestartsafetools: Bool? public let voicewaketrigger: String? public let idempotencykey: String public let label: String? public init( message: String, agentid: String? = nil, provider: String? = nil, model: String? = nil, to: String? = nil, replyto: String? = nil, sessionid: String? = nil, sessionkey: String? = nil, thinking: String? = nil, deliver: Bool? = nil, attachments: [AnyCodable]? = nil, channel: String? = nil, replychannel: String? = nil, accountid: String? = nil, replyaccountid: String? = nil, threadid: String? = nil, groupid: String? = nil, groupchannel: String? = nil, groupspace: String? = nil, timeout: Int? = nil, besteffortdeliver: Bool? = nil, lane: String? = nil, cwd: String? = nil, cleanupbundlemcponrunend: Bool? = nil, modelrun: Bool? = nil, promptmode: AnyCodable? = nil, extrasystemprompt: String? = nil, bootstrapcontextmode: AnyCodable? = nil, bootstrapcontextrunkind: AnyCodable? = nil, acpturnsource: String? = nil, internalruntimehandoffid: String? = nil, execapprovalfollowupexpectedsessionid: String? = nil, internalevents: [[String: AnyCodable]]? = nil, inputprovenance: [String: AnyCodable]? = nil, suppresspromptpersistence: Bool? = nil, sessioneffects: AnyCodable? = nil, sourcereplydeliverymode: AnyCodable? = nil, disablemessagetool: Bool? = nil, forcerestartsafetools: Bool? = nil, voicewaketrigger: String? = nil, idempotencykey: String, label: String? = nil) { self.message = message self.agentid = agentid self.provider = provider self.model = model self.to = to self.replyto = replyto self.sessionid = sessionid self.sessionkey = sessionkey self.thinking = thinking self.deliver = deliver self.attachments = attachments self.channel = channel self.replychannel = replychannel self.accountid = accountid self.replyaccountid = replyaccountid self.threadid = threadid self.groupid = groupid self.groupchannel = groupchannel self.groupspace = groupspace self.timeout = timeout self.besteffortdeliver = besteffortdeliver self.lane = lane self.cwd = cwd self.cleanupbundlemcponrunend = cleanupbundlemcponrunend self.modelrun = modelrun self.promptmode = promptmode self.extrasystemprompt = extrasystemprompt self.bootstrapcontextmode = bootstrapcontextmode self.bootstrapcontextrunkind = bootstrapcontextrunkind self.acpturnsource = acpturnsource self.internalruntimehandoffid = internalruntimehandoffid self.execapprovalfollowupexpectedsessionid = execapprovalfollowupexpectedsessionid self.internalevents = internalevents self.inputprovenance = inputprovenance self.suppresspromptpersistence = suppresspromptpersistence self.sessioneffects = sessioneffects self.sourcereplydeliverymode = sourcereplydeliverymode self.disablemessagetool = disablemessagetool self.forcerestartsafetools = forcerestartsafetools self.voicewaketrigger = voicewaketrigger self.idempotencykey = idempotencykey self.label = label } private enum CodingKeys: String, CodingKey { case message case agentid = "agentId" case provider case model case to case replyto = "replyTo" case sessionid = "sessionId" case sessionkey = "sessionKey" case thinking case deliver case attachments case channel case replychannel = "replyChannel" case accountid = "accountId" case replyaccountid = "replyAccountId" case threadid = "threadId" case groupid = "groupId" case groupchannel = "groupChannel" case groupspace = "groupSpace" case timeout case besteffortdeliver = "bestEffortDeliver" case lane case cwd case cleanupbundlemcponrunend = "cleanupBundleMcpOnRunEnd" case modelrun = "modelRun" case promptmode = "promptMode" case extrasystemprompt = "extraSystemPrompt" case bootstrapcontextmode = "bootstrapContextMode" case bootstrapcontextrunkind = "bootstrapContextRunKind" case acpturnsource = "acpTurnSource" case internalruntimehandoffid = "internalRuntimeHandoffId" case execapprovalfollowupexpectedsessionid = "execApprovalFollowupExpectedSessionId" case internalevents = "internalEvents" case inputprovenance = "inputProvenance" case suppresspromptpersistence = "suppressPromptPersistence" case sessioneffects = "sessionEffects" case sourcereplydeliverymode = "sourceReplyDeliveryMode" case disablemessagetool = "disableMessageTool" case forcerestartsafetools = "forceRestartSafeTools" case voicewaketrigger = "voiceWakeTrigger" case idempotencykey = "idempotencyKey" case label } } public struct AgentIdentityParams: Codable, Sendable { public let agentid: String? public let sessionkey: String? public init( agentid: String? = nil, sessionkey: String? = nil) { self.agentid = agentid self.sessionkey = sessionkey } private enum CodingKeys: String, CodingKey { case agentid = "agentId" case sessionkey = "sessionKey" } } public struct AgentIdentityResult: Codable, Sendable { public let agentid: String public let name: String? public let avatar: String? public let avatarsource: String? public let avatarstatus: String? public let avatarreason: String? public let emoji: String? public init( agentid: String, name: String? = nil, avatar: String? = nil, avatarsource: String? = nil, avatarstatus: String? = nil, avatarreason: String? = nil, emoji: String? = nil) { self.agentid = agentid self.name = name self.avatar = avatar self.avatarsource = avatarsource self.avatarstatus = avatarstatus self.avatarreason = avatarreason self.emoji = emoji } private enum CodingKeys: String, CodingKey { case agentid = "agentId" case name case avatar case avatarsource = "avatarSource" case avatarstatus = "avatarStatus" case avatarreason = "avatarReason" case emoji } } public struct AgentWaitParams: Codable, Sendable { public let runid: String public let timeoutms: Int? public init( runid: String, timeoutms: Int? = nil) { self.runid = runid self.timeoutms = timeoutms } private enum CodingKeys: String, CodingKey { case runid = "runId" case timeoutms = "timeoutMs" } } public struct WakeParams: Codable, Sendable { public let mode: AnyCodable public let text: String public let sessionkey: String? public let agentid: String? public init( mode: AnyCodable, text: String, sessionkey: String? = nil, agentid: String? = nil) { self.mode = mode self.text = text self.sessionkey = sessionkey self.agentid = agentid } private enum CodingKeys: String, CodingKey { case mode case text case sessionkey = "sessionKey" case agentid = "agentId" } } public struct WorktreeRecord: Codable, Sendable { public let id: String public let name: String public let repofingerprint: String public let reporoot: String public let path: String public let branch: String public let baseref: String public let ownerkind: String public let ownerid: String? public let snapshotref: String? public let createdat: Int public let lastactiveat: Int public let removedat: Int? public init( id: String, name: String, repofingerprint: String, reporoot: String, path: String, branch: String, baseref: String, ownerkind: String, ownerid: String? = nil, snapshotref: String? = nil, createdat: Int, lastactiveat: Int, removedat: Int? = nil) { self.id = id self.name = name self.repofingerprint = repofingerprint self.reporoot = reporoot self.path = path self.branch = branch self.baseref = baseref self.ownerkind = ownerkind self.ownerid = ownerid self.snapshotref = snapshotref self.createdat = createdat self.lastactiveat = lastactiveat self.removedat = removedat } private enum CodingKeys: String, CodingKey { case id case name case repofingerprint = "repoFingerprint" case reporoot = "repoRoot" case path case branch case baseref = "baseRef" case ownerkind = "ownerKind" case ownerid = "ownerId" case snapshotref = "snapshotRef" case createdat = "createdAt" case lastactiveat = "lastActiveAt" case removedat = "removedAt" } } public struct WorktreesListParams: Codable, Sendable {} public struct WorktreesListResult: Codable, Sendable { public let worktrees: [WorktreeRecord] public init( worktrees: [WorktreeRecord]) { self.worktrees = worktrees } private enum CodingKeys: String, CodingKey { case worktrees } } public struct WorktreesCreateParams: Codable, Sendable { public let reporoot: String public let name: String? public let baseref: String? public init( reporoot: String, name: String? = nil, baseref: String? = nil) { self.reporoot = reporoot self.name = name self.baseref = baseref } private enum CodingKeys: String, CodingKey { case reporoot = "repoRoot" case name case baseref = "baseRef" } } public struct WorktreesRemoveParams: Codable, Sendable { public let id: String public let force: Bool? public init( id: String, force: Bool? = nil) { self.id = id self.force = force } private enum CodingKeys: String, CodingKey { case id case force } } public struct WorktreesRemoveResult: Codable, Sendable { public let removed: Bool public let snapshotref: String? public let snapshoterror: String? public init( removed: Bool, snapshotref: String? = nil, snapshoterror: String? = nil) { self.removed = removed self.snapshotref = snapshotref self.snapshoterror = snapshoterror } private enum CodingKeys: String, CodingKey { case removed case snapshotref = "snapshotRef" case snapshoterror = "snapshotError" } } public struct WorktreesRestoreParams: Codable, Sendable { public let id: String public init( id: String) { self.id = id } private enum CodingKeys: String, CodingKey { case id } } public struct WorktreesGcParams: Codable, Sendable {} public struct WorktreesGcResult: Codable, Sendable { public let removed: [String] public let orphansdeleted: Int public let snapshotspruned: Int public init( removed: [String], orphansdeleted: Int, snapshotspruned: Int) { self.removed = removed self.orphansdeleted = orphansdeleted self.snapshotspruned = snapshotspruned } private enum CodingKeys: String, CodingKey { case removed case orphansdeleted = "orphansDeleted" case snapshotspruned = "snapshotsPruned" } } public struct WorktreeBranch: Codable, Sendable { public let name: String public let kind: AnyCodable public init( name: String, kind: AnyCodable) { self.name = name self.kind = kind } private enum CodingKeys: String, CodingKey { case name case kind } } public struct WorktreesBranchesParams: Codable, Sendable { public let reporoot: String public init( reporoot: String) { self.reporoot = reporoot } private enum CodingKeys: String, CodingKey { case reporoot = "repoRoot" } } public struct WorktreesBranchesResult: Codable, Sendable { public let branches: [WorktreeBranch] public let defaultbranch: String? public let headbranch: String? public init( branches: [WorktreeBranch], defaultbranch: String? = nil, headbranch: String? = nil) { self.branches = branches self.defaultbranch = defaultbranch self.headbranch = headbranch } private enum CodingKeys: String, CodingKey { case branches case defaultbranch = "defaultBranch" case headbranch = "headBranch" } } public struct FsDirEntry: Codable, Sendable { public let name: String public let path: String public let hidden: Bool? public init( name: String, path: String, hidden: Bool? = nil) { self.name = name self.path = path self.hidden = hidden } private enum CodingKeys: String, CodingKey { case name case path case hidden } } public struct FsListDirParams: Codable, Sendable { public let path: String? public let nodeid: String? public init( path: String? = nil, nodeid: String? = nil) { self.path = path self.nodeid = nodeid } private enum CodingKeys: String, CodingKey { case path case nodeid = "nodeId" } } public struct FsListDirResult: Codable, Sendable { public let path: String public let parent: String? public let home: String public let entries: [FsDirEntry] public init( path: String, parent: String? = nil, home: String, entries: [FsDirEntry]) { self.path = path self.parent = parent self.home = home self.entries = entries } private enum CodingKeys: String, CodingKey { case path case parent case home case entries } } public struct NodePairListParams: Codable, Sendable {} public struct NodePairApproveParams: Codable, Sendable { public let requestid: String public init( requestid: String) { self.requestid = requestid } private enum CodingKeys: String, CodingKey { case requestid = "requestId" } } public struct NodePairRejectParams: Codable, Sendable { public let requestid: String public init( requestid: String) { self.requestid = requestid } private enum CodingKeys: String, CodingKey { case requestid = "requestId" } } public struct NodePairRemoveParams: Codable, Sendable { public let nodeid: String public init( nodeid: String) { self.nodeid = nodeid } private enum CodingKeys: String, CodingKey { case nodeid = "nodeId" } } public struct NodeRenameParams: Codable, Sendable { public let nodeid: String public let displayname: String public init( nodeid: String, displayname: String) { self.nodeid = nodeid self.displayname = displayname } private enum CodingKeys: String, CodingKey { case nodeid = "nodeId" case displayname = "displayName" } } public struct NodeListParams: Codable, Sendable {} public struct NodePluginToolDescriptor: Codable, Sendable { public let pluginid: String public let name: String public let description: String public let parameters: [String: AnyCodable]? public let command: String? public let mcp: [String: AnyCodable]? public init( pluginid: String, name: String, description: String, parameters: [String: AnyCodable]? = nil, command: String? = nil, mcp: [String: AnyCodable]? = nil) { self.pluginid = pluginid self.name = name self.description = description self.parameters = parameters self.command = command self.mcp = mcp } private enum CodingKeys: String, CodingKey { case pluginid = "pluginId" case name case description case parameters case command case mcp } } public struct NodePluginToolsUpdateParams: Codable, Sendable { public let tools: [NodePluginToolDescriptor] public init( tools: [NodePluginToolDescriptor]) { self.tools = tools } private enum CodingKeys: String, CodingKey { case tools } } public struct NodeSkillDescriptor: Codable, Sendable { public let name: String public let description: String public let content: String public init( name: String, description: String, content: String) { self.name = name self.description = description self.content = content } private enum CodingKeys: String, CodingKey { case name case description case content } } public struct NodeSkillsUpdateParams: Codable, Sendable { public let skills: [NodeSkillDescriptor] public init( skills: [NodeSkillDescriptor]) { self.skills = skills } private enum CodingKeys: String, CodingKey { case skills } } public struct NodePendingAckParams: Codable, Sendable { public let ids: [String] public init( ids: [String]) { self.ids = ids } private enum CodingKeys: String, CodingKey { case ids } } public struct NodeDescribeParams: Codable, Sendable { public let nodeid: String public init( nodeid: String) { self.nodeid = nodeid } private enum CodingKeys: String, CodingKey { case nodeid = "nodeId" } } public struct NodeInvokeParams: Codable, Sendable { public let nodeid: String public let command: String public let params: AnyCodable? public let timeoutms: Int? public let idempotencykey: String public let turnsourcechannel: String? public let turnsourceto: String? public let turnsourceaccountid: String? public let turnsourcethreadid: AnyCodable? public init( nodeid: String, command: String, params: AnyCodable? = nil, timeoutms: Int? = nil, idempotencykey: String, turnsourcechannel: String? = nil, turnsourceto: String? = nil, turnsourceaccountid: String? = nil, turnsourcethreadid: AnyCodable? = nil) { self.nodeid = nodeid self.command = command self.params = params self.timeoutms = timeoutms self.idempotencykey = idempotencykey self.turnsourcechannel = turnsourcechannel self.turnsourceto = turnsourceto self.turnsourceaccountid = turnsourceaccountid self.turnsourcethreadid = turnsourcethreadid } private enum CodingKeys: String, CodingKey { case nodeid = "nodeId" case command case params case timeoutms = "timeoutMs" case idempotencykey = "idempotencyKey" case turnsourcechannel = "turnSourceChannel" case turnsourceto = "turnSourceTo" case turnsourceaccountid = "turnSourceAccountId" case turnsourcethreadid = "turnSourceThreadId" } } public struct NodeInvokeResultParams: Codable, Sendable { public let id: String public let nodeid: String public let ok: Bool public let payload: AnyCodable? public let payloadjson: String? public let error: [String: AnyCodable]? public init( id: String, nodeid: String, ok: Bool, payload: AnyCodable? = nil, payloadjson: String? = nil, error: [String: AnyCodable]? = nil) { self.id = id self.nodeid = nodeid self.ok = ok self.payload = payload self.payloadjson = payloadjson self.error = error } private enum CodingKeys: String, CodingKey { case id case nodeid = "nodeId" case ok case payload case payloadjson = "payloadJSON" case error } } public struct NodeEventParams: Codable, Sendable { public let event: String public let payload: AnyCodable? public let payloadjson: String? public init( event: String, payload: AnyCodable? = nil, payloadjson: String? = nil) { self.event = event self.payload = payload self.payloadjson = payloadjson } private enum CodingKeys: String, CodingKey { case event case payload case payloadjson = "payloadJSON" } } public struct NodeEventResult: Codable, Sendable { public let ok: Bool public let event: String public let handled: Bool public let reason: String? public init( ok: Bool, event: String, handled: Bool, reason: String? = nil) { self.ok = ok self.event = event self.handled = handled self.reason = reason } private enum CodingKeys: String, CodingKey { case ok case event case handled case reason } } public struct NodePresenceAlivePayload: Codable, Sendable { public let trigger: NodePresenceAliveReason public let sentatms: Int? public let displayname: String? public let version: String? public let platform: String? public let devicefamily: String? public let modelidentifier: String? public let pushtransport: String? public init( trigger: NodePresenceAliveReason, sentatms: Int? = nil, displayname: String? = nil, version: String? = nil, platform: String? = nil, devicefamily: String? = nil, modelidentifier: String? = nil, pushtransport: String? = nil) { self.trigger = trigger self.sentatms = sentatms self.displayname = displayname self.version = version self.platform = platform self.devicefamily = devicefamily self.modelidentifier = modelidentifier self.pushtransport = pushtransport } private enum CodingKeys: String, CodingKey { case trigger case sentatms = "sentAtMs" case displayname = "displayName" case version case platform case devicefamily = "deviceFamily" case modelidentifier = "modelIdentifier" case pushtransport = "pushTransport" } } public struct NodePresenceActivityPayload: Codable, Sendable { public let idleseconds: Int public let saturated: Bool? public init( idleseconds: Int, saturated: Bool? = nil) { self.idleseconds = idleseconds self.saturated = saturated } private enum CodingKeys: String, CodingKey { case idleseconds = "idleSeconds" case saturated } } public struct NodePendingDrainParams: Codable, Sendable { public let maxitems: Int? public init( maxitems: Int? = nil) { self.maxitems = maxitems } private enum CodingKeys: String, CodingKey { case maxitems = "maxItems" } } public struct NodePendingDrainResult: Codable, Sendable { public let nodeid: String public let revision: Int public let items: [[String: AnyCodable]] public let hasmore: Bool public init( nodeid: String, revision: Int, items: [[String: AnyCodable]], hasmore: Bool) { self.nodeid = nodeid self.revision = revision self.items = items self.hasmore = hasmore } private enum CodingKeys: String, CodingKey { case nodeid = "nodeId" case revision case items case hasmore = "hasMore" } } public struct NodePendingEnqueueParams: Codable, Sendable { public let nodeid: String public let type: String public let priority: String? public let expiresinms: Int? public let wake: Bool? public init( nodeid: String, type: String, priority: String? = nil, expiresinms: Int? = nil, wake: Bool? = nil) { self.nodeid = nodeid self.type = type self.priority = priority self.expiresinms = expiresinms self.wake = wake } private enum CodingKeys: String, CodingKey { case nodeid = "nodeId" case type case priority case expiresinms = "expiresInMs" case wake } } public struct NodePendingEnqueueResult: Codable, Sendable { public let nodeid: String public let revision: Int public let queued: [String: AnyCodable] public let waketriggered: Bool public init( nodeid: String, revision: Int, queued: [String: AnyCodable], waketriggered: Bool) { self.nodeid = nodeid self.revision = revision self.queued = queued self.waketriggered = waketriggered } private enum CodingKeys: String, CodingKey { case nodeid = "nodeId" case revision case queued case waketriggered = "wakeTriggered" } } public struct NodeInvokeRequestEvent: Codable, Sendable { public let id: String public let nodeid: String public let command: String public let paramsjson: String? public let timeoutms: Int? public let idempotencykey: String? public init( id: String, nodeid: String, command: String, paramsjson: String? = nil, timeoutms: Int? = nil, idempotencykey: String? = nil) { self.id = id self.nodeid = nodeid self.command = command self.paramsjson = paramsjson self.timeoutms = timeoutms self.idempotencykey = idempotencykey } private enum CodingKeys: String, CodingKey { case id case nodeid = "nodeId" case command case paramsjson = "paramsJSON" case timeoutms = "timeoutMs" case idempotencykey = "idempotencyKey" } } public struct PushTestParams: Codable, Sendable { public let nodeid: String public let title: String? public let body: String? public let environment: String? public init( nodeid: String, title: String? = nil, body: String? = nil, environment: String? = nil) { self.nodeid = nodeid self.title = title self.body = body self.environment = environment } private enum CodingKeys: String, CodingKey { case nodeid = "nodeId" case title case body case environment } } public struct PushTestResult: Codable, Sendable { public let ok: Bool public let status: Int public let apnsid: String? public let reason: String? public let tokensuffix: String public let topic: String public let environment: String public let transport: String public init( ok: Bool, status: Int, apnsid: String? = nil, reason: String? = nil, tokensuffix: String, topic: String, environment: String, transport: String) { self.ok = ok self.status = status self.apnsid = apnsid self.reason = reason self.tokensuffix = tokensuffix self.topic = topic self.environment = environment self.transport = transport } private enum CodingKeys: String, CodingKey { case ok case status case apnsid = "apnsId" case reason case tokensuffix = "tokenSuffix" case topic case environment case transport } } public struct SecretsReloadParams: Codable, Sendable {} public struct SecretsResolveParams: Codable, Sendable { public let commandname: String public let targetids: [String] public let allowedpaths: [String]? public let forcedactivepaths: [String]? public let optionalactivepaths: [String]? public let provideroverrides: [String: AnyCodable]? public init( commandname: String, targetids: [String], allowedpaths: [String]? = nil, forcedactivepaths: [String]? = nil, optionalactivepaths: [String]? = nil, provideroverrides: [String: AnyCodable]? = nil) { self.commandname = commandname self.targetids = targetids self.allowedpaths = allowedpaths self.forcedactivepaths = forcedactivepaths self.optionalactivepaths = optionalactivepaths self.provideroverrides = provideroverrides } private enum CodingKeys: String, CodingKey { case commandname = "commandName" case targetids = "targetIds" case allowedpaths = "allowedPaths" case forcedactivepaths = "forcedActivePaths" case optionalactivepaths = "optionalActivePaths" case provideroverrides = "providerOverrides" } } public struct SecretsResolveAssignment: Codable, Sendable { public let path: String? public let pathsegments: [String] public let value: AnyCodable public init( path: String? = nil, pathsegments: [String], value: AnyCodable) { self.path = path self.pathsegments = pathsegments self.value = value } private enum CodingKeys: String, CodingKey { case path case pathsegments = "pathSegments" case value } } public struct SecretsResolveResult: Codable, Sendable { public let ok: Bool? public let assignments: [SecretsResolveAssignment]? public let diagnostics: [String]? public let inactiverefpaths: [String]? public init( ok: Bool? = nil, assignments: [SecretsResolveAssignment]? = nil, diagnostics: [String]? = nil, inactiverefpaths: [String]? = nil) { self.ok = ok self.assignments = assignments self.diagnostics = diagnostics self.inactiverefpaths = inactiverefpaths } private enum CodingKeys: String, CodingKey { case ok case assignments case diagnostics case inactiverefpaths = "inactiveRefPaths" } } public struct SessionsListParams: Codable, Sendable { public let limit: Int? public let offset: Int? public let activeminutes: Int? public let includeglobal: Bool? public let includeunknown: Bool? public let configuredagentsonly: Bool? public let includederivedtitles: Bool? public let includelastmessage: Bool? public let label: String? public let spawnedby: String? public let agentid: String? public let search: String? public let archived: Bool? public init( limit: Int? = nil, offset: Int? = nil, activeminutes: Int? = nil, includeglobal: Bool? = nil, includeunknown: Bool? = nil, configuredagentsonly: Bool? = nil, includederivedtitles: Bool? = nil, includelastmessage: Bool? = nil, label: String? = nil, spawnedby: String? = nil, agentid: String? = nil, search: String? = nil, archived: Bool? = nil) { self.limit = limit self.offset = offset self.activeminutes = activeminutes self.includeglobal = includeglobal self.includeunknown = includeunknown self.configuredagentsonly = configuredagentsonly self.includederivedtitles = includederivedtitles self.includelastmessage = includelastmessage self.label = label self.spawnedby = spawnedby self.agentid = agentid self.search = search self.archived = archived } private enum CodingKeys: String, CodingKey { case limit case offset case activeminutes = "activeMinutes" case includeglobal = "includeGlobal" case includeunknown = "includeUnknown" case configuredagentsonly = "configuredAgentsOnly" case includederivedtitles = "includeDerivedTitles" case includelastmessage = "includeLastMessage" case label case spawnedby = "spawnedBy" case agentid = "agentId" case search case archived } } public struct SessionCatalogCapabilities: Codable, Sendable { public let continuesession: Bool public let archive: Bool public init( continuesession: Bool, archive: Bool) { self.continuesession = continuesession self.archive = archive } private enum CodingKeys: String, CodingKey { case continuesession = "continueSession" case archive } } public struct SessionCatalogDescriptor: Codable, Sendable { public let id: String public let label: String public let capabilities: SessionCatalogCapabilities public init( id: String, label: String, capabilities: SessionCatalogCapabilities) { self.id = id self.label = label self.capabilities = capabilities } private enum CodingKeys: String, CodingKey { case id case label case capabilities } } public struct SessionCatalogSession: Codable, Sendable { public let threadid: String public let name: String? public let cwd: String? public let status: String public let createdat: Double? public let updatedat: Double? public let recencyat: Double? public let source: String? public let modelprovider: String? public let cliversion: String? public let gitbranch: String? public let archived: Bool public let openclawsessionkey: String? public let cancontinue: Bool public let canarchive: Bool public init( threadid: String, name: String? = nil, cwd: String? = nil, status: String, createdat: Double? = nil, updatedat: Double? = nil, recencyat: Double? = nil, source: String? = nil, modelprovider: String? = nil, cliversion: String? = nil, gitbranch: String? = nil, archived: Bool, openclawsessionkey: String? = nil, cancontinue: Bool, canarchive: Bool) { self.threadid = threadid self.name = name self.cwd = cwd self.status = status self.createdat = createdat self.updatedat = updatedat self.recencyat = recencyat self.source = source self.modelprovider = modelprovider self.cliversion = cliversion self.gitbranch = gitbranch self.archived = archived self.openclawsessionkey = openclawsessionkey self.cancontinue = cancontinue self.canarchive = canarchive } private enum CodingKeys: String, CodingKey { case threadid = "threadId" case name case cwd case status case createdat = "createdAt" case updatedat = "updatedAt" case recencyat = "recencyAt" case source case modelprovider = "modelProvider" case cliversion = "cliVersion" case gitbranch = "gitBranch" case archived case openclawsessionkey = "openClawSessionKey" case cancontinue = "canContinue" case canarchive = "canArchive" } } public struct SessionCatalogHost: Codable, Sendable { public let hostid: String public let label: String public let kind: AnyCodable public let connected: Bool public let nodeid: String? public let sessions: [SessionCatalogSession] public let nextcursor: String? public let error: [String: AnyCodable]? public init( hostid: String, label: String, kind: AnyCodable, connected: Bool, nodeid: String? = nil, sessions: [SessionCatalogSession], nextcursor: String? = nil, error: [String: AnyCodable]? = nil) { self.hostid = hostid self.label = label self.kind = kind self.connected = connected self.nodeid = nodeid self.sessions = sessions self.nextcursor = nextcursor self.error = error } private enum CodingKeys: String, CodingKey { case hostid = "hostId" case label case kind case connected case nodeid = "nodeId" case sessions case nextcursor = "nextCursor" case error } } public struct SessionCatalog: Codable, Sendable { public let id: String public let label: String public let capabilities: SessionCatalogCapabilities public let hosts: [SessionCatalogHost] public let error: [String: AnyCodable]? public init( id: String, label: String, capabilities: SessionCatalogCapabilities, hosts: [SessionCatalogHost], error: [String: AnyCodable]? = nil) { self.id = id self.label = label self.capabilities = capabilities self.hosts = hosts self.error = error } private enum CodingKeys: String, CodingKey { case id case label case capabilities case hosts case error } } public struct SessionCatalogTranscriptItem: Codable, Sendable { public let id: String? public let type: AnyCodable public let text: String? public let timestamp: String? public let model: String? public let truncated: Bool? public let raw: AnyCodable? public init( id: String? = nil, type: AnyCodable, text: String? = nil, timestamp: String? = nil, model: String? = nil, truncated: Bool? = nil, raw: AnyCodable? = nil) { self.id = id self.type = type self.text = text self.timestamp = timestamp self.model = model self.truncated = truncated self.raw = raw } private enum CodingKeys: String, CodingKey { case id case type case text case timestamp case model case truncated case raw } } public struct SessionsCatalogListParams: Codable, Sendable { public let catalogid: String? public let search: String? public let limitperhost: Int? public let hostids: [String]? public let cursors: [String: AnyCodable]? public init( catalogid: String? = nil, search: String? = nil, limitperhost: Int? = nil, hostids: [String]? = nil, cursors: [String: AnyCodable]? = nil) { self.catalogid = catalogid self.search = search self.limitperhost = limitperhost self.hostids = hostids self.cursors = cursors } private enum CodingKeys: String, CodingKey { case catalogid = "catalogId" case search case limitperhost = "limitPerHost" case hostids = "hostIds" case cursors } } public struct SessionsCatalogListResult: Codable, Sendable { public let catalogs: [SessionCatalog] public init( catalogs: [SessionCatalog]) { self.catalogs = catalogs } private enum CodingKeys: String, CodingKey { case catalogs } } public struct SessionsCatalogReadParams: Codable, Sendable { public let catalogid: String public let hostid: String public let threadid: String public let limit: Int? public let cursor: String? public init( catalogid: String, hostid: String, threadid: String, limit: Int? = nil, cursor: String? = nil) { self.catalogid = catalogid self.hostid = hostid self.threadid = threadid self.limit = limit self.cursor = cursor } private enum CodingKeys: String, CodingKey { case catalogid = "catalogId" case hostid = "hostId" case threadid = "threadId" case limit case cursor } } public struct SessionsCatalogReadResult: Codable, Sendable { public let hostid: String public let label: String? public let threadid: String public let items: [SessionCatalogTranscriptItem] public let nextcursor: String? public init( hostid: String, label: String? = nil, threadid: String, items: [SessionCatalogTranscriptItem], nextcursor: String? = nil) { self.hostid = hostid self.label = label self.threadid = threadid self.items = items self.nextcursor = nextcursor } private enum CodingKeys: String, CodingKey { case hostid = "hostId" case label case threadid = "threadId" case items case nextcursor = "nextCursor" } } public struct SessionsCatalogContinueParams: Codable, Sendable { public let catalogid: String public let hostid: String public let threadid: String public init( catalogid: String, hostid: String, threadid: String) { self.catalogid = catalogid self.hostid = hostid self.threadid = threadid } private enum CodingKeys: String, CodingKey { case catalogid = "catalogId" case hostid = "hostId" case threadid = "threadId" } } public struct SessionsCatalogContinueResult: Codable, Sendable { public let sessionkey: String public init( sessionkey: String) { self.sessionkey = sessionkey } private enum CodingKeys: String, CodingKey { case sessionkey = "sessionKey" } } public struct SessionsCatalogArchiveParams: Codable, Sendable { public let catalogid: String public let hostid: String public let threadid: String public let confirmnootherrunner: Bool public init( catalogid: String, hostid: String, threadid: String, confirmnootherrunner: Bool) { self.catalogid = catalogid self.hostid = hostid self.threadid = threadid self.confirmnootherrunner = confirmnootherrunner } private enum CodingKeys: String, CodingKey { case catalogid = "catalogId" case hostid = "hostId" case threadid = "threadId" case confirmnootherrunner = "confirmNoOtherRunner" } } public struct SessionsCatalogArchiveResult: Codable, Sendable { public let ok: Bool public init( ok: Bool) { self.ok = ok } private enum CodingKeys: String, CodingKey { case ok } } public struct SessionsCleanupParams: Codable, Sendable { public let agent: String? public let allagents: Bool? public let enforce: Bool? public let activekey: String? public let fixmissing: Bool? public let fixdmscope: Bool? public init( agent: String? = nil, allagents: Bool? = nil, enforce: Bool? = nil, activekey: String? = nil, fixmissing: Bool? = nil, fixdmscope: Bool? = nil) { self.agent = agent self.allagents = allagents self.enforce = enforce self.activekey = activekey self.fixmissing = fixmissing self.fixdmscope = fixdmscope } private enum CodingKeys: String, CodingKey { case agent case allagents = "allAgents" case enforce case activekey = "activeKey" case fixmissing = "fixMissing" case fixdmscope = "fixDmScope" } } public struct SessionsPreviewParams: Codable, Sendable { public let keys: [String] public let limit: Int? public let maxchars: Int? public init( keys: [String], limit: Int? = nil, maxchars: Int? = nil) { self.keys = keys self.limit = limit self.maxchars = maxchars } private enum CodingKeys: String, CodingKey { case keys case limit case maxchars = "maxChars" } } public struct SessionsDescribeParams: Codable, Sendable { public let key: String public let includederivedtitles: Bool? public let includelastmessage: Bool? public init( key: String, includederivedtitles: Bool? = nil, includelastmessage: Bool? = nil) { self.key = key self.includederivedtitles = includederivedtitles self.includelastmessage = includelastmessage } private enum CodingKeys: String, CodingKey { case key case includederivedtitles = "includeDerivedTitles" case includelastmessage = "includeLastMessage" } } public struct SessionsResolveParams: Codable, Sendable { public let key: String? public let sessionid: String? public let label: String? public let agentid: String? public let spawnedby: String? public let includeglobal: Bool? public let includeunknown: Bool? public let allowmissing: Bool? public init( key: String? = nil, sessionid: String? = nil, label: String? = nil, agentid: String? = nil, spawnedby: String? = nil, includeglobal: Bool? = nil, includeunknown: Bool? = nil, allowmissing: Bool? = nil) { self.key = key self.sessionid = sessionid self.label = label self.agentid = agentid self.spawnedby = spawnedby self.includeglobal = includeglobal self.includeunknown = includeunknown self.allowmissing = allowmissing } private enum CodingKeys: String, CodingKey { case key case sessionid = "sessionId" case label case agentid = "agentId" case spawnedby = "spawnedBy" case includeglobal = "includeGlobal" case includeunknown = "includeUnknown" case allowmissing = "allowMissing" } } public struct SessionsSearchHit: Codable, Sendable { public let sessionkey: String public let sessionid: String public let messageid: String public let role: AnyCodable public let timestamp: Int public let snippet: String public let score: Double public init( sessionkey: String, sessionid: String, messageid: String, role: AnyCodable, timestamp: Int, snippet: String, score: Double) { self.sessionkey = sessionkey self.sessionid = sessionid self.messageid = messageid self.role = role self.timestamp = timestamp self.snippet = snippet self.score = score } private enum CodingKeys: String, CodingKey { case sessionkey = "sessionKey" case sessionid = "sessionId" case messageid = "messageId" case role case timestamp case snippet case score } } public struct SessionsSearchParams: Codable, Sendable { public let agentid: String? public let sessionkeys: [String]? public let query: String public let limit: Int? public init( agentid: String? = nil, sessionkeys: [String]? = nil, query: String, limit: Int? = nil) { self.agentid = agentid self.sessionkeys = sessionkeys self.query = query self.limit = limit } private enum CodingKeys: String, CodingKey { case agentid = "agentId" case sessionkeys = "sessionKeys" case query case limit } } public struct SessionsSearchResult: Codable, Sendable { public let results: [SessionsSearchHit] public let indexing: Bool? public let truncated: Bool? public init( results: [SessionsSearchHit], indexing: Bool? = nil, truncated: Bool? = nil) { self.results = results self.indexing = indexing self.truncated = truncated } private enum CodingKeys: String, CodingKey { case results case indexing case truncated } } public struct SessionCompactionCheckpoint: Codable, Sendable { public let checkpointid: String public let sessionkey: String public let sessionid: String public let createdat: Int public let reason: AnyCodable public let tokensbefore: Int? public let tokensafter: Int? public let summary: String? public let firstkeptentryid: String? public let precompaction: [String: AnyCodable] public let postcompaction: [String: AnyCodable] public init( checkpointid: String, sessionkey: String, sessionid: String, createdat: Int, reason: AnyCodable, tokensbefore: Int? = nil, tokensafter: Int? = nil, summary: String? = nil, firstkeptentryid: String? = nil, precompaction: [String: AnyCodable], postcompaction: [String: AnyCodable]) { self.checkpointid = checkpointid self.sessionkey = sessionkey self.sessionid = sessionid self.createdat = createdat self.reason = reason self.tokensbefore = tokensbefore self.tokensafter = tokensafter self.summary = summary self.firstkeptentryid = firstkeptentryid self.precompaction = precompaction self.postcompaction = postcompaction } private enum CodingKeys: String, CodingKey { case checkpointid = "checkpointId" case sessionkey = "sessionKey" case sessionid = "sessionId" case createdat = "createdAt" case reason case tokensbefore = "tokensBefore" case tokensafter = "tokensAfter" case summary case firstkeptentryid = "firstKeptEntryId" case precompaction = "preCompaction" case postcompaction = "postCompaction" } } public struct SessionOperationEvent: Codable, Sendable { public let operationid: String public let operation: String public let phase: AnyCodable public let sessionkey: String public let agentid: String? public let ts: Int public let completed: Bool? public let reason: String? public init( operationid: String, operation: String, phase: AnyCodable, sessionkey: String, agentid: String? = nil, ts: Int, completed: Bool? = nil, reason: String? = nil) { self.operationid = operationid self.operation = operation self.phase = phase self.sessionkey = sessionkey self.agentid = agentid self.ts = ts self.completed = completed self.reason = reason } private enum CodingKeys: String, CodingKey { case operationid = "operationId" case operation case phase case sessionkey = "sessionKey" case agentid = "agentId" case ts case completed case reason } } public struct SessionsCompactionListParams: Codable, Sendable { public let key: String public let agentid: String? public init( key: String, agentid: String? = nil) { self.key = key self.agentid = agentid } private enum CodingKeys: String, CodingKey { case key case agentid = "agentId" } } public struct SessionsCompactionGetParams: Codable, Sendable { public let key: String public let agentid: String? public let checkpointid: String public init( key: String, agentid: String? = nil, checkpointid: String) { self.key = key self.agentid = agentid self.checkpointid = checkpointid } private enum CodingKeys: String, CodingKey { case key case agentid = "agentId" case checkpointid = "checkpointId" } } public struct SessionsCompactionBranchParams: Codable, Sendable { public let key: String public let agentid: String? public let checkpointid: String public init( key: String, agentid: String? = nil, checkpointid: String) { self.key = key self.agentid = agentid self.checkpointid = checkpointid } private enum CodingKeys: String, CodingKey { case key case agentid = "agentId" case checkpointid = "checkpointId" } } public struct SessionsCompactionRestoreParams: Codable, Sendable { public let key: String public let agentid: String? public let checkpointid: String public init( key: String, agentid: String? = nil, checkpointid: String) { self.key = key self.agentid = agentid self.checkpointid = checkpointid } private enum CodingKeys: String, CodingKey { case key case agentid = "agentId" case checkpointid = "checkpointId" } } public struct SessionsCompactionListResult: Codable, Sendable { public let ok: Bool public let key: String public let checkpoints: [SessionCompactionCheckpoint] public init( ok: Bool, key: String, checkpoints: [SessionCompactionCheckpoint]) { self.ok = ok self.key = key self.checkpoints = checkpoints } private enum CodingKeys: String, CodingKey { case ok case key case checkpoints } } public struct SessionsCompactionGetResult: Codable, Sendable { public let ok: Bool public let key: String public let checkpoint: SessionCompactionCheckpoint public init( ok: Bool, key: String, checkpoint: SessionCompactionCheckpoint) { self.ok = ok self.key = key self.checkpoint = checkpoint } private enum CodingKeys: String, CodingKey { case ok case key case checkpoint } } public struct SessionsCompactionBranchResult: Codable, Sendable { public let ok: Bool public let sourcekey: String public let key: String public let sessionid: String public let checkpoint: SessionCompactionCheckpoint public let entry: [String: AnyCodable] public init( ok: Bool, sourcekey: String, key: String, sessionid: String, checkpoint: SessionCompactionCheckpoint, entry: [String: AnyCodable]) { self.ok = ok self.sourcekey = sourcekey self.key = key self.sessionid = sessionid self.checkpoint = checkpoint self.entry = entry } private enum CodingKeys: String, CodingKey { case ok case sourcekey = "sourceKey" case key case sessionid = "sessionId" case checkpoint case entry } } public struct SessionsCompactionRestoreResult: Codable, Sendable { public let ok: Bool public let key: String public let sessionid: String public let checkpoint: SessionCompactionCheckpoint public let entry: [String: AnyCodable] public init( ok: Bool, key: String, sessionid: String, checkpoint: SessionCompactionCheckpoint, entry: [String: AnyCodable]) { self.ok = ok self.key = key self.sessionid = sessionid self.checkpoint = checkpoint self.entry = entry } private enum CodingKeys: String, CodingKey { case ok case key case sessionid = "sessionId" case checkpoint case entry } } public struct SessionFileBrowserEntry: Codable, Sendable { public let path: String public let name: String public let kind: AnyCodable public let sessionkind: SessionFileRelevance? public let size: Int? public let updatedatms: Int? public init( path: String, name: String, kind: AnyCodable, sessionkind: SessionFileRelevance? = nil, size: Int? = nil, updatedatms: Int? = nil) { self.path = path self.name = name self.kind = kind self.sessionkind = sessionkind self.size = size self.updatedatms = updatedatms } private enum CodingKeys: String, CodingKey { case path case name case kind case sessionkind = "sessionKind" case size case updatedatms = "updatedAtMs" } } public struct SessionFileBrowserResult: Codable, Sendable { public let path: String public let parentpath: String? public let search: String? public let entries: [SessionFileBrowserEntry] public let truncated: Bool? public init( path: String, parentpath: String? = nil, search: String? = nil, entries: [SessionFileBrowserEntry], truncated: Bool? = nil) { self.path = path self.parentpath = parentpath self.search = search self.entries = entries self.truncated = truncated } private enum CodingKeys: String, CodingKey { case path case parentpath = "parentPath" case search case entries case truncated } } public struct SessionFileEntry: Codable, Sendable { public let path: String public let workspacepath: String? public let name: String public let kind: SessionFileKind public let missing: Bool public let size: Int? public let updatedatms: Int? public let content: String? public let hash: String? public init( path: String, workspacepath: String? = nil, name: String, kind: SessionFileKind, missing: Bool, size: Int? = nil, updatedatms: Int? = nil, content: String? = nil, hash: String? = nil) { self.path = path self.workspacepath = workspacepath self.name = name self.kind = kind self.missing = missing self.size = size self.updatedatms = updatedatms self.content = content self.hash = hash } private enum CodingKeys: String, CodingKey { case path case workspacepath = "workspacePath" case name case kind case missing case size case updatedatms = "updatedAtMs" case content case hash } } public struct SessionsFilesListParams: Codable, Sendable { public let sessionkey: String public let agentid: String? public let path: String? public let search: String? public init( sessionkey: String, agentid: String? = nil, path: String? = nil, search: String? = nil) { self.sessionkey = sessionkey self.agentid = agentid self.path = path self.search = search } private enum CodingKeys: String, CodingKey { case sessionkey = "sessionKey" case agentid = "agentId" case path case search } } public struct SessionsFilesListResult: Codable, Sendable { public let sessionkey: String public let root: String? public let files: [SessionFileEntry] public let browser: SessionFileBrowserResult? public init( sessionkey: String, root: String? = nil, files: [SessionFileEntry], browser: SessionFileBrowserResult? = nil) { self.sessionkey = sessionkey self.root = root self.files = files self.browser = browser } private enum CodingKeys: String, CodingKey { case sessionkey = "sessionKey" case root case files case browser } } public struct SessionsFilesGetParams: Codable, Sendable { public let sessionkey: String public let path: String public let agentid: String? public init( sessionkey: String, path: String, agentid: String? = nil) { self.sessionkey = sessionkey self.path = path self.agentid = agentid } private enum CodingKeys: String, CodingKey { case sessionkey = "sessionKey" case path case agentid = "agentId" } } public struct SessionsFilesGetResult: Codable, Sendable { public let sessionkey: String public let root: String? public let file: SessionFileEntry public init( sessionkey: String, root: String? = nil, file: SessionFileEntry) { self.sessionkey = sessionkey self.root = root self.file = file } private enum CodingKeys: String, CodingKey { case sessionkey = "sessionKey" case root case file } } public struct SessionsFilesSetParams: Codable, Sendable { public let sessionkey: String public let path: String public let agentid: String? public let content: String public let expectedhash: String public init( sessionkey: String, path: String, agentid: String? = nil, content: String, expectedhash: String) { self.sessionkey = sessionkey self.path = path self.agentid = agentid self.content = content self.expectedhash = expectedhash } private enum CodingKeys: String, CodingKey { case sessionkey = "sessionKey" case path case agentid = "agentId" case content case expectedhash = "expectedHash" } } public struct SessionsFilesSetResult: Codable, Sendable { public let sessionkey: String public let root: String? public let file: SessionFileEntry public init( sessionkey: String, root: String? = nil, file: SessionFileEntry) { self.sessionkey = sessionkey self.root = root self.file = file } private enum CodingKeys: String, CodingKey { case sessionkey = "sessionKey" case root case file } } public struct SessionDiffFile: Codable, Sendable { public let path: String public let oldpath: String? public let status: SessionDiffFileStatus public let additions: Int public let deletions: Int public let binary: Bool? public let untracked: Bool? public let patch: String? public let truncated: Bool? public init( path: String, oldpath: String? = nil, status: SessionDiffFileStatus, additions: Int, deletions: Int, binary: Bool? = nil, untracked: Bool? = nil, patch: String? = nil, truncated: Bool? = nil) { self.path = path self.oldpath = oldpath self.status = status self.additions = additions self.deletions = deletions self.binary = binary self.untracked = untracked self.patch = patch self.truncated = truncated } private enum CodingKeys: String, CodingKey { case path case oldpath = "oldPath" case status case additions case deletions case binary case untracked case patch case truncated } } public struct SessionsDiffParams: Codable, Sendable { public let sessionkey: String public let agentid: String? public init( sessionkey: String, agentid: String? = nil) { self.sessionkey = sessionkey self.agentid = agentid } private enum CodingKeys: String, CodingKey { case sessionkey = "sessionKey" case agentid = "agentId" } } public struct SessionsDiffResult: Codable, Sendable { public let sessionkey: String public let root: String? public let branch: String? public let baseref: String? public let files: [SessionDiffFile] public let additions: Int public let deletions: Int public let truncated: Bool? public let unavailablereason: AnyCodable? public init( sessionkey: String, root: String? = nil, branch: String? = nil, baseref: String? = nil, files: [SessionDiffFile], additions: Int, deletions: Int, truncated: Bool? = nil, unavailablereason: AnyCodable? = nil) { self.sessionkey = sessionkey self.root = root self.branch = branch self.baseref = baseref self.files = files self.additions = additions self.deletions = deletions self.truncated = truncated self.unavailablereason = unavailablereason } private enum CodingKeys: String, CodingKey { case sessionkey = "sessionKey" case root case branch case baseref = "baseRef" case files case additions case deletions case truncated case unavailablereason = "unavailableReason" } } public struct SessionWorktreeInfo: Codable, Sendable { public let id: String public let path: String public let branch: String public init( id: String, path: String, branch: String) { self.id = id self.path = path self.branch = branch } private enum CodingKeys: String, CodingKey { case id case path case branch } } public struct SessionsCreateParams: Codable, Sendable { public let key: String? public let agentid: String? public let label: String? public let model: String? public let parentsessionkey: String? public let fork: Bool? public let emitcommandhooks: Bool? public let task: String? public let message: String? public let worktree: Bool? public let worktreebaseref: String? public let worktreename: String? public let execnode: String? public let cwd: String? public init( key: String? = nil, agentid: String? = nil, label: String? = nil, model: String? = nil, parentsessionkey: String? = nil, fork: Bool? = nil, emitcommandhooks: Bool? = nil, task: String? = nil, message: String? = nil, worktree: Bool? = nil, worktreebaseref: String? = nil, worktreename: String? = nil, execnode: String? = nil, cwd: String? = nil) { self.key = key self.agentid = agentid self.label = label self.model = model self.parentsessionkey = parentsessionkey self.fork = fork self.emitcommandhooks = emitcommandhooks self.task = task self.message = message self.worktree = worktree self.worktreebaseref = worktreebaseref self.worktreename = worktreename self.execnode = execnode self.cwd = cwd } private enum CodingKeys: String, CodingKey { case key case agentid = "agentId" case label case model case parentsessionkey = "parentSessionKey" case fork case emitcommandhooks = "emitCommandHooks" case task case message case worktree case worktreebaseref = "worktreeBaseRef" case worktreename = "worktreeName" case execnode = "execNode" case cwd } } public struct SessionsCreateResult: Codable, Sendable { public let ok: Bool public let key: String public let sessionid: String? public let entry: [String: AnyCodable]? public let runstarted: Bool? public let runerror: ErrorShape? public let worktree: SessionWorktreeInfo? public init( ok: Bool, key: String, sessionid: String? = nil, entry: [String: AnyCodable]? = nil, runstarted: Bool? = nil, runerror: ErrorShape? = nil, worktree: SessionWorktreeInfo? = nil) { self.ok = ok self.key = key self.sessionid = sessionid self.entry = entry self.runstarted = runstarted self.runerror = runerror self.worktree = worktree } private enum CodingKeys: String, CodingKey { case ok case key case sessionid = "sessionId" case entry case runstarted = "runStarted" case runerror = "runError" case worktree } } public struct SessionsSendParams: Codable, Sendable { public let key: String public let agentid: String? public let message: String public let thinking: String? public let attachments: [AnyCodable]? public let timeoutms: Int? public let idempotencykey: String? public init( key: String, agentid: String? = nil, message: String, thinking: String? = nil, attachments: [AnyCodable]? = nil, timeoutms: Int? = nil, idempotencykey: String? = nil) { self.key = key self.agentid = agentid self.message = message self.thinking = thinking self.attachments = attachments self.timeoutms = timeoutms self.idempotencykey = idempotencykey } private enum CodingKeys: String, CodingKey { case key case agentid = "agentId" case message case thinking case attachments case timeoutms = "timeoutMs" case idempotencykey = "idempotencyKey" } } public struct SessionsMessagesSubscribeParams: Codable, Sendable { public let key: String public let agentid: String? public let includeapprovals: Bool? public init( key: String, agentid: String? = nil, includeapprovals: Bool? = nil) { self.key = key self.agentid = agentid self.includeapprovals = includeapprovals } private enum CodingKeys: String, CodingKey { case key case agentid = "agentId" case includeapprovals = "includeApprovals" } } public struct SessionsMessagesUnsubscribeParams: Codable, Sendable { public let key: String public let agentid: String? public init( key: String, agentid: String? = nil) { self.key = key self.agentid = agentid } private enum CodingKeys: String, CodingKey { case key case agentid = "agentId" } } public struct SessionsAbortParams: Codable, Sendable { public let key: String? public let runid: String? public let agentid: String? public init( key: String? = nil, runid: String? = nil, agentid: String? = nil) { self.key = key self.runid = runid self.agentid = agentid } private enum CodingKeys: String, CodingKey { case key case runid = "runId" case agentid = "agentId" } } public struct SessionsPatchParams: Codable, Sendable { public let key: String public let agentid: String? public let label: AnyCodable? public let category: AnyCodable? public let archived: Bool? public let pinned: Bool? public let unread: Bool? public let thinkinglevel: AnyCodable? public let fastmode: AnyCodable? public let verboselevel: AnyCodable? public let tracelevel: AnyCodable? public let reasoninglevel: AnyCodable? public let responseusage: AnyCodable? public let elevatedlevel: AnyCodable? public let exechost: AnyCodable? public let execsecurity: AnyCodable? public let execask: AnyCodable? public let execnode: AnyCodable? public let model: AnyCodable? public let spawnedby: AnyCodable? public let spawnedworkspacedir: AnyCodable? public let spawnedcwd: AnyCodable? public let spawndepth: AnyCodable? public let subagentrole: AnyCodable? public let subagentcontrolscope: AnyCodable? public let inheritedtoolallow: AnyCodable? public let inheritedtooldeny: AnyCodable? public let sendpolicy: AnyCodable? public let groupactivation: AnyCodable? public init( key: String, agentid: String? = nil, label: AnyCodable? = nil, category: AnyCodable? = nil, archived: Bool? = nil, pinned: Bool? = nil, unread: Bool? = nil, thinkinglevel: AnyCodable? = nil, fastmode: AnyCodable? = nil, verboselevel: AnyCodable? = nil, tracelevel: AnyCodable? = nil, reasoninglevel: AnyCodable? = nil, responseusage: AnyCodable? = nil, elevatedlevel: AnyCodable? = nil, exechost: AnyCodable? = nil, execsecurity: AnyCodable? = nil, execask: AnyCodable? = nil, execnode: AnyCodable? = nil, model: AnyCodable? = nil, spawnedby: AnyCodable? = nil, spawnedworkspacedir: AnyCodable? = nil, spawnedcwd: AnyCodable? = nil, spawndepth: AnyCodable? = nil, subagentrole: AnyCodable? = nil, subagentcontrolscope: AnyCodable? = nil, inheritedtoolallow: AnyCodable? = nil, inheritedtooldeny: AnyCodable? = nil, sendpolicy: AnyCodable? = nil, groupactivation: AnyCodable? = nil) { self.key = key self.agentid = agentid self.label = label self.category = category self.archived = archived self.pinned = pinned self.unread = unread self.thinkinglevel = thinkinglevel self.fastmode = fastmode self.verboselevel = verboselevel self.tracelevel = tracelevel self.reasoninglevel = reasoninglevel self.responseusage = responseusage self.elevatedlevel = elevatedlevel self.exechost = exechost self.execsecurity = execsecurity self.execask = execask self.execnode = execnode self.model = model self.spawnedby = spawnedby self.spawnedworkspacedir = spawnedworkspacedir self.spawnedcwd = spawnedcwd self.spawndepth = spawndepth self.subagentrole = subagentrole self.subagentcontrolscope = subagentcontrolscope self.inheritedtoolallow = inheritedtoolallow self.inheritedtooldeny = inheritedtooldeny self.sendpolicy = sendpolicy self.groupactivation = groupactivation } private enum CodingKeys: String, CodingKey { case key case agentid = "agentId" case label case category case archived case pinned case unread case thinkinglevel = "thinkingLevel" case fastmode = "fastMode" case verboselevel = "verboseLevel" case tracelevel = "traceLevel" case reasoninglevel = "reasoningLevel" case responseusage = "responseUsage" case elevatedlevel = "elevatedLevel" case exechost = "execHost" case execsecurity = "execSecurity" case execask = "execAsk" case execnode = "execNode" case model case spawnedby = "spawnedBy" case spawnedworkspacedir = "spawnedWorkspaceDir" case spawnedcwd = "spawnedCwd" case spawndepth = "spawnDepth" case subagentrole = "subagentRole" case subagentcontrolscope = "subagentControlScope" case inheritedtoolallow = "inheritedToolAllow" case inheritedtooldeny = "inheritedToolDeny" case sendpolicy = "sendPolicy" case groupactivation = "groupActivation" } } public struct SessionsPluginPatchParams: Codable, Sendable { public let key: String public let pluginid: String public let namespace: String public let value: AnyCodable? public let unset: Bool? public init( key: String, pluginid: String, namespace: String, value: AnyCodable? = nil, unset: Bool? = nil) { self.key = key self.pluginid = pluginid self.namespace = namespace self.value = value self.unset = unset } private enum CodingKeys: String, CodingKey { case key case pluginid = "pluginId" case namespace case value case unset } } public struct SessionsPluginPatchResult: Codable, Sendable { public let ok: Bool public let key: String public let value: AnyCodable? public init( ok: Bool, key: String, value: AnyCodable? = nil) { self.ok = ok self.key = key self.value = value } private enum CodingKeys: String, CodingKey { case ok case key case value } } public struct SessionsResetParams: Codable, Sendable { public let key: String public let agentid: String? public let reason: AnyCodable? public init( key: String, agentid: String? = nil, reason: AnyCodable? = nil) { self.key = key self.agentid = agentid self.reason = reason } private enum CodingKeys: String, CodingKey { case key case agentid = "agentId" case reason } } public struct SessionsDeleteParams: Codable, Sendable { public let key: String public let agentid: String? public let deletetranscript: Bool? public let expectedsessionid: String? public let expectedlifecyclerevision: String? public let expectedsessionupdatedat: Double? public let emitlifecyclehooks: Bool? public let archivedonly: Bool? public init( key: String, agentid: String? = nil, deletetranscript: Bool? = nil, expectedsessionid: String? = nil, expectedlifecyclerevision: String? = nil, expectedsessionupdatedat: Double? = nil, emitlifecyclehooks: Bool? = nil, archivedonly: Bool? = nil) { self.key = key self.agentid = agentid self.deletetranscript = deletetranscript self.expectedsessionid = expectedsessionid self.expectedlifecyclerevision = expectedlifecyclerevision self.expectedsessionupdatedat = expectedsessionupdatedat self.emitlifecyclehooks = emitlifecyclehooks self.archivedonly = archivedonly } private enum CodingKeys: String, CodingKey { case key case agentid = "agentId" case deletetranscript = "deleteTranscript" case expectedsessionid = "expectedSessionId" case expectedlifecyclerevision = "expectedLifecycleRevision" case expectedsessionupdatedat = "expectedSessionUpdatedAt" case emitlifecyclehooks = "emitLifecycleHooks" case archivedonly = "archivedOnly" } } public struct SessionGroup: Codable, Sendable { public let name: String public let position: Int public init( name: String, position: Int) { self.name = name self.position = position } private enum CodingKeys: String, CodingKey { case name case position } } public struct SessionsGroupsListParams: Codable, Sendable {} public struct SessionsGroupsListResult: Codable, Sendable { public let groups: [SessionGroup] public init( groups: [SessionGroup]) { self.groups = groups } private enum CodingKeys: String, CodingKey { case groups } } public struct SessionsGroupsPutParams: Codable, Sendable { public let names: [String] public init( names: [String]) { self.names = names } private enum CodingKeys: String, CodingKey { case names } } public struct SessionsGroupsRenameParams: Codable, Sendable { public let name: String public let to: String public init( name: String, to: String) { self.name = name self.to = to } private enum CodingKeys: String, CodingKey { case name case to } } public struct SessionsGroupsDeleteParams: Codable, Sendable { public let name: String public init( name: String) { self.name = name } private enum CodingKeys: String, CodingKey { case name } } public struct SessionsGroupsMutationResult: Codable, Sendable { public let ok: Bool public let groups: [SessionGroup] public let updatedsessions: Int? public init( ok: Bool, groups: [SessionGroup], updatedsessions: Int? = nil) { self.ok = ok self.groups = groups self.updatedsessions = updatedsessions } private enum CodingKeys: String, CodingKey { case ok case groups case updatedsessions = "updatedSessions" } } public struct SessionsCompactParams: Codable, Sendable { public let key: String public let agentid: String? public let maxlines: Int? public init( key: String, agentid: String? = nil, maxlines: Int? = nil) { self.key = key self.agentid = agentid self.maxlines = maxlines } private enum CodingKeys: String, CodingKey { case key case agentid = "agentId" case maxlines = "maxLines" } } public struct SessionsUsageParams: Codable, Sendable { public let key: String? public let agentid: String? public let agentscope: String? public let startdate: String? public let enddate: String? public let mode: AnyCodable? public let range: AnyCodable? public let groupby: AnyCodable? public let includehistorical: Bool? public let utcoffset: String? public let timezone: String? public let limit: Int? public let includecontextweight: Bool? public init( key: String? = nil, agentid: String? = nil, agentscope: String? = nil, startdate: String? = nil, enddate: String? = nil, mode: AnyCodable? = nil, range: AnyCodable? = nil, groupby: AnyCodable? = nil, includehistorical: Bool? = nil, utcoffset: String? = nil, timezone: String? = nil, limit: Int? = nil, includecontextweight: Bool? = nil) { self.key = key self.agentid = agentid self.agentscope = agentscope self.startdate = startdate self.enddate = enddate self.mode = mode self.range = range self.groupby = groupby self.includehistorical = includehistorical self.utcoffset = utcoffset self.timezone = timezone self.limit = limit self.includecontextweight = includecontextweight } private enum CodingKeys: String, CodingKey { case key case agentid = "agentId" case agentscope = "agentScope" case startdate = "startDate" case enddate = "endDate" case mode case range case groupby = "groupBy" case includehistorical = "includeHistorical" case utcoffset = "utcOffset" case timezone = "timeZone" case limit case includecontextweight = "includeContextWeight" } } public struct AuditActivityAgentRunV1: Codable, Sendable { public let eventtype: String public let schemaversion: Int public let eventid: String public let sequence: Int public let sourcesequence: Int public let occurredat: Int public let redaction: String public let actor: [String: AnyCodable] public let agentid: String public let sessionkey: String? public let sessionid: String? public let runid: String public let kind: String public let action: AnyCodable public let status: AnyCodable public let errorcode: AnyCodable? public init( eventtype: String, schemaversion: Int, eventid: String, sequence: Int, sourcesequence: Int, occurredat: Int, redaction: String, actor: [String: AnyCodable], agentid: String, sessionkey: String? = nil, sessionid: String? = nil, runid: String, kind: String, action: AnyCodable, status: AnyCodable, errorcode: AnyCodable? = nil) { self.eventtype = eventtype self.schemaversion = schemaversion self.eventid = eventid self.sequence = sequence self.sourcesequence = sourcesequence self.occurredat = occurredat self.redaction = redaction self.actor = actor self.agentid = agentid self.sessionkey = sessionkey self.sessionid = sessionid self.runid = runid self.kind = kind self.action = action self.status = status self.errorcode = errorcode } private enum CodingKeys: String, CodingKey { case eventtype = "eventType" case schemaversion = "schemaVersion" case eventid = "eventId" case sequence case sourcesequence = "sourceSequence" case occurredat = "occurredAt" case redaction case actor case agentid = "agentId" case sessionkey = "sessionKey" case sessionid = "sessionId" case runid = "runId" case kind case action case status case errorcode = "errorCode" } } public struct AuditActivityToolActionV1: Codable, Sendable { public let eventtype: String public let schemaversion: Int public let eventid: String public let sequence: Int public let sourcesequence: Int public let occurredat: Int public let redaction: String public let actor: [String: AnyCodable] public let agentid: String public let sessionkey: String? public let sessionid: String? public let runid: String public let kind: String public let toolcallid: String? public let toolname: String? public let action: AnyCodable public let status: AnyCodable public let errorcode: AnyCodable? public init( eventtype: String, schemaversion: Int, eventid: String, sequence: Int, sourcesequence: Int, occurredat: Int, redaction: String, actor: [String: AnyCodable], agentid: String, sessionkey: String? = nil, sessionid: String? = nil, runid: String, kind: String, toolcallid: String? = nil, toolname: String? = nil, action: AnyCodable, status: AnyCodable, errorcode: AnyCodable? = nil) { self.eventtype = eventtype self.schemaversion = schemaversion self.eventid = eventid self.sequence = sequence self.sourcesequence = sourcesequence self.occurredat = occurredat self.redaction = redaction self.actor = actor self.agentid = agentid self.sessionkey = sessionkey self.sessionid = sessionid self.runid = runid self.kind = kind self.toolcallid = toolcallid self.toolname = toolname self.action = action self.status = status self.errorcode = errorcode } private enum CodingKeys: String, CodingKey { case eventtype = "eventType" case schemaversion = "schemaVersion" case eventid = "eventId" case sequence case sourcesequence = "sourceSequence" case occurredat = "occurredAt" case redaction case actor case agentid = "agentId" case sessionkey = "sessionKey" case sessionid = "sessionId" case runid = "runId" case kind case toolcallid = "toolCallId" case toolname = "toolName" case action case status case errorcode = "errorCode" } } public struct AuditActivityInboundMessageV1: Codable, Sendable { public let eventtype: String public let schemaversion: Int public let eventid: String public let sequence: Int public let sourcesequence: Int public let occurredat: Int public let redaction: String public let channel: String public let conversationkind: AnyCodable public let durationms: Int? public let resultcount: Int? public let agentid: String? public let runid: String? public let accountref: String? public let conversationref: String? public let messageref: String? public let targetref: String? public let kind: String public let action: String public let direction: String public let actor: AnyCodable public let status: AnyCodable public let outcome: AnyCodable public let errorcode: String? public let reasoncode: AnyCodable? public init( eventtype: String, schemaversion: Int, eventid: String, sequence: Int, sourcesequence: Int, occurredat: Int, redaction: String, channel: String, conversationkind: AnyCodable, durationms: Int? = nil, resultcount: Int? = nil, agentid: String? = nil, runid: String? = nil, accountref: String? = nil, conversationref: String? = nil, messageref: String? = nil, targetref: String? = nil, kind: String, action: String, direction: String, actor: AnyCodable, status: AnyCodable, outcome: AnyCodable, errorcode: String? = nil, reasoncode: AnyCodable? = nil) { self.eventtype = eventtype self.schemaversion = schemaversion self.eventid = eventid self.sequence = sequence self.sourcesequence = sourcesequence self.occurredat = occurredat self.redaction = redaction self.channel = channel self.conversationkind = conversationkind self.durationms = durationms self.resultcount = resultcount self.agentid = agentid self.runid = runid self.accountref = accountref self.conversationref = conversationref self.messageref = messageref self.targetref = targetref self.kind = kind self.action = action self.direction = direction self.actor = actor self.status = status self.outcome = outcome self.errorcode = errorcode self.reasoncode = reasoncode } private enum CodingKeys: String, CodingKey { case eventtype = "eventType" case schemaversion = "schemaVersion" case eventid = "eventId" case sequence case sourcesequence = "sourceSequence" case occurredat = "occurredAt" case redaction case channel case conversationkind = "conversationKind" case durationms = "durationMs" case resultcount = "resultCount" case agentid = "agentId" case runid = "runId" case accountref = "accountRef" case conversationref = "conversationRef" case messageref = "messageRef" case targetref = "targetRef" case kind case action case direction case actor case status case outcome case errorcode = "errorCode" case reasoncode = "reasonCode" } } public struct AuditActivityOutboundMessageV1: Codable, Sendable { public let eventtype: String public let schemaversion: Int public let eventid: String public let sequence: Int public let sourcesequence: Int public let occurredat: Int public let redaction: String public let channel: String public let conversationkind: AnyCodable public let durationms: Int? public let resultcount: Int? public let agentid: String? public let runid: String? public let accountref: String? public let conversationref: String? public let messageref: String? public let targetref: String? public let kind: String public let action: String public let direction: String public let actor: [String: AnyCodable] public let deliverykind: AnyCodable? public let status: AnyCodable public let outcome: AnyCodable public let errorcode: AnyCodable? public let reasoncode: AnyCodable? public let failurestage: AnyCodable? public init( eventtype: String, schemaversion: Int, eventid: String, sequence: Int, sourcesequence: Int, occurredat: Int, redaction: String, channel: String, conversationkind: AnyCodable, durationms: Int? = nil, resultcount: Int? = nil, agentid: String? = nil, runid: String? = nil, accountref: String? = nil, conversationref: String? = nil, messageref: String? = nil, targetref: String? = nil, kind: String, action: String, direction: String, actor: [String: AnyCodable], deliverykind: AnyCodable? = nil, status: AnyCodable, outcome: AnyCodable, errorcode: AnyCodable? = nil, reasoncode: AnyCodable? = nil, failurestage: AnyCodable? = nil) { self.eventtype = eventtype self.schemaversion = schemaversion self.eventid = eventid self.sequence = sequence self.sourcesequence = sourcesequence self.occurredat = occurredat self.redaction = redaction self.channel = channel self.conversationkind = conversationkind self.durationms = durationms self.resultcount = resultcount self.agentid = agentid self.runid = runid self.accountref = accountref self.conversationref = conversationref self.messageref = messageref self.targetref = targetref self.kind = kind self.action = action self.direction = direction self.actor = actor self.deliverykind = deliverykind self.status = status self.outcome = outcome self.errorcode = errorcode self.reasoncode = reasoncode self.failurestage = failurestage } private enum CodingKeys: String, CodingKey { case eventtype = "eventType" case schemaversion = "schemaVersion" case eventid = "eventId" case sequence case sourcesequence = "sourceSequence" case occurredat = "occurredAt" case redaction case channel case conversationkind = "conversationKind" case durationms = "durationMs" case resultcount = "resultCount" case agentid = "agentId" case runid = "runId" case accountref = "accountRef" case conversationref = "conversationRef" case messageref = "messageRef" case targetref = "targetRef" case kind case action case direction case actor case deliverykind = "deliveryKind" case status case outcome case errorcode = "errorCode" case reasoncode = "reasonCode" case failurestage = "failureStage" } } public struct AuditActivityListParams: Codable, Sendable { public let agentid: String? public let sessionkey: String? public let runid: String? public let kind: AnyCodable? public let status: AnyCodable? public let direction: AnyCodable? public let channel: String? public let after: Int? public let before: Int? public let limit: Int? public let cursor: String? public init( agentid: String? = nil, sessionkey: String? = nil, runid: String? = nil, kind: AnyCodable? = nil, status: AnyCodable? = nil, direction: AnyCodable? = nil, channel: String? = nil, after: Int? = nil, before: Int? = nil, limit: Int? = nil, cursor: String? = nil) { self.agentid = agentid self.sessionkey = sessionkey self.runid = runid self.kind = kind self.status = status self.direction = direction self.channel = channel self.after = after self.before = before self.limit = limit self.cursor = cursor } private enum CodingKeys: String, CodingKey { case agentid = "agentId" case sessionkey = "sessionKey" case runid = "runId" case kind case status case direction case channel case after case before case limit case cursor } } public struct AuditActivityListResult: Codable, Sendable { public let events: [AuditActivityEventV1] public let nextcursor: String? public init( events: [AuditActivityEventV1], nextcursor: String? = nil) { self.events = events self.nextcursor = nextcursor } private enum CodingKeys: String, CodingKey { case events case nextcursor = "nextCursor" } } public struct AuditEvent: Codable, Sendable { public let eventid: String public let sequence: Int public let sourcesequence: Int public let occurredat: Int public let kind: AnyCodable public let action: AnyCodable public let status: AnyCodable public let errorcode: AnyCodable? public let actor: [String: AnyCodable] public let agentid: String public let sessionkey: String? public let sessionid: String? public let runid: String public let toolcallid: String? public let toolname: String? public let redaction: String public init( eventid: String, sequence: Int, sourcesequence: Int, occurredat: Int, kind: AnyCodable, action: AnyCodable, status: AnyCodable, errorcode: AnyCodable? = nil, actor: [String: AnyCodable], agentid: String, sessionkey: String? = nil, sessionid: String? = nil, runid: String, toolcallid: String? = nil, toolname: String? = nil, redaction: String) { self.eventid = eventid self.sequence = sequence self.sourcesequence = sourcesequence self.occurredat = occurredat self.kind = kind self.action = action self.status = status self.errorcode = errorcode self.actor = actor self.agentid = agentid self.sessionkey = sessionkey self.sessionid = sessionid self.runid = runid self.toolcallid = toolcallid self.toolname = toolname self.redaction = redaction } private enum CodingKeys: String, CodingKey { case eventid = "eventId" case sequence case sourcesequence = "sourceSequence" case occurredat = "occurredAt" case kind case action case status case errorcode = "errorCode" case actor case agentid = "agentId" case sessionkey = "sessionKey" case sessionid = "sessionId" case runid = "runId" case toolcallid = "toolCallId" case toolname = "toolName" case redaction } } public struct AuditListParams: Codable, Sendable { public let agentid: String? public let sessionkey: String? public let runid: String? public let kind: AnyCodable? public let status: AnyCodable? public let after: Int? public let before: Int? public let limit: Int? public let cursor: String? public init( agentid: String? = nil, sessionkey: String? = nil, runid: String? = nil, kind: AnyCodable? = nil, status: AnyCodable? = nil, after: Int? = nil, before: Int? = nil, limit: Int? = nil, cursor: String? = nil) { self.agentid = agentid self.sessionkey = sessionkey self.runid = runid self.kind = kind self.status = status self.after = after self.before = before self.limit = limit self.cursor = cursor } private enum CodingKeys: String, CodingKey { case agentid = "agentId" case sessionkey = "sessionKey" case runid = "runId" case kind case status case after case before case limit case cursor } } public struct AuditListResult: Codable, Sendable { public let events: [AuditEvent] public let nextcursor: String? public init( events: [AuditEvent], nextcursor: String? = nil) { self.events = events self.nextcursor = nextcursor } private enum CodingKeys: String, CodingKey { case events case nextcursor = "nextCursor" } } public struct TaskSuggestion: Codable, Sendable { public let id: String public let title: String public let prompt: String public let tldr: String public let cwd: String public let sessionkey: String public let agentid: String? public let createdat: Int public init( id: String, title: String, prompt: String, tldr: String, cwd: String, sessionkey: String, agentid: String? = nil, createdat: Int) { self.id = id self.title = title self.prompt = prompt self.tldr = tldr self.cwd = cwd self.sessionkey = sessionkey self.agentid = agentid self.createdat = createdat } private enum CodingKeys: String, CodingKey { case id case title case prompt case tldr case cwd case sessionkey = "sessionKey" case agentid = "agentId" case createdat = "createdAt" } } public struct TaskSuggestionsAcceptParams: Codable, Sendable { public let taskid: String public init( taskid: String) { self.taskid = taskid } private enum CodingKeys: String, CodingKey { case taskid = "taskId" } } public struct TaskSuggestionsAcceptResult: Codable, Sendable { public let taskid: String public let key: String public init( taskid: String, key: String) { self.taskid = taskid self.key = key } private enum CodingKeys: String, CodingKey { case taskid = "taskId" case key } } public struct TaskSuggestionsCreateParams: Codable, Sendable { public let title: String public let prompt: String public let tldr: String public let cwd: String public let sessionkey: String public let agentid: String? public init( title: String, prompt: String, tldr: String, cwd: String, sessionkey: String, agentid: String? = nil) { self.title = title self.prompt = prompt self.tldr = tldr self.cwd = cwd self.sessionkey = sessionkey self.agentid = agentid } private enum CodingKeys: String, CodingKey { case title case prompt case tldr case cwd case sessionkey = "sessionKey" case agentid = "agentId" } } public struct TaskSuggestionsCreateResult: Codable, Sendable { public let taskid: String public let suggestion: TaskSuggestion public init( taskid: String, suggestion: TaskSuggestion) { self.taskid = taskid self.suggestion = suggestion } private enum CodingKeys: String, CodingKey { case taskid = "taskId" case suggestion } } public struct TaskSuggestionsDismissParams: Codable, Sendable { public let taskid: String public let reason: String? public init( taskid: String, reason: String? = nil) { self.taskid = taskid self.reason = reason } private enum CodingKeys: String, CodingKey { case taskid = "taskId" case reason } } public struct TaskSuggestionsDismissResult: Codable, Sendable { public let taskid: String public let dismissed: Bool public init( taskid: String, dismissed: Bool) { self.taskid = taskid self.dismissed = dismissed } private enum CodingKeys: String, CodingKey { case taskid = "taskId" case dismissed } } public struct TaskSuggestionsListParams: Codable, Sendable { public let sessionkey: String? public let agentid: String? public init( sessionkey: String? = nil, agentid: String? = nil) { self.sessionkey = sessionkey self.agentid = agentid } private enum CodingKeys: String, CodingKey { case sessionkey = "sessionKey" case agentid = "agentId" } } public struct TaskSuggestionsListResult: Codable, Sendable { public let suggestions: [TaskSuggestion] public init( suggestions: [TaskSuggestion]) { self.suggestions = suggestions } private enum CodingKeys: String, CodingKey { case suggestions } } public struct TaskSummary: Codable, Sendable { public let id: String public let kind: String? public let runtime: String? public let status: AnyCodable public let title: String? public let agentid: String? public let sessionkey: String? public let childsessionkey: String? public let ownerkey: String? public let runid: String? public let taskid: String? public let flowid: String? public let parenttaskid: String? public let sourceid: String? public let createdat: AnyCodable? public let updatedat: AnyCodable? public let startedat: AnyCodable? public let endedat: AnyCodable? public let toolusecount: Int? public let lasttoolname: String? public let progresssummary: String? public let terminalsummary: String? public let error: String? public init( id: String, kind: String? = nil, runtime: String? = nil, status: AnyCodable, title: String? = nil, agentid: String? = nil, sessionkey: String? = nil, childsessionkey: String? = nil, ownerkey: String? = nil, runid: String? = nil, taskid: String? = nil, flowid: String? = nil, parenttaskid: String? = nil, sourceid: String? = nil, createdat: AnyCodable? = nil, updatedat: AnyCodable? = nil, startedat: AnyCodable? = nil, endedat: AnyCodable? = nil, toolusecount: Int? = nil, lasttoolname: String? = nil, progresssummary: String? = nil, terminalsummary: String? = nil, error: String? = nil) { self.id = id self.kind = kind self.runtime = runtime self.status = status self.title = title self.agentid = agentid self.sessionkey = sessionkey self.childsessionkey = childsessionkey self.ownerkey = ownerkey self.runid = runid self.taskid = taskid self.flowid = flowid self.parenttaskid = parenttaskid self.sourceid = sourceid self.createdat = createdat self.updatedat = updatedat self.startedat = startedat self.endedat = endedat self.toolusecount = toolusecount self.lasttoolname = lasttoolname self.progresssummary = progresssummary self.terminalsummary = terminalsummary self.error = error } private enum CodingKeys: String, CodingKey { case id case kind case runtime case status case title case agentid = "agentId" case sessionkey = "sessionKey" case childsessionkey = "childSessionKey" case ownerkey = "ownerKey" case runid = "runId" case taskid = "taskId" case flowid = "flowId" case parenttaskid = "parentTaskId" case sourceid = "sourceId" case createdat = "createdAt" case updatedat = "updatedAt" case startedat = "startedAt" case endedat = "endedAt" case toolusecount = "toolUseCount" case lasttoolname = "lastToolName" case progresssummary = "progressSummary" case terminalsummary = "terminalSummary" case error } } public struct TasksListParams: Codable, Sendable { public let status: AnyCodable? public let agentid: String? public let sessionkey: String? public let limit: Int? public let cursor: String? public init( status: AnyCodable? = nil, agentid: String? = nil, sessionkey: String? = nil, limit: Int? = nil, cursor: String? = nil) { self.status = status self.agentid = agentid self.sessionkey = sessionkey self.limit = limit self.cursor = cursor } private enum CodingKeys: String, CodingKey { case status case agentid = "agentId" case sessionkey = "sessionKey" case limit case cursor } } public struct TasksListResult: Codable, Sendable { public let tasks: [TaskSummary] public let nextcursor: String? public init( tasks: [TaskSummary], nextcursor: String? = nil) { self.tasks = tasks self.nextcursor = nextcursor } private enum CodingKeys: String, CodingKey { case tasks case nextcursor = "nextCursor" } } public struct TasksGetParams: Codable, Sendable { public let taskid: String public init( taskid: String) { self.taskid = taskid } private enum CodingKeys: String, CodingKey { case taskid = "taskId" } } public struct TasksGetResult: Codable, Sendable { public let task: TaskSummary public init( task: TaskSummary) { self.task = task } private enum CodingKeys: String, CodingKey { case task } } public struct TasksCancelParams: Codable, Sendable { public let taskid: String public let reason: String? public init( taskid: String, reason: String? = nil) { self.taskid = taskid self.reason = reason } private enum CodingKeys: String, CodingKey { case taskid = "taskId" case reason } } public struct TasksCancelResult: Codable, Sendable { public let found: Bool public let cancelled: Bool public let reason: String? public let task: TaskSummary? public init( found: Bool, cancelled: Bool, reason: String? = nil, task: TaskSummary? = nil) { self.found = found self.cancelled = cancelled self.reason = reason self.task = task } private enum CodingKeys: String, CodingKey { case found case cancelled case reason case task } } public struct ConfigGetParams: Codable, Sendable {} public struct ConfigSetParams: Codable, Sendable { public let raw: String public let basehash: String? public init( raw: String, basehash: String? = nil) { self.raw = raw self.basehash = basehash } private enum CodingKeys: String, CodingKey { case raw case basehash = "baseHash" } } public struct ConfigApplyParams: Codable, Sendable { public let raw: String public let basehash: String? public let sessionkey: String? public let deliverycontext: [String: AnyCodable]? public let note: String? public let restartdelayms: Int? public init( raw: String, basehash: String? = nil, sessionkey: String? = nil, deliverycontext: [String: AnyCodable]? = nil, note: String? = nil, restartdelayms: Int? = nil) { self.raw = raw self.basehash = basehash self.sessionkey = sessionkey self.deliverycontext = deliverycontext self.note = note self.restartdelayms = restartdelayms } private enum CodingKeys: String, CodingKey { case raw case basehash = "baseHash" case sessionkey = "sessionKey" case deliverycontext = "deliveryContext" case note case restartdelayms = "restartDelayMs" } } public struct ConfigPatchParams: Codable, Sendable { public let raw: String public let basehash: String? public let sessionkey: String? public let deliverycontext: [String: AnyCodable]? public let note: String? public let restartdelayms: Int? public let replacepaths: [String]? public init( raw: String, basehash: String? = nil, sessionkey: String? = nil, deliverycontext: [String: AnyCodable]? = nil, note: String? = nil, restartdelayms: Int? = nil, replacepaths: [String]? = nil) { self.raw = raw self.basehash = basehash self.sessionkey = sessionkey self.deliverycontext = deliverycontext self.note = note self.restartdelayms = restartdelayms self.replacepaths = replacepaths } private enum CodingKeys: String, CodingKey { case raw case basehash = "baseHash" case sessionkey = "sessionKey" case deliverycontext = "deliveryContext" case note case restartdelayms = "restartDelayMs" case replacepaths = "replacePaths" } } public struct ConfigSchemaParams: Codable, Sendable {} public struct ConfigSchemaLookupParams: Codable, Sendable { public let path: String public init( path: String) { self.path = path } private enum CodingKeys: String, CodingKey { case path } } public struct ConfigSchemaResponse: Codable, Sendable { public let schema: AnyCodable public let uihints: [String: AnyCodable] public let version: String public let generatedat: String public init( schema: AnyCodable, uihints: [String: AnyCodable], version: String, generatedat: String) { self.schema = schema self.uihints = uihints self.version = version self.generatedat = generatedat } private enum CodingKeys: String, CodingKey { case schema case uihints = "uiHints" case version case generatedat = "generatedAt" } } public struct ConfigSchemaLookupResult: Codable, Sendable { public let path: String public let schema: AnyCodable public let reloadkind: AnyCodable? public let hint: [String: AnyCodable]? public let hintpath: String? public let children: [[String: AnyCodable]] public init( path: String, schema: AnyCodable, reloadkind: AnyCodable? = nil, hint: [String: AnyCodable]? = nil, hintpath: String? = nil, children: [[String: AnyCodable]]) { self.path = path self.schema = schema self.reloadkind = reloadkind self.hint = hint self.hintpath = hintpath self.children = children } private enum CodingKeys: String, CodingKey { case path case schema case reloadkind = "reloadKind" case hint case hintpath = "hintPath" case children } } public struct CrestodianChatParams: Codable, Sendable { public let sessionid: String public let message: String? public let welcomevariant: AnyCodable? public let reset: Bool? public init( sessionid: String, message: String? = nil, welcomevariant: AnyCodable? = nil, reset: Bool? = nil) { self.sessionid = sessionid self.message = message self.welcomevariant = welcomevariant self.reset = reset } private enum CodingKeys: String, CodingKey { case sessionid = "sessionId" case message case welcomevariant = "welcomeVariant" case reset } } public struct CrestodianChatResult: Codable, Sendable { public let sessionid: String public let reply: String public let sensitive: Bool? public let action: AnyCodable public init( sessionid: String, reply: String, sensitive: Bool? = nil, action: AnyCodable) { self.sessionid = sessionid self.reply = reply self.sensitive = sensitive self.action = action } private enum CodingKeys: String, CodingKey { case sessionid = "sessionId" case reply case sensitive case action } } public struct CrestodianSetupDetectParams: Codable, Sendable {} public struct CrestodianSetupDetectResult: Codable, Sendable { public let candidates: [[String: AnyCodable]] public let manualproviders: [[String: AnyCodable]] public let authoptions: [[String: AnyCodable]]? public let workspace: String public let codexappserverdetected: Bool? public let configuredmodel: String? public let setupcomplete: Bool public init( candidates: [[String: AnyCodable]], manualproviders: [[String: AnyCodable]], authoptions: [[String: AnyCodable]]? = nil, workspace: String, codexappserverdetected: Bool? = nil, configuredmodel: String? = nil, setupcomplete: Bool) { self.candidates = candidates self.manualproviders = manualproviders self.authoptions = authoptions self.workspace = workspace self.codexappserverdetected = codexappserverdetected self.configuredmodel = configuredmodel self.setupcomplete = setupcomplete } private enum CodingKeys: String, CodingKey { case candidates case manualproviders = "manualProviders" case authoptions = "authOptions" case workspace case codexappserverdetected = "codexAppServerDetected" case configuredmodel = "configuredModel" case setupcomplete = "setupComplete" } } public struct CrestodianSetupVerifyParams: Codable, Sendable {} public struct CrestodianSetupActivateParams: Codable, Sendable { public let kind: AnyCodable public let modelref: String? public let authchoice: String? public let apikey: String? public let workspace: String? public init( kind: AnyCodable, modelref: String? = nil, authchoice: String? = nil, apikey: String? = nil, workspace: String? = nil) { self.kind = kind self.modelref = modelref self.authchoice = authchoice self.apikey = apikey self.workspace = workspace } private enum CodingKeys: String, CodingKey { case kind case modelref = "modelRef" case authchoice = "authChoice" case apikey = "apiKey" case workspace } } public struct CrestodianSetupActivateResult: Codable, Sendable { public let ok: Bool public let modelref: String? public let latencyms: Double? public let lines: [String]? public let status: AnyCodable? public let error: String? public init( ok: Bool, modelref: String? = nil, latencyms: Double? = nil, lines: [String]? = nil, status: AnyCodable? = nil, error: String? = nil) { self.ok = ok self.modelref = modelref self.latencyms = latencyms self.lines = lines self.status = status self.error = error } private enum CodingKeys: String, CodingKey { case ok case modelref = "modelRef" case latencyms = "latencyMs" case lines case status case error } } public struct CrestodianSetupAuthStartParams: Codable, Sendable { public let sessionid: String public let authchoice: String public let workspace: String? public init( sessionid: String, authchoice: String, workspace: String? = nil) { self.sessionid = sessionid self.authchoice = authchoice self.workspace = workspace } private enum CodingKeys: String, CodingKey { case sessionid = "sessionId" case authchoice = "authChoice" case workspace } } public struct CrestodianSetupAuthStartResult: Codable, Sendable { public let sessionid: String public let done: Bool public let step: WizardStep? public let status: AnyCodable? public let error: String? public init( sessionid: String, done: Bool, step: WizardStep? = nil, status: AnyCodable? = nil, error: String? = nil) { self.sessionid = sessionid self.done = done self.step = step self.status = status self.error = error } private enum CodingKeys: String, CodingKey { case sessionid = "sessionId" case done case step case status case error } } public struct WizardStartParams: Codable, Sendable { public let mode: AnyCodable? public let workspace: String? public init( mode: AnyCodable? = nil, workspace: String? = nil) { self.mode = mode self.workspace = workspace } private enum CodingKeys: String, CodingKey { case mode case workspace } } public struct WizardNextParams: Codable, Sendable { public let sessionid: String public let answer: [String: AnyCodable]? public init( sessionid: String, answer: [String: AnyCodable]? = nil) { self.sessionid = sessionid self.answer = answer } private enum CodingKeys: String, CodingKey { case sessionid = "sessionId" case answer } } public struct WizardCancelParams: Codable, Sendable { public let sessionid: String public init( sessionid: String) { self.sessionid = sessionid } private enum CodingKeys: String, CodingKey { case sessionid = "sessionId" } } public struct WizardStatusParams: Codable, Sendable { public let sessionid: String public init( sessionid: String) { self.sessionid = sessionid } private enum CodingKeys: String, CodingKey { case sessionid = "sessionId" } } public struct WizardStep: Codable, Sendable { public let id: String public let type: AnyCodable public let title: String? public let message: String? public let format: AnyCodable? public let options: [[String: AnyCodable]]? public let initialvalue: AnyCodable? public let placeholder: String? public let sensitive: Bool? public let executor: AnyCodable? public let externalurl: String? public let devicecode: [String: AnyCodable]? public init( id: String, type: AnyCodable, title: String? = nil, message: String? = nil, format: AnyCodable? = nil, options: [[String: AnyCodable]]? = nil, initialvalue: AnyCodable? = nil, placeholder: String? = nil, sensitive: Bool? = nil, executor: AnyCodable? = nil, externalurl: String? = nil, devicecode: [String: AnyCodable]? = nil) { self.id = id self.type = type self.title = title self.message = message self.format = format self.options = options self.initialvalue = initialvalue self.placeholder = placeholder self.sensitive = sensitive self.executor = executor self.externalurl = externalurl self.devicecode = devicecode } private enum CodingKeys: String, CodingKey { case id case type case title case message case format case options case initialvalue = "initialValue" case placeholder case sensitive case executor case externalurl = "externalUrl" case devicecode = "deviceCode" } } public struct WizardNextResult: Codable, Sendable { public let done: Bool public let step: WizardStep? public let status: AnyCodable? public let error: String? public init( done: Bool, step: WizardStep? = nil, status: AnyCodable? = nil, error: String? = nil) { self.done = done self.step = step self.status = status self.error = error } private enum CodingKeys: String, CodingKey { case done case step case status case error } } public struct WizardStartResult: Codable, Sendable { public let sessionid: String public let done: Bool public let step: WizardStep? public let status: AnyCodable? public let error: String? public init( sessionid: String, done: Bool, step: WizardStep? = nil, status: AnyCodable? = nil, error: String? = nil) { self.sessionid = sessionid self.done = done self.step = step self.status = status self.error = error } private enum CodingKeys: String, CodingKey { case sessionid = "sessionId" case done case step case status case error } } public struct WizardStatusResult: Codable, Sendable { public let status: AnyCodable public let error: String? public init( status: AnyCodable, error: String? = nil) { self.status = status self.error = error } private enum CodingKeys: String, CodingKey { case status case error } } public struct TalkModeParams: Codable, Sendable { public let enabled: Bool public let phase: String? public init( enabled: Bool, phase: String? = nil) { self.enabled = enabled self.phase = phase } private enum CodingKeys: String, CodingKey { case enabled case phase } } public struct TalkEvent: Codable, Sendable { public let id: String public let type: AnyCodable public let sessionid: String public let turnid: String? public let captureid: String? public let seq: Int public let timestamp: String public let mode: AnyCodable public let transport: AnyCodable public let brain: AnyCodable public let provider: String? public let final: Bool? public let callid: String? public let itemid: String? public let parentid: String? public let payload: AnyCodable public init( id: String, type: AnyCodable, sessionid: String, turnid: String? = nil, captureid: String? = nil, seq: Int, timestamp: String, mode: AnyCodable, transport: AnyCodable, brain: AnyCodable, provider: String? = nil, final: Bool? = nil, callid: String? = nil, itemid: String? = nil, parentid: String? = nil, payload: AnyCodable) { self.id = id self.type = type self.sessionid = sessionid self.turnid = turnid self.captureid = captureid self.seq = seq self.timestamp = timestamp self.mode = mode self.transport = transport self.brain = brain self.provider = provider self.final = final self.callid = callid self.itemid = itemid self.parentid = parentid self.payload = payload } private enum CodingKeys: String, CodingKey { case id case type case sessionid = "sessionId" case turnid = "turnId" case captureid = "captureId" case seq case timestamp case mode case transport case brain case provider case final case callid = "callId" case itemid = "itemId" case parentid = "parentId" case payload } } public struct TalkCatalogParams: Codable, Sendable {} public struct TalkCatalogResult: Codable, Sendable { public let modes: [AnyCodable] public let transports: [AnyCodable] public let brains: [AnyCodable] public let speech: [String: AnyCodable] public let transcription: [String: AnyCodable] public let realtime: [String: AnyCodable] public init( modes: [AnyCodable], transports: [AnyCodable], brains: [AnyCodable], speech: [String: AnyCodable], transcription: [String: AnyCodable], realtime: [String: AnyCodable]) { self.modes = modes self.transports = transports self.brains = brains self.speech = speech self.transcription = transcription self.realtime = realtime } private enum CodingKeys: String, CodingKey { case modes case transports case brains case speech case transcription case realtime } } public struct TalkClientCreateParams: Codable, Sendable { public let sessionkey: String? public let provider: String? public let model: String? public let voice: String? public let vadthreshold: Double? public let silencedurationms: Int? public let prefixpaddingms: Int? public let reasoningeffort: String? public let mode: AnyCodable? public let transport: AnyCodable? public let brain: AnyCodable? public init( sessionkey: String? = nil, provider: String? = nil, model: String? = nil, voice: String? = nil, vadthreshold: Double? = nil, silencedurationms: Int? = nil, prefixpaddingms: Int? = nil, reasoningeffort: String? = nil, mode: AnyCodable? = nil, transport: AnyCodable? = nil, brain: AnyCodable? = nil) { self.sessionkey = sessionkey self.provider = provider self.model = model self.voice = voice self.vadthreshold = vadthreshold self.silencedurationms = silencedurationms self.prefixpaddingms = prefixpaddingms self.reasoningeffort = reasoningeffort self.mode = mode self.transport = transport self.brain = brain } private enum CodingKeys: String, CodingKey { case sessionkey = "sessionKey" case provider case model case voice case vadthreshold = "vadThreshold" case silencedurationms = "silenceDurationMs" case prefixpaddingms = "prefixPaddingMs" case reasoningeffort = "reasoningEffort" case mode case transport case brain } } public struct TalkClientSteerParams: Codable, Sendable { public let sessionkey: String public let text: String public let mode: AnyCodable? public init( sessionkey: String, text: String, mode: AnyCodable? = nil) { self.sessionkey = sessionkey self.text = text self.mode = mode } private enum CodingKeys: String, CodingKey { case sessionkey = "sessionKey" case text case mode } } public struct TalkAgentControlResult: Codable, Sendable { public let ok: Bool public let mode: AnyCodable public let sessionkey: String public let sessionid: String? public let active: Bool public let queued: Bool? public let aborted: Bool? public let target: AnyCodable? public let reason: String? public let message: String public let speak: Bool public let show: Bool public let suppress: Bool public let providerresult: [String: AnyCodable]? public let enqueuedatms: Double? public let deliveredatms: Double? public init( ok: Bool, mode: AnyCodable, sessionkey: String, sessionid: String? = nil, active: Bool, queued: Bool? = nil, aborted: Bool? = nil, target: AnyCodable? = nil, reason: String? = nil, message: String, speak: Bool, show: Bool, suppress: Bool, providerresult: [String: AnyCodable]? = nil, enqueuedatms: Double? = nil, deliveredatms: Double? = nil) { self.ok = ok self.mode = mode self.sessionkey = sessionkey self.sessionid = sessionid self.active = active self.queued = queued self.aborted = aborted self.target = target self.reason = reason self.message = message self.speak = speak self.show = show self.suppress = suppress self.providerresult = providerresult self.enqueuedatms = enqueuedatms self.deliveredatms = deliveredatms } private enum CodingKeys: String, CodingKey { case ok case mode case sessionkey = "sessionKey" case sessionid = "sessionId" case active case queued case aborted case target case reason case message case speak case show case suppress case providerresult = "providerResult" case enqueuedatms = "enqueuedAtMs" case deliveredatms = "deliveredAtMs" } } public struct TalkClientToolCallParams: Codable, Sendable { public let sessionkey: String public let callid: String public let name: String public let args: AnyCodable? public let relaysessionid: String? public init( sessionkey: String, callid: String, name: String, args: AnyCodable? = nil, relaysessionid: String? = nil) { self.sessionkey = sessionkey self.callid = callid self.name = name self.args = args self.relaysessionid = relaysessionid } private enum CodingKeys: String, CodingKey { case sessionkey = "sessionKey" case callid = "callId" case name case args case relaysessionid = "relaySessionId" } } public struct TalkClientToolCallResult: Codable, Sendable { public let runid: String public let idempotencykey: String public init( runid: String, idempotencykey: String) { self.runid = runid self.idempotencykey = idempotencykey } private enum CodingKeys: String, CodingKey { case runid = "runId" case idempotencykey = "idempotencyKey" } } public struct TalkConfigParams: Codable, Sendable { public let includesecrets: Bool? public init( includesecrets: Bool? = nil) { self.includesecrets = includesecrets } private enum CodingKeys: String, CodingKey { case includesecrets = "includeSecrets" } } public struct TalkConfigResult: Codable, Sendable { public let config: [String: AnyCodable] public init( config: [String: AnyCodable]) { self.config = config } private enum CodingKeys: String, CodingKey { case config } } public struct TalkSessionAppendAudioParams: Codable, Sendable { public let sessionid: String public let audiobase64: String public let timestamp: Double? public init( sessionid: String, audiobase64: String, timestamp: Double? = nil) { self.sessionid = sessionid self.audiobase64 = audiobase64 self.timestamp = timestamp } private enum CodingKeys: String, CodingKey { case sessionid = "sessionId" case audiobase64 = "audioBase64" case timestamp } } public struct TalkSessionCancelOutputParams: Codable, Sendable { public let sessionid: String public let turnid: String? public let reason: String? public init( sessionid: String, turnid: String? = nil, reason: String? = nil) { self.sessionid = sessionid self.turnid = turnid self.reason = reason } private enum CodingKeys: String, CodingKey { case sessionid = "sessionId" case turnid = "turnId" case reason } } public struct TalkSessionCancelTurnParams: Codable, Sendable { public let sessionid: String public let turnid: String? public let reason: String? public init( sessionid: String, turnid: String? = nil, reason: String? = nil) { self.sessionid = sessionid self.turnid = turnid self.reason = reason } private enum CodingKeys: String, CodingKey { case sessionid = "sessionId" case turnid = "turnId" case reason } } public struct TalkSessionCreateParams: Codable, Sendable { public let sessionkey: String? public let spawnedby: String? public let provider: String? public let model: String? public let voice: String? public let vadthreshold: Double? public let silencedurationms: Int? public let prefixpaddingms: Int? public let reasoningeffort: String? public let mode: AnyCodable? public let transport: AnyCodable? public let brain: AnyCodable? public let ttlms: Int? public init( sessionkey: String? = nil, spawnedby: String? = nil, provider: String? = nil, model: String? = nil, voice: String? = nil, vadthreshold: Double? = nil, silencedurationms: Int? = nil, prefixpaddingms: Int? = nil, reasoningeffort: String? = nil, mode: AnyCodable? = nil, transport: AnyCodable? = nil, brain: AnyCodable? = nil, ttlms: Int? = nil) { self.sessionkey = sessionkey self.spawnedby = spawnedby self.provider = provider self.model = model self.voice = voice self.vadthreshold = vadthreshold self.silencedurationms = silencedurationms self.prefixpaddingms = prefixpaddingms self.reasoningeffort = reasoningeffort self.mode = mode self.transport = transport self.brain = brain self.ttlms = ttlms } private enum CodingKeys: String, CodingKey { case sessionkey = "sessionKey" case spawnedby = "spawnedBy" case provider case model case voice case vadthreshold = "vadThreshold" case silencedurationms = "silenceDurationMs" case prefixpaddingms = "prefixPaddingMs" case reasoningeffort = "reasoningEffort" case mode case transport case brain case ttlms = "ttlMs" } } public struct TalkSessionCreateResult: Codable, Sendable { public let sessionid: String public let provider: String? public let mode: AnyCodable public let transport: AnyCodable public let brain: AnyCodable public let relaysessionid: String? public let transcriptionsessionid: String? public let handoffid: String? public let roomid: String? public let roomurl: String? public let token: String? public let audio: AnyCodable? public let model: String? public let voice: String? public let expiresat: Double? public init( sessionid: String, provider: String? = nil, mode: AnyCodable, transport: AnyCodable, brain: AnyCodable, relaysessionid: String? = nil, transcriptionsessionid: String? = nil, handoffid: String? = nil, roomid: String? = nil, roomurl: String? = nil, token: String? = nil, audio: AnyCodable? = nil, model: String? = nil, voice: String? = nil, expiresat: Double? = nil) { self.sessionid = sessionid self.provider = provider self.mode = mode self.transport = transport self.brain = brain self.relaysessionid = relaysessionid self.transcriptionsessionid = transcriptionsessionid self.handoffid = handoffid self.roomid = roomid self.roomurl = roomurl self.token = token self.audio = audio self.model = model self.voice = voice self.expiresat = expiresat } private enum CodingKeys: String, CodingKey { case sessionid = "sessionId" case provider case mode case transport case brain case relaysessionid = "relaySessionId" case transcriptionsessionid = "transcriptionSessionId" case handoffid = "handoffId" case roomid = "roomId" case roomurl = "roomUrl" case token case audio case model case voice case expiresat = "expiresAt" } } public struct TalkSessionJoinParams: Codable, Sendable { public let sessionid: String public let token: String public init( sessionid: String, token: String) { self.sessionid = sessionid self.token = token } private enum CodingKeys: String, CodingKey { case sessionid = "sessionId" case token } } public struct TalkSessionJoinResult: Codable, Sendable { public let id: String public let roomid: String public let roomurl: String public let sessionkey: String public let sessionid: String? public let channel: String? public let target: String? public let provider: String? public let model: String? public let voice: String? public let mode: AnyCodable public let transport: AnyCodable public let brain: AnyCodable public let createdat: Double public let expiresat: Double public let room: [String: AnyCodable] public init( id: String, roomid: String, roomurl: String, sessionkey: String, sessionid: String? = nil, channel: String? = nil, target: String? = nil, provider: String? = nil, model: String? = nil, voice: String? = nil, mode: AnyCodable, transport: AnyCodable, brain: AnyCodable, createdat: Double, expiresat: Double, room: [String: AnyCodable]) { self.id = id self.roomid = roomid self.roomurl = roomurl self.sessionkey = sessionkey self.sessionid = sessionid self.channel = channel self.target = target self.provider = provider self.model = model self.voice = voice self.mode = mode self.transport = transport self.brain = brain self.createdat = createdat self.expiresat = expiresat self.room = room } private enum CodingKeys: String, CodingKey { case id case roomid = "roomId" case roomurl = "roomUrl" case sessionkey = "sessionKey" case sessionid = "sessionId" case channel case target case provider case model case voice case mode case transport case brain case createdat = "createdAt" case expiresat = "expiresAt" case room } } public struct TalkSessionTurnParams: Codable, Sendable { public let sessionid: String public let turnid: String? public init( sessionid: String, turnid: String? = nil) { self.sessionid = sessionid self.turnid = turnid } private enum CodingKeys: String, CodingKey { case sessionid = "sessionId" case turnid = "turnId" } } public struct TalkSessionTurnResult: Codable, Sendable { public let ok: Bool public let turnid: String? public let events: [TalkEvent]? public init( ok: Bool, turnid: String? = nil, events: [TalkEvent]? = nil) { self.ok = ok self.turnid = turnid self.events = events } private enum CodingKeys: String, CodingKey { case ok case turnid = "turnId" case events } } public struct TalkSessionSteerParams: Codable, Sendable { public let sessionid: String public let sessionkey: String? public let text: String public let mode: AnyCodable? public init( sessionid: String, sessionkey: String? = nil, text: String, mode: AnyCodable? = nil) { self.sessionid = sessionid self.sessionkey = sessionkey self.text = text self.mode = mode } private enum CodingKeys: String, CodingKey { case sessionid = "sessionId" case sessionkey = "sessionKey" case text case mode } } public struct TalkSessionSubmitToolResultParams: Codable, Sendable { public let sessionid: String public let callid: String public let result: AnyCodable public let options: [String: AnyCodable]? public init( sessionid: String, callid: String, result: AnyCodable, options: [String: AnyCodable]? = nil) { self.sessionid = sessionid self.callid = callid self.result = result self.options = options } private enum CodingKeys: String, CodingKey { case sessionid = "sessionId" case callid = "callId" case result case options } } public struct TalkSessionCloseParams: Codable, Sendable { public let sessionid: String public init( sessionid: String) { self.sessionid = sessionid } private enum CodingKeys: String, CodingKey { case sessionid = "sessionId" } } public struct TalkSessionOkResult: Codable, Sendable { public let ok: Bool public init( ok: Bool) { self.ok = ok } private enum CodingKeys: String, CodingKey { case ok } } public struct TalkSpeakParams: Codable, Sendable { public let text: String public let voiceid: String? public let modelid: String? public let outputformat: String? public let speed: Double? public let ratewpm: Int? public let stability: Double? public let similarity: Double? public let style: Double? public let speakerboost: Bool? public let seed: Int? public let normalize: String? public let language: String? public let latencytier: Int? public init( text: String, voiceid: String? = nil, modelid: String? = nil, outputformat: String? = nil, speed: Double? = nil, ratewpm: Int? = nil, stability: Double? = nil, similarity: Double? = nil, style: Double? = nil, speakerboost: Bool? = nil, seed: Int? = nil, normalize: String? = nil, language: String? = nil, latencytier: Int? = nil) { self.text = text self.voiceid = voiceid self.modelid = modelid self.outputformat = outputformat self.speed = speed self.ratewpm = ratewpm self.stability = stability self.similarity = similarity self.style = style self.speakerboost = speakerboost self.seed = seed self.normalize = normalize self.language = language self.latencytier = latencytier } private enum CodingKeys: String, CodingKey { case text case voiceid = "voiceId" case modelid = "modelId" case outputformat = "outputFormat" case speed case ratewpm = "rateWpm" case stability case similarity case style case speakerboost = "speakerBoost" case seed case normalize case language case latencytier = "latencyTier" } } public struct TalkSpeakResult: Codable, Sendable { public let audiobase64: String public let provider: String public let outputformat: String? public let voicecompatible: Bool? public let mimetype: String? public let fileextension: String? public init( audiobase64: String, provider: String, outputformat: String? = nil, voicecompatible: Bool? = nil, mimetype: String? = nil, fileextension: String? = nil) { self.audiobase64 = audiobase64 self.provider = provider self.outputformat = outputformat self.voicecompatible = voicecompatible self.mimetype = mimetype self.fileextension = fileextension } private enum CodingKeys: String, CodingKey { case audiobase64 = "audioBase64" case provider case outputformat = "outputFormat" case voicecompatible = "voiceCompatible" case mimetype = "mimeType" case fileextension = "fileExtension" } } public struct TtsSpeakParams: Codable, Sendable { public let text: String public init( text: String) { self.text = text } private enum CodingKeys: String, CodingKey { case text } } public struct TtsSpeakResult: Codable, Sendable { public let audiobase64: String public let provider: String public let outputformat: String? public let mimetype: String? public let fileextension: String? public init( audiobase64: String, provider: String, outputformat: String? = nil, mimetype: String? = nil, fileextension: String? = nil) { self.audiobase64 = audiobase64 self.provider = provider self.outputformat = outputformat self.mimetype = mimetype self.fileextension = fileextension } private enum CodingKeys: String, CodingKey { case audiobase64 = "audioBase64" case provider case outputformat = "outputFormat" case mimetype = "mimeType" case fileextension = "fileExtension" } } public struct ChannelsStatusParams: Codable, Sendable { public let probe: Bool? public let timeoutms: Int? public let channel: String? public init( probe: Bool? = nil, timeoutms: Int? = nil, channel: String? = nil) { self.probe = probe self.timeoutms = timeoutms self.channel = channel } private enum CodingKeys: String, CodingKey { case probe case timeoutms = "timeoutMs" case channel } } public struct ChannelsStatusResult: Codable, Sendable { public let ts: Int public let channelorder: [String] public let channellabels: [String: AnyCodable] public let channeldetaillabels: [String: AnyCodable]? public let channelsystemimages: [String: AnyCodable]? public let channelmeta: [[String: AnyCodable]]? public let channels: [String: AnyCodable] public let channelaccounts: [String: AnyCodable] public let channeldefaultaccountid: [String: AnyCodable] public let eventloop: [String: AnyCodable]? public let partial: Bool? public let warnings: [String]? public init( ts: Int, channelorder: [String], channellabels: [String: AnyCodable], channeldetaillabels: [String: AnyCodable]? = nil, channelsystemimages: [String: AnyCodable]? = nil, channelmeta: [[String: AnyCodable]]? = nil, channels: [String: AnyCodable], channelaccounts: [String: AnyCodable], channeldefaultaccountid: [String: AnyCodable], eventloop: [String: AnyCodable]? = nil, partial: Bool? = nil, warnings: [String]? = nil) { self.ts = ts self.channelorder = channelorder self.channellabels = channellabels self.channeldetaillabels = channeldetaillabels self.channelsystemimages = channelsystemimages self.channelmeta = channelmeta self.channels = channels self.channelaccounts = channelaccounts self.channeldefaultaccountid = channeldefaultaccountid self.eventloop = eventloop self.partial = partial self.warnings = warnings } private enum CodingKeys: String, CodingKey { case ts case channelorder = "channelOrder" case channellabels = "channelLabels" case channeldetaillabels = "channelDetailLabels" case channelsystemimages = "channelSystemImages" case channelmeta = "channelMeta" case channels case channelaccounts = "channelAccounts" case channeldefaultaccountid = "channelDefaultAccountId" case eventloop = "eventLoop" case partial case warnings } } public struct ChannelsStartParams: Codable, Sendable { public let channel: String public let accountid: String? public init( channel: String, accountid: String? = nil) { self.channel = channel self.accountid = accountid } private enum CodingKeys: String, CodingKey { case channel case accountid = "accountId" } } public struct ChannelsStopParams: Codable, Sendable { public let channel: String public let accountid: String? public init( channel: String, accountid: String? = nil) { self.channel = channel self.accountid = accountid } private enum CodingKeys: String, CodingKey { case channel case accountid = "accountId" } } public struct ChannelsLogoutParams: Codable, Sendable { public let channel: String public let accountid: String? public init( channel: String, accountid: String? = nil) { self.channel = channel self.accountid = accountid } private enum CodingKeys: String, CodingKey { case channel case accountid = "accountId" } } public struct WebLoginStartParams: Codable, Sendable { public let force: Bool? public let timeoutms: Int? public let verbose: Bool? public let accountid: String? public init( force: Bool? = nil, timeoutms: Int? = nil, verbose: Bool? = nil, accountid: String? = nil) { self.force = force self.timeoutms = timeoutms self.verbose = verbose self.accountid = accountid } private enum CodingKeys: String, CodingKey { case force case timeoutms = "timeoutMs" case verbose case accountid = "accountId" } } public struct WebLoginWaitParams: Codable, Sendable { public let timeoutms: Int? public let accountid: String? public let currentqrdataurl: String? public init( timeoutms: Int? = nil, accountid: String? = nil, currentqrdataurl: String? = nil) { self.timeoutms = timeoutms self.accountid = accountid self.currentqrdataurl = currentqrdataurl } private enum CodingKeys: String, CodingKey { case timeoutms = "timeoutMs" case accountid = "accountId" case currentqrdataurl = "currentQrDataUrl" } } public struct AgentSummary: Codable, Sendable { public let id: String public let name: String? public let identity: [String: AnyCodable]? public let workspace: String? public let workspacegit: Bool? public let model: [String: AnyCodable]? public let agentruntime: [String: AnyCodable]? public let thinkinglevels: [[String: AnyCodable]]? public let thinkingoptions: [String]? public let thinkingdefault: String? public init( id: String, name: String? = nil, identity: [String: AnyCodable]? = nil, workspace: String? = nil, workspacegit: Bool? = nil, model: [String: AnyCodable]? = nil, agentruntime: [String: AnyCodable]? = nil, thinkinglevels: [[String: AnyCodable]]? = nil, thinkingoptions: [String]? = nil, thinkingdefault: String? = nil) { self.id = id self.name = name self.identity = identity self.workspace = workspace self.workspacegit = workspacegit self.model = model self.agentruntime = agentruntime self.thinkinglevels = thinkinglevels self.thinkingoptions = thinkingoptions self.thinkingdefault = thinkingdefault } private enum CodingKeys: String, CodingKey { case id case name case identity case workspace case workspacegit = "workspaceGit" case model case agentruntime = "agentRuntime" case thinkinglevels = "thinkingLevels" case thinkingoptions = "thinkingOptions" case thinkingdefault = "thinkingDefault" } } public struct AgentsCreateParams: Codable, Sendable { public let name: String public let workspace: String public let model: String? public let emoji: String? public let avatar: String? public init( name: String, workspace: String, model: String? = nil, emoji: String? = nil, avatar: String? = nil) { self.name = name self.workspace = workspace self.model = model self.emoji = emoji self.avatar = avatar } private enum CodingKeys: String, CodingKey { case name case workspace case model case emoji case avatar } } public struct AgentsCreateResult: Codable, Sendable { public let ok: Bool public let agentid: String public let name: String public let workspace: String public let model: String? public init( ok: Bool, agentid: String, name: String, workspace: String, model: String? = nil) { self.ok = ok self.agentid = agentid self.name = name self.workspace = workspace self.model = model } private enum CodingKeys: String, CodingKey { case ok case agentid = "agentId" case name case workspace case model } } public struct AgentsUpdateParams: Codable, Sendable { public let agentid: String public let name: String? public let workspace: String? public let model: String? public let emoji: String? public let avatar: String? public init( agentid: String, name: String? = nil, workspace: String? = nil, model: String? = nil, emoji: String? = nil, avatar: String? = nil) { self.agentid = agentid self.name = name self.workspace = workspace self.model = model self.emoji = emoji self.avatar = avatar } private enum CodingKeys: String, CodingKey { case agentid = "agentId" case name case workspace case model case emoji case avatar } } public struct AgentsUpdateResult: Codable, Sendable { public let ok: Bool public let agentid: String public init( ok: Bool, agentid: String) { self.ok = ok self.agentid = agentid } private enum CodingKeys: String, CodingKey { case ok case agentid = "agentId" } } public struct AgentsDeleteParams: Codable, Sendable { public let agentid: String public let deletefiles: Bool? public init( agentid: String, deletefiles: Bool? = nil) { self.agentid = agentid self.deletefiles = deletefiles } private enum CodingKeys: String, CodingKey { case agentid = "agentId" case deletefiles = "deleteFiles" } } public struct AgentsDeleteResult: Codable, Sendable { public let ok: Bool public let agentid: String public let removedbindings: Int public init( ok: Bool, agentid: String, removedbindings: Int) { self.ok = ok self.agentid = agentid self.removedbindings = removedbindings } private enum CodingKeys: String, CodingKey { case ok case agentid = "agentId" case removedbindings = "removedBindings" } } public struct AgentsFileEntry: Codable, Sendable { public let name: String public let path: String public let missing: Bool public let size: Int? public let updatedatms: Int? public let content: String? public init( name: String, path: String, missing: Bool, size: Int? = nil, updatedatms: Int? = nil, content: String? = nil) { self.name = name self.path = path self.missing = missing self.size = size self.updatedatms = updatedatms self.content = content } private enum CodingKeys: String, CodingKey { case name case path case missing case size case updatedatms = "updatedAtMs" case content } } public struct AgentsFilesListParams: Codable, Sendable { public let agentid: String public init( agentid: String) { self.agentid = agentid } private enum CodingKeys: String, CodingKey { case agentid = "agentId" } } public struct AgentsFilesListResult: Codable, Sendable { public let agentid: String public let workspace: String public let files: [AgentsFileEntry] public init( agentid: String, workspace: String, files: [AgentsFileEntry]) { self.agentid = agentid self.workspace = workspace self.files = files } private enum CodingKeys: String, CodingKey { case agentid = "agentId" case workspace case files } } public struct AgentsFilesGetParams: Codable, Sendable { public let agentid: String public let name: String public init( agentid: String, name: String) { self.agentid = agentid self.name = name } private enum CodingKeys: String, CodingKey { case agentid = "agentId" case name } } public struct AgentsFilesGetResult: Codable, Sendable { public let agentid: String public let workspace: String public let file: AgentsFileEntry public init( agentid: String, workspace: String, file: AgentsFileEntry) { self.agentid = agentid self.workspace = workspace self.file = file } private enum CodingKeys: String, CodingKey { case agentid = "agentId" case workspace case file } } public struct AgentsFilesSetParams: Codable, Sendable { public let agentid: String public let name: String public let content: String public init( agentid: String, name: String, content: String) { self.agentid = agentid self.name = name self.content = content } private enum CodingKeys: String, CodingKey { case agentid = "agentId" case name case content } } public struct AgentsFilesSetResult: Codable, Sendable { public let ok: Bool public let agentid: String public let workspace: String public let file: AgentsFileEntry public init( ok: Bool, agentid: String, workspace: String, file: AgentsFileEntry) { self.ok = ok self.agentid = agentid self.workspace = workspace self.file = file } private enum CodingKeys: String, CodingKey { case ok case agentid = "agentId" case workspace case file } } public struct AgentsWorkspaceEntry: Codable, Sendable { public let path: String public let name: String public let kind: AnyCodable public let size: Int? public let updatedatms: Int? public init( path: String, name: String, kind: AnyCodable, size: Int? = nil, updatedatms: Int? = nil) { self.path = path self.name = name self.kind = kind self.size = size self.updatedatms = updatedatms } private enum CodingKeys: String, CodingKey { case path case name case kind case size case updatedatms = "updatedAtMs" } } public struct AgentsWorkspaceFile: Codable, Sendable { public let path: String public let name: String public let size: Int public let updatedatms: Int public let mimetype: String public let encoding: AnyCodable public let content: String public init( path: String, name: String, size: Int, updatedatms: Int, mimetype: String, encoding: AnyCodable, content: String) { self.path = path self.name = name self.size = size self.updatedatms = updatedatms self.mimetype = mimetype self.encoding = encoding self.content = content } private enum CodingKeys: String, CodingKey { case path case name case size case updatedatms = "updatedAtMs" case mimetype = "mimeType" case encoding case content } } public struct AgentsWorkspaceListParams: Codable, Sendable { public let agentid: String public let path: String? public let offset: Int? public let limit: Int? public init( agentid: String, path: String? = nil, offset: Int? = nil, limit: Int? = nil) { self.agentid = agentid self.path = path self.offset = offset self.limit = limit } private enum CodingKeys: String, CodingKey { case agentid = "agentId" case path case offset case limit } } public struct AgentsWorkspaceListResult: Codable, Sendable { public let agentid: String public let path: String public let parentpath: String? public let entries: [AgentsWorkspaceEntry] public let totalentries: Int public let offset: Int public init( agentid: String, path: String, parentpath: String? = nil, entries: [AgentsWorkspaceEntry], totalentries: Int, offset: Int) { self.agentid = agentid self.path = path self.parentpath = parentpath self.entries = entries self.totalentries = totalentries self.offset = offset } private enum CodingKeys: String, CodingKey { case agentid = "agentId" case path case parentpath = "parentPath" case entries case totalentries = "totalEntries" case offset } } public struct AgentsWorkspaceGetParams: Codable, Sendable { public let agentid: String public let path: String public init( agentid: String, path: String) { self.agentid = agentid self.path = path } private enum CodingKeys: String, CodingKey { case agentid = "agentId" case path } } public struct AgentsWorkspaceGetResult: Codable, Sendable { public let agentid: String public let file: AgentsWorkspaceFile public init( agentid: String, file: AgentsWorkspaceFile) { self.agentid = agentid self.file = file } private enum CodingKeys: String, CodingKey { case agentid = "agentId" case file } } public struct ArtifactSummary: Codable, Sendable { public let id: String public let type: String public let title: String public let mimetype: String? public let sizebytes: Int? public let sessionkey: String? public let runid: String? public let taskid: String? public let messageseq: Int? public let source: String? public let download: [String: AnyCodable] public init( id: String, type: String, title: String, mimetype: String? = nil, sizebytes: Int? = nil, sessionkey: String? = nil, runid: String? = nil, taskid: String? = nil, messageseq: Int? = nil, source: String? = nil, download: [String: AnyCodable]) { self.id = id self.type = type self.title = title self.mimetype = mimetype self.sizebytes = sizebytes self.sessionkey = sessionkey self.runid = runid self.taskid = taskid self.messageseq = messageseq self.source = source self.download = download } private enum CodingKeys: String, CodingKey { case id case type case title case mimetype = "mimeType" case sizebytes = "sizeBytes" case sessionkey = "sessionKey" case runid = "runId" case taskid = "taskId" case messageseq = "messageSeq" case source case download } } public struct ArtifactsListParams: Codable, Sendable { public let sessionkey: String? public let runid: String? public let taskid: String? public let agentid: String? public init( sessionkey: String? = nil, runid: String? = nil, taskid: String? = nil, agentid: String? = nil) { self.sessionkey = sessionkey self.runid = runid self.taskid = taskid self.agentid = agentid } private enum CodingKeys: String, CodingKey { case sessionkey = "sessionKey" case runid = "runId" case taskid = "taskId" case agentid = "agentId" } } public struct ArtifactsListResult: Codable, Sendable { public let artifacts: [ArtifactSummary] public init( artifacts: [ArtifactSummary]) { self.artifacts = artifacts } private enum CodingKeys: String, CodingKey { case artifacts } } public struct ArtifactsGetParams: Codable, Sendable { public let sessionkey: String? public let runid: String? public let taskid: String? public let agentid: String? public let artifactid: String public init( sessionkey: String? = nil, runid: String? = nil, taskid: String? = nil, agentid: String? = nil, artifactid: String) { self.sessionkey = sessionkey self.runid = runid self.taskid = taskid self.agentid = agentid self.artifactid = artifactid } private enum CodingKeys: String, CodingKey { case sessionkey = "sessionKey" case runid = "runId" case taskid = "taskId" case agentid = "agentId" case artifactid = "artifactId" } } public struct ArtifactsGetResult: Codable, Sendable { public let artifact: ArtifactSummary public init( artifact: ArtifactSummary) { self.artifact = artifact } private enum CodingKeys: String, CodingKey { case artifact } } public struct ArtifactsDownloadParams: Codable, Sendable { public let sessionkey: String? public let runid: String? public let taskid: String? public let agentid: String? public let artifactid: String public init( sessionkey: String? = nil, runid: String? = nil, taskid: String? = nil, agentid: String? = nil, artifactid: String) { self.sessionkey = sessionkey self.runid = runid self.taskid = taskid self.agentid = agentid self.artifactid = artifactid } private enum CodingKeys: String, CodingKey { case sessionkey = "sessionKey" case runid = "runId" case taskid = "taskId" case agentid = "agentId" case artifactid = "artifactId" } } public struct ArtifactsDownloadResult: Codable, Sendable { public let artifact: ArtifactSummary public let encoding: String? public let data: String? public let url: String? public init( artifact: ArtifactSummary, encoding: String? = nil, data: String? = nil, url: String? = nil) { self.artifact = artifact self.encoding = encoding self.data = data self.url = url } private enum CodingKeys: String, CodingKey { case artifact case encoding case data case url } } public struct AgentsListParams: Codable, Sendable {} public struct AgentsListResult: Codable, Sendable { public let defaultid: String public let mainkey: String public let scope: AnyCodable public let agents: [AgentSummary] public init( defaultid: String, mainkey: String, scope: AnyCodable, agents: [AgentSummary]) { self.defaultid = defaultid self.mainkey = mainkey self.scope = scope self.agents = agents } private enum CodingKeys: String, CodingKey { case defaultid = "defaultId" case mainkey = "mainKey" case scope case agents } } public struct ModelChoice: Codable, Sendable { public let id: String public let name: String public let provider: String public let alias: String? public let available: Bool? public let contextwindow: Int? public let reasoning: Bool? public let input: [AnyCodable]? public init( id: String, name: String, provider: String, alias: String? = nil, available: Bool? = nil, contextwindow: Int? = nil, reasoning: Bool? = nil, input: [AnyCodable]? = nil) { self.id = id self.name = name self.provider = provider self.alias = alias self.available = available self.contextwindow = contextwindow self.reasoning = reasoning self.input = input } private enum CodingKeys: String, CodingKey { case id case name case provider case alias case available case contextwindow = "contextWindow" case reasoning case input } } public struct ModelsListParams: Codable, Sendable { public let view: AnyCodable? public init( view: AnyCodable? = nil) { self.view = view } private enum CodingKeys: String, CodingKey { case view } } public struct ModelsListResult: Codable, Sendable { public let models: [ModelChoice] public init( models: [ModelChoice]) { self.models = models } private enum CodingKeys: String, CodingKey { case models } } public struct CommandEntry: Codable, Sendable { public let name: String public let nativename: String? public let textaliases: [String]? public let description: String public let category: AnyCodable? public let source: AnyCodable public let scope: AnyCodable public let acceptsargs: Bool public let args: [[String: AnyCodable]]? public init( name: String, nativename: String? = nil, textaliases: [String]? = nil, description: String, category: AnyCodable? = nil, source: AnyCodable, scope: AnyCodable, acceptsargs: Bool, args: [[String: AnyCodable]]? = nil) { self.name = name self.nativename = nativename self.textaliases = textaliases self.description = description self.category = category self.source = source self.scope = scope self.acceptsargs = acceptsargs self.args = args } private enum CodingKeys: String, CodingKey { case name case nativename = "nativeName" case textaliases = "textAliases" case description case category case source case scope case acceptsargs = "acceptsArgs" case args } } public struct CommandsListParams: Codable, Sendable { public let agentid: String? public let provider: String? public let scope: AnyCodable? public let includeargs: Bool? public init( agentid: String? = nil, provider: String? = nil, scope: AnyCodable? = nil, includeargs: Bool? = nil) { self.agentid = agentid self.provider = provider self.scope = scope self.includeargs = includeargs } private enum CodingKeys: String, CodingKey { case agentid = "agentId" case provider case scope case includeargs = "includeArgs" } } public struct CommandsListResult: Codable, Sendable { public let commands: [CommandEntry] public init( commands: [CommandEntry]) { self.commands = commands } private enum CodingKeys: String, CodingKey { case commands } } public struct SkillsStatusParams: Codable, Sendable { public let agentid: String? public init( agentid: String? = nil) { self.agentid = agentid } private enum CodingKeys: String, CodingKey { case agentid = "agentId" } } public struct ToolsCatalogParams: Codable, Sendable { public let agentid: String? public let includeplugins: Bool? public init( agentid: String? = nil, includeplugins: Bool? = nil) { self.agentid = agentid self.includeplugins = includeplugins } private enum CodingKeys: String, CodingKey { case agentid = "agentId" case includeplugins = "includePlugins" } } public struct ToolCatalogProfile: Codable, Sendable { public let id: AnyCodable public let label: String public init( id: AnyCodable, label: String) { self.id = id self.label = label } private enum CodingKeys: String, CodingKey { case id case label } } public struct ToolCatalogEntry: Codable, Sendable { public let id: String public let label: String public let description: String public let source: AnyCodable public let pluginid: String? public let optional: Bool? public let risk: AnyCodable? public let tags: [String]? public let defaultprofiles: [AnyCodable] public init( id: String, label: String, description: String, source: AnyCodable, pluginid: String? = nil, optional: Bool? = nil, risk: AnyCodable? = nil, tags: [String]? = nil, defaultprofiles: [AnyCodable]) { self.id = id self.label = label self.description = description self.source = source self.pluginid = pluginid self.optional = optional self.risk = risk self.tags = tags self.defaultprofiles = defaultprofiles } private enum CodingKeys: String, CodingKey { case id case label case description case source case pluginid = "pluginId" case optional case risk case tags case defaultprofiles = "defaultProfiles" } } public struct ToolCatalogGroup: Codable, Sendable { public let id: String public let label: String public let source: AnyCodable public let pluginid: String? public let tools: [ToolCatalogEntry] public init( id: String, label: String, source: AnyCodable, pluginid: String? = nil, tools: [ToolCatalogEntry]) { self.id = id self.label = label self.source = source self.pluginid = pluginid self.tools = tools } private enum CodingKeys: String, CodingKey { case id case label case source case pluginid = "pluginId" case tools } } public struct ToolsCatalogResult: Codable, Sendable { public let agentid: String public let profiles: [ToolCatalogProfile] public let groups: [ToolCatalogGroup] public init( agentid: String, profiles: [ToolCatalogProfile], groups: [ToolCatalogGroup]) { self.agentid = agentid self.profiles = profiles self.groups = groups } private enum CodingKeys: String, CodingKey { case agentid = "agentId" case profiles case groups } } public struct ToolsEffectiveParams: Codable, Sendable { public let agentid: String? public let sessionkey: String public init( agentid: String? = nil, sessionkey: String) { self.agentid = agentid self.sessionkey = sessionkey } private enum CodingKeys: String, CodingKey { case agentid = "agentId" case sessionkey = "sessionKey" } } public struct ToolsEffectiveEntry: Codable, Sendable { public let id: String public let label: String public let description: String public let rawdescription: String public let source: AnyCodable public let pluginid: String? public let channelid: String? public let risk: AnyCodable? public let tags: [String]? public init( id: String, label: String, description: String, rawdescription: String, source: AnyCodable, pluginid: String? = nil, channelid: String? = nil, risk: AnyCodable? = nil, tags: [String]? = nil) { self.id = id self.label = label self.description = description self.rawdescription = rawdescription self.source = source self.pluginid = pluginid self.channelid = channelid self.risk = risk self.tags = tags } private enum CodingKeys: String, CodingKey { case id case label case description case rawdescription = "rawDescription" case source case pluginid = "pluginId" case channelid = "channelId" case risk case tags } } public struct ToolsEffectiveGroup: Codable, Sendable { public let id: AnyCodable public let label: String public let source: AnyCodable public let tools: [ToolsEffectiveEntry] public init( id: AnyCodable, label: String, source: AnyCodable, tools: [ToolsEffectiveEntry]) { self.id = id self.label = label self.source = source self.tools = tools } private enum CodingKeys: String, CodingKey { case id case label case source case tools } } public struct ToolsEffectiveNotice: Codable, Sendable { public let id: String public let severity: AnyCodable public let message: String public init( id: String, severity: AnyCodable, message: String) { self.id = id self.severity = severity self.message = message } private enum CodingKeys: String, CodingKey { case id case severity case message } } public struct ToolsEffectiveResult: Codable, Sendable { public let agentid: String public let profile: String public let groups: [ToolsEffectiveGroup] public let notices: [ToolsEffectiveNotice]? public init( agentid: String, profile: String, groups: [ToolsEffectiveGroup], notices: [ToolsEffectiveNotice]? = nil) { self.agentid = agentid self.profile = profile self.groups = groups self.notices = notices } private enum CodingKeys: String, CodingKey { case agentid = "agentId" case profile case groups case notices } } public struct ToolsInvokeParams: Codable, Sendable { public let name: String public let args: [String: AnyCodable]? public let sessionkey: String? public let agentid: String? public let confirm: Bool? public let idempotencykey: String? public let conversationreadorigin: String? public init( name: String, args: [String: AnyCodable]? = nil, sessionkey: String? = nil, agentid: String? = nil, confirm: Bool? = nil, idempotencykey: String? = nil, conversationreadorigin: String? = nil) { self.name = name self.args = args self.sessionkey = sessionkey self.agentid = agentid self.confirm = confirm self.idempotencykey = idempotencykey self.conversationreadorigin = conversationreadorigin } private enum CodingKeys: String, CodingKey { case name case args case sessionkey = "sessionKey" case agentid = "agentId" case confirm case idempotencykey = "idempotencyKey" case conversationreadorigin = "conversationReadOrigin" } } public struct ToolsInvokeError: Codable, Sendable { public let code: String public let message: String public let details: AnyCodable? public init( code: String, message: String, details: AnyCodable? = nil) { self.code = code self.message = message self.details = details } private enum CodingKeys: String, CodingKey { case code case message case details } } public struct ToolsInvokeResult: Codable, Sendable { public let ok: Bool public let toolname: String public let output: AnyCodable? public let requiresapproval: Bool? public let approvalid: String? public let source: AnyCodable? public let error: ToolsInvokeError? public init( ok: Bool, toolname: String, output: AnyCodable? = nil, requiresapproval: Bool? = nil, approvalid: String? = nil, source: AnyCodable? = nil, error: ToolsInvokeError? = nil) { self.ok = ok self.toolname = toolname self.output = output self.requiresapproval = requiresapproval self.approvalid = approvalid self.source = source self.error = error } private enum CodingKeys: String, CodingKey { case ok case toolname = "toolName" case output case requiresapproval = "requiresApproval" case approvalid = "approvalId" case source case error } } public struct SkillsBinsParams: Codable, Sendable {} public struct SkillsBinsResult: Codable, Sendable { public let bins: [String] public init( bins: [String]) { self.bins = bins } private enum CodingKeys: String, CodingKey { case bins } } public struct SkillsSearchParams: Codable, Sendable { public let query: String? public let limit: Int? public init( query: String? = nil, limit: Int? = nil) { self.query = query self.limit = limit } private enum CodingKeys: String, CodingKey { case query case limit } } public struct SkillsSearchResult: Codable, Sendable { public let results: [[String: AnyCodable]] public init( results: [[String: AnyCodable]]) { self.results = results } private enum CodingKeys: String, CodingKey { case results } } public struct SkillsDetailParams: Codable, Sendable { public let slug: String public init( slug: String) { self.slug = slug } private enum CodingKeys: String, CodingKey { case slug } } public struct SkillsDetailResult: Codable, Sendable { public let skill: AnyCodable public let latestversion: AnyCodable? public let metadata: AnyCodable? public let owner: AnyCodable? public init( skill: AnyCodable, latestversion: AnyCodable? = nil, metadata: AnyCodable? = nil, owner: AnyCodable? = nil) { self.skill = skill self.latestversion = latestversion self.metadata = metadata self.owner = owner } private enum CodingKeys: String, CodingKey { case skill case latestversion = "latestVersion" case metadata case owner } } public struct SkillsCuratorActionParams: Codable, Sendable { public let skill: String public init( skill: String) { self.skill = skill } private enum CodingKeys: String, CodingKey { case skill } } public struct SkillsCuratorActionResult: Codable, Sendable { public let skillfile: String public let skillkey: String public let skillname: String public let state: AnyCodable public let pinned: Bool public let createdatms: Double public let statechangedatms: Double public let lastusedatms: AnyCodable public let usecount: Double public let archivedreason: AnyCodable public init( skillfile: String, skillkey: String, skillname: String, state: AnyCodable, pinned: Bool, createdatms: Double, statechangedatms: Double, lastusedatms: AnyCodable, usecount: Double, archivedreason: AnyCodable) { self.skillfile = skillfile self.skillkey = skillkey self.skillname = skillname self.state = state self.pinned = pinned self.createdatms = createdatms self.statechangedatms = statechangedatms self.lastusedatms = lastusedatms self.usecount = usecount self.archivedreason = archivedreason } private enum CodingKeys: String, CodingKey { case skillfile = "skillFile" case skillkey = "skillKey" case skillname = "skillName" case state case pinned case createdatms = "createdAtMs" case statechangedatms = "stateChangedAtMs" case lastusedatms = "lastUsedAtMs" case usecount = "useCount" case archivedreason = "archivedReason" } } public struct SkillsCuratorStatusParams: Codable, Sendable {} public struct SkillsCuratorStatusResult: Codable, Sendable { public let lastattemptatms: AnyCodable public let lastsuccessatms: AnyCodable public let lasterror: AnyCodable public let counts: [String: AnyCodable] public let skills: [SkillsCuratorActionResult] public let overlaps: [[String: AnyCodable]] public init( lastattemptatms: AnyCodable, lastsuccessatms: AnyCodable, lasterror: AnyCodable, counts: [String: AnyCodable], skills: [SkillsCuratorActionResult], overlaps: [[String: AnyCodable]]) { self.lastattemptatms = lastattemptatms self.lastsuccessatms = lastsuccessatms self.lasterror = lasterror self.counts = counts self.skills = skills self.overlaps = overlaps } private enum CodingKeys: String, CodingKey { case lastattemptatms = "lastAttemptAtMs" case lastsuccessatms = "lastSuccessAtMs" case lasterror = "lastError" case counts case skills case overlaps } } public struct SkillsProposalsListParams: Codable, Sendable { public let agentid: String? public init( agentid: String? = nil) { self.agentid = agentid } private enum CodingKeys: String, CodingKey { case agentid = "agentId" } } public struct SkillsProposalsListResult: Codable, Sendable { public let schema: String public let updatedat: String public let proposals: [[String: AnyCodable]] public init( schema: String, updatedat: String, proposals: [[String: AnyCodable]]) { self.schema = schema self.updatedat = updatedat self.proposals = proposals } private enum CodingKeys: String, CodingKey { case schema case updatedat = "updatedAt" case proposals } } public struct SkillsProposalInspectParams: Codable, Sendable { public let agentid: String? public let proposalid: String public init( agentid: String? = nil, proposalid: String) { self.agentid = agentid self.proposalid = proposalid } private enum CodingKeys: String, CodingKey { case agentid = "agentId" case proposalid = "proposalId" } } public struct SkillsProposalInspectResult: Codable, Sendable { public let record: SkillsProposalRecordResult public let content: String public let supportfiles: [[String: AnyCodable]]? public init( record: SkillsProposalRecordResult, content: String, supportfiles: [[String: AnyCodable]]? = nil) { self.record = record self.content = content self.supportfiles = supportfiles } private enum CodingKeys: String, CodingKey { case record case content case supportfiles = "supportFiles" } } public struct SkillsProposalCreateParams: Codable, Sendable { public let agentid: String? public let name: String public let description: String public let content: String public let supportfiles: [[String: AnyCodable]]? public let goal: String? public let evidence: String? public init( agentid: String? = nil, name: String, description: String, content: String, supportfiles: [[String: AnyCodable]]? = nil, goal: String? = nil, evidence: String? = nil) { self.agentid = agentid self.name = name self.description = description self.content = content self.supportfiles = supportfiles self.goal = goal self.evidence = evidence } private enum CodingKeys: String, CodingKey { case agentid = "agentId" case name case description case content case supportfiles = "supportFiles" case goal case evidence } } public struct SkillsProposalUpdateParams: Codable, Sendable { public let agentid: String? public let skillname: String public let description: String? public let content: String public let supportfiles: [[String: AnyCodable]]? public let goal: String? public let evidence: String? public init( agentid: String? = nil, skillname: String, description: String? = nil, content: String, supportfiles: [[String: AnyCodable]]? = nil, goal: String? = nil, evidence: String? = nil) { self.agentid = agentid self.skillname = skillname self.description = description self.content = content self.supportfiles = supportfiles self.goal = goal self.evidence = evidence } private enum CodingKeys: String, CodingKey { case agentid = "agentId" case skillname = "skillName" case description case content case supportfiles = "supportFiles" case goal case evidence } } public struct SkillsProposalReviseParams: Codable, Sendable { public let agentid: String? public let proposalid: String public let content: String public let supportfiles: [[String: AnyCodable]]? public let description: String? public let goal: String? public let evidence: String? public init( agentid: String? = nil, proposalid: String, content: String, supportfiles: [[String: AnyCodable]]? = nil, description: String? = nil, goal: String? = nil, evidence: String? = nil) { self.agentid = agentid self.proposalid = proposalid self.content = content self.supportfiles = supportfiles self.description = description self.goal = goal self.evidence = evidence } private enum CodingKeys: String, CodingKey { case agentid = "agentId" case proposalid = "proposalId" case content case supportfiles = "supportFiles" case description case goal case evidence } } public struct SkillsProposalRequestRevisionParams: Codable, Sendable { public let agentid: String? public let targetagentid: String? public let proposalid: String public let instructions: String public let sessionkey: String public let sessionid: String? public let idempotencykey: String public init( agentid: String? = nil, targetagentid: String? = nil, proposalid: String, instructions: String, sessionkey: String, sessionid: String? = nil, idempotencykey: String) { self.agentid = agentid self.targetagentid = targetagentid self.proposalid = proposalid self.instructions = instructions self.sessionkey = sessionkey self.sessionid = sessionid self.idempotencykey = idempotencykey } private enum CodingKeys: String, CodingKey { case agentid = "agentId" case targetagentid = "targetAgentId" case proposalid = "proposalId" case instructions case sessionkey = "sessionKey" case sessionid = "sessionId" case idempotencykey = "idempotencyKey" } } public struct SkillsProposalRequestRevisionResult: Codable, Sendable { public let runid: String public let status: AnyCodable public init( runid: String, status: AnyCodable) { self.runid = runid self.status = status } private enum CodingKeys: String, CodingKey { case runid = "runId" case status } } public struct SkillsProposalActionParams: Codable, Sendable { public let agentid: String? public let proposalid: String public let reason: String? public init( agentid: String? = nil, proposalid: String, reason: String? = nil) { self.agentid = agentid self.proposalid = proposalid self.reason = reason } private enum CodingKeys: String, CodingKey { case agentid = "agentId" case proposalid = "proposalId" case reason } } public struct SkillsProposalApplyResult: Codable, Sendable { public let record: SkillsProposalRecordResult public let targetskillfile: String public init( record: SkillsProposalRecordResult, targetskillfile: String) { self.record = record self.targetskillfile = targetskillfile } private enum CodingKeys: String, CodingKey { case record case targetskillfile = "targetSkillFile" } } public struct SkillsProposalRecordResult: Codable, Sendable { public let schema: String public let id: String public let kind: AnyCodable public let status: AnyCodable public let title: String public let description: String public let createdat: String public let updatedat: String public let createdby: AnyCodable public let origin: [String: AnyCodable]? public let proposedversion: String public let draftfile: String public let drafthash: String public let supportfiles: [[String: AnyCodable]]? public let target: [String: AnyCodable] public let scan: [String: AnyCodable] public let goal: String? public let evidence: String? public let appliedat: String? public let rejectedat: String? public let quarantinedat: String? public let staleat: String? public let statusreason: String? public init( schema: String, id: String, kind: AnyCodable, status: AnyCodable, title: String, description: String, createdat: String, updatedat: String, createdby: AnyCodable, origin: [String: AnyCodable]? = nil, proposedversion: String, draftfile: String, drafthash: String, supportfiles: [[String: AnyCodable]]? = nil, target: [String: AnyCodable], scan: [String: AnyCodable], goal: String? = nil, evidence: String? = nil, appliedat: String? = nil, rejectedat: String? = nil, quarantinedat: String? = nil, staleat: String? = nil, statusreason: String? = nil) { self.schema = schema self.id = id self.kind = kind self.status = status self.title = title self.description = description self.createdat = createdat self.updatedat = updatedat self.createdby = createdby self.origin = origin self.proposedversion = proposedversion self.draftfile = draftfile self.drafthash = drafthash self.supportfiles = supportfiles self.target = target self.scan = scan self.goal = goal self.evidence = evidence self.appliedat = appliedat self.rejectedat = rejectedat self.quarantinedat = quarantinedat self.staleat = staleat self.statusreason = statusreason } private enum CodingKeys: String, CodingKey { case schema case id case kind case status case title case description case createdat = "createdAt" case updatedat = "updatedAt" case createdby = "createdBy" case origin case proposedversion = "proposedVersion" case draftfile = "draftFile" case drafthash = "draftHash" case supportfiles = "supportFiles" case target case scan case goal case evidence case appliedat = "appliedAt" case rejectedat = "rejectedAt" case quarantinedat = "quarantinedAt" case staleat = "staleAt" case statusreason = "statusReason" } } public struct SkillsSecurityVerdictsParams: Codable, Sendable { public let agentid: String? public init( agentid: String? = nil) { self.agentid = agentid } private enum CodingKeys: String, CodingKey { case agentid = "agentId" } } public struct SkillsSecurityVerdictsResult: Codable, Sendable { public let schema: String public let items: [[String: AnyCodable]] public init( schema: String, items: [[String: AnyCodable]]) { self.schema = schema self.items = items } private enum CodingKeys: String, CodingKey { case schema case items } } public struct SkillsSkillCardParams: Codable, Sendable { public let agentid: String? public let skillkey: String public init( agentid: String? = nil, skillkey: String) { self.agentid = agentid self.skillkey = skillkey } private enum CodingKeys: String, CodingKey { case agentid = "agentId" case skillkey = "skillKey" } } public struct SkillsSkillCardResult: Codable, Sendable { public let schema: String public let skillkey: String public let path: String public let sizebytes: Int public let content: String public init( schema: String, skillkey: String, path: String, sizebytes: Int, content: String) { self.schema = schema self.skillkey = skillkey self.path = path self.sizebytes = sizebytes self.content = content } private enum CodingKeys: String, CodingKey { case schema case skillkey = "skillKey" case path case sizebytes = "sizeBytes" case content } } public struct SkillsUploadBeginParams: Codable, Sendable { public let kind: String public let slug: String public let sizebytes: Int public let sha256: String? public let force: Bool? public let idempotencykey: String? public init( kind: String, slug: String, sizebytes: Int, sha256: String? = nil, force: Bool? = nil, idempotencykey: String? = nil) { self.kind = kind self.slug = slug self.sizebytes = sizebytes self.sha256 = sha256 self.force = force self.idempotencykey = idempotencykey } private enum CodingKeys: String, CodingKey { case kind case slug case sizebytes = "sizeBytes" case sha256 case force case idempotencykey = "idempotencyKey" } } public struct SkillsUploadChunkParams: Codable, Sendable { public let uploadid: String public let offset: Int public let database64: String public init( uploadid: String, offset: Int, database64: String) { self.uploadid = uploadid self.offset = offset self.database64 = database64 } private enum CodingKeys: String, CodingKey { case uploadid = "uploadId" case offset case database64 = "dataBase64" } } public struct SkillsUploadCommitParams: Codable, Sendable { public let uploadid: String public let sha256: String? public init( uploadid: String, sha256: String? = nil) { self.uploadid = uploadid self.sha256 = sha256 } private enum CodingKeys: String, CodingKey { case uploadid = "uploadId" case sha256 } } public struct CronJob: Codable, Sendable { public let id: String public let declarationkey: String? public let displayname: String? public let owner: [String: AnyCodable]? public let agentid: String? public let sessionkey: String? public let name: String public let description: String? public let enabled: Bool public let deleteafterrun: Bool? public let createdatms: Int public let updatedatms: Int public let configrevision: String? public let schedule: AnyCodable public let trigger: [String: AnyCodable]? public let sessiontarget: AnyCodable public let wakemode: AnyCodable public let payload: AnyCodable public let delivery: AnyCodable? public let failurealert: AnyCodable? public let state: [String: AnyCodable] public let nextrunatms: Int? public let lastrunatms: Int? public let lastrunstatus: AnyCodable? public let lastrunerror: String? public let lastdelivered: Bool? public let lastdeliverystatus: AnyCodable? public let lastdeliveryerror: String? public let lastfailurenotificationdelivered: Bool? public let lastfailurenotificationdeliverystatus: AnyCodable? public let lastfailurenotificationdeliveryerror: String? public init( id: String, declarationkey: String? = nil, displayname: String? = nil, owner: [String: AnyCodable]? = nil, agentid: String? = nil, sessionkey: String? = nil, name: String, description: String? = nil, enabled: Bool, deleteafterrun: Bool? = nil, createdatms: Int, updatedatms: Int, configrevision: String? = nil, schedule: AnyCodable, trigger: [String: AnyCodable]? = nil, sessiontarget: AnyCodable, wakemode: AnyCodable, payload: AnyCodable, delivery: AnyCodable? = nil, failurealert: AnyCodable? = nil, state: [String: AnyCodable], nextrunatms: Int? = nil, lastrunatms: Int? = nil, lastrunstatus: AnyCodable? = nil, lastrunerror: String? = nil, lastdelivered: Bool? = nil, lastdeliverystatus: AnyCodable? = nil, lastdeliveryerror: String? = nil, lastfailurenotificationdelivered: Bool? = nil, lastfailurenotificationdeliverystatus: AnyCodable? = nil, lastfailurenotificationdeliveryerror: String? = nil) { self.id = id self.declarationkey = declarationkey self.displayname = displayname self.owner = owner self.agentid = agentid self.sessionkey = sessionkey self.name = name self.description = description self.enabled = enabled self.deleteafterrun = deleteafterrun self.createdatms = createdatms self.updatedatms = updatedatms self.configrevision = configrevision self.schedule = schedule self.trigger = trigger self.sessiontarget = sessiontarget self.wakemode = wakemode self.payload = payload self.delivery = delivery self.failurealert = failurealert self.state = state self.nextrunatms = nextrunatms self.lastrunatms = lastrunatms self.lastrunstatus = lastrunstatus self.lastrunerror = lastrunerror self.lastdelivered = lastdelivered self.lastdeliverystatus = lastdeliverystatus self.lastdeliveryerror = lastdeliveryerror self.lastfailurenotificationdelivered = lastfailurenotificationdelivered self.lastfailurenotificationdeliverystatus = lastfailurenotificationdeliverystatus self.lastfailurenotificationdeliveryerror = lastfailurenotificationdeliveryerror } private enum CodingKeys: String, CodingKey { case id case declarationkey = "declarationKey" case displayname = "displayName" case owner case agentid = "agentId" case sessionkey = "sessionKey" case name case description case enabled case deleteafterrun = "deleteAfterRun" case createdatms = "createdAtMs" case updatedatms = "updatedAtMs" case configrevision = "configRevision" case schedule case trigger case sessiontarget = "sessionTarget" case wakemode = "wakeMode" case payload case delivery case failurealert = "failureAlert" case state case nextrunatms = "nextRunAtMs" case lastrunatms = "lastRunAtMs" case lastrunstatus = "lastRunStatus" case lastrunerror = "lastRunError" case lastdelivered = "lastDelivered" case lastdeliverystatus = "lastDeliveryStatus" case lastdeliveryerror = "lastDeliveryError" case lastfailurenotificationdelivered = "lastFailureNotificationDelivered" case lastfailurenotificationdeliverystatus = "lastFailureNotificationDeliveryStatus" case lastfailurenotificationdeliveryerror = "lastFailureNotificationDeliveryError" } } public struct CronListParams: Codable, Sendable { public let includedisabled: Bool? public let limit: Int? public let offset: Int? public let query: String? public let enabled: AnyCodable? public let schedulekind: AnyCodable? public let lastrunstatus: AnyCodable? public let sortby: AnyCodable? public let sortdir: AnyCodable? public let agentid: String? public let compact: Bool? public init( includedisabled: Bool? = nil, limit: Int? = nil, offset: Int? = nil, query: String? = nil, enabled: AnyCodable? = nil, schedulekind: AnyCodable? = nil, lastrunstatus: AnyCodable? = nil, sortby: AnyCodable? = nil, sortdir: AnyCodable? = nil, agentid: String? = nil, compact: Bool? = nil) { self.includedisabled = includedisabled self.limit = limit self.offset = offset self.query = query self.enabled = enabled self.schedulekind = schedulekind self.lastrunstatus = lastrunstatus self.sortby = sortby self.sortdir = sortdir self.agentid = agentid self.compact = compact } private enum CodingKeys: String, CodingKey { case includedisabled = "includeDisabled" case limit case offset case query case enabled case schedulekind = "scheduleKind" case lastrunstatus = "lastRunStatus" case sortby = "sortBy" case sortdir = "sortDir" case agentid = "agentId" case compact } } public struct CronStatusParams: Codable, Sendable {} public struct CronAddParams: Codable, Sendable { public let name: String public let declarationkey: String? public let displayname: String? public let owner: [String: AnyCodable]? public let agentid: AnyCodable? public let sessionkey: AnyCodable? public let description: String? public let enabled: Bool? public let deleteafterrun: Bool? public let schedule: AnyCodable public let trigger: [String: AnyCodable]? public let sessiontarget: AnyCodable public let wakemode: AnyCodable public let payload: AnyCodable public let delivery: AnyCodable? public let failurealert: AnyCodable? public init( name: String, declarationkey: String? = nil, displayname: String? = nil, owner: [String: AnyCodable]? = nil, agentid: AnyCodable? = nil, sessionkey: AnyCodable? = nil, description: String? = nil, enabled: Bool? = nil, deleteafterrun: Bool? = nil, schedule: AnyCodable, trigger: [String: AnyCodable]? = nil, sessiontarget: AnyCodable, wakemode: AnyCodable, payload: AnyCodable, delivery: AnyCodable? = nil, failurealert: AnyCodable? = nil) { self.name = name self.declarationkey = declarationkey self.displayname = displayname self.owner = owner self.agentid = agentid self.sessionkey = sessionkey self.description = description self.enabled = enabled self.deleteafterrun = deleteafterrun self.schedule = schedule self.trigger = trigger self.sessiontarget = sessiontarget self.wakemode = wakemode self.payload = payload self.delivery = delivery self.failurealert = failurealert } private enum CodingKeys: String, CodingKey { case name case declarationkey = "declarationKey" case displayname = "displayName" case owner case agentid = "agentId" case sessionkey = "sessionKey" case description case enabled case deleteafterrun = "deleteAfterRun" case schedule case trigger case sessiontarget = "sessionTarget" case wakemode = "wakeMode" case payload case delivery case failurealert = "failureAlert" } } public struct CronDeclarativeAddResult: Codable, Sendable { public let created: Bool public let updated: Bool? public let job: CronJob public init( created: Bool, updated: Bool? = nil, job: CronJob) { self.created = created self.updated = updated self.job = job } private enum CodingKeys: String, CodingKey { case created case updated case job } } public struct CronRunsParams: Codable, Sendable { public let scope: AnyCodable? public let id: String? public let jobid: String? public let runid: String? public let limit: Int? public let offset: Int? public let statuses: [AnyCodable]? public let status: AnyCodable? public let deliverystatuses: [AnyCodable]? public let deliverystatus: AnyCodable? public let query: String? public let sortdir: AnyCodable? public init( scope: AnyCodable? = nil, id: String? = nil, jobid: String? = nil, runid: String? = nil, limit: Int? = nil, offset: Int? = nil, statuses: [AnyCodable]? = nil, status: AnyCodable? = nil, deliverystatuses: [AnyCodable]? = nil, deliverystatus: AnyCodable? = nil, query: String? = nil, sortdir: AnyCodable? = nil) { self.scope = scope self.id = id self.jobid = jobid self.runid = runid self.limit = limit self.offset = offset self.statuses = statuses self.status = status self.deliverystatuses = deliverystatuses self.deliverystatus = deliverystatus self.query = query self.sortdir = sortdir } private enum CodingKeys: String, CodingKey { case scope case id case jobid = "jobId" case runid = "runId" case limit case offset case statuses case status case deliverystatuses = "deliveryStatuses" case deliverystatus = "deliveryStatus" case query case sortdir = "sortDir" } } public struct CronRunLogEntry: Codable, Sendable { public let ts: Int public let jobid: String public let action: String public let status: AnyCodable? public let error: String? public let errorreason: AnyCodable? public let summary: String? public let diagnostics: [String: AnyCodable]? public let delivered: Bool? public let deliverystatus: AnyCodable? public let deliveryerror: String? public let failurenotificationdelivery: [String: AnyCodable]? public let sessionid: String? public let sessionkey: String? public let runid: String? public let runatms: Int? public let durationms: Int? public let nextrunatms: Int? public let triggerfired: Bool? public let model: String? public let provider: String? public let usage: [String: AnyCodable]? public let jobname: String? public init( ts: Int, jobid: String, action: String, status: AnyCodable? = nil, error: String? = nil, errorreason: AnyCodable? = nil, summary: String? = nil, diagnostics: [String: AnyCodable]? = nil, delivered: Bool? = nil, deliverystatus: AnyCodable? = nil, deliveryerror: String? = nil, failurenotificationdelivery: [String: AnyCodable]? = nil, sessionid: String? = nil, sessionkey: String? = nil, runid: String? = nil, runatms: Int? = nil, durationms: Int? = nil, nextrunatms: Int? = nil, triggerfired: Bool? = nil, model: String? = nil, provider: String? = nil, usage: [String: AnyCodable]? = nil, jobname: String? = nil) { self.ts = ts self.jobid = jobid self.action = action self.status = status self.error = error self.errorreason = errorreason self.summary = summary self.diagnostics = diagnostics self.delivered = delivered self.deliverystatus = deliverystatus self.deliveryerror = deliveryerror self.failurenotificationdelivery = failurenotificationdelivery self.sessionid = sessionid self.sessionkey = sessionkey self.runid = runid self.runatms = runatms self.durationms = durationms self.nextrunatms = nextrunatms self.triggerfired = triggerfired self.model = model self.provider = provider self.usage = usage self.jobname = jobname } private enum CodingKeys: String, CodingKey { case ts case jobid = "jobId" case action case status case error case errorreason = "errorReason" case summary case diagnostics case delivered case deliverystatus = "deliveryStatus" case deliveryerror = "deliveryError" case failurenotificationdelivery = "failureNotificationDelivery" case sessionid = "sessionId" case sessionkey = "sessionKey" case runid = "runId" case runatms = "runAtMs" case durationms = "durationMs" case nextrunatms = "nextRunAtMs" case triggerfired = "triggerFired" case model case provider case usage case jobname = "jobName" } } public struct LogsTailParams: Codable, Sendable { public let cursor: Int? public let limit: Int? public let maxbytes: Int? public init( cursor: Int? = nil, limit: Int? = nil, maxbytes: Int? = nil) { self.cursor = cursor self.limit = limit self.maxbytes = maxbytes } private enum CodingKeys: String, CodingKey { case cursor case limit case maxbytes = "maxBytes" } } public struct LogsTailResult: Codable, Sendable { public let file: String public let cursor: Int public let size: Int public let lines: [String] public let truncated: Bool? public let reset: Bool? public init( file: String, cursor: Int, size: Int, lines: [String], truncated: Bool? = nil, reset: Bool? = nil) { self.file = file self.cursor = cursor self.size = size self.lines = lines self.truncated = truncated self.reset = reset } private enum CodingKeys: String, CodingKey { case file case cursor case size case lines case truncated case reset } } public struct TerminalOpenParams: Codable, Sendable { public let agentid: String? public let cols: Int public let rows: Int public init( agentid: String? = nil, cols: Int, rows: Int) { self.agentid = agentid self.cols = cols self.rows = rows } private enum CodingKeys: String, CodingKey { case agentid = "agentId" case cols case rows } } public struct TerminalOpenResult: Codable, Sendable { public let sessionid: String public let agentid: String public let shell: String public let cwd: String public let confined: Bool public init( sessionid: String, agentid: String, shell: String, cwd: String, confined: Bool) { self.sessionid = sessionid self.agentid = agentid self.shell = shell self.cwd = cwd self.confined = confined } private enum CodingKeys: String, CodingKey { case sessionid = "sessionId" case agentid = "agentId" case shell case cwd case confined } } public struct TerminalInputParams: Codable, Sendable { public let sessionid: String public let data: String public init( sessionid: String, data: String) { self.sessionid = sessionid self.data = data } private enum CodingKeys: String, CodingKey { case sessionid = "sessionId" case data } } public struct TerminalResizeParams: Codable, Sendable { public let sessionid: String public let cols: Int public let rows: Int public init( sessionid: String, cols: Int, rows: Int) { self.sessionid = sessionid self.cols = cols self.rows = rows } private enum CodingKeys: String, CodingKey { case sessionid = "sessionId" case cols case rows } } public struct TerminalCloseParams: Codable, Sendable { public let sessionid: String public init( sessionid: String) { self.sessionid = sessionid } private enum CodingKeys: String, CodingKey { case sessionid = "sessionId" } } public struct TerminalAttachParams: Codable, Sendable { public let sessionid: String public init( sessionid: String) { self.sessionid = sessionid } private enum CodingKeys: String, CodingKey { case sessionid = "sessionId" } } public struct TerminalAttachResult: Codable, Sendable { public let sessionid: String public let agentid: String public let shell: String public let cwd: String public let confined: Bool public let buffer: String public init( sessionid: String, agentid: String, shell: String, cwd: String, confined: Bool, buffer: String) { self.sessionid = sessionid self.agentid = agentid self.shell = shell self.cwd = cwd self.confined = confined self.buffer = buffer } private enum CodingKeys: String, CodingKey { case sessionid = "sessionId" case agentid = "agentId" case shell case cwd case confined case buffer } } public struct TerminalSessionInfo: Codable, Sendable { public let sessionid: String public let agentid: String public let shell: String public let cwd: String public let confined: Bool public let attached: Bool public let createdatms: Int public init( sessionid: String, agentid: String, shell: String, cwd: String, confined: Bool, attached: Bool, createdatms: Int) { self.sessionid = sessionid self.agentid = agentid self.shell = shell self.cwd = cwd self.confined = confined self.attached = attached self.createdatms = createdatms } private enum CodingKeys: String, CodingKey { case sessionid = "sessionId" case agentid = "agentId" case shell case cwd case confined case attached case createdatms = "createdAtMs" } } public struct TerminalListResult: Codable, Sendable { public let sessions: [TerminalSessionInfo] public init( sessions: [TerminalSessionInfo]) { self.sessions = sessions } private enum CodingKeys: String, CodingKey { case sessions } } public struct TerminalTextParams: Codable, Sendable { public let sessionid: String public init( sessionid: String) { self.sessionid = sessionid } private enum CodingKeys: String, CodingKey { case sessionid = "sessionId" } } public struct TerminalTextResult: Codable, Sendable { public let text: String public init( text: String) { self.text = text } private enum CodingKeys: String, CodingKey { case text } } public struct TerminalAckResult: Codable, Sendable { public let ok: Bool public init( ok: Bool) { self.ok = ok } private enum CodingKeys: String, CodingKey { case ok } } public struct TerminalDataEvent: Codable, Sendable { public let sessionid: String public let seq: Int public let data: String public init( sessionid: String, seq: Int, data: String) { self.sessionid = sessionid self.seq = seq self.data = data } private enum CodingKeys: String, CodingKey { case sessionid = "sessionId" case seq case data } } public struct TerminalExitEvent: Codable, Sendable { public let sessionid: String public let exitcode: AnyCodable? public let signal: AnyCodable? public let reason: AnyCodable? public let error: String? public init( sessionid: String, exitcode: AnyCodable? = nil, signal: AnyCodable? = nil, reason: AnyCodable? = nil, error: String? = nil) { self.sessionid = sessionid self.exitcode = exitcode self.signal = signal self.reason = reason self.error = error } private enum CodingKeys: String, CodingKey { case sessionid = "sessionId" case exitcode = "exitCode" case signal case reason case error } } public struct ExecApprovalPresentation: Codable, Sendable { public let kind: String public let commandtext: String public let commandpreview: AnyCodable? public let warningtext: AnyCodable? public let host: AnyCodable? public let nodeid: AnyCodable? public let agentid: AnyCodable? public let alloweddecisions: [ApprovalDecision] public init( kind: String, commandtext: String, commandpreview: AnyCodable? = nil, warningtext: AnyCodable? = nil, host: AnyCodable? = nil, nodeid: AnyCodable? = nil, agentid: AnyCodable? = nil, alloweddecisions: [ApprovalDecision]) { self.kind = kind self.commandtext = commandtext self.commandpreview = commandpreview self.warningtext = warningtext self.host = host self.nodeid = nodeid self.agentid = agentid self.alloweddecisions = alloweddecisions } private enum CodingKeys: String, CodingKey { case kind case commandtext = "commandText" case commandpreview = "commandPreview" case warningtext = "warningText" case host case nodeid = "nodeId" case agentid = "agentId" case alloweddecisions = "allowedDecisions" } } public struct PluginApprovalPresentation: Codable, Sendable { public let kind: String public let title: String public let description: String public let severity: PluginApprovalSeverity public let pluginid: AnyCodable? public let toolname: AnyCodable? public let agentid: AnyCodable? public let alloweddecisions: [ApprovalDecision] public init( kind: String, title: String, description: String, severity: PluginApprovalSeverity, pluginid: AnyCodable? = nil, toolname: AnyCodable? = nil, agentid: AnyCodable? = nil, alloweddecisions: [ApprovalDecision]) { self.kind = kind self.title = title self.description = description self.severity = severity self.pluginid = pluginid self.toolname = toolname self.agentid = agentid self.alloweddecisions = alloweddecisions } private enum CodingKeys: String, CodingKey { case kind case title case description case severity case pluginid = "pluginId" case toolname = "toolName" case agentid = "agentId" case alloweddecisions = "allowedDecisions" } } public struct PendingApprovalSnapshot: Codable, Sendable { public let id: String public let urlpath: String public let createdatms: Int public let expiresatms: Int public let presentation: ApprovalPresentation public let status: String public init( id: String, urlpath: String, createdatms: Int, expiresatms: Int, presentation: ApprovalPresentation, status: String) { self.id = id self.urlpath = urlpath self.createdatms = createdatms self.expiresatms = expiresatms self.presentation = presentation self.status = status } private enum CodingKeys: String, CodingKey { case id case urlpath = "urlPath" case createdatms = "createdAtMs" case expiresatms = "expiresAtMs" case presentation case status } } public struct AllowedApprovalSnapshot: Codable, Sendable { public let id: String public let urlpath: String public let createdatms: Int public let expiresatms: Int public let presentation: ApprovalPresentation public let resolvedatms: Int public let status: String public let decision: ApprovalAllowDecision public let reason: ApprovalAllowedReason public init( id: String, urlpath: String, createdatms: Int, expiresatms: Int, presentation: ApprovalPresentation, resolvedatms: Int, status: String, decision: ApprovalAllowDecision, reason: ApprovalAllowedReason) { self.id = id self.urlpath = urlpath self.createdatms = createdatms self.expiresatms = expiresatms self.presentation = presentation self.resolvedatms = resolvedatms self.status = status self.decision = decision self.reason = reason } private enum CodingKeys: String, CodingKey { case id case urlpath = "urlPath" case createdatms = "createdAtMs" case expiresatms = "expiresAtMs" case presentation case resolvedatms = "resolvedAtMs" case status case decision case reason } } public struct DeniedApprovalSnapshot: Codable, Sendable { public let id: String public let urlpath: String public let createdatms: Int public let expiresatms: Int public let presentation: ApprovalPresentation public let resolvedatms: Int public let status: String public let decision: String public let reason: ApprovalDeniedReason public init( id: String, urlpath: String, createdatms: Int, expiresatms: Int, presentation: ApprovalPresentation, resolvedatms: Int, status: String, decision: String, reason: ApprovalDeniedReason) { self.id = id self.urlpath = urlpath self.createdatms = createdatms self.expiresatms = expiresatms self.presentation = presentation self.resolvedatms = resolvedatms self.status = status self.decision = decision self.reason = reason } private enum CodingKeys: String, CodingKey { case id case urlpath = "urlPath" case createdatms = "createdAtMs" case expiresatms = "expiresAtMs" case presentation case resolvedatms = "resolvedAtMs" case status case decision case reason } } public struct ExpiredApprovalSnapshot: Codable, Sendable { public let id: String public let urlpath: String public let createdatms: Int public let expiresatms: Int public let presentation: ApprovalPresentation public let resolvedatms: Int public let status: String public let reason: ApprovalExpiredReason public init( id: String, urlpath: String, createdatms: Int, expiresatms: Int, presentation: ApprovalPresentation, resolvedatms: Int, status: String, reason: ApprovalExpiredReason) { self.id = id self.urlpath = urlpath self.createdatms = createdatms self.expiresatms = expiresatms self.presentation = presentation self.resolvedatms = resolvedatms self.status = status self.reason = reason } private enum CodingKeys: String, CodingKey { case id case urlpath = "urlPath" case createdatms = "createdAtMs" case expiresatms = "expiresAtMs" case presentation case resolvedatms = "resolvedAtMs" case status case reason } } public struct CancelledApprovalSnapshot: Codable, Sendable { public let id: String public let urlpath: String public let createdatms: Int public let expiresatms: Int public let presentation: ApprovalPresentation public let resolvedatms: Int public let status: String public let reason: ApprovalCancelledReason public init( id: String, urlpath: String, createdatms: Int, expiresatms: Int, presentation: ApprovalPresentation, resolvedatms: Int, status: String, reason: ApprovalCancelledReason) { self.id = id self.urlpath = urlpath self.createdatms = createdatms self.expiresatms = expiresatms self.presentation = presentation self.resolvedatms = resolvedatms self.status = status self.reason = reason } private enum CodingKeys: String, CodingKey { case id case urlpath = "urlPath" case createdatms = "createdAtMs" case expiresatms = "expiresAtMs" case presentation case resolvedatms = "resolvedAtMs" case status case reason } } public struct ApprovalGetParams: Codable, Sendable { public let id: String public init( id: String) { self.id = id } private enum CodingKeys: String, CodingKey { case id } } public struct ApprovalGetResult: Codable, Sendable { public let approval: ApprovalSnapshot public init( approval: ApprovalSnapshot) { self.approval = approval } private enum CodingKeys: String, CodingKey { case approval } } public struct ApprovalResolveParams: Codable, Sendable { public let id: String public let kind: ApprovalKind public let decision: ApprovalDecision public init( id: String, kind: ApprovalKind, decision: ApprovalDecision) { self.id = id self.kind = kind self.decision = decision } private enum CodingKeys: String, CodingKey { case id case kind case decision } } public struct ApprovalResolveResult: Codable, Sendable { public let applied: Bool public let approval: TerminalApprovalSnapshot public init( applied: Bool, approval: TerminalApprovalSnapshot) { self.applied = applied self.approval = approval } private enum CodingKeys: String, CodingKey { case applied case approval } } public struct PendingSessionApprovalEvent: Codable, Sendable { public let sessionkey: String public let sourcesessionkey: String? public let updatedatms: Int public let phase: String public let approval: PendingApprovalSnapshot public init( sessionkey: String, sourcesessionkey: String? = nil, updatedatms: Int, phase: String, approval: PendingApprovalSnapshot) { self.sessionkey = sessionkey self.sourcesessionkey = sourcesessionkey self.updatedatms = updatedatms self.phase = phase self.approval = approval } private enum CodingKeys: String, CodingKey { case sessionkey = "sessionKey" case sourcesessionkey = "sourceSessionKey" case updatedatms = "updatedAtMs" case phase case approval } } public struct TerminalSessionApprovalEvent: Codable, Sendable { public let sessionkey: String public let sourcesessionkey: String? public let updatedatms: Int public let phase: String public let approval: TerminalApprovalSnapshot public init( sessionkey: String, sourcesessionkey: String? = nil, updatedatms: Int, phase: String, approval: TerminalApprovalSnapshot) { self.sessionkey = sessionkey self.sourcesessionkey = sourcesessionkey self.updatedatms = updatedatms self.phase = phase self.approval = approval } private enum CodingKeys: String, CodingKey { case sessionkey = "sessionKey" case sourcesessionkey = "sourceSessionKey" case updatedatms = "updatedAtMs" case phase case approval } } public struct SessionApprovalReplay: Codable, Sendable { public let sessionkey: String public let updatedatms: Int public let approvals: [PendingApprovalSnapshot] public let truncated: Bool public init( sessionkey: String, updatedatms: Int, approvals: [PendingApprovalSnapshot], truncated: Bool) { self.sessionkey = sessionkey self.updatedatms = updatedatms self.approvals = approvals self.truncated = truncated } private enum CodingKeys: String, CodingKey { case sessionkey = "sessionKey" case updatedatms = "updatedAtMs" case approvals case truncated } } public struct ExecApprovalsGetParams: Codable, Sendable {} public struct ExecApprovalsSetParams: Codable, Sendable { public let file: [String: AnyCodable] public let basehash: String? public init( file: [String: AnyCodable], basehash: String? = nil) { self.file = file self.basehash = basehash } private enum CodingKeys: String, CodingKey { case file case basehash = "baseHash" } } public struct ExecApprovalsNodeGetParams: Codable, Sendable { public let nodeid: String public init( nodeid: String) { self.nodeid = nodeid } private enum CodingKeys: String, CodingKey { case nodeid = "nodeId" } } public struct ExecApprovalsNodeSnapshot: Codable, Sendable { public let path: String? public let exists: Bool? public let hash: String? public let file: [String: AnyCodable]? public let resolveddefaults: [String: AnyCodable]? public let enabled: Bool? public let basehash: String? public let defaultaction: AnyCodable? public let rules: [[String: AnyCodable]]? public let constraints: [String: AnyCodable]? public let message: String? public init( path: String? = nil, exists: Bool? = nil, hash: String? = nil, file: [String: AnyCodable]? = nil, resolveddefaults: [String: AnyCodable]? = nil, enabled: Bool? = nil, basehash: String? = nil, defaultaction: AnyCodable? = nil, rules: [[String: AnyCodable]]? = nil, constraints: [String: AnyCodable]? = nil, message: String? = nil) { self.path = path self.exists = exists self.hash = hash self.file = file self.resolveddefaults = resolveddefaults self.enabled = enabled self.basehash = basehash self.defaultaction = defaultaction self.rules = rules self.constraints = constraints self.message = message } private enum CodingKeys: String, CodingKey { case path case exists case hash case file case resolveddefaults = "resolvedDefaults" case enabled case basehash = "baseHash" case defaultaction = "defaultAction" case rules case constraints case message } } public struct ExecApprovalsNodeSetParams: Codable, Sendable { public let nodeid: String public let file: [String: AnyCodable]? public let native: [String: AnyCodable]? public let basehash: String? public init( nodeid: String, file: [String: AnyCodable]? = nil, native: [String: AnyCodable]? = nil, basehash: String? = nil) { self.nodeid = nodeid self.file = file self.native = native self.basehash = basehash } private enum CodingKeys: String, CodingKey { case nodeid = "nodeId" case file case native case basehash = "baseHash" } } public struct ExecApprovalsSnapshot: Codable, Sendable { public let path: String public let exists: Bool public let hash: String public let file: [String: AnyCodable] public init( path: String, exists: Bool, hash: String, file: [String: AnyCodable]) { self.path = path self.exists = exists self.hash = hash self.file = file } private enum CodingKeys: String, CodingKey { case path case exists case hash case file } } public struct ExecApprovalGetParams: Codable, Sendable { public let id: String public init( id: String) { self.id = id } private enum CodingKeys: String, CodingKey { case id } } public struct ExecApprovalRequestParams: Codable, Sendable { public let id: String? public let command: String? public let commandargv: [String]? public let systemrunplan: [String: AnyCodable]? public let env: [String: AnyCodable]? public let cwd: AnyCodable? public let nodeid: AnyCodable? public let host: AnyCodable? public let security: AnyCodable? public let ask: AnyCodable? public let warningtext: AnyCodable? public let unavailabledecisions: [String]? public let commandspans: [[String: AnyCodable]]? public let agentid: AnyCodable? public let resolvedpath: AnyCodable? public let sessionkey: AnyCodable? public let turnsourcechannel: AnyCodable? public let turnsourceto: AnyCodable? public let turnsourceaccountid: AnyCodable? public let turnsourcethreadid: AnyCodable? public let approvalreviewerdeviceids: [String]? public let requiredeliveryroute: Bool? public let suppressdelivery: Bool? public let timeoutms: Int? public let twophase: Bool? public init( id: String? = nil, command: String? = nil, commandargv: [String]? = nil, systemrunplan: [String: AnyCodable]? = nil, env: [String: AnyCodable]? = nil, cwd: AnyCodable? = nil, nodeid: AnyCodable? = nil, host: AnyCodable? = nil, security: AnyCodable? = nil, ask: AnyCodable? = nil, warningtext: AnyCodable? = nil, unavailabledecisions: [String]? = nil, commandspans: [[String: AnyCodable]]? = nil, agentid: AnyCodable? = nil, resolvedpath: AnyCodable? = nil, sessionkey: AnyCodable? = nil, turnsourcechannel: AnyCodable? = nil, turnsourceto: AnyCodable? = nil, turnsourceaccountid: AnyCodable? = nil, turnsourcethreadid: AnyCodable? = nil, approvalreviewerdeviceids: [String]? = nil, requiredeliveryroute: Bool? = nil, suppressdelivery: Bool? = nil, timeoutms: Int? = nil, twophase: Bool? = nil) { self.id = id self.command = command self.commandargv = commandargv self.systemrunplan = systemrunplan self.env = env self.cwd = cwd self.nodeid = nodeid self.host = host self.security = security self.ask = ask self.warningtext = warningtext self.unavailabledecisions = unavailabledecisions self.commandspans = commandspans self.agentid = agentid self.resolvedpath = resolvedpath self.sessionkey = sessionkey self.turnsourcechannel = turnsourcechannel self.turnsourceto = turnsourceto self.turnsourceaccountid = turnsourceaccountid self.turnsourcethreadid = turnsourcethreadid self.approvalreviewerdeviceids = approvalreviewerdeviceids self.requiredeliveryroute = requiredeliveryroute self.suppressdelivery = suppressdelivery self.timeoutms = timeoutms self.twophase = twophase } private enum CodingKeys: String, CodingKey { case id case command case commandargv = "commandArgv" case systemrunplan = "systemRunPlan" case env case cwd case nodeid = "nodeId" case host case security case ask case warningtext = "warningText" case unavailabledecisions = "unavailableDecisions" case commandspans = "commandSpans" case agentid = "agentId" case resolvedpath = "resolvedPath" case sessionkey = "sessionKey" case turnsourcechannel = "turnSourceChannel" case turnsourceto = "turnSourceTo" case turnsourceaccountid = "turnSourceAccountId" case turnsourcethreadid = "turnSourceThreadId" case approvalreviewerdeviceids = "approvalReviewerDeviceIds" case requiredeliveryroute = "requireDeliveryRoute" case suppressdelivery = "suppressDelivery" case timeoutms = "timeoutMs" case twophase = "twoPhase" } } public struct ExecApprovalResolveParams: Codable, Sendable { public let id: String public let decision: String public init( id: String, decision: String) { self.id = id self.decision = decision } private enum CodingKeys: String, CodingKey { case id case decision } } public struct PluginApprovalRequestParams: Codable, Sendable { public let pluginid: String? public let title: String public let description: String public let severity: String? public let toolname: String? public let toolcallid: String? public let alloweddecisions: [String]? public let agentid: String? public let sessionkey: String? public let approvalreviewerdeviceids: [String]? public let turnsourcechannel: String? public let turnsourceto: String? public let turnsourceaccountid: String? public let turnsourcethreadid: AnyCodable? public let timeoutms: Int? public let twophase: Bool? public init( pluginid: String? = nil, title: String, description: String, severity: String? = nil, toolname: String? = nil, toolcallid: String? = nil, alloweddecisions: [String]? = nil, agentid: String? = nil, sessionkey: String? = nil, approvalreviewerdeviceids: [String]? = nil, turnsourcechannel: String? = nil, turnsourceto: String? = nil, turnsourceaccountid: String? = nil, turnsourcethreadid: AnyCodable? = nil, timeoutms: Int? = nil, twophase: Bool? = nil) { self.pluginid = pluginid self.title = title self.description = description self.severity = severity self.toolname = toolname self.toolcallid = toolcallid self.alloweddecisions = alloweddecisions self.agentid = agentid self.sessionkey = sessionkey self.approvalreviewerdeviceids = approvalreviewerdeviceids self.turnsourcechannel = turnsourcechannel self.turnsourceto = turnsourceto self.turnsourceaccountid = turnsourceaccountid self.turnsourcethreadid = turnsourcethreadid self.timeoutms = timeoutms self.twophase = twophase } private enum CodingKeys: String, CodingKey { case pluginid = "pluginId" case title case description case severity case toolname = "toolName" case toolcallid = "toolCallId" case alloweddecisions = "allowedDecisions" case agentid = "agentId" case sessionkey = "sessionKey" case approvalreviewerdeviceids = "approvalReviewerDeviceIds" case turnsourcechannel = "turnSourceChannel" case turnsourceto = "turnSourceTo" case turnsourceaccountid = "turnSourceAccountId" case turnsourcethreadid = "turnSourceThreadId" case timeoutms = "timeoutMs" case twophase = "twoPhase" } } public struct PluginApprovalResolveParams: Codable, Sendable { public let id: String public let decision: String public init( id: String, decision: String) { self.id = id self.decision = decision } private enum CodingKeys: String, CodingKey { case id case decision } } public struct PluginCatalogClawHubInstall: Codable, Sendable { public let source: String public let packagename: String public init( source: String, packagename: String) { self.source = source self.packagename = packagename } private enum CodingKeys: String, CodingKey { case source case packagename = "packageName" } } public struct PluginCatalogEntry: Codable, Sendable { public let id: String public let name: String public let packagename: String? public let description: String? public let version: String? public let kind: [String]? public let origin: String? public let installed: Bool public let enabled: Bool public let state: AnyCodable public let featured: Bool? public let order: Double? public let install: PluginCatalogInstallAction? public let error: String? public let category: String? public let removable: Bool? public init( id: String, name: String, packagename: String? = nil, description: String? = nil, version: String? = nil, kind: [String]? = nil, origin: String? = nil, installed: Bool, enabled: Bool, state: AnyCodable, featured: Bool? = nil, order: Double? = nil, install: PluginCatalogInstallAction? = nil, error: String? = nil, category: String? = nil, removable: Bool? = nil) { self.id = id self.name = name self.packagename = packagename self.description = description self.version = version self.kind = kind self.origin = origin self.installed = installed self.enabled = enabled self.state = state self.featured = featured self.order = order self.install = install self.error = error self.category = category self.removable = removable } private enum CodingKeys: String, CodingKey { case id case name case packagename = "packageName" case description case version case kind case origin case installed case enabled case state case featured case order case install case error case category case removable } } public struct PluginCatalogOfficialInstall: Codable, Sendable { public let source: String public let pluginid: String public init( source: String, pluginid: String) { self.source = source self.pluginid = pluginid } private enum CodingKeys: String, CodingKey { case source case pluginid = "pluginId" } } public struct PluginControlUiDescriptor: Codable, Sendable { public let id: String public let pluginid: String public let pluginname: String? public let surface: AnyCodable public let label: String public let description: String? public let placement: String? public let schema: AnyCodable? public let requiredscopes: [String]? public init( id: String, pluginid: String, pluginname: String? = nil, surface: AnyCodable, label: String, description: String? = nil, placement: String? = nil, schema: AnyCodable? = nil, requiredscopes: [String]? = nil) { self.id = id self.pluginid = pluginid self.pluginname = pluginname self.surface = surface self.label = label self.description = description self.placement = placement self.schema = schema self.requiredscopes = requiredscopes } private enum CodingKeys: String, CodingKey { case id case pluginid = "pluginId" case pluginname = "pluginName" case surface case label case description case placement case schema case requiredscopes = "requiredScopes" } } public struct PluginSearchPackage: Codable, Sendable { public let name: String public let displayname: String public let family: AnyCodable public let channel: AnyCodable public let isofficial: Bool public let summary: String? public let latestversion: String? public let runtimeid: String? public let downloads: Double? public let verificationtier: String? public init( name: String, displayname: String, family: AnyCodable, channel: AnyCodable, isofficial: Bool, summary: String? = nil, latestversion: String? = nil, runtimeid: String? = nil, downloads: Double? = nil, verificationtier: String? = nil) { self.name = name self.displayname = displayname self.family = family self.channel = channel self.isofficial = isofficial self.summary = summary self.latestversion = latestversion self.runtimeid = runtimeid self.downloads = downloads self.verificationtier = verificationtier } private enum CodingKeys: String, CodingKey { case name case displayname = "displayName" case family case channel case isofficial = "isOfficial" case summary case latestversion = "latestVersion" case runtimeid = "runtimeId" case downloads case verificationtier = "verificationTier" } } public struct PluginSearchResultEntry: Codable, Sendable { public let score: Double public let package: PluginSearchPackage public init( score: Double, package: PluginSearchPackage) { self.score = score self.package = package } private enum CodingKeys: String, CodingKey { case score case package } } public struct PluginsInstallResult: Codable, Sendable { public let ok: Bool public let plugin: PluginCatalogEntry public let restartrequired: Bool public let warnings: [String]? public init( ok: Bool, plugin: PluginCatalogEntry, restartrequired: Bool, warnings: [String]? = nil) { self.ok = ok self.plugin = plugin self.restartrequired = restartrequired self.warnings = warnings } private enum CodingKeys: String, CodingKey { case ok case plugin case restartrequired = "restartRequired" case warnings } } public struct PluginsListParams: Codable, Sendable {} public struct PluginsListResult: Codable, Sendable { public let plugins: [PluginCatalogEntry] public let diagnostics: [AnyCodable] public let mutationallowed: Bool public init( plugins: [PluginCatalogEntry], diagnostics: [AnyCodable], mutationallowed: Bool) { self.plugins = plugins self.diagnostics = diagnostics self.mutationallowed = mutationallowed } private enum CodingKeys: String, CodingKey { case plugins case diagnostics case mutationallowed = "mutationAllowed" } } public struct PluginsSearchParams: Codable, Sendable { public let query: String public let limit: Int? public init( query: String, limit: Int? = nil) { self.query = query self.limit = limit } private enum CodingKeys: String, CodingKey { case query case limit } } public struct PluginsSearchResult: Codable, Sendable { public let results: [PluginSearchResultEntry] public init( results: [PluginSearchResultEntry]) { self.results = results } private enum CodingKeys: String, CodingKey { case results } } public struct PluginsSessionActionFailureResult: Codable, Sendable { public let ok: Bool public let error: String public let code: String? public let details: AnyCodable? public init( error: String, code: String? = nil, details: AnyCodable? = nil ) { self.ok = false self.error = error self.code = code self.details = details } private enum CodingKeys: String, CodingKey { case ok case error case code case details } public init(from decoder: Decoder) throws { let rawContainer = try decoder.container(keyedBy: GatewayAnyCodingKey.self) let unexpectedKeys = rawContainer.allKeys .map(\.stringValue) .filter { !Set(["ok", "error", "code", "details"]).contains($0) } if !unexpectedKeys.isEmpty { throw DecodingError.dataCorrupted( .init( codingPath: rawContainer.codingPath, debugDescription: "Unexpected keys for PluginsSessionActionFailureResult: \(unexpectedKeys.sorted().joined(separator: ", "))" ) ) } let container = try decoder.container(keyedBy: CodingKeys.self) let decodedOk = try container.decode(Bool.self, forKey: .ok) guard decodedOk == false else { throw DecodingError.dataCorruptedError( forKey: .ok, in: container, debugDescription: "Expected ok to equal false" ) } self.ok = false self.error = try container.decode(String.self, forKey: .error) self.code = try container.decodeIfPresent(String.self, forKey: .code) self.details = try container.decodeIfPresent(AnyCodable.self, forKey: .details) } public func encode(to encoder: Encoder) throws { var container = encoder.container(keyedBy: CodingKeys.self) try container.encode(false, forKey: .ok) try container.encode(error, forKey: .error) try container.encodeIfPresent(code, forKey: .code) try container.encodeIfPresent(details, forKey: .details) } } public struct PluginsSessionActionParams: Codable, Sendable { public let pluginid: String public let actionid: String public let sessionkey: String? public let payload: AnyCodable? public init( pluginid: String, actionid: String, sessionkey: String? = nil, payload: AnyCodable? = nil) { self.pluginid = pluginid self.actionid = actionid self.sessionkey = sessionkey self.payload = payload } private enum CodingKeys: String, CodingKey { case pluginid = "pluginId" case actionid = "actionId" case sessionkey = "sessionKey" case payload } } public struct PluginsSessionActionSuccessResult: Codable, Sendable { public let ok: Bool public let result: AnyCodable? public let continueagent: Bool? public let reply: AnyCodable? public init( result: AnyCodable? = nil, continueagent: Bool? = nil, reply: AnyCodable? = nil ) { self.ok = true self.result = result self.continueagent = continueagent self.reply = reply } private enum CodingKeys: String, CodingKey { case ok case result case continueagent = "continueAgent" case reply } public init(from decoder: Decoder) throws { let rawContainer = try decoder.container(keyedBy: GatewayAnyCodingKey.self) let unexpectedKeys = rawContainer.allKeys .map(\.stringValue) .filter { !Set(["ok", "result", "continueAgent", "reply"]).contains($0) } if !unexpectedKeys.isEmpty { throw DecodingError.dataCorrupted( .init( codingPath: rawContainer.codingPath, debugDescription: "Unexpected keys for PluginsSessionActionSuccessResult: \(unexpectedKeys.sorted().joined(separator: ", "))" ) ) } let container = try decoder.container(keyedBy: CodingKeys.self) let decodedOk = try container.decode(Bool.self, forKey: .ok) guard decodedOk == true else { throw DecodingError.dataCorruptedError( forKey: .ok, in: container, debugDescription: "Expected ok to equal true" ) } self.ok = true self.result = try container.decodeIfPresent(AnyCodable.self, forKey: .result) self.continueagent = try container.decodeIfPresent(Bool.self, forKey: .continueagent) self.reply = try container.decodeIfPresent(AnyCodable.self, forKey: .reply) } public func encode(to encoder: Encoder) throws { var container = encoder.container(keyedBy: CodingKeys.self) try container.encode(true, forKey: .ok) try container.encodeIfPresent(result, forKey: .result) try container.encodeIfPresent(continueagent, forKey: .continueagent) try container.encodeIfPresent(reply, forKey: .reply) } } public struct PluginsSetEnabledParams: Codable, Sendable { public let pluginid: String public let enabled: Bool public init( pluginid: String, enabled: Bool) { self.pluginid = pluginid self.enabled = enabled } private enum CodingKeys: String, CodingKey { case pluginid = "pluginId" case enabled } } public struct PluginsSetEnabledResult: Codable, Sendable { public let ok: Bool public let plugin: PluginCatalogEntry public let restartrequired: Bool public let warnings: [String]? public init( ok: Bool, plugin: PluginCatalogEntry, restartrequired: Bool, warnings: [String]? = nil) { self.ok = ok self.plugin = plugin self.restartrequired = restartrequired self.warnings = warnings } private enum CodingKeys: String, CodingKey { case ok case plugin case restartrequired = "restartRequired" case warnings } } public struct PluginsUiDescriptorsParams: Codable, Sendable {} public struct PluginsUiDescriptorsResult: Codable, Sendable { public let ok: Bool public let descriptors: [PluginControlUiDescriptor] public init( ok: Bool, descriptors: [PluginControlUiDescriptor]) { self.ok = ok self.descriptors = descriptors } private enum CodingKeys: String, CodingKey { case ok case descriptors } } public struct PluginsUninstallParams: Codable, Sendable { public let pluginid: String public init( pluginid: String) { self.pluginid = pluginid } private enum CodingKeys: String, CodingKey { case pluginid = "pluginId" } } public struct PluginsUninstallResult: Codable, Sendable { public let ok: Bool public let pluginid: String public let restartrequired: Bool public let removed: [String] public let warnings: [String]? public init( ok: Bool, pluginid: String, restartrequired: Bool, removed: [String], warnings: [String]? = nil) { self.ok = ok self.pluginid = pluginid self.restartrequired = restartrequired self.removed = removed self.warnings = warnings } private enum CodingKeys: String, CodingKey { case ok case pluginid = "pluginId" case restartrequired = "restartRequired" case removed case warnings } } public struct DevicePairListParams: Codable, Sendable {} public struct DevicePairApproveParams: Codable, Sendable { public let requestid: String public init( requestid: String) { self.requestid = requestid } private enum CodingKeys: String, CodingKey { case requestid = "requestId" } } public struct DevicePairRejectParams: Codable, Sendable { public let requestid: String public init( requestid: String) { self.requestid = requestid } private enum CodingKeys: String, CodingKey { case requestid = "requestId" } } public struct DevicePairRemoveParams: Codable, Sendable { public let deviceid: String public init( deviceid: String) { self.deviceid = deviceid } private enum CodingKeys: String, CodingKey { case deviceid = "deviceId" } } public struct DevicePairSetupCodeParams: Codable, Sendable { public let publicurl: String? public let preferremoteurl: Bool? public let includeqr: Bool? public let bootstrapprofile: String? public init( publicurl: String? = nil, preferremoteurl: Bool? = nil, includeqr: Bool? = nil, bootstrapprofile: String? = nil) { self.publicurl = publicurl self.preferremoteurl = preferremoteurl self.includeqr = includeqr self.bootstrapprofile = bootstrapprofile } private enum CodingKeys: String, CodingKey { case publicurl = "publicUrl" case preferremoteurl = "preferRemoteUrl" case includeqr = "includeQr" case bootstrapprofile = "bootstrapProfile" } } public struct DevicePairSetupCodeResult: Codable, Sendable { public let setupcode: String public let qrdataurl: String? public let gatewayurl: String public let gatewayurls: [String]? public let auth: AnyCodable public let urlsource: String public init( setupcode: String, qrdataurl: String? = nil, gatewayurl: String, gatewayurls: [String]? = nil, auth: AnyCodable, urlsource: String) { self.setupcode = setupcode self.qrdataurl = qrdataurl self.gatewayurl = gatewayurl self.gatewayurls = gatewayurls self.auth = auth self.urlsource = urlsource } private enum CodingKeys: String, CodingKey { case setupcode = "setupCode" case qrdataurl = "qrDataUrl" case gatewayurl = "gatewayUrl" case gatewayurls = "gatewayUrls" case auth case urlsource = "urlSource" } } public struct DevicePairRenameParams: Codable, Sendable { public let deviceid: String public let label: String public init( deviceid: String, label: String) { self.deviceid = deviceid self.label = label } private enum CodingKeys: String, CodingKey { case deviceid = "deviceId" case label } } public struct DeviceTokenRotateParams: Codable, Sendable { public let deviceid: String public let role: String public let scopes: [String]? public init( deviceid: String, role: String, scopes: [String]? = nil) { self.deviceid = deviceid self.role = role self.scopes = scopes } private enum CodingKeys: String, CodingKey { case deviceid = "deviceId" case role case scopes } } public struct DeviceTokenRevokeParams: Codable, Sendable { public let deviceid: String public let role: String public init( deviceid: String, role: String) { self.deviceid = deviceid self.role = role } private enum CodingKeys: String, CodingKey { case deviceid = "deviceId" case role } } public struct DevicePairRequestedEvent: Codable, Sendable { public let requestid: String public let deviceid: String public let publickey: String public let displayname: String? public let platform: String? public let devicefamily: String? public let clientid: String? public let clientmode: String? public let role: String? public let roles: [String]? public let scopes: [String]? public let remoteip: String? public let silent: Bool? public let isrepair: Bool? public let ts: Int public init( requestid: String, deviceid: String, publickey: String, displayname: String? = nil, platform: String? = nil, devicefamily: String? = nil, clientid: String? = nil, clientmode: String? = nil, role: String? = nil, roles: [String]? = nil, scopes: [String]? = nil, remoteip: String? = nil, silent: Bool? = nil, isrepair: Bool? = nil, ts: Int) { self.requestid = requestid self.deviceid = deviceid self.publickey = publickey self.displayname = displayname self.platform = platform self.devicefamily = devicefamily self.clientid = clientid self.clientmode = clientmode self.role = role self.roles = roles self.scopes = scopes self.remoteip = remoteip self.silent = silent self.isrepair = isrepair self.ts = ts } private enum CodingKeys: String, CodingKey { case requestid = "requestId" case deviceid = "deviceId" case publickey = "publicKey" case displayname = "displayName" case platform case devicefamily = "deviceFamily" case clientid = "clientId" case clientmode = "clientMode" case role case roles case scopes case remoteip = "remoteIp" case silent case isrepair = "isRepair" case ts } } public struct DevicePairResolvedEvent: Codable, Sendable { public let requestid: String public let deviceid: String public let decision: String public let ts: Int public init( requestid: String, deviceid: String, decision: String, ts: Int) { self.requestid = requestid self.deviceid = deviceid self.decision = decision self.ts = ts } private enum CodingKeys: String, CodingKey { case requestid = "requestId" case deviceid = "deviceId" case decision case ts } } public struct ChatHistoryParams: Codable, Sendable { public let sessionkey: String public let agentid: String? public let limit: Int? public let offset: Int? public let maxchars: Int? public init( sessionkey: String, agentid: String? = nil, limit: Int? = nil, offset: Int? = nil, maxchars: Int? = nil) { self.sessionkey = sessionkey self.agentid = agentid self.limit = limit self.offset = offset self.maxchars = maxchars } private enum CodingKeys: String, CodingKey { case sessionkey = "sessionKey" case agentid = "agentId" case limit case offset case maxchars = "maxChars" } } public struct ChatMetadataParams: Codable, Sendable { public let agentid: String? public init( agentid: String? = nil) { self.agentid = agentid } private enum CodingKeys: String, CodingKey { case agentid = "agentId" } } public struct ChatMessageGetParams: Codable, Sendable { public let sessionkey: String public let agentid: String? public let messageid: String public let maxchars: Int? public init( sessionkey: String, agentid: String? = nil, messageid: String, maxchars: Int? = nil) { self.sessionkey = sessionkey self.agentid = agentid self.messageid = messageid self.maxchars = maxchars } private enum CodingKeys: String, CodingKey { case sessionkey = "sessionKey" case agentid = "agentId" case messageid = "messageId" case maxchars = "maxChars" } } public struct ChatMessageGetResult: Codable, Sendable { public let ok: Bool public let message: AnyCodable? public let unavailablereason: AnyCodable? public init( ok: Bool, message: AnyCodable? = nil, unavailablereason: AnyCodable? = nil) { self.ok = ok self.message = message self.unavailablereason = unavailablereason } private enum CodingKeys: String, CodingKey { case ok case message case unavailablereason = "unavailableReason" } } public struct ChatToolTitlesParams: Codable, Sendable { public let sessionkey: String public let agentid: String? public let items: [[String: AnyCodable]] public init( sessionkey: String, agentid: String? = nil, items: [[String: AnyCodable]]) { self.sessionkey = sessionkey self.agentid = agentid self.items = items } private enum CodingKeys: String, CodingKey { case sessionkey = "sessionKey" case agentid = "agentId" case items } } public struct ChatToolTitlesResult: Codable, Sendable { public let titles: [String: AnyCodable] public let disabled: Bool? public init( titles: [String: AnyCodable], disabled: Bool? = nil) { self.titles = titles self.disabled = disabled } private enum CodingKeys: String, CodingKey { case titles case disabled } } public struct ChatSendParams: Codable, Sendable { public let sessionkey: String public let agentid: String? public let sessionid: String? public let message: String public let thinking: String? public let fastmodevalue: AnyCodable? public var fastmode: Bool? { fastmodevalue?.value as? Bool } public let fastautoonseconds: Int? public let deliver: Bool? public let originatingchannel: String? public let originatingto: String? public let originatingaccountid: String? public let originatingthreadid: String? public let attachments: [AnyCodable]? public let timeoutms: Int? public let systeminputprovenance: [String: AnyCodable]? public let systemprovenancereceipt: String? public let suppresscommandinterpretation: Bool? public let expectedsessionroutingcontract: String? public let idempotencykey: String public init( sessionkey: String, agentid: String? = nil, sessionid: String? = nil, message: String, thinking: String? = nil, fastmodevalue: AnyCodable? = nil, fastautoonseconds: Int? = nil, deliver: Bool? = nil, originatingchannel: String? = nil, originatingto: String? = nil, originatingaccountid: String? = nil, originatingthreadid: String? = nil, attachments: [AnyCodable]? = nil, timeoutms: Int? = nil, systeminputprovenance: [String: AnyCodable]? = nil, systemprovenancereceipt: String? = nil, suppresscommandinterpretation: Bool? = nil, expectedsessionroutingcontract: String? = nil, idempotencykey: String) { self.sessionkey = sessionkey self.agentid = agentid self.sessionid = sessionid self.message = message self.thinking = thinking self.fastmodevalue = fastmodevalue self.fastautoonseconds = fastautoonseconds self.deliver = deliver self.originatingchannel = originatingchannel self.originatingto = originatingto self.originatingaccountid = originatingaccountid self.originatingthreadid = originatingthreadid self.attachments = attachments self.timeoutms = timeoutms self.systeminputprovenance = systeminputprovenance self.systemprovenancereceipt = systemprovenancereceipt self.suppresscommandinterpretation = suppresscommandinterpretation self.expectedsessionroutingcontract = expectedsessionroutingcontract self.idempotencykey = idempotencykey } public init( sessionkey: String, agentid: String? = nil, sessionid: String? = nil, message: String, thinking: String? = nil, fastmode: Bool?, deliver: Bool? = nil, originatingchannel: String? = nil, originatingto: String? = nil, originatingaccountid: String? = nil, originatingthreadid: String? = nil, attachments: [AnyCodable]? = nil, timeoutms: Int? = nil, systeminputprovenance: [String: AnyCodable]? = nil, systemprovenancereceipt: String? = nil, suppresscommandinterpretation: Bool? = nil, expectedsessionroutingcontract: String? = nil, idempotencykey: String) { self.init( sessionkey: sessionkey, agentid: agentid, sessionid: sessionid, message: message, thinking: thinking, fastmodevalue: fastmode.map { AnyCodable($0) }, fastautoonseconds: nil, deliver: deliver, originatingchannel: originatingchannel, originatingto: originatingto, originatingaccountid: originatingaccountid, originatingthreadid: originatingthreadid, attachments: attachments, timeoutms: timeoutms, systeminputprovenance: systeminputprovenance, systemprovenancereceipt: systemprovenancereceipt, suppresscommandinterpretation: suppresscommandinterpretation, expectedsessionroutingcontract: expectedsessionroutingcontract, idempotencykey: idempotencykey) } private enum CodingKeys: String, CodingKey { case sessionkey = "sessionKey" case agentid = "agentId" case sessionid = "sessionId" case message case thinking case fastmodevalue = "fastMode" case fastautoonseconds = "fastAutoOnSeconds" case deliver case originatingchannel = "originatingChannel" case originatingto = "originatingTo" case originatingaccountid = "originatingAccountId" case originatingthreadid = "originatingThreadId" case attachments case timeoutms = "timeoutMs" case systeminputprovenance = "systemInputProvenance" case systemprovenancereceipt = "systemProvenanceReceipt" case suppresscommandinterpretation = "suppressCommandInterpretation" case expectedsessionroutingcontract = "expectedSessionRoutingContract" case idempotencykey = "idempotencyKey" } } public struct ChatAbortParams: Codable, Sendable { public let sessionkey: String public let agentid: String? public let runid: String? public let preservesideruns: Bool? public init( sessionkey: String, agentid: String? = nil, runid: String? = nil, preservesideruns: Bool? = nil) { self.sessionkey = sessionkey self.agentid = agentid self.runid = runid self.preservesideruns = preservesideruns } private enum CodingKeys: String, CodingKey { case sessionkey = "sessionKey" case agentid = "agentId" case runid = "runId" case preservesideruns = "preserveSideRuns" } } public struct ChatInjectParams: Codable, Sendable { public let sessionkey: String public let agentid: String? public let message: String public let label: String? public init( sessionkey: String, agentid: String? = nil, message: String, label: String? = nil) { self.sessionkey = sessionkey self.agentid = agentid self.message = message self.label = label } private enum CodingKeys: String, CodingKey { case sessionkey = "sessionKey" case agentid = "agentId" case message case label } } public struct ChatDeltaEvent: Codable, Sendable { public let runid: String public let sessionkey: String public let agentid: String? public let spawnedby: String? public let seq: Int public let state: String public let message: AnyCodable? public let deltatext: String public let replace: Bool? public let usage: AnyCodable? public init( runid: String, sessionkey: String, agentid: String? = nil, spawnedby: String? = nil, seq: Int, state: String, message: AnyCodable? = nil, deltatext: String, replace: Bool? = nil, usage: AnyCodable? = nil) { self.runid = runid self.sessionkey = sessionkey self.agentid = agentid self.spawnedby = spawnedby self.seq = seq self.state = state self.message = message self.deltatext = deltatext self.replace = replace self.usage = usage } private enum CodingKeys: String, CodingKey { case runid = "runId" case sessionkey = "sessionKey" case agentid = "agentId" case spawnedby = "spawnedBy" case seq case state case message case deltatext = "deltaText" case replace case usage } } public struct ChatFinalEvent: Codable, Sendable { public let runid: String public let sessionkey: String public let agentid: String? public let spawnedby: String? public let seq: Int public let state: String public let message: AnyCodable? public let usage: AnyCodable? public let stopreason: String? public init( runid: String, sessionkey: String, agentid: String? = nil, spawnedby: String? = nil, seq: Int, state: String, message: AnyCodable? = nil, usage: AnyCodable? = nil, stopreason: String? = nil) { self.runid = runid self.sessionkey = sessionkey self.agentid = agentid self.spawnedby = spawnedby self.seq = seq self.state = state self.message = message self.usage = usage self.stopreason = stopreason } private enum CodingKeys: String, CodingKey { case runid = "runId" case sessionkey = "sessionKey" case agentid = "agentId" case spawnedby = "spawnedBy" case seq case state case message case usage case stopreason = "stopReason" } } public struct ChatAbortedEvent: Codable, Sendable { public let runid: String public let sessionkey: String public let agentid: String? public let spawnedby: String? public let seq: Int public let state: String public let message: AnyCodable? public let errormessage: String? public let stopreason: String? public init( runid: String, sessionkey: String, agentid: String? = nil, spawnedby: String? = nil, seq: Int, state: String, message: AnyCodable? = nil, errormessage: String? = nil, stopreason: String? = nil) { self.runid = runid self.sessionkey = sessionkey self.agentid = agentid self.spawnedby = spawnedby self.seq = seq self.state = state self.message = message self.errormessage = errormessage self.stopreason = stopreason } private enum CodingKeys: String, CodingKey { case runid = "runId" case sessionkey = "sessionKey" case agentid = "agentId" case spawnedby = "spawnedBy" case seq case state case message case errormessage = "errorMessage" case stopreason = "stopReason" } } public struct ChatErrorEvent: Codable, Sendable { public let runid: String public let sessionkey: String public let agentid: String? public let spawnedby: String? public let seq: Int public let state: String public let message: AnyCodable? public let errormessage: String? public let errorkind: AnyCodable? public let usage: AnyCodable? public let stopreason: String? public init( runid: String, sessionkey: String, agentid: String? = nil, spawnedby: String? = nil, seq: Int, state: String, message: AnyCodable? = nil, errormessage: String? = nil, errorkind: AnyCodable? = nil, usage: AnyCodable? = nil, stopreason: String? = nil) { self.runid = runid self.sessionkey = sessionkey self.agentid = agentid self.spawnedby = spawnedby self.seq = seq self.state = state self.message = message self.errormessage = errormessage self.errorkind = errorkind self.usage = usage self.stopreason = stopreason } private enum CodingKeys: String, CodingKey { case runid = "runId" case sessionkey = "sessionKey" case agentid = "agentId" case spawnedby = "spawnedBy" case seq case state case message case errormessage = "errorMessage" case errorkind = "errorKind" case usage case stopreason = "stopReason" } } public struct UpdateStatusParams: Codable, Sendable {} public struct UpdateRunParams: Codable, Sendable { public let sessionkey: String? public let deliverycontext: [String: AnyCodable]? public let note: String? public let continuationmessage: String? public let restartdelayms: Int? public let timeoutms: Int? public init( sessionkey: String? = nil, deliverycontext: [String: AnyCodable]? = nil, note: String? = nil, continuationmessage: String? = nil, restartdelayms: Int? = nil, timeoutms: Int? = nil) { self.sessionkey = sessionkey self.deliverycontext = deliverycontext self.note = note self.continuationmessage = continuationmessage self.restartdelayms = restartdelayms self.timeoutms = timeoutms } private enum CodingKeys: String, CodingKey { case sessionkey = "sessionKey" case deliverycontext = "deliveryContext" case note case continuationmessage = "continuationMessage" case restartdelayms = "restartDelayMs" case timeoutms = "timeoutMs" } } public struct TickEvent: Codable, Sendable { public let ts: Int public init( ts: Int) { self.ts = ts } private enum CodingKeys: String, CodingKey { case ts } } public struct ShutdownEvent: Codable, Sendable { public let reason: String public let restartexpectedms: Int? public init( reason: String, restartexpectedms: Int? = nil) { self.reason = reason self.restartexpectedms = restartexpectedms } private enum CodingKeys: String, CodingKey { case reason case restartexpectedms = "restartExpectedMs" } } public enum GatewaySuspendPrepareResult: Codable, Sendable { case busy(GatewaySuspendPrepareBusyResult) case ready(GatewaySuspendPrepareReadyResult) private enum CodingKeys: String, CodingKey { case discriminator = "status" } public init(from decoder: Decoder) throws { let container = try decoder.container(keyedBy: CodingKeys.self) let discriminator = try container.decode(String.self, forKey: .discriminator) switch discriminator { case "busy": self = try .busy(GatewaySuspendPrepareBusyResult(from: decoder)) case "ready": self = try .ready(GatewaySuspendPrepareReadyResult(from: decoder)) default: throw DecodingError.dataCorruptedError( forKey: .discriminator, in: container, debugDescription: "Unknown GatewaySuspendPrepareResult discriminator value" ) } } public func encode(to encoder: Encoder) throws { switch self { case .busy(let value): try value.encode(to: encoder) case .ready(let value): try value.encode(to: encoder) } } } public enum GatewaySuspendStatusResult: Codable, Sendable { case running(GatewaySuspendStatusRunningResult) case ready(GatewaySuspendStatusReadyResult) private enum CodingKeys: String, CodingKey { case discriminator = "status" } public init(from decoder: Decoder) throws { let container = try decoder.container(keyedBy: CodingKeys.self) let discriminator = try container.decode(String.self, forKey: .discriminator) switch discriminator { case "running": self = try .running(GatewaySuspendStatusRunningResult(from: decoder)) case "ready": self = try .ready(GatewaySuspendStatusReadyResult(from: decoder)) default: throw DecodingError.dataCorruptedError( forKey: .discriminator, in: container, debugDescription: "Unknown GatewaySuspendStatusResult discriminator value" ) } } public func encode(to encoder: Encoder) throws { switch self { case .running(let value): try value.encode(to: encoder) case .ready(let value): try value.encode(to: encoder) } } } public enum AuditActivityEventV1: Codable, Sendable { case agentRun(AuditActivityAgentRunV1) case toolAction(AuditActivityToolActionV1) case inboundMessage(AuditActivityInboundMessageV1) case outboundMessage(AuditActivityOutboundMessageV1) private enum CodingKeys: String, CodingKey { case discriminator = "eventType" } public init(from decoder: Decoder) throws { let container = try decoder.container(keyedBy: CodingKeys.self) let discriminator = try container.decode(String.self, forKey: .discriminator) switch discriminator { case "agent_run": self = try .agentRun(AuditActivityAgentRunV1(from: decoder)) case "tool_action": self = try .toolAction(AuditActivityToolActionV1(from: decoder)) case "inbound_message": self = try .inboundMessage(AuditActivityInboundMessageV1(from: decoder)) case "outbound_message": self = try .outboundMessage(AuditActivityOutboundMessageV1(from: decoder)) default: throw DecodingError.dataCorruptedError( forKey: .discriminator, in: container, debugDescription: "Unknown AuditActivityEventV1 discriminator value" ) } } public func encode(to encoder: Encoder) throws { switch self { case .agentRun(let value): try value.encode(to: encoder) case .toolAction(let value): try value.encode(to: encoder) case .inboundMessage(let value): try value.encode(to: encoder) case .outboundMessage(let value): try value.encode(to: encoder) } } } public enum ApprovalPresentation: Codable, Sendable { case exec(ExecApprovalPresentation) case plugin(PluginApprovalPresentation) private enum CodingKeys: String, CodingKey { case discriminator = "kind" } public init(from decoder: Decoder) throws { let container = try decoder.container(keyedBy: CodingKeys.self) let discriminator = try container.decode(String.self, forKey: .discriminator) switch discriminator { case "exec": self = try .exec(ExecApprovalPresentation(from: decoder)) case "plugin": self = try .plugin(PluginApprovalPresentation(from: decoder)) default: throw DecodingError.dataCorruptedError( forKey: .discriminator, in: container, debugDescription: "Unknown ApprovalPresentation discriminator value" ) } } public func encode(to encoder: Encoder) throws { switch self { case .exec(let value): try value.encode(to: encoder) case .plugin(let value): try value.encode(to: encoder) } } } public enum ApprovalSnapshot: Codable, Sendable { case pending(PendingApprovalSnapshot) case allowed(AllowedApprovalSnapshot) case denied(DeniedApprovalSnapshot) case expired(ExpiredApprovalSnapshot) case cancelled(CancelledApprovalSnapshot) private enum CodingKeys: String, CodingKey { case discriminator = "status" } public init(from decoder: Decoder) throws { let container = try decoder.container(keyedBy: CodingKeys.self) let discriminator = try container.decode(String.self, forKey: .discriminator) switch discriminator { case "pending": self = try .pending(PendingApprovalSnapshot(from: decoder)) case "allowed": self = try .allowed(AllowedApprovalSnapshot(from: decoder)) case "denied": self = try .denied(DeniedApprovalSnapshot(from: decoder)) case "expired": self = try .expired(ExpiredApprovalSnapshot(from: decoder)) case "cancelled": self = try .cancelled(CancelledApprovalSnapshot(from: decoder)) default: throw DecodingError.dataCorruptedError( forKey: .discriminator, in: container, debugDescription: "Unknown ApprovalSnapshot discriminator value" ) } } public func encode(to encoder: Encoder) throws { switch self { case .pending(let value): try value.encode(to: encoder) case .allowed(let value): try value.encode(to: encoder) case .denied(let value): try value.encode(to: encoder) case .expired(let value): try value.encode(to: encoder) case .cancelled(let value): try value.encode(to: encoder) } } } public enum TerminalApprovalSnapshot: Codable, Sendable { case allowed(AllowedApprovalSnapshot) case denied(DeniedApprovalSnapshot) case expired(ExpiredApprovalSnapshot) case cancelled(CancelledApprovalSnapshot) private enum CodingKeys: String, CodingKey { case discriminator = "status" } public init(from decoder: Decoder) throws { let container = try decoder.container(keyedBy: CodingKeys.self) let discriminator = try container.decode(String.self, forKey: .discriminator) switch discriminator { case "allowed": self = try .allowed(AllowedApprovalSnapshot(from: decoder)) case "denied": self = try .denied(DeniedApprovalSnapshot(from: decoder)) case "expired": self = try .expired(ExpiredApprovalSnapshot(from: decoder)) case "cancelled": self = try .cancelled(CancelledApprovalSnapshot(from: decoder)) default: throw DecodingError.dataCorruptedError( forKey: .discriminator, in: container, debugDescription: "Unknown TerminalApprovalSnapshot discriminator value" ) } } public func encode(to encoder: Encoder) throws { switch self { case .allowed(let value): try value.encode(to: encoder) case .denied(let value): try value.encode(to: encoder) case .expired(let value): try value.encode(to: encoder) case .cancelled(let value): try value.encode(to: encoder) } } } public enum SessionApprovalEvent: Codable, Sendable { case pending(PendingSessionApprovalEvent) case terminal(TerminalSessionApprovalEvent) private enum CodingKeys: String, CodingKey { case discriminator = "phase" } public init(from decoder: Decoder) throws { let container = try decoder.container(keyedBy: CodingKeys.self) let discriminator = try container.decode(String.self, forKey: .discriminator) switch discriminator { case "pending": self = try .pending(PendingSessionApprovalEvent(from: decoder)) case "terminal": self = try .terminal(TerminalSessionApprovalEvent(from: decoder)) default: throw DecodingError.dataCorruptedError( forKey: .discriminator, in: container, debugDescription: "Unknown SessionApprovalEvent discriminator value" ) } } public func encode(to encoder: Encoder) throws { switch self { case .pending(let value): try value.encode(to: encoder) case .terminal(let value): try value.encode(to: encoder) } } } public enum PluginCatalogInstallAction: Codable, Sendable { case clawhub(PluginCatalogClawHubInstall) case official(PluginCatalogOfficialInstall) private enum CodingKeys: String, CodingKey { case discriminator = "source" } public init(from decoder: Decoder) throws { let container = try decoder.container(keyedBy: CodingKeys.self) let discriminator = try container.decode(String.self, forKey: .discriminator) switch discriminator { case "clawhub": self = try .clawhub(PluginCatalogClawHubInstall(from: decoder)) case "official": self = try .official(PluginCatalogOfficialInstall(from: decoder)) default: throw DecodingError.dataCorruptedError( forKey: .discriminator, in: container, debugDescription: "Unknown PluginCatalogInstallAction discriminator value" ) } } public func encode(to encoder: Encoder) throws { switch self { case .clawhub(let value): try value.encode(to: encoder) case .official(let value): try value.encode(to: encoder) } } } public enum PluginsSessionActionResult: Codable, Sendable { case success(PluginsSessionActionSuccessResult) case failure(PluginsSessionActionFailureResult) private enum CodingKeys: String, CodingKey { case discriminator = "ok" } public init(from decoder: Decoder) throws { let container = try decoder.container(keyedBy: CodingKeys.self) let discriminator = try container.decode(Bool.self, forKey: .discriminator) switch discriminator { case true: self = try .success(PluginsSessionActionSuccessResult(from: decoder)) case false: self = try .failure(PluginsSessionActionFailureResult(from: decoder)) } } public func encode(to encoder: Encoder) throws { switch self { case .success(let value): try value.encode(to: encoder) case .failure(let value): try value.encode(to: encoder) } } } public enum ChatEvent: Codable, Sendable { case delta(ChatDeltaEvent) case final(ChatFinalEvent) case aborted(ChatAbortedEvent) case error(ChatErrorEvent) private enum CodingKeys: String, CodingKey { case discriminator = "state" } public init(from decoder: Decoder) throws { let container = try decoder.container(keyedBy: CodingKeys.self) let discriminator = try container.decode(String.self, forKey: .discriminator) switch discriminator { case "delta": self = try .delta(ChatDeltaEvent(from: decoder)) case "final": self = try .final(ChatFinalEvent(from: decoder)) case "aborted": self = try .aborted(ChatAbortedEvent(from: decoder)) case "error": self = try .error(ChatErrorEvent(from: decoder)) default: throw DecodingError.dataCorruptedError( forKey: .discriminator, in: container, debugDescription: "Unknown ChatEvent discriminator value" ) } } public func encode(to encoder: Encoder) throws { switch self { case .delta(let value): try value.encode(to: encoder) case .final(let value): try value.encode(to: encoder) case .aborted(let value): try value.encode(to: encoder) case .error(let value): try value.encode(to: encoder) } } } public enum GatewayFrame: Codable, Sendable { case req(RequestFrame) case res(ResponseFrame) case event(EventFrame) case unknown(type: String, raw: [String: AnyCodable]) private enum CodingKeys: String, CodingKey { case type } public init(from decoder: Decoder) throws { let typeContainer = try decoder.container(keyedBy: CodingKeys.self) let type = try typeContainer.decode(String.self, forKey: .type) switch type { case "req": self = try .req(RequestFrame(from: decoder)) case "res": self = try .res(ResponseFrame(from: decoder)) case "event": self = try .event(EventFrame(from: decoder)) default: let container = try decoder.singleValueContainer() let raw = try container.decode([String: AnyCodable].self) self = .unknown(type: type, raw: raw) } } public func encode(to encoder: Encoder) throws { switch self { case let .req(v): try v.encode(to: encoder) case let .res(v): try v.encode(to: encoder) case let .event(v): try v.encode(to: encoder) case let .unknown(_, raw): var container = encoder.singleValueContainer() try container.encode(raw) } } }