@jevitate/cli 0.2.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 (210) hide show
  1. package/dist/ai-cli.d.ts +31 -11
  2. package/dist/ai-cli.js +100 -67
  3. package/dist/ai-cli.js.map +1 -1
  4. package/dist/author-journey-cli.js +3 -1
  5. package/dist/author-journey-cli.js.map +1 -1
  6. package/dist/bin.js +48218 -39969
  7. package/dist/browser-run-options.d.ts +32 -1
  8. package/dist/browser-run-options.js +69 -0
  9. package/dist/browser-run-options.js.map +1 -1
  10. package/dist/build-info.generated.js +2 -2
  11. package/dist/campaign-api.d.ts +151 -0
  12. package/dist/campaign-api.js +446 -0
  13. package/dist/campaign-api.js.map +1 -0
  14. package/dist/campaign-cli.d.ts +6 -0
  15. package/dist/campaign-cli.js +66 -0
  16. package/dist/campaign-cli.js.map +1 -0
  17. package/dist/check-api.js +3 -2
  18. package/dist/check-api.js.map +1 -1
  19. package/dist/check-budget.js +2 -1
  20. package/dist/check-budget.js.map +1 -1
  21. package/dist/check-execute.d.ts +4 -0
  22. package/dist/check-execute.js +41 -6
  23. package/dist/check-execute.js.map +1 -1
  24. package/dist/check-plan.d.ts +5 -0
  25. package/dist/check-plan.js +72 -4
  26. package/dist/check-plan.js.map +1 -1
  27. package/dist/check-suite.d.ts +14 -1
  28. package/dist/check-suite.js +26 -1
  29. package/dist/check-suite.js.map +1 -1
  30. package/dist/cli-output.d.ts +4 -0
  31. package/dist/cli-output.js +52 -5
  32. package/dist/cli-output.js.map +1 -1
  33. package/dist/cli-shared.d.ts +13 -3
  34. package/dist/cli-shared.js +52 -7
  35. package/dist/cli-shared.js.map +1 -1
  36. package/dist/defect-evidence.js +6 -3
  37. package/dist/defect-evidence.js.map +1 -1
  38. package/dist/demo-aspect-api.js +2 -1
  39. package/dist/demo-aspect-api.js.map +1 -1
  40. package/dist/demo-aspect-cli.js +3 -1
  41. package/dist/demo-aspect-cli.js.map +1 -1
  42. package/dist/demo-capture.d.ts +37 -3
  43. package/dist/demo-capture.js +119 -20
  44. package/dist/demo-capture.js.map +1 -1
  45. package/dist/explore-adversarial.d.ts +11 -4
  46. package/dist/explore-adversarial.js +21 -12
  47. package/dist/explore-adversarial.js.map +1 -1
  48. package/dist/explore-cli.js +262 -26
  49. package/dist/explore-cli.js.map +1 -1
  50. package/dist/explore-coverage.d.ts +17 -2
  51. package/dist/explore-coverage.js +19 -13
  52. package/dist/explore-coverage.js.map +1 -1
  53. package/dist/explore-feature.d.ts +0 -2
  54. package/dist/explore-feature.js +6 -8
  55. package/dist/explore-feature.js.map +1 -1
  56. package/dist/explore-goal.d.ts +25 -7
  57. package/dist/explore-goal.js +61 -18
  58. package/dist/explore-goal.js.map +1 -1
  59. package/dist/explore-shared.d.ts +27 -2
  60. package/dist/explore-shared.js +21 -1
  61. package/dist/explore-shared.js.map +1 -1
  62. package/dist/fixture-auth.d.ts +13 -2
  63. package/dist/fixture-auth.js +19 -6
  64. package/dist/fixture-auth.js.map +1 -1
  65. package/dist/fixture-cli.d.ts +29 -0
  66. package/dist/fixture-cli.js +121 -7
  67. package/dist/fixture-cli.js.map +1 -1
  68. package/dist/github-issue-filer.js +2 -1
  69. package/dist/github-issue-filer.js.map +1 -1
  70. package/dist/host-health-run.d.ts +2 -1
  71. package/dist/host-health-run.js +8 -2
  72. package/dist/host-health-run.js.map +1 -1
  73. package/dist/init-cli.js +34 -5
  74. package/dist/init-cli.js.map +1 -1
  75. package/dist/init-keys.d.ts +11 -0
  76. package/dist/init-keys.js +5 -2
  77. package/dist/init-keys.js.map +1 -1
  78. package/dist/journey-annotate-api.js +17 -4
  79. package/dist/journey-annotate-api.js.map +1 -1
  80. package/dist/journey-annotate-cli.js +3 -1
  81. package/dist/journey-annotate-cli.js.map +1 -1
  82. package/dist/journey-api.d.ts +26 -1
  83. package/dist/journey-api.js +51 -25
  84. package/dist/journey-api.js.map +1 -1
  85. package/dist/journey-cli.d.ts +1 -1
  86. package/dist/journey-cli.js +44 -3
  87. package/dist/journey-cli.js.map +1 -1
  88. package/dist/journey-demo-api.d.ts +2 -0
  89. package/dist/journey-demo-api.js +23 -10
  90. package/dist/journey-demo-api.js.map +1 -1
  91. package/dist/journey-demo-cli.js +5 -2
  92. package/dist/journey-demo-cli.js.map +1 -1
  93. package/dist/journey-prefix.d.ts +194 -0
  94. package/dist/journey-prefix.js +279 -0
  95. package/dist/journey-prefix.js.map +1 -0
  96. package/dist/key-report.d.ts +49 -0
  97. package/dist/key-report.js +101 -0
  98. package/dist/key-report.js.map +1 -0
  99. package/dist/kill-signal.js +0 -1
  100. package/dist/kill-signal.js.map +1 -1
  101. package/dist/ledger-api.js +3 -1
  102. package/dist/ledger-api.js.map +1 -1
  103. package/dist/log-correlation.d.ts +54 -1
  104. package/dist/log-correlation.js +83 -14
  105. package/dist/log-correlation.js.map +1 -1
  106. package/dist/log-sources.js +6 -5
  107. package/dist/log-sources.js.map +1 -1
  108. package/dist/log-trace.d.ts +80 -0
  109. package/dist/log-trace.js +210 -0
  110. package/dist/log-trace.js.map +1 -0
  111. package/dist/logs-retention.js +2 -1
  112. package/dist/logs-retention.js.map +1 -1
  113. package/dist/masked-input.d.ts +22 -0
  114. package/dist/masked-input.js +99 -0
  115. package/dist/masked-input.js.map +1 -0
  116. package/dist/mcp-api.d.ts +3 -1
  117. package/dist/mcp-api.js +49 -7
  118. package/dist/mcp-api.js.map +1 -1
  119. package/dist/mcp-args.d.ts +12 -0
  120. package/dist/mcp-args.js +33 -0
  121. package/dist/mcp-args.js.map +1 -1
  122. package/dist/mcp-cli-tools.d.ts +5 -1
  123. package/dist/mcp-cli-tools.js +73 -16
  124. package/dist/mcp-cli-tools.js.map +1 -1
  125. package/dist/mission-api.js +2 -1
  126. package/dist/mission-api.js.map +1 -1
  127. package/dist/mission-cli.js +2 -1
  128. package/dist/mission-cli.js.map +1 -1
  129. package/dist/mission-fixtures.d.ts +10 -1
  130. package/dist/mission-fixtures.js +49 -15
  131. package/dist/mission-fixtures.js.map +1 -1
  132. package/dist/mission-queue-runner.js +11 -2
  133. package/dist/mission-queue-runner.js.map +1 -1
  134. package/dist/multi-run-cli.js +7 -1
  135. package/dist/multi-run-cli.js.map +1 -1
  136. package/dist/openrouter-call.js +3 -2
  137. package/dist/openrouter-call.js.map +1 -1
  138. package/dist/program.js +4 -0
  139. package/dist/program.js.map +1 -1
  140. package/dist/project-dir.js +3 -2
  141. package/dist/project-dir.js.map +1 -1
  142. package/dist/record-api.d.ts +3 -1
  143. package/dist/record-api.js +5 -2
  144. package/dist/record-api.js.map +1 -1
  145. package/dist/record-cli.js +14 -2
  146. package/dist/record-cli.js.map +1 -1
  147. package/dist/regression-api.d.ts +6 -0
  148. package/dist/regression-api.js +4 -2
  149. package/dist/regression-api.js.map +1 -1
  150. package/dist/regression-cli.js +56 -4
  151. package/dist/regression-cli.js.map +1 -1
  152. package/dist/report-api.js +2 -1
  153. package/dist/report-api.js.map +1 -1
  154. package/dist/resource-preflight.d.ts +87 -0
  155. package/dist/resource-preflight.js +160 -0
  156. package/dist/resource-preflight.js.map +1 -0
  157. package/dist/result-schema.d.ts +1 -1
  158. package/dist/result-schema.js +1 -1
  159. package/dist/run-key-preflight.d.ts +42 -0
  160. package/dist/run-key-preflight.js +82 -0
  161. package/dist/run-key-preflight.js.map +1 -0
  162. package/dist/run-screenshots.js +11 -5
  163. package/dist/run-screenshots.js.map +1 -1
  164. package/dist/runtime-env.js +3 -2
  165. package/dist/runtime-env.js.map +1 -1
  166. package/dist/server-log-verify.d.ts +2 -0
  167. package/dist/server-log-verify.js +8 -3
  168. package/dist/server-log-verify.js.map +1 -1
  169. package/dist/site-gate-cli.js +2 -1
  170. package/dist/site-gate-cli.js.map +1 -1
  171. package/dist/source-api.js +2 -1
  172. package/dist/source-api.js.map +1 -1
  173. package/dist/suite-explore-options.d.ts +32 -0
  174. package/dist/suite-explore-options.js +22 -0
  175. package/dist/suite-explore-options.js.map +1 -1
  176. package/dist/target-config.d.ts +6 -0
  177. package/dist/target-config.js +9 -0
  178. package/dist/target-config.js.map +1 -1
  179. package/dist/type-fixture-file.d.ts +9 -0
  180. package/dist/type-fixture-file.js +48 -0
  181. package/dist/type-fixture-file.js.map +1 -0
  182. package/dist/ui-api.js +4 -3
  183. package/dist/ui-api.js.map +1 -1
  184. package/dist/usability-capture.js +4 -3
  185. package/dist/usability-capture.js.map +1 -1
  186. package/dist/usage-config.d.ts +1 -1
  187. package/dist/usage-config.js +1 -1
  188. package/dist/ux-claim-probe.d.ts +45 -0
  189. package/dist/ux-claim-probe.js +386 -0
  190. package/dist/ux-claim-probe.js.map +1 -0
  191. package/dist/ux-cli.js +8 -1
  192. package/dist/ux-cli.js.map +1 -1
  193. package/dist/ux-product.d.ts +14 -0
  194. package/dist/ux-product.js +39 -0
  195. package/dist/ux-product.js.map +1 -0
  196. package/dist/ux-review.d.ts +4 -0
  197. package/dist/ux-review.js +27 -7
  198. package/dist/ux-review.js.map +1 -1
  199. package/dist/ux-usability.d.ts +34 -9
  200. package/dist/ux-usability.js +100 -14
  201. package/dist/ux-usability.js.map +1 -1
  202. package/dist/verify-fix-api.d.ts +21 -0
  203. package/dist/verify-fix-api.js +85 -33
  204. package/dist/verify-fix-api.js.map +1 -1
  205. package/dist/verify-fix-cli.js +7 -2
  206. package/dist/verify-fix-cli.js.map +1 -1
  207. package/package.json +9 -9
  208. package/skills/jevitate-explore/SKILL.md +8 -0
  209. package/skills/jevitate-getting-started/SKILL.md +2 -1
  210. package/skills/jevitate-test-campaign/SKILL.md +203 -0
