feat(batch-agent): add E2E evaluation harness with Langfuse integration
- eval/mock_executor.py: intercepts execute_on_client, serves fixture
files from disk, records all mutations (insert/update/delete)
- eval/config.py: YAML fixture loader with prompt variants, expected
results, seed records, model overrides
- eval/scorer.py: FieldMatchScorer (fuzzy title match, per-field
accuracy, precision/recall/F1) + LLMJudgeScorer (semantic eval)
- eval/langfuse_eval.py: sync fixtures to Langfuse datasets, create
dataset runs, post scores, link traces to runs
- eval/runner.py: orchestrates fixture → mock → agent pipeline →
scoring → Langfuse reporting
- eval/cli.py: CLI (python -m eval run/list/sync) with --models,
--variants, --fixture, --no-judge flags
- eval/fixtures/: example Italian freelance scenario with 3 prompt
variants (baseline, detailed_italian, minimal)