@validate.qa/runner 1.0.64 → 1.0.65

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.
Files changed (3) hide show
  1. package/dist/cli.js +143 -2
  2. package/dist/cli.mjs +143 -2
  3. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -3485,6 +3485,135 @@ var init_audit_pricing = __esm({
3485
3485
  }
3486
3486
  });
3487
3487
 
3488
+ // ../shared/dist/audit-grouping.js
3489
+ var GROUPABLE_CALL_TYPES, GROUP_LABELS, FLOW_PHASE_TYPES, FLOW_SERVER_TYPES, FLOW_PHASE_LABELS;
3490
+ var init_audit_grouping = __esm({
3491
+ "../shared/dist/audit-grouping.js"() {
3492
+ "use strict";
3493
+ GROUPABLE_CALL_TYPES = /* @__PURE__ */ new Set([
3494
+ "healIteration",
3495
+ "healOrchestrator",
3496
+ "generateRegressionSuite",
3497
+ "discoveryExplore",
3498
+ "surveyExplore",
3499
+ "featureExplore",
3500
+ "discoveryGenerate",
3501
+ "discoveryPlan",
3502
+ "discoveryGenerateSkeleton",
3503
+ "discoveryGenerateElementContext",
3504
+ "liveGenerate",
3505
+ "scenarioGenerate",
3506
+ "liveSuiteHeal",
3507
+ "captureIteration",
3508
+ "healAPITest",
3509
+ "generateAPITests",
3510
+ // Auth-prologue login-capture run (runLoginCaptureRun) — per-turn rows share a
3511
+ // groupId so they collapse into one "Login Capture" phase card on /audit.
3512
+ "authCapture",
3513
+ // Assistant chat — rounds of one conversation collapse into one card.
3514
+ "assistantChat"
3515
+ ]);
3516
+ GROUP_LABELS = {
3517
+ healIteration: "healSession",
3518
+ healOrchestrator: "healSession",
3519
+ healAPITest: "apiHealSession",
3520
+ generateRegressionSuite: "regressionSession",
3521
+ generateAPITests: "apiTestGenSession",
3522
+ discoveryExplore: "discoveryExploreSession",
3523
+ surveyExplore: "surveyExploreSession",
3524
+ featureExplore: "featureExploreSession",
3525
+ discoveryGenerate: "discoveryGenerateSession",
3526
+ discoveryGenerateSkeleton: "discoveryGenerateSession",
3527
+ discoveryGenerateElementContext: "discoveryGenerateSession",
3528
+ liveGenerate: "liveGenerateSession",
3529
+ scenarioGenerate: "scenarioGenerateSession",
3530
+ discoveryPlan: "discoveryPlanSession",
3531
+ liveSuiteHeal: "liveSuiteHealSession",
3532
+ captureIteration: "captureIterationSession",
3533
+ authCapture: "authCaptureSession",
3534
+ assistantChat: "assistantChatSession"
3535
+ };
3536
+ FLOW_PHASE_TYPES = /* @__PURE__ */ new Set([
3537
+ "surveyExploreSession",
3538
+ "featureExploreSession",
3539
+ "discoveryAIPlanner",
3540
+ "discoveryPlanSession",
3541
+ "scenarioGenerateSession",
3542
+ "liveGenerateSession",
3543
+ "discoveryGenerateSession",
3544
+ // Raw callTypes (for ungrouped single-turn entries like planner)
3545
+ "surveyExplore",
3546
+ "featureExplore",
3547
+ "discoveryPlan",
3548
+ "scenarioGenerate",
3549
+ "liveGenerate",
3550
+ "discoveryGenerate",
3551
+ // Planner repair / retry / strengthen-gate — the one-shot extra planner call
3552
+ // shares the base planner's discoveryFlowId, so it nests as its own phase
3553
+ // instead of dangling as a raw camelCase row.
3554
+ "discoveryAIPlannerRepair",
3555
+ "discoveryAIPlannerRetry",
3556
+ "discoveryAIPlannerStrengthenGate",
3557
+ // Deep-run feature analyst insight (one call per feature discovery).
3558
+ "featureInsight",
3559
+ // Discovery v2 Call-1-authoring pivot — per-test Call 2 spawns. Each session
3560
+ // has its OWN sessionId but shares the parent discoveryFlowId, so grouping by
3561
+ // flowId pulls them under the same Discovery Flow card. `Cleanup` is the
3562
+ // teardown sibling of Fix/Author and nests the same way.
3563
+ "discoveryCall2Fix",
3564
+ "discoveryCall2Author",
3565
+ "discoveryCall2Cleanup",
3566
+ // Auth-prologue login-capture run — grouped label + raw callType.
3567
+ "authCaptureSession",
3568
+ "authCapture"
3569
+ ]);
3570
+ FLOW_SERVER_TYPES = /* @__PURE__ */ new Set([
3571
+ "healthAnalysis",
3572
+ "apiSecurityAudit",
3573
+ "apiSecurityAuditVerify",
3574
+ "generateAPITests",
3575
+ "apiTestGenSession",
3576
+ "healAPITest",
3577
+ "apiHealSession",
3578
+ "healSession",
3579
+ "healIteration"
3580
+ ]);
3581
+ FLOW_PHASE_LABELS = {
3582
+ surveyExploreSession: "Survey Explore",
3583
+ featureExploreSession: "Feature Explore",
3584
+ discoveryAIPlanner: "Feature Analyst",
3585
+ discoveryAIPlannerRepair: "Planner Repair",
3586
+ discoveryAIPlannerRetry: "Planner Retry",
3587
+ discoveryAIPlannerStrengthenGate: "Planner Strengthen Gate",
3588
+ discoveryPlanSession: "Survey Planner",
3589
+ scenarioGenerateSession: "Scenario Gen",
3590
+ liveGenerateSession: "Live Browser Gen",
3591
+ discoveryGenerateSession: "Test Generation",
3592
+ surveyExplore: "Survey Explore",
3593
+ featureExplore: "Feature Explore",
3594
+ discoveryPlan: "Planner",
3595
+ scenarioGenerate: "Scenario Gen",
3596
+ liveGenerate: "Live Browser Gen",
3597
+ discoveryGenerate: "Test Generation",
3598
+ discoveryCall2Fix: "Call 2 Fix",
3599
+ discoveryCall2Author: "Call 2 Author",
3600
+ discoveryCall2Cleanup: "Call 2 Cleanup",
3601
+ featureInsight: "Feature Insight",
3602
+ healthAnalysis: "Health Analysis",
3603
+ apiSecurityAudit: "Security Audit",
3604
+ apiSecurityAuditVerify: "Security Verify",
3605
+ generateAPITests: "API Test Gen",
3606
+ apiTestGenSession: "API Test Gen",
3607
+ healAPITest: "API Test Heal",
3608
+ apiHealSession: "API Test Heal",
3609
+ healSession: "Heal Session",
3610
+ healIteration: "Heal",
3611
+ authCapture: "Login Capture",
3612
+ authCaptureSession: "Login Capture"
3613
+ };
3614
+ }
3615
+ });
3616
+
3488
3617
  // ../shared/dist/discovery-har-decision.js
