@restormel/testing-config 0.1.1 → 0.1.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/validate.d.ts.map +1 -1
- package/dist/validate.js +559 -3
- package/dist/validate.js.map +1 -1
- package/package.json +2 -2
package/dist/validate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAOV,kBAAkB,EASlB,SAAS,EACV,MAAM,yBAAyB,CAAC;AAGjC,OAAO,KAAK,EAAkB,WAAW,EAAE,sBAAsB,EAA0B,MAAM,aAAa,CAAC;AAsrC/G;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,sBAAsB,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,WAAW,EAAE,CAAA;CAAE,CAuGxI;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,sBAAsB,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,CAE3G;AAkDD,wBAAgB,YAAY,CAC1B,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,MAAM,GACd;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,WAAW,EAAE,CAAA;CAAE,CAevE;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,sBAAsB,EAC9B,aAAa,EAAE,MAAM,GACpB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,kBAAkB,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,WAAW,EAAE,CAAA;CAAE,CAmBlF;AAED,gFAAgF;AAChF,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,sBAAsB,EAC9B,aAAa,EAAE,MAAM,GACpB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGxB;AAED,4DAA4D;AAC5D,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAOhE"}
|
package/dist/validate.js
CHANGED
|
@@ -233,7 +233,63 @@ function parseJudgeRubric(raw, path, errors) {
|
|
|
233
233
|
}
|
|
234
234
|
return rubric;
|
|
235
235
|
}
|
|
236
|
-
function
|
|
236
|
+
function parseMissionConstraints(raw, path, errors) {
|
|
237
|
+
if (raw === undefined || raw === null)
|
|
238
|
+
return undefined;
|
|
239
|
+
if (!isPlainObject(raw)) {
|
|
240
|
+
errors.push(err(path, "type", "mission_constraints must be an object"));
|
|
241
|
+
return undefined;
|
|
242
|
+
}
|
|
243
|
+
const out = {};
|
|
244
|
+
const maxDur = pickKey(raw, "max_duration_ms", "maxDurationMs");
|
|
245
|
+
if (maxDur !== undefined && maxDur !== null) {
|
|
246
|
+
const n = asPosInt(maxDur, `${path}.max_duration_ms`, "max_duration_ms", errors);
|
|
247
|
+
if (n !== undefined)
|
|
248
|
+
out.maxDurationMs = n;
|
|
249
|
+
}
|
|
250
|
+
const ua = pickKey(raw, "url_allowlist", "urlAllowlist");
|
|
251
|
+
if (ua !== undefined && ua !== null) {
|
|
252
|
+
if (!Array.isArray(ua) || !ua.every((x) => typeof x === "string")) {
|
|
253
|
+
errors.push(err(`${path}.url_allowlist`, "type", "url_allowlist must be string[]"));
|
|
254
|
+
return undefined;
|
|
255
|
+
}
|
|
256
|
+
out.urlAllowlist = ua;
|
|
257
|
+
}
|
|
258
|
+
return Object.keys(out).length > 0 ? out : undefined;
|
|
259
|
+
}
|
|
260
|
+
function parseAfterAgent(raw, path, errors) {
|
|
261
|
+
if (raw === undefined || raw === null)
|
|
262
|
+
return undefined;
|
|
263
|
+
if (!isPlainObject(raw)) {
|
|
264
|
+
errors.push(err(path, "type", "after_agent must be an object"));
|
|
265
|
+
return undefined;
|
|
266
|
+
}
|
|
267
|
+
const out = {};
|
|
268
|
+
const sp = pickKey(raw, "start_path", "startPath");
|
|
269
|
+
if (sp !== undefined && sp !== null) {
|
|
270
|
+
const s = asString(sp, `${path}.start_path`, "start_path", errors);
|
|
271
|
+
if (s) {
|
|
272
|
+
if (s.includes("..")) {
|
|
273
|
+
errors.push(err(`${path}.start_path`, "unsafe", "start_path must not contain '..'"));
|
|
274
|
+
}
|
|
275
|
+
else {
|
|
276
|
+
out.startPath = s;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
const scr = pickKey(raw, "success_criteria", "successCriteria");
|
|
281
|
+
if (scr !== undefined && scr !== null) {
|
|
282
|
+
const sc = parseSuccessCriteria(scr, `${path}.success_criteria`, errors);
|
|
283
|
+
if (sc)
|
|
284
|
+
out.successCriteria = sc;
|
|
285
|
+
}
|
|
286
|
+
if (out.startPath === undefined && out.successCriteria === undefined) {
|
|
287
|
+
errors.push(err(path, "empty", "after_agent must include start_path and/or success_criteria"));
|
|
288
|
+
return undefined;
|
|
289
|
+
}
|
|
290
|
+
return out;
|
|
291
|
+
}
|
|
292
|
+
function parseSuccessCriteria(raw, path, errors, opts) {
|
|
237
293
|
if (!isPlainObject(raw)) {
|
|
238
294
|
errors.push(err(path, "type", "success_criteria must be an object"));
|
|
239
295
|
return undefined;
|
|
@@ -324,12 +380,291 @@ function parseSuccessCriteria(raw, path, errors) {
|
|
|
324
380
|
(out.structuredChecks != null && out.structuredChecks.length > 0) ||
|
|
325
381
|
out.judgeRubric != null;
|
|
326
382
|
if (!hasAny) {
|
|
383
|
+
if (opts?.allowEmpty) {
|
|
384
|
+
return {};
|
|
385
|
+
}
|
|
327
386
|
errors.push(err(path, "success_criteria_empty", "success_criteria must include at least one of: any_of, url_matches, dom_signals, text_present, text_absent, structured_checks, judge_rubric"));
|
|
328
387
|
return undefined;
|
|
329
388
|
}
|
|
330
389
|
return out;
|
|
331
390
|
}
|
|
332
|
-
function
|
|
391
|
+
function parseAcSequencePostCheck(raw, path, errors, allowedAcIds) {
|
|
392
|
+
if (!isPlainObject(raw)) {
|
|
393
|
+
errors.push(err(path, "type", "post_checks entry must be an object"));
|
|
394
|
+
return undefined;
|
|
395
|
+
}
|
|
396
|
+
const acId = asString(pickKey(raw, "ac_id", "acId"), `${path}.ac_id`, "ac_id", errors);
|
|
397
|
+
if (!acId)
|
|
398
|
+
return undefined;
|
|
399
|
+
if (!allowedAcIds.has(acId)) {
|
|
400
|
+
errors.push(err(`${path}.ac_id`, "unknown_ac_id", `post_checks ac_id "${acId}" is not a suite acceptance_criteria id`));
|
|
401
|
+
return undefined;
|
|
402
|
+
}
|
|
403
|
+
let http;
|
|
404
|
+
const httpRaw = pickKey(raw, "http", "http");
|
|
405
|
+
if (httpRaw !== undefined && httpRaw !== null) {
|
|
406
|
+
if (!isPlainObject(httpRaw)) {
|
|
407
|
+
errors.push(err(`${path}.http`, "type", "post_checks.http must be an object"));
|
|
408
|
+
return undefined;
|
|
409
|
+
}
|
|
410
|
+
const url = asString(pickKey(httpRaw, "url", "url"), `${path}.http.url`, "url", errors);
|
|
411
|
+
if (!url)
|
|
412
|
+
return undefined;
|
|
413
|
+
http = { url };
|
|
414
|
+
const method = pickKey(httpRaw, "method", "method");
|
|
415
|
+
if (method !== undefined && method !== null) {
|
|
416
|
+
if (typeof method !== "string") {
|
|
417
|
+
errors.push(err(`${path}.http.method`, "type", "method must be a string"));
|
|
418
|
+
return undefined;
|
|
419
|
+
}
|
|
420
|
+
http.method = method;
|
|
421
|
+
}
|
|
422
|
+
const expectStatus = pickKey(httpRaw, "expect_status", "expectStatus");
|
|
423
|
+
if (expectStatus !== undefined && expectStatus !== null) {
|
|
424
|
+
if (!Array.isArray(expectStatus) || !expectStatus.every((x) => typeof x === "number" && Number.isInteger(x))) {
|
|
425
|
+
errors.push(err(`${path}.http.expect_status`, "type", "expect_status must be number[]"));
|
|
426
|
+
return undefined;
|
|
427
|
+
}
|
|
428
|
+
http.expectStatus = expectStatus;
|
|
429
|
+
}
|
|
430
|
+
const headers = pickKey(httpRaw, "headers", "headers");
|
|
431
|
+
if (headers !== undefined && headers !== null) {
|
|
432
|
+
if (!isPlainObject(headers)) {
|
|
433
|
+
errors.push(err(`${path}.http.headers`, "type", "headers must be an object"));
|
|
434
|
+
return undefined;
|
|
435
|
+
}
|
|
436
|
+
const h = {};
|
|
437
|
+
for (const [k, v] of Object.entries(headers)) {
|
|
438
|
+
if (typeof v !== "string") {
|
|
439
|
+
errors.push(err(`${path}.http.headers`, "type", "headers values must be strings"));
|
|
440
|
+
return undefined;
|
|
441
|
+
}
|
|
442
|
+
h[k] = v;
|
|
443
|
+
}
|
|
444
|
+
http.headers = h;
|
|
445
|
+
}
|
|
446
|
+
const body = pickKey(httpRaw, "body", "body");
|
|
447
|
+
if (body !== undefined && body !== null) {
|
|
448
|
+
if (typeof body !== "string") {
|
|
449
|
+
errors.push(err(`${path}.http.body`, "type", "body must be a string"));
|
|
450
|
+
return undefined;
|
|
451
|
+
}
|
|
452
|
+
http.body = body;
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
let domRoleName;
|
|
456
|
+
const domRaw = pickKey(raw, "dom_role_name", "domRoleName");
|
|
457
|
+
if (domRaw !== undefined && domRaw !== null) {
|
|
458
|
+
if (!isPlainObject(domRaw)) {
|
|
459
|
+
errors.push(err(`${path}.dom_role_name`, "type", "dom_role_name must be an object"));
|
|
460
|
+
return undefined;
|
|
461
|
+
}
|
|
462
|
+
const role = asString(pickKey(domRaw, "role", "role"), `${path}.dom_role_name.role`, "role", errors);
|
|
463
|
+
if (!role)
|
|
464
|
+
return undefined;
|
|
465
|
+
domRoleName = { role };
|
|
466
|
+
const name = pickKey(domRaw, "name", "name");
|
|
467
|
+
if (name !== undefined && name !== null) {
|
|
468
|
+
if (typeof name !== "string") {
|
|
469
|
+
errors.push(err(`${path}.dom_role_name.name`, "type", "name must be a string"));
|
|
470
|
+
return undefined;
|
|
471
|
+
}
|
|
472
|
+
domRoleName.name = name;
|
|
473
|
+
}
|
|
474
|
+
const ev = pickKey(domRaw, "expect_visible", "expectVisible");
|
|
475
|
+
if (ev !== undefined && ev !== null) {
|
|
476
|
+
if (typeof ev !== "boolean") {
|
|
477
|
+
errors.push(err(`${path}.dom_role_name.expect_visible`, "type", "expect_visible must be a boolean"));
|
|
478
|
+
return undefined;
|
|
479
|
+
}
|
|
480
|
+
domRoleName.expectVisible = ev;
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
let dbShell;
|
|
484
|
+
const dbs = pickKey(raw, "db_shell", "dbShell");
|
|
485
|
+
if (dbs !== undefined && dbs !== null) {
|
|
486
|
+
if (typeof dbs !== "string") {
|
|
487
|
+
errors.push(err(`${path}.db_shell`, "type", "db_shell must be a string"));
|
|
488
|
+
return undefined;
|
|
489
|
+
}
|
|
490
|
+
const t = dbs.trim();
|
|
491
|
+
if (t.length > 0)
|
|
492
|
+
dbShell = t;
|
|
493
|
+
}
|
|
494
|
+
if (http === undefined && domRoleName === undefined && dbShell === undefined) {
|
|
495
|
+
errors.push(err(path, "post_check_empty", "post_checks entry must include at least one of: http, dom_role_name, db_shell"));
|
|
496
|
+
return undefined;
|
|
497
|
+
}
|
|
498
|
+
const out = { acId };
|
|
499
|
+
if (http !== undefined)
|
|
500
|
+
out.http = http;
|
|
501
|
+
if (domRoleName !== undefined)
|
|
502
|
+
out.domRoleName = domRoleName;
|
|
503
|
+
if (dbShell !== undefined)
|
|
504
|
+
out.dbShell = dbShell;
|
|
505
|
+
return out;
|
|
506
|
+
}
|
|
507
|
+
function parseAcSequence(raw, path, errors, allowedAcIds) {
|
|
508
|
+
if (!isPlainObject(raw)) {
|
|
509
|
+
errors.push(err(path, "type", "ac_sequence must be an object"));
|
|
510
|
+
return undefined;
|
|
511
|
+
}
|
|
512
|
+
const agentRaw = pickKey(raw, "built_in_agent", "builtInAgent");
|
|
513
|
+
if (agentRaw === undefined || agentRaw === null || !isPlainObject(agentRaw)) {
|
|
514
|
+
errors.push(err(`${path}.built_in_agent`, "required", "ac_sequence.built_in_agent is required"));
|
|
515
|
+
return undefined;
|
|
516
|
+
}
|
|
517
|
+
const builtInAgent = {};
|
|
518
|
+
const mr = pickKey(agentRaw, "model_ref", "modelRef");
|
|
519
|
+
if (mr !== undefined && mr !== null) {
|
|
520
|
+
const s = asString(mr, `${path}.built_in_agent.model_ref`, "model_ref", errors);
|
|
521
|
+
if (s)
|
|
522
|
+
builtInAgent.modelRef = s;
|
|
523
|
+
}
|
|
524
|
+
const maxRounds = asNonNegInt(pickKey(agentRaw, "max_rounds_per_criterion", "maxRoundsPerCriterion"), `${path}.built_in_agent.max_rounds_per_criterion`, "max_rounds_per_criterion", errors);
|
|
525
|
+
if (maxRounds !== undefined)
|
|
526
|
+
builtInAgent.maxRoundsPerCriterion = maxRounds;
|
|
527
|
+
const instr = pickKey(agentRaw, "instructions", "instructions");
|
|
528
|
+
if (instr !== undefined && instr !== null) {
|
|
529
|
+
if (typeof instr !== "string") {
|
|
530
|
+
errors.push(err(`${path}.built_in_agent.instructions`, "type", "instructions must be a string"));
|
|
531
|
+
return undefined;
|
|
532
|
+
}
|
|
533
|
+
if (instr.trim() !== "")
|
|
534
|
+
builtInAgent.instructions = instr;
|
|
535
|
+
}
|
|
536
|
+
let criterionExecutor;
|
|
537
|
+
const ceRaw = pickKey(raw, "criterion_executor", "criterionExecutor");
|
|
538
|
+
if (ceRaw !== undefined && ceRaw !== null) {
|
|
539
|
+
const s = asString(ceRaw, `${path}.criterion_executor`, "criterion_executor", errors);
|
|
540
|
+
if (!s)
|
|
541
|
+
return undefined;
|
|
542
|
+
criterionExecutor = s;
|
|
543
|
+
}
|
|
544
|
+
let criterionSuccess;
|
|
545
|
+
const csRaw = pickKey(raw, "criterion_success", "criterionSuccess");
|
|
546
|
+
if (csRaw !== undefined && csRaw !== null) {
|
|
547
|
+
if (!isPlainObject(csRaw)) {
|
|
548
|
+
errors.push(err(`${path}.criterion_success`, "type", "criterion_success must be an object"));
|
|
549
|
+
return undefined;
|
|
550
|
+
}
|
|
551
|
+
criterionSuccess = {};
|
|
552
|
+
for (const [k, v] of Object.entries(csRaw)) {
|
|
553
|
+
if (!allowedAcIds.has(k)) {
|
|
554
|
+
errors.push(err(`${path}.criterion_success`, "unknown_ac_id", `criterion_success key "${k}" is not a suite acceptance_criteria id`));
|
|
555
|
+
return undefined;
|
|
556
|
+
}
|
|
557
|
+
const sc = parseSuccessCriteria(v, `${path}.criterion_success.${k}`, errors);
|
|
558
|
+
if (!sc)
|
|
559
|
+
return undefined;
|
|
560
|
+
criterionSuccess[k] = sc;
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
let criterionRubrics;
|
|
564
|
+
const crRaw = pickKey(raw, "criterion_rubrics", "criterionRubrics");
|
|
565
|
+
if (crRaw !== undefined && crRaw !== null) {
|
|
566
|
+
if (!isPlainObject(crRaw)) {
|
|
567
|
+
errors.push(err(`${path}.criterion_rubrics`, "type", "criterion_rubrics must be an object"));
|
|
568
|
+
return undefined;
|
|
569
|
+
}
|
|
570
|
+
criterionRubrics = {};
|
|
571
|
+
for (const [k, v] of Object.entries(crRaw)) {
|
|
572
|
+
if (!allowedAcIds.has(k)) {
|
|
573
|
+
errors.push(err(`${path}.criterion_rubrics`, "unknown_ac_id", `criterion_rubrics key "${k}" is not a suite acceptance_criteria id`));
|
|
574
|
+
return undefined;
|
|
575
|
+
}
|
|
576
|
+
const rub = parseJudgeRubric(v, `${path}.criterion_rubrics.${k}`, errors);
|
|
577
|
+
if (!rub)
|
|
578
|
+
return undefined;
|
|
579
|
+
criterionRubrics[k] = rub;
|
|
580
|
+
}
|
|
581
|
+
}
|
|
582
|
+
let postChecks;
|
|
583
|
+
const pcRaw = pickKey(raw, "post_checks", "postChecks");
|
|
584
|
+
if (pcRaw !== undefined && pcRaw !== null) {
|
|
585
|
+
if (!Array.isArray(pcRaw)) {
|
|
586
|
+
errors.push(err(`${path}.post_checks`, "type", "post_checks must be an array"));
|
|
587
|
+
return undefined;
|
|
588
|
+
}
|
|
589
|
+
const list = [];
|
|
590
|
+
for (let i = 0; i < pcRaw.length; i++) {
|
|
591
|
+
const p = parseAcSequencePostCheck(pcRaw[i], `${path}.post_checks[${i}]`, errors, allowedAcIds);
|
|
592
|
+
if (!p)
|
|
593
|
+
return undefined;
|
|
594
|
+
list.push(p);
|
|
595
|
+
}
|
|
596
|
+
postChecks = list;
|
|
597
|
+
}
|
|
598
|
+
const out = { builtInAgent };
|
|
599
|
+
if (criterionExecutor !== undefined)
|
|
600
|
+
out.criterionExecutor = criterionExecutor;
|
|
601
|
+
if (criterionSuccess)
|
|
602
|
+
out.criterionSuccess = criterionSuccess;
|
|
603
|
+
if (criterionRubrics)
|
|
604
|
+
out.criterionRubrics = criterionRubrics;
|
|
605
|
+
if (postChecks)
|
|
606
|
+
out.postChecks = postChecks;
|
|
607
|
+
return out;
|
|
608
|
+
}
|
|
609
|
+
function parseSuiteAcceptanceCriteria(raw, path, errors) {
|
|
610
|
+
if (raw === undefined || raw === null)
|
|
611
|
+
return undefined;
|
|
612
|
+
if (!Array.isArray(raw)) {
|
|
613
|
+
errors.push(err(path, "type", "acceptance_criteria must be an array of { id, text }"));
|
|
614
|
+
return undefined;
|
|
615
|
+
}
|
|
616
|
+
if (raw.length === 0) {
|
|
617
|
+
errors.push(err(path, "empty", "acceptance_criteria must not be an empty array"));
|
|
618
|
+
return undefined;
|
|
619
|
+
}
|
|
620
|
+
const list = [];
|
|
621
|
+
const idSet = new Set();
|
|
622
|
+
for (let i = 0; i < raw.length; i++) {
|
|
623
|
+
const item = raw[i];
|
|
624
|
+
if (!isPlainObject(item)) {
|
|
625
|
+
errors.push(err(`${path}[${i}]`, "type", "each acceptance_criteria entry must be an object"));
|
|
626
|
+
return undefined;
|
|
627
|
+
}
|
|
628
|
+
const cid = asString(pickKey(item, "id", "id"), `${path}[${i}].id`, "id", errors);
|
|
629
|
+
const text = asString(pickKey(item, "text", "text"), `${path}[${i}].text`, "text", errors);
|
|
630
|
+
if (!cid || !text)
|
|
631
|
+
return undefined;
|
|
632
|
+
if (idSet.has(cid)) {
|
|
633
|
+
errors.push(err(`${path}[${i}].id`, "duplicate", `Duplicate acceptance criterion id "${cid}"`));
|
|
634
|
+
return undefined;
|
|
635
|
+
}
|
|
636
|
+
idSet.add(cid);
|
|
637
|
+
list.push({ id: cid, text });
|
|
638
|
+
}
|
|
639
|
+
return { list, idSet };
|
|
640
|
+
}
|
|
641
|
+
/** Returns false if validation errors were added for this field. */
|
|
642
|
+
function addOptionalAcceptanceCriterionIds(goal, raw, path, errors, allowedAcIds) {
|
|
643
|
+
const acRaw = pickKey(raw, "acceptance_criterion_ids", "acceptanceCriterionIds");
|
|
644
|
+
if (acRaw === undefined || acRaw === null)
|
|
645
|
+
return true;
|
|
646
|
+
if (!Array.isArray(acRaw) || !acRaw.every((x) => typeof x === "string")) {
|
|
647
|
+
errors.push(err(`${path}.acceptance_criterion_ids`, "type", "acceptance_criterion_ids must be string[]"));
|
|
648
|
+
return false;
|
|
649
|
+
}
|
|
650
|
+
const ids = acRaw.map((s) => s.trim()).filter((s) => s.length > 0);
|
|
651
|
+
if (ids.length === 0)
|
|
652
|
+
return true;
|
|
653
|
+
if (allowedAcIds === undefined) {
|
|
654
|
+
errors.push(err(`${path}.acceptance_criterion_ids`, "requires_suite_ac", "acceptance_criterion_ids requires suite-level acceptance_criteria"));
|
|
655
|
+
return false;
|
|
656
|
+
}
|
|
657
|
+
for (let i = 0; i < ids.length; i++) {
|
|
658
|
+
const cid = ids[i];
|
|
659
|
+
if (!allowedAcIds.has(cid)) {
|
|
660
|
+
errors.push(err(`${path}.acceptance_criterion_ids`, "unknown_ac_id", `Unknown acceptance criterion id "${cid}" (not in suite acceptance_criteria)`));
|
|
661
|
+
return false;
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
goal.acceptanceCriterionIds = ids;
|
|
665
|
+
return true;
|
|
666
|
+
}
|
|
667
|
+
function parseGoal(raw, path, errors, allowedAcIds, orderedAcIds) {
|
|
333
668
|
if (!isPlainObject(raw)) {
|
|
334
669
|
errors.push(err(path, "type", "goal must be an object"));
|
|
335
670
|
return undefined;
|
|
@@ -342,6 +677,210 @@ function parseGoal(raw, path, errors) {
|
|
|
342
677
|
return undefined;
|
|
343
678
|
}
|
|
344
679
|
const type = typeRaw;
|
|
680
|
+
const emRaw = pickKey(raw, "execution_mode", "executionMode");
|
|
681
|
+
let executionMode = "observe";
|
|
682
|
+
if (emRaw !== undefined && emRaw !== null) {
|
|
683
|
+
if (emRaw !== "observe" && emRaw !== "agent" && emRaw !== "ac_sequence") {
|
|
684
|
+
errors.push(err(`${path}.execution_mode`, "enum", `execution_mode must be observe, agent, or ac_sequence (got ${JSON.stringify(emRaw)})`));
|
|
685
|
+
return undefined;
|
|
686
|
+
}
|
|
687
|
+
executionMode = emRaw;
|
|
688
|
+
}
|
|
689
|
+
const acSeqKey = pickKey(raw, "ac_sequence", "acSequence");
|
|
690
|
+
if (acSeqKey != null && executionMode !== "ac_sequence") {
|
|
691
|
+
errors.push(err(`${path}.ac_sequence`, "forbidden", "ac_sequence is only allowed when execution_mode is ac_sequence"));
|
|
692
|
+
return undefined;
|
|
693
|
+
}
|
|
694
|
+
const missionRaw = pickKey(raw, "mission", "mission");
|
|
695
|
+
const missionExecRaw = pickKey(raw, "mission_executor", "missionExecutor");
|
|
696
|
+
const missionConstraintsRaw = pickKey(raw, "mission_constraints", "missionConstraints");
|
|
697
|
+
if (executionMode === "agent") {
|
|
698
|
+
if (type !== "browser") {
|
|
699
|
+
errors.push(err(`${path}.execution_mode`, "agent_browser_only", "execution_mode: agent is only valid for type: browser"));
|
|
700
|
+
return undefined;
|
|
701
|
+
}
|
|
702
|
+
const afterAgentKey = pickKey(raw, "after_agent", "afterAgent");
|
|
703
|
+
let afterAgent;
|
|
704
|
+
if (afterAgentKey !== undefined && afterAgentKey !== null) {
|
|
705
|
+
afterAgent = parseAfterAgent(afterAgentKey, `${path}.after_agent`, errors);
|
|
706
|
+
if (!afterAgent)
|
|
707
|
+
return undefined;
|
|
708
|
+
}
|
|
709
|
+
const mission = asString(missionRaw, `${path}.mission`, "mission", errors);
|
|
710
|
+
const missionExecutor = asString(missionExecRaw, `${path}.mission_executor`, "mission_executor", errors);
|
|
711
|
+
if (!mission || !missionExecutor)
|
|
712
|
+
return undefined;
|
|
713
|
+
const missionConstraints = parseMissionConstraints(missionConstraintsRaw, `${path}.mission_constraints`, errors);
|
|
714
|
+
if (missionConstraintsRaw != null && missionConstraints === undefined)
|
|
715
|
+
return undefined;
|
|
716
|
+
const scRaw = pickKey(raw, "success_criteria", "successCriteria");
|
|
717
|
+
let successCriteria;
|
|
718
|
+
if (afterAgent?.successCriteria) {
|
|
719
|
+
successCriteria = afterAgent.successCriteria;
|
|
720
|
+
}
|
|
721
|
+
else {
|
|
722
|
+
successCriteria = parseSuccessCriteria(scRaw, `${path}.success_criteria`, errors);
|
|
723
|
+
}
|
|
724
|
+
if (!id || !description || !successCriteria)
|
|
725
|
+
return undefined;
|
|
726
|
+
const goal = {
|
|
727
|
+
id,
|
|
728
|
+
type,
|
|
729
|
+
description,
|
|
730
|
+
successCriteria,
|
|
731
|
+
executionMode: "agent",
|
|
732
|
+
mission,
|
|
733
|
+
missionExecutor,
|
|
734
|
+
};
|
|
735
|
+
if (missionConstraints)
|
|
736
|
+
goal.missionConstraints = missionConstraints;
|
|
737
|
+
if (afterAgent?.startPath !== undefined) {
|
|
738
|
+
goal.afterAgent = { startPath: afterAgent.startPath };
|
|
739
|
+
}
|
|
740
|
+
const startPathRaw = pickKey(raw, "start_path", "startPath");
|
|
741
|
+
if (startPathRaw !== undefined && startPathRaw !== null) {
|
|
742
|
+
const sp = asString(startPathRaw, `${path}.start_path`, "start_path", errors);
|
|
743
|
+
if (sp) {
|
|
744
|
+
if (sp.includes("..")) {
|
|
745
|
+
errors.push(err(`${path}.start_path`, "unsafe", "start_path must not contain '..'"));
|
|
746
|
+
}
|
|
747
|
+
else {
|
|
748
|
+
goal.startPath = sp;
|
|
749
|
+
}
|
|
750
|
+
}
|
|
751
|
+
}
|
|
752
|
+
const pre = pickKey(raw, "preconditions", "preconditions");
|
|
753
|
+
if (pre !== undefined && pre !== null) {
|
|
754
|
+
if (!Array.isArray(pre) || !pre.every((x) => typeof x === "string")) {
|
|
755
|
+
errors.push(err(`${path}.preconditions`, "type", "preconditions must be string[]"));
|
|
756
|
+
return undefined;
|
|
757
|
+
}
|
|
758
|
+
goal.preconditions = pre;
|
|
759
|
+
}
|
|
760
|
+
const clean = pickKey(raw, "cleanup", "cleanup");
|
|
761
|
+
if (clean !== undefined && clean !== null) {
|
|
762
|
+
if (!Array.isArray(clean) || !clean.every((x) => typeof x === "string")) {
|
|
763
|
+
errors.push(err(`${path}.cleanup`, "type", "cleanup must be string[]"));
|
|
764
|
+
return undefined;
|
|
765
|
+
}
|
|
766
|
+
goal.cleanup = clean;
|
|
767
|
+
}
|
|
768
|
+
const ex = pickKey(raw, "exclusive_with", "exclusiveWith");
|
|
769
|
+
if (ex !== undefined && ex !== null) {
|
|
770
|
+
if (!Array.isArray(ex) || !ex.every((x) => typeof x === "string")) {
|
|
771
|
+
errors.push(err(`${path}.exclusive_with`, "type", "exclusive_with must be string[]"));
|
|
772
|
+
return undefined;
|
|
773
|
+
}
|
|
774
|
+
goal.exclusiveWith = ex;
|
|
775
|
+
}
|
|
776
|
+
const tags = pickKey(raw, "tags", "tags");
|
|
777
|
+
if (tags !== undefined && tags !== null) {
|
|
778
|
+
if (!Array.isArray(tags) || !tags.every((x) => typeof x === "string")) {
|
|
779
|
+
errors.push(err(`${path}.tags`, "type", "tags must be string[]"));
|
|
780
|
+
return undefined;
|
|
781
|
+
}
|
|
782
|
+
goal.tags = tags;
|
|
783
|
+
}
|
|
784
|
+
if (!addOptionalAcceptanceCriterionIds(goal, raw, path, errors, allowedAcIds))
|
|
785
|
+
return undefined;
|
|
786
|
+
return goal;
|
|
787
|
+
}
|
|
788
|
+
if (executionMode === "ac_sequence") {
|
|
789
|
+
if (type !== "browser") {
|
|
790
|
+
errors.push(err(`${path}.execution_mode`, "ac_sequence_browser_only", "execution_mode: ac_sequence is only valid for type: browser"));
|
|
791
|
+
return undefined;
|
|
792
|
+
}
|
|
793
|
+
if (!allowedAcIds || orderedAcIds.length === 0) {
|
|
794
|
+
errors.push(err(`${path}.execution_mode`, "requires_suite_ac", "execution_mode: ac_sequence requires suite-level acceptance_criteria"));
|
|
795
|
+
return undefined;
|
|
796
|
+
}
|
|
797
|
+
if (acSeqKey === undefined || acSeqKey === null) {
|
|
798
|
+
errors.push(err(`${path}.ac_sequence`, "required", "execution_mode: ac_sequence requires an ac_sequence block"));
|
|
799
|
+
return undefined;
|
|
800
|
+
}
|
|
801
|
+
const acSequence = parseAcSequence(acSeqKey, `${path}.ac_sequence`, errors, allowedAcIds);
|
|
802
|
+
if (!acSequence)
|
|
803
|
+
return undefined;
|
|
804
|
+
const scRawAc = pickKey(raw, "success_criteria", "successCriteria");
|
|
805
|
+
let successCriteriaAc;
|
|
806
|
+
if (scRawAc === undefined || scRawAc === null) {
|
|
807
|
+
successCriteriaAc = {};
|
|
808
|
+
}
|
|
809
|
+
else {
|
|
810
|
+
const p = parseSuccessCriteria(scRawAc, `${path}.success_criteria`, errors, { allowEmpty: true });
|
|
811
|
+
if (!p)
|
|
812
|
+
return undefined;
|
|
813
|
+
successCriteriaAc = p;
|
|
814
|
+
}
|
|
815
|
+
if (!id || !description)
|
|
816
|
+
return undefined;
|
|
817
|
+
const goalAc = {
|
|
818
|
+
id,
|
|
819
|
+
type,
|
|
820
|
+
description,
|
|
821
|
+
successCriteria: successCriteriaAc,
|
|
822
|
+
executionMode: "ac_sequence",
|
|
823
|
+
acSequence,
|
|
824
|
+
};
|
|
825
|
+
const startPathRawAc = pickKey(raw, "start_path", "startPath");
|
|
826
|
+
if (startPathRawAc !== undefined && startPathRawAc !== null) {
|
|
827
|
+
const sp = asString(startPathRawAc, `${path}.start_path`, "start_path", errors);
|
|
828
|
+
if (sp) {
|
|
829
|
+
if (sp.includes("..")) {
|
|
830
|
+
errors.push(err(`${path}.start_path`, "unsafe", "start_path must not contain '..'"));
|
|
831
|
+
}
|
|
832
|
+
else {
|
|
833
|
+
goalAc.startPath = sp;
|
|
834
|
+
}
|
|
835
|
+
}
|
|
836
|
+
}
|
|
837
|
+
const preAc = pickKey(raw, "preconditions", "preconditions");
|
|
838
|
+
if (preAc !== undefined && preAc !== null) {
|
|
839
|
+
if (!Array.isArray(preAc) || !preAc.every((x) => typeof x === "string")) {
|
|
840
|
+
errors.push(err(`${path}.preconditions`, "type", "preconditions must be string[]"));
|
|
841
|
+
return undefined;
|
|
842
|
+
}
|
|
843
|
+
goalAc.preconditions = preAc;
|
|
844
|
+
}
|
|
845
|
+
const cleanAc = pickKey(raw, "cleanup", "cleanup");
|
|
846
|
+
if (cleanAc !== undefined && cleanAc !== null) {
|
|
847
|
+
if (!Array.isArray(cleanAc) || !cleanAc.every((x) => typeof x === "string")) {
|
|
848
|
+
errors.push(err(`${path}.cleanup`, "type", "cleanup must be string[]"));
|
|
849
|
+
return undefined;
|
|
850
|
+
}
|
|
851
|
+
goalAc.cleanup = cleanAc;
|
|
852
|
+
}
|
|
853
|
+
const exAc = pickKey(raw, "exclusive_with", "exclusiveWith");
|
|
854
|
+
if (exAc !== undefined && exAc !== null) {
|
|
855
|
+
if (!Array.isArray(exAc) || !exAc.every((x) => typeof x === "string")) {
|
|
856
|
+
errors.push(err(`${path}.exclusive_with`, "type", "exclusive_with must be string[]"));
|
|
857
|
+
return undefined;
|
|
858
|
+
}
|
|
859
|
+
goalAc.exclusiveWith = exAc;
|
|
860
|
+
}
|
|
861
|
+
const tagsAc = pickKey(raw, "tags", "tags");
|
|
862
|
+
if (tagsAc !== undefined && tagsAc !== null) {
|
|
863
|
+
if (!Array.isArray(tagsAc) || !tagsAc.every((x) => typeof x === "string")) {
|
|
864
|
+
errors.push(err(`${path}.tags`, "type", "tags must be string[]"));
|
|
865
|
+
return undefined;
|
|
866
|
+
}
|
|
867
|
+
goalAc.tags = tagsAc;
|
|
868
|
+
}
|
|
869
|
+
if (!addOptionalAcceptanceCriterionIds(goalAc, raw, path, errors, allowedAcIds))
|
|
870
|
+
return undefined;
|
|
871
|
+
if (goalAc.acceptanceCriterionIds === undefined || goalAc.acceptanceCriterionIds.length === 0) {
|
|
872
|
+
goalAc.acceptanceCriterionIds = [...orderedAcIds];
|
|
873
|
+
}
|
|
874
|
+
return goalAc;
|
|
875
|
+
}
|
|
876
|
+
if (missionRaw != null || missionExecRaw != null || missionConstraintsRaw != null) {
|
|
877
|
+
errors.push(err(`${path}.mission`, "forbidden", "mission, mission_executor, and mission_constraints are only allowed when execution_mode is agent"));
|
|
878
|
+
return undefined;
|
|
879
|
+
}
|
|
880
|
+
if (pickKey(raw, "after_agent", "afterAgent") != null) {
|
|
881
|
+
errors.push(err(`${path}.after_agent`, "forbidden", "after_agent is only allowed when execution_mode is agent"));
|
|
882
|
+
return undefined;
|
|
883
|
+
}
|
|
345
884
|
const scRaw = pickKey(raw, "success_criteria", "successCriteria");
|
|
346
885
|
const successCriteria = parseSuccessCriteria(scRaw, `${path}.success_criteria`, errors);
|
|
347
886
|
if (!id || !description || !successCriteria)
|
|
@@ -391,6 +930,8 @@ function parseGoal(raw, path, errors) {
|
|
|
391
930
|
}
|
|
392
931
|
goal.tags = tags;
|
|
393
932
|
}
|
|
933
|
+
if (!addOptionalAcceptanceCriterionIds(goal, raw, path, errors, allowedAcIds))
|
|
934
|
+
return undefined;
|
|
394
935
|
return goal;
|
|
395
936
|
}
|
|
396
937
|
function parseSuite(raw, index, path, envIds, errors) {
|
|
@@ -406,6 +947,12 @@ function parseSuite(raw, index, path, envIds, errors) {
|
|
|
406
947
|
errors.push(err(`${path}.environment`, "unknown_environment", `Suite "${id}" references unknown environment "${environment}". Defined environments: ${[...envIds].join(", ") || "(none)"}`));
|
|
407
948
|
return undefined;
|
|
408
949
|
}
|
|
950
|
+
const acParsed = parseSuiteAcceptanceCriteria(pickKey(raw, "acceptance_criteria", "acceptanceCriteria"), `${path}.acceptance_criteria`, errors);
|
|
951
|
+
if (pickKey(raw, "acceptance_criteria", "acceptanceCriteria") != null && acParsed === undefined) {
|
|
952
|
+
return undefined;
|
|
953
|
+
}
|
|
954
|
+
const allowedAcIds = acParsed?.idSet;
|
|
955
|
+
const orderedAcIds = acParsed?.list.map((c) => c.id) ?? [];
|
|
409
956
|
const goalsRaw = pickKey(raw, "goals", "goals");
|
|
410
957
|
if (!Array.isArray(goalsRaw) || goalsRaw.length === 0) {
|
|
411
958
|
errors.push(err(`${path}.goals`, "required", `Suite "${id}" must declare a non-empty goals array`));
|
|
@@ -413,7 +960,7 @@ function parseSuite(raw, index, path, envIds, errors) {
|
|
|
413
960
|
}
|
|
414
961
|
const goals = [];
|
|
415
962
|
goalsRaw.forEach((g, gi) => {
|
|
416
|
-
const goal = parseGoal(g, `${path}.goals[${gi}]`, errors);
|
|
963
|
+
const goal = parseGoal(g, `${path}.goals[${gi}]`, errors, allowedAcIds, orderedAcIds);
|
|
417
964
|
if (goal)
|
|
418
965
|
goals.push(goal);
|
|
419
966
|
});
|
|
@@ -426,6 +973,15 @@ function parseSuite(raw, index, path, envIds, errors) {
|
|
|
426
973
|
if (d)
|
|
427
974
|
suite.description = d;
|
|
428
975
|
}
|
|
976
|
+
const us = pickKey(raw, "user_story", "userStory");
|
|
977
|
+
if (us !== undefined && us !== null) {
|
|
978
|
+
const story = asString(us, `${path}.user_story`, "user_story", errors);
|
|
979
|
+
if (!story)
|
|
980
|
+
return undefined;
|
|
981
|
+
suite.userStory = story;
|
|
982
|
+
}
|
|
983
|
+
if (acParsed)
|
|
984
|
+
suite.acceptanceCriteria = acParsed.list;
|
|
429
985
|
const tags = pickKey(raw, "tags", "tags");
|
|
430
986
|
if (tags !== undefined && tags !== null) {
|
|
431
987
|
if (!Array.isArray(tags) || !tags.every((x) => typeof x === "string")) {
|
package/dist/validate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@restormel/testing-config",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "Load and validate restormel-testing.yaml / JSON workspace config.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"yaml": "^2.7.0",
|
|
35
|
-
"@restormel/testing-core": "0.1.
|
|
35
|
+
"@restormel/testing-core": "0.1.4"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"typescript": "^5.7.0"
|