@browserflow-ai/core 0.0.6

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 (57) hide show
  1. package/dist/config-schema.d.ts +354 -0
  2. package/dist/config-schema.d.ts.map +1 -0
  3. package/dist/config-schema.js +83 -0
  4. package/dist/config-schema.js.map +1 -0
  5. package/dist/config.d.ts +107 -0
  6. package/dist/config.d.ts.map +1 -0
  7. package/dist/config.js +5 -0
  8. package/dist/config.js.map +1 -0
  9. package/dist/duration.d.ts +39 -0
  10. package/dist/duration.d.ts.map +1 -0
  11. package/dist/duration.js +111 -0
  12. package/dist/duration.js.map +1 -0
  13. package/dist/index.d.ts +12 -0
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +20 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/locator-object.d.ts +556 -0
  18. package/dist/locator-object.d.ts.map +1 -0
  19. package/dist/locator-object.js +114 -0
  20. package/dist/locator-object.js.map +1 -0
  21. package/dist/lockfile.d.ts +1501 -0
  22. package/dist/lockfile.d.ts.map +1 -0
  23. package/dist/lockfile.js +86 -0
  24. package/dist/lockfile.js.map +1 -0
  25. package/dist/run-store.d.ts +81 -0
  26. package/dist/run-store.d.ts.map +1 -0
  27. package/dist/run-store.js +181 -0
  28. package/dist/run-store.js.map +1 -0
  29. package/dist/spec-loader.d.ts +17 -0
  30. package/dist/spec-loader.d.ts.map +1 -0
  31. package/dist/spec-loader.js +37 -0
  32. package/dist/spec-loader.js.map +1 -0
  33. package/dist/spec-schema.d.ts +1411 -0
  34. package/dist/spec-schema.d.ts.map +1 -0
  35. package/dist/spec-schema.js +239 -0
  36. package/dist/spec-schema.js.map +1 -0
  37. package/package.json +45 -0
  38. package/schemas/browserflow.schema.json +220 -0
  39. package/schemas/lockfile.schema.json +568 -0
  40. package/schemas/spec-v2.schema.json +413 -0
  41. package/src/config-schema.test.ts +190 -0
  42. package/src/config-schema.ts +111 -0
  43. package/src/config.ts +112 -0
  44. package/src/duration.test.ts +175 -0
  45. package/src/duration.ts +128 -0
  46. package/src/index.ts +136 -0
  47. package/src/json-schemas.test.ts +374 -0
  48. package/src/locator-object.test.ts +323 -0
  49. package/src/locator-object.ts +250 -0
  50. package/src/lockfile.test.ts +345 -0
  51. package/src/lockfile.ts +209 -0
  52. package/src/run-store.test.ts +232 -0
  53. package/src/run-store.ts +240 -0
  54. package/src/spec-loader.test.ts +181 -0
  55. package/src/spec-loader.ts +47 -0
  56. package/src/spec-schema.test.ts +360 -0
  57. package/src/spec-schema.ts +347 -0