@@ -13,6 +13,8 @@ export interface FixtureFlags {
13
13
  readonly after?: string;
14
14
  readonly allowShellHooks?: boolean;
15
15
  readonly hookTimeoutMs?: string;
16
+ /** #243: `--fixture-identity <name>=<storageState>` (repeatable) — who a step with `auth.identity` authenticates as. */
17
+ readonly fixtureIdentity?: readonly string[];
16
18
  }
17
19
  /** Adds `--fixtures`, `--before`, `--after`, `--allow-shell-hooks` and `--hook-timeout-ms`. */
18
20
  export declare function withFixtureFlags(cmd: Command): Command;
@@ -26,7 +28,23 @@ export interface FixtureContext {
26
28
  readonly targetFixtures?: string;
27
29
  /** A spec already validated elsewhere (a persisted mission result), used when no file is given. */
28
30
  readonly spec?: FixtureSpec;
31
+ /**
32
+ * #243: the origin's targets.json personas — `personas.<name>.storageState` binds fixture identity
33
+ * `<name>` when no `--fixture-identity` names it.
34
+ */
35
+ readonly personas?: Readonly<Record<string, {
36
+ readonly storageState?: string;
37
+ }>>;
38
+ /** #243: identities a persisted mission result recorded (name → storageState path), for replays. */
39
+ readonly identities?: Readonly<Record<string, string>>;
29
40
  }
