first commit
Security: Sync from Public / sync-from-public (push) Has been cancelled
Test: Benchmark Nightly / build (push) Has been cancelled
Test: Benchmark Nightly / Notify Cats on failure (push) Has been cancelled
CI: Python / Checks (push) Has been cancelled
Test: Evals Python / Workflow Comparison Python (push) Has been cancelled
Util: Check Docs URLs / check-docs-urls (push) Has been cancelled
Test: Visual Storybook / Cloudflare Pages (push) Has been cancelled
Test: E2E Performance / build-and-test-performance (push) Has been cancelled
Test: Workflows Nightly / Run Workflow Tests (push) Has been cancelled
Util: Cleanup CI Docker Images / Delete stale CI images (push) Has been cancelled
Test: Benchmark Destroy Env / build (push) Has been cancelled
Util: Update Node Popularity / update-popularity (push) Has been cancelled
Test: E2E Coverage Weekly / Coverage Tests (push) Has been cancelled
Security: Sync from Public / sync-from-public (push) Has been cancelled
Test: Benchmark Nightly / build (push) Has been cancelled
Test: Benchmark Nightly / Notify Cats on failure (push) Has been cancelled
CI: Python / Checks (push) Has been cancelled
Test: Evals Python / Workflow Comparison Python (push) Has been cancelled
Util: Check Docs URLs / check-docs-urls (push) Has been cancelled
Test: Visual Storybook / Cloudflare Pages (push) Has been cancelled
Test: E2E Performance / build-and-test-performance (push) Has been cancelled
Test: Workflows Nightly / Run Workflow Tests (push) Has been cancelled
Util: Cleanup CI Docker Images / Delete stale CI images (push) Has been cancelled
Test: Benchmark Destroy Env / build (push) Has been cancelled
Util: Update Node Popularity / update-popularity (push) Has been cancelled
Test: E2E Coverage Weekly / Coverage Tests (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
/**
|
||||
* Execution evaluator for the v2 evaluation harness.
|
||||
*
|
||||
* Executes generated workflows with pin data to verify they run without errors.
|
||||
* Service nodes use pin data (skipping real API calls); utility nodes execute
|
||||
* using their real compiled dist implementations.
|
||||
*/
|
||||
|
||||
import type { SimpleWorkflow } from '@/types/workflow';
|
||||
|
||||
import type { EvaluationContext, Evaluator, Feedback } from '../../harness/harness-types';
|
||||
import { executeWorkflowWithPinData } from '../../support/workflow-executor';
|
||||
|
||||
/**
|
||||
* Create an execution evaluator that runs the workflow with pin data.
|
||||
*
|
||||
* Node implementations are loaded lazily from the compiled dist/ files in
|
||||
* nodes-base and nodes-langchain — no DI or package-loading setup required.
|
||||
*/
|
||||
export function createExecutionEvaluator(): Evaluator<EvaluationContext> {
|
||||
return {
|
||||
name: 'execution',
|
||||
|
||||
async evaluate(workflow: SimpleWorkflow, ctx: EvaluationContext): Promise<Feedback[]> {
|
||||
const pinData = ctx.pinData ?? {};
|
||||
|
||||
const result = await executeWorkflowWithPinData(workflow, pinData);
|
||||
|
||||
return [
|
||||
{
|
||||
evaluator: 'execution',
|
||||
metric: 'executionSuccess',
|
||||
score: result.success ? 1 : 0,
|
||||
kind: 'score',
|
||||
comment: result.success
|
||||
? `Workflow executed successfully (${result.executedNodes.length} nodes)`
|
||||
: `Execution failed: ${result.error}${result.errorNode ? ` (at node: ${result.errorNode})` : ''}`,
|
||||
},
|
||||
];
|
||||
},
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user