refactor: reuse dispatcher helper for native commands

This commit is contained in:
Peter Steinberger
2026-01-13 01:07:50 +00:00
parent 92760de472
commit dd8f7552ad
3 changed files with 66 additions and 53 deletions

View File

@@ -4,7 +4,9 @@ import type { GetReplyOptions } from "../types.js";
import type { DispatchFromConfigResult } from "./dispatch-from-config.js";
import { dispatchReplyFromConfig } from "./dispatch-from-config.js";
import {
createReplyDispatcher,
createReplyDispatcherWithTyping,
type ReplyDispatcherOptions,
type ReplyDispatcherWithTypingOptions,
} from "./reply-dispatcher.js";
@@ -32,3 +34,24 @@ export async function dispatchReplyWithBufferedBlockDispatcher(params: {
markDispatchIdle();
return result;
}
export async function dispatchReplyWithDispatcher(params: {
ctx: MsgContext;
cfg: ClawdbotConfig;
dispatcherOptions: ReplyDispatcherOptions;
replyOptions?: Omit<GetReplyOptions, "onToolResult" | "onBlockReply">;
replyResolver?: typeof import("../reply.js").getReplyFromConfig;
}): Promise<DispatchFromConfigResult> {
const dispatcher = createReplyDispatcher(params.dispatcherOptions);
const result = await dispatchReplyFromConfig({
ctx: params.ctx,
cfg: params.cfg,
dispatcher,
replyResolver: params.replyResolver,
replyOptions: params.replyOptions,
});
await dispatcher.waitForIdle();
return result;
}