From be3da5b85638f93ffe91e894cb5b32fc0a1f6623 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sat, 3 Jan 2026 15:04:24 +0000 Subject: [PATCH] fix: update protocol models and android parsing --- .../main/java/com/clawdis/android/tools/ToolDisplay.kt | 10 ++++++---- apps/macos/Sources/ClawdisProtocol/GatewayModels.swift | 6 +++++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/apps/android/app/src/main/java/com/clawdis/android/tools/ToolDisplay.kt b/apps/android/app/src/main/java/com/clawdis/android/tools/ToolDisplay.kt index 55d8d5bd7..ca0f7b83c 100644 --- a/apps/android/app/src/main/java/com/clawdis/android/tools/ToolDisplay.kt +++ b/apps/android/app/src/main/java/com/clawdis/android/tools/ToolDisplay.kt @@ -186,9 +186,10 @@ object ToolDisplayRegistry { if (firstLine.isEmpty()) return null return if (firstLine.length > 160) "${firstLine.take(157)}…" else firstLine } - value.booleanOrNull?.let { return it.toString() } - value.longOrNull?.let { return it.toString() } - value.doubleOrNull?.let { return it.toString() } + val raw = value.contentOrNull?.trim().orEmpty() + raw.toBooleanStrictOrNull()?.let { return it.toString() } + raw.toLongOrNull()?.let { return it.toString() } + raw.toDoubleOrNull()?.let { return it.toString() } } if (value is JsonArray) { val items = value.mapNotNull { renderValue(it) } @@ -215,6 +216,7 @@ object ToolDisplayRegistry { private fun JsonElement?.asNumberOrNull(): Double? { val primitive = this as? JsonPrimitive ?: return null - return primitive.doubleOrNull + val raw = primitive.contentOrNull ?: return null + return raw.toDoubleOrNull() } } diff --git a/apps/macos/Sources/ClawdisProtocol/GatewayModels.swift b/apps/macos/Sources/ClawdisProtocol/GatewayModels.swift index 8f507313f..9fe91a988 100644 --- a/apps/macos/Sources/ClawdisProtocol/GatewayModels.swift +++ b/apps/macos/Sources/ClawdisProtocol/GatewayModels.swift @@ -774,23 +774,27 @@ public struct ModelChoice: Codable { public let name: String public let provider: String public let contextwindow: Int? + public let reasoning: Bool? public init( id: String, name: String, provider: String, - contextwindow: Int? + contextwindow: Int?, + 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 case provider case contextwindow = "contextWindow" + case reasoning } }