@openclawbrain/openclaw 0.1.11 → 0.1.12

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/README.md CHANGED
@@ -5,10 +5,11 @@ OpenClaw integration helpers for promoted-pack compile consumption and normalize
5
5
  This is the default front door for first-time OpenClawBrain users.
6
6
 
7
7
  - Start here when you want one package to import from instead of guessing across the `@openclawbrain/*` split.
8
- - Install it with `npm install @openclawbrain/openclaw`.
9
- - Use the `openclawbrain` CLI for status and rollback; `openclawbrain-ops` stays available as a compatibility alias.
10
- - `npm exec openclawbrain -- --help` now works from the installed package surface, but the exact quickstart commands remain the clearest first attach path.
11
- - Use local `.release/*.tgz` tarballs only for maintainer repo-tip / release-validation fallback, not as the default outside-user front door.
8
+ - The stable front-door names are `@openclawbrain/openclaw` and `openclawbrain`.
9
+ - If you are validating this repo-tip checkout, prepare the checkout with `pnpm install --frozen-lockfile`, run `pnpm release:status`, then `pnpm release:pack`, then install the local `.release/*.tgz` tarballs.
10
+ - If you are intentionally consuming a later tagged and published wave, install it with `npm install @openclawbrain/openclaw`.
11
+ - Use the `openclawbrain` CLI for status, rollback, and narrow scanner scans; `openclawbrain-ops` stays available as a compatibility alias.
12
+ - `npm exec openclawbrain -- --help` works after either install path, but the exact quickstart commands remain the clearest first attach path.
12
13
 
13
14
  Use this package when OpenClaw needs the narrow supported operator bridge captured by `OPERATOR_API_CONTRACT_V1`:
14
15
 
@@ -142,16 +143,21 @@ Operator-facing CLI:
142
143
  ```bash
143
144
  pnpm exec openclawbrain status --activation-root /var/openclawbrain/activation --event-export /var/openclawbrain/exports/latest --teacher-snapshot /var/openclawbrain/runtime/teacher-snapshot.json
144
145
  pnpm exec openclawbrain rollback --activation-root /var/openclawbrain/activation --dry-run
146
+ pnpm exec openclawbrain scan --session ./fixtures/recorded-session-replay/sanitized-support-escalation.trace.json --root /tmp/openclawbrain-scan-session
147
+ pnpm exec openclawbrain scan --live /var/openclawbrain/exports/latest --workspace /var/openclawbrain/runtime/workspace.json --snapshot-out /var/openclawbrain/runtime/scan-live-snapshot.json
145
148
  ```
146
149
 
147
150
  - `openclawbrain-ops` remains available as the same CLI entrypoint if you already scripted against the older name
148
151
  - `bootstrapRuntimeAttach()` resolves the activation root, stamps the attach as a `current_profile` action, returns the canonical current-profile answer immediately, and includes copy-paste-ready next steps for the attached root that prefer the primary `openclawbrain` CLI while matching the current `npm`/`pnpm` invocation style when it is detectable; those hints now cover `status`, canonical `status --json`, and `rollback --dry-run`
149
152
  - `formatBootstrapRuntimeAttachReport()` prints the shipped attach handoff as a current-profile action instead of dropping callers straight into lower-level proof fields
150
- - plain `status` is the human answer to “How's the brain?” for the current profile on that activation root; it now keeps principal backlog/downstream truth and active structural-graph evolution visible in the compact text summary, while `status --json` still emits the canonical `current_profile_brain_status.v1` answer from that same boundary
153
+ - plain `status` is the human answer to “How's the brain?” for the current profile on that activation root; it now keeps the principal backlog frontier (`learnedThrough -> newestPending`), live-vs-backfill passive-learning progress, explicit backlog warning states, structural-decision origin, and active structural-graph evolution visible in the compact text summary, while `status --json` still emits the canonical `current_profile_brain_status.v1` answer from that same boundary
154
+ - with `--teacher-snapshot`, that same human summary also keeps the learner `mode`, next lane, and exact scheduler `priority` bucket visible so operators can see live-first intake, principal-priority work, and passive backfill without pretending the canonical JSON object widened
151
155
  - `describeCurrentProfileBrainStatus()` freezes the current-profile `Host / Profile / Brain / Attachment` answer shape instead of widening to a second report payload
