@jevitate/cli 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (410) hide show
  1. package/README.md +23 -0
  2. package/dist/ai-cli.d.ts +31 -11
  3. package/dist/ai-cli.js +131 -88
  4. package/dist/ai-cli.js.map +1 -1
  5. package/dist/author-journey-cli.d.ts +4 -0
  6. package/dist/author-journey-cli.js +111 -0
  7. package/dist/author-journey-cli.js.map +1 -0
  8. package/dist/bin.js +60349 -16477
  9. package/dist/bin.js.map +1 -1
  10. package/dist/browser-run-options.d.ts +89 -0
  11. package/dist/browser-run-options.js +175 -0
  12. package/dist/browser-run-options.js.map +1 -0
  13. package/dist/build-info.generated.d.ts +2 -0
  14. package/dist/build-info.generated.js +10 -0
  15. package/dist/build-info.generated.js.map +1 -0
  16. package/dist/campaign-api.d.ts +151 -0
  17. package/dist/campaign-api.js +446 -0
  18. package/dist/campaign-api.js.map +1 -0
  19. package/dist/campaign-cli.d.ts +6 -0
  20. package/dist/campaign-cli.js +66 -0
  21. package/dist/campaign-cli.js.map +1 -0
  22. package/dist/check-api.d.ts +5 -0
  23. package/dist/check-api.js +234 -0
  24. package/dist/check-api.js.map +1 -0
  25. package/dist/check-budget.d.ts +26 -0
  26. package/dist/check-budget.js +90 -0
  27. package/dist/check-budget.js.map +1 -0
  28. package/dist/check-cli.d.ts +31 -0
  29. package/dist/check-cli.js +109 -0
  30. package/dist/check-cli.js.map +1 -0
  31. package/dist/check-execute.d.ts +29 -0
  32. package/dist/check-execute.js +420 -0
  33. package/dist/check-execute.js.map +1 -0
  34. package/dist/check-plan.d.ts +118 -0
  35. package/dist/check-plan.js +516 -0
  36. package/dist/check-plan.js.map +1 -0
  37. package/dist/check-suite.d.ts +184 -0
  38. package/dist/check-suite.js +540 -0
  39. package/dist/check-suite.js.map +1 -0
  40. package/dist/check-types.d.ts +181 -0
  41. package/dist/check-types.js +35 -0
  42. package/dist/check-types.js.map +1 -0
  43. package/dist/cli-args.d.ts +26 -0
  44. package/dist/cli-args.js +50 -0
  45. package/dist/cli-args.js.map +1 -0
  46. package/dist/cli-output.d.ts +106 -0
  47. package/dist/cli-output.js +563 -0
  48. package/dist/cli-output.js.map +1 -0
  49. package/dist/cli-reference.d.ts +3 -0
  50. package/dist/cli-reference.js +81 -0
  51. package/dist/cli-reference.js.map +1 -0
  52. package/dist/cli-refusal.d.ts +12 -0
  53. package/dist/cli-refusal.js +52 -0
  54. package/dist/cli-refusal.js.map +1 -0
  55. package/dist/cli-shared.d.ts +340 -0
  56. package/dist/cli-shared.js +537 -0
  57. package/dist/cli-shared.js.map +1 -0
  58. package/dist/cli-surface.d.ts +33 -0
  59. package/dist/cli-surface.js +48 -0
  60. package/dist/cli-surface.js.map +1 -0
  61. package/dist/conversation-options.d.ts +15 -0
  62. package/dist/conversation-options.js +10 -0
  63. package/dist/conversation-options.js.map +1 -0
  64. package/dist/credentials-file.d.ts +15 -0
  65. package/dist/credentials-file.js +56 -0
  66. package/dist/credentials-file.js.map +1 -0
  67. package/dist/data-dir.d.ts +1 -1
  68. package/dist/data-dir.js +1 -1
  69. package/dist/defect-evidence.d.ts +141 -0
  70. package/dist/defect-evidence.js +505 -0
  71. package/dist/defect-evidence.js.map +1 -0
  72. package/dist/demo-aspect-api.d.ts +209 -0
  73. package/dist/demo-aspect-api.js +398 -0
  74. package/dist/demo-aspect-api.js.map +1 -0
  75. package/dist/demo-aspect-cli.d.ts +3 -0
  76. package/dist/demo-aspect-cli.js +243 -0
  77. package/dist/demo-aspect-cli.js.map +1 -0
  78. package/dist/demo-capture.d.ts +142 -0
  79. package/dist/demo-capture.js +537 -0
  80. package/dist/demo-capture.js.map +1 -0
  81. package/dist/engine.d.ts +35 -0
  82. package/dist/engine.js +25 -0
  83. package/dist/engine.js.map +1 -0
  84. package/dist/environments.d.ts +155 -0
  85. package/dist/environments.js +364 -0
  86. package/dist/environments.js.map +1 -0
  87. package/dist/exit-codes.d.ts +46 -0
  88. package/dist/exit-codes.js +91 -0
  89. package/dist/exit-codes.js.map +1 -0
  90. package/dist/explore-adversarial.d.ts +144 -0
  91. package/dist/explore-adversarial.js +227 -0
  92. package/dist/explore-adversarial.js.map +1 -0
  93. package/dist/explore-api.d.ts +7 -187
  94. package/dist/explore-api.js +7 -301
  95. package/dist/explore-api.js.map +1 -1
  96. package/dist/explore-author.d.ts +79 -0
  97. package/dist/explore-author.js +86 -0
  98. package/dist/explore-author.js.map +1 -0
  99. package/dist/explore-cli.d.ts +7 -0
  100. package/dist/explore-cli.js +1199 -0
  101. package/dist/explore-cli.js.map +1 -0
  102. package/dist/explore-coverage.d.ts +173 -0
  103. package/dist/explore-coverage.js +246 -0
  104. package/dist/explore-coverage.js.map +1 -0
  105. package/dist/explore-feature.d.ts +125 -0
  106. package/dist/explore-feature.js +218 -0
  107. package/dist/explore-feature.js.map +1 -0
  108. package/dist/explore-goal.d.ts +271 -0
  109. package/dist/explore-goal.js +417 -0
  110. package/dist/explore-goal.js.map +1 -0
  111. package/dist/explore-shared.d.ts +177 -0
  112. package/dist/explore-shared.js +149 -0
  113. package/dist/explore-shared.js.map +1 -0
  114. package/dist/explore-specs.d.ts +53 -0
  115. package/dist/explore-specs.js +333 -0
  116. package/dist/explore-specs.js.map +1 -0
  117. package/dist/findings-filing.d.ts +64 -0
  118. package/dist/findings-filing.js +108 -0
  119. package/dist/findings-filing.js.map +1 -0
  120. package/dist/fixture-auth.d.ts +63 -0
  121. package/dist/fixture-auth.js +95 -0
  122. package/dist/fixture-auth.js.map +1 -0
  123. package/dist/fixture-cli.d.ts +99 -0
  124. package/dist/fixture-cli.js +292 -0
  125. package/dist/fixture-cli.js.map +1 -0
  126. package/dist/github-issue-filer.d.ts +62 -0
  127. package/dist/github-issue-filer.js +189 -0
  128. package/dist/github-issue-filer.js.map +1 -0
  129. package/dist/host-health-run.d.ts +25 -0
  130. package/dist/host-health-run.js +33 -0
  131. package/dist/host-health-run.js.map +1 -0
  132. package/dist/http-5xx-outcome.d.ts +6 -0
  133. package/dist/http-5xx-outcome.js +39 -0
  134. package/dist/http-5xx-outcome.js.map +1 -0
  135. package/dist/inbox-cli.d.ts +7 -0
  136. package/dist/inbox-cli.js +197 -0
  137. package/dist/inbox-cli.js.map +1 -0
  138. package/dist/index.d.ts +1 -0
  139. package/dist/index.js +1 -0
  140. package/dist/index.js.map +1 -1
  141. package/dist/init-cli.d.ts +4 -0
  142. package/dist/init-cli.js +156 -0
  143. package/dist/init-cli.js.map +1 -0
  144. package/dist/init-keys.d.ts +30 -2
  145. package/dist/init-keys.js +19 -5
  146. package/dist/init-keys.js.map +1 -1
  147. package/dist/init-next-steps.d.ts +35 -0
  148. package/dist/init-next-steps.js +79 -0
  149. package/dist/init-next-steps.js.map +1 -0
  150. package/dist/invariants-file.d.ts +34 -0
  151. package/dist/invariants-file.js +68 -0
  152. package/dist/invariants-file.js.map +1 -0
  153. package/dist/invariants-validate.d.ts +30 -0
  154. package/dist/invariants-validate.js +105 -0
  155. package/dist/invariants-validate.js.map +1 -0
  156. package/dist/journey-annotate-api.d.ts +76 -0
  157. package/dist/journey-annotate-api.js +269 -0
  158. package/dist/journey-annotate-api.js.map +1 -0
  159. package/dist/journey-annotate-cli.d.ts +9 -0
  160. package/dist/journey-annotate-cli.js +181 -0
  161. package/dist/journey-annotate-cli.js.map +1 -0
  162. package/dist/journey-api.d.ts +104 -2
  163. package/dist/journey-api.js +163 -20
  164. package/dist/journey-api.js.map +1 -1
  165. package/dist/journey-cli.d.ts +4 -0
  166. package/dist/journey-cli.js +411 -0
  167. package/dist/journey-cli.js.map +1 -0
  168. package/dist/journey-demo-api.d.ts +114 -0
  169. package/dist/journey-demo-api.js +405 -0
  170. package/dist/journey-demo-api.js.map +1 -0
  171. package/dist/journey-demo-cli.d.ts +10 -0
  172. package/dist/journey-demo-cli.js +158 -0
  173. package/dist/journey-demo-cli.js.map +1 -0
  174. package/dist/journey-prefix.d.ts +194 -0
  175. package/dist/journey-prefix.js +279 -0
  176. package/dist/journey-prefix.js.map +1 -0
  177. package/dist/key-report.d.ts +49 -0
  178. package/dist/key-report.js +101 -0
  179. package/dist/key-report.js.map +1 -0
  180. package/dist/kill-signal.d.ts +193 -0
  181. package/dist/kill-signal.js +283 -0
  182. package/dist/kill-signal.js.map +1 -0
  183. package/dist/launch-armed.d.ts +37 -0
  184. package/dist/launch-armed.js +31 -0
  185. package/dist/launch-armed.js.map +1 -0
  186. package/dist/ledger-api.d.ts +106 -0
  187. package/dist/ledger-api.js +239 -0
  188. package/dist/ledger-api.js.map +1 -0
  189. package/dist/ledger-cli.d.ts +18 -0
  190. package/dist/ledger-cli.js +107 -0
  191. package/dist/ledger-cli.js.map +1 -0
  192. package/dist/load-api.d.ts +29 -11
  193. package/dist/load-api.js +23 -15
  194. package/dist/load-api.js.map +1 -1
  195. package/dist/load-cli.d.ts +4 -0
  196. package/dist/load-cli.js +97 -0
  197. package/dist/load-cli.js.map +1 -0
  198. package/dist/log-correlation.d.ts +200 -0
  199. package/dist/log-correlation.js +394 -0
  200. package/dist/log-correlation.js.map +1 -0
  201. package/dist/log-lines.d.ts +131 -0
  202. package/dist/log-lines.js +389 -0
  203. package/dist/log-lines.js.map +1 -0
  204. package/dist/log-sources.d.ts +71 -0
  205. package/dist/log-sources.js +236 -0
  206. package/dist/log-sources.js.map +1 -0
  207. package/dist/log-trace.d.ts +80 -0
  208. package/dist/log-trace.js +210 -0
  209. package/dist/log-trace.js.map +1 -0
  210. package/dist/logs-cli.d.ts +3 -0
  211. package/dist/logs-cli.js +51 -0
  212. package/dist/logs-cli.js.map +1 -0
  213. package/dist/logs-retention.d.ts +28 -0
  214. package/dist/logs-retention.js +85 -0
  215. package/dist/logs-retention.js.map +1 -0
  216. package/dist/masked-input.d.ts +22 -0
  217. package/dist/masked-input.js +99 -0
  218. package/dist/masked-input.js.map +1 -0
  219. package/dist/mcp-api.d.ts +91 -1
  220. package/dist/mcp-api.js +514 -18
  221. package/dist/mcp-api.js.map +1 -1
  222. package/dist/mcp-args.d.ts +50 -0
  223. package/dist/mcp-args.js +164 -0
  224. package/dist/mcp-args.js.map +1 -0
  225. package/dist/mcp-cli-bridge.d.ts +34 -0
  226. package/dist/mcp-cli-bridge.js +62 -0
  227. package/dist/mcp-cli-bridge.js.map +1 -0
  228. package/dist/mcp-cli-runner.d.ts +29 -0
  229. package/dist/mcp-cli-runner.js +44 -0
  230. package/dist/mcp-cli-runner.js.map +1 -0
  231. package/dist/mcp-cli-tools.d.ts +129 -0
  232. package/dist/mcp-cli-tools.js +737 -0
  233. package/dist/mcp-cli-tools.js.map +1 -0
  234. package/dist/mcp-paths.d.ts +28 -0
  235. package/dist/mcp-paths.js +76 -0
  236. package/dist/mcp-paths.js.map +1 -0
  237. package/dist/mission-actors.d.ts +40 -0
  238. package/dist/mission-actors.js +72 -0
  239. package/dist/mission-actors.js.map +1 -0
  240. package/dist/mission-api.d.ts +35 -0
  241. package/dist/mission-api.js +60 -3
  242. package/dist/mission-api.js.map +1 -1
  243. package/dist/mission-cli.d.ts +4 -0
  244. package/dist/mission-cli.js +248 -0
  245. package/dist/mission-cli.js.map +1 -0
  246. package/dist/mission-exit.d.ts +22 -0
  247. package/dist/mission-exit.js +26 -0
  248. package/dist/mission-exit.js.map +1 -0
  249. package/dist/mission-fixtures.d.ts +234 -0
  250. package/dist/mission-fixtures.js +862 -0
  251. package/dist/mission-fixtures.js.map +1 -0
  252. package/dist/mission-journal.d.ts +60 -0
  253. package/dist/mission-journal.js +115 -0
  254. package/dist/mission-journal.js.map +1 -0
  255. package/dist/mission-queue-cli.d.ts +10 -0
  256. package/dist/mission-queue-cli.js +198 -0
  257. package/dist/mission-queue-cli.js.map +1 -0
  258. package/dist/mission-queue-runner.d.ts +126 -0
  259. package/dist/mission-queue-runner.js +406 -0
  260. package/dist/mission-queue-runner.js.map +1 -0
  261. package/dist/multi-run-cli.d.ts +37 -0
  262. package/dist/multi-run-cli.js +116 -0
  263. package/dist/multi-run-cli.js.map +1 -0
  264. package/dist/multi-run.d.ts +339 -0
  265. package/dist/multi-run.js +619 -0
  266. package/dist/multi-run.js.map +1 -0
  267. package/dist/openrouter-call.d.ts +22 -0
  268. package/dist/openrouter-call.js +64 -0
  269. package/dist/openrouter-call.js.map +1 -0
  270. package/dist/profile-cli.d.ts +4 -0
  271. package/dist/profile-cli.js +57 -0
  272. package/dist/profile-cli.js.map +1 -0
  273. package/dist/program.d.ts +3 -75
  274. package/dist/program.js +123 -1921
  275. package/dist/program.js.map +1 -1
  276. package/dist/project-dir.d.ts +96 -0
  277. package/dist/project-dir.js +221 -0
  278. package/dist/project-dir.js.map +1 -0
  279. package/dist/record-api.d.ts +13 -7
  280. package/dist/record-api.js +44 -30
  281. package/dist/record-api.js.map +1 -1
  282. package/dist/record-cli.d.ts +4 -0
  283. package/dist/record-cli.js +76 -0
  284. package/dist/record-cli.js.map +1 -0
  285. package/dist/recording-cli.d.ts +4 -0
  286. package/dist/recording-cli.js +248 -0
  287. package/dist/recording-cli.js.map +1 -0
  288. package/dist/regression-api.d.ts +107 -0
  289. package/dist/regression-api.js +387 -6
  290. package/dist/regression-api.js.map +1 -1
  291. package/dist/regression-cli.d.ts +4 -0
  292. package/dist/regression-cli.js +284 -0
  293. package/dist/regression-cli.js.map +1 -0
  294. package/dist/report-api.d.ts +146 -0
  295. package/dist/report-api.js +431 -0
  296. package/dist/report-api.js.map +1 -0
  297. package/dist/report-cli.d.ts +12 -0
  298. package/dist/report-cli.js +147 -0
  299. package/dist/report-cli.js.map +1 -0
  300. package/dist/resource-preflight.d.ts +87 -0
  301. package/dist/resource-preflight.js +160 -0
  302. package/dist/resource-preflight.js.map +1 -0
  303. package/dist/result-schema.d.ts +22 -0
  304. package/dist/result-schema.js +28 -0
  305. package/dist/result-schema.js.map +1 -0
  306. package/dist/run-index.d.ts +29 -0
  307. package/dist/run-index.js +70 -0
  308. package/dist/run-index.js.map +1 -0
  309. package/dist/run-key-preflight.d.ts +42 -0
  310. package/dist/run-key-preflight.js +82 -0
  311. package/dist/run-key-preflight.js.map +1 -0
  312. package/dist/run-screenshots.d.ts +123 -0
  313. package/dist/run-screenshots.js +235 -0
  314. package/dist/run-screenshots.js.map +1 -0
  315. package/dist/runtime-env.d.ts +8 -0
  316. package/dist/runtime-env.js +23 -0
  317. package/dist/runtime-env.js.map +1 -0
  318. package/dist/secret-args.d.ts +23 -0
  319. package/dist/secret-args.js +45 -0
  320. package/dist/secret-args.js.map +1 -0
  321. package/dist/serve-cli.d.ts +4 -0
  322. package/dist/serve-cli.js +95 -0
  323. package/dist/serve-cli.js.map +1 -0
  324. package/dist/server-log-verify.d.ts +36 -0
  325. package/dist/server-log-verify.js +120 -0
  326. package/dist/server-log-verify.js.map +1 -0
  327. package/dist/session-check.d.ts +14 -0
  328. package/dist/session-check.js +44 -0
  329. package/dist/session-check.js.map +1 -0
  330. package/dist/site-cli.d.ts +4 -0
  331. package/dist/site-cli.js +127 -0
  332. package/dist/site-cli.js.map +1 -0
  333. package/dist/site-gate-cli.d.ts +28 -0
  334. package/dist/site-gate-cli.js +59 -0
  335. package/dist/site-gate-cli.js.map +1 -0
  336. package/dist/source-api.js +20 -4
  337. package/dist/source-api.js.map +1 -1
  338. package/dist/source-cli.d.ts +4 -0
  339. package/dist/source-cli.js +284 -0
  340. package/dist/source-cli.js.map +1 -0
  341. package/dist/source-run-api.d.ts +27 -1
  342. package/dist/source-run-api.js +22 -11
  343. package/dist/source-run-api.js.map +1 -1
  344. package/dist/storage-state-snapshot.d.ts +50 -0
  345. package/dist/storage-state-snapshot.js +87 -0
  346. package/dist/storage-state-snapshot.js.map +1 -0
  347. package/dist/suite-explore-options.d.ts +321 -0
  348. package/dist/suite-explore-options.js +162 -0
  349. package/dist/suite-explore-options.js.map +1 -0
  350. package/dist/target-config.d.ts +115 -0
  351. package/dist/target-config.js +225 -0
  352. package/dist/target-config.js.map +1 -0
  353. package/dist/transcript-file.d.ts +12 -0
  354. package/dist/transcript-file.js +23 -0
  355. package/dist/transcript-file.js.map +1 -0
  356. package/dist/type-fixture-file.d.ts +9 -0
  357. package/dist/type-fixture-file.js +48 -0
  358. package/dist/type-fixture-file.js.map +1 -0
  359. package/dist/ui-api.d.ts +3 -0
  360. package/dist/ui-api.js +11 -4
  361. package/dist/ui-api.js.map +1 -1
  362. package/dist/usability-capture.d.ts +43 -0
  363. package/dist/usability-capture.js +327 -0
  364. package/dist/usability-capture.js.map +1 -0
  365. package/dist/usage-config.d.ts +36 -0
  366. package/dist/usage-config.js +114 -0
  367. package/dist/usage-config.js.map +1 -0
  368. package/dist/ux-api.d.ts +3 -75
  369. package/dist/ux-api.js +3 -220
  370. package/dist/ux-api.js.map +1 -1
  371. package/dist/ux-claim-probe.d.ts +45 -0
  372. package/dist/ux-claim-probe.js +386 -0
  373. package/dist/ux-claim-probe.js.map +1 -0
  374. package/dist/ux-cli.d.ts +4 -0
  375. package/dist/ux-cli.js +109 -0
  376. package/dist/ux-cli.js.map +1 -0
  377. package/dist/ux-config.d.ts +29 -0
  378. package/dist/ux-config.js +103 -0
  379. package/dist/ux-config.js.map +1 -0
  380. package/dist/ux-evidence.d.ts +54 -0
  381. package/dist/ux-evidence.js +197 -0
  382. package/dist/ux-evidence.js.map +1 -0
  383. package/dist/ux-product.d.ts +14 -0
  384. package/dist/ux-product.js +39 -0
  385. package/dist/ux-product.js.map +1 -0
  386. package/dist/ux-review.d.ts +116 -0
  387. package/dist/ux-review.js +171 -0
  388. package/dist/ux-review.js.map +1 -0
  389. package/dist/ux-usability.d.ts +263 -0
  390. package/dist/ux-usability.js +580 -0
  391. package/dist/ux-usability.js.map +1 -0
  392. package/dist/verify-fix-api.d.ts +194 -0
  393. package/dist/verify-fix-api.js +506 -0
  394. package/dist/verify-fix-api.js.map +1 -0
  395. package/dist/verify-fix-cli.d.ts +4 -0
  396. package/dist/verify-fix-cli.js +115 -0
  397. package/dist/verify-fix-cli.js.map +1 -0
  398. package/package.json +23 -18
  399. package/skills/jevitate-ci-check/SKILL.md +77 -0
  400. package/skills/jevitate-demo/SKILL.md +61 -0
  401. package/skills/jevitate-explore/SKILL.md +96 -87
  402. package/skills/jevitate-getting-started/SKILL.md +89 -0
  403. package/skills/jevitate-load-test/SKILL.md +11 -2
  404. package/skills/jevitate-mission-scope/SKILL.md +19 -11
  405. package/skills/jevitate-record/SKILL.md +23 -5
  406. package/skills/jevitate-run-journey/SKILL.md +61 -17
  407. package/skills/jevitate-sources/SKILL.md +57 -14
  408. package/skills/jevitate-test-campaign/SKILL.md +203 -0
  409. package/skills/jevitate-ux-review/SKILL.md +106 -16
  410. package/skills/jevitate-verify-fix/SKILL.md +76 -0