@@ -0,0 +1,1411 @@
1
+ /**
2
+ * Zod schemas for BrowserFlow spec v2
3
+ *
4
+ * @see bf-dgs for implementation task
5
+ */
6
+ import { z } from 'zod';
7
+ export declare const durationSchema: z.ZodEffects<z.ZodString, string, string>;
8
+ export declare const targetSchema: z.ZodType<Target>;
9
+ export declare const actionTypeSchema: z.ZodEnum<["click", "navigate", "back", "forward", "refresh", "reload", "fill", "type", "select", "check", "press", "upload", "wait", "expect", "screenshot", "scroll", "scroll_into_view", "verify_state", "identify_element", "ai_verify", "custom"]>;
10
+ export declare const stateSchema: z.ZodEnum<["visible", "hidden", "enabled", "disabled", "checked", "unchecked", "focused", "editable", "attached", "detached"]>;
11
+ export declare const stepSchema: z.ZodObject<{
12
+ id: z.ZodString;
13
+ action: z.ZodEnum<["click", "navigate", "back", "forward", "refresh", "reload", "fill", "type", "select", "check", "press", "upload", "wait", "expect", "screenshot", "scroll", "scroll_into_view", "verify_state", "identify_element", "ai_verify", "custom"]>;
14
+ name: z.ZodOptional<z.ZodString>;
15
+ description: z.ZodOptional<z.ZodString>;
16
+ why: z.ZodOptional<z.ZodString>;
17
+ target: z.ZodOptional<z.ZodType<Target, z.ZodTypeDef, Target>>;
18
+ url: z.ZodOptional<z.ZodString>;
19
+ value: z.ZodOptional<z.ZodString>;
20
+ text: z.ZodOptional<z.ZodString>;
21
+ option: z.ZodOptional<z.ZodString>;
22
+ checked: z.ZodOptional<z.ZodBoolean>;
23
+ duration: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
24
+ state: z.ZodOptional<z.ZodEnum<["visible", "hidden", "enabled", "disabled", "checked", "unchecked", "focused", "editable", "attached", "detached"]>>;
25
+ timeout: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
26
+ pressEnter: z.ZodOptional<z.ZodBoolean>;
27
+ checks: z.ZodOptional<z.ZodArray<z.ZodObject<{
28
+ element_visible: z.ZodOptional<z.ZodString>;
29
+ element_not_visible: z.ZodOptional<z.ZodString>;
30
+ text_contains: z.ZodOptional<z.ZodString>;
31
+ text_not_contains: z.ZodOptional<z.ZodString>;
32
+ url_contains: z.ZodOptional<z.ZodString>;
33
+ element_count: z.ZodOptional<z.ZodObject<{
34
+ selector: z.ZodString;
35
+ expected: z.ZodNumber;
36
+ }, "strip", z.ZodTypeAny, {
37
+ expected: number;
38
+ selector: string;
39
+ }, {
40
+ expected: number;
41
+ selector: string;
42
+ }>>;
43
+ attribute: z.ZodOptional<z.ZodObject<{
44
+ selector: z.ZodString;
45
+ attribute: z.ZodString;
46
+ equals: z.ZodString;
47
+ }, "strip", z.ZodTypeAny, {
48
+ selector: string;
49
+ attribute: string;
50
+ equals: string;
51
+ }, {
52
+ selector: string;
53
+ attribute: string;
54
+ equals: string;
55
+ }>>;
56
+ }, "strip", z.ZodTypeAny, {
57
+ element_visible?: string | undefined;
58
+ element_not_visible?: string | undefined;
59
+ text_contains?: string | undefined;
60
+ text_not_contains?: string | undefined;
61
+ url_contains?: string | undefined;
62
+ element_count?: {
63
+ expected: number;
64
+ selector: string;
65
+ } | undefined;
66
+ attribute?: {
67
+ selector: string;
68
+ attribute: string;
69
+ equals: string;
70
+ } | undefined;
71
+ }, {
72
+ element_visible?: string | undefined;
73
+ element_not_visible?: string | undefined;
74
+ text_contains?: string | undefined;
75
+ text_not_contains?: string | undefined;
76
+ url_contains?: string | undefined;
77
+ element_count?: {
78
+ expected: number;
79
+ selector: string;
80
+ } | undefined;
81
+ attribute?: {
82
+ selector: string;
83
+ attribute: string;
84
+ equals: string;
85
+ } | undefined;
86
+ }>, "many">>;
87
+ highlight: z.ZodOptional<z.ZodArray<z.ZodObject<{
88
+ selector: z.ZodString;
89
+ label: z.ZodOptional<z.ZodString>;
90
+ }, "strip", z.ZodTypeAny, {
91
+ selector: string;
92
+ label?: string | undefined;
93
+ }, {
94
+ selector: string;
95
+ label?: string | undefined;
96
+ }>, "many">>;
97
+ mask: z.ZodOptional<z.ZodArray<z.ZodObject<{
98
+ selector: z.ZodOptional<z.ZodString>;
99
+ region: z.ZodOptional<z.ZodObject<{
100
+ x: z.ZodNumber;
101
+ y: z.ZodNumber;
102
+ width: z.ZodNumber;
103
+ height: z.ZodNumber;
104
+ }, "strip", z.ZodTypeAny, {
105
+ x: number;
106
+ y: number;
107
+ width: number;
108
+ height: number;
109
+ }, {
110
+ x: number;
111
+ y: number;
112
+ width: number;
113
+ height: number;
114
+ }>>;
115
+ reason: z.ZodOptional<z.ZodString>;
116
+ }, "strip", z.ZodTypeAny, {
117
+ selector?: string | undefined;
118
+ region?: {
119
+ x: number;
120
+ y: number;
121
+ width: number;
122
+ height: number;
123
+ } | undefined;
124
+ reason?: string | undefined;
125
+ }, {
126
+ selector?: string | undefined;
127
+ region?: {
128
+ x: number;
129
+ y: number;
130
+ width: number;
131
+ height: number;
132
+ } | undefined;
133
+ reason?: string | undefined;
134
+ }>, "many">>;
135
+ question: z.ZodOptional<z.ZodString>;
136
+ expected: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>;
137
+ save_as: z.ZodOptional<z.ZodString>;
138
+ ref: z.ZodOptional<z.ZodString>;
139
+ selector: z.ZodOptional<z.ZodString>;
140
+ for: z.ZodOptional<z.ZodEnum<["element", "text", "url", "time"]>>;
141
+ contains: z.ZodOptional<z.ZodString>;
142
+ }, "strict", z.ZodTypeAny, {
143
+ id: string;
144
+ action: "fill" | "type" | "custom" | "click" | "navigate" | "back" | "forward" | "refresh" | "reload" | "select" | "check" | "press" | "upload" | "wait" | "expect" | "screenshot" | "scroll" | "scroll_into_view" | "verify_state" | "identify_element" | "ai_verify";
145
+ value?: string | undefined;
146
+ expected?: string | number | boolean | undefined;
147
+ name?: string | undefined;
148
+ text?: string | undefined;
149
+ checked?: boolean | undefined;
150
+ description?: string | undefined;
151
+ why?: string | undefined;
152
+ target?: Target | undefined;
153
+ url?: string | undefined;
154
+ option?: string | undefined;
155
+ duration?: string | undefined;
156
+ state?: "visible" | "hidden" | "enabled" | "disabled" | "checked" | "unchecked" | "focused" | "editable" | "attached" | "detached" | undefined;
157
+ timeout?: string | undefined;
158
+ pressEnter?: boolean | undefined;
159
+ selector?: string | undefined;
160
+ checks?: {
161
+ element_visible?: string | undefined;
162
+ element_not_visible?: string | undefined;
163
+ text_contains?: string | undefined;
164
+ text_not_contains?: string | undefined;
165
+ url_contains?: string | undefined;
166
+ element_count?: {
167
+ expected: number;
168
+ selector: string;
169
+ } | undefined;
170
+ attribute?: {
171
+ selector: string;
172
+ attribute: string;
173
+ equals: string;
174
+ } | undefined;
175
+ }[] | undefined;
176
+ highlight?: {
177
+ selector: string;
178
+ label?: string | undefined;
179
+ }[] | undefined;
180
+ mask?: {
181
+ selector?: string | undefined;
182
+ region?: {
183
+ x: number;
184
+ y: number;
185
+ width: number;
186
+ height: number;
187
+ } | undefined;
188
+ reason?: string | undefined;
189
+ }[] | undefined;
190
+ question?: string | undefined;
191
+ save_as?: string | undefined;
192
+ ref?: string | undefined;
193
+ for?: "text" | "url" | "element" | "time" | undefined;
194
+ contains?: string | undefined;
195
+ }, {
196
+ id: string;
197
+ action: "fill" | "type" | "custom" | "click" | "navigate" | "back" | "forward" | "refresh" | "reload" | "select" | "check" | "press" | "upload" | "wait" | "expect" | "screenshot" | "scroll" | "scroll_into_view" | "verify_state" | "identify_element" | "ai_verify";
198
+ value?: string | undefined;
199
+ expected?: string | number | boolean | undefined;
200
+ name?: string | undefined;
201
+ text?: string | undefined;
202
+ checked?: boolean | undefined;
203
+ description?: string | undefined;
204
+ why?: string | undefined;
205
+ target?: Target | undefined;
206
+ url?: string | undefined;
207
+ option?: string | undefined;
208
+ duration?: string | undefined;
209
+ state?: "visible" | "hidden" | "enabled" | "disabled" | "checked" | "unchecked" | "focused" | "editable" | "attached" | "detached" | undefined;
210
+ timeout?: string | undefined;
211
+ pressEnter?: boolean | undefined;
212
+ selector?: string | undefined;
213
+ checks?: {
214
+ element_visible?: string | undefined;
215
+ element_not_visible?: string | undefined;
216
+ text_contains?: string | undefined;
217
+ text_not_contains?: string | undefined;
218
+ url_contains?: string | undefined;
219
+ element_count?: {
220
+ expected: number;
221
+ selector: string;
222
+ } | undefined;
223
+ attribute?: {
224
+ selector: string;
225
+ attribute: string;
226
+ equals: string;
227
+ } | undefined;
228
+ }[] | undefined;
229
+ highlight?: {
230
+ selector: string;
231
+ label?: string | undefined;
232
+ }[] | undefined;
233
+ mask?: {
234
+ selector?: string | undefined;
235
+ region?: {
236
+ x: number;
237
+ y: number;
238
+ width: number;
239
+ height: number;
240
+ } | undefined;
241
+ reason?: string | undefined;
242
+ }[] | undefined;
243
+ question?: string | undefined;
244
+ save_as?: string | undefined;
245
+ ref?: string | undefined;
246
+ for?: "text" | "url" | "element" | "time" | undefined;
247
+ contains?: string | undefined;
248
+ }>;
249
+ export declare const preconditionsSchema: z.ZodObject<{
250
+ page: z.ZodOptional<z.ZodObject<{
251
+ url: z.ZodOptional<z.ZodString>;
252
+ }, "strip", z.ZodTypeAny, {
253
+ url?: string | undefined;
254
+ }, {
255
+ url?: string | undefined;
256
+ }>>;
257
+ auth: z.ZodOptional<z.ZodObject<{
258
+ user: z.ZodOptional<z.ZodString>;
259
+ state: z.ZodOptional<z.ZodString>;
260
+ }, "strip", z.ZodTypeAny, {
261
+ state?: string | undefined;
262
+ user?: string | undefined;
263
+ }, {
264
+ state?: string | undefined;
265
+ user?: string | undefined;
266
+ }>>;
267
+ viewport: z.ZodOptional<z.ZodObject<{
268
+ width: z.ZodNumber;
269
+ height: z.ZodNumber;
270
+ }, "strip", z.ZodTypeAny, {
271
+ width: number;
272
+ height: number;
273
+ }, {
274
+ width: number;
275
+ height: number;
276
+ }>>;
277
+ mocks: z.ZodOptional<z.ZodArray<z.ZodObject<{
278
+ url: z.ZodString;
279
+ response: z.ZodUnknown;
280
+ }, "strip", z.ZodTypeAny, {
281
+ url: string;
282
+ response?: unknown;
283
+ }, {
284
+ url: string;
285
+ response?: unknown;
286
+ }>, "many">>;
287
+ }, "strip", z.ZodTypeAny, {
288
+ page?: {
289
+ url?: string | undefined;
290
+ } | undefined;
291
+ auth?: {
292
+ state?: string | undefined;
293
+ user?: string | undefined;
294
+ } | undefined;
295
+ viewport?: {
296
+ width: number;
297
+ height: number;
298
+ } | undefined;
299
+ mocks?: {
300
+ url: string;
301
+ response?: unknown;
302
+ }[] | undefined;
303
+ }, {
304
+ page?: {
305
+ url?: string | undefined;
306
+ } | undefined;
307
+ auth?: {
308
+ state?: string | undefined;
309
+ user?: string | undefined;
310
+ } | undefined;
311
+ viewport?: {
312
+ width: number;
313
+ height: number;
314
+ } | undefined;
315
+ mocks?: {
316
+ url: string;
317
+ response?: unknown;
318
+ }[] | undefined;
319
+ }>;
320
+ export declare const expectedOutcomeSchema: z.ZodObject<{
321
+ description: z.ZodOptional<z.ZodString>;
322
+ check: z.ZodOptional<z.ZodString>;
323
+ expected: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodNumber, z.ZodString]>>;
324
+ }, "strip", z.ZodTypeAny, {
325
+ expected?: string | number | boolean | undefined;
326
+ check?: string | undefined;
327
+ description?: string | undefined;
328
+ }, {
329
+ expected?: string | number | boolean | undefined;
330
+ check?: string | undefined;
331
+ description?: string | undefined;
332
+ }>;
333
+ export declare const specSchema: z.ZodEffects<z.ZodObject<{
334
+ version: z.ZodLiteral<2>;
335
+ name: z.ZodString;
336
+ description: z.ZodOptional<z.ZodString>;
337
+ steps: z.ZodArray<z.ZodObject<{
338
+ id: z.ZodString;
339
+ action: z.ZodEnum<["click", "navigate", "back", "forward", "refresh", "reload", "fill", "type", "select", "check", "press", "upload", "wait", "expect", "screenshot", "scroll", "scroll_into_view", "verify_state", "identify_element", "ai_verify", "custom"]>;
340
+ name: z.ZodOptional<z.ZodString>;
341
+ description: z.ZodOptional<z.ZodString>;
342
+ why: z.ZodOptional<z.ZodString>;
343
+ target: z.ZodOptional<z.ZodType<Target, z.ZodTypeDef, Target>>;
344
+ url: z.ZodOptional<z.ZodString>;
345
+ value: z.ZodOptional<z.ZodString>;
346
+ text: z.ZodOptional<z.ZodString>;
347
+ option: z.ZodOptional<z.ZodString>;
348
+ checked: z.ZodOptional<z.ZodBoolean>;
349
+ duration: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
350
+ state: z.ZodOptional<z.ZodEnum<["visible", "hidden", "enabled", "disabled", "checked", "unchecked", "focused", "editable", "attached", "detached"]>>;
351
+ timeout: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
352
+ pressEnter: z.ZodOptional<z.ZodBoolean>;
353
+ checks: z.ZodOptional<z.ZodArray<z.ZodObject<{
354
+ element_visible: z.ZodOptional<z.ZodString>;
355
+ element_not_visible: z.ZodOptional<z.ZodString>;
356
+ text_contains: z.ZodOptional<z.ZodString>;
357
+ text_not_contains: z.ZodOptional<z.ZodString>;
358
+ url_contains: z.ZodOptional<z.ZodString>;
359
+ element_count: z.ZodOptional<z.ZodObject<{
360
+ selector: z.ZodString;
361
+ expected: z.ZodNumber;
362
+ }, "strip", z.ZodTypeAny, {
363
+ expected: number;
364
+ selector: string;
365
+ }, {
366
+ expected: number;
367
+ selector: string;
368
+ }>>;
369
+ attribute: z.ZodOptional<z.ZodObject<{
370
+ selector: z.ZodString;
371
+ attribute: z.ZodString;
372
+ equals: z.ZodString;
373
+ }, "strip", z.ZodTypeAny, {
374
+ selector: string;
375
+ attribute: string;
376
+ equals: string;
377
+ }, {
378
+ selector: string;
379
+ attribute: string;
380
+ equals: string;
381
+ }>>;
382
+ }, "strip", z.ZodTypeAny, {
383
+ element_visible?: string | undefined;
384
+ element_not_visible?: string | undefined;
385
+ text_contains?: string | undefined;
386
+ text_not_contains?: string | undefined;
387
+ url_contains?: string | undefined;
388
+ element_count?: {
389
+ expected: number;
390
+ selector: string;
391
+ } | undefined;
392
+ attribute?: {
393
+ selector: string;
394
+ attribute: string;
395
+ equals: string;
396
+ } | undefined;
397
+ }, {
398
+ element_visible?: string | undefined;
399
+ element_not_visible?: string | undefined;
400
+ text_contains?: string | undefined;
401
+ text_not_contains?: string | undefined;
402
+ url_contains?: string | undefined;
403
+ element_count?: {
404
+ expected: number;
405
+ selector: string;
406
+ } | undefined;
407
+ attribute?: {
408
+ selector: string;
409
+ attribute: string;
410
+ equals: string;
411
+ } | undefined;
412
+ }>, "many">>;
413
+ highlight: z.ZodOptional<z.ZodArray<z.ZodObject<{
414
+ selector: z.ZodString;
415
+ label: z.ZodOptional<z.ZodString>;
416
+ }, "strip", z.ZodTypeAny, {
417
+ selector: string;
418
+ label?: string | undefined;
419
+ }, {
420
+ selector: string;
421
+ label?: string | undefined;
422
+ }>, "many">>;
423
+ mask: z.ZodOptional<z.ZodArray<z.ZodObject<{
424
+ selector: z.ZodOptional<z.ZodString>;
425
+ region: z.ZodOptional<z.ZodObject<{
426
+ x: z.ZodNumber;
427
+ y: z.ZodNumber;
428
+ width: z.ZodNumber;
429
+ height: z.ZodNumber;
430
+ }, "strip", z.ZodTypeAny, {
431
+ x: number;
432
+ y: number;
433
+ width: number;
434
+ height: number;
435
+ }, {
436
+ x: number;
437
+ y: number;
438
+ width: number;
439
+ height: number;
440
+ }>>;
441
+ reason: z.ZodOptional<z.ZodString>;
442
+ }, "strip", z.ZodTypeAny, {
443
+ selector?: string | undefined;
444
+ region?: {
445
+ x: number;
446
+ y: number;
447
+ width: number;
448
+ height: number;
449
+ } | undefined;
450
+ reason?: string | undefined;
451
+ }, {
452
+ selector?: string | undefined;
453
+ region?: {
454
+ x: number;
455
+ y: number;
456
+ width: number;
457
+ height: number;
458
+ } | undefined;
459
+ reason?: string | undefined;
460
+ }>, "many">>;
461
+ question: z.ZodOptional<z.ZodString>;
462
+ expected: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>;
463
+ save_as: z.ZodOptional<z.ZodString>;
464
+ ref: z.ZodOptional<z.ZodString>;
465
+ selector: z.ZodOptional<z.ZodString>;
466
+ for: z.ZodOptional<z.ZodEnum<["element", "text", "url", "time"]>>;
467
+ contains: z.ZodOptional<z.ZodString>;
468
+ }, "strict", z.ZodTypeAny, {
469
+ id: string;
470
+ action: "fill" | "type" | "custom" | "click" | "navigate" | "back" | "forward" | "refresh" | "reload" | "select" | "check" | "press" | "upload" | "wait" | "expect" | "screenshot" | "scroll" | "scroll_into_view" | "verify_state" | "identify_element" | "ai_verify";
471
+ value?: string | undefined;
472
+ expected?: string | number | boolean | undefined;
473
+ name?: string | undefined;
474
+ text?: string | undefined;
475
+ checked?: boolean | undefined;
476
+ description?: string | undefined;
477
+ why?: string | undefined;
478
+ target?: Target | undefined;
479
+ url?: string | undefined;
480
+ option?: string | undefined;
481
+ duration?: string | undefined;
482
+ state?: "visible" | "hidden" | "enabled" | "disabled" | "checked" | "unchecked" | "focused" | "editable" | "attached" | "detached" | undefined;
483
+ timeout?: string | undefined;
484
+ pressEnter?: boolean | undefined;
485
+ selector?: string | undefined;
486
+ checks?: {
487
+ element_visible?: string | undefined;
488
+ element_not_visible?: string | undefined;
489
+ text_contains?: string | undefined;
490
+ text_not_contains?: string | undefined;
491
+ url_contains?: string | undefined;
492
+ element_count?: {
493
+ expected: number;
494
+ selector: string;
495
+ } | undefined;
496
+ attribute?: {
497
+ selector: string;
498
+ attribute: string;
499
+ equals: string;
500
+ } | undefined;
501
+ }[] | undefined;
502
+ highlight?: {
503
+ selector: string;
504
+ label?: string | undefined;
505
+ }[] | undefined;
506
+ mask?: {
507
+ selector?: string | undefined;
508
+ region?: {
509
+ x: number;
510
+ y: number;
511
+ width: number;
512
+ height: number;
513
+ } | undefined;
514
+ reason?: string | undefined;
515
+ }[] | undefined;
516
+ question?: string | undefined;
517
+ save_as?: string | undefined;
518
+ ref?: string | undefined;
519
+ for?: "text" | "url" | "element" | "time" | undefined;
520
+ contains?: string | undefined;
521
+ }, {
522
+ id: string;
523
+ action: "fill" | "type" | "custom" | "click" | "navigate" | "back" | "forward" | "refresh" | "reload" | "select" | "check" | "press" | "upload" | "wait" | "expect" | "screenshot" | "scroll" | "scroll_into_view" | "verify_state" | "identify_element" | "ai_verify";
524
+ value?: string | undefined;
525
+ expected?: string | number | boolean | undefined;
526
+ name?: string | undefined;
527
+ text?: string | undefined;
528
+ checked?: boolean | undefined;
529
+ description?: string | undefined;
530
+ why?: string | undefined;
531
+ target?: Target | undefined;
532
+ url?: string | undefined;
533
+ option?: string | undefined;
534
+ duration?: string | undefined;
535
+ state?: "visible" | "hidden" | "enabled" | "disabled" | "checked" | "unchecked" | "focused" | "editable" | "attached" | "detached" | undefined;
536
+ timeout?: string | undefined;
537
+ pressEnter?: boolean | undefined;
538
+ selector?: string | undefined;
539
+ checks?: {
540
+ element_visible?: string | undefined;
541
+ element_not_visible?: string | undefined;
542
+ text_contains?: string | undefined;
543
+ text_not_contains?: string | undefined;
544
+ url_contains?: string | undefined;
545
+ element_count?: {
546
+ expected: number;
547
+ selector: string;
548
+ } | undefined;
549
+ attribute?: {
550
+ selector: string;
551
+ attribute: string;
552
+ equals: string;
553
+ } | undefined;
554
+ }[] | undefined;
555
+ highlight?: {
556
+ selector: string;
557
+ label?: string | undefined;
558
+ }[] | undefined;
559
+ mask?: {
560
+ selector?: string | undefined;
561
+ region?: {
562
+ x: number;
563
+ y: number;
564
+ width: number;
565
+ height: number;
566
+ } | undefined;
567
+ reason?: string | undefined;
568
+ }[] | undefined;
569
+ question?: string | undefined;
570
+ save_as?: string | undefined;
571
+ ref?: string | undefined;
572
+ for?: "text" | "url" | "element" | "time" | undefined;
573
+ contains?: string | undefined;
574
+ }>, "many">;
575
+ timeout: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
576
+ priority: z.ZodOptional<z.ZodEnum<["critical", "high", "normal", "low"]>>;
577
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
578
+ preconditions: z.ZodOptional<z.ZodObject<{
579
+ page: z.ZodOptional<z.ZodObject<{
580
+ url: z.ZodOptional<z.ZodString>;
581
+ }, "strip", z.ZodTypeAny, {
582
+ url?: string | undefined;
583
+ }, {
584
+ url?: string | undefined;
585
+ }>>;
586
+ auth: z.ZodOptional<z.ZodObject<{
587
+ user: z.ZodOptional<z.ZodString>;
588
+ state: z.ZodOptional<z.ZodString>;
589
+ }, "strip", z.ZodTypeAny, {
590
+ state?: string | undefined;
591
+ user?: string | undefined;
592
+ }, {
593
+ state?: string | undefined;
594
+ user?: string | undefined;
595
+ }>>;
596
+ viewport: z.ZodOptional<z.ZodObject<{
597
+ width: z.ZodNumber;
598
+ height: z.ZodNumber;
599
+ }, "strip", z.ZodTypeAny, {
600
+ width: number;
601
+ height: number;
602
+ }, {
603
+ width: number;
604
+ height: number;
605
+ }>>;
606
+ mocks: z.ZodOptional<z.ZodArray<z.ZodObject<{
607
+ url: z.ZodString;
608
+ response: z.ZodUnknown;
609
+ }, "strip", z.ZodTypeAny, {
610
+ url: string;
611
+ response?: unknown;
612
+ }, {
613
+ url: string;
614
+ response?: unknown;
615
+ }>, "many">>;
616
+ }, "strip", z.ZodTypeAny, {
617
+ page?: {
618
+ url?: string | undefined;
619
+ } | undefined;
620
+ auth?: {
621
+ state?: string | undefined;
622
+ user?: string | undefined;
623
+ } | undefined;
624
+ viewport?: {
625
+ width: number;
626
+ height: number;
627
+ } | undefined;
628
+ mocks?: {
629
+ url: string;
630
+ response?: unknown;
631
+ }[] | undefined;
632
+ }, {
633
+ page?: {
634
+ url?: string | undefined;
635
+ } | undefined;
636
+ auth?: {
637
+ state?: string | undefined;
638
+ user?: string | undefined;
639
+ } | undefined;
640
+ viewport?: {
641
+ width: number;
642
+ height: number;
643
+ } | undefined;
644
+ mocks?: {
645
+ url: string;
646
+ response?: unknown;
647
+ }[] | undefined;
648
+ }>>;
649
+ expected_outcomes: z.ZodOptional<z.ZodArray<z.ZodObject<{
650
+ description: z.ZodOptional<z.ZodString>;
651
+ check: z.ZodOptional<z.ZodString>;
652
+ expected: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodNumber, z.ZodString]>>;
653
+ }, "strip", z.ZodTypeAny, {
654
+ expected?: string | number | boolean | undefined;
655
+ check?: string | undefined;
656
+ description?: string | undefined;
657
+ }, {
658
+ expected?: string | number | boolean | undefined;
659
+ check?: string | undefined;
660
+ description?: string | undefined;
661
+ }>, "many">>;
662
+ }, "strip", z.ZodTypeAny, {
663
+ name: string;
664
+ version: 2;
665
+ steps: {
666
+ id: string;
667
+ action: "fill" | "type" | "custom" | "click" | "navigate" | "back" | "forward" | "refresh" | "reload" | "select" | "check" | "press" | "upload" | "wait" | "expect" | "screenshot" | "scroll" | "scroll_into_view" | "verify_state" | "identify_element" | "ai_verify";
668
+ value?: string | undefined;
669
+ expected?: string | number | boolean | undefined;
670
+ name?: string | undefined;
671
+ text?: string | undefined;
672
+ checked?: boolean | undefined;
673
+ description?: string | undefined;
674
+ why?: string | undefined;
675
+ target?: Target | undefined;
676
+ url?: string | undefined;
677
+ option?: string | undefined;
678
+ duration?: string | undefined;
679
+ state?: "visible" | "hidden" | "enabled" | "disabled" | "checked" | "unchecked" | "focused" | "editable" | "attached" | "detached" | undefined;
680
+ timeout?: string | undefined;
681
+ pressEnter?: boolean | undefined;
682
+ selector?: string | undefined;
683
+ checks?: {
684
+ element_visible?: string | undefined;
685
+ element_not_visible?: string | undefined;
686
+ text_contains?: string | undefined;
687
+ text_not_contains?: string | undefined;
688
+ url_contains?: string | undefined;
689
+ element_count?: {
690
+ expected: number;
691
+ selector: string;
692
+ } | undefined;
693
+ attribute?: {
694
+ selector: string;
695
+ attribute: string;
696
+ equals: string;
697
+ } | undefined;
698
+ }[] | undefined;
699
+ highlight?: {
700
+ selector: string;
701
+ label?: string | undefined;
702
+ }[] | undefined;
703
+ mask?: {
704
+ selector?: string | undefined;
705
+ region?: {
706
+ x: number;
707
+ y: number;
708
+ width: number;
709
+ height: number;
710
+ } | undefined;
711
+ reason?: string | undefined;
712
+ }[] | undefined;
713
+ question?: string | undefined;
714
+ save_as?: string | undefined;
715
+ ref?: string | undefined;
716
+ for?: "text" | "url" | "element" | "time" | undefined;
717
+ contains?: string | undefined;
718
+ }[];
719
+ description?: string | undefined;
720
+ timeout?: string | undefined;
721
+ priority?: "critical" | "high" | "normal" | "low" | undefined;
722
+ tags?: string[] | undefined;
723
+ preconditions?: {
724
+ page?: {
725
+ url?: string | undefined;
726
+ } | undefined;
727
+ auth?: {
728
+ state?: string | undefined;
729
+ user?: string | undefined;
730
+ } | undefined;
731
+ viewport?: {
732
+ width: number;
733
+ height: number;
734
+ } | undefined;
735
+ mocks?: {
736
+ url: string;
737
+ response?: unknown;
738
+ }[] | undefined;
739
+ } | undefined;
740
+ expected_outcomes?: {
741
+ expected?: string | number | boolean | undefined;
742
+ check?: string | undefined;
743
+ description?: string | undefined;
744
+ }[] | undefined;
745
+ }, {
746
+ name: string;
747
+ version: 2;
748
+ steps: {
749
+ id: string;
750
+ action: "fill" | "type" | "custom" | "click" | "navigate" | "back" | "forward" | "refresh" | "reload" | "select" | "check" | "press" | "upload" | "wait" | "expect" | "screenshot" | "scroll" | "scroll_into_view" | "verify_state" | "identify_element" | "ai_verify";
751
+ value?: string | undefined;
752
+ expected?: string | number | boolean | undefined;
753
+ name?: string | undefined;
754
+ text?: string | undefined;
755
+ checked?: boolean | undefined;
756
+ description?: string | undefined;
757
+ why?: string | undefined;
758
+ target?: Target | undefined;
759
+ url?: string | undefined;
760
+ option?: string | undefined;
761
+ duration?: string | undefined;
762
+ state?: "visible" | "hidden" | "enabled" | "disabled" | "checked" | "unchecked" | "focused" | "editable" | "attached" | "detached" | undefined;
763
+ timeout?: string | undefined;
764
+ pressEnter?: boolean | undefined;
765
+ selector?: string | undefined;
766
+ checks?: {
767
+ element_visible?: string | undefined;
768
+ element_not_visible?: string | undefined;
769
+ text_contains?: string | undefined;
770
+ text_not_contains?: string | undefined;
771
+ url_contains?: string | undefined;
772
+ element_count?: {
773
+ expected: number;
774
+ selector: string;
775
+ } | undefined;
776
+ attribute?: {
777
+ selector: string;
778
+ attribute: string;
779
+ equals: string;
780
+ } | undefined;
781
+ }[] | undefined;
782
+ highlight?: {
783
+ selector: string;
784
+ label?: string | undefined;
785
+ }[] | undefined;
786
+ mask?: {
787
+ selector?: string | undefined;
788
+ region?: {
789
+ x: number;
790
+ y: number;
791
+ width: number;
792
+ height: number;
793
+ } | undefined;
794
+ reason?: string | undefined;
795
+ }[] | undefined;
796
+ question?: string | undefined;
797
+ save_as?: string | undefined;
798
+ ref?: string | undefined;
799
+ for?: "text" | "url" | "element" | "time" | undefined;
800
+ contains?: string | undefined;
801
+ }[];
802
+ description?: string | undefined;
803
+ timeout?: string | undefined;
804
+ priority?: "critical" | "high" | "normal" | "low" | undefined;
805
+ tags?: string[] | undefined;
806
+ preconditions?: {
807
+ page?: {
808
+ url?: string | undefined;
809
+ } | undefined;
810
+ auth?: {
811
+ state?: string | undefined;
812
+ user?: string | undefined;
813
+ } | undefined;
814
+ viewport?: {
815
+ width: number;
816
+ height: number;
817
+ } | undefined;
818
+ mocks?: {
819
+ url: string;
820
+ response?: unknown;
821
+ }[] | undefined;
822
+ } | undefined;
823
+ expected_outcomes?: {
824
+ expected?: string | number | boolean | undefined;
825
+ check?: string | undefined;
826
+ description?: string | undefined;
827
+ }[] | undefined;
828
+ }>, {
829
+ name: string;
830
+ version: 2;
831
+ steps: {
832
+ id: string;
833
+ action: "fill" | "type" | "custom" | "click" | "navigate" | "back" | "forward" | "refresh" | "reload" | "select" | "check" | "press" | "upload" | "wait" | "expect" | "screenshot" | "scroll" | "scroll_into_view" | "verify_state" | "identify_element" | "ai_verify";
834
+ value?: string | undefined;
835
+ expected?: string | number | boolean | undefined;
836
+ name?: string | undefined;
837
+ text?: string | undefined;
838
+ checked?: boolean | undefined;
839
+ description?: string | undefined;
840
+ why?: string | undefined;
841
+ target?: Target | undefined;
842
+ url?: string | undefined;
843
+ option?: string | undefined;
844
+ duration?: string | undefined;
845
+ state?: "visible" | "hidden" | "enabled" | "disabled" | "checked" | "unchecked" | "focused" | "editable" | "attached" | "detached" | undefined;
846
+ timeout?: string | undefined;
847
+ pressEnter?: boolean | undefined;
848
+ selector?: string | undefined;
849
+ checks?: {
850
+ element_visible?: string | undefined;
851
+ element_not_visible?: string | undefined;
852
+ text_contains?: string | undefined;
853
+ text_not_contains?: string | undefined;
854
+ url_contains?: string | undefined;
855
+ element_count?: {
856
+ expected: number;
857
+ selector: string;
858
+ } | undefined;
859
+ attribute?: {
860
+ selector: string;
861
+ attribute: string;
862
+ equals: string;
863
+ } | undefined;
864
+ }[] | undefined;
865
+ highlight?: {
866
+ selector: string;
867
+ label?: string | undefined;
868
+ }[] | undefined;
869
+ mask?: {
870
+ selector?: string | undefined;
871
+ region?: {
872
+ x: number;
873
+ y: number;
874
+ width: number;
875
+ height: number;
876
+ } | undefined;
877
+ reason?: string | undefined;
878
+ }[] | undefined;
879
+ question?: string | undefined;
880
+ save_as?: string | undefined;
881
+ ref?: string | undefined;
882
+ for?: "text" | "url" | "element" | "time" | undefined;
883
+ contains?: string | undefined;
884
+ }[];
885
+ description?: string | undefined;
886
+ timeout?: string | undefined;
887
+ priority?: "critical" | "high" | "normal" | "low" | undefined;
888
+ tags?: string[] | undefined;
889
+ preconditions?: {
890
+ page?: {
891
+ url?: string | undefined;
892
+ } | undefined;
893
+ auth?: {
894
+ state?: string | undefined;
895
+ user?: string | undefined;
896
+ } | undefined;
897
+ viewport?: {
898
+ width: number;
899
+ height: number;
900
+ } | undefined;
901
+ mocks?: {
902
+ url: string;
903
+ response?: unknown;
904
+ }[] | undefined;
905
+ } | undefined;
906
+ expected_outcomes?: {
907
+ expected?: string | number | boolean | undefined;
908
+ check?: string | undefined;
909
+ description?: string | undefined;
910
+ }[] | undefined;
911
+ }, {
912
+ name: string;
913
+ version: 2;
914
+ steps: {
915
+ id: string;
916
+ action: "fill" | "type" | "custom" | "click" | "navigate" | "back" | "forward" | "refresh" | "reload" | "select" | "check" | "press" | "upload" | "wait" | "expect" | "screenshot" | "scroll" | "scroll_into_view" | "verify_state" | "identify_element" | "ai_verify";
917
+ value?: string | undefined;
918
+ expected?: string | number | boolean | undefined;
919
+ name?: string | undefined;
920
+ text?: string | undefined;
921
+ checked?: boolean | undefined;
922
+ description?: string | undefined;
923
+ why?: string | undefined;
924
+ target?: Target | undefined;
925
+ url?: string | undefined;
926
+ option?: string | undefined;
927
+ duration?: string | undefined;
928
+ state?: "visible" | "hidden" | "enabled" | "disabled" | "checked" | "unchecked" | "focused" | "editable" | "attached" | "detached" | undefined;
929
+ timeout?: string | undefined;
930
+ pressEnter?: boolean | undefined;
931
+ selector?: string | undefined;
932
+ checks?: {
933
+ element_visible?: string | undefined;
934
+ element_not_visible?: string | undefined;
935
+ text_contains?: string | undefined;
936
+ text_not_contains?: string | undefined;
937
+ url_contains?: string | undefined;
938
+ element_count?: {
939
+ expected: number;
940
+ selector: string;
941
+ } | undefined;
942
+ attribute?: {
943
+ selector: string;
944
+ attribute: string;
945
+ equals: string;
946
+ } | undefined;
947
+ }[] | undefined;
948
+ highlight?: {
949
+ selector: string;
950
+ label?: string | undefined;
951
+ }[] | undefined;
952
+ mask?: {
953
+ selector?: string | undefined;
954
+ region?: {
955
+ x: number;
956
+ y: number;
957
+ width: number;
958
+ height: number;
959
+ } | undefined;
960
+ reason?: string | undefined;
961
+ }[] | undefined;
962
+ question?: string | undefined;
963
+ save_as?: string | undefined;
964
+ ref?: string | undefined;
965
+ for?: "text" | "url" | "element" | "time" | undefined;
966
+ contains?: string | undefined;
967
+ }[];
968
+ description?: string | undefined;
969
+ timeout?: string | undefined;
970
+ priority?: "critical" | "high" | "normal" | "low" | undefined;
971
+ tags?: string[] | undefined;
972
+ preconditions?: {
973
+ page?: {
974
+ url?: string | undefined;
975
+ } | undefined;
976
+ auth?: {
977
+ state?: string | undefined;
978
+ user?: string | undefined;
979
+ } | undefined;
980
+ viewport?: {
981
+ width: number;
982
+ height: number;
983
+ } | undefined;
984
+ mocks?: {
985
+ url: string;
986
+ response?: unknown;
987
+ }[] | undefined;
988
+ } | undefined;
989
+ expected_outcomes?: {
990
+ expected?: string | number | boolean | undefined;
991
+ check?: string | undefined;
992
+ description?: string | undefined;
993
+ }[] | undefined;
994
+ }>;
995
+ export type Target = {
996
+ query?: string;
997
+ testid?: string;
998
+ role?: string;
999
+ name?: string;
1000
+ label?: string;
1001
+ placeholder?: string;
1002
+ text?: string;
1003
+ css?: string;
1004
+ within?: Target;
1005
+ nth?: number;
1006
+ };
1007
+ export type ActionType = z.infer<typeof actionTypeSchema>;
1008
+ export type State = z.infer<typeof stateSchema>;
1009
+ export type SpecStep = z.infer<typeof stepSchema>;
1010
+ export type Preconditions = z.infer<typeof preconditionsSchema>;
1011
+ export type ExpectedOutcome = z.infer<typeof expectedOutcomeSchema>;
1012
+ export type BrowserFlowSpec = z.infer<typeof specSchema>;
1013
+ export declare const verifyCheckSchema: z.ZodObject<{
1014
+ element_visible: z.ZodOptional<z.ZodString>;
1015
+ element_not_visible: z.ZodOptional<z.ZodString>;
1016
+ text_contains: z.ZodOptional<z.ZodString>;
1017
+ text_not_contains: z.ZodOptional<z.ZodString>;
1018
+ url_contains: z.ZodOptional<z.ZodString>;
1019
+ element_count: z.ZodOptional<z.ZodObject<{
1020
+ selector: z.ZodString;
1021
+ expected: z.ZodNumber;
1022
+ }, "strip", z.ZodTypeAny, {
1023
+ expected: number;
1024
+ selector: string;
1025
+ }, {
1026
+ expected: number;
1027
+ selector: string;
1028
+ }>>;
1029
+ attribute: z.ZodOptional<z.ZodObject<{
1030
+ selector: z.ZodString;
1031
+ attribute: z.ZodString;
1032
+ equals: z.ZodString;
1033
+ }, "strip", z.ZodTypeAny, {
1034
+ selector: string;
1035
+ attribute: string;
1036
+ equals: string;
1037
+ }, {
1038
+ selector: string;
1039
+ attribute: string;
1040
+ equals: string;
1041
+ }>>;
1042
+ }, "strip", z.ZodTypeAny, {
1043
+ element_visible?: string | undefined;
1044
+ element_not_visible?: string | undefined;
1045
+ text_contains?: string | undefined;
1046
+ text_not_contains?: string | undefined;
1047
+ url_contains?: string | undefined;
1048
+ element_count?: {
1049
+ expected: number;
1050
+ selector: string;
1051
+ } | undefined;
1052
+ attribute?: {
1053
+ selector: string;
1054
+ attribute: string;
1055
+ equals: string;
1056
+ } | undefined;
1057
+ }, {
1058
+ element_visible?: string | undefined;
1059
+ element_not_visible?: string | undefined;
1060
+ text_contains?: string | undefined;
1061
+ text_not_contains?: string | undefined;
1062
+ url_contains?: string | undefined;
1063
+ element_count?: {
1064
+ expected: number;
1065
+ selector: string;
1066
+ } | undefined;
1067
+ attribute?: {
1068
+ selector: string;
1069
+ attribute: string;
1070
+ equals: string;
1071
+ } | undefined;
1072
+ }>;
1073
+ export declare const highlightRegionSchema: z.ZodObject<{
1074
+ selector: z.ZodString;
1075
+ label: z.ZodOptional<z.ZodString>;
1076
+ }, "strip", z.ZodTypeAny, {
1077
+ selector: string;
1078
+ label?: string | undefined;
1079
+ }, {
1080
+ selector: string;
1081
+ label?: string | undefined;
1082
+ }>;
1083
+ export declare const maskRegionSchema: z.ZodObject<{
1084
+ selector: z.ZodOptional<z.ZodString>;
1085
+ region: z.ZodOptional<z.ZodObject<{
1086
+ x: z.ZodNumber;
1087
+ y: z.ZodNumber;
1088
+ width: z.ZodNumber;
1089
+ height: z.ZodNumber;
1090
+ }, "strip", z.ZodTypeAny, {
1091
+ x: number;
1092
+ y: number;
1093
+ width: number;
1094
+ height: number;
1095
+ }, {
1096
+ x: number;
1097
+ y: number;
1098
+ width: number;
1099
+ height: number;
1100
+ }>>;
1101
+ reason: z.ZodOptional<z.ZodString>;
1102
+ }, "strip", z.ZodTypeAny, {
1103
+ selector?: string | undefined;
1104
+ region?: {
1105
+ x: number;
1106
+ y: number;
1107
+ width: number;
1108
+ height: number;
1109
+ } | undefined;
1110
+ reason?: string | undefined;
1111
+ }, {
1112
+ selector?: string | undefined;
1113
+ region?: {
1114
+ x: number;
1115
+ y: number;
1116
+ width: number;
1117
+ height: number;
1118
+ } | undefined;
1119
+ reason?: string | undefined;
1120
+ }>;
1121
+ export type VerifyCheck = z.infer<typeof verifyCheckSchema>;
1122
+ export type HighlightRegion = z.infer<typeof highlightRegionSchema>;
1123
+ export type MaskRegion = z.infer<typeof maskRegionSchema>;
1124
+ export declare const specStepSchema: z.ZodObject<{
1125
+ id: z.ZodString;
1126
+ action: z.ZodEnum<["click", "navigate", "back", "forward", "refresh", "reload", "fill", "type", "select", "check", "press", "upload", "wait", "expect", "screenshot", "scroll", "scroll_into_view", "verify_state", "identify_element", "ai_verify", "custom"]>;
1127
+ name: z.ZodOptional<z.ZodString>;
1128
+ description: z.ZodOptional<z.ZodString>;
1129
+ why: z.ZodOptional<z.ZodString>;
1130
+ target: z.ZodOptional<z.ZodType<Target, z.ZodTypeDef, Target>>;
1131
+ url: z.ZodOptional<z.ZodString>;
1132
+ value: z.ZodOptional<z.ZodString>;
1133
+ text: z.ZodOptional<z.ZodString>;
1134
+ option: z.ZodOptional<z.ZodString>;
1135
+ checked: z.ZodOptional<z.ZodBoolean>;
1136
+ duration: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
1137
+ state: z.ZodOptional<z.ZodEnum<["visible", "hidden", "enabled", "disabled", "checked", "unchecked", "focused", "editable", "attached", "detached"]>>;
1138
+ timeout: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
1139
+ pressEnter: z.ZodOptional<z.ZodBoolean>;
1140
+ checks: z.ZodOptional<z.ZodArray<z.ZodObject<{
1141
+ element_visible: z.ZodOptional<z.ZodString>;
1142
+ element_not_visible: z.ZodOptional<z.ZodString>;
1143
+ text_contains: z.ZodOptional<z.ZodString>;
1144
+ text_not_contains: z.ZodOptional<z.ZodString>;
1145
+ url_contains: z.ZodOptional<z.ZodString>;
1146
+ element_count: z.ZodOptional<z.ZodObject<{
1147
+ selector: z.ZodString;
1148
+ expected: z.ZodNumber;
1149
+ }, "strip", z.ZodTypeAny, {
1150
+ expected: number;
1151
+ selector: string;
1152
+ }, {
1153
+ expected: number;
1154
+ selector: string;
1155
+ }>>;
1156
+ attribute: z.ZodOptional<z.ZodObject<{
1157
+ selector: z.ZodString;
1158
+ attribute: z.ZodString;
1159
+ equals: z.ZodString;
1160
+ }, "strip", z.ZodTypeAny, {
1161
+ selector: string;
1162
+ attribute: string;
1163
+ equals: string;
1164
+ }, {
1165
+ selector: string;
1166
+ attribute: string;
1167
+ equals: string;
1168
+ }>>;
1169
+ }, "strip", z.ZodTypeAny, {
1170
+ element_visible?: string | undefined;
1171
+ element_not_visible?: string | undefined;
1172
+ text_contains?: string | undefined;
1173
+ text_not_contains?: string | undefined;
1174
+ url_contains?: string | undefined;
1175
+ element_count?: {
1176
+ expected: number;
1177
+ selector: string;
1178
+ } | undefined;
1179
+ attribute?: {
1180
+ selector: string;
1181
+ attribute: string;
1182
+ equals: string;
1183
+ } | undefined;
1184
+ }, {
1185
+ element_visible?: string | undefined;
1186
+ element_not_visible?: string | undefined;
1187
+ text_contains?: string | undefined;
1188
+ text_not_contains?: string | undefined;
1189
+ url_contains?: string | undefined;
1190
+ element_count?: {
1191
+ expected: number;
1192
+ selector: string;
1193
+ } | undefined;
1194
+ attribute?: {
1195
+ selector: string;
1196
+ attribute: string;
1197
+ equals: string;
1198
+ } | undefined;
1199
+ }>, "many">>;
1200
+ highlight: z.ZodOptional<z.ZodArray<z.ZodObject<{
1201
+ selector: z.ZodString;
1202
+ label: z.ZodOptional<z.ZodString>;
1203
+ }, "strip", z.ZodTypeAny, {
1204
+ selector: string;
1205
+ label?: string | undefined;
1206
+ }, {
1207
+ selector: string;
1208
+ label?: string | undefined;
1209
+ }>, "many">>;
1210
+ mask: z.ZodOptional<z.ZodArray<z.ZodObject<{
1211
+ selector: z.ZodOptional<z.ZodString>;
1212
+ region: z.ZodOptional<z.ZodObject<{
1213
+ x: z.ZodNumber;
1214
+ y: z.ZodNumber;
1215
+ width: z.ZodNumber;
1216
+ height: z.ZodNumber;
1217
+ }, "strip", z.ZodTypeAny, {
1218
+ x: number;
1219
+ y: number;
1220
+ width: number;
1221
+ height: number;
1222
+ }, {
1223
+ x: number;
1224
+ y: number;
1225
+ width: number;
1226
+ height: number;
1227
+ }>>;
1228
+ reason: z.ZodOptional<z.ZodString>;
1229
+ }, "strip", z.ZodTypeAny, {
1230
+ selector?: string | undefined;
1231
+ region?: {
1232
+ x: number;
1233
+ y: number;
1234
+ width: number;
1235
+ height: number;
1236
+ } | undefined;
1237
+ reason?: string | undefined;
1238
+ }, {
1239
+ selector?: string | undefined;
1240
+ region?: {
1241
+ x: number;
1242
+ y: number;
1243
+ width: number;
1244
+ height: number;
1245
+ } | undefined;
1246
+ reason?: string | undefined;
1247
+ }>, "many">>;
1248
+ question: z.ZodOptional<z.ZodString>;
1249
+ expected: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>;
1250
+ save_as: z.ZodOptional<z.ZodString>;
1251
+ ref: z.ZodOptional<z.ZodString>;
1252
+ selector: z.ZodOptional<z.ZodString>;
1253
+ for: z.ZodOptional<z.ZodEnum<["element", "text", "url", "time"]>>;
1254
+ contains: z.ZodOptional<z.ZodString>;
1255
+ }, "strict", z.ZodTypeAny, {
1256
+ id: string;
1257
+ action: "fill" | "type" | "custom" | "click" | "navigate" | "back" | "forward" | "refresh" | "reload" | "select" | "check" | "press" | "upload" | "wait" | "expect" | "screenshot" | "scroll" | "scroll_into_view" | "verify_state" | "identify_element" | "ai_verify";
1258
+ value?: string | undefined;
1259
+ expected?: string | number | boolean | undefined;
1260
+ name?: string | undefined;
1261
+ text?: string | undefined;
1262
+ checked?: boolean | undefined;
1263
+ description?: string | undefined;
1264
+ why?: string | undefined;
1265
+ target?: Target | undefined;
1266
+ url?: string | undefined;
1267
+ option?: string | undefined;
1268
+ duration?: string | undefined;
1269
+ state?: "visible" | "hidden" | "enabled" | "disabled" | "checked" | "unchecked" | "focused" | "editable" | "attached" | "detached" | undefined;
1270
+ timeout?: string | undefined;
1271
+ pressEnter?: boolean | undefined;
1272
+ selector?: string | undefined;
1273
+ checks?: {
1274
+ element_visible?: string | undefined;
1275
+ element_not_visible?: string | undefined;
1276
+ text_contains?: string | undefined;
1277
+ text_not_contains?: string | undefined;
1278
+ url_contains?: string | undefined;
1279
+ element_count?: {
1280
+ expected: number;
1281
+ selector: string;
1282
+ } | undefined;
1283
+ attribute?: {
1284
+ selector: string;
1285
+ attribute: string;
1286
+ equals: string;
1287
+ } | undefined;
1288
+ }[] | undefined;
1289
+ highlight?: {
1290
+ selector: string;
1291
+ label?: string | undefined;
1292
+ }[] | undefined;
1293
+ mask?: {
1294
+ selector?: string | undefined;
1295
+ region?: {
1296
+ x: number;
1297
+ y: number;
1298
+ width: number;
1299
+ height: number;
1300
+ } | undefined;
1301
+ reason?: string | undefined;
1302
+ }[] | undefined;
1303
+ question?: string | undefined;
1304
+ save_as?: string | undefined;
1305
+ ref?: string | undefined;
1306
+ for?: "text" | "url" | "element" | "time" | undefined;
1307
+ contains?: string | undefined;
1308
+ }, {
1309
+ id: string;
1310
+ action: "fill" | "type" | "custom" | "click" | "navigate" | "back" | "forward" | "refresh" | "reload" | "select" | "check" | "press" | "upload" | "wait" | "expect" | "screenshot" | "scroll" | "scroll_into_view" | "verify_state" | "identify_element" | "ai_verify";
1311
+ value?: string | undefined;
1312
+ expected?: string | number | boolean | undefined;
1313
+ name?: string | undefined;
1314
+ text?: string | undefined;
1315
+ checked?: boolean | undefined;
1316
+ description?: string | undefined;
1317
+ why?: string | undefined;
1318
+ target?: Target | undefined;
1319
+ url?: string | undefined;
1320
+ option?: string | undefined;
1321
+ duration?: string | undefined;
1322
+ state?: "visible" | "hidden" | "enabled" | "disabled" | "checked" | "unchecked" | "focused" | "editable" | "attached" | "detached" | undefined;
1323
+ timeout?: string | undefined;
1324
+ pressEnter?: boolean | undefined;
1325
+ selector?: string | undefined;
1326
+ checks?: {
1327
+ element_visible?: string | undefined;
1328
+ element_not_visible?: string | undefined;
1329
+ text_contains?: string | undefined;
1330
+ text_not_contains?: string | undefined;
1331
+ url_contains?: string | undefined;
1332
+ element_count?: {
1333
+ expected: number;
1334
+ selector: string;
1335
+ } | undefined;
1336
+ attribute?: {
1337
+ selector: string;
1338
+ attribute: string;
1339
+ equals: string;
1340
+ } | undefined;
1341
+ }[] | undefined;
1342
+ highlight?: {
1343
+ selector: string;
1344
+ label?: string | undefined;
1345
+ }[] | undefined;
1346
+ mask?: {
1347
+ selector?: string | undefined;
1348
+ region?: {
1349
+ x: number;
1350
+ y: number;
1351
+ width: number;
1352
+ height: number;
1353
+ } | undefined;
1354
+ reason?: string | undefined;
1355
+ }[] | undefined;
1356
+ question?: string | undefined;
1357
+ save_as?: string | undefined;
1358
+ ref?: string | undefined;
1359
+ for?: "text" | "url" | "element" | "time" | undefined;
1360
+ contains?: string | undefined;
1361
+ }>;
1362
+ export interface LegacySpecStep {
1363
+ id?: string;
1364
+ action: ActionType;
1365
+ name?: string;
1366
+ description?: string;
1367
+ why?: string;
1368
+ query?: string;
1369
+ to?: string;
1370
+ value?: string;
1371
+ for?: 'element' | 'text' | 'url' | 'time';
1372
+ text?: string;
1373
+ duration?: string | number;
1374
+ contains?: string;
1375
+ option?: string;
1376
+ checked?: boolean;
1377
+ mask?: Array<{
1378
+ selector?: string;
1379
+ region?: {
1380
+ x: number;
1381
+ y: number;
1382
+ width: number;
1383
+ height: number;
1384
+ };
1385
+ reason?: string;
1386
+ }>;
1387
+ checks?: Array<{
1388
+ element_visible?: string;
1389
+ element_not_visible?: string;
1390
+ text_contains?: string;
1391
+ text_not_contains?: string;
1392
+ url_contains?: string;
1393
+ element_count?: {
1394
+ selector: string;
1395
+ expected: number;
1396
+ };
1397
+ attribute?: {
1398
+ selector: string;
1399
+ attribute: string;
1400
+ equals: string;
1401
+ };
1402
+ }>;
1403
+ question?: string;
1404
+ expected?: boolean | string | number;
1405
+ save_as?: string;
1406
+ ref?: string;
1407
+ selector?: string;
1408
+ timeout?: string;
1409
+ pressEnter?: boolean;
1410
+ }
1411
+ //# sourceMappingURL=spec-schema.d.ts.map