@usejunior/docx-core 0.2.0 → 0.3.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 (49) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/benchmark/gates.d.ts +17 -0
  3. package/dist/benchmark/gates.d.ts.map +1 -0
  4. package/dist/benchmark/gates.js +260 -0
  5. package/dist/benchmark/gates.js.map +1 -0
  6. package/dist/benchmark/metrics.d.ts +5 -62
  7. package/dist/benchmark/metrics.d.ts.map +1 -1
  8. package/dist/benchmark/metrics.js +7 -28
  9. package/dist/benchmark/metrics.js.map +1 -1
  10. package/dist/benchmark/reporter.d.ts +6 -19
  11. package/dist/benchmark/reporter.d.ts.map +1 -1
  12. package/dist/benchmark/reporter.js +63 -116
  13. package/dist/benchmark/reporter.js.map +1 -1
  14. package/dist/benchmark/runner.d.ts +11 -26
  15. package/dist/benchmark/runner.d.ts.map +1 -1
  16. package/dist/benchmark/runner.js +191 -183
  17. package/dist/benchmark/runner.js.map +1 -1
  18. package/dist/benchmark/scores.d.ts +24 -0
  19. package/dist/benchmark/scores.d.ts.map +1 -0
  20. package/dist/benchmark/scores.js +103 -0
  21. package/dist/benchmark/scores.js.map +1 -0
  22. package/dist/benchmark/types.d.ts +81 -0
  23. package/dist/benchmark/types.d.ts.map +1 -0
  24. package/dist/benchmark/types.js +7 -0
  25. package/dist/benchmark/types.js.map +1 -0
  26. package/dist/primitives/document.d.ts +12 -0
  27. package/dist/primitives/document.d.ts.map +1 -1
  28. package/dist/primitives/document.js +17 -2
  29. package/dist/primitives/document.js.map +1 -1
  30. package/dist/primitives/document_view.d.ts +2 -0
  31. package/dist/primitives/document_view.d.ts.map +1 -1
  32. package/dist/primitives/document_view.js +3 -2
  33. package/dist/primitives/document_view.js.map +1 -1
  34. package/dist/primitives/formatting_tags.d.ts +14 -2
  35. package/dist/primitives/formatting_tags.d.ts.map +1 -1
  36. package/dist/primitives/formatting_tags.js +13 -11
  37. package/dist/primitives/formatting_tags.js.map +1 -1
  38. package/dist/primitives/matching.d.ts +12 -0
  39. package/dist/primitives/matching.d.ts.map +1 -1
  40. package/dist/primitives/matching.js +54 -0
  41. package/dist/primitives/matching.js.map +1 -1
  42. package/dist/primitives/merge_runs.d.ts.map +1 -1
  43. package/dist/primitives/merge_runs.js +48 -0
  44. package/dist/primitives/merge_runs.js.map +1 -1
  45. package/dist/shared/validators/structural.d.ts +31 -0
  46. package/dist/shared/validators/structural.d.ts.map +1 -0
  47. package/dist/shared/validators/structural.js +110 -0
  48. package/dist/shared/validators/structural.js.map +1 -0
  49. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gates.js","sourceRoot":"","sources":["../../src/benchmark/gates.ts"],"names":[],"mappings":"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"}
@@ -1,72 +1,15 @@
1
1
  /**
2
- * Benchmark metrics collection.
2
+ * Benchmark metric utilities.
3
3
  *
4
- * Defines the metrics collected during A/B baseline comparison.
4
+ * Timing and memory measurement helpers used by the quality benchmark runner.
5
5
  */