41
+ /**
42
+ * #243: every fixture identity the run can authenticate a step as → its storageState PATH. Lowest to
43
+ * highest precedence: the origin's targets.json personas, the identities a persisted result recorded,
44
+ * then `--fixture-identity`. Only paths are kept (the file is read per request, never logged); a
45
+ * missing file is refused here, before any browser or request.
46
+ */
47
+ export declare function resolveFixtureIdentities(flags: FixtureFlags, ctx: Pick<FixtureContext, "personas" | "identities">, cwd?: string): Record<string, string>;
30
48
  /** The run's fixture lifecycle, or `undefined` when none was asked for. Throws `FixtureSpecError`. */
31
49
  export declare function buildMissionFixtures(flags: FixtureFlags, ctx: FixtureContext): MissionFixtures | undefined;
32
50
  /**
@@ -34,8 +52,19 @@ export declare function buildMissionFixtures(flags: FixtureFlags, ctx: FixtureCo
34
52
  * declares (unless a `--before` hook may bind it), and a run without fixtures may not reference one.
35
53
  */
36
54
  export declare function checkSetupRefs(texts: Readonly<Record<string, string | readonly string[] | undefined>>, fx: MissionFixtures | undefined): void;
55
+ /**
56
+ * `url` with each `${setup.*}` replaced by a placeholder that keeps its origin — what the run's
57
+ * origin, allowlist and target config are read from before setup binds the real values.
58
+ */
59
+ export declare function setupRefFreeUrl(url: string): string;
37
60
  /** Throws unless a `${setup.*}` reference in `url` leaves its origin fixed (the allowlist is decided before setup runs). */
38
61
  export declare function checkUrlRefOrigin(url: string): void;
62
+ /**
63
+ * `--url` with its `${setup.*}` references bound — and the bound URL still on the origin
64
+ * {@link checkUrlRefOrigin} fixed: a value placed right after the origin must be a root-relative path
65
+ * (`/…`), never `@evil.test`, `:8080` or `.evil.test`.
66
+ */
67
+ export declare function substituteUrlSetupRefs(url: string, b: FixtureBindings): string;
39
68
  /** The `${setup.*}`-bearing strings of an invariants spec, keyed `--invariants <path>`, for {@link checkSetupRefs}. */
40
69
  export declare function invariantSetupTexts(spec: unknown): Record<string, string>;
41
70
  /**
@@ -1,5 +1,7 @@
1
+ import { existsSync } from "node:fs";
2
+ import { isAbsolute, resolve as resolvePath } from "node:path";
1
3
  import { positiveIntArg } from "./cli-args.js";
2
- import { FixtureSetupError, FixtureSpecError, MissionFixtures, SETUP_REF, UnboundSetupRefError, hookHash, loadFixtureFile, parseFixtureSpec, referencedNames, substituteSetupRefs, } from "./mission-fixtures.js";
4
+ import { FixtureSetupError, FixtureSpecError, MissionFixtures, SETUP_REF, UnboundSetupRefError, hookHash, identityNames, loadFixtureFile, parseFixtureSpec, referencedNames, substituteSetupRefs, } from "./mission-fixtures.js";
3
5
  /** Adds `--fixtures`, `--before`, `--after`, `--allow-shell-hooks` and `--hook-timeout-ms`. */
