vskill 0.5.11 → 0.5.13
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/dist/commands/eval/credentials.d.ts +12 -0
- package/dist/commands/eval/credentials.js +140 -0
- package/dist/commands/eval/credentials.js.map +1 -0
- package/dist/commands/eval/generate-all.d.ts +1 -1
- package/dist/commands/eval/generate-all.js +57 -12
- package/dist/commands/eval/generate-all.js.map +1 -1
- package/dist/commands/eval/init.d.ts +2 -1
- package/dist/commands/eval/init.js +76 -10
- package/dist/commands/eval/init.js.map +1 -1
- package/dist/commands/eval/run.d.ts +7 -1
- package/dist/commands/eval/run.js +207 -26
- package/dist/commands/eval/run.js.map +1 -1
- package/dist/commands/eval/sweep.d.ts +7 -0
- package/dist/commands/eval/sweep.js +99 -0
- package/dist/commands/eval/sweep.js.map +1 -0
- package/dist/commands/eval.d.ts +10 -0
- package/dist/commands/eval.js +62 -4
- package/dist/commands/eval.js.map +1 -1
- package/dist/eval/batch-judge.d.ts +27 -0
- package/dist/eval/batch-judge.js +242 -0
- package/dist/eval/batch-judge.js.map +1 -0
- package/dist/eval/chrome-profile.d.ts +16 -0
- package/dist/eval/chrome-profile.js +65 -0
- package/dist/eval/chrome-profile.js.map +1 -0
- package/dist/eval/comparator.d.ts +3 -1
- package/dist/eval/comparator.js +19 -3
- package/dist/eval/comparator.js.map +1 -1
- package/dist/eval/concurrency.d.ts +13 -0
- package/dist/eval/concurrency.js +53 -0
- package/dist/eval/concurrency.js.map +1 -0
- package/dist/eval/credential-resolver.d.ts +31 -0
- package/dist/eval/credential-resolver.js +111 -0
- package/dist/eval/credential-resolver.js.map +1 -0
- package/dist/eval/integration-runner.d.ts +12 -0
- package/dist/eval/integration-runner.js +303 -0
- package/dist/eval/integration-runner.js.map +1 -0
- package/dist/eval/integration-types.d.ts +65 -0
- package/dist/eval/integration-types.js +18 -0
- package/dist/eval/integration-types.js.map +1 -0
- package/dist/eval/judge-cache.d.ts +29 -0
- package/dist/eval/judge-cache.js +109 -0
- package/dist/eval/judge-cache.js.map +1 -0
- package/dist/eval/judge.d.ts +1 -1
- package/dist/eval/judge.js +20 -3
- package/dist/eval/judge.js.map +1 -1
- package/dist/eval/llm.d.ts +2 -1
- package/dist/eval/llm.js +54 -2
- package/dist/eval/llm.js.map +1 -1
- package/dist/eval/prompt-builder.d.ts +10 -0
- package/dist/eval/prompt-builder.js +167 -0
- package/dist/eval/prompt-builder.js.map +1 -1
- package/dist/eval/rate-limiter.d.ts +20 -0
- package/dist/eval/rate-limiter.js +62 -0
- package/dist/eval/rate-limiter.js.map +1 -0
- package/dist/eval/schema.d.ts +16 -0
- package/dist/eval/schema.js +58 -6
- package/dist/eval/schema.js.map +1 -1
- package/dist/eval/verdict.d.ts +9 -0
- package/dist/eval/verdict.js +50 -0
- package/dist/eval/verdict.js.map +1 -1
- package/dist/eval-server/api-routes.js +99 -3
- package/dist/eval-server/api-routes.js.map +1 -1
- package/dist/eval-server/benchmark-runner.d.ts +7 -0
- package/dist/eval-server/benchmark-runner.js +158 -42
- package/dist/eval-server/benchmark-runner.js.map +1 -1
- package/dist/eval-server/concurrency.d.ts +1 -13
- package/dist/eval-server/concurrency.js +3 -49
- package/dist/eval-server/concurrency.js.map +1 -1
- package/dist/eval-server/eval-server.js +4 -0
- package/dist/eval-server/eval-server.js.map +1 -1
- package/dist/eval-server/integration-routes.d.ts +2 -0
- package/dist/eval-server/integration-routes.js +100 -0
- package/dist/eval-server/integration-routes.js.map +1 -0
- package/dist/eval-server/skill-create-routes.js +151 -22
- package/dist/eval-server/skill-create-routes.js.map +1 -1
- package/dist/eval-server/sweep-routes.d.ts +2 -0
- package/dist/eval-server/sweep-routes.js +93 -0
- package/dist/eval-server/sweep-routes.js.map +1 -0
- package/dist/eval-server/sweep-runner.d.ts +93 -0
- package/dist/eval-server/sweep-runner.js +275 -0
- package/dist/eval-server/sweep-runner.js.map +1 -0
- package/dist/eval-ui/assets/index-C9_Pey9T.css +1 -0
- package/dist/eval-ui/assets/index-KfkLPyh3.js +74 -0
- package/dist/eval-ui/index.html +2 -2
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/eval-ui/assets/index-CxHCKEhf.js +0 -74
- package/dist/eval-ui/assets/index-D2UkOol1.css +0 -1
|
@@ -185,9 +185,8 @@ function checkSkillCreatorInstalled() {
|
|
|
185
185
|
// ---------------------------------------------------------------------------
|
|
186
186
|
// AI skill generation
|
|
187
187
|
// ---------------------------------------------------------------------------
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
## Skill Studio Best Practices
|
|
188
|
+
// Shared best practices block used by both body and eval prompts
|
|
189
|
+
const SKILL_STUDIO_BEST_PRACTICES = `## Skill Studio Best Practices
|
|
191
190
|
|
|
192
191
|
### SKILL.md Anatomy
|
|
193
192
|
Every skill has YAML frontmatter (description required, name/model/allowed-tools optional) and a markdown body with instructions.
|
|
@@ -231,7 +230,68 @@ When a skill includes allowed-tools: Bash (or Read, Write, Edit), the skill body
|
|
|
231
230
|
- Open with an explicit execution directive: "Execute each step immediately. Run Bash commands directly — do not ask for permission or describe plans."
|
|
232
231
|
- Use "Step N — [action verb]. Run this immediately:" headers, not "Step N: [noun] Discovery"
|
|
233
232
|
- Every step must end with a concrete, complete, copy-pasteable code block — not prose describing what the code would do
|
|
234
|
-
- Include any variable values (paths, URLs, flags) directly in the code block, not as placeholders
|
|
233
|
+
- Include any variable values (paths, URLs, flags) directly in the code block, not as placeholders`;
|
|
234
|
+
const BODY_SYSTEM_PROMPT = `You are an expert AI skill engineer in Skill Studio. Given a user's description of what a skill should do, generate the SKILL.md body and metadata (NOT evals).
|
|
235
|
+
|
|
236
|
+
${SKILL_STUDIO_BEST_PRACTICES}
|
|
237
|
+
|
|
238
|
+
## Output Format
|
|
239
|
+
Return a JSON object with these fields:
|
|
240
|
+
{
|
|
241
|
+
"name": "kebab-case-name",
|
|
242
|
+
"description": "Third-person trigger description with specific activation phrases",
|
|
243
|
+
"model": "",
|
|
244
|
+
"allowedTools": "",
|
|
245
|
+
"body": "# /skill-name\\n\\nFull system prompt with ## sections"
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
Field rules:
|
|
249
|
+
- name: kebab-case, concise, descriptive (e.g., "sql-formatter", "api-docs-generator")
|
|
250
|
+
- description: 1-3 sentences with trigger phrases. Must pass the "would Claude trigger on this?" test
|
|
251
|
+
- model: "" (any) unless task clearly requires opus-level reasoning or is trivially haiku-suitable
|
|
252
|
+
- allowedTools: comma-separated list (e.g., "Read, Write, Edit, Bash") or "" for unrestricted. Only restrict when the skill genuinely shouldn't use certain tools
|
|
253
|
+
- body: Complete markdown starting with # /skill-name, structured with ## sections, 500-2000 words
|
|
254
|
+
|
|
255
|
+
Return ONLY the JSON object — no code fences, no preamble.
|
|
256
|
+
|
|
257
|
+
After the JSON, on a new line, write "---REASONING---" followed by a brief explanation of your design choices (why this name, why these trigger phrases, what Skill Studio rules you applied).`;
|
|
258
|
+
const EVAL_SYSTEM_PROMPT = `You are an expert AI skill evaluator. Given a skill's name, description, and purpose, generate eval test cases that verify the skill works correctly.
|
|
259
|
+
|
|
260
|
+
### Eval Assertions for Action-Oriented Skills (CRITICAL)
|
|
261
|
+
The eval evaluates the LLM text response — it cannot run Bash or call tools. Assertions must check for code/commands present IN the response, not whether they were executed.
|
|
262
|
+
- BAD: "Runs a bash command to discover profiles" (implies execution — will always fail)
|
|
263
|
+
- GOOD: "Response includes a bash code block that lists Chrome profile directories"
|
|
264
|
+
- BAD: "Opens https://studio.youtube.com as the target URL"
|
|
265
|
+
- GOOD: "Response includes studio.youtube.com as the target URL in a code block or command"
|
|
266
|
+
- BAD: "Checks that the file exists before uploading"
|
|
267
|
+
- GOOD: "Response includes a bash command checking whether the file exists (e.g., using test -f or ls)"
|
|
268
|
+
|
|
269
|
+
## Output Format
|
|
270
|
+
Return a JSON object with these fields:
|
|
271
|
+
{
|
|
272
|
+
"evals": [
|
|
273
|
+
{
|
|
274
|
+
"id": 1,
|
|
275
|
+
"name": "test case name",
|
|
276
|
+
"prompt": "realistic user prompt",
|
|
277
|
+
"expected_output": "description of correct behavior",
|
|
278
|
+
"assertions": [
|
|
279
|
+
{ "id": "a1", "text": "objectively verifiable assertion", "type": "boolean" }
|
|
280
|
+
]
|
|
281
|
+
}
|
|
282
|
+
]
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
Field rules:
|
|
286
|
+
- evals: 2-3 realistic test cases with objectively verifiable assertions
|
|
287
|
+
- Prompts should be what real users would say, not abstract test inputs
|
|
288
|
+
- Each assertion must be independently verifiable by a judge LLM reading the response text
|
|
289
|
+
|
|
290
|
+
Return ONLY the JSON object — no code fences, no preamble.`;
|
|
291
|
+
// Keep the monolithic prompt for backward compatibility (used nowhere after refactor but exported for tests)
|
|
292
|
+
const GENERATE_SYSTEM_PROMPT = `You are an expert AI skill engineer in Skill Studio. Given a user's description of what a skill should do, generate a complete, production-quality skill definition.
|
|
293
|
+
|
|
294
|
+
${SKILL_STUDIO_BEST_PRACTICES}
|
|
235
295
|
|
|
236
296
|
### Eval Assertions for Action-Oriented Skills (CRITICAL)
|
|
237
297
|
The eval evaluates the LLM text response — it cannot run Bash or call tools. Assertions must check for code/commands present IN the response, not whether they were executed.
|
|
@@ -274,19 +334,69 @@ Field rules:
|
|
|
274
334
|
Return ONLY the JSON object — no code fences, no preamble.
|
|
275
335
|
|
|
276
336
|
After the JSON, on a new line, write "---REASONING---" followed by a brief explanation of your design choices (why this name, why these trigger phrases, what Skill Studio rules you applied).`;
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
const
|
|
280
|
-
const reasoning = parts.length > 1 ? parts[1].trim() : "Skill generated using Skill Studio best practices.";
|
|
281
|
-
// Strip code fences if present
|
|
282
|
-
const cleaned = jsonPart.replace(/^```(?:json)?\s*\n?/i, "").replace(/\n?```\s*$/i, "");
|
|
283
|
-
let parsed;
|
|
337
|
+
/** Strip code fences and parse JSON from raw LLM output */
|
|
338
|
+
function cleanAndParseJson(raw) {
|
|
339
|
+
const cleaned = raw.replace(/^```(?:json)?\s*\n?/i, "").replace(/\n?```\s*$/i, "");
|
|
284
340
|
try {
|
|
285
|
-
|
|
341
|
+
return JSON.parse(cleaned);
|
|
286
342
|
}
|
|
287
343
|
catch {
|
|
288
344
|
throw new Error("AI response was not valid JSON. Try again or use manual mode.");
|
|
289
345
|
}
|
|
346
|
+
}
|
|
347
|
+
function parseBodyResponse(raw) {
|
|
348
|
+
const parts = raw.split("---REASONING---");
|
|
349
|
+
const jsonPart = parts[0].trim();
|
|
350
|
+
const reasoning = parts.length > 1 ? parts[1].trim() : "Skill generated using Skill Studio best practices.";
|
|
351
|
+
const parsed = cleanAndParseJson(jsonPart);
|
|
352
|
+
const name = String(parsed.name || "").replace(/[^a-z0-9-]/g, "").replace(/^-+|-+$/g, "");
|
|
353
|
+
if (!name)
|
|
354
|
+
throw new Error("AI returned an invalid skill name. Try again or use manual mode.");
|
|
355
|
+
return {
|
|
356
|
+
name,
|
|
357
|
+
description: String(parsed.description || ""),
|
|
358
|
+
model: String(parsed.model || ""),
|
|
359
|
+
allowedTools: String(parsed.allowedTools || ""),
|
|
360
|
+
body: String(parsed.body || ""),
|
|
361
|
+
reasoning,
|
|
362
|
+
};
|
|
363
|
+
}
|
|
364
|
+
function parseEvalsResponse(raw) {
|
|
365
|
+
const jsonPart = raw.trim();
|
|
366
|
+
const parsed = cleanAndParseJson(jsonPart);
|
|
367
|
+
const evals = Array.isArray(parsed.evals) ? parsed.evals.slice(0, 10) : [];
|
|
368
|
+
return { evals };
|
|
369
|
+
}
|
|
370
|
+
function mergeGenerateResults(bodySettled, evalsSettled) {
|
|
371
|
+
// Body is required — if it failed, propagate the error
|
|
372
|
+
if (bodySettled.status === "rejected") {
|
|
373
|
+
throw bodySettled.reason instanceof Error
|
|
374
|
+
? bodySettled.reason
|
|
375
|
+
: new Error(String(bodySettled.reason));
|
|
376
|
+
}
|
|
377
|
+
const bodyResult = bodySettled.value;
|
|
378
|
+
// Evals are optional — if they failed, return body with empty evals and warning
|
|
379
|
+
if (evalsSettled.status === "rejected") {
|
|
380
|
+
const reason = evalsSettled.reason instanceof Error
|
|
381
|
+
? evalsSettled.reason.message
|
|
382
|
+
: String(evalsSettled.reason);
|
|
383
|
+
return {
|
|
384
|
+
...bodyResult,
|
|
385
|
+
evals: [],
|
|
386
|
+
warning: `eval generation failed: ${reason}`,
|
|
387
|
+
};
|
|
388
|
+
}
|
|
389
|
+
return {
|
|
390
|
+
...bodyResult,
|
|
391
|
+
evals: evalsSettled.value.evals,
|
|
392
|
+
};
|
|
393
|
+
}
|
|
394
|
+
/** Legacy monolithic parser — still used as fallback */
|
|
395
|
+
function parseGenerateResponse(raw) {
|
|
396
|
+
const parts = raw.split("---REASONING---");
|
|
397
|
+
const jsonPart = parts[0].trim();
|
|
398
|
+
const reasoning = parts.length > 1 ? parts[1].trim() : "Skill generated using Skill Studio best practices.";
|
|
399
|
+
const parsed = cleanAndParseJson(jsonPart);
|
|
290
400
|
const name = String(parsed.name || "").replace(/[^a-z0-9-]/g, "").replace(/^-+|-+$/g, "");
|
|
291
401
|
if (!name)
|
|
292
402
|
throw new Error("AI returned an invalid skill name. Try again or use manual mode.");
|
|
@@ -477,7 +587,7 @@ export function registerSkillCreateRoutes(router, root) {
|
|
|
477
587
|
installCommand: "npx vskill install anthropics/skills/skill-creator",
|
|
478
588
|
}, 200, _req);
|
|
479
589
|
});
|
|
480
|
-
// POST /api/skills/generate — AI-assisted skill generation
|
|
590
|
+
// POST /api/skills/generate — AI-assisted skill generation (parallel body + evals)
|
|
481
591
|
router.post("/api/skills/generate", async (req, res) => {
|
|
482
592
|
const body = (await readBody(req));
|
|
483
593
|
if (!body.prompt || !body.prompt.trim()) {
|
|
@@ -498,21 +608,40 @@ export function registerSkillCreateRoutes(router, root) {
|
|
|
498
608
|
try {
|
|
499
609
|
if (wantsSSE && !aborted)
|
|
500
610
|
sendSSE(res, "progress", { phase: "preparing", message: "Building prompt..." });
|
|
501
|
-
|
|
611
|
+
// Body generation: capable model (user-specified or default)
|
|
612
|
+
const bodyClient = createLlmClient({
|
|
502
613
|
provider: body.provider,
|
|
503
614
|
model: body.model,
|
|
504
615
|
});
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
const
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
616
|
+
// Eval generation: fast/cheap model (configurable via VSKILL_EVAL_GEN_MODEL, default haiku)
|
|
617
|
+
const evalModel = process.env.VSKILL_EVAL_GEN_MODEL || "haiku";
|
|
618
|
+
const evalClient = createLlmClient({
|
|
619
|
+
provider: body.provider,
|
|
620
|
+
model: evalModel,
|
|
621
|
+
});
|
|
622
|
+
const bodyPrompt = `Generate a skill definition (body and metadata only, NO evals) for:\n\n${body.prompt.trim()}\n\nApply Skill Studio best practices. Return the JSON object followed by ---REASONING--- and your explanation.`;
|
|
623
|
+
const evalPrompt = `Generate eval test cases for this skill:\n\n${body.prompt.trim()}\n\nReturn only the JSON object with an "evals" array.`;
|
|
624
|
+
// Emit SSE events for both parallel phases
|
|
625
|
+
if (wantsSSE && !aborted) {
|
|
626
|
+
sendSSE(res, "progress", { phase: "generating-body", message: "Generating skill body..." });
|
|
627
|
+
sendSSE(res, "progress", { phase: "generating-evals", message: "Generating evals..." });
|
|
628
|
+
}
|
|
629
|
+
// Launch both calls in parallel
|
|
630
|
+
const bodyCall = wantsSSE
|
|
631
|
+
? withHeartbeat(res, undefined, "generating-body", "Generating body", () => bodyClient.generate(BODY_SYSTEM_PROMPT, bodyPrompt))
|
|
632
|
+
: bodyClient.generate(BODY_SYSTEM_PROMPT, bodyPrompt);
|
|
633
|
+
const evalCall = wantsSSE
|
|
634
|
+
? withHeartbeat(res, undefined, "generating-evals", "Generating evals", () => evalClient.generate(EVAL_SYSTEM_PROMPT, evalPrompt))
|
|
635
|
+
: evalClient.generate(EVAL_SYSTEM_PROMPT, evalPrompt);
|
|
636
|
+
const [bodySettled, evalsSettled] = await Promise.allSettled([
|
|
637
|
+
bodyCall.then((r) => parseBodyResponse(r.text)),
|
|
638
|
+
evalCall.then((r) => parseEvalsResponse(r.text)),
|
|
639
|
+
]);
|
|
511
640
|
if (aborted)
|
|
512
641
|
return;
|
|
513
642
|
if (wantsSSE && !aborted)
|
|
514
|
-
sendSSE(res, "progress", { phase: "parsing", message: "
|
|
515
|
-
const parsed =
|
|
643
|
+
sendSSE(res, "progress", { phase: "parsing", message: "Merging results..." });
|
|
644
|
+
const parsed = mergeGenerateResults(bodySettled, evalsSettled);
|
|
516
645
|
if (wantsSSE && !aborted) {
|
|
517
646
|
sendSSEDone(res, parsed);
|
|
518
647
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-create-routes.js","sourceRoot":"","sources":["../../src/eval-server/skill-create-routes.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,sEAAsE;AACtE,8EAA8E;AAE9E,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACxF,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAiDjE,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;IAC3B,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY;IACzD,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU;CAC7D,CAAC,CAAC;AAEH,0DAA0D;AAC1D,SAAS,aAAa,CAAC,SAAiB;IACtC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,CAAC;IACtC,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aACnD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;aACjF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,SAAS,mBAAmB,CAAC,IAAY;IACvC,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,MAAM,SAAS,GAA6C,EAAE,CAAC;IAE/D,qCAAqC;IACrC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC;YACX,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,0BAA0B;YACjC,YAAY,EAAE,GAAG,IAAI,WAAW;YAChC,eAAe,EAAE,EAAE;SACpB,CAAC,CAAC;IACL,CAAC;IAED,mCAAmC;IACnC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC3C,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC;YACX,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,cAAc;YACrB,YAAY,EAAE,wBAAwB;YACtC,eAAe,EAAE,CAAC,UAAU,CAAC;SAC9B,CAAC,CAAC;QACH,KAAK,MAAM,CAAC,IAAI,MAAM;YAAE,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,iEAAiE;IACjE,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aACvD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1F,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACpD,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3B,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC/B,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;gBACzC,KAAK,MAAM,CAAC,IAAI,MAAM;oBAAE,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAExB,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC;YACX,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,gBAAgB;YACvB,YAAY,EAAE,iCAAiC;YAC/C,eAAe,EAAE,aAAa;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,0EAA0E;IAC1E,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACzC,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;iBAC7D,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YAClC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAC1D,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC3B,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC/B,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;oBACzC,KAAK,MAAM,CAAC,IAAI,MAAM;wBAAE,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC3E,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAExB,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC;gBACX,MAAM,EAAE,CAAC;gBACT,KAAK,EAAE,iBAAiB;gBACxB,YAAY,EAAE,yCAAyC;gBACvD,eAAe,EAAE,aAAa;aAC/B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,sDAAsD;IACtD,IAAI,eAAe,GAAc,CAAC,CAAC;IACnC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;QAAE,eAAe,GAAG,CAAC,CAAC;SACxD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;QAAE,eAAe,GAAG,CAAC,CAAC;IAElE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC;AACxF,CAAC;AAED,8CAA8C;AAC9C,SAAS,YAAY,CAAC,IAAwB;IAC5C,MAAM,KAAK,GAAa,CAAC,KAAK,CAAC,CAAC;IAChC,qDAAqD;IACrD,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACtE,IAAI,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACrC,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACjC,CAAC;AAED,+DAA+D;AAC/D,SAAS,eAAe,CAAC,IAAY,EAAE,MAAiB,EAAE,MAAc,EAAE,IAAY;IACpF,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAClD,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC7D,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,SAAS,0BAA0B;IACjC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IAEvB,0CAA0C;IAC1C,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAE9E,yDAAyD;IACzD,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC1D,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAE7D,iEAAiE;QACjE,gEAAgE;QAChE,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACzD,IAAI,CAAC;gBACH,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACzB,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;oBACpE,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;wBAC/B,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;4BAAE,SAAS;wBACjC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;wBACzC,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;wBAC9D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;4BAC7B,IAAI,MAAM,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;gCAAE,OAAO,IAAI,CAAC;wBACjF,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+LAwFgK,CAAC;AAwBhM,SAAS,qBAAqB,CAAC,GAAW;IACxC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,oDAAoD,CAAC;IAE5G,+BAA+B;IAC/B,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IAExF,IAAI,MAA+B,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC1F,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IAE/F,OAAO;QACL,IAAI;QACJ,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;QAC7C,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;QACjC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC;QAC/C,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QAC/B,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,KAAsC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;QACrG,SAAS;KACV,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E,MAAM,UAAU,yBAAyB,CAAC,MAAc,EAAE,IAAY;IACpE,wEAAwE;IACxE,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QACpD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;YACzC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,+CAA+C;IAC/C,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACnD,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAuB,CAAC;QAEzD,gBAAgB;QAChB,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,iCAAiC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACrE,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,+DAA+D,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YACpG,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC;YAC9B,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAC9D,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACrD,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,2BAA2B,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAChE,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;YAC9C,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,yCAAyC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAC9E,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,oCAAoC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3E,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,yCAAyC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAC9E,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAEnF,6FAA6F;QAC7F,MAAM,eAAe,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;QAClE,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAChE,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,2BAA2B,SAAS,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAC3E,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,qBAAqB;YACrB,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1C,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAEzD,iBAAiB;YACjB,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;YACnC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAChD,aAAa,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAE7C,oDAAoD;YACpD,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxC,MAAM,SAAS,GAAG;oBAChB,UAAU,EAAE,IAAI,CAAC,IAAI;oBACrB,KAAK,EAAE,IAAI,CAAC,KAAK;iBAClB,CAAC;gBACF,aAAa,CACX,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,YAAY,CAAC,EACtC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EACzC,OAAO,CACR,CAAC;gBAEF,2GAA2G;gBAC3G,IAAI,CAAC,eAAe,EAAE,CAAC;oBACrB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;oBAC3B,IAAI,CAAC;wBACH,MAAM,iBAAiB,CAAC,SAAS,EAAE;4BACjC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;4BACnC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,SAAS;4BACjC,UAAU,EAAE,IAAI,CAAC,IAAI;4BACrB,KAAK,EAAE,EAAE;4BACT,iBAAiB,EAAE,SAAS;4BAC5B,IAAI,EAAE,aAAa;4BACnB,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,SAAS;4BACvC,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE;yBAC1E,CAAC,CAAC;oBACL,CAAC;oBAAC,MAAM,CAAC,CAAC,8DAA8D,CAAC,CAAC;gBAC5E,CAAC;YACH,CAAC;YAED,2DAA2D;YAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;YAChD,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC;oBAAC,UAAU,CAAC,SAAS,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YACvD,CAAC;YAED,QAAQ,CAAC,GAAG,EAAE;gBACZ,EAAE,EAAE,IAAI;gBACR,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;gBACvE,KAAK,EAAE,IAAI,CAAC,IAAI;gBAChB,GAAG,EAAE,SAAS;gBACd,WAAW;aACZ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACf,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,2BAA4B,GAAa,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,sEAAsE;IACtE,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACvD,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAqB,CAAC;QAEvD,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,iCAAiC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACrE,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAC9D,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC;YAC9B,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAC9D,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACrD,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,2BAA2B,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAChE,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACnF,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,IAAI,CAAC;YACH,4DAA4D;YAC5D,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1C,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACzD,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAEpE,iBAAiB;YACjB,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;YACnC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAChD,aAAa,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAEvB,+BAA+B;YAC/B,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxC,MAAM,SAAS,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC/D,aAAa,CACX,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,YAAY,CAAC,EACtC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EACzC,OAAO,CACR,CAAC;gBACF,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACjC,CAAC;YAED,4BAA4B;YAC5B,MAAM,SAAS,GAAG;gBAChB,KAAK,EAAE,IAAI;gBACX,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;gBAC5B,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;gBAChC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;gBAC1B,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;aACnC,CAAC;YACF,aAAa,CACX,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EAC7B,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EACzC,OAAO,CACR,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEzB,+BAA+B;YAC/B,IAAI,CAAC;gBACH,MAAM,iBAAiB,CAAC,SAAS,EAAE;oBACjC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;oBACxB,UAAU,EAAE,IAAI,CAAC,IAAI;oBACrB,KAAK,EAAE,EAAE;oBACT,iBAAiB,EAAE,SAAS;oBAC5B,IAAI,EAAE,aAAa;oBACnB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;oBAC9B,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;iBAC1D,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC,CAAC,8DAA8D,CAAC,CAAC;YAE1E,QAAQ,CAAC,GAAG,EAAE;gBACZ,EAAE,EAAE,IAAI;gBACR,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;gBACvE,KAAK,EAAE,IAAI,CAAC,IAAI;gBAChB,GAAG,EAAE,SAAS;gBACd,WAAW;gBACX,KAAK;aACN,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACf,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,yBAA0B,GAAa,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACxF,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,sEAAsE;IACtE,MAAM,CAAC,GAAG,CAAC,2BAA2B,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QAC1D,MAAM,SAAS,GAAG,0BAA0B,EAAE,CAAC;QAC/C,QAAQ,CAAC,GAAG,EAAE;YACZ,SAAS;YACT,cAAc,EAAE,oDAAoD;SACrE,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,2DAA2D;IAC3D,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACrD,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAyB,CAAC;QAE3D,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YACxC,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,oCAAoC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;YAC/B,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,4CAA4C,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YACjF,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,mBAAmB,CAAC;YAChE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAEnF,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAE3C,IAAI,QAAQ;YAAE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAEhC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,IAAI,YAAY,CAAC;QAEnD,IAAI,CAAC;YACH,IAAI,QAAQ,IAAI,CAAC,OAAO;gBAAE,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAC;YAE1G,MAAM,MAAM,GAAG,eAAe,CAAC;gBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC,CAAC;YAEH,IAAI,QAAQ,IAAI,CAAC,OAAO;gBAAE,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC;YAE5G,MAAM,UAAU,GAAG,gDAAgD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,iHAAiH,CAAC;YAEvM,MAAM,MAAM,GAAG,QAAQ;gBACrB,CAAC,CAAC,MAAM,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC;gBAClI,CAAC,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC;YAE9D,IAAI,OAAO;gBAAE,OAAO;YAEpB,IAAI,QAAQ,IAAI,CAAC,OAAO;gBAAE,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC;YAEvG,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAElD,IAAI,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;gBACzB,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,aAAa,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;gBACxD,GAAG,CAAC,GAAG,EAAE,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAI,GAAa,CAAC,OAAO,CAAC;gBACnC,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC1D,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"skill-create-routes.js","sourceRoot":"","sources":["../../src/eval-server/skill-create-routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// sweep-routes.ts -- SSE endpoints for multi-model sweep and leaderboard
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
5
|
+
import { join } from "node:path";
|
|
6
|
+
import { sendJson, readBody } from "./router.js";
|
|
7
|
+
import { initSSE, sendSSE } from "./sse-helpers.js";
|
|
8
|
+
import { resolveSkillDir } from "./skill-resolver.js";
|
|
9
|
+
import { loadAndValidateEvals } from "../eval/schema.js";
|
|
10
|
+
import { buildEvalSystemPrompt } from "../eval/prompt-builder.js";
|
|
11
|
+
import { runSweep, listLeaderboard, readLeaderboardEntry } from "./sweep-runner.js";
|
|
12
|
+
export function registerSweepRoutes(router, root) {
|
|
13
|
+
// POST /api/skills/:plugin/:skill/sweep — run multi-model sweep (SSE)
|
|
14
|
+
router.post("/api/skills/:plugin/:skill/sweep", async (req, res, params) => {
|
|
15
|
+
const body = (await readBody(req));
|
|
16
|
+
if (!body.models || !Array.isArray(body.models) || body.models.length === 0) {
|
|
17
|
+
sendJson(res, { error: "models array is required and must not be empty" }, 400, req);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
if (!body.judge || typeof body.judge !== "string") {
|
|
21
|
+
sendJson(res, { error: "judge model spec is required (e.g., 'anthropic/claude-sonnet-4')" }, 400, req);
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const skillDir = resolveSkillDir(root, params.plugin, params.skill);
|
|
25
|
+
if (!skillDir) {
|
|
26
|
+
sendJson(res, { error: "Skill not found" }, 404, req);
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
let evalsFile;
|
|
30
|
+
try {
|
|
31
|
+
evalsFile = loadAndValidateEvals(skillDir);
|
|
32
|
+
}
|
|
33
|
+
catch (err) {
|
|
34
|
+
sendJson(res, { error: err.message }, 400, req);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const skillMdPath = join(skillDir, "SKILL.md");
|
|
38
|
+
const skillContent = existsSync(skillMdPath) ? readFileSync(skillMdPath, "utf-8") : "";
|
|
39
|
+
const systemPrompt = buildEvalSystemPrompt(skillContent);
|
|
40
|
+
const evalCases = evalsFile.evals;
|
|
41
|
+
initSSE(res, req);
|
|
42
|
+
let aborted = false;
|
|
43
|
+
req.on("close", () => { aborted = true; });
|
|
44
|
+
const sweepOpts = {
|
|
45
|
+
skillDir,
|
|
46
|
+
skillName: `${params.plugin}/${params.skill}`,
|
|
47
|
+
systemPrompt,
|
|
48
|
+
evalCases,
|
|
49
|
+
models: body.models,
|
|
50
|
+
judge: body.judge,
|
|
51
|
+
runs: body.runs ?? 1,
|
|
52
|
+
concurrency: body.concurrency ?? 5,
|
|
53
|
+
};
|
|
54
|
+
try {
|
|
55
|
+
for await (const event of runSweep(sweepOpts)) {
|
|
56
|
+
if (aborted)
|
|
57
|
+
break;
|
|
58
|
+
sendSSE(res, event.type, event.data);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
sendSSE(res, "error", { message: err.message });
|
|
63
|
+
}
|
|
64
|
+
if (!aborted) {
|
|
65
|
+
res.end();
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
// GET /api/skills/:plugin/:skill/leaderboard — list sweep results
|
|
69
|
+
router.get("/api/skills/:plugin/:skill/leaderboard", async (_req, res, params) => {
|
|
70
|
+
const skillDir = resolveSkillDir(root, params.plugin, params.skill);
|
|
71
|
+
if (!skillDir) {
|
|
72
|
+
sendJson(res, { entries: [] });
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const entries = await listLeaderboard(skillDir);
|
|
76
|
+
sendJson(res, { entries });
|
|
77
|
+
});
|
|
78
|
+
// GET /api/skills/:plugin/:skill/leaderboard/:timestamp — single sweep result
|
|
79
|
+
router.get("/api/skills/:plugin/:skill/leaderboard/:timestamp", async (_req, res, params) => {
|
|
80
|
+
const skillDir = resolveSkillDir(root, params.plugin, params.skill);
|
|
81
|
+
if (!skillDir) {
|
|
82
|
+
sendJson(res, { error: "Skill not found" }, 404);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
const entry = await readLeaderboardEntry(skillDir, params.timestamp);
|
|
86
|
+
if (!entry) {
|
|
87
|
+
sendJson(res, { error: "Leaderboard entry not found" }, 404);
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
sendJson(res, entry);
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=sweep-routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sweep-routes.js","sourceRoot":"","sources":["../../src/eval-server/sweep-routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import type { ProviderName } from "../eval/llm.js";
|
|
2
|
+
import type { EvalCase } from "../eval/schema.js";
|
|
3
|
+
import type { BenchmarkResult, BenchmarkCase } from "../eval/benchmark.js";
|
|
4
|
+
export interface ModelSpec {
|
|
5
|
+
provider: ProviderName;
|
|
6
|
+
model: string;
|
|
7
|
+
}
|
|
8
|
+
export interface ModelStats {
|
|
9
|
+
mean: number;
|
|
10
|
+
stddev: number;
|
|
11
|
+
}
|
|
12
|
+
export interface ModelResult {
|
|
13
|
+
provider: string;
|
|
14
|
+
model: string;
|
|
15
|
+
passRate: ModelStats;
|
|
16
|
+
rubricScore: ModelStats | null;
|
|
17
|
+
duration: ModelStats;
|
|
18
|
+
cost: {
|
|
19
|
+
total: number;
|
|
20
|
+
perCase: number;
|
|
21
|
+
};
|
|
22
|
+
status: "complete" | "error";
|
|
23
|
+
errorMessage: string | null;
|
|
24
|
+
caseResults: BenchmarkCase[][];
|
|
25
|
+
}
|
|
26
|
+
export interface SweepResult {
|
|
27
|
+
sweepId: string;
|
|
28
|
+
timestamp: string;
|
|
29
|
+
judge: string;
|
|
30
|
+
runs: number;
|
|
31
|
+
models: ModelResult[];
|
|
32
|
+
}
|
|
33
|
+
export interface SweepOpts {
|
|
34
|
+
skillDir: string;
|
|
35
|
+
skillName: string;
|
|
36
|
+
systemPrompt: string;
|
|
37
|
+
evalCases: EvalCase[];
|
|
38
|
+
models: string[];
|
|
39
|
+
judge: string;
|
|
40
|
+
runs: number;
|
|
41
|
+
concurrency: number;
|
|
42
|
+
}
|
|
43
|
+
export type SweepSSEEvent = {
|
|
44
|
+
type: "sweep_start";
|
|
45
|
+
data: {
|
|
46
|
+
totalModels: number;
|
|
47
|
+
runs: number;
|
|
48
|
+
judge: string;
|
|
49
|
+
};
|
|
50
|
+
} | {
|
|
51
|
+
type: "sweep_model_start";
|
|
52
|
+
data: {
|
|
53
|
+
model: string;
|
|
54
|
+
provider: string;
|
|
55
|
+
modelIndex: number;
|
|
56
|
+
totalModels: number;
|
|
57
|
+
};
|
|
58
|
+
} | {
|
|
59
|
+
type: "sweep_model_progress";
|
|
60
|
+
data: {
|
|
61
|
+
model: string;
|
|
62
|
+
currentCase: number;
|
|
63
|
+
totalCases: number;
|
|
64
|
+
run: number;
|
|
65
|
+
totalRuns: number;
|
|
66
|
+
percentComplete: number;
|
|
67
|
+
};
|
|
68
|
+
} | {
|
|
69
|
+
type: "sweep_model_complete";
|
|
70
|
+
data: {
|
|
71
|
+
model: string;
|
|
72
|
+
provider: string;
|
|
73
|
+
status: "complete" | "error";
|
|
74
|
+
passRate?: ModelStats;
|
|
75
|
+
errorMessage?: string;
|
|
76
|
+
};
|
|
77
|
+
} | {
|
|
78
|
+
type: "sweep_complete";
|
|
79
|
+
data: SweepResult;
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* Parse a model spec string like "provider/model" or "provider/org/model".
|
|
83
|
+
* Splits on the first `/` only — everything after is the model ID.
|
|
84
|
+
*/
|
|
85
|
+
export declare function parseModelSpec(spec: string): ModelSpec;
|
|
86
|
+
export declare function computeMean(values: number[]): number;
|
|
87
|
+
export declare function computeStddev(values: number[], mean: number): number;
|
|
88
|
+
export declare function computeStats(values: number[]): ModelStats;
|
|
89
|
+
export declare function aggregateRuns(results: BenchmarkResult[], provider: string, model: string): Omit<ModelResult, "status" | "errorMessage">;
|
|
90
|
+
export declare function runSweep(opts: SweepOpts): AsyncGenerator<SweepSSEEvent>;
|
|
91
|
+
export declare function writeLeaderboard(skillDir: string, result: SweepResult): Promise<string>;
|
|
92
|
+
export declare function listLeaderboard(skillDir: string, limit?: number): Promise<SweepResult[]>;
|
|
93
|
+
export declare function readLeaderboardEntry(skillDir: string, timestamp: string): Promise<SweepResult | null>;
|