Files
boltun-ai/src/types.ts
yunogasai b615518f22 Контекст диалога на Mastra Memory вместо своей таблицы
- Контекст диалога хранит Mastra Memory (LibSQL, memory.db рядом с DB_PATH), тред на чат
- Бюджет истории — messageHistory.maxTokens (CONTEXT_TOKEN_LIMIT, по умолчанию 12000)
- ToolCallFilter: результаты инструментов не попадают в прошлые реплики, внутри ответа — только свежий шаг
- Системный промпт стабилен для всего чата (кешируется провайдером); автор и упоминания — в <turn author_name>
- Фото передаются через context и не сохраняются в памяти
- maxSteps и maxOutputTokens (ANSWER_TOKEN_LIMIT) — в defaultOptions агента
- /context и /clear работают через Memory recall/deleteThread
- Удалены свои dialog_messages, dialog-repository и dialog-service

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 20:55:06 +02:00

45 lines
1.9 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/** Личность бота. Список задаётся в `constants/personas.ts` и заливается в БД скриптом `seed`. */
export interface Persona {
/** Латиница, цифры, _ и -: id попадает в callback_data (лимит 64 байта). */
id: string;
name: string;
prompt: string;
}
export interface ChatMessage {
chatId: number;
messageId: number;
/** Telegram ID автора; null — для сообщений от имени канала/группы и старых записей. */
userId: number | null;
/** Unix-время в секундах, как в Telegram. */
date: number;
author: string;
text: string;
replyToMessageId: number | null;
}
/** Участник чата, которого бот видел: писал сам или был упомянут по имени-ссылке. */
export interface ChatMember {
userId: number;
username: string | null;
firstName: string;
lastName: string | null;
/** Сколько его сообщений в сохранённой истории чата. */
messageCount: number;
/** Unix-время последнего сохранённого сообщения; 0 — сообщений в истории нет. */
lastSeen: number;
}
/** Данные пользователя Telegram, которые бот запоминает об участнике. */
export type MemberProfile = Pick<ChatMember, "userId" | "username" | "firstName" | "lastName">;
/** Откуда фото: из самого вопроса или из сообщения, на которое ответил спрашивающий. */
export type ImageSource = "question" | "replied";
/** Картинка, которую бот передаёт модели вместе с вопросом. */
export interface ImageAttachment {
data: Uint8Array;
mimeType: string;
source: ImageSource;
}