agentic-engineering-harness 0.4.16 → 0.6.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 +159 -189
- package/dist/agents/config.js +2 -0
- package/dist/agents/config.js.map +1 -1
- package/dist/agents/outputContracts.d.ts +1 -0
- package/dist/agents/outputContracts.js +12 -0
- package/dist/agents/outputContracts.js.map +1 -1
- package/dist/agents/parallelism.d.ts +1 -0
- package/dist/agents/parallelism.js +101 -14
- package/dist/agents/parallelism.js.map +1 -1
- package/dist/agents/structuredOutput.js +16 -4
- package/dist/agents/structuredOutput.js.map +1 -1
- package/dist/agents/waveExecutor.d.ts +41 -0
- package/dist/agents/waveExecutor.js +208 -0
- package/dist/agents/waveExecutor.js.map +1 -0
- package/dist/audit/intent.d.ts +20 -0
- package/dist/audit/intent.js +42 -0
- package/dist/audit/intent.js.map +1 -0
- package/dist/audit/run.d.ts +46 -0
- package/dist/audit/run.js +147 -0
- package/dist/audit/run.js.map +1 -0
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/core/config.js +28 -7
- package/dist/core/config.js.map +1 -1
- package/dist/core/controlPlane.d.ts +30 -0
- package/dist/core/controlPlane.js +131 -0
- package/dist/core/controlPlane.js.map +1 -0
- package/dist/core/init.js +13 -5
- package/dist/core/init.js.map +1 -1
- package/dist/core/run.d.ts +21 -0
- package/dist/core/run.js +104 -41
- package/dist/core/run.js.map +1 -1
- package/dist/core/types.d.ts +103 -1
- package/dist/distributed/queue.d.ts +11 -0
- package/dist/distributed/queue.js +140 -0
- package/dist/distributed/queue.js.map +1 -0
- package/dist/distributed/types.d.ts +34 -0
- package/dist/distributed/types.js +2 -0
- package/dist/distributed/types.js.map +1 -0
- package/dist/distributed/worker.d.ts +21 -0
- package/dist/distributed/worker.js +111 -0
- package/dist/distributed/worker.js.map +1 -0
- package/dist/entry.js +219 -46
- package/dist/entry.js.map +1 -1
- package/dist/evals/runner.js +2 -2
- package/dist/evals/runner.js.map +1 -1
- package/dist/evals/statistics.d.ts +38 -0
- package/dist/evals/statistics.js +88 -0
- package/dist/evals/statistics.js.map +1 -0
- package/dist/evidence/graph.d.ts +48 -0
- package/dist/evidence/graph.js +94 -0
- package/dist/evidence/graph.js.map +1 -0
- package/dist/issues/intake.d.ts +1 -1
- package/dist/mcp/benchmark.d.ts +24 -0
- package/dist/mcp/benchmark.js +82 -0
- package/dist/mcp/benchmark.js.map +1 -0
- package/dist/paseo/capabilities.d.ts +24 -0
- package/dist/paseo/capabilities.js +104 -0
- package/dist/paseo/capabilities.js.map +1 -0
- package/dist/paseo/context.d.ts +45 -0
- package/dist/paseo/context.js +153 -0
- package/dist/paseo/context.js.map +1 -0
- package/dist/paseo/start.d.ts +55 -0
- package/dist/paseo/start.js +138 -0
- package/dist/paseo/start.js.map +1 -0
- package/dist/policy/bundles.d.ts +27 -0
- package/dist/policy/bundles.js +129 -0
- package/dist/policy/bundles.js.map +1 -0
- package/dist/security/sandbox.d.ts +12 -0
- package/dist/security/sandbox.js +64 -0
- package/dist/security/sandbox.js.map +1 -0
- package/dist/spec/openspec.d.ts +28 -0
- package/dist/spec/openspec.js +179 -0
- package/dist/spec/openspec.js.map +1 -0
- package/dist/toolchain/resolve.js +54 -90
- package/dist/toolchain/resolve.js.map +1 -1
- package/dist/utils/process.d.ts +1 -0
- package/dist/utils/process.js +6 -1
- package/dist/utils/process.js.map +1 -1
- package/dist/validators/graphify.js +28 -6
- package/dist/validators/graphify.js.map +1 -1
- package/dist/workers/agentPrompt.d.ts +6 -1
- package/dist/workers/agentPrompt.js +118 -34
- package/dist/workers/agentPrompt.js.map +1 -1
- package/dist/workers/paseo.js +53 -19
- package/dist/workers/paseo.js.map +1 -1
- package/dist/workers/podman.js +30 -8
- package/dist/workers/podman.js.map +1 -1
- package/docs/PASEO.md +56 -4
- package/docs/V0.5.1.md +129 -0
- package/docs/V0.5.2.md +180 -0
- package/docs/V0.5.md +116 -0
- package/docs/V0.6.md +148 -0
- package/package.json +3 -3
- package/presets/agents/orchestration.jsonc +37 -0
- package/schemas/project.schema.json +38 -8
- package/skills/engineering-workflow/SKILL.md +113 -81
- package/skills/openspec-authoring/SKILL.md +26 -0
- package/skills/paseo-orchestration/SKILL.md +38 -0
- package/templates/AGENTS.md +40 -15
- package/templates/agents.source.jsonc +1 -1
- package/templates/openspec-config.yaml +24 -0
- package/templates/project.yaml +79 -1
- package/templates/toolchain.yaml +19 -2
package/dist/entry.js
CHANGED
|
@@ -7,11 +7,42 @@ import { compileAgentTopology } from "./agents/compiler.js";
|
|
|
7
7
|
import { compileToolchain, setupToolchain } from "./toolchain/setup.js";
|
|
8
8
|
import { loadToolchainConfig } from "./toolchain/config.js";
|
|
9
9
|
import { resolveToolchain } from "./toolchain/resolve.js";
|
|
10
|
+
import { runDistributedWorkerLoop } from "./distributed/worker.js";
|
|
11
|
+
import { serveDistributedQueue } from "./distributed/queue.js";
|
|
12
|
+
import { resolveOrganizationPolicyBundles } from "./policy/bundles.js";
|
|
13
|
+
import { benchmarkMcpCatalog } from "./mcp/benchmark.js";
|
|
14
|
+
import { buildEvalDashboard, runRepeatedEval } from "./evals/statistics.js";
|
|
15
|
+
import { startPaseoHarness } from "./paseo/start.js";
|
|
16
|
+
import { guardLeadContext } from "./paseo/context.js";
|
|
17
|
+
import { prepareOpenSpecChange, compileOpenSpecChange } from "./spec/openspec.js";
|
|
18
|
+
import { classifyEngineeringIntent, formatEngineeringIntent } from "./audit/intent.js";
|
|
19
|
+
import { runAudit } from "./audit/run.js";
|
|
20
|
+
const VERSION = "0.6.0";
|
|
10
21
|
const args = process.argv.slice(2);
|
|
11
22
|
if (args.length === 1 && ["--version", "-V"].includes(args[0])) {
|
|
12
|
-
console.log(
|
|
23
|
+
console.log(VERSION);
|
|
13
24
|
process.exit(0);
|
|
14
25
|
}
|
|
26
|
+
if (args[0] === "start") {
|
|
27
|
+
await runStart(args.slice(1));
|
|
28
|
+
process.exit(process.exitCode ?? 0);
|
|
29
|
+
}
|
|
30
|
+
if (args[0] === "context" && args[1] === "guard") {
|
|
31
|
+
await runContextGuard(args.slice(2));
|
|
32
|
+
process.exit(process.exitCode ?? 0);
|
|
33
|
+
}
|
|
34
|
+
if (args[0] === "spec" && ["prepare", "compile"].includes(args[1] ?? "")) {
|
|
35
|
+
await runSpec(args.slice(1));
|
|
36
|
+
process.exit(process.exitCode ?? 0);
|
|
37
|
+
}
|
|
38
|
+
if (args[0] === "intent") {
|
|
39
|
+
await runIntent(args.slice(1));
|
|
40
|
+
process.exit(process.exitCode ?? 0);
|
|
41
|
+
}
|
|
42
|
+
if (args[0] === "audit") {
|
|
43
|
+
await runAuditCommand(args.slice(1));
|
|
44
|
+
process.exit(process.exitCode ?? 0);
|
|
45
|
+
}
|
|
15
46
|
if (args[0] === "setup") {
|
|
16
47
|
await runSetup(args.slice(1));
|
|
17
48
|
process.exit(process.exitCode ?? 0);
|
|
@@ -24,7 +55,135 @@ if (args[0] === "init" && args.includes("--setup")) {
|
|
|
24
55
|
await runInitSetup(args.slice(1));
|
|
25
56
|
process.exit(process.exitCode ?? 0);
|
|
26
57
|
}
|
|
58
|
+
if (args[0] === "worker") {
|
|
59
|
+
await runWorker(args.slice(1));
|
|
60
|
+
process.exit(process.exitCode ?? 0);
|
|
61
|
+
}
|
|
62
|
+
if (args[0] === "policy" && args[1] === "sync") {
|
|
63
|
+
await runPolicySync(args.slice(2));
|
|
64
|
+
process.exit(process.exitCode ?? 0);
|
|
65
|
+
}
|
|
66
|
+
if (args[0] === "mcp" && args[1] === "benchmark") {
|
|
67
|
+
await runMcpBenchmark(args.slice(2));
|
|
68
|
+
process.exit(process.exitCode ?? 0);
|
|
69
|
+
}
|
|
70
|
+
if (args[0] === "eval" && ["repeat", "dashboard"].includes(args[1] ?? "")) {
|
|
71
|
+
await runStatisticalEval(args.slice(1));
|
|
72
|
+
process.exit(process.exitCode ?? 0);
|
|
73
|
+
}
|
|
27
74
|
await import("./cli.js");
|
|
75
|
+
async function runStart(argv) {
|
|
76
|
+
const parsed = parseGeneric(argv, new Set(["lead", "title"]), new Set(["new", "resume", "no-web-ui", "no-setup"]));
|
|
77
|
+
if (parsed.positional.length > 1)
|
|
78
|
+
throw new Error(`aeh start accepts at most one project directory, received: ${parsed.positional.join(", ")}`);
|
|
79
|
+
if (parsed.flag("new") && parsed.flag("resume"))
|
|
80
|
+
throw new Error("aeh start cannot combine --new and --resume.");
|
|
81
|
+
const root = path.resolve(parsed.positional[0] ?? ".");
|
|
82
|
+
const config = await loadProjectConfig(root);
|
|
83
|
+
const entry = path.resolve(process.argv[1]);
|
|
84
|
+
const aehCommand = `${JSON.stringify(process.execPath)} ${JSON.stringify(entry)}`;
|
|
85
|
+
const result = await startPaseoHarness(root, config, {
|
|
86
|
+
autoSetup: parsed.flag("no-setup") ? false : undefined,
|
|
87
|
+
webUi: parsed.flag("no-web-ui") ? false : undefined,
|
|
88
|
+
forceNew: parsed.flag("new"),
|
|
89
|
+
resume: parsed.flag("resume"),
|
|
90
|
+
leadAgent: parsed.value("lead"),
|
|
91
|
+
title: parsed.value("title"),
|
|
92
|
+
aehCommand
|
|
93
|
+
});
|
|
94
|
+
console.log(`AEH Paseo ready for ${config.project.name}.`);
|
|
95
|
+
console.log(`daemon=${result.daemonStarted ? "started" : "reused"}`);
|
|
96
|
+
console.log(`session=${result.session}`);
|
|
97
|
+
console.log(`lead=${result.leadAgent}`);
|
|
98
|
+
console.log(`provider=${result.provider}`);
|
|
99
|
+
console.log(`model=${result.model}`);
|
|
100
|
+
if (result.paseoVersion)
|
|
101
|
+
console.log(`paseo=${result.paseoVersion}`);
|
|
102
|
+
console.log(`agentId=${result.agentId}`);
|
|
103
|
+
console.log(`title=${result.title}`);
|
|
104
|
+
console.log(`Open Paseo and continue in '${result.title}'. Engineering operations route through the Harness; normal aeh start creates a fresh lead, while --resume explicitly reuses a compatible one.`);
|
|
105
|
+
}
|
|
106
|
+
async function runContextGuard(argv) {
|
|
107
|
+
const parsed = parseGeneric(argv, new Set(["agent", "brief"]), new Set());
|
|
108
|
+
if (parsed.positional.length > 1)
|
|
109
|
+
throw new Error("aeh context guard accepts at most one project directory.");
|
|
110
|
+
const root = path.resolve(parsed.positional[0] ?? ".");
|
|
111
|
+
const config = await loadProjectConfig(root);
|
|
112
|
+
const agentId = parsed.value("agent") ?? process.env.PASEO_AGENT_ID;
|
|
113
|
+
if (!agentId)
|
|
114
|
+
throw new Error("aeh context guard requires --agent <id> or PASEO_AGENT_ID.");
|
|
115
|
+
const result = await guardLeadContext(root, config, agentId, { brief: parsed.value("brief") });
|
|
116
|
+
console.log(result.state);
|
|
117
|
+
console.log(result.message);
|
|
118
|
+
console.log(JSON.stringify(result, null, 2));
|
|
119
|
+
}
|
|
120
|
+
async function runSpec(argv) {
|
|
121
|
+
const sub = argv[0];
|
|
122
|
+
const parsed = parseGeneric(argv.slice(1), new Set(["title", "change"]), new Set());
|
|
123
|
+
const taskId = parsed.positional[0];
|
|
124
|
+
if (!taskId)
|
|
125
|
+
throw new Error(`aeh spec ${sub} requires <taskId>.`);
|
|
126
|
+
if (parsed.positional.length > 2)
|
|
127
|
+
throw new Error(`aeh spec ${sub} accepts <taskId> and at most one project directory.`);
|
|
128
|
+
const root = path.resolve(parsed.positional[1] ?? ".");
|
|
129
|
+
const title = parsed.value("title");
|
|
130
|
+
if (!title)
|
|
131
|
+
throw new Error(`aeh spec ${sub} requires --title <title>.`);
|
|
132
|
+
const config = await loadProjectConfig(root);
|
|
133
|
+
if (sub === "prepare") {
|
|
134
|
+
const result = await prepareOpenSpecChange(root, config, taskId, title);
|
|
135
|
+
console.log(`OPENSPEC ${result.created ? "CREATED" : "READY"} ${result.changeName}`);
|
|
136
|
+
console.log(`manager=${result.managerAgent}`);
|
|
137
|
+
console.log(`schema=${result.schema}`);
|
|
138
|
+
console.log(`directory=${path.relative(root, result.directory).replaceAll("\\", "/")}`);
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
if (sub === "compile") {
|
|
142
|
+
const result = await compileOpenSpecChange(root, config, taskId, title, parsed.value("change"));
|
|
143
|
+
console.log(`COMPILED ${result.changeName} -> ${taskId}`);
|
|
144
|
+
console.log(`requirements=${result.requirements.join(",")}`);
|
|
145
|
+
console.log(`sourceSha256=${result.sourceSha256}`);
|
|
146
|
+
console.log(`contract=${path.relative(root, result.contractPath).replaceAll("\\", "/")}`);
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
throw new Error(`Unknown spec command '${sub}'. Use prepare or compile.`);
|
|
150
|
+
}
|
|
151
|
+
async function runIntent(argv) {
|
|
152
|
+
const parsed = parseGeneric(argv, new Set(["file", "domain", "risk"]), new Set());
|
|
153
|
+
const request = parsed.positional[0];
|
|
154
|
+
if (!request)
|
|
155
|
+
throw new Error("aeh intent requires a natural-language request.");
|
|
156
|
+
if (parsed.positional.length > 2)
|
|
157
|
+
throw new Error("aeh intent accepts <request> and at most one project directory.");
|
|
158
|
+
const root = path.resolve(parsed.positional[1] ?? ".");
|
|
159
|
+
const config = await loadProjectConfig(root);
|
|
160
|
+
const decision = classifyEngineeringIntent(config, { request, files: parsed.values("file"), domains: parsed.values("domain"), risk: parseRisk(parsed.value("risk")) });
|
|
161
|
+
console.log(formatEngineeringIntent(decision));
|
|
162
|
+
console.log(JSON.stringify(decision, null, 2));
|
|
163
|
+
}
|
|
164
|
+
async function runAuditCommand(argv) {
|
|
165
|
+
const parsed = parseGeneric(argv, new Set(["file", "domain", "risk", "reviewer"]), new Set());
|
|
166
|
+
const request = parsed.positional[0];
|
|
167
|
+
if (!request)
|
|
168
|
+
throw new Error("aeh audit requires a natural-language audit request.");
|
|
169
|
+
if (parsed.positional.length > 2)
|
|
170
|
+
throw new Error("aeh audit accepts <request> and at most one project directory.");
|
|
171
|
+
const root = path.resolve(parsed.positional[1] ?? ".");
|
|
172
|
+
const config = await loadProjectConfig(root);
|
|
173
|
+
const intent = classifyEngineeringIntent(config, { request, files: parsed.values("file"), domains: parsed.values("domain"), risk: parseRisk(parsed.value("risk")), explicitIntent: "audit" });
|
|
174
|
+
if (intent.intent !== "audit")
|
|
175
|
+
throw new Error(`Request did not resolve to AUDIT: ${formatEngineeringIntent(intent)}`);
|
|
176
|
+
const report = await runAudit(root, config, { request, files: parsed.values("file"), domains: parsed.values("domain"), risk: parseRisk(parsed.value("risk")), reviewers: parsed.values("reviewer") });
|
|
177
|
+
console.log(`AUDIT ${report.status} — ${report.auditId}`);
|
|
178
|
+
console.log(`productionSafe=${report.productionSafe}`);
|
|
179
|
+
console.log(`findings critical=${report.counts.critical} high=${report.counts.high} medium=${report.counts.medium} low=${report.counts.low} note=${report.counts.note}`);
|
|
180
|
+
console.log(`debtScore=${report.debtScore}`);
|
|
181
|
+
for (const check of report.validationChecks.filter((item) => item.status !== "PASS" && item.status !== "SKIP"))
|
|
182
|
+
console.log(`validator ${check.status} ${check.id} class=${check.failureClass}: ${check.message}`);
|
|
183
|
+
for (const finding of report.findings)
|
|
184
|
+
console.log(`${finding.severity.toUpperCase()} ${finding.id} ${finding.location.file}: ${finding.evidence}`);
|
|
185
|
+
console.log(`report=.harness/audits/${report.auditId}.json`);
|
|
186
|
+
}
|
|
28
187
|
async function runSetup(argv) {
|
|
29
188
|
const parsed = parse(argv);
|
|
30
189
|
const root = path.resolve(parsed.directory);
|
|
@@ -45,68 +204,82 @@ async function runSetup(argv) {
|
|
|
45
204
|
process.exitCode = 1;
|
|
46
205
|
}
|
|
47
206
|
}
|
|
48
|
-
async function runToolchain(argv) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
207
|
+
async function runToolchain(argv) { const sub = argv[0] ?? "show"; const parsed = parse(argv.slice(1)); const root = path.resolve(parsed.directory); const config = await loadProjectConfig(root); if (sub === "compile") {
|
|
208
|
+
console.log(`Compiled toolchain: ${await compileToolchain(root, config, { profile: parsed.value("profile"), updateLock: parsed.flag("update-lock") })}`);
|
|
209
|
+
return;
|
|
210
|
+
} if (sub === "show") {
|
|
211
|
+
const tc = await loadToolchainConfig(root, config);
|
|
212
|
+
console.log(JSON.stringify(await resolveToolchain(root, config, tc, { profile: parsed.value("profile") }), null, 2));
|
|
213
|
+
return;
|
|
214
|
+
} if (sub === "setup") {
|
|
215
|
+
await runSetup(argv.slice(1));
|
|
216
|
+
return;
|
|
217
|
+
} throw new Error(`Unknown toolchain command '${sub}'. Use compile, show or setup.`); }
|
|
218
|
+
async function runInitSetup(argv) { const without = argv.filter((value) => value !== "--setup"); const parsed = parse(without); const root = path.resolve(parsed.directory); const created = await initializeProject(root); const config = await loadProjectConfig(root); if (config.agents) {
|
|
219
|
+
const compiled = await compileAgentTopology(root, config);
|
|
220
|
+
if (!compiled.ok)
|
|
221
|
+
throw new Error(compiled.issues.join("; "));
|
|
222
|
+
} await compileToolchain(root, config); const setup = await setupToolchain(root, config, { profile: parsed.value("profile"), preferContainers: parsed.flag("prefer-containers") }); console.log(created.length ? `Created: ${created.join(", ")}` : "Harness already initialized."); console.log(`Toolchain ready: profile=${setup.profile}`); }
|
|
223
|
+
async function runWorker(argv) {
|
|
224
|
+
const sub = argv[0] ?? "run";
|
|
225
|
+
const parsed = parseGeneric(argv.slice(1), new Set(["worker-id", "port", "host"]), new Set(["once"]));
|
|
226
|
+
const root = path.resolve(parsed.positional[0] ?? ".");
|
|
52
227
|
const config = await loadProjectConfig(root);
|
|
53
|
-
if (sub === "
|
|
54
|
-
|
|
228
|
+
if (sub === "run") {
|
|
229
|
+
await runDistributedWorkerLoop(root, config, { workerId: parsed.value("worker-id"), once: parsed.flag("once") });
|
|
55
230
|
return;
|
|
56
231
|
}
|
|
57
|
-
if (sub === "
|
|
58
|
-
const
|
|
59
|
-
|
|
232
|
+
if (sub === "serve") {
|
|
233
|
+
const port = Number(parsed.value("port") ?? "8787");
|
|
234
|
+
if (!Number.isInteger(port) || port <= 0 || port > 65535)
|
|
235
|
+
throw new Error("--port must be a valid TCP port.");
|
|
236
|
+
const localConfig = { ...config, distributed: { ...config.distributed, provider: "filesystem" } };
|
|
237
|
+
await serveDistributedQueue(root, localConfig, { port, host: parsed.value("host") });
|
|
238
|
+
console.log(`AEH distributed queue listening on ${parsed.value("host") ?? "127.0.0.1"}:${port}`);
|
|
239
|
+
await new Promise(() => undefined);
|
|
60
240
|
return;
|
|
61
241
|
}
|
|
62
|
-
|
|
63
|
-
await runSetup(argv.slice(1));
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
throw new Error(`Unknown toolchain command '${sub}'. Use compile, show or setup.`);
|
|
242
|
+
throw new Error(`Unknown worker command '${sub}'. Use run or serve.`);
|
|
67
243
|
}
|
|
68
|
-
async function
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
const
|
|
73
|
-
const
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
}
|
|
84
|
-
function parse(argv) {
|
|
85
|
-
const valueFlags = new Set(["profile"]);
|
|
86
|
-
const booleanFlags = new Set(["dry-run", "update-lock", "skip-project-deps", "prefer-containers"]);
|
|
244
|
+
async function runPolicySync(argv) { const parsed = parseGeneric(argv, new Set(), new Set()); const root = path.resolve(parsed.positional[0] ?? "."); const config = await loadProjectConfig(root); const resolution = await resolveOrganizationPolicyBundles(root, config); console.log(JSON.stringify(resolution, null, 2)); if (resolution.issues.length && config.organization?.policyBundles?.required)
|
|
245
|
+
process.exitCode = 1; }
|
|
246
|
+
async function runMcpBenchmark(argv) { const parsed = parseGeneric(argv, new Set(["server"]), new Set()); const root = path.resolve(parsed.positional[0] ?? "."); const config = await loadProjectConfig(root); const servers = parsed.values("server"); console.log(JSON.stringify(await benchmarkMcpCatalog(root, config, servers.length ? servers : undefined), null, 2)); }
|
|
247
|
+
async function runStatisticalEval(argv) { const sub = argv[0]; const parsed = parseGeneric(argv.slice(1), new Set(["variant", "runs"]), new Set()); const caseId = parsed.positional[0]; if (!caseId)
|
|
248
|
+
throw new Error(`aeh eval ${sub} requires <caseId>.`); const root = path.resolve(parsed.positional[1] ?? "."); const config = await loadProjectConfig(root); if (sub === "repeat") {
|
|
249
|
+
const runs = parsed.value("runs") ? Number(parsed.value("runs")) : undefined;
|
|
250
|
+
console.log(JSON.stringify(await runRepeatedEval(root, config, caseId, parsed.value("variant"), runs), null, 2));
|
|
251
|
+
return;
|
|
252
|
+
} console.log(JSON.stringify(await buildEvalDashboard(root, config, caseId), null, 2)); }
|
|
253
|
+
function parseRisk(value) { if (!value)
|
|
254
|
+
return "low"; if (value === "low" || value === "medium" || value === "high")
|
|
255
|
+
return value; throw new Error(`Invalid risk '${value}'. Use low, medium or high.`); }
|
|
256
|
+
function parse(argv) { const parsed = parseGeneric(argv, new Set(["profile"]), new Set(["dry-run", "update-lock", "skip-project-deps", "prefer-containers"])); if (parsed.positional.length > 1)
|
|
257
|
+
throw new Error(`Expected at most one project directory, received: ${parsed.positional.join(", ")}`); return { directory: parsed.positional[0] ?? ".", flag: parsed.flag, value: parsed.value }; }
|
|
258
|
+
function parseGeneric(argv, valueFlags, booleanFlags) {
|
|
87
259
|
const flags = new Map();
|
|
88
260
|
const positional = [];
|
|
89
|
-
for (let i = 0; i < argv.length; i
|
|
90
|
-
const
|
|
91
|
-
if (!
|
|
92
|
-
positional.push(
|
|
261
|
+
for (let i = 0; i < argv.length; i += 1) {
|
|
262
|
+
const token = argv[i];
|
|
263
|
+
if (!token.startsWith("--")) {
|
|
264
|
+
positional.push(token);
|
|
93
265
|
continue;
|
|
94
266
|
}
|
|
95
|
-
const name =
|
|
267
|
+
const name = token.slice(2);
|
|
96
268
|
if (valueFlags.has(name)) {
|
|
97
269
|
const next = argv[++i];
|
|
98
270
|
if (!next || next.startsWith("--"))
|
|
99
271
|
throw new Error(`--${name} requires a value.`);
|
|
100
|
-
flags.
|
|
272
|
+
const list = flags.get(name) ?? [];
|
|
273
|
+
list.push(next);
|
|
274
|
+
flags.set(name, list);
|
|
101
275
|
continue;
|
|
102
276
|
}
|
|
103
277
|
if (!booleanFlags.has(name))
|
|
104
|
-
throw new Error(`Unknown
|
|
105
|
-
flags.
|
|
278
|
+
throw new Error(`Unknown option --${name}.`);
|
|
279
|
+
const list = flags.get(name) ?? [];
|
|
280
|
+
list.push(true);
|
|
281
|
+
flags.set(name, list);
|
|
106
282
|
}
|
|
107
|
-
|
|
108
|
-
throw new Error(`Expected at most one project directory, received: ${positional.join(", ")}`);
|
|
109
|
-
const directory = positional[0] ?? ".";
|
|
110
|
-
return { directory, flag: (name) => flags.get(name) === true, value: (name) => typeof flags.get(name) === "string" ? flags.get(name) : undefined };
|
|
283
|
+
return { positional, flag: (name) => flags.get(name)?.includes(true) ?? false, value: (name) => { const found = flags.get(name)?.find((item) => typeof item === "string"); return found; }, values: (name) => (flags.get(name) ?? []).filter((item) => typeof item === "string") };
|
|
111
284
|
}
|
|
112
285
|
//# sourceMappingURL=entry.js.map
|
package/dist/entry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry.js","sourceRoot":"","sources":["../src/entry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"entry.js","sourceRoot":"","sources":["../src/entry.ts"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACvF,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,MAAM,OAAO,GAAG,OAAO,CAAC;AACxB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAAC,CAAC;AAE1G,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;IAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;AAAC,CAAC;AAChG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;IAAC,MAAM,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;AAAC,CAAC;AAChI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;IAAC,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;AAAC,CAAC;AAChJ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;IAAC,MAAM,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;AAAC,CAAC;AAClG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;IAAC,MAAM,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;AAAC,CAAC;AACvG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;IAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;AAAC,CAAC;AAChG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC;IAAC,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;AAAC,CAAC;AACxG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;IAAC,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;AAAC,CAAC;AAC/H,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;IAAC,MAAM,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;AAAC,CAAC;AAClG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;IAAC,MAAM,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;AAAC,CAAC;AAC5H,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC;IAAC,MAAM,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;AAAC,CAAC;AAChI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;IAAC,MAAM,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;AAAC,CAAC;AAE5J,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;AAEzB,KAAK,UAAU,QAAQ,CAAC,IAAc;IACpC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACnH,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,8DAA8D,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChJ,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACjH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;IAClF,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE;QACnD,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QACtD,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QACnD,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QAC5B,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC7B,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QAC/B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;QAC5B,UAAU;KACX,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,uBAAuB,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,QAAQ,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IACrC,IAAI,MAAM,CAAC,YAAY;QAAE,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,+BAA+B,MAAM,CAAC,KAAK,gJAAgJ,CAAC,CAAC;AAC3M,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,IAAc;IAC3C,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;IAC1E,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9G,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IACpE,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAC5F,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/F,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,IAAc;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;IACpF,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACpC,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,YAAY,GAAG,qBAAqB,CAAC,CAAC;IACnE,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,YAAY,GAAG,sDAAsD,CAAC,CAAC;IACzH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,YAAY,GAAG,4BAA4B,CAAC,CAAC;IACzE,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QACrF,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACxF,OAAO;IACT,CAAC;IACD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChG,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,UAAU,OAAO,MAAM,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1F,OAAO;IACT,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,4BAA4B,CAAC,CAAC;AAC5E,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,IAAc;IACrC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;IAClF,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACrC,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACjF,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACrH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,yBAAyB,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IACvK,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,IAAc;IAC3C,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;IAC9F,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACrC,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IACtF,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACpH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,yBAAyB,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9L,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACtM,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,MAAM,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,MAAM,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,CAAC,IAAI,WAAW,MAAM,CAAC,MAAM,CAAC,MAAM,QAAQ,MAAM,CAAC,MAAM,CAAC,GAAG,SAAS,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACzK,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IAC7C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,EAAE,UAAU,KAAK,CAAC,YAAY,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACnN,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ;QAAE,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACpJ,OAAO,CAAC,GAAG,CAAC,0BAA0B,MAAM,CAAC,OAAO,OAAO,CAAC,CAAC;AAC/D,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,IAAc;IACpC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IAAC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAAC,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACtH,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,uBAAuB,EAAE,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;IAC/Q,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,sBAAsB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAAC,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;IAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAAC,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IAAC,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM;QAAE,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAAC,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM;QAAE,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAAC,IAAI,MAAM,CAAC,yBAAyB,CAAC,MAAM;QAAE,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAAC,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IAAC,CAAC;AACtoB,CAAC;AACD,KAAK,UAAU,YAAY,CAAC,IAAc,IAAmB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;IAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,MAAM,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAAC,OAAO;AAAC,CAAC,CAAC,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAAC,OAAO;AAAC,CAAC,CAAC,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;IAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,OAAO;AAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,gCAAgC,CAAC,CAAC,CAAC,CAAC;AACxvB,KAAK,UAAU,YAAY,CAAC,IAAc,IAAmB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;IAAC,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAAC,CAAC,CAAC,MAAM,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AAElwB,KAAK,UAAU,SAAS,CAAC,IAAc;IACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;IAAC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAAC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;IAAC,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1O,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;QAAC,MAAM,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IAChJ,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;QAAC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,CAAC;QAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAAC,MAAM,WAAW,GAAG,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,EAAE,GAAG,MAAM,CAAC,WAAW,EAAE,QAAQ,EAAE,YAAqB,EAAE,EAAE,CAAC;QAAC,MAAM,qBAAqB,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAAC,OAAO,CAAC,GAAG,CAAC,sCAAsC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC,CAAC;QAAC,MAAM,IAAI,OAAO,CAAO,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IAClhB,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,sBAAsB,CAAC,CAAC;AACxE,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,IAAc,IAAmB,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,UAAU,GAAG,MAAM,gCAAgC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,YAAY,EAAE,aAAa,EAAE,QAAQ;IAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7b,KAAK,UAAU,eAAe,CAAC,IAAc,IAAmB,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxY,KAAK,UAAU,kBAAkB,CAAC,IAAc,IAAmB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;IAAE,MAAM,IAAI,KAAK,CAAC,YAAY,GAAG,qBAAqB,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;IAAC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAAC,OAAO;AAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAErrB,SAAS,SAAS,CAAC,KAAc,IAAc,IAAI,CAAC,KAAK;IAAE,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,MAAM;IAAE,OAAO,KAAK,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,iBAAiB,KAAK,6BAA6B,CAAC,CAAC,CAAC,CAAC;AAC7N,SAAS,KAAK,CAAC,IAAc,IAAiG,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,mBAAmB,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;IAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC1e,SAAS,YAAY,CAAC,IAAc,EAAE,UAAuB,EAAE,YAAyB;IACtF,MAAM,KAAK,GAAG,IAAI,GAAG,EAAgC,CAAC;IAAC,MAAM,UAAU,GAAa,EAAE,CAAC;IACvF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAAC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QAAC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAAC,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAAC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,KAAK,IAAI,oBAAoB,CAAC,CAAC;YAAC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,GAAG,CAAC,CAAC;QAAC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAAC,CAAC;IAC1hB,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;AACrT,CAAC"}
|
package/dist/evals/runner.js
CHANGED
|
@@ -77,9 +77,9 @@ export async function compareEvalCase(root, config, caseId) {
|
|
|
77
77
|
const dir = path.resolve(root, config.evals?.resultsDir ?? ".harness/evals/results", safe(caseId));
|
|
78
78
|
const files = await fs.readdir(dir).catch(() => []);
|
|
79
79
|
const results = [];
|
|
80
|
-
for (const file of files.filter((name) => name.endsWith(".json"))) {
|
|
80
|
+
for (const file of files.filter((name) => name.endsWith(".json") && name !== "dashboard.json")) {
|
|
81
81
|
const value = await readJson(path.join(dir, file));
|
|
82
|
-
if (value?.caseId === caseId)
|
|
82
|
+
if (value?.caseId === caseId && typeof value.variant === "string" && typeof value.score === "number" && (value.status === "PASS" || value.status === "FAIL"))
|
|
83
83
|
results.push(value);
|
|
84
84
|
}
|
|
85
85
|
return rankEvalResults(results);
|
package/dist/evals/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/evals/runner.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/evals/runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { HarnessProjectConfig } from "../core/types.js";
|
|
2
|
+
import type { EvalResult } from "./types.js";
|
|
3
|
+
export interface ConfidenceInterval {
|
|
4
|
+
low: number;
|
|
5
|
+
high: number;
|
|
6
|
+
level: number;
|
|
7
|
+
}
|
|
8
|
+
export interface MetricSummary {
|
|
9
|
+
count: number;
|
|
10
|
+
mean: number;
|
|
11
|
+
median: number;
|
|
12
|
+
standardDeviation: number;
|
|
13
|
+
confidence: ConfidenceInterval;
|
|
14
|
+
}
|
|
15
|
+
export interface VariantStatistics {
|
|
16
|
+
variant: string;
|
|
17
|
+
runs: number;
|
|
18
|
+
passRate: number;
|
|
19
|
+
passRateConfidence: ConfidenceInterval;
|
|
20
|
+
score: MetricSummary;
|
|
21
|
+
durationMs?: MetricSummary;
|
|
22
|
+
totalTokens?: MetricSummary;
|
|
23
|
+
costUsd?: MetricSummary;
|
|
24
|
+
repairs?: MetricSummary;
|
|
25
|
+
humanInterventions?: MetricSummary;
|
|
26
|
+
}
|
|
27
|
+
export interface EvalDashboard {
|
|
28
|
+
version: 1;
|
|
29
|
+
caseId: string;
|
|
30
|
+
generatedAt: string;
|
|
31
|
+
confidenceLevel: number;
|
|
32
|
+
variants: VariantStatistics[];
|
|
33
|
+
}
|
|
34
|
+
export declare function runRepeatedEval(root: string, config: HarnessProjectConfig, caseId: string, variant: string | undefined, runs?: number): Promise<EvalDashboard>;
|
|
35
|
+
export declare function buildEvalDashboard(root: string, config: HarnessProjectConfig, caseId: string): Promise<EvalDashboard>;
|
|
36
|
+
export declare function aggregateVariant(variant: string, results: EvalResult[], level?: number): VariantStatistics;
|
|
37
|
+
export declare function summarize(values: number[], level?: number): MetricSummary;
|
|
38
|
+
export declare function wilson(successes: number, count: number, level?: number): ConfidenceInterval;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { runEvalCase, compareEvalCase } from "./runner.js";
|
|
4
|
+
export async function runRepeatedEval(root, config, caseId, variant, runs) {
|
|
5
|
+
const count = runs ?? config.evals?.defaultRuns ?? 5;
|
|
6
|
+
if (count < 2)
|
|
7
|
+
throw new Error("Repeated evals require at least two runs to estimate variance.");
|
|
8
|
+
for (let index = 0; index < count; index += 1)
|
|
9
|
+
await runEvalCase(root, config, caseId, variant);
|
|
10
|
+
return buildEvalDashboard(root, config, caseId);
|
|
11
|
+
}
|
|
12
|
+
export async function buildEvalDashboard(root, config, caseId) {
|
|
13
|
+
const results = await compareEvalCase(root, config, caseId);
|
|
14
|
+
const confidenceLevel = config.evals?.confidenceLevel ?? 0.95;
|
|
15
|
+
const groups = new Map();
|
|
16
|
+
for (const result of results) {
|
|
17
|
+
const items = groups.get(result.variant) ?? [];
|
|
18
|
+
items.push(result);
|
|
19
|
+
groups.set(result.variant, items);
|
|
20
|
+
}
|
|
21
|
+
const variants = [...groups.entries()].map(([variant, items]) => aggregateVariant(variant, items, confidenceLevel)).sort((a, b) => b.passRate - a.passRate || b.score.mean - a.score.mean || a.variant.localeCompare(b.variant));
|
|
22
|
+
const dashboard = { version: 1, caseId, generatedAt: new Date().toISOString(), confidenceLevel, variants };
|
|
23
|
+
const output = path.resolve(root, config.evals?.resultsDir ?? ".harness/evals/results", caseId, "dashboard.json");
|
|
24
|
+
await fs.mkdir(path.dirname(output), { recursive: true });
|
|
25
|
+
await fs.writeFile(output, `${JSON.stringify(dashboard, null, 2)}\n`);
|
|
26
|
+
return dashboard;
|
|
27
|
+
}
|
|
28
|
+
export function aggregateVariant(variant, results, level = 0.95) {
|
|
29
|
+
const passes = results.filter((result) => result.status === "PASS").length;
|
|
30
|
+
const metric = (select) => { const values = results.map(select).filter((value) => Number.isFinite(value)); return values.length ? summarize(values, level) : undefined; };
|
|
31
|
+
return {
|
|
32
|
+
variant,
|
|
33
|
+
runs: results.length,
|
|
34
|
+
passRate: results.length ? passes / results.length : 0,
|
|
35
|
+
passRateConfidence: wilson(passes, results.length, level),
|
|
36
|
+
score: summarize(results.map((result) => result.score), level),
|
|
37
|
+
durationMs: metric((result) => result.metrics?.durationMs),
|
|
38
|
+
totalTokens: metric((result) => result.metrics?.usage.totalTokens),
|
|
39
|
+
costUsd: metric((result) => result.metrics?.usage.costUsd),
|
|
40
|
+
repairs: metric((result) => result.metrics?.repairCount),
|
|
41
|
+
humanInterventions: metric((result) => result.metrics?.humanInterventions)
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export function summarize(values, level = 0.95) {
|
|
45
|
+
const sorted = [...values].sort((a, b) => a - b);
|
|
46
|
+
const count = sorted.length;
|
|
47
|
+
const mean = sorted.reduce((sum, value) => sum + value, 0) / count;
|
|
48
|
+
const variance = count > 1 ? sorted.reduce((sum, value) => sum + (value - mean) ** 2, 0) / (count - 1) : 0;
|
|
49
|
+
const standardDeviation = Math.sqrt(variance);
|
|
50
|
+
const median = count % 2 ? sorted[(count - 1) / 2] : (sorted[count / 2 - 1] + sorted[count / 2]) / 2;
|
|
51
|
+
const z = inverseNormal(0.5 + level / 2);
|
|
52
|
+
const margin = count > 1 ? z * standardDeviation / Math.sqrt(count) : 0;
|
|
53
|
+
return { count, mean, median, standardDeviation, confidence: { low: mean - margin, high: mean + margin, level } };
|
|
54
|
+
}
|
|
55
|
+
export function wilson(successes, count, level = 0.95) {
|
|
56
|
+
if (!count)
|
|
57
|
+
return { low: 0, high: 1, level };
|
|
58
|
+
const z = inverseNormal(0.5 + level / 2);
|
|
59
|
+
const p = successes / count;
|
|
60
|
+
const z2 = z * z;
|
|
61
|
+
const denominator = 1 + z2 / count;
|
|
62
|
+
const center = (p + z2 / (2 * count)) / denominator;
|
|
63
|
+
const margin = z * Math.sqrt((p * (1 - p) + z2 / (4 * count)) / count) / denominator;
|
|
64
|
+
return { low: Math.max(0, center - margin), high: Math.min(1, center + margin), level };
|
|
65
|
+
}
|
|
66
|
+
// Peter J. Acklam's rational approximation, sufficient for confidence reporting.
|
|
67
|
+
function inverseNormal(p) {
|
|
68
|
+
if (!(p > 0 && p < 1))
|
|
69
|
+
throw new Error("Normal quantile requires 0 < p < 1.");
|
|
70
|
+
const a = [-39.69683028665376, 220.9460984245205, -275.9285104469687, 138.357751867269, -30.66479806614716, 2.506628277459239];
|
|
71
|
+
const b = [-54.47609879822406, 161.5858368580409, -155.6989798598866, 66.80131188771972, -13.28068155288572];
|
|
72
|
+
const c = [-0.007784894002430293, -0.3223964580411365, -2.400758277161838, -2.549732539343734, 4.374664141464968, 2.938163982698783];
|
|
73
|
+
const d = [0.007784695709041462, 0.3224671290700398, 2.445134137142996, 3.754408661907416];
|
|
74
|
+
const low = 0.02425;
|
|
75
|
+
const high = 1 - low;
|
|
76
|
+
if (p < low) {
|
|
77
|
+
const q = Math.sqrt(-2 * Math.log(p));
|
|
78
|
+
return (((((c[0] * q + c[1]) * q + c[2]) * q + c[3]) * q + c[4]) * q + c[5]) / ((((d[0] * q + d[1]) * q + d[2]) * q + d[3]) * q + 1);
|
|
79
|
+
}
|
|
80
|
+
if (p > high) {
|
|
81
|
+
const q = Math.sqrt(-2 * Math.log(1 - p));
|
|
82
|
+
return -(((((c[0] * q + c[1]) * q + c[2]) * q + c[3]) * q + c[4]) * q + c[5]) / ((((d[0] * q + d[1]) * q + d[2]) * q + d[3]) * q + 1);
|
|
83
|
+
}
|
|
84
|
+
const q = p - 0.5;
|
|
85
|
+
const r = q * q;
|
|
86
|
+
return (((((a[0] * r + a[1]) * r + a[2]) * r + a[3]) * r + a[4]) * r + a[5]) * q / (((((b[0] * r + b[1]) * r + b[2]) * r + b[3]) * r + b[4]) * r + 1);
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=statistics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statistics.js","sourceRoot":"","sources":["../../src/evals/statistics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { NormalizedFinding, PlannerOutput } from "../agents/outputContracts.js";
|
|
2
|
+
import type { DeliveryFinalizationResult } from "../delivery/finalize.js";
|
|
3
|
+
import type { HarnessProjectConfig, TaskContract, ValidationCheck, ValidationReport, WorkerSession } from "../core/types.js";
|
|
4
|
+
export type EvidenceNodeType = "run" | "requirement" | "task" | "file" | "check" | "finding" | "agent-session" | "commit" | "pull-request";
|
|
5
|
+
export interface EvidenceNode {
|
|
6
|
+
id: string;
|
|
7
|
+
type: EvidenceNodeType;
|
|
8
|
+
label: string;
|
|
9
|
+
data?: Record<string, unknown>;
|
|
10
|
+
}
|
|
11
|
+
export interface EvidenceEdge {
|
|
12
|
+
from: string;
|
|
13
|
+
to: string;
|
|
14
|
+
type: "contains" | "implemented-by" | "changed" | "validated-by" | "reported-by" | "located-in" | "produced" | "finalized-as" | "delivered-by";
|
|
15
|
+
}
|
|
16
|
+
export interface RequirementCoverage {
|
|
17
|
+
requirementId: string;
|
|
18
|
+
implementation: boolean;
|
|
19
|
+
validation: boolean;
|
|
20
|
+
passingValidators: string[];
|
|
21
|
+
missingValidators: string[];
|
|
22
|
+
files: string[];
|
|
23
|
+
tasks: string[];
|
|
24
|
+
complete: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface RequirementEvidenceGraph {
|
|
27
|
+
version: 1;
|
|
28
|
+
taskId: string;
|
|
29
|
+
createdAt: string;
|
|
30
|
+
nodes: EvidenceNode[];
|
|
31
|
+
edges: EvidenceEdge[];
|
|
32
|
+
requirements: RequirementCoverage[];
|
|
33
|
+
complete: boolean;
|
|
34
|
+
reasons: string[];
|
|
35
|
+
sha256: string;
|
|
36
|
+
}
|
|
37
|
+
export declare function buildRequirementEvidenceGraph(input: {
|
|
38
|
+
root: string;
|
|
39
|
+
stateRoot?: string;
|
|
40
|
+
config: HarnessProjectConfig;
|
|
41
|
+
contract: TaskContract;
|
|
42
|
+
report: ValidationReport;
|
|
43
|
+
plan?: PlannerOutput;
|
|
44
|
+
findings?: NormalizedFinding[];
|
|
45
|
+
sessions?: WorkerSession[];
|
|
46
|
+
delivery?: DeliveryFinalizationResult;
|
|
47
|
+
}): Promise<RequirementEvidenceGraph>;
|
|
48
|
+
export declare function evidenceValidationCheck(graph: RequirementEvidenceGraph, config: HarnessProjectConfig): ValidationCheck;
|