@jevitate/cli 0.12.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (271) hide show
  1. package/dist/author-journey-cli.d.ts +9 -0
  2. package/dist/author-journey-cli.js +18 -1
  3. package/dist/author-journey-cli.js.map +1 -1
  4. package/dist/bin.js +25673 -24216
  5. package/dist/build-info.generated.js +2 -2
  6. package/dist/catalog-analysis.js +4 -2
  7. package/dist/catalog-analysis.js.map +1 -1
  8. package/dist/catalog-bundle-api.js +1 -3
  9. package/dist/catalog-bundle-api.js.map +1 -1
  10. package/dist/catalog-bundle-findings.js +1 -3
  11. package/dist/catalog-bundle-findings.js.map +1 -1
  12. package/dist/catalog-bundle.js +1 -4
  13. package/dist/catalog-bundle.js.map +1 -1
  14. package/dist/catalog-cli.js +48 -6
  15. package/dist/catalog-cli.js.map +1 -1
  16. package/dist/catalog-review.d.ts +8 -0
  17. package/dist/catalog-review.js +26 -0
  18. package/dist/catalog-review.js.map +1 -1
  19. package/dist/catalog.d.ts +42 -0
  20. package/dist/catalog.js +67 -4
  21. package/dist/catalog.js.map +1 -1
  22. package/dist/check-execute.js +9 -0
  23. package/dist/check-execute.js.map +1 -1
  24. package/dist/check-plan.d.ts +5 -2
  25. package/dist/check-plan.js +9 -5
  26. package/dist/check-plan.js.map +1 -1
  27. package/dist/check-suite.js +1 -3
  28. package/dist/check-suite.js.map +1 -1
  29. package/dist/cli-output.js +1 -3
  30. package/dist/cli-output.js.map +1 -1
  31. package/dist/cli-shared.d.ts +1 -1
  32. package/dist/cli-shared.js +2 -0
  33. package/dist/cli-shared.js.map +1 -1
  34. package/dist/defect-evidence.js +4 -8
  35. package/dist/defect-evidence.js.map +1 -1
  36. package/dist/environments.d.ts +1 -1
  37. package/dist/environments.js +1 -1
  38. package/dist/environments.js.map +1 -1
  39. package/dist/exit-codes.d.ts +0 -1
  40. package/dist/exit-codes.js +2 -0
  41. package/dist/exit-codes.js.map +1 -1
  42. package/dist/explore-adversarial.d.ts +10 -1
  43. package/dist/explore-adversarial.js +3 -0
  44. package/dist/explore-adversarial.js.map +1 -1
  45. package/dist/explore-cli/adversarial-strategy.d.ts +3 -0
  46. package/dist/explore-cli/adversarial-strategy.js +101 -0
  47. package/dist/explore-cli/adversarial-strategy.js.map +1 -0
  48. package/dist/explore-cli/coverage-strategy.d.ts +3 -0
  49. package/dist/explore-cli/coverage-strategy.js +97 -0
  50. package/dist/explore-cli/coverage-strategy.js.map +1 -0
  51. package/dist/explore-cli/feature-strategy.d.ts +3 -0
  52. package/dist/explore-cli/feature-strategy.js +60 -0
  53. package/dist/explore-cli/feature-strategy.js.map +1 -0
  54. package/dist/explore-cli/goal-strategy.d.ts +3 -0
  55. package/dist/explore-cli/goal-strategy.js +185 -0
  56. package/dist/explore-cli/goal-strategy.js.map +1 -0
  57. package/dist/explore-cli/options.d.ts +3 -0
  58. package/dist/explore-cli/options.js +157 -0
  59. package/dist/explore-cli/options.js.map +1 -0
  60. package/dist/explore-cli/run.d.ts +7 -0
  61. package/dist/explore-cli/run.js +702 -0
  62. package/dist/explore-cli/run.js.map +1 -0
  63. package/dist/explore-cli/scope-region.d.ts +17 -0
  64. package/dist/explore-cli/scope-region.js +24 -0
  65. package/dist/explore-cli/scope-region.js.map +1 -0
  66. package/dist/explore-cli/shared.d.ts +167 -0
  67. package/dist/explore-cli/shared.js +20 -0
  68. package/dist/explore-cli/shared.js.map +1 -0
  69. package/dist/explore-cli/usability-strategy.d.ts +3 -0
  70. package/dist/explore-cli/usability-strategy.js +137 -0
  71. package/dist/explore-cli/usability-strategy.js.map +1 -0
  72. package/dist/explore-cli.d.ts +2 -2
  73. package/dist/explore-cli.js +2 -1347
  74. package/dist/explore-cli.js.map +1 -1
  75. package/dist/explore-coverage.d.ts +10 -1
  76. package/dist/explore-coverage.js +3 -0
  77. package/dist/explore-coverage.js.map +1 -1
  78. package/dist/explore-feature.d.ts +6 -0
  79. package/dist/explore-feature.js +1 -0
  80. package/dist/explore-feature.js.map +1 -1
  81. package/dist/explore-goal.d.ts +6 -0
  82. package/dist/explore-goal.js +1 -0
  83. package/dist/explore-goal.js.map +1 -1
  84. package/dist/explore-specs.d.ts +3 -1
  85. package/dist/explore-specs.js +2 -1
  86. package/dist/explore-specs.js.map +1 -1
  87. package/dist/github-issue-filer.js +1 -4
  88. package/dist/github-issue-filer.js.map +1 -1
  89. package/dist/goal-run-flags.d.ts +0 -1
  90. package/dist/goal-run-flags.js.map +1 -1
  91. package/dist/inbox-cli.js +1 -3
  92. package/dist/inbox-cli.js.map +1 -1
  93. package/dist/init-skills.js +1 -4
  94. package/dist/init-skills.js.map +1 -1
  95. package/dist/journey-anchor-api.d.ts +10 -9
  96. package/dist/journey-anchor-api.js +12 -22
  97. package/dist/journey-anchor-api.js.map +1 -1
  98. package/dist/journey-anchor-cli.d.ts +1 -1
  99. package/dist/journey-anchor-cli.js +22 -8
  100. package/dist/journey-anchor-cli.js.map +1 -1
  101. package/dist/journey-cli/anchors.d.ts +4 -0
  102. package/dist/journey-cli/anchors.js +48 -0
  103. package/dist/journey-cli/anchors.js.map +1 -0
  104. package/dist/journey-cli/find.d.ts +4 -0
  105. package/dist/journey-cli/find.js +44 -0
  106. package/dist/journey-cli/find.js.map +1 -0
  107. package/dist/journey-cli/lint.d.ts +4 -0
  108. package/dist/journey-cli/lint.js +84 -0
  109. package/dist/journey-cli/lint.js.map +1 -0
  110. package/dist/journey-cli/list.d.ts +4 -0
  111. package/dist/journey-cli/list.js +48 -0
  112. package/dist/journey-cli/list.js.map +1 -0
  113. package/dist/journey-cli/migrate.d.ts +4 -0
  114. package/dist/journey-cli/migrate.js +101 -0
  115. package/dist/journey-cli/migrate.js.map +1 -0
  116. package/dist/journey-cli/promote.d.ts +4 -0
  117. package/dist/journey-cli/promote.js +181 -0
  118. package/dist/journey-cli/promote.js.map +1 -0
  119. package/dist/journey-cli/publish.d.ts +4 -0
  120. package/dist/journey-cli/publish.js +70 -0
  121. package/dist/journey-cli/publish.js.map +1 -0
  122. package/dist/journey-cli/review.d.ts +4 -0
  123. package/dist/journey-cli/review.js +108 -0
  124. package/dist/journey-cli/review.js.map +1 -0
  125. package/dist/journey-cli/run.d.ts +4 -0
  126. package/dist/journey-cli/run.js +244 -0
  127. package/dist/journey-cli/run.js.map +1 -0
  128. package/dist/journey-cli/shared.d.ts +9 -0
  129. package/dist/journey-cli/shared.js +12 -0
  130. package/dist/journey-cli/shared.js.map +1 -0
  131. package/dist/journey-cli/verify.d.ts +4 -0
  132. package/dist/journey-cli/verify.js +125 -0
  133. package/dist/journey-cli/verify.js.map +1 -0
  134. package/dist/journey-cli.d.ts +3 -2
  135. package/dist/journey-cli.js +25 -950
  136. package/dist/journey-cli.js.map +1 -1
  137. package/dist/journey-link-api.d.ts +40 -0
  138. package/dist/journey-link-api.js +90 -0
  139. package/dist/journey-link-api.js.map +1 -0
  140. package/dist/journey-link-cli.d.ts +7 -0
  141. package/dist/journey-link-cli.js +58 -0
  142. package/dist/journey-link-cli.js.map +1 -0
  143. package/dist/journey-link-hints.d.ts +8 -0
  144. package/dist/journey-link-hints.js +68 -0
  145. package/dist/journey-link-hints.js.map +1 -0
  146. package/dist/journey-lint-sarif.js +3 -0
  147. package/dist/journey-lint-sarif.js.map +1 -1
  148. package/dist/journey-network-checks.d.ts +9 -1
  149. package/dist/journey-network-checks.js +55 -12
  150. package/dist/journey-network-checks.js.map +1 -1
  151. package/dist/journey-prefix.d.ts +9 -1
  152. package/dist/journey-prefix.js +12 -0
  153. package/dist/journey-prefix.js.map +1 -1
  154. package/dist/journey-review/render.d.ts +43 -0
  155. package/dist/journey-review/render.js +461 -0
  156. package/dist/journey-review/render.js.map +1 -0
  157. package/dist/journey-review-api.d.ts +1 -0
  158. package/dist/journey-review-api.js +7 -0
  159. package/dist/journey-review-api.js.map +1 -1
  160. package/dist/journey-review-store.js +1 -0
  161. package/dist/journey-review-store.js.map +1 -1
  162. package/dist/journey-review.d.ts +6 -4
  163. package/dist/journey-review.js +18 -393
  164. package/dist/journey-review.js.map +1 -1
  165. package/dist/journey-verify.js +2 -1
  166. package/dist/journey-verify.js.map +1 -1
  167. package/dist/ledger-api.js +1 -4
  168. package/dist/ledger-api.js.map +1 -1
  169. package/dist/locator-health-api.js +1 -3
  170. package/dist/locator-health-api.js.map +1 -1
  171. package/dist/locator-health.d.ts +0 -1
  172. package/dist/locator-health.js +0 -3
  173. package/dist/locator-health.js.map +1 -1
  174. package/dist/log-classes.js +1 -3
  175. package/dist/log-classes.js.map +1 -1
  176. package/dist/log-sources.js +17 -1
  177. package/dist/log-sources.js.map +1 -1
  178. package/dist/mcp-api.js +16 -821
  179. package/dist/mcp-api.js.map +1 -1
  180. package/dist/mcp-cli-tools.js +48 -7
  181. package/dist/mcp-cli-tools.js.map +1 -1
  182. package/dist/mcp-tools/cli.d.ts +3 -0
  183. package/dist/mcp-tools/cli.js +20 -0
  184. package/dist/mcp-tools/cli.js.map +1 -0
  185. package/dist/mcp-tools/explore.d.ts +3 -0
  186. package/dist/mcp-tools/explore.js +141 -0
  187. package/dist/mcp-tools/explore.js.map +1 -0
  188. package/dist/mcp-tools/findings.d.ts +3 -0
  189. package/dist/mcp-tools/findings.js +277 -0
  190. package/dist/mcp-tools/findings.js.map +1 -0
  191. package/dist/mcp-tools/inbox.d.ts +3 -0
  192. package/dist/mcp-tools/inbox.js +106 -0
  193. package/dist/mcp-tools/inbox.js.map +1 -0
  194. package/dist/mcp-tools/journey.d.ts +3 -0
  195. package/dist/mcp-tools/journey.js +260 -0
  196. package/dist/mcp-tools/journey.js.map +1 -0
  197. package/dist/mcp-tools/shared.d.ts +39 -0
  198. package/dist/mcp-tools/shared.js +69 -0
  199. package/dist/mcp-tools/shared.js.map +1 -0
  200. package/dist/mission-fixtures.js +1 -8
  201. package/dist/mission-fixtures.js.map +1 -1
  202. package/dist/mission-queue-cli.js +1 -3
  203. package/dist/mission-queue-cli.js.map +1 -1
  204. package/dist/multi-run.js +1 -3
  205. package/dist/multi-run.js.map +1 -1
  206. package/dist/pre-approval.js +4 -4
  207. package/dist/pre-approval.js.map +1 -1
  208. package/dist/readiness.js +2 -2
  209. package/dist/readiness.js.map +1 -1
  210. package/dist/report-api.js +1 -4
  211. package/dist/report-api.js.map +1 -1
  212. package/dist/resource-preflight.js.map +1 -1
  213. package/dist/run-metadata.js +1 -3
  214. package/dist/run-metadata.js.map +1 -1
  215. package/dist/run-tags-cli.d.ts +0 -2
  216. package/dist/run-tags-cli.js +0 -4
  217. package/dist/run-tags-cli.js.map +1 -1
  218. package/dist/session-check.js +1 -3
  219. package/dist/session-check.js.map +1 -1
  220. package/dist/signal-triage.js +6 -2
  221. package/dist/signal-triage.js.map +1 -1
  222. package/dist/suite-explore-options.d.ts +8 -0
  223. package/dist/suite-explore-options.js +4 -0
  224. package/dist/suite-explore-options.js.map +1 -1
  225. package/dist/sweep-api.d.ts +9 -0
  226. package/dist/sweep-api.js +70 -4
  227. package/dist/sweep-api.js.map +1 -1
  228. package/dist/sweep-cli.d.ts +2 -0
  229. package/dist/sweep-cli.js +22 -5
  230. package/dist/sweep-cli.js.map +1 -1
  231. package/dist/transcript-file.d.ts +0 -3
  232. package/dist/transcript-file.js +0 -9
  233. package/dist/transcript-file.js.map +1 -1
  234. package/dist/ui-api.js +1 -4
  235. package/dist/ui-api.js.map +1 -1
  236. package/dist/ux-usability/analysis.d.ts +14 -0
  237. package/dist/ux-usability/analysis.js +106 -0
  238. package/dist/ux-usability/analysis.js.map +1 -0
  239. package/dist/ux-usability/done-adjudication.d.ts +15 -0
  240. package/dist/ux-usability/done-adjudication.js +56 -0
  241. package/dist/ux-usability/done-adjudication.js.map +1 -0
  242. package/dist/ux-usability/hang.d.ts +5 -0
  243. package/dist/ux-usability/hang.js +41 -0
  244. package/dist/ux-usability/hang.js.map +1 -0
  245. package/dist/ux-usability/loop.d.ts +15 -0
  246. package/dist/ux-usability/loop.js +104 -0
  247. package/dist/ux-usability/loop.js.map +1 -0
  248. package/dist/ux-usability/observe.d.ts +7 -0
  249. package/dist/ux-usability/observe.js +89 -0
  250. package/dist/ux-usability/observe.js.map +1 -0
  251. package/dist/ux-usability/result.d.ts +11 -0
  252. package/dist/ux-usability/result.js +113 -0
  253. package/dist/ux-usability/result.js.map +1 -0
  254. package/dist/ux-usability/setup.d.ts +76 -0
  255. package/dist/ux-usability/setup.js +204 -0
  256. package/dist/ux-usability/setup.js.map +1 -0
  257. package/dist/ux-usability/teardown.d.ts +3 -0
  258. package/dist/ux-usability/teardown.js +13 -0
  259. package/dist/ux-usability/teardown.js.map +1 -0
  260. package/dist/ux-usability.d.ts +20 -17
  261. package/dist/ux-usability.js +15 -589
  262. package/dist/ux-usability.js.map +1 -1
  263. package/dist/verify-fix-api.js +1 -4
  264. package/dist/verify-fix-api.js.map +1 -1
  265. package/package.json +5 -6
  266. package/skills/jevitate-explore/SKILL.md +9 -1
  267. package/skills/jevitate-getting-started/SKILL.md +1 -0
  268. package/skills/jevitate-promotion-ready/SKILL.md +76 -0
  269. package/skills/jevitate-record/SKILL.md +3 -0
  270. package/skills/jevitate-run-journey/SKILL.md +3 -0
  271. package/skills/jevitate-test-campaign/SKILL.md +5 -3
