@eidra-umain/greenlight 0.7.5 → 0.7.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <img src="assets/greenlight_banner.png" alt="GreenLight AI-driven E2E Testing" width="500">
2
+ <img src="assets/greenlight_banner.png" alt="GreenLight: AI-driven E2E Testing" width="500">
3
3
  </p>
4
4
 
5
5
  # GreenLight
@@ -10,7 +10,10 @@ No selectors. No XPaths. No test IDs, drivers or glue code. Just describe what a
10
10
 
11
11
  ---
12
12
 
13
- **[How it works](#how-it-works)** | **[Quick start](#quick-start)** | **[Project configuration](#project-configuration)** | **[CLI](#cli)** | **[Test syntax](#test-syntax)** | **[Writing test steps](#writing-test-steps)** | **[Cached plans](#cached-plans)** | **[LLM setup](#llm-setup)** | **[Architecture](#architecture)** | **[Avoiding side effects](#avoiding-side-effects-in-your-app)** | **[CI/CD](#cicd)**
13
+ > [!WARNING]
14
+ > GreenLight is very new and not battle tested yet. YMMV.
15
+
16
+ **[How it works](#how-it-works)** | **[Quick start](#quick-start)** | **[Project configuration](#project-configuration)** | **[CLI](#cli)** | **[Test syntax](#test-syntax)** | **[Writing test steps](#writing-test-steps)** | **[Cached plans](#cached-plans)** | **[LLM setup](#llm-setup)** | **[Architecture](#architecture)** | **[Avoiding side effects](#avoiding-side-effects-in-your-app)** | **[CI/CD](#cicd)** | **[Contributing](#contributing)**
14
17
 
15
18
  ---
16
19
 
@@ -36,7 +39,7 @@ tests:
36
39
  GreenLight understands form wizards, custom dropdowns, autocomplete fields, checkbox consent flows, complex date pickers and interactive maps. It fills in forms with realistic test data, handles before/after value comparisons, and works with any UI framework.
37
40
 
38
41
  The first run uses the LLM Pilot to discover the right actions (the **pilot** run).
39
- After that, GreenLight caches a concrete action plan and replays it without LLM calls making subsequent runs fast and deterministic.
42
+ After that, GreenLight caches a concrete action plan and replays it without LLM calls, making subsequent runs fast and deterministic.
40
43
 
41
44
  ## Quick start
42
45
 
@@ -162,20 +165,20 @@ greenlight run --on-drift rerun # re-run with pilot on cached plan drift
162
165
 
163
166
  ## GreenLight philosophy compared to Gherkin/Cucumber
164
167
 
165
- Traditional BDD tools like Cucumber use **Gherkin** a structured `Given/When/Then` syntax where every step requires a developer-written **step definition** (glue code) that maps the English phrase to actual browser automation with CSS selectors or XPaths.
168
+ Traditional BDD tools like Cucumber use **Gherkin**, a structured `Given/When/Then` syntax where every step requires a developer-written **step definition** (glue code) that maps the English phrase to actual browser automation with CSS selectors or XPaths.
166
169
 
167
170
  GreenLight takes a different approach:
168
171
 
169
172
  | | GreenLight | Gherkin (Cucumber) |
170
173
  |---|---|---|
171
174
  | **Test language** | Freeform plain English | Structured `Given/When/Then` keywords |
172
- | **Element targeting** | AI resolves via accessibility tree no selectors | Developers write glue code with selectors/XPaths |
175
+ | **Element targeting** | AI resolves via accessibility tree, no selectors | Developers write glue code with selectors/XPaths |
173
176
  | **Maintenance** | Tests survive UI refactors that don't change behavior | Selector changes break tests, requiring glue code updates |
174
177
  | **Authoring** | Non-technical testers, no code required | Readable specs, but developers must write step definitions |
175
- | **Determinism** | Cached plans are deterministic; discovery runs have LLM variability | Fully deterministic same input, same execution path |
178
+ | **Determinism** | Cached plans are deterministic; discovery runs have LLM variability | Fully deterministic, same input, same execution path |
176
179
  | **Maturity** | New, LLM-dependent | Battle-tested (15+ years), broad ecosystem |
177
180
 
178
- **In short:** Gherkin requires developers to bridge English and browser automation via step definitions. GreenLight uses AI as that bridge eliminating the glue code layer at the cost of introducing LLM-dependent variability.
181
+ **In short:** Gherkin requires developers to bridge English and browser automation via step definitions. GreenLight uses AI as that bridge, eliminating the glue code layer at the cost of introducing LLM-dependent variability.
179
182
 
180
183
  ## Test syntax
181
184
 
@@ -214,9 +217,9 @@ This section covers how GreenLight interprets your plain-English steps, what hap
214
217
 
215
218
  When you write a step like `click the "Add to Cart" button`, GreenLight's **planner** (an LLM) converts it into a structured action before any browser interaction happens. Understanding this pipeline helps you write clearer steps:
216
219
 
217
- 1. **Planning** the LLM reads all your steps and classifies each one into an action type
218
- 2. **Execution** the pilot executes each action against the live browser page
219
- 3. **Caching** successful runs are saved so future runs skip the LLM entirely
220
+ 1. **Planning:** The LLM reads all your steps and classifies each one into an action type
221
+ 2. **Execution:** The pilot executes each action against the live browser page
222
+ 3. **Caching:** Successful runs are saved so future runs skip the LLM entirely
220
223
 
221
224
  ### Navigation
222
225
 
@@ -229,7 +232,7 @@ steps:
229
232
  - navigate to About from the main menu # click a link (uses the live page)
230
233
  ```
231
234
 
232
- **Tip:** Use quoted paths starting with `/` or `http` for direct navigation. For anything that requires finding and clicking a link, describe it naturally GreenLight will resolve it against the live page.
235
+ **Tip:** Use quoted paths starting with `/` or `http` for direct navigation. For anything that requires finding and clicking a link, describe it naturally. GreenLight will resolve it against the live page.
233
236
 
234
237
  ### Clicking and interacting
235
238
 
@@ -279,7 +282,7 @@ steps:
279
282
  - clear the category selection # dropdown: finds the reset/clear button
280
283
  ```
281
284
 
282
- GreenLight automatically detects the element type and applies the right clearing strategy. For text inputs, it selects all and deletes. For filter chips, dropdowns, and multi-select tag inputs, it finds and clicks the nearest clear/remove/reset button looking inside the element and at sibling elements for buttons matching common clear patterns (including localized labels like "Rensa").
285
+ GreenLight automatically detects the element type and applies the right clearing strategy. For text inputs, it selects all and deletes. For filter chips, dropdowns, and multi-select tag inputs, it finds and clicks the nearest clear/remove/reset button, looking inside the element and at sibling elements for buttons matching common clear patterns (including localized labels like "Rensa").
283
286
 
284
287
  ### Typing and form fields
285
288
 
@@ -298,7 +301,7 @@ steps:
298
301
  - select "Canada" from "Country" # works with native <select> and custom dropdowns
299
302
  ```
300
303
 
301
- A single `select` step handles both opening the dropdown and choosing the option — don't split it into two steps.
304
+ A single `select` step handles both opening the dropdown and choosing the option. Don't split it into two steps.
302
305
 
303
306
  ### Autocomplete fields
304
307
 
@@ -318,7 +321,7 @@ steps:
318
321
  - uncheck the "Newsletter" checkbox
319
322
  ```
320
323
 
321
- Use `check`/`uncheck` instead of `click` for checkboxes this ensures correct toggle behavior for both native and custom checkbox implementations.
324
+ Use `check`/`uncheck` instead of `click` for checkboxes. This ensures correct toggle behavior for both native and custom checkbox implementations.
322
325
 
323
326
  ### Form filling
324
327
 
@@ -341,11 +344,11 @@ steps:
341
344
  - Select Red - Green - Blue in the color picker # three sequential clicks
342
345
  ```
343
346
 
344
- Each value becomes a separate click action. Use this for tabs, radio cards, multi-select UIs anything where you're clicking multiple items in sequence.
347
+ Each value becomes a separate click action. Use this for tabs, radio cards, multi-select UIs, anything where you're clicking multiple items in sequence.
345
348
 
346
349
  ### Assertions
347
350
 
348
- Any step starting with "check that" or "verify" is treated as an assertion it validates page state without interacting:
351
+ Any step starting with "check that" or "verify" is treated as an assertion. It validates page state without interacting:
349
352
 
350
353
  ```yaml
351
354
  steps:
@@ -369,7 +372,7 @@ steps:
369
372
  - verify there are at least 5 results
370
373
  ```
371
374
 
372
- **Important:** Assertions with quoted text (like `"Order Confirmed"`) are resolved at plan time no LLM call needed at runtime. Assertions without quotes (like `check that the form is present`) require the live page to resolve.
375
+ **Important:** Assertions with quoted text (like `"Order Confirmed"`) are resolved at plan time, no LLM call needed at runtime. Assertions without quotes (like `check that the form is present`) require the live page to resolve.
373
376
 
374
377
  ### Random test data
375
378
 
@@ -382,11 +385,11 @@ steps:
382
385
  - fill the "Description" field with some test data
383
386
  ```
384
387
 
385
- For full forms with multiple fields, use the form filling syntax (`fill in the form with some test data`) GreenLight inspects each field's label, type, and placeholder to generate appropriate data. The literal word "***random***" will trigger actual random data generation which is different for every run, even if the run is cached.
388
+ For full forms with multiple fields, use the form filling syntax (`fill in the form with some test data`). GreenLight inspects each field's label, type, and placeholder to generate appropriate data. The literal word "***random***" will trigger actual random data generation which is different for every run, even if the run is cached.
386
389
 
387
390
  ### Date and time pickers
388
391
 
389
- GreenLight has built-in support for date/time pickers including native HTML5 inputs and component-library widgets like MUI DateTimePicker with sectioned spinbuttons. No special syntax is needed; just describe what time to set using natural language:
392
+ GreenLight has built-in support for date/time pickers, including native HTML5 inputs and component-library widgets like MUI DateTimePicker with sectioned spinbuttons. No special syntax is needed; just describe what time to set using natural language:
390
393
 
391
394
  ```yaml
392
395
  steps:
@@ -400,15 +403,15 @@ steps:
400
403
  **How it works:**
401
404
 
402
405
  1. The planner identifies date/time steps and extracts the time expression (e.g., "10 minutes from now")
403
- 2. [chrono-node](https://github.com/wanasit/chrono) parses the expression into an exact timestamp no LLM needed for time math
406
+ 2. [chrono-node](https://github.com/wanasit/chrono) parses the expression into an exact timestamp, no LLM needed for time math
404
407
  3. GreenLight inspects the page's accessibility tree to find the picker elements
405
408
  4. Values are filled into the correct fields automatically
406
409
 
407
410
  **Supported picker types:**
408
411
 
409
- - **Native HTML5** (`<input type="date">`, `datetime-local`, `time`) filled with `YYYY-MM-DD`, `YYYY-MM-DDTHH:mm`, or `HH:mm`
410
- - **Sectioned pickers** (MUI v7, etc.) individual spinbutton sections (Day, Month, Year, Hours, Minutes) are each filled with the correct value
411
- - **Multiple pickers on one page** GreenLight matches "start" / "end" in the step text against picker group names to target the right one
412
+ - **Native HTML5** (`<input type="date">`, `datetime-local`, `time`): Filled with `YYYY-MM-DD`, `YYYY-MM-DDTHH:mm`, or `HH:mm`
413
+ - **Sectioned pickers** (MUI v7, etc.): Individual spinbutton sections (Day, Month, Year, Hours, Minutes) are each filled with the correct value
414
+ - **Multiple pickers on one page**: GreenLight matches "start" / "end" in the step text against picker group names to target the right one
412
415
 
413
416
  **Supported time expressions:**
414
417
 
@@ -422,7 +425,7 @@ steps:
422
425
  | `2026-06-15` | Explicit date |
423
426
  | `2026-06-15 14:30` | Explicit date and time |
424
427
 
425
- Date picker steps are always computed fresh even on cached plan replay, the timestamp is recalculated from the current time. This means tests with relative times like "10 minutes from now" never fail due to stale cached dates.
428
+ Date picker steps are always computed fresh. Even on cached plan replay, the timestamp is recalculated from the current time. This means tests with relative times like "10 minutes from now" never fail due to stale cached dates.
426
429
 
427
430
  ### Counting elements
428
431
 
@@ -445,7 +448,7 @@ steps:
445
448
  - count the number of rows in the results table
446
449
  ```
447
450
 
448
- **How it works:** GreenLight inspects the live page's accessibility tree to identify all elements matching the description. The LLM determines a common denominator (role, text pattern, or accessible name) that uniquely identifies the target elements, then counts all matches using exact text matching to avoid false positives from headings or breadcrumbs. The count is stored as a number in the value store the same mechanism used by `remember` so it works seamlessly with `check that ... has decreased/increased` comparisons.
451
+ **How it works:** GreenLight inspects the live page's accessibility tree to identify all elements matching the description. The LLM determines a common denominator (role, text pattern, or accessible name) that uniquely identifies the target elements, then counts all matches using exact text matching to avoid false positives from headings or breadcrumbs. The count is stored as a number in the value store, the same mechanism used by `remember`, so it works seamlessly with `check that ... has decreased/increased` comparisons.
449
452
 
450
453
  When a step checks that the number of visible elements equals a remembered value, GreenLight automatically splits it into a count + compare: first count the elements, then compare the count against the stored variable.
451
454
 
@@ -476,7 +479,7 @@ This flow generates a random value, captures it, performs an action, and then ve
476
479
 
477
480
  ### Conditional steps
478
481
 
479
- Conditional steps let you handle pages that may look different between runs cookie banners, feature flags, A/B tests, or optional UI elements.
482
+ Conditional steps let you handle pages that may look different between runs: cookie banners, feature flags, A/B tests, or optional UI elements.
480
483
 
481
484
  #### Inline conditionals
482
485
 
@@ -506,7 +509,7 @@ steps:
506
509
  - search for "headphones"
507
510
  ```
508
511
 
509
- The `else` block is optional. Block conditionals are flattened to inline conditionals at load time the planner and pilot handle them the same way.
512
+ The `else` block is optional. Block conditionals are flattened to inline conditionals at load time. The planner and pilot handle them the same way.
510
513
 
511
514
  #### Supported conditions
512
515
 
@@ -518,7 +521,7 @@ If the condition is false and there's no `else`, the step is simply skipped (not
518
521
 
519
522
  ### Map testing
520
523
 
521
- GreenLight has built-in support for testing interactive WebGL maps. When a step mentions maps, markers, layers, or zoom levels, GreenLight detects the map library, attaches to its instance, and queries rendered features directly bypassing the DOM (WebGL canvas content is invisible to the accessibility tree).
524
+ GreenLight has built-in support for testing interactive WebGL maps. When a step mentions maps, markers, layers, or zoom levels, GreenLight detects the map library, attaches to its instance, and queries rendered features directly, bypassing the DOM (WebGL canvas content is invisible to the accessibility tree).
522
525
 
523
526
  ```yaml
524
527
  steps:
@@ -528,16 +531,16 @@ steps:
528
531
  - check that the "hospitals" layer is visible on the map
529
532
  ```
530
533
 
531
- Currently supported: **MapLibre GL JS**. The architecture is pluggable Mapbox GL and Leaflet adapters can be added.
534
+ Currently supported: **MapLibre GL JS**. The architecture is pluggable. Mapbox GL and Leaflet adapters can be added.
532
535
 
533
- **How it works:** When a step mentions map-related content, GreenLight automatically inserts a map detection step. Map assertions query the actual rendered vector tile features (place names, road labels, etc.) and viewport state (center, zoom, bounds, layers) not the DOM.
536
+ **How it works:** When a step mentions map-related content, GreenLight automatically inserts a map detection step. Map assertions query the actual rendered vector tile features (place names, road labels, etc.) and viewport state (center, zoom, bounds, layers), not the DOM.
534
537
 
535
538
  **Map instance detection** works automatically for most setups:
536
539
 
537
- 1. **React apps** (react-map-gl, etc.) walks the React fiber tree
538
- 2. **Vue apps** checks `__vue_app__` / `__vue__` component trees
539
- 3. **Global variables** scans `window.map`, `window.mapInstance`, etc.
540
- 4. **Explicit exposure** set `window.__greenlight_map = map` for maximum reliability
540
+ 1. **React apps** (react-map-gl, etc.): Walks the React fiber tree
541
+ 2. **Vue apps**: Checks `__vue_app__` / `__vue__` component trees
542
+ 3. **Global variables**: Scans `window.map`, `window.mapInstance`, etc.
543
+ 4. **Explicit exposure**: Set `window.__greenlight_map = map` for maximum reliability
541
544
 
542
545
  ### Reusable steps
543
546
 
@@ -560,25 +563,25 @@ tests:
560
563
 
561
564
  ### Tips for reliable tests
562
565
 
563
- - **Be specific with quotes** `click "Submit"` is more reliable than `click the submit button` because it matches exact text.
564
- - **One action per step** each step should describe one thing a user does. GreenLight splits compound steps, but explicit single-action steps are more predictable.
565
- - **Use assertions liberally** after key actions, add a `check that` step to verify the expected outcome. This catches failures early and makes the test report more readable.
566
- - **Don't over-specify DOM structure** say `click "Add to Cart"` not `click the button inside the product card div`. GreenLight uses the accessibility tree, not CSS selectors.
567
- - **Conditional steps for flaky UI** if a cookie banner or popup sometimes appears, use `click "Accept" if visible` instead of making it a required step.
566
+ - **Be specific with quotes.** `click "Submit"` is more reliable than `click the submit button` because it matches exact text.
567
+ - **One action per step.** Each step should describe one thing a user does. GreenLight splits compound steps, but explicit single-action steps are more predictable.
568
+ - **Use assertions liberally.** After key actions, add a `check that` step to verify the expected outcome. This catches failures early and makes the test report more readable.
569
+ - **Don't over-specify DOM structure.** Say `click "Add to Cart"` not `click the button inside the product card div`. GreenLight uses the accessibility tree, not CSS selectors.
570
+ - **Conditional steps for flaky UI.** If a cookie banner or popup sometimes appears, use `click "Accept" if visible` instead of making it a required step.
568
571
 
569
572
  ### Robustness features
570
573
 
571
574
  GreenLight includes several built-in mechanisms to handle real-world complexity:
572
575
 
573
- - **Planner model escalation** when the fast pilot model fails to resolve a step, GreenLight automatically retries with the more capable planner model before giving up. This catches cases where the cheaper model can't make a tricky element mapping.
574
- - **Context length recovery** if the LLM's context window is exceeded (common on pages with large DOM trees), GreenLight clears conversation history and retries with a fresh context instead of aborting the test run.
575
- - **Large page handling** pages with many repeated elements (e.g. a list of many product cards with lots of detail) get an automatically compressed accessibility tree: the first few items are shown in full, and the rest are summarized as one-liners. This keeps the input within token limits while preserving all element names for targeting.
576
+ - **Planner model escalation.** When the fast pilot model fails to resolve a step, GreenLight automatically retries with the more capable planner model before giving up. This catches cases where the cheaper model can't make a tricky element mapping.
577
+ - **Context length recovery.** If the LLM's context window is exceeded (common on pages with large DOM trees), GreenLight clears conversation history and retries with a fresh context instead of aborting the test run.
578
+ - **Large page handling.** Pages with many repeated elements (e.g. a list of many product cards with lots of detail) get an automatically compressed accessibility tree: the first few items are shown in full, and the rest are summarized as one-liners. This keeps the input within token limits while preserving all element names for targeting.
576
579
 
577
580
  ## Cached plans
578
581
 
579
582
  The first run of a test uses LLM calls to discover the right browser actions (**discovery run**). After a successful run, GreenLight caches the concrete action sequence as a **heuristic plan** in `.greenlight/plans/`.
580
583
 
581
- Subsequent runs replay the cached plan directly via Playwright no LLM calls, no API costs, significantly faster. If you change the test steps in YAML, the hash changes and GreenLight automatically re-discovers.
584
+ Subsequent runs replay the cached plan directly via Playwright, no LLM calls, no API costs, significantly faster. If you change the test steps in YAML, the hash changes and GreenLight automatically re-discovers.
582
585
 
583
586
  ```bash
584
587
  greenlight run # uses cached plans where available
@@ -619,14 +622,14 @@ provider: openai
619
622
  greenlight run --provider gemini
620
623
  ```
621
624
 
622
- Only one provider is active at a time. OpenRouter is the default it lets you access models from all vendors through a single API key, which is the easiest way to get started.
625
+ Only one provider is active at a time. OpenRouter is the default. It lets you access models from all vendors through a single API key, which is the easiest way to get started.
623
626
 
624
627
  ### Model selection
625
628
 
626
629
  GreenLight uses the LLM in two distinct roles with different requirements:
627
630
 
628
- - **Planner** interprets the test steps, splits compound actions, and expands form-filling steps. This runs once per test case and benefits from a more capable model for consistent, correct results.
629
- - **Pilot** resolves individual steps against the live page (picking which element to click/type). This runs many times per test and should use a fast, inexpensive model to keep costs and execution time low.
631
+ - **Planner**: Interprets the test steps, splits compound actions, and expands form-filling steps. This runs once per test case and benefits from a more capable model for consistent, correct results.
632
+ - **Pilot**: Resolves individual steps against the live page (picking which element to click/type). This runs many times per test and should use a fast, inexpensive model to keep costs and execution time low.
630
633
 
631
634
  Configure both in `greenlight.yaml`:
632
635
 
@@ -723,14 +726,14 @@ flowchart TD
723
726
  orchestrator --> output
724
727
  ```
725
728
 
726
- **Discovery run:** capture page state (a11y tree with stable refs) → LLM determines action → execute via Playwright → record for cache.
729
+ **Discovery run:** Capture page state (a11y tree with stable refs) → LLM determines action → execute via Playwright → record for cache.
727
730
 
728
- **Cached run:** replay stored actions directly via Playwright no LLM calls, no API costs.
731
+ **Cached run:** Replay stored actions directly via Playwright, no LLM calls, no API costs.
729
732
 
730
733
  ## Documentation
731
734
 
732
- - [Specifications](docs/specifications.md) full feature spec, technology decisions, MCP strategy
733
- - [Implementation Plan](docs/implementation.md) — step-by-step build plan
735
+ - [Specifications](docs/specifications.md): Full feature spec, technology decisions, MCP strategy
736
+ - [Implementation Plan](docs/implementation.md): Step-by-step build plan
734
737
 
735
738
  ## Avoiding side effects in your app
736
739
 
@@ -767,7 +770,7 @@ if (!req.isE2ETest) {
767
770
  }
768
771
  ```
769
772
 
770
- The header is only added to same-origin requests — cross-origin requests to CDNs, tile servers, and third-party APIs are not affected. This avoids triggering CORS preflight requests on external services.
773
+ The header is only added to same-origin requests. Cross-origin requests to CDNs, tile servers, and third-party APIs are not affected. This avoids triggering CORS preflight requests on external services.
771
774
 
772
775
  ## CI/CD
773
776
 
@@ -779,3 +782,13 @@ The header is only added to same-origin requests — cross-origin requests to CD
779
782
  ```
780
783
 
781
784
  Exit code 0 on all-pass, non-zero on any failure.
785
+
786
+ ## Contributing
787
+
788
+ GreenLight is an internal project at [Umain AB](https://umain.com) and is still in alpha. Things move fast and APIs may change. That said, we'd love contributions from anyone who finds the project useful or interesting.
789
+
790
+ **Pull requests are welcome.** Whether it's a bug fix, a new feature, improved docs, or a wild idea: Open a PR and we'll take a look. We don't have a formal contributing guide yet, so just keep your changes focused and include a short description of what you changed and why.
791
+
792
+ **A note on issues:** We've disabled the issue tracker for now. If you run into a problem or have an idea, the best way forward is to submit a PR. We're a small team and would rather review code than triage tickets at this stage.
793
+
794
+ Thanks for checking out GreenLight. We're excited to see where it goes.
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"AAiDA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAmD5C,6DAA6D;AAC7D,wBAAsB,cAAc,CACnC,UAAU,EAAE,MAAM,EAAE,EACpB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,SAAS,GACf,OAAO,CAAC,IAAI,CAAC,CA4Cf;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC/B,MAAM,EAAE,SAAS,EACjB,aAAa,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC,IAAI,CAAC,CA6Yf"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"AAiDA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAmD5C,6DAA6D;AAC7D,wBAAsB,cAAc,CACnC,UAAU,EAAE,MAAM,EAAE,EACpB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,SAAS,GACf,OAAO,CAAC,IAAI,CAAC,CA4Cf;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC/B,MAAM,EAAE,SAAS,EACjB,aAAa,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC,IAAI,CAAC,CAkZf"}
package/dist/cli/run.js CHANGED
@@ -234,7 +234,7 @@ export async function runCommand(config, resolvedFiles) {
234
234
  const context = persistentContext ?? (await createContext(browser, browserOpts));
235
235
  const page = await createPage(context, { headed: browserOpts.headed });
236
236
  const { drain } = attachConsoleCollector(page);
237
- const { waitForNetworkIdle, invalidate: invalidateNetworkCache, lastIdleTiming } = attachNetworkTracker(page);
237
+ const { waitForNetworkIdle, invalidate: invalidateNetworkCache, lastIdleTiming, drainNavigationError } = attachNetworkTracker(page);
238
238
  globals.trace.attachToPage(page);
239
239
  try {
240
240
  globals.trace.log("goto", baseUrl);
@@ -261,6 +261,7 @@ export async function runCommand(config, resolvedFiles) {
261
261
  waitForNetworkIdle,
262
262
  invalidateNetworkCache,
263
263
  lastIdleTiming,
264
+ drainNavigationError,
264
265
  onStepComplete: printStepResult,
265
266
  consoleDrain: drain,
266
267
  });
@@ -287,7 +288,7 @@ export async function runCommand(config, resolvedFiles) {
287
288
  headed: browserOpts.headed,
288
289
  });
289
290
  const { drain: drain2 } = attachConsoleCollector(page2);
290
- const { waitForNetworkIdle: waitForNetworkIdle2, invalidate: invalidateNetworkCache2, lastIdleTiming: lastIdleTiming2 } = attachNetworkTracker(page2);
291
+ const { waitForNetworkIdle: waitForNetworkIdle2, invalidate: invalidateNetworkCache2, lastIdleTiming: lastIdleTiming2, drainNavigationError: drainNavErr2 } = attachNetworkTracker(page2);
291
292
  globals.trace.attachToPage(page2);
292
293
  await page2.goto(baseUrl);
293
294
  const modelLabel = typeof effectiveModel === "string"
@@ -301,6 +302,7 @@ export async function runCommand(config, resolvedFiles) {
301
302
  waitForNetworkIdle: waitForNetworkIdle2,
302
303
  invalidateNetworkCache: invalidateNetworkCache2,
303
304
  lastIdleTiming: lastIdleTiming2,
305
+ drainNavigationError: drainNavErr2,
304
306
  onStepComplete: printStepResult,
305
307
  });
306
308
  result.mode = "pilot";
@@ -335,6 +337,7 @@ export async function runCommand(config, resolvedFiles) {
335
337
  waitForNetworkIdle,
336
338
  invalidateNetworkCache,
337
339
  lastIdleTiming,
340
+ drainNavigationError,
338
341
  onStepComplete: printStepResult,
339
342
  consoleDrain: drain,
340
343
  });
