feat(assets): 素材库 - 方舟素材 ID 引用与人像认证标记

- 素材编辑弹窗新增「方舟素材 ID」(asset- 前缀校验)与「人像认证」开关,
  卡片封面显示人像认证徽章,详情抽屉展示方舟素材 ID
- 画布图片节点绑定的素材录入方舟素材 ID 后,方舟视频渠道(volcengine-ark-video
  或 Ark Plan BaseURL)生成时参考图直接提交 asset:// 引用,跳过可信素材上传同步;
  浏览器直连路径同样优先 asset://;非方舟渠道与本地回退路径不受影响
- 素材字段随 payload_json 透传,AssetBase 与 parseAssetRecord 白名单同步扩展
This commit is contained in:
VicoHu
2026-09-11 14:07:31 +08:00
committed by ddCat
parent 900420390e
commit 54e58213ba
8 changed files with 75 additions and 11 deletions

View File

@@ -24,6 +24,8 @@ export function parseAssetRecord(value: unknown): Asset {
const primaryVersionId = optionalTrimmedString(value, "primaryVersionId");
const source = optionalString(value, "source");
const note = optionalString(value, "note");
const arkAssetId = optionalTrimmedString(value, "arkAssetId");
const portraitCertified = optionalBoolean(value, "portraitCertified");
const metadata = optionalRecord(value.metadata, "metadata");
const category = value.category === undefined ? undefined : parseAssetCategory(value.category);
const data = requireRecord(value.data, "data");
@@ -40,6 +42,8 @@ export function parseAssetRecord(value: unknown): Asset {
...(primaryVersionId ? { primaryVersionId } : {}),
...(source !== undefined ? { source } : {}),
...(note !== undefined ? { note } : {}),
...(arkAssetId ? { arkAssetId } : {}),
...(portraitCertified !== undefined ? { portraitCertified } : {}),
...(metadata ? { metadata } : {}),
};