From 39e482414a162407d80e1140a0c0b581017ff1c1 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Mon, 5 Jan 2026 00:26:52 +0000 Subject: [PATCH] chore: apply upstream autostash --- apps/android/app/build.gradle.kts | 4 +- .../java/com/clawdbot/android/NodeRuntime.kt | 1 - .../android/node/LocationCaptureManager.kt | 23 +- .../com/clawdbot/android/ui/SettingsSheet.kt | 4 +- .../com/clawdbot/android/ui/StatusPill.kt | 2 +- .../ClawdbotProtocol/GatewayModels.swift | 326 +++++++++++------- src/canvas-host/a2ui/.bundle.hash | 2 + 7 files changed, 230 insertions(+), 132 deletions(-) diff --git a/apps/android/app/build.gradle.kts b/apps/android/app/build.gradle.kts index 31d5f0eac..e4f3c193a 100644 --- a/apps/android/app/build.gradle.kts +++ b/apps/android/app/build.gradle.kts @@ -68,7 +68,7 @@ dependencies { implementation("androidx.core:core-ktx:1.17.0") implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.10.0") implementation("androidx.activity:activity-compose:1.12.2") - implementation("androidx.webkit:webkit:1.14.0") + implementation("androidx.webkit:webkit:1.15.0") implementation("androidx.compose.ui:ui") implementation("androidx.compose.ui:ui-tooling-preview") @@ -101,7 +101,7 @@ dependencies { testImplementation("io.kotest:kotest-runner-junit5-jvm:6.0.7") testImplementation("io.kotest:kotest-assertions-core-jvm:6.0.7") testImplementation("org.robolectric:robolectric:4.16") - testRuntimeOnly("org.junit.vintage:junit-vintage-engine:5.13.3") + testRuntimeOnly("org.junit.vintage:junit-vintage-engine:6.0.1") } tasks.withType().configureEach { diff --git a/apps/android/app/src/main/java/com/clawdbot/android/NodeRuntime.kt b/apps/android/app/src/main/java/com/clawdbot/android/NodeRuntime.kt index 14d1c27fe..c0c1b7b58 100644 --- a/apps/android/app/src/main/java/com/clawdbot/android/NodeRuntime.kt +++ b/apps/android/app/src/main/java/com/clawdbot/android/NodeRuntime.kt @@ -515,7 +515,6 @@ class NodeRuntime(context: Context) { } private fun hasBackgroundLocationPermission(): Boolean { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) return true return ( ContextCompat.checkSelfPermission(appContext, Manifest.permission.ACCESS_BACKGROUND_LOCATION) == PackageManager.PERMISSION_GRANTED diff --git a/apps/android/app/src/main/java/com/clawdbot/android/node/LocationCaptureManager.kt b/apps/android/app/src/main/java/com/clawdbot/android/node/LocationCaptureManager.kt index dab8593e7..c701be70d 100644 --- a/apps/android/app/src/main/java/com/clawdbot/android/node/LocationCaptureManager.kt +++ b/apps/android/app/src/main/java/com/clawdbot/android/node/LocationCaptureManager.kt @@ -1,10 +1,12 @@ package com.clawdbot.android.node -import android.annotation.SuppressLint +import android.Manifest import android.content.Context +import android.content.pm.PackageManager import android.location.Location import android.location.LocationManager import android.os.CancellationSignal +import androidx.core.content.ContextCompat import java.time.Instant import java.time.format.DateTimeFormatter import kotlinx.coroutines.Dispatchers @@ -64,6 +66,15 @@ class LocationCaptureManager(private val context: Context) { providers: List, maxAgeMs: Long?, ): Location? { + val fineOk = + ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) == + PackageManager.PERMISSION_GRANTED + val coarseOk = + ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_COARSE_LOCATION) == + PackageManager.PERMISSION_GRANTED + if (!fineOk && !coarseOk) { + throw IllegalStateException("LOCATION_PERMISSION_REQUIRED: grant Location permission") + } val now = System.currentTimeMillis() val candidates = providers.mapNotNull { provider -> manager.getLastKnownLocation(provider) } @@ -72,12 +83,20 @@ class LocationCaptureManager(private val context: Context) { return freshest } - @SuppressLint("MissingPermission") private suspend fun requestCurrent( manager: LocationManager, providers: List, timeoutMs: Long, ): Location { + val fineOk = + ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) == + PackageManager.PERMISSION_GRANTED + val coarseOk = + ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_COARSE_LOCATION) == + PackageManager.PERMISSION_GRANTED + if (!fineOk && !coarseOk) { + throw IllegalStateException("LOCATION_PERMISSION_REQUIRED: grant Location permission") + } val resolved = providers.firstOrNull { manager.isProviderEnabled(it) } ?: throw IllegalStateException("LOCATION_UNAVAILABLE: no providers available") diff --git a/apps/android/app/src/main/java/com/clawdbot/android/ui/SettingsSheet.kt b/apps/android/app/src/main/java/com/clawdbot/android/ui/SettingsSheet.kt index 21eb72daa..a140f3344 100644 --- a/apps/android/app/src/main/java/com/clawdbot/android/ui/SettingsSheet.kt +++ b/apps/android/app/src/main/java/com/clawdbot/android/ui/SettingsSheet.kt @@ -133,7 +133,7 @@ fun SettingsSheet(viewModel: MainViewModel) { if (requestedMode != null) { viewModel.setLocationMode(requestedMode) - if (requestedMode == LocationMode.Always && Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + if (requestedMode == LocationMode.Always) { val backgroundOk = ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_BACKGROUND_LOCATION) == PackageManager.PERMISSION_GRANTED @@ -191,7 +191,7 @@ fun SettingsSheet(viewModel: MainViewModel) { PackageManager.PERMISSION_GRANTED if (fineOk || coarseOk) { viewModel.setLocationMode(targetMode) - if (targetMode == LocationMode.Always && Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + if (targetMode == LocationMode.Always) { val backgroundOk = ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_BACKGROUND_LOCATION) == PackageManager.PERMISSION_GRANTED diff --git a/apps/android/app/src/main/java/com/clawdbot/android/ui/StatusPill.kt b/apps/android/app/src/main/java/com/clawdbot/android/ui/StatusPill.kt index db88a97f8..669d448ad 100644 --- a/apps/android/app/src/main/java/com/clawdbot/android/ui/StatusPill.kt +++ b/apps/android/app/src/main/java/com/clawdbot/android/ui/StatusPill.kt @@ -28,9 +28,9 @@ import androidx.compose.ui.unit.dp fun StatusPill( bridge: BridgeState, voiceEnabled: Boolean, - activity: StatusActivity? = null, onClick: () -> Unit, modifier: Modifier = Modifier, + activity: StatusActivity? = null, ) { Surface( onClick = onClick, diff --git a/apps/macos/Sources/ClawdbotProtocol/GatewayModels.swift b/apps/macos/Sources/ClawdbotProtocol/GatewayModels.swift index 65a629441..0eaefdfd2 100644 --- a/apps/macos/Sources/ClawdbotProtocol/GatewayModels.swift +++ b/apps/macos/Sources/ClawdbotProtocol/GatewayModels.swift @@ -26,8 +26,8 @@ public struct ConnectParams: Codable, Sendable { caps: [String]?, auth: [String: AnyCodable]?, locale: String?, - useragent: String? - ) { + useragent: String?) + { self.minprotocol = minprotocol self.maxprotocol = maxprotocol self.client = client @@ -36,6 +36,7 @@ public struct ConnectParams: Codable, Sendable { self.locale = locale self.useragent = useragent } + private enum CodingKeys: String, CodingKey { case minprotocol = "minProtocol" case maxprotocol = "maxProtocol" @@ -63,8 +64,8 @@ public struct HelloOk: Codable, Sendable { features: [String: AnyCodable], snapshot: Snapshot, canvashosturl: String?, - policy: [String: AnyCodable] - ) { + policy: [String: AnyCodable]) + { self.type = type self._protocol = _protocol self.server = server @@ -73,6 +74,7 @@ public struct HelloOk: Codable, Sendable { self.canvashosturl = canvashosturl self.policy = policy } + private enum CodingKeys: String, CodingKey { case type case _protocol = "protocol" @@ -94,13 +96,14 @@ public struct RequestFrame: Codable, Sendable { type: String, id: String, method: String, - params: AnyCodable? - ) { + params: AnyCodable?) + { self.type = type self.id = id self.method = method self.params = params } + private enum CodingKeys: String, CodingKey { case type case id @@ -121,14 +124,15 @@ public struct ResponseFrame: Codable, Sendable { id: String, ok: Bool, payload: AnyCodable?, - error: [String: AnyCodable]? - ) { + error: [String: AnyCodable]?) + { self.type = type self.id = id self.ok = ok self.payload = payload self.error = error } + private enum CodingKeys: String, CodingKey { case type case id @@ -150,14 +154,15 @@ public struct EventFrame: Codable, Sendable { event: String, payload: AnyCodable?, seq: Int?, - stateversion: [String: AnyCodable]? - ) { + stateversion: [String: AnyCodable]?) + { self.type = type self.event = event self.payload = payload self.seq = seq self.stateversion = stateversion } + private enum CodingKeys: String, CodingKey { case type case event @@ -195,8 +200,8 @@ public struct PresenceEntry: Codable, Sendable { tags: [String]?, text: String?, ts: Int, - instanceid: String? - ) { + instanceid: String?) + { self.host = host self.ip = ip self.version = version @@ -211,6 +216,7 @@ public struct PresenceEntry: Codable, Sendable { self.ts = ts self.instanceid = instanceid } + private enum CodingKeys: String, CodingKey { case host case ip @@ -234,11 +240,12 @@ public struct StateVersion: Codable, Sendable { public init( presence: Int, - health: Int - ) { + health: Int) + { self.presence = presence self.health = health } + private enum CodingKeys: String, CodingKey { case presence case health @@ -259,8 +266,8 @@ public struct Snapshot: Codable, Sendable { stateversion: StateVersion, uptimems: Int, configpath: String?, - statedir: String? - ) { + statedir: String?) + { self.presence = presence self.health = health self.stateversion = stateversion @@ -268,6 +275,7 @@ public struct Snapshot: Codable, Sendable { self.configpath = configpath self.statedir = statedir } + private enum CodingKeys: String, CodingKey { case presence case health @@ -290,14 +298,15 @@ public struct ErrorShape: Codable, Sendable { message: String, details: AnyCodable?, retryable: Bool?, - retryafterms: Int? - ) { + retryafterms: Int?) + { self.code = code self.message = message self.details = details self.retryable = retryable self.retryafterms = retryafterms } + private enum CodingKeys: String, CodingKey { case code case message @@ -319,14 +328,15 @@ public struct AgentEvent: Codable, Sendable { seq: Int, stream: String, ts: Int, - data: [String: AnyCodable] - ) { + data: [String: AnyCodable]) + { self.runid = runid self.seq = seq self.stream = stream self.ts = ts self.data = data } + private enum CodingKeys: String, CodingKey { case runid = "runId" case seq @@ -350,8 +360,8 @@ public struct SendParams: Codable, Sendable { mediaurl: String?, gifplayback: Bool?, provider: String?, - idempotencykey: String - ) { + idempotencykey: String) + { self.to = to self.message = message self.mediaurl = mediaurl @@ -359,6 +369,7 @@ public struct SendParams: Codable, Sendable { self.provider = provider self.idempotencykey = idempotencykey } + private enum CodingKeys: String, CodingKey { case to case message @@ -393,8 +404,8 @@ public struct AgentParams: Codable, Sendable { timeout: Int?, lane: String?, extrasystemprompt: String?, - idempotencykey: String - ) { + idempotencykey: String) + { self.message = message self.to = to self.sessionid = sessionid @@ -407,6 +418,7 @@ public struct AgentParams: Codable, Sendable { self.extrasystemprompt = extrasystemprompt self.idempotencykey = idempotencykey } + private enum CodingKeys: String, CodingKey { case message case to @@ -430,12 +442,13 @@ public struct AgentWaitParams: Codable, Sendable { public init( runid: String, afterms: Int?, - timeoutms: Int? - ) { + timeoutms: Int?) + { self.runid = runid self.afterms = afterms self.timeoutms = timeoutms } + private enum CodingKeys: String, CodingKey { case runid = "runId" case afterms = "afterMs" @@ -449,11 +462,12 @@ public struct WakeParams: Codable, Sendable { public init( mode: AnyCodable, - text: String - ) { + text: String) + { self.mode = mode self.text = text } + private enum CodingKeys: String, CodingKey { case mode case text @@ -482,8 +496,8 @@ public struct NodePairRequestParams: Codable, Sendable { caps: [String]?, commands: [String]?, remoteip: String?, - silent: Bool? - ) { + silent: Bool?) + { self.nodeid = nodeid self.displayname = displayname self.platform = platform @@ -495,6 +509,7 @@ public struct NodePairRequestParams: Codable, Sendable { self.remoteip = remoteip self.silent = silent } + private enum CodingKeys: String, CodingKey { case nodeid = "nodeId" case displayname = "displayName" @@ -511,15 +526,19 @@ public struct NodePairRequestParams: Codable, Sendable { public struct NodePairListParams: Codable, Sendable { } +||||||| Stash base +public struct NodePairListParams: Codable { +} public struct NodePairApproveParams: Codable, Sendable { public let requestid: String public init( - requestid: String - ) { + requestid: String) + { self.requestid = requestid } + private enum CodingKeys: String, CodingKey { case requestid = "requestId" } @@ -529,10 +548,11 @@ public struct NodePairRejectParams: Codable, Sendable { public let requestid: String public init( - requestid: String - ) { + requestid: String) + { self.requestid = requestid } + private enum CodingKeys: String, CodingKey { case requestid = "requestId" } @@ -544,11 +564,12 @@ public struct NodePairVerifyParams: Codable, Sendable { public init( nodeid: String, - token: String - ) { + token: String) + { self.nodeid = nodeid self.token = token } + private enum CodingKeys: String, CodingKey { case nodeid = "nodeId" case token @@ -561,11 +582,12 @@ public struct NodeRenameParams: Codable, Sendable { public init( nodeid: String, - displayname: String - ) { + displayname: String) + { self.nodeid = nodeid self.displayname = displayname } + private enum CodingKeys: String, CodingKey { case nodeid = "nodeId" case displayname = "displayName" @@ -574,15 +596,19 @@ public struct NodeRenameParams: Codable, Sendable { public struct NodeListParams: Codable, Sendable { } +||||||| Stash base +public struct NodeListParams: Codable { +} public struct NodeDescribeParams: Codable, Sendable { public let nodeid: String public init( - nodeid: String - ) { + nodeid: String) + { self.nodeid = nodeid } + private enum CodingKeys: String, CodingKey { case nodeid = "nodeId" } @@ -600,14 +626,15 @@ public struct NodeInvokeParams: Codable, Sendable { command: String, params: AnyCodable?, timeoutms: Int?, - idempotencykey: String - ) { + idempotencykey: String) + { self.nodeid = nodeid self.command = command self.params = params self.timeoutms = timeoutms self.idempotencykey = idempotencykey } + private enum CodingKeys: String, CodingKey { case nodeid = "nodeId" case command @@ -627,13 +654,14 @@ public struct SessionsListParams: Codable, Sendable { limit: Int?, activeminutes: Int?, includeglobal: Bool?, - includeunknown: Bool? - ) { + includeunknown: Bool?) + { self.limit = limit self.activeminutes = activeminutes self.includeglobal = includeglobal self.includeunknown = includeunknown } + private enum CodingKeys: String, CodingKey { case limit case activeminutes = "activeMinutes" @@ -658,8 +686,8 @@ public struct SessionsPatchParams: Codable, Sendable { elevatedlevel: AnyCodable?, model: AnyCodable?, sendpolicy: AnyCodable?, - groupactivation: AnyCodable? - ) { + groupactivation: AnyCodable?) + { self.key = key self.thinkinglevel = thinkinglevel self.verboselevel = verboselevel @@ -668,6 +696,7 @@ public struct SessionsPatchParams: Codable, Sendable { self.sendpolicy = sendpolicy self.groupactivation = groupactivation } + private enum CodingKeys: String, CodingKey { case key case thinkinglevel = "thinkingLevel" @@ -683,10 +712,11 @@ public struct SessionsResetParams: Codable, Sendable { public let key: String public init( - key: String - ) { + key: String) + { self.key = key } + private enum CodingKeys: String, CodingKey { case key } @@ -698,11 +728,12 @@ public struct SessionsDeleteParams: Codable, Sendable { public init( key: String, - deletetranscript: Bool? - ) { + deletetranscript: Bool?) + { self.key = key self.deletetranscript = deletetranscript } + private enum CodingKeys: String, CodingKey { case key case deletetranscript = "deleteTranscript" @@ -715,11 +746,12 @@ public struct SessionsCompactParams: Codable, Sendable { public init( key: String, - maxlines: Int? - ) { + maxlines: Int?) + { self.key = key self.maxlines = maxlines } + private enum CodingKeys: String, CodingKey { case key case maxlines = "maxLines" @@ -728,15 +760,19 @@ public struct SessionsCompactParams: Codable, Sendable { public struct ConfigGetParams: Codable, Sendable { } +||||||| Stash base +public struct ConfigGetParams: Codable { +} public struct ConfigSetParams: Codable, Sendable { public let raw: String public init( - raw: String - ) { + raw: String) + { self.raw = raw } + private enum CodingKeys: String, CodingKey { case raw } @@ -744,6 +780,9 @@ public struct ConfigSetParams: Codable, Sendable { public struct ConfigSchemaParams: Codable, Sendable { } +||||||| Stash base +public struct ConfigSchemaParams: Codable { +} public struct ConfigSchemaResponse: Codable, Sendable { public let schema: AnyCodable @@ -755,13 +794,14 @@ public struct ConfigSchemaResponse: Codable, Sendable { schema: AnyCodable, uihints: [String: AnyCodable], version: String, - generatedat: 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" @@ -776,11 +816,12 @@ public struct WizardStartParams: Codable, Sendable { public init( mode: AnyCodable?, - workspace: String? - ) { + workspace: String?) + { self.mode = mode self.workspace = workspace } + private enum CodingKeys: String, CodingKey { case mode case workspace @@ -793,11 +834,12 @@ public struct WizardNextParams: Codable, Sendable { public init( sessionid: String, - answer: [String: AnyCodable]? - ) { + answer: [String: AnyCodable]?) + { self.sessionid = sessionid self.answer = answer } + private enum CodingKeys: String, CodingKey { case sessionid = "sessionId" case answer @@ -808,10 +850,11 @@ public struct WizardCancelParams: Codable, Sendable { public let sessionid: String public init( - sessionid: String - ) { + sessionid: String) + { self.sessionid = sessionid } + private enum CodingKeys: String, CodingKey { case sessionid = "sessionId" } @@ -821,10 +864,11 @@ public struct WizardStatusParams: Codable, Sendable { public let sessionid: String public init( - sessionid: String - ) { + sessionid: String) + { self.sessionid = sessionid } + private enum CodingKeys: String, CodingKey { case sessionid = "sessionId" } @@ -850,8 +894,8 @@ public struct WizardStep: Codable, Sendable { initialvalue: AnyCodable?, placeholder: String?, sensitive: Bool?, - executor: AnyCodable? - ) { + executor: AnyCodable?) + { self.id = id self.type = type self.title = title @@ -862,6 +906,7 @@ public struct WizardStep: Codable, Sendable { self.sensitive = sensitive self.executor = executor } + private enum CodingKeys: String, CodingKey { case id case type @@ -885,13 +930,14 @@ public struct WizardNextResult: Codable, Sendable { done: Bool, step: [String: AnyCodable]?, status: AnyCodable?, - error: String? - ) { + error: String?) + { self.done = done self.step = step self.status = status self.error = error } + private enum CodingKeys: String, CodingKey { case done case step @@ -912,14 +958,15 @@ public struct WizardStartResult: Codable, Sendable { done: Bool, step: [String: AnyCodable]?, status: AnyCodable?, - error: String? - ) { + error: String?) + { 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 @@ -935,11 +982,12 @@ public struct WizardStatusResult: Codable, Sendable { public init( status: AnyCodable, - error: String? - ) { + error: String?) + { self.status = status self.error = error } + private enum CodingKeys: String, CodingKey { case status case error @@ -952,11 +1000,12 @@ public struct TalkModeParams: Codable, Sendable { public init( enabled: Bool, - phase: String? - ) { + phase: String?) + { self.enabled = enabled self.phase = phase } + private enum CodingKeys: String, CodingKey { case enabled case phase @@ -969,11 +1018,12 @@ public struct ProvidersStatusParams: Codable, Sendable { public init( probe: Bool?, - timeoutms: Int? - ) { + timeoutms: Int?) + { self.probe = probe self.timeoutms = timeoutms } + private enum CodingKeys: String, CodingKey { case probe case timeoutms = "timeoutMs" @@ -988,12 +1038,13 @@ public struct WebLoginStartParams: Codable, Sendable { public init( force: Bool?, timeoutms: Int?, - verbose: Bool? - ) { + verbose: Bool?) + { self.force = force self.timeoutms = timeoutms self.verbose = verbose } + private enum CodingKeys: String, CodingKey { case force case timeoutms = "timeoutMs" @@ -1005,10 +1056,11 @@ public struct WebLoginWaitParams: Codable, Sendable { public let timeoutms: Int? public init( - timeoutms: Int? - ) { + timeoutms: Int?) + { self.timeoutms = timeoutms } + private enum CodingKeys: String, CodingKey { case timeoutms = "timeoutMs" } @@ -1026,14 +1078,15 @@ public struct ModelChoice: Codable, Sendable { name: String, provider: String, contextwindow: Int?, - reasoning: Bool? - ) { + reasoning: Bool?) + { self.id = id self.name = name self.provider = provider self.contextwindow = contextwindow self.reasoning = reasoning } + private enum CodingKeys: String, CodingKey { case id case name @@ -1045,15 +1098,19 @@ public struct ModelChoice: Codable, Sendable { public struct ModelsListParams: Codable, Sendable { } +||||||| Stash base +public struct ModelsListParams: Codable { +} public struct ModelsListResult: Codable, Sendable { public let models: [ModelChoice] public init( - models: [ModelChoice] - ) { + models: [ModelChoice]) + { self.models = models } + private enum CodingKeys: String, CodingKey { case models } @@ -1061,6 +1118,9 @@ public struct ModelsListResult: Codable, Sendable { public struct SkillsStatusParams: Codable, Sendable { } +||||||| Stash base +public struct SkillsStatusParams: Codable { +} public struct SkillsInstallParams: Codable, Sendable { public let name: String @@ -1070,12 +1130,13 @@ public struct SkillsInstallParams: Codable, Sendable { public init( name: String, installid: String, - timeoutms: Int? - ) { + timeoutms: Int?) + { self.name = name self.installid = installid self.timeoutms = timeoutms } + private enum CodingKeys: String, CodingKey { case name case installid = "installId" @@ -1093,13 +1154,14 @@ public struct SkillsUpdateParams: Codable, Sendable { skillkey: String, enabled: Bool?, apikey: String?, - env: [String: AnyCodable]? - ) { + env: [String: AnyCodable]?) + { self.skillkey = skillkey self.enabled = enabled self.apikey = apikey self.env = env } + private enum CodingKeys: String, CodingKey { case skillkey = "skillKey" case enabled @@ -1134,8 +1196,8 @@ public struct CronJob: Codable, Sendable { wakemode: AnyCodable, payload: AnyCodable, isolation: [String: AnyCodable]?, - state: [String: AnyCodable] - ) { + state: [String: AnyCodable]) + { self.id = id self.name = name self.description = description @@ -1149,6 +1211,7 @@ public struct CronJob: Codable, Sendable { self.isolation = isolation self.state = state } + private enum CodingKeys: String, CodingKey { case id case name @@ -1169,10 +1232,11 @@ public struct CronListParams: Codable, Sendable { public let includedisabled: Bool? public init( - includedisabled: Bool? - ) { + includedisabled: Bool?) + { self.includedisabled = includedisabled } + private enum CodingKeys: String, CodingKey { case includedisabled = "includeDisabled" } @@ -1180,6 +1244,9 @@ public struct CronListParams: Codable, Sendable { public struct CronStatusParams: Codable, Sendable { } +||||||| Stash base +public struct CronStatusParams: Codable { +} public struct CronAddParams: Codable, Sendable { public let name: String @@ -1199,8 +1266,8 @@ public struct CronAddParams: Codable, Sendable { sessiontarget: AnyCodable, wakemode: AnyCodable, payload: AnyCodable, - isolation: [String: AnyCodable]? - ) { + isolation: [String: AnyCodable]?) + { self.name = name self.description = description self.enabled = enabled @@ -1210,6 +1277,7 @@ public struct CronAddParams: Codable, Sendable { self.payload = payload self.isolation = isolation } + private enum CodingKeys: String, CodingKey { case name case description @@ -1228,11 +1296,12 @@ public struct CronUpdateParams: Codable, Sendable { public init( id: String, - patch: [String: AnyCodable] - ) { + patch: [String: AnyCodable]) + { self.id = id self.patch = patch } + private enum CodingKeys: String, CodingKey { case id case patch @@ -1243,10 +1312,11 @@ public struct CronRemoveParams: Codable, Sendable { public let id: String public init( - id: String - ) { + id: String) + { self.id = id } + private enum CodingKeys: String, CodingKey { case id } @@ -1258,11 +1328,12 @@ public struct CronRunParams: Codable, Sendable { public init( id: String, - mode: AnyCodable? - ) { + mode: AnyCodable?) + { self.id = id self.mode = mode } + private enum CodingKeys: String, CodingKey { case id case mode @@ -1275,11 +1346,12 @@ public struct CronRunsParams: Codable, Sendable { public init( id: String, - limit: Int? - ) { + limit: Int?) + { self.id = id self.limit = limit } + private enum CodingKeys: String, CodingKey { case id case limit @@ -1306,8 +1378,8 @@ public struct CronRunLogEntry: Codable, Sendable { summary: String?, runatms: Int?, durationms: Int?, - nextrunatms: Int? - ) { + nextrunatms: Int?) + { self.ts = ts self.jobid = jobid self.action = action @@ -1318,6 +1390,7 @@ public struct CronRunLogEntry: Codable, Sendable { self.durationms = durationms self.nextrunatms = nextrunatms } + private enum CodingKeys: String, CodingKey { case ts case jobid = "jobId" @@ -1337,11 +1410,12 @@ public struct ChatHistoryParams: Codable, Sendable { public init( sessionkey: String, - limit: Int? - ) { + limit: Int?) + { self.sessionkey = sessionkey self.limit = limit } + private enum CodingKeys: String, CodingKey { case sessionkey = "sessionKey" case limit @@ -1364,8 +1438,8 @@ public struct ChatSendParams: Codable, Sendable { deliver: Bool?, attachments: [AnyCodable]?, timeoutms: Int?, - idempotencykey: String - ) { + idempotencykey: String) + { self.sessionkey = sessionkey self.message = message self.thinking = thinking @@ -1374,6 +1448,7 @@ public struct ChatSendParams: Codable, Sendable { self.timeoutms = timeoutms self.idempotencykey = idempotencykey } + private enum CodingKeys: String, CodingKey { case sessionkey = "sessionKey" case message @@ -1391,11 +1466,12 @@ public struct ChatAbortParams: Codable, Sendable { public init( sessionkey: String, - runid: String - ) { + runid: String) + { self.sessionkey = sessionkey self.runid = runid } + private enum CodingKeys: String, CodingKey { case sessionkey = "sessionKey" case runid = "runId" @@ -1420,8 +1496,8 @@ public struct ChatEvent: Codable, Sendable { message: AnyCodable?, errormessage: String?, usage: AnyCodable?, - stopreason: String? - ) { + stopreason: String?) + { self.runid = runid self.sessionkey = sessionkey self.seq = seq @@ -1431,6 +1507,7 @@ public struct ChatEvent: Codable, Sendable { self.usage = usage self.stopreason = stopreason } + private enum CodingKeys: String, CodingKey { case runid = "runId" case sessionkey = "sessionKey" @@ -1447,10 +1524,11 @@ public struct TickEvent: Codable, Sendable { public let ts: Int public init( - ts: Int - ) { + ts: Int) + { self.ts = ts } + private enum CodingKeys: String, CodingKey { case ts } @@ -1462,11 +1540,12 @@ public struct ShutdownEvent: Codable, Sendable { public init( reason: String, - restartexpectedms: Int? - ) { + restartexpectedms: Int?) + { self.reason = reason self.restartexpectedms = restartexpectedms } + private enum CodingKeys: String, CodingKey { case reason case restartexpectedms = "restartExpectedMs" @@ -1488,11 +1567,11 @@ public enum GatewayFrame: Codable, Sendable { let type = try typeContainer.decode(String.self, forKey: .type) switch type { case "req": - self = .req(try RequestFrame(from: decoder)) + self = try .req(RequestFrame(from: decoder)) case "res": - self = .res(try ResponseFrame(from: decoder)) + self = try .res(ResponseFrame(from: decoder)) case "event": - self = .event(try EventFrame(from: decoder)) + self = try .event(EventFrame(from: decoder)) default: let container = try decoder.singleValueContainer() let raw = try container.decode([String: AnyCodable].self) @@ -1502,13 +1581,12 @@ public enum GatewayFrame: Codable, Sendable { public func encode(to encoder: Encoder) throws { switch self { - case .req(let v): try v.encode(to: encoder) - case .res(let v): try v.encode(to: encoder) - case .event(let v): try v.encode(to: encoder) - case .unknown(_, let raw): + 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) } } - } diff --git a/src/canvas-host/a2ui/.bundle.hash b/src/canvas-host/a2ui/.bundle.hash index d7d0f8adb..c99d5f34f 100644 --- a/src/canvas-host/a2ui/.bundle.hash +++ b/src/canvas-host/a2ui/.bundle.hash @@ -1 +1,3 @@ 68f18193053997f3dee16de6b0be0bcd97dc70ff8200c77f687479e8b19b78e1 +||||||| Stash base +7daf1cbf58ef395b74c2690c439ac7b3cb536e8eb124baf72ad41da4f542204d