@@ -354,7 +357,7 @@ export async function runCommand(config, resolvedFiles) {
354
357
  const ctx3 = persistentContext ?? (await createContext(browser, browserOpts));
355
358
  const page3 = await createPage(ctx3, { headed: browserOpts.headed });
356
359
  const { drain: drain3 } = attachConsoleCollector(page3);
357
- const { waitForNetworkIdle: wni3, invalidate: inv3, lastIdleTiming: lit3 } = attachNetworkTracker(page3);
360
+ const { waitForNetworkIdle: wni3, invalidate: inv3, lastIdleTiming: lit3, drainNavigationError: dne3 } = attachNetworkTracker(page3);
358
361
  globals.trace.attachToPage(page3);
359
362
  await page3.goto(baseUrl);
360
363
  // Fall through to normal pilot below with full steps
@@ -370,6 +373,7 @@ export async function runCommand(config, resolvedFiles) {
370
373
  waitForNetworkIdle: wni3,
371
374
  invalidateNetworkCache: inv3,
372
375
  lastIdleTiming: lit3,
376
+ drainNavigationError: dne3,
373
377
  onStepComplete: printStepResult,
374
378
  });
375
379
  result.mode = "pilot";
@@ -414,6 +418,7 @@ export async function runCommand(config, resolvedFiles) {
414
418
  waitForNetworkIdle,
415
419
  invalidateNetworkCache,
416
420
  lastIdleTiming,
421
+ drainNavigationError,
417
422
  onStepComplete: printStepResult,
418
423
  });
