(nodeId: string)
| 413 | } |
| 414 | |
| 415 | private async executeNodeAsync(nodeId: string): Promise<void> { |
| 416 | try { |
| 417 | const wasAlreadyExecuted = this.context.executedBlocks.has(nodeId) |
| 418 | const result = await this.nodeOrchestrator.executeNode(this.context, nodeId) |
| 419 | |
| 420 | if (!wasAlreadyExecuted) { |
| 421 | await this.withQueueLock(async () => { |
| 422 | await this.handleNodeCompletion(nodeId, result.output, result.isFinalOutput) |
| 423 | }) |
| 424 | } |
| 425 | } catch (error) { |
| 426 | const errorMessage = normalizeError(error) |
| 427 | this.execLogger.error('Node execution failed', { nodeId, error: errorMessage }) |
| 428 | throw error |
| 429 | } |
| 430 | } |
| 431 | |
| 432 | private async handleNodeCompletion( |
| 433 | nodeId: string, |
no test coverage detected