@jevitate/cli 0.4.0 → 0.6.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 (72) hide show
  1. package/dist/author-journey-cli.d.ts +2 -0
  2. package/dist/author-journey-cli.js +106 -11
  3. package/dist/author-journey-cli.js.map +1 -1
  4. package/dist/bin.js +2988 -776
  5. package/dist/build-info.generated.js +2 -2
  6. package/dist/check-execute.js +1 -0
  7. package/dist/check-execute.js.map +1 -1
  8. package/dist/check-plan.js +2 -1
  9. package/dist/check-plan.js.map +1 -1
  10. package/dist/check-suite.d.ts +6 -6
  11. package/dist/check-suite.js +18 -12
  12. package/dist/check-suite.js.map +1 -1
  13. package/dist/cli-shared.d.ts +5 -2
  14. package/dist/cli-shared.js +10 -3
  15. package/dist/cli-shared.js.map +1 -1
  16. package/dist/conversation-options.d.ts +3 -0
  17. package/dist/conversation-options.js +1 -0
  18. package/dist/conversation-options.js.map +1 -1
  19. package/dist/demo-aspect-api.js +2 -0
  20. package/dist/demo-aspect-api.js.map +1 -1
  21. package/dist/demo-capture.d.ts +16 -4
  22. package/dist/demo-capture.js +82 -15
  23. package/dist/demo-capture.js.map +1 -1
  24. package/dist/exit-codes.d.ts +1 -1
  25. package/dist/exit-codes.js +1 -1
  26. package/dist/explore-author.d.ts +28 -6
  27. package/dist/explore-author.js +66 -32
  28. package/dist/explore-author.js.map +1 -1
  29. package/dist/explore-cli.js +68 -79
  30. package/dist/explore-cli.js.map +1 -1
  31. package/dist/explore-goal.d.ts +5 -1
  32. package/dist/explore-goal.js +19 -1
  33. package/dist/explore-goal.js.map +1 -1
  34. package/dist/explore-specs.js +12 -2
  35. package/dist/explore-specs.js.map +1 -1
  36. package/dist/goal-run-flags.d.ts +120 -0
  37. package/dist/goal-run-flags.js +220 -0
  38. package/dist/goal-run-flags.js.map +1 -0
  39. package/dist/journey-api.js +4 -1
  40. package/dist/journey-api.js.map +1 -1
  41. package/dist/journey-network-checks.d.ts +15 -0
  42. package/dist/journey-network-checks.js +36 -0
  43. package/dist/journey-network-checks.js.map +1 -0
  44. package/dist/kill-signal.d.ts +30 -3
  45. package/dist/kill-signal.js +51 -6
  46. package/dist/kill-signal.js.map +1 -1
  47. package/dist/mcp-api.js +8 -4
  48. package/dist/mcp-api.js.map +1 -1
  49. package/dist/mcp-cli-tools.js +43 -5
  50. package/dist/mcp-cli-tools.js.map +1 -1
  51. package/dist/mission-queue-cli.js +3 -1
  52. package/dist/mission-queue-cli.js.map +1 -1
  53. package/dist/secret-command.d.ts +7 -0
  54. package/dist/secret-command.js +52 -0
  55. package/dist/secret-command.js.map +1 -0
  56. package/dist/signal-triage.js +5 -1
  57. package/dist/signal-triage.js.map +1 -1
  58. package/dist/source-run-api.js +3 -1
  59. package/dist/source-run-api.js.map +1 -1
  60. package/dist/suite-explore-options.d.ts +9 -0
  61. package/dist/suite-explore-options.js +5 -0
  62. package/dist/suite-explore-options.js.map +1 -1
  63. package/dist/target-config.d.ts +3 -1
  64. package/dist/target-config.js +6 -0
  65. package/dist/target-config.js.map +1 -1
  66. package/dist/usability-capture.js +21 -3
  67. package/dist/usability-capture.js.map +1 -1
  68. package/dist/ux-usability.d.ts +5 -1
  69. package/dist/ux-usability.js +19 -2
  70. package/dist/ux-usability.js.map +1 -1
  71. package/package.json +7 -7
  72. package/skills/jevitate-explore/SKILL.md +7 -0
@@ -1,4 +1,6 @@
1
1
  import { Command } from "commander";
2
2
  import { type CliDeps } from "./cli-shared.js";
3
+ /** #369: the human summary of `explore-author-journey` (the JSON is the same data with `--json`). */
4
+ export declare function formatAuthorJourneyHuman(data: unknown): string;
3
5
  /** Registers `jevitate explore-author-journey` (Jev authors an unpromoted, parameterized Journey). */
