@tuned-tensor/local 0.1.4 → 0.1.6
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/CHANGELOG.md +25 -0
- package/README.md +88 -3
- package/dist/compare.d.ts +47 -0
- package/dist/compare.js +95 -0
- package/dist/compare.js.map +1 -0
- package/dist/contracts.d.ts +132 -4
- package/dist/contracts.js +28 -0
- package/dist/contracts.js.map +1 -1
- package/dist/evaluation.d.ts +77 -1
- package/dist/evaluation.js +336 -22
- package/dist/evaluation.js.map +1 -1
- package/dist/index.d.ts +7 -0
- package/dist/index.js +77 -2
- package/dist/index.js.map +1 -1
- package/dist/local-project.d.ts +8 -0
- package/dist/local-project.js +21 -2
- package/dist/local-project.js.map +1 -1
- package/dist/orchestrator.js +48 -8
- package/dist/orchestrator.js.map +1 -1
- package/dist/store.js +1 -1
- package/dist/store.js.map +1 -1
- package/package.json +1 -1
- package/training/sft-local/src/evaluate.py +15 -6
package/dist/evaluation.js
CHANGED
|
@@ -1,18 +1,110 @@
|
|
|
1
1
|
import { spawn } from "node:child_process";
|
|
2
2
|
import { createWriteStream } from "node:fs";
|
|
3
3
|
import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
4
|
-
import {
|
|
4
|
+
import { createHash } from "node:crypto";
|
|
5
|
+
import { dirname, join, resolve } from "node:path";
|
|
5
6
|
import { performance } from "node:perf_hooks";
|
|
7
|
+
import { evalReportSchema, } from "./contracts.js";
|
|
6
8
|
import { writeJson, fileUri } from "./artifacts.js";
|
|
7
9
|
import { resolveTrainingModel } from "./model-registry.js";
|
|
8
10
|
import { openRouterChat } from "./openrouter.js";
|
|
9
11
|
import { forwardStreamLines } from "./run-reporter.js";
|
|
12
|
+
import { defaultLocalHome } from "./store.js";
|
|
10
13
|
function normalize(value) {
|
|
11
14
|
return value.trim().replace(/\s+/g, " ").toLowerCase();
|
|
12
15
|
}
|
|
13
16
|
function scoreActual(expected, actual) {
|
|
14
17
|
return normalize(expected) === normalize(actual) ? 1 : 0;
|
|
15
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Token-overlap F1 between expected and actual output (bag-of-words, case and
|
|
21
|
+
* whitespace insensitive). This is a cheap deterministic reference-similarity
|
|
22
|
+
* signal for free-text tasks where exact match is always 0 and an LLM judge
|
|
23
|
+
* can be noisy; both scoring paths keep working unchanged alongside it.
|
|
24
|
+
*/
|
|
25
|
+
export function tokenF1(expected, actual) {
|
|
26
|
+
const tokenize = (value) => normalize(value).match(/[\p{L}\p{N}]+/gu) ?? [];
|
|
27
|
+
const expectedTokens = tokenize(expected);
|
|
28
|
+
const actualTokens = tokenize(actual);
|
|
29
|
+
if (expectedTokens.length === 0 || actualTokens.length === 0) {
|
|
30
|
+
return expectedTokens.length === actualTokens.length ? 1 : 0;
|
|
31
|
+
}
|
|
32
|
+
const counts = new Map();
|
|
33
|
+
for (const token of expectedTokens)
|
|
34
|
+
counts.set(token, (counts.get(token) ?? 0) + 1);
|
|
35
|
+
let overlap = 0;
|
|
36
|
+
for (const token of actualTokens) {
|
|
37
|
+
const remaining = counts.get(token) ?? 0;
|
|
38
|
+
if (remaining > 0) {
|
|
39
|
+
overlap += 1;
|
|
40
|
+
counts.set(token, remaining - 1);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (overlap === 0)
|
|
44
|
+
return 0;
|
|
45
|
+
const precision = overlap / actualTokens.length;
|
|
46
|
+
const recall = overlap / expectedTokens.length;
|
|
47
|
+
return (2 * precision * recall) / (precision + recall);
|
|
48
|
+
}
|
|
49
|
+
/** Derives a deterministic 32-bit seed from an arbitrary string (FNV-1a). */
|
|
50
|
+
export function deriveSampleSeed(value) {
|
|
51
|
+
let hash = 0x811c9dc5;
|
|
52
|
+
for (let index = 0; index < value.length; index += 1) {
|
|
53
|
+
hash ^= value.charCodeAt(index);
|
|
54
|
+
hash = Math.imul(hash, 0x01000193);
|
|
55
|
+
}
|
|
56
|
+
return hash >>> 0;
|
|
57
|
+
}
|
|
58
|
+
function mulberry32(seed) {
|
|
59
|
+
let state = seed >>> 0;
|
|
60
|
+
return () => {
|
|
61
|
+
state = (state + 0x6d2b79f5) | 0;
|
|
62
|
+
let t = Math.imul(state ^ (state >>> 15), 1 | state);
|
|
63
|
+
t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t;
|
|
64
|
+
return ((t ^ (t >>> 14)) >>> 0) / 4294967296;
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Selects `count` examples with a seeded shuffle so that truncated evaluation
|
|
69
|
+
* is a deterministic random sample instead of a dataset-order prefix. The
|
|
70
|
+
* selected examples keep their original relative order, so baseline and
|
|
71
|
+
* candidate evaluations that use the same seed score identical examples.
|
|
72
|
+
*/
|
|
73
|
+
export function sampleExamples(examples, count, seed) {
|
|
74
|
+
if (count >= examples.length)
|
|
75
|
+
return examples;
|
|
76
|
+
const indices = examples.map((_, index) => index);
|
|
77
|
+
const random = mulberry32(seed);
|
|
78
|
+
for (let index = indices.length - 1; index > 0; index -= 1) {
|
|
79
|
+
const swap = Math.floor(random() * (index + 1));
|
|
80
|
+
[indices[index], indices[swap]] = [indices[swap], indices[index]];
|
|
81
|
+
}
|
|
82
|
+
return indices.slice(0, count).sort((left, right) => left - right).map((index) => examples[index]);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Deterministically splits spec examples into a training split and an eval
|
|
86
|
+
* holdout so that default spec runs do not evaluate on their own training
|
|
87
|
+
* data. The holdout is a seeded random sample of about `holdoutRatio` of the
|
|
88
|
+
* examples, with at least 1 holdout and at least 1 training example. Both
|
|
89
|
+
* splits preserve the original example order. With fewer than 2 examples the
|
|
90
|
+
* holdout is empty and callers should fall back to training-set evaluation.
|
|
91
|
+
*/
|
|
92
|
+
export function splitSpecExamples(examples, seed, holdoutRatio = 0.2) {
|
|
93
|
+
if (examples.length < 2)
|
|
94
|
+
return { train: examples, holdout: [] };
|
|
95
|
+
const holdoutCount = Math.min(examples.length - 1, Math.max(1, Math.round(examples.length * holdoutRatio)));
|
|
96
|
+
const indices = examples.map((_, index) => index);
|
|
97
|
+
const random = mulberry32(seed);
|
|
98
|
+
for (let index = indices.length - 1; index > 0; index -= 1) {
|
|
99
|
+
const swap = Math.floor(random() * (index + 1));
|
|
100
|
+
[indices[index], indices[swap]] = [indices[swap], indices[index]];
|
|
101
|
+
}
|
|
102
|
+
const holdoutIndices = new Set(indices.slice(0, holdoutCount));
|
|
103
|
+
return {
|
|
104
|
+
train: examples.filter((_, index) => !holdoutIndices.has(index)),
|
|
105
|
+
holdout: examples.filter((_, index) => holdoutIndices.has(index)),
|
|
106
|
+
};
|
|
107
|
+
}
|
|
16
108
|
function extractJsonObject(value) {
|
|
17
109
|
const trimmed = value.trim();
|
|
18
110
|
const candidates = [trimmed];
|
|
@@ -72,18 +164,29 @@ function scoreJsonFields(expected, actual, configuredFields) {
|
|
|
72
164
|
&& expectedKeys.length === actualKeys.length
|
|
73
165
|
&& expectedKeys.every((key, index) => key === actualKeys[index]);
|
|
74
166
|
const fieldResults = {};
|
|
167
|
+
const missingExpectedFields = [];
|
|
75
168
|
for (const field of fields) {
|
|
169
|
+
// A configured field that the expected output does not define cannot be
|
|
170
|
+
// verified, so it must never count as correct.
|
|
171
|
+
if (!Object.prototype.hasOwnProperty.call(expectedJson, field)) {
|
|
172
|
+
missingExpectedFields.push(field);
|
|
173
|
+
fieldResults[field] = false;
|
|
174
|
+
continue;
|
|
175
|
+
}
|
|
76
176
|
fieldResults[field] = actualJson ? jsonValuesEqual(expectedJson[field], actualJson[field]) : false;
|
|
77
177
|
}
|
|
78
178
|
const correct = Object.values(fieldResults).filter(Boolean).length;
|
|
79
179
|
const score = fields.length > 0 ? correct / fields.length : 0;
|
|
80
180
|
const passed = fields.length > 0 && correct === fields.length;
|
|
181
|
+
const missingNote = missingExpectedFields.length > 0
|
|
182
|
+
? ` Configured fields missing from expected output scored as incorrect: ${missingExpectedFields.join(", ")}.`
|
|
183
|
+
: "";
|
|
81
184
|
return {
|
|
82
185
|
score,
|
|
83
186
|
passed,
|
|
84
|
-
reasoning: actualJson
|
|
187
|
+
reasoning: (actualJson
|
|
85
188
|
? `JSON field score: ${correct}/${fields.length} configured fields matched.`
|
|
86
|
-
: "Actual output is not a JSON object.",
|
|
189
|
+
: "Actual output is not a JSON object.") + missingNote,
|
|
87
190
|
actualJsonValid: Boolean(actualJson),
|
|
88
191
|
schemaMatch,
|
|
89
192
|
fields,
|
|
@@ -281,31 +384,51 @@ async function runTransformersInference(args) {
|
|
|
281
384
|
});
|
|
282
385
|
return JSON.parse(await readFile(outputPath, "utf8"));
|
|
283
386
|
}
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
387
|
+
/**
|
|
388
|
+
* Builds the judge messages. The spec's compiled system message (system
|
|
389
|
+
* prompt, guidelines, and constraints) is forwarded as task_instructions so
|
|
390
|
+
* the judge scores conformance to the task, not just similarity to the
|
|
391
|
+
* reference. Without it, a judge treats `expected` as a fact checklist and
|
|
392
|
+
* systematically penalizes outputs trained toward a different style (for
|
|
393
|
+
* example concise summaries) even when they follow the spec.
|
|
394
|
+
*/
|
|
395
|
+
export function buildJudgeMessages(args) {
|
|
396
|
+
return [
|
|
289
397
|
{
|
|
290
398
|
role: "system",
|
|
291
|
-
content: "You are a strict evaluator.
|
|
399
|
+
content: "You are a strict evaluator. Score how well the actual output fulfills the task instructions "
|
|
400
|
+
+ "for the given prompt. The expected output is a reference answer showing the desired style, length, "
|
|
401
|
+
+ "and content; treat it as one correct answer, not an exhaustive checklist. Penalize factual errors, "
|
|
402
|
+
+ "contradictions of the prompt, and violations of the task instructions. Do not penalize an output "
|
|
403
|
+
+ "merely for omitting secondary reference details when the task instructions call for that brevity. "
|
|
404
|
+
+ "Return JSON only with keys score (0 to 1), passed (boolean), and reasoning (string).",
|
|
292
405
|
},
|
|
293
406
|
{
|
|
294
407
|
role: "user",
|
|
295
408
|
content: JSON.stringify({
|
|
409
|
+
...(args.taskInstructions ? { task_instructions: args.taskInstructions } : {}),
|
|
296
410
|
prompt: args.prompt,
|
|
297
411
|
expected: args.expected,
|
|
298
412
|
actual: args.actual,
|
|
299
413
|
}),
|
|
300
414
|
},
|
|
301
|
-
]
|
|
415
|
+
];
|
|
416
|
+
}
|
|
417
|
+
async function judgeWithOpenRouter(args) {
|
|
418
|
+
if (!args.config.llm) {
|
|
419
|
+
throw new Error("evaluation.mode=llm_judge requires llm OpenRouter config");
|
|
420
|
+
}
|
|
421
|
+
const result = await openRouterChat(buildJudgeMessages(args), {
|
|
302
422
|
model: args.config.llm.model,
|
|
303
423
|
apiKeyEnv: args.config.llm.apiKeyEnv,
|
|
304
424
|
appName: args.config.llm.appName,
|
|
305
425
|
siteUrl: args.config.llm.siteUrl,
|
|
306
426
|
timeoutMs: args.config.evaluation.timeoutMs,
|
|
307
427
|
});
|
|
308
|
-
const parsed =
|
|
428
|
+
const parsed = extractJsonObject(result.content);
|
|
429
|
+
if (!parsed) {
|
|
430
|
+
throw new Error(`OpenRouter judge returned malformed JSON: ${result.content.slice(0, 200)}`);
|
|
431
|
+
}
|
|
309
432
|
const score = typeof parsed.score === "number"
|
|
310
433
|
? Math.max(0, Math.min(1, parsed.score))
|
|
311
434
|
: 0;
|
|
@@ -319,9 +442,101 @@ async function judgeWithOpenRouter(args) {
|
|
|
319
442
|
function canUseOpenRouterJudge(config) {
|
|
320
443
|
return Boolean(config.llm && process.env[config.llm.apiKeyEnv]);
|
|
321
444
|
}
|
|
445
|
+
const FACTUAL_REASONING = /incorrect|error|misstate|mis-state|contradict|wrong|inaccurate|not supported|misattribut|invent|fabricat|halluc/i;
|
|
446
|
+
const OMISSION_REASONING = /omit|missing|leaves out|leave out|lacks|does not (?:mention|include|cover)|fails to (?:mention|include|cover)/i;
|
|
447
|
+
const STYLE_REASONING = /verbose|too long|too short|format|style|tone|first person|markdown|preamble/i;
|
|
448
|
+
/**
|
|
449
|
+
* Coarse category for a judge reasoning string so comparison reports can
|
|
450
|
+
* answer "what kind of worse?" without re-reading every example. Factual
|
|
451
|
+
* problems dominate omissions, which dominate style notes; fallback marks
|
|
452
|
+
* examples that were never judge-scored (their score is not comparable to
|
|
453
|
+
* judged ones).
|
|
454
|
+
*/
|
|
455
|
+
export function classifyJudgeReasoning(reasoning, scoredBy) {
|
|
456
|
+
if (scoredBy === "exact_match_fallback")
|
|
457
|
+
return "fallback";
|
|
458
|
+
if (!reasoning)
|
|
459
|
+
return "other";
|
|
460
|
+
if (reasoning.startsWith("LLM judge failed"))
|
|
461
|
+
return "fallback";
|
|
462
|
+
if (FACTUAL_REASONING.test(reasoning))
|
|
463
|
+
return "factual";
|
|
464
|
+
if (OMISSION_REASONING.test(reasoning))
|
|
465
|
+
return "omission";
|
|
466
|
+
if (STYLE_REASONING.test(reasoning))
|
|
467
|
+
return "style";
|
|
468
|
+
return "other";
|
|
469
|
+
}
|
|
470
|
+
/**
|
|
471
|
+
* Cache key for a baseline evaluation. Baseline outputs are deterministic for
|
|
472
|
+
* a given model, example set, and generation settings, and judge scores only
|
|
473
|
+
* depend on those plus the scoring configuration, so re-running a spec with
|
|
474
|
+
* an unchanged baseline can reuse the previous report instead of paying for
|
|
475
|
+
* inference and judge calls again. The package version participates so rubric
|
|
476
|
+
* or evaluator changes invalidate old entries.
|
|
477
|
+
*/
|
|
478
|
+
export function baselineCacheKey(args) {
|
|
479
|
+
const payload = {
|
|
480
|
+
v: 1,
|
|
481
|
+
package_version: args.packageVersion,
|
|
482
|
+
model_id: args.modelId,
|
|
483
|
+
system: args.system,
|
|
484
|
+
examples: args.examples.map((example) => ({
|
|
485
|
+
input: example.input,
|
|
486
|
+
output: example.output,
|
|
487
|
+
assets: example.input_assets ?? null,
|
|
488
|
+
})),
|
|
489
|
+
// The full inference config participates: a different evaluator script,
|
|
490
|
+
// project, or generation setting must produce a different cache entry.
|
|
491
|
+
inference: args.config.evaluation.inference,
|
|
492
|
+
scoring: {
|
|
493
|
+
mode: args.config.evaluation.scoring.mode,
|
|
494
|
+
fields: args.config.evaluation.scoring.fields ?? null,
|
|
495
|
+
evaluationMode: args.config.evaluation.mode,
|
|
496
|
+
judgeModel: args.config.llm?.model ?? null,
|
|
497
|
+
},
|
|
498
|
+
};
|
|
499
|
+
return createHash("sha256").update(JSON.stringify(payload)).digest("hex");
|
|
500
|
+
}
|
|
501
|
+
function baselineCachePath(config, key) {
|
|
502
|
+
const root = config.storeRoot ? resolve(config.storeRoot) : defaultLocalHome();
|
|
503
|
+
return join(root, "cache", "baseline-evals", `${key}.json`);
|
|
504
|
+
}
|
|
505
|
+
async function readBaselineCache(path) {
|
|
506
|
+
try {
|
|
507
|
+
return evalReportSchema.parse(JSON.parse(await readFile(path, "utf8")));
|
|
508
|
+
}
|
|
509
|
+
catch {
|
|
510
|
+
return null;
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
let cachedPackageVersion = null;
|
|
514
|
+
async function packageVersion() {
|
|
515
|
+
if (cachedPackageVersion === null) {
|
|
516
|
+
try {
|
|
517
|
+
const raw = await readFile(new URL("../package.json", import.meta.url), "utf8");
|
|
518
|
+
cachedPackageVersion = String(JSON.parse(raw).version ?? "unknown");
|
|
519
|
+
}
|
|
520
|
+
catch {
|
|
521
|
+
cachedPackageVersion = "unknown";
|
|
522
|
+
}
|
|
523
|
+
}
|
|
524
|
+
return cachedPackageVersion;
|
|
525
|
+
}
|
|
322
526
|
export async function evaluateExamples(args) {
|
|
323
|
-
|
|
324
|
-
|
|
527
|
+
// Explicit config takes precedence over the per-run request hyperparameter
|
|
528
|
+
// (passed by the orchestrator via args.maxExamples).
|
|
529
|
+
const maxExamples = args.config.evaluation.maxExamples
|
|
530
|
+
?? args.maxExamples
|
|
531
|
+
?? args.examples.length;
|
|
532
|
+
const truncated = args.examples.length > maxExamples;
|
|
533
|
+
// When truncating, take a deterministic seeded sample (not a prefix) so a
|
|
534
|
+
// sorted or grouped eval file does not bias the evaluated subset. Baseline
|
|
535
|
+
// and candidate runs receive the same seed and therefore identical examples.
|
|
536
|
+
const sampleSeed = args.config.evaluation.sampleSeed ?? args.sampleSeed ?? 0;
|
|
537
|
+
const selected = truncated
|
|
538
|
+
? sampleExamples(args.examples, maxExamples, sampleSeed)
|
|
539
|
+
: args.examples;
|
|
325
540
|
const command = args.kind === "baseline"
|
|
326
541
|
? args.config.evaluation.baselineCommand
|
|
327
542
|
: args.config.evaluation.candidateCommand;
|
|
@@ -340,6 +555,42 @@ export async function evaluateExamples(args) {
|
|
|
340
555
|
const jsonFieldScores = [];
|
|
341
556
|
let judgeModelId = null;
|
|
342
557
|
let generationConfig;
|
|
558
|
+
// Baseline outputs and scores are fully determined by the cache key inputs,
|
|
559
|
+
// so an unchanged baseline can reuse the previous report instead of paying
|
|
560
|
+
// for inference and judge calls on every run of the same spec.
|
|
561
|
+
const cacheEligible = args.kind === "baseline"
|
|
562
|
+
&& args.config.evaluation.baselineCache
|
|
563
|
+
&& !args.config.dryRun
|
|
564
|
+
&& inferenceProvider === "transformers";
|
|
565
|
+
const cacheKey = cacheEligible
|
|
566
|
+
? baselineCacheKey({
|
|
567
|
+
modelId: args.modelId,
|
|
568
|
+
system: args.system,
|
|
569
|
+
examples: selected,
|
|
570
|
+
config: args.config,
|
|
571
|
+
packageVersion: await packageVersion(),
|
|
572
|
+
})
|
|
573
|
+
: null;
|
|
574
|
+
if (cacheKey) {
|
|
575
|
+
const cached = await readBaselineCache(baselineCachePath(args.config, cacheKey));
|
|
576
|
+
if (cached) {
|
|
577
|
+
const report = {
|
|
578
|
+
...cached,
|
|
579
|
+
cached: true,
|
|
580
|
+
cache_key: cacheKey,
|
|
581
|
+
artifact_uri: fileUri(args.outputPath),
|
|
582
|
+
eval_split: args.evalSplit ?? cached.eval_split,
|
|
583
|
+
};
|
|
584
|
+
await writeJson(args.outputPath, report);
|
|
585
|
+
await args.reporter?.onEvent?.({
|
|
586
|
+
stage: `evaluating_${args.kind}`,
|
|
587
|
+
status: "running",
|
|
588
|
+
message: "Reusing cached baseline evaluation (identical model, examples, and scoring).",
|
|
589
|
+
details: { cache_key: cacheKey, examples: report.total },
|
|
590
|
+
});
|
|
591
|
+
return report;
|
|
592
|
+
}
|
|
593
|
+
}
|
|
343
594
|
const inferred = inferenceProvider === "transformers"
|
|
344
595
|
? await runTransformersInference({
|
|
345
596
|
kind: args.kind,
|
|
@@ -381,14 +632,34 @@ export async function evaluateExamples(args) {
|
|
|
381
632
|
details: { model: args.config.llm?.model, examples: selected.length },
|
|
382
633
|
});
|
|
383
634
|
}
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
635
|
+
let judged = null;
|
|
636
|
+
let judgeFellBack = false;
|
|
637
|
+
if (shouldJudge) {
|
|
638
|
+
try {
|
|
639
|
+
judged = await judgeWithOpenRouter({
|
|
640
|
+
prompt: example.input,
|
|
641
|
+
expected: example.output,
|
|
642
|
+
actual,
|
|
643
|
+
taskInstructions: args.system.trim() || undefined,
|
|
644
|
+
config: args.config,
|
|
645
|
+
});
|
|
646
|
+
}
|
|
647
|
+
catch (error) {
|
|
648
|
+
// Judge request failed or returned malformed output. With
|
|
649
|
+
// fallback=exact_match, score this example by exact match instead of
|
|
650
|
+
// failing the whole run; with fallback=fail, surface the error.
|
|
651
|
+
if (args.config.evaluation.scoring.fallback === "fail")
|
|
652
|
+
throw error;
|
|
653
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
654
|
+
judgeFellBack = true;
|
|
655
|
+
judged = {
|
|
656
|
+
score: exactScore,
|
|
657
|
+
passed: exactScore === 1,
|
|
658
|
+
reasoning: `LLM judge failed (${message.slice(0, 300)}); scored by normalized exact match.`,
|
|
659
|
+
model: null,
|
|
660
|
+
};
|
|
661
|
+
}
|
|
662
|
+
}
|
|
392
663
|
if (judged?.model)
|
|
393
664
|
judgeModelId = judged.model;
|
|
394
665
|
const latencyMs = inferredResult?.latency_ms ?? Math.max(0, Math.round(performance.now() - started));
|
|
@@ -398,6 +669,13 @@ export async function evaluateExamples(args) {
|
|
|
398
669
|
if (jsonFieldScore)
|
|
399
670
|
jsonFieldScores.push(jsonFieldScore);
|
|
400
671
|
const score = judged?.score ?? jsonFieldScore?.score ?? exactScore;
|
|
672
|
+
const scoredBy = judged
|
|
673
|
+
? (judgeFellBack ? "exact_match_fallback" : "llm_judge")
|
|
674
|
+
: jsonFieldScore
|
|
675
|
+
? "json_fields"
|
|
676
|
+
: inferenceProvider === "none"
|
|
677
|
+
? "heuristic"
|
|
678
|
+
: "exact_match";
|
|
401
679
|
results.push({
|
|
402
680
|
prompt: example.input,
|
|
403
681
|
expected: example.output,
|
|
@@ -410,6 +688,7 @@ export async function evaluateExamples(args) {
|
|
|
410
688
|
? "OpenRouter judge unavailable; fell back to normalized exact match."
|
|
411
689
|
: "Scored by normalized exact match."),
|
|
412
690
|
latency_ms: latencyMs,
|
|
691
|
+
scored_by: scoredBy,
|
|
413
692
|
});
|
|
414
693
|
}
|
|
415
694
|
const total = results.length;
|
|
@@ -422,6 +701,16 @@ export async function evaluateExamples(args) {
|
|
|
422
701
|
const exactMatchRate = total > 0
|
|
423
702
|
? results.filter((result) => scoreActual(result.expected, result.actual) === 1).length / total
|
|
424
703
|
: 0;
|
|
704
|
+
const avgTokenF1 = total > 0
|
|
705
|
+
? results.reduce((sum, result) => sum + tokenF1(result.expected, result.actual), 0) / total
|
|
706
|
+
: 0;
|
|
707
|
+
const judgeScored = results.filter((result) => result.scored_by === "llm_judge");
|
|
708
|
+
const fallbackScoredCount = results.filter((result) => result.scored_by === "exact_match_fallback").length;
|
|
709
|
+
// Fallback-scored examples mix a different metric into avg_score, so also
|
|
710
|
+
// report the average over judge-scored examples only.
|
|
711
|
+
const judgeOnlyAvgScore = judgeScored.length > 0
|
|
712
|
+
? judgeScored.reduce((sum, result) => sum + result.score, 0) / judgeScored.length
|
|
713
|
+
: null;
|
|
425
714
|
const avgLatency = total > 0
|
|
426
715
|
? Math.round(results.reduce((sum, result) => sum + result.latency_ms, 0) / total)
|
|
427
716
|
: 0;
|
|
@@ -441,10 +730,16 @@ export async function evaluateExamples(args) {
|
|
|
441
730
|
eval_examples_total: args.examples.length,
|
|
442
731
|
eval_examples_used: total,
|
|
443
732
|
eval_truncated: args.examples.length > total,
|
|
733
|
+
eval_split: args.evalSplit,
|
|
734
|
+
eval_sample_seed: truncated ? sampleSeed : null,
|
|
444
735
|
avg_score: avgScore,
|
|
445
736
|
pass_rate: passRate,
|
|
446
737
|
exact_match_rate: exactMatchRate,
|
|
738
|
+
avg_token_f1: avgTokenF1,
|
|
447
739
|
avg_latency_ms: avgLatency,
|
|
740
|
+
judge_scored_count: judgeScored.length,
|
|
741
|
+
fallback_scored_count: fallbackScoredCount,
|
|
742
|
+
judge_only_avg_score: judgeOnlyAvgScore,
|
|
448
743
|
results,
|
|
449
744
|
artifact_uri: fileUri(args.outputPath),
|
|
450
745
|
scoring_method: scoringMethod,
|
|
@@ -458,34 +753,53 @@ export async function evaluateExamples(args) {
|
|
|
458
753
|
log_uri: inferenceProvider === "transformers" ? fileUri(`${args.outputPath}.inference.log`) : undefined,
|
|
459
754
|
};
|
|
460
755
|
await writeJson(args.outputPath, report);
|
|
756
|
+
if (cacheKey) {
|
|
757
|
+
// Do not cache reports with fallback-scored examples: a transient judge
|
|
758
|
+
// failure would otherwise be replayed into every future run.
|
|
759
|
+
if (fallbackScoredCount === 0) {
|
|
760
|
+
await writeJson(baselineCachePath(args.config, cacheKey), { ...report, cache_key: cacheKey });
|
|
761
|
+
}
|
|
762
|
+
}
|
|
461
763
|
return report;
|
|
462
764
|
}
|
|
463
765
|
export function compareEvalReports(baseline, candidate) {
|
|
464
766
|
let regressions = 0;
|
|
465
767
|
let improvements = 0;
|
|
466
768
|
const regressedExamples = [];
|
|
769
|
+
const taxonomy = {};
|
|
467
770
|
const count = Math.min(baseline.results.length, candidate.results.length);
|
|
468
771
|
for (let index = 0; index < count; index += 1) {
|
|
469
772
|
const oldScore = baseline.results[index]?.score ?? 0;
|
|
470
|
-
const
|
|
773
|
+
const newResult = candidate.results[index];
|
|
774
|
+
const newScore = newResult?.score ?? 0;
|
|
471
775
|
if (newScore < oldScore) {
|
|
472
776
|
regressions += 1;
|
|
777
|
+
const category = classifyJudgeReasoning(newResult?.reasoning ?? null, newResult?.scored_by);
|
|
778
|
+
taxonomy[category] = (taxonomy[category] ?? 0) + 1;
|
|
473
779
|
regressedExamples.push({
|
|
474
780
|
prompt: baseline.results[index]?.prompt ?? "",
|
|
475
781
|
old_score: oldScore,
|
|
476
782
|
new_score: newScore,
|
|
783
|
+
category,
|
|
477
784
|
});
|
|
478
785
|
}
|
|
479
786
|
else if (newScore > oldScore) {
|
|
480
787
|
improvements += 1;
|
|
481
788
|
}
|
|
482
789
|
}
|
|
790
|
+
const judgeOnlyDelta = typeof baseline.judge_only_avg_score === "number"
|
|
791
|
+
&& typeof candidate.judge_only_avg_score === "number"
|
|
792
|
+
? candidate.judge_only_avg_score - baseline.judge_only_avg_score
|
|
793
|
+
: null;
|
|
483
794
|
return {
|
|
484
795
|
avg_score_delta: candidate.avg_score - baseline.avg_score,
|
|
485
796
|
pass_rate_delta: candidate.pass_rate - baseline.pass_rate,
|
|
486
797
|
exact_match_rate_delta: candidate.exact_match_rate - baseline.exact_match_rate,
|
|
798
|
+
token_f1_delta: (candidate.avg_token_f1 ?? 0) - (baseline.avg_token_f1 ?? 0),
|
|
799
|
+
judge_only_avg_score_delta: judgeOnlyDelta,
|
|
487
800
|
regressions,
|
|
488
801
|
improvements,
|
|
802
|
+
regression_taxonomy: regressions > 0 ? taxonomy : undefined,
|
|
489
803
|
regressed_examples: regressedExamples,
|
|
490
804
|
};
|
|
491
805
|
}
|
package/dist/evaluation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluation.js","sourceRoot":"","sources":["../src/evaluation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAO9C,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAyB,MAAM,mBAAmB,CAAC;AAE9E,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;AACzD,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB,EAAE,MAAc;IACnD,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACtC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACjE,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC;QAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAChD,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC;QAAE,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAY,CAAC;YAChD,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnE,OAAO,MAAiC,CAAC;YAC3C,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,0BAA0B;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/E,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC;aAC7C,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;aACpD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CACzD,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,eAAe,CAAC,IAAa,EAAE,KAAc;IACpD,OAAO,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;AAChG,CAAC;AAYD,SAAS,eAAe,CAAC,QAAgB,EAAE,MAAc,EAAE,gBAA2B;IACpF,MAAM,YAAY,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACjD,OAAO;YACL,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,UAAU,KAAK,CAAC;YACxB,SAAS,EAAE,4EAA4E;YACvF,eAAe,EAAE,OAAO,CAAC,UAAU,CAAC;YACpC,WAAW,EAAE,KAAK;YAClB,MAAM,EAAE,EAAE;YACV,YAAY,EAAE,EAAE;SACjB,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,gBAAgB,EAAE,MAAM;QACrC,CAAC,CAAC,gBAAgB;QAClB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;IACrC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;IACtD,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;WAClC,YAAY,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM;WACzC,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACnE,MAAM,YAAY,GAA4B,EAAE,CAAC;IAEjD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,YAAY,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACrG,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IACnE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC;IAC9D,OAAO;QACL,KAAK;QACL,MAAM;QACN,SAAS,EAAE,UAAU;YACnB,CAAC,CAAC,qBAAqB,OAAO,IAAI,MAAM,CAAC,MAAM,6BAA6B;YAC5E,CAAC,CAAC,qCAAqC;QACzC,eAAe,EAAE,OAAO,CAAC,UAAU,CAAC;QACpC,WAAW;QACX,MAAM;QACN,YAAY;KACb,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAAC,MAAwB,EAAE,KAAa;IACxE,IAAI,KAAK,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACzD,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5E,MAAM,cAAc,GAAyE,EAAE,CAAC;IAChG,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QAC3E,cAAc,CAAC,KAAK,CAAC,GAAG;YACtB,OAAO;YACP,KAAK,EAAE,MAAM,CAAC,MAAM;YACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAC1D,CAAC;IACJ,CAAC;IACD,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC;IAC9E,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;IAC5E,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IAC1E,OAAO;QACL,MAAM;QACN,gBAAgB,EAAE,cAAc;QAChC,eAAe,EAAE,cAAc,GAAG,KAAK;QACvC,kBAAkB,EAAE,gBAAgB;QACpC,iBAAiB,EAAE,gBAAgB,GAAG,KAAK;QAC3C,sBAAsB,EAAE,mBAAmB;QAC3C,qBAAqB,EAAE,mBAAmB,GAAG,KAAK;QAClD,cAAc;KACf,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,OAAO,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC7E,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,IAMlC;IACC,MAAM,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC,CAAC;IAEH,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE;YAChC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/B,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAC,CAAC;QACH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtB,MAAM,CAAC,IAAI,KAAK,CAAC,qCAAqC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;QAC7E,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAEnB,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACjC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACjC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1B,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChF,OAAO;YACT,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA8D,CAAC;gBAChG,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;gBACjE,OAAO,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC3D,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,OAAO,CAAC,CAAC;YACnB,CAAC;QACH,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC;AAgBD,SAAS,oBAAoB,CAAC,MAAyB,EAAE,SAAiB,EAAE,UAAkB;IAC5F,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;IAC9C,MAAM,IAAI,GAAa,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,SAAS,CAAC,OAAO;QAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IACjE,KAAK,MAAM,UAAU,IAAI,SAAS,CAAC,IAAI,IAAI,EAAE;QAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC/E,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpB,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IACxD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,wBAAwB,CAAC,IAUvC;IACC,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,UAAU,uBAAuB,CAAC;IAC5D,MAAM,UAAU,GAAG,GAAG,IAAI,CAAC,UAAU,wBAAwB,CAAC;IAC9D,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,UAAU,gBAAgB,CAAC;IACnD,MAAM,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,IAAI,WAA+B,CAAC;IACpC,IAAI,CAAC;QACH,WAAW,GAAG,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,WAAW,GAAG,SAAS,CAAC;IAC1B,CAAC;IACD,MAAM,SAAS,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3C,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,QAAQ,EAAE,IAAI,CAAC,OAAO;QACtB,UAAU,EAAE,IAAI,CAAC,WAAW;QAC5B,YAAY,EAAE,WAAW;QACzB,YAAY,EAAE,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;QAC7C,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;QAC7F,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,eAAe;QACnE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM;QAC/C,UAAU,EAAE;YACV,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY;YAC7D,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW;YACzD,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI;SAC7C;KACF,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAEzB,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC;IAClC,MAAM,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;QAC7B,KAAK,EAAE,cAAc,IAAI,CAAC,IAAI,EAAE;QAChC,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,YAAY,IAAI,CAAC,IAAI,0BAA0B;QACxD,OAAO,EAAE;YACP,QAAQ,EAAE,IAAI,CAAC,OAAO;YACtB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;YAC9B,OAAO;YACP,QAAQ,EAAE,OAAO;SAClB;KACF,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7D,IAAI,CAAC;QACH,MAAM,IAAI,OAAO,CAAO,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE;YACjD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE;gBAChC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;gBACzG,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;gBACjC,GAAG,EAAE;oBACH,GAAG,OAAO,CAAC,GAAG;oBACd,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG;iBACxC;aACF,CAAC,CAAC;YACH,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACtB,MAAM,CAAC,IAAI,KAAK,CAAC,0CAA0C,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;YACpG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YACrC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7C,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7C,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBACxC,IAAI,IAAI,CAAC,QAAQ,EAAE,OAAO;oBAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,cAAc,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAChI,CAAC,CAAC,CAAC;YACH,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBACxC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC;gBACtB,IAAI,IAAI,CAAC,QAAQ,EAAE,OAAO;oBAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,cAAc,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAChI,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC1B,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,KAAK,CAAC,iCAAiC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;oBACrF,OAAO;gBACT,CAAC;gBACD,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,IAAI,OAAO,CAAO,CAAC,UAAU,EAAE,EAAE;YACrC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;IACD,MAAM,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;QAC7B,KAAK,EAAE,cAAc,IAAI,CAAC,IAAI,EAAE;QAChC,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,YAAY,IAAI,CAAC,IAAI,0BAA0B;QACxD,OAAO,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE;KACxD,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAgC,CAAC;AACvF,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,IAKlC;IACC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC;QAClC;YACE,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,kHAAkH;SAC5H;QACD;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;gBACtB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC;SACH;KACF,EAAE;QACD,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK;QAC5B,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS;QACpC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO;QAChC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO;QAChC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS;KAC5C,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAA+D,CAAC;IACxG,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;QAC5C,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC,CAAC;IACN,OAAO;QACL,KAAK;QACL,MAAM,EAAE,OAAO,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC;QACxE,SAAS,EAAE,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,yCAAyC;QAC9G,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK;KAC7C,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAyB;IACtD,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAUtC;IACC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,UAAU;QACtC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe;QACxC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC;IAC5C,MAAM,iBAAiB,GACrB,IAAI,CAAC,MAAM,CAAC,MAAM;QAChB,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO;YACpD,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC;IAClD,MAAM,qBAAqB,GACzB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,WAAW;QACzC,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;IAC1C,MAAM,WAAW,GACf,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,iBAAiB,KAAK,MAAM,CAAC,IAAI,qBAAqB,KAAK,WAAW;QAC3F,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,qBAAqB,CAAC;IAC5B,MAAM,OAAO,GAAwB,EAAE,CAAC;IACxC,MAAM,eAAe,GAAqB,EAAE,CAAC;IAC7C,IAAI,YAAY,GAAkB,IAAI,CAAC;IACvC,IAAI,gBAAqD,CAAC;IAE1D,MAAM,QAAQ,GAAG,iBAAiB,KAAK,cAAc;QACnD,CAAC,CAAC,MAAM,wBAAwB,CAAC;YAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO;YAC7C,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;QACJ,CAAC,CAAC,IAAI,CAAC;IACT,gBAAgB,GAAG,QAAQ,EAAE,iBAAiB,CAAC;IAE/C,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;QAClD,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAClC,MAAM,aAAa,GAAG,iBAAiB,KAAK,SAAS,IAAI,OAAO;YAC9D,CAAC,CAAC,MAAM,mBAAmB,CAAC;gBACxB,OAAO;gBACP,MAAM,EAAE,OAAO,CAAC,KAAK;gBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE,OAAO,CAAC,MAAM;gBACxB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS;aAC5C,CAAC;YACJ,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,cAAc,GAAG,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,aAAa,IAAI,cAAc,EAAE,MAAM,IAAI,EAAE,CAAC;QAC7D,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACvD,MAAM,WAAW,GAAG,WAAW,KAAK,WAAW,IAAI,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtF,IAAI,WAAW,KAAK,WAAW,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YACtG,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,IAAI,oBAAoB,CAAC;YACnE,MAAM,IAAI,KAAK,CAAC,8CAA8C,OAAO,kCAAkC,CAAC,CAAC;QAC3G,CAAC;QACD,IAAI,WAAW,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;gBAC7B,KAAK,EAAE,cAAc,IAAI,CAAC,IAAI,EAAE;gBAChC,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,WAAW,IAAI,CAAC,IAAI,iCAAiC;gBAC9D,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE;aACtE,CAAC,CAAC;QACL,CAAC;QACD,MAAM,MAAM,GAAG,WAAW;YACxB,CAAC,CAAC,MAAM,mBAAmB,CAAC;gBACxB,MAAM,EAAE,OAAO,CAAC,KAAK;gBACrB,QAAQ,EAAE,OAAO,CAAC,MAAM;gBACxB,MAAM;gBACN,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC;YACJ,CAAC,CAAC,IAAI,CAAC;QACT,IAAI,MAAM,EAAE,KAAK;YAAE,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC;QAC/C,MAAM,SAAS,GAAG,cAAc,EAAE,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;QACrG,MAAM,cAAc,GAAG,WAAW,KAAK,aAAa;YAClD,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC;YAChF,CAAC,CAAC,IAAI,CAAC;QACT,IAAI,cAAc;YAAE,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,cAAc,EAAE,KAAK,IAAI,UAAU,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC;YACX,MAAM,EAAE,OAAO,CAAC,KAAK;YACrB,QAAQ,EAAE,OAAO,CAAC,MAAM;YACxB,MAAM;YACN,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,IAAI,KAAK,KAAK,CAAC;YAC/D,KAAK;YACL,SAAS,EAAE,MAAM,EAAE,SAAS,IAAI,cAAc,EAAE,SAAS,IAAI,CAAC,iBAAiB,KAAK,MAAM;gBACxF,CAAC,CAAC,oEAAoE;gBACtE,CAAC,CAAC,WAAW,KAAK,WAAW;oBAC3B,CAAC,CAAC,oEAAoE;oBACtE,CAAC,CAAC,mCAAmC,CAAC;YAC1C,UAAU,EAAE,SAAS;SACtB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAC7B,MAAM,QAAQ,GAAG,KAAK,GAAG,CAAC;QACxB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK;QAChE,CAAC,CAAC,CAAC,CAAC;IACN,MAAM,QAAQ,GAAG,KAAK,GAAG,CAAC;QACxB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,KAAK;QAC1D,CAAC,CAAC,CAAC,CAAC;IACN,MAAM,cAAc,GAAG,KAAK,GAAG,CAAC;QAC9B,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK;QAC9F,CAAC,CAAC,CAAC,CAAC;IACN,MAAM,UAAU,GAAG,KAAK,GAAG,CAAC;QAC1B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;QACjF,CAAC,CAAC,CAAC,CAAC;IACN,MAAM,aAAa,GAAG,YAAY;QAChC,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,WAAW,KAAK,aAAa;YAC7B,CAAC,CAAC,aAAa;YACjB,CAAC,CAAC,iBAAiB,KAAK,SAAS;gBAC/B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,iBAAiB,KAAK,MAAM;oBAC5B,CAAC,CAAC,WAAW;oBACb,CAAC,CAAC,aAAa,CAAC;IACtB,MAAM,MAAM,GAAe;QACzB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,QAAQ,EAAE,IAAI,CAAC,OAAO;QACtB,KAAK;QACL,mBAAmB,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;QACzC,kBAAkB,EAAE,KAAK;QACzB,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK;QAC5C,SAAS,EAAE,QAAQ;QACnB,SAAS,EAAE,QAAQ;QACnB,gBAAgB,EAAE,cAAc;QAChC,cAAc,EAAE,UAAU;QAC1B,OAAO;QACP,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;QACtC,cAAc,EAAE,aAAa;QAC7B,cAAc,EAAE,YAAY;QAC5B,kBAAkB,EAAE,iBAAiB;QACrC,YAAY,EAAE,WAAW;QACzB,kBAAkB,EAAE,WAAW,KAAK,aAAa;YAC/C,CAAC,CAAC,yBAAyB,CAAC,eAAe,EAAE,KAAK,CAAC;YACnD,CAAC,CAAC,SAAS;QACb,iBAAiB,EAAE,gBAAgB;QACnC,OAAO,EAAE,iBAAiB,KAAK,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS;KACxG,CAAC;IACF,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACzC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAoB,EAAE,SAAqB;IAC5E,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,MAAM,iBAAiB,GAAG,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1E,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;QACtD,IAAI,QAAQ,GAAG,QAAQ,EAAE,CAAC;YACxB,WAAW,IAAI,CAAC,CAAC;YACjB,iBAAiB,CAAC,IAAI,CAAC;gBACrB,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,EAAE;gBAC7C,SAAS,EAAE,QAAQ;gBACnB,SAAS,EAAE,QAAQ;aACpB,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,QAAQ,GAAG,QAAQ,EAAE,CAAC;YAC/B,YAAY,IAAI,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO;QACL,eAAe,EAAE,SAAS,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS;QACzD,eAAe,EAAE,SAAS,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS;QACzD,sBAAsB,EAAE,SAAS,CAAC,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB;QAC9E,WAAW;QACX,YAAY;QACZ,kBAAkB,EAAE,iBAAiB;KACtC,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"evaluation.js","sourceRoot":"","sources":["../src/evaluation.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
export * from "./compare.js";
|
|
2
3
|
export * from "./contracts.js";
|
|
3
4
|
export * from "./dataset.js";
|
|
4
5
|
export * from "./orchestrator.js";
|
|
@@ -13,3 +14,9 @@ export interface LocalRunnerInfo {
|
|
|
13
14
|
description: string;
|
|
14
15
|
}
|
|
15
16
|
export declare function getLocalRunnerInfo(): LocalRunnerInfo;
|
|
17
|
+
/**
|
|
18
|
+
* Parses simple KEY=VALUE lines from .env content. Supports comments, blank
|
|
19
|
+
* lines, an optional `export ` prefix, and single/double quoted values. Does
|
|
20
|
+
* not support multiline values or variable expansion.
|
|
21
|
+
*/
|
|
22
|
+
export declare function parseDotEnv(content: string): Record<string, string>;
|