@jevitate/cli 0.17.0 → 0.18.1
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/author-journey-cli.js +11 -8
- package/dist/author-journey-cli.js.map +1 -1
- package/dist/bin.js +2802 -1110
- package/dist/build-info.generated.js +3 -3
- package/dist/catalog-api.d.ts +22 -0
- package/dist/catalog-api.js +49 -0
- package/dist/catalog-api.js.map +1 -1
- package/dist/catalog-cli.js +59 -37
- package/dist/catalog-cli.js.map +1 -1
- package/dist/cli-shared.d.ts +6 -1
- package/dist/cli-shared.js +11 -2
- package/dist/cli-shared.js.map +1 -1
- package/dist/exit-codes.js +8 -0
- package/dist/exit-codes.js.map +1 -1
- package/dist/journeeze-api.d.ts +5 -0
- package/dist/journeeze-api.js +24 -9
- package/dist/journeeze-api.js.map +1 -1
- package/dist/journeeze-connect.d.ts +2 -0
- package/dist/journeeze-connect.js +9 -1
- package/dist/journeeze-connect.js.map +1 -1
- package/dist/journey-anchor-cli.js +16 -8
- package/dist/journey-anchor-cli.js.map +1 -1
- package/dist/journey-annotate-cli.js +10 -5
- package/dist/journey-annotate-cli.js.map +1 -1
- package/dist/journey-api.d.ts +2 -0
- package/dist/journey-api.js +14 -0
- package/dist/journey-api.js.map +1 -1
- package/dist/journey-bundle.d.ts +83 -0
- package/dist/journey-bundle.js +267 -0
- package/dist/journey-bundle.js.map +1 -0
- package/dist/journey-chain.d.ts +14 -1
- package/dist/journey-chain.js +139 -8
- package/dist/journey-chain.js.map +1 -1
- package/dist/journey-cli/anchors.js +11 -6
- package/dist/journey-cli/anchors.js.map +1 -1
- package/dist/journey-cli/chain.js +12 -5
- package/dist/journey-cli/chain.js.map +1 -1
- package/dist/journey-cli/find.js +10 -5
- package/dist/journey-cli/find.js.map +1 -1
- package/dist/journey-cli/lint.js +14 -10
- package/dist/journey-cli/lint.js.map +1 -1
- package/dist/journey-cli/list.js +10 -5
- package/dist/journey-cli/list.js.map +1 -1
- package/dist/journey-cli/migrate.js +13 -6
- package/dist/journey-cli/migrate.js.map +1 -1
- package/dist/journey-cli/promote.js +14 -9
- package/dist/journey-cli/promote.js.map +1 -1
- package/dist/journey-cli/publish.js +12 -6
- package/dist/journey-cli/publish.js.map +1 -1
- package/dist/journey-cli/review.js +15 -9
- package/dist/journey-cli/review.js.map +1 -1
- package/dist/journey-cli/run.js +25 -10
- package/dist/journey-cli/run.js.map +1 -1
- package/dist/journey-cli/shared.d.ts +25 -1
- package/dist/journey-cli/shared.js +36 -0
- package/dist/journey-cli/shared.js.map +1 -1
- package/dist/journey-cli/verify.js +13 -6
- package/dist/journey-cli/verify.js.map +1 -1
- package/dist/journey-cli-bundle.d.ts +4 -0
- package/dist/journey-cli-bundle.js +70 -0
- package/dist/journey-cli-bundle.js.map +1 -0
- package/dist/journey-cli-readiness.d.ts +4 -0
- package/dist/journey-cli-readiness.js +163 -0
- package/dist/journey-cli-readiness.js.map +1 -0
- package/dist/journey-cli.js +5 -0
- package/dist/journey-cli.js.map +1 -1
- package/dist/journey-demo-cli.js +10 -5
- package/dist/journey-demo-cli.js.map +1 -1
- package/dist/journey-handback.d.ts +62 -0
- package/dist/journey-handback.js +152 -0
- package/dist/journey-handback.js.map +1 -0
- package/dist/journey-link-api.js +1 -1
- package/dist/journey-link-api.js.map +1 -1
- package/dist/journey-link-cli.js +13 -8
- package/dist/journey-link-cli.js.map +1 -1
- package/dist/journey-readiness.d.ts +104 -0
- package/dist/journey-readiness.js +381 -0
- package/dist/journey-readiness.js.map +1 -0
- package/dist/mcp-cli-tools.js +57 -21
- package/dist/mcp-cli-tools.js.map +1 -1
- package/dist/program.js +3 -0
- package/dist/program.js.map +1 -1
- package/dist/project-layout.d.ts +57 -0
- package/dist/project-layout.js +144 -0
- package/dist/project-layout.js.map +1 -0
- package/dist/project-where.d.ts +4 -0
- package/dist/project-where.js +48 -0
- package/dist/project-where.js.map +1 -0
- package/package.json +9 -9
package/dist/journey-chain.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { FsJourneyStore, JourneyRegistry, journeyParamSchema } from "@jevitate/journey";
|
|
1
|
+
import { FsJourneyStore, JourneyRegistry, bindParams, checkCompatibility, handoffKey, journeyParamSchema, outputKeyFields, readRecords as readHandoffRecords, recordFingerprint, validateRecords, validateRequests, } from "@jevitate/journey";
|
|
2
|
+
import { clock } from "@jevitate/domain";
|
|
2
3
|
import { runJourneyProgrammatically, UnknownJourneyError } from "./journey-api.js";
|
|
3
4
|
/** A chain-stopping failure (§5 steps 1, 2 and the §4 request contract). */
|
|
4
5
|
export class JourneyChainError extends Error {
|
|
@@ -104,9 +105,9 @@ function chainParams(record, request, declared) {
|
|
|
104
105
|
* so the text-bearing params (the reply and the source comment) are replaced by `<param name>`.
|
|
105
106
|
*/
|
|
106
107
|
const TEXT_PARAMS = ["replyText", "expected_sourcetext"];
|
|
107
|
-
function redactReason(reason, params) {
|
|
108
|
+
function redactReason(reason, params, names = TEXT_PARAMS) {
|
|
108
109
|
let out = reason;
|
|
109
|
-
for (const name of
|
|
110
|
+
for (const name of names) {
|
|
110
111
|
const value = params[name];
|
|
111
112
|
if (value === undefined || value === "")
|
|
112
113
|
continue;
|
|
@@ -131,6 +132,117 @@ function sharedRunOptions(opts) {
|
|
|
131
132
|
...(opts.siteGate === undefined ? {} : { siteGate: opts.siteGate }),
|
|
132
133
|
};
|
|
133
134
|
}
|
|
135
|
+
/** §4 step 5: parse the request file as JSON Lines objects; field validation is `validateRequests`. */
|
|
136
|
+
function parseRequestObjects(text) {
|
|
137
|
+
const requests = [];
|
|
138
|
+
const lines = text.split(/\r?\n/);
|
|
139
|
+
for (let n = 0; n < lines.length; n++) {
|
|
140
|
+
const line = lines[n]?.trim() ?? "";
|
|
141
|
+
if (line === "")
|
|
142
|
+
continue;
|
|
143
|
+
let parsed;
|
|
144
|
+
try {
|
|
145
|
+
parsed = JSON.parse(line);
|
|
146
|
+
}
|
|
147
|
+
catch {
|
|
148
|
+
throw new JourneyChainError("E_CHAIN_REQUEST", `request line ${n + 1} is not valid JSON`);
|
|
149
|
+
}
|
|
150
|
+
if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) {
|
|
151
|
+
throw new JourneyChainError("E_CHAIN_REQUEST", `request line ${n + 1} must be a JSON object`);
|
|
152
|
+
}
|
|
153
|
+
requests.push(parsed);
|
|
154
|
+
}
|
|
155
|
+
return requests;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* §1: the origins a `url` field may name — the run environment's allowlist, else the producer's
|
|
159
|
+
* recorded site, plus its declared `metadata.allowedOrigins` and the run's `--allow`.
|
|
160
|
+
*/
|
|
161
|
+
function handoffOrigins(opts, from) {
|
|
162
|
+
const origins = new Set();
|
|
163
|
+
if (opts.environment !== undefined)
|
|
164
|
+
for (const origin of opts.environment.allowedOrigins)
|
|
165
|
+
origins.add(origin);
|
|
166
|
+
else
|
|
167
|
+
origins.add(from.recording.site);
|
|
168
|
+
for (const origin of from.metadata.allowedOrigins ?? [])
|
|
169
|
+
origins.add(origin);
|
|
170
|
+
for (const origin of opts.allow ?? [])
|
|
171
|
+
origins.add(origin);
|
|
172
|
+
return [...origins];
|
|
173
|
+
}
|
|
174
|
+
/** §4/§5 no-echo rule: a param bound to a `text`/`url`/`path` field never appears in a reason. */
|
|
175
|
+
const REDACTED_FIELD_TYPES = ["text", "url", "path"];
|
|
176
|
+
function textBoundParams(inputs, outputs) {
|
|
177
|
+
const names = [];
|
|
178
|
+
for (const [param, binding] of Object.entries(inputs.bindings)) {
|
|
179
|
+
const type = "record" in binding ? outputs.fields[binding.record]?.type : "request" in binding ? inputs.request.fields[binding.request]?.type : undefined;
|
|
180
|
+
if (type !== undefined && REDACTED_FIELD_TYPES.includes(type))
|
|
181
|
+
names.push(param);
|
|
182
|
+
}
|
|
183
|
+
return names;
|
|
184
|
+
}
|
|
185
|
+
/** The `commentId`/`account` identity the §5 result names, read from a request when declared. */
|
|
186
|
+
function requestIdentity(bag) {
|
|
187
|
+
return {
|
|
188
|
+
commentId: typeof bag["commentId"] === "string" ? bag["commentId"] : "",
|
|
189
|
+
account: typeof bag["account"] === "string" ? bag["account"] : "",
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* §4/§5 handoff branch: validate the records and requests with the pure `@jevitate/journey`
|
|
194
|
+
* validators, match each valid request on `inputs.request.key` against the outputs key, and run `to`
|
|
195
|
+
* once per match with the params `bindParams` resolves. A request matching an invalid or ambiguous
|
|
196
|
+
* record is rejected (never unmatched, never run).
|
|
197
|
+
*/
|
|
198
|
+
async function runHandoffChain(inputs, outputs, fromJourney, fromOutput, requestText, capturedAt, opts, shared, runner) {
|
|
199
|
+
const ctx = { allowedOrigins: handoffOrigins(opts, fromJourney) };
|
|
200
|
+
const records = readHandoffRecords(outputs, fromOutput);
|
|
201
|
+
if (records.length === 0)
|
|
202
|
+
throw new JourneyChainError("E_CHAIN_EMPTY", `the producing Journey '${opts.from}' returned no records`);
|
|
203
|
+
const outputKeys = outputKeyFields(outputs);
|
|
204
|
+
const recordValidation = validateRecords(outputs, records, ctx);
|
|
205
|
+
const byKey = new Map();
|
|
206
|
+
const rejectedByKey = new Map();
|
|
207
|
+
for (const record of recordValidation.valid)
|
|
208
|
+
byKey.set(handoffKey(outputKeys, record), record);
|
|
209
|
+
for (const rejection of recordValidation.rejected)
|
|
210
|
+
if (!rejectedByKey.has(rejection.key))
|
|
211
|
+
rejectedByKey.set(rejection.key, rejection);
|
|
212
|
+
const requestValidation = validateRequests(inputs, parseRequestObjects(requestText), ctx);
|
|
213
|
+
const rejected = [...recordValidation.rejected, ...requestValidation.rejected];
|
|
214
|
+
const redactors = textBoundParams(inputs, outputs);
|
|
215
|
+
const runs = [];
|
|
216
|
+
const unmatched = [];
|
|
217
|
+
for (const request of requestValidation.valid) {
|
|
218
|
+
const key = handoffKey(inputs.request.key, request);
|
|
219
|
+
const identity = requestIdentity(request);
|
|
220
|
+
const record = byKey.get(key);
|
|
221
|
+
if (record === undefined) {
|
|
222
|
+
const rejection = rejectedByKey.get(key);
|
|
223
|
+
if (rejection !== undefined)
|
|
224
|
+
rejected.push({ key, reason: rejection.reason, errors: rejection.errors });
|
|
225
|
+
else
|
|
226
|
+
unmatched.push(identity);
|
|
227
|
+
continue;
|
|
228
|
+
}
|
|
229
|
+
const params = bindParams(inputs, record, request);
|
|
230
|
+
const stamp = { contract: inputs.accepts, fingerprint: recordFingerprint(outputs, record), capturedAt };
|
|
231
|
+
try {
|
|
232
|
+
const result = await runner({ ...shared, id: opts.to, params });
|
|
233
|
+
runs.push({
|
|
234
|
+
...identity,
|
|
235
|
+
outcome: result.outcome,
|
|
236
|
+
...stamp,
|
|
237
|
+
...("reason" in result ? { reason: redactReason(result.reason, params, redactors) } : {}),
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
catch (err) {
|
|
241
|
+
runs.push({ ...identity, outcome: "error", ...stamp, reason: redactReason(err instanceof Error ? err.message : String(err), params, redactors) });
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
return { from: { journey: opts.from, outcome: "ok", records: records.length }, runs, unmatched, rejected };
|
|
245
|
+
}
|
|
134
246
|
/**
|
|
135
247
|
* §5: run `from` once, join each approved request to the record with the same `commentId` and
|
|
136
248
|
* `account`, and run `to` once per match with §3's params. Unmatched requests are listed and never
|
|
@@ -138,27 +250,46 @@ function sharedRunOptions(opts) {
|
|
|
138
250
|
* (`E_CHAIN_EMPTY`); a malformed request refuses the whole file (`E_CHAIN_REQUEST`).
|
|
139
251
|
*/
|
|
140
252
|
export async function runJourneyChain(opts, deps = {}) {
|
|
141
|
-
const requests = parseChainRequests(opts.requests);
|
|
142
253
|
const runner = deps.runJourney ?? runJourneyProgrammatically;
|
|
143
254
|
const shared = sharedRunOptions(opts);
|
|
144
255
|
const registry = new JourneyRegistry(new FsJourneyStore(opts.dir));
|
|
145
256
|
const toJourney = await registry.get(opts.to);
|
|
146
257
|
if (toJourney === null)
|
|
147
258
|
throw new UnknownJourneyError(`unknown journey '${opts.to}'`);
|
|
259
|
+
const inputs = toJourney.metadata.inputs;
|
|
260
|
+
// §4: the compatibility check always loads the producing Journey, even when drafts are allowed.
|
|
261
|
+
const needsFrom = inputs !== undefined || opts.requirePromoted === true;
|
|
262
|
+
const fromJourney = needsFrom ? await registry.get(opts.from) : null;
|
|
263
|
+
if (needsFrom && fromJourney === null)
|
|
264
|
+
throw new UnknownJourneyError(`unknown journey '${opts.from}'`);
|
|
148
265
|
if (opts.requirePromoted === true) {
|
|
149
|
-
const fromJourney = await registry.get(opts.from);
|
|
150
|
-
if (fromJourney === null)
|
|
151
|
-
throw new UnknownJourneyError(`unknown journey '${opts.from}'`);
|
|
152
266
|
for (const j of [fromJourney, toJourney]) {
|
|
153
267
|
if (!j.metadata.promoted)
|
|
154
268
|
throw new JourneyChainError("E_CHAIN_NOT_PROMOTED", `journey '${j.metadata.id}' is not promoted — a chain runs promoted Journeys (journey chain --allow-draft runs drafts on the CLI)`);
|
|
155
269
|
}
|
|
156
270
|
}
|
|
271
|
+
let handoff;
|
|
272
|
+
if (inputs !== undefined) {
|
|
273
|
+
const issues = checkCompatibility(fromJourney, toJourney);
|
|
274
|
+
if (issues.length > 0)
|
|
275
|
+
throw new JourneyChainError("E_HANDOFF_INCOMPATIBLE", issues.map((issue) => issue.message).join("; "));
|
|
276
|
+
const outputs = fromJourney.metadata.outputs;
|
|
277
|
+
if (outputs === undefined)
|
|
278
|
+
throw new JourneyChainError("E_HANDOFF_INCOMPATIBLE", `the producing Journey '${opts.from}' declares no outputs`);
|
|
279
|
+
handoff = { inputs, outputs };
|
|
280
|
+
}
|
|
281
|
+
// 0.17.0 parses the fixed-key request file before anything runs; the handoff branch validates the
|
|
282
|
+
// JSON Lines objects after the record set is known (§4 step 5).
|
|
283
|
+
const requests = handoff === undefined ? parseChainRequests(opts.requests) : undefined;
|
|
157
284
|
const fromResult = await runner({ ...shared, id: opts.from, params: {} });
|
|
158
285
|
if (fromResult.outcome !== "ok") {
|
|
159
286
|
const reason = "reason" in fromResult ? fromResult.reason : undefined;
|
|
160
287
|
throw new JourneyChainError("E_CHAIN_FROM_FAILED", `discover Journey '${opts.from}' did not run ok (${fromResult.outcome})${reason === undefined ? "" : `: ${reason}`}`);
|
|
161
288
|
}
|
|
289
|
+
if (handoff !== undefined) {
|
|
290
|
+
// §5: `capturedAt` is when the producing run finished, from the injectable clock.
|
|
291
|
+
return runHandoffChain(handoff.inputs, handoff.outputs, fromJourney, fromResult.output, opts.requests, clock.nowIso(), opts, shared, runner);
|
|
292
|
+
}
|
|
162
293
|
const { count, records } = readRecords(fromResult.output);
|
|
163
294
|
// §3: the reply Journey's declared params decide the one conditional mapping (`expected_parentid`).
|
|
164
295
|
const declared = new Set(journeyParamSchema(toJourney).required);
|
|
@@ -169,7 +300,7 @@ export async function runJourneyChain(opts, deps = {}) {
|
|
|
169
300
|
}
|
|
170
301
|
const runs = [];
|
|
171
302
|
const unmatched = [];
|
|
172
|
-
for (const request of requests) {
|
|
303
|
+
for (const request of requests ?? []) {
|
|
173
304
|
const record = byKey.get(recordKey(request.commentId, request.account));
|
|
174
305
|
if (record === undefined) {
|
|
175
306
|
unmatched.push({ commentId: request.commentId, account: request.account });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"journey-chain.js","sourceRoot":"","sources":["../src/journey-chain.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"journey-chain.js","sourceRoot":"","sources":["../src/journey-chain.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +1,29 @@
|
|
|
1
1
|
import { FsJourneyStore, JourneyRegistry, journeyStepCount, listJourneyAnchors } from "@jevitate/journey";
|
|
2
2
|
import { ok, fail } from "../envelope.js";
|
|
3
3
|
import { runAnchorSuggest } from "../journey-anchor-cli.js";
|
|
4
|
-
import {
|
|
4
|
+
import { emitJson } from "../cli-shared.js";
|
|
5
|
+
import { withProjectFlags } from "../project-layout.js";
|
|
6
|
+
import { DEPRECATED_DIR_HELP, journeyLayout } from "./shared.js";
|
|
5
7
|
/** Registers `jevitate journey anchors`. */
|
|
6
8
|
export function registerJourneyAnchors(journey, program, deps) {
|
|
7
9
|
// #293 — the named states worth exploring from (`explore --from-journey <id> --at-step <name>`).
|
|
8
|
-
journey
|
|
10
|
+
withProjectFlags(journey
|
|
9
11
|
.command("anchors <id>")
|
|
10
12
|
.description("list a Journey's anchors (#293): named steps to branch a mission off with `explore --from-journey <id> --at-step <name>`, and their suggested probes")
|
|
11
13
|
.option("--suggest", "propose anchors where the recorded flow changes state (a new page, a form that became valid, a completed write), each with the `journey anchor add` command to accept it; advisory, writes nothing (#487)")
|
|
12
|
-
.option("--dir <path>",
|
|
14
|
+
.option("--dir <path>", DEPRECATED_DIR_HELP))
|
|
13
15
|
.option("--json", "emit a JSON envelope")
|
|
14
16
|
.action(async function (id) {
|
|
15
|
-
const { dir, json, suggest } = this.opts();
|
|
17
|
+
const { dir, project, journeysDir, json, suggest } = this.opts();
|
|
18
|
+
const layout = journeyLayout(program, deps, { dir, project, journeysDir });
|
|
19
|
+
if (layout === null)
|
|
20
|
+
return;
|
|
16
21
|
if (suggest) {
|
|
17
|
-
await runAnchorSuggest(program, deps, id, { dir, json });
|
|
22
|
+
await runAnchorSuggest(program, deps, id, { dir: layout.journeysDir, json });
|
|
18
23
|
return;
|
|
19
24
|
}
|
|
20
25
|
try {
|
|
21
|
-
const found = await new JourneyRegistry(new FsJourneyStore(
|
|
26
|
+
const found = await new JourneyRegistry(new FsJourneyStore(layout.journeysDir)).get(id);
|
|
22
27
|
if (found === null) {
|
|
23
28
|
emitJson(program, fail("E_UNKNOWN_JOURNEY", `unknown journey '${id}'`));
|
|
24
29
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anchors.js","sourceRoot":"","sources":["../../src/journey-cli/anchors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC1G,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAgB,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"anchors.js","sourceRoot":"","sources":["../../src/journey-cli/anchors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,33 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
-
import { browserRunFromFlags, emitJson, emulationFromFlags, environmentSeams, resolveDbPath,
|
|
2
|
+
import { browserRunFromFlags, emitJson, emulationFromFlags, environmentSeams, resolveDbPath, withBrowserLaunchFlags, withEmulationFlags, writeRawResult, } from "../cli-shared.js";
|
|
3
3
|
import { environmentFromFlags, isEnvironmentError, replayAllowFromFlags, withEnvironmentFlags, withReplayAllowFlag, } from "../environments.js";
|
|
4
4
|
import { fail, ok } from "../envelope.js";
|
|
5
5
|
import { UnknownJourneyError } from "../journey-api.js";
|
|
6
6
|
import { chainSucceeded, JourneyChainError, runJourneyChain } from "../journey-chain.js";
|
|
7
7
|
import { withSiteGate } from "../site-gate-cli.js";
|
|
8
|
+
import { withProjectFlags } from "../project-layout.js";
|
|
9
|
+
import { DEPRECATED_DIR_HELP, journeyLayout } from "./shared.js";
|
|
8
10
|
/**
|
|
9
11
|
* #580: `jevitate journey chain --from <id> --to <id> --requests <file>` (docs/journey-chain-contract.md §5)
|
|
10
12
|
* runs a discover Journey once, then a prepare-only reply Journey once per matched request. Exits 0 only
|
|
11
13
|
* when every request matched and every run was `ok`.
|
|
12
14
|
*/
|
|
13
15
|
export function registerJourneyChain(journey, program, deps) {
|
|
14
|
-
withReplayAllowFlag(withEnvironmentFlags(withBrowserLaunchFlags(withEmulationFlags(journey.command("chain")))))
|
|
16
|
+
withReplayAllowFlag(withEnvironmentFlags(withBrowserLaunchFlags(withEmulationFlags(withProjectFlags(journey.command("chain"))))))
|
|
15
17
|
.requiredOption("--from <id>", "the discover Journey, run once to produce the records")
|
|
16
18
|
.requiredOption("--to <id>", "the prepare-only reply Journey, run once per matched request")
|
|
17
19
|
.requiredOption("--requests <file>", "JSON Lines file of approved requests ({commentId, account, replyText})")
|
|
18
|
-
.option("--dir <path>",
|
|
20
|
+
.option("--dir <path>", DEPRECATED_DIR_HELP)
|
|
19
21
|
.option("--storage-state <file>", "Playwright storageState JSON to start each run authenticated; must exist")
|
|
20
22
|
.option("--allow-draft", "also run Journeys that are not promoted (authoring); without it both must be promoted")
|
|
21
23
|
.option("--json", "emit a JSON envelope")
|
|
22
24
|
.action(async function () {
|
|
23
|
-
const
|
|
25
|
+
const locationFlags = this.opts();
|
|
26
|
+
const layout = journeyLayout(program, deps, { dir: locationFlags.dir, project: locationFlags.project, journeysDir: locationFlags.journeysDir });
|
|
27
|
+
if (layout === null)
|
|
28
|
+
return;
|
|
29
|
+
const chainJourneysDir = layout.journeysDir;
|
|
30
|
+
const { from, to, requests: requestsFile, storageState: storageStateFlag, json, allowDraft } = this.opts();
|
|
24
31
|
const { env: envName, baseUrl } = this.opts();
|
|
25
32
|
// #247: --env/--base-url choose where both runs go (unknown env / bad file → 64, nothing opened).
|
|
26
33
|
let environment;
|
|
@@ -69,7 +76,7 @@ export function registerJourneyChain(journey, program, deps) {
|
|
|
69
76
|
from,
|
|
70
77
|
to,
|
|
71
78
|
requests,
|
|
72
|
-
dir:
|
|
79
|
+
dir: chainJourneysDir,
|
|
73
80
|
requirePromoted: allowDraft !== true,
|
|
74
81
|
...(siteGate === undefined ? {} : { siteGate }),
|
|
75
82
|
browserPortFactory: deps.explore?.browserPortFactory,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/journey-cli/chain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEnD,OAAO,EAEL,mBAAmB,EAEnB,QAAQ,EAER,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,
|
|
1
|
+
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/journey-cli/chain.ts"],"names":[],"mappings":"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"}
|
package/dist/journey-cli/find.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { FsJourneyStore, JourneyRegistry } from "@jevitate/journey";
|
|
2
2
|
import { ok, fail } from "../envelope.js";
|
|
3
|
-
import {
|
|
3
|
+
import { emitJson } from "../cli-shared.js";
|
|
4
|
+
import { withProjectFlags } from "../project-layout.js";
|
|
5
|
+
import { DEPRECATED_DIR_HELP, journeyLayout } from "./shared.js";
|
|
4
6
|
/** Registers `jevitate journey find`. */
|
|
5
7
|
export function registerJourneyFind(journey, program, deps) {
|
|
6
8
|
// RULING 5: uses `JourneyRegistry.find` (from `@jevitate/journey`) directly —
|
|
@@ -8,14 +10,17 @@ export function registerJourneyFind(journey, program, deps) {
|
|
|
8
10
|
// depending on `@jevitate/mcp-facade`. `JourneyRegistry.find` is already
|
|
9
11
|
// promoted-only, so this is the same promoted-only view without the
|
|
10
12
|
// forbidden dependency.
|
|
11
|
-
journey
|
|
13
|
+
withProjectFlags(journey
|
|
12
14
|
.command("find <query>")
|
|
13
|
-
.option("--dir <path>",
|
|
15
|
+
.option("--dir <path>", DEPRECATED_DIR_HELP))
|
|
14
16
|
.option("--json", "emit a JSON envelope")
|
|
15
17
|
.action(async function (query) {
|
|
16
|
-
const { dir, json } = this.opts();
|
|
18
|
+
const { dir, project, journeysDir, json } = this.opts();
|
|
19
|
+
const layout = journeyLayout(program, deps, { dir, project, journeysDir });
|
|
20
|
+
if (layout === null)
|
|
21
|
+
return;
|
|
17
22
|
try {
|
|
18
|
-
const store = new FsJourneyStore(
|
|
23
|
+
const store = new FsJourneyStore(layout.journeysDir);
|
|
19
24
|
const registry = new JourneyRegistry(store);
|
|
20
25
|
const metas = await registry.find(query);
|
|
21
26
|
const capabilities = metas.map((m) => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find.js","sourceRoot":"","sources":["../../src/journey-cli/find.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAgB,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"find.js","sourceRoot":"","sources":["../../src/journey-cli/find.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAgB,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjE,yCAAyC;AACzC,MAAM,UAAU,mBAAmB,CAAC,OAAgB,EAAE,OAAgB,EAAE,IAAa;IACnF,8EAA8E;IAC9E,8EAA8E;IAC9E,yEAAyE;IACzE,oEAAoE;IACpE,wBAAwB;IACxB,gBAAgB,CAAC,OAAO;SACrB,OAAO,CAAC,cAAc,CAAC;SACvB,MAAM,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;SAC5C,MAAM,CAAC,QAAQ,EAAE,sBAAsB,CAAC;SACxC,MAAM,CAAC,KAAK,WAA0B,KAAa;QAClD,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,EAA4E,CAAC;QAClI,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;QAC3E,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO;QAC5B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACrD,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzC,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrC,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,MAAM,EAAE,CAAC,CAAC,MAAM;aACjB,CAAC,CAAC,CAAC;YACJ,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC;YAClC,IAAI,IAAI,EAAE,CAAC;gBACT,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;gBAC/C,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;oBAC7B,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACjE,CAAC;gBACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/dist/journey-cli/lint.js
CHANGED
|
@@ -6,28 +6,33 @@ import { anchorEditFailure } from "../journey-anchor-cli.js";
|
|
|
6
6
|
import { fixJourneyAnchors } from "../journey-anchor-api.js";
|
|
7
7
|
import { currentEngineInfo } from "../engine.js";
|
|
8
8
|
import { renderJourneyLintSarif } from "../journey-lint-sarif.js";
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
9
|
+
import { emitJson } from "../cli-shared.js";
|
|
10
|
+
import { withProjectFlags } from "../project-layout.js";
|
|
11
|
+
import { DEPRECATED_DIR_HELP, flaggedCatalogDir, journeyLayout, lintFindingLine } from "./shared.js";
|
|
11
12
|
import { FsJourneyStore } from "@jevitate/journey";
|
|
12
13
|
import { journeyLinkWarnings } from "../journey-link-hints.js";
|
|
13
14
|
/** Registers `jevitate journey lint`. */
|
|
14
15
|
export function registerJourneyLint(journey, program, deps) {
|
|
15
16
|
// #401 — the assertion-strength lint: which assertions cannot prove the Journey's outcome. CI can
|
|
16
17
|
// gate on it (`--json`/`--sarif`, exit 1 when any error); `promote` runs the same lint first.
|
|
17
|
-
journey
|
|
18
|
+
withProjectFlags(journey
|
|
18
19
|
.command("lint <id>")
|
|
19
20
|
.description("report a Journey's weak assertions (writes without an asserted effect, visibility-only claims, nothing after the last write, …)")
|
|
20
|
-
.option("--dir <path>",
|
|
21
|
+
.option("--dir <path>", DEPRECATED_DIR_HELP))
|
|
21
22
|
.option("--sarif <file>", "also write a SARIF 2.1.0 log here")
|
|
22
23
|
.option("--fix", "#487: stamp the step id of each anchor that references a step by number only, write the Journey (#507: on a promoted Journey its approval goes stale), and report what was fixed")
|
|
23
24
|
.option("--json", "emit a JSON envelope")
|
|
24
25
|
.action(async function (id) {
|
|
25
|
-
const { dir, json, sarif, fix } = this.opts();
|
|
26
|
+
const { dir, project, journeysDir, json, sarif, fix } = this.opts();
|
|
27
|
+
const layout = journeyLayout(program, deps, { dir, project, journeysDir });
|
|
28
|
+
if (layout === null)
|
|
29
|
+
return;
|
|
30
|
+
const resolvedJourneysDir = layout.journeysDir;
|
|
26
31
|
try {
|
|
27
32
|
let fixResult;
|
|
28
33
|
if (fix === true) {
|
|
29
34
|
try {
|
|
30
|
-
fixResult = await fixJourneyAnchors(
|
|
35
|
+
fixResult = await fixJourneyAnchors(resolvedJourneysDir, id);
|
|
31
36
|
}
|
|
32
37
|
catch (err) {
|
|
33
38
|
if (err instanceof UnknownJourneyError)
|
|
@@ -39,11 +44,10 @@ export function registerJourneyLint(journey, program, deps) {
|
|
|
39
44
|
const fixed = fixResult?.stamped ?? [];
|
|
40
45
|
// #507: stamping a promoted Journey makes its approval stale — say so, with the re-approval command.
|
|
41
46
|
const reapproval = fixResult?.needsReapproval === true ? { needsReapproval: true, reapproveCommand: fixResult.reapproveCommand } : {};
|
|
42
|
-
const
|
|
43
|
-
const
|
|
44
|
-
const linted = await lintJourneyById(journeysDir, id, { catalogDir });
|
|
47
|
+
const catalogDir = resolveCatalogDir(deps.catalogDir, flaggedCatalogDir(layout));
|
|
48
|
+
const linted = await lintJourneyById(resolvedJourneysDir, id, { catalogDir });
|
|
45
49
|
// #523: catalog-aware, advisory: a missing job / persona link is a warning with its fix.
|
|
46
|
-
const stored = await new FsJourneyStore(
|
|
50
|
+
const stored = await new FsJourneyStore(resolvedJourneysDir).get(id);
|
|
47
51
|
const linkFindings = stored === null ? [] : await journeyLinkWarnings(catalogDir, stored);
|
|
48
52
|
const result = { ...linted, findings: [...linted.findings, ...linkFindings], warnings: linted.warnings + linkFindings.length };
|
|
49
53
|
if (sarif !== undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/journey-cli/lint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAgB,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/journey-cli/lint.ts"],"names":[],"mappings":"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"}
|
package/dist/journey-cli/list.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { FsJourneyStore } from "@jevitate/journey";
|
|
2
2
|
import { ok, fail } from "../envelope.js";
|
|
3
3
|
import { describeProvenance } from "../approval-provenance.js";
|
|
4
|
-
import {
|
|
4
|
+
import { emitJson } from "../cli-shared.js";
|
|
5
|
+
import { withProjectFlags } from "../project-layout.js";
|
|
6
|
+
import { DEPRECATED_DIR_HELP, journeyLayout } from "./shared.js";
|
|
5
7
|
/** Registers `jevitate journey list`. */
|
|
6
8
|
export function registerJourneyList(journey, program, deps) {
|
|
7
9
|
/**
|
|
@@ -12,14 +14,17 @@ export function registerJourneyList(journey, program, deps) {
|
|
|
12
14
|
* mcp-facade) see. Keeping these distinct means `list` is useful for
|
|
13
15
|
* authoring/debugging while `find` genuinely reflects what's discoverable.
|
|
14
16
|
*/
|
|
15
|
-
journey
|
|
17
|
+
withProjectFlags(journey
|
|
16
18
|
.command("list")
|
|
17
|
-
.option("--dir <path>",
|
|
19
|
+
.option("--dir <path>", DEPRECATED_DIR_HELP))
|
|
18
20
|
.option("--json", "emit a JSON envelope")
|
|
19
21
|
.action(async function () {
|
|
20
|
-
const { dir, json } = this.opts();
|
|
22
|
+
const { dir, project, journeysDir, json } = this.opts();
|
|
23
|
+
const layout = journeyLayout(program, deps, { dir, project, journeysDir });
|
|
24
|
+
if (layout === null)
|
|
25
|
+
return;
|
|
21
26
|
try {
|
|
22
|
-
const store = new FsJourneyStore(
|
|
27
|
+
const store = new FsJourneyStore(layout.journeysDir);
|
|
23
28
|
const metas = await store.list();
|
|
24
29
|
const envelope = ok(metas);
|
|
25
30
|
if (json) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/journey-cli/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAmB,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAgB,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/journey-cli/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAmB,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAgB,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjE,yCAAyC;AACzC,MAAM,UAAU,mBAAmB,CAAC,OAAgB,EAAE,OAAgB,EAAE,IAAa;IACnF;;;;;;;OAOG;IACH,gBAAgB,CAAC,OAAO;SACrB,OAAO,CAAC,MAAM,CAAC;SACf,MAAM,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;SAC5C,MAAM,CAAC,QAAQ,EAAE,sBAAsB,CAAC;SACxC,MAAM,CAAC,KAAK;QACX,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,EAA4E,CAAC;QAClI,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;QAC3E,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO;QAC5B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACrD,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;YAC3B,IAAI,IAAI,EAAE,CAAC;gBACT,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;gBAC/C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,GAAG,EAAE,CAAC,oFAAoF,CAAC,CAAC;gBAC9F,CAAC;qBAAM,CAAC;oBACN,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;wBACtB,iHAAiH;wBACjH,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC5G,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,GAAG,GAAG,IAAI,CAAC,CAAC;oBAC1E,CAAC;gBACH,CAAC;gBACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -5,12 +5,14 @@ import { migrateLabels, renderMigrateLabels } from "../journey-labels-migrate-ap
|
|
|
5
5
|
import { resolveCatalogDir } from "../catalog-api.js";
|
|
6
6
|
import { withSiteGate } from "../site-gate-cli.js";
|
|
7
7
|
import { environmentFromFlags, isEnvironmentError, withEnvironmentFlags } from "../environments.js";
|
|
8
|
-
import { resolveDbPath,
|
|
8
|
+
import { resolveDbPath, withBrowserLaunchFlags, browserRunFromFlags, collectParam, emitJson, environmentSeams } from "../cli-shared.js";
|
|
9
|
+
import { withProjectFlags } from "../project-layout.js";
|
|
10
|
+
import { DEPRECATED_DIR_HELP, flaggedCatalogDir, journeyLayout } from "./shared.js";
|
|
9
11
|
/** Registers `jevitate journey migrate`. */
|
|
10
12
|
export function registerJourneyMigrate(journey, program, deps) {
|
|
11
13
|
// #467b — the one-time step-id backfill: CLI only (a repo rewrite the operator runs and commits; no MCP tool).
|
|
12
14
|
// #497 — `--labels`: the opt-in label backfill; a real replay of each Journey (the app must be running). CLI only.
|
|
13
|
-
withEnvironmentFlags(withBrowserLaunchFlags(journey.command("migrate")))
|
|
15
|
+
withEnvironmentFlags(withBrowserLaunchFlags(withProjectFlags(journey.command("migrate"))))
|
|
14
16
|
.description("one-time repo rewrite, CLI only. #467: --step-ids mints a stable step id on every recorded step that has none (every Journey and recording in the project) and points anchors at them. #497: --labels REPLAYS the Journeys (the app must be running; side effects happen) and stores each step's visible label for the review sheet. Both change every promoted Journey's hash: re-approve them (journey review --stale). Never approves")
|
|
15
17
|
.option("--step-ids", "mint missing step ids")
|
|
16
18
|
.option("--labels", "#497: replay the Journeys and store each step's visible label (exclusive with --step-ids; needs the app running)")
|
|
@@ -18,10 +20,15 @@ export function registerJourneyMigrate(journey, program, deps) {
|
|
|
18
20
|
.option("--param <kv>", "#497: with --labels, a replay param as key=value (repeatable; each Journey gets only the ones it declares)", collectParam, {})
|
|
19
21
|
.option("--storage-state <file>", "#497: with --labels, Playwright storageState JSON to start the replays authenticated; must exist")
|
|
20
22
|
.option("--dry-run", "report what would change, write nothing (with --labels the replay still runs)")
|
|
21
|
-
.option("--dir <path>",
|
|
23
|
+
.option("--dir <path>", DEPRECATED_DIR_HELP)
|
|
22
24
|
.option("--json", "emit a JSON envelope")
|
|
23
25
|
.action(async function () {
|
|
24
|
-
const
|
|
26
|
+
const locationFlags = this.opts();
|
|
27
|
+
const layout = journeyLayout(program, deps, { dir: locationFlags.dir, project: locationFlags.project, journeysDir: locationFlags.journeysDir });
|
|
28
|
+
if (layout === null)
|
|
29
|
+
return;
|
|
30
|
+
const migrateJourneysDir = layout.journeysDir;
|
|
31
|
+
const { stepIds, labels, id: ids, param, storageState: storageStateFlag, dryRun, json } = this.opts();
|
|
25
32
|
if (labels === true && stepIds === true) {
|
|
26
33
|
emitJson(program, fail("E_JOURNEY_MIGRATE_ARGS", "--labels and --step-ids are exclusive: run one migration at a time"));
|
|
27
34
|
return;
|
|
@@ -37,7 +44,7 @@ export function registerJourneyMigrate(journey, program, deps) {
|
|
|
37
44
|
return;
|
|
38
45
|
}
|
|
39
46
|
try {
|
|
40
|
-
const result = await migrateStepIds({ journeysDir:
|
|
47
|
+
const result = await migrateStepIds({ journeysDir: migrateJourneysDir, projectDir: resolveCatalogDir(deps.catalogDir, flaggedCatalogDir(layout)), dryRun: dryRun === true });
|
|
41
48
|
if (json)
|
|
42
49
|
emitJson(program, ok(result));
|
|
43
50
|
else
|
|
@@ -75,7 +82,7 @@ export function registerJourneyMigrate(journey, program, deps) {
|
|
|
75
82
|
}
|
|
76
83
|
try {
|
|
77
84
|
const result = await withSiteGate(resolveDbPath(deps), (siteGate) => migrateLabels({
|
|
78
|
-
journeysDir:
|
|
85
|
+
journeysDir: migrateJourneysDir,
|
|
79
86
|
...(ids === undefined ? {} : { ids }),
|
|
80
87
|
dryRun: dryRun === true,
|
|
81
88
|
params: param,
|