6
6
  /**
7
- * Metrics collected from a comparison operation.
8
- */
9
- export interface ComparisonMetrics {
10
- /** Number of insertions detected */
11
- insertions: number;
12
- /** Number of deletions detected */
13
- deletions: number;
14
- /** Number of modifications (paragraphs with changes) */
15
- modifications: number;
16
- /** Average length of changed spans */
17
- avgSpanLength: number;
18
- /** Whether output opens in Word (requires manual verification or COM automation) */
19
- opensInWord: boolean | null;
20
- /** Whether OpenXML SDK can load the output */
21
- openXmlSdkValid: boolean | null;
22
- /** Whether all relationship parts are valid */
23
- noBrokenRelationships: boolean | null;
24
- /** Whether numbering was retained correctly */
25
- numberingRetained: boolean | null;
26
- /** Whether section headings are correct */
27
- sectionHeadingsCorrect: boolean | null;
28
- /** Whether defined terms are preserved */
29
- definedTermsPreserved: boolean | null;
30
- /** Whether tables remain intact */
31
- tablesIntact: boolean | null;
32
- /** Whether cross-references work */
33
- crossRefsWorking: boolean | null;
34
- /** Wall clock time in milliseconds */
35
- wallTimeMs: number;
36
- /** Peak RSS memory in megabytes */
37
- peakRssMb: number;
38
- /** Output file size in bytes */
39
- outputSizeBytes: number;
40
- }
41
- /**
42
- * Create an empty metrics object with null values.
43
- */
44
- export declare function createEmptyMetrics(): ComparisonMetrics;
45
- /**
46
- * Result of running a benchmark on a fixture.
47
- */
48
- export interface BenchmarkResult {
49
- /** Name of the fixture */
50
- fixture: string;
51
- /** Metrics from Baseline A (WmlComparer) */
52
- baselineA: ComparisonMetrics | null;
53
- /** Error from Baseline A if any */
54
- baselineAError?: string;
55
- /** Metrics from Baseline B (pure TS) */
56
- baselineB: ComparisonMetrics | null;
57
- /** Error from Baseline B if any */
58
- baselineBError?: string;
59
- /** Metrics from Word oracle (if available) */
60
- wordOracle?: ComparisonMetrics | null;
61
- /** Timestamp when benchmark was run */
62
- timestamp: Date;
63
- }
64
- /**
65
- * Measure memory usage.
7
+ * Measure current RSS memory usage in megabytes.
66
8
  */
67
9
  export declare function measureMemory(): number;
68
10
  /**
69
- * High-resolution timer for performance measurement.
11
+ * Create a high-resolution timer. Returns a function that, when called,
12
+ * returns elapsed milliseconds since creation.
70
13
  */
71
14
  export declare function createTimer(): () => number;
72
15
  //# sourceMappingURL=metrics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/benchmark/metrics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAEhC,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,aAAa,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,aAAa,EAAE,MAAM,CAAC;IAGtB,oFAAoF;IACpF,WAAW,EAAE,OAAO,GAAG,IAAI,CAAC;IAC5B,8CAA8C;IAC9C,eAAe,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,+CAA+C;IAC/C,qBAAqB,EAAE,OAAO,GAAG,IAAI,CAAC;IAGtC,+CAA+C;IAC/C,iBAAiB,EAAE,OAAO,GAAG,IAAI,CAAC;IAClC,2CAA2C;IAC3C,sBAAsB,EAAE,OAAO,GAAG,IAAI,CAAC;IACvC,0CAA0C;IAC1C,qBAAqB,EAAE,OAAO,GAAG,IAAI,CAAC;IACtC,mCAAmC;IACnC,YAAY,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7B,oCAAoC;IACpC,gBAAgB,EAAE,OAAO,GAAG,IAAI,CAAC;IAGjC,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,iBAAiB,CAkBtD;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,SAAS,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACpC,mCAAmC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,SAAS,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACpC,mCAAmC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACtC,uCAAuC;IACvC,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAGtC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,MAAM,CAM1C"}
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/benchmark/metrics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAGtC;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,MAAM,MAAM,CAM1C"}
@@ -1,45 +1,24 @@
1
1
  /**
2
- * Benchmark metrics collection.
2
+ * Benchmark metric utilities.
3
3
  *
4
- * Defines the metrics collected during A/B baseline comparison.
4
+ * Timing and memory measurement helpers used by the quality benchmark runner.
5
5
  */
6
6
  /**
7
- * Create an empty metrics object with null values.
8
- */
9
- export function createEmptyMetrics() {
10
- return {
11
- insertions: 0,
12
- deletions: 0,
13
- modifications: 0,
14
- avgSpanLength: 0,
15
- opensInWord: null,
16
- openXmlSdkValid: null,
17
- noBrokenRelationships: null,
18
- numberingRetained: null,
19
- sectionHeadingsCorrect: null,
20
- definedTermsPreserved: null,
21
- tablesIntact: null,
22
- crossRefsWorking: null,
23
- wallTimeMs: 0,
24
- peakRssMb: 0,
25
- outputSizeBytes: 0,
26
- };
27
- }
28
- /**
29
- * Measure memory usage.
7
+ * Measure current RSS memory usage in megabytes.
30
8
  */
