/** * Deprecated draft preview finalizer facade. * * Forwards legacy draft-preview callers to live preview finalization helpers. */ import { deliverFinalizableLivePreview, type LivePreviewFinalizerDraft, type LivePreviewFinalizerResultKind, } from "./message/live.js"; /** * @deprecated Use `LivePreviewFinalizerDraft` from `openclaw/plugin-sdk/channel-outbound`. */ export type DraftPreviewFinalizerDraft = LivePreviewFinalizerDraft; /** * @deprecated Use `LivePreviewFinalizerResult` from `openclaw/plugin-sdk/channel-outbound`. */ export type DraftPreviewFinalizerResult = Exclude< LivePreviewFinalizerResultKind, "preview-retained" >; /** * @deprecated Use `deliverFinalizableLivePreview` from `openclaw/plugin-sdk/channel-outbound`. */ export async function deliverFinalizableDraftPreview(params: { kind: "tool" | "block" | "final"; payload: TPayload; draft?: DraftPreviewFinalizerDraft; buildFinalEdit: (payload: TPayload) => TEdit | undefined; editFinal: (id: TId, edit: TEdit) => Promise; deliverNormally: (payload: TPayload) => Promise; onPreviewFinalized?: (id: TId) => Promise | void; onNormalDelivered?: () => Promise | void; logPreviewEditFailure?: (error: unknown) => void; }): Promise { const result = await deliverFinalizableLivePreview({ kind: params.kind, payload: params.payload, ...(params.draft ? { draft: params.draft } : {}), buildFinalEdit: params.buildFinalEdit, editFinal: params.editFinal, deliverNormally: params.deliverNormally, onPreviewFinalized: async (id) => { await params.onPreviewFinalized?.(id); }, ...(params.onNormalDelivered ? { onNormalDelivered: params.onNormalDelivered } : {}), ...(params.logPreviewEditFailure ? { logPreviewEditFailure: params.logPreviewEditFailure } : {}), }); return result.kind === "preview-retained" ? "normal-skipped" : result.kind; }