Files
EJClaw/src/message-runtime-task-context.ts

36 lines
997 B
TypeScript

import { getMessagesSince, getRecentChatMessages } from './db.js';
import type { NewMessage, PairedTask } from './types.js';
export const TASK_USER_CONTEXT_START_SKEW_MS = 5_000;
const TASK_CONTEXT_MESSAGE_LIMIT = 200;
const NO_BOT_PREFIX_FILTER = '';
function taskContextStartTimestamp(task: PairedTask): string | null {
const taskCreatedMs = Date.parse(task.created_at);
if (!Number.isFinite(taskCreatedMs)) {
return null;
}
return new Date(
taskCreatedMs - TASK_USER_CONTEXT_START_SKEW_MS,
).toISOString();
}
export function getTaskContextMessages(
chatJid: string,
task: PairedTask,
): NewMessage[] {
const sinceTimestamp = taskContextStartTimestamp(task);
if (!sinceTimestamp) {
return getRecentChatMessages(chatJid, 20);
}
const taskMessages = getMessagesSince(
chatJid,
sinceTimestamp,
NO_BOT_PREFIX_FILTER,
TASK_CONTEXT_MESSAGE_LIMIT,
);
return taskMessages.length > 0
? taskMessages
: getRecentChatMessages(chatJid, 20);
}