31
9
  export function measureMemory() {
32
10
  const usage = process.memoryUsage();
33
- return usage.rss / (1024 * 1024); // Convert to MB
11
+ return usage.rss / (1024 * 1024);
34
12
  }
35
13
  /**
36
- * High-resolution timer for performance measurement.
14
+ * Create a high-resolution timer. Returns a function that, when called,
15
+ * returns elapsed milliseconds since creation.
37
16
  */
38
17
  export function createTimer() {
39
18
  const start = process.hrtime.bigint();
40
19
  return () => {
41
20
  const end = process.hrtime.bigint();
42
- return Number(end - start) / 1_000_000; // Convert to ms
21
+ return Number(end - start) / 1_000_000;
43
22
  };
44
23
  }
45
24
  //# sourceMappingURL=metrics.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/benchmark/metrics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA6CH;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO;QACL,UAAU,EAAE,CAAC;QACb,SAAS,EAAE,CAAC;QACZ,aAAa,EAAE,CAAC;QAChB,aAAa,EAAE,CAAC;QAChB,WAAW,EAAE,IAAI;QACjB,eAAe,EAAE,IAAI;QACrB,qBAAqB,EAAE,IAAI;QAC3B,iBAAiB,EAAE,IAAI;QACvB,sBAAsB,EAAE,IAAI;QAC5B,qBAAqB,EAAE,IAAI;QAC3B,YAAY,EAAE,IAAI;QAClB,gBAAgB,EAAE,IAAI;QACtB,UAAU,EAAE,CAAC;QACb,SAAS,EAAE,CAAC;QACZ,eAAe,EAAE,CAAC;KACnB,CAAC;AACJ,CAAC;AAsBD;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,OAAO,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB;AACpD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACtC,OAAO,GAAG,EAAE;QACV,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACpC,OAAO,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC,gBAAgB;IAC1D,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/benchmark/metrics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,OAAO,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW;IACzB,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACtC,OAAO,GAAG,EAAE;QACV,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACpC,OAAO,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,SAAS,CAAC;IACzC,CAAC,CAAC;AACJ,CAAC"}
@@ -1,23 +1,10 @@
1
1
  /**
2
- * Benchmark result reporter.
2
+ * Quality benchmark reporter.
3
3
  *
4
- * Formats benchmark results for different output modes.
4
+ * Formats gate-then-score results as Markdown, JSON, or console output.
5
5
  */
6
- import { BenchmarkResult } from './metrics.js';
7
- /**
8
- * Generate a markdown report from benchmark results.
9
- */
10
- export declare function generateMarkdownReport(results: BenchmarkResult[]): string;
11
- /**
12
- * Generate a console table from benchmark results.
13
- */
14
- export declare function generateConsoleTable(results: BenchmarkResult[]): string;
15
- /**
16
- * Generate JSON output from benchmark results.
17
- */
18
- export declare function generateJsonReport(results: BenchmarkResult[]): string;
19
- /**
20
- * Print a comparison summary to console.
21
- */
22
- export declare function printSummary(results: BenchmarkResult[]): void;
6
+ import type { FixtureBenchmarkResult } from './types.js';
7
+ export declare function generateMarkdownReport(results: FixtureBenchmarkResult[]): string;
8
+ export declare function generateJsonReport(results: FixtureBenchmarkResult[]): string;
9
+ export declare function printSummary(results: FixtureBenchmarkResult[]): void;
23
10
  //# sourceMappingURL=reporter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../../src/benchmark/reporter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAqB,MAAM,cAAc,CAAC;AAoBlE;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,CAuCzE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,CAuCvE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,CA+BrE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,IAAI,CA4B7D"}
1
+ {"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../../src/benchmark/reporter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAUzD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,sBAAsB,EAAE,GAAG,MAAM,CA4DhF;AAID,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,sBAAsB,EAAE,GAAG,MAAM,CAS5E;AAID,wBAAgB,YAAY,CAAC,OAAO,EAAE,sBAAsB,EAAE,GAAG,IAAI,CAyBpE"}
@@ -1,145 +1,92 @@
1
1
  /**
2
- * Benchmark result reporter.
2
+ * Quality benchmark reporter.
3
3
  *
4
- * Formats benchmark results for different output modes.
4
+ * Formats gate-then-score results as Markdown, JSON, or console output.
5
5
  */
