@showrun/core 0.1.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 (74) hide show
  1. package/LICENSE +21 -0
  2. package/dist/__tests__/dsl-validation.test.d.ts +2 -0
  3. package/dist/__tests__/dsl-validation.test.d.ts.map +1 -0
  4. package/dist/__tests__/dsl-validation.test.js +203 -0
  5. package/dist/__tests__/pack-versioning.test.d.ts +2 -0
  6. package/dist/__tests__/pack-versioning.test.d.ts.map +1 -0
  7. package/dist/__tests__/pack-versioning.test.js +165 -0
  8. package/dist/__tests__/validator.test.d.ts +2 -0
  9. package/dist/__tests__/validator.test.d.ts.map +1 -0
  10. package/dist/__tests__/validator.test.js +149 -0
  11. package/dist/authResilience.d.ts +146 -0
  12. package/dist/authResilience.d.ts.map +1 -0
  13. package/dist/authResilience.js +378 -0
  14. package/dist/browserLauncher.d.ts +74 -0
  15. package/dist/browserLauncher.d.ts.map +1 -0
  16. package/dist/browserLauncher.js +159 -0
  17. package/dist/browserPersistence.d.ts +49 -0
  18. package/dist/browserPersistence.d.ts.map +1 -0
  19. package/dist/browserPersistence.js +143 -0
  20. package/dist/context.d.ts +10 -0
  21. package/dist/context.d.ts.map +1 -0
  22. package/dist/context.js +30 -0
  23. package/dist/dsl/builders.d.ts +340 -0
  24. package/dist/dsl/builders.d.ts.map +1 -0
  25. package/dist/dsl/builders.js +416 -0
  26. package/dist/dsl/conditions.d.ts +33 -0
  27. package/dist/dsl/conditions.d.ts.map +1 -0
  28. package/dist/dsl/conditions.js +169 -0
  29. package/dist/dsl/interpreter.d.ts +24 -0
  30. package/dist/dsl/interpreter.d.ts.map +1 -0
  31. package/dist/dsl/interpreter.js +491 -0
  32. package/dist/dsl/stepHandlers.d.ts +32 -0
  33. package/dist/dsl/stepHandlers.d.ts.map +1 -0
  34. package/dist/dsl/stepHandlers.js +787 -0
  35. package/dist/dsl/target.d.ts +28 -0
  36. package/dist/dsl/target.d.ts.map +1 -0
  37. package/dist/dsl/target.js +110 -0
  38. package/dist/dsl/templating.d.ts +21 -0
  39. package/dist/dsl/templating.d.ts.map +1 -0
  40. package/dist/dsl/templating.js +73 -0
  41. package/dist/dsl/types.d.ts +695 -0
  42. package/dist/dsl/types.d.ts.map +1 -0
  43. package/dist/dsl/types.js +7 -0
  44. package/dist/dsl/validation.d.ts +15 -0
  45. package/dist/dsl/validation.d.ts.map +1 -0
  46. package/dist/dsl/validation.js +974 -0
  47. package/dist/index.d.ts +20 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +20 -0
  50. package/dist/jsonPackValidator.d.ts +11 -0
  51. package/dist/jsonPackValidator.d.ts.map +1 -0
  52. package/dist/jsonPackValidator.js +61 -0
  53. package/dist/loader.d.ts +35 -0
  54. package/dist/loader.d.ts.map +1 -0
  55. package/dist/loader.js +107 -0
  56. package/dist/networkCapture.d.ts +107 -0
  57. package/dist/networkCapture.d.ts.map +1 -0
  58. package/dist/networkCapture.js +390 -0
  59. package/dist/packUtils.d.ts +36 -0
  60. package/dist/packUtils.d.ts.map +1 -0
  61. package/dist/packUtils.js +97 -0
  62. package/dist/packVersioning.d.ts +25 -0
  63. package/dist/packVersioning.d.ts.map +1 -0
  64. package/dist/packVersioning.js +137 -0
  65. package/dist/runner.d.ts +62 -0
  66. package/dist/runner.d.ts.map +1 -0
  67. package/dist/runner.js +170 -0
  68. package/dist/types.d.ts +336 -0
  69. package/dist/types.d.ts.map +1 -0
  70. package/dist/types.js +1 -0
  71. package/dist/validator.d.ts +20 -0
  72. package/dist/validator.d.ts.map +1 -0
  73. package/dist/validator.js +68 -0
  74. package/package.json +49 -0
