refactor(queue): reuse collect-mode item drain flow

This commit is contained in:
Peter Steinberger
2026-02-19 07:00:44 +00:00
parent 2f6b8663ff
commit b22deada9e
3 changed files with 45 additions and 23 deletions

View File

@@ -142,6 +142,23 @@ export async function drainNextQueueItem<T>(
return true;
}
export async function drainCollectItemIfNeeded<T>(params: {
forceIndividualCollect: boolean;
isCrossChannel: boolean;
setForceIndividualCollect?: (next: boolean) => void;
items: T[];
run: (item: T) => Promise<void>;
}): Promise<"skipped" | "drained" | "empty"> {
if (!params.forceIndividualCollect && !params.isCrossChannel) {
return "skipped";
}
if (params.isCrossChannel) {
params.setForceIndividualCollect?.(true);
}
const drained = await drainNextQueueItem(params.items, params.run);
return drained ? "drained" : "empty";
}
export function buildQueueSummaryPrompt(params: {
state: QueueSummaryState;
noun: string;