36 lines
1.1 KiB
TypeScript
36 lines
1.1 KiB
TypeScript
import crypto from "node:crypto";
|
|
|
|
import type { ClawdbotConfig } from "../../config/config.js";
|
|
import { loadSessionStore, resolveStorePath, type SessionEntry } from "../../config/sessions.js";
|
|
|
|
export function resolveCronSession(params: {
|
|
cfg: ClawdbotConfig;
|
|
sessionKey: string;
|
|
nowMs: number;
|
|
agentId: string;
|
|
}) {
|
|
const sessionCfg = params.cfg.session;
|
|
const storePath = resolveStorePath(sessionCfg?.store, {
|
|
agentId: params.agentId,
|
|
});
|
|
const store = loadSessionStore(storePath);
|
|
const entry = store[params.sessionKey];
|
|
const sessionId = crypto.randomUUID();
|
|
const systemSent = false;
|
|
const sessionEntry: SessionEntry = {
|
|
sessionId,
|
|
updatedAt: params.nowMs,
|
|
systemSent,
|
|
thinkingLevel: entry?.thinkingLevel,
|
|
verboseLevel: entry?.verboseLevel,
|
|
model: entry?.model,
|
|
contextTokens: entry?.contextTokens,
|
|
sendPolicy: entry?.sendPolicy,
|
|
lastChannel: entry?.lastChannel,
|
|
lastTo: entry?.lastTo,
|
|
lastAccountId: entry?.lastAccountId,
|
|
skillsSnapshot: entry?.skillsSnapshot,
|
|
};
|
|
return { storePath, store, sessionEntry, systemSent, isNewSession: true };
|
|
}
|