4
6
  export declare function registerAuthorJourneyCommands(program: Command, deps: CliDeps): void;
@@ -1,11 +1,62 @@
1
1
  import { existsSync } from "node:fs";
2
2
  import { MissingCredentialError } from "@jevitate/ai-core";
3
- import { UnauthorizedExploreTargetError } from "@jevitate/explore";
3
+ import { FixtureNotFoundError, UnauthorizedExploreTargetError } from "@jevitate/explore";
4
4
  import { ok, fail } from "./envelope.js";
5
5
  import { positiveIntArg } from "./cli-args.js";
6
- import { runAuthorJourney, parseAssertionSpec, resolveExploreAllowlist } from "./explore-api.js";
6
+ import { runAuthorJourney, parseSuccessSpec, resolveExploreAllowlist } from "./explore-api.js";
7
7
  import { allowWithExtensions } from "./browser-run-options.js";
8
- import { resolveJourneysDir, withBrowserLaunchFlags, browserLaunchFromFlags, emitJson, writeRawResult, GatewaySelectionError, buildExploreGateways, } from "./cli-shared.js";
8
+ import { resolveJourneysDir, withBrowserLaunchFlags, browserLaunchFromFlags, emitJson, writeHumanResult, GatewaySelectionError, buildExploreGateways, withEmulationFlags, withScreenshotsFlag, } from "./cli-shared.js";
9
+ import { GOAL_RUN_OPTIONS, GoalRunFlagError, resolveGoalRunFlags } from "./goal-run-flags.js";
10
+ /**
11
+ * #369: the goal-run flags `explore-author-journey` shares with `explore` — every take is that goal
12
+ * run, so it can reproduce whatever setup the goal run needed (in `explore`'s own order).
13
+ */
14
+ const AUTHOR_GOAL_RUN_FLAGS = [
15
+ "successWhen", "allowVacuousChecks", "actionDeltas", "secret", "secretField", "totp", "typeFixture", "fixture",
16
+ "saveStorageState", "replyWaitMs", "replyQuietMs", "replyCeilingMs", "replyMaxChars", "jobWaitMs", "deny", "paid",
17
+ "allowDestructive", "dialogs", "readRpc", "hangReplays", "settleIgnore", "longPollMs", "apiPrefix", "ignoreNoProgress",
18
+ "allowSecretCmd", "secretCmdAttempts",
19
+ ];
20
+ /** `reloadThen:<check>` → the inner `<check>` (what the Journey CAN assert). */
21
+ const innerOfReloadThen = (spec) => spec.replace(/^\s*reloadThen:/, "");
22
+ /** #369: one take's diagnostics as human lines (the paths a person opens next). */
23
+ function takeLines(label, d) {
24
+ const lines = [` ${label}: ${d.outcome}${d.stop === undefined ? "" : ` (stop: ${d.stop})`}${d.actions === undefined ? "" : ` · ${d.actions} action(s), ${d.decisions ?? 0} decision(s)`}`];
25
+ if (d.reason !== undefined)
26
+ lines.push(` reason: ${d.reason}`);
27
+ for (const c of d.checks ?? [])
28
+ lines.push(` check ${c.passed ? "held" : "FAILED"}: ${c.check}${c.passed ? "" : ` — ${c.detail}`}`);
29
+ if (d.resultPath !== undefined)
30
+ lines.push(` result: ${d.resultPath}`);
31
+ if (d.transcriptPath !== undefined)
32
+ lines.push(` transcript: ${d.transcriptPath}`);
33
+ for (const r of d.recordingPaths ?? [])
34
+ lines.push(` recording: ${r}`);
35
+ if (d.screenshotsDir !== undefined)
36
+ lines.push(` screenshots: ${d.screenshotsDir}`);
37
+ return lines;
38
+ }
39
+ /** #369: the human summary of `explore-author-journey` (the JSON is the same data with `--json`). */
40
+ export function formatAuthorJourneyHuman(data) {
41
+ const r = data;
42
+ const lines = [];
43
+ if (r.outcome === "authored") {
44
+ const m = r.journey.metadata;
45
+ lines.push(`AUTHORED: journey ${m.id} (unpromoted; \`jevitate journey promote ${m.id}\` makes it runnable)`);
46
+ if (m.params.length > 0)
47
+ lines.push(` params: ${m.params.join(", ")}`);
48
+ }
49
+ else {
50
+ lines.push(`NOT REACHED: ${r.reason}`);
51
+ }
52
+ if (r.takes !== undefined)
53
+ lines.push(` takes: ${r.takes.succeeded}/${r.takes.run} reached the goal (${r.takes.requested} requested)`);
54
+ if (r.discovery !== undefined)
55
+ lines.push(...takeLines("discovery", r.discovery));
56
+ if (r.outcome === "authored")
57
+ (r.corroboratingTakes ?? []).forEach((d, i) => lines.push(...takeLines(`take ${i + 2}`, d)));
58
+ return `${lines.join("\n")}\n`;
59
+ }
9
60
  /** Registers `jevitate explore-author-journey` (Jev authors an unpromoted, parameterized Journey). */
