@evalguardai/cli 1.1.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 (95) hide show
  1. package/README.md +87 -0
  2. package/bin/evalguard.js +2 -0
  3. package/dist/commands/compare.d.ts +6 -0
  4. package/dist/commands/compare.d.ts.map +1 -0
  5. package/dist/commands/compare.js +109 -0
  6. package/dist/commands/compare.js.map +1 -0
  7. package/dist/commands/compliance-check.d.ts +18 -0
  8. package/dist/commands/compliance-check.d.ts.map +1 -0
  9. package/dist/commands/compliance-check.js +474 -0
  10. package/dist/commands/compliance-check.js.map +1 -0
  11. package/dist/commands/debug.d.ts +6 -0
  12. package/dist/commands/debug.d.ts.map +1 -0
  13. package/dist/commands/debug.js +151 -0
  14. package/dist/commands/debug.js.map +1 -0
  15. package/dist/commands/delete.d.ts +6 -0
  16. package/dist/commands/delete.d.ts.map +1 -0
  17. package/dist/commands/delete.js +105 -0
  18. package/dist/commands/delete.js.map +1 -0
  19. package/dist/commands/eval-local.d.ts +7 -0
  20. package/dist/commands/eval-local.d.ts.map +1 -0
  21. package/dist/commands/eval-local.js +376 -0
  22. package/dist/commands/eval-local.js.map +1 -0
  23. package/dist/commands/export.d.ts +6 -0
  24. package/dist/commands/export.d.ts.map +1 -0
  25. package/dist/commands/export.js +135 -0
  26. package/dist/commands/export.js.map +1 -0
  27. package/dist/commands/firewall.d.ts +6 -0
  28. package/dist/commands/firewall.d.ts.map +1 -0
  29. package/dist/commands/firewall.js +56 -0
  30. package/dist/commands/firewall.js.map +1 -0
  31. package/dist/commands/gate.d.ts +14 -0
  32. package/dist/commands/gate.d.ts.map +1 -0
  33. package/dist/commands/gate.js +232 -0
  34. package/dist/commands/gate.js.map +1 -0
  35. package/dist/commands/generate.d.ts +7 -0
  36. package/dist/commands/generate.d.ts.map +1 -0
  37. package/dist/commands/generate.js +182 -0
  38. package/dist/commands/generate.js.map +1 -0
  39. package/dist/commands/history.d.ts +7 -0
  40. package/dist/commands/history.d.ts.map +1 -0
  41. package/dist/commands/history.js +59 -0
  42. package/dist/commands/history.js.map +1 -0
  43. package/dist/commands/import-promptfoo.d.ts +7 -0
  44. package/dist/commands/import-promptfoo.d.ts.map +1 -0
  45. package/dist/commands/import-promptfoo.js +218 -0
  46. package/dist/commands/import-promptfoo.js.map +1 -0
  47. package/dist/commands/index.d.ts +21 -0
  48. package/dist/commands/index.d.ts.map +1 -0
  49. package/dist/commands/index.js +21 -0
  50. package/dist/commands/index.js.map +1 -0
  51. package/dist/commands/init.d.ts +7 -0
  52. package/dist/commands/init.d.ts.map +1 -0
  53. package/dist/commands/init.js +509 -0
  54. package/dist/commands/init.js.map +1 -0
  55. package/dist/commands/list.d.ts +10 -0
  56. package/dist/commands/list.d.ts.map +1 -0
  57. package/dist/commands/list.js +165 -0
  58. package/dist/commands/list.js.map +1 -0
  59. package/dist/commands/logs.d.ts +6 -0
  60. package/dist/commands/logs.d.ts.map +1 -0
  61. package/dist/commands/logs.js +153 -0
  62. package/dist/commands/logs.js.map +1 -0
  63. package/dist/commands/model-scan.d.ts +7 -0
  64. package/dist/commands/model-scan.d.ts.map +1 -0
  65. package/dist/commands/model-scan.js +276 -0
  66. package/dist/commands/model-scan.js.map +1 -0
  67. package/dist/commands/retry.d.ts +6 -0
  68. package/dist/commands/retry.d.ts.map +1 -0
  69. package/dist/commands/retry.js +83 -0
  70. package/dist/commands/retry.js.map +1 -0
  71. package/dist/commands/scan-local.d.ts +6 -0
  72. package/dist/commands/scan-local.d.ts.map +1 -0
  73. package/dist/commands/scan-local.js +138 -0
  74. package/dist/commands/scan-local.js.map +1 -0
  75. package/dist/commands/share.d.ts +6 -0
  76. package/dist/commands/share.d.ts.map +1 -0
  77. package/dist/commands/share.js +74 -0
  78. package/dist/commands/share.js.map +1 -0
  79. package/dist/commands/store.d.ts +23 -0
  80. package/dist/commands/store.d.ts.map +1 -0
  81. package/dist/commands/store.js +54 -0
  82. package/dist/commands/store.js.map +1 -0
  83. package/dist/commands/validate.d.ts +6 -0
  84. package/dist/commands/validate.d.ts.map +1 -0
  85. package/dist/commands/validate.js +171 -0
  86. package/dist/commands/validate.js.map +1 -0
  87. package/dist/commands/watch.d.ts +6 -0
  88. package/dist/commands/watch.d.ts.map +1 -0
  89. package/dist/commands/watch.js +92 -0
  90. package/dist/commands/watch.js.map +1 -0
  91. package/dist/index.d.ts +3 -0
  92. package/dist/index.d.ts.map +1 -0
  93. package/dist/index.js +342 -0
  94. package/dist/index.js.map +1 -0
  95. package/package.json +73 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/commands/debug.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * `evalguard delete` — Delete eval/scan runs from local storage
