doc-detective-common 4.18.0 → 4.20.0

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 (35) hide show
  1. package/dist/index.cjs +87752 -6953
  2. package/dist/schemas/schemas.json +87752 -6953
  3. package/dist/types/generated/closeSurface_v3.d.ts +83 -17
  4. package/dist/types/generated/closeSurface_v3.d.ts.map +1 -1
  5. package/dist/types/generated/config_v3.d.ts +24 -0
  6. package/dist/types/generated/config_v3.d.ts.map +1 -1
  7. package/dist/types/generated/context_v3.d.ts +24 -0
  8. package/dist/types/generated/context_v3.d.ts.map +1 -1
  9. package/dist/types/generated/dragAndDrop_v3.d.ts +2 -2
  10. package/dist/types/generated/goTo_v3.d.ts +2 -2
  11. package/dist/types/generated/record_v3.d.ts +2 -2
  12. package/dist/types/generated/report_v3.d.ts +24 -0
  13. package/dist/types/generated/report_v3.d.ts.map +1 -1
  14. package/dist/types/generated/resolvedTests_v3.d.ts +48 -0
  15. package/dist/types/generated/resolvedTests_v3.d.ts.map +1 -1
  16. package/dist/types/generated/runBrowserScript_v3.d.ts +2 -2
  17. package/dist/types/generated/screenshot_v3.d.ts +42 -5
  18. package/dist/types/generated/screenshot_v3.d.ts.map +1 -1
  19. package/dist/types/generated/spec_v3.d.ts +24 -0
  20. package/dist/types/generated/spec_v3.d.ts.map +1 -1
  21. package/dist/types/generated/startSurface_v3.d.ts +108 -0
  22. package/dist/types/generated/startSurface_v3.d.ts.map +1 -0
  23. package/dist/types/generated/startSurface_v3.js +7 -0
  24. package/dist/types/generated/startSurface_v3.js.map +1 -0
  25. package/dist/types/generated/step_v3.d.ts +548 -123
  26. package/dist/types/generated/step_v3.d.ts.map +1 -1
  27. package/dist/types/generated/surface_v3.d.ts +37 -4
  28. package/dist/types/generated/surface_v3.d.ts.map +1 -1
  29. package/dist/types/generated/test_v3.d.ts +2023 -1037
  30. package/dist/types/generated/test_v3.d.ts.map +1 -1
  31. package/dist/types/generated/type_v3.d.ts +62 -12
  32. package/dist/types/generated/type_v3.d.ts.map +1 -1
  33. package/dist/types/generated/waitUntil_v3.d.ts +22 -8
  34. package/dist/types/generated/waitUntil_v3.d.ts.map +1 -1
  35. package/package.json +1 -1
@@ -5,7 +5,7 @@
5
5
  /**
6
6
  * A step in a test.
7
7
  */
8
- export type Step = (Common & CheckLink) | (Common1 & Click) | (Common2 & Find) | (Common3 & GoTo) | (Common4 & HttpRequest) | (Common5 & RunShell) | (Common6 & RunCode) | (Common7 & RunBrowserScript) | (Common8 & Type) | (Common9 & Screenshot) | (Common10 & SaveCookie) | (Common11 & Record) | (Common12 & StopRecord) | (Common13 & CloseSurface) | (Common14 & LoadVariables) | (Common15 & DragAndDrop) | (Common16 & LoadCookie) | (Common17 & Wait);
8
+ export type Step = (Common & CheckLink) | (Common1 & Click) | (Common2 & Find) | (Common3 & GoTo) | (Common4 & HttpRequest) | (Common5 & RunShell) | (Common6 & RunCode) | (Common7 & RunBrowserScript) | (Common8 & Type) | (Common9 & Screenshot) | (Common10 & SaveCookie) | (Common11 & Record) | (Common12 & StopRecord) | (Common13 & CloseSurface) | (Common14 & StartSurface) | (Common15 & LoadVariables) | (Common16 & DragAndDrop) | (Common17 & LoadCookie) | (Common18 & Wait);
9
9
  /**
10
10
  * A condition expression, or an array of expressions combined with logical AND.
11
11
  */
@@ -497,14 +497,14 @@ export type TypeKeysSimple = string | string[];
497
497
  export type TypeKeysDetailed = {
498
498
  keys: TypeKeysSimple1;
499
499
  /**
500
- * Delay in milliseconds between each key press during a recording, and between each keystroke sent to a process surface.
500
+ * Delay in milliseconds between each key press during a recording, and between each keystroke sent to a process surface. Not applied on app surfaces in this phase — the native driver types the value atomically.
501
501
  */
502
502
  inputDelay?: number;
503
503
  surface?: Surface;
504
504
  /**
505
- * After sending the keys, wait until the surface is ready. Requires a `surface`; the allowed conditions depend on the surface kind: a process surface accepts `stdio`/`delayMs`, a browser surface accepts `networkIdleTime`/`domIdleTime`/`find`. No condition applies by default.
505
+ * After sending the keys, wait until the surface is ready. Requires a `surface`; the allowed conditions depend on the surface kind: a process surface accepts `stdio`/`delayMs`, a browser surface accepts `networkIdleTime`/`domIdleTime`/`find`, an app surface accepts `delayMs`/`find`. No condition applies by default.
506
506
  */
507
- waitUntil?: ProcessReadiness | BrowserReadiness;
507
+ waitUntil?: ProcessReadiness | BrowserReadiness | AppReadiness;
508
508
  /**
509
509
  * Maximum time in milliseconds to wait for `waitUntil` after sending the keys.
510
510
  */
@@ -539,15 +539,15 @@ export type TypeKeysDetailed = {
539
539
  * Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax.
540
540
  */
541
541
  elementAria?: string;
542
- } & WaitUntilRequiresASurface & AProcessSurfaceForbidsElementTargeting & AProcessSurfaceTakesProcessReadiness & ABrowserSurfaceTakesBrowserReadiness & ABrowserEngineStringSurfaceTakesBrowserReadiness;
542
+ } & WaitUntilRequiresASurface & AProcessSurfaceForbidsElementTargeting & AProcessSurfaceTakesProcessReadiness & ABrowserSurfaceTakesBrowserReadiness & AnAppSurfaceTakesAppReadiness & ABrowserEngineStringSurfaceTakesBrowserReadiness;
543
543
  /**
544
544
  * Sequence of keys to enter.
545
545
  */
546
546
  export type TypeKeysSimple1 = string | string[];
547
547
  /**
548
- * The surface a step acts on. Omit to act on the active surface. Supports background processes and browser windows/tabs; app surfaces are added in a later phase.
548
+ * The surface a step acts on. Omit to act on the active surface. Supports background processes, browser windows/tabs, and native app windows.
549
549
  */
550
- export type Surface = SurfaceByName | ProcessSurface | BrowserSurface2;
550
+ export type Surface = SurfaceByName | ProcessSurface | BrowserSurface2 | AppSurface;
551
551
  /**
552
552
  * Name of the surface. A browser engine keyword (chrome|firefox|safari|webkit|edge) targets that browser; any other string names a background process. To target a browser window or tab, use the object form ({ "browser": …, "window": …, "tab": … }) — a plain string is never a window/tab name.
553
553
  */
@@ -576,6 +576,30 @@ export type ByIndex5 = number;
576
576
  * Name assigned when the window/tab was opened (goTo `newTab`/`newWindow`). The integer branch is listed first because Ajv validates with coerceTypes — string-first would coerce integer indexes into name strings.
577
577
  */
578
578
  export type ByName5 = string;
579
+ /**
580
+ * Which app window to act on. Omit to use the active window. Apps have windows, no tabs.
581
+ */
582
+ export type AppWindowSelector = ByIndex6 | ByName6 | ByCriteria6;
583
+ /**
584
+ * Index in creation order. Negative counts from the end; `-1` is the newest (e.g. a dialog the app just opened).
585
+ */
586
+ export type ByIndex6 = number;
587
+ /**
588
+ * Assigned window name. The integer branch is listed first because Ajv validates with coerceTypes — string-first would coerce integer indexes into name strings.
589
+ */
590
+ export type ByName6 = string;
591
+ /**
592
+ * Wait for a specific element to be present. At least one finding field must be specified.
593
+ */
594
+ export type ElementCriteria = {
595
+ [k: string]: unknown;
596
+ };
597
+ /**
598
+ * Wait for a specific element to be present. At least one finding field must be specified.
599
+ */
600
+ export type ElementCriteria1 = {
601
+ [k: string]: unknown;
602
+ };
579
603
  /**
580
604
  * A condition expression, or an array of expressions combined with logical AND.
581
605
  */
@@ -616,6 +640,7 @@ export type Screenshot1 = ScreenshotSimple | CaptureScreenshotDetailed | Capture
616
640
  * File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.
617
641
  */
618
642
  export type ScreenshotSimple = string;
643
+ export type CaptureScreenshotDetailed = CaptureScreenshotFields & AppCapturesDonTSupportCropYet;
619
644
  /**
620
645
  * Browser engine keyword. Targets that browser. Steps that can only ever act on a browser (not a background process) restrict the bare-string form to this enum, so a process name here is rejected at validation time instead of failing at runtime.
621
646
  */
@@ -623,27 +648,39 @@ export type SurfaceByBrowserEngine2 = "chrome" | "firefox" | "safari" | "webkit"
623
648
  /**
624
649
  * Which window to act on. Omit to use the active window.
625
650
  */
