fix: restore canvas action bridge

This commit is contained in:
Peter Steinberger
2025-12-21 00:53:11 +01:00
parent 78159a9435
commit 2b2f13ca79
10 changed files with 86 additions and 10 deletions

View File

@@ -1,6 +1,17 @@
import Foundation
public enum ClawdisCanvasA2UIAction: Sendable {
public static func extractActionName(_ userAction: [String: Any]) -> String? {
let keys = ["name", "action"]
for key in keys {
if let raw = userAction[key] as? String {
let trimmed = raw.trimmingCharacters(in: .whitespacesAndNewlines)
if !trimmed.isEmpty { return trimmed }
}
}
return nil
}
public static func sanitizeTagValue(_ value: String) -> String {
let trimmed = value.trimmingCharacters(in: .whitespacesAndNewlines)
let nonEmpty = trimmed.isEmpty ? "-" : trimmed

View File

@@ -9,6 +9,13 @@ import Testing
#expect(ClawdisCanvasA2UIAction.sanitizeTagValue("macOS 26.2") == "macOS_26.2")
}
@Test func extractActionNameAcceptsNameOrAction() {
#expect(ClawdisCanvasA2UIAction.extractActionName(["name": "Hello"]) == "Hello")
#expect(ClawdisCanvasA2UIAction.extractActionName(["action": "Wave"]) == "Wave")
#expect(ClawdisCanvasA2UIAction.extractActionName(["name": " ", "action": "Fallback"]) == "Fallback")
#expect(ClawdisCanvasA2UIAction.extractActionName(["action": " "]) == nil)
}
@Test func formatAgentMessageIsTokenEfficientAndUnambiguous() {
let msg = ClawdisCanvasA2UIAction.formatAgentMessage(
actionName: "Get Weather",