4
6
  export function withFixtureFlags(cmd) {
5
7
  return cmd
@@ -8,7 +10,44 @@ export function withFixtureFlags(cmd) {
8
10
  .option("--before <cmd>", "operator shell hook run before the mission and every replay (needs --allow-shell-hooks); may print {vars, secret}")
9
11
  .option("--after <cmd>", "operator shell hook run after the mission and every replay (needs --allow-shell-hooks)")
10
12
  .option("--allow-shell-hooks", "opt in to running --before/--after (operator commands; never model-chosen)", false)
11
- .option("--hook-timeout-ms <ms>", "timeout for each --before/--after hook (default 60000; the process group is killed)", positiveIntArg);
13
+ .option("--hook-timeout-ms <ms>", "timeout for each --before/--after hook (default 60000; the process group is killed)", positiveIntArg)
14
+ .option("--fixture-identity <name=storageState>", "#243: a named identity fixture steps can authenticate as (`auth.identity`), separate from the mission's own session — e.g. mint an invite as the owner, run the mission cold (repeatable)", (v, prev) => [...prev, v], []);
15
+ }
16
+ const IDENTITY_NAME = /^[A-Za-z0-9][A-Za-z0-9_.-]{0,63}$/;
17
+ /**
18
+ * #243: every fixture identity the run can authenticate a step as → its storageState PATH. Lowest to
19
+ * highest precedence: the origin's targets.json personas, the identities a persisted result recorded,
20
+ * then `--fixture-identity`. Only paths are kept (the file is read per request, never logged); a
21
+ * missing file is refused here, before any browser or request.
22
+ */
23
+ export function resolveFixtureIdentities(flags, ctx, cwd = process.cwd()) {
24
+ const out = {};
25
+ for (const [name, p] of Object.entries(ctx.personas ?? {}))
26
+ if (p.storageState !== undefined)
27
+ out[name] = p.storageState;
28
+ for (const [name, path] of Object.entries(ctx.identities ?? {}))
29
+ out[name] = path;
30
+ const seen = new Set();
31
+ for (const spec of flags.fixtureIdentity ?? []) {
32
+ const eq = spec.indexOf("=");
33
+ if (eq <= 0)
34
+ throw new FixtureSpecError(`--fixture-identity must be <name>=<storageState>, got ${JSON.stringify(spec)}`);
35
+ const name = spec.slice(0, eq);
36
+ const file = spec.slice(eq + 1).trim();
37
+ if (!IDENTITY_NAME.test(name))
38
+ throw new FixtureSpecError(`--fixture-identity name ${JSON.stringify(name)} must be 1-64 of [A-Za-z0-9_.-], starting alphanumeric`);
39
+ if (seen.has(name))
40
+ throw new FixtureSpecError(`--fixture-identity ${name} is given twice`);
41
+ seen.add(name);
42
+ if (file === "")
43
+ throw new FixtureSpecError(`--fixture-identity ${name}: storage state path is empty`);
44
+ out[name] = isAbsolute(file) ? file : resolvePath(cwd, file);
45
+ }
46
+ for (const [name, path] of Object.entries(out)) {
47
+ if (!existsSync(path))
48
+ throw new FixtureSpecError(`fixture identity ${name}: storage state not found: ${path}`);
49
+ }
50
+ return out;
12
51
  }
13
52
  function hooksOf(flags) {
14
53
  if (flags.before === undefined && flags.after === undefined)
@@ -29,15 +68,31 @@ export function buildMissionFixtures(flags, ctx) {
29
68
  const file = flags.fixtures ?? ctx.targetFixtures;
30
69
  const bounds = { allowlist: ctx.allowlist, baseUrl: ctx.baseUrl };
31
70
  const spec = file !== undefined ? loadFixtureFile(file, bounds, { openRefs: hooks?.before !== undefined }) : ctx.spec;
32
- if (spec === undefined && hooks === undefined)
71
+ const flagged = (flags.fixtureIdentity ?? []).map((x) => x.slice(0, Math.max(0, x.indexOf("="))));
72
+ if (spec === undefined && hooks === undefined) {
73
+ if (flagged.length > 0)
74
+ throw new FixtureSpecError("--fixture-identity names who a fixture step authenticates as: it needs --fixtures");
33
75
  return undefined;
76
+ }
34
77
  const secretFields = Object.fromEntries((ctx.secretFields ?? []).filter((f) => f.kind === "value").map((f) => [f.name, f.secret]));
78
+ // A named identity no step uses is a typo, not a no-op.
79
+ const usedNames = identityNames(spec);
80
+ for (const name of flagged) {
81
+ if (name !== "" && !usedNames.includes(name))
82
+ throw new FixtureSpecError(`--fixture-identity ${name}: no fixture step authenticates as ${name} (auth.identity)`);
83
+ }
84
+ // Only the identities the spec uses are checked for a file (an unused persona never blocks a run).
85
+ const used = new Set(identityNames(spec));
86
+ const bound = resolveFixtureIdentities(flags, {
87
+ ...(ctx.personas === undefined ? {} : { personas: Object.fromEntries(Object.entries(ctx.personas).filter(([n]) => used.has(n))) }),
88
+ ...(ctx.identities === undefined ? {} : { identities: Object.fromEntries(Object.entries(ctx.identities).filter(([n]) => used.has(n))) }),
89
+ });
35
90
  return new MissionFixtures({
36
91
  ...bounds,
37
92
  ...(spec === undefined ? {} : { spec }),
38
93
  ...(hooks === undefined ? {} : { hooks }),
39
94
  allowShellHooks: flags.allowShellHooks === true,
40
- auth: { ...(ctx.storageState === undefined ? {} : { storageStatePath: ctx.storageState }), secretFields },
95
+ auth: { ...(ctx.storageState === undefined ? {} : { storageStatePath: ctx.storageState }), secretFields, identities: bound },
41
96
  ...(ctx.secrets === undefined ? {} : { secrets: ctx.secrets }),
42
97
  });
43
98
  }
@@ -63,17 +118,72 @@ export function checkSetupRefs(texts, fx) {
63
118
  }
64
119
  }
65
120
  }