10
61
  export function registerAuthorJourneyCommands(program, deps) {
11
62
  // Additive: `explore author-journey` — Jev-driving authors a promotable
@@ -13,12 +64,13 @@ export function registerAuthorJourneyCommands(program, deps) {
13
64
  // through RxD's diff/postdoc pipeline, and writes an UNPROMOTED,
14
65
  // parameterized Journey to the journeys store. The record-by-demonstration
15
66
  // authoring path is untouched.
16
- withBrowserLaunchFlags(program
67
+ const cmd = withBrowserLaunchFlags(program
17
68
  .command("explore-author-journey")
18
69
  .description("Jev-driving authors a promotable Journey (authoring plane); never auto-promoted"))
19
70
  .option("--url <url>", "target URL (must be an authorized origin)")
20
71
  .option("--goal <text>", "natural-language goal")
21
- .option("--success <spec>", "independent success assertion, e.g. urlIncludes:/confirmed")
72
+ .option("--success <spec>", "independent success check (repeatable; all must hold), any explore --success kind but reloadThen, e.g. urlIncludes:/confirmed or " +
73
+ "'requestMade:POST /api/save': a page check becomes the Journey's last assert step, a requestMade/responseStatus check is re-checked over every replay's requests", (v, prev) => [...prev, v], [])
22
74
  .option("--id <id>", "journey id (used for the <id>.json filename in the store)")
23
75
  .option("--name <name>", "human-readable journey name")
24
76
  .option("--takes <n>", "corroborating takes incl. discovery (default 1)", positiveIntArg, 1)
@@ -27,27 +79,64 @@ export function registerAuthorJourneyCommands(program, deps) {
27
79
  .option("--allow <origin>", "authorized origin (repeatable); REPLACES the default allowlist when given (the URL's own origin is used only when --allow is omitted entirely) -- include the URL's own origin explicitly if you still need it", (v, prev) => [...prev, v], [])
28
80
  .option("--max-actions <n>", "hard cap on executed actions", positiveIntArg)
29
81
  .option("--max-decisions <n>", "hard cap on model decisions", positiveIntArg)
82
+ .option("--out <dir>", "directory each take's result, transcript and Recording are written to (default: .jevitate/logs/<date>)")
30
83
  .option("--real", "use live Jev + OpenRouter gateways (requires keys)", false)
31
84
  .option("--fake-ai", "use deterministic fake gateways (pipeline smoke only)", false)
32
- .option("--json", "emit a JSON envelope")
85
+ .option("--json", "emit a JSON envelope");
86
+ // #369: every take is `explore`'s goal run, so author takes its run-shaping flags too.
87
+ for (const name of AUTHOR_GOAL_RUN_FLAGS)
88
+ cmd.addOption(GOAL_RUN_OPTIONS[name]());
89
+ withScreenshotsFlag(withEmulationFlags(cmd))
90
+ .addHelpText("after", [
91
+ "",
92
+ "Each take is a full goal run (the same runner and run-shaping flags as `jevitate explore --strategy goal`),",
93
+ "writing its own result, transcript and Recording (under --out). A take that does not reach the goal",
94
+ "is reported with its stop reason, its checks' verdicts and those paths. A field code types itself",
95
+ "(--secret-field/--totp) becomes a secret Journey parameter (secret1, …), passed with --param at replay.",
96
+ "A reloadThen: check is refused before any browser opens: author with its inner check instead.",
97
+ ].join("\n"))
33
98
  .action(async function () {
34
99
  const o = this.opts();
35
100
  if (o.storageState !== undefined && !existsSync(o.storageState)) {
36
101
  emitJson(program, fail("E_EXPLORE_ARGS", `storage state not found: ${o.storageState}`));
37
102
  return;
38
103
  }
39
- if (!o.url || !o.goal || !o.success || !o.id || !o.name) {
104
+ if (!o.url || !o.goal || o.success.length === 0 || !o.id || !o.name) {
40
105
  emitJson(program, fail("E_AUTHOR_ARGS", "--url, --goal, --success, --id and --name are all required"));
41
106
  return;
42
107
  }
43
- let successAssertion;
108
+ // #322: every kind `explore --success` takes — page and network checks — but reloadThen.
109
+ const successChecks = [];
44
110
  try {
45
- successAssertion = parseAssertionSpec(o.success);
111
+ for (const spec of o.success) {
112
+ const check = parseSuccessSpec(spec);
113
+ if (check.kind === "reloadThen") {
114
+ // #369: refused here, before any gateway or browser — a Journey has no reload step to re-check after.
115
+ throw new Error(`--success ${JSON.stringify(spec)}: a reloadThen check can't be authored into a Journey (a Journey has no reload step); nothing was run. ` +
116
+ `Author with its inner check (--success ${JSON.stringify(innerOfReloadThen(spec))}) and prove persistence with \`jevitate explore --success ${JSON.stringify(spec)}\`, ` +
117
+ "or use a requestMade/responseStatus check");
118
+ }
119
+ successChecks.push(check);
120
+ }
46
121
  }
47
122
  catch (err) {
48
123
  emitJson(program, fail("E_EXPLORE_ASSERTION", String(err instanceof Error ? err.message : err)));
49
124
  return;
50
125
  }
126
+ // #369: the goal run's flags, validated (and secrets resolved) before any gateway or browser.
127
+ let goalRun;
128
+ try {
129
+ goalRun = resolveGoalRunFlags(o, o.url, {
130
+ targetsConfigPath: deps.explore?.targetsConfigPath,
131
+ warn: (text) => program.configureOutput().writeErr?.(text),
132
+ });
133
+ }
134
+ catch (err) {
135
+ if (!(err instanceof GoalRunFlagError))
136
+ throw err;
137
+ emitJson(program, fail(err.code, err.message));
138
+ return;
139
+ }
51
140
  // #256: loaded extensions' chrome-extension://<id> origins are allowed too (only those ids).
52
141
  const allowlist = allowWithExtensions(o.url, resolveExploreAllowlist(o.url, o.allow), browserLaunchFromFlags(o));
53
142
  const bounds = {};
@@ -74,7 +163,7 @@ export function registerAuthorJourneyCommands(program, deps) {
74
163
  const result = await runAuthorJourney({
75
164
  url: o.url,
76
165
  goal: o.goal,
77
- successAssertion,
166
+ successChecks,
78
167
  allowlist,
79
168
  journeysDir: resolveJourneysDir(deps, o.journeysDir),
80
169
  journeyId: o.id,
@@ -86,6 +175,9 @@ export function registerAuthorJourneyCommands(program, deps) {
86
175
  browserPortFactory: deps.explore?.browserPortFactory,
87
176
  browser: browserLaunchFromFlags(o),
88
177
  ...(o.storageState !== undefined ? { storageState: o.storageState } : {}),
178
+ goalRun,
179
+ ...(o.out === undefined ? {} : { outDir: o.out }),
180
+ usage: authorUsage,
89
181
  }).then((r) => ({ ...r, usage: authorUsage.snapshot() }));
90
182
  const envelope = ok(result);
91
183
  if (o.json) {
@@ -94,7 +186,7 @@ export function registerAuthorJourneyCommands(program, deps) {
94
186
  process.exitCode = 1;
95
187
  }
96
188
  else {
97
- writeRawResult(program, result);
189
+ writeHumanResult(program, result, formatAuthorJourneyHuman);
98
190
  process.exitCode = result.outcome === "authored" ? 0 : 1;
99
191
  }
100
192
  }
@@ -102,6 +194,9 @@ export function registerAuthorJourneyCommands(program, deps) {
102
194
  if (err instanceof UnauthorizedExploreTargetError) {
103
195
  emitJson(program, fail("E_UNAUTHORIZED_EXPLORE_TARGET", err.message));
104
196
  }
197
+ else if (err instanceof FixtureNotFoundError) {
198
+ emitJson(program, fail("E_EXPLORE_FIXTURE", err.message));
199
+ }
105
200
  else {
106
201
  emitJson(program, fail("E_AUTHOR_JOURNEY", String(err instanceof Error ? err.message : err)));
107
202
  }
@@ -1 +1 @@
1
- {"version":3,"file":"author-journey-cli.js","sourceRoot":"","sources":["../src/author-journey-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"author-journey-cli.js","sourceRoot":"","sources":["../src/author-journey-cli.ts"],"names":[],"mappings":"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"}