@@ -1,187 +1,7 @@
1
- import type { JudgmentPort, GenerationPort, CredentialKey } from "@jevitate/ai-core";
2
- import { type BrowserPort } from "@jevitate/playwright";
3
- import type { Assertion } from "@jevitate/recording";
4
- import { type Bounds, type CoverageReport, type GoalBasedOutcome, type StopReason, type AuthorJourneyResult, type AdversarialOutcome, type MisuseStrategy, type FeatureRunResult } from "@jevitate/explore";
5
- /**
6
- * The programmatic surface behind `jevitate explore` — wires a real Playwright
7
- * `Page` + gateways to `@jevitate/explore`'s goal-based mission, then persists
8
- * the emitted `Recording` under `~/.jevitate/recordings`.
9
- *
10
- * The authorized-target guard runs FIRST (fail-closed), BEFORE any browser is
11
- * opened — an unauthorized origin never launches Chromium. Gateways are
12
- * injected (fakes in tests / live wiring in `program.ts`), so this file needs
13
- * no keys or network to be unit-tested.
14
- */
15
- export interface RunExplorationOptions {
16
- readonly url: string;
17
- readonly goal: string;
18
- readonly successAssertion: Assertion;
19
- readonly allowlist: readonly string[];
20
- readonly judge: JudgmentPort;
21
- readonly gen: GenerationPort;
22
- readonly bounds?: Partial<Bounds>;
23
- readonly secrets?: readonly string[];
24
- /** Where the Recording is written. Default `~/.jevitate/recordings`. */
25
- readonly outDir?: string;
26
- /** Testing seam — defaults to a real `PlaywrightBrowserPort`. */
27
- readonly browserPortFactory?: () => BrowserPort;
28
- /** ISO clock for the recording filename. Default `Date.now()`. */
29
- readonly nowIso?: () => string;
30
- }
31
- export interface RunExplorationResult {
32
- readonly outcome: GoalBasedOutcome;
33
- readonly assertionPassed: boolean;
34
- readonly stop: StopReason;
35
- readonly finalUrl: string;
36
- readonly decisions: number;
37
- readonly actions: number;
38
- readonly recordingPath: string;
39
- }
40
- export declare function runExploration(opts: RunExplorationOptions): Promise<RunExplorationResult>;
41
- /**
42
- * Arguments handed to the authoring step of `runAuthorJourney`. Kept separate
43
- * from `RunAuthorJourneyOptions` so tests can inject `authorImpl` (a fake
44
- * authoring step) without opening a real browser.
45
- */
46
- export interface AuthorViaBrowserArgs {
47
- readonly url: string;
48
- readonly origin: string;
49
- readonly goal: string;
50
- readonly successAssertion: Assertion;
51
- readonly allowlist: readonly string[];
52
- readonly judge?: JudgmentPort;
53
- readonly gen?: GenerationPort;
54
- readonly bounds?: Partial<Bounds>;
55
- readonly takes: number;
56
- readonly journeyId: string;
57
- readonly journeyName: string;
58
- readonly browserPortFactory?: () => BrowserPort;
59
- }
60
- export interface RunAuthorJourneyOptions {
61
- readonly url: string;
62
- readonly goal: string;
63
- readonly successAssertion: Assertion;
64
- readonly allowlist: readonly string[];
65
- /** Where the authored Journey is persisted (via `FsJourneyStore`). */
66
- readonly journeysDir: string;
67
- readonly journeyId: string;
68
- readonly journeyName: string;
69
- /** Total takes incl. discovery. Default 1 (single-take MVP). */
70
- readonly takes?: number;
71
- readonly judge?: JudgmentPort;
72
- readonly gen?: GenerationPort;
73
- readonly bounds?: Partial<Bounds>;
74
- readonly browserPortFactory?: () => BrowserPort;
75
- /**
76
- * Test seam: override the authoring step. Defaults to `authorViaBrowser`,
77
- * which drives a real Playwright-backed actor through `authorJourney`.
78
- */
79
- readonly authorImpl?: (args: AuthorViaBrowserArgs) => Promise<AuthorJourneyResult>;
80
- }
81
- /**
82
- * The programmatic surface behind `jevitate explore author-journey` — drives
83
- * the goal-based exploration mission and feeds its take(s) through RxD's
84
- * diff/postdoc pipeline (`@jevitate/explore`'s `authorJourney`) to author a
85
- * parameterized, replayable, UNPROMOTED Journey, then persists it under the
86
- * journeys store. Additive: the record-by-demonstration authoring path is
87
- * untouched.
88
- *
89
- * The authorized-target guard runs FIRST (fail-closed), before any browser is
90
- * opened. The authoring step is injectable (`authorImpl`) so it is unit-testable
91
- * without a browser.
92
- */
93
- export declare function runAuthorJourney(opts: RunAuthorJourneyOptions): Promise<AuthorJourneyResult>;
94
- /**
95
- * The programmatic surface behind `jevitate explore --strategy coverage`
96
- * (additive, alongside `runExploration`). Wires a real Playwright `Page` +
97
- * gateways to `@jevitate/explore`'s proof-by-induction (state-coverage) mission
98
- * and persists each emitted repro `Recording` under `~/.jevitate/recordings`.
99
- *
100
- * Same fail-closed discipline as `runExploration`: the authorized-target guard
101
- * runs FIRST, before any browser is opened.
102
- */
103
- export interface RunCoverageMissionOptions {
104
- readonly url: string;
105
- readonly allowlist: readonly string[];
106
- readonly judge: JudgmentPort;
107
- readonly gen: GenerationPort;
108
- readonly bounds?: Partial<Bounds>;
109
- /** Where the repro Recordings are written. Default `~/.jevitate/recordings`. */
110
- readonly outDir?: string;
111
- readonly browserPortFactory?: () => BrowserPort;
112
- readonly nowIso?: () => string;
113
- }
114
- export interface RunCoverageMissionResult {
115
- readonly coverage: CoverageReport;
116
- readonly outcome: "exhausted" | "cap";
117
- readonly recordingPaths: string[];
118
- }
119
- export declare function runCoverageMission(opts: RunCoverageMissionOptions): Promise<RunCoverageMissionResult>;
120
- /**
121
- * Options for the additive adversarial CLI mission. Mirrors `runExploration`'s
122
- * fail-closed discipline: the authorized-target guard runs FIRST, before any
123
- * browser is opened, so an unauthorized origin never launches Chromium.
124
- */
125
- export interface RunAdversarialCliMissionOptions {
126
- readonly seedUrl: string;
127
- readonly allowlist: readonly string[];
128
- readonly strategies: readonly MisuseStrategy[];
129
- readonly judgment: JudgmentPort;
130
- readonly generation: GenerationPort;
131
- readonly profileDir: string;
132
- readonly headless?: boolean;
133
- /** Testing seam — defaults to a real `PlaywrightBrowserPort`. */
134
- readonly browserPortFactory?: () => BrowserPort;
135
- }
136
- /**
137
- * Runs `@jevitate/explore`'s adversarial "try to break it" mission behind the
138
- * CLI. Guardrail #1 is enforced BEFORE opening a browser (fail-closed); the
139
- * session is always torn down. The stop-on-defect decision is the mission's
140
- * own trusted hard-signal oracle — never Jev's `Noul` (guardrail #4).
141
- */
142
- export declare function runAdversarialCliMission(opts: RunAdversarialCliMissionOptions): Promise<AdversarialOutcome>;
143
- /**
144
- * The programmatic surface behind `jevitate explore --feature <name>` — the
145
- * capability-scoped feature-testing mission (ticket #2, paired site ticket
146
- * #11). Model-free by design, so unlike `runExploration` it needs no gateways.
147
- *
148
- * The authorized-target guard runs FIRST (fail-closed), BEFORE any browser is
149
- * opened — an unauthorized origin never launches Chromium.
150
- */
151
- export interface RunFeatureCliMissionOptions {
152
- readonly seedUrl: string;
153
- readonly allowlist: readonly string[];
154
- readonly capability: string;
155
- readonly routeGlobs: readonly string[];
156
- readonly profileDir: string;
157
- readonly headless?: boolean;
158
- /** Testing seam — defaults to a real `PlaywrightBrowserPort`. */
159
- readonly browserPortFactory?: () => BrowserPort;
160
- }
161
- export declare function runFeatureCliMission(opts: RunFeatureCliMissionOptions): Promise<FeatureRunResult>;
162
- /** Injectable wiring for the `explore` CLI command (all optional). */
163
- export interface ExploreCliDeps {
164
- /** Injected judgment gateway (tests). */
165
- judge?: JudgmentPort;
166
- /** Injected generation gateway (tests). */
167
- gen?: GenerationPort;
168
- browserPortFactory?: () => BrowserPort;
169
- env?: Record<string, string | undefined>;
170
- localConfig?: Partial<Record<CredentialKey, string>>;
171
- }
172
- /**
173
- * Compact `--success` assertion spec parser. Supported forms:
174
- * urlIncludes:<text>
175
- * visible:<descriptor>
176
- * textIncludes:<descriptor>|<text>
177
- * count:<descriptor>|min=<n>,max=<n>
178
- * where <descriptor> is `k=v` pairs joined by `;` over
179
- * testId/role/name/label/text/css.
180
- */
181
- export declare function parseAssertionSpec(spec: string): Assertion;
182
- /**
183
- * The authorized-origins allowlist for a run: explicit `--allow` origins when
184
- * given, otherwise the target URL's own origin (you asked to explore it). An
185
- * unparseable URL yields an empty allowlist → the guard fails closed.
186
- */
187
- export declare function resolveExploreAllowlist(url: string, allow: readonly string[]): string[];
1
+ export { type RunExplorationOptions, type RunExplorationResult, runExploration, withServerCause } from "./explore-goal.js";
2
+ export { type AuthorViaBrowserArgs, type RunAuthorJourneyOptions, runAuthorJourney } from "./explore-author.js";
3
+ export { type RunCoverageMissionOptions, type CoverageFrontierDefect, type RunCoverageMissionResult, runCoverageMission, } from "./explore-coverage.js";
4
+ export { CLI_ADVERSARIAL_STRATEGIES, type RunAdversarialCliMissionOptions, type AdversarialCliMissionResult, runAdversarialCliMission, } from "./explore-adversarial.js";
5
+ export { type RunFeatureCliMissionOptions, type FeatureCliMissionResult, NO_MODEL_USAGE, runFeatureCliMission, } from "./explore-feature.js";
6
+ export { parseAssertionSpec, parseSuccessSpec, resolveExploreAllowlist } from "./explore-specs.js";
7
+ export { type ServerLogOptions, serverLogResult, type OverflowFlags, currentUrlSafe, assertSaveStorageStateOutsideProject, persistStorageState, type MissionTarget, type ExploreCliDeps, } from "./explore-shared.js";
@@ -1,302 +1,8 @@
1
- import { mkdtemp, mkdir, rm, writeFile } from "node:fs/promises";
2
- import { tmpdir } from "node:os";
3
- import { join } from "node:path";
4
- import { PlaywrightBrowserPort } from "@jevitate/playwright";
5
- import { CastActor, BrowseTheWeb } from "@jevitate/screenplay";
6
- import { runGoalBasedMission, authorJourney, runInductionMission, runAdversarialMission, runFeatureMission, assertAuthorizedExploreTarget, normalizeAllowlist, } from "@jevitate/explore";
7
- import { FsJourneyStore } from "@jevitate/journey";
8
- import { resolveDataDir } from "./data-dir.js";
9
- export async function runExploration(opts) {
10
- // Guardrail #1 — authorize BEFORE opening a browser. Throws on refusal.
11
- const origin = assertAuthorizedExploreTarget(opts.url, opts.allowlist);
12
- const portFactory = opts.browserPortFactory ?? (() => new PlaywrightBrowserPort());
13
- const port = portFactory();
14
- const profileDir = await mkdtemp(join(tmpdir(), "jevitate-explore-"));
15
- const session = await port.open({
16
- profileDir,
17
- headless: true,
18
- allowedOrigins: [...opts.allowlist],
19
- baseUrl: origin,
20
- });
21
- try {
22
- const actor = CastActor.named("explorer").whoCan(new BrowseTheWeb(session, [...opts.allowlist]));
23
- const mission = await runGoalBasedMission({
24
- actor,
25
- judge: opts.judge,
26
- gen: opts.gen,
27
- goal: opts.goal,
28
- allowlist: opts.allowlist,
29
- startUrl: opts.url,
30
- successAssertion: opts.successAssertion,
31
- bounds: opts.bounds,
32
- secrets: opts.secrets,
33
- site: origin,
34
- });
35
- const outDir = opts.outDir ?? resolveDataDir(["recordings"]);
36
- await mkdir(outDir, { recursive: true });
37
- const iso = (opts.nowIso ?? (() => new Date().toISOString()))();
38
- const recordingPath = join(outDir, `explore-${iso.replace(/[:.]/g, "-")}.json`);
39
- await writeFile(recordingPath, `${JSON.stringify(mission.recording, null, 2)}\n`, "utf8");
40
- return {
41
- outcome: mission.outcome,
42
- assertionPassed: mission.assertionPassed,
43
- stop: mission.run.stop,
44
- finalUrl: mission.finalUrl,
45
- decisions: mission.run.decisions,
46
- actions: mission.run.actions,
47
- recordingPath,
48
- };
49
- }
50
- finally {
51
- await session.close();
52
- await rm(profileDir, { recursive: true, force: true });
53
- }
54
- }
55
- /**
56
- * The programmatic surface behind `jevitate explore author-journey` — drives
57
- * the goal-based exploration mission and feeds its take(s) through RxD's
58
- * diff/postdoc pipeline (`@jevitate/explore`'s `authorJourney`) to author a
59
- * parameterized, replayable, UNPROMOTED Journey, then persists it under the
60
- * journeys store. Additive: the record-by-demonstration authoring path is
61
- * untouched.
62
- *
63
- * The authorized-target guard runs FIRST (fail-closed), before any browser is
64
- * opened. The authoring step is injectable (`authorImpl`) so it is unit-testable
65
- * without a browser.
66
- */
67
- export async function runAuthorJourney(opts) {
68
- // Guardrail #1 — authorize BEFORE opening a browser. Throws on refusal.
69
- const origin = assertAuthorizedExploreTarget(opts.url, opts.allowlist);
70
- const impl = opts.authorImpl ?? authorViaBrowser;
71
- const result = await impl({
72
- url: opts.url,
73
- origin,
74
- goal: opts.goal,
75
- successAssertion: opts.successAssertion,
76
- allowlist: opts.allowlist,
77
- judge: opts.judge,
78
- gen: opts.gen,
79
- bounds: opts.bounds,
80
- takes: opts.takes ?? 1,
81
- journeyId: opts.journeyId,
82
- journeyName: opts.journeyName,
83
- browserPortFactory: opts.browserPortFactory,
84
- });
85
- if (result.outcome === "authored") {
86
- await new FsJourneyStore(opts.journeysDir).put(result.journey);
87
- }
88
- return result;
89
- }
90
- /** Default authoring step: opens a real browser, builds an actor, authors. */
91
- async function authorViaBrowser(args) {
92
- if (!args.judge || !args.gen) {
93
- throw new Error("runAuthorJourney: judge and gen gateways are required to drive the authoring mission");
94
- }
95
- const judge = args.judge;
96
- const gen = args.gen;
97
- const portFactory = args.browserPortFactory ?? (() => new PlaywrightBrowserPort());
98
- const port = portFactory();
99
- const profileDir = await mkdtemp(join(tmpdir(), "jevitate-author-"));
100
- const session = await port.open({
101
- profileDir,
102
- headless: true,
103
- allowedOrigins: [...args.allowlist],
104
- baseUrl: args.origin,
105
- });
106
- try {
107
- const actor = CastActor.named("author").whoCan(new BrowseTheWeb(session, [...args.allowlist]));
108
- return await authorJourney({
109
- goal: args.goal,
110
- successAssertion: args.successAssertion,
111
- allowlist: args.allowlist,
112
- startUrl: args.url,
113
- bounds: args.bounds,
114
- actor,
115
- judgment: judge,
116
- generation: gen,
117
- takes: args.takes,
118
- journeyId: args.journeyId,
119
- journeyName: args.journeyName,
120
- });
121
- }
122
- finally {
123
- await session.close();
124
- await rm(profileDir, { recursive: true, force: true });
125
- }
126
- }
127
- export async function runCoverageMission(opts) {
128
- // Guardrail #1 — authorize BEFORE opening a browser. Throws on refusal.
129
- const origin = assertAuthorizedExploreTarget(opts.url, opts.allowlist);
130
- const portFactory = opts.browserPortFactory ?? (() => new PlaywrightBrowserPort());
131
- const port = portFactory();
132
- const profileDir = await mkdtemp(join(tmpdir(), "jevitate-coverage-"));
133
- const session = await port.open({
134
- profileDir,
135
- headless: true,
136
- allowedOrigins: [...opts.allowlist],
137
- baseUrl: origin,
138
- });
139
- try {
140
- const actor = CastActor.named("coverage-mission").whoCan(new BrowseTheWeb(session, [...opts.allowlist]));
141
- const result = await runInductionMission({
142
- page: session.page,
143
- actor,
144
- judgment: opts.judge,
145
- generation: opts.gen,
146
- seedUrl: opts.url,
147
- allowlist: opts.allowlist,
148
- bounds: opts.bounds,
149
- });
150
- const outDir = opts.outDir ?? resolveDataDir(["recordings"]);
151
- await mkdir(outDir, { recursive: true });
152
- const iso = (opts.nowIso ?? (() => new Date().toISOString()))();
153
- const stamp = iso.replace(/[:.]/g, "-");
154
- const recordingPaths = [];
155
- for (let i = 0; i < result.recordings.length; i++) {
156
- const p = join(outDir, `coverage-${stamp}-state-${i}.json`);
157
- await writeFile(p, `${JSON.stringify(result.recordings[i], null, 2)}\n`, "utf8");
158
- recordingPaths.push(p);
159
- }
160
- return { coverage: result.coverage, outcome: result.outcome, recordingPaths };
161
- }
162
- finally {
163
- await session.close();
164
- await rm(profileDir, { recursive: true, force: true });
165
- }
166
- }
167
- /**
168
- * Runs `@jevitate/explore`'s adversarial "try to break it" mission behind the
169
- * CLI. Guardrail #1 is enforced BEFORE opening a browser (fail-closed); the
170
- * session is always torn down. The stop-on-defect decision is the mission's
171
- * own trusted hard-signal oracle — never Jev's `Noul` (guardrail #4).
172
- */
173
- export async function runAdversarialCliMission(opts) {
174
- // Guardrail #1 — authorize BEFORE opening a browser. Throws on refusal.
175
- const origin = assertAuthorizedExploreTarget(opts.seedUrl, opts.allowlist);
176
- const portFactory = opts.browserPortFactory ?? (() => new PlaywrightBrowserPort());
177
- const port = portFactory();
178
- const session = await port.open({
179
- profileDir: opts.profileDir,
180
- headless: opts.headless ?? true,
181
- allowedOrigins: [...opts.allowlist],
182
- baseUrl: origin,
183
- });
184
- try {
185
- const actor = CastActor.named("adversarial-mission").whoCan(new BrowseTheWeb(session, [...opts.allowlist]));
186
- return await runAdversarialMission({
187
- page: session.page,
188
- actor,
189
- judgment: opts.judgment,
190
- generation: opts.generation,
191
- seedUrl: opts.seedUrl,
192
- allowlist: opts.allowlist,
193
- strategies: opts.strategies,
194
- site: origin,
195
- });
196
- }
197
- finally {
198
- await session.close();
199
- }
200
- }
201
- export async function runFeatureCliMission(opts) {
202
- // Guardrail #1 — authorize BEFORE opening a browser. Throws on refusal.
203
- const origin = assertAuthorizedExploreTarget(opts.seedUrl, opts.allowlist);
204
- const scope = { name: opts.capability, originAllowlist: opts.allowlist, routeGlobs: opts.routeGlobs };
205
- const portFactory = opts.browserPortFactory ?? (() => new PlaywrightBrowserPort());
206
- const session = await portFactory().open({
207
- profileDir: opts.profileDir,
208
- headless: opts.headless ?? true,
209
- allowedOrigins: [...opts.allowlist],
210
- baseUrl: origin,
211
- });
212
- try {
213
- const actor = CastActor.named("feature-mission").whoCan(new BrowseTheWeb(session, [...opts.allowlist]));
214
- return await runFeatureMission({
215
- page: session.page,
216
- actor,
217
- seedUrl: opts.seedUrl,
218
- allowlist: opts.allowlist,
219
- scope,
220
- });
221
- }
222
- finally {
223
- await session.close();
224
- }
225
- }
226
- /**
227
- * Compact `--success` assertion spec parser. Supported forms:
228
- * urlIncludes:<text>
229
- * visible:<descriptor>
230
- * textIncludes:<descriptor>|<text>
231
- * count:<descriptor>|min=<n>,max=<n>
232
- * where <descriptor> is `k=v` pairs joined by `;` over
233
- * testId/role/name/label/text/css.
234
- */
235
- export function parseAssertionSpec(spec) {
236
- const ci = spec.indexOf(":");
237
- if (ci === -1)
238
- throw new Error(`invalid --success spec ${JSON.stringify(spec)}; expected "<kind>:<...>"`);
239
- const kind = spec.slice(0, ci);
240
- const rest = spec.slice(ci + 1);
241
- switch (kind) {
242
- case "urlIncludes": {
243
- if (rest === "")
244
- throw new Error("urlIncludes requires a text (urlIncludes:/path)");
245
- return { kind: "urlIncludes", text: rest };
246
- }
247
- case "visible":
248
- return { kind: "visible", target: parseDescriptorSpec(rest) };
249
- case "textIncludes": {
250
- const bar = rest.lastIndexOf("|");
251
- if (bar === -1)
252
- throw new Error('textIncludes requires "<descriptor>|<text>"');
253
- return { kind: "textIncludes", target: parseDescriptorSpec(rest.slice(0, bar)), text: rest.slice(bar + 1) };
254
- }
255
- case "count": {
256
- const bar = rest.indexOf("|");
257
- const descPart = bar === -1 ? rest : rest.slice(0, bar);
258
- const bounds = bar === -1 ? "" : rest.slice(bar + 1);
259
- const target = parseDescriptorSpec(descPart);
260
- const out = { kind: "count", target };
261
- for (const pair of bounds.split(",")) {
262
- const [k, v] = pair.split("=");
263
- if (k === "min" && v)
264
- out.min = Number(v);
265
- if (k === "max" && v)
266
- out.max = Number(v);
267
- }
268
- return out;
269
- }
270
- default:
271
- throw new Error(`unsupported assertion kind ${JSON.stringify(kind)}`);
272
- }
273
- }
274
- function parseDescriptorSpec(s) {
275
- const d = {};
276
- const keys = ["testId", "role", "name", "label", "text", "css"];
277
- for (const pair of s.split(";")) {
278
- const eq = pair.indexOf("=");
279
- if (eq === -1)
280
- continue;
281
- const k = pair.slice(0, eq);
282
- const v = pair.slice(eq + 1);
283
- if (keys.includes(k) && v !== "") {
284
- d[k] = v;
285
- }
286
- }
287
- if (!(d.testId || d.role || d.label || d.text || d.css)) {
288
- throw new Error(`descriptor spec ${JSON.stringify(s)} has no usable selector`);
289
- }
290
- return d;
291
- }
292
- /**
293
- * The authorized-origins allowlist for a run: explicit `--allow` origins when
294
- * given, otherwise the target URL's own origin (you asked to explore it). An
295
- * unparseable URL yields an empty allowlist → the guard fails closed.
296
- */
297
- export function resolveExploreAllowlist(url, allow) {
298
- if (allow.length > 0)
299
- return [...allow];
300
- return normalizeAllowlist([url]);
301
- }
1
+ export { runExploration, withServerCause } from "./explore-goal.js";
2
+ export { runAuthorJourney } from "./explore-author.js";
3
+ export { runCoverageMission, } from "./explore-coverage.js";
4
+ export { CLI_ADVERSARIAL_STRATEGIES, runAdversarialCliMission, } from "./explore-adversarial.js";
5
+ export { NO_MODEL_USAGE, runFeatureCliMission, } from "./explore-feature.js";
6
+ export { parseAssertionSpec, parseSuccessSpec, resolveExploreAllowlist } from "./explore-specs.js";
7
+ export { serverLogResult, currentUrlSafe, assertSaveStorageStateOutsideProject, persistStorageState, } from "./explore-shared.js";
302
8
  //# sourceMappingURL=explore-api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"explore-api.js","sourceRoot":"","sources":["../src/explore-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"explore-api.js","sourceRoot":"","sources":["../src/explore-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyD,cAAc,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE3H,OAAO,EAA2D,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEhH,OAAO,EAIL,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,0BAA0B,EAG1B,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAGL,cAAc,EACd,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAEnG,OAAO,EAEL,eAAe,EAEf,cAAc,EACd,oCAAoC,EACpC,mBAAmB,GAGpB,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,79 @@
