@intentset/cli 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,4 @@
1
+ import { type ExportReportName, type Level } from "@intentset/core";
1
2
  import type { Io } from "../output.ts";
2
3
  import type { Session } from "../session.ts";
3
4
  export interface GraphOptions {
@@ -6,9 +7,14 @@ export interface GraphOptions {
6
7
  release?: string;
7
8
  out?: string;
8
9
  generatedAt?: string;
10
+ /** Report names as given, `all` included. */
11
+ reports?: string[];
12
+ includeRestricted?: boolean;
9
13
  }
14
+ /** The reports to write, in EXPORT_REPORTS order: those named, or with `all` every one the level reads. */
15
+ export declare function selectReports(names: readonly string[], level: Level): ExportReportName[];
10
16
  /** Check the options that need no repository, so a typo costs nothing. Returns a message, or null. */
11
- export declare function graphUsageProblem(options: GraphOptions): string | null;
17
+ export declare function graphUsageProblem(options: GraphOptions, level?: Level): string | null;
12
18
  /** `<product>:<label>`, split at the first colon; the label is opaque and matched exactly (Core §7). */
13
19
  export declare function parseRelease(text: string): {
14
20
  product: string;
@@ -1 +1 @@
1
- {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/commands/graph.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAKD,sGAAsG;AACtG,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,CAWtE;AAED,wGAAwG;AACxG,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAOpF;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,GAAG,MAAM,CAuCpF"}
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/commands/graph.ts"],"names":[],"mappings":"AAWA,OAAO,EAEL,KAAK,gBAAgB,EAIrB,KAAK,KAAK,EAGX,MAAM,iBAAiB,CAAC;AAGzB,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAgBD,2GAA2G;AAC3G,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,gBAAgB,EAAE,CAIxF;AAKD,sGAAsG;AACtG,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,GAAE,KAAY,GAAG,MAAM,GAAG,IAAI,CAoB3F;AAED,wGAAwG;AACxG,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAOpF;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,GAAG,MAAM,CA0DpF"}
@@ -1,18 +1,51 @@
1
1
  /**
2
- * `intentset graph --format json` (Core §12): the `intentset/export/0.1`
3
- * envelope over the validated repository. Printed to stdout, or written to
4
- * the one file `--out` names, which may not be any file the repository reads.
2
+ * `intentset graph --format json` (spec/export.md, Core §12): the
3
+ * `intentset/export/0.2` envelope over the validated repository, with the
4
+ * report sections `--report` asks for. Printed to stdout, or written to the
5
+ * one file `--out` names, which may not be any file the repository reads.
5
6
  * A failing validation still exports, with `validation.status: "fail"`, and
6
- * exits 1.
7
+ * exits 1. Restricted artifacts are withheld unless `--include-restricted`.
7
8
  */
8
9
  import { writeFileSync } from "node:fs";
9
10
  import { resolve } from "node:path";
10
- import { ID_PATTERN, exportGraph } from "@intentset/core";
11
+ import { ownershipReport } from "@intentset/architecture";
12
+ import { EXPORT_REPORTS, ID_PATTERN, LEVELS, exportGraph, impactReport, } from "@intentset/core";
13
+ import { knowledgeReport } from "@intentset/publisher";
14
+ import { evidenceReport } from "@intentset/verification";
11
15
  import { outputProblem } from "../outputs.js";
16
+ /** The level each report needs: the one at which its data is read. */
17
+ const REPORT_FLOOR = {
18
+ evidence: "L3",
19
+ knowledge: "L1",
20
+ impact: "L1",
21
+ ownership: "L2",
22
+ };
23
+ const WHY = {
24
+ evidence: "where run records are read",
25
+ knowledge: "",
26
+ impact: "",
27
+ ownership: "where the architecture check reads the tree",
28
+ };
29
+ /** The reports to write, in EXPORT_REPORTS order: those named, or with `all` every one the level reads. */
30
+ export function selectReports(names, level) {
31
+ const reaches = (name) => LEVELS.indexOf(level) >= LEVELS.indexOf(REPORT_FLOOR[name]);
32
+ if (names.includes("all"))
33
+ return EXPORT_REPORTS.filter(reaches);
34
+ return EXPORT_REPORTS.filter((name) => names.includes(name));
35
+ }
12
36
  /** The export schema's generatedAt pattern. */
13
37
  const ISO_8601 = /^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(?:\.[0-9]+)?(?:Z|[+-][0-9]{2}:[0-9]{2})$/;
14
38
  /** Check the options that need no repository, so a typo costs nothing. Returns a message, or null. */
15
- export function graphUsageProblem(options) {
39
+ export function graphUsageProblem(options, level = "L1") {
40
+ for (const name of options.reports ?? []) {
41
+ if (name !== "all" && !EXPORT_REPORTS.includes(name)) {
42
+ return `--report ${name}: the reports are ${EXPORT_REPORTS.join(", ")}, or all`;
43
+ }
44
+ const floor = REPORT_FLOOR[name];
45
+ if (floor !== undefined && LEVELS.indexOf(level) < LEVELS.indexOf(floor)) {
46
+ return `--report ${name} needs --level ${floor} or above, ${WHY[name]}`;
47
+ }
48
+ }
16
49
  if (options.format !== undefined && options.format !== "json") {
17
50
  return `--format ${options.format}: the only format is json`;
18
51
  }
@@ -42,15 +75,33 @@ export function graphCommand(session, options, io) {
42
75
  io.stderr(`intentset graph: --release names ${release.product}, which is not a product in this graph.\n`);
43
76
  return 2;
44
77
  }
78
+ const reports = {};
79
+ for (const name of selectReports(options.reports ?? [], session.level)) {
80
+ if (name === "evidence" && session.evidence !== undefined) {
81
+ reports.evidence = evidenceReport(session.evidence.check, session.evidence.records);
82
+ }
83
+ else if (name === "knowledge") {
84
+ reports.knowledge = knowledgeReport(result.graph);
85
+ }
86
+ else if (name === "impact") {
87
+ reports.impact = impactReport(result.graph);
88
+ }
89
+ else if (name === "ownership" && session.architecture !== undefined) {
90
+ reports.ownership = ownershipReport(session.architecture, snapshot);
91
+ }
92
+ }
45
93
  const envelope = exportGraph(result, repo.registries, {
46
94
  repository: repo.config.repository,
47
95
  commit: snapshot.commit,
48
96
  ...(snapshot.commitUnavailable === undefined ? {} : { commitUnavailable: snapshot.commitUnavailable }),
97
+ uncommitted: snapshot.uncommitted === true,
49
98
  scope: repo.config.scope,
50
99
  level: session.level,
51
100
  release,
52
101
  ...(options.generatedAt === undefined ? {} : { generatedAt: options.generatedAt }),
53
102
  includeBodies: options.includeBodies,
103
+ includeRestricted: options.includeRestricted === true,
104
+ reports,
54
105
  });
55
106
  const text = `${JSON.stringify(envelope, null, 2)}\n`;
56
107
  if (options.out === undefined) {
@@ -70,7 +121,11 @@ export function graphCommand(session, options, io) {
70
121
  io.stderr(`intentset graph: could not write ${options.out}: ${error.message}\n`);
71
122
  return 2;
72
123
  }
73
- io.stderr(`intentset graph: wrote ${options.out} (${envelope.artifacts.length} artifacts, ${envelope.validation.status})\n`);
124
+ const supplied = EXPORT_REPORTS.filter((name) => envelope.reports[name] !== undefined);
125
+ const withheld = envelope.withholding.artifacts;
126
+ io.stderr(`intentset graph: wrote ${options.out} (${envelope.artifacts.length} artifacts, ${envelope.validation.status}; ` +
127
+ `reports: ${supplied.length === 0 ? "none" : supplied.join(", ")}; ` +
128
+ `${withheld} restricted artifact${withheld === 1 ? "" : "s"} withheld)\n`);
74
129
  }
75
130
  return result.ok ? 0 : 1;
76
131
  }
@@ -1 +1 @@
1
- {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/commands/graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/commands/graph.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@
8
8
  import { type ImpactHit } from "@intentset/core";
9
9
  import { type Io } from "../output.ts";
10
10
  import type { Session } from "../session.ts";
11
+ /** Core's note, under the name the CLI has always used for it. */
11
12
  export declare const REACHABILITY_NOTE = "Reachability through authored links marks an artifact for review; it is not proof that runtime behavior changed (Core \u00A710).";
12
13
  export declare function impactCommand(session: Session, id: string, asJson: boolean, io: Io): number;
13
14
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"impact.d.ts","sourceRoot":"","sources":["../../src/commands/impact.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,KAAK,SAAS,EAA6B,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAoB,KAAK,EAAE,EAA4B,MAAM,cAAc,CAAC;AACnF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,eAAO,MAAM,iBAAiB,qIACiG,CAAC;AAEhI,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,GAAG,MAAM,CA0C3F;AA2BD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,GAAG,MAAM,CAM9D"}
1
+ {"version":3,"file":"impact.d.ts","sourceRoot":"","sources":["../../src/commands/impact.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAe,KAAK,SAAS,EAA6B,MAAM,iBAAiB,CAAC;AACzF,OAAO,EAAoB,KAAK,EAAE,EAA4B,MAAM,cAAc,CAAC;AACnF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,kEAAkE;AAClE,eAAO,MAAM,iBAAiB,qIAAc,CAAC;AAE7C,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,GAAG,MAAM,CA0C3F;AA2BD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,GAAG,MAAM,CAM9D"}
@@ -5,10 +5,11 @@
5
5
  * decisions as review context; navigation ancestors. Every report names its
6
6
  * snapshot and says that reachability is not proof. Never writes.
7
7
  */
8
- import { impact } from "@intentset/core";
8
+ import { IMPACT_NOTE, impact } from "@intentset/core";
9
9
  import { formatDiagnostic, json, snapshotLine, TOOL } from "../output.js";
10
10
  import { unresolved, validationLine, validationSummary } from "./shared.js";
11
- export const REACHABILITY_NOTE = "Reachability through authored links marks an artifact for review; it is not proof that runtime behavior changed (Core §10).";
11
+ /** Core's note, under the name the CLI has always used for it. */
12
+ export const REACHABILITY_NOTE = IMPACT_NOTE;
12
13
  export function impactCommand(session, id, asJson, io) {
13
14
  const { graph } = session.result;
14
15
  const level = session.level;
@@ -1 +1 @@
1
- {"version":3,"file":"impact.js","sourceRoot":"","sources":["../../src/commands/impact.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"impact.js","sourceRoot":"","sources":["../../src/commands/impact.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAS,KAAK,EAAE,EAAgB,MAAM,cAAc,CAAC;AAG5D,OAAO,EAA4C,KAAK,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAG5G,eAAO,MAAM,mBAAmB,wGACuE,CAAC;AAExG,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAOD,sCAAsC;AACtC,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAuB7D;AA2CD,wGAAwG;AACxG,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CASlE;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAsGjH"}
1
+ {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAS,KAAK,EAAE,EAAgB,MAAM,cAAc,CAAC;AAG5D,OAAO,EAA4C,KAAK,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAG5G,eAAO,MAAM,mBAAmB,wGACuE,CAAC;AAExG,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAOD,sCAAsC;AACtC,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAuB7D;AA4DD,wGAAwG;AACxG,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CASlE;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAyGjH"}
@@ -52,9 +52,9 @@ export function atlasOf(session) {
52
52
  }
53
53
  /**
54
54
  * Every file a build read as text, and the directories holding them, absolute:
55
- * a newer modification time on any of them means rebuild. A directory's time
56
- * changes when a file is added to it or removed, which is how a new record is
57
- * noticed.
55
+ * a different modification time or size on any of them means rebuild. A
56
+ * directory's time changes when a file is added to it or removed, which is how
57
+ * a new record is noticed.
58
58
  */
59
59
  function watched(session, evidence) {
60
60
  const { repo } = session;
@@ -81,16 +81,33 @@ function watched(session, evidence) {
81
81
  }
82
82
  return [...files];
83
83
  }
84
- function changedSince(paths, since) {
85
- for (const path of paths) {
86
- try {
87
- if (statSync(path).mtimeMs > since)
88
- return path;
89
- }
90
- catch {
91
- // Absent now: a file the build read was removed, or an optional file never existed.
92
- }
84
+ /**
85
+ * Each path's modification time and size, or "absent". Compared with itself
86
+ * later rather than with a clock: a wall-clock start time in whole milliseconds
87
+ * is earlier than a file written in the same millisecond, and a file system's
88
+ * clock is coarser than the process's, so comparing the two calls a file
89
+ * written before the build "changed" (the 0.3.0 release run did, on Linux).
90
+ */
91
+ function stamps(paths) {
92
+ const out = new Map();
93
+ for (const path of paths)
94
+ out.set(path, stamp(path));
95
+ return out;
96
+ }
97
+ function stamp(path) {
98
+ try {
99
+ const stat = statSync(path);
100
+ return `${stat.mtimeMs}:${stat.size}`;
93
101
  }
102
+ catch {
103
+ // Absent: a file the build read was removed, or an optional file never existed.
104
+ return "absent";
105
+ }
106
+ }
107
+ function changedSince(recorded) {
108
+ for (const [path, before] of recorded)
109
+ if (stamp(path) !== before)
110
+ return path;
94
111
  return null;
95
112
  }
96
113
  /** The atlas path a request names, or null when it names none. Nothing here touches the file system. */
@@ -107,7 +124,6 @@ export function requestPath(url) {
107
124
  }
108
125
  export async function serveCommand(options, sessionOptions, io) {
109
126
  const given = sessionOptions.evidence;
110
- let builtAt = Date.now();
111
127
  const first = openSession("serve", sessionOptions, io);
112
128
  if (typeof first === "number")
113
129
  return first;
@@ -122,6 +138,7 @@ export async function serveCommand(options, sessionOptions, io) {
122
138
  }
123
139
  const evidence = () => evidenceFiles(session.repo.root, io.cwd, given);
124
140
  let paths = watched(session, evidence());
141
+ let recorded = stamps(paths);
125
142
  const levelLine = `${count(session.result.graph.artifacts.size, "artifact")}, ${count(session.errors, "error")}, ${count(session.warnings, "warning")} at ${session.level}${session.evidence === undefined
126
143
  ? `; no run records were given or found in ${EVIDENCE_DIR}/, so L3 was not checked`
127
144
  : ""}`;
@@ -129,10 +146,11 @@ export async function serveCommand(options, sessionOptions, io) {
129
146
  return writeAtlas(session, atlas, options.out, levelLine, io);
130
147
  /** Rebuild when a file the last build read has changed; keep serving the last good build if a rebuild fails. */
131
148
  const refresh = () => {
132
- const changed = changedSince(paths, builtAt);
149
+ const changed = changedSince(recorded);
133
150
  if (changed === null)
134
151
  return null;
135
- const started = Date.now();
152
+ // Stamped before the build reads anything, so an edit made while it runs shows as a change next time.
153
+ const before = stamps(paths);
136
154
  const next = openSession("serve", sessionOptions, io);
137
155
  if (typeof next === "number")
138
156
  return "the repository could not be read; the terminal says why";
@@ -143,8 +161,12 @@ export async function serveCommand(options, sessionOptions, io) {
143
161
  return `the Atlas could not be built: ${error.message}`;
144
162
  }
145
163
  session = next;
146
- builtAt = started;
147
164
  paths = watched(session, evidence());
165
+ const after = stamps(paths);
166
+ for (const [path, value] of before)
167
+ if (after.has(path))
168
+ after.set(path, value);
169
+ recorded = after;
148
170
  io.stdout(`rebuilt: ${changed.slice(session.repo.root.length + 1) || "."} changed. ${snapshotLine(session.snapshot)}\n`);
149
171
  return null;
150
172
  };
@@ -1 +1 @@
1
- {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"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"}
package/dist/main.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { Io } from "./output.ts";
2
2
  export type { Io } from "./output.ts";
3
- export declare const USAGE = "usage: intentset <command> [options]\n\ncommands\n init [--repository <name>] [--example]\n create .intentset/config.yaml and an empty .intentset/registries.yaml;\n --example adds the scheduling example under product/scheduling/.\n Never overwrites a file.\n validate every check the level asks for; exit 1 when any diagnostic is an error\n graph [--format json] [--include-bodies] [--release <product>:<label>] [--out <file>]\n [--generated-at <time>]\n print the intentset/export/0.1 envelope, or write it to --out\n architecture check [--mode migration|strict] [--baseline <file>] [--write-baseline <file>]\n ownership, claims, imports, layers and regions (default level L2)\n evidence import --from vitest|node-tap <report> --out <file> --product <ID> --release <label>\n [--environment <text>] [--started-at <time>] [--finished-at <time>] [--uri-base <uri>]\n [--tool-version <v>]\n turn a test report into run records bound to this commit and graph\n impact <ID> what depends on an artifact: direct, candidates, review context, ancestors\n context <ID> [--include-restricted]\n the bounded engineering context of an artifact, with paths and bodies\n review [--base <ref>] the local review report: checks, coverage, and the impact of what changed\n publish --visibility <v> --audience <a> --product <ID> --release <r> --role <r> --edition <e>\n [--flag <f>]... [--authorized-internal] [--authorized-restricted] --out <dir> [--html]\n [--published-at <time>]\n reviewed knowledge for one audience and release, as Markset with provenance\n serve [--port <n>] [--host <address>] [--out <dir>]\n the Atlas, the internal review pages, on http://127.0.0.1:3000/ (rebuilt\n when a file changes), or written to --out; runs at L2, or L3 with run records\n mcp --mode engineering [--include-restricted]\n mcp --mode customer --visibility <public|customer> --audience <a> --product <ID> --release <r>\n --role <r> --edition <e> [--flag <f>]...\n the read-only MCP server on stdio: the engineering graph, or one\n publication made in memory as publish makes it, and nothing else\n\noptions\n --root <dir> repository root (default: the nearest directory at or above this one\n holding .intentset/config.yaml)\n --json machine-readable output, keys in canonical order\n --carrier <markset|plain> how documents are read (default markset)\n --level <L1..L4> conformance level; each includes those below it (default L1):\n L2 adds architecture, L3 evidence, L4 publication readiness\n --evidence <file> L3 and above: run records to read, repeatable (default: every *.json in\n .intentset/evidence/, which holds local output and is not committed)\n --product <ID> --release <label>\n L3 and above: the exact scope evidence is assessed for (default: every scope)\n --mode <migration|strict> --baseline <file>\n L2 and above: whether a baseline of known violations applies, and which\n (for mcp, --mode names the server's mode instead)\n -h, --help show this help\n\nexit codes: 0 no errors, 1 validation errors, 2 invocation or tool failure";
3
+ export declare const USAGE = "usage: intentset <command> [options]\n\ncommands\n init [--repository <name>] [--example]\n create .intentset/config.yaml and an empty .intentset/registries.yaml;\n --example adds the scheduling example under product/scheduling/.\n Never overwrites a file.\n validate every check the level asks for; exit 1 when any diagnostic is an error\n graph [--format json] [--include-bodies] [--release <product>:<label>] [--out <file>]\n [--generated-at <time>] [--report evidence|knowledge|impact|ownership|all]...\n [--include-restricted]\n print the intentset/export/0.2 envelope, or write it to --out;\n each --report adds a section (ownership needs L2, evidence L3; all\n is every one the level reads). Restricted artifacts are withheld\n and counted unless --include-restricted\n architecture check [--mode migration|strict] [--baseline <file>] [--write-baseline <file>]\n ownership, claims, imports, layers and regions (default level L2)\n evidence import --from vitest|node-tap <report> --out <file> --product <ID> --release <label>\n [--environment <text>] [--started-at <time>] [--finished-at <time>] [--uri-base <uri>]\n [--tool-version <v>]\n turn a test report into run records bound to this commit and graph\n impact <ID> what depends on an artifact: direct, candidates, review context, ancestors\n context <ID> [--include-restricted]\n the bounded engineering context of an artifact, with paths and bodies\n review [--base <ref>] the local review report: checks, coverage, and the impact of what changed\n publish --visibility <v> --audience <a> --product <ID> --release <r> --role <r> --edition <e>\n [--flag <f>]... [--authorized-internal] [--authorized-restricted] --out <dir> [--html]\n [--published-at <time>]\n reviewed knowledge for one audience and release, as Markset with provenance\n serve [--port <n>] [--host <address>] [--out <dir>]\n the Atlas, the internal review pages, on http://127.0.0.1:3000/ (rebuilt\n when a file changes), or written to --out; runs at L2, or L3 with run records\n mcp --mode engineering [--include-restricted]\n mcp --mode customer --visibility <public|customer> --audience <a> --product <ID> --release <r>\n --role <r> --edition <e> [--flag <f>]...\n the read-only MCP server on stdio: the engineering graph, or one\n publication made in memory as publish makes it, and nothing else\n\noptions\n --root <dir> repository root (default: the nearest directory at or above this one\n holding .intentset/config.yaml)\n --json machine-readable output, keys in canonical order\n --carrier <markset|plain> how documents are read (default markset)\n --level <L1..L4> conformance level; each includes those below it (default L1):\n L2 adds architecture, L3 evidence, L4 publication readiness\n --evidence <file> L3 and above: run records to read, repeatable (default: every *.json in\n .intentset/evidence/, which holds local output and is not committed)\n --product <ID> --release <label>\n L3 and above: the exact scope evidence is assessed for (default: every scope)\n --mode <migration|strict> --baseline <file>\n L2 and above: whether a baseline of known violations applies, and which\n (for mcp, --mode names the server's mode instead)\n -h, --help show this help\n\nexit codes: 0 no errors, 1 validation errors, 2 invocation or tool failure";
4
4
  export declare function main(argv: string[], io: Io): Promise<number>;
5
5
  //# sourceMappingURL=main.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAItC,YAAY,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEtC,eAAO,MAAM,KAAK,8lHAkDyD,CAAC;AA4E5E,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA0MlE"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAItC,YAAY,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEtC,eAAO,MAAM,KAAK,w7HAsDyD,CAAC;AAuF5E,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA4MlE"}
package/dist/main.js CHANGED
@@ -33,8 +33,12 @@ commands
33
33
  Never overwrites a file.
34
34
  validate every check the level asks for; exit 1 when any diagnostic is an error
35
35
  graph [--format json] [--include-bodies] [--release <product>:<label>] [--out <file>]
36
- [--generated-at <time>]
37
- print the intentset/export/0.1 envelope, or write it to --out
36
+ [--generated-at <time>] [--report evidence|knowledge|impact|ownership|all]...
37
+ [--include-restricted]
38
+ print the intentset/export/0.2 envelope, or write it to --out;
39
+ each --report adds a section (ownership needs L2, evidence L3; all
40
+ is every one the level reads). Restricted artifacts are withheld
41
+ and counted unless --include-restricted
38
42
  architecture check [--mode migration|strict] [--baseline <file>] [--write-baseline <file>]
39
43
  ownership, claims, imports, layers and regions (default level L2)
40
44
  evidence import --from vitest|node-tap <report> --out <file> --product <ID> --release <label>
@@ -93,7 +97,18 @@ const LEVEL_OPTIONS = ["evidence", "product", "release", "mode", "baseline"];
93
97
  const COMMAND_OPTIONS = {
94
98
  init: ["repository", "example"],
95
99
  validate: LEVEL_OPTIONS,
96
- graph: ["format", "include-bodies", "release", "out", "generated-at", "evidence", "mode", "baseline"],
100
+ graph: [
101
+ "format",
102
+ "include-bodies",
103
+ "release",
104
+ "out",
105
+ "generated-at",
106
+ "report",
107
+ "include-restricted",
108
+ "evidence",
109
+ "mode",
110
+ "baseline",
111
+ ],
97
112
  architecture: ["mode", "baseline", "write-baseline"],
98
113
  evidence: [
99
114
  "from",
@@ -241,8 +256,10 @@ export async function main(argv, io) {
241
256
  release: values.release,
242
257
  out: values.out,
243
258
  generatedAt: values["generated-at"],
259
+ reports: values.report ?? [],
260
+ includeRestricted: values["include-restricted"],
244
261
  };
245
- const problem = graphUsageProblem(options);
262
+ const problem = graphUsageProblem(options, levelGiven ?? "L1");
246
263
  if (problem !== null)
247
264
  return usage(problem);
248
265
  const session = openSession(command, sessionOptions(levelGiven ?? "L1"), io);
@@ -376,6 +393,7 @@ function parse(argv) {
376
393
  release: { type: "string" },
377
394
  out: { type: "string" },
378
395
  "generated-at": { type: "string" },
396
+ report: { type: "string", multiple: true },
379
397
  "include-restricted": { type: "boolean", default: false },
380
398
  evidence: { type: "string", multiple: true },
381
399
  product: { type: "string" },
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intentset/cli",
3
- "version": "0.1.0",
3
+ "version": "0.3.0",
4
4
  "description": "The intentset command: validate, graph, architecture check, evidence, impact, review, publish, serve, context, mcp.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -31,14 +31,14 @@
31
31
  "intentset": "./dist/intentset.js"
32
32
  },
33
33
  "dependencies": {
34
- "@intentset/core": "^0.1.0",
35
- "@intentset/markset-adapter": "^0.1.0",
36
- "@intentset/architecture": "^0.1.0",
37
- "@intentset/verification": "^0.1.0",
38
- "@intentset/publisher": "^0.1.0",
39
- "@intentset/atlas": "^0.1.0",
40
- "@intentset/mcp": "^0.1.0",
41
- "@intentset/conformance-suite": "^0.1.0"
34
+ "@intentset/core": "^0.3.0",
35
+ "@intentset/markset-adapter": "^0.3.0",
36
+ "@intentset/architecture": "^0.3.0",
37
+ "@intentset/verification": "^0.3.0",
38
+ "@intentset/publisher": "^0.3.0",
39
+ "@intentset/atlas": "^0.3.0",
40
+ "@intentset/mcp": "^0.3.0",
41
+ "@intentset/conformance-suite": "^0.3.0"
42
42
  },
43
43
  "devDependencies": {
44
44
  "@modelcontextprotocol/sdk": "^1.32.0"
@@ -1,13 +1,26 @@
1
1
  /**
2
- * `intentset graph --format json` (Core §12): the `intentset/export/0.1`
3
- * envelope over the validated repository. Printed to stdout, or written to
4
- * the one file `--out` names, which may not be any file the repository reads.
2
+ * `intentset graph --format json` (spec/export.md, Core §12): the
3
+ * `intentset/export/0.2` envelope over the validated repository, with the
4
+ * report sections `--report` asks for. Printed to stdout, or written to the
5
+ * one file `--out` names, which may not be any file the repository reads.
5
6
  * A failing validation still exports, with `validation.status: "fail"`, and
6
- * exits 1.
7
+ * exits 1. Restricted artifacts are withheld unless `--include-restricted`.
7
8
  */
8
9
  import { writeFileSync } from "node:fs";
9
10
  import { resolve } from "node:path";
10
- import { ID_PATTERN, exportGraph } from "@intentset/core";
11
+ import { ownershipReport } from "@intentset/architecture";
12
+ import {
13
+ EXPORT_REPORTS,
14
+ type ExportReportName,
15
+ type ExportReports,
16
+ ID_PATTERN,
17
+ LEVELS,
18
+ type Level,
19
+ exportGraph,
20
+ impactReport,
21
+ } from "@intentset/core";
22
+ import { knowledgeReport } from "@intentset/publisher";
23
+ import { evidenceReport } from "@intentset/verification";
11
24
  import type { Io } from "../output.ts";
12
25
  import { outputProblem } from "../outputs.ts";
13
26
  import type { Session } from "../session.ts";
@@ -18,13 +31,46 @@ export interface GraphOptions {
18
31
  release?: string;
19
32
  out?: string;
20
33
  generatedAt?: string;
34
+ /** Report names as given, `all` included. */
35
+ reports?: string[];
36
+ includeRestricted?: boolean;
37
+ }
38
+
39
+ /** The level each report needs: the one at which its data is read. */
40
+ const REPORT_FLOOR: Record<ExportReportName, Level> = {
41
+ evidence: "L3",
42
+ knowledge: "L1",
43
+ impact: "L1",
44
+ ownership: "L2",
45
+ };
46
+ const WHY: Record<ExportReportName, string> = {
47
+ evidence: "where run records are read",
48
+ knowledge: "",
49
+ impact: "",
50
+ ownership: "where the architecture check reads the tree",
51
+ };
52
+
53
+ /** The reports to write, in EXPORT_REPORTS order: those named, or with `all` every one the level reads. */
54
+ export function selectReports(names: readonly string[], level: Level): ExportReportName[] {
55
+ const reaches = (name: ExportReportName) => LEVELS.indexOf(level) >= LEVELS.indexOf(REPORT_FLOOR[name]);
56
+ if (names.includes("all")) return EXPORT_REPORTS.filter(reaches);
57
+ return EXPORT_REPORTS.filter((name) => names.includes(name));
21
58
  }
22
59
 
23
60
  /** The export schema's generatedAt pattern. */
24
61
  const ISO_8601 = /^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(?:\.[0-9]+)?(?:Z|[+-][0-9]{2}:[0-9]{2})$/;
25
62
 
26
63
  /** Check the options that need no repository, so a typo costs nothing. Returns a message, or null. */
27
- export function graphUsageProblem(options: GraphOptions): string | null {
64
+ export function graphUsageProblem(options: GraphOptions, level: Level = "L1"): string | null {
65
+ for (const name of options.reports ?? []) {
66
+ if (name !== "all" && !(EXPORT_REPORTS as readonly string[]).includes(name)) {
67
+ return `--report ${name}: the reports are ${EXPORT_REPORTS.join(", ")}, or all`;
68
+ }
69
+ const floor = REPORT_FLOOR[name as ExportReportName];
70
+ if (floor !== undefined && LEVELS.indexOf(level) < LEVELS.indexOf(floor)) {
71
+ return `--report ${name} needs --level ${floor} or above, ${WHY[name as ExportReportName]}`;
72
+ }
73
+ }
28
74
  if (options.format !== undefined && options.format !== "json") {
29
75
  return `--format ${options.format}: the only format is json`;
30
76
  }
@@ -54,15 +100,30 @@ export function graphCommand(session: Session, options: GraphOptions, io: Io): n
54
100
  io.stderr(`intentset graph: --release names ${release.product}, which is not a product in this graph.\n`);
55
101
  return 2;
56
102
  }
103
+ const reports: ExportReports = {};
104
+ for (const name of selectReports(options.reports ?? [], session.level)) {
105
+ if (name === "evidence" && session.evidence !== undefined) {
106
+ reports.evidence = evidenceReport(session.evidence.check, session.evidence.records);
107
+ } else if (name === "knowledge") {
108
+ reports.knowledge = knowledgeReport(result.graph);
109
+ } else if (name === "impact") {
110
+ reports.impact = impactReport(result.graph);
111
+ } else if (name === "ownership" && session.architecture !== undefined) {
112
+ reports.ownership = ownershipReport(session.architecture, snapshot);
113
+ }
114
+ }
57
115
  const envelope = exportGraph(result, repo.registries, {
58
116
  repository: repo.config.repository,
59
117
  commit: snapshot.commit,
60
118
  ...(snapshot.commitUnavailable === undefined ? {} : { commitUnavailable: snapshot.commitUnavailable }),
119
+ uncommitted: snapshot.uncommitted === true,
61
120
  scope: repo.config.scope,
62
121
  level: session.level,
63
122
  release,
64
123
  ...(options.generatedAt === undefined ? {} : { generatedAt: options.generatedAt }),
65
124
  includeBodies: options.includeBodies,
125
+ includeRestricted: options.includeRestricted === true,
126
+ reports,
66
127
  });
67
128
  const text = `${JSON.stringify(envelope, null, 2)}\n`;
68
129
 
@@ -81,8 +142,12 @@ export function graphCommand(session: Session, options: GraphOptions, io: Io): n
81
142
  io.stderr(`intentset graph: could not write ${options.out}: ${(error as Error).message}\n`);
82
143
  return 2;
83
144
  }
145
+ const supplied = EXPORT_REPORTS.filter((name) => envelope.reports[name] !== undefined);
146
+ const withheld = envelope.withholding.artifacts;
84
147
  io.stderr(
85
- `intentset graph: wrote ${options.out} (${envelope.artifacts.length} artifacts, ${envelope.validation.status})\n`,
148
+ `intentset graph: wrote ${options.out} (${envelope.artifacts.length} artifacts, ${envelope.validation.status}; ` +
149
+ `reports: ${supplied.length === 0 ? "none" : supplied.join(", ")}; ` +
150
+ `${withheld} restricted artifact${withheld === 1 ? "" : "s"} withheld)\n`,
86
151
  );
87
152
  }
88
153
  return result.ok ? 0 : 1;
@@ -5,13 +5,13 @@
5
5
  * decisions as review context; navigation ancestors. Every report names its
6
6
  * snapshot and says that reachability is not proof. Never writes.
7
7
  */
8
- import { type ImpactHit, type ImpactReport, impact } from "@intentset/core";
8
+ import { IMPACT_NOTE, type ImpactHit, type ImpactReport, impact } from "@intentset/core";
9
9
  import { formatDiagnostic, type Io, json, snapshotLine, TOOL } from "../output.ts";
10
10
  import type { Session } from "../session.ts";
11
11
  import { unresolved, validationLine, validationSummary } from "./shared.ts";
12
12
 
13
- export const REACHABILITY_NOTE =
14
- "Reachability through authored links marks an artifact for review; it is not proof that runtime behavior changed (Core §10).";
13
+ /** Core's note, under the name the CLI has always used for it. */
14
+ export const REACHABILITY_NOTE = IMPACT_NOTE;
15
15
 
16
16
  export function impactCommand(session: Session, id: string, asJson: boolean, io: Io): number {
17
17
  const { graph } = session.result;
@@ -65,9 +65,9 @@ export function atlasOf(session: Session): Map<string, string> {
65
65
 
66
66
  /**
67
67
  * Every file a build read as text, and the directories holding them, absolute:
68
- * a newer modification time on any of them means rebuild. A directory's time
69
- * changes when a file is added to it or removed, which is how a new record is
70
- * noticed.
68
+ * a different modification time or size on any of them means rebuild. A
69
+ * directory's time changes when a file is added to it or removed, which is how
70
+ * a new record is noticed.
71
71
  */
72
72
  function watched(session: Session, evidence: readonly string[]): string[] {
73
73
  const { repo } = session;
@@ -93,14 +93,31 @@ function watched(session: Session, evidence: readonly string[]): string[] {
93
93
  return [...files];
94
94
  }
95
95
 
96
- function changedSince(paths: readonly string[], since: number): string | null {
97
- for (const path of paths) {
98
- try {
99
- if (statSync(path).mtimeMs > since) return path;
100
- } catch {
101
- // Absent now: a file the build read was removed, or an optional file never existed.
102
- }
96
+ /**
97
+ * Each path's modification time and size, or "absent". Compared with itself
98
+ * later rather than with a clock: a wall-clock start time in whole milliseconds
99
+ * is earlier than a file written in the same millisecond, and a file system's
100
+ * clock is coarser than the process's, so comparing the two calls a file
101
+ * written before the build "changed" (the 0.3.0 release run did, on Linux).
102
+ */
103
+ function stamps(paths: readonly string[]): Map<string, string> {
104
+ const out = new Map<string, string>();
105
+ for (const path of paths) out.set(path, stamp(path));
106
+ return out;
107
+ }
108
+
109
+ function stamp(path: string): string {
110
+ try {
111
+ const stat = statSync(path);
112
+ return `${stat.mtimeMs}:${stat.size}`;
113
+ } catch {
114
+ // Absent: a file the build read was removed, or an optional file never existed.
115
+ return "absent";
103
116
  }
117
+ }
118
+
119
+ function changedSince(recorded: ReadonlyMap<string, string>): string | null {
120
+ for (const [path, before] of recorded) if (stamp(path) !== before) return path;
104
121
  return null;
105
122
  }
106
123
 
@@ -118,7 +135,6 @@ export function requestPath(url: string | undefined): string | null {
118
135
 
119
136
  export async function serveCommand(options: ServeOptions, sessionOptions: SessionOptions, io: Io): Promise<number> {
120
137
  const given = sessionOptions.evidence;
121
- let builtAt = Date.now();
122
138
  const first = openSession("serve", sessionOptions, io);
123
139
  if (typeof first === "number") return first;
124
140
  let session: Session = first;
@@ -131,6 +147,7 @@ export async function serveCommand(options: ServeOptions, sessionOptions: Sessio
131
147
  }
132
148
  const evidence = () => evidenceFiles(session.repo.root, io.cwd, given);
133
149
  let paths = watched(session, evidence());
150
+ let recorded = stamps(paths);
134
151
  const levelLine = `${count(session.result.graph.artifacts.size, "artifact")}, ${count(session.errors, "error")}, ${count(session.warnings, "warning")} at ${session.level}${
135
152
  session.evidence === undefined
136
153
  ? `; no run records were given or found in ${EVIDENCE_DIR}/, so L3 was not checked`
@@ -141,9 +158,10 @@ export async function serveCommand(options: ServeOptions, sessionOptions: Sessio
141
158
 
142
159
  /** Rebuild when a file the last build read has changed; keep serving the last good build if a rebuild fails. */
143
160
  const refresh = (): string | null => {
144
- const changed = changedSince(paths, builtAt);
161
+ const changed = changedSince(recorded);
145
162
  if (changed === null) return null;
146
- const started = Date.now();
163
+ // Stamped before the build reads anything, so an edit made while it runs shows as a change next time.
164
+ const before = stamps(paths);
147
165
  const next = openSession("serve", sessionOptions, io);
148
166
  if (typeof next === "number") return "the repository could not be read; the terminal says why";
149
167
  try {
@@ -152,8 +170,10 @@ export async function serveCommand(options: ServeOptions, sessionOptions: Sessio
152
170
  return `the Atlas could not be built: ${(error as Error).message}`;
153
171
  }
154
172
  session = next;
155
- builtAt = started;
156
173
  paths = watched(session, evidence());
174
+ const after = stamps(paths);
175
+ for (const [path, value] of before) if (after.has(path)) after.set(path, value);
176
+ recorded = after;
157
177
  io.stdout(
158
178
  `rebuilt: ${changed.slice(session.repo.root.length + 1) || "."} changed. ${snapshotLine(session.snapshot)}\n`,
159
179
  );
package/src/main.ts CHANGED
@@ -39,8 +39,12 @@ commands
39
39
  Never overwrites a file.
40
40
  validate every check the level asks for; exit 1 when any diagnostic is an error
41
41
  graph [--format json] [--include-bodies] [--release <product>:<label>] [--out <file>]
42
- [--generated-at <time>]
43
- print the intentset/export/0.1 envelope, or write it to --out
42
+ [--generated-at <time>] [--report evidence|knowledge|impact|ownership|all]...
43
+ [--include-restricted]
44
+ print the intentset/export/0.2 envelope, or write it to --out;
45
+ each --report adds a section (ownership needs L2, evidence L3; all
46
+ is every one the level reads). Restricted artifacts are withheld
47
+ and counted unless --include-restricted
44
48
  architecture check [--mode migration|strict] [--baseline <file>] [--write-baseline <file>]
45
49
  ownership, claims, imports, layers and regions (default level L2)
46
50
  evidence import --from vitest|node-tap <report> --out <file> --product <ID> --release <label>
@@ -101,7 +105,18 @@ const LEVEL_OPTIONS = ["evidence", "product", "release", "mode", "baseline"];
101
105
  const COMMAND_OPTIONS: Record<string, string[]> = {
102
106
  init: ["repository", "example"],
103
107
  validate: LEVEL_OPTIONS,
104
- graph: ["format", "include-bodies", "release", "out", "generated-at", "evidence", "mode", "baseline"],
108
+ graph: [
109
+ "format",
110
+ "include-bodies",
111
+ "release",
112
+ "out",
113
+ "generated-at",
114
+ "report",
115
+ "include-restricted",
116
+ "evidence",
117
+ "mode",
118
+ "baseline",
119
+ ],
105
120
  architecture: ["mode", "baseline", "write-baseline"],
106
121
  evidence: [
107
122
  "from",
@@ -251,8 +266,10 @@ export async function main(argv: string[], io: Io): Promise<number> {
251
266
  release: values.release,
252
267
  out: values.out,
253
268
  generatedAt: values["generated-at"],
269
+ reports: values.report ?? [],
270
+ includeRestricted: values["include-restricted"],
254
271
  };
255
- const problem = graphUsageProblem(options);
272
+ const problem = graphUsageProblem(options, levelGiven ?? "L1");
256
273
  if (problem !== null) return usage(problem);
257
274
  const session = openSession(command, sessionOptions(levelGiven ?? "L1"), io);
258
275
  return typeof session === "number" ? session : graphCommand(session, options, io);
@@ -379,6 +396,7 @@ function parse(argv: string[]) {
379
396
  release: { type: "string" },
380
397
  out: { type: "string" },
381
398
  "generated-at": { type: "string" },
399
+ report: { type: "string", multiple: true },
382
400
  "include-restricted": { type: "boolean", default: false },
383
401
  evidence: { type: "string", multiple: true },
384
402
  product: { type: "string" },