feat(backend,frontend,mcp): saved messages take text, files, voices and archived messages, the one write to telegram

This commit is contained in:
hh committed 2026-10-28 01:53:48 +00:00
1 parent 2dd4e589c3
commit 58b4346166
22 files changed
+1091 -35

No files matched your search

+42 -1
View File
@@ -1,4 +1,4 @@
import { request } from "#lib/api/client.js";
import { request, requestForm } from "#lib/api/client.js";
import type {
Account,
Annotation,
@@ -597,6 +597,47 @@ export function transcribeMedia(
});
}
export interface SavedResult {
chat_id: number | null;
error: string | null;
message_id: number | null;
mode: "copied" | "forwarded" | "sent" | null;
status: "done" | "failed" | "pending";
}
export interface SavedDraft {
file?: File;
text?: string;
voice?: boolean;
}
export function sendToSaved(draft: SavedDraft): Promise<SavedResult> {
const form = new FormData();
form.set("account_id", String(accounts.selectedId));
if (draft.text) {
form.set("text", draft.text);
}
if (draft.file) {
form.set("file", draft.file);
form.set("voice", String(Boolean(draft.voice)));
}
return requestForm<SavedResult>("/saved", form);
}
export function forwardToSaved(
chatId: number,
messageId: number
): Promise<SavedResult> {
return request<SavedResult>("/saved/forward", {
body: {
account_id: accounts.selectedId,
chat_id: chatId,
message_id: messageId,
},
method: "POST",
});
}
export function listAnnotations(
options: { chatId?: number; messageId?: number } = {}
): Promise<Annotation[]> {