626
- export type WindowTabSelector6 = ByIndex6 | ByName6 | ByCriteria6;
651
+ export type WindowTabSelector6 = ByIndex7 | ByName7 | ByCriteria7;
627
652
  /**
628
653
  * Index in creation order. Negative counts from the end; `-1` is the newest.
629
654
  */
630
- export type ByIndex6 = number;
655
+ export type ByIndex7 = number;
631
656
  /**
632
657
  * Name assigned when the window/tab was opened (goTo `newTab`/`newWindow`). The integer branch is listed first because Ajv validates with coerceTypes — string-first would coerce integer indexes into name strings.
633
658
  */
634
- export type ByName6 = string;
659
+ export type ByName7 = string;
635
660
  /**
636
661
  * Which tab to act on. Omit to use the active tab. Without `window`, the selector searches every tab in creation order — including tabs the page opened itself.
637
662
  */
638
- export type WindowTabSelector7 = ByIndex7 | ByName7 | ByCriteria7;
663
+ export type WindowTabSelector7 = ByIndex8 | ByName8 | ByCriteria8;
639
664
  /**
640
665
  * Index in creation order. Negative counts from the end; `-1` is the newest.
641
666
  */
642
- export type ByIndex7 = number;
667
+ export type ByIndex8 = number;
643
668
  /**
644
669
  * Name assigned when the window/tab was opened (goTo `newTab`/`newWindow`). The integer branch is listed first because Ajv validates with coerceTypes — string-first would coerce integer indexes into name strings.
645
670
  */
646
- export type ByName7 = string;
671
+ export type ByName8 = string;
672
+ /**
673
+ * Which app window to act on. Omit to use the active window. Apps have windows, no tabs.
674
+ */
675
+ export type AppWindowSelector1 = ByIndex9 | ByName9 | ByCriteria9;
676
+ /**
677
+ * Index in creation order. Negative counts from the end; `-1` is the newest (e.g. a dialog the app just opened).
678
+ */
679
+ export type ByIndex9 = number;
680
+ /**
681
+ * Assigned window name. The integer branch is listed first because Ajv validates with coerceTypes — string-first would coerce integer indexes into name strings.
682
+ */
683
+ export type ByName9 = string;
647
684
  /**
648
685
  * File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.
649
686
  */
@@ -752,27 +789,27 @@ export type SurfaceByBrowserEngine3 = "chrome" | "firefox" | "safari" | "webkit"
752
789
  /**
753
790
  * Which window to act on. Omit to use the active window.
754
791
  */
755
- export type WindowTabSelector8 = ByIndex8 | ByName8 | ByCriteria8;
792
+ export type WindowTabSelector8 = ByIndex10 | ByName10 | ByCriteria10;
756
793
  /**
757
794
  * Index in creation order. Negative counts from the end; `-1` is the newest.
758
795
  */
759
- export type ByIndex8 = number;
796
+ export type ByIndex10 = number;
760
797
  /**
761
798
  * Name assigned when the window/tab was opened (goTo `newTab`/`newWindow`). The integer branch is listed first because Ajv validates with coerceTypes — string-first would coerce integer indexes into name strings.
762
799
  */
763
- export type ByName8 = string;
800
+ export type ByName10 = string;
764
801
  /**
765
802
  * Which tab to act on. Omit to use the active tab. Without `window`, the selector searches every tab in creation order — including tabs the page opened itself.
766
803
  */
767
- export type WindowTabSelector9 = ByIndex9 | ByName9 | ByCriteria9;
804
+ export type WindowTabSelector9 = ByIndex11 | ByName11 | ByCriteria11;
768
805
  /**
769
806
  * Index in creation order. Negative counts from the end; `-1` is the newest.
770
807
  */
771
- export type ByIndex9 = number;
808
+ export type ByIndex11 = number;
772
809
  /**
773
810
  * Name assigned when the window/tab was opened (goTo `newTab`/`newWindow`). The integer branch is listed first because Ajv validates with coerceTypes — string-first would coerce integer indexes into name strings.
774
811
  */
775
- export type ByName9 = string;
812
+ export type ByName11 = string;
776
813
  /**
777
814
  * Recording engine to use. Either a string shorthand selecting the engine with defaults, or an object for full control. If unset, defaults to the `browser` engine when a visible Chrome context is available and to `ffmpeg` otherwise.
778
815
  */
@@ -866,13 +903,13 @@ export type Routing55 = {
866
903
  [k: string]: unknown;
867
904
  };
868
905
  /**
869
- * Close one or more surfaces: background processes, or browser windows/tabs. A browser reference with a `tab` selector closes that tab; with a `window` selector it closes the window and its tabs. Closing a surface that is not open is a no-op (PASS). Renames `stopProcess`.
906
+ * Close one or more surfaces: background processes, browser windows/tabs or whole browser sessions, and native app surfaces. A browser reference with a `tab` selector closes that tab; with a `window` selector it closes the window and its tabs; with neither it closes the whole browser session. An app reference ({ "app": … }) closes the app surface, terminating the app when Doc Detective launched it. Closing a surface that is not open is a no-op (PASS). Renames `stopProcess`.
870
907
  */
871
908
  export type CloseSurface1 = Surface1 | [Surface2, ...Surface2[]];
872
909
  /**
873
- * The surface a step acts on. Omit to act on the active surface. Supports background processes and browser windows/tabs; app surfaces are added in a later phase.
910
+ * The surface a step acts on. Omit to act on the active surface. Supports background processes, browser windows/tabs, and native app windows.
874
911
  */
875
- export type Surface1 = SurfaceByName1 | ProcessSurface1 | BrowserSurface5;
912
+ export type Surface1 = SurfaceByName1 | ProcessSurface1 | BrowserSurface5 | AppSurface2;
876
913
  /**
877
914
  * Name of the surface. A browser engine keyword (chrome|firefox|safari|webkit|edge) targets that browser; any other string names a background process. To target a browser window or tab, use the object form ({ "browser": …, "window": …, "tab": … }) — a plain string is never a window/tab name.
878
915
  */
@@ -880,31 +917,43 @@ export type SurfaceByName1 = string;
880
917
  /**
881
918
  * Which window to act on. Omit to use the active window.
882
919
  */
883
- export type WindowTabSelector10 = ByIndex10 | ByName10 | ByCriteria10;
920
+ export type WindowTabSelector10 = ByIndex12 | ByName12 | ByCriteria12;
884
921
  /**
885
922
  * Index in creation order. Negative counts from the end; `-1` is the newest.
886
923
  */
887
- export type ByIndex10 = number;
924
+ export type ByIndex12 = number;
888
925
  /**
889
926
  * Name assigned when the window/tab was opened (goTo `newTab`/`newWindow`). The integer branch is listed first because Ajv validates with coerceTypes — string-first would coerce integer indexes into name strings.
890
927
  */
891
- export type ByName10 = string;
928
+ export type ByName12 = string;
892
929
  /**
893
930
  * Which tab to act on. Omit to use the active tab. Without `window`, the selector searches every tab in creation order — including tabs the page opened itself.
894
931
  */
895
- export type WindowTabSelector11 = ByIndex11 | ByName11 | ByCriteria11;
932
+ export type WindowTabSelector11 = ByIndex13 | ByName13 | ByCriteria13;
896
933
  /**
897
934
  * Index in creation order. Negative counts from the end; `-1` is the newest.
898
935
  */
899
- export type ByIndex11 = number;
936
+ export type ByIndex13 = number;
900
937
  /**
901
938
  * Name assigned when the window/tab was opened (goTo `newTab`/`newWindow`). The integer branch is listed first because Ajv validates with coerceTypes — string-first would coerce integer indexes into name strings.
902
939
  */
903
- export type ByName11 = string;
940
+ export type ByName13 = string;
941
+ /**
942
+ * Which app window to act on. Omit to use the active window. Apps have windows, no tabs.
943
+ */
944
+ export type AppWindowSelector2 = ByIndex14 | ByName14 | ByCriteria14;
945
+ /**
946
+ * Index in creation order. Negative counts from the end; `-1` is the newest (e.g. a dialog the app just opened).
947
+ */
948
+ export type ByIndex14 = number;
904
949
  /**
905
- * The surface a step acts on. Omit to act on the active surface. Supports background processes and browser windows/tabs; app surfaces are added in a later phase.
950
+ * Assigned window name. The integer branch is listed first because Ajv validates with coerceTypes string-first would coerce integer indexes into name strings.
906
951
  */
907
- export type Surface2 = SurfaceByName2 | ProcessSurface2 | BrowserSurface6;
952
+ export type ByName14 = string;
953
+ /**
954
+ * The surface a step acts on. Omit to act on the active surface. Supports background processes, browser windows/tabs, and native app windows.
955
+ */
956
+ export type Surface2 = SurfaceByName2 | ProcessSurface2 | BrowserSurface6 | AppSurface3;
908
957
  /**
909
958
  * Name of the surface. A browser engine keyword (chrome|firefox|safari|webkit|edge) targets that browser; any other string names a background process. To target a browser window or tab, use the object form ({ "browser": …, "window": …, "tab": … }) — a plain string is never a window/tab name.
910
959
  */
@@ -912,27 +961,39 @@ export type SurfaceByName2 = string;
912
961
  /**
913
962
  * Which window to act on. Omit to use the active window.
914
963
  */
915
- export type WindowTabSelector12 = ByIndex12 | ByName12 | ByCriteria12;
964
+ export type WindowTabSelector12 = ByIndex15 | ByName15 | ByCriteria15;
916
965
  /**
917
966
  * Index in creation order. Negative counts from the end; `-1` is the newest.
918
967
  */
