@loj-lang/benchmark-core 0.5.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.
package/README.md ADDED
@@ -0,0 +1,16 @@
1
+ # @loj-lang/benchmark-core
2
+
3
+ Docs-only benchmark harness for Loj-family authoring evaluation.
4
+
5
+ Current implemented responsibilities:
6
+
7
+ - export benchmark prompts
8
+ - score submission directories
9
+ - emit JSON and markdown reports
10
+
11
+ Local workspace commands:
12
+
13
+ ```bash
14
+ npm run build --workspace=@loj-lang/benchmark-core
15
+ npm run test --workspace=@loj-lang/benchmark-core
16
+ ```
@@ -0,0 +1,282 @@
1
+ #!/usr/bin/env node
2
+ import type { CompileError } from '@loj-lang/rdsl-compiler';
3
+ import type { EffectNode, EscapeHatchStats, RuleValue } from '@loj-lang/rdsl-compiler/ir';
4
+ type Lane = 'docs-only';
5
+ type CompilerTarget = 'react';
6
+ type ScalarFieldType = 'string' | 'number' | 'boolean' | 'datetime';
7
+ type ViewName = 'list' | 'edit' | 'create';
8
+ type RuleName = 'visibleIf' | 'enabledIf' | 'allowIf' | 'enforce';
9
+ type EffectType = EffectNode['type'];
10
+ type CheckStatus = 'passed' | 'failed' | 'skipped';
11
+ type ImportAdapterName = 'jsonl' | 'openai-responses';
12
+ export interface AuthoringTask {
13
+ artifact: 'rdsl.authoring-task';
14
+ schemaVersion: '0.1.0';
15
+ id: string;
16
+ lane: Lane;
17
+ title: string;
18
+ prompt: string;
19
+ }
20
+ export interface AuthoringExpectationBudgets {
21
+ maxWarnings?: number;
22
+ maxEscapePercent?: number;
23
+ maxExprCount?: number;
24
+ maxFnCount?: number;
25
+ maxCustomCount?: number;
26
+ }
27
+ type ExpectedToastMessageValue = string | number | boolean | null | {
28
+ ref: string;
29
+ };
30
+ interface ExpectedToastMessageDescriptor {
31
+ key: string;
32
+ defaultMessage?: string;
33
+ values?: Record<string, ExpectedToastMessageValue>;
34
+ }
35
+ export type AuthoringExpectationCheck = {
36
+ id: string;
37
+ type: 'appNameEquals';
38
+ value: string;
39
+ } | {
40
+ id: string;
41
+ type: 'compilerTargetEquals';
42
+ value: CompilerTarget;
43
+ } | {
44
+ id: string;
45
+ type: 'modelExists';
46
+ model: string;
47
+ } | {
48
+ id: string;
49
+ type: 'modelFieldExists';
50
+ model: string;
51
+ field: string;
52
+ fieldType: ScalarFieldType | 'enum';
53
+ enumValues?: string[];
54
+ decorators?: string[];
55
+ } | {
56
+ id: string;
57
+ type: 'resourceExists';
58
+ resource: string;
59
+ model?: string;
60
+ api?: string;
61
+ views?: ViewName[];
62
+ } | {
63
+ id: string;
64
+ type: 'listFilterExists';
65
+ resource: string;
66
+ field: string;
67
+ } | {
68
+ id: string;
69
+ type: 'listColumnExists';
70
+ resource: string;
71
+ field: string;
72
+ decorators?: string[];
73
+ } | {
74
+ id: string;
75
+ type: 'actionExists';
76
+ resource: string;
77
+ action: string;
78
+ confirm?: string;
79
+ } | {
80
+ id: string;
81
+ type: 'paginationEquals';
82
+ resource: string;
83
+ size: number;
84
+ style: 'numbered' | 'infinite' | 'loadMore';
85
+ } | {
86
+ id: string;
87
+ type: 'viewFieldExists';
88
+ resource: string;
89
+ view: 'edit' | 'create';
90
+ field: string;
91
+ decorators?: string[];
92
+ } | {
93
+ id: string;
94
+ type: 'viewRuleEquals';
95
+ resource: string;
96
+ view: ViewName;
97
+ rule: RuleName;
98
+ source?: RuleValue['source'];
99
+ canonicalExpr?: string;
100
+ fnPath?: string;
101
+ } | {
102
+ id: string;
103
+ type: 'effectExists';
104
+ resource: string;
105
+ view: 'edit' | 'create';
106
+ effectType: EffectType;
107
+ target?: string;
108
+ message?: string | ExpectedToastMessageDescriptor;
109
+ dialog?: string;
110
+ event?: string;
111
+ } | {
112
+ id: string;
113
+ type: 'pageExists';
114
+ page: string;
115
+ pageType?: 'dashboard' | 'custom';
116
+ title?: string;
117
+ } | {
118
+ id: string;
119
+ type: 'pageBlockExists';
120
+ page: string;
121
+ blockType: 'metric' | 'chart' | 'table' | 'custom';
122
+ title: string;
123
+ data?: string;
124
+ } | {
125
+ id: string;
126
+ type: 'navItemExists';
127
+ target: string;
128
+ group?: string;
129
+ label?: string;
130
+ };
131
+ export interface AuthoringExpectation {
132
+ artifact: 'rdsl.authoring-expected';
133
+ schemaVersion: '0.1.0';
134
+ taskId: string;
135
+ budgets?: AuthoringExpectationBudgets;
136
+ checks: AuthoringExpectationCheck[];
137
+ }
138
+ export interface AuthoringRunMeta {
139
+ artifact: 'rdsl.authoring-run';
140
+ schemaVersion: '0.1.0';
141
+ runId?: string;
142
+ lane?: Lane;
143
+ model?: string;
144
+ provider?: string;
145
+ wrapper?: string;
146
+ referenceDocs?: string;
147
+ notes?: string;
148
+ }
149
+ export interface AttemptMeta {
150
+ promptTokens?: number;
151
+ completionTokens?: number;
152
+ totalTokens?: number;
153
+ latencyMs?: number;
154
+ }
155
+ export interface BenchmarkCheckResult {
156
+ id: string;
157
+ type: string;
158
+ status: CheckStatus;
159
+ message: string;
160
+ }
161
+ export interface AttemptReport {
162
+ attempt: number;
163
+ sourceFile: string;
164
+ meta?: AttemptMeta;
165
+ compileSuccess: boolean;
166
+ warningCount: number;
167
+ errors: CompileError[];
168
+ warnings: CompileError[];
169
+ checks: BenchmarkCheckResult[];
170
+ valid: boolean;
171
+ escapeStats?: EscapeHatchStats;
172
+ }
173
+ export interface TaskReport {
174
+ taskId: string;
175
+ title: string;
176
+ expectedCheckCount: number;
177
+ firstPassValid: boolean;
178
+ winningAttempt: number | null;
179
+ repairsBeforeFirstValid: number | null;
180
+ status: 'first-pass-valid' | 'repaired' | 'failed' | 'missing';
181
+ attempts: AttemptReport[];
182
+ failureArtifacts: string[];
183
+ }
184
+ export interface RunSummary {
185
+ taskCount: number;
186
+ attemptedTaskCount: number;
187
+ solvedTaskCount: number;
188
+ failedTaskCount: number;
189
+ firstPassValidCount: number;
190
+ firstPassValidRate: number;
191
+ solvedRate: number;
192
+ averageRepairsBeforeFirstValid: number;
193
+ totalAttemptCount: number;
194
+ tokenUsage: {
195
+ promptTokens: number;
196
+ completionTokens: number;
197
+ totalTokens: number;
198
+ };
199
+ winningAttemptEscapeUsage: {
200
+ exprCount: number;
201
+ fnCount: number;
202
+ customCount: number;
203
+ averagePercent: number;
204
+ };
205
+ }
206
+ export interface AuthoringBenchmarkReport {
207
+ artifact: 'rdsl.authoring-report';
208
+ schemaVersion: '0.1.0';
209
+ generatedAt: string;
210
+ run: Required<Pick<AuthoringRunMeta, 'runId' | 'lane'>> & Omit<AuthoringRunMeta, 'runId' | 'lane'>;
211
+ corpusDir: string;
212
+ submissionsDir: string;
213
+ reportDir: string;
214
+ referenceDocs: string;
215
+ tasks: TaskReport[];
216
+ summary: RunSummary;
217
+ }
218
+ export interface PromptManifest {
219
+ artifact: 'rdsl.authoring-prompt-manifest';
220
+ schemaVersion: '0.1.0';
221
+ generatedAt: string;
222
+ lane: Lane;
223
+ corpusDir: string;
224
+ referenceDocs: string;
225
+ outDir: string;
226
+ prompts: Array<{
227
+ taskId: string;
228
+ path: string;
229
+ }>;
230
+ }
231
+ export interface ExportPromptsOptions {
232
+ corpusDir?: string;
233
+ referenceDocs?: string;
234
+ outDir?: string;
235
+ }
236
+ export interface RunBenchmarkOptions {
237
+ corpusDir?: string;
238
+ submissionsDir: string;
239
+ referenceDocs?: string;
240
+ reportDir?: string;
241
+ }
242
+ export interface ImportAuthoringRunOptions {
243
+ adapter: ImportAdapterName;
244
+ inputPath: string;
245
+ outDir: string;
246
+ corpusDir?: string;
247
+ runId?: string;
248
+ lane?: Lane;
249
+ model?: string;
250
+ provider?: string;
251
+ wrapper?: string;
252
+ referenceDocs?: string;
253
+ notes?: string;
254
+ }
255
+ export interface AuthoringImportManifest {
256
+ artifact: 'rdsl.authoring-import-manifest';
257
+ schemaVersion: '0.1.0';
258
+ generatedAt: string;
259
+ adapter: ImportAdapterName;
260
+ inputPath: string;
261
+ corpusDir: string;
262
+ outDir: string;
263
+ run: Required<Pick<AuthoringRunMeta, 'runId' | 'lane'>> & Omit<AuthoringRunMeta, 'runId' | 'lane'>;
264
+ attempts: Array<{
265
+ taskId: string;
266
+ attempt: number;
267
+ sourcePath?: string;
268
+ outputPath: string;
269
+ metaPath?: string;
270
+ }>;
271
+ }
272
+ export interface CliIO {
273
+ cwd?: string;
274
+ stdout?: (text: string) => void;
275
+ stderr?: (text: string) => void;
276
+ }
277
+ export declare function exportPrompts(options?: ExportPromptsOptions): PromptManifest;
278
+ export declare function runAuthoringBenchmark(options: RunBenchmarkOptions): AuthoringBenchmarkReport;
279
+ export declare function importAuthoringRun(options: ImportAuthoringRunOptions): AuthoringImportManifest;
280
+ export declare function runCli(argv: string[], io?: CliIO): number;
281
+ export {};
282
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}