6
- /**
7
- * Format metrics as a markdown table row.
8
- */
9
- function formatMetricsRow(name, metrics, error) {
10
- if (error) {
11
- return `| ${name} | Error: ${error.slice(0, 50)}... | - | - | - | - |`;
12
- }
13
- if (!metrics) {
14
- return `| ${name} | Skipped | - | - | - | - |`;
15
- }
16
- return `| ${name} | ${metrics.insertions} | ${metrics.deletions} | ${metrics.wallTimeMs.toFixed(1)}ms | ${metrics.peakRssMb.toFixed(1)}MB | ${(metrics.outputSizeBytes / 1024).toFixed(1)}KB |`;
6
+ // ── Helpers ─────────────────────────────────────────────────────────
7
+ function gateIcon(passed) {
8
+ return passed ? 'PASS' : 'FAIL';
17
9
  }
18
- /**
19
- * Generate a markdown report from benchmark results.
20
- */
10
+ // ── Markdown ────────────────────────────────────────────────────────
21
11
  export function generateMarkdownReport(results) {
22
12
  const lines = [];
23
- lines.push('# Document Comparison Benchmark Results');
13
+ lines.push('# Quality Benchmark Results');
24
14
  lines.push('');
25
15
  lines.push(`Generated: ${new Date().toISOString()}`);
26
16
  lines.push('');
17
+ lines.push('| Fixture | Engine | G1a | G1b | G1c | G2* | G3 | Q1 | Q3(ms) | Q4 |');
18
+ lines.push('|---------|--------|-----|-----|-----|-----|----|----|--------|----|');
27
19
  for (const result of results) {
28
- lines.push(`## Fixture: ${result.fixture}`);
29
- lines.push('');
30
- lines.push('| Baseline | Insertions | Deletions | Time | Memory | Output Size |');
31
- lines.push('|----------|------------|-----------|------|--------|-------------|');
32
- lines.push(formatMetricsRow('A (WmlComparer)', result.baselineA, result.baselineAError));
33
- lines.push(formatMetricsRow('B (Pure TS)', result.baselineB, result.baselineBError));
34
- if (result.wordOracle) {
35
- lines.push(formatMetricsRow('Word Oracle', result.wordOracle));
20
+ for (const [engineName, er] of Object.entries(result.engines)) {
21
+ const g1 = er.gates.textRoundTrip;
22
+ const g1a = gateIcon(g1.normalizedTextParity.passed);
23
+ const g1b = gateIcon(g1.paragraphCountParity.passed);
24
+ const g1c = gateIcon(g1.xmlParseValidity.passed);
25
+ const g2 = gateIcon(er.gates.formattingProjection.passed);
26
+ const g3 = gateIcon(er.gates.structuralIntegrity.passed);
27
+ const q1 = er.scores?.diffMinimality
28
+ ? String(er.scores.diffMinimality.engineRuns)
29
+ : '-';
30
+ const q3 = er.scores?.performance
31
+ ? er.scores.performance.wallTimeMs.toFixed(0)
32
+ : '-';
33
+ const q4parts = [];
34
+ if (er.scores?.extras.moveDetection)
35
+ q4parts.push('moves');
36
+ if (er.scores?.extras.tableCellDiff)
37
+ q4parts.push('tables');
38
+ const q4 = q4parts.length > 0 ? q4parts.join('+') : '-';
39
+ lines.push(`| ${result.fixture} | ${engineName} | ${g1a} | ${g1b} | ${g1c} | ${g2} | ${g3} | ${q1} | ${q3} | ${q4} |`);
36
40
  }
37
- lines.push('');
38
41
  }
39
- // Summary statistics
42
+ lines.push('');
43
+ lines.push('*G2 is a soft gate (diagnostic only in v1)*');
44
+ lines.push('');
45
+ // Summary
40
46
  lines.push('## Summary');
41
47
  lines.push('');
42
- const successfulA = results.filter(r => r.baselineA !== null);
43
- const successfulB = results.filter(r => r.baselineB !== null);
44
- if (successfulA.length > 0) {
45
- const avgTimeA = successfulA.reduce((sum, r) => sum + (r.baselineA?.wallTimeMs ?? 0), 0) / successfulA.length;
46
- lines.push(`- Baseline A: ${successfulA.length}/${results.length} successful, avg time: ${avgTimeA.toFixed(1)}ms`);
47
- }
48
- if (successfulB.length > 0) {
49
- const avgTimeB = successfulB.reduce((sum, r) => sum + (r.baselineB?.wallTimeMs ?? 0), 0) / successfulB.length;
50
- lines.push(`- Baseline B: ${successfulB.length}/${results.length} successful, avg time: ${avgTimeB.toFixed(1)}ms`);
51
- }
52
- return lines.join('\n');
53
- }
54
- /**
55
- * Generate a console table from benchmark results.
56
- */
57
- export function generateConsoleTable(results) {
58
- const lines = [];
59
- // Header
60
- lines.push('┌────────────────────────┬──────────┬─────────────┬─────────────┬──────────┬──────────┐');
61
- lines.push('│ Fixture │ Baseline │ Insertions │ Deletions │ Time │ Memory │');
62
- lines.push('├────────────────────────┼──────────┼─────────────┼─────────────┼──────────┼──────────┤');
48
+ const engineStats = new Map();
63
49
  for (const result of results) {
64
- const fixtureName = result.fixture.padEnd(22).slice(0, 22);
65
- // Baseline A row
66
- if (result.baselineAError) {
67
- lines.push(`│ ${fixtureName} │ A │ ERROR │ │ │ │`);
68
- }
69
- else if (result.baselineA) {
70
- const m = result.baselineA;
71
- lines.push(`│ ${fixtureName} │ A │ ${String(m.insertions).padStart(11)} │ ${String(m.deletions).padStart(11)} │ ${m.wallTimeMs.toFixed(0).padStart(6)}ms │ ${m.peakRssMb.toFixed(1).padStart(6)}MB │`);
72
- }
73
- // Baseline B row
74
- if (result.baselineBError) {
75
- lines.push(`│ │ B │ ERROR │ │ │ │`);
76
- }
77
- else if (result.baselineB) {
78
- const m = result.baselineB;
79
- lines.push(`│ │ B │ ${String(m.insertions).padStart(11)} │ ${String(m.deletions).padStart(11)} │ ${m.wallTimeMs.toFixed(0).padStart(6)}ms │ ${m.peakRssMb.toFixed(1).padStart(6)}MB │`);
50
+ for (const [engineName, er] of Object.entries(result.engines)) {
51
+ const stats = engineStats.get(engineName) ?? { total: 0, hardPass: 0, softPass: 0 };
52
+ stats.total++;
53
+ if (er.hardGatesPassed)
54
+ stats.hardPass++;
55
+ if (er.softGatesPassed)
56
+ stats.softPass++;
57
+ engineStats.set(engineName, stats);
80
58
  }
81
- lines.push('├────────────────────────┼──────────┼─────────────┼─────────────┼──────────┼──────────┤');
82
59
  }
83
- // Remove last separator and add bottom border
84
- lines.pop();
85
- lines.push('└────────────────────────┴──────────┴─────────────┴─────────────┴──────────┴──────────┘');
60
+ for (const [engine, stats] of engineStats) {
61
+ lines.push(`- **${engine}**: ${stats.hardPass}/${stats.total} hard gates passed, ${stats.softPass}/${stats.total} soft gates passed`);
62
+ }
86
63
  return lines.join('\n');
87
64
  }
88
- /**
89
- * Generate JSON output from benchmark results.
90
- */
65
+ // ── JSON ────────────────────────────────────────────────────────────
91
66
  export function generateJsonReport(results) {
92
67
  return JSON.stringify({
93
68
  timestamp: new Date().toISOString(),
94
- results: results.map(r => ({
95
- fixture: r.fixture,
96
- timestamp: r.timestamp.toISOString(),
97
- baselineA: r.baselineA
98
- ? {
99
- success: true,
100
- ...r.baselineA,
101
- }
102
- : {
103
- success: false,
104
- error: r.baselineAError,
105
- },
106
- baselineB: r.baselineB
107
- ? {
108
- success: true,
109
- ...r.baselineB,
110
- }
111
- : {
112
- success: false,
113
- error: r.baselineBError,
114
- },
115
- wordOracle: r.wordOracle ?? null,
116
- })),
69
+ results,
117
70
  }, null, 2);
118
71
  }
119
- /**
120
- * Print a comparison summary to console.
121
- */
72
+ // ── Console ─────────────────────────────────────────────────────────
122
73
  export function printSummary(results) {
123
- console.log('\n=== Benchmark Summary ===\n');
74
+ console.log('\n=== Quality Benchmark Summary ===\n');
124
75
  for (const result of results) {
125
- console.log(`Fixture: ${result.fixture}`);
126
- if (result.baselineA) {
127
- console.log(` Baseline A: ${result.baselineA.insertions} ins, ${result.baselineA.deletions} del, ${result.baselineA.wallTimeMs.toFixed(0)}ms`);
128
- }
129
- else if (result.baselineAError) {
130
- console.log(` Baseline A: Error - ${result.baselineAError}`);
131
- }
132
- else {
133
- console.log(' Baseline A: Skipped');
134
- }
135
- if (result.baselineB) {
136
- console.log(` Baseline B: ${result.baselineB.insertions} ins, ${result.baselineB.deletions} del, ${result.baselineB.wallTimeMs.toFixed(0)}ms`);
137
- }
138
- else if (result.baselineBError) {
139
- console.log(` Baseline B: Error - ${result.baselineBError}`);
140
- }
141
- else {
142
- console.log(' Baseline B: Skipped');
76
+ console.log(`Fixture: ${result.fixture} [${result.tags.join(', ')}]`);
77
+ for (const [engineName, er] of Object.entries(result.engines)) {
78
+ const hard = er.hardGatesPassed ? 'PASS' : 'FAIL';
79
+ const soft = er.softGatesPassed ? 'PASS' : 'FAIL';
80
+ const time = er.scores?.performance
81
+ ? `${er.scores.performance.wallTimeMs.toFixed(0)}ms`
82
+ : 'N/A';
83
+ const q1 = er.scores?.diffMinimality
84
+ ? `${er.scores.diffMinimality.engineRuns} runs`
85
+ : 'N/A';
86
+ console.log(` ${engineName}: hard=${hard} soft=${soft} time=${time} q1=${q1}`);
87
+ if (er.error) {
88
+ console.log(` Error: ${er.error}`);
89
+ }
143
90
  }
144
91
  console.log('');
145
92
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../src/benchmark/reporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../src/benchmark/reporter.ts"],"names":[],"mappings":"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"}
@@ -1,30 +1,15 @@
1
1
  /**
2
- * Benchmark runner for A/B baseline comparison.
2
+ * Quality benchmark runner gate-then-score architecture.
3
3
  *
4
- * Runs both baselines against test fixtures and collects metrics.
4
+ * For each fixture × engine: produce redline run gates → if hard gates pass, run scores.
5
5
  */
6
- import type { BenchmarkResult } from './metrics.js';
7
- /**
8
- * Configuration for benchmark runs.
9
- */
10
- export interface BenchmarkConfig {
11
- /** Path to fixtures directory */
12
- fixturesPath: string;
13
- /** Author name for revisions */
14
- author?: string;
15
- /** Path to Docxodus repository (for CLI fallback) */
16
- docxodusPath?: string;
17
- /** Path to dotnet executable (e.g., /opt/homebrew/opt/dotnet@8/bin/dotnet) */
18
- dotnetPath?: string;
19
- /** Run Baseline A (WmlComparer) */
20
- runBaselineA?: boolean;
21
- /** Run Baseline B (pure TS) */
22
- runBaselineB?: boolean;
23
- /** Timeout for each comparison in ms */
24
- timeout?: number;
25
- }
26
- /**
27
- * Run benchmark on all fixtures.
28
- */
29
- export declare function runBenchmark(config: BenchmarkConfig): Promise<BenchmarkResult[]>;
6
+ import type { FixtureBenchmarkResult, FixtureManifest, FixtureManifestEntry, QualityBenchmarkConfig } from './types.js';
7
+ export declare function loadManifest(manifestPath: string): Promise<{
8
+ manifest: FixtureManifest;
9
+ resolvedFixtures: Array<FixtureManifestEntry & {
10
+ resolvedOriginal: string;
11
+ resolvedRevised: string;
12
+ }>;
13
+ }>;
14
+ export declare function runQualityBenchmark(config: QualityBenchmarkConfig): Promise<FixtureBenchmarkResult[]>;
30
15
  //# sourceMappingURL=runner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/benchmark/runner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EACV,eAAe,EAEhB,MAAM,cAAc,CAAC;AAUtB;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,iCAAiC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+BAA+B;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA+KD;;GAEG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,eAAe,EAAE,CAAC,CAoC5B"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/benchmark/runner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH,OAAO,KAAK,EAGV,sBAAsB,EACtB,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EAEvB,MAAM,YAAY,CAAC;AAMpB,wBAAsB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC;IAChE,QAAQ,EAAE,eAAe,CAAC;IAC1B,gBAAgB,EAAE,KAAK,CAAC,oBAAoB,GAAG;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACvG,CAAC,CA+BD;AAwJD,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAgCnC"}