@jevitate/cli 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (375) hide show
  1. package/README.md +23 -0
  2. package/dist/ai-cli.js +40 -30
  3. package/dist/ai-cli.js.map +1 -1
  4. package/dist/author-journey-cli.d.ts +4 -0
  5. package/dist/author-journey-cli.js +109 -0
  6. package/dist/author-journey-cli.js.map +1 -0
  7. package/dist/bin.js +58077 -22454
  8. package/dist/bin.js.map +1 -1
  9. package/dist/browser-run-options.d.ts +58 -0
  10. package/dist/browser-run-options.js +106 -0
  11. package/dist/browser-run-options.js.map +1 -0
  12. package/dist/build-info.generated.d.ts +2 -0
  13. package/dist/build-info.generated.js +10 -0
  14. package/dist/build-info.generated.js.map +1 -0
  15. package/dist/check-api.d.ts +5 -0
  16. package/dist/check-api.js +233 -0
  17. package/dist/check-api.js.map +1 -0
  18. package/dist/check-budget.d.ts +26 -0
  19. package/dist/check-budget.js +89 -0
  20. package/dist/check-budget.js.map +1 -0
  21. package/dist/check-cli.d.ts +31 -0
  22. package/dist/check-cli.js +109 -0
  23. package/dist/check-cli.js.map +1 -0
  24. package/dist/check-execute.d.ts +25 -0
  25. package/dist/check-execute.js +385 -0
  26. package/dist/check-execute.js.map +1 -0
  27. package/dist/check-plan.d.ts +113 -0
  28. package/dist/check-plan.js +448 -0
  29. package/dist/check-plan.js.map +1 -0
  30. package/dist/check-suite.d.ts +171 -0
  31. package/dist/check-suite.js +515 -0
  32. package/dist/check-suite.js.map +1 -0
  33. package/dist/check-types.d.ts +181 -0
  34. package/dist/check-types.js +35 -0
  35. package/dist/check-types.js.map +1 -0
  36. package/dist/cli-args.d.ts +26 -0
  37. package/dist/cli-args.js +50 -0
  38. package/dist/cli-args.js.map +1 -0
  39. package/dist/cli-output.d.ts +102 -0
  40. package/dist/cli-output.js +516 -0
  41. package/dist/cli-output.js.map +1 -0
  42. package/dist/cli-reference.d.ts +3 -0
  43. package/dist/cli-reference.js +81 -0
  44. package/dist/cli-reference.js.map +1 -0
  45. package/dist/cli-refusal.d.ts +12 -0
  46. package/dist/cli-refusal.js +52 -0
  47. package/dist/cli-refusal.js.map +1 -0
  48. package/dist/cli-shared.d.ts +330 -0
  49. package/dist/cli-shared.js +492 -0
  50. package/dist/cli-shared.js.map +1 -0
  51. package/dist/cli-surface.d.ts +33 -0
  52. package/dist/cli-surface.js +48 -0
  53. package/dist/cli-surface.js.map +1 -0
  54. package/dist/conversation-options.d.ts +15 -0
  55. package/dist/conversation-options.js +10 -0
  56. package/dist/conversation-options.js.map +1 -0
  57. package/dist/credentials-file.d.ts +15 -0
  58. package/dist/credentials-file.js +56 -0
  59. package/dist/credentials-file.js.map +1 -0
  60. package/dist/data-dir.d.ts +1 -1
  61. package/dist/data-dir.js +1 -1
  62. package/dist/defect-evidence.d.ts +141 -0
  63. package/dist/defect-evidence.js +502 -0
  64. package/dist/defect-evidence.js.map +1 -0
  65. package/dist/demo-aspect-api.d.ts +209 -0
  66. package/dist/demo-aspect-api.js +397 -0
  67. package/dist/demo-aspect-api.js.map +1 -0
  68. package/dist/demo-aspect-cli.d.ts +3 -0
  69. package/dist/demo-aspect-cli.js +241 -0
  70. package/dist/demo-aspect-cli.js.map +1 -0
  71. package/dist/demo-capture.d.ts +108 -0
  72. package/dist/demo-capture.js +438 -0
  73. package/dist/demo-capture.js.map +1 -0
  74. package/dist/engine.d.ts +35 -0
  75. package/dist/engine.js +25 -0
  76. package/dist/engine.js.map +1 -0
  77. package/dist/environments.d.ts +155 -0
  78. package/dist/environments.js +364 -0
  79. package/dist/environments.js.map +1 -0
  80. package/dist/exit-codes.d.ts +46 -0
  81. package/dist/exit-codes.js +91 -0
  82. package/dist/exit-codes.js.map +1 -0
  83. package/dist/explore-adversarial.d.ts +137 -0
  84. package/dist/explore-adversarial.js +218 -0
  85. package/dist/explore-adversarial.js.map +1 -0
  86. package/dist/explore-api.d.ts +7 -187
  87. package/dist/explore-api.js +7 -301
  88. package/dist/explore-api.js.map +1 -1
  89. package/dist/explore-author.d.ts +79 -0
  90. package/dist/explore-author.js +86 -0
  91. package/dist/explore-author.js.map +1 -0
  92. package/dist/explore-cli.d.ts +7 -0
  93. package/dist/explore-cli.js +963 -0
  94. package/dist/explore-cli.js.map +1 -0
  95. package/dist/explore-coverage.d.ts +158 -0
  96. package/dist/explore-coverage.js +240 -0
  97. package/dist/explore-coverage.js.map +1 -0
  98. package/dist/explore-feature.d.ts +127 -0
  99. package/dist/explore-feature.js +220 -0
  100. package/dist/explore-feature.js.map +1 -0
  101. package/dist/explore-goal.d.ts +253 -0
  102. package/dist/explore-goal.js +374 -0
  103. package/dist/explore-goal.js.map +1 -0
  104. package/dist/explore-shared.d.ts +152 -0
  105. package/dist/explore-shared.js +129 -0
  106. package/dist/explore-shared.js.map +1 -0
  107. package/dist/explore-specs.d.ts +53 -0
  108. package/dist/explore-specs.js +333 -0
  109. package/dist/explore-specs.js.map +1 -0
  110. package/dist/findings-filing.d.ts +64 -0
  111. package/dist/findings-filing.js +108 -0
  112. package/dist/findings-filing.js.map +1 -0
  113. package/dist/fixture-auth.d.ts +52 -0
  114. package/dist/fixture-auth.js +82 -0
  115. package/dist/fixture-auth.js.map +1 -0
  116. package/dist/fixture-cli.d.ts +70 -0
  117. package/dist/fixture-cli.js +178 -0
  118. package/dist/fixture-cli.js.map +1 -0
  119. package/dist/github-issue-filer.d.ts +62 -0
  120. package/dist/github-issue-filer.js +188 -0
  121. package/dist/github-issue-filer.js.map +1 -0
  122. package/dist/host-health-run.d.ts +24 -0
  123. package/dist/host-health-run.js +27 -0
  124. package/dist/host-health-run.js.map +1 -0
  125. package/dist/http-5xx-outcome.d.ts +6 -0
  126. package/dist/http-5xx-outcome.js +39 -0
  127. package/dist/http-5xx-outcome.js.map +1 -0
  128. package/dist/inbox-cli.d.ts +7 -0
  129. package/dist/inbox-cli.js +197 -0
  130. package/dist/inbox-cli.js.map +1 -0
  131. package/dist/index.d.ts +1 -0
  132. package/dist/index.js +1 -0
  133. package/dist/index.js.map +1 -1
  134. package/dist/init-cli.d.ts +4 -0
  135. package/dist/init-cli.js +127 -0
  136. package/dist/init-cli.js.map +1 -0
  137. package/dist/init-keys.d.ts +19 -2
  138. package/dist/init-keys.js +15 -4
  139. package/dist/init-keys.js.map +1 -1
  140. package/dist/init-next-steps.d.ts +35 -0
  141. package/dist/init-next-steps.js +79 -0
  142. package/dist/init-next-steps.js.map +1 -0
  143. package/dist/invariants-file.d.ts +34 -0
  144. package/dist/invariants-file.js +68 -0
  145. package/dist/invariants-file.js.map +1 -0
  146. package/dist/invariants-validate.d.ts +30 -0
  147. package/dist/invariants-validate.js +105 -0
  148. package/dist/invariants-validate.js.map +1 -0
  149. package/dist/journey-annotate-api.d.ts +76 -0
  150. package/dist/journey-annotate-api.js +256 -0
  151. package/dist/journey-annotate-api.js.map +1 -0
  152. package/dist/journey-annotate-cli.d.ts +9 -0
  153. package/dist/journey-annotate-cli.js +179 -0
  154. package/dist/journey-annotate-cli.js.map +1 -0
  155. package/dist/journey-api.d.ts +79 -2
  156. package/dist/journey-api.js +136 -19
  157. package/dist/journey-api.js.map +1 -1
  158. package/dist/journey-cli.d.ts +4 -0
  159. package/dist/journey-cli.js +370 -0
  160. package/dist/journey-cli.js.map +1 -0
  161. package/dist/journey-demo-api.d.ts +112 -0
  162. package/dist/journey-demo-api.js +392 -0
  163. package/dist/journey-demo-api.js.map +1 -0
  164. package/dist/journey-demo-cli.d.ts +10 -0
  165. package/dist/journey-demo-cli.js +155 -0
  166. package/dist/journey-demo-cli.js.map +1 -0
  167. package/dist/kill-signal.d.ts +193 -0
  168. package/dist/kill-signal.js +284 -0
  169. package/dist/kill-signal.js.map +1 -0
  170. package/dist/launch-armed.d.ts +37 -0
  171. package/dist/launch-armed.js +31 -0
  172. package/dist/launch-armed.js.map +1 -0
  173. package/dist/ledger-api.d.ts +106 -0
  174. package/dist/ledger-api.js +237 -0
  175. package/dist/ledger-api.js.map +1 -0
  176. package/dist/ledger-cli.d.ts +18 -0
  177. package/dist/ledger-cli.js +107 -0
  178. package/dist/ledger-cli.js.map +1 -0
  179. package/dist/load-api.d.ts +29 -11
  180. package/dist/load-api.js +23 -15
  181. package/dist/load-api.js.map +1 -1
  182. package/dist/load-cli.d.ts +4 -0
  183. package/dist/load-cli.js +97 -0
  184. package/dist/load-cli.js.map +1 -0
  185. package/dist/log-correlation.d.ts +147 -0
  186. package/dist/log-correlation.js +325 -0
  187. package/dist/log-correlation.js.map +1 -0
  188. package/dist/log-lines.d.ts +131 -0
  189. package/dist/log-lines.js +389 -0
  190. package/dist/log-lines.js.map +1 -0
  191. package/dist/log-sources.d.ts +71 -0
  192. package/dist/log-sources.js +235 -0
  193. package/dist/log-sources.js.map +1 -0
  194. package/dist/logs-cli.d.ts +3 -0
  195. package/dist/logs-cli.js +51 -0
  196. package/dist/logs-cli.js.map +1 -0
  197. package/dist/logs-retention.d.ts +28 -0
  198. package/dist/logs-retention.js +84 -0
  199. package/dist/logs-retention.js.map +1 -0
  200. package/dist/mcp-api.d.ts +89 -1
  201. package/dist/mcp-api.js +472 -18
  202. package/dist/mcp-api.js.map +1 -1
  203. package/dist/mcp-args.d.ts +38 -0
  204. package/dist/mcp-args.js +131 -0
  205. package/dist/mcp-args.js.map +1 -0
  206. package/dist/mcp-cli-bridge.d.ts +34 -0
  207. package/dist/mcp-cli-bridge.js +62 -0
  208. package/dist/mcp-cli-bridge.js.map +1 -0
  209. package/dist/mcp-cli-runner.d.ts +29 -0
  210. package/dist/mcp-cli-runner.js +44 -0
  211. package/dist/mcp-cli-runner.js.map +1 -0
  212. package/dist/mcp-cli-tools.d.ts +125 -0
  213. package/dist/mcp-cli-tools.js +680 -0
  214. package/dist/mcp-cli-tools.js.map +1 -0
  215. package/dist/mcp-paths.d.ts +28 -0
  216. package/dist/mcp-paths.js +76 -0
  217. package/dist/mcp-paths.js.map +1 -0
  218. package/dist/mission-actors.d.ts +40 -0
  219. package/dist/mission-actors.js +72 -0
  220. package/dist/mission-actors.js.map +1 -0
  221. package/dist/mission-api.d.ts +35 -0
  222. package/dist/mission-api.js +58 -2
  223. package/dist/mission-api.js.map +1 -1
  224. package/dist/mission-cli.d.ts +4 -0
  225. package/dist/mission-cli.js +247 -0
  226. package/dist/mission-cli.js.map +1 -0
  227. package/dist/mission-exit.d.ts +22 -0
  228. package/dist/mission-exit.js +26 -0
  229. package/dist/mission-exit.js.map +1 -0
  230. package/dist/mission-fixtures.d.ts +225 -0
  231. package/dist/mission-fixtures.js +828 -0
  232. package/dist/mission-fixtures.js.map +1 -0
  233. package/dist/mission-journal.d.ts +60 -0
  234. package/dist/mission-journal.js +115 -0
  235. package/dist/mission-journal.js.map +1 -0
  236. package/dist/mission-queue-cli.d.ts +10 -0
  237. package/dist/mission-queue-cli.js +198 -0
  238. package/dist/mission-queue-cli.js.map +1 -0
  239. package/dist/mission-queue-runner.d.ts +126 -0
  240. package/dist/mission-queue-runner.js +397 -0
  241. package/dist/mission-queue-runner.js.map +1 -0
  242. package/dist/multi-run-cli.d.ts +37 -0
  243. package/dist/multi-run-cli.js +110 -0
  244. package/dist/multi-run-cli.js.map +1 -0
  245. package/dist/multi-run.d.ts +339 -0
  246. package/dist/multi-run.js +619 -0
  247. package/dist/multi-run.js.map +1 -0
  248. package/dist/openrouter-call.d.ts +22 -0
  249. package/dist/openrouter-call.js +63 -0
  250. package/dist/openrouter-call.js.map +1 -0
  251. package/dist/profile-cli.d.ts +4 -0
  252. package/dist/profile-cli.js +57 -0
  253. package/dist/profile-cli.js.map +1 -0
  254. package/dist/program.d.ts +3 -75
  255. package/dist/program.js +119 -1921
  256. package/dist/program.js.map +1 -1
  257. package/dist/project-dir.d.ts +96 -0
  258. package/dist/project-dir.js +220 -0
  259. package/dist/project-dir.js.map +1 -0
  260. package/dist/record-api.d.ts +10 -6
  261. package/dist/record-api.js +39 -28
  262. package/dist/record-api.js.map +1 -1
  263. package/dist/record-cli.d.ts +4 -0
  264. package/dist/record-cli.js +64 -0
  265. package/dist/record-cli.js.map +1 -0
  266. package/dist/recording-cli.d.ts +4 -0
  267. package/dist/recording-cli.js +248 -0
  268. package/dist/recording-cli.js.map +1 -0
  269. package/dist/regression-api.d.ts +101 -0
  270. package/dist/regression-api.js +384 -5
  271. package/dist/regression-api.js.map +1 -1
  272. package/dist/regression-cli.d.ts +4 -0
  273. package/dist/regression-cli.js +232 -0
  274. package/dist/regression-cli.js.map +1 -0
  275. package/dist/report-api.d.ts +146 -0
  276. package/dist/report-api.js +430 -0
  277. package/dist/report-api.js.map +1 -0
  278. package/dist/report-cli.d.ts +12 -0
  279. package/dist/report-cli.js +147 -0
  280. package/dist/report-cli.js.map +1 -0
  281. package/dist/result-schema.d.ts +22 -0
  282. package/dist/result-schema.js +28 -0
  283. package/dist/result-schema.js.map +1 -0
  284. package/dist/run-index.d.ts +29 -0
  285. package/dist/run-index.js +70 -0
  286. package/dist/run-index.js.map +1 -0
  287. package/dist/run-screenshots.d.ts +123 -0
  288. package/dist/run-screenshots.js +229 -0
  289. package/dist/run-screenshots.js.map +1 -0
  290. package/dist/runtime-env.d.ts +8 -0
  291. package/dist/runtime-env.js +22 -0
  292. package/dist/runtime-env.js.map +1 -0
  293. package/dist/secret-args.d.ts +23 -0
  294. package/dist/secret-args.js +45 -0
  295. package/dist/secret-args.js.map +1 -0
  296. package/dist/serve-cli.d.ts +4 -0
  297. package/dist/serve-cli.js +95 -0
  298. package/dist/serve-cli.js.map +1 -0
  299. package/dist/server-log-verify.d.ts +34 -0
  300. package/dist/server-log-verify.js +115 -0
  301. package/dist/server-log-verify.js.map +1 -0
  302. package/dist/session-check.d.ts +14 -0
  303. package/dist/session-check.js +44 -0
  304. package/dist/session-check.js.map +1 -0
  305. package/dist/site-cli.d.ts +4 -0
  306. package/dist/site-cli.js +127 -0
  307. package/dist/site-cli.js.map +1 -0
  308. package/dist/site-gate-cli.d.ts +28 -0
  309. package/dist/site-gate-cli.js +58 -0
  310. package/dist/site-gate-cli.js.map +1 -0
  311. package/dist/source-api.js +18 -3
  312. package/dist/source-api.js.map +1 -1
  313. package/dist/source-cli.d.ts +4 -0
  314. package/dist/source-cli.js +284 -0
  315. package/dist/source-cli.js.map +1 -0
  316. package/dist/source-run-api.d.ts +27 -1
  317. package/dist/source-run-api.js +22 -11
  318. package/dist/source-run-api.js.map +1 -1
  319. package/dist/storage-state-snapshot.d.ts +50 -0
  320. package/dist/storage-state-snapshot.js +87 -0
  321. package/dist/storage-state-snapshot.js.map +1 -0
  322. package/dist/suite-explore-options.d.ts +289 -0
  323. package/dist/suite-explore-options.js +140 -0
  324. package/dist/suite-explore-options.js.map +1 -0
  325. package/dist/target-config.d.ts +109 -0
  326. package/dist/target-config.js +216 -0
  327. package/dist/target-config.js.map +1 -0
  328. package/dist/transcript-file.d.ts +12 -0
  329. package/dist/transcript-file.js +23 -0
  330. package/dist/transcript-file.js.map +1 -0
  331. package/dist/ui-api.d.ts +3 -0
  332. package/dist/ui-api.js +7 -1
  333. package/dist/ui-api.js.map +1 -1
  334. package/dist/usability-capture.d.ts +43 -0
  335. package/dist/usability-capture.js +326 -0
  336. package/dist/usability-capture.js.map +1 -0
  337. package/dist/usage-config.d.ts +36 -0
  338. package/dist/usage-config.js +114 -0
  339. package/dist/usage-config.js.map +1 -0
  340. package/dist/ux-api.d.ts +3 -75
  341. package/dist/ux-api.js +3 -220
  342. package/dist/ux-api.js.map +1 -1
  343. package/dist/ux-cli.d.ts +4 -0
  344. package/dist/ux-cli.js +102 -0
  345. package/dist/ux-cli.js.map +1 -0
  346. package/dist/ux-config.d.ts +29 -0
  347. package/dist/ux-config.js +103 -0
  348. package/dist/ux-config.js.map +1 -0
  349. package/dist/ux-evidence.d.ts +54 -0
  350. package/dist/ux-evidence.js +197 -0
  351. package/dist/ux-evidence.js.map +1 -0
  352. package/dist/ux-review.d.ts +112 -0
  353. package/dist/ux-review.js +151 -0
  354. package/dist/ux-review.js.map +1 -0
  355. package/dist/ux-usability.d.ts +238 -0
  356. package/dist/ux-usability.js +494 -0
  357. package/dist/ux-usability.js.map +1 -0
  358. package/dist/verify-fix-api.d.ts +173 -0
  359. package/dist/verify-fix-api.js +454 -0
  360. package/dist/verify-fix-api.js.map +1 -0
  361. package/dist/verify-fix-cli.d.ts +4 -0
  362. package/dist/verify-fix-cli.js +110 -0
  363. package/dist/verify-fix-cli.js.map +1 -0
  364. package/package.json +19 -14
  365. package/skills/jevitate-ci-check/SKILL.md +77 -0
  366. package/skills/jevitate-demo/SKILL.md +61 -0
  367. package/skills/jevitate-explore/SKILL.md +88 -87
  368. package/skills/jevitate-getting-started/SKILL.md +88 -0
  369. package/skills/jevitate-load-test/SKILL.md +11 -2
  370. package/skills/jevitate-mission-scope/SKILL.md +19 -11
  371. package/skills/jevitate-record/SKILL.md +23 -5
  372. package/skills/jevitate-run-journey/SKILL.md +61 -17
  373. package/skills/jevitate-sources/SKILL.md +57 -14
  374. package/skills/jevitate-ux-review/SKILL.md +106 -16
  375. package/skills/jevitate-verify-fix/SKILL.md +76 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-cli-tools.js","sourceRoot":"","sources":["../src/mcp-cli-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * #255 — file-path arguments over MCP. The CLI takes any path its operator types; an MCP argument
