@evalstudio/cli 0.3.2 → 0.3.4
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/config.d.ts +3 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +75 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/run.js +4 -4
- package/dist/commands/run.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/web-dist/assets/index-DD1NTjgB.css +1 -0
- package/web-dist/assets/index-DPYukG1c.js +277 -0
- package/web-dist/index.html +2 -2
- package/web-dist/assets/index-B-xxefcg.js +0 -277
- package/web-dist/assets/index-DO-BmJgz.css +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,eAAO,MAAM,aAAa,SA4EvB,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { getProjectConfig, updateProjectConfig } from "@evalstudio/core";
|
|
3
|
+
export const configCommand = new Command("config")
|
|
4
|
+
.description("View or update project configuration")
|
|
5
|
+
.addCommand(new Command("show")
|
|
6
|
+
.description("Show current project configuration")
|
|
7
|
+
.option("--json", "Output as JSON")
|
|
8
|
+
.action((options) => {
|
|
9
|
+
const config = getProjectConfig();
|
|
10
|
+
if (options.json) {
|
|
11
|
+
console.log(JSON.stringify(config, null, 2));
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
console.log("Project Configuration");
|
|
15
|
+
console.log("---------------------");
|
|
16
|
+
console.log(` Name: ${config.name}`);
|
|
17
|
+
console.log(` Version: ${config.version}`);
|
|
18
|
+
console.log(` Max Concurrency: ${config.maxConcurrency ?? "3 (default)"}`);
|
|
19
|
+
if (config.llmSettings?.evaluation) {
|
|
20
|
+
console.log(` Eval Provider: ${config.llmSettings.evaluation.providerId}`);
|
|
21
|
+
if (config.llmSettings.evaluation.model) {
|
|
22
|
+
console.log(` Eval Model: ${config.llmSettings.evaluation.model}`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (config.llmSettings?.persona) {
|
|
26
|
+
console.log(` Persona Provider: ${config.llmSettings.persona.providerId}`);
|
|
27
|
+
if (config.llmSettings.persona.model) {
|
|
28
|
+
console.log(` Persona Model: ${config.llmSettings.persona.model}`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}))
|
|
33
|
+
.addCommand(new Command("set")
|
|
34
|
+
.description("Update a project configuration value")
|
|
35
|
+
.argument("<key>", "Configuration key (e.g., maxConcurrency, name)")
|
|
36
|
+
.argument("<value>", "Configuration value")
|
|
37
|
+
.option("--json", "Output as JSON")
|
|
38
|
+
.action((key, value, options) => {
|
|
39
|
+
try {
|
|
40
|
+
let input = {};
|
|
41
|
+
switch (key) {
|
|
42
|
+
case "maxConcurrency": {
|
|
43
|
+
const num = parseInt(value, 10);
|
|
44
|
+
if (isNaN(num)) {
|
|
45
|
+
console.error("Error: maxConcurrency must be a number");
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
input = { maxConcurrency: num };
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
case "name":
|
|
52
|
+
input = { name: value };
|
|
53
|
+
break;
|
|
54
|
+
default:
|
|
55
|
+
console.error(`Error: Unknown configuration key "${key}"`);
|
|
56
|
+
console.error("Available keys: name, maxConcurrency");
|
|
57
|
+
process.exit(1);
|
|
58
|
+
}
|
|
59
|
+
const config = updateProjectConfig(input);
|
|
60
|
+
if (options.json) {
|
|
61
|
+
console.log(JSON.stringify(config, null, 2));
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
console.log(`Set ${key} = ${value}`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
if (error instanceof Error) {
|
|
69
|
+
console.error(`Error: ${error.message}`);
|
|
70
|
+
process.exit(1);
|
|
71
|
+
}
|
|
72
|
+
throw error;
|
|
73
|
+
}
|
|
74
|
+
}));
|
|
75
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/run.js
CHANGED
|
@@ -193,18 +193,18 @@ export const runCommand = new Command("run")
|
|
|
193
193
|
.addCommand(new Command("process")
|
|
194
194
|
.description("Process queued runs")
|
|
195
195
|
.option("-w, --watch", "Watch mode - continuously process runs")
|
|
196
|
-
.option("-c, --concurrency <number>", "Maximum concurrent runs (default: 3)")
|
|
196
|
+
.option("-c, --concurrency <number>", "Maximum concurrent runs (default: project config or 3)")
|
|
197
197
|
.option("--poll <ms>", "Poll interval in milliseconds (default: 2000)")
|
|
198
198
|
.action(async (options) => {
|
|
199
199
|
const maxConcurrent = options.concurrency
|
|
200
200
|
? parseInt(options.concurrency, 10)
|
|
201
|
-
:
|
|
201
|
+
: undefined;
|
|
202
202
|
const pollIntervalMs = options.poll
|
|
203
203
|
? parseInt(options.poll, 10)
|
|
204
204
|
: 2000;
|
|
205
205
|
const processor = new RunProcessor({
|
|
206
206
|
pollIntervalMs,
|
|
207
|
-
maxConcurrent,
|
|
207
|
+
...(maxConcurrent !== undefined ? { maxConcurrent } : {}),
|
|
208
208
|
onRunStart: (run) => {
|
|
209
209
|
console.log(`\x1b[36m▶\x1b[0m Starting run ${run.id}`);
|
|
210
210
|
},
|
|
@@ -218,7 +218,7 @@ export const runCommand = new Command("run")
|
|
|
218
218
|
if (options.watch) {
|
|
219
219
|
// Watch mode: run continuously
|
|
220
220
|
console.log("Starting run processor in watch mode...");
|
|
221
|
-
console.log(` Concurrency: ${maxConcurrent}`);
|
|
221
|
+
console.log(` Concurrency: ${maxConcurrent ?? "project config or 3"}`);
|
|
222
222
|
console.log(` Poll interval: ${pollIntervalMs}ms`);
|
|
223
223
|
console.log("\nPress Ctrl+C to stop\n");
|
|
224
224
|
processor.start();
|
package/dist/commands/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,UAAU,EACV,SAAS,EACT,YAAY,EACZ,OAAO,EACP,UAAU,EACV,MAAM,EACN,WAAW,EACX,QAAQ,EACR,YAAY,GAEb,MAAM,kBAAkB,CAAC;AAE1B,SAAS,eAAe,CAAC,GAAQ;IAC/B,MAAM,YAAY,GAA2B;QAC3C,MAAM,EAAE,UAAU,EAAK,SAAS;QAChC,OAAO,EAAE,UAAU,EAAI,OAAO;QAC9B,SAAS,EAAE,UAAU,EAAE,QAAQ;QAC/B,MAAM,EAAE,UAAU,EAAK,MAAM;KAC9B,CAAC;IACF,MAAM,KAAK,GAAG,SAAS,CAAC;IACxB,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC7C,OAAO,GAAG,KAAK,GAAG,GAAG,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC;KACzC,WAAW,CAAC,oCAAoC,CAAC;KACjD,UAAU,CACT,IAAI,OAAO,CAAC,QAAQ,CAAC;KAClB,WAAW,CAAC,8BAA8B,CAAC;KAC3C,cAAc,CAAC,mBAAmB,EAAE,SAAS,CAAC;KAC9C,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CACL,CAAC,OAGA,EAAE,EAAE;IACH,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,gBAAgB,OAAO,CAAC,IAAI,aAAa,CAAC,CAAC;YACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QAEjD,+BAA+B;QAC/B,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAErD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,8BAA8B,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACjE,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC1C,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,GAAG,CAAC,gBAAgB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC9C,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,gBAAgB,SAAS,EAAE,IAAI,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;gBACvE,OAAO,CAAC,GAAG,CAAC,gBAAgB,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACpD,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC7C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;oBAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CACF,CACJ;KACA,UAAU,CACT,IAAI,OAAO,CAAC,MAAM,CAAC;KAChB,WAAW,CAAC,WAAW,CAAC;KACxB,MAAM,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;KAChD,MAAM,CAAC,uBAAuB,EAAE,uDAAuD,CAAC;KACxF,MAAM,CAAC,sBAAsB,EAAE,gCAAgC,CAAC;KAChE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CACL,CAAC,OAKA,EAAE,EAAE;IACH,MAAM,IAAI,GAAG,QAAQ,CAAC;QACpB,MAAM,EAAE,OAAO,CAAC,IAAI;QACpB,MAAM,EAAE,OAAO,CAAC,MAAmC;QACnD,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;KAC/D,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;SAAM,CAAC;QACN,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,gBAAgB,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,CAAC,MAAM,IAAI,YAAY,EAAE,CAAC,CAAC;YAC1D,0BAA0B;YAC1B,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;gBAClB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC1C,OAAO,CAAC,GAAG,CAAC,gBAAgB,OAAO,EAAE,IAAI,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;YAChE,CAAC;YACD,iEAAiE;YACjE,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBACf,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACrC,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;oBACrD,OAAO,CAAC,GAAG,CAAC,kBAAkB,SAAS,EAAE,IAAI,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;gBAC3E,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;gBAC3B,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAChD,OAAO,CAAC,GAAG,CAAC,kBAAkB,SAAS,EAAE,IAAI,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;YACtE,CAAC;YACD,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;YAC3C,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;AACH,CAAC,CACF,CACJ;KACA,UAAU,CACT,IAAI,OAAO,CAAC,MAAM,CAAC;KAChB,WAAW,CAAC,kBAAkB,CAAC;KAC/B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;KAC1B,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,CAAC,EAAU,EAAE,OAA2B,EAAE,EAAE;IAClD,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IAEvB,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,gBAAgB,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,CAAC,MAAM,IAAI,YAAY,EAAE,CAAC,CAAC;QAC1D,4BAA4B;QAC5B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,gBAAgB,QAAQ,EAAE,IAAI,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;QAChE,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,gBAAgB,OAAO,EAAE,IAAI,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;QAChE,CAAC;QACD,iEAAiE;QACjE,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACrC,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBACrD,OAAO,CAAC,GAAG,CAAC,gBAAgB,SAAS,EAAE,IAAI,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;aAAM,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,gBAAgB,SAAS,EAAE,IAAI,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YACxE,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAClD,CAAC;YACD,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC,CAAC,CACL;KACA,UAAU,CACT,IAAI,OAAO,CAAC,QAAQ,CAAC;KAClB,WAAW,CAAC,cAAc,CAAC;KAC3B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;KAC1B,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,CAAC,EAAU,EAAE,OAA2B,EAAE,EAAE;IAClD,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IAEvB,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;IAE9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC;IAClD,CAAC;AACH,CAAC,CAAC,CACL;KACA,UAAU,CACT,IAAI,OAAO,CAAC,SAAS,CAAC;KACnB,WAAW,CAAC,qBAAqB,CAAC;KAClC,MAAM,CAAC,aAAa,EAAE,wCAAwC,CAAC;KAC/D,MAAM,CAAC,4BAA4B,EAAE,wDAAwD,CAAC;KAC9F,MAAM,CAAC,aAAa,EAAE,+CAA+C,CAAC;KACtE,MAAM,CACL,KAAK,EAAE,OAIN,EAAE,EAAE;IACH,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW;QACvC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;QACnC,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI;QACjC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QAC5B,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,SAAS,GAAG,IAAI,YAAY,CAAC;QACjC,cAAc;QACd,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE;YAClB,OAAO,CAAC,GAAG,CAAC,iCAAiC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YAC7B,OAAO,CAAC,GAAG,CACT,wBAAwB,GAAG,CAAC,EAAE,eAAe,MAAM,CAAC,SAAS,KAAK,CACnE,CAAC;QACJ,CAAC;QACD,UAAU,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YACzB,OAAO,CAAC,KAAK,CACX,wBAAwB,GAAG,CAAC,EAAE,YAAY,KAAK,CAAC,OAAO,EAAE,CAC1D,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,+BAA+B;QAC/B,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,kBAAkB,aAAa,IAAI,qBAAqB,EAAE,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,oBAAoB,cAAc,IAAI,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QAExC,SAAS,CAAC,KAAK,EAAE,CAAC;QAElB,kBAAkB;QAClB,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;YAC1B,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YACvC,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC;QAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAEhC,yBAAyB;QACzB,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC9B,CAAC;SAAM,CAAC;QACN,kDAAkD;QAClD,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAE3C,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,OAAO,GAAG,IAAI,CAAC;QAEnB,OAAO,OAAO,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,WAAW,EAAE,CAAC;YAC9C,cAAc,IAAI,OAAO,CAAC;YAE1B,sCAAsC;YACtC,MAAM,MAAM,GAAG,QAAQ,CAAC;gBACtB,MAAM,EAAE,QAAQ;gBAChB,KAAK,EAAE,CAAC;aACT,CAAC,CAAC;YACH,OAAO,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,eAAe,cAAc,SAAS,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;AACH,CAAC,CACF,CACJ,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from "module";
|
|
3
3
|
import { Command } from "commander";
|
|
4
|
+
import { configCommand } from "./commands/config.js";
|
|
4
5
|
import { connectorCommand } from "./commands/connector.js";
|
|
5
6
|
import { evalCommand } from "./commands/eval.js";
|
|
6
7
|
import { initCommand } from "./commands/init.js";
|
|
@@ -18,6 +19,7 @@ program
|
|
|
18
19
|
.name("evalstudio")
|
|
19
20
|
.description("EvalStudio CLI - Test chatbots, AI agents, and REST APIs")
|
|
20
21
|
.version(packageJson.version);
|
|
22
|
+
program.addCommand(configCommand);
|
|
21
23
|
program.addCommand(initCommand);
|
|
22
24
|
program.addCommand(connectorCommand);
|
|
23
25
|
program.addCommand(evalCommand);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAEtE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,0DAA0D,CAAC;KACvE,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAEhC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;AACvC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAElC,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;IACxC,IAAK,GAA6B,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QAC3D,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAEtE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,0DAA0D,CAAC;KACvE,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAEhC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;AACvC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAElC,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;IACxC,IAAK,GAA6B,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QAC3D,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@evalstudio/cli",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.4",
|
|
4
4
|
"description": "Command-line interface for EvalStudio",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"commander": "^13.0.0",
|
|
34
|
-
"@evalstudio/core": "0.3.
|
|
35
|
-
"@evalstudio/api": "0.3.
|
|
34
|
+
"@evalstudio/core": "0.3.4",
|
|
35
|
+
"@evalstudio/api": "0.3.4"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@types/node": "^22.10.10",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*{box-sizing:border-box;margin:0;padding:0}:root{--color-primary: #6366f1;--color-primary-dark: #4f46e5;--color-danger: #ef4444;--color-danger-dark: #dc2626;--color-success: #22c55e;--color-bg: #f8fafc;--color-surface: #ffffff;--color-border: #e2e8f0;--color-text: #1e293b;--color-text-secondary: #64748b;--radius: 8px;--shadow: 0 1px 3px rgba(0, 0, 0, .1)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:var(--color-bg);color:var(--color-text);line-height:1.5}.app{min-height:100vh}.header{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.header h1{font-size:1.5rem;font-weight:600}.floating-status-bar{position:fixed;bottom:1rem;left:1rem;z-index:50;display:flex;align-items:center;gap:.5rem;font-size:.75rem;padding:.375rem .75rem;border-radius:var(--radius);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:0 2px 8px #0000001a;color:var(--color-text-secondary)}.floating-status-ok{border-color:#bbf7d0}.floating-status-error{border-color:#fecaca;color:#991b1b}.floating-status-bar .status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.floating-status-bar .status-online{background:#22c55e}.floating-status-bar .status-offline{background:#ef4444}.floating-status-bar .status-connecting{background:#f59e0b;animation:pulse 1.5s ease-in-out infinite}.floating-status-bar .status-separator{color:var(--color-border)}.main{max-width:960px;margin:0 auto;padding:2rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.section-header h2{font-size:1.25rem;font-weight:600}.btn{padding:.5rem 1rem;border:none;border-radius:var(--radius);font-size:.875rem;font-weight:500;cursor:pointer;transition:background .15s}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-dark)}.btn-secondary{background:var(--color-border);color:var(--color-text)}.btn-secondary:hover:not(:disabled){background:#cbd5e1}.btn-success{background:#10b981;color:#fff}.btn-success:hover:not(:disabled){background:#059669}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--color-danger-dark)}.btn-inline{width:auto;align-self:flex-start}.loading,.error,.empty-state{text-align:center;padding:3rem;color:var(--color-text-secondary)}.error{color:var(--color-danger)}.project-list{display:flex;flex-direction:column;gap:1rem}.project-card{display:flex;justify-content:space-between;align-items:flex-start;padding:1.25rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow)}.project-info h3{font-size:1rem;font-weight:600;margin-bottom:.25rem}.project-info p{color:var(--color-text-secondary);font-size:.875rem;margin-bottom:.5rem}.project-date{font-size:.75rem;color:var(--color-text-secondary)}.project-actions{display:flex;gap:.5rem}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--color-surface);border-radius:var(--radius);padding:1.5rem;width:100%;max-width:480px;box-shadow:0 25px 50px -12px #00000040}.modal h3{font-size:1.125rem;font-weight:600;margin-bottom:1.25rem}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.875rem;font-weight:500;margin-bottom:.375rem}.form-group input,.form-group textarea{width:100%;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:.875rem;font-family:inherit}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #6366f11a}.form-error{background:#fee2e2;color:#991b1b;padding:.75rem;border-radius:var(--radius);font-size:.875rem;margin-bottom:1rem}.form-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem}.form-hint{display:block;font-size:.75rem;color:var(--color-text-secondary);margin-top:.25rem}.form-info{background:var(--color-bg);border-radius:var(--radius);padding:.75rem;font-size:.8125rem;color:var(--color-text-secondary);margin-top:1rem}.form-info p{margin:0}.project-card{cursor:pointer;transition:border-color .15s,box-shadow .15s}.project-card:hover{border-color:var(--color-primary)}.project-card.selected{border-color:var(--color-primary);box-shadow:0 0 0 3px #6366f11a}.personas-section{margin-top:2.5rem;padding-top:2rem;border-top:1px solid var(--color-border)}.persona-list{display:flex;flex-direction:column;gap:.5rem}.persona-row{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius)}.persona-name{font-weight:600;font-size:.875rem;white-space:nowrap}.persona-description{flex:1;color:var(--color-text-secondary);font-size:.8125rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.persona-menu-container{position:relative;margin-left:auto}.persona-menu-btn{background:none;border:none;padding:.25rem .5rem;cursor:pointer;font-size:1rem;font-weight:700;color:var(--color-text-secondary);border-radius:var(--radius)}.persona-menu-btn:hover{background:var(--color-border)}.persona-menu-dropdown{position:absolute;top:100%;right:0;margin-top:.25rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:0 4px 12px #00000026;z-index:100;min-width:100px}.persona-menu-item{display:block;width:100%;padding:.5rem .75rem;text-align:left;background:none;border:none;cursor:pointer;font-size:.8125rem}.persona-menu-item:hover{background:var(--color-bg)}.persona-menu-item-danger{color:var(--color-danger)}.persona-menu-item-danger:hover{background:#fef2f2}.persona-row-clickable{cursor:pointer;transition:border-color .15s,box-shadow .15s}.persona-row-clickable:hover{border-color:var(--color-primary);box-shadow:0 2px 8px #6366f126}.persona-detail-content{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow)}.persona-edit-form{display:flex;flex-direction:column;gap:1.5rem}.persona-edit-form .form-group{margin-bottom:0}.persona-edit-form textarea{min-height:100px;resize:vertical}.persona-runs-section{margin-top:2rem}.persona-runs-section h2{font-size:1.125rem;font-weight:600;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--color-border)}.btn-sm{padding:.25rem .625rem;font-size:.75rem}.project-layout{display:flex;min-height:100vh}.project-layout-loading,.project-layout-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;text-align:center;padding:2rem;color:var(--color-text-secondary)}.project-layout-error h2{color:var(--color-text);margin-bottom:.5rem}.project-layout-error p{margin-bottom:1.5rem}.project-content{flex:1;padding:2rem;overflow-y:auto}.sidebar{width:240px;background:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;flex-shrink:0}.sidebar-header{padding:1rem;border-bottom:1px solid var(--color-border)}.sidebar-back{font-size:.75rem;color:var(--color-text-secondary);text-decoration:none;display:block;margin-bottom:.5rem}.sidebar-back:hover{color:var(--color-primary)}.sidebar-project-name{font-size:1rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-nav{flex:1;padding:.75rem 0;overflow-y:auto}.sidebar-link{display:flex;align-items:center;gap:.625rem;padding:.625rem 1rem;color:var(--color-text-secondary);text-decoration:none;font-size:.875rem;transition:background .15s,color .15s}.sidebar-link:hover{background:var(--color-bg);color:var(--color-text)}.sidebar-link.active{background:#6366f11a;color:var(--color-primary);font-weight:500}.sidebar-link-nested{padding-left:2.5rem}.sidebar-icon{font-size:.75rem;width:1rem;text-align:center}.sidebar-divider{height:1px;background:var(--color-border);margin:.5rem 1rem}.sidebar-section-title{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);padding:.75rem 1rem .375rem}.page{max-width:960px;display:flex;flex-direction:column;gap:1.5rem}.page-header{display:flex;justify-content:space-between;align-items:center}.page-header h1{font-size:1.5rem;font-weight:600}.page-header-actions{display:flex;align-items:center;gap:.5rem}.import-report{padding:.75rem 1rem;border-radius:var(--radius);font-size:.8125rem;margin-bottom:.5rem;border:1px solid var(--color-border);background:var(--color-surface)}.import-report-success{border-color:#22c55e4d}.import-report-warning{border-color:#eab30866}.import-report-header{display:flex;justify-content:space-between;align-items:center}.import-report-title{font-weight:600;font-size:.875rem}.import-report-dismiss{background:none;border:none;cursor:pointer;color:var(--color-text-secondary);font-size:.875rem;padding:0 .25rem;line-height:1}.import-report-dismiss:hover{color:var(--color-text)}.import-report-stats{display:flex;gap:1rem;margin-top:.5rem}.import-report-stat{font-variant-numeric:tabular-nums}.import-report-stat-created{color:#16a34a}.import-report-stat-failed{color:var(--color-danger)}.import-report-stat-total{color:var(--color-text-secondary)}.import-report-results{margin-top:.5rem;list-style:none;display:flex;flex-direction:column;gap:.25rem}.import-report-results li{display:flex;align-items:baseline;gap:.5rem}.import-result-icon{flex-shrink:0;font-weight:700;font-size:.75rem;width:1rem;text-align:center}.import-result-ok .import-result-icon{color:#16a34a}.import-result-error .import-result-icon{color:var(--color-danger)}.import-result-name{font-weight:500}.import-result-error .import-result-name{color:var(--color-text-secondary)}.import-result-error-msg{color:var(--color-danger);font-size:.75rem}.menu-container{position:relative}.menu-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius);cursor:pointer;color:var(--color-text-secondary);transition:background .15s,color .15s,border-color .15s}.menu-btn:hover{background:var(--color-bg);color:var(--color-text);border-color:var(--color-text-secondary)}.menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10}.menu-dropdown{position:absolute;top:100%;right:0;z-index:20;min-width:140px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:0 4px 12px #00000026;padding:.25rem;margin-top:.25rem}.menu-item{display:flex;align-items:center;gap:.375rem;width:100%;padding:.5rem .75rem;border:none;background:transparent;text-align:left;font-size:.875rem;cursor:pointer;border-radius:calc(var(--radius) / 2);transition:background .15s;color:var(--color-text);white-space:nowrap}.menu-item:hover{background:var(--color-bg)}.menu-item-icon{width:14px;height:14px;flex-shrink:0}.btn-icon{width:14px;height:14px;flex-shrink:0;vertical-align:-2px;margin-right:.25rem}.menu-item-danger{color:var(--color-danger)}.menu-item-danger:hover{background:#fee2e2}.menu-item:disabled{opacity:.5;cursor:not-allowed}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem}.dashboard-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow)}.dashboard-card h3{font-size:.875rem;font-weight:600;margin-bottom:1rem;color:var(--color-text-secondary)}.text-muted{color:var(--color-text-secondary);font-size:.875rem}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;text-align:center}.stat-value{display:block;font-size:1.5rem;font-weight:600;color:var(--color-text)}.stat-value.stat-success{color:#16a34a}.stat-value.stat-failed{color:var(--color-danger)}.stat-label{font-size:.75rem;color:var(--color-text-secondary)}.stat-link{display:block;padding:.5rem;border-radius:var(--radius);text-decoration:none;transition:background-color .15s ease}.stat-link:hover{background:var(--color-border)}.stat-link:hover .stat-label{color:var(--color-primary)}.dashboard-card-wide{grid-column:span 3}.dashboard-charts-row{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.dashboard-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.dashboard-card-header h3{margin:0}@media(max-width:768px){.dashboard-charts-row{grid-template-columns:1fr}}@media(max-width:640px){.dashboard-card-wide{grid-column:span 1}}.dashboard-list{display:flex;flex-direction:column;gap:.5rem}.dashboard-list-item{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;background:var(--color-bg);border-radius:calc(var(--radius) / 2);text-decoration:none;color:var(--color-text);transition:background .15s}.dashboard-list-item:hover{background:var(--color-border)}.dashboard-list-name{flex:1;font-size:.875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-list-date{font-size:.75rem;color:var(--color-text-secondary);flex-shrink:0}.dashboard-list-version{font-size:.75rem;font-family:monospace;color:var(--color-primary);font-weight:500;flex-shrink:0}.info-list{font-size:.875rem}.info-list dt{font-weight:500;color:var(--color-text-secondary);margin-top:.75rem}.info-list dt:first-child{margin-top:0}.info-list dd{margin-left:0;color:var(--color-text)}.scenario-list{display:flex;flex-direction:column;gap:.5rem}.scenario-row{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius)}.scenario-name{font-weight:600;font-size:.875rem;white-space:nowrap}.scenario-description{flex:1;color:var(--color-text-secondary);font-size:.8125rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scenario-menu-container{position:relative;margin-left:auto}.scenario-menu-btn{background:none;border:none;padding:.25rem .5rem;cursor:pointer;font-size:1rem;font-weight:700;color:var(--color-text-secondary);border-radius:var(--radius)}.scenario-menu-btn:hover{background:var(--color-border)}.scenario-menu-dropdown{position:absolute;top:100%;right:0;margin-top:.25rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:0 4px 12px #00000026;z-index:100;min-width:100px}.scenario-menu-item{display:block;width:100%;padding:.5rem .75rem;text-align:left;background:none;border:none;cursor:pointer;font-size:.8125rem;color:var(--color-text)}.scenario-menu-item:hover{background:var(--color-border)}.scenario-menu-item-danger{color:var(--color-error)}.scenario-menu-item-danger:hover{background:#ef44441a}.scenario-row-clickable{cursor:pointer;transition:border-color .15s,box-shadow .15s}.scenario-row-clickable:hover{border-color:var(--color-primary);box-shadow:0 2px 8px #6366f126}.scenario-row-selected{border-color:var(--color-primary);background:#6366f10a}.scenario-row-checkbox{width:1rem;height:1rem;cursor:pointer;flex-shrink:0}.scenario-list-toolbar{display:flex;align-items:center;gap:1rem;padding:.5rem 0}.scenario-select-all{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.8125rem;color:var(--color-text-secondary);-webkit-user-select:none;user-select:none}.scenario-select-all input[type=checkbox]{width:1rem;height:1rem;cursor:pointer}.scenario-toolbar-actions{display:flex;align-items:center;gap:.75rem;margin-left:auto}.scenario-selection-count{font-size:.8125rem;color:var(--color-text-secondary)}.btn-sm{padding:.25rem .75rem;font-size:.8125rem}.scenario-edit-form{display:flex;flex-direction:column;gap:1rem}.scenario-edit-form .form-group{margin-bottom:0}.scenario-edit-form textarea:not(.seed-message-content){min-height:100px;resize:vertical}.scenario-edit-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.scenario-edit-form .form-row.form-row-auto{grid-template-columns:1fr auto}.form-group-narrow{max-width:120px}@media(max-width:640px){.scenario-edit-form .form-row{grid-template-columns:1fr}.form-group-narrow{max-width:none}}.form-group select:disabled{opacity:.5;cursor:not-allowed}.criteria-recap{font-style:italic;margin-top:0}.scenario-messages-list{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.scenario-message{padding:.75rem 1rem;border-radius:var(--radius);background:var(--color-bg);border:1px solid var(--color-border)}.scenario-message-user{background:#eff6ff;border-color:#bfdbfe}.scenario-message-assistant{background:#f0fdf4;border-color:#bbf7d0}.scenario-message-system{background:#fefce8;border-color:#fde68a}.scenario-message-role{display:inline-block;font-size:.6875rem;font-weight:600;text-transform:uppercase;color:var(--color-text-secondary);margin-bottom:.25rem}.scenario-message-content{font-size:.875rem;white-space:pre-wrap}.code-textarea{font-family:SF Mono,Monaco,Cascadia Code,monospace;font-size:.8125rem}.seed-messages-editor{display:flex;flex-direction:column;gap:.25rem}.seed-messages-header{display:flex;align-items:center;justify-content:space-between}.seed-messages-header label{font-size:.875rem;font-weight:500}.seed-messages-mode-toggle{display:flex;border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden}.seed-messages-mode-btn{padding:.25rem .625rem;font-size:.75rem;border:none;background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;transition:background .15s,color .15s}.seed-messages-mode-btn:not(:last-child){border-right:1px solid var(--color-border)}.seed-messages-mode-btn.active{background:var(--color-primary);color:#fff}.seed-messages-mode-btn:hover:not(.active){background:var(--color-bg)}.seed-messages-error{font-size:.8125rem;color:var(--color-danger);padding:.375rem .5rem;background:#fef2f2;border-radius:var(--radius);border:1px solid #fecaca}.seed-messages-visual{display:flex;flex-direction:column;gap:.75rem}.seed-messages-empty{text-align:center;padding:1.25rem;color:var(--color-text-secondary);font-size:.8125rem;border:1px dashed var(--color-border);border-radius:var(--radius)}.seed-messages-list{display:flex;flex-direction:column;gap:.75rem}.seed-message-item{padding:.5rem .75rem;border-radius:var(--radius);font-size:.875rem;width:85%;position:relative}.seed-message-item.seed-message-user{background:#eff6ff;border-right:3px solid #3b82f6;margin-left:auto}.seed-message-item.seed-message-assistant{background:#faf5ff;border-left:3px solid #a855f7;margin-right:auto}.seed-message-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.25rem}.seed-message-role-toggle{padding:0;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;border:none;background:none;cursor:pointer}.seed-message-role-toggle:hover{text-decoration:underline}.seed-message-user .seed-message-header{flex-direction:row-reverse}.seed-message-user .seed-message-role-toggle{color:#1d4ed8}.seed-message-assistant .seed-message-role-toggle{color:#7c3aed}.seed-message-remove-btn{display:flex;align-items:center;justify-content:center;padding:.125rem;border:none;background:none;color:var(--color-text-secondary);cursor:pointer;border-radius:4px;opacity:0;transition:opacity .15s,color .15s,background .15s}.seed-message-item:hover .seed-message-remove-btn{opacity:1}.seed-message-remove-btn:hover{color:var(--color-danger);background:#ef44441a}.seed-message-content{display:block;width:100%;border:none;padding:0;font-size:.875rem;font-family:inherit;background:transparent;resize:none;overflow:hidden;min-height:1.4em;line-height:1.4;word-break:break-word}.seed-message-content:focus{outline:none}.seed-messages-add-btn{padding:.375rem .75rem;font-size:.8125rem;border:1px dashed var(--color-border);border-radius:var(--radius);background:none;color:var(--color-text-secondary);cursor:pointer;transition:border-color .15s,color .15s;align-self:center}.seed-messages-add-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.seed-messages-json textarea{width:100%;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface)}.seed-messages-json textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #6366f11a}.form-hint{font-size:.75rem;color:var(--color-text-secondary);margin-bottom:.5rem}.eval-list{display:flex;flex-direction:column;gap:.75rem}.eval-card{display:flex;justify-content:space-between;align-items:flex-start;padding:1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow)}.eval-card-clickable{cursor:pointer;transition:border-color .15s,box-shadow .15s}.eval-card-clickable:hover{border-color:var(--color-primary);box-shadow:0 2px 8px #6366f126}.eval-info h4{font-size:.9375rem;font-weight:600;margin-bottom:.25rem}.eval-info p{color:var(--color-text-secondary);font-size:.8125rem;margin-bottom:.375rem}.eval-meta{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.5rem;font-size:.75rem}.eval-mode{padding:0 .5rem;background:var(--color-border);border-radius:999px;color:var(--color-text-secondary)}.eval-persona,.eval-scenario{color:var(--color-text-secondary)}.eval-field{font-size:.8125rem;color:var(--color-text-secondary);margin-top:.375rem}.eval-row{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius)}.eval-row-clickable{cursor:pointer;transition:border-color .15s,box-shadow .15s}.eval-row-clickable:hover{border-color:var(--color-primary);box-shadow:0 2px 8px #6366f126}.eval-name{font-weight:600;font-size:.875rem;white-space:nowrap}.eval-row .eval-meta{flex:1;color:var(--color-text-secondary);font-size:.8125rem;margin:0}.eval-field strong{color:var(--color-text)}.eval-actions{display:flex;gap:.375rem;flex-shrink:0}.modal-large{max-width:600px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-group select{width:100%;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:.875rem;font-family:inherit;background:var(--color-surface)}.form-group select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #6366f11a}.form-group-small{max-width:200px}.llm-provider-list{display:flex;flex-direction:column;gap:.5rem}.llm-provider-row{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow)}.llm-provider-name{font-weight:500;font-size:.9375rem;flex-shrink:0}.llm-provider-type{font-size:.75rem;padding:.125rem .5rem;background:var(--color-primary);color:#fff;border-radius:999px;text-transform:capitalize;flex-shrink:0}.llm-provider-key{font-size:.8125rem;color:var(--color-text-secondary);font-family:monospace;flex:1;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.llm-provider-menu-container{position:relative;margin-left:auto;flex-shrink:0}.llm-provider-menu-btn{background:none;border:none;padding:.25rem .5rem;cursor:pointer;font-size:1rem;color:var(--color-text-secondary);border-radius:var(--radius)}.llm-provider-menu-btn:hover{background:var(--color-border)}.llm-provider-menu-dropdown{position:absolute;top:100%;right:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);z-index:10;min-width:100px}.llm-provider-menu-item{display:block;width:100%;padding:.5rem .75rem;border:none;background:none;text-align:left;cursor:pointer;font-size:.875rem;color:var(--color-text)}.llm-provider-menu-item:hover{background:var(--color-border)}.llm-provider-menu-item-danger{color:var(--color-error)}.llm-provider-menu-item-danger:hover{background:#ef44441a}.connector-list{display:flex;flex-direction:column;gap:.75rem}.connector-card{padding:1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow)}.connector-card-inner{display:flex}.connector-card .connector-info,.connector-card .connector-actions{display:flex;justify-content:space-between;align-items:flex-start}.connector-info{flex-direction:column;flex:1}.connector-info h4{font-size:.9375rem;font-weight:600;margin-bottom:.25rem}.connector-meta{margin-bottom:.375rem}.connector-type{font-size:.75rem;padding:.125rem .5rem;background:var(--color-primary);color:#fff;border-radius:999px}.connector-details{display:flex;flex-direction:column;gap:.25rem;margin-top:.5rem}.connector-url,.connector-auth,.connector-config{font-size:.75rem;color:var(--color-text-secondary);font-family:monospace}.connector-actions{padding-left:.75rem;border-left:1px solid var(--color-border)}.connector-test-result{display:flex;flex-wrap:wrap;gap:.5rem 1rem;padding:.75rem;margin-top:.75rem;border-radius:calc(var(--radius) / 2);font-size:.8125rem}.connector-test-result.test-success{background:#dcfce7;color:#166534}.connector-test-result.test-error{background:#fee2e2;color:#991b1b}.test-status{font-weight:500}.test-latency{font-family:monospace;opacity:.8}.test-response,.test-error-msg{width:100%;font-family:monospace;font-size:.75rem;word-break:break-all}.eval-title-link{color:var(--color-text);text-decoration:none;transition:color .15s}.eval-title-link:hover{color:var(--color-primary)}.page-header-nav{display:flex;flex-direction:column;gap:.5rem}.back-link{font-size:.875rem;color:var(--color-text-secondary);text-decoration:none}.back-link:hover{color:var(--color-primary)}.eval-detail-settings{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow)}.eval-two-column{display:grid;grid-template-columns:1.5fr 1fr;gap:2rem}.eval-primary-fields{display:flex;flex-direction:column;gap:1rem}.eval-secondary-fields{display:flex;flex-direction:column;gap:1rem;padding-left:1.5rem;border-left:1px solid var(--color-border)}.eval-secondary-fields label{color:var(--color-text-secondary)}@media(max-width:768px){.eval-two-column{grid-template-columns:1fr}.eval-secondary-fields{padding-left:0;border-left:none;padding-top:1rem;border-top:1px solid var(--color-border)}}.eval-detail-settings h2{font-size:1rem;font-weight:600;margin-bottom:1rem;color:var(--color-text-secondary)}.eval-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.eval-detail-field{display:flex;flex-direction:column;gap:.25rem}.eval-detail-field-full{grid-column:1 / -1}.eval-detail-field label{font-size:.75rem;font-weight:500;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.eval-detail-value{font-size:.875rem}.eval-detail-value strong{font-weight:600}.eval-detail-value p{color:var(--color-text-secondary);font-size:.8125rem;margin-top:.25rem}.eval-detail-criteria{padding:.5rem .75rem;border-radius:calc(var(--radius) / 2);font-size:.8125rem}.eval-detail-criteria.success{background:#dcfce7;color:#166534}.eval-detail-criteria.failure{background:#fee2e2;color:#991b1b}.eval-tabs-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;border-bottom:1px solid var(--color-border);padding-bottom:.75rem}.eval-tabs-nav{display:flex;gap:.5rem}.eval-tab{padding:.5rem 1rem;background:transparent;border:none;font-size:.875rem;font-weight:500;color:var(--color-text-secondary);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-.8125rem;transition:color .15s,border-color .15s}.eval-tab:hover{color:var(--color-text)}.eval-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.scenario-tabs-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;border-bottom:1px solid var(--color-border);padding-bottom:.75rem}.scenario-tabs-nav{display:flex;gap:.5rem}.scenario-tab{padding:.5rem 1rem;background:transparent;border:none;font-size:.875rem;font-weight:500;color:var(--color-text-secondary);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-.8125rem;transition:color .15s,border-color .15s}.scenario-tab:hover{color:var(--color-text)}.scenario-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.persona-tabs-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;border-bottom:1px solid var(--color-border);padding-bottom:.75rem}.persona-tabs-nav{display:flex;gap:.5rem}.persona-tab{padding:.5rem 1rem;background:transparent;border:none;font-size:.875rem;font-weight:500;color:var(--color-text-secondary);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-.8125rem;transition:color .15s,border-color .15s}.persona-tab:hover{color:var(--color-text)}.persona-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.code-snippets{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden}.code-snippets-tabs{display:flex;border-bottom:1px solid var(--color-border);background:var(--color-background)}.code-snippets-tab{padding:.75rem 1.25rem;background:transparent;border:none;font-size:.8125rem;font-weight:500;color:var(--color-text-secondary);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,background-color .15s}.code-snippets-tab:hover{color:var(--color-text);background:var(--color-surface)}.code-snippets-tab.active{color:var(--color-text);background:var(--color-surface);border-bottom-color:var(--color-primary)}.code-snippets-content{padding:0}.code-snippet-container{display:flex;flex-direction:column}.code-snippet-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--color-background);border-bottom:1px solid var(--color-border)}.code-snippet-label{font-size:.75rem;font-weight:500;color:var(--color-text-secondary)}.code-snippet-copy{padding:.25rem .75rem;font-size:.75rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:calc(var(--radius) / 2);color:var(--color-text-secondary);cursor:pointer;transition:background-color .15s,color .15s}.code-snippet-copy:hover{background:var(--color-background);color:var(--color-text)}.code-snippet{margin:0;padding:1rem;background:#1e1e1e;color:#d4d4d4;font-family:SF Mono,Monaco,Inconsolata,Fira Mono,Droid Sans Mono,Source Code Pro,monospace;font-size:.8125rem;line-height:1.5;overflow-x:auto;white-space:pre}.code-snippet code{font-family:inherit}.run-list{display:flex;flex-direction:column;gap:.5rem}.run-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow)}.run-item-clickable{cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.run-item-clickable:hover{border-color:var(--color-primary);box-shadow:0 2px 8px #00000014}.run-row{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem}.run-version{font-size:.8125rem;font-family:monospace;color:var(--color-primary);font-weight:500;min-width:100px;flex-shrink:0}.run-version-empty{color:var(--color-text-secondary);font-family:inherit}.run-execution{font-size:.8125rem;font-family:monospace;color:var(--color-text-secondary);width:40px;flex-shrink:0}.run-context{font-size:.8125rem;font-weight:500;color:var(--color-text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.run-persona{font-size:.8125rem;color:var(--color-text-secondary);margin-left:.25rem}.run-version{font-size:.75rem;color:var(--color-text-secondary);min-width:80px;max-width:100px;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.run-status{font-size:.75rem;font-weight:500;padding:.25rem .625rem;border-radius:999px;flex-shrink:0;width:70px;text-align:center}.run-status.status-queued{background:#fef3c7;color:#92400e;animation:pulse-queued 2s ease-in-out infinite}.run-status.status-pending{background:var(--color-border);color:var(--color-text-secondary)}.run-status.status-running{background:linear-gradient(90deg,#dbeafe,#bfdbfe,#dbeafe);background-size:200% 100%;color:#1d4ed8;animation:shimmer-running 1.5s ease-in-out infinite}@keyframes pulse-queued{0%,to{opacity:1}50%{opacity:.6}}@keyframes shimmer-running{0%{background-position:200% 0}to{background-position:-200% 0}}.run-status.status-completed{background:var(--color-border);color:var(--color-text-secondary)}.run-status.status-success{background:#dcfce7;color:#166534}.run-status.status-failed{background:#fee2e2;color:#991b1b}.run-status.status-error{background:#fef3c7;color:#92400e}.run-started{font-size:.8125rem;color:var(--color-text-secondary);flex-shrink:0;width:120px;text-align:right}.run-duration{font-size:.8125rem;font-family:monospace;color:var(--color-text-secondary);flex-shrink:0;width:70px}.run-messages-btn{flex-shrink:0}.run-messages-btn.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.run-messages-btn:disabled{opacity:.5;cursor:not-allowed}.run-messages-panel{border-top:1px solid var(--color-border);padding:1rem;background:var(--color-bg);display:flex;flex-direction:column;gap:.75rem;max-height:400px;overflow-y:auto}.run-message{padding:.75rem;border-radius:var(--radius);background:var(--color-surface);border:1px solid var(--color-border)}.run-message-role{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;display:block;margin-bottom:.25rem}.run-message-user .run-message-role{color:#2563eb}.run-message-assistant .run-message-role{color:#059669}.run-message-system .run-message-role{color:#7c3aed}.run-message-content{font-size:.875rem;white-space:pre-wrap;word-break:break-word}.run-result-panel{padding:.75rem;border-radius:var(--radius);font-size:.875rem}.run-result-panel.success{background:#dcfce7;color:#166534}.run-result-panel.failed{background:#fee2e2;color:#991b1b}.run-result-panel p{margin:.5rem 0 0}.run-result-header{display:flex;justify-content:space-between;align-items:center}.run-result-score{font-size:.8em;font-weight:400;opacity:.8}.run-evaluation-details{margin-top:1rem;padding:.75rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius)}.run-evaluation-header{font-weight:600;font-size:.875rem;margin-bottom:.75rem;color:var(--color-text-secondary)}.run-evaluation-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.run-evaluation-item{display:flex;flex-direction:column;gap:.125rem}.run-evaluation-item.full-width{grid-column:1 / -1}.run-evaluation-label{font-size:.75rem;color:var(--color-text-secondary)}.run-evaluation-value{font-size:.875rem;font-weight:500}.run-evaluation-value.met{color:#16a34a}.run-evaluation-value.not-met{color:var(--color-text-secondary)}.run-evaluation-value.triggered{color:#dc2626}.run-evaluation-value.not-triggered{color:#16a34a}.run-evaluation-warning{font-size:.8rem;color:#ca8a04;font-style:italic}.run-error-panel{padding:.75rem;border-radius:var(--radius);background:#fee2e2;color:#991b1b;font-size:.875rem}.run-menu-container{position:relative;flex-shrink:0;margin-left:auto}.run-menu-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;border-radius:var(--radius);cursor:pointer;color:var(--color-text-secondary);transition:background .15s,color .15s}.run-menu-btn:hover{background:var(--color-bg);color:var(--color-text)}.dots-icon{font-weight:700;letter-spacing:1px;line-height:1}.run-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10}.run-menu-dropdown{position:absolute;top:100%;right:0;z-index:20;min-width:120px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:0 4px 12px #00000026;padding:.25rem;margin-top:.25rem}.run-menu-item{display:block;width:100%;padding:.5rem .75rem;border:none;background:transparent;text-align:left;font-size:.8125rem;cursor:pointer;border-radius:calc(var(--radius) / 2);transition:background .15s}.run-menu-item:hover{background:var(--color-bg)}.run-menu-item-danger{color:var(--color-danger)}.run-menu-item-danger:hover{background:#fee2e2}.run-menu-item:disabled{opacity:.5;cursor:not-allowed}.run-preview-modal{max-width:700px;max-height:85vh;display:flex;flex-direction:column}.run-preview-content{overflow-y:auto;flex:1;margin-bottom:1rem}.run-preview-section{margin-bottom:1.25rem}.run-preview-section:last-child{margin-bottom:0}.run-preview-section>label{display:block;font-size:.75rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}.run-preview-muted{font-weight:400;text-transform:none;letter-spacing:normal}.run-preview-box{background:var(--color-bg);border-radius:var(--radius);padding:.75rem 1rem;font-size:.875rem;line-height:1.5;white-space:pre-wrap;word-break:break-word}.run-preview-system{border-left:3px solid var(--color-primary)}.run-preview-scenario{border-left:3px solid #f59e0b}.run-preview-system-section{background:#fffbeb;border-left:3px solid #f59e0b;border-radius:var(--radius);margin-bottom:1rem;overflow:hidden}.run-preview-system-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;cursor:pointer;-webkit-user-select:none;user-select:none}.run-preview-system-header:hover{background:#f59e0b1a}.run-preview-system-header .run-preview-role{color:#b45309;margin-bottom:0}.run-preview-expand-btn{background:none;border:none;color:#b45309;font-size:.75rem;font-weight:500;cursor:pointer;padding:.25rem .5rem;border-radius:var(--radius)}.run-preview-expand-btn:hover{background:#f59e0b26}.run-preview-system-content{max-height:100px;overflow:hidden;padding:0 .75rem .5rem;position:relative;font-size:.875rem}.run-preview-system-content:after{content:"";position:absolute;bottom:0;left:0;right:0;height:40px;background:linear-gradient(transparent,#fffbeb);pointer-events:none}.run-preview-system-content.expanded{max-height:none;overflow:visible}.run-preview-system-content.expanded:after{display:none}.run-preview-messages{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.run-preview-message{padding:.5rem .75rem;border-radius:var(--radius);font-size:.875rem;max-width:85%;width:fit-content}.run-preview-role{display:block;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;margin-bottom:.25rem}.run-preview-content-text{white-space:pre-wrap;word-break:break-word;line-height:1.4}.run-preview-message-user{background:#eff6ff;border-radius:var(--radius);margin-left:auto;border-right:3px solid #3b82f6}.run-preview-message-user .run-preview-role{color:#1d4ed8;text-align:right}.run-preview-message-assistant{background:#faf5ff;border-left:3px solid #a855f7;margin-right:auto}.run-preview-tool-call .run-preview-role,.run-preview-message-assistant .run-preview-role{color:#7c3aed}.run-preview-message-system{background:#fffbeb;border-left:3px solid #f59e0b;margin-right:auto}.run-preview-message-system .run-preview-role{color:#b45309}.run-preview-json{background:#1e293b;color:#e2e8f0;padding:.75rem 1rem;border-radius:var(--radius);font-family:ui-monospace,SF Mono,Monaco,monospace;font-size:.8125rem;line-height:1.4;overflow-x:auto;white-space:pre}.run-preview-empty{color:var(--color-text-secondary);font-style:italic;font-size:.875rem;padding:.5rem 0}.run-preview-result{padding:.75rem 1rem;border-radius:var(--radius);font-size:.875rem}.run-preview-result.success{background:#f0fdf4;border-left:3px solid var(--color-success);color:#166534}.run-preview-result.failed{background:#fef2f2;border-left:3px solid var(--color-danger);color:#991b1b}.run-preview-score{margin-left:.75rem;color:var(--color-text-secondary)}.run-preview-reason{margin-top:.5rem;line-height:1.4}.run-preview-error{background:#fef2f2;border-left:3px solid var(--color-danger);padding:.75rem 1rem;border-radius:var(--radius);color:#991b1b;font-size:.875rem;white-space:pre-wrap;word-break:break-word}.run-preview-simulated{border-style:dashed!important;background:#f0fdf4!important;border-color:#22c55e!important}.run-preview-simulated .run-preview-role{color:#15803d!important}.run-preview-latency{display:block;font-size:.6875rem;color:var(--color-text-secondary);margin-top:.25rem;font-family:ui-monospace,SF Mono,Monaco,monospace}.run-preview-loading{color:var(--color-text-secondary);font-style:italic}.run-preview-simulation-error{background:#fef2f2;border:1px dashed var(--color-danger);padding:.5rem .75rem;border-radius:var(--radius);color:#991b1b;font-size:.8125rem;margin-top:.5rem}.run-preview-raw-response{margin-top:.5rem;padding:.5rem;background:#fee2e2;border-radius:var(--radius-sm);font-size:.75rem;white-space:pre-wrap;word-break:break-word;max-height:200px;overflow-y:auto}.run-preview-persist-checkbox{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--color-text-secondary);margin-right:auto;cursor:pointer}.run-preview-persist-checkbox input[type=checkbox]{width:1rem;height:1rem;cursor:pointer}.run-preview-tool-calls{display:flex;flex-direction:column;gap:.5rem;width:85%;margin-right:auto}.run-preview-tool-call{background:#faf5ff;border-left:3px solid #a855f7;border-radius:var(--radius);overflow:hidden}.run-preview-tool-call-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;cursor:pointer;-webkit-user-select:none;user-select:none}.run-preview-tool-call-header:hover{background:#7c3aed0d}.run-preview-tool-call.expanded .run-preview-tool-call-header{border-bottom:1px solid rgba(124,58,237,.2)}.run-preview-tool-call-title{display:flex;align-items:center;gap:.5rem}.run-preview-tool-call-header .run-preview-expand-btn{color:#7c3aed;border-color:#7c3aed4d}.run-preview-tool-call-header .run-preview-expand-btn:hover{background:#7c3aed1a}.run-preview-tool-name{text-transform:initial;font-family:var(--font-mono)}.run-preview-tool-call-body{display:flex;flex-direction:column}.run-preview-tool-section{padding:.5rem .75rem}.run-preview-tool-section-result{background:#10b9810d;border-top:1px dashed var(--border-color)}.run-preview-tool-section-label{display:block;font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#7c3aed;margin-bottom:.375rem}.run-preview-tool-section-result .run-preview-tool-section-label{color:#10b981}.run-preview-tool-args-list{display:flex;flex-direction:column;gap:.25rem;background:var(--bg-primary);border:1px solid rgba(124,58,237,.2);border-radius:.25rem;padding:.5rem}.run-preview-tool-arg{display:flex;gap:.5rem;font-size:.75rem;line-height:1.4}.run-preview-tool-arg-key{font-family:var(--font-mono);font-weight:600;color:#7c3aed;flex-shrink:0}.run-preview-tool-arg-key:after{content:":"}.run-preview-tool-arg-value{font-family:var(--font-mono);color:var(--text-primary);word-break:break-word;white-space:pre-wrap}.run-preview-tool-result-content{font-family:var(--font-mono);font-size:.75rem;background:var(--bg-primary);border:1px solid rgba(16,185,129,.2);border-radius:.25rem;padding:.5rem;margin:0;overflow-x:auto;white-space:pre-wrap;word-break:break-word;max-height:200px;overflow-y:auto}.persona-checkbox-list{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.checkbox-item{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;transition:border-color .15s,background .15s}.checkbox-item:hover{border-color:var(--color-primary);background:#6366f10d}.checkbox-item input[type=checkbox]{margin-top:.125rem;width:1rem;height:1rem;cursor:pointer;flex-shrink:0}.checkbox-label{display:flex;flex-direction:column;gap:.25rem;min-width:0}.checkbox-name{font-weight:500;font-size:.875rem;color:var(--color-text)}.checkbox-description{font-size:.8125rem;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editable-title{padding:.125rem .375rem;margin:-.125rem -.375rem;border-radius:var(--radius);transition:background .15s;cursor:text}.editable-title:hover{background:var(--color-bg)}.editable-title-input{font-size:1.5rem;font-weight:600;padding:.125rem .375rem;margin:-.125rem -.375rem;border:2px solid var(--color-primary);border-radius:var(--radius);outline:none;background:var(--color-surface);min-width:100px}.playground-actions{flex-direction:row;gap:.75rem}.playground-run-row{display:flex;gap:.5rem;width:100%}.playground-connector-select,.playground-llm-select,.playground-persona-select{padding:.5rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);font-size:.875rem}.playground-llm-select,.playground-persona-select{max-width:150px}.run-status-indicator{display:flex;align-items:center;gap:.5rem;padding:.75rem;background:var(--color-surface);border-radius:var(--radius);font-size:.875rem;color:var(--color-text-secondary)}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--color-text-secondary)}.status-dot.running{background:#3b82f6;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.run-result{padding:.75rem;border-radius:var(--radius);font-size:.875rem}.run-result.success{background:#dcfce7;color:#166534}.run-result.failed{background:#fee2e2;color:#991b1b}.run-result p{margin:.5rem 0 0}.run-result .score{display:block;margin-top:.25rem;font-size:.8em;opacity:.8}.play-icon{font-size:.75rem;margin-right:.25rem}.performance-chart{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem 1rem .5rem;box-shadow:var(--shadow)}.performance-chart-empty{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:2rem;text-align:center;color:var(--color-text-secondary);font-size:.875rem}.performance-chart-single{display:flex;gap:2rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem 1.5rem;box-shadow:var(--shadow)}.performance-stat{display:flex;flex-direction:column;gap:.25rem}.performance-stat-value{font-size:1.5rem;font-weight:600;color:var(--color-text)}.performance-stat-label{font-size:.75rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.performance-chart-toggle{display:flex;gap:.25rem;margin-bottom:.75rem}.performance-chart-toggle-btn{padding:.375rem .75rem;font-size:.75rem;font-weight:500;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text-secondary);cursor:pointer;transition:all .15s}.performance-chart-toggle-btn:hover{background:var(--color-border);color:var(--color-text)}.performance-chart-toggle-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.dashboard-performance-chart{width:100%}.dashboard-performance-chart h3{margin:0 0 1rem;font-size:.875rem;font-weight:600;color:var(--color-text)}.dashboard-performance-chart .performance-chart,.dashboard-performance-chart .performance-chart-empty,.dashboard-performance-chart .performance-chart-single{margin-bottom:0}.llm-config-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.5rem;margin-top:2rem;box-shadow:var(--shadow)}.llm-config-section>h2{font-size:1rem;font-weight:600;margin:0 0 .5rem;color:var(--color-text)}.llm-config-section>p{font-size:.875rem;color:var(--color-text-secondary);margin:0 0 1.5rem}.llm-config-section .settings-subsection{margin-bottom:1.5rem}.llm-config-section .settings-subsection:last-of-type{margin-bottom:1rem}.llm-config-section .settings-subsection h3{font-size:.875rem;font-weight:500;margin:0 0 .25rem;color:var(--color-text)}.llm-config-section .settings-subsection>p{font-size:.8125rem;color:var(--color-text-secondary);margin:0 0 .75rem}.llm-config-section .form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:640px){.llm-config-section .form-row{grid-template-columns:1fr}}.llm-config-section .form-actions{display:flex;align-items:center;gap:1rem;padding-top:.5rem}.save-success{font-size:.875rem;color:#059669}.save-error{font-size:.875rem;color:#dc2626}
|