UNPKG

@gguf/claw

Version:

Multi-channel AI gateway with extensible messaging integrations

70 lines (69 loc) 2.32 kB
export type QueueSummaryState = { dropPolicy: "summarize" | "old" | "new"; droppedCount: number; summaryLines: string[]; }; export type QueueDropPolicy = QueueSummaryState["dropPolicy"]; export type QueueState<T> = QueueSummaryState & { items: T[]; cap: number; }; export declare function clearQueueSummaryState(state: QueueSummaryState): void; export declare function previewQueueSummaryPrompt(params: { state: QueueSummaryState; noun: string; title?: string; }): string | undefined; export declare function applyQueueRuntimeSettings<TMode extends string>(params: { target: { mode: TMode; debounceMs: number; cap: number; dropPolicy: QueueDropPolicy; }; settings: { mode: TMode; debounceMs?: number; cap?: number; dropPolicy?: QueueDropPolicy; }; }): void; export declare function elideQueueText(text: string, limit?: number): string; export declare function buildQueueSummaryLine(text: string, limit?: number): string; export declare function shouldSkipQueueItem<T>(params: { item: T; items: T[]; dedupe?: (item: T, items: T[]) => boolean; }): boolean; export declare function applyQueueDropPolicy<T>(params: { queue: QueueState<T>; summarize: (item: T) => string; summaryLimit?: number; }): boolean; export declare function waitForQueueDebounce(queue: { debounceMs: number; lastEnqueuedAt: number; }): Promise<void>; export declare function drainNextQueueItem<T>(items: T[], run: (item: T) => Promise<void>): Promise<boolean>; export declare function drainCollectItemIfNeeded<T>(params: { forceIndividualCollect: boolean; isCrossChannel: boolean; setForceIndividualCollect?: (next: boolean) => void; items: T[]; run: (item: T) => Promise<void>; }): Promise<"skipped" | "drained" | "empty">; export declare function buildQueueSummaryPrompt(params: { state: QueueSummaryState; noun: string; title?: string; }): string | undefined; export declare function buildCollectPrompt<T>(params: { title: string; items: T[]; summary?: string; renderItem: (item: T, index: number) => string; }): string; export declare function hasCrossChannelItems<T>(items: T[], resolveKey: (item: T) => { key?: string; cross?: boolean; }): boolean;