152
156
  - `rollback --dry-run` previews the exact `active <- previous` and `active -> candidate` move before you apply rollback for real
153
157
  - `--event-export` accepts either a runtime event-export bundle root or a normalized-export JSON payload
154
- - `--teacher-snapshot` accepts JSON from `teacherLoop.snapshot()` or `await teacherLoop.flush()` when you want the last duplicate/no-op reason plus learner bootstrapped/mode/next-lane backlog truth kept visible
158
+ - `--teacher-snapshot` accepts JSON from `teacherLoop.snapshot()` or `await teacherLoop.flush()` when you want the last duplicate/no-op reason plus learner bootstrapped/mode/next-lane/scheduler-priority truth kept visible
159
+ - `scan --session` is a checked-in proof-facing replay over a sanitized recorded-session trace; it reports the no-brain vs seed-pack vs learned-replay score spread and does not pretend to be the runtime hot path
160
+ - `scan --live` is a one-shot live-export scan over a real event-export payload plus explicit workspace metadata; it truthfully reports teacher/learner state for that export and does not pretend a background daemon is running
155
161
 
156
162
  Programmatic rollback is available too:
157
163
 
package/dist/src/cli.d.ts CHANGED
@@ -1,12 +1,25 @@
1
1
  #!/usr/bin/env node
2
2
  import { type CurrentProfileBrainStatusInput } from "./index.js";