3489
3618
  function decideHarPosted(response) {
3490
3619
  if (!response)
@@ -5850,6 +5979,11 @@ __export(dist_exports, {
5850
5979
  DEFAULT_UI_VARIANT: () => DEFAULT_UI_VARIANT,
5851
5980
  EMAIL_FROM_IDENTITIES: () => EMAIL_FROM_IDENTITIES,
5852
5981
  ENVIRONMENTAL_ERROR_PREFIXES: () => ENVIRONMENTAL_ERROR_PREFIXES,
5982
+ FLOW_PHASE_LABELS: () => FLOW_PHASE_LABELS,
5983
+ FLOW_PHASE_TYPES: () => FLOW_PHASE_TYPES,
5984
+ FLOW_SERVER_TYPES: () => FLOW_SERVER_TYPES,
5985
+ GROUPABLE_CALL_TYPES: () => GROUPABLE_CALL_TYPES,
5986
+ GROUP_LABELS: () => GROUP_LABELS,
5853
5987
  LEGACY_TTS_VOICE_ID_MAP: () => LEGACY_TTS_VOICE_ID_MAP,
5854
5988
  MAX_CREDIT_TOPUP_CENTS: () => MAX_CREDIT_TOPUP_CENTS,
5855
5989
  MAX_DEEPLINK_LENGTH: () => MAX_DEEPLINK_LENGTH,
@@ -6033,6 +6167,7 @@ var init_dist = __esm({
6033
6167
  init_mobile_deeplink();
6034
6168
  init_plans();
6035
6169
  init_audit_pricing();
6170
+ init_audit_grouping();
6036
6171
  init_discovery_har_decision();
6037
6172
  init_assertion_classifier();
6038
6173
  init_assertion_strength();
@@ -350920,7 +351055,7 @@ var require_package4 = __commonJS({
350920
351055
  "package.json"(exports2, module2) {
350921
351056
  module2.exports = {
350922
351057
  name: "@validate.qa/runner",
350923
- version: "1.0.64",
351058
+ version: "1.0.65",
350924
351059
  description: "validate local test runner - execute Playwright tests on your machine, connected to validate.qa cloud.",
350925
351060
  bin: {
350926
351061
  "validate-runner": "dist/cli.js"
@@ -359516,13 +359651,14 @@ ${finalVerifyResult.logs ?? ""}`;
359516
359651
  }
359517
359652
  }
359518
359653
  }
359654
+ const auditStatus = info.exitReason === "abort" || info.exitReason === "timeout" ? "ERROR" : "SUCCESS";
359519
359655
  pushAudit({
359520
359656
  projectId: ctx.projectId,
359521
359657
  sessionId: ctx.sessionId,
359522
359658
  callType: info.callType,
359523
359659
  model: info.model,
359524
359660
  provider: info.provider,
359525
- status: "SUCCESS",
359661
+ status: auditStatus,
359526
359662
  durationMs: info.durationMs,
359527
359663
  promptTokens: info.promptTokens,
359528
359664
  completionTokens: info.completionTokens,
@@ -359539,6 +359675,11 @@ ${finalVerifyResult.logs ?? ""}`;
359539
359675
  discoveryFlowId: run2.runId,
359540
359676
  ...info.callType === "authCapture" ? { featureName: "Login" } : ctx.featureName ? { featureName: ctx.featureName } : {},
359541
359677
  ...ctx.mode ? { discoveryMode: ctx.mode } : {},
359678
+ // Per-session identity for Call-2 rows (parity with execute-run.ts) so
359679
+ // Fix/Author/Cleanup phases are distinguishable in the flow card.
359680
+ ...info.scenarioName ? { scenarioName: info.scenarioName } : {},
359681
+ ...info.sessionKind ? { sessionKind: info.sessionKind } : {},
359682
+ ...info.exitReason ? { exitReason: info.exitReason } : {},
359542
359683
  ...cliCostUsd !== void 0 ? { cliCostUsd } : {},
359543
359684
  ...ledgerAudit ? {
359544
359685
  ledger: ledgerAudit.entries,
package/dist/cli.mjs CHANGED
@@ -3490,6 +3490,135 @@ var init_audit_pricing = __esm({
3490
3490
  }
3491
3491
  });
3492
3492
 
3493
+ // ../shared/dist/audit-grouping.js
3494
+ var GROUPABLE_CALL_TYPES, GROUP_LABELS, FLOW_PHASE_TYPES, FLOW_SERVER_TYPES, FLOW_PHASE_LABELS;
3495
+ var init_audit_grouping = __esm({
3496
+ "../shared/dist/audit-grouping.js"() {
3497
+ "use strict";
3498
+ GROUPABLE_CALL_TYPES = /* @__PURE__ */ new Set([
3499
+ "healIteration",
3500
+ "healOrchestrator",
3501
+ "generateRegressionSuite",
3502
+ "discoveryExplore",
3503
+ "surveyExplore",
3504
+ "featureExplore",
3505
+ "discoveryGenerate",
3506
+ "discoveryPlan",
3507
+ "discoveryGenerateSkeleton",
3508
+ "discoveryGenerateElementContext",
3509
+ "liveGenerate",
3510
+ "scenarioGenerate",
3511
+ "liveSuiteHeal",
3512
+ "captureIteration",
3513
+ "healAPITest",
3514
+ "generateAPITests",
3515
+ // Auth-prologue login-capture run (runLoginCaptureRun) — per-turn rows share a
3516
+ // groupId so they collapse into one "Login Capture" phase card on /audit.
3517
+ "authCapture",
3518
+ // Assistant chat — rounds of one conversation collapse into one card.
3519
+ "assistantChat"
3520
+ ]);
3521
+ GROUP_LABELS = {
3522
+ healIteration: "healSession",
3523
+ healOrchestrator: "healSession",
3524
+ healAPITest: "apiHealSession",
3525
+ generateRegressionSuite: "regressionSession",
3526
+ generateAPITests: "apiTestGenSession",
3527
+ discoveryExplore: "discoveryExploreSession",
3528
+ surveyExplore: "surveyExploreSession",
3529
+ featureExplore: "featureExploreSession",
3530
+ discoveryGenerate: "discoveryGenerateSession",
3531
+ discoveryGenerateSkeleton: "discoveryGenerateSession",
3532
+ discoveryGenerateElementContext: "discoveryGenerateSession",
3533
+ liveGenerate: "liveGenerateSession",
3534
+ scenarioGenerate: "scenarioGenerateSession",
3535
+ discoveryPlan: "discoveryPlanSession",
3536
+ liveSuiteHeal: "liveSuiteHealSession",
3537
+ captureIteration: "captureIterationSession",
3538
+ authCapture: "authCaptureSession",
3539
+ assistantChat: "assistantChatSession"
3540
+ };
3541
+ FLOW_PHASE_TYPES = /* @__PURE__ */ new Set([
3542
+ "surveyExploreSession",
3543
+ "featureExploreSession",
3544
+ "discoveryAIPlanner",
3545
+ "discoveryPlanSession",
3546
+ "scenarioGenerateSession",
3547
+ "liveGenerateSession",
3548
+ "discoveryGenerateSession",
3549
+ // Raw callTypes (for ungrouped single-turn entries like planner)
3550
+ "surveyExplore",
3551
+ "featureExplore",
3552
+ "discoveryPlan",
3553
+ "scenarioGenerate",
3554
+ "liveGenerate",
3555
+ "discoveryGenerate",
3556
+ // Planner repair / retry / strengthen-gate — the one-shot extra planner call
3557
+ // shares the base planner's discoveryFlowId, so it nests as its own phase
3558
+ // instead of dangling as a raw camelCase row.
3559
+ "discoveryAIPlannerRepair",
3560
+ "discoveryAIPlannerRetry",
3561
+ "discoveryAIPlannerStrengthenGate",
3562
+ // Deep-run feature analyst insight (one call per feature discovery).
3563
+ "featureInsight",
3564
+ // Discovery v2 Call-1-authoring pivot — per-test Call 2 spawns. Each session
3565
+ // has its OWN sessionId but shares the parent discoveryFlowId, so grouping by
3566
+ // flowId pulls them under the same Discovery Flow card. `Cleanup` is the
3567
+ // teardown sibling of Fix/Author and nests the same way.
3568
+ "discoveryCall2Fix",
3569
+ "discoveryCall2Author",
3570
+ "discoveryCall2Cleanup",
3571
+ // Auth-prologue login-capture run — grouped label + raw callType.
3572
+ "authCaptureSession",
3573
+ "authCapture"
3574
+ ]);
3575
+ FLOW_SERVER_TYPES = /* @__PURE__ */ new Set([
3576
+ "healthAnalysis",
3577
+ "apiSecurityAudit",
3578
+ "apiSecurityAuditVerify",
3579
+ "generateAPITests",
3580
+ "apiTestGenSession",
3581
+ "healAPITest",
3582
+ "apiHealSession",
3583
+ "healSession",
3584
+ "healIteration"
3585
+ ]);
3586
+ FLOW_PHASE_LABELS = {
3587
+ surveyExploreSession: "Survey Explore",
3588
+ featureExploreSession: "Feature Explore",
3589
+ discoveryAIPlanner: "Feature Analyst",
3590
+ discoveryAIPlannerRepair: "Planner Repair",
3591
+ discoveryAIPlannerRetry: "Planner Retry",
3592
+ discoveryAIPlannerStrengthenGate: "Planner Strengthen Gate",
3593
+ discoveryPlanSession: "Survey Planner",
3594
+ scenarioGenerateSession: "Scenario Gen",
3595
+ liveGenerateSession: "Live Browser Gen",
3596
+ discoveryGenerateSession: "Test Generation",
3597
+ surveyExplore: "Survey Explore",
3598
+ featureExplore: "Feature Explore",
3599
+ discoveryPlan: "Planner",
3600
+ scenarioGenerate: "Scenario Gen",
3601
+ liveGenerate: "Live Browser Gen",
3602
+ discoveryGenerate: "Test Generation",
3603
+ discoveryCall2Fix: "Call 2 Fix",
3604
+ discoveryCall2Author: "Call 2 Author",
3605
+ discoveryCall2Cleanup: "Call 2 Cleanup",
3606
+ featureInsight: "Feature Insight",
3607
+ healthAnalysis: "Health Analysis",
3608
+ apiSecurityAudit: "Security Audit",
3609
+ apiSecurityAuditVerify: "Security Verify",
3610
+ generateAPITests: "API Test Gen",
3611
+ apiTestGenSession: "API Test Gen",
3612
+ healAPITest: "API Test Heal",
3613
+ apiHealSession: "API Test Heal",
3614
+ healSession: "Heal Session",
3615
+ healIteration: "Heal",
3616
+ authCapture: "Login Capture",
3617
+ authCaptureSession: "Login Capture"
3618
+ };
3619
+ }
3620
+ });
3621
+
3493
3622
  // ../shared/dist/discovery-har-decision.js
3494
3623
  function decideHarPosted(response) {
3495
3624
  if (!response)
@@ -5855,6 +5984,11 @@ __export(dist_exports, {
5855
5984
  DEFAULT_UI_VARIANT: () => DEFAULT_UI_VARIANT,
5856
5985
  EMAIL_FROM_IDENTITIES: () => EMAIL_FROM_IDENTITIES,
5857
5986
  ENVIRONMENTAL_ERROR_PREFIXES: () => ENVIRONMENTAL_ERROR_PREFIXES,
5987
+ FLOW_PHASE_LABELS: () => FLOW_PHASE_LABELS,
5988
+ FLOW_PHASE_TYPES: () => FLOW_PHASE_TYPES,
5989
+ FLOW_SERVER_TYPES: () => FLOW_SERVER_TYPES,
5990
+ GROUPABLE_CALL_TYPES: () => GROUPABLE_CALL_TYPES,
5991
+ GROUP_LABELS: () => GROUP_LABELS,
5858
5992
  LEGACY_TTS_VOICE_ID_MAP: () => LEGACY_TTS_VOICE_ID_MAP,
5859
5993
  MAX_CREDIT_TOPUP_CENTS: () => MAX_CREDIT_TOPUP_CENTS,
5860
5994
  MAX_DEEPLINK_LENGTH: () => MAX_DEEPLINK_LENGTH,
@@ -6038,6 +6172,7 @@ var init_dist = __esm({
6038
6172
  init_mobile_deeplink();
6039
6173
  init_plans();
6040
6174
  init_audit_pricing();
6175
+ init_audit_grouping();
6041
6176
  init_discovery_har_decision();
6042
6177
  init_assertion_classifier();
6043
6178
  init_assertion_strength();
@@ -350925,7 +351060,7 @@ var require_package4 = __commonJS({
350925
351060
  "package.json"(exports, module) {
350926
351061
  module.exports = {
350927
351062
  name: "@validate.qa/runner",
350928
- version: "1.0.64",
351063
+ version: "1.0.65",
350929
351064
  description: "validate local test runner - execute Playwright tests on your machine, connected to validate.qa cloud.",
350930
351065
  bin: {
350931
351066
  "validate-runner": "dist/cli.js"
@@ -359524,13 +359659,14 @@ ${finalVerifyResult.logs ?? ""}`;
359524
359659
  }
359525
359660
  }
359526
359661
  }
359662
+ const auditStatus = info.exitReason === "abort" || info.exitReason === "timeout" ? "ERROR" : "SUCCESS";
359527
359663
  pushAudit({
359528
359664
  projectId: ctx.projectId,
359529
359665
  sessionId: ctx.sessionId,
359530
359666
  callType: info.callType,
359531
359667
  model: info.model,
359532
359668
  provider: info.provider,
359533
- status: "SUCCESS",
359669
+ status: auditStatus,
359534
359670
  durationMs: info.durationMs,
359535
359671
  promptTokens: info.promptTokens,
359536
359672
  completionTokens: info.completionTokens,
@@ -359547,6 +359683,11 @@ ${finalVerifyResult.logs ?? ""}`;
359547
359683
  discoveryFlowId: run2.runId,
359548
359684
  ...info.callType === "authCapture" ? { featureName: "Login" } : ctx.featureName ? { featureName: ctx.featureName } : {},
359549
359685
  ...ctx.mode ? { discoveryMode: ctx.mode } : {},
359686
+ // Per-session identity for Call-2 rows (parity with execute-run.ts) so
359687
+ // Fix/Author/Cleanup phases are distinguishable in the flow card.
359688
+ ...info.scenarioName ? { scenarioName: info.scenarioName } : {},
359689
+ ...info.sessionKind ? { sessionKind: info.sessionKind } : {},
359690
+ ...info.exitReason ? { exitReason: info.exitReason } : {},
359550
359691
  ...cliCostUsd !== void 0 ? { cliCostUsd } : {},
359551
359692
  ...ledgerAudit ? {
359552
359693
  ledger: ledgerAudit.entries,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@validate.qa/runner",
3
- "version": "1.0.64",
3
+ "version": "1.0.65",
4
4
  "description": "validate local test runner - execute Playwright tests on your machine, connected to validate.qa cloud.",
5
5
  "bin": {
6
6
  "validate-runner": "dist/cli.js"