@@ -0,0 +1,695 @@
1
+ /**
2
+ * DSL Step Types
3
+ *
4
+ * Defines the structure for declarative browser automation steps.
5
+ * All steps are plain objects (JSON-serializable) with no functions.
6
+ */
7
+ /**
8
+ * Per-step error handling options
9
+ */
10
+ export type StepErrorBehavior = 'stop' | 'continue';
11
+ /**
12
+ * Playwright role types (subset of most common ones)
13
+ */
14
+ export type PlaywrightRole = 'button' | 'checkbox' | 'combobox' | 'dialog' | 'gridcell' | 'link' | 'listbox' | 'menuitem' | 'option' | 'radio' | 'searchbox' | 'slider' | 'switch' | 'tab' | 'tabpanel' | 'textbox' | 'treeitem' | 'article' | 'banner' | 'complementary' | 'contentinfo' | 'form' | 'main' | 'navigation' | 'region' | 'search' | 'alert' | 'log' | 'marquee' | 'status' | 'timer';
15
+ /**
16
+ * Target strategies for element selection
17
+ * Human-stable selectors suitable for Teach Mode
18
+ */
19
+ export type Target = {
20
+ kind: 'css';
21
+ selector: string;
22
+ } | {
23
+ kind: 'text';
24
+ text: string;
25
+ exact?: boolean;
26
+ } | {
27
+ kind: 'role';
28
+ role: PlaywrightRole;
29
+ name?: string;
30
+ exact?: boolean;
31
+ } | {
32
+ kind: 'label';
33
+ text: string;
34
+ exact?: boolean;
35
+ } | {
36
+ kind: 'placeholder';
37
+ text: string;
38
+ exact?: boolean;
39
+ } | {
40
+ kind: 'altText';
41
+ text: string;
42
+ exact?: boolean;
43
+ } | {
44
+ kind: 'testId';
45
+ id: string;
46
+ };
47
+ /**
48
+ * Target with optional metadata for Teach Mode
49
+ */
50
+ export interface TargetWithMetadata {
51
+ /**
52
+ * Primary target or fallback targets
53
+ */
54
+ target: Target | {
55
+ anyOf: Target[];
56
+ };
57
+ /**
58
+ * Human-readable hint (for Teach Mode, ignored at runtime except logging)
59
+ */
60
+ hint?: string;
61
+ /**
62
+ * Scope: limit search within a container
63
+ */
64
+ scope?: Target;
65
+ /**
66
+ * Optional adjacency hint (for Teach Mode, may be logged only in MVP)
67
+ */
68
+ near?: {
69
+ kind: 'text';
70
+ text: string;
71
+ exact?: boolean;
72
+ };
73
+ }
74
+ /**
75
+ * Target or anyOf fallback structure
76
+ */
77
+ export type TargetOrAnyOf = Target | {
78
+ anyOf: Target[];
79
+ };
80
+ /**
81
+ * Skip condition for conditional step execution
82
+ */
83
+ export type SkipCondition = {
84
+ url_includes: string;
85
+ } | {
86
+ url_matches: string;
87
+ } | {
88
+ element_visible: TargetOrAnyOf;
89
+ } | {
90
+ element_exists: TargetOrAnyOf;
91
+ } | {
92
+ var_equals: {
93
+ name: string;
94
+ value: unknown;
95
+ };
96
+ } | {
97
+ var_truthy: string;
98
+ } | {
99
+ var_falsy: string;
100
+ } | {
101
+ all: SkipCondition[];
102
+ } | {
103
+ any: SkipCondition[];
104
+ };
105
+ /**
106
+ * Base step interface with common fields
107
+ */
108
+ export interface BaseDslStep {
109
+ id: string;
110
+ type: string;
111
+ /**
112
+ * Human-readable label for logs/UI
113
+ */
114
+ label?: string;
115
+ /**
116
+ * Per-step timeout override (milliseconds)
117
+ */
118
+ timeoutMs?: number;
119
+ /**
120
+ * If true, step failure won't fail the run
121
+ */
122
+ optional?: boolean;
123
+ /**
124
+ * Error handling behavior for this step
125
+ */
126
+ onError?: StepErrorBehavior;
127
+ /**
128
+ * Run-once flag: if set, step is skipped if already executed for this session/profile
129
+ * - "session": cached per sessionId (cleared on auth recovery)
130
+ * - "profile": cached per profileId (cleared on auth recovery)
131
+ */
132
+ once?: 'session' | 'profile';
133
+ /**
134
+ * Skip condition: if true, the step is skipped
135
+ * Evaluated before step execution. If the condition evaluates to true,
136
+ * the step is skipped with reason 'condition_met'.
137
+ */
138
+ skip_if?: SkipCondition;
139
+ }
140
+ /**
141
+ * Navigate step - navigates to a URL
142
+ */
143
+ export interface NavigateStep extends BaseDslStep {
144
+ type: 'navigate';
145
+ params: {
146
+ url: string;
147
+ waitUntil?: 'load' | 'domcontentloaded' | 'networkidle' | 'commit';
148
+ };
149
+ }
150
+ /**
151
+ * Extract title step - extracts page title
152
+ */
153
+ export interface ExtractTitleStep extends BaseDslStep {
154
+ type: 'extract_title';
155
+ params: {
156
+ out: string;
157
+ };
158
+ }
159
+ /**
160
+ * Extract text step - extracts text from a target
161
+ */
162
+ export interface ExtractTextStep extends BaseDslStep {
163
+ type: 'extract_text';
164
+ params: {
165
+ /**
166
+ * Target for element selection (supports selector for backward compatibility)
167
+ * @deprecated Use target instead of selector
168
+ */
169
+ selector?: string;
170
+ /**
171
+ * Target for element selection (human-stable selectors)
172
+ */
173
+ target?: TargetOrAnyOf;
174
+ out: string;
175
+ first?: boolean;
176
+ trim?: boolean;
177
+ default?: string;
178
+ /**
179
+ * Optional metadata for Teach Mode
180
+ */
181
+ hint?: string;
182
+ scope?: Target;
183
+ near?: {
184
+ kind: 'text';
185
+ text: string;
186
+ exact?: boolean;
187
+ };
188
+ };
189
+ }
190
+ /**
191
+ * Sleep step - waits for a specified duration
192
+ * @deprecated Prefer wait_for for deterministic waiting
193
+ */
194
+ export interface SleepStep extends BaseDslStep {
195
+ type: 'sleep';
196
+ params: {
197
+ durationMs: number;
198
+ };
199
+ }
200
+ /**
201
+ * Wait for step - deterministic waiting for conditions
202
+ */
203
+ export interface WaitForStep extends BaseDslStep {
204
+ type: 'wait_for';
205
+ params: {
206
+ /**
207
+ * Wait for target to be visible (or present if visible: false)
208
+ * @deprecated Use target instead of selector
209
+ */
210
+ selector?: string;
211
+ /**
212
+ * Target for element selection (human-stable selectors)
213
+ */
214
+ target?: TargetOrAnyOf;
215
+ /**
216
+ * If target provided, wait for visibility (default: true)
217
+ */
218
+ visible?: boolean;
219
+ /**
220
+ * OR wait for URL to match pattern
221
+ */
222
+ url?: string | {
223
+ pattern: string;
224
+ exact?: boolean;
225
+ };
226
+ /**
227
+ * OR wait for page load state
228
+ */
229
+ loadState?: 'load' | 'domcontentloaded' | 'networkidle';
230
+ /**
231
+ * Timeout in milliseconds (default: 30000)
232
+ */
233
+ timeoutMs?: number;
234
+ /**
235
+ * Optional metadata for Teach Mode
236
+ */
237
+ hint?: string;
238
+ scope?: Target;
239
+ near?: {
240
+ kind: 'text';
241
+ text: string;
242
+ exact?: boolean;
243
+ };
244
+ };
245
+ }
246
+ /**
247
+ * Click step - clicks an element
248
+ */
249
+ export interface ClickStep extends BaseDslStep {
250
+ type: 'click';
251
+ params: {
252
+ /**
253
+ * Target for element selection (supports selector for backward compatibility)
254
+ * @deprecated Use target instead of selector
255
+ */
256
+ selector?: string;
257
+ /**
258
+ * Target for element selection (human-stable selectors)
259
+ */
260
+ target?: TargetOrAnyOf;
261
+ /**
262
+ * If true, only click first match (default: true)
263
+ */
264
+ first?: boolean;
265
+ /**
266
+ * Wait for element to be visible before clicking (default: true)
267
+ */
268
+ waitForVisible?: boolean;
269
+ /**
270
+ * Optional metadata for Teach Mode
271
+ */
272
+ hint?: string;
273
+ scope?: Target;
274
+ near?: {
275
+ kind: 'text';
276
+ text: string;
277
+ exact?: boolean;
278
+ };
279
+ };
280
+ }
281
+ /**
282
+ * Fill step - fills an input field
283
+ */
284
+ export interface FillStep extends BaseDslStep {
285
+ type: 'fill';
286
+ params: {
287
+ /**
288
+ * Target for element selection (supports selector for backward compatibility)
289
+ * @deprecated Use target instead of selector
290
+ */
291
+ selector?: string;
292
+ /**
293
+ * Target for element selection (human-stable selectors)
294
+ */
295
+ target?: TargetOrAnyOf;
296
+ value: string;
297
+ /**
298
+ * If true, only fill first match (default: true)
299
+ */
300
+ first?: boolean;
301
+ /**
302
+ * Clear field before filling (default: true)
303
+ */
304
+ clear?: boolean;
305
+ /**
306
+ * Optional metadata for Teach Mode
307
+ */
308
+ hint?: string;
309
+ scope?: Target;
310
+ near?: {
311
+ kind: 'text';
312
+ text: string;
313
+ exact?: boolean;
314
+ };
315
+ };
316
+ }
317
+ /**
318
+ * Extract attribute step - extracts an attribute value from an element
319
+ */
320
+ export interface ExtractAttributeStep extends BaseDslStep {
321
+ type: 'extract_attribute';
322
+ params: {
323
+ /**
324
+ * Target for element selection (supports selector for backward compatibility)
325
+ * @deprecated Use target instead of selector
326
+ */
327
+ selector?: string;
328
+ /**
329
+ * Target for element selection (human-stable selectors)
330
+ */
331
+ target?: TargetOrAnyOf;
332
+ attribute: string;
333
+ out: string;
334
+ first?: boolean;
335
+ default?: string;
336
+ /**
337
+ * Optional metadata for Teach Mode
338
+ */
339
+ hint?: string;
340
+ scope?: Target;
341
+ near?: {
342
+ kind: 'text';
343
+ text: string;
344
+ exact?: boolean;
345
+ };
346
+ };
347
+ }
348
+ /**
349
+ * Assert step - assertions for validation
350
+ */
351
+ export interface AssertStep extends BaseDslStep {
352
+ type: 'assert';
353
+ params: {
354
+ /**
355
+ * Assert element exists (supports selector for backward compatibility)
356
+ * @deprecated Use target instead of selector
357
+ */
358
+ selector?: string;
359
+ /**
360
+ * Target for element selection (human-stable selectors)
361
+ */
362
+ target?: TargetOrAnyOf;
363
+ /**
364
+ * Assert element is visible (requires target/selector)
365
+ */
366
+ visible?: boolean;
367
+ /**
368
+ * Assert element text includes value (requires target/selector)
369
+ */
370
+ textIncludes?: string;
371
+ /**
372
+ * Assert URL includes value
373
+ */
374
+ urlIncludes?: string;
375
+ /**
376
+ * Custom error message if assertion fails
377
+ */
378
+ message?: string;
379
+ /**
380
+ * Optional metadata for Teach Mode
381
+ */
382
+ hint?: string;
383
+ scope?: Target;
384
+ near?: {
385
+ kind: 'text';
386
+ text: string;
387
+ exact?: boolean;
388
+ };
389
+ };
390
+ }
391
+ /**
392
+ * Set variable step - sets a variable for use in templating
393
+ */
394
+ export interface SetVarStep extends BaseDslStep {
395
+ type: 'set_var';
396
+ params: {
397
+ name: string;
398
+ value: string | number | boolean;
399
+ };
400
+ }
401
+ /**
402
+ * Network find step - search captured traffic and save request id to vars
403
+ */
404
+ export interface NetworkFindStep extends BaseDslStep {
405
+ type: 'network_find';
406
+ params: {
407
+ where: {
408
+ urlIncludes?: string;
409
+ urlRegex?: string;
410
+ method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
411
+ status?: number;
412
+ contentTypeIncludes?: string;
413
+ /** Response body (text) must contain this string. Only entries with captured response body are considered. */
414
+ responseContains?: string;
415
+ };
416
+ pick?: 'last' | 'first';
417
+ saveAs: string;
418
+ /** If set, wait up to this many ms for a matching request to appear (polls the buffer). Use when the request may happen after the step runs (e.g. after navigation or interaction). */
419
+ waitForMs?: number;
420
+ /** When waitForMs is set, poll the buffer every this many ms. Default 400. */
421
+ pollIntervalMs?: number;
422
+ };
423
+ }
424
+ /**
425
+ * Network replay step - replay a captured request (optionally with overrides), store result
426
+ */
427
+ export interface NetworkReplayStep extends BaseDslStep {
428
+ type: 'network_replay';
429
+ params: {
430
+ requestId: string;
431
+ overrides?: {
432
+ url?: string;
433
+ setQuery?: Record<string, string | number>;
434
+ setHeaders?: Record<string, string>;
435
+ body?: string;
436
+ /** Regex find/replace on captured URL; replace can use $1, $2. Supports {{vars.xxx}}/{{inputs.xxx}} (resolved before replace). */
437
+ urlReplace?: {
438
+ find: string;
439
+ replace: string;
440
+ };
441
+ /** Regex find/replace on captured body; replace can use $1, $2. Supports {{vars.xxx}}/{{inputs.xxx}} (resolved before replace). */
442
+ bodyReplace?: {
443
+ find: string;
444
+ replace: string;
445
+ };
446
+ };
447
+ auth: 'browser_context';
448
+ out: string;
449
+ saveAs?: string;
450
+ response: {
451
+ as: 'json' | 'text';
452
+ /**
453
+ * JMESPath expression for extracting data from JSON response.
454
+ * Examples: "results[*].name", "data.items[0]", "results[*].{id: id, name: name}"
455
+ * For backward compatibility, JSONPath-style "$." prefix is auto-stripped.
456
+ */
457
+ path?: string;
458
+ /** @deprecated Use `path` instead. Kept for backward compatibility. */
459
+ jsonPath?: string;
460
+ };
461
+ };
462
+ }
463
+ /**
464
+ * Network extract step - extract from a previously replayed response stored in vars
465
+ */
466
+ export interface NetworkExtractStep extends BaseDslStep {
467
+ type: 'network_extract';
468
+ params: {
469
+ fromVar: string;
470
+ as: 'json' | 'text';
471
+ /**
472
+ * JMESPath expression for extracting data from JSON.
473
+ * Examples: "results[*].name", "data.items[0]", "results[*].{id: id, name: name}"
474
+ * For backward compatibility, JSONPath-style "$." prefix is auto-stripped.
475
+ */
476
+ path?: string;
477
+ /** @deprecated Use `path` instead. Kept for backward compatibility. */
478
+ jsonPath?: string;
479
+ out: string;
480
+ };
481
+ }
482
+ /**
483
+ * Select option step - selects an option from a dropdown/select element
484
+ */
485
+ export interface SelectOptionStep extends BaseDslStep {
486
+ type: 'select_option';
487
+ params: {
488
+ /**
489
+ * Target for element selection (supports selector for backward compatibility)
490
+ * @deprecated Use target instead of selector
491
+ */
492
+ selector?: string;
493
+ /**
494
+ * Target for element selection (human-stable selectors)
495
+ */
496
+ target?: TargetOrAnyOf;
497
+ /**
498
+ * Value(s) to select. Can be:
499
+ * - string: select by value attribute
500
+ * - { label: string }: select by visible text
501
+ * - { index: number }: select by index (0-based)
502
+ * - Array of any of the above for multi-select
503
+ */
504
+ value: string | {
505
+ label: string;
506
+ } | {
507
+ index: number;
508
+ } | Array<string | {
509
+ label: string;
510
+ } | {
511
+ index: number;
512
+ }>;
513
+ /**
514
+ * If true, only target first match (default: true)
515
+ */
516
+ first?: boolean;
517
+ /**
518
+ * Optional metadata for Teach Mode
519
+ */
520
+ hint?: string;
521
+ scope?: Target;
522
+ near?: {
523
+ kind: 'text';
524
+ text: string;
525
+ exact?: boolean;
526
+ };
527
+ };
528
+ }
529
+ /**
530
+ * Press key step - presses a keyboard key
531
+ */
532
+ export interface PressKeyStep extends BaseDslStep {
533
+ type: 'press_key';
534
+ params: {
535
+ /**
536
+ * Key to press. Examples: 'Enter', 'Tab', 'Escape', 'ArrowDown', 'Control+a', 'Meta+c'
537
+ * See Playwright keyboard documentation for full list.
538
+ */
539
+ key: string;
540
+ /**
541
+ * Target element to focus before pressing key (optional)
542
+ * @deprecated Use target instead of selector
543
+ */
544
+ selector?: string;
545
+ /**
546
+ * Target element to focus before pressing key (optional)
547
+ */
548
+ target?: TargetOrAnyOf;
549
+ /**
550
+ * Number of times to press the key (default: 1)
551
+ */
552
+ times?: number;
553
+ /**
554
+ * Delay between key presses in milliseconds (default: 0)
555
+ */
556
+ delayMs?: number;
557
+ /**
558
+ * Optional metadata for Teach Mode
559
+ */
560
+ hint?: string;
561
+ scope?: Target;
562
+ near?: {
563
+ kind: 'text';
564
+ text: string;
565
+ exact?: boolean;
566
+ };
567
+ };
568
+ }
569
+ /**
570
+ * Upload file step - uploads file(s) to a file input element
571
+ */
572
+ export interface UploadFileStep extends BaseDslStep {
573
+ type: 'upload_file';
574
+ params: {
575
+ /**
576
+ * Target for element selection (supports selector for backward compatibility)
577
+ * @deprecated Use target instead of selector
578
+ */
579
+ selector?: string;
580
+ /**
581
+ * Target for element selection (human-stable selectors)
582
+ */
583
+ target?: TargetOrAnyOf;
584
+ /**
585
+ * File path(s) to upload. Can be a single path or array of paths.
586
+ * Paths can be absolute or relative to the task pack directory.
587
+ */
588
+ files: string | string[];
589
+ /**
590
+ * If true, only target first match (default: true)
591
+ */
592
+ first?: boolean;
593
+ /**
594
+ * Optional metadata for Teach Mode
595
+ */
596
+ hint?: string;
597
+ scope?: Target;
598
+ near?: {
599
+ kind: 'text';
600
+ text: string;
601
+ exact?: boolean;
602
+ };
603
+ };
604
+ }
605
+ /**
606
+ * Frame step - switches context to an iframe for subsequent steps
607
+ */
608
+ export interface FrameStep extends BaseDslStep {
609
+ type: 'frame';
610
+ params: {
611
+ /**
612
+ * Frame selector (CSS selector, name, or URL pattern)
613
+ */
614
+ frame: string | {
615
+ name: string;
616
+ } | {
617
+ url: string | RegExp;
618
+ };
619
+ /**
620
+ * Action: 'enter' to switch into frame, 'exit' to return to main frame
621
+ */
622
+ action: 'enter' | 'exit';
623
+ };
624
+ }
625
+ /**
626
+ * New tab step - opens a new browser tab
627
+ */
628
+ export interface NewTabStep extends BaseDslStep {
629
+ type: 'new_tab';
630
+ params: {
631
+ /**
632
+ * URL to navigate to in the new tab (optional)
633
+ */
634
+ url?: string;
635
+ /**
636
+ * Variable name to store the new tab index (optional)
637
+ */
638
+ saveTabIndexAs?: string;
639
+ };
640
+ }
641
+ /**
642
+ * Switch tab step - switches to a different browser tab
643
+ */
644
+ export interface SwitchTabStep extends BaseDslStep {
645
+ type: 'switch_tab';
646
+ params: {
647
+ /**
648
+ * Tab index (0-based) or 'last' for the last tab, 'previous' for the previous tab
649
+ */
650
+ tab: number | 'last' | 'previous';
651
+ /**
652
+ * If true, close the current tab before switching (default: false)
653
+ */
654
+ closeCurrentTab?: boolean;
655
+ };
656
+ }
657
+ /**
658
+ * Union type of all supported DSL steps
659
+ */
660
+ export type DslStep = NavigateStep | ExtractTitleStep | ExtractTextStep | ExtractAttributeStep | SleepStep | WaitForStep | ClickStep | FillStep | AssertStep | SetVarStep | NetworkFindStep | NetworkReplayStep | NetworkExtractStep | SelectOptionStep | PressKeyStep | UploadFileStep | FrameStep | NewTabStep | SwitchTabStep;
661
+ /**
662
+ * Options for running a flow
663
+ */
664
+ export interface RunFlowOptions {
665
+ /**
666
+ * Whether to stop on first error (default: true)
667
+ */
668
+ stopOnError?: boolean;
669
+ }
670
+ /**
671
+ * Variable context for templating
672
+ */
673
+ export interface VariableContext {
674
+ inputs: Record<string, unknown>;
675
+ vars: Record<string, unknown>;
676
+ secrets?: Record<string, string>;
677
+ }
678
+ /**
679
+ * Result of running a flow
680
+ */
681
+ export interface RunFlowResult {
682
+ collectibles: Record<string, unknown>;
683
+ meta: {
684
+ url?: string;
685
+ durationMs: number;
686
+ stepsExecuted: number;
687
+ stepsTotal: number;
688
+ };
689
+ /**
690
+ * Diagnostic hints from JSONPath operations (e.g., unsupported syntax, empty results).
691
+ * These help AI agents understand why data extraction may have failed.
692
+ */
693
+ _hints?: string[];
694
+ }
695
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/dsl/types.ts"],"names":[],"mappings":"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"}