Участники чата, промпты в файлах, личности только из кода
- Бот запоминает участников (имя, фамилия, ник, активность) и ID автора каждого сообщения - Упоминания в вопросе (@ник и по имени-ссылке) передаются модели с данными участника - Новые инструменты агента: list_chat_members, read_member_messages (поиск по нику/имени) - Бот обращается к людям по имени - Промпты вынесены в prompts/system.md и prompts/personas/<id>.md - Личности больше не редактируются из чата: скрипт seed синхронизирует их с БД при старте - Оставлена одна личность boltun (Dirty D) - Миграция старых баз: колонка messages.user_id Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
20
src/types.ts
20
src/types.ts
@@ -1,16 +1,34 @@
|
||||
/** Личность бота. Список задаётся в `constants/personas.ts` и заливается в БД скриптом `seed`. */
|
||||
export interface Persona {
|
||||
/** Латиница, цифры, _ и -: id попадает в callback_data (лимит 64 байта). */
|
||||
id: string;
|
||||
name: string;
|
||||
prompt: string;
|
||||
builtin: boolean;
|
||||
}
|
||||
|
||||
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 {
|
||||
chatId: number;
|
||||
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">;
|
||||
|
||||
Reference in New Issue
Block a user