openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
102 lines • 4.97 kB
TypeScript
import { a as removeAckReactionAfterReply, c as resolveAckReaction, i as createAckReactionHandle, n as AckReactionHandle, o as removeAckReactionHandleAfterReply, r as AckReactionScope, s as shouldAckReaction, t as AckReactionGateParams } from "../ack-reactions-NdNCdtJ_.js";
import { i as logTypingFailure, n as logAckFailure, t as LogFn } from "../logging-qxfDduLa.js";
//#region src/infra/outbound/target-errors.d.ts
export declare function missingTargetError(provider: string, hint?: string): Error;
//#endregion
//#region src/channels/status-reactions.d.ts
/** Adapter implemented by channels that expose message reaction status updates. */
type StatusReactionAdapter = {
/** Set/replace the current reaction emoji. */
setReaction: (emoji: string) => Promise<void>;
/** Clear all status reactions for single-slot platforms such as WhatsApp. */
clearReaction?: () => Promise<void>;
/** Remove a specific reaction emoji (optional — needed for Discord-style platforms). */
removeReaction?: (emoji: string) => Promise<void>;
};
/** Optional emoji overrides for each status reaction state. */
type StatusReactionEmojis = Partial<typeof DEFAULT_EMOJIS>;
/** Timing controls for debounced status reactions and stall warnings. */
type StatusReactionTiming = Partial<typeof DEFAULT_TIMING>;
/** Controller API for agent status reaction state transitions. */
type StatusReactionController = {
setQueued: () => Promise<void> | void;
setThinking: () => Promise<void> | void;
setTool: (toolName?: string) => Promise<void> | void;
setCompacting: () => Promise<void> | void;
/** Cancel any pending debounced emoji (useful before forcing a state transition). */
cancelPending: () => void;
setDone: () => Promise<void>;
setError: () => Promise<void>;
clear: () => Promise<void>;
restoreInitial: () => Promise<void>;
};
/** Default emoji set used by status reaction controllers. */
export declare const DEFAULT_EMOJIS: {
queued: string;
thinking: string;
tool: string;
coding: string;
web: string;
deploy: string;
build: string;
concierge: string;
done: string;
error: string;
stallSoft: string;
stallHard: string;
compacting: string;
};
/** Default debounce, stall, and terminal hold timings for status reactions. */
export declare const DEFAULT_TIMING: {
debounceMs: number;
stallSoftMs: number;
stallHardMs: number;
doneHoldMs: number;
errorHoldMs: number;
};
/** Tool-name tokens mapped to the coding status reaction. */
export declare const CODING_TOOL_TOKENS: string[];
/** Tool-name tokens mapped to the web status reaction. */
export declare const WEB_TOOL_TOKENS: string[];
/** Tool-name tokens mapped to the deploy status reaction. */
export declare const DEPLOY_TOOL_TOKENS: string[];
/** Tool-name tokens mapped to the build status reaction. */
export declare const BUILD_TOOL_TOKENS: string[];
/** Tool-name tokens mapped to the concierge/browser-control status reaction. */
export declare const CONCIERGE_TOOL_TOKENS: string[];
/** Resolves the appropriate emoji for a tool invocation. */
export declare function resolveToolEmoji(toolName: string | undefined, emojis: Required<StatusReactionEmojis>, emojiOverrides?: StatusReactionEmojis): string;
/** Defer reaction removal until cleanup to avoid flicker without atomic replacement. */
export declare function createStatusReactionController(params: {
enabled: boolean;
adapter: StatusReactionAdapter;
initialEmoji: string;
/** Acknowledgement keeps one working reaction; only actual errors replace it. */
presentation?: "activity" | "acknowledgement";
emojis?: StatusReactionEmojis;
timing?: StatusReactionTiming;
onError?: (err: unknown) => void;
}): StatusReactionController;
//#endregion
//#region src/plugin-sdk/channel-feedback.d.ts
/** @deprecated Owner policy moved into the WhatsApp plugin (#121257). */
export type WhatsAppAckReactionMode = "always" | "mentions" | "never";
/**
* @deprecated Load-only bridge: the published WhatsApp channel package
* (2026.7.2-beta.7 and earlier) imports this at module top level, so removing
* it makes the installed plugin fail to load after a core upgrade. Behavior
* preserved verbatim from the pre-#121257 owner. Remove once managed releases
* have replaced the old npm latest/extended-stable packages and their upgrade
* window has closed.
*/
export declare function shouldAckReactionForWhatsApp(params: {
emoji: string;
isDirect: boolean;
isGroup: boolean;
directEnabled: boolean;
groupMode: WhatsAppAckReactionMode;
wasMentioned: boolean;
groupActivated: boolean;
}): boolean;
//#endregion
export { type AckReactionGateParams, type AckReactionHandle, type AckReactionScope, type LogFn, type StatusReactionAdapter, type StatusReactionController, type StatusReactionEmojis, type StatusReactionTiming, createAckReactionHandle, logAckFailure, logTypingFailure, removeAckReactionAfterReply, removeAckReactionHandleAfterReply, resolveAckReaction, shouldAckReaction };