419
424
  result = pilotResult;
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,8 @@ export declare function attachNetworkTracker(page: Page): {
22
22
  invalidate: () => void;
23
23
  /** Timing from the last waitForNetworkIdle call. */
24
24
  lastIdleTiming: () => IdleTiming;
25
+ /** Drain the last navigation error (4xx/5xx), if any. Returns null if no error. */
26
+ drainNavigationError: () => string | null;
25
27
  };
26
28
  /**
27
29
  * Collect console messages from a page.
@@ -1 +1 @@
1
- {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/pilot/network.ts"],"names":[],"mappings":"AAgBA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAW,MAAM,YAAY,CAAA;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAGxD;;;;;GAKG;AACH,8DAA8D;AAC9D,MAAM,WAAW,UAAU;IAC1B,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAA;IACf,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAA;CACf;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG;IACjD,kBAAkB,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACzD,4EAA4E;IAC5E,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,oDAAoD;IACpD,cAAc,EAAE,MAAM,UAAU,CAAA;CAChC,CAuIA;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,IAAI,GAAG;IACnD,KAAK,EAAE,MAAM,YAAY,EAAE,CAAA;CAC3B,CAcA"}
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/pilot/network.ts"],"names":[],"mappings":"AAgBA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAW,MAAM,YAAY,CAAA;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAGxD;;;;;GAKG;AACH,8DAA8D;AAC9D,MAAM,WAAW,UAAU;IAC1B,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAA;IACf,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAA;CACf;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG;IACjD,kBAAkB,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACzD,4EAA4E;IAC5E,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,oDAAoD;IACpD,cAAc,EAAE,MAAM,UAAU,CAAA;IAChC,mFAAmF;IACnF,oBAAoB,EAAE,MAAM,MAAM,GAAG,IAAI,CAAA;CACzC,CA+JA;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,IAAI,GAAG;IACnD,KAAK,EAAE,MAAM,YAAY,EAAE,CAAA;CAC3B,CAcA"}
@@ -16,6 +16,25 @@
16
16
  import { globals } from "../globals.js";
17
17
  export function attachNetworkTracker(page) {
18
18
  const pending = new Set();
19
+ let navigationError = null;
20
+ // Track navigation responses (document requests) for HTTP error detection
21
+ page.on("response", async (response) => {
22
+ const req = response.request();
23
+ if (req.resourceType() !== "document")
24
+ return;
25
+ const status = response.status();
26
+ if (status >= 400) {
27
+ let body = "";
28
+ try {
29
+ const text = await response.text();
30
+ // Extract a useful snippet — strip HTML tags and take the first 200 chars
31
+ body = text.replace(/<[^>]*>/g, " ").replace(/\s+/g, " ").trim().slice(0, 200);
32
+ }
33
+ catch { /* body not readable */ }
34
+ const msg = `HTTP ${String(status)} ${response.statusText()} at ${response.url().slice(0, 120)}`;
35
+ navigationError = body ? `${msg}\n${body}` : msg;
36
+ }
37
+ });
19
38
  /** Requests that don't affect page readiness. */
