mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-15 16:20:44 +00:00
refactor: consolidate message delivery API
This commit is contained in:
@@ -758,7 +758,7 @@ export const PLUGIN_COMPAT_RECORDS = [
|
||||
surfaces: ["api.runtime.config.loadConfig", "api.runtime.config.writeConfigFile"],
|
||||
diagnostics: [
|
||||
"plugin runtime compatibility warning",
|
||||
"deprecated internal config API guard",
|
||||
"deprecated API usage guard",
|
||||
"runtime channel config boundary guard",
|
||||
],
|
||||
tests: [
|
||||
|
||||
@@ -77,6 +77,8 @@ export type PluginHookMessageSendingEvent = {
|
||||
export type PluginHookMessageSendingResult = {
|
||||
content?: string;
|
||||
cancel?: boolean;
|
||||
cancelReason?: string;
|
||||
metadata?: Record<string, unknown>;
|
||||
};
|
||||
|
||||
export type PluginHookMessageSentEvent = {
|
||||
|
||||
@@ -1045,6 +1045,8 @@ export function createHookRunner(
|
||||
return {
|
||||
content: lastDefined(acc?.content, next.content),
|
||||
cancel: stickyTrue(acc?.cancel, next.cancel),
|
||||
cancelReason: lastDefined(acc?.cancelReason, next.cancelReason),
|
||||
metadata: next.metadata ?? acc?.metadata,
|
||||
};
|
||||
},
|
||||
shouldStop: (result) => result.cancel === true,
|
||||
|
||||
@@ -47,8 +47,8 @@ describe("message_sending hook runner", () => {
|
||||
{
|
||||
name: "runMessageSending can cancel message delivery",
|
||||
event: { to: "user-123", content: "blocked" },
|
||||
hookResult: { cancel: true },
|
||||
expected: { cancel: true },
|
||||
hookResult: { cancel: true, cancelReason: "policy", metadata: { owner: "agent-2" } },
|
||||
expected: { cancel: true, cancelReason: "policy", metadata: { owner: "agent-2" } },
|
||||
},
|
||||
] as const)("$name", async ({ event, hookResult, expected }) => {
|
||||
await expectMessageHookCall({
|
||||
|
||||
Reference in New Issue
Block a user