919
- export type ByIndex12 = number;
968
+ export type ByIndex15 = number;
920
969
  /**
921
970
  * Name assigned when the window/tab was opened (goTo `newTab`/`newWindow`). The integer branch is listed first because Ajv validates with coerceTypes — string-first would coerce integer indexes into name strings.
922
971
  */
923
- export type ByName12 = string;
972
+ export type ByName15 = string;
924
973
  /**
925
974
  * Which tab to act on. Omit to use the active tab. Without `window`, the selector searches every tab in creation order — including tabs the page opened itself.
926
975
  */
927
- export type WindowTabSelector13 = ByIndex13 | ByName13 | ByCriteria13;
976
+ export type WindowTabSelector13 = ByIndex16 | ByName16 | ByCriteria16;
928
977
  /**
929
978
  * Index in creation order. Negative counts from the end; `-1` is the newest.
930
979
  */
931
- export type ByIndex13 = number;
980
+ export type ByIndex16 = number;
932
981
  /**
933
982
  * Name assigned when the window/tab was opened (goTo `newTab`/`newWindow`). The integer branch is listed first because Ajv validates with coerceTypes — string-first would coerce integer indexes into name strings.
934
983
  */
935
- export type ByName13 = string;
984
+ export type ByName16 = string;
985
+ /**
986
+ * Which app window to act on. Omit to use the active window. Apps have windows, no tabs.
987
+ */
988
+ export type AppWindowSelector3 = ByIndex17 | ByName17 | ByCriteria17;
989
+ /**
990
+ * Index in creation order. Negative counts from the end; `-1` is the newest (e.g. a dialog the app just opened).
991
+ */
992
+ export type ByIndex17 = number;
993
+ /**
994
+ * Assigned window name. The integer branch is listed first because Ajv validates with coerceTypes — string-first would coerce integer indexes into name strings.
995
+ */
996
+ export type ByName17 = string;
936
997
  /**
937
998
  * A condition expression, or an array of expressions combined with logical AND.
938
999
  */
