| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- /**
- * Test evaluators with real OpenCode session data
- */
- const {
- createConfig,
- SessionReader,
- TimelineBuilder,
- EvaluatorRunner,
- ApprovalGateEvaluator,
- ContextLoadingEvaluator,
- DelegationEvaluator,
- ToolUsageEvaluator
- } = require('./dist');
- async function main() {
- console.log('='.repeat(80));
- console.log('EVALUATOR TEST');
- console.log('='.repeat(80));
- console.log('');
- // Create config
- const config = createConfig({
- projectPath: '/Users/darrenhinde/Documents/GitHub/opencode-agents'
- });
- console.log(`Project path: ${config.projectPath}`);
- console.log(`Session storage: ${config.sessionStoragePath}`);
- console.log('');
- // Create session reader and timeline builder
- const sessionReader = new SessionReader(config.projectPath, config.sessionStoragePath);
- const timelineBuilder = new TimelineBuilder(sessionReader);
- // List available sessions
- console.log('Finding sessions...');
- const sessions = sessionReader.listSessions();
- console.log(`Found ${sessions.length} sessions`);
- console.log('');
- if (sessions.length === 0) {
- console.log('No sessions found. Exiting.');
- return;
- }
- // Pick the most recent session
- const latestSession = sessions[0];
- console.log(`Testing with session: ${latestSession.id}`);
- console.log(`Title: ${latestSession.title}`);
- const createdDate = new Date(latestSession.created);
- console.log(`Created: ${isNaN(createdDate.getTime()) ? 'Unknown' : createdDate.toISOString()}`);
- console.log('');
- // Create evaluators
- const evaluators = [
- new ApprovalGateEvaluator(),
- new ContextLoadingEvaluator(),
- new DelegationEvaluator(),
- new ToolUsageEvaluator()
- ];
- console.log(`Registered ${evaluators.length} evaluators:`);
- evaluators.forEach((e, idx) => {
- console.log(` ${idx + 1}. ${e.name} - ${e.description}`);
- });
- console.log('');
- // Create runner
- const runner = new EvaluatorRunner({
- sessionReader,
- timelineBuilder,
- evaluators
- });
- // Run evaluators
- console.log('-'.repeat(80));
- console.log('Running evaluators...');
- console.log('-'.repeat(80));
- console.log('');
- const result = await runner.runAll(latestSession.id);
- // Generate and print report
- console.log('');
- console.log(runner.generateReport(result));
- // Test batch evaluation with first 3 sessions
- if (sessions.length > 1) {
- console.log('');
- console.log('');
- console.log('='.repeat(80));
- console.log('BATCH EVALUATION TEST (first 3 sessions)');
- console.log('='.repeat(80));
- console.log('');
- const sessionIds = sessions.slice(0, Math.min(3, sessions.length)).map(s => s.id);
- const batchResults = await runner.runBatch(sessionIds);
- console.log('');
- console.log(runner.generateBatchSummary(batchResults));
- }
- console.log('');
- console.log('✓ Evaluator test complete!');
- }
- main().catch(error => {
- console.error('Error running evaluator test:', error);
- process.exit(1);
- });
|