3
- interface ParsedOperatorCliArgs {
3
+ interface ParsedStatusRollbackCliArgs {
4
4
  command: "status" | "rollback";
5
5
  input: CurrentProfileBrainStatusInput;
6
6
  json: boolean;
7
7
  help: boolean;
8
8
  dryRun: boolean;
9
9
  }
10
+ interface ParsedScanCliArgs {
11
+ command: "scan";
12
+ json: boolean;
13
+ help: boolean;
14
+ sessionPath: string | null;
15
+ livePath: string | null;
16
+ rootDir: string | null;
17
+ workspacePath: string | null;
18
+ packLabel: string | null;
19
+ observedAt: string | null;
20
+ snapshotOutPath: string | null;
21
+ }
22
+ type ParsedOperatorCliArgs = ParsedStatusRollbackCliArgs | ParsedScanCliArgs;
10
23
  export declare function parseOperatorCliArgs(argv: readonly string[]): ParsedOperatorCliArgs;
11
24
  export declare function runOperatorCli(argv?: readonly string[]): number;
12
25
  export {};
package/dist/src/cli.js CHANGED
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
- import { realpathSync } from "node:fs";
2
+ import { mkdirSync, readFileSync, realpathSync, statSync, writeFileSync } from "node:fs";
3
3
  import path from "node:path";
4
4
  import { pathToFileURL } from "node:url";
5
- import { buildOperatorSurfaceReport, describeCurrentProfileBrainStatus, formatOperatorRollbackReport, rollbackRuntimeAttach } from "./index.js";
5
+ import { buildOperatorSurfaceReport, describeCurrentProfileBrainStatus, formatOperatorRollbackReport, loadRuntimeEventExportBundle, rollbackRuntimeAttach, scanLiveEventExport, scanRecordedSession } from "./index.js";
6
6
  function quoteShellArg(value) {
7
7
  return `'${value.replace(/'/g, `"'"'`)}'`;
8
8
  }
@@ -123,15 +123,25 @@ function operatorCliHelp() {
123
123
  return [
124
124
  "Usage:",
125
125
  " openclawbrain <status|rollback> --activation-root <path> [options]",
126
+ " openclawbrain scan --session <trace.json> --root <path> [options]",
127
+ " openclawbrain scan --live <event-export-path> --workspace <workspace.json> [options]",
126
128
  " openclawbrain-ops <status|rollback> --activation-root <path> [options] # compatibility alias",
129
+ " openclawbrain-ops scan --session <trace.json> --root <path> [options] # compatibility alias",
127
130
  "",
128
131
  "Options:",
129
132
  " --activation-root <path> Activation root to inspect.",
130
133
  " --event-export <path> Event-export bundle root or normalized export JSON payload.",
131
- " --teacher-snapshot <path> Async teacher snapshot JSON from teacherLoop.snapshot()/flush().",
134
+ " --teacher-snapshot <path> Async teacher snapshot JSON from teacherLoop.snapshot()/flush(); keeps live-first, principal-priority, and passive-backfill learner truth explicit.",
132
135
  " --updated-at <iso> Observation time to use for freshness checks.",
133
136
  " --brain-attachment-policy <undeclared|dedicated|shared> Override attachment policy semantics for status inspection.",
134
137
  " --dry-run Preview rollback pointer movement without writing activation state.",
138
+ " --session <path> Sanitized recorded-session trace JSON to replay.",
139
+ " --live <path> Runtime event-export bundle root or normalized export JSON to scan once.",
140
+ " --root <path> Output root for scan --session replay artifacts.",
141
+ " --workspace <path> Workspace metadata JSON for scan --live candidate provenance.",
142
+ " --pack-label <label> Candidate-pack label for scan --live. Defaults to scanner-live-cli.",
143
+ " --observed-at <iso> Observation time for scan --live freshness checks.",
144
+ " --snapshot-out <path> Write the one-shot scan --live snapshot JSON.",
135
145
  " --json Emit machine-readable JSON instead of text.",
136
146
  " --help Show this help.",
137
147
  "",
@@ -141,10 +151,14 @@ function operatorCliHelp() {
141
151
  " 2. status --json read the canonical current_profile_brain_status.v1 object for that same boundary",
142
152
  " 3. rollback --dry-run preview active <- previous, active -> candidate",
143
153
  " 4. rollback apply the rollback when the preview says ready",
154
+ " 5. scan --session replay one sanitized session trace across no_brain, seed_pack, and learned_replay",
155
+ " 6. scan --live scan one live event export into teacher/learner state without claiming a daemon is running",
156
+ " status --teacher-snapshot keeps the current live-first / principal-priority / passive-backfill learner order visible when that snapshot exists",
144
157
  "",
145
158
  "Exit codes:",
146
159
  " status: 0 on successful inspection, 1 on input/read failure.",
147
- " rollback: 0 when ready/applied, 1 when blocked or on input/read failure."
160
+ " rollback: 0 when ready/applied, 1 when blocked or on input/read failure.",
161
+ " scan: 0 on successful replay/scan, 1 on input/read failure."
148
162
  ].join("\n");
149
163
  }
150
164
  function yesNo(value) {
@@ -157,25 +171,51 @@ function formatPrincipalLatest(report) {
157
171
  const latest = report.principal.latestFeedback;
158
172
  return latest === null ? "none" : `${latest.teacherIdentity}/${latest.kind}`;
159
173
  }
174
+ function formatPrincipalCheckpointFrontier(report) {
175
+ const checkpoint = report.learning.leadingPrincipalCheckpoint;
176
+ if (checkpoint === null) {
177
+ return "none";
178
+ }
179
+ const learnedThrough = checkpoint.learnedThroughSequence ?? "none";
180
+ const newestPending = checkpoint.newestPendingSequence ?? "none";
181
+ return `${checkpoint.teacherIdentity}:${learnedThrough}->${newestPending}`;
182
+ }
160
183
  function formatStructuralOps(report) {
161
184
  const structuralOps = report.graph.structuralOps;
162
185
  return structuralOps === null
163
186
  ? "none"
164
187
  : `split:${structuralOps.split},merge:${structuralOps.merge},prune:${structuralOps.prune},connect:${structuralOps.connect}`;
165
188
  }
189
+ function formatScannerSurfaces(report) {
190
+ return report.supervision.scanSurfaces.length === 0 ? "none" : report.supervision.scanSurfaces.join("|");
191
+ }
192
+ function formatLearningBuckets(report) {
193
+ const buckets = report.learning.pendingByBucket;
194
+ if (buckets === null) {
195
+ return "none";
196
+ }
197
+ return `pi:${buckets.principal_immediate},pb:${buckets.principal_backfill},live:${buckets.live},backfill:${buckets.backfill}`;
198
+ }
199
+ function formatLearningWarnings(report) {
200
+ return report.learning.warningStates.length === 0 ? "none" : report.learning.warningStates.join("|");
201
+ }
166
202
  function formatCurrentProfileStatusSummary(status, report) {
203
+ const profileIdSuffix = status.profile.profileId === null ? "" : ` id=${status.profile.profileId}`;
167
204
  return [
168
205
  `STATUS ${status.brainStatus.status}`,
169
206
  `answer ${status.brain.summary}`,
170
207
  `host runtime=${status.host.runtimeOwner} activation=${status.host.activationRoot}`,
171
- `profile selector=${status.profile.selector} attachment=${status.attachment.state} policy=${status.attachment.policyMode}`,
208
+ `profile selector=${status.profile.selector}${profileIdSuffix} attachment=${status.attachment.state} policy=${status.attachment.policyMode}`,
209
+ `manyProfile surface=${report.manyProfile.operatorSurface} policy=${report.manyProfile.declaredAttachmentPolicy} intent=${report.manyProfile.sameGatewayIntent} checkedProof=${report.manyProfile.checkedInProofTopology} sameGatewayProof=${yesNo(report.manyProfile.sameGatewayProof)} sharedWriteProof=${yesNo(report.manyProfile.sharedWriteSafetyProof)}`,
172
210
  `brain pack=${status.brain.activePackId ?? "none"} state=${status.brain.state} init=${status.brain.initMode ?? "unknown"} routeFreshness=${status.brain.routeFreshness} lastPromotion=${status.brain.lastPromotionAt ?? "none"} router=${status.brain.routerIdentity ?? "none"}`,
173
211
  `serve state=${status.brainStatus.serveState} failOpen=${yesNo(status.brainStatus.failOpen)} hardFail=${yesNo(report.servePath.hardRequirementViolated)} usedRouteFn=${yesNo(status.brainStatus.usedLearnedRouteFn)} awaitingFirstExport=${yesNo(status.brainStatus.awaitingFirstExport)} detail=${status.brainStatus.detail}`,
174
212
  `route router=${report.servePath.routerIdentity ?? status.brain.routerIdentity ?? "none"} supervision=${report.servePath.refreshStatus ?? status.brain.routeFreshness} freshness=${report.servePath.freshnessChecksum ?? "none"}`,
175
- `budget requested=${report.servePath.requestedBudgetStrategy ?? "none"} resolved=${report.servePath.resolvedBudgetStrategy ?? "none"} maxBlocks=${report.servePath.resolvedMaxContextBlocks ?? "none"} source=${report.servePath.structuralBudgetSource ?? "none"}`,
176
- `principal latest=${formatPrincipalLatest(report)} pending=${report.principal.pendingCount ?? "none"} downstream=${yesNo(report.principal.servingDownstreamOfLatestCorrection)} lag=${report.learning.principalLagToPromotion.sequenceLag ?? "none"}`,
213
+ `budget requested=${report.servePath.requestedBudgetStrategy ?? "none"} resolved=${report.servePath.resolvedBudgetStrategy ?? "none"} maxBlocks=${report.servePath.resolvedMaxContextBlocks ?? "none"} source=${report.servePath.structuralBudgetSource ?? "none"} origin=${status.brainStatus.structuralDecision.origin} basis=${status.brainStatus.structuralDecision.basis}`,
214
+ `decision ${status.brainStatus.structuralDecision.detail}`,
215
+ `principal latest=${formatPrincipalLatest(report)} pending=${report.principal.pendingCount ?? report.learning.pendingPrincipalCount ?? "none"} checkpoint=${formatPrincipalCheckpointFrontier(report)} downstream=${yesNo(report.principal.servingDownstreamOfLatestCorrection)} lag=${report.learning.principalLagToPromotion.sequenceLag ?? "none"}`,
216
+ `scanner flowing=${yesNo(report.supervision.flowing)} scan=${report.supervision.scanPolicy ?? "none"} surfaces=${formatScannerSurfaces(report)} labels=${report.supervision.humanLabelCount ?? "none"}/${report.supervision.selfLabelCount ?? "none"} attributable=${report.supervision.attributedEventCount ?? "none"}/${report.supervision.totalEventCount ?? "none"} digests=${report.supervision.selectionDigestCount ?? "none"}`,
177
217
  `graph source=${report.graph.runtimePlasticitySource ?? "none"} ops=${formatStructuralOps(report)} changed=${yesNo(report.graph.changed)} pruned=${report.graph.prunedBlockCount ?? "none"} strongest=${report.graph.strongestBlockId ?? "none"} summary=${report.graph.operatorSummary ?? report.graph.detail}`,
178
- `learning bootstrapped=${yesNo(report.learning.bootstrapped)} mode=${report.learning.mode} next=${report.learning.nextPriorityLane} lastPack=${report.learning.lastMaterializedPackId ?? "none"}`,
218
+ `learning state=${report.learning.backlogState} bootstrapped=${yesNo(report.learning.bootstrapped)} mode=${report.learning.mode} next=${report.learning.nextPriorityLane} priority=${report.learning.nextPriorityBucket} pending=${report.learning.pendingLive ?? "none"}/${report.learning.pendingBackfill ?? "none"} buckets=${formatLearningBuckets(report)} warn=${formatLearningWarnings(report)} lastPack=${report.learning.lastMaterializedPackId ?? "none"} detail=${report.learning.detail}`,
179
219
  `rollback ready=${yesNo(report.rollback.allowed)} state=${report.rollback.state} previous=${report.rollback.previousPackId ?? "none"}`,
180
220
  `proof lastExport=${status.brain.lastExportAt ?? "none"} lastLearningUpdate=${status.brain.lastLearningUpdateAt ?? "none"} lastPromotion=${status.brain.lastPromotionAt ?? "none"}`,
181
221
  `logs root=${status.brain.logRoot ?? "none"}`,
@@ -188,6 +228,40 @@ function requireActivationRoot(input, command) {
188
228
  }
189
229
  return path.resolve(input.activationRoot);
190
230
  }
231
+ function readJsonFile(filePath) {
232
+ return JSON.parse(readFileSync(path.resolve(filePath), "utf8"));
233
+ }
234
+ function loadCliScanLiveExport(livePath) {
235
+ const resolvedPath = path.resolve(livePath);
236
+ const stats = statSync(resolvedPath);
237
+ if (stats.isDirectory()) {
238
+ return loadRuntimeEventExportBundle(resolvedPath).normalizedEventExport;
239
+ }
240
+ return readJsonFile(resolvedPath);
241
+ }
242
+ function formatScanSessionSummary(result) {
243
+ return [
244
+ "SCAN session ok",
245
+ `trace ${result.bundle.traceId}`,
246
+ `winner ${result.bundle.summary.winnerMode ?? "none"}`,
247
+ `scores ${result.bundle.modes.map((mode) => `${mode.mode}=${mode.summary.qualityScore}`).join(" ")}`,
248
+ `turns ${result.bundle.modes[0]?.turns.length ?? 0}`,
249
+ `hashes fixture=${result.fixtureHash} score=${result.bundle.scoreHash}`,
250
+ `root ${result.rootDir}`
251
+ ].join("\n");
252
+ }
253
+ function formatScanLiveSummary(result, snapshotOutPath) {
254
+ const materializedPackId = result.snapshot.learner.lastMaterialization?.candidate.summary.packId ?? "none";
255
+ const materializationReason = result.snapshot.learner.lastMaterialization?.reason ?? "none";
256
+ return [
257
+ "SCAN live ok",
258
+ `source digest=${result.supervision.exportDigest} session=${result.supervision.sessionId ?? "none"} channel=${result.supervision.channel ?? "none"} range=${result.supervision.eventRange.start}-${result.supervision.eventRange.end}/${result.supervision.eventRange.count}`,
259
+ `teacher artifacts=${result.snapshot.teacher.artifactCount} freshness=${result.snapshot.teacher.latestFreshness} humanLabels=${result.supervision.humanLabelCount} noop=${result.snapshot.diagnostics.lastNoOpReason}`,
260
+ `learner packLabel=${result.packLabel} materialized=${materializedPackId} reason=${materializationReason}`,
261
+ `observed ${result.observedAt}`,
262
+ `snapshot ${snapshotOutPath ?? "none"}`
263
+ ].join("\n");
264
+ }
191
265
  export function parseOperatorCliArgs(argv) {
192
266
  let command = "status";
193
267
  let activationRoot = null;
@@ -195,6 +269,13 @@ export function parseOperatorCliArgs(argv) {
195
269
  let teacherSnapshotPath = null;
196
270
  let updatedAt = null;
197
271
  let brainAttachmentPolicy = null;
272
+ let sessionPath = null;
273
+ let livePath = null;
274
+ let rootDir = null;
275
+ let workspacePath = null;
276
+ let packLabel = null;
277
+ let observedAt = null;
278
+ let snapshotOutPath = null;
198
279
  let json = false;
199
280
  let help = false;
200
281
  let dryRun = false;
@@ -202,7 +283,7 @@ export function parseOperatorCliArgs(argv) {
202
283
  if (args[0] === "doctor") {
203
284
  throw new Error(buildDoctorDeletedMessage(args.slice(1)));
204
285
  }
205
- if (args[0] === "status" || args[0] === "rollback") {
286
+ if (args[0] === "status" || args[0] === "rollback" || args[0] === "scan") {
206
287
  command = args.shift();
207
288
  }
208
289
  for (let index = 0; index < args.length; index += 1) {
@@ -263,8 +344,97 @@ export function parseOperatorCliArgs(argv) {
263
344
  index += 1;
264
345
  continue;
265
346
  }
347
+ if (arg === "--session") {
348
+ if (next === undefined) {
349
+ throw new Error("--session requires a value");
350
+ }
351
+ sessionPath = next;
352
+ index += 1;
353
+ continue;
354
+ }
355
+ if (arg === "--live") {
356
+ if (next === undefined) {
357
+ throw new Error("--live requires a value");
358
+ }
359
+ livePath = next;
360
+ index += 1;
361
+ continue;
362
+ }
363
+ if (arg === "--root") {
364
+ if (next === undefined) {
365
+ throw new Error("--root requires a value");
366
+ }
367
+ rootDir = next;
368
+ index += 1;
369
+ continue;
370
+ }
371
+ if (arg === "--workspace") {
372
+ if (next === undefined) {
373
+ throw new Error("--workspace requires a value");
374
+ }
375
+ workspacePath = next;
376
+ index += 1;
377
+ continue;
378
+ }
379
+ if (arg === "--pack-label") {
380
+ if (next === undefined) {
381
+ throw new Error("--pack-label requires a value");
382
+ }
383
+ packLabel = next;
384
+ index += 1;
385
+ continue;
386
+ }
387
+ if (arg === "--observed-at") {
388
+ if (next === undefined) {
389
+ throw new Error("--observed-at requires a value");
390
+ }
391
+ observedAt = next;
392
+ index += 1;
393
+ continue;
394
+ }
395
+ if (arg === "--snapshot-out") {
396
+ if (next === undefined) {
397
+ throw new Error("--snapshot-out requires a value");
398
+ }
399
+ snapshotOutPath = next;
400
+ index += 1;
401
+ continue;
402
+ }
266
403
  throw new Error(`unknown argument: ${arg}`);
267
404
  }
405
+ if (command === "scan") {
406
+ if ((sessionPath === null && livePath === null) || (sessionPath !== null && livePath !== null)) {
407
+ throw new Error("scan requires exactly one of --session or --live");
408
+ }
409
+ if (sessionPath !== null) {
410
+ if (rootDir === null) {
411
+ throw new Error("--root is required for scan --session");
412
+ }
413
+ if (workspacePath !== null || packLabel !== null || observedAt !== null || snapshotOutPath !== null) {
414
+ throw new Error("--workspace, --pack-label, --observed-at, and --snapshot-out only apply to scan --live");
415
+ }
416
+ }
417
+ if (livePath !== null) {
418
+ if (workspacePath === null) {
419
+ throw new Error("--workspace is required for scan --live");
420
+ }
421
+ if (rootDir !== null) {
422
+ throw new Error("--root only applies to scan --session");
423
+ }
424
+ }
425
+ return {
426
+ command,
427
+ json,
428
+ help,
429
+ sessionPath,
430
+ livePath,
431
+ rootDir,
432
+ workspacePath,
433
+ packLabel,
434
+ observedAt,
435
+ snapshotOutPath
436
+ };
437
+ }
268
438
  return {
269
439
  command,
270
440
  input: {
@@ -296,6 +466,39 @@ export function runOperatorCli(argv = process.argv.slice(2)) {
296
466
  console.log(operatorCliHelp());
297
467
  return 0;
298
468
  }
469
+ if (parsed.command === "scan") {
470
+ if (parsed.sessionPath !== null) {
471
+ const result = scanRecordedSession({
472
+ rootDir: parsed.rootDir,
473
+ trace: readJsonFile(parsed.sessionPath)
474
+ });
475
+ if (parsed.json) {
476
+ console.log(JSON.stringify(result, null, 2));
477
+ }
478
+ else {
479
+ console.log(formatScanSessionSummary(result));
480
+ }
481
+ return 0;
482
+ }
483
+ const result = scanLiveEventExport({
484
+ normalizedEventExport: loadCliScanLiveExport(parsed.livePath),
485
+ workspace: readJsonFile(parsed.workspacePath),
486
+ ...(parsed.packLabel === null ? {} : { packLabel: parsed.packLabel }),
487
+ ...(parsed.observedAt === null ? {} : { observedAt: parsed.observedAt })
488
+ });
489
+ const snapshotOutPath = parsed.snapshotOutPath === null ? null : path.resolve(parsed.snapshotOutPath);
490
+ if (snapshotOutPath !== null) {
491
+ mkdirSync(path.dirname(snapshotOutPath), { recursive: true });
492
+ writeFileSync(snapshotOutPath, JSON.stringify(result.snapshot, null, 2), "utf8");
493
+ }
494
+ if (parsed.json) {
495
+ console.log(JSON.stringify({ ...result, snapshotOutPath }, null, 2));
496
+ }
497
+ else {
498
+ console.log(formatScanLiveSummary(result, snapshotOutPath));
499
+ }
500
+ return 0;
501
+ }
299
502
  const activationRoot = requireActivationRoot(parsed.input, parsed.command);
300
503
  if (parsed.command === "rollback") {
301
504
  const result = rollbackRuntimeAttach({
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}