Files
openclaw/src/auto-reply/reply/message-preprocess-hooks.ts
2026-03-02 22:51:28 +00:00

51 lines
1.4 KiB
TypeScript

import type { OpenClawConfig } from "../../config/config.js";
import { fireAndForgetHook } from "../../hooks/fire-and-forget.js";
import { createInternalHookEvent, triggerInternalHook } from "../../hooks/internal-hooks.js";
import {
deriveInboundMessageHookContext,
toInternalMessagePreprocessedContext,
toInternalMessageTranscribedContext,
} from "../../hooks/message-hook-mappers.js";
import type { FinalizedMsgContext } from "../templating.js";
export function emitPreAgentMessageHooks(params: {
ctx: FinalizedMsgContext;
cfg: OpenClawConfig;
isFastTestEnv: boolean;
}): void {
if (params.isFastTestEnv) {
return;
}
const sessionKey = params.ctx.SessionKey?.trim();
if (!sessionKey) {
return;
}
const canonical = deriveInboundMessageHookContext(params.ctx);
if (canonical.transcript) {
fireAndForgetHook(
triggerInternalHook(
createInternalHookEvent(
"message",
"transcribed",
sessionKey,
toInternalMessageTranscribedContext(canonical, params.cfg),
),
),
"get-reply: message:transcribed internal hook failed",
);
}
fireAndForgetHook(
triggerInternalHook(
createInternalHookEvent(
"message",
"preprocessed",
sessionKey,
toInternalMessagePreprocessedContext(canonical, params.cfg),
),
),
"get-reply: message:preprocessed internal hook failed",
);
}