fix(protocol): Seedream 声明式结果 - 裸 b64_json 补全 data URL

声明式解析把 Ark/Seedream 的裸 b64_json 写成 DataURL 时未加 data: 前缀,导致图片任务在上游成功后仍报媒体结果下载失败。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
VicoHuandCursor committed 2026-09-17 18:15:32 +08:00
1 parent 1e228a04dc
commit 60bad8cad4
4 files changed
+79 -1

No files matched your search

@@ -784,3 +784,27 @@ func TestOfficialOpenAIAudioSpeedDefaultsInvalidAndZeroValues(t *testing.T) {
})
}
}
func TestOfficialArkSeedreamParsesB64JSONAsDataURL(t *testing.T) {
for _, tc := range []struct {
packageName, providerID string
}{
{"volcengine-ark-seedream.yingce-plugin", "volcengine-ark-image"},
{"volcengine-ark-agent-plan-seedream.yingce-plugin", "volcengine-ark-agent-plan-image"},
} {
t.Run(tc.providerID, func(t *testing.T) {
adapter := officialPackageAdapter(t, tc.packageName, tc.providerID)
result, err := adapter.ParseCreate(context.Background(), []byte(`{"created":1,"data":[{"b64_json":"aW1hZ2U=","output_format":"jpeg","size":"1824x1024"}]}`))
if err != nil {
t.Fatal(err)
}
if result.Result == nil || len(result.Result.Images) != 1 {
t.Fatalf("result = %#v", result.Result)
}
dataURL := result.Result.Images[0].DataURL
if dataURL != "data:image/jpeg;base64,aW1hZ2U=" {
t.Fatalf("DataURL = %q, want jpeg data URL from b64_json + output_format", dataURL)
}
})
}
}