fix(canvas): 创作工作台 - 参考内容槽位遵循模型上限并保留现有视觉

保留当前项目样式,仅吸收参考内容主槽位展示、模型上限收敛和对应行为测试。

Refs #232
This commit is contained in:
echoD886
2026-08-15 21:23:26 +08:00
committed by GitHub
parent 5fc3483d90
commit 11d9d469f5
6 changed files with 117 additions and 16 deletions

View File

@@ -20,6 +20,20 @@ export function selectedCreationReferences(prompt: string, references: CreationR
return references.filter((reference) => prompt.includes(canvasResourceMentionToken(reference)));
}
export function reconcileCreationAttachmentLimit(attachments: CreationAttachment[], references: CreationReference[], maxReferences: number) {
const limit = Math.max(0, Math.floor(maxReferences));
if (attachments.length <= limit) return { attachments, removedReferences: [] as CreationReference[] };
const nextAttachments = attachments.slice(0, limit);
const removedAttachmentIds = new Set(attachments.slice(limit).map((attachment) => attachment.id));
const removedReferences = references.filter((reference) => reference.attachmentId && removedAttachmentIds.has(reference.attachmentId));
return { attachments: nextAttachments, removedReferences };
}
export function removeCreationReferenceTokens(value: string, references: CreationReference[]) {
return references.reduce((current, reference) => current.split(canvasResourceMentionToken(reference)).join(""), value);
}
export function displayCreationPrompt(prompt: string, references: CreationReference[]) {
return references.reduce((value, reference) => value.split(canvasResourceMentionToken(reference)).join(`@${reference.label}`), prompt);
}