@@ -11,8 +11,6 @@ import {
1111 DEFAULTS ,
1212 EDGE ,
1313 isSentinelBlockType ,
14- isTriggerBehavior ,
15- isWorkflowBlockType ,
1614} from '@/executor/constants'
1715import type { DAGNode } from '@/executor/dag/builder'
1816import { ChildWorkflowError } from '@/executor/errors/child-workflow-error'
@@ -30,6 +28,7 @@ import type {
3028} from '@/executor/types'
3129import { streamingResponseFormatProcessor } from '@/executor/utils'
3230import { buildBlockExecutionError , normalizeError } from '@/executor/utils/errors'
31+ import { filterOutputForLog } from '@/executor/utils/output-filter'
3332import { validateBlockType } from '@/executor/utils/permission-check'
3433import type { VariableResolver } from '@/executor/variables/resolver'
3534import type { SerializedBlock } from '@/serializer/types'
@@ -149,13 +148,15 @@ export class BlockExecutor {
149148 blockLog . endedAt = new Date ( ) . toISOString ( )
150149 blockLog . durationMs = duration
151150 blockLog . success = true
152- blockLog . output = this . filterOutputForLog ( block , normalizedOutput )
151+ blockLog . output = filterOutputForLog ( block . metadata ?. id || '' , normalizedOutput , { block } )
153152 }
154153
155154 this . state . setBlockOutput ( node . id , normalizedOutput , duration )
156155
157156 if ( ! isSentinel ) {
158- const displayOutput = this . filterOutputForDisplay ( block , normalizedOutput )
157+ const displayOutput = filterOutputForLog ( block . metadata ?. id || '' , normalizedOutput , {
158+ block,
159+ } )
159160 this . callOnBlockComplete ( ctx , node , block , resolvedInputs , displayOutput , duration )
160161 }
161162
@@ -233,7 +234,7 @@ export class BlockExecutor {
233234 blockLog . success = false
234235 blockLog . error = errorMessage
235236 blockLog . input = input
236- blockLog . output = this . filterOutputForLog ( block , errorOutput )
237+ blockLog . output = filterOutputForLog ( block . metadata ?. id || '' , errorOutput , { block } )
237238 }
238239
239240 logger . error (
@@ -246,7 +247,7 @@ export class BlockExecutor {
246247 )
247248
248249 if ( ! isSentinel ) {
249- const displayOutput = this . filterOutputForDisplay ( block , errorOutput )
250+ const displayOutput = filterOutputForLog ( block . metadata ?. id || '' , errorOutput , { block } )
250251 this . callOnBlockComplete ( ctx , node , block , input , displayOutput , duration )
251252 }
252253
@@ -335,51 +336,6 @@ export class BlockExecutor {
335336 return { result : output }
336337 }
337338
338- private filterOutputForLog (
339- block : SerializedBlock ,
340- output : NormalizedBlockOutput
341- ) : NormalizedBlockOutput {
342- const blockType = block . metadata ?. id
343-
344- if ( blockType === BlockType . HUMAN_IN_THE_LOOP ) {
345- const filtered : NormalizedBlockOutput = { }
346- for ( const [ key , value ] of Object . entries ( output ) ) {
347- if ( key . startsWith ( '_' ) ) continue
348- if ( key === 'response' ) continue
349- filtered [ key ] = value
350- }
351- return filtered
352- }
353-
354- if ( isTriggerBehavior ( block ) ) {
355- const filtered : NormalizedBlockOutput = { }
356- const internalKeys = [ 'webhook' , 'workflowId' ]
357- for ( const [ key , value ] of Object . entries ( output ) ) {
358- if ( internalKeys . includes ( key ) ) continue
359- filtered [ key ] = value
360- }
361- return filtered
362- }
363-
364- return output
365- }
366-
367- private filterOutputForDisplay (
368- block : SerializedBlock ,
369- output : NormalizedBlockOutput
370- ) : NormalizedBlockOutput {
371- const filtered = this . filterOutputForLog ( block , output )
372-
373- if ( isWorkflowBlockType ( block . metadata ?. id ) ) {
374- const { childTraceSpans : _ , ...displayOutput } = filtered as {
375- childTraceSpans ?: unknown
376- } & Record < string , unknown >
377- return displayOutput
378- }
379-
380- return filtered
381- }
382-
383339 private callOnBlockStart ( ctx : ExecutionContext , node : DAGNode , block : SerializedBlock ) : void {
384340 const blockId = node . id
385341 const blockName = block . metadata ?. name ?? blockId
0 commit comments