UNPKG

aiwg

Version:

Deployment tool and support utility for AI context. Copies agents, skills, commands, rules, and behaviors into the paths each AI platform reads (Claude Code, Codex, Copilot, Cursor, Warp, OpenClaw, and 6 more) so one source of truth works across 10 platfo

48 lines (39 loc) 1.5 kB
/** * Markdown report generator for eval results */ import type { EvalReport } from '../models/types.js'; export function generateMarkdownReport(report: EvalReport): string { const lines = [ `# AIWG Model Evaluation Report`, '', `**Model**: ${report.model}`, `**Backend**: ${report.backend}`, `**Date**: ${report.date.split('T')[0]}`, `**AIWG Version**: ${report.aiwgVersion}`, '', `## Scores`, '', `| Dimension | Score | Tier | Tests | Passed |`, `|-----------|-------|------|-------|--------|`, ]; for (const dim of report.dimensions) { lines.push( `| ${dim.dimension} | ${dim.score} | ${dim.tier} | ${dim.testCases} | ${dim.passed} |` ); } lines.push( '', `**Overall**: ${report.overall}/100 — **${report.overallTier} tier**`, '', `## Recommendation`, '', ); const suitable = report.dimensions.filter((d) => d.score >= 70).map((d) => d.dimension); const limited = report.dimensions.filter((d) => d.score >= 50 && d.score < 70).map((d) => d.dimension); const notRec = report.dimensions.filter((d) => d.score < 50).map((d) => d.dimension); if (suitable.length > 0) lines.push(`Suitable for: ${suitable.join(', ')}`); if (limited.length > 0) lines.push(`Limited for: ${limited.join(', ')}`); if (notRec.length > 0) lines.push(`Not recommended for: ${notRec.join(', ')}`); lines.push('', `Total evaluation time: ${(report.totalLatencyMs / 1000).toFixed(1)}s`); return lines.join('\n'); }