fix: strip openclaw download artifact bodies

This commit is contained in:
Haitao Pan 2026-05-06 13:09:19 +08:00
parent 1781a01f80
commit d63bcc8022
2 changed files with 21 additions and 11 deletions

View File

@ -809,14 +809,14 @@ func openClawArtifactListHasScopedArtifact(raw any) bool {
switch values := raw.(type) {
case []map[string]any:
for _, artifact := range values {
if strings.HasPrefix(strings.TrimSpace(shared.StringArg(artifact, "artifactScope", "")), ".xworkmate/artifacts/tasks/") {
if openClawArtifactHasBridgeDownloadRef(artifact) {
return true
}
}
case []any:
for _, item := range values {
artifact := shared.AsMap(item)
if strings.HasPrefix(strings.TrimSpace(shared.StringArg(artifact, "artifactScope", "")), ".xworkmate/artifacts/tasks/") {
if openClawArtifactHasBridgeDownloadRef(artifact) {
return true
}
}
@ -824,6 +824,17 @@ func openClawArtifactListHasScopedArtifact(raw any) bool {
return false
}
func openClawArtifactHasBridgeDownloadRef(artifact map[string]any) bool {
if strings.HasPrefix(strings.TrimSpace(shared.StringArg(artifact, "artifactScope", "")), ".xworkmate/artifacts/tasks/") {
return true
}
downloadURL := strings.TrimSpace(shared.StringArg(artifact, "downloadUrl", ""))
if downloadURL == "" {
downloadURL = strings.TrimSpace(shared.StringArg(artifact, "downloadURL", ""))
}
return strings.Contains(downloadURL, "/artifacts/openclaw/download")
}
func taskKindFromParams(params map[string]any, routing RoutingResult) TaskKind {
if parseBool(params["multiAgent"]) {
return TaskKindMultiAgent

View File

@ -811,15 +811,14 @@ func TestNormalizeResultStripsOpenClawInlineArtifactsAfterRecordNormalization(t
"output": "created files",
"artifacts": []any{
map[string]any{
"relativePath": "reports/final.md",
"label": "final.md",
"contentType": "text/markdown",
"sizeBytes": 12,
"sha256": "fake-sha256",
"artifactScope": ".xworkmate/artifacts/tasks/thread-openclaw-normalize/turn-openclaw-normalize",
"downloadUrl": "https://xworkmate-bridge.svc.plus/artifacts/openclaw/download?relativePath=reports%2Ffinal.md",
"encoding": "base64",
"content": "ZmluYWwgcmVwb3J0",
"relativePath": "reports/final.md",
"label": "final.md",
"contentType": "text/markdown",
"sizeBytes": 12,
"sha256": "fake-sha256",
"downloadUrl": "https://xworkmate-bridge.svc.plus/artifacts/openclaw/download?relativePath=reports%2Ffinal.md",
"encoding": "base64",
"content": "ZmluYWwgcmVwb3J0",
},
},
},