@@ -76,6 +76,8 @@ const USAGE_ERROR_CODES = new Set([
76
76
  "E_JOURNEY_PROPOSAL_STALE", // #453: `journey promote --proposal`: the Journey changed since the proposal was made; re-run the self-heal
77
77
  "E_JOURNEY_PROPOSAL_PROOF", // #453: the proposal file touches the Journey's proof fields
78
78
  "E_JOURNEY_PROPOSAL_INVALID", // #453: the proposal file is not valid
79
+ "E_CATALOG_DRAFT_EXISTS", // #523: `catalog draft` of an id the catalog already has — link it, or pick another id
80
+ "E_JOURNEY_LINK_ARGS", // #523: `journey link` with nothing to change, a set+unlink of one field, or an id the catalog does not have (the message lists its ids)
79
81
  "E_CATALOG_REVIEW_STALE", // #433: `persona|job approve --reviewed-hash`: the item changed since the sheet was read; review again // #432: `journey promote --reviewed-hash`: the Journey changed since the sheet was read; review again
80
82
  "E_DEMO_PRODUCTION_ENV", // #249: `demo` refuses an environment flagged production: true
81
83
  "E_DEMO_EXISTS", // #249: `demo` would overwrite an existing Journey / pending demo draft
@@ -1 +1 @@
1
- {"version":3,"file":"exit-codes.js","sourceRoot":"","sources":["../src/exit-codes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exit-codes.js","sourceRoot":"","sources":["../src/exit-codes.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import type { JudgmentPort, GenerationPort, UsageTracker, UsageCounts } from "@j
2
2
  import { type BrowserPort, type EmulationSpec } from "@jevitate/playwright";
3
3
  import { type BrowserRunOptions } from "./browser-run-options.js";
4
4
  import { type ScreenshotsSpec } from "./run-screenshots.js";
5
- import { type InvariantSpec } from "@jevitate/recording";
5
+ import { type InvariantSpec, type TargetDescriptor } from "@jevitate/recording";
6
6
  import type { HostHealthSampler } from "@jevitate/explore";
7
7
  import type { DefectOutcome, EnvironmentDegraded, HostHealthSummary } from "@jevitate/domain";
8
8
  import { type Bounds, type AdversarialOutcome, type AdversarialDefect, type MisuseStrategy, type CoverageThresholds } from "@jevitate/explore";
@@ -66,6 +66,12 @@ export interface RunAdversarialCliMissionOptions {
66
66
  readonly saveStorageState?: string;
67
67
  /** Registered secret values (`--secret`): kept out of the transcript, Recording and issue drafts. */
68
68
  readonly secrets?: readonly string[];
69
+ /**
70
+ * #521 `--block-off-allowlist-navigation` (opt-in, off by default): arm the navigation guard on this
71
+ * run's mission session (and its fresh/hang-replay sessions) — an off-allowlist page navigation is
72
+ * stopped in place and the mission treats it as a departure. Never on login, Journey or demo sessions.
73
+ */
74
+ readonly blockOffAllowlistNavigation?: boolean;
69
75
  /** #303 `--action-deltas` (opt-in): record what each action changed (code verdict) — evidence only. */
70
76
  readonly actionDeltas?: boolean;
71
77
  /** Issue filing (off unless enabled + a repo is configured). Default: drafts only. */
@@ -82,6 +88,9 @@ export interface RunAdversarialCliMissionOptions {
82
88
  readonly target?: TargetConfig;
83
89
  /** Extra in-scope route globs (`--route`); the start URL's route is always in scope. */
84
90
  readonly routeGlobs?: readonly string[];
91
+ /** #519: only the controls inside these page regions are measured and hunted (`scopeRegionSpec` is how the report names them). */
92
+ readonly scopeRegions?: readonly TargetDescriptor[];
93
+ readonly scopeRegionSpec?: string;
85
94
  /** Coverage a silent run needs to be `clean` (`--min-control-coverage`, `--no-require-form-submit`). */
86
95
  readonly coverageThresholds?: Partial<CoverageThresholds>;
87
96
  /** App-declared invariants (`--invariants`, #86), already validated against the allowlist. */
@@ -73,6 +73,7 @@ export async function runAdversarialCliMission(opts) {
73
73
  const launch = {
74
74
  ...sessionLaunchOptions(opts.browser, videoDir),
75
75
  allowedOrigins: [...opts.allowlist],
76
+ ...(opts.blockOffAllowlistNavigation === true ? { blockOffAllowlistNavigation: true } : {}),
76
77
  baseUrl: origin,
77
78
  ...opts.emulation,
78
79
  ...(opts.storageState !== undefined ? { storageState: opts.storageState } : {}),
@@ -137,6 +138,8 @@ export async function runAdversarialCliMission(opts) {
137
138
  allowlist: opts.allowlist,
138
139
  strategies: opts.strategies,
139
140
  ...(opts.routeGlobs === undefined ? {} : { routeGlobs: opts.routeGlobs }),
141
+ ...(opts.scopeRegions === undefined ? {} : { scopeRegions: opts.scopeRegions }),
142
+ ...(opts.scopeRegionSpec === undefined ? {} : { scopeRegionSpec: opts.scopeRegionSpec }),
140
143
  ...(opts.coverageThresholds === undefined ? {} : { coverageThresholds: opts.coverageThresholds }),
141
144
  site: origin,
142
145
  ...(opts.bounds === undefined ? {} : { bounds: opts.bounds }),
@@ -1 +1 @@
1
- {"version":3,"file":"explore-adversarial.js","sourceRoot":"","sources":["../src/explore-adversarial.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"explore-adversarial.js","sourceRoot":"","sources":["../src/explore-adversarial.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAC;AAEzD,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAwC,MAAM,sBAAsB,CAAC;AACrH,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,oBAAoB,EAA0B,MAAM,0BAA0B,CAAC;AAChK,OAAO,EAAE,aAAa,EAAwB,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAI/D,OAAO,EACL,qBAAqB,EACrB,6BAA6B,EAK7B,eAAe,EAGf,aAAa,EACb,cAAc,EACd,YAAY,GACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAIgB,KAAK,GAC3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAuB,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAmB,MAAM,aAAa,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACtH,OAAO,EAAE,6BAA6B,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACjG,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAsB,MAAM,qBAAqB,CAAC;AAEzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EACL,qBAAqB,EACrB,oBAAoB,GAGrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAEf,eAAe,EACf,sBAAsB,EAEtB,kBAAkB,EAClB,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,oCAAoC,EACpC,mBAAmB,EACnB,gBAAgB,EAEhB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAE7B;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAA8B;IACnE,uEAAuE;IACvE,eAAe;IACf,iBAAiB;IACjB,kBAAkB;IAClB,uBAAuB;IACvB,mBAAmB;IACnB,8CAA8C;IAC9C,mBAAmB;IACnB,oBAAoB;IACpB,cAAc;IACd,gBAAgB;IAChB,uBAAuB;IACvB,oBAAoB;IACpB,sFAAsF;IACtF,aAAa;CACd,CAAC;AAkIF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,IAAqC;IAErC,wEAAwE;IACxE,MAAM,MAAM,GAAG,6BAA6B,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3E,oCAAoC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC5D,+FAA+F;IAC/F,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,0CAA0C;IAC1C,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3D,mGAAmG;IACnG,2FAA2F;IAC3F,MAAM,OAAO,GAAG,aAAa,CAAC;QAC5B,YAAY,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,KAAK,SAAS;QACrD,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;QAC3B,YAAY,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,aAAa;QACzC,KAAK,EAAE,sBAAsB,IAAI,CAAC,OAAO,EAAE;KAC5C,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,qBAAqB,EAAE,CAAC,CAAC,CAAC;IACjG,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC;IAC3C,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC;IACtD,iFAAiF;IACjF,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3F,oFAAoF;IACpF,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG;QACb,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;QAC/C,cAAc,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACnC,GAAG,CAAC,IAAI,CAAC,2BAA2B,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,2BAA2B,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3F,OAAO,EAAE,MAAM;QACf,GAAG,IAAI,CAAC,SAAS;QACjB,GAAG,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChF,CAAC;IACF,oFAAoF;IACpF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;IACrC,uGAAuG;IACvG,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,WAAW,CAAC;QAC3E,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,KAAK,SAAS;QACrD,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC7B,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACnB,wFAAwF;YACxF,QAAQ,EAAE,aAAa;YACvB,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;YACnK,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;YAC/C,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU;YACpC,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;YACtD,GAAG,CAAC,IAAI,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC;SAC5H,CAAC;KACH,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,oBAAoB,CAAC;QACrC,GAAG,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC;QAC1C,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;QAC3B,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;KAC7C,CAAC,CAAC;IACH,2EAA2E;IAC3E,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,iBAAiB,GAAG,CAAC,KAAsB,EAAE,GAA+B,EAAQ,EAAE;QAC1F,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACvC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,SAAS,EAAE,iBAAiB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACxE,WAAW,CAAC,eAAe,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC;IACF,oGAAoG;IACpG,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE;QACxC,MAAM,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QACvE,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IACH,IAAI,CAAC;QACH,0FAA0F;QAC1F,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9G,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC5G,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC;YAC1C,UAAU,EAAE,MAAM;YAClB,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;YACxC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAClF,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5E,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACzE,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5E,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,OAAO,EAAE,KAAK,CAAC,GAAG;YAClB,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;YAC7D,mGAAmG;YACnG,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;YACxB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;YACzE,GAAG,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;YAC/E,GAAG,CAAC,IAAI,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;YACxF,GAAG,CAAC,IAAI,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACjG,IAAI,EAAE,MAAM;YACZ,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7D,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;YAChE,GAAG,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,6EAA6E;YAC7E,gBAAgB,EAAE,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;YACzE,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;YAC5E,iBAAiB;YACjB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;YACzE,GAAG,CAAC,IAAI,CAAC,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACpG,QAAQ,EAAE;gBACR,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;gBACrG,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;gBAClG,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;gBAC3G,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;aACnF;SACF,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACtG,8FAA8F;QAC9F,qGAAqG;QACrG,MAAM,UAAU,GAAG,CAAC,YAAY,EAAE,UAAU,IAAI,OAAO,CAAC,UAAU,CAAsB,CAAC;QACzF,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1C,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QACpC,8FAA8F;QAC9F,8EAA8E;QAC9E,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,qBAAqB,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QACrK,MAAM,cAAc,GAAmB,IAAI,CAAC,OAAO,CAAC;QACpD,MAAM,QAAQ,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QACtG,MAAM,MAAM,GAAiB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACrD,cAAc,CAAC,CAAC,EAAE,EAAE,GAAG,GAAG,EAAE,aAAa,EAAE,gCAAgC,UAAU,kBAAkB,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAC1H,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,GAAG,GAAG,EAAE,aAAa,EAAE,gCAAgC,UAAU,kBAAkB,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;QACvI,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;QAC5F,MAAM,MAAM,GAAG,MAAM,kBAAkB,CACrC,OAAO,CAAC,aAAa,EACrB,MAAM,EACN,IAAI,CAAC,MAAM,IAAI,WAAW,EAC1B,IAAI,CAAC,UAAU,IAAI,QAAQ,EAC3B,GAAG,CACJ,CAAC;QACF,0FAA0F;QAC1F,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG;YACb,GAAG,OAAO;YACV,aAAa,EAAE,6BAA6B;YAC5C,QAAQ,EAAE,aAAsB;YAChC,cAAc;YACd,cAAc,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC;YACvC,GAAG,MAAM;YACT,GAAG,UAAU;YACb,qGAAqG;YACrG,SAAS,EAAE;gBACT,GAAG,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACrI,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO;aAC1C;YACD,OAAO,EAAE,cAAc;YACvB,UAAU;YACV,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,QAAQ;YACR,MAAM;YACN,6FAA6F;YAC7F,sEAAsE;YACtE,MAAM,EAAE;gBACN,OAAO,EAAE,KAAK,CAAC,UAAU;gBACzB,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC9B,GAAG,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACjG;YACD,GAAG,YAAY,CAAC,KAAK,CAAC;YACtB,MAAM;YACN,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;YAC5E,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;YACjE,GAAG,sBAAsB,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC;YACnF,GAAG,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;YACvE,UAAU;YACV,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3I,GAAG,IAAI,CAAC,MAAM;SACf,CAAC;QACF,OAAO,MAAM,eAAe,CAAC,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,kBAAkB,CAAC,OAAO,CAAC,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;IACzO,CAAC;YAAS,CAAC;QACT,gBAAgB,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC;QACzB,MAAM,YAAY,EAAE,CAAC;IACvB,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ExploreRunContext } from "./shared.js";
2
+ /** `--strategy adversarial` (moved verbatim out of registerExploreCommands). */
3
+ export declare function runAdversarialStrategy(ctx: ExploreRunContext): Promise<void>;
@@ -0,0 +1,101 @@
1
+ import { MissingCredentialError } from "@jevitate/ai-core";
2
+ import { ScopeUnderivableError, UnauthorizedExploreTargetError, resolveCoverageThresholds } from "@jevitate/explore";
3
+ import { ok, fail } from "../envelope.js";
4
+ import { runAdversarialCliMission, CLI_ADVERSARIAL_STRATEGIES, resolveExploreAllowlist } from "../explore-api.js";
5
+ import { triagedServerLog } from "../explore-shared.js";
6
+ import { GatewaySelectionError, buildExploreGateways } from "../cli-shared.js";
7
+ /** `--strategy adversarial` (moved verbatim out of registerExploreCommands). */
8
+ export async function runAdversarialStrategy(ctx) {
9
+ const { deps, o, emitExplore, strategy, target, browser, screenshotsOpt, emulation, overflow, withInvariants, serverLog, withPrefix, withScopeRegion, emitJourneyFailure, withEvidence, runFiling, issueFiler } = ctx;
10
+ if (!o.url) {
11
+ emitExplore(fail("E_EXPLORE_ARGS", "--url is required for --strategy adversarial"));
12
+ return;
13
+ }
14
+ const advAllowlist = resolveExploreAllowlist(o.url, o.allow);
15
+ let advJudge;
16
+ let advGen;
17
+ let advUsage;
18
+ try {
19
+ ({ judge: advJudge, gen: advGen, usage: advUsage } = await buildExploreGateways(deps, {
20
+ real: o.real ?? false,
21
+ fakeAi: o.fakeAi ?? false,
22
+ jevProvider: o.jevProvider,
23
+ }));
24
+ }
25
+ catch (err) {
26
+ if (err instanceof MissingCredentialError || err instanceof GatewaySelectionError) {
27
+ emitExplore(fail("E_AI_SETUP_REQUIRED", err.message));
28
+ }
29
+ else {
30
+ emitExplore(fail("E_EXPLORE_SETUP", String(err instanceof Error ? err.message : err)));
31
+ }
32
+ return;
33
+ }
34
+ let coverageThresholds;
35
+ try {
36
+ coverageThresholds = resolveCoverageThresholds({
37
+ ...(o.minControlCoverage === undefined ? {} : { minControlRatio: Number(o.minControlCoverage) }),
38
+ requireFormSubmit: o.requireFormSubmit,
39
+ });
40
+ }
41
+ catch (err) {
42
+ emitExplore(fail("E_EXPLORE_ARGS", String(err instanceof Error ? err.message : err)));
43
+ return;
44
+ }
45
+ const advBounds = {};
46
+ if (o.maxActions !== undefined)
47
+ advBounds.maxActions = Number(o.maxActions);
48
+ if (o.maxDecisions !== undefined)
49
+ advBounds.maxDecisions = Number(o.maxDecisions);
50
+ try {
51
+ const result = await runAdversarialCliMission({
52
+ ...(target === undefined ? {} : { target }),
53
+ ...(o.actionDeltas === true ? { actionDeltas: true } : {}),
54
+ ...(o.blockOffAllowlistNavigation === true ? { blockOffAllowlistNavigation: true } : {}),
55
+ seedUrl: o.url,
56
+ allowlist: advAllowlist,
57
+ usage: advUsage,
58
+ ...(o.route.length > 0 ? { routeGlobs: o.route } : {}),
59
+ coverageThresholds,
60
+ bounds: Object.keys(advBounds).length > 0 ? advBounds : undefined,
61
+ secrets: o.secret.length > 0 ? o.secret : undefined,
62
+ ...(runFiling === undefined ? {} : { filing: runFiling }),
63
+ issueFiler,
64
+ ...(o.hangReplays === undefined ? {} : { hangReplays: o.hangReplays }),
65
+ strategies: CLI_ADVERSARIAL_STRATEGIES,
66
+ judgment: advJudge,
67
+ generation: advGen,
68
+ browserPortFactory: deps.explore?.browserPortFactory,
69
+ browser,
70
+ ...screenshotsOpt,
71
+ ...(emulation === undefined ? {} : { emulation }),
72
+ overflow,
73
+ outDir: o.out,
74
+ ...(o.storageState !== undefined ? { storageState: o.storageState } : {}),
75
+ ...(o.saveStorageState !== undefined ? { saveStorageState: o.saveStorageState } : {}),
76
+ ...withInvariants,
77
+ ...triagedServerLog(serverLog, advJudge, o.real === true),
78
+ ...withPrefix,
79
+ ...withScopeRegion,
80
+ });
81
+ // The typed verdict gates CI: 0 clean · 1 defects found (a failing check) · 2 the run
82
+ // itself broke (inconclusive/crashed) — see exit-codes.ts.
83
+ emitExplore(ok(await withEvidence(result)), result.exitCode);
84
+ }
85
+ catch (err) {
86
+ if (emitJourneyFailure(err))
87
+ return;
88
+ if (err instanceof UnauthorizedExploreTargetError) {
89
+ emitExplore(fail("E_UNAUTHORIZED_EXPLORE_TARGET", err.message));
90
+ }
91
+ else if (err instanceof ScopeUnderivableError) {
92
+ // #224: no default route scope from --url — a usage error (64), refused before any browser.
93
+ emitExplore(fail("E_EXPLORE_ARGS", err.message));
94
+ }
95
+ else {
96
+ emitExplore(fail("E_EXPLORE_RUN", String(err instanceof Error ? err.message : err)));
97
+ }
98
+ }
99
+ return;
100
+ }
101
+ //# sourceMappingURL=adversarial-strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adversarial-strategy.js","sourceRoot":"","sources":["../../src/explore-cli/adversarial-strategy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ExploreRunContext } from "./shared.js";
2
+ /** `--strategy coverage|exploratory` (moved verbatim out of registerExploreCommands). */
3
+ export declare function runCoverageStrategy(ctx: ExploreRunContext<"coverage" | "exploratory">): Promise<void>;
@@ -0,0 +1,97 @@
1
+ import { MissingCredentialError } from "@jevitate/ai-core";
2
+ import { ScopeUnderivableError, UnauthorizedExploreTargetError } from "@jevitate/explore";
3
+ import { ok, fail } from "../envelope.js";
4
+ import { runCoverageMission, resolveExploreAllowlist } from "../explore-api.js";
5
+ import { triagedServerLog } from "../explore-shared.js";
6
+ import { stallTimeoutMs, GatewaySelectionError, buildExploreGateways } from "../cli-shared.js";
7
+ /** `--strategy coverage|exploratory` (moved verbatim out of registerExploreCommands). */
8
+ export async function runCoverageStrategy(ctx) {
9
+ const { deps, o, emitExplore, strategy, target, browser, screenshotsOpt, emulation, overflow, withInvariants, serverLog, withPrefix, withScopeRegion, emitJourneyFailure, withEvidence } = ctx;
10
+ if (!o.url) {
11
+ emitExplore(fail("E_EXPLORE_ARGS", "--url is required"));
12
+ return;
13
+ }
14
+ if (o.scope !== undefined && o.scope !== "app") {
15
+ emitExplore(fail("E_EXPLORE_ARGS", `--scope must be "app" (got ${JSON.stringify(o.scope)})`));
16
+ return;
17
+ }
18
+ const covAllowlist = resolveExploreAllowlist(o.url, o.allow);
19
+ const covBounds = {};
20
+ if (o.maxActions !== undefined)
21
+ covBounds.maxActions = Number(o.maxActions);
22
+ if (o.maxDecisions !== undefined)
23
+ covBounds.maxDecisions = Number(o.maxDecisions);
24
+ // Scope containment (#89, reusing #64's model): the start URL's route plus --route globs;
25
+ // --scope app (or --route '/**') widens it to the whole app.
26
+ const covRouteGlobs = [...o.route, ...(o.scope === "app" ? ["/**"] : [])];
27
+ const covStall = stallTimeoutMs(o.stallTimeout);
28
+ if (covStall === null) {
29
+ emitExplore(fail("E_EXPLORE_ARGS", `--stall-timeout must be a positive number of seconds (got ${JSON.stringify(o.stallTimeout)})`));
30
+ return;
31
+ }
32
+ let covJudge;
33
+ let covGen;
34
+ let covUsage;
35
+ try {
36
+ ({ judge: covJudge, gen: covGen, usage: covUsage } = await buildExploreGateways(deps, {
37
+ real: o.real ?? false,
38
+ fakeAi: o.fakeAi ?? false,
39
+ jevProvider: o.jevProvider,
40
+ }));
41
+ }
42
+ catch (err) {
43
+ if (err instanceof MissingCredentialError || err instanceof GatewaySelectionError) {
44
+ emitExplore(fail("E_AI_SETUP_REQUIRED", err.message));
45
+ }
46
+ else {
47
+ emitExplore(fail("E_EXPLORE_SETUP", String(err instanceof Error ? err.message : err)));
48
+ }
49
+ return;
50
+ }
51
+ try {
52
+ const result = await runCoverageMission({
53
+ ...(target === undefined ? {} : { target }),
54
+ ...(o.actionDeltas === true ? { actionDeltas: true } : {}),
55
+ ...(o.blockOffAllowlistNavigation === true ? { blockOffAllowlistNavigation: true } : {}),
56
+ url: o.url,
57
+ allowlist: covAllowlist,
58
+ judge: covJudge,
59
+ gen: covGen,
60
+ usage: covUsage,
61
+ bounds: Object.keys(covBounds).length > 0 ? covBounds : undefined,
62
+ ...(covRouteGlobs.length > 0 ? { routeGlobs: covRouteGlobs } : {}),
63
+ strategy,
64
+ ...(covStall === undefined ? {} : { stallTimeoutMs: covStall }),
65
+ outDir: o.out,
66
+ browserPortFactory: deps.explore?.browserPortFactory,
67
+ browser,
68
+ ...screenshotsOpt,
69
+ ...(emulation === undefined ? {} : { emulation }),
70
+ overflow,
71
+ ...(o.storageState !== undefined ? { storageState: o.storageState } : {}),
72
+ ...(o.saveStorageState !== undefined ? { saveStorageState: o.saveStorageState } : {}),
73
+ ...withInvariants,
74
+ ...triagedServerLog(serverLog, covJudge, o.real === true),
75
+ ...withPrefix,
76
+ ...withScopeRegion,
77
+ });
78
+ // Typed verdict → exit code (0 clean · 1 defects · 2 crashed; see exit-codes.ts).
79
+ emitExplore(ok(await withEvidence(result)), result.exitCode);
80
+ }
81
+ catch (err) {
82
+ if (emitJourneyFailure(err))
83
+ return;
84
+ if (err instanceof UnauthorizedExploreTargetError) {
85
+ emitExplore(fail("E_UNAUTHORIZED_EXPLORE_TARGET", err.message));
86
+ }
87
+ else if (err instanceof ScopeUnderivableError) {
88
+ // #224: no default route scope from --url — a usage error (64), refused before any browser.
89
+ emitExplore(fail("E_EXPLORE_ARGS", err.message));
90
+ }
91
+ else {
92
+ emitExplore(fail("E_EXPLORE_RUN", String(err instanceof Error ? err.message : err)));
93
+ }
94
+ }
95
+ return;
96
+ }
97
+ //# sourceMappingURL=coverage-strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coverage-strategy.js","sourceRoot":"","sources":["../../src/explore-cli/coverage-strategy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ExploreRunContext } from "./shared.js";
2
+ /** `--feature <name>` (moved verbatim out of registerExploreCommands). */
3
+ export declare function runFeatureStrategy(ctx: ExploreRunContext): Promise<void>;
@@ -0,0 +1,60 @@
1
+ import { ScopeUnderivableError, UnauthorizedExploreTargetError } from "@jevitate/explore";
2
+ import { ok, fail } from "../envelope.js";
3
+ import { runFeatureCliMission, resolveExploreAllowlist } from "../explore-api.js";
4
+ import { stallTimeoutMs } from "../cli-shared.js";
5
+ /** `--feature <name>` (moved verbatim out of registerExploreCommands). */
6
+ export async function runFeatureStrategy(ctx) {
7
+ const { deps, emitExplore, target, browser, screenshotsOpt, emulation, withInvariants, withServerLog, withEvidence } = ctx;
8
+ const o = ctx.o;
9
+ if (!o.url) {
10
+ emitExplore(fail("E_EXPLORE_ARGS", "--url is required with --feature"));
11
+ return;
12
+ }
13
+ const featAllowlist = resolveExploreAllowlist(o.url, o.allow);
14
+ const featBounds = {};
15
+ if (o.maxActions !== undefined)
16
+ featBounds.maxActions = Number(o.maxActions);
17
+ if (o.maxDecisions !== undefined)
18
+ featBounds.maxDecisions = Number(o.maxDecisions);
19
+ const featStall = stallTimeoutMs(o.stallTimeout);
20
+ if (featStall === null) {
21
+ emitExplore(fail("E_EXPLORE_ARGS", `--stall-timeout must be a positive number of seconds (got ${JSON.stringify(o.stallTimeout)})`));
22
+ return;
23
+ }
24
+ try {
25
+ const result = await runFeatureCliMission({
26
+ ...(featStall === undefined ? {} : { stallTimeoutMs: featStall }),
27
+ seedUrl: o.url,
28
+ allowlist: featAllowlist,
29
+ capability: o.feature,
30
+ ...(o.blockOffAllowlistNavigation === true ? { blockOffAllowlistNavigation: true } : {}),
31
+ routeGlobs: o.route ?? [],
32
+ bounds: Object.keys(featBounds).length > 0 ? featBounds : undefined,
33
+ outDir: o.out,
34
+ browserPortFactory: deps.explore?.browserPortFactory,
35
+ browser,
36
+ ...screenshotsOpt,
37
+ ...(emulation === undefined ? {} : { emulation }),
38
+ ...(o.storageState !== undefined ? { storageState: o.storageState } : {}),
39
+ ...(o.saveStorageState !== undefined ? { saveStorageState: o.saveStorageState } : {}),
40
+ ...withInvariants,
41
+ ...withServerLog,
42
+ ...(target?.safety === undefined ? {} : { safety: target.safety }),
43
+ });
44
+ emitExplore(ok(await withEvidence(result)), result.exitCode);
45
+ }
46
+ catch (err) {
47
+ if (err instanceof UnauthorizedExploreTargetError) {
48
+ emitExplore(fail("E_UNAUTHORIZED_EXPLORE_TARGET", err.message));
49
+ }
50
+ else if (err instanceof ScopeUnderivableError) {
51
+ // #224: no default route scope from --url — a usage error (64), refused before any browser.
52
+ emitExplore(fail("E_EXPLORE_ARGS", err.message));
53
+ }
54
+ else {
55
+ emitExplore(fail("E_EXPLORE_RUN", String(err instanceof Error ? err.message : err)));
56
+ }
57
+ }
58
+ return;
59
+ }
60
+ //# sourceMappingURL=feature-strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-strategy.js","sourceRoot":"","sources":["../../src/explore-cli/feature-strategy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ExploreRunContext } from "./shared.js";
2
+ /** The default goal strategy: `--url` + `--goal` (+ `--success`), with fixtures (moved verbatim out of registerExploreCommands). */
3
+ export declare function runGoalStrategy(ctx: ExploreRunContext): Promise<void>;
@@ -0,0 +1,185 @@
1
+ import { FixturePathError } from "@jevitate/recording";
2
+ import { MissingCredentialError } from "@jevitate/ai-core";
3
+ import { FixtureNotFoundError, UnauthorizedExploreTargetError } from "@jevitate/explore";
4
+ import { ok, fail } from "../envelope.js";
5
+ import { buildMissionFixtures, checkSetupRefs, checkUrlRefOrigin, substituteUrlSetupRefs, setupRefFreeUrl, invariantSetupTexts, substituteSpecSetupRefs, fixtureSetupFailedResult } from "../fixture-cli.js";
6
+ import { FixtureSetupError, FixtureSpecError, UnboundSetupRefError, substituteSetupRefs } from "../mission-fixtures.js";
7
+ import { withEngine } from "../engine.js";
8
+ import { EXIT_CODES } from "../exit-codes.js";
9
+ import { runExploration, parseSuccessSpec, resolveExploreAllowlist } from "../explore-api.js";
10
+ import { triagedServerLog } from "../explore-shared.js";
11
+ import { GatewaySelectionError, buildExploreGateways } from "../cli-shared.js";
12
+ import { resolveJourneyPrefix } from "../journey-prefix.js";
13
+ import { GoalRunFlagError, successWhenFromFlags } from "../goal-run-flags.js";
14
+ /** The default goal strategy: `--url` + `--goal` (+ `--success`), with fixtures (moved verbatim out of registerExploreCommands). */
15
+ export async function runGoalStrategy(ctx) {
16
+ const { deps, o, emitExplore, target, browser, screenshotsOpt, emulation, withInvariants, serverLog, emitJourneyFailure, withEvidence, runFiling, issueFiler, conversation, secretFields, secretCommand, actors, primaryStorageState, invariants, prefixRequest, typeFixtures } = ctx;
17
+ let { journeyPrefix } = ctx;
18
+ // --success may be omitted for a find-out goal (#130d): the run is then verified by a grounded
19
+ // `report` answer (#101) instead of an independent page/network check.
20
+ if (!o.url || !o.goal) {
21
+ emitExplore(fail("E_EXPLORE_ARGS", "--url and --goal are required"));
22
+ return;
23
+ }
24
+ let successChecks;
25
+ try {
26
+ successChecks = o.success.map(parseSuccessSpec);
27
+ }
28
+ catch (err) {
29
+ emitExplore(fail("E_EXPLORE_ASSERTION", String(err instanceof Error ? err.message : err)));
30
+ return;
31
+ }
32
+ let successWhen;
33
+ try {
34
+ successWhen = successWhenFromFlags(o);
35
+ }
36
+ catch (err) {
37
+ if (!(err instanceof GoalRunFlagError))
38
+ throw err;
39
+ emitExplore(fail(err.code, err.message));
40
+ return;
41
+ }
42
+ const allowlist = resolveExploreAllowlist(setupRefFreeUrl(o.url), o.allow);
43
+ // Fixtures (#140/#144): the spec and every ${setup.x} reference are validated here, before any
44
+ // browser or request; the setup itself runs just before the mission (below).
45
+ let fx;
46
+ try {
47
+ checkUrlRefOrigin(o.url);
48
+ fx = buildMissionFixtures(o, {
49
+ allowlist,
50
+ baseUrl: setupRefFreeUrl(o.url),
51
+ ...(primaryStorageState === undefined ? {} : { storageState: primaryStorageState }),
52
+ secretFields,
53
+ secrets: o.secret,
54
+ ...(target?.fixtures === undefined ? {} : { targetFixtures: target.fixtures }),
55
+ ...(target?.personas === undefined ? {} : { personas: target.personas }),
56
+ });
57
+ checkSetupRefs({ "--url": o.url, "--goal": o.goal, "--success": o.success, ...invariantSetupTexts(invariants), ...(journeyPrefix === undefined ? {} : { "--param": Object.values(o.param) }) }, fx);
58
+ }
59
+ catch (err) {
60
+ if (!(err instanceof FixtureSpecError || err instanceof UnboundSetupRefError))
61
+ throw err;
62
+ emitExplore(fail(err.code, err.message));
63
+ return;
64
+ }
65
+ const bounds = {};
66
+ if (o.maxActions !== undefined)
67
+ bounds.maxActions = Number(o.maxActions);
68
+ if (o.maxDecisions !== undefined)
69
+ bounds.maxDecisions = Number(o.maxDecisions);
70
+ let judge;
71
+ let gen;
72
+ let usage;
73
+ try {
74
+ ({ judge, gen, usage } = await buildExploreGateways(deps, { real: o.real ?? false, fakeAi: o.fakeAi ?? false, jevProvider: o.jevProvider }));
75
+ }
76
+ catch (err) {
77
+ if (err instanceof MissingCredentialError || err instanceof GatewaySelectionError) {
78
+ emitExplore(fail("E_AI_SETUP_REQUIRED", err.message));
79
+ }
80
+ else {
81
+ emitExplore(fail("E_EXPLORE_SETUP", String(err instanceof Error ? err.message : err)));
82
+ }
83
+ return;
84
+ }
85
+ let url = o.url;
86
+ let goal = o.goal;
87
+ let runInvariants = withInvariants;
88
+ if (fx !== undefined) {
89
+ // Never run the mission on unknown state: a failed setup ends the run inconclusive (a
90
+ // configuration error), after restoring whatever the partial setup created.
91
+ try {
92
+ await fx.setup();
93
+ const b = fx.bindings();
94
+ url = substituteUrlSetupRefs(o.url, b);
95
+ goal = substituteSetupRefs(o.goal, b, { where: "--goal" });
96
+ successChecks = o.success.map((spec) => parseSuccessSpec(substituteSetupRefs(spec, b, { where: "--success" })));
97
+ // #187: ${setup.x} in the invariants (probe paths, deniedAs.open, capture routes), origin-fixed.
98
+ if (invariants !== undefined)
99
+ runInvariants = { ...withInvariants, invariants: substituteSpecSetupRefs(invariants, b, url) };
100
+ // #399: `--param name=${setup.x}` for the Journey prefix is bound to the fixture's output, and the
101
+ // prefix re-resolved so its secret params (and so every redaction) hold the bound value.
102
+ if (journeyPrefix !== undefined && prefixRequest !== undefined && Object.values(o.param).some((v) => v.includes("${setup."))) {
103
+ const params = Object.fromEntries(Object.entries(o.param).map(([k, v]) => [k, substituteSetupRefs(v, b, { where: `--param ${k}` })]));
104
+ journeyPrefix = await resolveJourneyPrefix({ ...prefixRequest, params });
105
+ o.secret = [...new Set([...o.secret, ...journeyPrefix.secrets])];
106
+ }
107
+ }
108
+ catch (err) {
109
+ if (!(err instanceof FixtureSetupError || err instanceof UnboundSetupRefError)) {
110
+ await fx.restore();
111
+ throw err;
112
+ }
113
+ await fx.restore();
114
+ emitExplore(ok(withEngine(fixtureSetupFailedResult(err, fx))), EXIT_CODES.inconclusive);
115
+ return;
116
+ }
117
+ }
118
+ try {
119
+ const result = await runExploration({
120
+ ...(target === undefined ? {} : { target }),
121
+ url,
122
+ goal,
123
+ successChecks,
124
+ ...(successWhen === undefined ? {} : { successWhen }),
125
+ ...(o.allowVacuousChecks === true ? { allowVacuousChecks: true } : {}),
126
+ ...(o.actionDeltas === true ? { actionDeltas: true } : {}),
127
+ ...(o.blockOffAllowlistNavigation === true ? { blockOffAllowlistNavigation: true } : {}),
128
+ allowlist,
129
+ judge,
130
+ gen,
131
+ usage,
132
+ bounds: Object.keys(bounds).length > 0 ? bounds : undefined,
133
+ ...(o.minActions === undefined && o.minDistinctStates === undefined
134
+ ? {}
135
+ : {
136
+ minEffort: {
137
+ ...(o.minActions === undefined ? {} : { minActions: Number(o.minActions) }),
138
+ ...(o.minDistinctStates === undefined ? {} : { minDistinctStates: Number(o.minDistinctStates) }),
139
+ },
140
+ }),
141
+ secrets: o.secret.length > 0 ? o.secret : undefined,
142
+ ...(secretFields.length > 0 ? { secretFields } : {}),
143
+ ...(secretCommand === undefined ? {} : { secretCommand }),
144
+ ...(o.secretCmdAttempts === undefined ? {} : { secretCommandAttempts: o.secretCmdAttempts }),
145
+ ...(typeFixtures.length > 0 ? { typeFixtures } : {}),
146
+ fixture: o.fixture,
147
+ outDir: o.out,
148
+ browserPortFactory: deps.explore?.browserPortFactory,
149
+ browser,
150
+ ...screenshotsOpt,
151
+ ...(emulation === undefined ? {} : { emulation }),
152
+ ...(primaryStorageState !== undefined ? { storageState: primaryStorageState } : {}),
153
+ ...(o.saveStorageState !== undefined ? { saveStorageState: o.saveStorageState } : {}),
154
+ ...(actors === null ? {} : { actors }),
155
+ ...(runFiling === undefined ? {} : { filing: runFiling }),
156
+ issueFiler,
157
+ ...(o.hangReplays === undefined ? {} : { hangReplays: o.hangReplays }),
158
+ conversation,
159
+ ...runInvariants,
160
+ ...triagedServerLog(serverLog, judge, o.real === true),
161
+ ...(fx === undefined ? {} : { fixtures: fx }),
162
+ ...(journeyPrefix === undefined ? {} : { journeyPrefix }), // #399: re-resolved when a --param was bound
163
+ });
164
+ // 0 succeeded · 1 assertion not met · 2 the run broke (inconclusive/crashed).
165
+ emitExplore(ok(await withEvidence(result)), result.exitCode);
166
+ }
167
+ catch (err) {
168
+ if (emitJourneyFailure(err))
169
+ return;
170
+ if (err instanceof UnauthorizedExploreTargetError) {
171
+ emitExplore(fail("E_UNAUTHORIZED_EXPLORE_TARGET", err.message));
172
+ }
173
+ else if (err instanceof FixtureNotFoundError || err instanceof FixturePathError) {
174
+ emitExplore(fail("E_EXPLORE_FIXTURE", err.message));
175
+ }
176
+ else {
177
+ emitExplore(fail("E_EXPLORE_RUN", String(err instanceof Error ? err.message : err)));
178
+ }
179
+ }
180
+ finally {
181
+ // Every exit path restores the fixture state (a no-op when the mission already did).
182
+ await fx?.restore();
183
+ }
184
+ }
185
+ //# sourceMappingURL=goal-strategy.js.map