@jevitate/cli 0.1.0 → 0.2.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/README.md +23 -0
- package/dist/ai-cli.js +40 -30
- package/dist/ai-cli.js.map +1 -1
- package/dist/author-journey-cli.d.ts +4 -0
- package/dist/author-journey-cli.js +109 -0
- package/dist/author-journey-cli.js.map +1 -0
- package/dist/bin.js +58077 -22454
- package/dist/bin.js.map +1 -1
- package/dist/browser-run-options.d.ts +58 -0
- package/dist/browser-run-options.js +106 -0
- package/dist/browser-run-options.js.map +1 -0
- package/dist/build-info.generated.d.ts +2 -0
- package/dist/build-info.generated.js +10 -0
- package/dist/build-info.generated.js.map +1 -0
- package/dist/check-api.d.ts +5 -0
- package/dist/check-api.js +233 -0
- package/dist/check-api.js.map +1 -0
- package/dist/check-budget.d.ts +26 -0
- package/dist/check-budget.js +89 -0
- package/dist/check-budget.js.map +1 -0
- package/dist/check-cli.d.ts +31 -0
- package/dist/check-cli.js +109 -0
- package/dist/check-cli.js.map +1 -0
- package/dist/check-execute.d.ts +25 -0
- package/dist/check-execute.js +385 -0
- package/dist/check-execute.js.map +1 -0
- package/dist/check-plan.d.ts +113 -0
- package/dist/check-plan.js +448 -0
- package/dist/check-plan.js.map +1 -0
- package/dist/check-suite.d.ts +171 -0
- package/dist/check-suite.js +515 -0
- package/dist/check-suite.js.map +1 -0
- package/dist/check-types.d.ts +181 -0
- package/dist/check-types.js +35 -0
- package/dist/check-types.js.map +1 -0
- package/dist/cli-args.d.ts +26 -0
- package/dist/cli-args.js +50 -0
- package/dist/cli-args.js.map +1 -0
- package/dist/cli-output.d.ts +102 -0
- package/dist/cli-output.js +516 -0
- package/dist/cli-output.js.map +1 -0
- package/dist/cli-reference.d.ts +3 -0
- package/dist/cli-reference.js +81 -0
- package/dist/cli-reference.js.map +1 -0
- package/dist/cli-refusal.d.ts +12 -0
- package/dist/cli-refusal.js +52 -0
- package/dist/cli-refusal.js.map +1 -0
- package/dist/cli-shared.d.ts +330 -0
- package/dist/cli-shared.js +492 -0
- package/dist/cli-shared.js.map +1 -0
- package/dist/cli-surface.d.ts +33 -0
- package/dist/cli-surface.js +48 -0
- package/dist/cli-surface.js.map +1 -0
- package/dist/conversation-options.d.ts +15 -0
- package/dist/conversation-options.js +10 -0
- package/dist/conversation-options.js.map +1 -0
- package/dist/credentials-file.d.ts +15 -0
- package/dist/credentials-file.js +56 -0
- package/dist/credentials-file.js.map +1 -0
- package/dist/data-dir.d.ts +1 -1
- package/dist/data-dir.js +1 -1
- package/dist/defect-evidence.d.ts +141 -0
- package/dist/defect-evidence.js +502 -0
- package/dist/defect-evidence.js.map +1 -0
- package/dist/demo-aspect-api.d.ts +209 -0
- package/dist/demo-aspect-api.js +397 -0
- package/dist/demo-aspect-api.js.map +1 -0
- package/dist/demo-aspect-cli.d.ts +3 -0
- package/dist/demo-aspect-cli.js +241 -0
- package/dist/demo-aspect-cli.js.map +1 -0
- package/dist/demo-capture.d.ts +108 -0
- package/dist/demo-capture.js +438 -0
- package/dist/demo-capture.js.map +1 -0
- package/dist/engine.d.ts +35 -0
- package/dist/engine.js +25 -0
- package/dist/engine.js.map +1 -0
- package/dist/environments.d.ts +155 -0
- package/dist/environments.js +364 -0
- package/dist/environments.js.map +1 -0
- package/dist/exit-codes.d.ts +46 -0
- package/dist/exit-codes.js +91 -0
- package/dist/exit-codes.js.map +1 -0
- package/dist/explore-adversarial.d.ts +137 -0
- package/dist/explore-adversarial.js +218 -0
- package/dist/explore-adversarial.js.map +1 -0
- package/dist/explore-api.d.ts +7 -187
- package/dist/explore-api.js +7 -301
- package/dist/explore-api.js.map +1 -1
- package/dist/explore-author.d.ts +79 -0
- package/dist/explore-author.js +86 -0
- package/dist/explore-author.js.map +1 -0
- package/dist/explore-cli.d.ts +7 -0
- package/dist/explore-cli.js +963 -0
- package/dist/explore-cli.js.map +1 -0
- package/dist/explore-coverage.d.ts +158 -0
- package/dist/explore-coverage.js +240 -0
- package/dist/explore-coverage.js.map +1 -0
- package/dist/explore-feature.d.ts +127 -0
- package/dist/explore-feature.js +220 -0
- package/dist/explore-feature.js.map +1 -0
- package/dist/explore-goal.d.ts +253 -0
- package/dist/explore-goal.js +374 -0
- package/dist/explore-goal.js.map +1 -0
- package/dist/explore-shared.d.ts +152 -0
- package/dist/explore-shared.js +129 -0
- package/dist/explore-shared.js.map +1 -0
- package/dist/explore-specs.d.ts +53 -0
- package/dist/explore-specs.js +333 -0
- package/dist/explore-specs.js.map +1 -0
- package/dist/findings-filing.d.ts +64 -0
- package/dist/findings-filing.js +108 -0
- package/dist/findings-filing.js.map +1 -0
- package/dist/fixture-auth.d.ts +52 -0
- package/dist/fixture-auth.js +82 -0
- package/dist/fixture-auth.js.map +1 -0
- package/dist/fixture-cli.d.ts +70 -0
- package/dist/fixture-cli.js +178 -0
- package/dist/fixture-cli.js.map +1 -0
- package/dist/github-issue-filer.d.ts +62 -0
- package/dist/github-issue-filer.js +188 -0
- package/dist/github-issue-filer.js.map +1 -0
- package/dist/host-health-run.d.ts +24 -0
- package/dist/host-health-run.js +27 -0
- package/dist/host-health-run.js.map +1 -0
- package/dist/http-5xx-outcome.d.ts +6 -0
- package/dist/http-5xx-outcome.js +39 -0
- package/dist/http-5xx-outcome.js.map +1 -0
- package/dist/inbox-cli.d.ts +7 -0
- package/dist/inbox-cli.js +197 -0
- package/dist/inbox-cli.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/init-cli.d.ts +4 -0
- package/dist/init-cli.js +127 -0
- package/dist/init-cli.js.map +1 -0
- package/dist/init-keys.d.ts +19 -2
- package/dist/init-keys.js +15 -4
- package/dist/init-keys.js.map +1 -1
- package/dist/init-next-steps.d.ts +35 -0
- package/dist/init-next-steps.js +79 -0
- package/dist/init-next-steps.js.map +1 -0
- package/dist/invariants-file.d.ts +34 -0
- package/dist/invariants-file.js +68 -0
- package/dist/invariants-file.js.map +1 -0
- package/dist/invariants-validate.d.ts +30 -0
- package/dist/invariants-validate.js +105 -0
- package/dist/invariants-validate.js.map +1 -0
- package/dist/journey-annotate-api.d.ts +76 -0
- package/dist/journey-annotate-api.js +256 -0
- package/dist/journey-annotate-api.js.map +1 -0
- package/dist/journey-annotate-cli.d.ts +9 -0
- package/dist/journey-annotate-cli.js +179 -0
- package/dist/journey-annotate-cli.js.map +1 -0
- package/dist/journey-api.d.ts +79 -2
- package/dist/journey-api.js +136 -19
- package/dist/journey-api.js.map +1 -1
- package/dist/journey-cli.d.ts +4 -0
- package/dist/journey-cli.js +370 -0
- package/dist/journey-cli.js.map +1 -0
- package/dist/journey-demo-api.d.ts +112 -0
- package/dist/journey-demo-api.js +392 -0
- package/dist/journey-demo-api.js.map +1 -0
- package/dist/journey-demo-cli.d.ts +10 -0
- package/dist/journey-demo-cli.js +155 -0
- package/dist/journey-demo-cli.js.map +1 -0
- package/dist/kill-signal.d.ts +193 -0
- package/dist/kill-signal.js +284 -0
- package/dist/kill-signal.js.map +1 -0
- package/dist/launch-armed.d.ts +37 -0
- package/dist/launch-armed.js +31 -0
- package/dist/launch-armed.js.map +1 -0
- package/dist/ledger-api.d.ts +106 -0
- package/dist/ledger-api.js +237 -0
- package/dist/ledger-api.js.map +1 -0
- package/dist/ledger-cli.d.ts +18 -0
- package/dist/ledger-cli.js +107 -0
- package/dist/ledger-cli.js.map +1 -0
- package/dist/load-api.d.ts +29 -11
- package/dist/load-api.js +23 -15
- package/dist/load-api.js.map +1 -1
- package/dist/load-cli.d.ts +4 -0
- package/dist/load-cli.js +97 -0
- package/dist/load-cli.js.map +1 -0
- package/dist/log-correlation.d.ts +147 -0
- package/dist/log-correlation.js +325 -0
- package/dist/log-correlation.js.map +1 -0
- package/dist/log-lines.d.ts +131 -0
- package/dist/log-lines.js +389 -0
- package/dist/log-lines.js.map +1 -0
- package/dist/log-sources.d.ts +71 -0
- package/dist/log-sources.js +235 -0
- package/dist/log-sources.js.map +1 -0
- package/dist/logs-cli.d.ts +3 -0
- package/dist/logs-cli.js +51 -0
- package/dist/logs-cli.js.map +1 -0
- package/dist/logs-retention.d.ts +28 -0
- package/dist/logs-retention.js +84 -0
- package/dist/logs-retention.js.map +1 -0
- package/dist/mcp-api.d.ts +89 -1
- package/dist/mcp-api.js +472 -18
- package/dist/mcp-api.js.map +1 -1
- package/dist/mcp-args.d.ts +38 -0
- package/dist/mcp-args.js +131 -0
- package/dist/mcp-args.js.map +1 -0
- package/dist/mcp-cli-bridge.d.ts +34 -0
- package/dist/mcp-cli-bridge.js +62 -0
- package/dist/mcp-cli-bridge.js.map +1 -0
- package/dist/mcp-cli-runner.d.ts +29 -0
- package/dist/mcp-cli-runner.js +44 -0
- package/dist/mcp-cli-runner.js.map +1 -0
- package/dist/mcp-cli-tools.d.ts +125 -0
- package/dist/mcp-cli-tools.js +680 -0
- package/dist/mcp-cli-tools.js.map +1 -0
- package/dist/mcp-paths.d.ts +28 -0
- package/dist/mcp-paths.js +76 -0
- package/dist/mcp-paths.js.map +1 -0
- package/dist/mission-actors.d.ts +40 -0
- package/dist/mission-actors.js +72 -0
- package/dist/mission-actors.js.map +1 -0
- package/dist/mission-api.d.ts +35 -0
- package/dist/mission-api.js +58 -2
- package/dist/mission-api.js.map +1 -1
- package/dist/mission-cli.d.ts +4 -0
- package/dist/mission-cli.js +247 -0
- package/dist/mission-cli.js.map +1 -0
- package/dist/mission-exit.d.ts +22 -0
- package/dist/mission-exit.js +26 -0
- package/dist/mission-exit.js.map +1 -0
- package/dist/mission-fixtures.d.ts +225 -0
- package/dist/mission-fixtures.js +828 -0
- package/dist/mission-fixtures.js.map +1 -0
- package/dist/mission-journal.d.ts +60 -0
- package/dist/mission-journal.js +115 -0
- package/dist/mission-journal.js.map +1 -0
- package/dist/mission-queue-cli.d.ts +10 -0
- package/dist/mission-queue-cli.js +198 -0
- package/dist/mission-queue-cli.js.map +1 -0
- package/dist/mission-queue-runner.d.ts +126 -0
- package/dist/mission-queue-runner.js +397 -0
- package/dist/mission-queue-runner.js.map +1 -0
- package/dist/multi-run-cli.d.ts +37 -0
- package/dist/multi-run-cli.js +110 -0
- package/dist/multi-run-cli.js.map +1 -0
- package/dist/multi-run.d.ts +339 -0
- package/dist/multi-run.js +619 -0
- package/dist/multi-run.js.map +1 -0
- package/dist/openrouter-call.d.ts +22 -0
- package/dist/openrouter-call.js +63 -0
- package/dist/openrouter-call.js.map +1 -0
- package/dist/profile-cli.d.ts +4 -0
- package/dist/profile-cli.js +57 -0
- package/dist/profile-cli.js.map +1 -0
- package/dist/program.d.ts +3 -75
- package/dist/program.js +119 -1921
- package/dist/program.js.map +1 -1
- package/dist/project-dir.d.ts +96 -0
- package/dist/project-dir.js +220 -0
- package/dist/project-dir.js.map +1 -0
- package/dist/record-api.d.ts +10 -6
- package/dist/record-api.js +39 -28
- package/dist/record-api.js.map +1 -1
- package/dist/record-cli.d.ts +4 -0
- package/dist/record-cli.js +64 -0
- package/dist/record-cli.js.map +1 -0
- package/dist/recording-cli.d.ts +4 -0
- package/dist/recording-cli.js +248 -0
- package/dist/recording-cli.js.map +1 -0
- package/dist/regression-api.d.ts +101 -0
- package/dist/regression-api.js +384 -5
- package/dist/regression-api.js.map +1 -1
- package/dist/regression-cli.d.ts +4 -0
- package/dist/regression-cli.js +232 -0
- package/dist/regression-cli.js.map +1 -0
- package/dist/report-api.d.ts +146 -0
- package/dist/report-api.js +430 -0
- package/dist/report-api.js.map +1 -0
- package/dist/report-cli.d.ts +12 -0
- package/dist/report-cli.js +147 -0
- package/dist/report-cli.js.map +1 -0
- package/dist/result-schema.d.ts +22 -0
- package/dist/result-schema.js +28 -0
- package/dist/result-schema.js.map +1 -0
- package/dist/run-index.d.ts +29 -0
- package/dist/run-index.js +70 -0
- package/dist/run-index.js.map +1 -0
- package/dist/run-screenshots.d.ts +123 -0
- package/dist/run-screenshots.js +229 -0
- package/dist/run-screenshots.js.map +1 -0
- package/dist/runtime-env.d.ts +8 -0
- package/dist/runtime-env.js +22 -0
- package/dist/runtime-env.js.map +1 -0
- package/dist/secret-args.d.ts +23 -0
- package/dist/secret-args.js +45 -0
- package/dist/secret-args.js.map +1 -0
- package/dist/serve-cli.d.ts +4 -0
- package/dist/serve-cli.js +95 -0
- package/dist/serve-cli.js.map +1 -0
- package/dist/server-log-verify.d.ts +34 -0
- package/dist/server-log-verify.js +115 -0
- package/dist/server-log-verify.js.map +1 -0
- package/dist/session-check.d.ts +14 -0
- package/dist/session-check.js +44 -0
- package/dist/session-check.js.map +1 -0
- package/dist/site-cli.d.ts +4 -0
- package/dist/site-cli.js +127 -0
- package/dist/site-cli.js.map +1 -0
- package/dist/site-gate-cli.d.ts +28 -0
- package/dist/site-gate-cli.js +58 -0
- package/dist/site-gate-cli.js.map +1 -0
- package/dist/source-api.js +18 -3
- package/dist/source-api.js.map +1 -1
- package/dist/source-cli.d.ts +4 -0
- package/dist/source-cli.js +284 -0
- package/dist/source-cli.js.map +1 -0
- package/dist/source-run-api.d.ts +27 -1
- package/dist/source-run-api.js +22 -11
- package/dist/source-run-api.js.map +1 -1
- package/dist/storage-state-snapshot.d.ts +50 -0
- package/dist/storage-state-snapshot.js +87 -0
- package/dist/storage-state-snapshot.js.map +1 -0
- package/dist/suite-explore-options.d.ts +289 -0
- package/dist/suite-explore-options.js +140 -0
- package/dist/suite-explore-options.js.map +1 -0
- package/dist/target-config.d.ts +109 -0
- package/dist/target-config.js +216 -0
- package/dist/target-config.js.map +1 -0
- package/dist/transcript-file.d.ts +12 -0
- package/dist/transcript-file.js +23 -0
- package/dist/transcript-file.js.map +1 -0
- package/dist/ui-api.d.ts +3 -0
- package/dist/ui-api.js +7 -1
- package/dist/ui-api.js.map +1 -1
- package/dist/usability-capture.d.ts +43 -0
- package/dist/usability-capture.js +326 -0
- package/dist/usability-capture.js.map +1 -0
- package/dist/usage-config.d.ts +36 -0
- package/dist/usage-config.js +114 -0
- package/dist/usage-config.js.map +1 -0
- package/dist/ux-api.d.ts +3 -75
- package/dist/ux-api.js +3 -220
- package/dist/ux-api.js.map +1 -1
- package/dist/ux-cli.d.ts +4 -0
- package/dist/ux-cli.js +102 -0
- package/dist/ux-cli.js.map +1 -0
- package/dist/ux-config.d.ts +29 -0
- package/dist/ux-config.js +103 -0
- package/dist/ux-config.js.map +1 -0
- package/dist/ux-evidence.d.ts +54 -0
- package/dist/ux-evidence.js +197 -0
- package/dist/ux-evidence.js.map +1 -0
- package/dist/ux-review.d.ts +112 -0
- package/dist/ux-review.js +151 -0
- package/dist/ux-review.js.map +1 -0
- package/dist/ux-usability.d.ts +238 -0
- package/dist/ux-usability.js +494 -0
- package/dist/ux-usability.js.map +1 -0
- package/dist/verify-fix-api.d.ts +173 -0
- package/dist/verify-fix-api.js +454 -0
- package/dist/verify-fix-api.js.map +1 -0
- package/dist/verify-fix-cli.d.ts +4 -0
- package/dist/verify-fix-cli.js +110 -0
- package/dist/verify-fix-cli.js.map +1 -0
- package/package.json +19 -14
- package/skills/jevitate-ci-check/SKILL.md +77 -0
- package/skills/jevitate-demo/SKILL.md +61 -0
- package/skills/jevitate-explore/SKILL.md +88 -87
- package/skills/jevitate-getting-started/SKILL.md +88 -0
- package/skills/jevitate-load-test/SKILL.md +11 -2
- package/skills/jevitate-mission-scope/SKILL.md +19 -11
- package/skills/jevitate-record/SKILL.md +23 -5
- package/skills/jevitate-run-journey/SKILL.md +61 -17
- package/skills/jevitate-sources/SKILL.md +57 -14
- package/skills/jevitate-ux-review/SKILL.md +106 -16
- package/skills/jevitate-verify-fix/SKILL.md +76 -0
package/dist/source-api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-api.js","sourceRoot":"","sources":["../src/source-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,sBAAsB,EACtB,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,aAAa,EACb,SAAS,GASV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C;;;;;;GAMG;AACH,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAwBD,SAAS,KAAK,CAAC,IAAmB;IAChC,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,MAAM,CAAC,IAAmB;IACjC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC;AAC1D,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,YAAY,CAAC,QAAgB,EAAE,IAAY;IACxD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACxD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,kBAAkB,CAAC,WAAW,IAAI,uDAAuD,CAAC,CAAC;IACvG,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAsBD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAmB,EAAE,GAAqB;IACxE,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IACxB,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAEvD,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QAClB,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YACjB,UAAU,EAAE,GAAG,CAAC,IAAI;YACpB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;YAC5C,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,OAAO;YAC/B,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC;SACzB,CAAC,CAAC;QACH,WAAW,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;IAChE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IACnE,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAExD,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;AACvF,CAAC;AAOD;sDACsD;AACtD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAmB;IACnD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9B,GAAG,CAAC;QACJ,eAAe,EAAE,YAAY;aAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,IAAI,CAAC;aACpC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;aACvB,IAAI,EAAE;KACV,CAAC,CAAC,CAAC;AACN,CAAC;AAWD,uEAAuE;AACvE,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAmB,EAAE,IAAY;IAChE,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACtD,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AACtF,CAAC;AAOD;8DAC8D;AAC9D,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAmB,EAAE,IAAY;IAClE,MAAM,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACxC,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxF,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IACxD,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;AAChC,CAAC;AAOD;;wDAEwD;AACxD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAmB,EAAE,IAAY;IAClE,MAAM,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACxC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAC5D,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IACxD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACjC,CAAC;AAQD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAmB,EAAE,GAAwB;IAC9E,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IAChE,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IACxB,4EAA4E;IAC5E,uEAAuE;IACvE,MAAM,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IACpG,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,mBAAmB,CAAC,WAAW,GAAG,CAAC,UAAU,qBAAqB,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC;IAChG,CAAC;IACD,MAAM,MAAM,GAAgB;QAC1B,QAAQ,EAAE,GAAG,CAAC,UAAU;QACxB,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW;QACrC,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC;KAC5B,CAAC;IACF,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC;AAChB,CAAC;AAaD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAoC,EACpC,GAAkC;IAElC,MAAM,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,mBAAmB,CAAC,oBAAoB,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,gBAAgB,CAAC,YAAY,GAAG,CAAC,EAAE,iDAAiD,CAAC,CAAC;IAClG,CAAC;IACD,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"source-api.js","sourceRoot":"","sources":["../src/source-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import { ParamValidationError } from "@jevitate/journey";
|
|
3
|
+
import { ok, fail } from "./envelope.js";
|
|
4
|
+
import { SiteGateRefusedError } from "@jevitate/runtime";
|
|
5
|
+
import { UnknownJourneyError, JourneyRequiresAuthError } from "./journey-api.js";
|
|
6
|
+
import { withSiteGate } from "./site-gate-cli.js";
|
|
7
|
+
import { withEngine } from "./engine.js";
|
|
8
|
+
import { addSource, listSources, pullSource, updateSource, removeSource, trustJourney } from "./source-api.js";
|
|
9
|
+
import { runSourceJourney, realResolvedJourneyRunner } from "./source-run-api.js";
|
|
10
|
+
import { UnknownSourceError, EmbeddedSecretError, UndeclaredOriginError, UndeclaredTouError, HashMismatchError, UntrustedRiskyJourneyError, SourceValidationError, } from "@jevitate/sources";
|
|
11
|
+
import { resolveDbPath, resolveSourceApiDeps, resolveApprovedBy, withBrowserLaunchFlags, browserOption, withEmulationFlags, emulationFromFlags, collectParam, emitJson, writeRawResult, } from "./cli-shared.js";
|
|
12
|
+
/** Registers `jevitate source`: `add|list|pull|update|remove|trust|run`. */
|
|
13
|
+
export function registerSourceCommands(program, deps) {
|
|
14
|
+
// #18 — manage distributed Journey sources (add/list/pull/update/remove/
|
|
15
|
+
// trust). Trust is an explicit user act, content-hash-bound; add/pull/update
|
|
16
|
+
// never trust anything implicitly.
|
|
17
|
+
const source = program.command("source").description("manage distributed Journey sources (git-backed collections of Journeys)");
|
|
18
|
+
source
|
|
19
|
+
.command("add <name> <gitUrl>")
|
|
20
|
+
.option("--accept-tou", "acknowledge the source's declared Terms of Use (required before its Journeys can run)")
|
|
21
|
+
.option("--json", "emit a JSON envelope")
|
|
22
|
+
.action(async function (name, gitUrl) {
|
|
23
|
+
const { acceptTou, json } = this.opts();
|
|
24
|
+
try {
|
|
25
|
+
const apiDeps = resolveSourceApiDeps(deps);
|
|
26
|
+
const result = await addSource(apiDeps, {
|
|
27
|
+
name,
|
|
28
|
+
gitUrl,
|
|
29
|
+
acceptTou: acceptTou ?? false,
|
|
30
|
+
ackedBy: resolveApprovedBy(deps),
|
|
31
|
+
});
|
|
32
|
+
const envelope = ok(result);
|
|
33
|
+
if (json) {
|
|
34
|
+
emitJson(program, envelope);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
const out = program.configureOutput().writeOut;
|
|
38
|
+
out?.(`added '${name}' pinned at ${result.pinnedCommit}\n`);
|
|
39
|
+
out?.(`Terms of Use for ${result.touSurface.gitUrl}:\n`);
|
|
40
|
+
for (const site of result.touSurface.sites)
|
|
41
|
+
out?.(` ${site.origin}\t${site.touBasis}\n`);
|
|
42
|
+
out?.(result.touAccepted ? "ToU acknowledged.\n" : "ToU NOT acknowledged — re-run with --accept-tou before running this source's Journeys.\n");
|
|
43
|
+
process.exitCode = 0;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
if (err instanceof SourceValidationError) {
|
|
48
|
+
emitJson(program, fail("E_SOURCE_INVALID_MANIFEST", err.message));
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
emitJson(program, fail("E_SOURCE_ADD", String(err instanceof Error ? err.message : err)));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
source
|
|
56
|
+
.command("list")
|
|
57
|
+
.option("--json", "emit a JSON envelope")
|
|
58
|
+
.action(async function () {
|
|
59
|
+
const { json } = this.opts();
|
|
60
|
+
try {
|
|
61
|
+
const listing = await listSources(resolveSourceApiDeps(deps));
|
|
62
|
+
const envelope = ok(listing);
|
|
63
|
+
if (json) {
|
|
64
|
+
emitJson(program, envelope);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
const out = program.configureOutput().writeOut;
|
|
68
|
+
if (listing.length === 0) {
|
|
69
|
+
out?.("no sources yet — add one with `jevitate source add <name> <gitUrl>`\n");
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
for (const s of listing) {
|
|
73
|
+
out?.(`${s.name}\t${s.gitUrl}\t${s.pinnedCommit}\ttrusted=[${s.trustedJourneys.join(", ")}]\n`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
process.exitCode = 0;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
catch (err) {
|
|
80
|
+
emitJson(program, fail("E_SOURCE_LIST", String(err instanceof Error ? err.message : err)));
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
source
|
|
84
|
+
.command("pull <name>")
|
|
85
|
+
.option("--json", "emit a JSON envelope")
|
|
86
|
+
.action(async function (name) {
|
|
87
|
+
const { json } = this.opts();
|
|
88
|
+
try {
|
|
89
|
+
const result = await pullSource(resolveSourceApiDeps(deps), name);
|
|
90
|
+
const envelope = ok(result);
|
|
91
|
+
if (json) {
|
|
92
|
+
emitJson(program, envelope);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
program.configureOutput().writeOut?.(`pulled '${name}' (pin unchanged at ${result.pinnedCommit}; run 'source update' to advance)\n`);
|
|
96
|
+
process.exitCode = 0;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
catch (err) {
|
|
100
|
+
if (err instanceof UnknownSourceError) {
|
|
101
|
+
emitJson(program, fail("E_SOURCE_UNKNOWN", err.message));
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
emitJson(program, fail("E_SOURCE_PULL", String(err instanceof Error ? err.message : err)));
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
source
|
|
109
|
+
.command("update <name>")
|
|
110
|
+
.option("--json", "emit a JSON envelope")
|
|
111
|
+
.action(async function (name) {
|
|
112
|
+
const { json } = this.opts();
|
|
113
|
+
try {
|
|
114
|
+
const result = await updateSource(resolveSourceApiDeps(deps), name);
|
|
115
|
+
const envelope = ok(result);
|
|
116
|
+
if (json) {
|
|
117
|
+
emitJson(program, envelope);
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
program.configureOutput().writeOut?.(`updated '${name}' -> pinned at ${result.pinnedCommit}\n`);
|
|
121
|
+
process.exitCode = 0;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
catch (err) {
|
|
125
|
+
if (err instanceof UnknownSourceError) {
|
|
126
|
+
emitJson(program, fail("E_SOURCE_UNKNOWN", err.message));
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
emitJson(program, fail("E_SOURCE_UPDATE", String(err instanceof Error ? err.message : err)));
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
source
|
|
134
|
+
.command("remove <name>")
|
|
135
|
+
.option("--json", "emit a JSON envelope")
|
|
136
|
+
.action(async function (name) {
|
|
137
|
+
const { json } = this.opts();
|
|
138
|
+
try {
|
|
139
|
+
const result = await removeSource(resolveSourceApiDeps(deps), name);
|
|
140
|
+
const envelope = ok(result);
|
|
141
|
+
if (json) {
|
|
142
|
+
emitJson(program, envelope);
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
program.configureOutput().writeOut?.(`removed '${name}'\n`);
|
|
146
|
+
process.exitCode = 0;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
catch (err) {
|
|
150
|
+
if (err instanceof UnknownSourceError) {
|
|
151
|
+
emitJson(program, fail("E_SOURCE_UNKNOWN", err.message));
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
emitJson(program, fail("E_SOURCE_REMOVE", String(err instanceof Error ? err.message : err)));
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
source
|
|
159
|
+
.command("trust <name> <journeyId>")
|
|
160
|
+
.description("explicitly trust one Journey in a source, bound to its current content hash")
|
|
161
|
+
.option("--json", "emit a JSON envelope")
|
|
162
|
+
.action(async function (name, journeyId) {
|
|
163
|
+
const { json } = this.opts();
|
|
164
|
+
try {
|
|
165
|
+
const result = await trustJourney(resolveSourceApiDeps(deps), {
|
|
166
|
+
sourceName: name,
|
|
167
|
+
journeyId,
|
|
168
|
+
approvedBy: resolveApprovedBy(deps),
|
|
169
|
+
});
|
|
170
|
+
// Never emit the Journey's content — only the address + bound hash.
|
|
171
|
+
const view = { sourceId: result.sourceId, journeyId: result.journeyId, contentHash: result.contentHash, approvedBy: result.approvedBy, approvedAtIso: result.approvedAtIso };
|
|
172
|
+
const envelope = ok(view);
|
|
173
|
+
if (json) {
|
|
174
|
+
emitJson(program, envelope);
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
program.configureOutput().writeOut?.(`trusted '${name}/${journeyId}' at ${result.contentHash}\n`);
|
|
178
|
+
process.exitCode = 0;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
catch (err) {
|
|
182
|
+
if (err instanceof UnknownSourceError) {
|
|
183
|
+
emitJson(program, fail("E_SOURCE_UNKNOWN", err.message));
|
|
184
|
+
}
|
|
185
|
+
else if (err instanceof UnknownJourneyError) {
|
|
186
|
+
emitJson(program, fail("E_SOURCE_UNKNOWN_JOURNEY", err.message));
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
emitJson(program, fail("E_SOURCE_TRUST", String(err instanceof Error ? err.message : err)));
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
// #26 — run a Journey that lives in a trusted remote source, THROUGH the
|
|
194
|
+
// existing run-gate (`@jevitate/sources`' `resolveForRun`). RULING: this is a
|
|
195
|
+
// `source run` subcommand (not `journey run --from-source`) because the whole
|
|
196
|
+
// trust boundary is source-scoped — the `<source>/<id>` address, the
|
|
197
|
+
// per-source manifest/ToU-ack/trust records all live under `source`. `journey
|
|
198
|
+
// run` stays the LOCAL FsJourneyStore path; keeping remote runs here keeps the
|
|
199
|
+
// two trust boundaries visibly separate. The run NEVER bypasses a gate: every
|
|
200
|
+
// refusal below is a typed error thrown by `resolveForRun` BEFORE any browser.
|
|
201
|
+
withBrowserLaunchFlags(withEmulationFlags(source.command("run <name> <journeyId>")))
|
|
202
|
+
.description("run a Journey from a trusted remote source through the run-gate")
|
|
203
|
+
.option("--param <kv>", "param as key=value (repeatable)", collectParam, {})
|
|
204
|
+
.option("--storage-state <file>", "Playwright storageState JSON to start the session authenticated (#118: required when the journey declares metadata.requiresAuth); must exist")
|
|
205
|
+
.option("--json", "emit a JSON envelope")
|
|
206
|
+
.action(async function (name, journeyId) {
|
|
207
|
+
const { param, storageState, json, ...emulationFlags } = this.opts();
|
|
208
|
+
if (storageState !== undefined && !existsSync(storageState)) {
|
|
209
|
+
emitJson(program, fail("E_SOURCE_RUN_ARGS", `storage state not found: ${storageState}`));
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
let sourceRunEmulation;
|
|
213
|
+
try {
|
|
214
|
+
sourceRunEmulation = emulationFromFlags(emulationFlags);
|
|
215
|
+
}
|
|
216
|
+
catch (err) {
|
|
217
|
+
emitJson(program, fail("E_SOURCE_RUN_ARGS", err instanceof Error ? err.message : String(err)));
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
try {
|
|
221
|
+
const apiDeps = {
|
|
222
|
+
...resolveSourceApiDeps(deps),
|
|
223
|
+
runJourney: deps.sources?.runJourney ?? realResolvedJourneyRunner,
|
|
224
|
+
};
|
|
225
|
+
const result = withEngine(await withSiteGate(resolveDbPath(deps), (siteGate) => runSourceJourney(apiDeps, {
|
|
226
|
+
...(siteGate === undefined ? {} : { siteGate }),
|
|
227
|
+
sourceName: name,
|
|
228
|
+
journeyId,
|
|
229
|
+
params: param,
|
|
230
|
+
...(sourceRunEmulation === undefined ? {} : { emulation: sourceRunEmulation }),
|
|
231
|
+
...(storageState !== undefined ? { storageState } : {}),
|
|
232
|
+
...browserOption(this.opts()),
|
|
233
|
+
})));
|
|
234
|
+
const envelope = ok(result);
|
|
235
|
+
if (json) {
|
|
236
|
+
emitJson(program, envelope);
|
|
237
|
+
if (result.outcome === "quarantined")
|
|
238
|
+
process.exitCode = 1;
|
|
239
|
+
}
|
|
240
|
+
else {
|
|
241
|
+
writeRawResult(program, result);
|
|
242
|
+
process.exitCode = result.outcome === "quarantined" ? 1 : 0;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
catch (err) {
|
|
246
|
+
// Each run-gate refusal maps to a distinct E_SOURCE_RUN* code so a
|
|
247
|
+
// caller can tell WHY the run was refused without string-matching.
|
|
248
|
+
if (err instanceof SiteGateRefusedError) {
|
|
249
|
+
emitJson(program, fail(err.code, err.message));
|
|
250
|
+
}
|
|
251
|
+
else if (err instanceof UnknownSourceError) {
|
|
252
|
+
emitJson(program, fail("E_SOURCE_RUN_UNKNOWN", err.message));
|
|
253
|
+
}
|
|
254
|
+
else if (err instanceof HashMismatchError) {
|
|
255
|
+
emitJson(program, fail("E_SOURCE_RUN_HASH_MISMATCH", err.message));
|
|
256
|
+
}
|
|
257
|
+
else if (err instanceof UntrustedRiskyJourneyError) {
|
|
258
|
+
emitJson(program, fail("E_SOURCE_RUN_UNTRUSTED", err.message));
|
|
259
|
+
}
|
|
260
|
+
else if (err instanceof UndeclaredOriginError) {
|
|
261
|
+
emitJson(program, fail("E_SOURCE_RUN_ORIGIN", err.message));
|
|
262
|
+
}
|
|
263
|
+
else if (err instanceof UndeclaredTouError) {
|
|
264
|
+
emitJson(program, fail("E_SOURCE_RUN_TOU", err.message));
|
|
265
|
+
}
|
|
266
|
+
else if (err instanceof EmbeddedSecretError) {
|
|
267
|
+
emitJson(program, fail("E_SOURCE_RUN_SECRET", err.message));
|
|
268
|
+
}
|
|
269
|
+
else if (err instanceof SourceValidationError) {
|
|
270
|
+
emitJson(program, fail("E_SOURCE_RUN_INVALID_MANIFEST", err.message));
|
|
271
|
+
}
|
|
272
|
+
else if (err instanceof ParamValidationError) {
|
|
273
|
+
emitJson(program, fail("E_INVALID_PARAMS", err.message));
|
|
274
|
+
}
|
|
275
|
+
else if (err instanceof JourneyRequiresAuthError) {
|
|
276
|
+
emitJson(program, fail("E_JOURNEY_REQUIRES_AUTH", err.message));
|
|
277
|
+
}
|
|
278
|
+
else {
|
|
279
|
+
emitJson(program, fail("E_SOURCE_RUN", String(err instanceof Error ? err.message : err)));
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
//# sourceMappingURL=source-cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-cli.js","sourceRoot":"","sources":["../src/source-cli.ts"],"names":[],"mappings":"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"}
|
package/dist/source-run-api.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import type { SiteGateDeps } from "@jevitate/runtime";
|
|
1
2
|
import { type RunPolicy } from "@jevitate/domain";
|
|
3
|
+
import { type BrowserLaunchOptions, type EmulationSpec } from "@jevitate/playwright";
|
|
2
4
|
import { type JourneyRunResult } from "@jevitate/runtime";
|
|
3
5
|
import { type SharedJourneyFile } from "@jevitate/sources";
|
|
4
6
|
import type { SourceApiDeps } from "./source-api.js";
|
|
@@ -9,7 +11,19 @@ import type { SourceApiDeps } from "./source-api.js";
|
|
|
9
11
|
* function. Injected as a fake in tests so unit tests never launch a real
|
|
10
12
|
* browser; production wires `realResolvedJourneyRunner`.
|
|
11
13
|
*/
|
|
12
|
-
export type RunResolvedJourney = (file: SharedJourneyFile, params: Record<string, string>, policy: RunPolicy
|
|
14
|
+
export type RunResolvedJourney = (file: SharedJourneyFile, params: Record<string, string>, policy: RunPolicy,
|
|
15
|
+
/**
|
|
16
|
+
* Playwright storageState JSON to seed the session from (CLI `--storage-state`, #118) — the
|
|
17
|
+
* deterministic authenticated pre-step. Contains live session cookies: handed only to the
|
|
18
|
+
* browser, never logged, never sent to a model.
|
|
19
|
+
*/
|
|
20
|
+
storageState?: string,
|
|
21
|
+
/** Per-mission viewport/device emulation (#149, CLI `--viewport <W>x<H>` / `--device "<name>"`). */
|
|
22
|
+
emulation?: EmulationSpec,
|
|
23
|
+
/** Chromium launch options (CLI `--browser-executable` / `--browser-channel` / `--browser-arg`). */
|
|
24
|
+
browser?: BrowserLaunchOptions,
|
|
25
|
+
/** The site-policy gate (`jevitate site policy set`): pacing, throttles, budgets, quiet hours. */
|
|
26
|
+
siteGate?: SiteGateDeps) => Promise<JourneyRunResult>;
|
|
13
27
|
/**
|
|
14
28
|
* The real, Playwright-backed runner for a gated source Journey. Mirrors
|
|
15
29
|
* `journey-api.ts`'s `runJourneyProgrammatically` exactly:
|
|
@@ -40,6 +54,18 @@ export interface RunSourceJourneyRequest {
|
|
|
40
54
|
params: Record<string, string>;
|
|
41
55
|
/** Defaults to `safeRunPolicy()` (Slice 1 fail-closed secret mode). */
|
|
42
56
|
policy?: RunPolicy;
|
|
57
|
+
/**
|
|
58
|
+
* Playwright storageState JSON to seed the session from (CLI `--storage-state`, #118) — the
|
|
59
|
+
* deterministic authenticated pre-step. Contains live session cookies: handed only to the
|
|
60
|
+
* browser, never logged, never sent to a model.
|
|
61
|
+
*/
|
|
62
|
+
storageState?: string;
|
|
63
|
+
/** Per-mission viewport/device emulation (#149, CLI `--viewport <W>x<H>` / `--device "<name>"`). */
|
|
64
|
+
emulation?: EmulationSpec;
|
|
65
|
+
/** Chromium launch options (CLI `--browser-*`). */
|
|
66
|
+
browser?: BrowserLaunchOptions;
|
|
67
|
+
/** The site-policy gate (`jevitate site policy set`); absent = no site policy. */
|
|
68
|
+
siteGate?: SiteGateDeps;
|
|
43
69
|
}
|
|
44
70
|
/**
|
|
45
71
|
* Runs a Journey that lives in a trusted remote source — the ONE programmatic
|
package/dist/source-run-api.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { mkdtemp, rm } from "node:fs/promises";
|
|
2
|
-
import { tmpdir } from "node:os";
|
|
3
|
-
import { join } from "node:path";
|
|
4
1
|
import { deriveParamSchema, validateParams } from "@jevitate/journey";
|
|
2
|
+
import { gateJourney } from "./site-gate-cli.js";
|
|
5
3
|
import { safeRunPolicy } from "@jevitate/domain";
|
|
6
4
|
import { PlaywrightBrowserPort } from "@jevitate/playwright";
|
|
5
|
+
import { sessionLaunchOptions } from "./browser-run-options.js";
|
|
7
6
|
import { CastActor, BrowseTheWeb } from "@jevitate/screenplay";
|
|
8
7
|
import { RecordingInterpreter } from "@jevitate/interpreter";
|
|
9
8
|
import { JourneyRunner } from "@jevitate/runtime";
|
|
10
9
|
import { FederatedJourneyRegistry, GitSourceManager, RemoteSource, UnknownSourceError, loadManifest, readLock, resolveForRun, } from "@jevitate/sources";
|
|
10
|
+
import { JourneyRequiresAuthError } from "./journey-api.js";
|
|
11
11
|
/**
|
|
12
12
|
* The real, Playwright-backed runner for a gated source Journey. Mirrors
|
|
13
13
|
* `journey-api.ts`'s `runJourneyProgrammatically` exactly:
|
|
@@ -20,27 +20,38 @@ import { FederatedJourneyRegistry, GitSourceManager, RemoteSource, UnknownSource
|
|
|
20
20
|
* A `SharedJourneyFile` IS a `Journey` (+ `declaredOrigins`), so it runs
|
|
21
21
|
* through the standard `JourneyRunner` unchanged.
|
|
22
22
|
*/
|
|
23
|
-
export const realResolvedJourneyRunner = async (file, params, policy) => {
|
|
23
|
+
export const realResolvedJourneyRunner = async (file, params, policy, storageState, emulation, browser, siteGate) => {
|
|
24
|
+
// #118: a Journey that declares it needs auth refuses BEFORE any browser launch when no
|
|
25
|
+
// storageState was given — a clear, typed failure instead of a deep `replay-target-not-found`.
|
|
26
|
+
if (file.metadata.requiresAuth === true && storageState === undefined) {
|
|
27
|
+
throw new JourneyRequiresAuthError(`journey '${file.metadata.id}' requires auth (metadata.requiresAuth) — run with --storage-state <file>`);
|
|
28
|
+
}
|
|
24
29
|
validateParams(deriveParamSchema(file.recording), params);
|
|
25
30
|
// The browser allowlist is the Journey's authorized origin set — the base
|
|
26
31
|
// site plus every gate-approved declared origin.
|
|
27
32
|
const allowedOrigins = [...new Set([file.recording.site, ...file.declaredOrigins])];
|
|
28
|
-
|
|
33
|
+
// The site policy for the Journey's origin, decided before the browser opens.
|
|
34
|
+
const gate = await gateJourney(siteGate, file.recording, { enforceLimits: true });
|
|
29
35
|
const port = new PlaywrightBrowserPort();
|
|
30
36
|
const session = await port.open({
|
|
31
|
-
|
|
32
|
-
headless: true,
|
|
37
|
+
...sessionLaunchOptions(browser),
|
|
33
38
|
allowedOrigins,
|
|
34
39
|
baseUrl: file.recording.site,
|
|
40
|
+
...emulation,
|
|
41
|
+
...(storageState !== undefined ? { storageState } : {}),
|
|
35
42
|
});
|
|
36
43
|
try {
|
|
37
|
-
const actor = CastActor.named("source-runner").whoCan(new BrowseTheWeb(session, allowedOrigins));
|
|
44
|
+
const actor = CastActor.named("source-runner").whoCan(new BrowseTheWeb(session, allowedOrigins), ...gate.abilities);
|
|
38
45
|
const runner = new JourneyRunner(actor, new RecordingInterpreter());
|
|
39
|
-
|
|
46
|
+
try {
|
|
47
|
+
return await runner.run({ journey: file, params, policy });
|
|
48
|
+
}
|
|
49
|
+
finally {
|
|
50
|
+
await gate.done();
|
|
51
|
+
}
|
|
40
52
|
}
|
|
41
53
|
finally {
|
|
42
54
|
await session.close();
|
|
43
|
-
await rm(profileDir, { recursive: true, force: true });
|
|
44
55
|
}
|
|
45
56
|
};
|
|
46
57
|
/** Resolves a registered source's recorded pin, or throws `UnknownSourceError`
|
|
@@ -86,6 +97,6 @@ export async function runSourceJourney(deps, req) {
|
|
|
86
97
|
// ready-to-run file only when every gate passes.
|
|
87
98
|
const file = await resolveForRun(gateDeps, `${req.sourceName}/${req.journeyId}`);
|
|
88
99
|
const run = deps.runJourney ?? realResolvedJourneyRunner;
|
|
89
|
-
return run(file, req.params, req.policy ?? safeRunPolicy());
|
|
100
|
+
return run(file, req.params, req.policy ?? safeRunPolicy(), req.storageState, req.emulation, req.browser, req.siteGate);
|
|
90
101
|
}
|
|
91
102
|
//# sourceMappingURL=source-run-api.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-run-api.js","sourceRoot":"","sources":["../src/source-run-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"source-run-api.js","sourceRoot":"","sources":["../src/source-run-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEtE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAkB,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAiD,MAAM,sBAAsB,CAAC;AAC5G,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAyB,MAAM,mBAAmB,CAAC;AACzE,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,QAAQ,EACR,aAAa,GAId,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AA2B5D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAuB,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;IACtI,wFAAwF;IACxF,+FAA+F;IAC/F,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QACtE,MAAM,IAAI,wBAAwB,CAChC,YAAY,IAAI,CAAC,QAAQ,CAAC,EAAE,2EAA2E,CACxG,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;IAE1D,0EAA0E;IAC1E,iDAAiD;IACjD,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAEpF,8EAA8E;IAC9E,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAClF,MAAM,IAAI,GAAG,IAAI,qBAAqB,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;QAC9B,GAAG,oBAAoB,CAAC,OAAO,CAAC;QAChC,cAAc;QACd,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;QAC5B,GAAG,SAAS;QACZ,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxD,CAAC,CAAC;IACH,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;QACpH,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,KAAK,EAAE,IAAI,oBAAoB,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC;YACH,OAAO,MAAM,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7D,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;AACH,CAAC,CAAC;AAkCF;;sEAEsE;AACtE,KAAK,UAAU,YAAY,CAAC,QAAgB,EAAE,IAAY;IACxD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACxD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,kBAAkB,CAAC,WAAW,IAAI,uDAAuD,CAAC,CAAC;IACvG,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAsB,EACtB,GAA4B;IAE5B,qEAAqE;IACrE,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IAEhE,MAAM,GAAG,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5D,8EAA8E;IAC9E,sEAAsE;IACtE,MAAM,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAEvD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IACpG,MAAM,GAAG,GAAG,IAAI,wBAAwB,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAE/D,MAAM,QAAQ,GAAgB;QAC5B,GAAG;QACH,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC7D,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;KACzC,CAAC;IAEF,yEAAyE;IACzE,iDAAiD;IACjD,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;IAEjF,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,IAAI,yBAAyB,CAAC;IACzD,OAAO,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,aAAa,EAAE,EAAE,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC1H,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `--save-storage-state` must survive a crash or a kill signal (#159), not just a clean exit: a
|
|
3
|
+
* rotating refresh token means the OLD `--storage-state` file is already stale by the time a run
|
|
4
|
+
* ends — losing the write on a crash/SIGTERM starts the next mission logged out.
|
|
5
|
+
*
|
|
6
|
+
* The crashed-run case is solved in each mission's own `finally` (a thrown error still reaches it —
|
|
7
|
+
* see `persistStorageState` in `explore-api.ts`/`ux-api.ts`). The KILLED case cannot: `kill-signal.ts`
|
|
8
|
+
* writes its partial result and exits SYNCHRONOUSLY, in the same turn the signal arrives (deliberately
|
|
9
|
+
* — see its own doc comment), and capturing Playwright's `storageState()` is async. There is no way to
|
|
10
|
+
* `await` it there without reopening the exact race that module exists to close.
|
|
11
|
+
*
|
|
12
|
+
* The fix: keep a cheap, best-effort, in-memory snapshot that is refreshed after every SETTLED step —
|
|
13
|
+
* so by the time a signal lands, `snapshot()` already holds a recent one, and the kill switch can
|
|
14
|
+
* write it with a plain synchronous `writeFileSync`.
|
|
15
|
+
*
|
|
16
|
+
* Never overwrites a good session with a lost/logged-out one: a refresh is skipped whenever the
|
|
17
|
+
* CURRENT page looks login-like (`isLoginLikeUrl`, the same #82 pattern `seedRedirectReason` uses) —
|
|
18
|
+
* so the snapshot held at that moment is the last one taken while the session still looked good, and
|
|
19
|
+
* that is what both the kill switch and the mission's own `finally` fallback end up writing. Nothing
|
|
20
|
+
* here is ever logged; the snapshot text is the same storageState JSON `--save-storage-state` writes.
|
|
21
|
+
*/
|
|
22
|
+
export declare class StorageStateSnapshotter {
|
|
23
|
+
#private;
|
|
24
|
+
private readonly session;
|
|
25
|
+
/** `false` when `--save-storage-state` was not given: every call below is then a no-op that
|
|
26
|
+
* never touches the browser (a run without the flag pays nothing). */
|
|
27
|
+
private readonly enabled;
|
|
28
|
+
constructor(session: {
|
|
29
|
+
captureStorageState?(): Promise<string>;
|
|
30
|
+
},
|
|
31
|
+
/** `false` when `--save-storage-state` was not given: every call below is then a no-op that
|
|
32
|
+
* never touches the browser (a run without the flag pays nothing). */
|
|
33
|
+
enabled: boolean);
|
|
34
|
+
/**
|
|
35
|
+
* Call after each settled step, with the page's CURRENT url. Fire-and-forget: never awaited by the
|
|
36
|
+
* mission loop (the capture cost must never slow down the run), never throws, and coalesces — a
|
|
37
|
+
* capture already in flight is left to finish rather than started twice.
|
|
38
|
+
*/
|
|
39
|
+
noteSettledStep(currentUrl: string | undefined): void;
|
|
40
|
+
/** The last known-good snapshot, or `undefined` if none was ever safely captured. */
|
|
41
|
+
snapshot(): string | undefined;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The kill switch's synchronous write (#159): called from `onKillSignal` for each armed mission that
|
|
45
|
+
* declared a `--save-storage-state` path and has a snapshot to write. Mode 0600 (owner read/write
|
|
46
|
+
* only — the file holds live session cookies); a failed write is swallowed the same way every other
|
|
47
|
+
* best-effort step in the kill path is (a full disk must never keep the OTHER armed missions from
|
|
48
|
+
* being flushed, nor keep the process from exiting).
|
|
49
|
+
*/
|
|
50
|
+
export declare function writeKillSnapshot(path: string, json: string): void;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { writeFileSync } from "node:fs";
|
|
2
|
+
import { sessionFileInProjectRefusal } from "./project-dir.js";
|
|
3
|
+
import { isLoginLikeUrl } from "@jevitate/explore";
|
|
4
|
+
/**
|
|
5
|
+
* `--save-storage-state` must survive a crash or a kill signal (#159), not just a clean exit: a
|
|
6
|
+
* rotating refresh token means the OLD `--storage-state` file is already stale by the time a run
|
|
7
|
+
* ends — losing the write on a crash/SIGTERM starts the next mission logged out.
|
|
8
|
+
*
|
|
9
|
+
* The crashed-run case is solved in each mission's own `finally` (a thrown error still reaches it —
|
|
10
|
+
* see `persistStorageState` in `explore-api.ts`/`ux-api.ts`). The KILLED case cannot: `kill-signal.ts`
|
|
11
|
+
* writes its partial result and exits SYNCHRONOUSLY, in the same turn the signal arrives (deliberately
|
|
12
|
+
* — see its own doc comment), and capturing Playwright's `storageState()` is async. There is no way to
|
|
13
|
+
* `await` it there without reopening the exact race that module exists to close.
|
|
14
|
+
*
|
|
15
|
+
* The fix: keep a cheap, best-effort, in-memory snapshot that is refreshed after every SETTLED step —
|
|
16
|
+
* so by the time a signal lands, `snapshot()` already holds a recent one, and the kill switch can
|
|
17
|
+
* write it with a plain synchronous `writeFileSync`.
|
|
18
|
+
*
|
|
19
|
+
* Never overwrites a good session with a lost/logged-out one: a refresh is skipped whenever the
|
|
20
|
+
* CURRENT page looks login-like (`isLoginLikeUrl`, the same #82 pattern `seedRedirectReason` uses) —
|
|
21
|
+
* so the snapshot held at that moment is the last one taken while the session still looked good, and
|
|
22
|
+
* that is what both the kill switch and the mission's own `finally` fallback end up writing. Nothing
|
|
23
|
+
* here is ever logged; the snapshot text is the same storageState JSON `--save-storage-state` writes.
|
|
24
|
+
*/
|
|
25
|
+
export class StorageStateSnapshotter {
|
|
26
|
+
session;
|
|
27
|
+
enabled;
|
|
28
|
+
#last;
|
|
29
|
+
#pending = false;
|
|
30
|
+
constructor(session,
|
|
31
|
+
/** `false` when `--save-storage-state` was not given: every call below is then a no-op that
|
|
32
|
+
* never touches the browser (a run without the flag pays nothing). */
|
|
33
|
+
enabled) {
|
|
34
|
+
this.session = session;
|
|
35
|
+
this.enabled = enabled;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Call after each settled step, with the page's CURRENT url. Fire-and-forget: never awaited by the
|
|
39
|
+
* mission loop (the capture cost must never slow down the run), never throws, and coalesces — a
|
|
40
|
+
* capture already in flight is left to finish rather than started twice.
|
|
41
|
+
*/
|
|
42
|
+
noteSettledStep(currentUrl) {
|
|
43
|
+
if (!this.enabled || this.#pending || this.session.captureStorageState === undefined)
|
|
44
|
+
return;
|
|
45
|
+
if (currentUrl !== undefined && isLoginLikeUrl(currentUrl))
|
|
46
|
+
return;
|
|
47
|
+
this.#pending = true;
|
|
48
|
+
this.session
|
|
49
|
+
.captureStorageState()
|
|
50
|
+
.then((json) => {
|
|
51
|
+
this.#last = json;
|
|
52
|
+
})
|
|
53
|
+
.catch(() => {
|
|
54
|
+
// Best-effort: a failed capture just leaves the previous (still good) snapshot in place.
|
|
55
|
+
})
|
|
56
|
+
.finally(() => {
|
|
57
|
+
this.#pending = false;
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
/** The last known-good snapshot, or `undefined` if none was ever safely captured. */
|
|
61
|
+
snapshot() {
|
|
62
|
+
return this.#last;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* The kill switch's synchronous write (#159): called from `onKillSignal` for each armed mission that
|
|
67
|
+
* declared a `--save-storage-state` path and has a snapshot to write. Mode 0600 (owner read/write
|
|
68
|
+
* only — the file holds live session cookies); a failed write is swallowed the same way every other
|
|
69
|
+
* best-effort step in the kill path is (a full disk must never keep the OTHER armed missions from
|
|
70
|
+
* being flushed, nor keep the process from exiting).
|
|
71
|
+
*/
|
|
72
|
+
export function writeKillSnapshot(path, json) {
|
|
73
|
+
// #195: never into a repo's .jevitate/ — refused loudly (stderr), the write skipped; the kill path
|
|
74
|
+
// must still flush the other missions and exit, so it does not throw.
|
|
75
|
+
const refusal = sessionFileInProjectRefusal(path, "save-storage-state");
|
|
76
|
+
if (refusal !== undefined) {
|
|
77
|
+
process.stderr.write(`jevitate: storage state not written: ${refusal}\n`);
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
try {
|
|
81
|
+
writeFileSync(path, json, { encoding: "utf8", mode: 0o600 });
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
// Best-effort, like every other write in the kill path.
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=storage-state-snapshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-state-snapshot.js","sourceRoot":"","sources":["../src/storage-state-snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,uBAAuB;IAKf;IAGA;IAPnB,KAAK,CAAqB;IAC1B,QAAQ,GAAG,KAAK,CAAC;IAEjB,YACmB,OAAoD;IACrE;2EACuE;IACtD,OAAgB;QAHhB,YAAO,GAAP,OAAO,CAA6C;QAGpD,YAAO,GAAP,OAAO,CAAS;IAChC,CAAC;IAEJ;;;;OAIG;IACH,eAAe,CAAC,UAA8B;QAC5C,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,KAAK,SAAS;YAAE,OAAO;QAC7F,IAAI,UAAU,KAAK,SAAS,IAAI,cAAc,CAAC,UAAU,CAAC;YAAE,OAAO;QACnE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,OAAO;aACT,mBAAmB,EAAE;aACrB,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACb,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACV,yFAAyF;QAC3F,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACxB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,qFAAqF;IACrF,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,IAAY;IAC1D,mGAAmG;IACnG,sEAAsE;IACtE,MAAM,OAAO,GAAG,2BAA2B,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;IACxE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,OAAO,IAAI,CAAC,CAAC;QAC1E,OAAO;IACT,CAAC;IACD,IAAI,CAAC;QACH,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,wDAAwD;IAC1D,CAAC;AACH,CAAC"}
|