feat: integrate Pi backend and Pi Web

This commit is contained in:
luckyyzh
2026-07-30 19:37:53 +08:00
commit 7392ab9dd7
1390 changed files with 337197 additions and 0 deletions
+39
View File
@@ -0,0 +1,39 @@
export interface ChatDraftImage {
data: string;
mimeType: string;
}
export interface ChatDraft {
value: string;
images: ChatDraftImage[];
}
const drafts = new Map<string, ChatDraft>();
function cloneDraft(draft: ChatDraft): ChatDraft {
return {
value: draft.value,
images: draft.images.map((image) => ({ ...image })),
};
}
function isEmptyDraft(draft: ChatDraft): boolean {
return !draft.value && draft.images.length === 0;
}
export function getDraft(key: string): ChatDraft | null {
const draft = drafts.get(key);
return draft ? cloneDraft(draft) : null;
}
export function setDraft(key: string, draft: ChatDraft): void {
if (isEmptyDraft(draft)) {
drafts.delete(key);
return;
}
drafts.set(key, cloneDraft(draft));
}
export function clearDraft(key: string): void {
drafts.delete(key);
}