1- export type DraftPreviewFinalizerDraft < TId > = {
2- flush : ( ) => Promise < void > ;
3- id : ( ) => TId | undefined ;
4- seal ?: ( ) => Promise < void > ;
5- discardPending ?: ( ) => Promise < void > ;
6- clear : ( ) => Promise < void > ;
7- } ;
1+ import {
2+ deliverFinalizableLivePreview ,
3+ type LivePreviewFinalizerDraft ,
4+ type LivePreviewFinalizerResultKind ,
5+ } from "./message/live.js" ;
86
9- export type DraftPreviewFinalizerResult =
10- | "normal-delivered"
11- | "normal-skipped"
12- | "preview-finalized" ;
7+ /**
8+ * @deprecated Use `LivePreviewFinalizerDraft` from `openclaw/plugin-sdk/channel-message`.
9+ */
10+ export type DraftPreviewFinalizerDraft < TId > = LivePreviewFinalizerDraft < TId > ;
1311
12+ /**
13+ * @deprecated Use `LivePreviewFinalizerResult` from `openclaw/plugin-sdk/channel-message`.
14+ */
15+ export type DraftPreviewFinalizerResult = Exclude <
16+ LivePreviewFinalizerResultKind ,
17+ "preview-retained"
18+ > ;
19+
20+ /**
21+ * @deprecated Use `deliverFinalizableLivePreview` from `openclaw/plugin-sdk/channel-message`.
22+ */
1423export async function deliverFinalizableDraftPreview < TPayload , TId , TEdit > ( params : {
1524 kind : "tool" | "block" | "final" ;
1625 payload : TPayload ;
@@ -22,49 +31,21 @@ export async function deliverFinalizableDraftPreview<TPayload, TId, TEdit>(param
2231 onNormalDelivered ?: ( ) => Promise < void > | void ;
2332 logPreviewEditFailure ?: ( error : unknown ) => void ;
2433} ) : Promise < DraftPreviewFinalizerResult > {
25- if ( params . kind !== "final" || ! params . draft ) {
26- const delivered = await params . deliverNormally ( params . payload ) ;
27- if ( delivered === false ) {
28- return "normal-skipped" ;
29- }
30- await params . onNormalDelivered ?.( ) ;
31- return "normal-delivered" ;
32- }
33-
34- const edit = params . buildFinalEdit ( params . payload ) ;
35- if ( edit !== undefined ) {
36- await params . draft . flush ( ) ;
37- const previewId = params . draft . id ( ) ;
38- if ( previewId !== undefined ) {
39- await params . draft . seal ?.( ) ;
40- try {
41- await params . editFinal ( previewId , edit ) ;
42- await params . onPreviewFinalized ?.( previewId ) ;
43- return "preview-finalized" ;
44- } catch ( err ) {
45- params . logPreviewEditFailure ?.( err ) ;
46- }
47- }
48- }
49-
50- if ( params . draft . discardPending ) {
51- await params . draft . discardPending ( ) ;
52- } else {
53- await params . draft . clear ( ) ;
54- }
55-
56- let delivered = false ;
57- try {
58- const result = await params . deliverNormally ( params . payload ) ;
59- delivered = result !== false ;
60- if ( delivered ) {
61- await params . onNormalDelivered ?.( ) ;
62- }
63- } finally {
64- if ( delivered ) {
65- await params . draft . clear ( ) ;
66- }
67- }
34+ const result = await deliverFinalizableLivePreview ( {
35+ kind : params . kind ,
36+ payload : params . payload ,
37+ ...( params . draft ? { draft : params . draft } : { } ) ,
38+ buildFinalEdit : params . buildFinalEdit ,
39+ editFinal : params . editFinal ,
40+ deliverNormally : params . deliverNormally ,
41+ onPreviewFinalized : async ( id ) => {
42+ await params . onPreviewFinalized ?.( id ) ;
43+ } ,
44+ ...( params . onNormalDelivered ? { onNormalDelivered : params . onNormalDelivered } : { } ) ,
45+ ...( params . logPreviewEditFailure
46+ ? { logPreviewEditFailure : params . logPreviewEditFailure }
47+ : { } ) ,
48+ } ) ;
6849
69- return delivered ? "normal-delivered" : "normal-skipped" ;
50+ return result . kind === "preview-retained" ? "normal-skipped" : result . kind ;
7051}
0 commit comments