vskill 0.2.75 → 0.2.77
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 +27 -0
- package/dist/commands/eval/__tests__/coverage.test.js +1 -1
- package/dist/commands/eval/__tests__/coverage.test.js.map +1 -1
- package/dist/commands/eval/serve.js +10 -4
- package/dist/commands/eval/serve.js.map +1 -1
- package/dist/eval/__tests__/benchmark.test.js +2 -2
- package/dist/eval/__tests__/benchmark.test.js.map +1 -1
- package/dist/eval/__tests__/llm.test.js +7 -7
- package/dist/eval/__tests__/llm.test.js.map +1 -1
- package/dist/eval/__tests__/mcp-detector.test.d.ts +1 -0
- package/dist/eval/__tests__/mcp-detector.test.js +125 -0
- package/dist/eval/__tests__/mcp-detector.test.js.map +1 -0
- package/dist/eval/__tests__/skill-scanner.test.js +2 -1
- package/dist/eval/__tests__/skill-scanner.test.js.map +1 -1
- package/dist/eval/benchmark-history.d.ts +31 -4
- package/dist/eval/benchmark-history.js +83 -4
- package/dist/eval/benchmark-history.js.map +1 -1
- package/dist/eval/benchmark.d.ts +32 -0
- package/dist/eval/benchmark.js.map +1 -1
- package/dist/eval/llm.js +2 -2
- package/dist/eval/llm.js.map +1 -1
- package/dist/eval/mcp-detector.d.ts +13 -0
- package/dist/eval/mcp-detector.js +123 -0
- package/dist/eval/mcp-detector.js.map +1 -0
- package/dist/eval/skill-scanner.js +14 -2
- package/dist/eval/skill-scanner.js.map +1 -1
- package/dist/eval-server/api-routes.js +183 -117
- package/dist/eval-server/api-routes.js.map +1 -1
- package/dist/eval-server/benchmark-runner.d.ts +16 -0
- package/dist/eval-server/benchmark-runner.js +114 -0
- package/dist/eval-server/benchmark-runner.js.map +1 -0
- package/dist/eval-server/eval-server.js +4 -0
- package/dist/eval-server/eval-server.js.map +1 -1
- package/dist/eval-server/improve-routes.d.ts +2 -0
- package/dist/eval-server/improve-routes.js +77 -0
- package/dist/eval-server/improve-routes.js.map +1 -0
- package/dist/eval-server/model-compare-routes.d.ts +2 -0
- package/dist/eval-server/model-compare-routes.js +119 -0
- package/dist/eval-server/model-compare-routes.js.map +1 -0
- package/dist/eval-server/skill-resolver.d.ts +1 -0
- package/dist/eval-server/skill-resolver.js +24 -0
- package/dist/eval-server/skill-resolver.js.map +1 -0
- package/dist/eval-ui/assets/index-CFJYUUyc.js +73 -0
- package/dist/eval-ui/assets/index-DSspu3L6.css +1 -0
- package/dist/eval-ui/index.html +2 -2
- package/dist/installer/canonical.js +1 -1
- package/dist/installer/canonical.js.map +1 -1
- package/dist/installer/canonical.test.js +8 -0
- package/dist/installer/canonical.test.js.map +1 -1
- package/package.json +1 -1
- package/dist/eval-ui/assets/index-BsNUxjb1.js +0 -70
- package/dist/eval-ui/assets/index-D5mEzX7i.css +0 -1
|
@@ -5,30 +5,19 @@ import { readFileSync, writeFileSync, mkdirSync, existsSync } from "node:fs";
|
|
|
5
5
|
import { join } from "node:path";
|
|
6
6
|
import { sendJson, readBody } from "./router.js";
|
|
7
7
|
import { initSSE, sendSSE, sendSSEDone } from "./sse-helpers.js";
|
|
8
|
+
import { runBenchmarkSSE } from "./benchmark-runner.js";
|
|
9
|
+
import { resolveSkillDir } from "./skill-resolver.js";
|
|
8
10
|
import { scanSkills } from "../eval/skill-scanner.js";
|
|
9
11
|
import { loadAndValidateEvals, EvalValidationError } from "../eval/schema.js";
|
|
10
12
|
import { readBenchmark } from "../eval/benchmark.js";
|
|
11
|
-
import { writeHistoryEntry, listHistory, readHistoryEntry } from "../eval/benchmark-history.js";
|
|
13
|
+
import { writeHistoryEntry, listHistory, readHistoryEntry, computeRegressions, deleteHistoryEntry, getCaseHistory } from "../eval/benchmark-history.js";
|
|
12
14
|
import { judgeAssertion } from "../eval/judge.js";
|
|
13
15
|
import { createLlmClient } from "../eval/llm.js";
|
|
14
16
|
import { runComparison } from "../eval/comparator.js";
|
|
15
17
|
import { computeVerdict } from "../eval/verdict.js";
|
|
18
|
+
import { buildEvalInitPrompt, parseGeneratedEvals } from "../eval/prompt-builder.js";
|
|
16
19
|
import { testActivation } from "../eval/activation-tester.js";
|
|
17
|
-
|
|
18
|
-
// Try direct layout: {root}/{plugin}/skills/{skill}/
|
|
19
|
-
const directPath = join(root, plugin, "skills", skill);
|
|
20
|
-
if (existsSync(directPath))
|
|
21
|
-
return directPath;
|
|
22
|
-
// Try nested plugins/ layout: {root}/plugins/{plugin}/skills/{skill}/
|
|
23
|
-
const nestedPath = join(root, "plugins", plugin, "skills", skill);
|
|
24
|
-
if (existsSync(nestedPath))
|
|
25
|
-
return nestedPath;
|
|
26
|
-
// Try root layout: {root}/skills/{skill}/
|
|
27
|
-
const rootPath = join(root, "skills", skill);
|
|
28
|
-
if (existsSync(rootPath))
|
|
29
|
-
return rootPath;
|
|
30
|
-
return directPath;
|
|
31
|
-
}
|
|
20
|
+
import { detectMcpDependencies, detectSkillDependencies } from "../eval/mcp-detector.js";
|
|
32
21
|
// ---------------------------------------------------------------------------
|
|
33
22
|
// In-memory config state — UI can change provider/model at runtime.
|
|
34
23
|
//
|
|
@@ -47,9 +36,9 @@ const PROVIDER_MODELS = {
|
|
|
47
36
|
{ id: "haiku", label: "Claude Haiku" },
|
|
48
37
|
],
|
|
49
38
|
"anthropic": [
|
|
50
|
-
{ id: "claude-sonnet-4-
|
|
51
|
-
{ id: "claude-opus-4-
|
|
52
|
-
{ id: "claude-haiku-4-
|
|
39
|
+
{ id: "claude-sonnet-4-6", label: "Claude Sonnet 4.6 (API)" },
|
|
40
|
+
{ id: "claude-opus-4-6", label: "Claude Opus 4.6 (API)" },
|
|
41
|
+
{ id: "claude-haiku-4-5-20251001", label: "Claude Haiku 4.5 (API)" },
|
|
53
42
|
],
|
|
54
43
|
"ollama": [
|
|
55
44
|
{ id: "llama3.1:8b", label: "Llama 3.1 8B" },
|
|
@@ -227,12 +216,31 @@ export function registerRoutes(router, root, projectName) {
|
|
|
227
216
|
writeFileSync(filePath, JSON.stringify(body, null, 2), "utf-8");
|
|
228
217
|
sendJson(res, body, 200, req);
|
|
229
218
|
});
|
|
219
|
+
// Generate evals using AI — reads SKILL.md and returns generated EvalsFile
|
|
220
|
+
router.post("/api/skills/:plugin/:skill/generate-evals", async (req, res, params) => {
|
|
221
|
+
const skillDir = resolveSkillDir(root, params.plugin, params.skill);
|
|
222
|
+
const skillMdPath = join(skillDir, "SKILL.md");
|
|
223
|
+
if (!existsSync(skillMdPath)) {
|
|
224
|
+
sendJson(res, { error: "SKILL.md not found — cannot generate evals without skill content" }, 400, req);
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
try {
|
|
228
|
+
const skillContent = readFileSync(skillMdPath, "utf-8");
|
|
229
|
+
const prompt = buildEvalInitPrompt(skillContent);
|
|
230
|
+
const client = getClient();
|
|
231
|
+
const genResult = await client.generate("You generate eval test cases for AI skills. Output only valid JSON in a code fence.", prompt);
|
|
232
|
+
const evalsFile = parseGeneratedEvals(genResult.text);
|
|
233
|
+
sendJson(res, evalsFile, 200, req);
|
|
234
|
+
}
|
|
235
|
+
catch (err) {
|
|
236
|
+
sendJson(res, { error: `Eval generation failed: ${err.message}` }, 500, req);
|
|
237
|
+
}
|
|
238
|
+
});
|
|
230
239
|
// Run benchmark (SSE) — optionally accepts { eval_ids: number[] } to run specific cases
|
|
231
240
|
router.post("/api/skills/:plugin/:skill/benchmark", async (req, res, params) => {
|
|
232
241
|
const skillDir = resolveSkillDir(root, params.plugin, params.skill);
|
|
233
242
|
let aborted = false;
|
|
234
243
|
res.on("close", () => { aborted = true; });
|
|
235
|
-
// Read body before switching to SSE mode
|
|
236
244
|
const body = await readBody(req).catch(() => ({}));
|
|
237
245
|
const filterIds = Array.isArray(body?.eval_ids) ? new Set(body.eval_ids) : null;
|
|
238
246
|
initSSE(res, req);
|
|
@@ -244,101 +252,34 @@ export function registerRoutes(router, root, projectName) {
|
|
|
244
252
|
const systemPrompt = skillContent
|
|
245
253
|
? `You are an AI assistant enhanced with the following skill:\n\n${skillContent}`
|
|
246
254
|
: "You are a helpful AI assistant.";
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
: evals.evals
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
break;
|
|
276
|
-
const result = await judgeAssertion(genResult.text, assertion, client);
|
|
277
|
-
assertionResults.push(result);
|
|
278
|
-
sendSSE(res, "assertion_result", {
|
|
279
|
-
eval_id: evalCase.id,
|
|
280
|
-
assertion_id: result.id,
|
|
281
|
-
text: result.text,
|
|
282
|
-
pass: result.pass,
|
|
283
|
-
reasoning: result.reasoning,
|
|
284
|
-
});
|
|
285
|
-
}
|
|
286
|
-
const passRate = assertionResults.length > 0
|
|
287
|
-
? assertionResults.filter((a) => a.pass).length / assertionResults.length
|
|
288
|
-
: 0;
|
|
289
|
-
const status = assertionResults.every((a) => a.pass) ? "pass" : "fail";
|
|
290
|
-
const benchCase = {
|
|
291
|
-
eval_id: evalCase.id,
|
|
292
|
-
eval_name: evalCase.name,
|
|
293
|
-
status: status,
|
|
294
|
-
error_message: null,
|
|
295
|
-
pass_rate: passRate,
|
|
296
|
-
durationMs: genResult.durationMs,
|
|
297
|
-
tokens: totalTokens,
|
|
298
|
-
assertions: assertionResults,
|
|
299
|
-
};
|
|
300
|
-
cases.push(benchCase);
|
|
301
|
-
sendSSE(res, "case_complete", {
|
|
302
|
-
eval_id: evalCase.id,
|
|
303
|
-
status,
|
|
304
|
-
pass_rate: passRate,
|
|
305
|
-
durationMs: genResult.durationMs,
|
|
306
|
-
tokens: totalTokens,
|
|
307
|
-
});
|
|
308
|
-
}
|
|
309
|
-
catch (err) {
|
|
310
|
-
const errorMsg = err instanceof Error ? err.message : String(err);
|
|
311
|
-
cases.push({
|
|
312
|
-
eval_id: evalCase.id,
|
|
313
|
-
eval_name: evalCase.name,
|
|
314
|
-
status: "error",
|
|
315
|
-
error_message: errorMsg,
|
|
316
|
-
pass_rate: 0,
|
|
317
|
-
assertions: [],
|
|
318
|
-
});
|
|
319
|
-
sendSSE(res, "case_complete", {
|
|
320
|
-
eval_id: evalCase.id,
|
|
321
|
-
status: "error",
|
|
322
|
-
error_message: errorMsg,
|
|
323
|
-
});
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
const totalAssertions = cases.reduce((s, c) => s + c.assertions.length, 0);
|
|
327
|
-
const passedAssertions = cases.reduce((s, c) => s + c.assertions.filter((a) => a.pass).length, 0);
|
|
328
|
-
const result = {
|
|
329
|
-
timestamp: new Date().toISOString(),
|
|
330
|
-
model: client.model,
|
|
331
|
-
skill_name: evals.skill_name,
|
|
332
|
-
cases,
|
|
333
|
-
overall_pass_rate: totalAssertions > 0 ? passedAssertions / totalAssertions : 0,
|
|
334
|
-
};
|
|
335
|
-
if (!aborted) {
|
|
336
|
-
// Only save to history for full benchmark runs (not single-case)
|
|
337
|
-
if (!filterIds) {
|
|
338
|
-
await writeHistoryEntry(skillDir, result);
|
|
339
|
-
}
|
|
340
|
-
sendSSEDone(res, result);
|
|
341
|
-
}
|
|
255
|
+
await runBenchmarkSSE({
|
|
256
|
+
res, skillDir, skillName: evals.skill_name, systemPrompt,
|
|
257
|
+
runType: "benchmark", provider: currentOverrides.provider || "claude-cli",
|
|
258
|
+
evalCases: evals.evals, filterIds, client, isAborted: () => aborted,
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
catch (err) {
|
|
262
|
+
const errorMsg = err instanceof Error ? err.message : String(err);
|
|
263
|
+
sendSSEDone(res, { error: errorMsg });
|
|
264
|
+
}
|
|
265
|
+
});
|
|
266
|
+
// Run baseline (SSE) — same as benchmark but without skill content
|
|
267
|
+
router.post("/api/skills/:plugin/:skill/baseline", async (req, res, params) => {
|
|
268
|
+
const skillDir = resolveSkillDir(root, params.plugin, params.skill);
|
|
269
|
+
let aborted = false;
|
|
270
|
+
res.on("close", () => { aborted = true; });
|
|
271
|
+
const body = await readBody(req).catch(() => ({}));
|
|
272
|
+
const filterIds = Array.isArray(body?.eval_ids) ? new Set(body.eval_ids) : null;
|
|
273
|
+
initSSE(res, req);
|
|
274
|
+
try {
|
|
275
|
+
const evals = loadAndValidateEvals(skillDir);
|
|
276
|
+
const client = getClient();
|
|
277
|
+
await runBenchmarkSSE({
|
|
278
|
+
res, skillDir, skillName: evals.skill_name,
|
|
279
|
+
systemPrompt: "You are a helpful AI assistant.",
|
|
280
|
+
runType: "baseline", provider: currentOverrides.provider || "claude-cli",
|
|
281
|
+
evalCases: evals.evals, filterIds, client, isAborted: () => aborted,
|
|
282
|
+
});
|
|
342
283
|
}
|
|
343
284
|
catch (err) {
|
|
344
285
|
const errorMsg = err instanceof Error ? err.message : String(err);
|
|
@@ -435,7 +376,20 @@ export function registerRoutes(router, root, projectName) {
|
|
|
435
376
|
pass_rate: r.assertionResults.length > 0
|
|
436
377
|
? r.assertionResults.filter((a) => a.pass).length / r.assertionResults.length
|
|
437
378
|
: 0,
|
|
379
|
+
durationMs: r.comparison.skillDurationMs,
|
|
380
|
+
tokens: r.comparison.skillTokens,
|
|
438
381
|
assertions: r.assertionResults,
|
|
382
|
+
comparisonDetail: {
|
|
383
|
+
skillDurationMs: r.comparison.skillDurationMs,
|
|
384
|
+
skillTokens: r.comparison.skillTokens,
|
|
385
|
+
baselineDurationMs: r.comparison.baselineDurationMs,
|
|
386
|
+
baselineTokens: r.comparison.baselineTokens,
|
|
387
|
+
skillContentScore: r.comparison.skillContentScore,
|
|
388
|
+
skillStructureScore: r.comparison.skillStructureScore,
|
|
389
|
+
baselineContentScore: r.comparison.baselineContentScore,
|
|
390
|
+
baselineStructureScore: r.comparison.baselineStructureScore,
|
|
391
|
+
winner: r.comparison.winner,
|
|
392
|
+
},
|
|
439
393
|
}));
|
|
440
394
|
const historyResult = {
|
|
441
395
|
timestamp: new Date().toISOString(),
|
|
@@ -444,6 +398,7 @@ export function registerRoutes(router, root, projectName) {
|
|
|
444
398
|
cases,
|
|
445
399
|
overall_pass_rate: passRate,
|
|
446
400
|
type: "comparison",
|
|
401
|
+
provider: currentOverrides.provider || "claude-cli",
|
|
447
402
|
verdict,
|
|
448
403
|
comparison: {
|
|
449
404
|
skillPassRate: passRate,
|
|
@@ -461,12 +416,100 @@ export function registerRoutes(router, root, projectName) {
|
|
|
461
416
|
sendSSEDone(res, { error: err instanceof Error ? err.message : String(err) });
|
|
462
417
|
}
|
|
463
418
|
});
|
|
464
|
-
// List benchmark history
|
|
419
|
+
// List benchmark history (with optional filters)
|
|
465
420
|
router.get("/api/skills/:plugin/:skill/history", async (req, res, params) => {
|
|
466
421
|
const skillDir = resolveSkillDir(root, params.plugin, params.skill);
|
|
467
|
-
const
|
|
422
|
+
const url = new URL(req.url, `http://localhost`);
|
|
423
|
+
const filter = {};
|
|
424
|
+
const modelParam = url.searchParams.get("model");
|
|
425
|
+
const typeParam = url.searchParams.get("type");
|
|
426
|
+
const fromParam = url.searchParams.get("from");
|
|
427
|
+
const toParam = url.searchParams.get("to");
|
|
428
|
+
if (modelParam)
|
|
429
|
+
filter.model = modelParam;
|
|
430
|
+
if (typeParam && ["benchmark", "comparison", "baseline"].includes(typeParam)) {
|
|
431
|
+
filter.type = typeParam;
|
|
432
|
+
}
|
|
433
|
+
if (fromParam)
|
|
434
|
+
filter.from = fromParam;
|
|
435
|
+
if (toParam)
|
|
436
|
+
filter.to = toParam;
|
|
437
|
+
const hasFilter = Object.keys(filter).length > 0;
|
|
438
|
+
const history = await listHistory(skillDir, hasFilter ? filter : undefined);
|
|
468
439
|
sendJson(res, history, 200, req);
|
|
469
440
|
});
|
|
441
|
+
// Compare two history runs
|
|
442
|
+
router.get("/api/skills/:plugin/:skill/history-compare", async (req, res, params) => {
|
|
443
|
+
const skillDir = resolveSkillDir(root, params.plugin, params.skill);
|
|
444
|
+
const url = new URL(req.url, `http://localhost`);
|
|
445
|
+
const tsA = url.searchParams.get("a");
|
|
446
|
+
const tsB = url.searchParams.get("b");
|
|
447
|
+
if (!tsA || !tsB) {
|
|
448
|
+
sendJson(res, { error: "Both 'a' and 'b' timestamps are required" }, 400, req);
|
|
449
|
+
return;
|
|
450
|
+
}
|
|
451
|
+
const [runA, runB] = await Promise.all([
|
|
452
|
+
readHistoryEntry(skillDir, tsA),
|
|
453
|
+
readHistoryEntry(skillDir, tsB),
|
|
454
|
+
]);
|
|
455
|
+
if (!runA || !runB) {
|
|
456
|
+
sendJson(res, { error: "One or both history entries not found" }, 404, req);
|
|
457
|
+
return;
|
|
458
|
+
}
|
|
459
|
+
const regressions = computeRegressions(runB, runA);
|
|
460
|
+
// Build case diffs
|
|
461
|
+
const allEvalIds = new Set([
|
|
462
|
+
...runA.cases.map((c) => c.eval_id),
|
|
463
|
+
...runB.cases.map((c) => c.eval_id),
|
|
464
|
+
]);
|
|
465
|
+
const caseDiffs = Array.from(allEvalIds).map((evalId) => {
|
|
466
|
+
const caseA = runA.cases.find((c) => c.eval_id === evalId);
|
|
467
|
+
const caseB = runB.cases.find((c) => c.eval_id === evalId);
|
|
468
|
+
return {
|
|
469
|
+
eval_id: evalId,
|
|
470
|
+
eval_name: caseA?.eval_name || caseB?.eval_name || `Eval #${evalId}`,
|
|
471
|
+
statusA: caseA?.status ?? "missing",
|
|
472
|
+
statusB: caseB?.status ?? "missing",
|
|
473
|
+
passRateA: caseA?.pass_rate ?? null,
|
|
474
|
+
passRateB: caseB?.pass_rate ?? null,
|
|
475
|
+
durationMsA: caseA?.durationMs ?? null,
|
|
476
|
+
durationMsB: caseB?.durationMs ?? null,
|
|
477
|
+
tokensA: caseA?.tokens ?? null,
|
|
478
|
+
tokensB: caseB?.tokens ?? null,
|
|
479
|
+
};
|
|
480
|
+
});
|
|
481
|
+
const totalA = runA.cases.reduce((s, c) => s + c.assertions.length, 0);
|
|
482
|
+
const passedA = runA.cases.reduce((s, c) => s + c.assertions.filter((a) => a.pass).length, 0);
|
|
483
|
+
const totalB = runB.cases.reduce((s, c) => s + c.assertions.length, 0);
|
|
484
|
+
const passedB = runB.cases.reduce((s, c) => s + c.assertions.filter((a) => a.pass).length, 0);
|
|
485
|
+
sendJson(res, {
|
|
486
|
+
runA: {
|
|
487
|
+
timestamp: runA.timestamp, model: runA.model,
|
|
488
|
+
passRate: totalA > 0 ? passedA / totalA : 0,
|
|
489
|
+
type: runA.type || "benchmark",
|
|
490
|
+
},
|
|
491
|
+
runB: {
|
|
492
|
+
timestamp: runB.timestamp, model: runB.model,
|
|
493
|
+
passRate: totalB > 0 ? passedB / totalB : 0,
|
|
494
|
+
type: runB.type || "benchmark",
|
|
495
|
+
},
|
|
496
|
+
regressions,
|
|
497
|
+
caseDiffs,
|
|
498
|
+
}, 200, req);
|
|
499
|
+
});
|
|
500
|
+
// Per-case history
|
|
501
|
+
router.get("/api/skills/:plugin/:skill/history/case/:evalId", async (req, res, params) => {
|
|
502
|
+
const skillDir = resolveSkillDir(root, params.plugin, params.skill);
|
|
503
|
+
const evalId = parseInt(params.evalId, 10);
|
|
504
|
+
if (isNaN(evalId)) {
|
|
505
|
+
sendJson(res, { error: "Invalid eval ID" }, 400, req);
|
|
506
|
+
return;
|
|
507
|
+
}
|
|
508
|
+
const url = new URL(req.url, `http://localhost`);
|
|
509
|
+
const modelParam = url.searchParams.get("model") || undefined;
|
|
510
|
+
const entries = await getCaseHistory(skillDir, evalId, modelParam ? { model: modelParam } : undefined);
|
|
511
|
+
sendJson(res, entries, 200, req);
|
|
512
|
+
});
|
|
470
513
|
// Get specific history entry
|
|
471
514
|
router.get("/api/skills/:plugin/:skill/history/:timestamp", async (req, res, params) => {
|
|
472
515
|
const skillDir = resolveSkillDir(root, params.plugin, params.skill);
|
|
@@ -477,6 +520,16 @@ export function registerRoutes(router, root, projectName) {
|
|
|
477
520
|
}
|
|
478
521
|
sendJson(res, entry, 200, req);
|
|
479
522
|
});
|
|
523
|
+
// Delete history entry
|
|
524
|
+
router.delete("/api/skills/:plugin/:skill/history/:timestamp", async (req, res, params) => {
|
|
525
|
+
const skillDir = resolveSkillDir(root, params.plugin, params.skill);
|
|
526
|
+
const deleted = await deleteHistoryEntry(skillDir, params.timestamp);
|
|
527
|
+
if (!deleted) {
|
|
528
|
+
sendJson(res, { error: "History entry not found" }, 404, req);
|
|
529
|
+
return;
|
|
530
|
+
}
|
|
531
|
+
sendJson(res, { ok: true }, 200, req);
|
|
532
|
+
});
|
|
480
533
|
// Get latest benchmark
|
|
481
534
|
router.get("/api/skills/:plugin/:skill/benchmark/latest", async (req, res, params) => {
|
|
482
535
|
const skillDir = resolveSkillDir(root, params.plugin, params.skill);
|
|
@@ -514,6 +567,19 @@ export function registerRoutes(router, root, projectName) {
|
|
|
514
567
|
sendSSEDone(res, { error: err instanceof Error ? err.message : String(err) });
|
|
515
568
|
}
|
|
516
569
|
});
|
|
570
|
+
// Get skill dependencies (MCP + skill-to-skill)
|
|
571
|
+
router.get("/api/skills/:plugin/:skill/dependencies", async (req, res, params) => {
|
|
572
|
+
const skillDir = resolveSkillDir(root, params.plugin, params.skill);
|
|
573
|
+
const skillMdPath = join(skillDir, "SKILL.md");
|
|
574
|
+
if (!existsSync(skillMdPath)) {
|
|
575
|
+
sendJson(res, { error: "SKILL.md not found" }, 404, req);
|
|
576
|
+
return;
|
|
577
|
+
}
|
|
578
|
+
const content = readFileSync(skillMdPath, "utf-8");
|
|
579
|
+
const mcpDependencies = detectMcpDependencies(content);
|
|
580
|
+
const skillDependencies = detectSkillDependencies(content);
|
|
581
|
+
sendJson(res, { mcpDependencies, skillDependencies }, 200, req);
|
|
582
|
+
});
|
|
517
583
|
// Handle CORS preflight
|
|
518
584
|
router.options = (req, res) => {
|
|
519
585
|
const origin = req.headers.origin;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-routes.js","sourceRoot":"","sources":["../../src/eval-server/api-routes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api-routes.js","sourceRoot":"","sources":["../../src/eval-server/api-routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type * as http from "node:http";
|
|
2
|
+
import type { EvalCase } from "../eval/schema.js";
|
|
3
|
+
import type { LlmClient } from "../eval/llm.js";
|
|
4
|
+
export interface BenchmarkRunOptions {
|
|
5
|
+
res: http.ServerResponse;
|
|
6
|
+
skillDir: string;
|
|
7
|
+
skillName: string;
|
|
8
|
+
systemPrompt: string;
|
|
9
|
+
runType: "benchmark" | "baseline";
|
|
10
|
+
provider: string;
|
|
11
|
+
evalCases: EvalCase[];
|
|
12
|
+
filterIds: Set<number> | null;
|
|
13
|
+
client: LlmClient;
|
|
14
|
+
isAborted: () => boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare function runBenchmarkSSE(opts: BenchmarkRunOptions): Promise<void>;
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// benchmark-runner.ts -- extracted SSE benchmark execution loop
|
|
3
|
+
// Shared by /benchmark and /baseline endpoints
|
|
4
|
+
// ---------------------------------------------------------------------------
|
|
5
|
+
import { judgeAssertion } from "../eval/judge.js";
|
|
6
|
+
import { writeHistoryEntry } from "../eval/benchmark-history.js";
|
|
7
|
+
import { sendSSE, sendSSEDone } from "./sse-helpers.js";
|
|
8
|
+
export async function runBenchmarkSSE(opts) {
|
|
9
|
+
const { res, skillDir, skillName, systemPrompt, runType, provider, evalCases: allCases, filterIds, client, isAborted, } = opts;
|
|
10
|
+
const evalCases = filterIds
|
|
11
|
+
? allCases.filter((e) => filterIds.has(e.id))
|
|
12
|
+
: allCases;
|
|
13
|
+
const cases = [];
|
|
14
|
+
for (const evalCase of evalCases) {
|
|
15
|
+
if (isAborted())
|
|
16
|
+
break;
|
|
17
|
+
sendSSE(res, "case_start", {
|
|
18
|
+
eval_id: evalCase.id,
|
|
19
|
+
eval_name: evalCase.name,
|
|
20
|
+
total: evalCases.length,
|
|
21
|
+
});
|
|
22
|
+
try {
|
|
23
|
+
const genResult = await client.generate(systemPrompt, evalCase.prompt);
|
|
24
|
+
const totalTokens = genResult.inputTokens != null && genResult.outputTokens != null
|
|
25
|
+
? genResult.inputTokens + genResult.outputTokens
|
|
26
|
+
: null;
|
|
27
|
+
sendSSE(res, "output_ready", {
|
|
28
|
+
eval_id: evalCase.id,
|
|
29
|
+
output: genResult.text,
|
|
30
|
+
durationMs: genResult.durationMs,
|
|
31
|
+
tokens: totalTokens,
|
|
32
|
+
});
|
|
33
|
+
const assertionResults = [];
|
|
34
|
+
for (const assertion of evalCase.assertions) {
|
|
35
|
+
if (isAborted())
|
|
36
|
+
break;
|
|
37
|
+
const result = await judgeAssertion(genResult.text, assertion, client);
|
|
38
|
+
assertionResults.push(result);
|
|
39
|
+
sendSSE(res, "assertion_result", {
|
|
40
|
+
eval_id: evalCase.id,
|
|
41
|
+
assertion_id: result.id,
|
|
42
|
+
text: result.text,
|
|
43
|
+
pass: result.pass,
|
|
44
|
+
reasoning: result.reasoning,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
const passRate = assertionResults.length > 0
|
|
48
|
+
? assertionResults.filter((a) => a.pass).length / assertionResults.length
|
|
49
|
+
: 0;
|
|
50
|
+
const status = assertionResults.every((a) => a.pass) ? "pass" : "fail";
|
|
51
|
+
const benchCase = {
|
|
52
|
+
eval_id: evalCase.id,
|
|
53
|
+
eval_name: evalCase.name,
|
|
54
|
+
status: status,
|
|
55
|
+
error_message: null,
|
|
56
|
+
pass_rate: passRate,
|
|
57
|
+
durationMs: genResult.durationMs,
|
|
58
|
+
tokens: totalTokens,
|
|
59
|
+
inputTokens: genResult.inputTokens,
|
|
60
|
+
outputTokens: genResult.outputTokens,
|
|
61
|
+
output: genResult.text,
|
|
62
|
+
assertions: assertionResults,
|
|
63
|
+
};
|
|
64
|
+
cases.push(benchCase);
|
|
65
|
+
sendSSE(res, "case_complete", {
|
|
66
|
+
eval_id: evalCase.id,
|
|
67
|
+
status,
|
|
68
|
+
pass_rate: passRate,
|
|
69
|
+
durationMs: genResult.durationMs,
|
|
70
|
+
tokens: totalTokens,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
catch (err) {
|
|
74
|
+
const errorMsg = err instanceof Error ? err.message : String(err);
|
|
75
|
+
cases.push({
|
|
76
|
+
eval_id: evalCase.id,
|
|
77
|
+
eval_name: evalCase.name,
|
|
78
|
+
status: "error",
|
|
79
|
+
error_message: errorMsg,
|
|
80
|
+
pass_rate: 0,
|
|
81
|
+
assertions: [],
|
|
82
|
+
});
|
|
83
|
+
sendSSE(res, "case_complete", {
|
|
84
|
+
eval_id: evalCase.id,
|
|
85
|
+
status: "error",
|
|
86
|
+
error_message: errorMsg,
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
const totalAssertions = cases.reduce((s, c) => s + c.assertions.length, 0);
|
|
91
|
+
const passedAssertions = cases.reduce((s, c) => s + c.assertions.filter((a) => a.pass).length, 0);
|
|
92
|
+
const totalDurationMs = cases.reduce((s, c) => s + (c.durationMs ?? 0), 0);
|
|
93
|
+
const hasTokens = cases.some((c) => c.inputTokens != null);
|
|
94
|
+
const result = {
|
|
95
|
+
timestamp: new Date().toISOString(),
|
|
96
|
+
model: client.model,
|
|
97
|
+
skill_name: skillName,
|
|
98
|
+
cases,
|
|
99
|
+
overall_pass_rate: totalAssertions > 0 ? passedAssertions / totalAssertions : 0,
|
|
100
|
+
type: runType,
|
|
101
|
+
provider,
|
|
102
|
+
totalDurationMs,
|
|
103
|
+
totalInputTokens: hasTokens ? cases.reduce((s, c) => s + (c.inputTokens ?? 0), 0) : null,
|
|
104
|
+
totalOutputTokens: hasTokens ? cases.reduce((s, c) => s + (c.outputTokens ?? 0), 0) : null,
|
|
105
|
+
};
|
|
106
|
+
if (!isAborted()) {
|
|
107
|
+
// Only save to history for full runs (not single-case)
|
|
108
|
+
if (!filterIds) {
|
|
109
|
+
await writeHistoryEntry(skillDir, result);
|
|
110
|
+
}
|
|
111
|
+
sendSSEDone(res, result);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=benchmark-runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"benchmark-runner.js","sourceRoot":"","sources":["../../src/eval-server/benchmark-runner.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,gEAAgE;AAChE,+CAA+C;AAC/C,8EAA8E;AAM9E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAexD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAyB;IAC7D,MAAM,EACJ,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EACzD,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAClD,GAAG,IAAI,CAAC;IAET,MAAM,SAAS,GAAG,SAAS;QACzB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7C,CAAC,CAAC,QAAQ,CAAC;IAEb,MAAM,KAAK,GAAoB,EAAE,CAAC;IAElC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,SAAS,EAAE;YAAE,MAAM;QAEvB,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE;YACzB,OAAO,EAAE,QAAQ,CAAC,EAAE;YACpB,SAAS,EAAE,QAAQ,CAAC,IAAI;YACxB,KAAK,EAAE,SAAS,CAAC,MAAM;SACxB,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;YACvE,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,IAAI,IAAI,IAAI,SAAS,CAAC,YAAY,IAAI,IAAI;gBACjF,CAAC,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,YAAY;gBAChD,CAAC,CAAC,IAAI,CAAC;YAET,OAAO,CAAC,GAAG,EAAE,cAAc,EAAE;gBAC3B,OAAO,EAAE,QAAQ,CAAC,EAAE;gBACpB,MAAM,EAAE,SAAS,CAAC,IAAI;gBACtB,UAAU,EAAE,SAAS,CAAC,UAAU;gBAChC,MAAM,EAAE,WAAW;aACpB,CAAC,CAAC;YAEH,MAAM,gBAAgB,GAA+B,EAAE,CAAC;YAExD,KAAK,MAAM,SAAS,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;gBAC5C,IAAI,SAAS,EAAE;oBAAE,MAAM;gBACvB,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;gBACvE,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC9B,OAAO,CAAC,GAAG,EAAE,kBAAkB,EAAE;oBAC/B,OAAO,EAAE,QAAQ,CAAC,EAAE;oBACpB,YAAY,EAAE,MAAM,CAAC,EAAE;oBACvB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,SAAS,EAAE,MAAM,CAAC,SAAS;iBAC5B,CAAC,CAAC;YACL,CAAC;YAED,MAAM,QAAQ,GACZ,gBAAgB,CAAC,MAAM,GAAG,CAAC;gBACzB,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM;gBACzE,CAAC,CAAC,CAAC,CAAC;YACR,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;YAEvE,MAAM,SAAS,GAAkB;gBAC/B,OAAO,EAAE,QAAQ,CAAC,EAAE;gBACpB,SAAS,EAAE,QAAQ,CAAC,IAAI;gBACxB,MAAM,EAAE,MAAyB;gBACjC,aAAa,EAAE,IAAI;gBACnB,SAAS,EAAE,QAAQ;gBACnB,UAAU,EAAE,SAAS,CAAC,UAAU;gBAChC,MAAM,EAAE,WAAW;gBACnB,WAAW,EAAE,SAAS,CAAC,WAAW;gBAClC,YAAY,EAAE,SAAS,CAAC,YAAY;gBACpC,MAAM,EAAE,SAAS,CAAC,IAAI;gBACtB,UAAU,EAAE,gBAAgB;aAC7B,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAEtB,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE;gBAC5B,OAAO,EAAE,QAAQ,CAAC,EAAE;gBACpB,MAAM;gBACN,SAAS,EAAE,QAAQ;gBACnB,UAAU,EAAE,SAAS,CAAC,UAAU;gBAChC,MAAM,EAAE,WAAW;aACpB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAClE,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE,QAAQ,CAAC,EAAE;gBACpB,SAAS,EAAE,QAAQ,CAAC,IAAI;gBACxB,MAAM,EAAE,OAAO;gBACf,aAAa,EAAE,QAAQ;gBACvB,SAAS,EAAE,CAAC;gBACZ,UAAU,EAAE,EAAE;aACf,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE;gBAC5B,OAAO,EAAE,QAAQ,CAAC,EAAE;gBACpB,MAAM,EAAE,OAAO;gBACf,aAAa,EAAE,QAAQ;aACxB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC3E,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CACnC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EACvD,CAAC,CACF,CAAC;IACF,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3E,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC;IAE3D,MAAM,MAAM,GAAoB;QAC9B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,UAAU,EAAE,SAAS;QACrB,KAAK;QACL,iBAAiB,EAAE,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QAC/E,IAAI,EAAE,OAAO;QACb,QAAQ;QACR,eAAe;QACf,gBAAgB,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;QACxF,iBAAiB,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;KAC3F,CAAC;IAEF,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;QACjB,uDAAuD;QACvD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC5C,CAAC;QACD,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC"}
|