refactor: unify message hook mapping and async dispatch

This commit is contained in:
Peter Steinberger
2026-03-02 22:51:22 +00:00
parent fa47f74c0f
commit caae34cbaf
10 changed files with 865 additions and 450 deletions

View File

@@ -0,0 +1,50 @@
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",
);
}