uasp-skills 0.1.3 → 0.1.5
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.
- package/LICENSE +1 -1
- package/README.md +193 -0
- package/bin/uasp-skills.js +0 -0
- package/dist/benchmark/converters.d.ts +34 -0
- package/dist/benchmark/converters.d.ts.map +1 -0
- package/dist/benchmark/converters.js +139 -0
- package/dist/benchmark/converters.js.map +1 -0
- package/dist/benchmark/index.d.ts +27 -0
- package/dist/benchmark/index.d.ts.map +1 -0
- package/dist/benchmark/index.js +201 -0
- package/dist/benchmark/index.js.map +1 -0
- package/dist/benchmark/metrics.d.ts +92 -0
- package/dist/benchmark/metrics.d.ts.map +1 -0
- package/dist/benchmark/metrics.js +146 -0
- package/dist/benchmark/metrics.js.map +1 -0
- package/dist/benchmark/parsers.d.ts +42 -0
- package/dist/benchmark/parsers.d.ts.map +1 -0
- package/dist/benchmark/parsers.js +81 -0
- package/dist/benchmark/parsers.js.map +1 -0
- package/dist/benchmark/report.d.ts +46 -0
- package/dist/benchmark/report.d.ts.map +1 -0
- package/dist/benchmark/report.js +140 -0
- package/dist/benchmark/report.js.map +1 -0
- package/dist/benchmark/search.d.ts +63 -0
- package/dist/benchmark/search.d.ts.map +1 -0
- package/dist/benchmark/search.js +97 -0
- package/dist/benchmark/search.js.map +1 -0
- package/dist/benchmark/validators.d.ts +32 -0
- package/dist/benchmark/validators.d.ts.map +1 -0
- package/dist/benchmark/validators.js +60 -0
- package/dist/benchmark/validators.js.map +1 -0
- package/dist/cli/commands/benchmark.d.ts +6 -0
- package/dist/cli/commands/benchmark.d.ts.map +1 -0
- package/dist/cli/commands/benchmark.js +32 -0
- package/dist/cli/commands/benchmark.js.map +1 -0
- package/dist/cli/index.js +3 -1
- package/dist/cli/index.js.map +1 -1
- package/package.json +11 -2
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Benchmark metrics collection and timing utilities
|
|
3
|
+
*/
|
|
4
|
+
export interface TimingResult {
|
|
5
|
+
/** Mean execution time in milliseconds */
|
|
6
|
+
mean: number;
|
|
7
|
+
/** Median execution time in milliseconds */
|
|
8
|
+
median: number;
|
|
9
|
+
/** Minimum execution time in milliseconds */
|
|
10
|
+
min: number;
|
|
11
|
+
/** Maximum execution time in milliseconds */
|
|
12
|
+
max: number;
|
|
13
|
+
/** Standard deviation in milliseconds */
|
|
14
|
+
stdDev: number;
|
|
15
|
+
/** All individual timings */
|
|
16
|
+
samples: number[];
|
|
17
|
+
}
|
|
18
|
+
export interface MemoryResult {
|
|
19
|
+
/** Memory used before operation (bytes) */
|
|
20
|
+
before: number;
|
|
21
|
+
/** Memory used after operation (bytes) */
|
|
22
|
+
after: number;
|
|
23
|
+
/** Memory difference (bytes) */
|
|
24
|
+
delta: number;
|
|
25
|
+
/** Heap used after operation (bytes) */
|
|
26
|
+
heapUsed: number;
|
|
27
|
+
}
|
|
28
|
+
export interface BenchmarkResult {
|
|
29
|
+
/** Name of the benchmark */
|
|
30
|
+
name: string;
|
|
31
|
+
/** Timing results */
|
|
32
|
+
timing: TimingResult;
|
|
33
|
+
/** Memory results (if measured) */
|
|
34
|
+
memory?: MemoryResult;
|
|
35
|
+
/** Number of iterations */
|
|
36
|
+
iterations: number;
|
|
37
|
+
/** Warmup runs */
|
|
38
|
+
warmup: number;
|
|
39
|
+
/** Additional metadata */
|
|
40
|
+
metadata?: Record<string, unknown>;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Run garbage collection if available
|
|
44
|
+
*/
|
|
45
|
+
export declare function runGC(): void;
|
|
46
|
+
/**
|
|
47
|
+
* Get current memory usage
|
|
48
|
+
*/
|
|
49
|
+
export declare function getMemoryUsage(): number;
|
|
50
|
+
/**
|
|
51
|
+
* Calculate statistics from timing samples
|
|
52
|
+
*/
|
|
53
|
+
export declare function calculateStats(samples: number[]): TimingResult;
|
|
54
|
+
/**
|
|
55
|
+
* High-resolution timer
|
|
56
|
+
*/
|
|
57
|
+
export declare function hrtime(): bigint;
|
|
58
|
+
/**
|
|
59
|
+
* Convert nanoseconds to milliseconds
|
|
60
|
+
*/
|
|
61
|
+
export declare function nsToMs(ns: bigint): number;
|
|
62
|
+
/**
|
|
63
|
+
* Format bytes to human readable string
|
|
64
|
+
*/
|
|
65
|
+
export declare function formatBytes(bytes: number): string;
|
|
66
|
+
/**
|
|
67
|
+
* Format milliseconds to human readable string
|
|
68
|
+
*/
|
|
69
|
+
export declare function formatMs(ms: number): string;
|
|
70
|
+
export interface BenchmarkOptions {
|
|
71
|
+
/** Number of iterations to run */
|
|
72
|
+
iterations?: number;
|
|
73
|
+
/** Number of warmup runs */
|
|
74
|
+
warmup?: number;
|
|
75
|
+
/** Run GC between iterations */
|
|
76
|
+
gcBetweenRuns?: boolean;
|
|
77
|
+
/** Measure memory usage */
|
|
78
|
+
measureMemory?: boolean;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Run a benchmark function multiple times and collect metrics
|
|
82
|
+
*/
|
|
83
|
+
export declare function benchmark<T>(name: string, fn: () => T | Promise<T>, options?: BenchmarkOptions): Promise<BenchmarkResult>;
|
|
84
|
+
/**
|
|
85
|
+
* Compare two benchmark results
|
|
86
|
+
*/
|
|
87
|
+
export declare function compareBenchmarks(a: BenchmarkResult, b: BenchmarkResult): {
|
|
88
|
+
winner: string;
|
|
89
|
+
ratio: number;
|
|
90
|
+
difference: number;
|
|
91
|
+
};
|
|
92
|
+
//# sourceMappingURL=metrics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/benchmark/metrics.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,YAAY;IAC3B,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,MAAM,EAAE,YAAY,CAAC;IACrB,mCAAmC;IACnC,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,2BAA2B;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,wBAAgB,KAAK,IAAI,IAAI,CAI5B;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,YAAY,CA0B9D;AAED;;GAEG;AACH,wBAAgB,MAAM,IAAI,MAAM,CAE/B;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQjD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAQ3C;AAED,MAAM,WAAW,gBAAgB;IAC/B,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,2BAA2B;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACxB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CAqD1B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,eAAe,EAClB,CAAC,EAAE,eAAe,GACjB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAiBvD"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Benchmark metrics collection and timing utilities
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Run garbage collection if available
|
|
6
|
+
*/
|
|
7
|
+
export function runGC() {
|
|
8
|
+
if (global.gc) {
|
|
9
|
+
global.gc();
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Get current memory usage
|
|
14
|
+
*/
|
|
15
|
+
export function getMemoryUsage() {
|
|
16
|
+
return process.memoryUsage().heapUsed;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Calculate statistics from timing samples
|
|
20
|
+
*/
|
|
21
|
+
export function calculateStats(samples) {
|
|
22
|
+
if (samples.length === 0) {
|
|
23
|
+
return { mean: 0, median: 0, min: 0, max: 0, stdDev: 0, samples: [] };
|
|
24
|
+
}
|
|
25
|
+
const sorted = [...samples].sort((a, b) => a - b);
|
|
26
|
+
const sum = samples.reduce((a, b) => a + b, 0);
|
|
27
|
+
const mean = sum / samples.length;
|
|
28
|
+
const mid = Math.floor(sorted.length / 2);
|
|
29
|
+
const median = sorted.length % 2 !== 0
|
|
30
|
+
? sorted[mid]
|
|
31
|
+
: (sorted[mid - 1] + sorted[mid]) / 2;
|
|
32
|
+
const squaredDiffs = samples.map(x => Math.pow(x - mean, 2));
|
|
33
|
+
const avgSquaredDiff = squaredDiffs.reduce((a, b) => a + b, 0) / samples.length;
|
|
34
|
+
const stdDev = Math.sqrt(avgSquaredDiff);
|
|
35
|
+
return {
|
|
36
|
+
mean,
|
|
37
|
+
median,
|
|
38
|
+
min: sorted[0],
|
|
39
|
+
max: sorted[sorted.length - 1],
|
|
40
|
+
stdDev,
|
|
41
|
+
samples,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* High-resolution timer
|
|
46
|
+
*/
|
|
47
|
+
export function hrtime() {
|
|
48
|
+
return process.hrtime.bigint();
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Convert nanoseconds to milliseconds
|
|
52
|
+
*/
|
|
53
|
+
export function nsToMs(ns) {
|
|
54
|
+
return Number(ns) / 1_000_000;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Format bytes to human readable string
|
|
58
|
+
*/
|
|
59
|
+
export function formatBytes(bytes) {
|
|
60
|
+
if (bytes === 0)
|
|
61
|
+
return '0 B';
|
|
62
|
+
const k = 1024;
|
|
63
|
+
const sizes = ['B', 'KB', 'MB', 'GB'];
|
|
64
|
+
const i = Math.floor(Math.log(Math.abs(bytes)) / Math.log(k));
|
|
65
|
+
return `${(bytes / Math.pow(k, i)).toFixed(2)} ${sizes[i]}`;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Format milliseconds to human readable string
|
|
69
|
+
*/
|
|
70
|
+
export function formatMs(ms) {
|
|
71
|
+
if (ms < 1) {
|
|
72
|
+
return `${(ms * 1000).toFixed(2)} μs`;
|
|
73
|
+
}
|
|
74
|
+
if (ms < 1000) {
|
|
75
|
+
return `${ms.toFixed(2)} ms`;
|
|
76
|
+
}
|
|
77
|
+
return `${(ms / 1000).toFixed(2)} s`;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Run a benchmark function multiple times and collect metrics
|
|
81
|
+
*/
|
|
82
|
+
export async function benchmark(name, fn, options = {}) {
|
|
83
|
+
const { iterations = 100, warmup = 5, gcBetweenRuns = true, measureMemory = true, } = options;
|
|
84
|
+
// Warmup runs
|
|
85
|
+
for (let i = 0; i < warmup; i++) {
|
|
86
|
+
await fn();
|
|
87
|
+
if (gcBetweenRuns)
|
|
88
|
+
runGC();
|
|
89
|
+
}
|
|
90
|
+
// Measure memory before
|
|
91
|
+
let memoryBefore = 0;
|
|
92
|
+
if (measureMemory) {
|
|
93
|
+
runGC();
|
|
94
|
+
memoryBefore = getMemoryUsage();
|
|
95
|
+
}
|
|
96
|
+
// Timed runs
|
|
97
|
+
const timings = [];
|
|
98
|
+
for (let i = 0; i < iterations; i++) {
|
|
99
|
+
if (gcBetweenRuns)
|
|
100
|
+
runGC();
|
|
101
|
+
const start = hrtime();
|
|
102
|
+
await fn();
|
|
103
|
+
const end = hrtime();
|
|
104
|
+
timings.push(nsToMs(end - start));
|
|
105
|
+
}
|
|
106
|
+
// Measure memory after
|
|
107
|
+
let memoryResult;
|
|
108
|
+
if (measureMemory) {
|
|
109
|
+
const memoryAfter = getMemoryUsage();
|
|
110
|
+
memoryResult = {
|
|
111
|
+
before: memoryBefore,
|
|
112
|
+
after: memoryAfter,
|
|
113
|
+
delta: memoryAfter - memoryBefore,
|
|
114
|
+
heapUsed: process.memoryUsage().heapUsed,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
return {
|
|
118
|
+
name,
|
|
119
|
+
timing: calculateStats(timings),
|
|
120
|
+
memory: memoryResult,
|
|
121
|
+
iterations,
|
|
122
|
+
warmup,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Compare two benchmark results
|
|
127
|
+
*/
|
|
128
|
+
export function compareBenchmarks(a, b) {
|
|
129
|
+
const aTime = a.timing.mean;
|
|
130
|
+
const bTime = b.timing.mean;
|
|
131
|
+
if (aTime < bTime) {
|
|
132
|
+
return {
|
|
133
|
+
winner: a.name,
|
|
134
|
+
ratio: bTime / aTime,
|
|
135
|
+
difference: bTime - aTime,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
return {
|
|
140
|
+
winner: b.name,
|
|
141
|
+
ratio: aTime / bTime,
|
|
142
|
+
difference: aTime - bTime,
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=metrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/benchmark/metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parsing benchmarks - YAML vs Frontmatter
|
|
3
|
+
*/
|
|
4
|
+
import { type BenchmarkResult, type BenchmarkOptions } from './metrics.js';
|
|
5
|
+
/**
|
|
6
|
+
* Parse UASP YAML content
|
|
7
|
+
*/
|
|
8
|
+
export declare function parseUaspYaml(content: string): unknown;
|
|
9
|
+
/**
|
|
10
|
+
* Parse SKILL.md frontmatter (simple implementation without gray-matter for comparison)
|
|
11
|
+
*/
|
|
12
|
+
export declare function parseSkillMdFrontmatter(content: string): {
|
|
13
|
+
data: unknown;
|
|
14
|
+
content: string;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Parse SKILL.md frontmatter using gray-matter (if available)
|
|
18
|
+
*/
|
|
19
|
+
export declare function parseSkillMdWithGrayMatter(content: string): Promise<{
|
|
20
|
+
data: unknown;
|
|
21
|
+
content: string;
|
|
22
|
+
}>;
|
|
23
|
+
/**
|
|
24
|
+
* Benchmark UASP YAML parsing
|
|
25
|
+
*/
|
|
26
|
+
export declare function benchmarkUaspParsing(content: string, options?: BenchmarkOptions): Promise<BenchmarkResult>;
|
|
27
|
+
/**
|
|
28
|
+
* Benchmark SKILL.md frontmatter parsing
|
|
29
|
+
*/
|
|
30
|
+
export declare function benchmarkSkillMdParsing(content: string, options?: BenchmarkOptions): Promise<BenchmarkResult>;
|
|
31
|
+
/**
|
|
32
|
+
* Benchmark SKILL.md parsing with gray-matter
|
|
33
|
+
*/
|
|
34
|
+
export declare function benchmarkSkillMdGrayMatter(content: string, options?: BenchmarkOptions): Promise<BenchmarkResult>;
|
|
35
|
+
/**
|
|
36
|
+
* Run all parsing benchmarks
|
|
37
|
+
*/
|
|
38
|
+
export declare function runParsingBenchmarks(uaspContent: string, skillMdContent: string, options?: BenchmarkOptions): Promise<{
|
|
39
|
+
uasp: BenchmarkResult;
|
|
40
|
+
skillMd: BenchmarkResult;
|
|
41
|
+
}>;
|
|
42
|
+
//# sourceMappingURL=parsers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parsers.d.ts","sourceRoot":"","sources":["../../src/benchmark/parsers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAa,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEtF;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAY3F;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAS7G;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,CAAC,CAE1B;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,CAAC,CAE1B;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,CAAC,CAmB1B;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,eAAe,CAAA;CAAE,CAAC,CAK9D"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parsing benchmarks - YAML vs Frontmatter
|
|
3
|
+
*/
|
|
4
|
+
import yaml from 'yaml';
|
|
5
|
+
import { benchmark } from './metrics.js';
|
|
6
|
+
/**
|
|
7
|
+
* Parse UASP YAML content
|
|
8
|
+
*/
|
|
9
|
+
export function parseUaspYaml(content) {
|
|
10
|
+
return yaml.parse(content);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Parse SKILL.md frontmatter (simple implementation without gray-matter for comparison)
|
|
14
|
+
*/
|
|
15
|
+
export function parseSkillMdFrontmatter(content) {
|
|
16
|
+
// Extract frontmatter between --- delimiters
|
|
17
|
+
const match = content.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);
|
|
18
|
+
if (!match) {
|
|
19
|
+
return { data: {}, content };
|
|
20
|
+
}
|
|
21
|
+
const [, frontmatterStr, body] = match;
|
|
22
|
+
const data = yaml.parse(frontmatterStr);
|
|
23
|
+
return { data, content: body };
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Parse SKILL.md frontmatter using gray-matter (if available)
|
|
27
|
+
*/
|
|
28
|
+
export async function parseSkillMdWithGrayMatter(content) {
|
|
29
|
+
try {
|
|
30
|
+
const matter = await import('gray-matter');
|
|
31
|
+
const result = matter.default(content);
|
|
32
|
+
return { data: result.data, content: result.content };
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
// gray-matter not installed, use simple parser
|
|
36
|
+
return parseSkillMdFrontmatter(content);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Benchmark UASP YAML parsing
|
|
41
|
+
*/
|
|
42
|
+
export async function benchmarkUaspParsing(content, options) {
|
|
43
|
+
return benchmark('UASP YAML', () => parseUaspYaml(content), options);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Benchmark SKILL.md frontmatter parsing
|
|
47
|
+
*/
|
|
48
|
+
export async function benchmarkSkillMdParsing(content, options) {
|
|
49
|
+
return benchmark('SKILL.md Frontmatter', () => parseSkillMdFrontmatter(content), options);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Benchmark SKILL.md parsing with gray-matter
|
|
53
|
+
*/
|
|
54
|
+
export async function benchmarkSkillMdGrayMatter(content, options) {
|
|
55
|
+
// Pre-import gray-matter to avoid import overhead in benchmark
|
|
56
|
+
let matterFn = null;
|
|
57
|
+
try {
|
|
58
|
+
const matterModule = await import('gray-matter');
|
|
59
|
+
// Handle both ESM default export and CommonJS
|
|
60
|
+
matterFn = (matterModule.default || matterModule);
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
// Not available
|
|
64
|
+
}
|
|
65
|
+
if (!matterFn) {
|
|
66
|
+
return benchmark('SKILL.md (gray-matter)', () => parseSkillMdFrontmatter(content), options);
|
|
67
|
+
}
|
|
68
|
+
const fn = matterFn;
|
|
69
|
+
return benchmark('SKILL.md (gray-matter)', () => {
|
|
70
|
+
return fn(content);
|
|
71
|
+
}, options);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Run all parsing benchmarks
|
|
75
|
+
*/
|
|
76
|
+
export async function runParsingBenchmarks(uaspContent, skillMdContent, options) {
|
|
77
|
+
const uasp = await benchmarkUaspParsing(uaspContent, options);
|
|
78
|
+
const skillMd = await benchmarkSkillMdGrayMatter(skillMdContent, options);
|
|
79
|
+
return { uasp, skillMd };
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=parsers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../src/benchmark/parsers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Benchmark report generation in multiple formats
|
|
3
|
+
*/
|
|
4
|
+
import type { BenchmarkResult } from './metrics.js';
|
|
5
|
+
export interface BenchmarkComparison {
|
|
6
|
+
category: string;
|
|
7
|
+
uasp: BenchmarkResult;
|
|
8
|
+
skillMd: BenchmarkResult;
|
|
9
|
+
winner: 'uasp' | 'skill-md' | 'tie';
|
|
10
|
+
speedup: number;
|
|
11
|
+
}
|
|
12
|
+
export interface BenchmarkReport {
|
|
13
|
+
title: string;
|
|
14
|
+
timestamp: string;
|
|
15
|
+
comparisons: BenchmarkComparison[];
|
|
16
|
+
summary: {
|
|
17
|
+
uaspWins: number;
|
|
18
|
+
skillMdWins: number;
|
|
19
|
+
ties: number;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Create a comparison between UASP and SKILL.md benchmarks
|
|
24
|
+
*/
|
|
25
|
+
export declare function createComparison(category: string, uasp: BenchmarkResult, skillMd: BenchmarkResult): BenchmarkComparison;
|
|
26
|
+
/**
|
|
27
|
+
* Create a full benchmark report
|
|
28
|
+
*/
|
|
29
|
+
export declare function createReport(comparisons: BenchmarkComparison[]): BenchmarkReport;
|
|
30
|
+
/**
|
|
31
|
+
* Format report as console output
|
|
32
|
+
*/
|
|
33
|
+
export declare function formatConsoleReport(report: BenchmarkReport): string;
|
|
34
|
+
/**
|
|
35
|
+
* Format report as JSON
|
|
36
|
+
*/
|
|
37
|
+
export declare function formatJsonReport(report: BenchmarkReport): string;
|
|
38
|
+
/**
|
|
39
|
+
* Format report as Markdown
|
|
40
|
+
*/
|
|
41
|
+
export declare function formatMarkdownReport(report: BenchmarkReport): string;
|
|
42
|
+
/**
|
|
43
|
+
* Print report to console with colors
|
|
44
|
+
*/
|
|
45
|
+
export declare function printReport(report: BenchmarkReport): void;
|
|
46
|
+
//# sourceMappingURL=report.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/benchmark/report.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,eAAe,CAAC;IACzB,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,KAAK,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACnC,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,eAAe,GACvB,mBAAmB,CAkBrB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,mBAAmB,EAAE,GAAG,eAAe,CAahF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAoCnE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAEhE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAyDpE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAEzD"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Benchmark report generation in multiple formats
|
|
3
|
+
*/
|
|
4
|
+
import { formatBytes, formatMs, compareBenchmarks } from './metrics.js';
|
|
5
|
+
/**
|
|
6
|
+
* Create a comparison between UASP and SKILL.md benchmarks
|
|
7
|
+
*/
|
|
8
|
+
export function createComparison(category, uasp, skillMd) {
|
|
9
|
+
const comparison = compareBenchmarks(uasp, skillMd);
|
|
10
|
+
let winner;
|
|
11
|
+
let speedup;
|
|
12
|
+
if (comparison.ratio < 1.05 && comparison.ratio > 0.95) {
|
|
13
|
+
winner = 'tie';
|
|
14
|
+
speedup = 1;
|
|
15
|
+
}
|
|
16
|
+
else if (comparison.winner === uasp.name) {
|
|
17
|
+
winner = 'uasp';
|
|
18
|
+
speedup = comparison.ratio;
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
winner = 'skill-md';
|
|
22
|
+
speedup = comparison.ratio;
|
|
23
|
+
}
|
|
24
|
+
return { category, uasp, skillMd, winner, speedup };
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Create a full benchmark report
|
|
28
|
+
*/
|
|
29
|
+
export function createReport(comparisons) {
|
|
30
|
+
const summary = {
|
|
31
|
+
uaspWins: comparisons.filter(c => c.winner === 'uasp').length,
|
|
32
|
+
skillMdWins: comparisons.filter(c => c.winner === 'skill-md').length,
|
|
33
|
+
ties: comparisons.filter(c => c.winner === 'tie').length,
|
|
34
|
+
};
|
|
35
|
+
return {
|
|
36
|
+
title: 'UASP vs SKILL.md Format Benchmark',
|
|
37
|
+
timestamp: new Date().toISOString(),
|
|
38
|
+
comparisons,
|
|
39
|
+
summary,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Format report as console output
|
|
44
|
+
*/
|
|
45
|
+
export function formatConsoleReport(report) {
|
|
46
|
+
const lines = [];
|
|
47
|
+
lines.push('');
|
|
48
|
+
lines.push('═'.repeat(80));
|
|
49
|
+
lines.push(` ${report.title}`);
|
|
50
|
+
lines.push(` Generated: ${report.timestamp}`);
|
|
51
|
+
lines.push('═'.repeat(80));
|
|
52
|
+
lines.push('');
|
|
53
|
+
// Table header
|
|
54
|
+
lines.push('┌────────────────────┬───────────────┬───────────────┬──────────┬─────────┐');
|
|
55
|
+
lines.push('│ Category │ UASP │ SKILL.md │ Winner │ Speedup │');
|
|
56
|
+
lines.push('├────────────────────┼───────────────┼───────────────┼──────────┼─────────┤');
|
|
57
|
+
for (const comp of report.comparisons) {
|
|
58
|
+
const category = comp.category.padEnd(18);
|
|
59
|
+
const uaspTime = formatMs(comp.uasp.timing.mean).padStart(11);
|
|
60
|
+
const skillMdTime = formatMs(comp.skillMd.timing.mean).padStart(11);
|
|
61
|
+
const winner = (comp.winner === 'tie' ? 'Tie' : comp.winner.toUpperCase()).padEnd(8);
|
|
62
|
+
const speedup = comp.winner === 'tie' ? ' - ' : `${comp.speedup.toFixed(2)}x`.padStart(7);
|
|
63
|
+
lines.push(`│ ${category} │ ${uaspTime} │ ${skillMdTime} │ ${winner} │ ${speedup} │`);
|
|
64
|
+
}
|
|
65
|
+
lines.push('└────────────────────┴───────────────┴───────────────┴──────────┴─────────┘');
|
|
66
|
+
lines.push('');
|
|
67
|
+
// Summary
|
|
68
|
+
lines.push('Summary:');
|
|
69
|
+
lines.push(` UASP wins: ${report.summary.uaspWins}`);
|
|
70
|
+
lines.push(` SKILL.md wins: ${report.summary.skillMdWins}`);
|
|
71
|
+
lines.push(` Ties: ${report.summary.ties}`);
|
|
72
|
+
lines.push('');
|
|
73
|
+
return lines.join('\n');
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Format report as JSON
|
|
77
|
+
*/
|
|
78
|
+
export function formatJsonReport(report) {
|
|
79
|
+
return JSON.stringify(report, null, 2);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Format report as Markdown
|
|
83
|
+
*/
|
|
84
|
+
export function formatMarkdownReport(report) {
|
|
85
|
+
const lines = [];
|
|
86
|
+
lines.push(`# ${report.title}`);
|
|
87
|
+
lines.push('');
|
|
88
|
+
lines.push(`Generated: ${report.timestamp}`);
|
|
89
|
+
lines.push('');
|
|
90
|
+
// Table
|
|
91
|
+
lines.push('| Category | UASP | SKILL.md | Winner | Speedup |');
|
|
92
|
+
lines.push('|----------|------|----------|--------|---------|');
|
|
93
|
+
for (const comp of report.comparisons) {
|
|
94
|
+
const winner = comp.winner === 'tie' ? 'Tie' : comp.winner.toUpperCase();
|
|
95
|
+
const speedup = comp.winner === 'tie' ? '-' : `${comp.speedup.toFixed(2)}x`;
|
|
96
|
+
lines.push(`| ${comp.category} | ${formatMs(comp.uasp.timing.mean)} | ${formatMs(comp.skillMd.timing.mean)} | ${winner} | ${speedup} |`);
|
|
97
|
+
}
|
|
98
|
+
lines.push('');
|
|
99
|
+
lines.push('## Summary');
|
|
100
|
+
lines.push('');
|
|
101
|
+
lines.push(`- **UASP wins:** ${report.summary.uaspWins}`);
|
|
102
|
+
lines.push(`- **SKILL.md wins:** ${report.summary.skillMdWins}`);
|
|
103
|
+
lines.push(`- **Ties:** ${report.summary.ties}`);
|
|
104
|
+
lines.push('');
|
|
105
|
+
// Detailed results
|
|
106
|
+
lines.push('## Detailed Results');
|
|
107
|
+
lines.push('');
|
|
108
|
+
for (const comp of report.comparisons) {
|
|
109
|
+
lines.push(`### ${comp.category}`);
|
|
110
|
+
lines.push('');
|
|
111
|
+
lines.push('**UASP:**');
|
|
112
|
+
lines.push(`- Mean: ${formatMs(comp.uasp.timing.mean)}`);
|
|
113
|
+
lines.push(`- Median: ${formatMs(comp.uasp.timing.median)}`);
|
|
114
|
+
lines.push(`- Min: ${formatMs(comp.uasp.timing.min)}`);
|
|
115
|
+
lines.push(`- Max: ${formatMs(comp.uasp.timing.max)}`);
|
|
116
|
+
lines.push(`- Std Dev: ${formatMs(comp.uasp.timing.stdDev)}`);
|
|
117
|
+
if (comp.uasp.memory) {
|
|
118
|
+
lines.push(`- Memory Delta: ${formatBytes(comp.uasp.memory.delta)}`);
|
|
119
|
+
}
|
|
120
|
+
lines.push('');
|
|
121
|
+
lines.push('**SKILL.md:**');
|
|
122
|
+
lines.push(`- Mean: ${formatMs(comp.skillMd.timing.mean)}`);
|
|
123
|
+
lines.push(`- Median: ${formatMs(comp.skillMd.timing.median)}`);
|
|
124
|
+
lines.push(`- Min: ${formatMs(comp.skillMd.timing.min)}`);
|
|
125
|
+
lines.push(`- Max: ${formatMs(comp.skillMd.timing.max)}`);
|
|
126
|
+
lines.push(`- Std Dev: ${formatMs(comp.skillMd.timing.stdDev)}`);
|
|
127
|
+
if (comp.skillMd.memory) {
|
|
128
|
+
lines.push(`- Memory Delta: ${formatBytes(comp.skillMd.memory.delta)}`);
|
|
129
|
+
}
|
|
130
|
+
lines.push('');
|
|
131
|
+
}
|
|
132
|
+
return lines.join('\n');
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Print report to console with colors
|
|
136
|
+
*/
|
|
137
|
+
export function printReport(report) {
|
|
138
|
+
console.log(formatConsoleReport(report));
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/benchmark/report.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Search benchmarks - Structured vs full-text search
|
|
3
|
+
*/
|
|
4
|
+
import { type BenchmarkResult, type BenchmarkOptions } from './metrics.js';
|
|
5
|
+
import type { RegistrySkill, Skill } from '../types/index.js';
|
|
6
|
+
/**
|
|
7
|
+
* Structured search on UASP registry
|
|
8
|
+
* Searches specific fields: name, description, keywords
|
|
9
|
+
*/
|
|
10
|
+
export declare function searchUaspStructured(skills: Array<{
|
|
11
|
+
skill: Skill;
|
|
12
|
+
registrySkill: RegistrySkill;
|
|
13
|
+
}>, query: string): Array<{
|
|
14
|
+
skill: Skill;
|
|
15
|
+
registrySkill: RegistrySkill;
|
|
16
|
+
score: number;
|
|
17
|
+
}>;
|
|
18
|
+
/**
|
|
19
|
+
* Full-text search on SKILL.md content
|
|
20
|
+
*/
|
|
21
|
+
export declare function searchSkillMdFullText(skillMdContents: Array<{
|
|
22
|
+
name: string;
|
|
23
|
+
content: string;
|
|
24
|
+
}>, query: string): Array<{
|
|
25
|
+
name: string;
|
|
26
|
+
score: number;
|
|
27
|
+
}>;
|
|
28
|
+
/**
|
|
29
|
+
* Benchmark structured UASP search
|
|
30
|
+
*/
|
|
31
|
+
export declare function benchmarkUaspSearch(skills: Array<{
|
|
32
|
+
skill: Skill;
|
|
33
|
+
registrySkill: RegistrySkill;
|
|
34
|
+
}>, query: string, options?: BenchmarkOptions): Promise<BenchmarkResult>;
|
|
35
|
+
/**
|
|
36
|
+
* Benchmark full-text SKILL.md search
|
|
37
|
+
*/
|
|
38
|
+
export declare function benchmarkSkillMdSearch(skillMdContents: Array<{
|
|
39
|
+
name: string;
|
|
40
|
+
content: string;
|
|
41
|
+
}>, query: string, options?: BenchmarkOptions): Promise<BenchmarkResult>;
|
|
42
|
+
/**
|
|
43
|
+
* Calculate search precision
|
|
44
|
+
* Measures how relevant the top N results are
|
|
45
|
+
*/
|
|
46
|
+
export declare function calculateSearchPrecision(results: Array<{
|
|
47
|
+
name: string;
|
|
48
|
+
score: number;
|
|
49
|
+
}>, expectedTopResults: string[], topN?: number): number;
|
|
50
|
+
/**
|
|
51
|
+
* Run search benchmarks
|
|
52
|
+
*/
|
|
53
|
+
export declare function runSearchBenchmarks(skills: Array<{
|
|
54
|
+
skill: Skill;
|
|
55
|
+
registrySkill: RegistrySkill;
|
|
56
|
+
}>, skillMdContents: Array<{
|
|
57
|
+
name: string;
|
|
58
|
+
content: string;
|
|
59
|
+
}>, query: string, options?: BenchmarkOptions): Promise<{
|
|
60
|
+
uasp: BenchmarkResult;
|
|
61
|
+
skillMd: BenchmarkResult;
|
|
62
|
+
}>;
|
|
63
|
+
//# sourceMappingURL=search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/benchmark/search.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAa,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACtF,OAAO,KAAK,EAAY,aAAa,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAExE;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,aAAa,EAAE,aAAa,CAAA;CAAE,CAAC,EAC7D,KAAK,EAAE,MAAM,GACZ,KAAK,CAAC;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,aAAa,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAuCtE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,eAAe,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,EACzD,KAAK,EAAE,MAAM,GACZ,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CA4BxC;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,aAAa,EAAE,aAAa,CAAA;CAAE,CAAC,EAC7D,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,CAAC,CAM1B;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,eAAe,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,EACzD,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,CAAC,CAM1B;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,EAC/C,kBAAkB,EAAE,MAAM,EAAE,EAC5B,IAAI,GAAE,MAAU,GACf,MAAM,CAIR;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,aAAa,EAAE,aAAa,CAAA;CAAE,CAAC,EAC7D,eAAe,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,EACzD,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,eAAe,CAAA;CAAE,CAAC,CAK9D"}
|