121
+ /** The origin `url` keeps whatever its `${setup.*}` references hold, or null when a value could move it. */
122
+ function fixedOrigin(url) {
123
+ const originWith = (fill) => {
124
+ try {
125
+ return new URL(url.replace(SETUP_REF, fill)).origin;
126
+ }
127
+ catch {
128
+ return null;
129
+ }
130
+ };
131
+ // A reference after a `/` (or in the query) fills the path: any value keeps the origin.
132
+ const a = originWith("0");
133
+ if (a !== null && a === originWith("x.evil.test"))
134
+ return a;
135
+ // #243: a reference right after the origin (`http://host${setup.link}`) is a root-relative path —
136
+ // allowed, and its VALUE must start with `/` (checked once bound, by substituteUrlSetupRefs).
137
+ const b = originWith("/0");
138
+ if (b !== null && b === originWith("/x.evil.test"))
139
+ return b;
140
+ return null;
141
+ }
142
+ /**
143
+ * `url` with each `${setup.*}` replaced by a placeholder that keeps its origin — what the run's
144
+ * origin, allowlist and target config are read from before setup binds the real values.
145
+ */
146
+ export function setupRefFreeUrl(url) {
147
+ if (!url.includes("${setup."))
148
+ return url;
149
+ const pathFill = (() => {
150
+ try {
151
+ return new URL(url.replace(SETUP_REF, "0")).origin === new URL(url.replace(SETUP_REF, "x.evil.test")).origin;
152
+ }
153
+ catch {
154
+ return false;
155
+ }
156
+ })();
157
+ return url.replace(SETUP_REF, pathFill || fixedOrigin(url) === null ? "0" : "/0");
158
+ }
66
159
  /** Throws unless a `${setup.*}` reference in `url` leaves its origin fixed (the allowlist is decided before setup runs). */
67
160
  export function checkUrlRefOrigin(url) {
68
161
  if (!url.includes("${setup."))
69
162
  return;
163
+ if (fixedOrigin(url) === null) {
164
+ throw new UnboundSetupRefError("--url: a ${setup.*} reference may fill the path or query, never the origin — put it after a `/` (`http://host:8093/projects/${setup.id}`), or right after the origin for a root-relative path value (`http://host:8093${setup.link}` with a value like `/invite/abc`)");
165
+ }
166
+ }
167
+ /**
168
+ * `--url` with its `${setup.*}` references bound — and the bound URL still on the origin
169
+ * {@link checkUrlRefOrigin} fixed: a value placed right after the origin must be a root-relative path
170
+ * (`/…`), never `@evil.test`, `:8080` or `.evil.test`.
171
+ */
172
+ export function substituteUrlSetupRefs(url, b) {
173
+ const out = substituteSetupRefs(url, b, { where: "--url" });
174
+ if (!url.includes("${setup."))
175
+ return out;
176
+ let origin = null;
70
177
  try {
71
- if (new URL(url.replace(SETUP_REF, "0")).origin !== new URL(url.replace(SETUP_REF, "x.evil.test")).origin)
72
- throw new Error("origin");
178
+ origin = new URL(out).origin;
73
179
  }
74
180
  catch {
75
- throw new UnboundSetupRefError("--url: a ${setup.*} reference may fill the path or query, never the origin — put it after a `/` (e.g. `http://host:8093/${setup.path}` with a path value that has no leading `/`, or `http://host:8093/projects/${setup.id}`)");
181
+ // refused below
182
+ }
183
+ if (origin === null || origin !== fixedOrigin(url)) {
184
+ throw new UnboundSetupRefError("--url: a bound ${setup.*} value moved the URL off its origin — a value right after the origin must be a root-relative path starting with `/`");
76
185
  }
186
+ return out;
77
187
  }
78
188
  /** Every string inside an invariants spec (#187), with the JSON path it sits at. */
79
189
  function specStrings(v, path, out) {
@@ -166,6 +276,10 @@ storageState) {
166
276
  ? { storageState: target.storageStatePath }
167
277
  : {}),
168
278
  ...(spec === undefined ? {} : { spec }),
279
+ // #243: re-mint as the identities the mission's steps used (a --fixture-identity re-binds one).
280
+ ...(isObject(saved?.identities)
281
+ ? { identities: Object.fromEntries(Object.entries(saved.identities).filter((e) => typeof e[1] === "string")) }
282
+ : {}),
169
283
  });