1
+ /** Journey authoring behind `jevitate explore-author-journey`: a model-driven run that authors a promotable Journey. */
2
+ import type { JudgmentPort, GenerationPort } from "@jevitate/ai-core";
3
+ import { type BrowserLaunchOptions, type BrowserPort } from "@jevitate/playwright";
4
+ import { type Assertion } from "@jevitate/recording";
5
+ import type { SafetyConfig } from "@jevitate/explore";
6
+ import { type Bounds, type AuthorJourneyResult } from "@jevitate/explore";
7
+ /**
8
+ * Arguments handed to the authoring step of `runAuthorJourney`. Kept separate
9
+ * from `RunAuthorJourneyOptions` so tests can inject `authorImpl` (a fake
10
+ * authoring step) without opening a real browser.
11
+ */
12
+ export interface AuthorViaBrowserArgs {
13
+ readonly url: string;
14
+ readonly origin: string;
15
+ readonly goal: string;
16
+ readonly successAssertion: Assertion;
17
+ readonly allowlist: readonly string[];
18
+ readonly judge?: JudgmentPort;
19
+ readonly gen?: GenerationPort;
20
+ readonly bounds?: Partial<Bounds>;
21
+ readonly takes: number;
22
+ readonly journeyId: string;
23
+ readonly journeyName: string;
24
+ readonly browserPortFactory?: () => BrowserPort;
25
+ /** How Chromium is launched (executable/channel/extra args). Default: pinned Chromium. */
26
+ readonly browser?: BrowserLaunchOptions;
27
+ /**
28
+ * Playwright storageState JSON to seed the session from (CLI `--storage-state`) —
29
+ * the deterministic authenticated pre-step. Contains live session cookies: it is
30
+ * handed only to the browser, never to a model or a Recording.
31
+ */
32
+ readonly storageState?: string;
33
+ /** The exploration's safety policy (#249: the target's targets.json `safety`). Absent: the built-in one. */
34
+ readonly safety?: SafetyConfig;
35
+ }
36
+ export interface RunAuthorJourneyOptions {
37
+ readonly url: string;
38
+ readonly goal: string;
39
+ readonly successAssertion: Assertion;
40
+ readonly allowlist: readonly string[];
41
+ /** Where the authored Journey is persisted (via `FsJourneyStore`). */
42
+ readonly journeysDir: string;
43
+ readonly journeyId: string;
44
+ readonly journeyName: string;
45
+ /** Total takes incl. discovery. Default 1 (single-take MVP). */
46
+ readonly takes?: number;
47
+ readonly judge?: JudgmentPort;
48
+ readonly gen?: GenerationPort;
49
+ readonly bounds?: Partial<Bounds>;
50
+ readonly browserPortFactory?: () => BrowserPort;
51
+ /** How Chromium is launched (executable/channel/extra args). Default: pinned Chromium. */
52
+ readonly browser?: BrowserLaunchOptions;
53
+ /**
54
+ * Playwright storageState JSON to seed the session from (CLI `--storage-state`) —
55
+ * the deterministic authenticated pre-step. Contains live session cookies: it is
56
+ * handed only to the browser, never to a model or a Recording.
57
+ */
58
+ readonly storageState?: string;
59
+ /** The exploration's safety policy (#249: the target's targets.json `safety`). Absent: the built-in one. */
60
+ readonly safety?: SafetyConfig;
61
+ /**
62
+ * Test seam: override the authoring step. Defaults to `authorViaBrowser`,
63
+ * which drives a real Playwright-backed actor through `authorJourney`.
64
+ */
65
+ readonly authorImpl?: (args: AuthorViaBrowserArgs) => Promise<AuthorJourneyResult>;
66
+ }
67
+ /**
68
+ * The programmatic surface behind `jevitate explore author-journey` — drives
69
+ * the goal-based exploration mission and feeds its take(s) through RxD's
70
+ * diff/postdoc pipeline (`@jevitate/explore`'s `authorJourney`) to author a
71
+ * parameterized, replayable, UNPROMOTED Journey, then persists it under the
72
+ * journeys store. Additive: the record-by-demonstration authoring path is
73
+ * untouched.
74
+ *
75
+ * The authorized-target guard runs FIRST (fail-closed), before any browser is
76
+ * opened. The authoring step is injectable (`authorImpl`) so it is unit-testable
77
+ * without a browser.
78
+ */
79
+ export declare function runAuthorJourney(opts: RunAuthorJourneyOptions): Promise<AuthorJourneyResult>;