oclaw/openclaw/test/helpers/plugins/subagent-hooks.ts
oliver dbbe3add6a 重构主控编排与运行时预热链路,统一工作区提示词/专家调度协议并补齐 wiki 记忆注入与写回闭环。
同时收敛启动与运维脚本默认行为(含 wiki worker)、更新 Admin 可观测性与相关测试,降低首轮时延并提高运行稳定性。

Made-with: Cursor
2026-04-26 08:34:33 +08:00

26 lines
889 B
TypeScript

// oxlint-disable-next-line typescript/no-unnecessary-type-parameters -- Test helper preserves plugin-specific hook API type.
export function registerHookHandlersForTest<TApi>(params: {
config: Record<string, unknown>;
register: (api: TApi) => void;
}) {
const handlers = new Map<string, (event: unknown, ctx: unknown) => unknown>();
const api = {
config: params.config,
on: (hookName: string, handler: (event: unknown, ctx: unknown) => unknown) => {
handlers.set(hookName, handler);
},
} as TApi;
params.register(api);
return handlers;
}
export function getRequiredHookHandler(
handlers: Map<string, (event: unknown, ctx: unknown) => unknown>,
hookName: string,
): (event: unknown, ctx: unknown) => unknown {
const handler = handlers.get(hookName);
if (!handler) {
throw new Error(`expected ${hookName} hook handler`);
}
return handler;
}