|
1 | | -import { generateRequestId } from '@/lib/core/utils/request' |
2 | | -import { executeInIsolatedVM } from '@/lib/execution/isolated-vm' |
3 | 1 | import { createLogger } from '@/lib/logs/console/logger' |
4 | 2 | import type { BlockOutput } from '@/blocks/types' |
5 | 3 | import { BlockType, CONDITION, DEFAULTS, EDGE } from '@/executor/constants' |
6 | 4 | import type { BlockHandler, ExecutionContext } from '@/executor/types' |
7 | 5 | import type { SerializedBlock } from '@/serializer/types' |
| 6 | +import { executeTool } from '@/tools' |
8 | 7 |
|
9 | 8 | const logger = createLogger('ConditionBlockHandler') |
10 | 9 |
|
@@ -39,32 +38,37 @@ export async function evaluateConditionExpression( |
39 | 38 | } |
40 | 39 |
|
41 | 40 | try { |
42 | | - const requestId = generateRequestId() |
43 | | - |
44 | 41 | const code = `return Boolean(${resolvedConditionValue})` |
45 | 42 |
|
46 | | - const result = await executeInIsolatedVM({ |
47 | | - code, |
48 | | - params: {}, |
49 | | - envVars: {}, |
50 | | - contextVariables: { context: evalContext }, |
51 | | - timeoutMs: CONDITION_TIMEOUT_MS, |
52 | | - requestId, |
53 | | - }) |
| 43 | + const result = await executeTool( |
| 44 | + 'function_execute', |
| 45 | + { |
| 46 | + code, |
| 47 | + timeout: CONDITION_TIMEOUT_MS, |
| 48 | + envVars: {}, |
| 49 | + _context: { |
| 50 | + workflowId: ctx.workflowId, |
| 51 | + workspaceId: ctx.workspaceId, |
| 52 | + }, |
| 53 | + }, |
| 54 | + false, |
| 55 | + false, |
| 56 | + ctx |
| 57 | + ) |
54 | 58 |
|
55 | | - if (result.error) { |
56 | | - logger.error(`Failed to evaluate condition: ${result.error.message}`, { |
| 59 | + if (!result.success) { |
| 60 | + logger.error(`Failed to evaluate condition: ${result.error}`, { |
57 | 61 | originalCondition: conditionExpression, |
58 | 62 | resolvedCondition: resolvedConditionValue, |
59 | 63 | evalContext, |
60 | 64 | error: result.error, |
61 | 65 | }) |
62 | 66 | throw new Error( |
63 | | - `Evaluation error in condition: ${result.error.message}. (Resolved: ${resolvedConditionValue})` |
| 67 | + `Evaluation error in condition: ${result.error}. (Resolved: ${resolvedConditionValue})` |
64 | 68 | ) |
65 | 69 | } |
66 | 70 |
|
67 | | - return Boolean(result.result) |
| 71 | + return Boolean(result.output?.result) |
68 | 72 | } catch (evalError: any) { |
69 | 73 | logger.error(`Failed to evaluate condition: ${evalError.message}`, { |
70 | 74 | originalCondition: conditionExpression, |
|
0 commit comments