waygraph 0.15.47 → 0.15.50
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/dist/analysis/graph.js +2 -2
- package/dist/auto-session/session.js +3 -3
- package/dist/cli/discover.d.ts +1 -1
- package/dist/cli/discover.js +1 -1
- package/dist/cli/flags.d.ts +7 -5
- package/dist/cli/flags.js +9 -32
- package/dist/cli/run-chain.js +1 -1
- package/dist/cli.js +1 -1
- package/dist/{agent-dive.js → commands/agent-dive-scaffold.js} +2 -2
- package/dist/commands/agent-dive.js +1 -1
- package/dist/commands/check.js +1 -1
- package/dist/commands/run.js +4 -4
- package/dist/commands/session.js +7 -7
- package/dist/config.d.ts +34 -0
- package/dist/config.js +94 -0
- package/dist/{engine/core.js → core/block.js} +6 -6
- package/dist/core/blocks/api.d.ts +54 -0
- package/dist/core/blocks/api.js +75 -0
- package/dist/{engine → core}/blocks/effect.d.ts +1 -1
- package/dist/{engine → core}/blocks/effect.js +1 -1
- package/dist/{engine → core}/blocks/method.d.ts +1 -1
- package/dist/{engine → core}/blocks/method.js +1 -1
- package/dist/{engine → core}/blocks/nav.js +1 -1
- package/dist/{engine → core}/blocks/page.js +1 -1
- package/dist/{engine → core}/branch-regression.js +2 -3
- package/dist/{engine → core}/compose.js +4 -4
- package/dist/{engine/engine-class.d.ts → core/engine.d.ts} +2 -133
- package/dist/core/engine.js +50 -0
- package/dist/{engine → core}/flow.js +5 -5
- package/dist/core/map-builder.d.ts +171 -0
- package/dist/{engine/engine-class.js → core/map-builder.js} +82 -98
- package/dist/{engine → core}/run-graph.js +4 -6
- package/dist/core.d.ts +14 -0
- package/dist/core.js +15 -0
- package/dist/env-file.d.ts +10 -0
- package/dist/env-file.js +58 -0
- package/dist/errors.d.ts +54 -20
- package/dist/errors.js +67 -20
- package/dist/highlights/run-phase.js +15 -2
- package/dist/highlights/stub-ctx.js +16 -0
- package/dist/highlights/types.d.ts +38 -0
- package/dist/index.d.ts +7 -3
- package/dist/index.js +2 -1
- package/dist/mem-page.js +2 -2
- package/dist/mem-stub.d.ts +1 -1
- package/dist/pilot-overlay/fixtures.js +42 -10
- package/dist/pilot-overlay/shell.js +23 -10
- package/dist/runner/banner-log.js +1 -0
- package/dist/runner/device-stage.js +35 -15
- package/dist/runner/inpage/banner.d.ts +9 -1
- package/dist/runner/inpage/banner.js +27 -2
- package/dist/runner/inpage/caption.d.ts +3 -0
- package/dist/runner/inpage/caption.js +23 -0
- package/dist/runner/inpage/core.js +32 -9
- package/dist/runner/inpage/network.d.ts +15 -0
- package/dist/runner/inpage/network.js +217 -0
- package/dist/runner/inpage/panel-chrome.js +41 -1
- package/dist/runner/inpage/swipe-zoom.js +1 -1
- package/dist/runner/inpage/todos.js +6 -1
- package/dist/runner/main.js +9 -2
- package/dist/runner/network-capture.d.ts +9 -0
- package/dist/runner/network-capture.js +126 -0
- package/dist/runner/overlay-css.js +71 -7
- package/dist/runner/overlay-install.js +39 -2
- package/dist/runner/overlay-stage.js +5 -0
- package/dist/runner/rings.js +69 -45
- package/dist/runner/slides.js +14 -8
- package/dist/runner/step-mode.js +12 -0
- package/dist/runner/step-panels.js +9 -3
- package/dist/runner/teardown.js +16 -9
- package/dist/session/auto-explore-run.d.ts +5 -2
- package/dist/session/auto-explore-run.js +52 -36
- package/dist/{step-overlay.d.ts → session/step-overlay.d.ts} +1 -1
- package/dist/{step-overlay.js → session/step-overlay.js} +1 -1
- package/dist/trait.d.ts +1 -0
- package/dist/trait.js +15 -0
- package/dist/traverse/run.js +3 -22
- package/dist/ui/components/ring.js +4 -2
- package/dist/ui/overlay.css +36 -3
- package/examples/saucedemo/.waygraph-auto/00d147d1.log +21 -0
- package/examples/saucedemo/.waygraph-auto/0402cfcf.log +6 -0
- package/examples/saucedemo/.waygraph-auto/062b581f.log +20 -0
- package/examples/saucedemo/.waygraph-auto/0681582b.log +6 -0
- package/examples/saucedemo/.waygraph-auto/07f3e964.log +6 -0
- package/examples/saucedemo/.waygraph-auto/0868ae4d.log +0 -0
- package/examples/saucedemo/.waygraph-auto/0924ddaa.log +22 -0
- package/examples/saucedemo/.waygraph-auto/092d6173.log +5 -0
- package/examples/saucedemo/.waygraph-auto/09924510.log +0 -0
- package/examples/saucedemo/.waygraph-auto/0998c941.log +21 -0
- package/examples/saucedemo/.waygraph-auto/0bf74300.log +21 -0
- package/examples/saucedemo/.waygraph-auto/0c01fd29.log +4 -0
- package/examples/saucedemo/.waygraph-auto/0c302590.log +0 -0
- package/examples/saucedemo/.waygraph-auto/0dee62d6.log +5 -0
- package/examples/saucedemo/.waygraph-auto/0eb4c081.log +5 -0
- package/examples/saucedemo/.waygraph-auto/10fd431c.log +0 -0
- package/examples/saucedemo/.waygraph-auto/13c6fe3c.log +0 -0
- package/examples/saucedemo/.waygraph-auto/1581b677.log +0 -0
- package/examples/saucedemo/.waygraph-auto/161cc8dd.log +22 -0
- package/examples/saucedemo/.waygraph-auto/164761a5.log +6 -0
- package/examples/saucedemo/.waygraph-auto/1905ceb2.log +0 -0
- package/examples/saucedemo/.waygraph-auto/1b1d55c6.log +0 -0
- package/examples/saucedemo/.waygraph-auto/1b80fd24.log +6 -0
- package/examples/saucedemo/.waygraph-auto/1c30a3c2.log +0 -0
- package/examples/saucedemo/.waygraph-auto/1d90aa9a.log +0 -0
- package/examples/saucedemo/.waygraph-auto/1de7d889.log +0 -0
- package/examples/saucedemo/.waygraph-auto/1f233a4c.log +6 -0
- package/examples/saucedemo/.waygraph-auto/20e66801.log +0 -0
- package/examples/saucedemo/.waygraph-auto/20ffdb77.log +0 -0
- package/examples/saucedemo/.waygraph-auto/22048fff.log +4 -0
- package/examples/saucedemo/.waygraph-auto/22f1a704.log +5 -0
- package/examples/saucedemo/.waygraph-auto/239cced3.log +20 -0
- package/examples/saucedemo/.waygraph-auto/25204b46.log +4 -0
- package/examples/saucedemo/.waygraph-auto/25e2e90f.log +0 -0
- package/examples/saucedemo/.waygraph-auto/2708455e.log +22 -0
- package/examples/saucedemo/.waygraph-auto/272a96fd.log +20 -0
- package/examples/saucedemo/.waygraph-auto/28d7be5d.log +0 -0
- package/examples/saucedemo/.waygraph-auto/2a6a8266.log +6 -0
- package/examples/saucedemo/.waygraph-auto/2b3401cf.log +20 -0
- package/examples/saucedemo/.waygraph-auto/2ceccd6d.log +0 -0
- package/examples/saucedemo/.waygraph-auto/2f1b0c13.log +6 -0
- package/examples/saucedemo/.waygraph-auto/2f8d4073.log +6 -0
- package/examples/saucedemo/.waygraph-auto/30739278.log +6 -0
- package/examples/saucedemo/.waygraph-auto/31cb2e80.log +0 -0
- package/examples/saucedemo/.waygraph-auto/322d63cd.log +0 -0
- package/examples/saucedemo/.waygraph-auto/3239aa8a.log +6 -0
- package/examples/saucedemo/.waygraph-auto/326d87b7.log +6 -0
- package/examples/saucedemo/.waygraph-auto/3351c0b6.log +0 -0
- package/examples/saucedemo/.waygraph-auto/33df0770.log +0 -0
- package/examples/saucedemo/.waygraph-auto/340d624d.log +0 -0
- package/examples/saucedemo/.waygraph-auto/36367ccf.log +0 -0
- package/examples/saucedemo/.waygraph-auto/372536a5.log +6 -0
- package/examples/saucedemo/.waygraph-auto/3a412f3c.log +0 -0
- package/examples/saucedemo/.waygraph-auto/3a859bd7.log +0 -0
- package/examples/saucedemo/.waygraph-auto/3cb0add7.log +0 -0
- package/examples/saucedemo/.waygraph-auto/3e42f0d8.log +0 -0
- package/examples/saucedemo/.waygraph-auto/4144071d.log +0 -0
- package/examples/saucedemo/.waygraph-auto/4176a3c6.log +0 -0
- package/examples/saucedemo/.waygraph-auto/41d0793d.log +4 -0
- package/examples/saucedemo/.waygraph-auto/424b4d5d.log +0 -0
- package/examples/saucedemo/.waygraph-auto/43253aba.log +0 -0
- package/examples/saucedemo/.waygraph-auto/438c6c53.log +22 -0
- package/examples/saucedemo/.waygraph-auto/4477db12.log +0 -0
- package/examples/saucedemo/.waygraph-auto/4a1258b7.log +0 -0
- package/examples/saucedemo/.waygraph-auto/4adcd179.log +20 -0
- package/examples/saucedemo/.waygraph-auto/4c9d9b16.log +21 -0
- package/examples/saucedemo/.waygraph-auto/4da39c36.log +6 -0
- package/examples/saucedemo/.waygraph-auto/4dbefa7e.log +5 -0
- package/examples/saucedemo/.waygraph-auto/4efa7035.log +6 -0
- package/examples/saucedemo/.waygraph-auto/505affdc.log +4 -0
- package/examples/saucedemo/.waygraph-auto/51bcb60a.log +0 -0
- package/examples/saucedemo/.waygraph-auto/5291bc78.log +22 -0
- package/examples/saucedemo/.waygraph-auto/54274c39.log +5 -0
- package/examples/saucedemo/.waygraph-auto/5440ce7e.log +0 -0
- package/examples/saucedemo/.waygraph-auto/5738175f.log +22 -0
- package/examples/saucedemo/.waygraph-auto/57ce5643.log +22 -0
- package/examples/saucedemo/.waygraph-auto/5984426b.log +6 -0
- package/examples/saucedemo/.waygraph-auto/5a682e7c.log +22 -0
- package/examples/saucedemo/.waygraph-auto/5b79320c.log +21 -0
- package/examples/saucedemo/.waygraph-auto/5c55aaac.log +21 -0
- package/examples/saucedemo/.waygraph-auto/5d285cd3.log +0 -0
- package/examples/saucedemo/.waygraph-auto/5ed00b16.log +4 -0
- package/examples/saucedemo/.waygraph-auto/60b9c066.log +6 -0
- package/examples/saucedemo/.waygraph-auto/610dd127.log +0 -0
- package/examples/saucedemo/.waygraph-auto/61105500.log +5 -0
- package/examples/saucedemo/.waygraph-auto/6134afe8.log +20 -0
- package/examples/saucedemo/.waygraph-auto/62a0bdc9.log +22 -0
- package/examples/saucedemo/.waygraph-auto/6376fc15.log +0 -0
- package/examples/saucedemo/.waygraph-auto/6599cbca.log +22 -0
- package/examples/saucedemo/.waygraph-auto/67aaca30.log +0 -0
- package/examples/saucedemo/.waygraph-auto/68b10298.log +0 -0
- package/examples/saucedemo/.waygraph-auto/68be5e12.log +0 -0
- package/examples/saucedemo/.waygraph-auto/68df05a6.log +22 -0
- package/examples/saucedemo/.waygraph-auto/693f67c4.log +20 -0
- package/examples/saucedemo/.waygraph-auto/69ae030a.log +6 -0
- package/examples/saucedemo/.waygraph-auto/69e73f35.log +6 -0
- package/examples/saucedemo/.waygraph-auto/6b2333b0.log +5 -0
- package/examples/saucedemo/.waygraph-auto/6c4c3817.log +0 -0
- package/examples/saucedemo/.waygraph-auto/6c954911.log +0 -0
- package/examples/saucedemo/.waygraph-auto/6d65a439.log +5 -0
- package/examples/saucedemo/.waygraph-auto/6d700055.log +0 -0
- package/examples/saucedemo/.waygraph-auto/6ead848f.log +0 -0
- package/examples/saucedemo/.waygraph-auto/72675b2d.log +6 -0
- package/examples/saucedemo/.waygraph-auto/733dd260.log +5 -0
- package/examples/saucedemo/.waygraph-auto/75016486.log +0 -0
- package/examples/saucedemo/.waygraph-auto/752b01c6.log +22 -0
- package/examples/saucedemo/.waygraph-auto/75675227.log +6 -0
- package/examples/saucedemo/.waygraph-auto/75e2e658.log +0 -0
- package/examples/saucedemo/.waygraph-auto/76ac1a86.log +0 -0
- package/examples/saucedemo/.waygraph-auto/77605295.log +0 -0
- package/examples/saucedemo/.waygraph-auto/792671f4.log +22 -0
- package/examples/saucedemo/.waygraph-auto/79915adb.log +20 -0
- package/examples/saucedemo/.waygraph-auto/7a398774.log +6 -0
- package/examples/saucedemo/.waygraph-auto/7a72f66e.log +6 -0
- package/examples/saucedemo/.waygraph-auto/7a984334.log +4 -0
- package/examples/saucedemo/.waygraph-auto/7c6ee793.log +20 -0
- package/examples/saucedemo/.waygraph-auto/7c726dc4.log +22 -0
- package/examples/saucedemo/.waygraph-auto/7c72e8a5.log +4 -0
- package/examples/saucedemo/.waygraph-auto/7dbee625.log +22 -0
- package/examples/saucedemo/.waygraph-auto/7df66956.log +0 -0
- package/examples/saucedemo/.waygraph-auto/7e053160.log +0 -0
- package/examples/saucedemo/.waygraph-auto/7fcb512f.log +22 -0
- package/examples/saucedemo/.waygraph-auto/802a0b5b.log +0 -0
- package/examples/saucedemo/.waygraph-auto/80322e0b.log +0 -0
- package/examples/saucedemo/.waygraph-auto/80a4978e.log +6 -0
- package/examples/saucedemo/.waygraph-auto/81cfe480.log +22 -0
- package/examples/saucedemo/.waygraph-auto/832f5add.log +0 -0
- package/examples/saucedemo/.waygraph-auto/8337b6ad.log +0 -0
- package/examples/saucedemo/.waygraph-auto/8493928e.log +0 -0
- package/examples/saucedemo/.waygraph-auto/84dc6480.log +6 -0
- package/examples/saucedemo/.waygraph-auto/853bde43.log +0 -0
- package/examples/saucedemo/.waygraph-auto/86350ea6.log +22 -0
- package/examples/saucedemo/.waygraph-auto/86bb598a.log +0 -0
- package/examples/saucedemo/.waygraph-auto/86d09876.log +22 -0
- package/examples/saucedemo/.waygraph-auto/878ad01b.log +4 -0
- package/examples/saucedemo/.waygraph-auto/87c88ba5.log +0 -0
- package/examples/saucedemo/.waygraph-auto/87cb80ff.log +0 -0
- package/examples/saucedemo/.waygraph-auto/880b2e78.log +6 -0
- package/examples/saucedemo/.waygraph-auto/88527936.log +5 -0
- package/examples/saucedemo/.waygraph-auto/88eda676.log +0 -0
- package/examples/saucedemo/.waygraph-auto/893023ea.log +5 -0
- package/examples/saucedemo/.waygraph-auto/89416718.log +0 -0
- package/examples/saucedemo/.waygraph-auto/8996a857.log +6 -0
- package/examples/saucedemo/.waygraph-auto/8a08b68d.log +6 -0
- package/examples/saucedemo/.waygraph-auto/8a64ba0f.log +6 -0
- package/examples/saucedemo/.waygraph-auto/8b1cc2aa.log +6 -0
- package/examples/saucedemo/.waygraph-auto/8b73d13e.log +6 -0
- package/examples/saucedemo/.waygraph-auto/8d9e5cd2.log +21 -0
- package/examples/saucedemo/.waygraph-auto/8ec7d260.log +0 -0
- package/examples/saucedemo/.waygraph-auto/8ed43279.log +0 -0
- package/examples/saucedemo/.waygraph-auto/93acae32.log +5 -0
- package/examples/saucedemo/.waygraph-auto/96321a08.log +0 -0
- package/examples/saucedemo/.waygraph-auto/9742b6c2.log +6 -0
- package/examples/saucedemo/.waygraph-auto/99cc93eb.log +6 -0
- package/examples/saucedemo/.waygraph-auto/9cbfbedc.log +0 -0
- package/examples/saucedemo/.waygraph-auto/9dc147d2.log +22 -0
- package/examples/saucedemo/.waygraph-auto/a215a395.log +22 -0
- package/examples/saucedemo/.waygraph-auto/a23b7086.log +4 -0
- package/examples/saucedemo/.waygraph-auto/a35bd5ec.log +0 -0
- package/examples/saucedemo/.waygraph-auto/a68995e9.log +22 -0
- package/examples/saucedemo/.waygraph-auto/a6e4f936.log +22 -0
- package/examples/saucedemo/.waygraph-auto/a7da862b.log +0 -0
- package/examples/saucedemo/.waygraph-auto/a82e2a48.log +0 -0
- package/examples/saucedemo/.waygraph-auto/a952eb91.log +0 -0
- package/examples/saucedemo/.waygraph-auto/a9559653.log +5 -0
- package/examples/saucedemo/.waygraph-auto/aa478de2.log +0 -0
- package/examples/saucedemo/.waygraph-auto/ac350fc7.log +20 -0
- package/examples/saucedemo/.waygraph-auto/acc1b63a.log +0 -0
- package/examples/saucedemo/.waygraph-auto/ad12d191.log +0 -0
- package/examples/saucedemo/.waygraph-auto/b04638f4.log +6 -0
- package/examples/saucedemo/.waygraph-auto/b48863e5.log +22 -0
- package/examples/saucedemo/.waygraph-auto/b56968e1.log +6 -0
- package/examples/saucedemo/.waygraph-auto/b64e0620.log +20 -0
- package/examples/saucedemo/.waygraph-auto/b86a6218.log +6 -0
- package/examples/saucedemo/.waygraph-auto/b8e9e956.log +22 -0
- package/examples/saucedemo/.waygraph-auto/b9b310ff.log +21 -0
- package/examples/saucedemo/.waygraph-auto/bc111745.log +22 -0
- package/examples/saucedemo/.waygraph-auto/bf7a77a2.log +0 -0
- package/examples/saucedemo/.waygraph-auto/c0d6f353.log +21 -0
- package/examples/saucedemo/.waygraph-auto/c0febcf2.log +20 -0
- package/examples/saucedemo/.waygraph-auto/c4c52998.log +6 -0
- package/examples/saucedemo/.waygraph-auto/c809ceb4.log +22 -0
- package/examples/saucedemo/.waygraph-auto/ca6de7e7.log +0 -0
- package/examples/saucedemo/.waygraph-auto/ca8561bc.log +0 -0
- package/examples/saucedemo/.waygraph-auto/cb86d45b.log +0 -0
- package/examples/saucedemo/.waygraph-auto/cb9a1978.log +6 -0
- package/examples/saucedemo/.waygraph-auto/cbbc689c.log +6 -0
- package/examples/saucedemo/.waygraph-auto/cd88364b.log +0 -0
- package/examples/saucedemo/.waygraph-auto/cd919e1d.log +0 -0
- package/examples/saucedemo/.waygraph-auto/cfff9eef.log +20 -0
- package/examples/saucedemo/.waygraph-auto/d0f59b21.log +4 -0
- package/examples/saucedemo/.waygraph-auto/d1195079.log +20 -0
- package/examples/saucedemo/.waygraph-auto/d2ef067a.log +5 -0
- package/examples/saucedemo/.waygraph-auto/d425471f.log +6 -0
- package/examples/saucedemo/.waygraph-auto/d5293921.log +0 -0
- package/examples/saucedemo/.waygraph-auto/d62a22c2.log +21 -0
- package/examples/saucedemo/.waygraph-auto/d6d1761f.log +22 -0
- package/examples/saucedemo/.waygraph-auto/d6d5f411.log +22 -0
- package/examples/saucedemo/.waygraph-auto/d6df2771.log +6 -0
- package/examples/saucedemo/.waygraph-auto/d7075012.log +21 -0
- package/examples/saucedemo/.waygraph-auto/d9ddc297.log +0 -0
- package/examples/saucedemo/.waygraph-auto/db4ac845.log +0 -0
- package/examples/saucedemo/.waygraph-auto/db6d7774.log +0 -0
- package/examples/saucedemo/.waygraph-auto/db839827.log +5 -0
- package/examples/saucedemo/.waygraph-auto/dde5e859.log +22 -0
- package/examples/saucedemo/.waygraph-auto/de8cac58.log +0 -0
- package/examples/saucedemo/.waygraph-auto/dedfcb18.log +0 -0
- package/examples/saucedemo/.waygraph-auto/def4d9b1.log +0 -0
- package/examples/saucedemo/.waygraph-auto/e1549e40.log +0 -0
- package/examples/saucedemo/.waygraph-auto/e1b0676d.log +21 -0
- package/examples/saucedemo/.waygraph-auto/e5111463.log +0 -0
- package/examples/saucedemo/.waygraph-auto/e5fc1d7c.log +5 -0
- package/examples/saucedemo/.waygraph-auto/e6fd2202.log +0 -0
- package/examples/saucedemo/.waygraph-auto/edaa806d.log +0 -0
- package/examples/saucedemo/.waygraph-auto/edaf33de.log +0 -0
- package/examples/saucedemo/.waygraph-auto/edd40cbb.log +20 -0
- package/examples/saucedemo/.waygraph-auto/eddfbffc.log +6 -0
- package/examples/saucedemo/.waygraph-auto/ee9fa1ad.log +5 -0
- package/examples/saucedemo/.waygraph-auto/ef319474.log +22 -0
- package/examples/saucedemo/.waygraph-auto/f28eee8d.log +0 -0
- package/examples/saucedemo/.waygraph-auto/f33bde90.log +0 -0
- package/examples/saucedemo/.waygraph-auto/f6ba7cb4.log +6 -0
- package/examples/saucedemo/.waygraph-auto/f7ac4d62.log +20 -0
- package/examples/saucedemo/.waygraph-auto/f929bb79.log +0 -0
- package/examples/saucedemo/.waygraph-auto/f92d4c6c.log +22 -0
- package/examples/saucedemo/.waygraph-auto/f92faf40.log +5 -0
- package/examples/saucedemo/.waygraph-auto/fa784369.log +21 -0
- package/examples/saucedemo/.waygraph-auto/fb55f723.log +20 -0
- package/examples/saucedemo/.waygraph-auto/fba3b738.log +0 -0
- package/examples/saucedemo/.waygraph-auto/fdf66b74.log +0 -0
- package/examples/saucedemo/.waygraph-auto/ffdf2854.log +6 -0
- package/examples/saucedemo/README.md +13 -2
- package/examples/saucedemo/package.json +4 -0
- package/examples/saucedemo/src/flows/api-demo.flow.ts +37 -0
- package/examples/saucedemo/src/flows/checkout.flow.ts +34 -11
- package/package.json +5 -3
- package/templates/scaffold/src/flows/shop.flow.ts +42 -27
- package/dist/auto-explore-run.d.ts +0 -37
- package/dist/auto-explore-run.js +0 -670
- package/dist/auto-explore.d.ts +0 -57
- package/dist/auto-explore.js +0 -376
- package/dist/auto-session-ipc.d.ts +0 -150
- package/dist/auto-session-ipc.js +0 -497
- package/dist/block-inject.d.ts +0 -15
- package/dist/block-inject.js +0 -91
- package/dist/browser.d.ts +0 -15
- package/dist/browser.js +0 -29
- package/dist/coverage-gap.d.ts +0 -11
- package/dist/coverage-gap.js +0 -119
- package/dist/engine.d.ts +0 -12
- package/dist/engine.js +0 -13
- package/dist/graph.d.ts +0 -92
- package/dist/graph.js +0 -467
- package/dist/highlight-shorthand.d.ts +0 -24
- package/dist/highlight-shorthand.js +0 -30
- package/dist/map-check.d.ts +0 -18
- package/dist/map-check.js +0 -140
- package/dist/overlay-beacon.d.ts +0 -44
- package/dist/overlay-beacon.js +0 -85
- package/dist/pilot.d.ts +0 -54
- package/dist/pilot.js +0 -80
- package/dist/practices-check.d.ts +0 -14
- package/dist/practices-check.js +0 -195
- package/dist/traverse-coverage.d.ts +0 -59
- package/dist/traverse-coverage.js +0 -127
- package/dist/traverse-lease.d.ts +0 -18
- package/dist/traverse-lease.js +0 -62
- package/dist/traverse-run.d.ts +0 -47
- package/dist/traverse-run.js +0 -439
- package/dist/ui/compose.d.ts +0 -4
- package/dist/ui/compose.js +0 -7
- /package/dist/{verbose-log.d.ts → auto-session/verbose-log.d.ts} +0 -0
- /package/dist/{verbose-log.js → auto-session/verbose-log.js} +0 -0
- /package/dist/{agent-dive.d.ts → commands/agent-dive-scaffold.d.ts} +0 -0
- /package/dist/{engine/core.d.ts → core/block.d.ts} +0 -0
- /package/dist/{engine → core}/blocks/nav.d.ts +0 -0
- /package/dist/{engine → core}/blocks/page.d.ts +0 -0
- /package/dist/{engine → core}/branch-regression.d.ts +0 -0
- /package/dist/{engine → core}/compose.d.ts +0 -0
- /package/dist/{engine → core}/config.d.ts +0 -0
- /package/dist/{engine → core}/config.js +0 -0
- /package/dist/{engine → core}/flow.d.ts +0 -0
- /package/dist/{engine → core}/locate.d.ts +0 -0
- /package/dist/{engine → core}/locate.js +0 -0
- /package/dist/{engine → core}/run-graph.d.ts +0 -0
|
@@ -1,35 +1,14 @@
|
|
|
1
1
|
import { createInterface } from "node:readline/promises";
|
|
2
2
|
import { ensureShadowRoot } from "../ui/shadow.js";
|
|
3
3
|
import { stdin as input, stdout as output } from "node:process";
|
|
4
|
-
import {
|
|
5
|
-
import { join } from "node:path";
|
|
6
|
-
import { Engine, start, end, locate } from "../engine.js";
|
|
4
|
+
import { Engine, start, end, locate } from "../core.js";
|
|
7
5
|
import { MemPage } from "../mem-page.js";
|
|
8
6
|
import { buildExploreContext, buildExploreMenu, } from "./auto-explore.js";
|
|
9
|
-
import { installDemoChrome, instrumentInteractionHighlighting } from "
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
|
|
15
|
-
const fromPkg = pkg.waygraph?.baseUrl ?? pkg.waygraph?.baseURL;
|
|
16
|
-
if (typeof fromPkg === "string" && fromPkg.trim())
|
|
17
|
-
return fromPkg.trim();
|
|
18
|
-
}
|
|
19
|
-
catch {
|
|
20
|
-
/* ignore */
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
for (const name of ["playwright.config.ts", "playwright.config.mts", "playwright.config.js"]) {
|
|
24
|
-
const p = join(projectDir, name);
|
|
25
|
-
if (!existsSync(p))
|
|
26
|
-
continue;
|
|
27
|
-
const m = readFileSync(p, "utf-8").match(/baseURL\s*:\s*["']([^"']+)["']/);
|
|
28
|
-
if (m?.[1])
|
|
29
|
-
return m[1];
|
|
30
|
-
}
|
|
31
|
-
return undefined;
|
|
32
|
-
}
|
|
7
|
+
import { installDemoChrome, instrumentInteractionHighlighting } from "./step-overlay.js";
|
|
8
|
+
import { resolveBaseUrl } from "../config.js";
|
|
9
|
+
/** See `../config.js`'s own `resolveBaseUrl` - re-exported so existing importers of this module
|
|
10
|
+
* don't need to change their import path. */
|
|
11
|
+
export { resolveBaseUrl };
|
|
33
12
|
/** URL-first - several Checkpoints share nav verify traits (e.g. LoggedIn = /inventory.html). */
|
|
34
13
|
async function inferCheckpointFromUrl(page) {
|
|
35
14
|
try {
|
|
@@ -355,6 +334,37 @@ async function headfulPick(page, menu, library, mem, waitPick) {
|
|
|
355
334
|
memIdx++;
|
|
356
335
|
}
|
|
357
336
|
}
|
|
337
|
+
// Pre-resolve every candidate's hover-preview box THROUGH Playwright's own locator (>>
|
|
338
|
+
// piercing / :has-text() / :visible support), once, here on the Node side - not a raw selector
|
|
339
|
+
// string handed to the page for a per-mouseenter document.querySelector to fail silently on
|
|
340
|
+
// (same class of bug as rings.js's showRing; see its own comment for the full story). A
|
|
341
|
+
// mouseenter handler can't itself await a Node-side locator without visible hover lag, so the
|
|
342
|
+
// box is embedded as a data attribute instead and the in-page handler just reads it.
|
|
343
|
+
const hlSelectors = new Set();
|
|
344
|
+
for (const section of menu.sections) {
|
|
345
|
+
for (const c of section.edges) {
|
|
346
|
+
const entry = library.get(c.block);
|
|
347
|
+
const navClick = entry?.block?.__waygraphNavClick;
|
|
348
|
+
const hl = c.instanceOption?.highlight ?? (typeof navClick === "string" ? navClick : undefined);
|
|
349
|
+
if (hl)
|
|
350
|
+
hlSelectors.add(hl);
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
const hlBoxes = new Map();
|
|
354
|
+
await Promise.all([...hlSelectors].map(async (sel) => {
|
|
355
|
+
const loc = page.locator(sel).first();
|
|
356
|
+
const box = (await loc.count().catch(() => 0)) > 0
|
|
357
|
+
? await loc
|
|
358
|
+
.evaluate((el) => {
|
|
359
|
+
const r = el.getBoundingClientRect();
|
|
360
|
+
if (r.width < 1 && r.height < 1)
|
|
361
|
+
return null;
|
|
362
|
+
return { x: r.x, y: r.y, width: r.width, height: r.height };
|
|
363
|
+
})
|
|
364
|
+
.catch(() => null)
|
|
365
|
+
: null;
|
|
366
|
+
hlBoxes.set(sel, box);
|
|
367
|
+
}));
|
|
358
368
|
html += `<div class="wg-actions">`;
|
|
359
369
|
let idx = 0;
|
|
360
370
|
if (menu.sections.length === 0) {
|
|
@@ -366,7 +376,8 @@ async function headfulPick(page, menu, library, mem, waitPick) {
|
|
|
366
376
|
const entry = library.get(c.block);
|
|
367
377
|
const navClick = entry?.block?.__waygraphNavClick;
|
|
368
378
|
const hl = c.instanceOption?.highlight ?? (typeof navClick === "string" ? navClick : undefined);
|
|
369
|
-
const
|
|
379
|
+
const hlBox = hl ? hlBoxes.get(hl) : null;
|
|
380
|
+
const hlAttr = hlBox ? ` data-hl-box='${esc(JSON.stringify(hlBox))}'` : "";
|
|
370
381
|
if (c.label) {
|
|
371
382
|
html += `<button class="wg-act" data-idx="${idx}"${hlAttr}>${esc(c.label)}</button>`;
|
|
372
383
|
}
|
|
@@ -476,14 +487,19 @@ async function headfulPick(page, menu, library, mem, waitPick) {
|
|
|
476
487
|
window.__wgAutoPick?.(idx);
|
|
477
488
|
});
|
|
478
489
|
btn.addEventListener("mouseenter", () => {
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
490
|
+
// Pre-resolved on the Node side via Playwright's own locator (>> piercing / :has-text()
|
|
491
|
+
// support) when this menu was built - see headfulPick's own comment for why a
|
|
492
|
+
// mouseenter handler can't itself round-trip to a Node-side locator per hover.
|
|
493
|
+
const raw = btn.getAttribute("data-hl-box");
|
|
494
|
+
if (!raw || typeof window.__wgPositionRing !== "function") return;
|
|
495
|
+
let box;
|
|
496
|
+
try {
|
|
497
|
+
box = JSON.parse(raw);
|
|
498
|
+
} catch {
|
|
499
|
+
return;
|
|
500
|
+
}
|
|
485
501
|
window.__wgPositionRing(
|
|
486
|
-
|
|
502
|
+
box,
|
|
487
503
|
btn.textContent?.trim()?.slice(0, 80) || "target",
|
|
488
504
|
"auto",
|
|
489
505
|
);
|
|
@@ -540,7 +556,7 @@ async function cliPick(menu, rl) {
|
|
|
540
556
|
export async function runAutoExplore(projectDir, options = {}) {
|
|
541
557
|
lastRunNote = null;
|
|
542
558
|
const cli = options.cli === true;
|
|
543
|
-
const baseURL = options.baseURL ?? resolveBaseUrl(projectDir) ?? process.env.WAYGRAPH_BASE_URL;
|
|
559
|
+
const baseURL = options.baseURL ?? (await resolveBaseUrl(projectDir)) ?? process.env.WAYGRAPH_BASE_URL;
|
|
544
560
|
const startUrl = options.startUrl ?? baseURL;
|
|
545
561
|
const { graph, library } = await buildExploreContext(projectDir, options.blocksSelect ? { blocksSelect: options.blocksSelect } : undefined);
|
|
546
562
|
if (options.blocksSelect) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ensureShadowRoot } from "
|
|
1
|
+
import { ensureShadowRoot } from "../ui/shadow.js";
|
|
2
2
|
const FAVICON = "data:image/svg+xml," +
|
|
3
3
|
encodeURIComponent("<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><circle cx='16' cy='16' r='14' fill='#7C3AED'/></svg>");
|
|
4
4
|
export async function installDemoChrome(page, title = "waygraph auto", options = {}) {
|
package/dist/trait.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Page } from "@playwright/test";
|
|
2
2
|
import type { MemPage } from "./mem-page.js";
|
|
3
|
+
import "urlpattern-polyfill";
|
|
3
4
|
/**
|
|
4
5
|
* A named, independently-reportable check. `check` never runs before `resolve` has
|
|
5
6
|
* already decided the Checkpoint, and it can only confirm or fail loud - it has no
|
package/dist/trait.js
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
// URLPattern is only a Node global from v23.8+ (and even then, Node's own, not a browser's) -
|
|
2
|
+
// CI's Node 20/22 matrix has no global at all. Side-effect import only: the polyfill package sets
|
|
3
|
+
// globalThis.URLPattern itself, but only when one doesn't already exist - so below Node 23.8 this
|
|
4
|
+
// becomes THE global, and from 23.8 up it's a no-op and the native one stays. Playwright's own
|
|
5
|
+
// waitForURL(pattern) checks `pattern instanceof globalThis.URLPattern` internally, so the instance
|
|
6
|
+
// constructed below must always come from whatever ends up on globalThis, not this import
|
|
7
|
+
// directly - a named `import { URLPattern }` gives a fixed class that's a different constructor
|
|
8
|
+
// than the native global on newer Node, and `instanceof` would then fail on those versions.
|
|
9
|
+
import "urlpattern-polyfill";
|
|
1
10
|
/**
|
|
2
11
|
* Common, generic Trait factories - reusable across any Block, not one-off
|
|
3
12
|
* `{ name, check }` objects written inline per Block. Reach for one of these
|
|
@@ -36,6 +45,12 @@ export function urlMatches(pattern) {
|
|
|
36
45
|
// `verify()` case this was originally written for - just via the same
|
|
37
46
|
// mechanism every other Trait already uses instead of its own
|
|
38
47
|
// hardcoded, wrong-context value.
|
|
48
|
+
// Cast, not a bare `urlPattern` reference: @types/node and the polyfill both declare an
|
|
49
|
+
// ambient global `URLPattern` (`skipLibCheck` hides the conflict between them instead of
|
|
50
|
+
// erroring), and they resolve to two DIFFERENT types depending on where in the program the
|
|
51
|
+
// name is looked up - so the very same runtime value that satisfies Playwright's actual
|
|
52
|
+
// (structural, .test()-based) check at runtime fails typechecking as "not assignable" against
|
|
53
|
+
// whichever of the two ambient declarations Playwright's own .d.ts happens to see.
|
|
39
54
|
await page.waitForURL(urlPattern);
|
|
40
55
|
return true;
|
|
41
56
|
},
|
package/dist/traverse/run.js
CHANGED
|
@@ -1,29 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
* Phase B+D: graph traverse (serial or --parallel with --session clone).
|
|
3
|
-
* Walk unused legal edges until leaf / budget / break.
|
|
4
|
-
*/
|
|
5
|
-
import { readFileSync, existsSync } from "node:fs";
|
|
6
|
-
import { join } from "node:path";
|
|
7
|
-
import { Engine, start, end, locate } from "../engine.js";
|
|
1
|
+
import { Engine, start, end, locate } from "../core.js";
|
|
8
2
|
import { MemPage } from "../mem-page.js";
|
|
9
3
|
import { buildExploreContext, buildExploreMenu, } from "../session/auto-explore.js";
|
|
10
4
|
import { defaultMemValueForKey } from "../session/auto-explore-run.js";
|
|
5
|
+
import { resolveBaseUrl } from "../config.js";
|
|
11
6
|
import { EdgeLeaseCoordinator } from "./lease.js";
|
|
12
7
|
import { buildCoverageReport, collectGraphEdgeKeys, defaultCoverageOutPath, formatCoverageLine, writeCoverageReport, } from "./coverage.js";
|
|
13
|
-
function resolveBaseUrl(projectDir) {
|
|
14
|
-
if (process.env.WAYGRAPH_BASE_URL)
|
|
15
|
-
return process.env.WAYGRAPH_BASE_URL;
|
|
16
|
-
const pkgPath = join(projectDir, "package.json");
|
|
17
|
-
if (!existsSync(pkgPath))
|
|
18
|
-
return undefined;
|
|
19
|
-
try {
|
|
20
|
-
const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
|
|
21
|
-
return pkg.waygraph?.baseUrl;
|
|
22
|
-
}
|
|
23
|
-
catch {
|
|
24
|
-
return undefined;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
8
|
function seedMem(library, mem, dataJson) {
|
|
28
9
|
const raw = dataJson ?? process.env.WAYGRAPH_DATA ?? process.env.WAYGRAPH_AUTO_MEM;
|
|
29
10
|
let envParsed = {};
|
|
@@ -257,7 +238,7 @@ export async function runTraverse(projectDir, options = {}) {
|
|
|
257
238
|
const maxVisitsPerEdge = options.maxVisitsPerEdge ?? 1;
|
|
258
239
|
const timeoutMs = options.timeoutMs ?? 15 * 60_000;
|
|
259
240
|
const headed = options.headed === true || process.env.WAYGRAPH_HEADED === "1";
|
|
260
|
-
const baseURL = options.baseURL ?? resolveBaseUrl(projectDir) ?? process.env.WAYGRAPH_BASE_URL;
|
|
241
|
+
const baseURL = options.baseURL ?? (await resolveBaseUrl(projectDir)) ?? process.env.WAYGRAPH_BASE_URL;
|
|
261
242
|
const startUrl = options.startUrl ?? baseURL;
|
|
262
243
|
const minEdgeCoverage = options.minEdgeCoverage != null && Number.isFinite(options.minEdgeCoverage)
|
|
263
244
|
? options.minEdgeCoverage
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { TONES } from "../tokens.js";
|
|
2
|
-
/** Prefix icon for gray (auto) labels. */
|
|
3
|
-
const ROBOT = 'content:"
|
|
2
|
+
/** Prefix icon for gray (auto) labels - a real inline SVG (terminal chevron), not an emoji. */
|
|
3
|
+
const ROBOT = 'content:"";display:inline-block;width:12px;height:12px;margin-right:5px;vertical-align:-1px;' +
|
|
4
|
+
"background-repeat:no-repeat;background-size:contain;" +
|
|
5
|
+
"background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M2.5 3.5l5 4.5-5 4.5M8.5 12.5h5' stroke='white' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\");";
|
|
4
6
|
const toneNames = Object.keys(TONES);
|
|
5
7
|
/** Tone rules for `sel[data-tone=x]{...}` from the token table. */
|
|
6
8
|
function toneRules(sel, decl, only) {
|
package/dist/ui/overlay.css
CHANGED
|
@@ -93,8 +93,14 @@
|
|
|
93
93
|
.wg-ring-el-label[data-tone=danger] { --wg-tone-bg: var(--wg-tone-danger-bg); --wg-tone-fg: var(--wg-tone-danger-fg); }
|
|
94
94
|
.wg-ring-el-label[data-tone=success] { --wg-tone-bg: var(--wg-tone-success-bg); --wg-tone-fg: var(--wg-tone-success-fg); }
|
|
95
95
|
.wg-ring-el-label[data-tone=orange] { --wg-tone-bg: var(--wg-tone-orange-bg); --wg-tone-fg: var(--wg-tone-orange-fg); }
|
|
96
|
-
/* Gray (auto) = a real Playwright-driven instruction - mark it, a human/AI watching can't "see" DOM
|
|
97
|
-
.
|
|
96
|
+
/* Gray (auto) = a real Playwright-driven instruction - mark it, a human/AI watching can't "see" DOM
|
|
97
|
+
state otherwise. A real inline SVG icon (small terminal chevron), not an emoji - emoji rendering
|
|
98
|
+
is font/OS-dependent and reads as an unpolished placeholder next to the rest of this design. */
|
|
99
|
+
.wg-ring-el-label[data-tone=auto]::before {
|
|
100
|
+
content: ""; display: inline-block; width: 12px; height: 12px; margin-right: 5px;
|
|
101
|
+
vertical-align: -1px; background-repeat: no-repeat; background-size: contain;
|
|
102
|
+
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M2.5 3.5l5 4.5-5 4.5M8.5 12.5h5' stroke='white' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
|
|
103
|
+
}
|
|
98
104
|
.wg-ring-el-label[data-size=sm] { font-size: 10px; line-height: 1.25; padding: 4px 7px; border-radius: 5px; }
|
|
99
105
|
.wg-ring-el-label[data-size=lg] { font-size: 16px; line-height: 1.35; padding: 8px 14px; border-radius: 9px; max-width: min(480px, 85vw); }
|
|
100
106
|
.wg-ring-el-label[data-weight=bold] { font-weight: 800; }
|
|
@@ -136,6 +142,9 @@
|
|
|
136
142
|
#wg-banner[data-pos=left] { left: 14px; right: auto; transform: none; }
|
|
137
143
|
#wg-banner[data-pos=center] { left: 50%; right: auto; transform: translateX(-50%); }
|
|
138
144
|
#wg-banner[data-pos=right] { right: 14px; left: auto; transform: none; }
|
|
145
|
+
/* Same "auto opacity" step-back the todo dock already has (.wg-todo-behind) while a ring caption
|
|
146
|
+
is the current focus - added via __wgBannerSetBehind, not just the collision-driven move. */
|
|
147
|
+
#wg-banner.wg-banner-behind { opacity: .42; }
|
|
139
148
|
#wg-banner .wg-banner-tag {
|
|
140
149
|
display: block; font-size: 10px; font-weight: 700; color: var(--wg-accent-soft);
|
|
141
150
|
letter-spacing: .05em; text-transform: uppercase; margin-bottom: 2px;
|
|
@@ -151,7 +160,7 @@
|
|
|
151
160
|
* duplicate of this file's own rules, is consolidated.
|
|
152
161
|
*/
|
|
153
162
|
#wg-pilot-fx-todos {
|
|
154
|
-
position: fixed; z-index: var(--wg-z-fx); top:
|
|
163
|
+
position: fixed; z-index: var(--wg-z-fx); top: 104px; max-width: 280px; max-height: calc(100vh - 132px);
|
|
155
164
|
overflow: auto; font: 12px/1.4 ui-sans-serif, system-ui, sans-serif; color: #fff;
|
|
156
165
|
background: var(--wg-surface); border-radius: var(--wg-radius-md); padding: 10px 12px;
|
|
157
166
|
box-shadow: var(--wg-shadow-dock); pointer-events: auto; transition: opacity .25s ease;
|
|
@@ -181,3 +190,27 @@
|
|
|
181
190
|
background: var(--wg-surface); color: #fff; border-radius: var(--wg-radius-sm);
|
|
182
191
|
box-shadow: 0 2px 8px rgba(0,0,0,.25);
|
|
183
192
|
}
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
/*
|
|
196
|
+
* Bottom subtitle caption (#wg-caption-bar) - a white rounded card, not a full-width dark scrim
|
|
197
|
+
* (matches the rest of the overlay's light "toast" surfaces - banner/panel are the dark violet
|
|
198
|
+
* chrome, this narrates the PAGE itself so it reads as a caption card, not more chrome).
|
|
199
|
+
*/
|
|
200
|
+
#wg-caption-bar {
|
|
201
|
+
position: fixed; z-index: var(--wg-z-focus); left: 0; right: 0; bottom: 0;
|
|
202
|
+
/* Bottom padding clears the collapsed step-pill (#wg-panel, bottom:12px, ~40px tall,
|
|
203
|
+
z-index:2147483647 - always on top) - without it the pill sat right over the caption card,
|
|
204
|
+
both centered at the bottom of the viewport (see #wg-typing-badge's own bottom:88px, same
|
|
205
|
+
reason). */
|
|
206
|
+
padding: 0 6% 64px; display: flex; justify-content: center;
|
|
207
|
+
pointer-events: none; opacity: 0; transform: translateY(6px);
|
|
208
|
+
transition: opacity .3s ease, transform .3s ease;
|
|
209
|
+
}
|
|
210
|
+
#wg-caption-bar.wg-in { opacity: 1; transform: translateY(0); }
|
|
211
|
+
#wg-caption-bar .wg-caption-text {
|
|
212
|
+
font: 500 15px/1.4 var(--wg-font); color: #1c1917; text-align: center;
|
|
213
|
+
max-width: 82%; text-wrap: balance;
|
|
214
|
+
background: #fff; border-radius: var(--wg-radius-lg);
|
|
215
|
+
padding: 10px 18px; box-shadow: var(--wg-shadow-banner);
|
|
216
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
[18:43:31.014] waygraph pilot: stub.before ctx.title("Signing in · mobile")
|
|
2
|
+
[18:43:31.014] waygraph pilot: stub.before ctx.todos n=6 index=0
|
|
3
|
+
[18:43:31.015] waygraph pilot: stub.before ctx.device(mobile)
|
|
4
|
+
[18:43:31.015] waygraph pilot: stub.before ctx.zoom(1.35)
|
|
5
|
+
[18:43:31.015] waygraph pilot: stub.before ring #user-name tone=info label="Username"
|
|
6
|
+
[18:43:31.780] waygraph pilot: stub.after ctx.todos n=6 index=1
|
|
7
|
+
[18:43:32.878] waygraph pilot: stub.before ring #password tone=planned label="Password"
|
|
8
|
+
[18:43:33.035] waygraph pilot: stub.after ctx.todos n=6 index=2
|
|
9
|
+
[18:43:34.170] waygraph pilot: stub.before ring #login-button tone=warning label="Login"
|
|
10
|
+
[18:43:34.393] waygraph pilot: stub.after ctx.title("Inventory · landscape")
|
|
11
|
+
[18:43:34.393] waygraph pilot: stub.after ctx.todos n=6 index=3
|
|
12
|
+
[18:43:34.393] waygraph pilot: stub.after ctx.device(mobile)
|
|
13
|
+
[18:43:34.393] waygraph pilot: stub.after ring .inventory_list tone=success label="Product shelf"
|
|
14
|
+
[18:43:37.076] waygraph pilot: stub.before ctx.title("Open cart · landscape")
|
|
15
|
+
[18:43:37.076] waygraph pilot: stub.before ctx.todos n=6 index=5
|
|
16
|
+
[18:43:37.076] waygraph pilot: stub.before ctx.device(mobile)
|
|
17
|
+
[18:43:37.076] waygraph pilot: stub.before ctx.zoom(1.4)
|
|
18
|
+
[18:43:37.076] waygraph pilot: stub.before ring .shopping_cart_link tone=planned label="Cart"
|
|
19
|
+
[18:43:37.510] waygraph pilot: stub.after ctx.title("Your cart · desktop")
|
|
20
|
+
[18:43:37.511] waygraph pilot: stub.after ring .cart_item tone=success label="Cart items"
|
|
21
|
+
[18:43:37.589] waygraph pilot: ring not painted - selector matched nothing (or a zero-size element): .cart_item
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
[14:01:13.381] waygraph pilot: stub.before ctx.title("Signing in · mobile")
|
|
2
|
+
[14:01:13.382] waygraph pilot: stub.before ctx.todos n=6 index=0
|
|
3
|
+
[14:01:13.382] waygraph pilot: stub.before ctx.device(mobile)
|
|
4
|
+
[14:01:13.382] waygraph pilot: stub.before ctx.zoom(1.35)
|
|
5
|
+
[14:01:13.382] waygraph pilot: stub.before ring #user-name tone=info label="Username"
|
|
6
|
+
[14:01:14.418] waygraph pilot: stub.after ctx.todos n=6 index=1
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
[15:11:57.159] waygraph pilot: stub.before ctx.title("Signing in · mobile")
|
|
2
|
+
[15:11:57.159] waygraph pilot: stub.before ctx.todos n=6 index=0
|
|
3
|
+
[15:11:57.160] waygraph pilot: stub.before ctx.device(mobile)
|
|
4
|
+
[15:11:57.160] waygraph pilot: stub.before ctx.zoom(1.35)
|
|
5
|
+
[15:11:57.160] waygraph pilot: stub.before ring #user-name tone=info label="Username"
|
|
6
|
+
[15:11:58.387] waygraph pilot: stub.after ctx.todos n=6 index=1
|
|
7
|
+
[15:11:59.771] waygraph pilot: stub.before ring #password tone=planned label="Password"
|
|
8
|
+
[15:11:59.868] waygraph pilot: stub.after ctx.todos n=6 index=2
|
|
9
|
+
[15:12:01.498] waygraph pilot: stub.before ring #login-button tone=warning label="Login"
|
|
10
|
+
[15:12:01.761] waygraph pilot: stub.after ctx.title("Inventory · landscape")
|
|
11
|
+
[15:12:01.763] waygraph pilot: stub.after ctx.todos n=6 index=3
|
|
12
|
+
[15:12:01.763] waygraph pilot: stub.after ctx.device(mobile)
|
|
13
|
+
[15:12:01.763] waygraph pilot: stub.after ring .inventory_list tone=success label="Product shelf"
|
|
14
|
+
[15:12:05.024] waygraph pilot: stub.before ctx.title("Open cart · landscape")
|
|
15
|
+
[15:12:05.024] waygraph pilot: stub.before ctx.todos n=6 index=5
|
|
16
|
+
[15:12:05.024] waygraph pilot: stub.before ctx.device(mobile)
|
|
17
|
+
[15:12:05.024] waygraph pilot: stub.before ctx.zoom(1.4)
|
|
18
|
+
[15:12:05.024] waygraph pilot: stub.before ring .shopping_cart_link tone=planned label="Cart"
|
|
19
|
+
[15:12:05.374] waygraph pilot: stub.after ctx.title("Your cart · desktop")
|
|
20
|
+
[15:12:05.374] waygraph pilot: stub.after ring .cart_item tone=success label="Cart items"
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
[10:25:35.405] waygraph pilot: highlight ctx.todos n=3 index=0
|
|
2
|
+
[10:25:35.406] waygraph pilot: highlight ring #user-name tone=planned label="Username"
|
|
3
|
+
[10:25:35.406] waygraph pilot: highlight ring #password tone=info label="Password"
|
|
4
|
+
[10:25:40.761] waygraph pilot: highlight ring #no-such-element-waygraph tone=danger label="Gone"
|
|
5
|
+
[10:25:40.795] waygraph pilot: ring not painted - selector matched nothing (or a zero-size element): #no-such-element-waygraph
|
|
6
|
+
[10:25:44.204] waygraph pilot: highlight ring #login-button tone=success label="Login"
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
[18:22:04.004] waygraph pilot: stub.before ctx.title("Signing in · mobile")
|
|
2
|
+
[18:22:04.004] waygraph pilot: stub.before ctx.todos n=6 index=0
|
|
3
|
+
[18:22:04.005] waygraph pilot: stub.before ctx.device(mobile)
|
|
4
|
+
[18:22:04.005] waygraph pilot: stub.before ctx.zoom(1.35)
|
|
5
|
+
[18:22:04.005] waygraph pilot: stub.before ring #user-name tone=info label="Username"
|
|
6
|
+
[18:22:05.633] waygraph pilot: stub.after ctx.todos n=6 index=1
|
|
File without changes
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
[11:09:34.839] waygraph pilot: stub.before ctx.title("Signing in · mobile")
|
|
2
|
+
[11:09:34.839] waygraph pilot: stub.before ctx.todos n=6 index=0
|
|
3
|
+
[11:09:34.839] waygraph pilot: stub.before ctx.device(mobile)
|
|
4
|
+
[11:09:34.839] waygraph pilot: stub.before ctx.zoom(1.35)
|
|
5
|
+
[11:09:34.839] waygraph pilot: stub.before ring #user-name tone=info label="Username"
|
|
6
|
+
[11:09:35.582] waygraph pilot: stub.after ctx.todos n=6 index=1
|
|
7
|
+
[11:09:38.020] waygraph pilot: stub.before ring #password tone=planned label="Password"
|
|
8
|
+
[11:09:38.142] waygraph pilot: stub.after ctx.todos n=6 index=2
|
|
9
|
+
[11:09:41.474] waygraph pilot: stub.before ring #login-button tone=warning label="Login"
|
|
10
|
+
[11:09:41.984] waygraph pilot: stub.after ctx.title("Inventory · landscape")
|
|
11
|
+
[11:09:41.985] waygraph pilot: stub.after ctx.todos n=6 index=3
|
|
12
|
+
[11:09:41.985] waygraph pilot: stub.after ctx.device(mobile)
|
|
13
|
+
[11:09:41.985] waygraph pilot: stub.after ring .inventory_list tone=success label="Product shelf"
|
|
14
|
+
[11:09:47.467] waygraph pilot: stub.before ctx.title("Pick a product · tablet")
|
|
15
|
+
[11:09:47.467] waygraph pilot: stub.before ctx.todos n=6 index=3
|
|
16
|
+
[11:09:47.467] waygraph pilot: stub.before ctx.device(tablet)
|
|
17
|
+
[11:09:47.467] waygraph pilot: stub.before ctx.zoom(1.35)
|
|
18
|
+
[11:09:47.468] waygraph pilot: stub.before ring div.inventory_item:has(button[data-test="add-to-cart-sauce-labs-backpack"], button[data-test="remove-sauce-labs-backpack"]) .inventory_item_name tone=info label="Sauce Labs Backpack"
|
|
19
|
+
[11:09:47.468] waygraph pilot: stub.before ring [data-test="add-to-cart-sauce-labs-backpack"] tone=success label="Add to cart"
|
|
20
|
+
[11:09:48.774] waygraph pilot: stub.after ctx.title("In the cart")
|
|
21
|
+
[11:09:48.775] waygraph pilot: stub.after ctx.todos n=6 index=4
|
|
22
|
+
[11:09:48.775] waygraph pilot: stub.after ring .shopping_cart_badge tone=success label="Cart badge"
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
[14:52:25.116] waygraph pilot: highlight ctx.todos n=3 index=0
|
|
2
|
+
[14:52:25.117] waygraph pilot: highlight ring #user-name tone=planned label="Username"
|
|
3
|
+
[14:52:25.117] waygraph pilot: highlight ring #password tone=info label="Password"
|
|
4
|
+
[14:52:30.181] waygraph pilot: highlight ring #no-such-element-waygraph tone=danger label="Gone"
|
|
5
|
+
[14:52:32.860] waygraph pilot: highlight ring #login-button tone=success label="Login"
|
|
File without changes
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
[21:17:29.924] waygraph pilot: stub.before ctx.title("Signing in · mobile")
|
|
2
|
+
[21:17:29.924] waygraph pilot: stub.before ctx.todos n=6 index=0
|
|
3
|
+
[21:17:29.925] waygraph pilot: stub.before ctx.device(mobile)
|
|
4
|
+
[21:17:29.925] waygraph pilot: stub.before ctx.zoom(1.35)
|
|
5
|
+
[21:17:29.925] waygraph pilot: stub.before ring #user-name tone=info label="Username"
|
|
6
|
+
[21:17:30.749] waygraph pilot: stub.after ctx.todos n=6 index=1
|
|
7
|
+
[21:17:31.891] waygraph pilot: stub.before ring #password tone=planned label="Password"
|
|
8
|
+
[21:17:31.976] waygraph pilot: stub.after ctx.todos n=6 index=2
|
|
9
|
+
[21:17:33.127] waygraph pilot: stub.before ring #login-button tone=warning label="Login"
|
|
10
|
+
[21:17:33.363] waygraph pilot: stub.after ctx.title("Inventory · landscape")
|
|
11
|
+
[21:17:33.363] waygraph pilot: stub.after ctx.todos n=6 index=3
|
|
12
|
+
[21:17:33.363] waygraph pilot: stub.after ctx.device(mobile)
|
|
13
|
+
[21:17:33.363] waygraph pilot: stub.after ring .inventory_list tone=success label="Product shelf"
|
|
14
|
+
[21:17:35.572] waygraph pilot: stub.before ctx.title("Open cart · landscape")
|
|
15
|
+
[21:17:35.572] waygraph pilot: stub.before ctx.todos n=6 index=5
|
|
16
|
+
[21:17:35.572] waygraph pilot: stub.before ctx.device(mobile)
|
|
17
|
+
[21:17:35.572] waygraph pilot: stub.before ctx.zoom(1.4)
|
|
18
|
+
[21:17:35.572] waygraph pilot: stub.before ring .shopping_cart_link tone=planned label="Cart"
|
|
19
|
+
[21:17:35.828] waygraph pilot: stub.after ctx.title("Your cart · desktop")
|
|
20
|
+
[21:17:35.828] waygraph pilot: stub.after ring .cart_item tone=success label="Cart items"
|
|
21
|
+
[21:17:35.891] waygraph pilot: ring not painted - selector matched nothing (or a zero-size element): .cart_item
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
[10:25:18.860] waygraph pilot: stub.before ctx.title("Signing in · mobile")
|
|
2
|
+
[10:25:18.861] waygraph pilot: stub.before ctx.todos n=6 index=0
|
|
3
|
+
[10:25:18.861] waygraph pilot: stub.before ctx.device(mobile)
|
|
4
|
+
[10:25:18.861] waygraph pilot: stub.before ctx.zoom(1.35)
|
|
5
|
+
[10:25:18.862] waygraph pilot: stub.before ring #user-name tone=info label="Username"
|
|
6
|
+
[10:25:19.866] waygraph pilot: stub.after ctx.todos n=6 index=1
|
|
7
|
+
[10:25:21.296] waygraph pilot: stub.before ring #password tone=planned label="Password"
|
|
8
|
+
[10:25:21.478] waygraph pilot: stub.after ctx.todos n=6 index=2
|
|
9
|
+
[10:25:22.909] waygraph pilot: stub.before ring #login-button tone=warning label="Login"
|
|
10
|
+
[10:25:23.176] waygraph pilot: stub.after ctx.title("Inventory · landscape")
|
|
11
|
+
[10:25:23.176] waygraph pilot: stub.after ctx.todos n=6 index=3
|
|
12
|
+
[10:25:23.176] waygraph pilot: stub.after ctx.device(mobile)
|
|
13
|
+
[10:25:23.176] waygraph pilot: stub.after ring .inventory_list tone=success label="Product shelf"
|
|
14
|
+
[10:25:25.875] waygraph pilot: stub.before ctx.title("Open cart · landscape")
|
|
15
|
+
[10:25:25.875] waygraph pilot: stub.before ctx.todos n=6 index=5
|
|
16
|
+
[10:25:25.875] waygraph pilot: stub.before ctx.device(mobile)
|
|
17
|
+
[10:25:25.875] waygraph pilot: stub.before ctx.zoom(1.4)
|
|
18
|
+
[10:25:25.875] waygraph pilot: stub.before ring .shopping_cart_link tone=planned label="Cart"
|
|
19
|
+
[10:25:26.216] waygraph pilot: stub.after ctx.title("Your cart · desktop")
|
|
20
|
+
[10:25:26.224] waygraph pilot: stub.after ring .cart_item tone=success label="Cart items"
|
|
21
|
+
[10:25:26.263] waygraph pilot: ring not painted - selector matched nothing (or a zero-size element): .cart_item
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
[21:17:15.760] waygraph pilot: highlight ring #user-name tone=planned label="Username"
|
|
2
|
+
[21:17:15.760] waygraph pilot: highlight ring #password tone=info label="Password"
|
|
3
|
+
[21:17:15.760] waygraph pilot: highlight ring #login-button tone=success label="Login"
|
|
4
|
+
[21:17:20.189] waygraph pilot: highlight ring #user-name tone=planned label="Username"
|
|
File without changes
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
[16:11:45.876] waygraph pilot: highlight ctx.todos n=3 index=0
|
|
2
|
+
[16:11:45.876] waygraph pilot: highlight ring #user-name tone=planned label="Username"
|
|
3
|
+
[16:11:45.876] waygraph pilot: highlight ring #password tone=info label="Password"
|
|
4
|
+
[16:11:48.257] waygraph pilot: highlight ring #no-such-element-waygraph tone=danger label="Gone"
|
|
5
|
+
[16:11:49.767] waygraph pilot: highlight ring #login-button tone=success label="Login"
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
[16:26:28.654] waygraph pilot: highlight ctx.todos n=3 index=0
|
|
2
|
+
[16:26:28.656] waygraph pilot: highlight ring #user-name tone=planned label="Username"
|
|
3
|
+
[16:26:28.659] waygraph pilot: highlight ring #password tone=info label="Password"
|
|
4
|
+
[16:26:32.406] waygraph pilot: highlight ring #no-such-element-waygraph tone=danger label="Gone"
|
|
5
|
+
[16:26:34.485] waygraph pilot: highlight ring #login-button tone=success label="Login"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
[16:29:47.576] waygraph pilot: stub.before ctx.title("Signing in · mobile")
|
|
2
|
+
[16:29:47.576] waygraph pilot: stub.before ctx.todos n=6 index=0
|
|
3
|
+
[16:29:47.576] waygraph pilot: stub.before ctx.device(mobile)
|
|
4
|
+
[16:29:47.576] waygraph pilot: stub.before ctx.zoom(1.35)
|
|
5
|
+
[16:29:47.576] waygraph pilot: stub.before ring #user-name tone=info label="Username"
|
|
6
|
+
[16:29:48.942] waygraph pilot: stub.after ctx.todos n=6 index=1
|
|
7
|
+
[16:29:50.794] waygraph pilot: stub.before ring #password tone=planned label="Password"
|
|
8
|
+
[16:29:50.965] waygraph pilot: stub.after ctx.todos n=6 index=2
|
|
9
|
+
[16:29:52.406] waygraph pilot: stub.before ring #login-button tone=warning label="Login"
|
|
10
|
+
[16:29:52.726] waygraph pilot: stub.after ctx.title("Inventory · landscape")
|
|
11
|
+
[16:29:52.727] waygraph pilot: stub.after ctx.todos n=6 index=3
|
|
12
|
+
[16:29:52.727] waygraph pilot: stub.after ctx.device(mobile)
|
|
13
|
+
[16:29:52.727] waygraph pilot: stub.after ring .inventory_list tone=success label="Product shelf"
|
|
14
|
+
[16:29:54.148] waygraph pilot: ring not painted - selector matched nothing (or a zero-size element): .inventory_list
|
|
15
|
+
[16:29:58.462] waygraph pilot: stub.before ctx.title("Open cart · landscape")
|
|
16
|
+
[16:29:58.462] waygraph pilot: stub.before ctx.todos n=6 index=5
|
|
17
|
+
[16:29:58.462] waygraph pilot: stub.before ctx.device(mobile)
|
|
18
|
+
[16:29:58.462] waygraph pilot: stub.before ctx.zoom(1.4)
|
|
19
|
+
[16:29:58.462] waygraph pilot: stub.before ring .shopping_cart_link tone=planned label="Cart"
|
|
20
|
+
[16:29:58.870] waygraph pilot: stub.after ctx.title("Your cart · desktop")
|
|
21
|
+
[16:29:58.871] waygraph pilot: stub.after ring .cart_item tone=success label="Cart items"
|
|
22
|
+
[16:29:58.934] waygraph pilot: ring not painted - selector matched nothing (or a zero-size element): .cart_item
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
[18:30:36.145] waygraph pilot: highlight ctx.todos n=3 index=0
|
|
2
|
+
[18:30:36.145] waygraph pilot: highlight ring #user-name tone=planned label="Username"
|
|
3
|
+
[18:30:36.145] waygraph pilot: highlight ring #password tone=info label="Password"
|
|
4
|
+
[18:30:39.932] waygraph pilot: highlight ring #no-such-element-waygraph tone=danger label="Gone"
|
|
5
|
+
[18:30:39.969] waygraph pilot: ring not painted - selector matched nothing (or a zero-size element): #no-such-element-waygraph
|
|
6
|
+
[18:30:42.370] waygraph pilot: highlight ring #login-button tone=success label="Login"
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
[23:45:06.157] waygraph pilot: highlight ctx.todos n=3 index=0
|
|
2
|
+
[23:45:06.157] waygraph pilot: highlight ring #user-name tone=planned label="Username"
|
|
3
|
+
[23:45:06.157] waygraph pilot: highlight ring #password tone=info label="Password"
|
|
4
|
+
[23:45:10.675] waygraph pilot: highlight ring #no-such-element-waygraph tone=danger label="Gone"
|
|
5
|
+
[23:45:10.718] waygraph pilot: ring not painted - selector matched nothing (or a zero-size element): #no-such-element-waygraph
|
|
6
|
+
[23:45:13.465] waygraph pilot: highlight ring #login-button tone=success label="Login"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
[21:21:37.246] waygraph pilot: highlight ctx.todos n=3 index=0
|
|
2
|
+
[21:21:37.246] waygraph pilot: highlight ring #user-name tone=planned label="Username"
|
|
3
|
+
[21:21:37.246] waygraph pilot: highlight ring #password tone=info label="Password"
|
|
4
|
+
[21:21:41.392] waygraph pilot: highlight ring #no-such-element-waygraph tone=danger label="Gone"
|
|
5
|
+
[21:21:41.436] waygraph pilot: ring not painted - selector matched nothing (or a zero-size element): #no-such-element-waygraph
|
|
6
|
+
[21:21:44.243] waygraph pilot: highlight ring #login-button tone=success label="Login"
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
[16:29:18.968] waygraph pilot: highlight ring #user-name tone=planned label="Username"
|
|
2
|
+
[16:29:18.969] waygraph pilot: highlight ring #password tone=info label="Password"
|
|
3
|
+
[16:29:18.969] waygraph pilot: highlight ring #login-button tone=success label="Login"
|
|
4
|
+
[16:29:23.306] waygraph pilot: highlight ring #user-name tone=planned label="Username"
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
[18:15:25.473] waygraph pilot: highlight ctx.todos n=3 index=0
|
|
2
|
+
[18:15:25.474] waygraph pilot: highlight ring #user-name tone=planned label="Username"
|
|
3
|
+
[18:15:25.474] waygraph pilot: highlight ring #password tone=info label="Password"
|
|
4
|
+
[18:15:29.893] waygraph pilot: highlight ring #no-such-element-waygraph tone=danger label="Gone"
|
|
5
|
+
[18:15:59.935] waygraph pilot: ring not painted - selector matched nothing (or a zero-size element): #no-such-element-waygraph
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
[17:00:37.043] waygraph pilot: stub.before ctx.title("Signing in · mobile")
|
|
2
|
+
[17:00:37.044] waygraph pilot: stub.before ctx.todos n=6 index=0
|
|
3
|
+
[17:00:37.045] waygraph pilot: stub.before ctx.device(mobile)
|
|
4
|
+
[17:00:37.046] waygraph pilot: stub.before ctx.zoom(1.35)
|
|
5
|
+
[17:00:37.046] waygraph pilot: stub.before ring #user-name tone=info label="Username"
|
|
6
|
+
[17:00:38.833] waygraph pilot: stub.after ctx.todos n=6 index=1
|
|
7
|
+
[17:00:42.333] waygraph pilot: stub.before ring #password tone=planned label="Password"
|
|
8
|
+
[17:00:42.621] waygraph pilot: stub.after ctx.todos n=6 index=2
|
|
9
|
+
[17:00:45.360] waygraph pilot: stub.before ring #login-button tone=warning label="Login"
|
|
10
|
+
[17:00:45.661] waygraph pilot: stub.after ctx.title("Inventory · landscape")
|
|
11
|
+
[17:00:45.661] waygraph pilot: stub.after ctx.todos n=6 index=3
|
|
12
|
+
[17:00:45.662] waygraph pilot: stub.after ctx.device(mobile)
|
|
13
|
+
[17:00:45.662] waygraph pilot: stub.after ring .inventory_list tone=success label="Product shelf"
|
|
14
|
+
[17:00:50.559] waygraph pilot: stub.before ctx.title("Open cart · landscape")
|
|
15
|
+
[17:00:50.559] waygraph pilot: stub.before ctx.todos n=6 index=5
|
|
16
|
+
[17:00:50.559] waygraph pilot: stub.before ctx.device(mobile)
|
|
17
|
+
[17:00:50.559] waygraph pilot: stub.before ctx.zoom(1.4)
|
|
18
|
+
[17:00:50.559] waygraph pilot: stub.before ring .shopping_cart_link tone=planned label="Cart"
|
|
19
|
+
[17:00:51.181] waygraph pilot: stub.after ctx.title("Your cart · desktop")
|
|
20
|
+
[17:00:51.181] waygraph pilot: stub.after ring .cart_item tone=success label="Cart items"
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
[18:39:40.816] waygraph pilot: highlight ring #user-name tone=planned label="Username"
|
|
2
|
+
[18:39:40.816] waygraph pilot: highlight ring #password tone=info label="Password"
|
|
3
|
+
[18:39:40.816] waygraph pilot: highlight ring #login-button tone=success label="Login"
|
|
4
|
+
[18:39:43.269] waygraph pilot: highlight ring #user-name tone=planned label="Username"
|
|
File without changes
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
[14:57:24.022] waygraph pilot: stub.before ctx.title("Signing in · mobile")
|
|
2
|
+
[14:57:24.023] waygraph pilot: stub.before ctx.todos n=6 index=0
|
|
3
|
+
[14:57:24.024] waygraph pilot: stub.before ctx.device(mobile)
|
|
4
|
+
[14:57:24.024] waygraph pilot: stub.before ctx.zoom(1.35)
|
|
5
|
+
[14:57:24.024] waygraph pilot: stub.before ring #user-name tone=info label="Username"
|
|
6
|
+
[14:57:25.406] waygraph pilot: stub.after ctx.todos n=6 index=1
|
|
7
|
+
[14:57:28.612] waygraph pilot: stub.before ring #password tone=planned label="Password"
|
|
8
|
+
[14:57:28.798] waygraph pilot: stub.after ctx.todos n=6 index=2
|
|
9
|
+
[14:57:31.717] waygraph pilot: stub.before ring #login-button tone=warning label="Login"
|
|
10
|
+
[14:57:32.072] waygraph pilot: stub.after ctx.title("Inventory · landscape")
|
|
11
|
+
[14:57:32.072] waygraph pilot: stub.after ctx.todos n=6 index=3
|
|
12
|
+
[14:57:32.072] waygraph pilot: stub.after ctx.device(mobile)
|
|
13
|
+
[14:57:32.073] waygraph pilot: stub.after ring .inventory_list tone=success label="Product shelf"
|
|
14
|
+
[14:57:39.956] waygraph pilot: stub.before ctx.title("Pick a product · tablet")
|
|
15
|
+
[14:57:39.957] waygraph pilot: stub.before ctx.todos n=6 index=3
|
|
16
|
+
[14:57:39.957] waygraph pilot: stub.before ctx.device(tablet)
|
|
17
|
+
[14:57:39.957] waygraph pilot: stub.before ctx.zoom(1.35)
|
|
18
|
+
[14:57:39.957] waygraph pilot: stub.before ring div.inventory_item:has(button[data-test="add-to-cart-sauce-labs-backpack"], button[data-test="remove-sauce-labs-backpack"]) .inventory_item_name tone=info label="Sauce Labs Backpack"
|
|
19
|
+
[14:57:39.957] waygraph pilot: stub.before ring [data-test="add-to-cart-sauce-labs-backpack"] tone=success label="Add to cart"
|
|
20
|
+
[14:57:41.454] waygraph pilot: stub.after ctx.title("In the cart")
|
|
21
|
+
[14:57:41.455] waygraph pilot: stub.after ctx.todos n=6 index=4
|
|
22
|
+
[14:57:41.455] waygraph pilot: stub.after ring .shopping_cart_badge tone=success label="Cart badge"
|