3
+ * is chosen by a model, so every path an MCP tool accepts is confined at least as strictly as the
4
+ * CLI confines it, and then some:
5
+ *
6
+ * - a non-empty string with no NUL byte;
7
+ * - resolved (relative to the server's working directory) and — following symlinks through the
8
+ * longest existing prefix — strictly inside one of the allowed roots: the project (the server's
9
+ * working directory and the repo holding its `.jevitate/`) or the per-user `~/.jevitate/`. A
10
+ * `..` or symlink escape is refused, never normalised into somewhere else;
11
+ * - a storage state (cookies/tokens) additionally never inside a repo's `.jevitate/`
12
+ * (`sessionFileInProjectRefusal`, the rule every storage-state writer on the CLI follows) —
13
+ * read or written.
14
+ *
15
+ * A refusal is a typed `invalid_args` MCP error naming the argument; nothing is opened.
16
+ */
17
+ export declare class McpPathError extends Error {
18
+ readonly error: "invalid_args";
19
+ constructor(message: string);
20
+ }
21
+ /** The roots MCP path arguments may resolve inside (default: the project and `~/.jevitate`). */
22
+ export declare function defaultMcpPathRoots(): string[];
23
+ export interface ConfineOptions {
24
+ /** A Playwright storage state (session cookies/tokens): also never under a repo's `.jevitate/`. */
25
+ readonly session?: boolean;
26
+ }
27
+ /** The confined absolute path for the MCP argument `what`, or throws `McpPathError`. */
28
+ export declare function confineMcpPath(value: unknown, what: string, roots: readonly string[], opts?: ConfineOptions): string;
@@ -0,0 +1,76 @@
1
+ import { existsSync, realpathSync } from "node:fs";
2
+ import { basename, dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
3
+ import { findProjectDir, homeDataRoot, sessionFileInProjectRefusal } from "./project-dir.js";
4
+ /**
5
+ * #255 — file-path arguments over MCP. The CLI takes any path its operator types; an MCP argument
6
+ * is chosen by a model, so every path an MCP tool accepts is confined at least as strictly as the
7
+ * CLI confines it, and then some:
8
+ *
9
+ * - a non-empty string with no NUL byte;
10
+ * - resolved (relative to the server's working directory) and — following symlinks through the
11
+ * longest existing prefix — strictly inside one of the allowed roots: the project (the server's
12
+ * working directory and the repo holding its `.jevitate/`) or the per-user `~/.jevitate/`. A
13
+ * `..` or symlink escape is refused, never normalised into somewhere else;
14
+ * - a storage state (cookies/tokens) additionally never inside a repo's `.jevitate/`
15
+ * (`sessionFileInProjectRefusal`, the rule every storage-state writer on the CLI follows) —
16
+ * read or written.
17
+ *
18
+ * A refusal is a typed `invalid_args` MCP error naming the argument; nothing is opened.
19
+ */
20
+ export class McpPathError extends Error {
21
+ error = "invalid_args";
22
+ constructor(message) {
23
+ super(message);
24
+ this.name = "McpPathError";
25
+ }
26
+ }
27
+ /** The roots MCP path arguments may resolve inside (default: the project and `~/.jevitate`). */
28
+ export function defaultMcpPathRoots() {
29
+ const project = findProjectDir();
30
+ const roots = [process.cwd(), ...(project === null ? [] : [dirname(project)]), homeDataRoot()];
31
+ return [...new Set(roots.map((r) => resolve(r)))];
32
+ }
33
+ /** `p` with its longest existing prefix resolved through symlinks (the rest appended as given). */
34
+ function realish(p) {
35
+ let head = p;
36
+ const tail = [];
37
+ for (;;) {
38
+ if (existsSync(head)) {
39
+ try {
40
+ return join(realpathSync(head), ...tail);
41
+ }
42
+ catch {
43
+ return p;
44
+ }
45
+ }
46
+ const up = dirname(head);
47
+ if (up === head)
48
+ return p;
49
+ tail.unshift(basename(head));
50
+ head = up;
51
+ }
52
+ }
53
+ function inside(root, p) {
54
+ const rel = relative(root, p);
55
+ return rel === "" || (rel !== ".." && !rel.startsWith(`..${sep}`) && !isAbsolute(rel));
56
+ }
57
+ /** The confined absolute path for the MCP argument `what`, or throws `McpPathError`. */
58
+ export function confineMcpPath(value, what, roots, opts = {}) {
59
+ if (typeof value !== "string" || value.trim() === "")
60
+ throw new McpPathError(`'${what}' must be a non-empty path string`);
61
+ if (value.includes("\0"))
62
+ throw new McpPathError(`'${what}' must not contain a NUL byte`);
63
+ const abs = resolve(value);
64
+ const real = realish(abs);
65
+ const realRoots = roots.map((r) => realish(resolve(r)));
66
+ if (!realRoots.some((r) => inside(r, real)) || !roots.some((r) => inside(resolve(r), abs))) {
67
+ throw new McpPathError(`'${what}' ${JSON.stringify(value)} resolves outside the paths an MCP tool may use (${roots.join(", ")}): put the file in the project or under ~/.jevitate/`);
68
+ }
69
+ if (opts.session === true) {
70
+ const refusal = sessionFileInProjectRefusal(abs, `'${what}'`);
71
+ if (refusal !== undefined)
72
+ throw new McpPathError(refusal);
73
+ }
74
+ return abs;
75
+ }
76
+ //# sourceMappingURL=mcp-paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-paths.js","sourceRoot":"","sources":["../src/mcp-paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAE7F;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,OAAO,YAAa,SAAQ,KAAK;IAC5B,KAAK,GAAG,cAAuB,CAAC;IACzC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED,gGAAgG;AAChG,MAAM,UAAU,mBAAmB;IACjC,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;IAC/F,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,mGAAmG;AACnG,SAAS,OAAO,CAAC,CAAS;IACxB,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,SAAS,CAAC;QACR,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;YAC3C,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,CAAC;YACX,CAAC;QACH,CAAC;QACD,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,EAAE,KAAK,IAAI;YAAE,OAAO,CAAC,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7B,IAAI,GAAG,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CAAC,IAAY,EAAE,CAAS;IACrC,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC9B,OAAO,GAAG,KAAK,EAAE,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AACzF,CAAC;AAOD,wFAAwF;AACxF,MAAM,UAAU,cAAc,CAAC,KAAc,EAAE,IAAY,EAAE,KAAwB,EAAE,OAAuB,EAAE;IAC9G,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,MAAM,IAAI,YAAY,CAAC,IAAI,IAAI,mCAAmC,CAAC,CAAC;IAC1H,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,YAAY,CAAC,IAAI,IAAI,+BAA+B,CAAC,CAAC;IAC1F,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;QAC3F,MAAM,IAAI,YAAY,CACpB,IAAI,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,oDAAoD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,sDAAsD,CAC7J,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,2BAA2B,CAAC,GAAG,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC;QAC9D,IAAI,OAAO,KAAK,SAAS;YAAE,MAAM,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,40 @@
1
+ import type { BrowserPort } from "@jevitate/playwright";
2
+ import type { ObserverSessions } from "@jevitate/explore";
3
+ import { type InvariantSpec } from "@jevitate/recording";
4
+ import { type Persona } from "./multi-run.js";
5
+ /**
6
+ * Multi-actor missions (#147). `--actor <name>=<storageState>` (repeatable): the FIRST actor is the
7
+ * primary — the only one the model drives; every other one is an OBSERVER that only runs the
8
+ * spec's declared cross-actor checks (read-only probes and passive opens) from its own session.
9
+ *
10
+ * Guardrails:
11
+ * - each actor gets its OWN fresh browser context, seeded only from its own storageState file —
12
+ * cookies and storage are never copied between actors;
13
+ * - a storageState file's CONTENTS are never read here, never logged and never written into an
14
+ * artifact: only its path is kept (as `--storage-state`'s own path always was);
15
+ * - observers are opened lazily, on the first check that needs one, and never handed to a model.
16
+ */
17
+ export interface MissionActors {
18
+ /** The primary actor (its storageState seeds the mission's own session). */
19
+ readonly primary: Persona;
20
+ /** Every other actor, in flag order. */
21
+ readonly observers: readonly Persona[];
22
+ }
23
+ /** Parses `--actor` flags (none → null). Names must be distinct. Throws `MultiRunArgsError`. */
24
+ export declare function resolveMissionActors(specs: readonly string[], cwd?: string): MissionActors | null;
25
+ /**
26
+ * Refuses a spec whose cross-actor checks name the PRIMARY (an observer must be someone else) —
27
+ * unregistered actors are refused by the spec validation itself (`observers`).
28
+ */
29
+ export declare function checkActorsAgainstSpec(actors: MissionActors | null, spec: InvariantSpec | undefined): void;
30
+ /**
31
+ * The observers' sessions: one FRESH context per observer (from `portFactory`, with the mission's
32
+ * launch options but ONLY that observer's storageState), opened on first use, closed by `close()`.
33
+ */
34
+ export declare function observerSessions(portFactory: () => BrowserPort, launch: Omit<Parameters<BrowserPort["open"]>[0], "storageState">, observers: readonly Persona[]): ObserverSessions;
35
+ /** What a result persists about its actors: names and storageState PATHS — never contents. */
36
+ export declare function persistedActors(actors: MissionActors): Array<{
37
+ readonly name: string;
38
+ readonly storageStatePath: string;
39
+ readonly role: "primary" | "observer";
40
+ }>;
@@ -0,0 +1,72 @@
1
+ import { invariantActors } from "@jevitate/recording";
2
+ import { MultiRunArgsError, parseActorSpec } from "./multi-run.js";
3
+ import { localStorageValue } from "./fixture-auth.js";
4
+ /** Parses `--actor` flags (none → null). Names must be distinct. Throws `MultiRunArgsError`. */
5
+ export function resolveMissionActors(specs, cwd = process.cwd()) {
6
+ if (specs.length === 0)
7
+ return null;
8
+ const actors = specs.map((s) => parseActorSpec(s, cwd));
9
+ const seen = new Set();
10
+ for (const a of actors) {
11
+ if (seen.has(a.name))
12
+ throw new MultiRunArgsError(`actor ${a.name} is declared twice`);
13
+ seen.add(a.name);
14
+ }
15
+ const [primary, ...observers] = actors;
16
+ return { primary, observers };
17
+ }
18
+ /**
19
+ * Refuses a spec whose cross-actor checks name the PRIMARY (an observer must be someone else) —
20
+ * unregistered actors are refused by the spec validation itself (`observers`).
21
+ */
22
+ export function checkActorsAgainstSpec(actors, spec) {
23
+ if (spec === undefined || actors === null)
24
+ return;
25
+ for (const name of invariantActors(spec)) {
26
+ if (name === actors.primary.name) {
27
+ throw new MultiRunArgsError(`invariants: actor ${name} is the primary; a cross-actor check runs as another --actor`);
28
+ }
29
+ }
30
+ }
31
+ /**
32
+ * The observers' sessions: one FRESH context per observer (from `portFactory`, with the mission's
33
+ * launch options but ONLY that observer's storageState), opened on first use, closed by `close()`.
34
+ */
35
+ export function observerSessions(portFactory, launch, observers) {
36
+ const open = new Map();
37
+ return {
38
+ page: async (name) => {
39
+ const actor = observers.find((o) => o.name === name);
40
+ if (actor === undefined)
41
+ throw new Error(`no observer actor named ${name}`);
42
+ let session = open.get(name);
43
+ if (session === undefined) {
44
+ const { storageState: _primaryState, ...base } = launch;
45
+ session = portFactory().open({ ...base, storageState: actor.storageState });
46
+ open.set(name, session);
47
+ }
48
+ return (await session).page;
49
+ },
50
+ // #173: read straight from the observer's OWN storageState file — no browser context, no
51
+ // navigation, so a probe-only observer (never opened a page) still authenticates.
52
+ localStorage: async (name, key, origin) => {
53
+ const actor = observers.find((o) => o.name === name);
54
+ if (actor === undefined)
55
+ throw new Error(`no observer actor named ${name}`);
56
+ return localStorageValue(actor.storageState, origin, key);
57
+ },
58
+ close: async () => {
59
+ const sessions = [...open.values()];
60
+ open.clear();
61
+ await Promise.all(sessions.map(async (s) => (await s.catch(() => null))?.close().catch(() => undefined)));
62
+ },
63
+ };
64
+ }
65
+ /** What a result persists about its actors: names and storageState PATHS — never contents. */
66
+ export function persistedActors(actors) {
67
+ return [
68
+ { name: actors.primary.name, storageStatePath: actors.primary.storageState, role: "primary" },
69
+ ...actors.observers.map((o) => ({ name: o.name, storageStatePath: o.storageState, role: "observer" })),
70
+ ];
71
+ }
72
+ //# sourceMappingURL=mission-actors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mission-actors.js","sourceRoot":"","sources":["../src/mission-actors.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { Command } from "commander";
1
2
  import { MissionTargetRegistry, type MissionTarget, type MissionTargetStore } from "@jevitate/missions";
2
3
  /**
3
4
  * Distinct from `@jevitate/missions`' generic promote error so the CLI can map
@@ -28,9 +29,37 @@ export interface AddMissionTargetInput {
28
29
  id: string;
29
30
  name: string;
30
31
  authorizedOrigin: string;
32
+ /** Extra origins the app talks to (its API on another origin) — the MCP analogue of a 2nd `--allow`. */
33
+ apiOrigins?: string[];
31
34
  baseUrl: string;
32
35
  description?: string;
36
+ /** #175: operator-declared session for queued missions (see `MissionTargetAuthInput`). */
37
+ auth?: MissionTargetAuthInput;
33
38
  }
39
+ /**
40
+ * #175: the auth an operator sets on a mission target — CLI only (`mission target add|update`),
41
+ * never an MCP argument. `storageState` must exist; paths are made absolute here.
42
+ */
43
+ export interface MissionTargetAuthInput {
44
+ storageState?: string;
45
+ /** `true` = write the rotated session back to `storageState`; a string = another path. */
46
+ saveStorageState?: true | string;
47
+ secretFields?: string[];
48
+ /** `update` only: drop every auth field first. */
49
+ clear?: boolean;
50
+ }
51
+ export declare class MissionTargetAuthError extends Error {
52
+ }
53
+ /** The CLI flags behind `MissionTargetAuthInput` (`mission target add|update`). */
54
+ export interface MissionTargetAuthFlags {
55
+ storageState?: string;
56
+ saveStorageState?: true | string;
57
+ secretField?: string[];
58
+ }
59
+ /** Adds `--storage-state`, `--save-storage-state [file]` and `--secret-field` (repeatable). */
60
+ export declare function withMissionTargetAuthFlags(cmd: Command): Command;
61
+ /** The auth input the flags ask for, or `undefined` when none was given. */
62
+ export declare function missionTargetAuth(f: MissionTargetAuthFlags): MissionTargetAuthInput | undefined;
34
63
  /**
35
64
  * Registers a mission target. SECURITY: registering is NOT the same as
36
65
  * promoting — a freshly-added target is `promoted: false`, so
@@ -40,6 +69,12 @@ export interface AddMissionTargetInput {
40
69
  * — e.g. a path-unsafe id — is never persisted).
41
70
  */
42
71
  export declare function addMissionTarget(ctx: MissionTargetContext, input: AddMissionTargetInput, nowIso?: () => string): Promise<MissionTarget>;
72
+ /**
73
+ * #175: sets (or clears) a registered target's operator-declared auth. Keeps its promotion state —
74
+ * auth is not part of what promotion approved (origins are, and they cannot change here). An
75
+ * unknown id is refused with `UnknownMissionTargetError`.
76
+ */
77
+ export declare function updateMissionTargetAuth(ctx: MissionTargetContext, id: string, auth: MissionTargetAuthInput): Promise<MissionTarget>;
43
78
  /**
44
79
  * Lists ALL mission targets (promoted and unpromoted) straight from the store
45
80
  * — a local/dev-facing listing of everything on disk. This mirrors
@@ -1,3 +1,5 @@
1
+ import { existsSync } from "node:fs";
2
+ import { resolve as resolvePath } from "node:path";
1
3
  import { FsMissionTargetStore, MissionTargetRegistry, } from "@jevitate/missions";
2
4
  /**
3
5
  * Distinct from `@jevitate/missions`' generic promote error so the CLI can map
@@ -17,6 +19,46 @@ export function missionTargetContext(dir) {
17
19
  const store = new FsMissionTargetStore(dir);
18
20
  return { store, registry: new MissionTargetRegistry(store) };
19
21
  }
22
+ export class MissionTargetAuthError extends Error {
23
+ }
24
+ /** Adds `--storage-state`, `--save-storage-state [file]` and `--secret-field` (repeatable). */
25
+ export function withMissionTargetAuthFlags(cmd) {
26
+ return cmd
27
+ .option("--storage-state <file>", "#175: Playwright storageState JSON queued missions on this target start from (must exist; wins over targets.json)")
28
+ .option("--save-storage-state [file]", "#175: write the rotated session back after each queued mission — to --storage-state (no value) or to <file>; for rotating refresh tokens")
29
+ .option("--secret-field <spec>", "#175: '<label|testId|type|id|name>=<value>=env:<VAR>' typed by queued goal missions (repeatable); the value is read from the environment at run time", (v, prev) => [...(prev ?? []), v]);
30
+ }
31
+ /** The auth input the flags ask for, or `undefined` when none was given. */
32
+ export function missionTargetAuth(f) {
33
+ if (f.storageState === undefined && f.saveStorageState === undefined && (f.secretField ?? []).length === 0)
34
+ return undefined;
35
+ return {
36
+ ...(f.storageState === undefined ? {} : { storageState: f.storageState }),
37
+ ...(f.saveStorageState === undefined ? {} : { saveStorageState: f.saveStorageState }),
38
+ ...((f.secretField ?? []).length === 0 ? {} : { secretFields: f.secretField }),
39
+ };
40
+ }
41
+ function applyAuth(target, auth) {
42
+ if (auth === undefined)
43
+ return target;
44
+ const base = { ...target };
45
+ if (auth.clear === true) {
46
+ delete base.storageState;
47
+ delete base.saveStorageState;
48
+ delete base.secretFields;
49
+ }
50
+ if (auth.storageState !== undefined) {
51
+ const abs = resolvePath(auth.storageState);
52
+ if (!existsSync(abs))
53
+ throw new MissionTargetAuthError(`storage state not found: ${abs}`);
54
+ base.storageState = abs;
55
+ }
56
+ if (auth.saveStorageState !== undefined)
57
+ base.saveStorageState = auth.saveStorageState === true ? true : resolvePath(auth.saveStorageState);
58
+ if (auth.secretFields !== undefined && auth.secretFields.length > 0)
59
+ base.secretFields = [...auth.secretFields];
60
+ return base;
61
+ }
20
62
  /**
21
63
  * Registers a mission target. SECURITY: registering is NOT the same as
22
64
  * promoting — a freshly-added target is `promoted: false`, so
@@ -26,18 +68,32 @@ export function missionTargetContext(dir) {
26
68
  * — e.g. a path-unsafe id — is never persisted).
27
69
  */
28
70
  export async function addMissionTarget(ctx, input, nowIso = () => new Date().toISOString()) {
29
- const target = {
71
+ const target = applyAuth({
30
72
  id: input.id,
31
73
  name: input.name,
32
74
  authorizedOrigin: input.authorizedOrigin,
75
+ ...(input.apiOrigins !== undefined && input.apiOrigins.length > 0 ? { apiOrigins: [...input.apiOrigins] } : {}),
33
76
  baseUrl: input.baseUrl,
34
77
  ...(input.description !== undefined ? { description: input.description } : {}),
35
78
  promoted: false,
36
79
  createdAtIso: nowIso(),
37
- };
80
+ }, input.auth);
38
81
  await ctx.registry.put(target);
39
82
  return target;
40
83
  }
84
+ /**
85
+ * #175: sets (or clears) a registered target's operator-declared auth. Keeps its promotion state —
86
+ * auth is not part of what promotion approved (origins are, and they cannot change here). An
87
+ * unknown id is refused with `UnknownMissionTargetError`.
88
+ */
89
+ export async function updateMissionTargetAuth(ctx, id, auth) {
90
+ const existing = await ctx.store.get(id);
91
+ if (!existing)
92
+ throw new UnknownMissionTargetError(`unknown mission target '${id}'`);
93
+ const next = applyAuth(existing, auth);
94
+ await ctx.registry.put(next);
95
+ return next;
96
+ }
41
97
  /**
42
98
  * Lists ALL mission targets (promoted and unpromoted) straight from the store
43
99
  * — a local/dev-facing listing of everything on disk. This mirrors
@@ -1 +1 @@
1
- {"version":3,"file":"mission-api.js","sourceRoot":"","sources":["../src/mission-api.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,qBAAqB,GAGtB,MAAM,oBAAoB,CAAC;AAE5B;;;;;GAKG;AACH,MAAM,OAAO,yBAA0B,SAAQ,KAAK;CAAG;AAavD;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC9C,MAAM,KAAK,GAAG,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAC5C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;AAC/D,CAAC;AAUD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAyB,EACzB,KAA4B,EAC5B,SAAuB,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;IAErD,MAAM,MAAM,GAAkB;QAC5B,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,MAAM,EAAE;KACvB,CAAC;IACF,MAAM,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAyB;IAC1D,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAC1B,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAyB,EACzB,EAAU;IAEV,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACzC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,yBAAyB,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/B,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACzC,OAAO,QAAQ,IAAI,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"mission-api.js","sourceRoot":"","sources":["../src/mission-api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { Command } from "commander";
2
+ import { type CliDeps } from "./cli-shared.js";
3
+ /** Registers `jevitate mission`: `target add|update|list|promote`, `run` (drains the mission queue), `queue` and `result` (#254). */
4
+ export declare function registerMissionCommands(program: Command, deps: CliDeps): void;