@jevitate/cli 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai-cli.d.ts +31 -11
- package/dist/ai-cli.js +100 -67
- package/dist/ai-cli.js.map +1 -1
- package/dist/author-journey-cli.js +3 -1
- package/dist/author-journey-cli.js.map +1 -1
- package/dist/bin.js +48218 -39969
- package/dist/browser-run-options.d.ts +32 -1
- package/dist/browser-run-options.js +69 -0
- package/dist/browser-run-options.js.map +1 -1
- package/dist/build-info.generated.js +2 -2
- package/dist/campaign-api.d.ts +151 -0
- package/dist/campaign-api.js +446 -0
- package/dist/campaign-api.js.map +1 -0
- package/dist/campaign-cli.d.ts +6 -0
- package/dist/campaign-cli.js +66 -0
- package/dist/campaign-cli.js.map +1 -0
- package/dist/check-api.js +3 -2
- package/dist/check-api.js.map +1 -1
- package/dist/check-budget.js +2 -1
- package/dist/check-budget.js.map +1 -1
- package/dist/check-execute.d.ts +4 -0
- package/dist/check-execute.js +41 -6
- package/dist/check-execute.js.map +1 -1
- package/dist/check-plan.d.ts +5 -0
- package/dist/check-plan.js +72 -4
- package/dist/check-plan.js.map +1 -1
- package/dist/check-suite.d.ts +14 -1
- package/dist/check-suite.js +26 -1
- package/dist/check-suite.js.map +1 -1
- package/dist/cli-output.d.ts +4 -0
- package/dist/cli-output.js +52 -5
- package/dist/cli-output.js.map +1 -1
- package/dist/cli-shared.d.ts +13 -3
- package/dist/cli-shared.js +52 -7
- package/dist/cli-shared.js.map +1 -1
- package/dist/defect-evidence.js +6 -3
- package/dist/defect-evidence.js.map +1 -1
- package/dist/demo-aspect-api.js +2 -1
- package/dist/demo-aspect-api.js.map +1 -1
- package/dist/demo-aspect-cli.js +3 -1
- package/dist/demo-aspect-cli.js.map +1 -1
- package/dist/demo-capture.d.ts +37 -3
- package/dist/demo-capture.js +119 -20
- package/dist/demo-capture.js.map +1 -1
- package/dist/explore-adversarial.d.ts +11 -4
- package/dist/explore-adversarial.js +21 -12
- package/dist/explore-adversarial.js.map +1 -1
- package/dist/explore-cli.js +262 -26
- package/dist/explore-cli.js.map +1 -1
- package/dist/explore-coverage.d.ts +17 -2
- package/dist/explore-coverage.js +19 -13
- package/dist/explore-coverage.js.map +1 -1
- package/dist/explore-feature.d.ts +0 -2
- package/dist/explore-feature.js +6 -8
- package/dist/explore-feature.js.map +1 -1
- package/dist/explore-goal.d.ts +25 -7
- package/dist/explore-goal.js +61 -18
- package/dist/explore-goal.js.map +1 -1
- package/dist/explore-shared.d.ts +27 -2
- package/dist/explore-shared.js +21 -1
- package/dist/explore-shared.js.map +1 -1
- package/dist/fixture-auth.d.ts +13 -2
- package/dist/fixture-auth.js +19 -6
- package/dist/fixture-auth.js.map +1 -1
- package/dist/fixture-cli.d.ts +29 -0
- package/dist/fixture-cli.js +121 -7
- package/dist/fixture-cli.js.map +1 -1
- package/dist/github-issue-filer.js +2 -1
- package/dist/github-issue-filer.js.map +1 -1
- package/dist/host-health-run.d.ts +2 -1
- package/dist/host-health-run.js +8 -2
- package/dist/host-health-run.js.map +1 -1
- package/dist/init-cli.js +34 -5
- package/dist/init-cli.js.map +1 -1
- package/dist/init-keys.d.ts +11 -0
- package/dist/init-keys.js +5 -2
- package/dist/init-keys.js.map +1 -1
- package/dist/journey-annotate-api.js +17 -4
- package/dist/journey-annotate-api.js.map +1 -1
- package/dist/journey-annotate-cli.js +3 -1
- package/dist/journey-annotate-cli.js.map +1 -1
- package/dist/journey-api.d.ts +26 -1
- package/dist/journey-api.js +51 -25
- package/dist/journey-api.js.map +1 -1
- package/dist/journey-cli.d.ts +1 -1
- package/dist/journey-cli.js +44 -3
- package/dist/journey-cli.js.map +1 -1
- package/dist/journey-demo-api.d.ts +2 -0
- package/dist/journey-demo-api.js +23 -10
- package/dist/journey-demo-api.js.map +1 -1
- package/dist/journey-demo-cli.js +5 -2
- package/dist/journey-demo-cli.js.map +1 -1
- package/dist/journey-prefix.d.ts +194 -0
- package/dist/journey-prefix.js +279 -0
- package/dist/journey-prefix.js.map +1 -0
- package/dist/key-report.d.ts +49 -0
- package/dist/key-report.js +101 -0
- package/dist/key-report.js.map +1 -0
- package/dist/kill-signal.js +0 -1
- package/dist/kill-signal.js.map +1 -1
- package/dist/ledger-api.js +3 -1
- package/dist/ledger-api.js.map +1 -1
- package/dist/log-correlation.d.ts +54 -1
- package/dist/log-correlation.js +83 -14
- package/dist/log-correlation.js.map +1 -1
- package/dist/log-sources.js +6 -5
- package/dist/log-sources.js.map +1 -1
- package/dist/log-trace.d.ts +80 -0
- package/dist/log-trace.js +210 -0
- package/dist/log-trace.js.map +1 -0
- package/dist/logs-retention.js +2 -1
- package/dist/logs-retention.js.map +1 -1
- package/dist/masked-input.d.ts +22 -0
- package/dist/masked-input.js +99 -0
- package/dist/masked-input.js.map +1 -0
- package/dist/mcp-api.d.ts +3 -1
- package/dist/mcp-api.js +49 -7
- package/dist/mcp-api.js.map +1 -1
- package/dist/mcp-args.d.ts +12 -0
- package/dist/mcp-args.js +33 -0
- package/dist/mcp-args.js.map +1 -1
- package/dist/mcp-cli-tools.d.ts +5 -1
- package/dist/mcp-cli-tools.js +73 -16
- package/dist/mcp-cli-tools.js.map +1 -1
- package/dist/mission-api.js +2 -1
- package/dist/mission-api.js.map +1 -1
- package/dist/mission-cli.js +2 -1
- package/dist/mission-cli.js.map +1 -1
- package/dist/mission-fixtures.d.ts +10 -1
- package/dist/mission-fixtures.js +49 -15
- package/dist/mission-fixtures.js.map +1 -1
- package/dist/mission-queue-runner.js +11 -2
- package/dist/mission-queue-runner.js.map +1 -1
- package/dist/multi-run-cli.js +7 -1
- package/dist/multi-run-cli.js.map +1 -1
- package/dist/openrouter-call.js +3 -2
- package/dist/openrouter-call.js.map +1 -1
- package/dist/program.js +4 -0
- package/dist/program.js.map +1 -1
- package/dist/project-dir.js +3 -2
- package/dist/project-dir.js.map +1 -1
- package/dist/record-api.d.ts +3 -1
- package/dist/record-api.js +5 -2
- package/dist/record-api.js.map +1 -1
- package/dist/record-cli.js +14 -2
- package/dist/record-cli.js.map +1 -1
- package/dist/regression-api.d.ts +6 -0
- package/dist/regression-api.js +4 -2
- package/dist/regression-api.js.map +1 -1
- package/dist/regression-cli.js +56 -4
- package/dist/regression-cli.js.map +1 -1
- package/dist/report-api.js +2 -1
- package/dist/report-api.js.map +1 -1
- package/dist/resource-preflight.d.ts +87 -0
- package/dist/resource-preflight.js +160 -0
- package/dist/resource-preflight.js.map +1 -0
- package/dist/result-schema.d.ts +1 -1
- package/dist/result-schema.js +1 -1
- package/dist/run-key-preflight.d.ts +42 -0
- package/dist/run-key-preflight.js +82 -0
- package/dist/run-key-preflight.js.map +1 -0
- package/dist/run-screenshots.js +11 -5
- package/dist/run-screenshots.js.map +1 -1
- package/dist/runtime-env.js +3 -2
- package/dist/runtime-env.js.map +1 -1
- package/dist/server-log-verify.d.ts +2 -0
- package/dist/server-log-verify.js +8 -3
- package/dist/server-log-verify.js.map +1 -1
- package/dist/site-gate-cli.js +2 -1
- package/dist/site-gate-cli.js.map +1 -1
- package/dist/source-api.js +2 -1
- package/dist/source-api.js.map +1 -1
- package/dist/suite-explore-options.d.ts +32 -0
- package/dist/suite-explore-options.js +22 -0
- package/dist/suite-explore-options.js.map +1 -1
- package/dist/target-config.d.ts +6 -0
- package/dist/target-config.js +9 -0
- package/dist/target-config.js.map +1 -1
- package/dist/type-fixture-file.d.ts +9 -0
- package/dist/type-fixture-file.js +48 -0
- package/dist/type-fixture-file.js.map +1 -0
- package/dist/ui-api.js +4 -3
- package/dist/ui-api.js.map +1 -1
- package/dist/usability-capture.js +4 -3
- package/dist/usability-capture.js.map +1 -1
- package/dist/usage-config.d.ts +1 -1
- package/dist/usage-config.js +1 -1
- package/dist/ux-claim-probe.d.ts +45 -0
- package/dist/ux-claim-probe.js +386 -0
- package/dist/ux-claim-probe.js.map +1 -0
- package/dist/ux-cli.js +8 -1
- package/dist/ux-cli.js.map +1 -1
- package/dist/ux-product.d.ts +14 -0
- package/dist/ux-product.js +39 -0
- package/dist/ux-product.js.map +1 -0
- package/dist/ux-review.d.ts +4 -0
- package/dist/ux-review.js +27 -7
- package/dist/ux-review.js.map +1 -1
- package/dist/ux-usability.d.ts +34 -9
- package/dist/ux-usability.js +100 -14
- package/dist/ux-usability.js.map +1 -1
- package/dist/verify-fix-api.d.ts +21 -0
- package/dist/verify-fix-api.js +85 -33
- package/dist/verify-fix-api.js.map +1 -1
- package/dist/verify-fix-cli.js +7 -2
- package/dist/verify-fix-cli.js.map +1 -1
- package/package.json +9 -9
- package/skills/jevitate-explore/SKILL.md +8 -0
- package/skills/jevitate-getting-started/SKILL.md +2 -1
- package/skills/jevitate-test-campaign/SKILL.md +203 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"demo-aspect-cli.js","sourceRoot":"","sources":["../src/demo-aspect-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAC;AAEzD,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,8BAA8B,EAAqB,MAAM,mBAAmB,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAqB,MAAM,kBAAkB,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAmC,MAAM,mBAAmB,CAAC;AACnH,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACjI,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC/G,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,8BAA8B,EAC9B,qBAAqB,EACrB,WAAW,EACX,qBAAqB,EACrB,UAAU,EACV,aAAa,EACb,mBAAmB,GAEpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,aAAa,EACb,kBAAkB,EAElB,sBAAsB,EACtB,mBAAmB,EACnB,aAAa,EAGb,kBAAkB,EAClB,kBAAkB,EAClB,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB;;;;GAIG;AAEH,uGAAuG;AACvG,SAAS,SAAS,CAAC,GAAY;IAC7B,IACE,GAAG,YAAY,mBAAmB;QAClC,GAAG,YAAY,8BAA8B;QAC7C,GAAG,YAAY,eAAe;QAC9B,GAAG,YAAY,sBAAsB;QACrC,GAAG,YAAY,qBAAqB;QACpC,GAAG,YAAY,aAAa;QAC5B,GAAG,YAAY,eAAe;QAC9B,GAAG,YAAY,oBAAoB;QACnC,GAAG,YAAY,4BAA4B;QAC3C,GAAG,YAAY,2BAA2B;QAC1C,GAAG,YAAY,yBAAyB;QACxC,GAAG,YAAY,gBAAgB;QAC/B,GAAG,YAAY,oBAAoB;QACnC,kBAAkB,CAAC,GAAG,CAAC,EACvB,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;IAClD,CAAC;IACD,IAAI,GAAG,YAAY,mBAAmB;QAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;IACnG,IAAI,GAAG,YAAY,wBAAwB;QAAE,OAAO,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;IAC9G,IAAI,GAAG,YAAY,8BAA8B;QAAE,OAAO,EAAE,IAAI,EAAE,+BAA+B,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;IAC1H,IAAI,GAAG,YAAY,iBAAiB;QAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;IAC/F,IAAI,GAAG,YAAY,eAAe;QAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;IAC3F,IAAI,GAAG,YAAY,iBAAiB;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;IACtF,OAAO,IAAI,CAAC;AACd,CAAC;AAUD,mGAAmG;AACnG,SAAS,iBAAiB,CACxB,GAAY,EACZ,IAAa,EACb,CAAc,EACd,WAAuC;IAEvC,MAAM,YAAY,GAAiB;QACjC,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM;QAC7C,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK,EAAE,KAAK;QAC1C,eAAe,EAAE,CAAC,CAAC,eAAe;QAClC,aAAa,EAAE,CAAC,CAAC,aAAa;KAC/B,CAAC;IACF,MAAM,YAAY,GAAG,CAAC,CAAC,YAAY,IAAI,WAAW,CAAC,YAAY,CAAC;IAChE,IAAI,YAAY,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,MAAM,IAAI,mBAAmB,CAAC,4BAA4B,YAAY,EAAE,CAAC,CAAC;IACvI,IAAI,OAA+C,CAAC;IACpD,IAAI,SAAoC,CAAC;IACzC,IAAI,CAAC;QACH,OAAO,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAkC,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5G,SAAS,GAAG,kBAAkB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,mBAAmB,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAClF,CAAC;IACD,OAAO;QACL,WAAW;QACX,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC;QACvD,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAClH,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;QAC7C,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;QACjD,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACnD,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CACjB,oBAAoB,CAAC,YAAY,EAAE;YACjC,SAAS,EAAE,WAAW,CAAC,cAAc;YACrC,OAAO,EAAE,IAAI;YACb,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC;YACvD,GAAG,CAAC,WAAW,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC;SACxF,CAAC;KACL,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,GAAY;IACnC,OAAO,aAAa,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACpF,MAAM,CAAC,cAAc,EAAE,kGAAkG,CAAC;SAC1H,MAAM,CAAC,wBAAwB,EAAE,kIAAkI,CAAC;SACpK,MAAM,CAAC,aAAa,EAAE,gIAAgI,CAAC;SACvJ,MAAM,CAAC,aAAa,EAAE,8DAA8D,oBAAoB,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC,CAAC;SACvJ,MAAM,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,SAAS,CAAC,IAAwB,EAAE,EAAU,EAAE,IAAuB;IAC9E,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IACjD,OAAO,IAAI,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,IAAI,IAAI,aAAa,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7F,CAAC;AAED,SAAS,SAAS,CAAC,KAAmG;IACpH,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC;SACtI,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAgB,EAAE,IAAa;IAClE,MAAM,IAAI,GAAG,OAAO;SACjB,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CACV,8KAA8K,CAC/K,CAAC;IAEJ,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;SAClE,WAAW,CACV,oJAAoJ;QAClJ,4IAA4I,CAC/I;SACA,MAAM,CAAC,cAAc,EAAE,kHAAkH,CAAC;SAC1I,MAAM,CAAC,kBAAkB,EAAE,8GAA8G,CAAC;SAC1I,MAAM,CAAC,kBAAkB,EAAE,gFAAgF,CAAC;SAC5G,MAAM,CAAC,WAAW,EAAE,8CAA8C,CAAC;SACnE,MAAM,CAAC,gBAAgB,EAAE,kDAAkD,CAAC;SAC5E,MAAM,CAAC,mBAAmB,EAAE,8BAA8B,EAAE,cAAc,CAAC;SAC3E,MAAM,CAAC,qBAAqB,EAAE,6BAA6B,EAAE,cAAc,CAAC;SAC5E,MAAM,CAAC,QAAQ,EAAE,oDAAoD,EAAE,KAAK,CAAC;SAC7E,MAAM,CAAC,WAAW,EAAE,uDAAuD,EAAE,KAAK,CAAC;SACnF,MAAM,CAAC,KAAK,WAA0B,MAAc;QACnD,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAEhB,CAAC;QACJ,MAAM,GAAG,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;QAC/C,IAAI,CAAC;YACH,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS;gBAAE,MAAM,IAAI,mBAAmB,CAAC,sFAAsF,CAAC,CAAC;YACnJ,IAAI,gBAAgB,CAAC;YACrB,IAAI,CAAC;gBACH,gBAAgB,GAAG,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACnD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,mBAAmB,CAAC,cAAc,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClG,CAAC;YACD,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACrC,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,yBAAyB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;YACtK,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAC,mEAAmE;YACvG,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;YAC7D,MAAM,MAAM,GAA6B,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;YACjK,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;YACzC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC;YACrH,MAAM,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC;YAElK,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAClE,UAAU,CAAC;gBACT,GAAG,MAAM;gBACT,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;gBAC/C,MAAM;gBACN,gBAAgB;gBAChB,WAAW,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE;gBAC5B,WAAW,EAAE,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC;gBAC5C,EAAE;gBACF,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;gBACpD,GAAG,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC1D,KAAK;gBACL,GAAG;gBACH,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;gBACvD,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;gBAC3C,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,OAAO,CAAC;aACtC,CAAC,CACH,CAAC;YACF,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAChE,uGAAuG;YACvG,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;YACrF,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBACX,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC5B,OAAO;YACT,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBACjC,OAAO,CAAC,eAAe,EAAE,CAAC,QAAQ,EAAE,CAAC,mBAAmB,MAAM,CAAC,MAAM,QAAQ,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,MAAM,IAAI,SAAS,IAAI,CAAC,CAAC;gBACvJ,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAC7B,OAAO;YACT,CAAC;YACD,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC1B,GAAG,EAAE,CAAC,kBAAkB,MAAM,CAAC,MAAM,QAAQ,MAAM,CAAC,WAAW,eAAe,MAAM,CAAC,EAAE,oBAAoB,CAAC,CAAC;YAC7G,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBACpB,GAAG,EAAE,CAAC,wBAAwB,CAAC,CAAC,aAAa,kBAAkB,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;oBAC/I,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,uDAAuD,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAC7F,CAAC;YACD,GAAG,EAAE,CAAC,0CAA0C,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;YACjF,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS;gBAAE,GAAG,EAAE,CAAC,uBAAuB,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClG,IAAI,MAAM,CAAC,KAAK,EAAE,KAAK,KAAK,SAAS;gBAAE,GAAG,EAAE,CAAC,gBAAgB,MAAM,CAAC,KAAK,CAAC,KAAK,sBAAsB,MAAM,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,IAAI,CAAC,CAAC;YACvI,IAAI,MAAM,CAAC,KAAK,EAAE,KAAK,KAAK,SAAS;gBAAE,GAAG,EAAE,CAAC,gBAAgB,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;YACrF,GAAG,EAAE,CAAC,gBAAgB,MAAM,CAAC,WAAW,EAAE,SAAS,IAAI,EAAE,6EAA6E,MAAM,CAAC,IAAI,IAAI,EAAE,IAAI,CAAC,CAAC;YAC7J,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,sBAAsB,IAAI,GAAG,YAAY,qBAAqB,EAAE,CAAC;gBAClF,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,qBAAqB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC5D,OAAO;YACT,CAAC;YACD,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;YACzB,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7H,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;SAC1C,WAAW,CACV,4JAA4J;QAC1J,gHAAgH,CACnH;SACA,MAAM,CAAC,KAAK,WAA0B,EAAU;QAC/C,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAe,CAAC;QACnC,MAAM,GAAG,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;QAC/C,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YACpD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAC9D,MAAM,WAAW,GAAG,yBAAyB,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpK,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAC,qEAAqE;YACzG,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;YAC7D,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAClE,WAAW,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,CACpI,CAAC;YACF,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;YACtF,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBACX,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC1C,OAAO;YACT,CAAC;YACD,GAAG,EAAE,CAAC,YAAY,EAAE,QAAQ,MAAM,CAAC,MAAM,QAAQ,MAAM,CAAC,WAAW,MAAM,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACpG,IAAI,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBAClC,OAAO,CAAC,eAAe,EAAE,CAAC,QAAQ,EAAE,CAAC,gBAAgB,EAAE,eAAe,MAAM,CAAC,MAAM,IAAI,SAAS,IAAI,CAAC,CAAC;gBACtG,OAAO;YACT,CAAC;YACD,GAAG,EAAE,CAAC,uBAAuB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAC/C,GAAG,EAAE,CAAC,sBAAsB,EAAE,cAAc,CAAC,CAAC;YAC9C,IAAI,MAAM,CAAC,KAAK,EAAE,KAAK,KAAK,SAAS;gBAAE,GAAG,EAAE,CAAC,UAAU,MAAM,CAAC,KAAK,CAAC,KAAK,gBAAgB,MAAM,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,IAAI,CAAC,CAAC;YAC3H,IAAI,MAAM,CAAC,KAAK,EAAE,KAAK,KAAK,SAAS;gBAAE,GAAG,EAAE,CAAC,UAAU,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;QACjF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;YACzB,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7H,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
1
|
+
{"version":3,"file":"demo-aspect-cli.js","sourceRoot":"","sources":["../src/demo-aspect-cli.ts"],"names":[],"mappings":"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"}
|
package/dist/demo-capture.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Locator, Page } from "playwright";
|
|
2
|
+
import { REVEALED_SECRET_SELECTORS, REVEALED_SECRET_SHAPES, revealedSecretsIn } from "@jevitate/ai-core";
|
|
2
3
|
import type { TargetDescriptor } from "@jevitate/recording";
|
|
3
4
|
import type { BrowserPort } from "@jevitate/playwright";
|
|
4
5
|
/**
|
|
@@ -47,12 +48,35 @@ export declare function captureOptions(page: Page, ctx: CaptureContext, layers:
|
|
|
47
48
|
mask: Locator[];
|
|
48
49
|
maskColor?: string;
|
|
49
50
|
}>;
|
|
50
|
-
/**
|
|
51
|
-
|
|
51
|
+
/**
|
|
52
|
+
* Writes one step's PNG at `path`: the viewport (or `clip`, a page-coordinate region — #198's cropped
|
|
53
|
+
* finding shots), overlay hidden, every layer applied. Throws on failure.
|
|
54
|
+
*/
|
|
55
|
+
export declare function captureStepScreenshot(page: Page, path: string, ctx: CaptureContext, layers?: readonly CaptureLayer[], clip?: {
|
|
56
|
+
readonly x: number;
|
|
57
|
+
readonly y: number;
|
|
58
|
+
readonly width: number;
|
|
59
|
+
readonly height: number;
|
|
60
|
+
}): Promise<void>;
|
|
52
61
|
/** The solid colour a secret is painted over with (the usability capture's mask colour, pinned). */
|
|
53
62
|
export declare const PIXEL_MASK_COLOR = "#FF00FF";
|
|
54
63
|
/** The attribute marking the mask layer's host element (never hidden by the capture style). */
|
|
55
64
|
export declare const PIXEL_MASK_ATTR = "data-jevitate-mask-layer";
|
|
65
|
+
/**
|
|
66
|
+
* #298 — a secret the app REVEALS mid-run (a freshly minted API key, a one-time reveal panel, an
|
|
67
|
+
* invite or reset link) is not known in advance, so it cannot be registered with `--secret`. The
|
|
68
|
+
* pixel mask also covers, with no registration:
|
|
69
|
+
*
|
|
70
|
+
* - elements the target marks as secret: these selectors (a target opts in with the
|
|
71
|
+
* `data-jevitate-mask` attribute; the rest are common one-time-secret markers);
|
|
72
|
+
* - text and field values shaped like a credential ({@link REVEALED_SECRET_SHAPES}).
|
|
73
|
+
*
|
|
74
|
+
* A value found either way is LEARNED for the rest of the run: masked wherever it appears later
|
|
75
|
+
* (another screen, a frame) and redacted from the screenshot index. Learned values live only in
|
|
76
|
+
* memory (the run's mask), never on disk. Limits (docs/safety.md): a secret with no marker and
|
|
77
|
+
* no credential shape (a short code, a plain word) is not masked; a password field shows dots.
|
|
78
|
+
*/
|
|
79
|
+
export { REVEALED_SECRET_SELECTORS, REVEALED_SECRET_SHAPES, revealedSecretsIn };
|
|
56
80
|
/** The mask could not be applied or proven: the capture is skipped (fail closed), never written. */
|
|
57
81
|
export declare class MaskUnavailableError extends Error {
|
|
58
82
|
readonly code: "E_PIXEL_MASK";
|
|
@@ -84,11 +108,19 @@ export interface MaskCheck {
|
|
|
84
108
|
*/
|
|
85
109
|
export declare class SecretPixelMask {
|
|
86
110
|
#private;
|
|
87
|
-
/**
|
|
111
|
+
/**
|
|
112
|
+
* Always true (#298): even with no registered secret, a secret the app reveals mid-run (a marked
|
|
113
|
+
* element, a credential-shaped value) is masked, so every capture installs and proves the mask.
|
|
114
|
+
*/
|
|
88
115
|
readonly active: boolean;
|
|
89
116
|
constructor(secrets: readonly string[]);
|
|
90
117
|
/** Installs the live mask in `page`'s context (every future document/frame) and every current frame. Throws when it cannot. */
|
|
91
118
|
install(page: Page): Promise<void>;
|
|
119
|
+
/**
|
|
120
|
+
* The secrets the app revealed during the run (#298), as learned so far — for redacting what the
|
|
121
|
+
* run writes about its captures (the screenshot index). Never persisted.
|
|
122
|
+
*/
|
|
123
|
+
revealed(): readonly string[];
|
|
92
124
|
/** Proves the mask covers every visible secret occurrence in every frame of `page`, now. */
|
|
93
125
|
verify(page: Page): Promise<MaskCheck>;
|
|
94
126
|
/** Throws {@link MaskUnavailableError} unless {@link verify} proves the mask. */
|
|
@@ -97,6 +129,8 @@ export declare class SecretPixelMask {
|
|
|
97
129
|
layer(): CaptureLayer;
|
|
98
130
|
/** Draws a capture highlight box around `target`'s first match (display-only). True when shown. */
|
|
99
131
|
highlight(page: Page, target: TargetDescriptor): Promise<boolean>;
|
|
132
|
+
/** #198: the same display-only highlight box around `locator`'s first match (a control or a quoted text). */
|
|
133
|
+
highlightLocator(page: Page, locator: Locator): Promise<boolean>;
|
|
100
134
|
/** Removes the capture highlight (best-effort). */
|
|
101
135
|
clearHighlight(page: Page): Promise<void>;
|
|
102
136
|
}
|
package/dist/demo-capture.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { randomBytes } from "node:crypto";
|
|
2
2
|
import { rm } from "node:fs/promises";
|
|
3
|
-
import { secretForms } from "@jevitate/ai-core";
|
|
3
|
+
import { REVEALED_SECRET_SELECTORS, REVEALED_SECRET_SHAPES, revealedSecretsIn, secretForms } from "@jevitate/ai-core";
|
|
4
4
|
import { DEMO_OVERLAY_HIDE_STYLE } from "@jevitate/explore";
|
|
5
5
|
import { descriptorToLocator } from "@jevitate/recorder";
|
|
6
|
+
import { clock } from "@jevitate/domain";
|
|
6
7
|
/** The screenshot options a set of layers produces (the overlay-hiding style always first). */
|
|
7
8
|
export async function captureOptions(page, ctx, layers) {
|
|
8
9
|
const styles = [DEMO_OVERLAY_HIDE_STYLE];
|
|
@@ -21,14 +22,18 @@ export async function captureOptions(page, ctx, layers) {
|
|
|
21
22
|
}
|
|
22
23
|
return { style: styles.join("\n"), mask, ...(maskColor === undefined ? {} : { maskColor }) };
|
|
23
24
|
}
|
|
24
|
-
/**
|
|
25
|
-
|
|
25
|
+
/**
|
|
26
|
+
* Writes one step's PNG at `path`: the viewport (or `clip`, a page-coordinate region — #198's cropped
|
|
27
|
+
* finding shots), overlay hidden, every layer applied. Throws on failure.
|
|
28
|
+
*/
|
|
29
|
+
export async function captureStepScreenshot(page, path, ctx, layers = [], clip) {
|
|
26
30
|
const { style, mask, maskColor } = await captureOptions(page, ctx, layers);
|
|
27
31
|
await page.screenshot({
|
|
28
32
|
path,
|
|
29
33
|
type: "png",
|
|
30
34
|
animations: "disabled",
|
|
31
35
|
style,
|
|
36
|
+
...(clip === undefined ? {} : { clip: { ...clip } }),
|
|
32
37
|
...(mask.length === 0 ? {} : { mask }),
|
|
33
38
|
...(maskColor === undefined ? {} : { maskColor }),
|
|
34
39
|
});
|
|
@@ -46,6 +51,21 @@ export async function captureStepScreenshot(page, path, ctx, layers = []) {
|
|
|
46
51
|
export const PIXEL_MASK_COLOR = "#FF00FF";
|
|
47
52
|
/** The attribute marking the mask layer's host element (never hidden by the capture style). */
|
|
48
53
|
export const PIXEL_MASK_ATTR = "data-jevitate-mask-layer";
|
|
54
|
+
/**
|
|
55
|
+
* #298 — a secret the app REVEALS mid-run (a freshly minted API key, a one-time reveal panel, an
|
|
56
|
+
* invite or reset link) is not known in advance, so it cannot be registered with `--secret`. The
|
|
57
|
+
* pixel mask also covers, with no registration:
|
|
58
|
+
*
|
|
59
|
+
* - elements the target marks as secret: these selectors (a target opts in with the
|
|
60
|
+
* `data-jevitate-mask` attribute; the rest are common one-time-secret markers);
|
|
61
|
+
* - text and field values shaped like a credential ({@link REVEALED_SECRET_SHAPES}).
|
|
62
|
+
*
|
|
63
|
+
* A value found either way is LEARNED for the rest of the run: masked wherever it appears later
|
|
64
|
+
* (another screen, a frame) and redacted from the screenshot index. Learned values live only in
|
|
65
|
+
* memory (the run's mask), never on disk. Limits (docs/safety.md): a secret with no marker and
|
|
66
|
+
* no credential shape (a short code, a plain word) is not masked; a password field shows dots.
|
|
67
|
+
*/
|
|
68
|
+
export { REVEALED_SECRET_SELECTORS, REVEALED_SECRET_SHAPES, revealedSecretsIn };
|
|
49
69
|
/** The mask could not be applied or proven: the capture is skipped (fail closed), never written. */
|
|
50
70
|
export class MaskUnavailableError extends Error {
|
|
51
71
|
code = "E_PIXEL_MASK";
|
|
@@ -63,6 +83,32 @@ export class MaskUnavailableError extends Error {
|
|
|
63
83
|
const MASK_RUNTIME = String.raw `((cfg) => {
|
|
64
84
|
if (window[cfg.name]) return true;
|
|
65
85
|
const SECRETS = cfg.secrets.filter((s) => typeof s === "string" && s.trim().length > 0);
|
|
86
|
+
// #298: secrets the app reveals mid-run — marked elements and credential-shaped values — are
|
|
87
|
+
// learned into SECRETS (masked everywhere after) and reported to the run's mask via learned().
|
|
88
|
+
const SHAPES = cfg.shapes.map((src) => new RegExp(src, "g"));
|
|
89
|
+
const MARKERS = cfg.markers.join(",");
|
|
90
|
+
const LEARNED = [];
|
|
91
|
+
const learn = (v) => {
|
|
92
|
+
if (typeof v !== "string") return;
|
|
93
|
+
const t = v.trim();
|
|
94
|
+
if (t.length < 8 || SECRETS.includes(t)) return;
|
|
95
|
+
SECRETS.push(t);
|
|
96
|
+
LEARNED.push(t);
|
|
97
|
+
};
|
|
98
|
+
const learnShapes = (v) => {
|
|
99
|
+
if (typeof v !== "string" || v.length < 8) return;
|
|
100
|
+
for (const re of SHAPES) { re.lastIndex = 0; for (const m of v.matchAll(re)) learn(m[0]); }
|
|
101
|
+
};
|
|
102
|
+
// A marked element is masked whole; what is LEARNED from it (masked elsewhere too) is its field
|
|
103
|
+
// value, or its credential-like words: 12+ chars, no space, letters and digits (never a label
|
|
104
|
+
// word like "Generate", which would then be masked on every screen).
|
|
105
|
+
const learnMarked = (el) => {
|
|
106
|
+
const tag = el.tagName;
|
|
107
|
+
if (tag === "INPUT" || tag === "TEXTAREA") { if (!/\s/.test(el.value)) learn(el.value); learnShapes(el.value); return; }
|
|
108
|
+
const text = el.textContent || "";
|
|
109
|
+
learnShapes(text);
|
|
110
|
+
for (const tok of text.split(/\s+/)) if (tok.length >= 12 && /[0-9]/.test(tok) && /[A-Za-z]/.test(tok)) learn(tok.replace(/^['"(]+|['")\].,;:]+$/g, ""));
|
|
111
|
+
};
|
|
66
112
|
const SKIP = new Set(["SCRIPT", "STYLE", "NOSCRIPT", "TEMPLATE", "HEAD", "TITLE", "META", "LINK"]);
|
|
67
113
|
const PAD = 2;
|
|
68
114
|
const CSS = ":host{all:initial}*{pointer-events:none !important;box-sizing:border-box}[hidden]{display:none !important}" +
|
|
@@ -112,8 +158,19 @@ const MASK_RUNTIME = String.raw `((cfg) => {
|
|
|
112
158
|
};
|
|
113
159
|
const collect = () => {
|
|
114
160
|
const out = [];
|
|
115
|
-
if (SECRETS.length === 0) return out;
|
|
116
161
|
const roots = [document];
|
|
162
|
+
// Marked elements first (#298): masked whole, and their secret learned before the text scan.
|
|
163
|
+
const marked = new Set();
|
|
164
|
+
const markRoot = (r) => {
|
|
165
|
+
if (MARKERS === "") return;
|
|
166
|
+
for (const el of Array.from(r.querySelectorAll(MARKERS))) {
|
|
167
|
+
if (el === host || SKIP.has(el.tagName) || marked.has(el)) continue;
|
|
168
|
+
marked.add(el);
|
|
169
|
+
learnMarked(el);
|
|
170
|
+
out.push({ kind: "el", el });
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
markRoot(document);
|
|
117
174
|
const perSecretRanges = new Map();
|
|
118
175
|
for (let i = 0; i < roots.length; i++) {
|
|
119
176
|
const w = document.createTreeWalker(roots[i], NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT);
|
|
@@ -123,6 +180,7 @@ const MASK_RUNTIME = String.raw `((cfg) => {
|
|
|
123
180
|
if (p !== null && SKIP.has(p.tagName)) continue;
|
|
124
181
|
const v = n.nodeValue;
|
|
125
182
|
if (!v) continue;
|
|
183
|
+
learnShapes(v);
|
|
126
184
|
for (const s of SECRETS) {
|
|
127
185
|
let at = v.indexOf(s);
|
|
128
186
|
while (at >= 0) {
|
|
@@ -135,12 +193,14 @@ const MASK_RUNTIME = String.raw `((cfg) => {
|
|
|
135
193
|
}
|
|
136
194
|
const el = n;
|
|
137
195
|
if (el === host) continue;
|
|
138
|
-
if (el.shadowRoot) roots.push(el.shadowRoot);
|
|
196
|
+
if (el.shadowRoot) { roots.push(el.shadowRoot); markRoot(el.shadowRoot); }
|
|
139
197
|
if (SKIP.has(el.tagName)) continue;
|
|
198
|
+
if (marked.has(el)) continue;
|
|
140
199
|
let hit = false;
|
|
141
200
|
const tag = el.tagName;
|
|
142
201
|
if (tag === "INPUT" || tag === "TEXTAREA") {
|
|
143
202
|
const type = (el.getAttribute("type") || "").toLowerCase();
|
|
203
|
+
if (!(tag === "INPUT" && type === "password")) learnShapes(el.value);
|
|
144
204
|
if (!(tag === "INPUT" && type === "password") && holds(el.value)) hit = true;
|
|
145
205
|
} else if (tag === "SELECT") {
|
|
146
206
|
const t = Array.from(el.selectedOptions || []).map((o) => o.text).join(" ");
|
|
@@ -182,12 +242,12 @@ const MASK_RUNTIME = String.raw `((cfg) => {
|
|
|
182
242
|
return [t.el.getBoundingClientRect()];
|
|
183
243
|
};
|
|
184
244
|
const fieldText = (el) => el.tagName === "SELECT" ? Array.from(el.selectedOptions || []).map((o) => o.text).join(" ") + " " + el.value : el.value;
|
|
245
|
+
const shaped = (v) => typeof v === "string" && v.length >= 8 && SHAPES.some((re) => { re.lastIndex = 0; return re.test(v); });
|
|
185
246
|
const inputsChanged = () => {
|
|
186
|
-
if (SECRETS.length === 0) return false;
|
|
187
247
|
const flagged = new Set(targets.filter((t) => t.kind === "el").map((t) => t.el));
|
|
188
248
|
for (const el of Array.from(document.querySelectorAll("input, textarea, select"))) {
|
|
189
249
|
if (el.tagName === "INPUT" && (el.getAttribute("type") || "").toLowerCase() === "password") continue;
|
|
190
|
-
if (holds(fieldText(el)) && !flagged.has(el)) return true;
|
|
250
|
+
if ((holds(fieldText(el)) || shaped(fieldText(el))) && !flagged.has(el)) return true;
|
|
191
251
|
}
|
|
192
252
|
return false;
|
|
193
253
|
};
|
|
@@ -247,7 +307,7 @@ const MASK_RUNTIME = String.raw `((cfg) => {
|
|
|
247
307
|
return { ok: false, occurrences: 0, masked: 0, reason: "the mask update failed: " + String((e && e.message) || e).slice(0, 200), rects: [] };
|
|
248
308
|
}
|
|
249
309
|
const problems = [];
|
|
250
|
-
|
|
310
|
+
{
|
|
251
311
|
if (host === null || !host.isConnected) problems.push("the mask layer is not attached");
|
|
252
312
|
else {
|
|
253
313
|
const cs = getComputedStyle(host);
|
|
@@ -267,6 +327,8 @@ const MASK_RUNTIME = String.raw `((cfg) => {
|
|
|
267
327
|
if (problems.length > 0) out.reason = problems.join("; ");
|
|
268
328
|
return out;
|
|
269
329
|
},
|
|
330
|
+
learn(values) { if (Array.isArray(values)) for (const v of values) learn(v); dirty = true; return true; },
|
|
331
|
+
learned() { return LEARNED.slice(); },
|
|
270
332
|
highlight(el) { highlightEl = el || null; try { update(); } catch (e) { /* presentation only */ } return highlightEl !== null; },
|
|
271
333
|
clearHighlight() { highlightEl = null; try { update(); } catch (e) { /* presentation only */ } return true; },
|
|
272
334
|
};
|
|
@@ -282,13 +344,13 @@ async function within(p, what) {
|
|
|
282
344
|
return await Promise.race([
|
|
283
345
|
p,
|
|
284
346
|
new Promise((_, reject) => {
|
|
285
|
-
timer = setTimeout(() => reject(new MaskUnavailableError(`${what} timed out after ${MASK_CALL_MS}ms`)), MASK_CALL_MS);
|
|
347
|
+
timer = clock.setTimeout(() => reject(new MaskUnavailableError(`${what} timed out after ${MASK_CALL_MS}ms`)), MASK_CALL_MS);
|
|
286
348
|
}),
|
|
287
349
|
]);
|
|
288
350
|
}
|
|
289
351
|
finally {
|
|
290
352
|
if (timer !== undefined)
|
|
291
|
-
clearTimeout(timer);
|
|
353
|
+
clock.clearTimeout(timer);
|
|
292
354
|
}
|
|
293
355
|
}
|
|
294
356
|
function errText(e) {
|
|
@@ -305,15 +367,25 @@ export class SecretPixelMask {
|
|
|
305
367
|
#source;
|
|
306
368
|
#name;
|
|
307
369
|
#contexts = new WeakSet();
|
|
308
|
-
/**
|
|
309
|
-
|
|
370
|
+
/** Secrets the app revealed mid-run (#298), learned by the page mask — in memory only, never written. */
|
|
371
|
+
#learned = new Set();
|
|
372
|
+
/**
|
|
373
|
+
* Always true (#298): even with no registered secret, a secret the app reveals mid-run (a marked
|
|
374
|
+
* element, a credential-shaped value) is masked, so every capture installs and proves the mask.
|
|
375
|
+
*/
|
|
376
|
+
active = true;
|
|
310
377
|
constructor(secrets) {
|
|
311
378
|
const forms = [...new Set(secrets.filter((s) => typeof s === "string" && s.trim() !== "").flatMap((s) => [...secretForms(s)]))];
|
|
312
|
-
this.active = forms.length > 0;
|
|
313
379
|
this.#name = `__jevitateMask_${randomBytes(8).toString("hex")}`;
|
|
314
380
|
// JSON inside a JS expression (valid JS since ES2019); `<` escaped so no value can close a script context.
|
|
315
|
-
const cfg = JSON.stringify({
|
|
316
|
-
|
|
381
|
+
const cfg = JSON.stringify({
|
|
382
|
+
name: this.#name,
|
|
383
|
+
secrets: forms,
|
|
384
|
+
shapes: REVEALED_SECRET_SHAPES,
|
|
385
|
+
markers: REVEALED_SECRET_SELECTORS,
|
|
386
|
+
fill: PIXEL_MASK_COLOR,
|
|
387
|
+
attr: PIXEL_MASK_ATTR,
|
|
388
|
+
}).replace(/</g, "\\u003c");
|
|
317
389
|
this.#source = MASK_RUNTIME.replace("__CFG__", () => cfg);
|
|
318
390
|
}
|
|
319
391
|
/** Installs the live mask in `page`'s context (every future document/frame) and every current frame. Throws when it cannot. */
|
|
@@ -344,10 +416,33 @@ export class SecretPixelMask {
|
|
|
344
416
|
throw new MaskUnavailableError(`could not apply the pixel mask to a frame: ${errText(e)}`);
|
|
345
417
|
}
|
|
346
418
|
}
|
|
419
|
+
/**
|
|
420
|
+
* The secrets the app revealed during the run (#298), as learned so far — for redacting what the
|
|
421
|
+
* run writes about its captures (the screenshot index). Never persisted.
|
|
422
|
+
*/
|
|
423
|
+
revealed() {
|
|
424
|
+
return [...this.#learned];
|
|
425
|
+
}
|
|
426
|
+
/** Shares what the run learned with `frame`'s mask, and collects what that frame learned. */
|
|
427
|
+
async #sync(frame) {
|
|
428
|
+
const learned = await within(frame.evaluate(([name, known]) => {
|
|
429
|
+
const api = window[name];
|
|
430
|
+
if (api === undefined)
|
|
431
|
+
return null;
|
|
432
|
+
api.learn(known);
|
|
433
|
+
return api.learned();
|
|
434
|
+
}, [this.#name, [...this.#learned]]), "syncing the pixel mask");
|
|
435
|
+
for (const v of learned ?? [])
|
|
436
|
+
this.#learned.add(v);
|
|
437
|
+
}
|
|
347
438
|
/** Proves the mask covers every visible secret occurrence in every frame of `page`, now. */
|
|
348
439
|
async verify(page) {
|
|
349
|
-
|
|
350
|
-
|
|
440
|
+
const known = this.#learned.size;
|
|
441
|
+
const r = await this.#verifyOnce(page);
|
|
442
|
+
// A secret one frame revealed (learned this pass) is re-checked in every frame once (#298).
|
|
443
|
+
return this.#learned.size > known ? this.#verifyOnce(page) : r;
|
|
444
|
+
}
|
|
445
|
+
async #verifyOnce(page) {
|
|
351
446
|
let occurrences = 0;
|
|
352
447
|
let masked = 0;
|
|
353
448
|
let rects = [];
|
|
@@ -357,6 +452,7 @@ export class SecretPixelMask {
|
|
|
357
452
|
continue;
|
|
358
453
|
try {
|
|
359
454
|
await this.#inject(frame);
|
|
455
|
+
await this.#sync(frame);
|
|
360
456
|
const r = await within(frame.evaluate((name) => window[name]?.verify() ?? null, this.#name), "verifying the pixel mask");
|
|
361
457
|
if (r === null) {
|
|
362
458
|
reasons.push("the mask is not installed in a frame");
|
|
@@ -368,6 +464,7 @@ export class SecretPixelMask {
|
|
|
368
464
|
rects = r.rects;
|
|
369
465
|
if (!r.ok)
|
|
370
466
|
reasons.push(r.reason ?? "the mask could not be proven");
|
|
467
|
+
await this.#sync(frame);
|
|
371
468
|
}
|
|
372
469
|
catch (e) {
|
|
373
470
|
if (frame.isDetached())
|
|
@@ -398,11 +495,13 @@ export class SecretPixelMask {
|
|
|
398
495
|
}
|
|
399
496
|
/** Draws a capture highlight box around `target`'s first match (display-only). True when shown. */
|
|
400
497
|
async highlight(page, target) {
|
|
498
|
+
return this.highlightLocator(page, descriptorToLocator(page, target));
|
|
499
|
+
}
|
|
500
|
+
/** #198: the same display-only highlight box around `locator`'s first match (a control or a quoted text). */
|
|
501
|
+
async highlightLocator(page, locator) {
|
|
401
502
|
try {
|
|
402
503
|
await this.#inject(page.mainFrame());
|
|
403
|
-
return await within(
|
|
404
|
-
.first()
|
|
405
|
-
.evaluate((el, name) => window[name]?.highlight(el) === true, this.#name, { timeout: 2_000 }), "highlighting the failing element");
|
|
504
|
+
return await within(locator.first().evaluate((el, name) => window[name]?.highlight(el) === true, this.#name, { timeout: 2_000 }), "highlighting the failing element");
|
|
406
505
|
}
|
|
407
506
|
catch {
|
|
408
507
|
return false; // a highlight is presentation only
|
package/dist/demo-capture.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"demo-capture.js","sourceRoot":"","sources":["../src/demo-capture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"demo-capture.js","sourceRoot":"","sources":["../src/demo-capture.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,8 @@ import { type FindingsIssues } from "./findings-filing.js";
|
|
|
11
11
|
import { type EngineInfo } from "./engine.js";
|
|
12
12
|
import type { TargetConfig } from "./target-config.js";
|
|
13
13
|
import { MISSION_RESULT_SCHEMA_VERSION } from "./result-schema.js";
|
|
14
|
+
import { type JourneyPrefix } from "./journey-prefix.js";
|
|
15
|
+
import type { JourneyBranchPoint } from "@jevitate/journey";
|
|
14
16
|
import { type ServerLogDefect, type ServerLogsSummary } from "./log-correlation.js";
|
|
15
17
|
import { type ServerLogOptions, type OverflowFlags, type MissionTarget } from "./explore-shared.js";
|
|
16
18
|
/**
|
|
@@ -64,6 +66,8 @@ export interface RunAdversarialCliMissionOptions {
|
|
|
64
66
|
readonly saveStorageState?: string;
|
|
65
67
|
/** Registered secret values (`--secret`): kept out of the transcript, Recording and issue drafts. */
|
|
66
68
|
readonly secrets?: readonly string[];
|
|
69
|
+
/** #303 `--action-deltas` (opt-in): record what each action changed (code verdict) — evidence only. */
|
|
70
|
+
readonly actionDeltas?: boolean;
|
|
67
71
|
/** Issue filing (off unless enabled + a repo is configured). Default: drafts only. */
|
|
68
72
|
readonly filing?: FilingConfig;
|
|
69
73
|
/** Creates the filer — called only when filing is enabled. */
|
|
@@ -90,6 +94,11 @@ export interface RunAdversarialCliMissionOptions {
|
|
|
90
94
|
readonly emulation?: EmulationSpec;
|
|
91
95
|
/** Horizontal-overflow hard signal (#149, CLI `--check-overflow` / `--ignore-overflow`). */
|
|
92
96
|
readonly overflow?: OverflowFlags;
|
|
97
|
+
/**
|
|
98
|
+
* #293 `--from-journey`/`--at-step`: replayed into the session before the mission, which then starts
|
|
99
|
+
* on the live page it left (never a fresh navigation). `seedUrl` is only the expected landing.
|
|
100
|
+
*/
|
|
101
|
+
readonly journeyPrefix?: JourneyPrefix;
|
|
93
102
|
}
|
|
94
103
|
export type AdversarialCliMissionResult = Omit<AdversarialOutcome, "defects"> & {
|
|
95
104
|
/** The result schema's version (#195): the common fields are filled the same way by every strategy. */
|
|
@@ -106,8 +115,6 @@ export type AdversarialCliMissionResult = Omit<AdversarialOutcome, "defects"> &
|
|
|
106
115
|
readonly target: MissionTarget;
|
|
107
116
|
/** One ready-to-file draft per defect (and per crash), written next to the Recording. */
|
|
108
117
|
readonly issues: FindingsIssues;
|
|
109
|
-
/** @deprecated since 0.2.0 (#195) — use `recordingPaths[0]`; removed in the next minor. */
|
|
110
|
-
readonly recordingPath: string;
|
|
111
118
|
/** The persisted typed result (`<recording>.result.json`), readable via MCP `get_mission_result`. */
|
|
112
119
|
readonly resultPath: string;
|
|
113
120
|
readonly transcriptPath: string;
|
|
@@ -121,12 +128,12 @@ export type AdversarialCliMissionResult = Omit<AdversarialOutcome, "defects"> &
|
|
|
121
128
|
readonly usage?: UsageCounts;
|
|
122
129
|
/** Backend log correlation summary (#142) — present only when `--log-source` was given. */
|
|
123
130
|
readonly serverLogs?: ServerLogsSummary;
|
|
124
|
-
/** @deprecated since 0.2.0 (#195) — the `server-log` subset of `defects`; removed in the next minor. */
|
|
125
|
-
readonly serverLogDefects?: ServerLogDefect[];
|
|
126
131
|
/** The host's health over the run (#203): peaks, the slowest render, starved steps. */
|
|
127
132
|
readonly hostHealth: HostHealthSummary;
|
|
128
133
|
/** Findings met while the host was starved (#203) — advisory, never a defect/hang, never failing the run. */
|
|
129
134
|
readonly environmentDegraded: EnvironmentDegraded[];
|
|
135
|
+
/** #293: the Journey step a journey-anchored run branched from (absent on a bare-URL run). */
|
|
136
|
+
readonly branch?: JourneyBranchPoint;
|
|
130
137
|
};
|
|
131
138
|
/**
|
|
132
139
|
* Runs `@jevitate/explore`'s adversarial "try to break it" mission behind the
|
|
@@ -2,20 +2,22 @@
|
|
|
2
2
|
import { logsDirFor } from "./project-dir.js";
|
|
3
3
|
import { join, resolve as resolvePath } from "node:path";
|
|
4
4
|
import { PlaywrightBrowserPort, resolveEmulation } from "@jevitate/playwright";
|
|
5
|
-
import { closeOnce, demoOverlayOf, finalizeVideos, runVideoDir, sessionLaunchOptions } from "./browser-run-options.js";
|
|
5
|
+
import { closeOnce, demoOverlayOf, extensionsStamp, finalizeVideos, runVideoDir, sessionLaunchOptions } from "./browser-run-options.js";
|
|
6
6
|
import { runCaptureFor } from "./run-screenshots.js";
|
|
7
7
|
import { evidenceOf, withRunEvidence } from "./defect-evidence.js";
|
|
8
8
|
import { CastActor, BrowseTheWeb } from "@jevitate/screenplay";
|
|
9
9
|
import { runAdversarialMission, assertAuthorizedExploreTarget, startRouteGlobs, draftForCrash, draftForDefect, draftForHang, } from "@jevitate/explore";
|
|
10
|
+
import { clock, } from "@jevitate/domain";
|
|
10
11
|
import { processIssueDrafts } from "./findings-filing.js";
|
|
11
12
|
import { currentEngineInfo } from "./engine.js";
|
|
12
13
|
import { MissionJournal, artifactStamp, closeQuietly, resultPathFor, writeMissionResult } from "./mission-journal.js";
|
|
13
14
|
import { MISSION_RESULT_SCHEMA_VERSION, unifiedDefects } from "./result-schema.js";
|
|
14
15
|
import { missionExitCode } from "./mission-exit.js";
|
|
15
16
|
import { launchArmed } from "./launch-armed.js";
|
|
17
|
+
import { branchFields, startFromJourney } from "./journey-prefix.js";
|
|
16
18
|
import { finishHostHealth } from "./host-health-run.js";
|
|
17
19
|
import { applyServerLogOutcome, openServerLogRuntime, } from "./log-correlation.js";
|
|
18
|
-
import { serverLogResult, recordingEmulation, DRAFTS_ONLY, NO_FILER, draftContext, freshSessionOpener, currentUrlSafe, assertSaveStorageStateOutsideProject, persistStorageState, browserVersionOf, } from "./explore-shared.js";
|
|
20
|
+
import { serverLogResult, recordingEmulation, DRAFTS_ONLY, NO_FILER, draftContext, freshSessionOpener, currentUrlSafe, assertSaveStorageStateOutsideProject, persistStorageState, browserVersionOf, serverLogRuntimeOptions, } from "./explore-shared.js";
|
|
19
21
|
/**
|
|
20
22
|
* The misuse strategies `explore --strategy adversarial` runs, in order — shared with the queue drain
|
|
21
23
|
* (`jevitate mission run`, #117) so a queued adversarial mission hunts exactly like the CLI's.
|
|
@@ -63,7 +65,7 @@ export async function runAdversarialCliMission(opts) {
|
|
|
63
65
|
const portFactory = capture.wrap(opts.browserPortFactory ?? (() => new PlaywrightBrowserPort()));
|
|
64
66
|
const port = portFactory();
|
|
65
67
|
const outDir = opts.outDir ?? logsDirFor();
|
|
66
|
-
const iso = (opts.nowIso ?? (() =>
|
|
68
|
+
const iso = (opts.nowIso ?? (() => clock.nowIso()))();
|
|
67
69
|
// Crash-safe: the transcript and partial Recording are flushed after every step.
|
|
68
70
|
const journal = new MissionJournal(join(outDir, `adversarial-${artifactStamp(iso)}.json`));
|
|
69
71
|
// #245: the mission session and every hang-replay session are shown/recorded alike.
|
|
@@ -96,14 +98,12 @@ export async function runAdversarialCliMission(opts) {
|
|
|
96
98
|
}),
|
|
97
99
|
});
|
|
98
100
|
const serverLog = openServerLogRuntime({
|
|
99
|
-
|
|
100
|
-
logDefect: opts.serverLog?.logDefect ?? [],
|
|
101
|
-
quietOk: opts.serverLog?.quietOk ?? [],
|
|
102
|
-
logIgnore: opts.serverLog?.logIgnore ?? [],
|
|
103
|
-
...(opts.serverLog?.drainMs === undefined ? {} : { drainMs: opts.serverLog.drainMs }),
|
|
101
|
+
...serverLogRuntimeOptions(opts.serverLog),
|
|
104
102
|
secrets: opts.secrets ?? [],
|
|
105
103
|
onTranscriptEntry: journal.onTranscriptEntry,
|
|
106
104
|
});
|
|
105
|
+
// #204: every request's correlation ids, from before the first navigation.
|
|
106
|
+
serverLog?.observe(session.page);
|
|
107
107
|
const onTranscriptEntry = (entry, all) => {
|
|
108
108
|
capture.noteEntry(session.page, entry);
|
|
109
109
|
health.noteStep(entry);
|
|
@@ -116,6 +116,8 @@ export async function runAdversarialCliMission(opts) {
|
|
|
116
116
|
await closeQuietly(session);
|
|
117
117
|
});
|
|
118
118
|
try {
|
|
119
|
+
// #293: a journey-anchored run first replays its Journey's prefix into this very session.
|
|
120
|
+
const start = await startFromJourney(opts.journeyPrefix, session, opts.seedUrl, opts.allowlist, opts.browser);
|
|
119
121
|
const actor = CastActor.named("adversarial-mission").whoCan(new BrowseTheWeb(session, [...opts.allowlist]));
|
|
120
122
|
const outcome = await runAdversarialMission({
|
|
121
123
|
hostHealth: health,
|
|
@@ -128,7 +130,10 @@ export async function runAdversarialCliMission(opts) {
|
|
|
128
130
|
actor,
|
|
129
131
|
judgment: opts.judgment,
|
|
130
132
|
generation: opts.generation,
|
|
131
|
-
seedUrl:
|
|
133
|
+
seedUrl: start.url,
|
|
134
|
+
...(start.branch === undefined ? {} : { startInPlace: true }),
|
|
135
|
+
// #293: a reset re-replays the Journey prefix (counted against --max-actions), never just the URL.
|
|
136
|
+
...(start.restart ?? {}),
|
|
132
137
|
allowlist: opts.allowlist,
|
|
133
138
|
strategies: opts.strategies,
|
|
134
139
|
...(opts.routeGlobs === undefined ? {} : { routeGlobs: opts.routeGlobs }),
|
|
@@ -136,6 +141,7 @@ export async function runAdversarialCliMission(opts) {
|
|
|
136
141
|
site: origin,
|
|
137
142
|
...(opts.bounds === undefined ? {} : { bounds: opts.bounds }),
|
|
138
143
|
...(opts.secrets === undefined ? {} : { secrets: opts.secrets }),
|
|
144
|
+
...(opts.actionDeltas === true ? { actionDeltas: true } : {}),
|
|
139
145
|
// A hang is reproduced by replaying its steps in fresh contexts (same auth).
|
|
140
146
|
openFreshSession: freshSessionOpener(portFactory, launch, opts.allowlist),
|
|
141
147
|
...(opts.hangReplays === undefined ? {} : { hangReplays: opts.hangReplays }),
|
|
@@ -183,20 +189,23 @@ export async function runAdversarialCliMission(opts) {
|
|
|
183
189
|
...videos,
|
|
184
190
|
...shotFields,
|
|
185
191
|
// #149: stamped with the emulation the mission ran under, so verify-fix replays under it by default.
|
|
186
|
-
recording:
|
|
192
|
+
recording: {
|
|
193
|
+
...(resolvedEmulation === undefined ? outcome.recording : { ...outcome.recording, emulation: recordingEmulation(resolvedEmulation) }),
|
|
194
|
+
...extensionsStamp(opts.browser), // #256
|
|
195
|
+
},
|
|
187
196
|
outcome: missionOutcome,
|
|
188
197
|
transcript,
|
|
189
|
-
recordingPath: journal.recordingPath,
|
|
190
198
|
transcriptPath: journal.transcriptPath,
|
|
191
199
|
exitCode,
|
|
192
200
|
issues,
|
|
193
201
|
// What `verify-fix` needs to replay a defect later: where, which origins, which session file
|
|
194
202
|
// (the storageState PATH only — its cookies never enter an artifact).
|
|
195
203
|
target: {
|
|
196
|
-
seedUrl:
|
|
204
|
+
seedUrl: start.url,
|
|
197
205
|
allowlist: [...opts.allowlist],
|
|
198
206
|
...(opts.storageState !== undefined ? { storageStatePath: resolvePath(opts.storageState) } : {}),
|
|
199
207
|
},
|
|
208
|
+
...branchFields(start),
|
|
200
209
|
engine,
|
|
201
210
|
...(opts.invariants === undefined ? {} : { invariantSpec: opts.invariants }),
|
|
202
211
|
...(runUsage === undefined ? {} : { usage: runUsage.snapshot() }),
|