@nahisaho/katashiro-evaluation 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/LICENSE +21 -0
  2. package/dist/BenchmarkSuite.d.ts +63 -0
  3. package/dist/BenchmarkSuite.d.ts.map +1 -0
  4. package/dist/BenchmarkSuite.js +152 -0
  5. package/dist/BenchmarkSuite.js.map +1 -0
  6. package/dist/DatasetManager.d.ts +68 -0
  7. package/dist/DatasetManager.d.ts.map +1 -0
  8. package/dist/DatasetManager.js +161 -0
  9. package/dist/DatasetManager.js.map +1 -0
  10. package/dist/ExperimentRunner.d.ts +51 -0
  11. package/dist/ExperimentRunner.d.ts.map +1 -0
  12. package/dist/ExperimentRunner.js +170 -0
  13. package/dist/ExperimentRunner.js.map +1 -0
  14. package/dist/evaluators/CompositeEvaluator.d.ts +66 -0
  15. package/dist/evaluators/CompositeEvaluator.d.ts.map +1 -0
  16. package/dist/evaluators/CompositeEvaluator.js +122 -0
  17. package/dist/evaluators/CompositeEvaluator.js.map +1 -0
  18. package/dist/evaluators/HeuristicEvaluator.d.ts +82 -0
  19. package/dist/evaluators/HeuristicEvaluator.d.ts.map +1 -0
  20. package/dist/evaluators/HeuristicEvaluator.js +233 -0
  21. package/dist/evaluators/HeuristicEvaluator.js.map +1 -0
  22. package/dist/evaluators/LLMJudgeEvaluator.d.ts +93 -0
  23. package/dist/evaluators/LLMJudgeEvaluator.d.ts.map +1 -0
  24. package/dist/evaluators/LLMJudgeEvaluator.js +296 -0
  25. package/dist/evaluators/LLMJudgeEvaluator.js.map +1 -0
  26. package/dist/evaluators/RAGASEvaluators.d.ts +128 -0
  27. package/dist/evaluators/RAGASEvaluators.d.ts.map +1 -0
  28. package/dist/evaluators/RAGASEvaluators.js +521 -0
  29. package/dist/evaluators/RAGASEvaluators.js.map +1 -0
  30. package/dist/evaluators/index.d.ts +13 -0
  31. package/dist/evaluators/index.d.ts.map +1 -0
  32. package/dist/evaluators/index.js +12 -0
  33. package/dist/evaluators/index.js.map +1 -0
  34. package/dist/index.d.ts +20 -0
  35. package/dist/index.d.ts.map +1 -0
  36. package/dist/index.js +24 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/reporting/EvaluationReporter.d.ts +135 -0
  39. package/dist/reporting/EvaluationReporter.d.ts.map +1 -0
  40. package/dist/reporting/EvaluationReporter.js +285 -0
  41. package/dist/reporting/EvaluationReporter.js.map +1 -0
  42. package/dist/reporting/index.d.ts +8 -0
  43. package/dist/reporting/index.d.ts.map +1 -0
  44. package/dist/reporting/index.js +8 -0
  45. package/dist/reporting/index.js.map +1 -0
  46. package/dist/reporting/templates.d.ts +91 -0
  47. package/dist/reporting/templates.d.ts.map +1 -0
  48. package/dist/reporting/templates.js +150 -0
  49. package/dist/reporting/templates.js.map +1 -0
  50. package/dist/types.d.ts +408 -0
  51. package/dist/types.d.ts.map +1 -0
  52. package/dist/types.js +8 -0
  53. package/dist/types.js.map +1 -0
  54. package/package.json +47 -0
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Evaluators Index
3
+ *
4
+ * @design DES-KATASHIRO-003-EVAL §3
5
+ */
6
+ export { LengthEvaluator, KeywordEvaluator, RegexEvaluator, JsonStructureEvaluator, SimilarityEvaluator, } from './HeuristicEvaluator.js';
7
+ export type { LengthEvaluatorConfig, KeywordEvaluatorConfig, RegexEvaluatorConfig, } from './HeuristicEvaluator.js';
8
+ export { CompositeEvaluator, EvaluatorRegistry, getEvaluatorRegistry, resetEvaluatorRegistry, } from './CompositeEvaluator.js';
9
+ export type { CompositeEvaluatorConfig } from './CompositeEvaluator.js';
10
+ export { LLMJudgeEvaluator, DEFAULT_CRITERIA, DEFAULT_SYSTEM_PROMPT, DEFAULT_EVALUATION_PROMPT_TEMPLATE, } from './LLMJudgeEvaluator.js';
11
+ export { FaithfulnessEvaluator, ContextRelevancyEvaluator, AnswerRelevancyEvaluator, ContextRecallEvaluator, RAGASCompositeEvaluator, isRAGEvaluationInput, } from './RAGASEvaluators.js';
12
+ export type { RAGEvaluatorConfig, RAGASCompositeEvaluatorConfig, } from './RAGASEvaluators.js';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/evaluators/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EACV,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAGxE,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,kCAAkC,GACnC,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,kBAAkB,EAClB,6BAA6B,GAC9B,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Evaluators Index
3
+ *
4
+ * @design DES-KATASHIRO-003-EVAL §3
5
+ */
6
+ export { LengthEvaluator, KeywordEvaluator, RegexEvaluator, JsonStructureEvaluator, SimilarityEvaluator, } from './HeuristicEvaluator.js';
7
+ export { CompositeEvaluator, EvaluatorRegistry, getEvaluatorRegistry, resetEvaluatorRegistry, } from './CompositeEvaluator.js';
8
+ // LLMJudge Evaluator (REQ-EVAL-101)
9
+ export { LLMJudgeEvaluator, DEFAULT_CRITERIA, DEFAULT_SYSTEM_PROMPT, DEFAULT_EVALUATION_PROMPT_TEMPLATE, } from './LLMJudgeEvaluator.js';
10
+ // RAGAS Evaluators (REQ-EVAL-102)
11
+ export { FaithfulnessEvaluator, ContextRelevancyEvaluator, AnswerRelevancyEvaluator, ContextRecallEvaluator, RAGASCompositeEvaluator, isRAGEvaluationInput, } from './RAGASEvaluators.js';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/evaluators/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AAQjC,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AAIjC,oCAAoC;AACpC,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,kCAAkC,GACnC,MAAM,wBAAwB,CAAC;AAEhC,kCAAkC;AAClC,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Evaluation Package
3
+ *
4
+ * LLMアプリケーションの出力品質を評価・ベンチマークするパッケージ
5
+ *
6
+ * @requirement REQ-EVAL-001 ~ REQ-EVAL-007
7
+ * @design DES-KATASHIRO-003-EVAL
8
+ * @version 2.0.0
9
+ */
10
+ export type { Evaluator, EvaluationInput, EvaluationResult, EvaluationMetadata, Dataset, DatasetItem, ExperimentConfig, ExperimentResult, ExperimentSummary, ExperimentDetailResult, ABTestConfig, ABTestResult, ABTestVariant, BenchmarkConfig, BenchmarkResult, EvaluationCriteria, LLMJudgeEvaluatorConfig, LLMJudgeResult, RAGEvaluationInput, RAGASEvaluationResult, } from './types.js';
11
+ export { LengthEvaluator, KeywordEvaluator, RegexEvaluator, JsonStructureEvaluator, SimilarityEvaluator, CompositeEvaluator, EvaluatorRegistry, getEvaluatorRegistry, resetEvaluatorRegistry, LLMJudgeEvaluator, DEFAULT_CRITERIA, DEFAULT_SYSTEM_PROMPT, DEFAULT_EVALUATION_PROMPT_TEMPLATE, FaithfulnessEvaluator, ContextRelevancyEvaluator, AnswerRelevancyEvaluator, ContextRecallEvaluator, RAGASCompositeEvaluator, isRAGEvaluationInput, } from './evaluators/index.js';
12
+ export type { LengthEvaluatorConfig, KeywordEvaluatorConfig, RegexEvaluatorConfig, CompositeEvaluatorConfig, RAGEvaluatorConfig, RAGASCompositeEvaluatorConfig, } from './evaluators/index.js';
13
+ export { DatasetManager, getDatasetManager, resetDatasetManager, } from './DatasetManager.js';
14
+ export { ExperimentRunner, getExperimentRunner, resetExperimentRunner, } from './ExperimentRunner.js';
15
+ export type { ExperimentRunnerConfig } from './ExperimentRunner.js';
16
+ export { BenchmarkSuite, getBenchmarkSuite, resetBenchmarkSuite, } from './BenchmarkSuite.js';
17
+ export type { BenchmarkFn } from './BenchmarkSuite.js';
18
+ export { EvaluationReporter, generateEvaluationReport, DEFAULT_REPORT_CONFIG, defaultTemplates, defaultHeaderTemplate, defaultSummaryTemplate, defaultResultRowTemplate, defaultFooterTemplate, generateProgressBar, generateScoreBadge, generateComparisonTable, generateScoreHeatmap, } from './reporting/index.js';
19
+ export type { EvaluationReportConfig, EvaluationReportData, ReportSection, SummaryStatistics, TemplateFunction, TemplateCollection, HeaderTemplateData, SummaryTemplateData, ResultRowTemplateData, } from './reporting/index.js';
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,YAAY,EAEV,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAElB,OAAO,EACP,WAAW,EAEX,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EAEtB,YAAY,EACZ,YAAY,EACZ,aAAa,EAEb,eAAe,EACf,eAAe,EAEf,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,EAEd,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EAEtB,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,kCAAkC,EAElC,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACV,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,EAExB,kBAAkB,EAClB,6BAA6B,GAC9B,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAGpE,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,sBAAsB,EACtB,oBAAoB,EACpB,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Evaluation Package
3
+ *
4
+ * LLMアプリケーションの出力品質を評価・ベンチマークするパッケージ
5
+ *
6
+ * @requirement REQ-EVAL-001 ~ REQ-EVAL-007
7
+ * @design DES-KATASHIRO-003-EVAL
8
+ * @version 2.0.0
9
+ */
10
+ // Evaluators
11
+ export { LengthEvaluator, KeywordEvaluator, RegexEvaluator, JsonStructureEvaluator, SimilarityEvaluator, CompositeEvaluator, EvaluatorRegistry, getEvaluatorRegistry, resetEvaluatorRegistry,
12
+ // LLMJudge (REQ-EVAL-101)
13
+ LLMJudgeEvaluator, DEFAULT_CRITERIA, DEFAULT_SYSTEM_PROMPT, DEFAULT_EVALUATION_PROMPT_TEMPLATE,
14
+ // RAGAS (REQ-EVAL-102)
15
+ FaithfulnessEvaluator, ContextRelevancyEvaluator, AnswerRelevancyEvaluator, ContextRecallEvaluator, RAGASCompositeEvaluator, isRAGEvaluationInput, } from './evaluators/index.js';
16
+ // Dataset Manager
17
+ export { DatasetManager, getDatasetManager, resetDatasetManager, } from './DatasetManager.js';
18
+ // Experiment Runner
19
+ export { ExperimentRunner, getExperimentRunner, resetExperimentRunner, } from './ExperimentRunner.js';
20
+ // Benchmark Suite
21
+ export { BenchmarkSuite, getBenchmarkSuite, resetBenchmarkSuite, } from './BenchmarkSuite.js';
22
+ // Reporting (REQ-EVAL-103)
23
+ export { EvaluationReporter, generateEvaluationReport, DEFAULT_REPORT_CONFIG, defaultTemplates, defaultHeaderTemplate, defaultSummaryTemplate, defaultResultRowTemplate, defaultFooterTemplate, generateProgressBar, generateScoreBadge, generateComparisonTable, generateScoreHeatmap, } from './reporting/index.js';
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAiCH,aAAa;AACb,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB;AACtB,0BAA0B;AAC1B,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,kCAAkC;AAClC,uBAAuB;AACvB,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAY/B,kBAAkB;AAClB,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAE7B,oBAAoB;AACpB,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAI/B,kBAAkB;AAClB,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAG7B,2BAA2B;AAC3B,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Evaluation Reporter
3
+ *
4
+ * 評価結果をMarkdownレポートに出力するユーティリティ
5
+ *
6
+ * @requirement REQ-EVAL-103
7
+ */
8
+ import type { EvaluationResult } from '../types.js';
9
+ /**
10
+ * レポート設定
11
+ */
12
+ export interface EvaluationReportConfig {
13
+ /** レポートタイトル */
14
+ title?: string;
15
+ /** 説明 */
16
+ description?: string;
17
+ /** スコアしきい値(合格基準) */
18
+ passThreshold?: number;
19
+ /** 詳細表示 */
20
+ includeDetails?: boolean;
21
+ /** メタデータ表示 */
22
+ includeMetadata?: boolean;
23
+ /** タイムスタンプ表示 */
24
+ includeTimestamp?: boolean;
25
+ /** サマリー統計表示 */
26
+ includeSummary?: boolean;
27
+ /** 言語 */
28
+ language?: 'en' | 'ja';
29
+ }
30
+ /**
31
+ * レポートセクション
32
+ */
33
+ export interface ReportSection {
34
+ /** セクションタイトル */
35
+ title: string;
36
+ /** コンテンツ */
37
+ content: string;
38
+ }
39
+ /**
40
+ * 評価レポートデータ
41
+ */
42
+ export interface EvaluationReportData {
43
+ /** 評価結果一覧 */
44
+ results: EvaluationResult[];
45
+ /** データセット名 */
46
+ datasetName?: string;
47
+ /** 実行日時 */
48
+ executedAt?: string;
49
+ /** 実行時間(ミリ秒) */
50
+ durationMs?: number;
51
+ /** 追加セクション */
52
+ additionalSections?: ReportSection[];
53
+ }
54
+ /**
55
+ * サマリー統計
56
+ */
57
+ export interface SummaryStatistics {
58
+ /** 総件数 */
59
+ total: number;
60
+ /** 合格件数 */
61
+ passed: number;
62
+ /** 不合格件数 */
63
+ failed: number;
64
+ /** 合格率 */
65
+ passRate: number;
66
+ /** 平均スコア */
67
+ avgScore: number;
68
+ /** 最小スコア */
69
+ minScore: number;
70
+ /** 最大スコア */
71
+ maxScore: number;
72
+ /** 標準偏差 */
73
+ stdDev: number;
74
+ /** 評価器別スコア */
75
+ byEvaluator: Map<string, {
76
+ avg: number;
77
+ count: number;
78
+ }>;
79
+ }
80
+ /**
81
+ * デフォルト設定
82
+ */
83
+ export declare const DEFAULT_REPORT_CONFIG: Required<EvaluationReportConfig>;
84
+ /**
85
+ * 評価レポーター
86
+ */
87
+ export declare class EvaluationReporter {
88
+ private config;
89
+ constructor(config?: EvaluationReportConfig);
90
+ /**
91
+ * Markdownレポートを生成
92
+ */
93
+ generate(data: EvaluationReportData): string;
94
+ /**
95
+ * 統計情報を計算
96
+ */
97
+ calculateStatistics(results: EvaluationResult[]): SummaryStatistics;
98
+ /**
99
+ * ヘッダーセクション生成
100
+ */
101
+ private generateHeader;
102
+ /**
103
+ * サマリーセクション生成
104
+ */
105
+ private generateSummary;
106
+ /**
107
+ * 結果テーブル生成
108
+ */
109
+ private generateResultsTable;
110
+ /**
111
+ * 詳細セクション生成
112
+ */
113
+ private generateDetails;
114
+ /**
115
+ * メタデータをフォーマット
116
+ */
117
+ private formatMetadata;
118
+ /**
119
+ * フッター生成
120
+ */
121
+ private generateFooter;
122
+ /**
123
+ * 設定を更新
124
+ */
125
+ updateConfig(config: Partial<EvaluationReportConfig>): void;
126
+ /**
127
+ * 現在の設定を取得
128
+ */
129
+ getConfig(): Required<EvaluationReportConfig>;
130
+ }
131
+ /**
132
+ * 簡易レポート生成ヘルパー
133
+ */
134
+ export declare function generateEvaluationReport(results: EvaluationResult[], config?: EvaluationReportConfig): string;
135
+ //# sourceMappingURL=EvaluationReporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EvaluationReporter.d.ts","sourceRoot":"","sources":["../../src/reporting/EvaluationReporter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAsB,MAAM,aAAa,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,eAAe;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS;IACT,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW;IACX,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc;IACd,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,eAAe;IACf,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS;IACT,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,gBAAgB;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,aAAa;IACb,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,cAAc;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc;IACd,kBAAkB,CAAC,EAAE,aAAa,EAAE,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,UAAU;IACV,KAAK,EAAE,MAAM,CAAC;IACd,WAAW;IACX,MAAM,EAAE,MAAM,CAAC;IACf,YAAY;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,UAAU;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW;IACX,MAAM,EAAE,MAAM,CAAC;IACf,cAAc;IACd,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1D;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,sBAAsB,CASlE,CAAC;AAEF;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAmC;gBAErC,MAAM,GAAE,sBAA2B;IAI/C;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM;IAmC5C;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,iBAAiB;IAsDnE;;OAEG;IACH,OAAO,CAAC,cAAc;IAsBtB;;OAEG;IACH,OAAO,CAAC,eAAe;IA6DvB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA8B5B;;OAEG;IACH,OAAO,CAAC,eAAe;IA0CvB;;OAEG;IACH,OAAO,CAAC,cAAc;IAgBtB;;OAEG;IACH,OAAO,CAAC,cAAc;IA4BtB;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,IAAI;IAI3D;;OAEG;IACH,SAAS,IAAI,QAAQ,CAAC,sBAAsB,CAAC;CAG9C;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,gBAAgB,EAAE,EAC3B,MAAM,CAAC,EAAE,sBAAsB,GAC9B,MAAM,CAGR"}
@@ -0,0 +1,285 @@
1
+ /**
2
+ * Evaluation Reporter
3
+ *
4
+ * 評価結果をMarkdownレポートに出力するユーティリティ
5
+ *
6
+ * @requirement REQ-EVAL-103
7
+ */
8
+ /**
9
+ * デフォルト設定
10
+ */
11
+ export const DEFAULT_REPORT_CONFIG = {
12
+ title: 'Evaluation Report',
13
+ description: '',
14
+ passThreshold: 0.7,
15
+ includeDetails: true,
16
+ includeMetadata: true,
17
+ includeTimestamp: true,
18
+ includeSummary: true,
19
+ language: 'en',
20
+ };
21
+ /**
22
+ * 評価レポーター
23
+ */
24
+ export class EvaluationReporter {
25
+ config;
26
+ constructor(config = {}) {
27
+ this.config = { ...DEFAULT_REPORT_CONFIG, ...config };
28
+ }
29
+ /**
30
+ * Markdownレポートを生成
31
+ */
32
+ generate(data) {
33
+ const sections = [];
34
+ // ヘッダー
35
+ sections.push(this.generateHeader(data));
36
+ // サマリー
37
+ if (this.config.includeSummary) {
38
+ const stats = this.calculateStatistics(data.results);
39
+ sections.push(this.generateSummary(stats));
40
+ }
41
+ // 評価結果テーブル
42
+ sections.push(this.generateResultsTable(data.results));
43
+ // 詳細
44
+ if (this.config.includeDetails) {
45
+ sections.push(this.generateDetails(data.results));
46
+ }
47
+ // 追加セクション
48
+ if (data.additionalSections) {
49
+ for (const section of data.additionalSections) {
50
+ sections.push(`## ${section.title}\n\n${section.content}`);
51
+ }
52
+ }
53
+ // フッター
54
+ if (this.config.includeTimestamp) {
55
+ sections.push(this.generateFooter(data));
56
+ }
57
+ return sections.join('\n\n---\n\n');
58
+ }
59
+ /**
60
+ * 統計情報を計算
61
+ */
62
+ calculateStatistics(results) {
63
+ if (results.length === 0) {
64
+ return {
65
+ total: 0,
66
+ passed: 0,
67
+ failed: 0,
68
+ passRate: 0,
69
+ avgScore: 0,
70
+ minScore: 0,
71
+ maxScore: 0,
72
+ stdDev: 0,
73
+ byEvaluator: new Map(),
74
+ };
75
+ }
76
+ const scores = results.map((r) => r.normalizedScore);
77
+ const passed = results.filter((r) => r.passed ?? r.normalizedScore >= this.config.passThreshold).length;
78
+ const avgScore = scores.reduce((a, b) => a + b, 0) / scores.length;
79
+ const variance = scores.reduce((sum, s) => sum + Math.pow(s - avgScore, 2), 0) / scores.length;
80
+ // 評価器別集計
81
+ const byEvaluator = new Map();
82
+ for (const result of results) {
83
+ const existing = byEvaluator.get(result.evaluator);
84
+ if (existing) {
85
+ existing.avg =
86
+ (existing.avg * existing.count + result.normalizedScore) /
87
+ (existing.count + 1);
88
+ existing.count++;
89
+ }
90
+ else {
91
+ byEvaluator.set(result.evaluator, {
92
+ avg: result.normalizedScore,
93
+ count: 1,
94
+ });
95
+ }
96
+ }
97
+ return {
98
+ total: results.length,
99
+ passed,
100
+ failed: results.length - passed,
101
+ passRate: passed / results.length,
102
+ avgScore,
103
+ minScore: Math.min(...scores),
104
+ maxScore: Math.max(...scores),
105
+ stdDev: Math.sqrt(variance),
106
+ byEvaluator,
107
+ };
108
+ }
109
+ /**
110
+ * ヘッダーセクション生成
111
+ */
112
+ generateHeader(data) {
113
+ const lines = [];
114
+ lines.push(`# ${this.config.title}`);
115
+ if (this.config.description) {
116
+ lines.push('');
117
+ lines.push(this.config.description);
118
+ }
119
+ if (data.datasetName) {
120
+ lines.push('');
121
+ lines.push(this.config.language === 'ja'
122
+ ? `**データセット**: ${data.datasetName}`
123
+ : `**Dataset**: ${data.datasetName}`);
124
+ }
125
+ return lines.join('\n');
126
+ }
127
+ /**
128
+ * サマリーセクション生成
129
+ */
130
+ generateSummary(stats) {
131
+ const isJa = this.config.language === 'ja';
132
+ const lines = [];
133
+ lines.push(isJa ? '## 📊 サマリー' : '## 📊 Summary');
134
+ lines.push('');
135
+ // メトリクステーブル
136
+ lines.push(isJa ? '| 指標 | 値 |' : '| Metric | Value |');
137
+ lines.push('|------|-----|');
138
+ lines.push(isJa
139
+ ? `| 総件数 | ${stats.total} |`
140
+ : `| Total | ${stats.total} |`);
141
+ lines.push(isJa
142
+ ? `| 合格 | ${stats.passed} (${(stats.passRate * 100).toFixed(1)}%) |`
143
+ : `| Passed | ${stats.passed} (${(stats.passRate * 100).toFixed(1)}%) |`);
144
+ lines.push(isJa
145
+ ? `| 不合格 | ${stats.failed} |`
146
+ : `| Failed | ${stats.failed} |`);
147
+ lines.push(isJa
148
+ ? `| 平均スコア | ${stats.avgScore.toFixed(3)} |`
149
+ : `| Avg Score | ${stats.avgScore.toFixed(3)} |`);
150
+ lines.push(isJa
151
+ ? `| 最小/最大 | ${stats.minScore.toFixed(3)} / ${stats.maxScore.toFixed(3)} |`
152
+ : `| Min/Max | ${stats.minScore.toFixed(3)} / ${stats.maxScore.toFixed(3)} |`);
153
+ lines.push(isJa
154
+ ? `| 標準偏差 | ${stats.stdDev.toFixed(3)} |`
155
+ : `| Std Dev | ${stats.stdDev.toFixed(3)} |`);
156
+ // 評価器別
157
+ if (stats.byEvaluator.size > 1) {
158
+ lines.push('');
159
+ lines.push(isJa ? '### 評価器別スコア' : '### Scores by Evaluator');
160
+ lines.push('');
161
+ lines.push(isJa
162
+ ? '| 評価器 | 平均スコア | 件数 |'
163
+ : '| Evaluator | Avg Score | Count |');
164
+ lines.push('|--------|------------|-------|');
165
+ for (const [evaluator, data] of stats.byEvaluator) {
166
+ lines.push(`| ${evaluator} | ${data.avg.toFixed(3)} | ${data.count} |`);
167
+ }
168
+ }
169
+ return lines.join('\n');
170
+ }
171
+ /**
172
+ * 結果テーブル生成
173
+ */
174
+ generateResultsTable(results) {
175
+ const isJa = this.config.language === 'ja';
176
+ const lines = [];
177
+ lines.push(isJa ? '## 📋 評価結果' : '## 📋 Results');
178
+ lines.push('');
179
+ if (results.length === 0) {
180
+ lines.push(isJa ? '_結果がありません_' : '_No results_');
181
+ return lines.join('\n');
182
+ }
183
+ lines.push(isJa
184
+ ? '| # | 評価器 | スコア | 正規化 | 結果 |'
185
+ : '| # | Evaluator | Score | Normalized | Status |');
186
+ lines.push('|---|--------|-------|----------|--------|');
187
+ results.forEach((result, index) => {
188
+ const passed = result.passed ?? result.normalizedScore >= this.config.passThreshold;
189
+ const statusIcon = passed ? '✅' : '❌';
190
+ lines.push(`| ${index + 1} | ${result.evaluator} | ${result.score.toFixed(3)} | ${result.normalizedScore.toFixed(3)} | ${statusIcon} |`);
191
+ });
192
+ return lines.join('\n');
193
+ }
194
+ /**
195
+ * 詳細セクション生成
196
+ */
197
+ generateDetails(results) {
198
+ const isJa = this.config.language === 'ja';
199
+ const lines = [];
200
+ lines.push(isJa ? '## 📝 詳細' : '## 📝 Details');
201
+ for (let i = 0; i < results.length; i++) {
202
+ const result = results[i];
203
+ if (!result)
204
+ continue;
205
+ lines.push('');
206
+ lines.push(`### ${i + 1}. ${result.evaluator}`);
207
+ lines.push('');
208
+ const passed = result.passed ?? result.normalizedScore >= this.config.passThreshold;
209
+ lines.push(isJa
210
+ ? `- **スコア**: ${result.score.toFixed(3)} (正規化: ${result.normalizedScore.toFixed(3)})`
211
+ : `- **Score**: ${result.score.toFixed(3)} (normalized: ${result.normalizedScore.toFixed(3)})`);
212
+ lines.push(isJa
213
+ ? `- **結果**: ${passed ? '✅ 合格' : '❌ 不合格'}`
214
+ : `- **Status**: ${passed ? '✅ Passed' : '❌ Failed'}`);
215
+ if (result.reasoning) {
216
+ lines.push('');
217
+ lines.push(isJa ? '**理由**:' : '**Reasoning**:');
218
+ lines.push('');
219
+ lines.push(`> ${result.reasoning}`);
220
+ }
221
+ if (this.config.includeMetadata && result.metadata) {
222
+ lines.push('');
223
+ lines.push(this.formatMetadata(result.metadata));
224
+ }
225
+ }
226
+ return lines.join('\n');
227
+ }
228
+ /**
229
+ * メタデータをフォーマット
230
+ */
231
+ formatMetadata(metadata) {
232
+ const isJa = this.config.language === 'ja';
233
+ const lines = [];
234
+ lines.push('<details>');
235
+ lines.push(`<summary>${isJa ? 'メタデータ' : 'Metadata'}</summary>`);
236
+ lines.push('');
237
+ lines.push('```json');
238
+ lines.push(JSON.stringify(metadata, null, 2));
239
+ lines.push('```');
240
+ lines.push('');
241
+ lines.push('</details>');
242
+ return lines.join('\n');
243
+ }
244
+ /**
245
+ * フッター生成
246
+ */
247
+ generateFooter(data) {
248
+ const isJa = this.config.language === 'ja';
249
+ const lines = [];
250
+ lines.push('---');
251
+ lines.push('');
252
+ const timestamp = data.executedAt ?? new Date().toISOString();
253
+ lines.push(isJa
254
+ ? `_生成日時: ${timestamp}_`
255
+ : `_Generated at: ${timestamp}_`);
256
+ if (data.durationMs !== undefined) {
257
+ lines.push(isJa
258
+ ? `_実行時間: ${data.durationMs}ms_`
259
+ : `_Duration: ${data.durationMs}ms_`);
260
+ }
261
+ lines.push('');
262
+ lines.push('_Powered by KATASHIRO Evaluation Framework_');
263
+ return lines.join('\n');
264
+ }
265
+ /**
266
+ * 設定を更新
267
+ */
268
+ updateConfig(config) {
269
+ this.config = { ...this.config, ...config };
270
+ }
271
+ /**
272
+ * 現在の設定を取得
273
+ */
274
+ getConfig() {
275
+ return { ...this.config };
276
+ }
277
+ }
278
+ /**
279
+ * 簡易レポート生成ヘルパー
280
+ */
281
+ export function generateEvaluationReport(results, config) {
282
+ const reporter = new EvaluationReporter(config);
283
+ return reporter.generate({ results });
284
+ }
285
+ //# sourceMappingURL=EvaluationReporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EvaluationReporter.js","sourceRoot":"","sources":["../../src/reporting/EvaluationReporter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA4EH;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAqC;IACrE,KAAK,EAAE,mBAAmB;IAC1B,WAAW,EAAE,EAAE;IACf,aAAa,EAAE,GAAG;IAClB,cAAc,EAAE,IAAI;IACpB,eAAe,EAAE,IAAI;IACrB,gBAAgB,EAAE,IAAI;IACtB,cAAc,EAAE,IAAI;IACpB,QAAQ,EAAE,IAAI;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,kBAAkB;IACrB,MAAM,CAAmC;IAEjD,YAAY,SAAiC,EAAE;QAC7C,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,qBAAqB,EAAE,GAAG,MAAM,EAAE,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,IAA0B;QACjC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,OAAO;QACP,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzC,OAAO;QACP,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7C,CAAC;QAED,WAAW;QACX,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAEvD,KAAK;QACL,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAC/B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACpD,CAAC;QAED,UAAU;QACV,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC9C,QAAQ,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,KAAK,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,OAAO;QACP,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YACjC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,OAA2B;QAC7C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO;gBACL,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;gBACT,MAAM,EAAE,CAAC;gBACT,QAAQ,EAAE,CAAC;gBACX,QAAQ,EAAE,CAAC;gBACX,QAAQ,EAAE,CAAC;gBACX,QAAQ,EAAE,CAAC;gBACX,MAAM,EAAE,CAAC;gBACT,WAAW,EAAE,IAAI,GAAG,EAAE;aACvB,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAC3B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,eAAe,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAClE,CAAC,MAAM,CAAC;QAET,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QACnE,MAAM,QAAQ,GACZ,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QAEhF,SAAS;QACT,MAAM,WAAW,GAAG,IAAI,GAAG,EAA0C,CAAC;QACtE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACnD,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,GAAG;oBACV,CAAC,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC;wBACxD,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBACvB,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE;oBAChC,GAAG,EAAE,MAAM,CAAC,eAAe;oBAC3B,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO;YACL,KAAK,EAAE,OAAO,CAAC,MAAM;YACrB,MAAM;YACN,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,MAAM;YAC/B,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM;YACjC,QAAQ;YACR,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;YAC7B,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;YAC7B,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC3B,WAAW;SACZ,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,IAA0B;QAC/C,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAErC,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CACR,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI;gBAC3B,CAAC,CAAC,eAAe,IAAI,CAAC,WAAW,EAAE;gBACnC,CAAC,CAAC,gBAAgB,IAAI,CAAC,WAAW,EAAE,CACvC,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,KAAwB;QAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC;QAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;QAClD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,YAAY;QACZ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;QACvD,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7B,KAAK,CAAC,IAAI,CACR,IAAI;YACF,CAAC,CAAC,WAAW,KAAK,CAAC,KAAK,IAAI;YAC5B,CAAC,CAAC,aAAa,KAAK,CAAC,KAAK,IAAI,CACjC,CAAC;QACF,KAAK,CAAC,IAAI,CACR,IAAI;YACF,CAAC,CAAC,UAAU,KAAK,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;YACpE,CAAC,CAAC,cAAc,KAAK,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAC3E,CAAC;QACF,KAAK,CAAC,IAAI,CACR,IAAI;YACF,CAAC,CAAC,WAAW,KAAK,CAAC,MAAM,IAAI;YAC7B,CAAC,CAAC,cAAc,KAAK,CAAC,MAAM,IAAI,CACnC,CAAC;QACF,KAAK,CAAC,IAAI,CACR,IAAI;YACF,CAAC,CAAC,aAAa,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YAC5C,CAAC,CAAC,iBAAiB,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CACnD,CAAC;QACF,KAAK,CAAC,IAAI,CACR,IAAI;YACF,CAAC,CAAC,aAAa,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YAC3E,CAAC,CAAC,eAAe,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAChF,CAAC;QACF,KAAK,CAAC,IAAI,CACR,IAAI;YACF,CAAC,CAAC,YAAY,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YACzC,CAAC,CAAC,eAAe,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAC/C,CAAC;QAEF,OAAO;QACP,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC;YAC7D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CACR,IAAI;gBACF,CAAC,CAAC,sBAAsB;gBACxB,CAAC,CAAC,mCAAmC,CACxC,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YAE9C,KAAK,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;gBAClD,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,OAA2B;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC;QAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;QAClD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;YACjD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAED,KAAK,CAAC,IAAI,CACR,IAAI;YACF,CAAC,CAAC,8BAA8B;YAChC,CAAC,CAAC,iDAAiD,CACtD,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAEzD,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAChC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,eAAe,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;YACpF,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YACtC,KAAK,CAAC,IAAI,CACR,KAAK,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC,SAAS,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,UAAU,IAAI,CAC7H,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,OAA2B;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC;QAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;QAEhD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,MAAM;gBAAE,SAAS;YAEtB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;YAChD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEf,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,eAAe,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;YACpF,KAAK,CAAC,IAAI,CACR,IAAI;gBACF,CAAC,CAAC,cAAc,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;gBACrF,CAAC,CAAC,gBAAgB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CACjG,CAAC;YACF,KAAK,CAAC,IAAI,CACR,IAAI;gBACF,CAAC,CAAC,aAAa,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE;gBAC1C,CAAC,CAAC,iBAAiB,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,CACxD,CAAC;YAEF,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACrB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACf,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;gBAChD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACf,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;YACtC,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACnD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACf,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,QAA4B;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC;QAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,YAAY,CAAC,CAAC;QAChE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEzB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,IAA0B;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC;QAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC9D,KAAK,CAAC,IAAI,CACR,IAAI;YACF,CAAC,CAAC,UAAU,SAAS,GAAG;YACxB,CAAC,CAAC,kBAAkB,SAAS,GAAG,CACnC,CAAC;QAEF,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CACR,IAAI;gBACF,CAAC,CAAC,UAAU,IAAI,CAAC,UAAU,KAAK;gBAChC,CAAC,CAAC,cAAc,IAAI,CAAC,UAAU,KAAK,CACvC,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;QAE1D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,MAAuC;QAClD,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAA2B,EAC3B,MAA+B;IAE/B,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAChD,OAAO,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Reporting Module
3
+ *
4
+ * 評価レポート生成機能のエントリポイント
5
+ */
6
+ export { EvaluationReporter, generateEvaluationReport, DEFAULT_REPORT_CONFIG, type EvaluationReportConfig, type EvaluationReportData, type ReportSection, type SummaryStatistics, } from './EvaluationReporter.js';
7
+ export { defaultTemplates, defaultHeaderTemplate, defaultSummaryTemplate, defaultResultRowTemplate, defaultFooterTemplate, generateProgressBar, generateScoreBadge, generateComparisonTable, generateScoreHeatmap, type TemplateFunction, type TemplateCollection, type HeaderTemplateData, type SummaryTemplateData, type ResultRowTemplateData, } from './templates.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/reporting/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,iBAAiB,GACvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,GAC3B,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Reporting Module
3
+ *
4
+ * 評価レポート生成機能のエントリポイント
5
+ */
6
+ export { EvaluationReporter, generateEvaluationReport, DEFAULT_REPORT_CONFIG, } from './EvaluationReporter.js';
7
+ export { defaultTemplates, defaultHeaderTemplate, defaultSummaryTemplate, defaultResultRowTemplate, defaultFooterTemplate, generateProgressBar, generateScoreBadge, generateComparisonTable, generateScoreHeatmap, } from './templates.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reporting/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,GAKtB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,GAMrB,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Markdown Templates for Evaluation Reports
3
+ *
4
+ * レポートテンプレートのカスタマイズ用モジュール
5
+ *
6
+ * @requirement REQ-EVAL-103
7
+ */
8
+ import type { EvaluationResult } from '../types.js';
9
+ import type { SummaryStatistics } from './EvaluationReporter.js';
10
+ /**
11
+ * テンプレート関数型
12
+ */
13
+ export type TemplateFunction<T> = (data: T, language: 'en' | 'ja') => string;
14
+ /**
15
+ * ヘッダーテンプレートデータ
16
+ */
17
+ export interface HeaderTemplateData {
18
+ title: string;
19
+ description?: string;
20
+ datasetName?: string;
21
+ }
22
+ /**
23
+ * サマリーテンプレートデータ
24
+ */
25
+ export interface SummaryTemplateData {
26
+ stats: SummaryStatistics;
27
+ passThreshold: number;
28
+ }
29
+ /**
30
+ * 結果行テンプレートデータ
31
+ */
32
+ export interface ResultRowTemplateData {
33
+ index: number;
34
+ result: EvaluationResult;
35
+ passed: boolean;
36
+ }
37
+ /**
38
+ * テンプレートコレクション
39
+ */
40
+ export interface TemplateCollection {
41
+ header: TemplateFunction<HeaderTemplateData>;
42
+ summary: TemplateFunction<SummaryTemplateData>;
43
+ resultRow: TemplateFunction<ResultRowTemplateData>;
44
+ footer: TemplateFunction<{
45
+ timestamp: string;
46
+ durationMs?: number;
47
+ }>;
48
+ }
49
+ /**
50
+ * デフォルトヘッダーテンプレート
51
+ */
52
+ export declare const defaultHeaderTemplate: TemplateFunction<HeaderTemplateData>;
53
+ /**
54
+ * デフォルトサマリーテンプレート
55
+ */
56
+ export declare const defaultSummaryTemplate: TemplateFunction<SummaryTemplateData>;
57
+ /**
58
+ * デフォルト結果行テンプレート
59
+ */
60
+ export declare const defaultResultRowTemplate: TemplateFunction<ResultRowTemplateData>;
61
+ /**
62
+ * デフォルトフッターテンプレート
63
+ */
64
+ export declare const defaultFooterTemplate: TemplateFunction<{
65
+ timestamp: string;
66
+ durationMs?: number;
67
+ }>;
68
+ /**
69
+ * デフォルトテンプレートコレクション
70
+ */
71
+ export declare const defaultTemplates: TemplateCollection;
72
+ /**
73
+ * プログレスバー生成
74
+ */
75
+ export declare function generateProgressBar(ratio: number, width?: number): string;
76
+ /**
77
+ * スコアバッジ生成
78
+ */
79
+ export declare function generateScoreBadge(score: number, thresholds?: {
80
+ good: number;
81
+ fair: number;
82
+ }): string;
83
+ /**
84
+ * 比較テーブル生成
85
+ */
86
+ export declare function generateComparisonTable(baseline: SummaryStatistics, current: SummaryStatistics, language?: 'en' | 'ja'): string;
87
+ /**
88
+ * ヒートマップ生成(テキストベース)
89
+ */
90
+ export declare function generateScoreHeatmap(results: EvaluationResult[], buckets?: number): string;
91
+ //# sourceMappingURL=templates.d.ts.map