3
+ */
4
+ import { Command } from "commander";
5
+ export declare function registerDelete(program: Command): void;
6
+ //# sourceMappingURL=delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../src/commands/delete.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwCpC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+ErD"}
@@ -0,0 +1,105 @@
1
+ import chalk from "chalk";
2
+ import * as fs from "fs";
3
+ import * as path from "path";
4
+ import * as os from "os";
5
+ import * as readline from "readline";
6
+ const DB_DIR = path.join(os.homedir(), ".evalguard");
7
+ const DB_FILE = path.join(DB_DIR, "results.json");
8
+ function loadDb() {
9
+ if (!fs.existsSync(DB_FILE))
10
+ return [];
11
+ try {
12
+ return JSON.parse(fs.readFileSync(DB_FILE, "utf-8"));
13
+ }
14
+ catch {
15
+ return [];
16
+ }
17
+ }
18
+ function saveDb(runs) {
19
+ fs.writeFileSync(DB_FILE, JSON.stringify(runs, null, 2), { mode: 0o600 });
20
+ }
21
+ function askConfirmation(message) {
22
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
23
+ return new Promise((resolve) => {
24
+ rl.question(message, (answer) => {
25
+ rl.close();
26
+ resolve(answer.toLowerCase() === "y" || answer.toLowerCase() === "yes");
27
+ });
28
+ });
29
+ }
30
+ export function registerDelete(program) {
31
+ program
32
+ .command("delete [runId]")
33
+ .description("Delete eval/scan runs from local storage")
34
+ .option("--all", "Delete all stored runs", false)
35
+ .option("--before <date>", "Delete runs before this date (ISO format)")
36
+ .option("--confirm", "Skip confirmation prompt", false)
37
+ .action(async (runId, opts) => {
38
+ const runs = loadDb();
39
+ if (runs.length === 0) {
40
+ console.log(chalk.dim("\n No runs stored. Nothing to delete.\n"));
41
+ return;
42
+ }
43
+ let toDelete = [];
44
+ let toKeep = [];
45
+ if (opts.all) {
46
+ toDelete = runs;
47
+ toKeep = [];
48
+ }
49
+ else if (opts.before) {
50
+ const beforeDate = new Date(opts.before);
51
+ if (isNaN(beforeDate.getTime())) {
52
+ console.error(chalk.red("Invalid date format. Use ISO format (e.g., 2024-01-15)."));
53
+ process.exit(1);
54
+ }
55
+ for (const run of runs) {
56
+ if (new Date(run.timestamp) < beforeDate) {
57
+ toDelete.push(run);
58
+ }
59
+ else {
60
+ toKeep.push(run);
61
+ }
62
+ }
63
+ }
64
+ else if (runId) {
65
+ const found = runs.find((r) => r.id === runId);
66
+ if (!found) {
67
+ console.error(chalk.red(`Run not found: ${runId}`));
68
+ console.log(chalk.dim(" Use `evalguard history` to list available runs."));
69
+ process.exit(1);
70
+ }
71
+ toDelete = [found];
72
+ toKeep = runs.filter((r) => r.id !== runId);
73
+ }
74
+ else {
75
+ console.error(chalk.red("Specify a run ID, --all, or --before <date>."));
76
+ process.exit(1);
77
+ }
78
+ if (toDelete.length === 0) {
79
+ console.log(chalk.dim("\n No matching runs found.\n"));
80
+ return;
81
+ }
82
+ // Show what will be deleted
83
+ console.log();
84
+ console.log(chalk.bold(` ${toDelete.length} run(s) to delete:`));
85
+ for (const run of toDelete.slice(0, 10)) {
86
+ console.log(chalk.dim(` ${run.id} — ${run.name} (${run.timestamp})`));
87
+ }
88
+ if (toDelete.length > 10) {
89
+ console.log(chalk.dim(` ... and ${toDelete.length - 10} more`));
90
+ }
91
+ console.log();
92
+ // Confirm
93
+ if (!opts.confirm) {
94
+ const confirmed = await askConfirmation(chalk.yellow(` Delete ${toDelete.length} run(s)? This cannot be undone. [y/N] `));
95
+ if (!confirmed) {
96
+ console.log(chalk.dim(" Cancelled."));
97
+ return;
98
+ }
99
+ }
100
+ saveDb(toKeep);
101
+ console.log(chalk.green("✓") + ` Deleted ${toDelete.length} run(s). ${toKeep.length} remaining.`);
102
+ console.log();
103
+ });
104
+ }
105
+ //# sourceMappingURL=delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../src/commands/delete.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAErC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;AACrD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AASlD,SAAS,MAAM;IACb,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CAAC,IAAiB;IAC/B,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,eAAe,CAAC,OAAe;IACtC,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACtF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE;YAC9B,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,OAAO;SACJ,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,0CAA0C,CAAC;SACvD,MAAM,CAAC,OAAO,EAAE,wBAAwB,EAAE,KAAK,CAAC;SAChD,MAAM,CAAC,iBAAiB,EAAE,2CAA2C,CAAC;SACtE,MAAM,CAAC,WAAW,EAAE,0BAA0B,EAAE,KAAK,CAAC;SACtD,MAAM,CAAC,KAAK,EAAE,KAAyB,EAAE,IAAyD,EAAE,EAAE;QACrG,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC;QAEtB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC,CAAC;YACnE,OAAO;QACT,CAAC;QAED,IAAI,QAAQ,GAAgB,EAAE,CAAC;QAC/B,IAAI,MAAM,GAAgB,EAAE,CAAC;QAE7B,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,QAAQ,GAAG,IAAI,CAAC;YAChB,MAAM,GAAG,EAAE,CAAC;QACd,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACvB,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAChC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC,CAAC;gBACpF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,UAAU,EAAE,CAAC;oBACzC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC;YAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC,CAAC;gBACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC,CAAC;gBAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC;YACnB,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC,CAAC;YACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QAED,4BAA4B;QAC5B,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,MAAM,oBAAoB,CAAC,CAAC,CAAC;QAClE,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,QAAQ,CAAC,MAAM,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,UAAU;QACV,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,SAAS,GAAG,MAAM,eAAe,CACrC,KAAK,CAAC,MAAM,CAAC,YAAY,QAAQ,CAAC,MAAM,wCAAwC,CAAC,CAClF,CAAC;YACF,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;gBACvC,OAAO;YACT,CAAC;QACH,CAAC;QAED,MAAM,CAAC,MAAM,CAAC,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,YAAY,QAAQ,CAAC,MAAM,YAAY,MAAM,CAAC,MAAM,aAAa,CAAC,CAAC;QAClG,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * `evalguard eval:local <file>` — Run evaluation locally using @evalguard/core
3
+ * No API key needed. Runs entirely on the user's machine.
4
+ */
5
+ import { Command } from "commander";
6
+ export declare function registerEvalLocal(program: Command): void;
7
+ //# sourceMappingURL=eval-local.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eval-local.d.ts","sourceRoot":"","sources":["../../src/commands/eval-local.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsBpC,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsLxD"}
@@ -0,0 +1,376 @@
1
+ import chalk from "chalk";
2
+ import ora from "ora";
3
+ import * as fs from "fs";
4
+ import * as path from "path";
5
+ export function registerEvalLocal(program) {
6
+ program
7
+ .command("eval:local")
8
+ .description("Run evaluation locally (no API key needed)")
9
+ .argument("[file]", "Path to eval config JSON/YAML file (default: evalguard.yaml)")
10
+ .option("--model <model>", "Override model")
11
+ .option("--provider <provider>", "Override provider (openai, anthropic, etc.)")
12
+ .option("--output <format>", "Output format: json, csv, html, or file path")
13
+ .option("--verbose", "Show detailed output per test case", false)
14
+ .action(async (fileArg, opts) => {
15
+ const core = await import("@evalguard/core");
16
+ const { runEvaluation, BUILT_IN_SCORERS, createProvider, formatJSON, formatCSV, formatHTML } = core;
17
+ const spinner = ora("Loading eval config...").start();
18
+ try {
19
+ // Auto-detect config file
20
+ let file = fileArg ?? "";
21
+ if (!file) {
22
+ const yamlPath = path.join(process.cwd(), "evalguard.yaml");
23
+ const ymlPath = path.join(process.cwd(), "evalguard.yml");
24
+ const jsonPath = path.join(process.cwd(), "evalguard.config.json");
25
+ if (fs.existsSync(yamlPath))
26
+ file = yamlPath;
27
+ else if (fs.existsSync(ymlPath))
28
+ file = ymlPath;
29
+ else if (fs.existsSync(jsonPath))
30
+ file = jsonPath;
31
+ else {
32
+ spinner.fail("No evalguard.yaml found. Run `npx evalguard init` to create one.");
33
+ process.exit(1);
34
+ }
35
+ }
36
+ const filePath = path.resolve(file);
37
+ if (!fs.existsSync(filePath)) {
38
+ spinner.fail(`File not found: ${filePath}`);
39
+ process.exit(1);
40
+ }
41
+ const raw = fs.readFileSync(filePath, "utf-8");
42
+ // Support both JSON and YAML
43
+ let config;
44
+ if (filePath.endsWith(".yaml") || filePath.endsWith(".yml")) {
45
+ // Use JSON if possible, otherwise simple YAML parse
46
+ try {
47
+ // Try requiring js-yaml
48
+ const { createRequire } = await import("module");
49
+ const jsYaml = createRequire(import.meta.url || __filename)("yaml");
50
+ const parsed = jsYaml.parse(raw);
51
+ config = {
52
+ name: parsed.description || parsed.name || path.basename(filePath, path.extname(filePath)),
53
+ prompt: parsed.prompt || parsed.prompts?.[0] || "{{input}}",
54
+ model: parsed.model || "gpt-4o-mini",
55
+ provider: "openai",
56
+ cases: (parsed.cases || parsed.tests || []).map((c) => ({
57
+ input: typeof c === "string" ? c : (c.input || c.vars?.input || JSON.stringify(c)),
58
+ expectedOutput: String(c.expectedOutput ?? c.expected ?? c.assert?.[0]?.value ?? ""),
59
+ })),
60
+ scorers: parsed.scorers || [],
61
+ };
62
+ }
63
+ catch {
64
+ config = parseSimpleYaml(raw);
65
+ }
66
+ }
67
+ else {
68
+ config = JSON.parse(raw);
69
+ }
70
+ const model = opts.model ?? config.model;
71
+ const providerName = opts.provider ?? config.provider ?? detectProvider(model);
72
+ // Resolve API key from env
73
+ const apiKeyEnvMap = {
74
+ openai: "OPENAI_API_KEY",
75
+ anthropic: "ANTHROPIC_API_KEY",
76
+ gemini: "GEMINI_API_KEY",
77
+ mistral: "MISTRAL_API_KEY",
78
+ groq: "GROQ_API_KEY",
79
+ deepseek: "DEEPSEEK_API_KEY",
80
+ cohere: "COHERE_API_KEY",
81
+ together: "TOGETHER_API_KEY",
82
+ fireworks: "FIREWORKS_API_KEY",
83
+ perplexity: "PERPLEXITY_API_KEY",
84
+ xai: "XAI_API_KEY",
85
+ };
86
+ const envKey = apiKeyEnvMap[providerName] ?? `${providerName.toUpperCase().replace(/-/g, "_")}_API_KEY`;
87
+ const apiKey = process.env[envKey] ?? process.env.EVALGUARD_PROVIDER_KEY ?? "";
88
+ if (!apiKey && !["echo", "ollama", "localai", "llamafile", "llamacpp"].includes(providerName)) {
89
+ spinner.fail(`No API key found. Set ${envKey} environment variable.`);
90
+ process.exit(1);
91
+ }
92
+ const provider = createProvider(providerName, apiKey);
93
+ const callLLM = async (prompt) => {
94
+ const response = await provider.chat([{ role: "user", content: prompt }], { model });
95
+ return response.content;
96
+ };
97
+ // Validate scorers
98
+ const invalidScorers = config.scorers.filter((s) => !BUILT_IN_SCORERS[s]);
99
+ if (invalidScorers.length > 0) {
100
+ spinner.warn(`Unknown scorers: ${invalidScorers.join(", ")}. Available: ${Object.keys(BUILT_IN_SCORERS).join(", ")}`);
101
+ }
102
+ spinner.text = `Running ${config.cases.length} cases with ${config.scorers.length} scorers on ${model}...`;
103
+ const result = await runEvaluation({
104
+ model,
105
+ prompt: config.prompt,
106
+ cases: config.cases,
107
+ scorers: config.scorers,
108
+ callLLM,
109
+ scorerOptions: config.scorerOptions,
110
+ });
111
+ spinner.stop();
112
+ // Store results locally for compare/gate/history
113
+ try {
114
+ const { storeRun, generateId } = await import("./store.js");
115
+ const passed = result.cases.filter((c) => c.passed).length;
116
+ storeRun({
117
+ id: generateId(),
118
+ type: "eval",
119
+ name: config.name ?? path.basename(file, ".json"),
120
+ model,
121
+ provider: providerName,
122
+ timestamp: new Date().toISOString(),
123
+ passRate: result.passRate,
124
+ score: result.score,
125
+ maxScore: result.maxScore,
126
+ passed,
127
+ failed: result.cases.length - passed,
128
+ total: result.cases.length,
129
+ latencyMs: result.totalLatency,
130
+ config: file,
131
+ results: result.cases,
132
+ });
133
+ }
134
+ catch { /* store is optional */ }
135
+ // Display results
136
+ const passColor = result.passRate >= 0.8 ? chalk.green : result.passRate >= 0.5 ? chalk.yellow : chalk.red;
137
+ console.log();
138
+ console.log(chalk.bold(` ${config.name ?? path.basename(file, ".json")}`));
139
+ console.log(chalk.dim(` Model: ${model} | Provider: ${providerName}`));
140
+ console.log();
141
+ if (opts.verbose) {
142
+ for (const c of result.cases) {
143
+ const icon = c.passed ? chalk.green("✓") : chalk.red("✗");
144
+ console.log(` ${icon} ${chalk.dim(c.input.slice(0, 60))}${c.input.length > 60 ? "..." : ""}`);
145
+ console.log(` Output: ${chalk.dim(c.actualOutput.slice(0, 80))}${c.actualOutput.length > 80 ? "..." : ""}`);
146
+ for (const [scorer, sr] of Object.entries(c.scorerResults)) {
147
+ const sIcon = sr.passed ? chalk.green("✓") : chalk.red("✗");
148
+ console.log(` ${sIcon} ${scorer}: ${sr.score.toFixed(2)} ${chalk.dim(sr.reason ?? "")}`);
149
+ }
150
+ console.log();
151
+ }
152
+ }
153
+ // Summary
154
+ const passed = result.cases.filter((c) => c.passed).length;
155
+ const failed = result.cases.length - passed;
156
+ console.log(` ${passColor("●")} ${chalk.bold("Results")}: ${chalk.green(`${passed} passed`)}, ${chalk.red(`${failed} failed`)} (${(result.passRate * 100).toFixed(1)}%)`);
157
+ console.log(` ${chalk.dim(`Score: ${result.score.toFixed(2)}/${result.maxScore} | Latency: ${result.totalLatency}ms`)}`);
158
+ console.log();
159
+ // Output file
160
+ if (opts.output) {
161
+ const outputData = buildOutput(config, result);
162
+ writeOutput(opts.output, outputData, formatJSON, formatCSV, formatHTML);
163
+ }
164
+ process.exit(failed > 0 ? 1 : 0);
165
+ }
166
+ catch (err) {
167
+ spinner.fail(`Eval failed: ${err instanceof Error ? err.message : String(err)}`);
168
+ process.exit(1);
169
+ }
170
+ });
171
+ }
172
+ function detectProvider(model) {
173
+ if (model.startsWith("gpt-") || model.startsWith("o1") || model.startsWith("o3"))
174
+ return "openai";
175
+ if (model.startsWith("claude-"))
176
+ return "anthropic";
177
+ if (model.startsWith("gemini-"))
178
+ return "gemini";
179
+ if (model.startsWith("mistral-"))
180
+ return "mistral";
181
+ if (model.includes("llama") || model.includes("mixtral"))
182
+ return "groq";
183
+ if (model.startsWith("deepseek-"))
184
+ return "deepseek";
185
+ if (model.startsWith("command-"))
186
+ return "cohere";
187
+ return "openai";
188
+ }
189
+ function buildOutput(config, result) {
190
+ return {
191
+ description: config.name,
192
+ timestamp: new Date().toISOString(),
193
+ results: result.cases.map((c, i) => ({
194
+ testIndex: i,
195
+ input: c.input,
196
+ output: c.actualOutput,
197
+ expected: c.expectedOutput,
198
+ score: c.score,
199
+ passed: c.passed,
200
+ provider: config.provider ?? "unknown",
201
+ latencyMs: c.latency,
202
+ costUsd: 0,
203
+ assertions: Object.entries(c.scorerResults).map(([type, r]) => ({
204
+ type,
205
+ passed: r.passed,
206
+ score: r.score,
207
+ reason: r.reason,
208
+ })),
209
+ })),
210
+ summary: {
211
+ total: result.cases.length,
212
+ passed: result.cases.filter((c) => c.passed).length,
213
+ failed: result.cases.filter((c) => !c.passed).length,
214
+ passRate: result.passRate,
215
+ duration: result.totalLatency,
216
+ },
217
+ };
218
+ }
219
+ /**
220
+ * Minimal YAML parser for evalguard.yaml configs.
221
+ * Handles the subset of YAML we generate (simple key-value, lists, nested objects).
222
+ * Falls back gracefully for complex YAML.
223
+ */
224
+ function parseSimpleYaml(raw) {
225
+ // Strip comments and parse basic structure
226
+ const lines = raw.split("\n");
227
+ const result = {};
228
+ let currentKey = "";
229
+ let currentList = null;
230
+ let currentObj = null;
231
+ for (const line of lines) {
232
+ const trimmed = line.replace(/#.*$/, "").trimEnd();
233
+ if (!trimmed || trimmed.startsWith("#"))
234
+ continue;
235
+ const indent = line.length - line.trimStart().length;
236
+ // Top-level key: value
237
+ const kvMatch = trimmed.match(/^(\w[\w-]*):\s*(.+)?$/);
238
+ if (kvMatch && indent === 0) {
239
+ if (currentList && currentKey) {
240
+ result[currentKey] = currentList;
241
+ currentList = null;
242
+ }
243
+ currentKey = kvMatch[1];
244
+ const val = kvMatch[2]?.trim();
245
+ if (val && val !== "|") {
246
+ // Remove quotes
247
+ result[currentKey] = val.replace(/^["']|["']$/g, "");
248
+ }
249
+ currentObj = null;
250
+ continue;
251
+ }
252
+ // List item
253
+ if (trimmed.startsWith("- ") || trimmed === "-") {
254
+ if (!currentList)
255
+ currentList = [];
256
+ const listVal = trimmed.slice(2).trim();
257
+ // Inline object: { key: val, key: val }
258
+ if (listVal.startsWith("{") && listVal.endsWith("}")) {
259
+ try {
260
+ // Convert YAML-style inline to JSON
261
+ const jsonStr = listVal.replace(/(\w[\w-]*):/g, '"$1":').replace(/'/g, '"');
262
+ currentList.push(JSON.parse(jsonStr));
263
+ }
264
+ catch {
265
+ currentList.push(listVal);
266
+ }
267
+ }
268
+ else if (listVal && listVal.match(/^\w[\w-]*:\s/)) {
269
+ // "- key: value" — start of object in list
270
+ currentObj = {};
271
+ const kv = listVal.match(/^(\w[\w-]*):\s*(.+)?$/);
272
+ if (kv) {
273
+ const v = kv[2]?.trim().replace(/^["']|["']$/g, "");
274
+ if (v)
275
+ currentObj[kv[1]] = v;
276
+ }
277
+ currentList.push(currentObj);
278
+ }
279
+ else if (listVal) {
280
+ currentList.push(listVal.replace(/^["']|["']$/g, ""));
281
+ }
282
+ else {
283
+ currentObj = {};
284
+ currentList.push(currentObj);
285
+ }
286
+ continue;
287
+ }
288
+ // Nested key under list item
289
+ if (indent >= 4 && currentObj) {
290
+ const nestedKv = trimmed.match(/^(\w[\w-]*):\s*(.+)?$/);
291
+ if (nestedKv) {
292
+ const val = nestedKv[2]?.trim().replace(/^["']|["']$/g, "");
293
+ if (val) {
294
+ currentObj[nestedKv[1]] = val;
295
+ }
296
+ }
297
+ }
298
+ }
299
+ // Flush last list
300
+ if (currentList && currentKey) {
301
+ result[currentKey] = currentList;
302
+ }
303
+ console.log("[DEBUG YAML] Parsed keys:", Object.keys(result), "cases:", Array.isArray(result.cases) ? result.cases.length : "none", "tests:", Array.isArray(result.tests) ? result.tests.length : "none");
304
+ // Map YAML config to LocalEvalConfig
305
+ const providers = result.providers ?? (result.model ? [{ id: "openai:" + result.model }] : undefined);
306
+ const providerStr = providers?.[0]?.id ?? providers?.[0] ?? "openai:gpt-4o-mini";
307
+ const [providerName, modelName] = providerStr.includes(":")
308
+ ? providerStr.split(":")
309
+ : ["openai", providerStr];
310
+ const prompts = result.prompts;
311
+ const prompt = Array.isArray(prompts) ? prompts[0] : (result.prompt ?? "{{input}}");
312
+ // Parse tests
313
+ const tests = (result.tests ?? result.cases) ?? [];
314
+ const cases = tests.map((t) => {
315
+ const input = typeof t === "string" ? t : (t.input ?? JSON.stringify(t.vars ?? t));
316
+ return {
317
+ input,
318
+ expectedOutput: t.expected ?? t.expectedOutput,
319
+ };
320
+ });
321
+ // Support direct scorers list
322
+ const directScorers = result.scorers ?? [];
323
+ if (directScorers.length > 0)
324
+ scorers.push(...directScorers);
325
+ // Extract scorer names from assertions
326
+ const scorers = [];
327
+ for (const t of tests) {
328
+ if (t.assert && Array.isArray(t.assert)) {
329
+ for (const a of t.assert) {
330
+ if (a.type && !scorers.includes(a.type)) {
331
+ scorers.push(a.type);
332
+ }
333
+ }
334
+ }
335
+ }
336
+ if (scorers.length === 0)
337
+ scorers.push("contains");
338
+ return {
339
+ name: result.description ?? "eval",
340
+ description: result.description,
341
+ model: modelName ?? "gpt-4o-mini",
342
+ provider: providerName,
343
+ prompt: typeof prompt === "string" ? prompt : String(prompt),
344
+ scorers,
345
+ cases,
346
+ };
347
+ }
348
+ function writeOutput(output, data, formatJSON, formatCSV, formatHTML) {
349
+ let content;
350
+ let filePath;
351
+ if (output === "json") {
352
+ content = formatJSON(data);
353
+ filePath = "evalguard-results.json";
354
+ }
355
+ else if (output === "csv") {
356
+ content = formatCSV(data);
357
+ filePath = "evalguard-results.csv";
358
+ }
359
+ else if (output === "html") {
360
+ content = formatHTML(data);
361
+ filePath = "evalguard-report.html";
362
+ }
363
+ else {
364
+ // Custom file path — validate against path traversal
365
+ filePath = path.resolve(output);
366
+ const cwd = process.cwd();
367
+ if (!filePath.startsWith(cwd)) {
368
+ console.error(chalk.red(` ✗ Output path must be within the current directory (got ${filePath})`));
369
+ process.exit(1);
370
+ }
371
+ content = output.endsWith(".csv") ? formatCSV(data) : output.endsWith(".html") ? formatHTML(data) : formatJSON(data);
372
+ }
373
+ fs.writeFileSync(filePath, content);
374
+ console.log(` ${chalk.green("✓")} Results saved to ${chalk.cyan(filePath)}`);
375
+ }
376
+ //# sourceMappingURL=eval-local.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eval-local.js","sourceRoot":"","sources":["../../src/commands/eval-local.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAkB7B,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,OAAO;SACJ,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,4CAA4C,CAAC;SACzD,QAAQ,CAAC,QAAQ,EAAE,8DAA8D,CAAC;SAClF,MAAM,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;SAC3C,MAAM,CAAC,uBAAuB,EAAE,6CAA6C,CAAC;SAC9E,MAAM,CAAC,mBAAmB,EAAE,8CAA8C,CAAC;SAC3E,MAAM,CAAC,WAAW,EAAE,oCAAoC,EAAE,KAAK,CAAC;SAChE,MAAM,CAAC,KAAK,EAAE,OAA2B,EAAE,IAA+E,EAAE,EAAE;QAC7H,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAC7C,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAW,CAAC;QAE3G,MAAM,OAAO,GAAG,GAAG,CAAC,wBAAwB,CAAC,CAAC,KAAK,EAAE,CAAC;QAEtD,IAAI,CAAC;YACH,0BAA0B;YAC1B,IAAI,IAAI,GAAG,OAAO,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAAC;gBAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,CAAC,CAAC;gBAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,uBAAuB,CAAC,CAAC;gBACnE,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;oBAAE,IAAI,GAAG,QAAQ,CAAC;qBACxC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;oBAAE,IAAI,GAAG,OAAO,CAAC;qBAC3C,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;oBAAE,IAAI,GAAG,QAAQ,CAAC;qBAC7C,CAAC;oBACJ,OAAO,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;oBACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,IAAI,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;gBAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAE/C,6BAA6B;YAC7B,IAAI,MAAuB,CAAC;YAC5B,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5D,oDAAoD;gBACpD,IAAI,CAAC;oBACH,wBAAwB;oBACxB,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAAC,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;oBACtH,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACjC,MAAM,GAAG;wBACP,IAAI,EAAE,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;wBAC1F,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,WAAW;wBAC3D,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,aAAa;wBACpC,QAAQ,EAAE,QAAQ;wBAClB,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;4BACtD,KAAK,EAAE,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;4BAClF,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;yBACrF,CAAC,CAAC;wBACH,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;qBAC9B,CAAC;gBACJ,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC;YACzC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC;YAE/E,2BAA2B;YAC3B,MAAM,YAAY,GAA2B;gBAC3C,MAAM,EAAE,gBAAgB;gBACxB,SAAS,EAAE,mBAAmB;gBAC9B,MAAM,EAAE,gBAAgB;gBACxB,OAAO,EAAE,iBAAiB;gBAC1B,IAAI,EAAE,cAAc;gBACpB,QAAQ,EAAE,kBAAkB;gBAC5B,MAAM,EAAE,gBAAgB;gBACxB,QAAQ,EAAE,kBAAkB;gBAC5B,SAAS,EAAE,mBAAmB;gBAC9B,UAAU,EAAE,oBAAoB;gBAChC,GAAG,EAAE,aAAa;aACnB,CAAC;YAEF,MAAM,MAAM,GAAG,YAAY,CAAC,YAAY,CAAC,IAAI,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC;YACxG,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE,CAAC;YAE/E,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC9F,OAAO,CAAC,IAAI,CAAC,yBAAyB,MAAM,wBAAwB,CAAC,CAAC;gBACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,QAAQ,GAAG,cAAc,CAAC,YAAmB,EAAE,MAAM,CAAC,CAAC;YAE7D,MAAM,OAAO,GAAG,KAAK,EAAE,MAAc,EAAmB,EAAE;gBACxD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAClC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EACnC,EAAE,KAAK,EAAE,CACV,CAAC;gBACF,OAAO,QAAQ,CAAC,OAAO,CAAC;YAC1B,CAAC,CAAC;YAEF,mBAAmB;YACnB,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;YAClF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,OAAO,CAAC,IAAI,CAAC,oBAAoB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxH,CAAC;YAED,OAAO,CAAC,IAAI,GAAG,WAAW,MAAM,CAAC,KAAK,CAAC,MAAM,eAAe,MAAM,CAAC,OAAO,CAAC,MAAM,eAAe,KAAK,KAAK,CAAC;YAE3G,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;gBACjC,KAAK;gBACL,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO;gBACP,aAAa,EAAE,MAAM,CAAC,aAAa;aACpC,CAAC,CAAC;YAEH,OAAO,CAAC,IAAI,EAAE,CAAC;YAEf,iDAAiD;YACjD,IAAI,CAAC;gBACH,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;gBAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;gBAChE,QAAQ,CAAC;oBACP,EAAE,EAAE,UAAU,EAAE;oBAChB,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;oBACjD,KAAK;oBACL,QAAQ,EAAE,YAAY;oBACtB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,MAAM;oBACN,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM;oBACpC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;oBAC1B,SAAS,EAAE,MAAM,CAAC,YAAY;oBAC9B,MAAM,EAAE,IAAI;oBACZ,OAAO,EAAE,MAAM,CAAC,KAAK;iBACtB,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC,CAAC,uBAAuB,CAAC,CAAC;YAEnC,kBAAkB;YAClB,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;YAE3G,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,KAAK,gBAAgB,YAAY,EAAE,CAAC,CAAC,CAAC;YACxE,OAAO,CAAC,GAAG,EAAE,CAAC;YAEd,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBAC7B,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC/F,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC/G,KAAK,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC;wBAC3D,MAAM,KAAK,GAAI,EAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBACrE,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,IAAI,MAAM,KAAM,EAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAE,EAAU,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;oBAChH,CAAC;oBACD,OAAO,CAAC,GAAG,EAAE,CAAC;gBAChB,CAAC;YACH,CAAC;YAED,UAAU;YACV,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;YAChE,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,GAAG,MAAM,SAAS,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC3K,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,eAAe,MAAM,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1H,OAAO,CAAC,GAAG,EAAE,CAAC;YAEd,cAAc;YACd,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC/C,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;YAC1E,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,gBAAgB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IAClG,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,WAAW,CAAC;IACpD,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,QAAQ,CAAC;IACjD,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,SAAS,CAAC;IACnD,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,MAAM,CAAC;IACxE,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,UAAU,CAAC;IACrD,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,QAAQ,CAAC;IAClD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,WAAW,CAAC,MAAuB,EAAE,MAAW;IACvD,OAAO;QACL,WAAW,EAAE,MAAM,CAAC,IAAI;QACxB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,CAAS,EAAiB,EAAE,CAAC,CAAC;YAC/D,SAAS,EAAE,CAAC;YACZ,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,MAAM,EAAE,CAAC,CAAC,YAAY;YACtB,QAAQ,EAAE,CAAC,CAAC,cAAc;YAC1B,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,SAAS;YACtC,SAAS,EAAE,CAAC,CAAC,OAAO;YACpB,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAgB,EAAE,EAAE,CAAC,CAAC;gBAC7E,IAAI;gBACJ,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,MAAM,EAAE,CAAC,CAAC,MAAM;aACjB,CAAC,CAAC;SACJ,CAAC,CAAC;QACH,OAAO,EAAE;YACP,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;YAC1B,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM;YACxD,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM;YACzD,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,QAAQ,EAAE,MAAM,CAAC,YAAY;SAC9B;KACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,GAAW;IAClC,2CAA2C;IAC3C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAwB,EAAE,CAAC;IACvC,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,IAAI,WAAW,GAAiB,IAAI,CAAC;IACrC,IAAI,UAAU,GAA+B,IAAI,CAAC;IAElD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QACnD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAElD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC;QAErD,uBAAuB;QACvB,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACvD,IAAI,OAAO,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,IAAI,WAAW,IAAI,UAAU,EAAE,CAAC;gBAC9B,MAAM,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC;gBACjC,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;YACD,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YAC/B,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;gBACvB,gBAAgB;gBAChB,MAAM,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YACvD,CAAC;YACD,UAAU,GAAG,IAAI,CAAC;YAClB,SAAS;QACX,CAAC;QAED,YAAY;QACZ,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;YAChD,IAAI,CAAC,WAAW;gBAAE,WAAW,GAAG,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAExC,wCAAwC;YACxC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrD,IAAI,CAAC;oBACH,oCAAoC;oBACpC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;oBAC5E,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBACxC,CAAC;gBAAC,MAAM,CAAC;oBACP,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;iBAAM,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;gBACpD,2CAA2C;gBAC3C,UAAU,GAAG,EAAE,CAAC;gBAChB,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBAClD,IAAI,EAAE,EAAE,CAAC;oBACP,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;oBACpD,IAAI,CAAC;wBAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC/B,CAAC;gBACD,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,CAAC;iBAAM,IAAI,OAAO,EAAE,CAAC;gBACnB,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACN,UAAU,GAAG,EAAE,CAAC;gBAChB,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,CAAC;YACD,SAAS;QACX,CAAC;QAED,6BAA6B;QAC7B,IAAI,MAAM,IAAI,CAAC,IAAI,UAAU,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;YACxD,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;gBAC5D,IAAI,GAAG,EAAE,CAAC;oBACR,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;gBAChC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,kBAAkB;IAClB,IAAI,WAAW,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC;IACnC,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1M,qCAAqC;IACrC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAkB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAC,EAAE,EAAE,SAAS,GAAG,MAAM,CAAC,KAAK,EAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC7G,MAAM,WAAW,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,oBAAoB,CAAC;IACjF,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC;QACzD,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC;QACxB,CAAC,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAE5B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAgB,CAAC;IACxC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,WAAW,CAAC,CAAC;IAEpF,cAAc;IACd,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAU,IAAI,EAAE,CAAC;IAC5D,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;QACjC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;QACnF,OAAO;YACL,KAAK;YACL,cAAc,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,cAAc;SAC/C,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,8BAA8B;IAC9B,MAAM,aAAa,GAAG,MAAM,CAAC,OAAmB,IAAI,EAAE,CAAC;IACvD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;IAE7D,uCAAuC;IACvC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YACxC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;gBACzB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAEnD,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,WAAW,IAAI,MAAM;QAClC,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,KAAK,EAAE,SAAS,IAAI,aAAa;QACjC,QAAQ,EAAE,YAAY;QACtB,MAAM,EAAE,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;QAC5D,OAAO;QACP,KAAK;KACN,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,MAAc,EAAE,IAAgB,EAAE,UAAe,EAAE,SAAc,EAAE,UAAe;IACrG,IAAI,OAAe,CAAC;IACpB,IAAI,QAAgB,CAAC;IAErB,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAC3B,QAAQ,GAAG,wBAAwB,CAAC;IACtC,CAAC;SAAM,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QAC5B,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC1B,QAAQ,GAAG,uBAAuB,CAAC;IACrC,CAAC;SAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QAC7B,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAC3B,QAAQ,GAAG,uBAAuB,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,qDAAqD;QACrD,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,6DAA6D,QAAQ,GAAG,CAAC,CAAC,CAAC;YACnG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACvH,CAAC;IAED,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAChF,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * `evalguard export` — Export eval/scan results in multiple formats
3
+ */
4
+ import { Command } from "commander";
5
+ export declare function registerExport(program: Command): void;
6
+ //# sourceMappingURL=export.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoGpC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2CrD"}