@jevitate/cli 0.10.0 → 0.11.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.
- package/dist/approved-demo.d.ts +86 -0
- package/dist/approved-demo.js +184 -0
- package/dist/approved-demo.js.map +1 -0
- package/dist/bin.js +3371 -1221
- package/dist/build-info.generated.js +2 -2
- package/dist/campaign-api.d.ts +15 -0
- package/dist/campaign-api.js +67 -6
- package/dist/campaign-api.js.map +1 -1
- package/dist/campaign-cli.js +7 -2
- package/dist/campaign-cli.js.map +1 -1
- package/dist/campaign-preflight.d.ts +76 -0
- package/dist/campaign-preflight.js +117 -0
- package/dist/campaign-preflight.js.map +1 -0
- package/dist/catalog-bundle-api.d.ts +15 -5
- package/dist/catalog-bundle-api.js +117 -14
- package/dist/catalog-bundle-api.js.map +1 -1
- package/dist/catalog-bundle-findings.d.ts +10 -0
- package/dist/catalog-bundle-findings.js +75 -1
- package/dist/catalog-bundle-findings.js.map +1 -1
- package/dist/catalog-bundle.d.ts +111 -7
- package/dist/catalog-bundle.js +208 -9
- package/dist/catalog-bundle.js.map +1 -1
- package/dist/catalog-cli.js +3 -2
- package/dist/catalog-cli.js.map +1 -1
- package/dist/check-api.js +20 -2
- package/dist/check-api.js.map +1 -1
- package/dist/check-cli.d.ts +2 -0
- package/dist/check-cli.js +25 -0
- package/dist/check-cli.js.map +1 -1
- package/dist/check-execute.d.ts +6 -0
- package/dist/check-execute.js +1 -0
- package/dist/check-execute.js.map +1 -1
- package/dist/check-types.d.ts +7 -0
- package/dist/check-types.js.map +1 -1
- package/dist/cli-output.js +15 -1
- package/dist/cli-output.js.map +1 -1
- package/dist/cold-start-report.d.ts +32 -0
- package/dist/cold-start-report.js +31 -0
- package/dist/cold-start-report.js.map +1 -0
- package/dist/defect-evidence.js +10 -5
- package/dist/defect-evidence.js.map +1 -1
- package/dist/demo-aspect-api.d.ts +11 -0
- package/dist/demo-aspect-api.js +27 -2
- package/dist/demo-aspect-api.js.map +1 -1
- package/dist/demo-aspect-cli.js +5 -0
- package/dist/demo-aspect-cli.js.map +1 -1
- package/dist/demo-capture.d.ts +79 -2
- package/dist/demo-capture.js +504 -12
- package/dist/demo-capture.js.map +1 -1
- package/dist/environments.d.ts +8 -1
- package/dist/environments.js +14 -3
- package/dist/environments.js.map +1 -1
- package/dist/exit-codes.js +1 -0
- package/dist/exit-codes.js.map +1 -1
- package/dist/explore-adversarial.js +2 -2
- package/dist/explore-adversarial.js.map +1 -1
- package/dist/explore-shared.d.ts +11 -0
- package/dist/explore-shared.js +9 -0
- package/dist/explore-shared.js.map +1 -1
- package/dist/findings-filing.js +7 -3
- package/dist/findings-filing.js.map +1 -1
- package/dist/github-issue-filer.js +15 -9
- package/dist/github-issue-filer.js.map +1 -1
- package/dist/journeeze-api.d.ts +8 -2
- package/dist/journeeze-api.js +105 -19
- package/dist/journeeze-api.js.map +1 -1
- package/dist/journey-anchor-api.d.ts +37 -0
- package/dist/journey-anchor-api.js +58 -0
- package/dist/journey-anchor-api.js.map +1 -0
- package/dist/journey-anchor-cli.d.ts +17 -0
- package/dist/journey-anchor-cli.js +104 -0
- package/dist/journey-anchor-cli.js.map +1 -0
- package/dist/journey-api.d.ts +29 -1
- package/dist/journey-api.js +82 -7
- package/dist/journey-api.js.map +1 -1
- package/dist/journey-cli.js +36 -5
- package/dist/journey-cli.js.map +1 -1
- package/dist/journey-demo-api.d.ts +29 -0
- package/dist/journey-demo-api.js +29 -7
- package/dist/journey-demo-api.js.map +1 -1
- package/dist/journey-lint-sarif.js +2 -0
- package/dist/journey-lint-sarif.js.map +1 -1
- package/dist/journey-network-checks.d.ts +11 -0
- package/dist/journey-network-checks.js +36 -13
- package/dist/journey-network-checks.js.map +1 -1
- package/dist/load-api.js +4 -2
- package/dist/load-api.js.map +1 -1
- package/dist/mcp-api.d.ts +3 -1
- package/dist/mcp-api.js +21 -2
- package/dist/mcp-api.js.map +1 -1
- package/dist/mcp-cli-tools.d.ts +1 -0
- package/dist/mcp-cli-tools.js +30 -8
- package/dist/mcp-cli-tools.js.map +1 -1
- package/dist/openrouter-call.d.ts +23 -10
- package/dist/openrouter-call.js +14 -11
- package/dist/openrouter-call.js.map +1 -1
- package/dist/png-pixels.d.ts +12 -0
- package/dist/png-pixels.js +96 -0
- package/dist/png-pixels.js.map +1 -0
- package/dist/regression-api.js +2 -1
- package/dist/regression-api.js.map +1 -1
- package/dist/server-log-verify.js +2 -1
- package/dist/server-log-verify.js.map +1 -1
- package/dist/signal-triage.js +7 -3
- package/dist/signal-triage.js.map +1 -1
- package/dist/source-run-api.js +2 -2
- package/dist/source-run-api.js.map +1 -1
- package/dist/verify-fix-api.d.ts +29 -0
- package/dist/verify-fix-api.js +43 -2
- package/dist/verify-fix-api.js.map +1 -1
- package/dist/verify-fix-cli.js +4 -0
- package/dist/verify-fix-cli.js.map +1 -1
- package/dist/zip-store.d.ts +15 -0
- package/dist/zip-store.js +93 -0
- package/dist/zip-store.js.map +1 -0
- package/package.json +11 -11
- package/skills/jevitate-demo/SKILL.md +4 -1
- package/skills/jevitate-run-journey/SKILL.md +4 -0
- package/skills/jevitate-test-campaign/SKILL.md +13 -0
- package/skills/jevitate-verify-fix/SKILL.md +5 -0
|
@@ -45,6 +45,13 @@ export interface DemoJourneyOptions extends Omit<RunJourneyProgrammaticallyOptio
|
|
|
45
45
|
annotations?: AnnotationDraft;
|
|
46
46
|
/** #249: an unapproved demo — a `DRAFT` watermark on the overlay, and every output marked DRAFT. */
|
|
47
47
|
draft?: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* #471: render under jz-mask-v1 (Journeeze's media policy): fields, editables and `[data-jz-mask]`
|
|
50
|
+
* masked, embeds replaced by placeholders, `[data-jz-block]` left out — in the video from its first
|
|
51
|
+
* paint and proven at every screenshot. A screenshot that cannot be proven is LEFT OUT (the step has
|
|
52
|
+
* none) instead of failing the demo; the result's `jz` says what was proven.
|
|
53
|
+
*/
|
|
54
|
+
jzMask?: boolean;
|
|
48
55
|
/**
|
|
49
56
|
* The Journeeze line at the end of the guide. Default: {@link promotionsEnabled} (on unless
|
|
50
57
|
* `JEVITATE_PROMOTIONS=0` or `"promotions": false` in the config). Never in the video, subtitles
|
|
@@ -91,6 +98,28 @@ export interface DemoJourneyResult {
|
|
|
91
98
|
readonly step: number;
|
|
92
99
|
readonly reason: string;
|
|
93
100
|
}>;
|
|
101
|
+
/** #471: the jz-mask-v1 proof of this render (only with `jzMask`). */
|
|
102
|
+
readonly jz?: DemoJzReport;
|
|
103
|
+
}
|
|
104
|
+
/** #471: what a jz-mask-v1 render proved. */
|
|
105
|
+
export interface DemoJzReport {
|
|
106
|
+
readonly method: "dom-before-capture";
|
|
107
|
+
/** Per step with a guide screenshot asked for: its proven region count, or why it was left out. */
|
|
108
|
+
readonly steps: ReadonlyArray<{
|
|
109
|
+
readonly step: number;
|
|
110
|
+
readonly regions: number;
|
|
111
|
+
} | {
|
|
112
|
+
readonly step: number;
|
|
113
|
+
readonly leftOut: string;
|
|
114
|
+
}>;
|
|
115
|
+
/**
|
|
116
|
+
* The video may leave the machine only when `proven`: the layer covered every frame of every top
|
|
117
|
+
* document (no breach reported) and every screenshot was proven.
|
|
118
|
+
*/
|
|
119
|
+
readonly video: {
|
|
120
|
+
readonly proven: boolean;
|
|
121
|
+
readonly reason?: string;
|
|
122
|
+
};
|
|
94
123
|
}
|
|
95
124
|
/** A WebVTT timestamp: `HH:MM:SS.mmm`. */
|
|
96
125
|
export declare function vttTime(ms: number): string;
|
package/dist/journey-demo-api.js
CHANGED
|
@@ -8,7 +8,7 @@ import { assertNoSecretInPayload, redactText } from "@jevitate/ai-core";
|
|
|
8
8
|
import { DemoOverlay } from "@jevitate/explore";
|
|
9
9
|
import { PlaywrightBrowserPort } from "@jevitate/playwright";
|
|
10
10
|
import { BrowseTheWebToken } from "@jevitate/screenplay";
|
|
11
|
-
import { captureStepScreenshot, SecretPixelMask } from "./demo-capture.js";
|
|
11
|
+
import { captureStepScreenshot, JzMaskUnprovenError, SecretPixelMask } from "./demo-capture.js";
|
|
12
12
|
import { runJourneyProgrammatically, UnknownJourneyError } from "./journey-api.js";
|
|
13
13
|
import { clock as sysClock } from "@jevitate/domain";
|
|
14
14
|
/**
|
|
@@ -238,8 +238,10 @@ export async function demoJourney(opts) {
|
|
|
238
238
|
const work = await mkdtemp(join(tmpdir(), "jevitate-demo-"));
|
|
239
239
|
// #250/#251: the demo's secret parameters are masked in pixels — in the video from its first
|
|
240
240
|
// paint, and proven at every guide screenshot (a capture whose mask cannot be proven fails).
|
|
241
|
-
const mask = new SecretPixelMask(secrets);
|
|
242
|
-
const
|
|
241
|
+
const mask = new SecretPixelMask(secrets, { jzMaskV1: opts.jzMask === true });
|
|
242
|
+
const jz = opts.jzMask === true ? mask.jzLayer() : undefined;
|
|
243
|
+
const layers = [mask.layer(), ...(jz === undefined ? [] : [jz]), ...(opts.captureLayers ?? [])];
|
|
244
|
+
const jzLeftOut = new Map();
|
|
243
245
|
try {
|
|
244
246
|
const overlay = new DemoOverlay(secrets);
|
|
245
247
|
// The video's timeline starts at its FIRST FRAME, which under load arrives seconds after the page
|
|
@@ -306,7 +308,11 @@ export async function demoJourney(opts) {
|
|
|
306
308
|
entry.screenshot = file;
|
|
307
309
|
}
|
|
308
310
|
catch (err) {
|
|
309
|
-
|
|
311
|
+
// #471: an unprovable jz-mask-v1 capture leaves out that screenshot, never the demo.
|
|
312
|
+
if (err instanceof JzMaskUnprovenError)
|
|
313
|
+
jzLeftOut.set(index + 1, redact(err.message).slice(0, 300));
|
|
314
|
+
else
|
|
315
|
+
captureErrors.push(`step ${index + 1}: ${redact(err instanceof Error ? err.message : String(err))}`);
|
|
310
316
|
}
|
|
311
317
|
}
|
|
312
318
|
if (index === flat.length - 1) {
|
|
@@ -322,7 +328,7 @@ export async function demoJourney(opts) {
|
|
|
322
328
|
}
|
|
323
329
|
},
|
|
324
330
|
};
|
|
325
|
-
const { video, guide, paceMs: _pace, captureLayers: _layers, annotations: _annotations, draft: _draft, promotions: _promotions, ...runOpts } = opts;
|
|
331
|
+
const { video, guide, paceMs: _pace, captureLayers: _layers, annotations: _annotations, draft: _draft, promotions: _promotions, jzMask: _jzMask, ...runOpts } = opts;
|
|
326
332
|
const browser = video === undefined ? opts.browser : { ...opts.browser, recordVideo: { dir: work } };
|
|
327
333
|
const run = await runJourneyProgrammatically({
|
|
328
334
|
...runOpts,
|
|
@@ -356,7 +362,7 @@ export async function demoJourney(opts) {
|
|
|
356
362
|
}
|
|
357
363
|
// The replay completed: every promised output must exist — never a silently partial demo.
|
|
358
364
|
if (guide !== undefined) {
|
|
359
|
-
const missing = done.filter((s) => s.screenshot === undefined).map((s) => s.number);
|
|
365
|
+
const missing = done.filter((s) => s.screenshot === undefined && !jzLeftOut.has(s.number)).map((s) => s.number);
|
|
360
366
|
if (captureErrors.length > 0 || missing.length > 0) {
|
|
361
367
|
throw new DemoOutputError(`could not capture a screenshot for step(s) ${missing.join(", ")}${captureErrors.length > 0 ? `: ${captureErrors.join("; ")}` : ""}`);
|
|
362
368
|
}
|
|
@@ -401,7 +407,23 @@ export async function demoJourney(opts) {
|
|
|
401
407
|
...(run.screenshotIndex === undefined ? {} : { screenshotIndex: run.screenshotIndex }),
|
|
402
408
|
...(run.screenshotsSkipped === undefined ? {} : { screenshotsSkipped: run.screenshotsSkipped }),
|
|
403
409
|
};
|
|
404
|
-
|
|
410
|
+
let jzReport;
|
|
411
|
+
if (jz !== undefined) {
|
|
412
|
+
const breaches = mask.jzBreaches();
|
|
413
|
+
const reason = video === undefined
|
|
414
|
+
? "no video was recorded"
|
|
415
|
+
: breaches.length > 0
|
|
416
|
+
? `a frame could not be proven: ${breaches[0]}`
|
|
417
|
+
: jzLeftOut.size > 0
|
|
418
|
+
? `step ${[...jzLeftOut.keys()].join(", ")}: a screenshot could not be proven, so the video is not either`
|
|
419
|
+
: undefined;
|
|
420
|
+
jzReport = {
|
|
421
|
+
method: "dom-before-capture",
|
|
422
|
+
steps: guide === undefined ? [] : done.map((s) => (jzLeftOut.has(s.number) ? { step: s.number, leftOut: jzLeftOut.get(s.number) } : { step: s.number, regions: jz.regions(s.number) ?? 0 })),
|
|
423
|
+
video: reason === undefined ? { proven: true } : { proven: false, reason: redact(reason).slice(0, 300) },
|
|
424
|
+
};
|
|
425
|
+
}
|
|
426
|
+
return { id: opts.id, outcome: "ok", totalSteps: flat.length, ...result, ...shotFields, ...(jzReport === undefined ? {} : { jz: jzReport }) };
|
|
405
427
|
}
|
|
406
428
|
finally {
|
|
407
429
|
await rm(work, { recursive: true, force: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"journey-demo-api.js","sourceRoot":"","sources":["../src/journey-demo-api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"journey-demo-api.js","sourceRoot":"","sources":["../src/journey-demo-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,8 @@ const RULES = [
|
|
|
15
15
|
{ id: "nothing-after-last-write", level: "error" },
|
|
16
16
|
{ id: "no-persistence-check", level: "warning" },
|
|
17
17
|
{ id: "intent-uncovered", level: "warning" },
|
|
18
|
+
// #488: a literal upload fixture that is not there, resolved against the project root.
|
|
19
|
+
{ id: "upload-file-missing", level: "error" },
|
|
18
20
|
// #466: the 0.10 anchor rules — warnings on a Journey as it is; `journey promote` enforces them on new content.
|
|
19
21
|
...ANCHOR_RULE_CODES.map((id) => ({ id, level: "warning" })),
|
|
20
22
|
{ id: "anchor-job-step", level: "warning" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"journey-lint-sarif.js","sourceRoot":"","sources":["../src/journey-lint-sarif.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAiD,MAAM,mBAAmB,CAAC;AAErG;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,+CAA+C,CAAC;AAEzF,gFAAgF;AAChF,MAAM,KAAK,GAAuE;IAChF,EAAE,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,OAAO,EAAE;IAC5C,EAAE,EAAE,EAAE,sBAAsB,EAAE,KAAK,EAAE,OAAO,EAAE;IAC9C,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,OAAO,EAAE;IACzC,EAAE,EAAE,EAAE,0BAA0B,EAAE,KAAK,EAAE,OAAO,EAAE;IAClD,EAAE,EAAE,EAAE,sBAAsB,EAAE,KAAK,EAAE,SAAS,EAAE;IAChD,EAAE,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,SAAS,EAAE;IAC5C,gHAAgH;IAChH,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,SAAkB,EAAE,CAAC,CAAC;IACrE,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE;IAC3C,EAAE,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAS,EAAE;CAC3C,CAAC;AAcF,MAAM,UAAU,sBAAsB,CAAC,KAA4B;IACjE,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACjC,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,EAAE;QACb,gBAAgB,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QACnC,oBAAoB,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;KAC5C,CAAC,CAAC,CAAC;IACJ,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC/C,MAAM,EAAE,OAAO,CAAC,IAAI;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,WAAW,OAAO,CAAC,GAAG,EAAE,EAAE;QAC3G,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;QAC1E,SAAS,EAAE;YACT;gBACE,gBAAgB,EAAE;oBAChB,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAClC,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;iBAC5F;aACF;SACF;KACF,CAAC,CAAC,CAAC;IACJ,OAAO;QACL,OAAO,EAAE,yBAAyB;QAClC,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE;YACJ;gBACE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;gBAClF,OAAO;aACR;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"journey-lint-sarif.js","sourceRoot":"","sources":["../src/journey-lint-sarif.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAiD,MAAM,mBAAmB,CAAC;AAErG;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,+CAA+C,CAAC;AAEzF,gFAAgF;AAChF,MAAM,KAAK,GAAuE;IAChF,EAAE,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,OAAO,EAAE;IAC5C,EAAE,EAAE,EAAE,sBAAsB,EAAE,KAAK,EAAE,OAAO,EAAE;IAC9C,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,OAAO,EAAE;IACzC,EAAE,EAAE,EAAE,0BAA0B,EAAE,KAAK,EAAE,OAAO,EAAE;IAClD,EAAE,EAAE,EAAE,sBAAsB,EAAE,KAAK,EAAE,SAAS,EAAE;IAChD,EAAE,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,SAAS,EAAE;IAC5C,uFAAuF;IACvF,EAAE,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE;IAC7C,gHAAgH;IAChH,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,SAAkB,EAAE,CAAC,CAAC;IACrE,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE;IAC3C,EAAE,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAS,EAAE;CAC3C,CAAC;AAcF,MAAM,UAAU,sBAAsB,CAAC,KAA4B;IACjE,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACjC,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,EAAE;QACb,gBAAgB,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QACnC,oBAAoB,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;KAC5C,CAAC,CAAC,CAAC;IACJ,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC/C,MAAM,EAAE,OAAO,CAAC,IAAI;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,WAAW,OAAO,CAAC,GAAG,EAAE,EAAE;QAC3G,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;QAC1E,SAAS,EAAE;YACT;gBACE,gBAAgB,EAAE;oBAChB,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAClC,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;iBAC5F;aACF;SACF;KACF,CAAC,CAAC,CAAC;IACJ,OAAO;QACL,OAAO,EAAE,yBAAyB;QAClC,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE;YACJ;gBACE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;gBAClF,OAAO;aACR;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -11,6 +11,9 @@ import { type Journey } from "@jevitate/journey";
|
|
|
11
11
|
import type { JourneyRunResult } from "@jevitate/runtime";
|
|
12
12
|
import type { Actor } from "@jevitate/screenplay";
|
|
13
13
|
import { type StepObserver } from "@jevitate/interpreter";
|
|
14
|
+
import { type SlowStepFinding } from "@jevitate/explore";
|
|
15
|
+
/** #486/L2: the largest `--step-response-timeout` / `stepResponseTimeoutMs` accepted (5 minutes): a step never waits longer. */
|
|
16
|
+
export declare const MAX_STEP_RESPONSE_TIMEOUT_MS = 300000;
|
|
14
17
|
/**
|
|
15
18
|
* #402: one failed assertion site from the last `run`, as structured data. The same sites the joined
|
|
16
19
|
* `reason` string names, so a mutation proof can see WHICH expectation a mutation broke.
|
|
@@ -32,13 +35,21 @@ export type OutcomeCheckFailure = {
|
|
|
32
35
|
readonly where: "unevaluable";
|
|
33
36
|
readonly detail: string;
|
|
34
37
|
};
|
|
38
|
+
/** #486: an advisory `slow-step` finding — a step's response was late but 2xx (never a quarantine). */
|
|
39
|
+
export interface SlowStep extends SlowStepFinding {
|
|
40
|
+
/** 1-based step number. */
|
|
41
|
+
readonly step: number;
|
|
42
|
+
}
|
|
35
43
|
export declare class JourneyOutcomeChecks {
|
|
36
44
|
#private;
|
|
37
45
|
/** `journey` undefined (an anchored prefix run): nothing is judged. */
|
|
38
46
|
constructor(page: Page, journey: Journey | undefined, opts?: {
|
|
39
47
|
readonly secrets?: readonly string[];
|
|
48
|
+
readonly stepResponseTimeoutMs?: number;
|
|
40
49
|
});
|
|
41
50
|
get active(): boolean;
|
|
51
|
+
/** #486: advisory `slow-step` findings of the last `run` (empty when every response came promptly). */
|
|
52
|
+
get slowSteps(): readonly SlowStep[];
|
|
42
53
|
/** #402: the failed assertion sites of the last `run` (empty when every check held, or none ran). */
|
|
43
54
|
get lastFailures(): readonly OutcomeCheckFailure[];
|
|
44
55
|
/**
|
|
@@ -2,7 +2,9 @@ import { journeyEndState } from "@jevitate/journey";
|
|
|
2
2
|
import { installFlashRecorder } from "@jevitate/interpreter";
|
|
3
3
|
import { describeStep } from "@jevitate/journey";
|
|
4
4
|
import { clock } from "@jevitate/domain";
|
|
5
|
-
import {
|
|
5
|
+
import { DEFAULT_STEP_RESPONSE_TIMEOUT_MS, evaluateNetworkCheckAwaiting, evaluateOutcomeChecks, monitorFor } from "@jevitate/explore";
|
|
6
|
+
/** #486/L2: the largest `--step-response-timeout` / `stepResponseTimeoutMs` accepted (5 minutes): a step never waits longer. */
|
|
7
|
+
export const MAX_STEP_RESPONSE_TIMEOUT_MS = 300_000;
|
|
6
8
|
/** How long the network may take to go idle after the last step before the checks read it. */
|
|
7
9
|
const SETTLE_CEILING_MS = 5_000;
|
|
8
10
|
export class JourneyOutcomeChecks {
|
|
@@ -10,10 +12,13 @@ export class JourneyOutcomeChecks {
|
|
|
10
12
|
#end;
|
|
11
13
|
#steps;
|
|
12
14
|
#secrets;
|
|
15
|
+
#responseTimeoutMs;
|
|
13
16
|
#lastFailures = [];
|
|
17
|
+
#slowSteps = [];
|
|
14
18
|
/** `journey` undefined (an anchored prefix run): nothing is judged. */
|
|
15
19
|
constructor(page, journey, opts = {}) {
|
|
16
20
|
this.#page = page;
|
|
21
|
+
this.#responseTimeoutMs = opts.stepResponseTimeoutMs ?? DEFAULT_STEP_RESPONSE_TIMEOUT_MS;
|
|
17
22
|
this.#secrets = opts.secrets ?? [];
|
|
18
23
|
this.#end = journey === undefined ? [] : journeyEndState(journey);
|
|
19
24
|
this.#steps = [];
|
|
@@ -21,7 +26,7 @@ export class JourneyOutcomeChecks {
|
|
|
21
26
|
for (const p of journey?.recording.pages ?? []) {
|
|
22
27
|
for (const r of p.steps) {
|
|
23
28
|
if ((r.expectRequests ?? []).length > 0)
|
|
24
|
-
this.#steps.push({ index: i, label: describeStep(r.step), checks: r.expectRequests ?? [] });
|
|
29
|
+
this.#steps.push({ index: i, label: describeStep(r.step), checks: r.expectRequests ?? [], ...(r.responseTimeoutMs === undefined ? {} : { responseTimeoutMs: r.responseTimeoutMs }) });
|
|
25
30
|
i += 1;
|
|
26
31
|
}
|
|
27
32
|
}
|
|
@@ -29,6 +34,10 @@ export class JourneyOutcomeChecks {
|
|
|
29
34
|
get active() {
|
|
30
35
|
return this.#end.length > 0 || this.#steps.length > 0;
|
|
31
36
|
}
|
|
37
|
+
/** #486: advisory `slow-step` findings of the last `run` (empty when every response came promptly). */
|
|
38
|
+
get slowSteps() {
|
|
39
|
+
return this.#slowSteps;
|
|
40
|
+
}
|
|
32
41
|
/** #402: the failed assertion sites of the last `run` (empty when every check held, or none ran). */
|
|
33
42
|
get lastFailures() {
|
|
34
43
|
return this.#lastFailures;
|
|
@@ -54,12 +63,19 @@ export class JourneyOutcomeChecks {
|
|
|
54
63
|
},
|
|
55
64
|
};
|
|
56
65
|
}
|
|
66
|
+
#stopCaptures(monitor, capture) {
|
|
67
|
+
monitor.stopCapture(capture);
|
|
68
|
+
for (const s of this.#steps)
|
|
69
|
+
if (s.capture !== undefined)
|
|
70
|
+
monitor.stopCapture(s.capture);
|
|
71
|
+
}
|
|
57
72
|
/**
|
|
58
73
|
* Runs `replay` with the page's requests captured, then judges the checks. A replay that already
|
|
59
74
|
* failed keeps its own reason. Without checks it just runs `replay`.
|
|
60
75
|
*/
|
|
61
76
|
async run(actor, replay) {
|
|
62
77
|
this.#lastFailures = [];
|
|
78
|
+
this.#slowSteps = [];
|
|
63
79
|
if (!this.active)
|
|
64
80
|
return replay();
|
|
65
81
|
const monitor = monitorFor(this.#page);
|
|
@@ -71,17 +87,17 @@ export class JourneyOutcomeChecks {
|
|
|
71
87
|
let result;
|
|
72
88
|
try {
|
|
73
89
|
result = await replay();
|
|
74
|
-
if (result.outcome === "quarantined" || result.outcome === "heal-exhausted")
|
|
90
|
+
if (result.outcome === "quarantined" || result.outcome === "heal-exhausted") {
|
|
91
|
+
this.#stopCaptures(monitor, capture);
|
|
75
92
|
return result;
|
|
93
|
+
}
|
|
76
94
|
// A step's postcondition can hold before the write it triggered finished: wait for the network
|
|
77
95
|
// to go idle (bounded) before reading what was sent.
|
|
78
96
|
await monitor.waitSettled({ ceilingMs: SETTLE_CEILING_MS }).catch(() => undefined);
|
|
79
97
|
}
|
|
80
|
-
|
|
81
|
-
monitor
|
|
82
|
-
|
|
83
|
-
if (s.capture !== undefined)
|
|
84
|
-
monitor.stopCapture(s.capture);
|
|
98
|
+
catch (e) {
|
|
99
|
+
this.#stopCaptures(monitor, capture);
|
|
100
|
+
throw e;
|
|
85
101
|
}
|
|
86
102
|
// Step windows first (the end state's reload must not count as a step's request).
|
|
87
103
|
const stepFailureSites = [];
|
|
@@ -92,15 +108,22 @@ export class JourneyOutcomeChecks {
|
|
|
92
108
|
// A request still in flight when the step began (the previous step's write) finishes inside
|
|
93
109
|
// this window: only requests SENT from the step's start count.
|
|
94
110
|
const since = s.startedAt;
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
const r =
|
|
111
|
+
for (const [checkIndex, c] of s.checks.entries()) {
|
|
112
|
+
// #486: a request still awaiting its response (a cold start) is waited for, up to the bound.
|
|
113
|
+
const { result: r, slowStep } = await evaluateNetworkCheckAwaiting(c, () => ({
|
|
114
|
+
requests: window.sent().filter((q) => since === undefined || (q.startedAt !== undefined && q.startedAt >= since)),
|
|
115
|
+
truncated: window.truncated,
|
|
116
|
+
}), s.responseTimeoutMs ?? this.#responseTimeoutMs);
|
|
117
|
+
if (slowStep !== undefined)
|
|
118
|
+
this.#slowSteps.push({ ...slowStep, step: s.index + 1 });
|
|
98
119
|
if (r.passed)
|
|
99
|
-
|
|
120
|
+
continue;
|
|
100
121
|
stepFailureSites.push({ where: "step-request", step: s.index + 1, checkIndex, detail: `${r.check} — ${r.detail}` });
|
|
101
122
|
stepFailureReasons.push(`step ${s.index + 1} (${s.label}): ${r.check} — ${r.detail}`);
|
|
102
|
-
}
|
|
123
|
+
}
|
|
103
124
|
}
|
|
125
|
+
// The captures stay live through the waits above (#486): a pending request's response lands in them.
|
|
126
|
+
this.#stopCaptures(monitor, capture);
|
|
104
127
|
let end = [];
|
|
105
128
|
if (this.#end.length > 0) {
|
|
106
129
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"journey-network-checks.js","sourceRoot":"","sources":["../src/journey-network-checks.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,eAAe,EAAgB,MAAM,mBAAmB,CAAC;AAIlE,OAAO,EAAE,oBAAoB,EAAqB,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"journey-network-checks.js","sourceRoot":"","sources":["../src/journey-network-checks.ts"],"names":[],"mappings":"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"}
|
package/dist/load-api.js
CHANGED
|
@@ -7,7 +7,7 @@ import { CastActor, BrowseTheWeb } from "@jevitate/screenplay";
|
|
|
7
7
|
import { RecordingInterpreter } from "@jevitate/interpreter";
|
|
8
8
|
import { JourneyRunner } from "@jevitate/runtime";
|
|
9
9
|
import { runLoadTest } from "@jevitate/load";
|
|
10
|
-
import { JourneyRequiresAuthError } from "./journey-api.js";
|
|
10
|
+
import { JourneyRequiresAuthError, journeyFixtureBaseDir } from "./journey-api.js";
|
|
11
11
|
import { JourneyOutcomeChecks } from "./journey-network-checks.js";
|
|
12
12
|
import { applyJourneyEnvironment } from "./environments.js";
|
|
13
13
|
/** Distinct from `@jevitate/journey`'s ParamValidationError-style "unknown id" cases elsewhere, so CLI callers can branch without string-matching. */
|
|
@@ -45,6 +45,8 @@ export async function runJourneyLoadTest(opts) {
|
|
|
45
45
|
validateParams(deriveParamSchema(journey.recording), opts.params);
|
|
46
46
|
const policy = opts.policy ?? safeRunPolicy();
|
|
47
47
|
const browserPortFactory = opts.browserPortFactory ?? (() => new PlaywrightBrowserPort());
|
|
48
|
+
// #488: a relative `upload` fixture resolves against the project root, never the process cwd.
|
|
49
|
+
const fixtureBaseDir = journeyFixtureBaseDir();
|
|
48
50
|
return runLoadTest({
|
|
49
51
|
targetOrigin: journey.recording.site,
|
|
50
52
|
authorizedOrigins: opts.authorizedOrigins,
|
|
@@ -66,7 +68,7 @@ export async function runJourneyLoadTest(opts) {
|
|
|
66
68
|
// each step's `expectRequests` are judged, so a replay whose checks fail is not an ok run.
|
|
67
69
|
const outcomeChecks = new JourneyOutcomeChecks(session.page, journey, { secrets: secretParamValues(journey, opts.params) });
|
|
68
70
|
const observer = outcomeChecks.observer();
|
|
69
|
-
const interpreter = observer === undefined ? new RecordingInterpreter() : new RecordingInterpreter({ observer });
|
|
71
|
+
const interpreter = observer === undefined ? new RecordingInterpreter({ fixtureBaseDir }) : new RecordingInterpreter({ observer, fixtureBaseDir });
|
|
70
72
|
const runner = new JourneyRunner(actor, interpreter);
|
|
71
73
|
// `runLoadTest` calls `run()` exactly `iterationsPerActor` times for
|
|
72
74
|
// this actor — success or failure, never more, never fewer (see
|
package/dist/load-api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-api.js","sourceRoot":"","sources":["../src/load-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE1H,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAkB,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAmE,MAAM,sBAAsB,CAAC;AAC9H,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,WAAW,EAA6C,MAAM,gBAAgB,CAAC;AACxF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"load-api.js","sourceRoot":"","sources":["../src/load-api.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp-api.d.ts
CHANGED
|
@@ -57,13 +57,15 @@ export interface McpJourneyRunOptions {
|
|
|
57
57
|
readonly fixtures?: (site: string) => MissionFixtures | undefined;
|
|
58
58
|
/** #303: record and compare each replayed step's action delta (`--action-deltas`). */
|
|
59
59
|
readonly actionDeltas?: boolean;
|
|
60
|
+
/** #486: the in-flight response bound of a step's responseStatus check (`--step-response-timeout`). */
|
|
61
|
+
readonly stepResponseTimeoutMs?: number;
|
|
60
62
|
}
|
|
61
63
|
/**
|
|
62
64
|
* #255: what `verify_fix` hands the runner — the finding (resolved result path + fingerprint) and
|
|
63
65
|
* the CLI-parity replay options. Operator-only settings (shell hooks, `cmd:` log sources, re-sending
|
|
64
66
|
* paid/destructive hang writes, redaction literals) are never MCP arguments: targets.json decides.
|
|
65
67
|
*/
|
|
66
|
-
export type McpVerifyFixArgs = Pick<RunVerifyFixOptions, "resultPath" | "fingerprint"> & Partial<Pick<RunVerifyFixOptions, "storageState" | "browser" | "replays" | "invariantFiles" | "fixtureFlags" | "emulation" | "allowEmulationOverride" | "screenshots" | "actionDeltas">>;
|
|
68
|
+
export type McpVerifyFixArgs = Pick<RunVerifyFixOptions, "resultPath" | "fingerprint"> & Partial<Pick<RunVerifyFixOptions, "storageState" | "browser" | "replays" | "invariantFiles" | "fixtureFlags" | "emulation" | "allowEmulationOverride" | "screenshots" | "actionDeltas" | "allow" | "env" | "environmentsFile">>;
|
|
67
69
|
export interface McpApiDeps {
|
|
68
70
|
/** Journeys store directory (`~/.jevitate/journeys` in production). */
|
|
69
71
|
journeysDir: string;
|
package/dist/mcp-api.js
CHANGED
|
@@ -25,6 +25,7 @@ import { parseScreenshotsArg } from "./run-screenshots.js";
|
|
|
25
25
|
import { makeEvidenceSelfHealer } from "./self-heal-adapter.js";
|
|
26
26
|
import { JourneyHealArgsError, MCP_HEAL_NAMES, journeyHealBudget, readJourneyChangeScope, validateJourneyHeal } from "./journey-heal.js";
|
|
27
27
|
import { ChangesArgsError, ChangesInputError } from "./change-context.js";
|
|
28
|
+
import { MAX_STEP_RESPONSE_TIMEOUT_MS } from "./journey-network-checks.js";
|
|
28
29
|
import { McpArgError, argErrorBody, optBool, optEnum, optInt, optNamedSessions, optPath, optExtensions, optRecordVideo, optScreenshots, optString, optStringArray, optStringMap, optViewport } from "./mcp-args.js";
|
|
29
30
|
import { defaultMcpPathRoots } from "./mcp-paths.js";
|
|
30
31
|
import { CLI_TOOL_SPECS, cliToolInputSchema, runCliTool } from "./mcp-cli-tools.js";
|
|
@@ -128,6 +129,7 @@ export function buildMcpTools(deps) {
|
|
|
128
129
|
...(o?.screenshots === undefined ? {} : { screenshots: o.screenshots }),
|
|
129
130
|
...(o?.fixtures === undefined ? {} : { fixtures: o.fixtures }),
|
|
130
131
|
...(o?.actionDeltas === true ? { actionDeltas: true } : {}),
|
|
132
|
+
...(o?.stepResponseTimeoutMs === undefined ? {} : { stepResponseTimeoutMs: o.stepResponseTimeoutMs }),
|
|
131
133
|
})));
|
|
132
134
|
const pathRoots = deps.pathRoots ?? defaultMcpPathRoots();
|
|
133
135
|
// queue_exploration: enqueue over the SAME promoted fs store `jevitate
|
|
@@ -332,6 +334,9 @@ export function buildMcpTools(deps) {
|
|
|
332
334
|
...(a.allowEmulationOverride === undefined ? {} : { allowEmulationOverride: a.allowEmulationOverride }),
|
|
333
335
|
...(a.screenshots === undefined ? {} : { screenshots: a.screenshots }),
|
|
334
336
|
...(a.actionDeltas === true ? { actionDeltas: true } : {}),
|
|
337
|
+
...(a.allow === undefined ? {} : { allow: a.allow }),
|
|
338
|
+
...(a.env === undefined ? {} : { env: a.env }),
|
|
339
|
+
...(a.environmentsFile === undefined ? {} : { environmentsFile: a.environmentsFile }),
|
|
335
340
|
}));
|
|
336
341
|
/** #255: verify_fix's CLI-parity replay options, validated like `verify-fix`'s flags (typed, before any browser). */
|
|
337
342
|
const verifyFixOptions = (args) => {
|
|
@@ -353,6 +358,12 @@ export function buildMcpTools(deps) {
|
|
|
353
358
|
const extension = optExtensions(args, pathRoots);
|
|
354
359
|
const governance = governanceArgs(args);
|
|
355
360
|
const actionDeltas = optBool(args, "actionDeltas");
|
|
361
|
+
// #484: replaying under another allow list widens what the replay may reach — explicit only (never
|
|
362
|
+
// defaulted), and the report carries allowlistOverride. An MCP caller never names origins: only
|
|
363
|
+
// `env` (an operator-configured environment) can override the stored list; `--allow` is CLI-only.
|
|
364
|
+
if (args["allow"] !== undefined)
|
|
365
|
+
throw new McpArgError("'allow' is not an MCP argument: a replay reaches only operator-configured origins — pass 'env' (an environment in environments.json), or run `jevitate verify-fix --allow` yourself");
|
|
366
|
+
const env = optString(args, "env");
|
|
356
367
|
try {
|
|
357
368
|
const browser = browserRunFromFlags({ browserArg: [], ...governance, ...(extension === undefined ? {} : { extension }), ...(headed === undefined ? {} : { headed }), ...(slowMo === undefined ? {} : { slowMo }), ...(recordVideo === undefined ? {} : { recordVideo }) });
|
|
358
369
|
const screenshots = parseScreenshotsArg(shots);
|
|
@@ -369,6 +380,7 @@ export function buildMcpTools(deps) {
|
|
|
369
380
|
...(screenshots === undefined ? {} : { screenshots }),
|
|
370
381
|
...(emulation === undefined ? {} : { emulation }),
|
|
371
382
|
...(actionDeltas === true ? { actionDeltas: true } : {}),
|
|
383
|
+
...(env === undefined ? {} : { env, ...(deps.environmentsFile === undefined ? {} : { environmentsFile: deps.environmentsFile }) }),
|
|
372
384
|
};
|
|
373
385
|
}
|
|
374
386
|
catch (err) {
|
|
@@ -517,6 +529,10 @@ export function buildMcpTools(deps) {
|
|
|
517
529
|
const healMaxMs = optInt(args, "healMaxMs", 1);
|
|
518
530
|
const healMaxRunAttempts = optInt(args, "healMaxRunAttempts", 1);
|
|
519
531
|
const healMaxRunMs = optInt(args, "healMaxRunMs", 1);
|
|
532
|
+
const stepResponseTimeoutMs = optInt(args, "stepResponseTimeoutMs", 1);
|
|
533
|
+
if (stepResponseTimeoutMs !== undefined && stepResponseTimeoutMs > MAX_STEP_RESPONSE_TIMEOUT_MS) {
|
|
534
|
+
throw new McpArgError(`'stepResponseTimeoutMs' must be an integer from 1 to ${MAX_STEP_RESPONSE_TIMEOUT_MS}`);
|
|
535
|
+
}
|
|
520
536
|
const healRequest = {
|
|
521
537
|
selfHeal,
|
|
522
538
|
...(changes === undefined ? {} : { changes }),
|
|
@@ -559,6 +575,7 @@ export function buildMcpTools(deps) {
|
|
|
559
575
|
...(emulation === undefined ? {} : { emulation }),
|
|
560
576
|
...(screenshots === undefined ? {} : { screenshots }),
|
|
561
577
|
...(optBool(args, "actionDeltas") === true ? { actionDeltas: true } : {}),
|
|
578
|
+
...(stepResponseTimeoutMs === undefined ? {} : { stepResponseTimeoutMs }),
|
|
562
579
|
},
|
|
563
580
|
...(usage === undefined ? {} : { usage }),
|
|
564
581
|
};
|
|
@@ -568,7 +585,7 @@ export function buildMcpTools(deps) {
|
|
|
568
585
|
description: "Replay a finding's reproduction (by mission result id — or a finished queue_exploration missionId — + fingerprint) N times in fresh browsers (default 3) — `jevitate verify-fix`. status: fixed (signal absent on every replay) | still-reproduces | intermittent (fired on some but not all replays — never a pass) | inconclusive (replay could not reach the step — never a pass). " +
|
|
569
586
|
"#255 (same as the CLI flags): 'replays' (>= 1); 'recordVideo' (true or a directory: the before/after evidence pair — `evidence.before` is the run's own clip, `evidence.after` a captioned replay — plus videoPaths); 'screenshots'; 'headed'/'slowMo'; " +
|
|
570
587
|
"'storageState' (a path inside the project or ~/.jevitate, never a repo's .jevitate/; overrides the mission's session); 'viewport' {width,height} or 'device' (refused when it differs from the finding's recorded emulation unless 'allowEmulationOverride'); 'geolocation' '<lat>,<lng>[,<accuracy m>]' (#329); " +
|
|
571
|
-
"'invariants' (invariant file paths re-checking a declared-invariant defect); 'fixtures' (a fixtures file overriding the mission's saved one); 'fixtureIdentity' (#243: 'name=<storageState path>' entries re-binding a fixture step's auth.identity; default: the identities the mission recorded); 'extension' (#256: unpacked extension directories — refused unless the same build the finding was recorded with); 'actionDeltas' (#303, opt-in: the defect step's replayed delta vs the recorded one, as evidence on each attempt); 'maxBrowsers'/'maxBrowserMemory' (#205: machine-wide browser cap, browser memory ceiling in MiB); 'tags' (#426: {key: value} run metadata, returned on the result — never a secret). Operator-only settings (shell hooks, cmd: log sources, re-sending paid/destructive hang writes) come from targets.json, never an argument.",
|
|
588
|
+
"'invariants' (invariant file paths re-checking a declared-invariant defect); 'fixtures' (a fixtures file overriding the mission's saved one); 'fixtureIdentity' (#243: 'name=<storageState path>' entries re-binding a fixture step's auth.identity; default: the identities the mission recorded); 'extension' (#256: unpacked extension directories — refused unless the same build the finding was recorded with); 'actionDeltas' (#303, opt-in: the defect step's replayed delta vs the recorded one, as evidence on each attempt); 'maxBrowsers'/'maxBrowserMemory' (#205: machine-wide browser cap, browser memory ceiling in MiB); 'tags' (#426: {key: value} run metadata, returned on the result — never a secret); #484 'env' (a named environment in environments.json: replay under its CURRENT allow list instead of the one stored with the result, e.g. to prove a localhost → 127.0.0.1 config fix; explicit only, never defaulted) — the result then carries allowlistOverride (source, origins, recorded, added, removed); raw origins are CLI-only (`jevitate verify-fix --allow`), never an MCP argument. Operator-only settings (shell hooks, cmd: log sources, re-sending paid/destructive hang writes) come from targets.json, never an argument.",
|
|
572
589
|
inputSchema: {
|
|
573
590
|
type: "object",
|
|
574
591
|
properties: {
|
|
@@ -592,6 +609,7 @@ export function buildMcpTools(deps) {
|
|
|
592
609
|
maxBrowsers: { type: "integer", minimum: 1 },
|
|
593
610
|
maxBrowserMemory: { type: "integer", minimum: 1 },
|
|
594
611
|
tags: { type: "object", additionalProperties: { type: "string" } },
|
|
612
|
+
env: { type: "string" },
|
|
595
613
|
},
|
|
596
614
|
required: ["id", "fingerprint"],
|
|
597
615
|
},
|
|
@@ -615,7 +633,7 @@ export function buildMcpTools(deps) {
|
|
|
615
633
|
"with a clear error when no storageState is given. #255 (same as the CLI flags): 'env' (a named environment in .jevitate/environments.json; its session from ~/.jevitate/targets.json) and/or 'baseUrl'; " +
|
|
616
634
|
"'headed' (needs a display) and 'slowMo'; 'recordVideo' (true, or a directory) → videoPaths; 'screenshots' (true | screens | steps | mode:<dir> | <dir>) → screenshotPaths; " +
|
|
617
635
|
"'viewport' {width,height} or 'device' (mutually exclusive); 'geolocation' '<lat>,<lng>[,<accuracy m>]' (#329); 'fixtures' (a fixtures JSON path: setup before, restore after; 'fixtureIdentity' (#243) 'name=<storageState path>' entries name who a step with auth.identity authenticates as; an environment's shell hooks are never run over MCP — they refuse as the CLI does without --allow-shell-hooks); " +
|
|
618
|
-
"'extension' (#256: unpacked extension directories inside the project or ~/.jevitate; a Journey recorded with extensions needs the same build); 'selfHeal' fail-closed (default) | hybrid | full with 'real' or 'fakeAi' (a write step never self-heals; 'jevProvider' typesafe | openrouter picks the Jev key with real, #429) — #453: a heal mode needs a change context, 'changes' (a git range such as HEAD~1..HEAD, read-only) and/or 'changeNote' (strings), else it is refused; only a break that change explains is retargeted, one-for-one, and the run ends healed-pending-review (exitCode 5: a proposed revision a person accepts, never a pass); budgets 'healMaxAttempts'/'healMaxModelCalls'/'healMaxMs' (per broken step) and 'healMaxRunAttempts'/'healMaxRunMs' (per run), each >= 1; the result's 'exitCode' is the CLI's (0 ok, 5 pending review, 1 failed); 'actionDeltas' (#303, opt-in: each replayed step's action delta, compared with the recorded one → actionDeltas); 'maxBrowsers'/'maxBrowserMemory' (#205: machine-wide browser cap, browser memory ceiling in MiB); 'tags' (#426: {key: value} run metadata, returned on the result — never a secret). A site-policy refusal is {error: throttled, retryAfter}.",
|
|
636
|
+
"'extension' (#256: unpacked extension directories inside the project or ~/.jevitate; a Journey recorded with extensions needs the same build); 'selfHeal' fail-closed (default) | hybrid | full with 'real' or 'fakeAi' (a write step never self-heals; 'jevProvider' typesafe | openrouter picks the Jev key with real, #429) — #453: a heal mode needs a change context, 'changes' (a git range such as HEAD~1..HEAD, read-only) and/or 'changeNote' (strings), else it is refused; only a break that change explains is retargeted, one-for-one, and the run ends healed-pending-review (exitCode 5: a proposed revision a person accepts, never a pass); budgets 'healMaxAttempts'/'healMaxModelCalls'/'healMaxMs' (per broken step) and 'healMaxRunAttempts'/'healMaxRunMs' (per run), each >= 1; the result's 'exitCode' is the CLI's (0 ok, 5 pending review, 1 failed); 'actionDeltas' (#303, opt-in: each replayed step's action delta, compared with the recorded one → actionDeltas); 'stepResponseTimeoutMs' (#486, 1..300000, default 15000: how long a step's responseStatus check waits for a request sent but not yet answered, e.g. a cold start — a late 2xx is an advisory slowSteps finding; a step's own responseTimeoutMs overrides it); 'maxBrowsers'/'maxBrowserMemory' (#205: machine-wide browser cap, browser memory ceiling in MiB); 'tags' (#426: {key: value} run metadata, returned on the result — never a secret). A site-policy refusal is {error: throttled, retryAfter}.",
|
|
619
637
|
inputSchema: {
|
|
620
638
|
type: "object",
|
|
621
639
|
properties: {
|
|
@@ -648,6 +666,7 @@ export function buildMcpTools(deps) {
|
|
|
648
666
|
maxBrowsers: { type: "integer", minimum: 1 },
|
|
649
667
|
maxBrowserMemory: { type: "integer", minimum: 1 },
|
|
650
668
|
actionDeltas: { type: "boolean" },
|
|
669
|
+
stepResponseTimeoutMs: { type: "integer", minimum: 1, maximum: MAX_STEP_RESPONSE_TIMEOUT_MS },
|
|
651
670
|
tags: { type: "object", additionalProperties: { type: "string" } },
|
|
652
671
|
},
|
|
653
672
|
required: ["id"],
|