170
284
  if (fx === undefined && recording.fixture !== undefined) {
171
285
  throw new FixtureSpecError(`this Recording started from fixture ${recording.fixture.identity}: pass --fixtures (or --result with its saved fixture) so every replay restores the same state`);
@@ -1 +1 @@
1
- {"version":3,"file":"fixture-cli.js","sourceRoot":"","sources":["../src/fixture-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fixture-cli.js","sourceRoot":"","sources":["../src/fixture-cli.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { spawn } from "node:child_process";
2
2
  import { BACKOFF_SCHEDULE_MS, isTransientError, jittered, redactText, retryTransient, } from "@jevitate/ai-core";
3
+ import { clock } from "@jevitate/domain";
3
4
  export const defaultExec = (cmd, args, stdin) => new Promise((resolve) => {
4
5
  let stdout = "";
5
6
  let stderr = "";
@@ -155,7 +156,7 @@ export class GitHubIssueFiler {
155
156
  async create(repo, issue) {
156
157
  const marker = FINGERPRINT_MARKER.exec(issue.body)?.[0];
157
158
  const schedule = this.#retry.schedule ?? BACKOFF_SCHEDULE_MS;
158
- const sleep = this.#retry.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
159
+ const sleep = this.#retry.sleep ?? ((ms) => clock.sleep(ms));
159
160
  const random = this.#retry.random ?? Math.random;
160
161
  for (let attempt = 0;; attempt++) {
161
162
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"github-issue-filer.js","sourceRoot":"","sources":["../src/github-issue-filer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github-issue-filer.js","sourceRoot":"","sources":["../src/github-issue-filer.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { HostHealthSampler, degradedEnvironmentOutcome } from "@jevitate/explore";
2
2
  import type { EnvironmentDegraded, HostHealthSummary, MissionFailure } from "@jevitate/domain";
3
+ import { type ResourceGovernor } from "@jevitate/playwright";
3
4
  /**
4
5
  * One host-health sampler per mission run (#203), shared by every strategy's runner: started (with
5
6
  * one sample taken) BEFORE the browser opens, fed every transcript entry, handed to the mission so a
@@ -21,4 +22,4 @@ export interface HostHealthVerdict<O extends string> {
21
22
  * Takes the closing sample and applies the run-level rule: most steps starved → `inconclusive`
22
23
  * (`degraded-environment`), never `clean` (see `degradedEnvironmentOutcome`).
23
24
  */
24
- export declare function finishHostHealth<O extends string>(health: HostHealthSampler, outcome: O, opts?: Parameters<typeof degradedEnvironmentOutcome>[2]): Promise<HostHealthVerdict<O>>;
25
+ export declare function finishHostHealth<O extends string>(health: HostHealthSampler, outcome: O, opts?: Parameters<typeof degradedEnvironmentOutcome>[2], governor?: ResourceGovernor): Promise<HostHealthVerdict<O>>;
@@ -1,4 +1,8 @@
1
1
  import { HostHealthSampler, degradedEnvironmentOutcome } from "@jevitate/explore";
2
+ import { sharedResourceGovernor } from "@jevitate/playwright";
3
+ import { clock } from "@jevitate/domain";
4
+ /** When each run's sampler started (#205: the window the governor's summary covers). */
5
+ const runStarts = new WeakMap();
2
6
  /**
3
7
  * One host-health sampler per mission run (#203), shared by every strategy's runner: started (with
4
8
  * one sample taken) BEFORE the browser opens, fed every transcript entry, handed to the mission so a
@@ -7,6 +11,7 @@ import { HostHealthSampler, degradedEnvironmentOutcome } from "@jevitate/explore
7
11
  */
8
12
  export async function startHostHealth(injected) {
9
13
  const health = (injected ?? new HostHealthSampler()).start();
14
+ runStarts.set(health, clock.now());
10
15
  await health.sample();
11
16
  return health;
12
17
  }
@@ -14,9 +19,10 @@ export async function startHostHealth(injected) {
14
19
  * Takes the closing sample and applies the run-level rule: most steps starved → `inconclusive`
15
20
  * (`degraded-environment`), never `clean` (see `degradedEnvironmentOutcome`).
16
21
  */
17
- export async function finishHostHealth(health, outcome, opts = {}) {
22
+ export async function finishHostHealth(health, outcome, opts = {}, governor = sharedResourceGovernor()) {
18
23
  await health.sample();
19
- const hostHealth = health.summary();
24
+ // #205: what resource governance did during this run (cap, slot, throttling, memory) rides along.
25
+ const hostHealth = { ...health.summary(), resources: governor.snapshot(runStarts.get(health) ?? 0) };
20
26
  const verdict = degradedEnvironmentOutcome(outcome, hostHealth, opts);
21
27
  return {
22
28
  outcome: verdict.outcome,
@@ -1 +1 @@
1
- {"version":3,"file":"host-health-run.js","sourceRoot":"","sources":["../src/host-health-run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAGlF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAA4B;IAChE,MAAM,MAAM,GAAG,CAAC,QAAQ,IAAI,IAAI,iBAAiB,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAC7D,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;IACtB,OAAO,MAAM,CAAC;AAChB,CAAC;AAUD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAyB,EACzB,OAAU,EACV,OAAyD,EAAE;IAE3D,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;IACtB,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,0BAA0B,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IACtE,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;QACtE,MAAM,EAAE,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE;KAC/D,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"host-health-run.js","sourceRoot":"","sources":["../src/host-health-run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAElF,OAAO,EAAE,sBAAsB,EAAyB,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,wFAAwF;AACxF,MAAM,SAAS,GAAG,IAAI,OAAO,EAA6B,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAA4B;IAChE,MAAM,MAAM,GAAG,CAAC,QAAQ,IAAI,IAAI,iBAAiB,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAC7D,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;IACnC,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;IACtB,OAAO,MAAM,CAAC;AAChB,CAAC;AAUD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAyB,EACzB,OAAU,EACV,OAAyD,EAAE,EAC3D,WAA6B,sBAAsB,EAAE;IAErD,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;IACtB,kGAAkG;IAClG,MAAM,UAAU,GAAsB,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;IACxH,MAAM,OAAO,GAAG,0BAA0B,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IACtE,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;QACtE,MAAM,EAAE,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE;KAC/D,CAAC;AACJ,CAAC"}
package/dist/init-cli.js CHANGED
@@ -2,7 +2,8 @@ import { envCredentialStore, FEATURE_KEYS } from "@jevitate/ai-core";
2
2
  import { loadLocalCredentials } from "./credentials-file.js";
3
3
  import { ok, fail } from "./envelope.js";
4
4
  import { initProjectDir } from "./project-dir.js";
5
- import { realSecureIO } from "./ai-cli.js";
5
+ import { KeyCheckError, credentialInputs, enteredKeyCheck, realSecureIO } from "./ai-cli.js";
6
+ import { keySources, realVerifyFetch, shadowWarnings, verifyFeatureKeys } from "./key-report.js";
6
7
  import { collectAllMissingKeys } from "./init-keys.js";
7
8
  import { formatInitKeysHuman } from "./cli-output.js";
8
9
  import { detectRuntimes, resolveInstallTargetPaths, installSkills } from "./init-skills.js";
@@ -18,6 +19,8 @@ export function registerInitCommands(program, deps) {
18
19
  .description("set up jevitate: collect API keys, install skills/MCP wiring, create the repo's .jevitate/")
19
20
  .option("--json", "emit a JSON envelope")
20
21
  .option("--skip-keys", "skip credential collection")
22
+ .option("--replace-keys", "prompt (masked) for a new value of every key, even one already stored, and store it")
23
+ .option("--no-verify", "skip the live auth check of each key (offline / CI): report presence and source only")
21
24
  .option("--skip-skills", "skip skill installation")
22
25
  .option("--skip-mcp", "skip registering the jevitate MCP server in detected harnesses")
23
26
  .option("--targets <ids>", "comma-separated runtime ids to force-install to, overriding detection")
@@ -25,7 +28,7 @@ export function registerInitCommands(program, deps) {
25
28
  .option("--dry-run", "report planned skill-install/mcp-register actions without writing")
26
29
  .option("--skip-project", "skip creating the repo's .jevitate/ (journeys, regressions, baselines, logs)")
27
30
  .action(async function () {
28
- const { json, skipKeys, skipSkills, skipMcp, skipProject, targets, force, dryRun } = this.opts();
31
+ const { json, skipKeys, skipSkills, skipMcp, skipProject, targets, force, dryRun, replaceKeys, verify } = this.opts();
29
32
  try {
30
33
  const data = { initialized: true };
31
34
  // The repo's own .jevitate/ (0.2.0 layout): Journeys, regressions and baselines live with the
@@ -42,7 +45,32 @@ export function registerInitCommands(program, deps) {
42
45
  // `jevitate init`) — it would hang reading a 'line' event that never comes, or read EOF
43
46
  // silently. Report what's still missing instead; the rest of init still completes.
44
47
  const interactive = deps.init?.isInteractive?.() ?? process.stdin.isTTY === true;
45
- data.keys = await collectAllMissingKeys(store, io, { interactive });
48
+ if (replaceKeys === true && !interactive) {
49
+ throw new Error("--replace-keys needs an interactive terminal (stdin is not a TTY) — run `jevitate init --replace-keys` in a terminal");
50
+ }
51
+ const fetchFn = deps.ai?.verifyFetch ?? realVerifyFetch;
52
+ // #291: each entered key is checked with its provider BEFORE it is stored.
53
+ const gate = enteredKeyCheck(fetchFn);
54
+ const keys = await collectAllMissingKeys(store, io, {
55
+ interactive,
56
+ ...(replaceKeys === true ? { replace: true } : {}),
57
+ ...(verify ? { check: gate.check } : {}),
58
+ });
59
+ // #268: name every key's source; #291: verify every key the features use (env wins).
60
+ const { env, localConfig } = credentialInputs(deps.ai);
61
+ const nowLocal = { ...localConfig, ...Object.fromEntries(gate.entered) };
62
+ const nowStore = envCredentialStore(env, nowLocal);
63
+ for (const feature of Object.keys(keys)) {
64
+ const r = keys[feature];
65
+ const sources = keySources(feature, env, verify ? nowLocal : { ...localConfig, ...Object.fromEntries(r.collected.map((k) => [k, "set"])) });
66
+ const warnings = shadowWarnings(r.collected, sources);
67
+ r.sources = sources;
68
+ if (verify)
69
+ r.verification = await verifyFeatureKeys(feature, nowStore, fetchFn, gate.verdicts);
70
+ if (warnings.length > 0)
71
+ r.warnings = warnings;
72
+ }
73
+ data.keys = keys;
46
74
  }
47
75
  // Explicit `--targets` overrides detection entirely (the user takes
48
76
  // full control); otherwise `detectRuntimes` decides, always including
@@ -77,7 +105,7 @@ export function registerInitCommands(program, deps) {
77
105
  // The "try this next" block, tailored to what is set up now (keys, MCP, the repo's
78
106
  // environments). Additive in --json (`data.nextSteps`); keys are checked by NAME only.
79
107
  const keysReady = data.keys !== undefined
80
- ? Object.values(data.keys).every((r) => (r.missing ?? []).length === 0)
108
+ ? Object.values(data.keys).every((r) => (r.missing ?? []).length === 0 && !(r.verification ?? []).some((v) => v.status === "invalid"))
81
109
  : (() => {
82
110
  const store = envCredentialStore(deps.ai?.env ?? process.env, deps.ai?.localConfig ?? loadLocalCredentials());
83
111
  return Object.keys(FEATURE_KEYS).every((f) => FEATURE_KEYS[f].every((k) => store.detect(k)));
@@ -120,7 +148,8 @@ export function registerInitCommands(program, deps) {
120
148
  }
121
149
  }
122
150
  catch (err) {
123
- emitCommandResult(program, fail("E_INIT", String(err instanceof Error ? err.message : err)), { json: json === true, command: "init" });
151
+ const code = err instanceof KeyCheckError ? err.code : "E_INIT";
152
+ emitCommandResult(program, fail(code, String(err instanceof Error ? err.message : err)), { json: json === true, command: "init" });
124
153
  }
125
154
  });
126
155
  }
@@ -1 +1 @@
1
- {"version":3,"file":"init-cli.js","sourceRoot":"","sources":["../src/init-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init-cli.js","sourceRoot":"","sources":["../src/init-cli.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { type CredentialStore, type SecureKeyIO, type Feature, type CredentialKey } from "@jevitate/ai-core";
2
+ import type { KeySourceReport, KeyVerificationReport } from "./key-report.js";
2
3
  export interface FeatureKeyReport {
3
4
  required: CredentialKey[];
4
5
  collected: CredentialKey[];
@@ -9,6 +10,12 @@ export interface FeatureKeyReport {
9
10
  * throws (fail-closed), so there is nothing left to report as missing.
10
11
  */
11
12
  missing?: CredentialKey[];
13
+ /** #268: where each key comes from — names and sources only (additive). */
14
+ sources?: KeySourceReport[];
15
+ /** #291: the live auth check per key (additive; absent with --no-verify). */
16
+ verification?: KeyVerificationReport[];
17
+ /** #268: an env var that overrides a key just stored. */
18
+ warnings?: string[];
12
19
  }
13
20
  export type KeyCollectionReport = Record<Feature, FeatureKeyReport>;
14
21
  export interface CollectAllMissingKeysOptions {
@@ -20,6 +27,10 @@ export interface CollectAllMissingKeysOptions {
20
27
  * (a real terminal): unchanged prompting behavior.
21
28
  */
22
29
  interactive?: boolean;
30
+ /** #268 (`--replace-keys`): prompt for every key, even one already stored, and store the new value. */
31
+ replace?: boolean;
32
+ /** #291: checks each entered value before it is persisted (throws to refuse it). */
33
+ check?: (key: CredentialKey, value: string) => Promise<void>;
23
34
  }
24
35
  /**
25
36
  * Thin orchestration over the existing, already-guardrailed `collectMissingKeys`
package/dist/init-keys.js CHANGED
@@ -1,4 +1,4 @@
1
- import { collectMissingKeys, FEATURE_KEYS, } from "@jevitate/ai-core";
1
+ import { collectKeys, FEATURE_KEYS, } from "@jevitate/ai-core";
2
2
  const FEATURES = ["generation", "judgment"];
3
3
  /**
4
4
  * Thin orchestration over the existing, already-guardrailed `collectMissingKeys`
@@ -13,7 +13,10 @@ export async function collectAllMissingKeys(store, io, opts = {}) {
13
13
  for (const feature of FEATURES) {
14
14
  const required = [...FEATURE_KEYS[feature]];
15
15
  if (interactive) {
16
- const collected = await collectMissingKeys(feature, store, io);
16
+ const collected = await collectKeys(feature, store, io, {
17
+ ...(opts.replace === true ? { replace: true } : {}),
18
+ ...(opts.check === undefined ? {} : { check: opts.check }),
19
+ });
17
20
  report[feature] = { required, collected };
18
21
  }
19
22
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"init-keys.js","sourceRoot":"","sources":["../src/init-keys.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,YAAY,GAKb,MAAM,mBAAmB,CAAC;AAe3B,MAAM,QAAQ,GAAc,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;AAavD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,KAAsB,EACtB,EAAe,EACf,OAAqC,EAAE;IAEvC,MAAM,MAAM,GAAG,EAAyB,CAAC;IACzC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC;IAC7C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5C,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAC/D,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,4FAA4F;YAC5F,yFAAyF;YACzF,iFAAiF;YACjF,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACzD,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAC5F,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"init-keys.js","sourceRoot":"","sources":["../src/init-keys.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,YAAY,GAKb,MAAM,mBAAmB,CAAC;AAsB3B,MAAM,QAAQ,GAAc,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;AAiBvD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,KAAsB,EACtB,EAAe,EACf,OAAqC,EAAE;IAEvC,MAAM,MAAM,GAAG,EAAyB,CAAC;IACzC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC;IAC7C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5C,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;gBACtD,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnD,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;aAC3D,CAAC,CAAC;YACH,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,4FAA4F;YAC5F,yFAAyF;YACzF,iFAAiF;YACjF,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACzD,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAC5F,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,8 +1,9 @@
1
+ import { expectedResultFromDelta } from "@jevitate/explore";
1
2
  import { mkdir, readFile, rm, writeFile } from "node:fs/promises";
2
3
  import { dirname, join } from "node:path";
3
4
  import { AnnotationDraftMismatchError, AnnotationDraftSchema, FsJourneyStore, applyAnnotationDraft, describeStep, flatJourneySteps, intentCoverage, secretParamValues, } from "@jevitate/journey";
4
5
  import { assertNoSecretInPayload, redactText, redactUrl } from "@jevitate/ai-core";
5
- import { contentHash } from "@jevitate/domain";
6
+ import { contentHash, clock } from "@jevitate/domain";
6
7
  import { BrowseTheWebToken } from "@jevitate/screenplay";
7
8
  import { runJourneyProgrammatically, UnknownJourneyError } from "./journey-api.js";
8
9
  /**
@@ -105,14 +106,26 @@ export async function annotateJourney(opts) {
105
106
  const needObjective = (s.recorded.objective ?? "").trim() === "";
106
107
  const needExpected = (s.recorded.expectedResult ?? "").trim() === "";
107
108
  let objective = s.recorded.objective;
108
- if (b !== undefined && (needObjective || needExpected)) {
109
+ // #303 (`--action-deltas`): the expected result is drafted by code from what the step changed.
110
+ const observed = run.actionDeltas?.steps.find((x) => x.step === s.index + 1);
111
+ const fromDelta = needExpected && observed !== undefined ? clean(expectedResultFromDelta(observed.delta)) : undefined;
112
+ if (b !== undefined && fromDelta !== undefined && !needObjective) {
113
+ const a = after.get(s.index) ?? null;
114
+ steps.push({
115
+ index: s.index,
116
+ step: described.slice(0, 1000),
117
+ expectedResult: fromDelta,
118
+ evidence: { before: { url: b.url, heading: b.heading }, after: a === null ? null : { url: a.url, heading: a.heading } },
119
+ });
120
+ }
121
+ else if (b !== undefined && (needObjective || needExpected)) {
109
122
  const a = after.get(s.index) ?? null;
110
123
  const input = { journey: context, stepNumber: s.index + 1, totalSteps: flat.length, step: described, before: b, after: a };
111
124
  assertNoSecretInPayload(input, secrets); // fail closed: nothing secret reaches a model
112
125
  const { output, provenance: p } = await gen.generate("journey.step", input);
113
126
  provenance = p;
114
127
  const draftObjective = needObjective ? clean(output.objective) : undefined;
115
- const draftExpected = needExpected ? clean(output.expectedResult) : undefined;
128
+ const draftExpected = needExpected ? (fromDelta ?? clean(output.expectedResult)) : undefined;
116
129
  objective = draftObjective ?? objective;
117
130
  if (draftObjective !== undefined || draftExpected !== undefined) {
118
131
  steps.push({
@@ -159,7 +172,7 @@ export async function annotateJourney(opts) {
159
172
  version: 1,
160
173
  journeyId: opts.id,
161
174
  journeyHash,
162
- createdAtIso: (now ?? (() => new Date().toISOString()))(),
175
+ createdAtIso: (now ?? (() => clock.nowIso()))(),
163
176
  provenance: provenance === undefined
164
177
  ? { adapter: "none", model: "none", promptVersion: "none" }
165
178
  : { adapter: provenance.adapter, model: provenance.model, promptVersion: provenance.promptVersion },