20
39
  function isBackgroundRequest(req) {
21
40
  const url = req.url();
@@ -148,6 +167,11 @@ export function attachNetworkTracker(page) {
148
167
  lastIdleTiming() {
149
168
  return _lastTiming;
150
169
  },
170
+ drainNavigationError() {
171
+ const err = navigationError;
172
+ navigationError = null;
173
+ return err;
174
+ },
151
175
  };
152
176
  }
153
177
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/pilot/network.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/pilot/network.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,8 @@ export interface PilotOptions {
22
22
  network: number;
23
23
  content: number;
24
24
  };
25
+ /** Drain the last navigation error (4xx/5xx). */
26
+ drainNavigationError?: () => string | null;
25
27
  /** Capture post-step screenshots (default: false). */
26
28
  screenshots?: boolean;
27
29
  /** Called after each step completes, for live progress output. */
@@ -1 +1 @@
1
- {"version":3,"file":"pilot.d.ts","sourceRoot":"","sources":["../../src/pilot/pilot.ts"],"names":[],"mappings":"AAgBA;;;GAGG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,KAAK,EAGX,YAAY,EAGZ,UAAU,EAEV,cAAc,EACd,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAQzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAKhE,MAAM,WAAW,YAAY;IAC5B,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,kCAAkC;IAClC,YAAY,EAAE,MAAM,YAAY,EAAE,CAAA;IAClC,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,uEAAuE;IACvE,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACxC,iEAAiE;IACjE,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAA;IACnC,oDAAoD;IACpD,cAAc,CAAC,EAAE,MAAM;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IAC3D,sDAAsD;IACtD,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,kEAAkE;IAClE,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAA;CAC7C;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAChC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,EAC3C,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,YAAY,GACnB,OAAO,CAAC,cAAc,CAAC,CA0uBzB"}
1
+ {"version":3,"file":"pilot.d.ts","sourceRoot":"","sources":["../../src/pilot/pilot.ts"],"names":[],"mappings":"AAgBA;;;GAGG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,KAAK,EAGX,YAAY,EAGZ,UAAU,EAEV,cAAc,EACd,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAQzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAKhE,MAAM,WAAW,YAAY;IAC5B,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,kCAAkC;IAClC,YAAY,EAAE,MAAM,YAAY,EAAE,CAAA;IAClC,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,uEAAuE;IACvE,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACxC,iEAAiE;IACjE,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAA;IACnC,oDAAoD;IACpD,cAAc,CAAC,EAAE,MAAM;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IAC3D,iDAAiD;IACjD,oBAAoB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAA;IAC1C,sDAAsD;IACtD,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,kEAAkE;IAClE,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAA;CAC7C;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAChC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,EAC3C,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,YAAY,GACnB,OAAO,CAAC,cAAc,CAAC,CA8uBzB"}
@@ -411,6 +411,9 @@ export async function runTestCase(page, testCase, llm, options) {
411
411
  const idle = options.lastIdleTiming?.() ?? { network: idleDur, content: 0 };
412
412
  timing.networkIdle = idle.network;
413
413
  timing.contentIdle = idle.content;
414
+ const navErr = options.drainNavigationError?.();
415
+ if (navErr)
416
+ throw new Error(navErr);
414
417
  t0 = performance.now();
415
418
  const state = await capturePageState(page, options.consoleDrain, {
416
419
  mapAdapter: mapAdapter ?? undefined,
@@ -434,6 +437,9 @@ export async function runTestCase(page, testCase, llm, options) {
434
437
  timing.networkIdle = idle.network;
435
438
  timing.contentIdle = idle.content;
436
439
  }
440
+ const navErr = options.drainNavigationError?.();
441
+ if (navErr)
442
+ throw new Error(navErr);
437
443
  trace.log("capture:start");
438
444
  t0 = performance.now();
439
445
  const state = await capturePageState(page, options.consoleDrain, {