@@ -965,10 +1026,13 @@ export type Routing58 = {
965
1026
  export type Routing59 = {
966
1027
  [k: string]: unknown;
967
1028
  };
1029
+ export type DeviceByName = string;
968
1030
  /**
969
- * Load environment variables from the specified `.env` file.
1031
+ * Wait for a specific element to be present. At least one finding field must be specified.
970
1032
  */
971
- export type LoadVariables1 = string;
1033
+ export type ElementCriteria2 = {
1034
+ [k: string]: unknown;
1035
+ };
972
1036
  /**
973
1037
  * A condition expression, or an array of expressions combined with logical AND.
974
1038
  */
@@ -1001,6 +1065,42 @@ export type Routing62 = {
1001
1065
  export type Routing63 = {
1002
1066
  [k: string]: unknown;
1003
1067
  };
1068
+ /**
1069
+ * Load environment variables from the specified `.env` file.
1070
+ */
1071
+ export type LoadVariables1 = string;
1072
+ /**
1073
+ * A condition expression, or an array of expressions combined with logical AND.
1074
+ */
1075
+ export type Condition32 = string | [string, ...string[]];
1076
+ /**
1077
+ * A condition expression, or an array of expressions combined with logical AND.
1078
+ */
1079
+ export type Condition33 = string | [string, ...string[]];
1080
+ /**
1081
+ * A single dynamic-routing entry: an optional condition (`if`) plus exactly one routing action. Attached to a step or test handler (`onPass`, `onFail`, `onWarning`, `onSkip`). For step-level handlers, `continue`, `stop`, `retry`, and `goToStep` are evaluated at runtime; `goToTest` is validated but not yet executed (deferred at step scope). For test-level handlers, `continue`, `stop`, and `goToTest` are evaluated at runtime (test scope; `goToTest` jumps to a test within the spec), while `retry` and `goToStep` are not applicable at test scope.
1082
+ */
1083
+ export type Routing64 = {
1084
+ [k: string]: unknown;
1085
+ };
1086
+ /**
1087
+ * A single dynamic-routing entry: an optional condition (`if`) plus exactly one routing action. Attached to a step or test handler (`onPass`, `onFail`, `onWarning`, `onSkip`). For step-level handlers, `continue`, `stop`, `retry`, and `goToStep` are evaluated at runtime; `goToTest` is validated but not yet executed (deferred at step scope). For test-level handlers, `continue`, `stop`, and `goToTest` are evaluated at runtime (test scope; `goToTest` jumps to a test within the spec), while `retry` and `goToStep` are not applicable at test scope.
1088
+ */
1089
+ export type Routing65 = {
1090
+ [k: string]: unknown;
1091
+ };
1092
+ /**
1093
+ * A single dynamic-routing entry: an optional condition (`if`) plus exactly one routing action. Attached to a step or test handler (`onPass`, `onFail`, `onWarning`, `onSkip`). For step-level handlers, `continue`, `stop`, `retry`, and `goToStep` are evaluated at runtime; `goToTest` is validated but not yet executed (deferred at step scope). For test-level handlers, `continue`, `stop`, and `goToTest` are evaluated at runtime (test scope; `goToTest` jumps to a test within the spec), while `retry` and `goToStep` are not applicable at test scope.
1094
+ */
1095
+ export type Routing66 = {
1096
+ [k: string]: unknown;
1097
+ };
1098
+ /**
1099
+ * A single dynamic-routing entry: an optional condition (`if`) plus exactly one routing action. Attached to a step or test handler (`onPass`, `onFail`, `onWarning`, `onSkip`). For step-level handlers, `continue`, `stop`, `retry`, and `goToStep` are evaluated at runtime; `goToTest` is validated but not yet executed (deferred at step scope). For test-level handlers, `continue`, `stop`, and `goToTest` are evaluated at runtime (test scope; `goToTest` jumps to a test within the spec), while `retry` and `goToStep` are not applicable at test scope.
1100
+ */
1101
+ export type Routing67 = {
1102
+ [k: string]: unknown;
1103
+ };
1004
1104
  /**
1005
1105
  * Display text, selector, or regex pattern (enclosed in forward slashes) of the element.
1006
1106
  */
@@ -1022,57 +1122,57 @@ export type SurfaceByBrowserEngine4 = "chrome" | "firefox" | "safari" | "webkit"
1022
1122
  /**
1023
1123
  * Which window to act on. Omit to use the active window.
1024
1124
  */
1025
- export type WindowTabSelector14 = ByIndex14 | ByName14 | ByCriteria14;
1125
+ export type WindowTabSelector14 = ByIndex18 | ByName18 | ByCriteria18;
1026
1126
  /**
1027
1127
  * Index in creation order. Negative counts from the end; `-1` is the newest.
1028
1128
  */
1029
- export type ByIndex14 = number;
1129
+ export type ByIndex18 = number;
1030
1130
  /**
1031
1131
  * Name assigned when the window/tab was opened (goTo `newTab`/`newWindow`). The integer branch is listed first because Ajv validates with coerceTypes — string-first would coerce integer indexes into name strings.
1032
1132
  */
1033
- export type ByName14 = string;
1133
+ export type ByName18 = string;
1034
1134
  /**
1035
1135
  * Which tab to act on. Omit to use the active tab. Without `window`, the selector searches every tab in creation order — including tabs the page opened itself.
1036
1136
  */
1037
- export type WindowTabSelector15 = ByIndex15 | ByName15 | ByCriteria15;
1137
+ export type WindowTabSelector15 = ByIndex19 | ByName19 | ByCriteria19;
1038
1138
  /**
1039
1139
  * Index in creation order. Negative counts from the end; `-1` is the newest.
1040
1140
  */
1041
- export type ByIndex15 = number;
1141
+ export type ByIndex19 = number;
1042
1142
  /**
1043
1143
  * Name assigned when the window/tab was opened (goTo `newTab`/`newWindow`). The integer branch is listed first because Ajv validates with coerceTypes — string-first would coerce integer indexes into name strings.
1044
1144
  */
1045
- export type ByName15 = string;
1145
+ export type ByName19 = string;
1046
1146
  /**
1047
1147
  * A condition expression, or an array of expressions combined with logical AND.
1048
1148
  */
1049
- export type Condition32 = string | [string, ...string[]];
1149
+ export type Condition34 = string | [string, ...string[]];
1050
1150
  /**
1051
1151
  * A condition expression, or an array of expressions combined with logical AND.
1052
1152
  */
1053
- export type Condition33 = string | [string, ...string[]];
1153
+ export type Condition35 = string | [string, ...string[]];
1054
1154
  /**
1055
1155
  * A single dynamic-routing entry: an optional condition (`if`) plus exactly one routing action. Attached to a step or test handler (`onPass`, `onFail`, `onWarning`, `onSkip`). For step-level handlers, `continue`, `stop`, `retry`, and `goToStep` are evaluated at runtime; `goToTest` is validated but not yet executed (deferred at step scope). For test-level handlers, `continue`, `stop`, and `goToTest` are evaluated at runtime (test scope; `goToTest` jumps to a test within the spec), while `retry` and `goToStep` are not applicable at test scope.
1056
1156
  */
1057
- export type Routing64 = {
1157
+ export type Routing68 = {
1058
1158
  [k: string]: unknown;
1059
1159
  };
1060
1160
  /**
1061
1161
  * A single dynamic-routing entry: an optional condition (`if`) plus exactly one routing action. Attached to a step or test handler (`onPass`, `onFail`, `onWarning`, `onSkip`). For step-level handlers, `continue`, `stop`, `retry`, and `goToStep` are evaluated at runtime; `goToTest` is validated but not yet executed (deferred at step scope). For test-level handlers, `continue`, `stop`, and `goToTest` are evaluated at runtime (test scope; `goToTest` jumps to a test within the spec), while `retry` and `goToStep` are not applicable at test scope.
1062
1162
  */
1063
- export type Routing65 = {
1163
+ export type Routing69 = {
1064
1164
  [k: string]: unknown;
1065
1165
  };
1066
1166
  /**
1067
1167
  * A single dynamic-routing entry: an optional condition (`if`) plus exactly one routing action. Attached to a step or test handler (`onPass`, `onFail`, `onWarning`, `onSkip`). For step-level handlers, `continue`, `stop`, `retry`, and `goToStep` are evaluated at runtime; `goToTest` is validated but not yet executed (deferred at step scope). For test-level handlers, `continue`, `stop`, and `goToTest` are evaluated at runtime (test scope; `goToTest` jumps to a test within the spec), while `retry` and `goToStep` are not applicable at test scope.
1068
1168
  */
1069
- export type Routing66 = {
1169
+ export type Routing70 = {
1070
1170
  [k: string]: unknown;
1071
1171
  };
1072
1172
  /**
1073
1173
  * A single dynamic-routing entry: an optional condition (`if`) plus exactly one routing action. Attached to a step or test handler (`onPass`, `onFail`, `onWarning`, `onSkip`). For step-level handlers, `continue`, `stop`, `retry`, and `goToStep` are evaluated at runtime; `goToTest` is validated but not yet executed (deferred at step scope). For test-level handlers, `continue`, `stop`, and `goToTest` are evaluated at runtime (test scope; `goToTest` jumps to a test within the spec), while `retry` and `goToStep` are not applicable at test scope.
1074
1174
  */
1075
- export type Routing67 = {
1175
+ export type Routing71 = {
1076
1176
  [k: string]: unknown;
1077
1177
  };
1078
1178
  /**
@@ -1089,33 +1189,33 @@ export type LoadCookieDetailed = {
1089
1189
  /**
1090
1190
  * A condition expression, or an array of expressions combined with logical AND.
1091
1191
  */
1092
- export type Condition34 = string | [string, ...string[]];
1192
+ export type Condition36 = string | [string, ...string[]];
1093
1193
  /**
1094
1194
  * A condition expression, or an array of expressions combined with logical AND.
1095
1195
  */
1096
- export type Condition35 = string | [string, ...string[]];
1196
+ export type Condition37 = string | [string, ...string[]];
1097
1197
  /**
1098
1198
  * A single dynamic-routing entry: an optional condition (`if`) plus exactly one routing action. Attached to a step or test handler (`onPass`, `onFail`, `onWarning`, `onSkip`). For step-level handlers, `continue`, `stop`, `retry`, and `goToStep` are evaluated at runtime; `goToTest` is validated but not yet executed (deferred at step scope). For test-level handlers, `continue`, `stop`, and `goToTest` are evaluated at runtime (test scope; `goToTest` jumps to a test within the spec), while `retry` and `goToStep` are not applicable at test scope.
1099
1199
  */
1100
- export type Routing68 = {
1200
+ export type Routing72 = {
1101
1201
  [k: string]: unknown;
1102
1202
  };
1103
1203
  /**
1104
1204
  * A single dynamic-routing entry: an optional condition (`if`) plus exactly one routing action. Attached to a step or test handler (`onPass`, `onFail`, `onWarning`, `onSkip`). For step-level handlers, `continue`, `stop`, `retry`, and `goToStep` are evaluated at runtime; `goToTest` is validated but not yet executed (deferred at step scope). For test-level handlers, `continue`, `stop`, and `goToTest` are evaluated at runtime (test scope; `goToTest` jumps to a test within the spec), while `retry` and `goToStep` are not applicable at test scope.
1105
1205
  */
1106
- export type Routing69 = {
1206
+ export type Routing73 = {
1107
1207
  [k: string]: unknown;
1108
1208
  };
1109
1209
  /**
1110
1210
  * A single dynamic-routing entry: an optional condition (`if`) plus exactly one routing action. Attached to a step or test handler (`onPass`, `onFail`, `onWarning`, `onSkip`). For step-level handlers, `continue`, `stop`, `retry`, and `goToStep` are evaluated at runtime; `goToTest` is validated but not yet executed (deferred at step scope). For test-level handlers, `continue`, `stop`, and `goToTest` are evaluated at runtime (test scope; `goToTest` jumps to a test within the spec), while `retry` and `goToStep` are not applicable at test scope.
1111
1211
  */
1112
- export type Routing70 = {
1212
+ export type Routing74 = {
1113
1213
  [k: string]: unknown;
1114
1214
  };
1115
1215
  /**
1116
1216
  * A single dynamic-routing entry: an optional condition (`if`) plus exactly one routing action. Attached to a step or test handler (`onPass`, `onFail`, `onWarning`, `onSkip`). For step-level handlers, `continue`, `stop`, `retry`, and `goToStep` are evaluated at runtime; `goToTest` is validated but not yet executed (deferred at step scope). For test-level handlers, `continue`, `stop`, and `goToTest` are evaluated at runtime (test scope; `goToTest` jumps to a test within the spec), while `retry` and `goToStep` are not applicable at test scope.
1117
1217
  */
1118
- export type Routing71 = {
1218
+ export type Routing75 = {
1119
1219
  [k: string]: unknown;
1120
1220
  };
1121
1221
  /**
@@ -1708,11 +1808,11 @@ export interface GoTo {
1708
1808
  }
1709
1809
  export interface BrowserSurface {
1710
1810
  /**
1711
- * Browser engine. Must be the context's active browser; targeting a different browser at the same time lands in a later phase.
1811
+ * Browser engine. Selects the browser surface with that engine (or the one named by `name`). A goTo step opens the browser if it isn't open yet; other steps require it to already be open.
1712
1812
  */
1713
1813
  browser: "chrome" | "firefox" | "safari" | "webkit" | "edge";
1714
1814
  /**
1715
- * Name of the browser surface. Reserved for multi-browser targeting (later phase).
1815
+ * Name of the browser surface. Defaults to the engine name (the context's default browser registers under its engine). Assign distinct names to drive multiple browsers at once, including several of the same engine.
1716
1816
  */
1717
1817
  name?: string;
1718
1818
  window?: WindowTabSelector;
@@ -2511,11 +2611,11 @@ export interface RunBrowserScriptDetailed {
2511
2611
  }
2512
2612
  export interface BrowserSurface1 {
2513
2613
  /**
2514
- * Browser engine. Must be the context's active browser; targeting a different browser at the same time lands in a later phase.
2614
+ * Browser engine. Selects the browser surface with that engine (or the one named by `name`). A goTo step opens the browser if it isn't open yet; other steps require it to already be open.
2515
2615
  */
2516
2616
  browser: "chrome" | "firefox" | "safari" | "webkit" | "edge";
2517
2617
  /**
2518
- * Name of the browser surface. Reserved for multi-browser targeting (later phase).
2618
+ * Name of the browser surface. Defaults to the engine name (the context's default browser registers under its engine). Assign distinct names to drive multiple browsers at once, including several of the same engine.
2519
2619
  */
2520
2620
  name?: string;
2521
2621
  window?: WindowTabSelector2;
@@ -2702,11 +2802,11 @@ export interface ProcessSurface {
2702
2802
  }
2703
2803
  export interface BrowserSurface2 {
2704
2804
  /**
2705
- * Browser engine. Must be the context's active browser; targeting a different browser at the same time lands in a later phase.
2805
+ * Browser engine. Selects the browser surface with that engine (or the one named by `name`). A goTo step opens the browser if it isn't open yet; other steps require it to already be open.
2706
2806
  */
2707
2807
  browser: "chrome" | "firefox" | "safari" | "webkit" | "edge";
2708
2808
  /**
2709
- * Name of the browser surface. Reserved for multi-browser targeting (later phase).
2809
+ * Name of the browser surface. Defaults to the engine name (the context's default browser registers under its engine). Assign distinct names to drive multiple browsers at once, including several of the same engine.
2710
2810
  */
2711
2811
  name?: string;
2712
2812
  window?: WindowTabSelector4;
@@ -2748,6 +2848,27 @@ export interface ByCriteria5 {
2748
2848
  */
2749
2849
  url?: string;
2750
2850
  }
2851
+ export interface AppSurface {
2852
+ /**
2853
+ * Name of an app surface opened by `startSurface` (its `name`, or the default derived from the app identifier).
2854
+ */
2855
+ app: string;
2856
+ window?: AppWindowSelector;
2857
+ }
2858
+ export interface ByCriteria6 {
2859
+ /**
2860
+ * Assigned window name.
2861
+ */
2862
+ name?: string;
2863
+ /**
2864
+ * Index in creation order. Negative counts from the end.
2865
+ */
2866
+ index?: number;
2867
+ /**
2868
+ * Window title to match. Substring, or /regex/.
2869
+ */
2870
+ title?: string;
2871
+ }
2751
2872
  export interface ProcessReadiness {
2752
2873
  /**
2753
2874
  * Wait until combined stdout+stderr matches. Substring, or /regex/.
@@ -2767,12 +2888,14 @@ export interface BrowserReadiness {
2767
2888
  * Wait for DOM mutations to stop for this duration in milliseconds.
2768
2889
  */
2769
2890
  domIdleTime?: number;
2891
+ find?: ElementCriteria;
2892
+ }
2893
+ export interface AppReadiness {
2770
2894
  /**
2771
- * Wait for a specific element to be present in the DOM. At least one finding field must be specified.
2895
+ * Fixed delay (ms).
2772
2896
  */
2773
- find?: {
2774
- [k: string]: unknown;
2775
- };
2897
+ delayMs?: number;
2898
+ find?: ElementCriteria1;
2776
2899
  }
2777
2900
  export interface WaitUntilRequiresASurface {
2778
2901
  [k: string]: unknown;
@@ -2786,6 +2909,9 @@ export interface AProcessSurfaceTakesProcessReadiness {
2786
2909
  export interface ABrowserSurfaceTakesBrowserReadiness {
2787
2910
  [k: string]: unknown;
2788
2911
  }
2912
+ export interface AnAppSurfaceTakesAppReadiness {
2913
+ [k: string]: unknown;
2914
+ }
2789
2915
  export interface ABrowserEngineStringSurfaceTakesBrowserReadiness {
2790
2916
  [k: string]: unknown;
2791
2917
  }
@@ -2926,11 +3052,11 @@ export interface Screenshot {
2926
3052
  screenshot: Screenshot1;
2927
3053
  [k: string]: unknown;
2928
3054
  }
2929
- export interface CaptureScreenshotDetailed {
3055
+ export interface CaptureScreenshotFields {
2930
3056
  /**
2931
- * The browser window/tab to capture. Omit to capture the active tab. The targeted tab stays focused afterward.
3057
+ * The browser window/tab or app window to capture. Omit to capture the active tab. The targeted surface stays focused afterward. App surfaces use the object form ({ "app": … }). App captures don't support `crop` yet.
2932
3058
  */
2933
- surface?: SurfaceByBrowserEngine2 | BrowserSurface3;
3059
+ surface?: SurfaceByBrowserEngine2 | BrowserSurface3 | AppSurface1;
2934
3060
  path?: ScreenshotSimple1;
2935
3061
  /**
2936
3062
  * Directory of the PNG file. If the directory doesn't exist, creates the directory.
@@ -2950,17 +3076,17 @@ export interface CaptureScreenshotDetailed {
2950
3076
  }
2951
3077
  export interface BrowserSurface3 {
2952
3078
  /**
2953
- * Browser engine. Must be the context's active browser; targeting a different browser at the same time lands in a later phase.
3079
+ * Browser engine. Selects the browser surface with that engine (or the one named by `name`). A goTo step opens the browser if it isn't open yet; other steps require it to already be open.
2954
3080
  */
2955
3081
  browser: "chrome" | "firefox" | "safari" | "webkit" | "edge";
2956
3082
  /**
2957
- * Name of the browser surface. Reserved for multi-browser targeting (later phase).
3083
+ * Name of the browser surface. Defaults to the engine name (the context's default browser registers under its engine). Assign distinct names to drive multiple browsers at once, including several of the same engine.
2958
3084
  */
2959
3085
  name?: string;
2960
3086
  window?: WindowTabSelector6;
2961
3087
  tab?: WindowTabSelector7;
2962
3088
  }
2963
- export interface ByCriteria6 {
3089
+ export interface ByCriteria7 {
2964
3090
  /**
2965
3091
  * Name assigned when the window/tab was opened.
2966
3092
  */
@@ -2978,7 +3104,7 @@ export interface ByCriteria6 {
2978
3104
  */
2979
3105
  url?: string;
2980
3106
  }
2981
- export interface ByCriteria7 {
3107
+ export interface ByCriteria8 {
2982
3108
  /**
2983
3109
  * Name assigned when the window/tab was opened.
2984
3110
  */
@@ -2996,6 +3122,27 @@ export interface ByCriteria7 {
2996
3122
  */
2997
3123
  url?: string;
2998
3124
  }
3125
+ export interface AppSurface1 {
3126
+ /**
3127
+ * Name of an app surface opened by `startSurface` (its `name`, or the default derived from the app identifier).
3128
+ */
3129
+ app: string;
3130
+ window?: AppWindowSelector1;
3131
+ }
3132
+ export interface ByCriteria9 {
3133
+ /**
3134
+ * Assigned window name.
3135
+ */
3136
+ name?: string;
3137
+ /**
3138
+ * Index in creation order. Negative counts from the end.
3139
+ */
3140
+ index?: number;
3141
+ /**
3142
+ * Window title to match. Substring, or /regex/.
3143
+ */
3144
+ title?: string;
3145
+ }
2999
3146
  /**
3000
3147
  * Information about the source integration for this screenshot, enabling upload of changed files back to the source CMS. Set automatically during test resolution for files from integrations.
3001
3148
  */
@@ -3021,6 +3168,9 @@ export interface SourceIntegration {
3021
3168
  */
3022
3169
  contentPath?: string;
3023
3170
  }
3171
+ export interface AppCapturesDonTSupportCropYet {
3172
+ [k: string]: unknown;
3173
+ }
3024
3174
  export interface Common10 {
3025
3175
  /**
3026
3176
  * JSON Schema for this object.
@@ -3321,17 +3471,17 @@ export interface RecordDetailed {
3321
3471
  }
3322
3472
  export interface BrowserSurface4 {
3323
3473
  /**
3324
- * Browser engine. Must be the context's active browser; targeting a different browser at the same time lands in a later phase.
3474
+ * Browser engine. Selects the browser surface with that engine (or the one named by `name`). A goTo step opens the browser if it isn't open yet; other steps require it to already be open.
3325
3475
  */
3326
3476
  browser: "chrome" | "firefox" | "safari" | "webkit" | "edge";
3327
3477
  /**
3328
- * Name of the browser surface. Reserved for multi-browser targeting (later phase).
3478
+ * Name of the browser surface. Defaults to the engine name (the context's default browser registers under its engine). Assign distinct names to drive multiple browsers at once, including several of the same engine.
3329
3479
  */
3330
3480
  name?: string;
3331
3481
  window?: WindowTabSelector8;
3332
3482
  tab?: WindowTabSelector9;
3333
3483
  }
3334
- export interface ByCriteria8 {
3484
+ export interface ByCriteria10 {
3335
3485
  /**
3336
3486
  * Name assigned when the window/tab was opened.
3337
3487
  */
@@ -3349,7 +3499,7 @@ export interface ByCriteria8 {
3349
3499
  */
3350
3500
  url?: string;
3351
3501
  }
3352
- export interface ByCriteria9 {
3502
+ export interface ByCriteria11 {
3353
3503
  /**
3354
3504
  * Name assigned when the window/tab was opened.
3355
3505
  */
@@ -3669,17 +3819,17 @@ export interface ProcessSurface1 {
3669
3819
  }
3670
3820
  export interface BrowserSurface5 {
3671
3821
  /**
3672
- * Browser engine. Must be the context's active browser; targeting a different browser at the same time lands in a later phase.
3822
+ * Browser engine. Selects the browser surface with that engine (or the one named by `name`). A goTo step opens the browser if it isn't open yet; other steps require it to already be open.
3673
3823
  */
3674
3824
  browser: "chrome" | "firefox" | "safari" | "webkit" | "edge";
3675
3825
  /**
3676
- * Name of the browser surface. Reserved for multi-browser targeting (later phase).
3826
+ * Name of the browser surface. Defaults to the engine name (the context's default browser registers under its engine). Assign distinct names to drive multiple browsers at once, including several of the same engine.
3677
3827
  */
3678
3828
  name?: string;
3679
3829
  window?: WindowTabSelector10;
3680
3830
  tab?: WindowTabSelector11;
3681
3831
  }
3682
- export interface ByCriteria10 {
3832
+ export interface ByCriteria12 {
3683
3833
  /**
3684
3834
  * Name assigned when the window/tab was opened.
3685
3835
  */
@@ -3697,7 +3847,7 @@ export interface ByCriteria10 {
3697
3847
  */
3698
3848
  url?: string;
3699
3849
  }
3700
- export interface ByCriteria11 {
3850
+ export interface ByCriteria13 {
3701
3851
  /**
3702
3852
  * Name assigned when the window/tab was opened.
3703
3853
  */
@@ -3715,6 +3865,27 @@ export interface ByCriteria11 {
3715
3865
  */
3716
3866
  url?: string;
3717
3867
  }
3868
+ export interface AppSurface2 {
3869
+ /**
3870
+ * Name of an app surface opened by `startSurface` (its `name`, or the default derived from the app identifier).
3871
+ */
3872
+ app: string;
3873
+ window?: AppWindowSelector2;
3874
+ }
3875
+ export interface ByCriteria14 {
3876
+ /**
3877
+ * Assigned window name.
3878
+ */
3879
+ name?: string;
3880
+ /**
3881
+ * Index in creation order. Negative counts from the end.
3882
+ */
3883
+ index?: number;
3884
+ /**
3885
+ * Window title to match. Substring, or /regex/.
3886
+ */
3887
+ title?: string;
3888
+ }
3718
3889
  export interface ProcessSurface2 {
3719
3890
  /**
3720
3891
  * Name of a background process started by a runShell/runCode `background` step.
@@ -3723,17 +3894,17 @@ export interface ProcessSurface2 {
3723
3894
  }
3724
3895
  export interface BrowserSurface6 {
3725
3896
  /**
3726
- * Browser engine. Must be the context's active browser; targeting a different browser at the same time lands in a later phase.
3897
+ * Browser engine. Selects the browser surface with that engine (or the one named by `name`). A goTo step opens the browser if it isn't open yet; other steps require it to already be open.
3727
3898
  */
3728
3899
  browser: "chrome" | "firefox" | "safari" | "webkit" | "edge";
3729
3900
  /**
3730
- * Name of the browser surface. Reserved for multi-browser targeting (later phase).
3901
+ * Name of the browser surface. Defaults to the engine name (the context's default browser registers under its engine). Assign distinct names to drive multiple browsers at once, including several of the same engine.
3731
3902
  */
3732
3903
  name?: string;
3733
3904
  window?: WindowTabSelector12;
3734
3905
  tab?: WindowTabSelector13;
3735
3906
  }
3736
- export interface ByCriteria12 {
3907
+ export interface ByCriteria15 {
3737
3908
  /**
3738
3909
  * Name assigned when the window/tab was opened.
3739
3910
  */
@@ -3751,7 +3922,7 @@ export interface ByCriteria12 {
3751
3922
  */
3752
3923
  url?: string;
3753
3924
  }
3754
- export interface ByCriteria13 {
3925
+ export interface ByCriteria16 {
3755
3926
  /**
3756
3927
  * Name assigned when the window/tab was opened.
3757
3928
  */
@@ -3769,6 +3940,27 @@ export interface ByCriteria13 {
3769
3940
  */
3770
3941
  url?: string;
3771
3942
  }
3943
+ export interface AppSurface3 {
3944
+ /**
3945
+ * Name of an app surface opened by `startSurface` (its `name`, or the default derived from the app identifier).
3946
+ */
3947
+ app: string;
3948
+ window?: AppWindowSelector3;
3949
+ }
3950
+ export interface ByCriteria17 {
3951
+ /**
3952
+ * Assigned window name.
3953
+ */
3954
+ name?: string;
3955
+ /**
3956
+ * Index in creation order. Negative counts from the end.
3957
+ */
3958
+ index?: number;
3959
+ /**
3960
+ * Window title to match. Substring, or /regex/.
3961
+ */
3962
+ title?: string;
3963
+ }
3772
3964
  export interface Common14 {
3773
3965
  /**
3774
3966
  * JSON Schema for this object.
@@ -3902,10 +4094,106 @@ export interface SourceLocation14 {
3902
4094
  */
3903
4095
  endIndex: number;
3904
4096
  }
3905
- export interface LoadVariables {
3906
- loadVariables: LoadVariables1;
4097
+ export interface StartSurface {
4098
+ startSurface: StartSurface1;
3907
4099
  [k: string]: unknown;
3908
4100
  }
4101
+ /**
4102
+ * Open (provision) a surface and register it by name so later steps can target it with `surface`. Phase A1 ships the native app branch: launch a desktop application by executable path, bundle ID, or UWP AppUserModelID. The mobile fields (`install`, `activity`, `device`) are validated now and land in later phases; browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.
4103
+ */
4104
+ export interface StartSurface1 {
4105
+ /**
4106
+ * The app identifier: an executable path (`C:\\Windows\\System32\\notepad.exe`), a `.app` path, a bundle ID (`com.apple.TextEdit`), a package name (`com.example.myapp`), or a UWP AppUserModelID (`Microsoft.WindowsCalculator_8wekyb3d8bbwe!App`). Disambiguated by syntax — never by a type field.
4107
+ */
4108
+ app: string;
4109
+ /**
4110
+ * Surface-registry name later steps use in `surface`. Default: the executable basename without extension, or the final dot-segment of an ID.
4111
+ */
4112
+ name?: string;
4113
+ /**
4114
+ * Launch arguments (desktop apps). Entries join into a single shell-style argument string for the driver, so an argument with embedded spaces must carry its own quotes (e.g. "\"My File.txt\"").
4115
+ */
4116
+ args?: string[];
4117
+ /**
4118
+ * Working directory for the launched app (desktop apps). Default: the run's working directory.
4119
+ */
4120
+ workingDirectory?: string;
4121
+ /**
4122
+ * Extra environment variables for the launched app (desktop apps). Driver support varies; unmapped variables fail with a clear runtime error.
4123
+ */
4124
+ env?: {
4125
+ [k: string]: string;
4126
+ };
4127
+ /**
4128
+ * Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Reserved for the mobile phases; validated now, not yet implemented.
4129
+ */
4130
+ install?: string;
4131
+ /**
4132
+ * Android main activity override (defaults to the package's launcher activity). Reserved for the Android phase; validated now, not yet implemented.
4133
+ */
4134
+ activity?: string;
4135
+ /**
4136
+ * Device the app runs on. Omit for a host desktop app. A string references an already-provisioned device by name; an object provisions one. Reserved for the mobile phases; validated now, not yet implemented.
4137
+ */
4138
+ device?: DeviceByName | DeviceDescriptor;
4139
+ /**
4140
+ * Escape-hatch passthrough: merged into the automation session's capabilities after the ones Doc Detective computes (namespaced per driver, e.g. `appium:noReset`). Driver- and version-specific; use sparingly.
4141
+ */
4142
+ driverOptions?: {
4143
+ [k: string]: unknown;
4144
+ };
4145
+ waitUntil?: AppReadiness1;
4146
+ /**
4147
+ * Startup ceiling in milliseconds (launch + install + readiness).
4148
+ */
4149
+ timeout?: number;
4150
+ }
4151
+ export interface DeviceDescriptor {
4152
+ /**
4153
+ * Target platform. Selects the mobile driver.
4154
+ */
4155
+ platform: "android" | "ios";
4156
+ /**
4157
+ * AVD name (Android) or simulator device name (iOS). Also the device's registry identity: the same name resolves to the same device.
4158
+ */
4159
+ name?: string;
4160
+ /**
4161
+ * Platform version. Default: the newest available.
4162
+ */
4163
+ osVersion?: string;
4164
+ /**
4165
+ * Run the Android emulator without a window. Ignored where not applicable.
4166
+ */
4167
+ headless?: boolean;
4168
+ /**
4169
+ * Initial orientation. Reserved; validated now, not yet implemented.
4170
+ */
4171
+ orientation?: "portrait" | "landscape";
4172
+ /**
4173
+ * Device kind. `emulator`/`simulator` (the default, inferred from `platform`) or `device` for real hardware. Reserved; validated now, not yet implemented.
4174
+ */
4175
+ type?: "emulator" | "simulator" | "device";
4176
+ /**
4177
+ * Pin a specific device/emulator instance by UDID. Reserved; validated now, not yet implemented.
4178
+ */
4179
+ udid?: string;
4180
+ /**
4181
+ * Cloud device farm configuration, keyed by provider. Reserved; validated now, not yet implemented.
4182
+ */
4183
+ provider?: {
4184
+ [k: string]: unknown;
4185
+ };
4186
+ }
4187
+ /**
4188
+ * Startup readiness: a fixed delay and/or an element that must exist before the surface is considered open. No condition applies by default.
4189
+ */
4190
+ export interface AppReadiness1 {
4191
+ /**
4192
+ * Fixed delay (ms).
4193
+ */
4194
+ delayMs?: number;
4195
+ find?: ElementCriteria2;
4196
+ }
3909
4197
  export interface Common15 {
3910
4198
  /**
3911
4199
  * JSON Schema for this object.
@@ -4039,6 +4327,143 @@ export interface SourceLocation15 {
4039
4327
  */
4040
4328
  endIndex: number;
4041
4329
  }
4330
+ export interface LoadVariables {
4331
+ loadVariables: LoadVariables1;
4332
+ [k: string]: unknown;
4333
+ }
4334
+ export interface Common16 {
4335
+ /**
4336
+ * JSON Schema for this object.
4337
+ */
4338
+ $schema?: "https://raw.githubusercontent.com/doc-detective/common/refs/heads/main/dist/schemas/step_v3.schema.json";
4339
+ /**
4340
+ * ID of the step.
4341
+ */
4342
+ stepId?: string;
4343
+ /**
4344
+ * Description of the step.
4345
+ */
4346
+ description?: string;
4347
+ /**
4348
+ * Whether or not the step may be unsafe. Unsafe steps may perform actions that could modify the system or environment in unexpected ways. Unsafe steps are only performed within Docker containers or if unsafe steps are enabled with the `allowUnsafeSteps` config property or the `--allow-unsafe` flag.
4349
+ */
4350
+ unsafe?: boolean;
4351
+ outputs?: OutputsStep16;
4352
+ variables?: VariablesStep16;
4353
+ /**
4354
+ * Whether or not this step should act as a breakpoint when debugging is enabled. When `true`, execution will pause at this step when debug mode is enabled.
4355
+ */
4356
+ breakpoint?: boolean;
4357
+ if?: Condition32;
4358
+ /**
4359
+ * Assertions for this step. As authored input, a custom condition expression (or array of expressions, combined with logical AND). In a test result, the runner replaces this with the array of articulated assertion records it evaluated (implicit then custom).
4360
+ */
4361
+ assertions?: Condition33 | Assertion16[];
4362
+ /**
4363
+ * Routing entries evaluated when this step passes. The first entry whose `if` matches applies. `continue`, `stop`, `retry`, and `goToStep` are honored at runtime; `goToTest` is validated but not yet executed.
4364
+ */
4365
+ onPass?: Routing64[];
4366
+ /**
4367
+ * Routing entries evaluated when this step fails. The first entry whose `if` matches applies; the default when none is set stops the test. `continue`, `stop`, `retry`, and `goToStep` are honored at runtime; `goToTest` is validated but not yet executed.
4368
+ */
4369
+ onFail?: Routing65[];
4370
+ /**
4371
+ * Routing entries evaluated when this step produces a warning. The first entry whose `if` matches applies. `continue`, `stop`, `retry`, and `goToStep` are honored at runtime; `goToTest` is validated but not yet executed.
4372
+ */
4373
+ onWarning?: Routing66[];
4374
+ /**
4375
+ * Routing entries evaluated when this step is skipped (reached but not run — unsafe-blocked or guard-`if` false). The first entry whose `if` matches applies. `continue`, `stop`, and `goToStep` are honored at runtime; `goToTest` is validated but not yet executed. (`retry` is a no-op here — a step that never ran cannot be re-run.)
4376
+ */
4377
+ onSkip?: Routing67[];
4378
+ location?: SourceLocation16;
4379
+ /**
4380
+ * Path, relative to the run's artifact directory (the report's `runDir`), of the screenshot captured automatically after this step. Always a non-empty, forward-slash, relative path. Present only in test results, when `autoScreenshot` is enabled and the capture succeeded. This is system-populated metadata and should not be set manually.
4381
+ */
4382
+ autoScreenshot?: string;
4383
+ /**
4384
+ * Total number of times this step ran (the initial attempt plus retries) when a routing `retry` action re-ran it. Present only in test results, and only when the step was retried at least once (so the value is always >= 2). This is system-populated metadata and should not be set manually.
4385
+ */
4386
+ attempts?: number;
4387
+ /**
4388
+ * Which visit of this step produced this report, when a routing goToStep re-ran it (the first visit omits this field). Present only in test results; system-populated.
4389
+ */
4390
+ visit?: number;
4391
+ [k: string]: unknown;
4392
+ }
4393
+ /**
4394
+ * Outputs from step processes and user-defined expressions. Use the `outputs` object to reference outputs in subsequent steps. If a user-defined output matches the key for a step-defined output, the user-defined output takes precedence.
4395
+ */
4396
+ export interface OutputsStep16 {
4397
+ /**
4398
+ * Runtime expression for a user-defined output value.
4399
+ *
4400
+ * This interface was referenced by `OutputsStep16`'s JSON-Schema definition
4401
+ * via the `patternProperty` "^[A-Za-z0-9_]+$".
4402
+ */
4403
+ [k: string]: string;
4404
+ }
4405
+ /**
4406
+ * Environment variables to set from user-defined expressions.
4407
+ */
4408
+ export interface VariablesStep16 {
4409
+ /**
4410
+ * Runtime expression for a user-defined output value.
4411
+ *
4412
+ * This interface was referenced by `VariablesStep16`'s JSON-Schema definition
4413
+ * via the `patternProperty` "^[A-Za-z0-9_]+$".
4414
+ */
4415
+ [k: string]: string;
4416
+ }
4417
+ /**
4418
+ * An articulated assertion record produced by the runner for a step result. Each record names a single verification check, whether it passed, and the values it compared. The step's result is the roll-up of its assertion results (FAIL > WARNING > all-SKIPPED > PASS). System-populated; appears in test results, not in authored specs.
4419
+ */
4420
+ export interface Assertion16 {
4421
+ /**
4422
+ * Human-readable articulation of the check, e.g. `exitCode in [0]`.
4423
+ */
4424
+ statement: string;
4425
+ /**
4426
+ * Who defined the assertion: `implicit` (runner-defined) or `custom` (user-defined).
4427
+ */
4428
+ source: "implicit" | "custom";
4429
+ /**
4430
+ * Outcome of evaluating the assertion.
4431
+ */
4432
+ result: "PASS" | "FAIL" | "WARNING" | "SKIPPED";
4433
+ /**
4434
+ * The value (or values) the assertion expected. Optional.
4435
+ */
4436
+ expected?: unknown[] | boolean | number | null | {
4437
+ [k: string]: unknown;
4438
+ } | string;
4439
+ /**
4440
+ * The value actually observed. Optional.
4441
+ */
4442
+ actual?: unknown[] | boolean | number | null | {
4443
+ [k: string]: unknown;
4444
+ } | string;
4445
+ /**
4446
+ * Human-readable explanation of the outcome. Optional.
4447
+ */
4448
+ description?: string;
4449
+ }
4450
+ /**
4451
+ * Source location where this step was detected in the original file. This is system-populated metadata and should not be set manually.
4452
+ */
4453
+ export interface SourceLocation16 {
4454
+ /**
4455
+ * 1-indexed line number in the source file where the step was detected.
4456
+ */
4457
+ line: number;
4458
+ /**
4459
+ * 0-indexed character offset from the start of the source file where the step begins.
4460
+ */
4461
+ startIndex: number;
4462
+ /**
4463
+ * 0-indexed character offset from the start of the source file where the step ends (exclusive).
4464
+ */
4465
+ endIndex: number;
4466
+ }
4042
4467
  export interface DragAndDrop {
4043
4468
  dragAndDrop: DragAndDrop1;
4044
4469
  [k: string]: unknown;
@@ -4067,17 +4492,17 @@ export interface DragAndDrop1 {
4067
4492
  }
4068
4493
  export interface BrowserSurface7 {
4069
4494
  /**
4070
- * Browser engine. Must be the context's active browser; targeting a different browser at the same time lands in a later phase.
4495
+ * Browser engine. Selects the browser surface with that engine (or the one named by `name`). A goTo step opens the browser if it isn't open yet; other steps require it to already be open.
4071
4496
  */
4072
4497
  browser: "chrome" | "firefox" | "safari" | "webkit" | "edge";
4073
4498
  /**
4074
- * Name of the browser surface. Reserved for multi-browser targeting (later phase).
4499
+ * Name of the browser surface. Defaults to the engine name (the context's default browser registers under its engine). Assign distinct names to drive multiple browsers at once, including several of the same engine.
4075
4500
  */
4076
4501
  name?: string;
4077
4502
  window?: WindowTabSelector14;
4078
4503
  tab?: WindowTabSelector15;
4079
4504
  }
4080
- export interface ByCriteria14 {
4505
+ export interface ByCriteria18 {
4081
4506
  /**
4082
4507
  * Name assigned when the window/tab was opened.
4083
4508
  */
@@ -4095,7 +4520,7 @@ export interface ByCriteria14 {
4095
4520
  */
4096
4521
  url?: string;
4097
4522
  }
4098
- export interface ByCriteria15 {
4523
+ export interface ByCriteria19 {
4099
4524
  /**
4100
4525
  * Name assigned when the window/tab was opened.
4101
4526
  */
@@ -4113,7 +4538,7 @@ export interface ByCriteria15 {
4113
4538
  */
4114
4539
  url?: string;
4115
4540
  }
4116
- export interface Common16 {
4541
+ export interface Common17 {
4117
4542
  /**
4118
4543
  * JSON Schema for this object.
4119
4544
  */
@@ -4130,34 +4555,34 @@ export interface Common16 {
4130
4555
  * Whether or not the step may be unsafe. Unsafe steps may perform actions that could modify the system or environment in unexpected ways. Unsafe steps are only performed within Docker containers or if unsafe steps are enabled with the `allowUnsafeSteps` config property or the `--allow-unsafe` flag.
4131
4556
  */
4132
4557
  unsafe?: boolean;
4133
- outputs?: OutputsStep16;
4134
- variables?: VariablesStep16;
4558
+ outputs?: OutputsStep17;
4559
+ variables?: VariablesStep17;
4135
4560
  /**
4136
4561
  * Whether or not this step should act as a breakpoint when debugging is enabled. When `true`, execution will pause at this step when debug mode is enabled.
4137
4562
  */
4138
4563
  breakpoint?: boolean;
4139
- if?: Condition32;
4564
+ if?: Condition34;
4140
4565
  /**
4141
4566
  * Assertions for this step. As authored input, a custom condition expression (or array of expressions, combined with logical AND). In a test result, the runner replaces this with the array of articulated assertion records it evaluated (implicit then custom).
4142
4567
  */
4143
- assertions?: Condition33 | Assertion16[];
4568
+ assertions?: Condition35 | Assertion17[];
4144
4569
  /**
4145
4570
  * Routing entries evaluated when this step passes. The first entry whose `if` matches applies. `continue`, `stop`, `retry`, and `goToStep` are honored at runtime; `goToTest` is validated but not yet executed.
4146
4571
  */
4147
- onPass?: Routing64[];
4572
+ onPass?: Routing68[];
4148
4573
  /**
4149
4574
  * Routing entries evaluated when this step fails. The first entry whose `if` matches applies; the default when none is set stops the test. `continue`, `stop`, `retry`, and `goToStep` are honored at runtime; `goToTest` is validated but not yet executed.
4150
4575
  */
4151
- onFail?: Routing65[];
4576
+ onFail?: Routing69[];
4152
4577
  /**
4153
4578
  * Routing entries evaluated when this step produces a warning. The first entry whose `if` matches applies. `continue`, `stop`, `retry`, and `goToStep` are honored at runtime; `goToTest` is validated but not yet executed.
4154
4579
  */
4155
- onWarning?: Routing66[];
4580
+ onWarning?: Routing70[];
4156
4581
  /**
4157
4582
  * Routing entries evaluated when this step is skipped (reached but not run — unsafe-blocked or guard-`if` false). The first entry whose `if` matches applies. `continue`, `stop`, and `goToStep` are honored at runtime; `goToTest` is validated but not yet executed. (`retry` is a no-op here — a step that never ran cannot be re-run.)
4158
4583
  */
4159
- onSkip?: Routing67[];
4160
- location?: SourceLocation16;
4584
+ onSkip?: Routing71[];
4585
+ location?: SourceLocation17;
4161
4586
  /**
4162
4587
  * Path, relative to the run's artifact directory (the report's `runDir`), of the screenshot captured automatically after this step. Always a non-empty, forward-slash, relative path. Present only in test results, when `autoScreenshot` is enabled and the capture succeeded. This is system-populated metadata and should not be set manually.
4163
4588
  */
@@ -4175,11 +4600,11 @@ export interface Common16 {
4175
4600
  /**
4176
4601
  * Outputs from step processes and user-defined expressions. Use the `outputs` object to reference outputs in subsequent steps. If a user-defined output matches the key for a step-defined output, the user-defined output takes precedence.
4177
4602
  */
4178
- export interface OutputsStep16 {
4603
+ export interface OutputsStep17 {
4179
4604
  /**
4180
4605
  * Runtime expression for a user-defined output value.
4181
4606
  *
4182
- * This interface was referenced by `OutputsStep16`'s JSON-Schema definition
4607
+ * This interface was referenced by `OutputsStep17`'s JSON-Schema definition
4183
4608
  * via the `patternProperty` "^[A-Za-z0-9_]+$".
4184
4609
  */
4185
4610
  [k: string]: string;
@@ -4187,11 +4612,11 @@ export interface OutputsStep16 {
4187
4612
  /**
4188
4613
  * Environment variables to set from user-defined expressions.
4189
4614
  */
4190
- export interface VariablesStep16 {
4615
+ export interface VariablesStep17 {
4191
4616
  /**
4192
4617
  * Runtime expression for a user-defined output value.
4193
4618
  *
4194
- * This interface was referenced by `VariablesStep16`'s JSON-Schema definition
4619
+ * This interface was referenced by `VariablesStep17`'s JSON-Schema definition
4195
4620
  * via the `patternProperty` "^[A-Za-z0-9_]+$".
4196
4621
  */
4197
4622
  [k: string]: string;
@@ -4199,7 +4624,7 @@ export interface VariablesStep16 {
4199
4624
  /**
4200
4625
  * An articulated assertion record produced by the runner for a step result. Each record names a single verification check, whether it passed, and the values it compared. The step's result is the roll-up of its assertion results (FAIL > WARNING > all-SKIPPED > PASS). System-populated; appears in test results, not in authored specs.
4201
4626
  */
4202
- export interface Assertion16 {
4627
+ export interface Assertion17 {
4203
4628
  /**
4204
4629
  * Human-readable articulation of the check, e.g. `exitCode in [0]`.
4205
4630
  */
@@ -4232,7 +4657,7 @@ export interface Assertion16 {
4232
4657
  /**
4233
4658
  * Source location where this step was detected in the original file. This is system-populated metadata and should not be set manually.
4234
4659
  */
4235
- export interface SourceLocation16 {
4660
+ export interface SourceLocation17 {
4236
4661
  /**
4237
4662
  * 1-indexed line number in the source file where the step was detected.
4238
4663
  */
@@ -4250,7 +4675,7 @@ export interface LoadCookie {
4250
4675
  loadCookie: LoadCookie1;
4251
4676
  [k: string]: unknown;
4252
4677
  }
4253
- export interface Common17 {
4678
+ export interface Common18 {
4254
4679
  /**
4255
4680
  * JSON Schema for this object.
4256
4681
  */
@@ -4267,34 +4692,34 @@ export interface Common17 {
4267
4692
  * Whether or not the step may be unsafe. Unsafe steps may perform actions that could modify the system or environment in unexpected ways. Unsafe steps are only performed within Docker containers or if unsafe steps are enabled with the `allowUnsafeSteps` config property or the `--allow-unsafe` flag.
4268
4693
  */
4269
4694
  unsafe?: boolean;
4270
- outputs?: OutputsStep17;
4271
- variables?: VariablesStep17;
4695
+ outputs?: OutputsStep18;
4696
+ variables?: VariablesStep18;
4272
4697
  /**
4273
4698
  * Whether or not this step should act as a breakpoint when debugging is enabled. When `true`, execution will pause at this step when debug mode is enabled.
4274
4699
  */
4275
4700
  breakpoint?: boolean;
4276
- if?: Condition34;
4701
+ if?: Condition36;
4277
4702
  /**
4278
4703
  * Assertions for this step. As authored input, a custom condition expression (or array of expressions, combined with logical AND). In a test result, the runner replaces this with the array of articulated assertion records it evaluated (implicit then custom).
4279
4704
  */
4280
- assertions?: Condition35 | Assertion17[];
4705
+ assertions?: Condition37 | Assertion18[];
4281
4706
  /**
4282
4707
  * Routing entries evaluated when this step passes. The first entry whose `if` matches applies. `continue`, `stop`, `retry`, and `goToStep` are honored at runtime; `goToTest` is validated but not yet executed.
4283
4708
  */
4284
- onPass?: Routing68[];
4709
+ onPass?: Routing72[];
4285
4710
  /**
4286
4711
  * Routing entries evaluated when this step fails. The first entry whose `if` matches applies; the default when none is set stops the test. `continue`, `stop`, `retry`, and `goToStep` are honored at runtime; `goToTest` is validated but not yet executed.
4287
4712
  */
4288
- onFail?: Routing69[];
4713
+ onFail?: Routing73[];
4289
4714
  /**
4290
4715
  * Routing entries evaluated when this step produces a warning. The first entry whose `if` matches applies. `continue`, `stop`, `retry`, and `goToStep` are honored at runtime; `goToTest` is validated but not yet executed.
4291
4716
  */
4292
- onWarning?: Routing70[];
4717
+ onWarning?: Routing74[];
4293
4718
  /**
4294
4719
  * Routing entries evaluated when this step is skipped (reached but not run — unsafe-blocked or guard-`if` false). The first entry whose `if` matches applies. `continue`, `stop`, and `goToStep` are honored at runtime; `goToTest` is validated but not yet executed. (`retry` is a no-op here — a step that never ran cannot be re-run.)
4295
4720
  */
4296
- onSkip?: Routing71[];
4297
- location?: SourceLocation17;
4721
+ onSkip?: Routing75[];
4722
+ location?: SourceLocation18;
4298
4723
  /**
4299
4724
  * Path, relative to the run's artifact directory (the report's `runDir`), of the screenshot captured automatically after this step. Always a non-empty, forward-slash, relative path. Present only in test results, when `autoScreenshot` is enabled and the capture succeeded. This is system-populated metadata and should not be set manually.
4300
4725
  */
@@ -4312,11 +4737,11 @@ export interface Common17 {
4312
4737
  /**
4313
4738
  * Outputs from step processes and user-defined expressions. Use the `outputs` object to reference outputs in subsequent steps. If a user-defined output matches the key for a step-defined output, the user-defined output takes precedence.
4314
4739
  */
4315
- export interface OutputsStep17 {
4740
+ export interface OutputsStep18 {
4316
4741
  /**
4317
4742
  * Runtime expression for a user-defined output value.
4318
4743
  *
4319
- * This interface was referenced by `OutputsStep17`'s JSON-Schema definition
4744
+ * This interface was referenced by `OutputsStep18`'s JSON-Schema definition
4320
4745
  * via the `patternProperty` "^[A-Za-z0-9_]+$".
4321
4746
  */
4322
4747
  [k: string]: string;
@@ -4324,11 +4749,11 @@ export interface OutputsStep17 {
4324
4749
  /**
4325
4750
  * Environment variables to set from user-defined expressions.
4326
4751
  */
4327
- export interface VariablesStep17 {
4752
+ export interface VariablesStep18 {
4328
4753
  /**
4329
4754
  * Runtime expression for a user-defined output value.
4330
4755
  *
4331
- * This interface was referenced by `VariablesStep17`'s JSON-Schema definition
4756
+ * This interface was referenced by `VariablesStep18`'s JSON-Schema definition
4332
4757
  * via the `patternProperty` "^[A-Za-z0-9_]+$".
4333
4758
  */
4334
4759
  [k: string]: string;
@@ -4336,7 +4761,7 @@ export interface VariablesStep17 {
4336
4761
  /**
4337
4762
  * An articulated assertion record produced by the runner for a step result. Each record names a single verification check, whether it passed, and the values it compared. The step's result is the roll-up of its assertion results (FAIL > WARNING > all-SKIPPED > PASS). System-populated; appears in test results, not in authored specs.
4338
4763
  */
4339
- export interface Assertion17 {
4764
+ export interface Assertion18 {
4340
4765
  /**
4341
4766
  * Human-readable articulation of the check, e.g. `exitCode in [0]`.
4342
4767
  */
@@ -4369,7 +4794,7 @@ export interface Assertion17 {
4369
4794
  /**
4370
4795
  * Source location where this step was detected in the original file. This is system-populated metadata and should not be set manually.
4371
4796
  */
4372
- export interface SourceLocation17 {
4797
+ export interface SourceLocation18 {
4373
4798
  /**
4374
4799
  * 1-indexed line number in the source file where the step was detected.
4375
4800
  */