@intentset/cli 0.8.1 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/architecture.d.ts.map +1 -1
- package/dist/commands/architecture.js +23 -5
- package/dist/commands/architecture.js.map +1 -1
- package/dist/commands/review.d.ts +26 -0
- package/dist/commands/review.d.ts.map +1 -1
- package/dist/commands/review.js +70 -2
- package/dist/commands/review.js.map +1 -1
- package/dist/git.d.ts +7 -0
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +25 -2
- package/dist/git.js.map +1 -1
- package/dist/main.d.ts +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +17 -5
- package/dist/main.js.map +1 -1
- package/dist/session.d.ts +7 -1
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +6 -1
- package/dist/session.js.map +1 -1
- package/package.json +9 -9
- package/src/commands/architecture.ts +23 -5
- package/src/commands/review.ts +104 -3
- package/src/git.ts +24 -2
- package/src/main.ts +19 -5
- package/src/session.ts +8 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"architecture.d.ts","sourceRoot":"","sources":["../../src/commands/architecture.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"architecture.d.ts","sourceRoot":"","sources":["../../src/commands/architecture.ts"],"names":[],"mappings":"AAYA,OAAO,EAA2B,KAAK,EAAE,EAAc,MAAM,cAAc,CAAC;AAG5E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,EACnC,MAAM,EAAE,OAAO,EACf,EAAE,EAAE,EAAE,GACL,MAAM,CAwER"}
|
|
@@ -4,11 +4,12 @@
|
|
|
4
4
|
* in migration mode, the baseline, over every file the configuration does
|
|
5
5
|
* not ignore. Diagnostics like validate's, then the summary with what was not
|
|
6
6
|
* checked and what is left to review. `--write-baseline` writes the one file
|
|
7
|
-
* it names
|
|
7
|
+
* it names, and says how many entries the file it replaces did not hold and
|
|
8
|
+
* how many of its entries are gone. Nothing else is written.
|
|
8
9
|
*/
|
|
9
|
-
import { writeFileSync } from "node:fs";
|
|
10
|
+
import { existsSync, readFileSync, writeFileSync } from "node:fs";
|
|
10
11
|
import { resolve } from "node:path";
|
|
11
|
-
import { writeBaseline } from "@intentset/architecture";
|
|
12
|
+
import { compareBaselines, parseBaseline, writeBaseline } from "@intentset/architecture";
|
|
12
13
|
import { count, formatDiagnostic, json, TOOL } from "../output.js";
|
|
13
14
|
import { outputProblem } from "../outputs.js";
|
|
14
15
|
import { architectureLines } from "../reports.js";
|
|
@@ -27,7 +28,15 @@ export function architectureCommand(session, options, asJson, io) {
|
|
|
27
28
|
io.stderr(`intentset architecture check: --write-baseline ${options.writeBaseline} ${problem}; not written.\n`);
|
|
28
29
|
return 2;
|
|
29
30
|
}
|
|
30
|
-
const entries = writeBaseline(diagnostics);
|
|
31
|
+
const entries = writeBaseline(diagnostics, (diagnostic) => architecture.subjects.get(diagnostic));
|
|
32
|
+
let replaced = null;
|
|
33
|
+
try {
|
|
34
|
+
if (existsSync(target))
|
|
35
|
+
replaced = parseBaseline(readFileSync(target, "utf8"));
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
replaced = null;
|
|
39
|
+
}
|
|
31
40
|
try {
|
|
32
41
|
writeFileSync(target, `${JSON.stringify(entries, null, 2)}\n`);
|
|
33
42
|
}
|
|
@@ -35,7 +44,16 @@ export function architectureCommand(session, options, asJson, io) {
|
|
|
35
44
|
io.stderr(`intentset architecture check: could not write ${options.writeBaseline}: ${error.message}\n`);
|
|
36
45
|
return 2;
|
|
37
46
|
}
|
|
38
|
-
|
|
47
|
+
const change = replaced === null
|
|
48
|
+
? ""
|
|
49
|
+
: (() => {
|
|
50
|
+
const { added, removed, replaced: smaller, rewritten } = compareBaselines(replaced, entries);
|
|
51
|
+
const form = rewritten.length === 0
|
|
52
|
+
? ""
|
|
53
|
+
: `, ${count(rewritten.length, "entry", "entries")} rewritten in the current form as ${rewritten.reduce((sum, item) => sum + item.to.length, 0)}`;
|
|
54
|
+
return ` (${added.length} the file did not hold, ${removed.length + smaller.length} retired${form})`;
|
|
55
|
+
})();
|
|
56
|
+
io.stderr(`intentset architecture check: wrote ${count(entries.length, "baseline entry", "baseline entries")} to ${options.writeBaseline}${change}\n`);
|
|
39
57
|
}
|
|
40
58
|
if (asJson) {
|
|
41
59
|
io.stdout(json({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"architecture.js","sourceRoot":"","sources":["../../src/commands/architecture.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"architecture.js","sourceRoot":"","sources":["../../src/commands/architecture.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,8 +13,17 @@
|
|
|
13
13
|
* review). A refactor changes code and no behavior, so the list is a prompt,
|
|
14
14
|
* not an error: a commit says so with an Intentset-Unchanged trailer, and
|
|
15
15
|
* `--fail-on-drift` fails only on slices no commit has spoken for.
|
|
16
|
+
*
|
|
17
|
+
* With `--baseline`, it compares the baseline with the base's copy (VSA §9:
|
|
18
|
+
* a baseline may shrink and may not grow): the entries the base did not hold,
|
|
19
|
+
* those it held that are gone, those that moved with a renamed file, and
|
|
20
|
+
* cycles replaced by smaller ones, and entries written before 0.9 rewritten
|
|
21
|
+
* in the current form. `--fail-on-baseline-growth` fails on any
|
|
22
|
+
* entry the base did not hold; a deliberate addition is the caller's call.
|
|
16
23
|
*/
|
|
24
|
+
import { type BaselineComparison, type BaselineEntry } from "@intentset/architecture";
|
|
17
25
|
import { type Graph } from "@intentset/core";
|
|
26
|
+
import { type Base } from "../git.ts";
|
|
18
27
|
import { type Io } from "../output.ts";
|
|
19
28
|
import type { Session } from "../session.ts";
|
|
20
29
|
export interface Attribution {
|
|
@@ -41,9 +50,26 @@ export interface Drift {
|
|
|
41
50
|
export declare const DRIFT_NOTE: string;
|
|
42
51
|
/** Each slice whose code is among the changed files while none of its describing records is, sorted by slice ID. */
|
|
43
52
|
export declare function drift(graph: Graph, changed: readonly string[], acknowledged: ReadonlySet<string>): Drift[];
|
|
53
|
+
export interface BaselineReview extends Partial<BaselineComparison> {
|
|
54
|
+
/** The baseline file as given on the command line. */
|
|
55
|
+
file: string;
|
|
56
|
+
/** Entries in it now. */
|
|
57
|
+
entries: number;
|
|
58
|
+
/** Entries in the base's copy; null when the base has none or it could not be compared. */
|
|
59
|
+
atBase: number | null;
|
|
60
|
+
/** Why the comparison was not made, or what it assumed. */
|
|
61
|
+
note?: string;
|
|
62
|
+
}
|
|
63
|
+
/** The baseline compared with the base's copy, or why it could not be. */
|
|
64
|
+
export declare function reviewBaseline(root: string, base: Base | null, baseline: {
|
|
65
|
+
given: string;
|
|
66
|
+
path: string | null;
|
|
67
|
+
entries: BaselineEntry[];
|
|
68
|
+
}): BaselineReview;
|
|
44
69
|
export declare function reviewCommand(session: Session, options: {
|
|
45
70
|
base?: string;
|
|
46
71
|
levelReason: string;
|
|
47
72
|
failOnDrift?: boolean;
|
|
73
|
+
failOnBaselineGrowth?: boolean;
|
|
48
74
|
}, asJson: boolean, io: Io): number;
|
|
49
75
|
//# sourceMappingURL=review.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../src/commands/review.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../src/commands/review.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAInB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,KAAK,EAA0B,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAEL,KAAK,IAAI,EAOV,MAAM,WAAW,CAAC;AACnB,OAAO,EAA2B,KAAK,EAAE,EAA4B,MAAM,cAAc,CAAC;AAE1F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAI7C,MAAM,WAAW,WAAW;IAC1B,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,kJAAkJ;AAClJ,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG;IAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,CAiCrH;AAED,MAAM,WAAW,KAAK;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,oFAAoF;IACpF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,kEAAkE;IAClE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,2FAA2F;IAC3F,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,eAAO,MAAM,UAAU,QAGqF,CAAC;AAE7G,oHAAoH;AACpH,wBAAgB,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,CAkB1G;AAED,MAAM,WAAW,cAAe,SAAQ,OAAO,CAAC,kBAAkB,CAAC;IACjE,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,2FAA2F;IAC3F,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,0EAA0E;AAC1E,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,IAAI,GAAG,IAAI,EACjB,QAAQ,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,aAAa,EAAE,CAAA;CAAE,GACzE,cAAc,CAqBhB;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAAE,EACtG,MAAM,EAAE,OAAO,EACf,EAAE,EAAE,EAAE,GACL,MAAM,CA2GR"}
|
package/dist/commands/review.js
CHANGED
|
@@ -13,9 +13,17 @@
|
|
|
13
13
|
* review). A refactor changes code and no behavior, so the list is a prompt,
|
|
14
14
|
* not an error: a commit says so with an Intentset-Unchanged trailer, and
|
|
15
15
|
* `--fail-on-drift` fails only on slices no commit has spoken for.
|
|
16
|
+
*
|
|
17
|
+
* With `--baseline`, it compares the baseline with the base's copy (VSA §9:
|
|
18
|
+
* a baseline may shrink and may not grow): the entries the base did not hold,
|
|
19
|
+
* those it held that are gone, those that moved with a renamed file, and
|
|
20
|
+
* cycles replaced by smaller ones, and entries written before 0.9 rewritten
|
|
21
|
+
* in the current form. `--fail-on-baseline-growth` fails on any
|
|
22
|
+
* entry the base did not hold; a deliberate addition is the caller's call.
|
|
16
23
|
*/
|
|
24
|
+
import { compareBaselines, describeEntry, parseBaseline, } from "@intentset/architecture";
|
|
17
25
|
import { impact, compareStrings } from "@intentset/core";
|
|
18
|
-
import { acknowledgedSlices, changedFiles, chooseBase, UNCHANGED_TRAILER } from "../git.js";
|
|
26
|
+
import { acknowledgedSlices, changedFiles, chooseBase, fileAt, renamesSince, UNCHANGED_TRAILER, } from "../git.js";
|
|
19
27
|
import { count, formatDiagnostic, json, snapshotLine, TOOL } from "../output.js";
|
|
20
28
|
import { levelJson, levelSections } from "../reports.js";
|
|
21
29
|
import { activeSlices, claimingSlices, describingRecords, isSliceCode } from "../slices.js";
|
|
@@ -83,6 +91,33 @@ export function drift(graph, changed, acknowledged) {
|
|
|
83
91
|
}
|
|
84
92
|
return out;
|
|
85
93
|
}
|
|
94
|
+
/** The baseline compared with the base's copy, or why it could not be. */
|
|
95
|
+
export function reviewBaseline(root, base, baseline) {
|
|
96
|
+
const out = { file: baseline.given, entries: baseline.entries.length, atBase: null };
|
|
97
|
+
if (base === null)
|
|
98
|
+
return { ...out, note: "there is no base, so nothing was compared" };
|
|
99
|
+
if (baseline.path === null)
|
|
100
|
+
return { ...out, note: "the file lies outside the repository, so it has no base copy" };
|
|
101
|
+
const text = fileAt(root, base.commit, baseline.path);
|
|
102
|
+
let atBase = null;
|
|
103
|
+
let note;
|
|
104
|
+
if (text === null)
|
|
105
|
+
note = "the base has no such file, so every entry is new";
|
|
106
|
+
else {
|
|
107
|
+
try {
|
|
108
|
+
atBase = parseBaseline(text);
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
note = `the base's copy could not be read (${error.message}), so every entry is new`;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return {
|
|
115
|
+
...out,
|
|
116
|
+
atBase: atBase === null ? null : atBase.length,
|
|
117
|
+
...(note === undefined ? {} : { note }),
|
|
118
|
+
...compareBaselines(atBase, baseline.entries, renamesSince(root, base.commit)),
|
|
119
|
+
};
|
|
120
|
+
}
|
|
86
121
|
export function reviewCommand(session, options, asJson, io) {
|
|
87
122
|
const { repo, result, snapshot } = session;
|
|
88
123
|
const graph = result.graph;
|
|
@@ -98,7 +133,9 @@ export function reviewCommand(session, options, asJson, io) {
|
|
|
98
133
|
const changed = [...new Set([...changes.committed, ...changes.uncommitted])].sort(compareStrings);
|
|
99
134
|
const { starts, unattributed } = attribute(graph, changed);
|
|
100
135
|
const drifted = drift(graph, changed, new Set(acknowledgedSlices(repo.root, base)));
|
|
101
|
-
const
|
|
136
|
+
const baseline = session.baseline === undefined ? null : reviewBaseline(repo.root, base, session.baseline);
|
|
137
|
+
const failing = (options.failOnDrift === true && drifted.some((item) => !item.acknowledged)) ||
|
|
138
|
+
(options.failOnBaselineGrowth === true && (baseline?.added?.length ?? 0) > 0);
|
|
102
139
|
const exit = session.errors > 0 || failing ? 1 : 0;
|
|
103
140
|
const impacts = starts.map(({ start, because }) => {
|
|
104
141
|
const artifact = graph.artifacts.get(start);
|
|
@@ -127,6 +164,7 @@ export function reviewCommand(session, options, asJson, io) {
|
|
|
127
164
|
note: REACHABILITY_NOTE,
|
|
128
165
|
impact: impacts,
|
|
129
166
|
drift: drifted,
|
|
167
|
+
...(baseline === null ? {} : { baseline }),
|
|
130
168
|
unattributed,
|
|
131
169
|
}));
|
|
132
170
|
return exit;
|
|
@@ -180,6 +218,8 @@ export function reviewCommand(session, options, asJson, io) {
|
|
|
180
218
|
out.push(...item.code.map((path) => `- Code changed: ${path}`));
|
|
181
219
|
out.push(`- Records describing it, none changed: ${item.records.join(", ")}`);
|
|
182
220
|
}
|
|
221
|
+
if (baseline !== null)
|
|
222
|
+
out.push("", ...baselineSection(baseline));
|
|
183
223
|
out.push("", `## Changed files no artifact accounts for (${unattributed.length})`, "");
|
|
184
224
|
if (unattributed.length === 0)
|
|
185
225
|
out.push("None.");
|
|
@@ -188,4 +228,32 @@ export function reviewCommand(session, options, asJson, io) {
|
|
|
188
228
|
io.stdout(`${out.join("\n")}\n`);
|
|
189
229
|
return exit;
|
|
190
230
|
}
|
|
231
|
+
/** The review's baseline section: what the change added to the baseline and what it retired. */
|
|
232
|
+
function baselineSection(review) {
|
|
233
|
+
const out = [
|
|
234
|
+
`## Baseline (${review.file}: ${count(review.entries, "entry", "entries")}${review.atBase === null ? "" : `, ${review.atBase} at the base`})`,
|
|
235
|
+
"",
|
|
236
|
+
"A baseline may shrink and may not grow (VSA §9). An entry the base did not hold is a violation this change let in.",
|
|
237
|
+
];
|
|
238
|
+
if (review.note !== undefined)
|
|
239
|
+
out.push("", `${review.note.charAt(0).toUpperCase()}${review.note.slice(1)}.`);
|
|
240
|
+
if (review.added === undefined)
|
|
241
|
+
return out;
|
|
242
|
+
const list = (title, lines) => {
|
|
243
|
+
out.push("", `### ${title} (${lines.length})`, "");
|
|
244
|
+
if (lines.length === 0)
|
|
245
|
+
out.push("None.");
|
|
246
|
+
else
|
|
247
|
+
out.push(...lines.map((line) => `- ${line}`));
|
|
248
|
+
};
|
|
249
|
+
list("Added since the base", review.added.map(describeEntry));
|
|
250
|
+
list("Retired since the base", (review.removed ?? []).map(describeEntry));
|
|
251
|
+
list("Moved with a renamed file", (review.moved ?? []).map(({ from, to }) => `${from.code} ${from.path} -> ${to.path}`));
|
|
252
|
+
list("Rewritten in the current form", (review.rewritten ?? []).map(({ from, to }) => {
|
|
253
|
+
const names = to.map((entry) => entry.name).filter((name) => name !== undefined);
|
|
254
|
+
return `${describeEntry(from)} -> ${count(to.length, "entry", "entries")}${names.length > 0 ? `: ${names.join(", ")}` : ""}`;
|
|
255
|
+
}));
|
|
256
|
+
list("Cycles replaced by smaller ones", (review.replaced ?? []).map(({ from, to }) => `${describeEntry(from)} -> ${to.message ?? to.fingerprint}`));
|
|
257
|
+
return out;
|
|
258
|
+
}
|
|
191
259
|
//# sourceMappingURL=review.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review.js","sourceRoot":"","sources":["../../src/commands/review.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"review.js","sourceRoot":"","sources":["../../src/commands/review.ts"],"names":[],"mappings":"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"}
|
package/dist/git.d.ts
CHANGED
|
@@ -43,4 +43,11 @@ export declare function changedSince(root: string, commit: string): string[] | n
|
|
|
43
43
|
* rewrites tracked files asks only that its rewrite be a diff on its own.
|
|
44
44
|
*/
|
|
45
45
|
export declare function trackedChanges(root: string): string[] | null;
|
|
46
|
+
/** A file's text at `commit`, by its path relative to the root, or null when the commit has no such file. */
|
|
47
|
+
export declare function fileAt(root: string, commit: string, path: string): string | null;
|
|
48
|
+
/**
|
|
49
|
+
* The files renamed between `commit` and the working tree, as git's rename detection finds them, old path to new,
|
|
50
|
+
* relative to the root. A rename whose new file is untracked is not seen until it is added.
|
|
51
|
+
*/
|
|
52
|
+
export declare function renamesSince(root: string, commit: string): Map<string, string>;
|
|
46
53
|
//# sourceMappingURL=git.d.ts.map
|
package/dist/git.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AA2BA,MAAM,WAAW,IAAI;IACnB,mGAAmG;IACnG,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,gDAAgD;IAChD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iDAAiD;IACjD,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,kHAAkH;IAClH,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,uCAAuC;AACvC,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGtE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAczG;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAAC,CAWvG;AAED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,wBAAwB,CAAC;AAEvD,kGAAkG;AAClG,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,EAAE,CAK5E;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAM1E;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAI5D"}
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AA2BA,MAAM,WAAW,IAAI;IACnB,mGAAmG;IACnG,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,gDAAgD;IAChD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iDAAiD;IACjD,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,kHAAkH;IAClH,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,uCAAuC;AACvC,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGtE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAczG;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAAC,CAWvG;AAED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,wBAAwB,CAAC;AAEvD,kGAAkG;AAClG,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,EAAE,CAK5E;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAM1E;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAI5D;AAED,6GAA6G;AAC7G,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEhF;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAW9E"}
|
package/dist/git.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The git reads `review` needs: a base to compare with
|
|
3
|
-
* since it. Every call is a read and passes --no-optional-locks, so not even
|
|
2
|
+
* The git reads `review` needs: a base to compare with, the files changed
|
|
3
|
+
* since it, the files it renamed and a file's text at the base. Every call is a read and passes --no-optional-locks, so not even
|
|
4
4
|
* git's own index refresh is written (invariant 7). Paths come back relative
|
|
5
5
|
* to the repository root the CLI is working in, which may be a subdirectory
|
|
6
6
|
* of the git work tree.
|
|
@@ -101,4 +101,27 @@ export function trackedChanges(root) {
|
|
|
101
101
|
return null;
|
|
102
102
|
return out.split("\0").filter((entry) => entry !== "");
|
|
103
103
|
}
|
|
104
|
+
/** A file's text at `commit`, by its path relative to the root, or null when the commit has no such file. */
|
|
105
|
+
export function fileAt(root, commit, path) {
|
|
106
|
+
return git(root, ["show", `${commit}:./${path}`]);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* The files renamed between `commit` and the working tree, as git's rename detection finds them, old path to new,
|
|
110
|
+
* relative to the root. A rename whose new file is untracked is not seen until it is added.
|
|
111
|
+
*/
|
|
112
|
+
export function renamesSince(root, commit) {
|
|
113
|
+
const fields = paths(git(root, ["diff", "--relative", "--name-status", "-M", "-z", commit]));
|
|
114
|
+
const renames = new Map();
|
|
115
|
+
for (let i = 0; i < fields.length;) {
|
|
116
|
+
const status = fields[i];
|
|
117
|
+
if (status.startsWith("R") || status.startsWith("C")) {
|
|
118
|
+
if (status.startsWith("R"))
|
|
119
|
+
renames.set(fields[i + 1], fields[i + 2]);
|
|
120
|
+
i += 3;
|
|
121
|
+
}
|
|
122
|
+
else
|
|
123
|
+
i += 2;
|
|
124
|
+
}
|
|
125
|
+
return renames;
|
|
126
|
+
}
|
|
104
127
|
//# sourceMappingURL=git.js.map
|
package/dist/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.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] [--agents]\n create .intentset/config.yaml, an empty .intentset/registries.yaml\n and .intentset/agents.md, the guide that tells coding agents how to\n keep the model current; --example adds the scheduling example under\n product/scheduling/; --agents writes only the guide, for a\n repository already initialized. Never overwrites a file.\n guide print that guide for this repository, for the scope its config\n names, without writing anything\n validate every check the level asks for; exit 1 when any diagnostic is an\n 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.4 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|playwright|node-tap <report> --out <file> --product <ID>\n --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 evidence stale [--release <product>:<label>] [--check] [--binding <subject|commit>]\n [--format list|json|playwright|vitest|node-test]\n what needs a run: the automated verifications whose evidence is\n not a current pass, as a table, as JSON, or as the arguments that\n make a test runner run only those tests; never writes; --check\n exits 1 when any needs a run\n impact <ID> what depends on an artifact: direct, candidates, review context,\n ancestors\n context <ID|path> [--include-restricted]\n the bounded engineering context of an artifact, with paths and\n bodies; given a file a slice claims, the context of that slice\n review [--base <ref>] [--fail-on-drift]\n the local review report: checks, coverage, the impact of what\n changed, and each slice whose code changed while its records did\n not; --fail-on-drift exits 1 for any such slice no commit\n acknowledged with an Intentset-Unchanged trailer\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\n provenance\n serve [--port <n>] [--host <address>] [--out <dir>]\n the Atlas, the internal review pages, on http://127.0.0.1:3000/\n (rebuilt when a file changes), or written to --out; runs at L2, or\n L3 with run records\n migrate --to 0.2 [--allow-dirty]\n move the records the model reads from specifications 0.1 to 0.2:\n rewrites intentset.spec and intentset.profile in each record's\n frontmatter and nothing else, and says how many. Refuses a tree\n with uncommitted changes to tracked files unless --allow-dirty\n mcp --mode engineering [--include-restricted]\n mcp --mode customer --visibility <public|customer> --audience <a> --product <ID>\n --release <r> --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\n one 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\n *.json in .intentset/evidence/, which holds local output and is not\n committed)\n --product <ID> --release <label>\n L3 and above: the exact scope evidence is assessed for (default:\n every scope)\n --binding <subject|commit>\n L3 and above, and evidence import: how run evidence is judged\n current, overriding evidence.binding in the configuration (default:\n subject where slices claim files, else commit). Subject keeps a\n record current while what it checked is unchanged; commit only at\n the commit it ran at\n --mode <migration|strict> --baseline <file>\n L2 and above: whether a baseline of known violations applies, and\n which (for mcp, --mode names the server's mode instead)\n -h, --help show this help\n --version print \"intentset <version>\", the checker version a report names\n\nexit codes: 0 no errors, 1 validation errors (or, with review --fail-on-drift,\n unacknowledged drift), 2 invocation or tool failure";
|
|
3
|
+
export declare const USAGE = "usage: intentset <command> [options]\n\ncommands\n init [--repository <name>] [--example] [--agents]\n create .intentset/config.yaml, an empty .intentset/registries.yaml\n and .intentset/agents.md, the guide that tells coding agents how to\n keep the model current; --example adds the scheduling example under\n product/scheduling/; --agents writes only the guide, for a\n repository already initialized. Never overwrites a file.\n guide print that guide for this repository, for the scope its config\n names, without writing anything\n validate every check the level asks for; exit 1 when any diagnostic is an\n 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.4 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|playwright|node-tap <report> --out <file> --product <ID>\n --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 evidence stale [--release <product>:<label>] [--check] [--binding <subject|commit>]\n [--format list|json|playwright|vitest|node-test]\n what needs a run: the automated verifications whose evidence is\n not a current pass, as a table, as JSON, or as the arguments that\n make a test runner run only those tests; never writes; --check\n exits 1 when any needs a run\n impact <ID> what depends on an artifact: direct, candidates, review context,\n ancestors\n context <ID|path> [--include-restricted]\n the bounded engineering context of an artifact, with paths and\n bodies; given a file a slice claims, the context of that slice\n review [--base <ref>] [--fail-on-drift] [--baseline <file> [--fail-on-baseline-growth]]\n the local review report: checks, coverage, the impact of what\n changed, and each slice whose code changed while its records did\n not; --fail-on-drift exits 1 for any such slice no commit\n acknowledged with an Intentset-Unchanged trailer. With --baseline,\n the entries the base's copy did not hold and those it retired;\n --fail-on-baseline-growth exits 1 for any it did not hold\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\n provenance\n serve [--port <n>] [--host <address>] [--out <dir>]\n the Atlas, the internal review pages, on http://127.0.0.1:3000/\n (rebuilt when a file changes), or written to --out; runs at L2, or\n L3 with run records\n migrate --to 0.2 [--allow-dirty]\n move the records the model reads from specifications 0.1 to 0.2:\n rewrites intentset.spec and intentset.profile in each record's\n frontmatter and nothing else, and says how many. Refuses a tree\n with uncommitted changes to tracked files unless --allow-dirty\n mcp --mode engineering [--include-restricted]\n mcp --mode customer --visibility <public|customer> --audience <a> --product <ID>\n --release <r> --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\n one 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\n *.json in .intentset/evidence/, which holds local output and is not\n committed)\n --product <ID> --release <label>\n L3 and above: the exact scope evidence is assessed for (default:\n every scope)\n --binding <subject|commit>\n L3 and above, and evidence import: how run evidence is judged\n current, overriding evidence.binding in the configuration (default:\n subject where slices claim files, else commit). Subject keeps a\n record current while what it checked is unchanged; commit only at\n the commit it ran at\n --mode <migration|strict> --baseline <file>\n L2 and above: whether a baseline of known violations applies, and\n which (for mcp, --mode names the server's mode instead)\n -h, --help show this help\n --version print \"intentset <version>\", the checker version a report names\n\nexit codes: 0 no errors, 1 validation errors (or, with review --fail-on-drift,\n unacknowledged drift; with --fail-on-baseline-growth, a baseline\n entry the base did not hold), 2 invocation or tool failure";
|
|
4
4
|
export declare function main(argv: string[], io: Io): Promise<number>;
|
|
5
5
|
//# sourceMappingURL=main.d.ts.map
|
package/dist/main.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AA8BA,OAAO,EAAE,KAAK,EAAE,EAAQ,MAAM,aAAa,CAAC;AAI5C,YAAY,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEtC,eAAO,MAAM,KAAK,
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AA8BA,OAAO,EAAE,KAAK,EAAE,EAAQ,MAAM,aAAa,CAAC;AAI5C,YAAY,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEtC,eAAO,MAAM,KAAK,kqNA4FqD,CAAC;AAgGxE,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAmSlE"}
|
package/dist/main.js
CHANGED
|
@@ -67,11 +67,13 @@ commands
|
|
|
67
67
|
context <ID|path> [--include-restricted]
|
|
68
68
|
the bounded engineering context of an artifact, with paths and
|
|
69
69
|
bodies; given a file a slice claims, the context of that slice
|
|
70
|
-
review [--base <ref>] [--fail-on-drift]
|
|
70
|
+
review [--base <ref>] [--fail-on-drift] [--baseline <file> [--fail-on-baseline-growth]]
|
|
71
71
|
the local review report: checks, coverage, the impact of what
|
|
72
72
|
changed, and each slice whose code changed while its records did
|
|
73
73
|
not; --fail-on-drift exits 1 for any such slice no commit
|
|
74
|
-
acknowledged with an Intentset-Unchanged trailer
|
|
74
|
+
acknowledged with an Intentset-Unchanged trailer. With --baseline,
|
|
75
|
+
the entries the base's copy did not hold and those it retired;
|
|
76
|
+
--fail-on-baseline-growth exits 1 for any it did not hold
|
|
75
77
|
publish --visibility <v> --audience <a> --product <ID> --release <r> --role <r> --edition <e>
|
|
76
78
|
[--flag <f>]... [--authorized-internal] [--authorized-restricted] --out <dir> [--html]
|
|
77
79
|
[--published-at <time>]
|
|
@@ -118,7 +120,8 @@ options
|
|
|
118
120
|
--version print "intentset <version>", the checker version a report names
|
|
119
121
|
|
|
120
122
|
exit codes: 0 no errors, 1 validation errors (or, with review --fail-on-drift,
|
|
121
|
-
unacknowledged drift
|
|
123
|
+
unacknowledged drift; with --fail-on-baseline-growth, a baseline
|
|
124
|
+
entry the base did not hold), 2 invocation or tool failure`;
|
|
122
125
|
const COMMANDS = [
|
|
123
126
|
"init",
|
|
124
127
|
"guide",
|
|
@@ -172,7 +175,7 @@ const COMMAND_OPTIONS = {
|
|
|
172
175
|
],
|
|
173
176
|
impact: LEVEL_OPTIONS,
|
|
174
177
|
context: ["include-restricted", ...LEVEL_OPTIONS],
|
|
175
|
-
review: ["base", "fail-on-drift", ...LEVEL_OPTIONS],
|
|
178
|
+
review: ["base", "fail-on-drift", "fail-on-baseline-growth", ...LEVEL_OPTIONS],
|
|
176
179
|
serve: ["port", "host", "out", ...LEVEL_OPTIONS],
|
|
177
180
|
mcp: [
|
|
178
181
|
"mode",
|
|
@@ -428,10 +431,18 @@ export async function main(argv, io) {
|
|
|
428
431
|
? "the highest the inputs allow: run records were given or found"
|
|
429
432
|
: `the highest the inputs allow: no run records were given or found in ${EVIDENCE_DIR}/, so L3 and L4 were not checked`;
|
|
430
433
|
}
|
|
434
|
+
if (values["fail-on-baseline-growth"] && values.baseline === undefined) {
|
|
435
|
+
return usage("--fail-on-baseline-growth compares a baseline with the base's copy; give it with --baseline <file>");
|
|
436
|
+
}
|
|
431
437
|
const session = openSession(command, sessionOptions(level), io);
|
|
432
438
|
if (typeof session === "number")
|
|
433
439
|
return session;
|
|
434
|
-
return reviewCommand(session, {
|
|
440
|
+
return reviewCommand(session, {
|
|
441
|
+
base: values.base,
|
|
442
|
+
levelReason: reason,
|
|
443
|
+
failOnDrift: values["fail-on-drift"],
|
|
444
|
+
failOnBaselineGrowth: values["fail-on-baseline-growth"],
|
|
445
|
+
}, values.json, io);
|
|
435
446
|
}
|
|
436
447
|
case "serve": {
|
|
437
448
|
const port = values.port === undefined ? 3000 : Number(values.port);
|
|
@@ -505,6 +516,7 @@ function parse(argv) {
|
|
|
505
516
|
example: { type: "boolean", default: false },
|
|
506
517
|
agents: { type: "boolean", default: false },
|
|
507
518
|
"fail-on-drift": { type: "boolean", default: false },
|
|
519
|
+
"fail-on-baseline-growth": { type: "boolean", default: false },
|
|
508
520
|
format: { type: "string" },
|
|
509
521
|
"include-bodies": { type: "boolean", default: false },
|
|
510
522
|
release: { type: "string" },
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,iBAAiB,EAAwB,MAAM,EAAc,MAAM,iBAAiB,CAAC;AAE9F,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAC/F,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAW,IAAI,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAoB,QAAQ,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAuB,MAAM,cAAc,CAAC;AAI7F,MAAM,CAAC,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCAuEmB,YAAY;;;;;;;;;;;;;;;;;;gEAkBY,CAAC;AAEjE,MAAM,QAAQ,GAAG;IACf,MAAM;IACN,OAAO;IACP,UAAU;IACV,OAAO;IACP,cAAc;IACd,UAAU;IACV,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,SAAS;IACT,OAAO;IACP,SAAS;IACT,KAAK;CACN,CAAC;AAEF,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AACvE,MAAM,aAAa,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;AACxF,MAAM,eAAe,GAA6B;IAChD,IAAI,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,QAAQ,CAAC;IACzC,KAAK,EAAE,EAAE;IACT,OAAO,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC;IAC9B,QAAQ,EAAE,aAAa;IACvB,KAAK,EAAE;QACL,QAAQ;QACR,gBAAgB;QAChB,SAAS;QACT,KAAK;QACL,cAAc;QACd,QAAQ;QACR,oBAAoB;QACpB,UAAU;QACV,MAAM;QACN,UAAU;QACV,SAAS;KACV;IACD,YAAY,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,gBAAgB,CAAC;IACpD,QAAQ,EAAE;QACR,QAAQ;QACR,OAAO;QACP,UAAU;QACV,MAAM;QACN,KAAK;QACL,SAAS;QACT,SAAS;QACT,aAAa;QACb,YAAY;QACZ,aAAa;QACb,UAAU;QACV,cAAc;QACd,SAAS;KACV;IACD,MAAM,EAAE,aAAa;IACrB,OAAO,EAAE,CAAC,oBAAoB,EAAE,GAAG,aAAa,CAAC;IACjD,MAAM,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,aAAa,CAAC;IACnD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC;IAChD,GAAG,EAAE;QACH,MAAM;QACN,oBAAoB;QACpB,YAAY;QACZ,UAAU;QACV,SAAS;QACT,SAAS;QACT,MAAM;QACN,SAAS;QACT,MAAM;QACN,qBAAqB;QACrB,uBAAuB;QACvB,cAAc;KACf;IACD,OAAO,EAAE;QACP,YAAY;QACZ,UAAU;QACV,SAAS;QACT,SAAS;QACT,MAAM;QACN,SAAS;QACT,MAAM;QACN,qBAAqB;QACrB,uBAAuB;QACvB,KAAK;QACL,MAAM;QACN,cAAc;KACf;CACF,CAAC;AAEF,sFAAsF;AACtF,MAAM,WAAW,GAAoF;IACnG,YAAY,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;IAC9C,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE;IAC5E,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE;IAC5C,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,+BAA+B,EAAE;CAC7D,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAc,EAAE,EAAM;IAC/C,IAAI,MAAgC,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,EAAE,CAAC,MAAM,CAAC,cAAe,KAAe,CAAC,OAAO,OAAO,KAAK,IAAI,CAAC,CAAC;QAClE,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC/C,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,WAAW,CAAC;IACvC,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACnC,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;QAC5C,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACzC,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;QACxB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IACD,kGAAkG;IAClG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,EAAE,CAAC,MAAM,CAAC,+BAA+B,OAAO,QAAQ,KAAK,IAAI,CAAC,CAAC;QACnE,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,OAAe,EAAE,EAAE;QAChC,EAAE,CAAC,MAAM,CAAC,aAAa,OAAO,KAAK,OAAO,IAAI,CAAC,CAAC;QAChD,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,CAAC,GAAG,MAAM,EAAE,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACjE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7D,OAAO,KAAK,CAAC,KAAK,KAAK,CAAC,IAAI,wBAAwB,OAAO,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IACnD,IAAI,IAAI,GAAG,IAAI,CAAC;IAChB,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;IACzB,IAAI,GAAuB,CAAC;IAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;YACzD,OAAO,KAAK,CACV,KAAK,CAAC,MAAM,KAAK,CAAC;gBAChB,CAAC,CAAC,2BAA2B,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG;gBACnD,CAAC,CAAC,uBAAuB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,OAAO,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CACvF,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM;QAAE,OAAO,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,cAAc,CAAC,CAAC;IACpE,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,4CAA4C,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,OAAO,KAAK,CAAC,wBAAwB,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3B,0EAA0E;QAC1E,MAAM,GAAG,GACP,GAAG,KAAK,OAAO;YACb,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC;YACvD,CAAC,CAAC;gBACE,MAAM;gBACN,KAAK;gBACL,SAAS;gBACT,SAAS;gBACT,aAAa;gBACb,YAAY;gBACZ,aAAa;gBACb,UAAU;gBACV,cAAc;gBACd,SAAS;aACV,CAAC;QACR,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1G,OAAO,KAAK,CAAC,KAAK,KAAK,CAAC,IAAI,iCAAiC,GAAG,EAAE,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,SAAS,CAAC;IAC5C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC,aAAa,OAAO,sBAAsB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAChG,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,KAA0B,CAAC;IACrD,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7D,OAAO,KAAK,CAAC,WAAW,UAAU,oBAAoB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC,gFAAgF,CAAC,CAAC;IACjG,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9G,OAAO,KAAK,CAAC,UAAU,MAAM,CAAC,IAAI,sCAAsC,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,OAAO,KAAK,OAAO;QAAE,OAAO,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACxE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,mBAAmB,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QACvD,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,cAAc,CACnB,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,OAAsB,EAAE,EACxG,EAAE,CACH,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO;YACjC,OAAO,KAAK,CAAC,oEAAoE,CAAC,CAAC;QACrF,OAAO,WAAW,CAChB,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,EACxG,EAAE,CACH,CAAC;IACJ,CAAC;IAED,oFAAoF;IACpF,IAAI,KAAK,GAAoB,IAAI,CAAC;IAClC,IAAI,CAAC,OAAO,KAAK,UAAU,IAAI,GAAG,KAAK,OAAO,CAAC,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QAC9F,IAAI,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;YAClD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACnF,KAAK,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;QACzF,CAAC;aAAM,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,EAAE,CAAC;YAC7E,OAAO,KAAK,CAAC,uEAAuE,CAAC,CAAC;QACxF,CAAC;aAAM,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACxE,KAAK,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,CAAE,iBAAuC,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACvG,OAAO,KAAK,CAAC,aAAa,MAAM,CAAC,OAAO,sBAAsB,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACnG,CAAC;IACD,MAAM,cAAc,GAAG,CAAC,KAAY,EAAkB,EAAE,CAAC,CAAC;QACxD,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO,EAAE,OAAsB;QAC/B,KAAK;QACL,IAAI,EAAE,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,MAAM,CAAC,IAAyB;QACvE,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK;QACL,OAAO,EAAE,MAAM,CAAC,OAAsC;KACvD,CAAC,CAAC;IAEH,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,UAAU,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,cAAc,CAAC,UAAU,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7E,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3F,CAAC;QACD,KAAK,OAAO,EAAE,CAAC;YACb,MAAM,OAAO,GAAG;gBACd,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,aAAa,EAAE,MAAM,CAAC,gBAAgB,CAAC;gBACvC,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,WAAW,EAAE,MAAM,CAAC,cAAc,CAAC;gBACnC,OAAO,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;gBAC5B,iBAAiB,EAAE,MAAM,CAAC,oBAAoB,CAAC;aAChD,CAAC;YACF,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC,CAAC;YAC/D,IAAI,OAAO,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5C,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,cAAc,CAAC,UAAU,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7E,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,KAAK,cAAc,EAAE,CAAC;YACpB,IAAI,UAAU,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAC,oEAAoE,CAAC,CAAC;YAC5G,MAAM,OAAO,GAAG,WAAW,CAAC,oBAAoB,EAAE,cAAc,CAAC,UAAU,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1F,IAAI,OAAO,OAAO,KAAK,QAAQ;gBAAE,OAAO,OAAO,CAAC;YAChD,OAAO,mBAAmB,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACpG,CAAC;QACD,KAAK,UAAU,EAAE,CAAC;YAChB,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;gBACpB,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;oBAC/C,OAAO,KAAK,CAAC,gEAAgE,CAAC,CAAC;gBACjF,CAAC;gBACD,MAAM,YAAY,GAAG;oBACnB,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,IAAI,EAAE,MAAM,CAAC,IAAI;iBAClB,CAAC;gBACF,MAAM,OAAO,GAAG,yBAAyB,CAAC,YAAY,CAAC,CAAC;gBACxD,IAAI,SAAS,IAAI,OAAO;oBAAE,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACxD,MAAM,OAAO,GAAG,WAAW,CAAC,gBAAgB,EAAE,cAAc,CAAC,UAAU,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;gBACtF,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;YACjH,CAAC;YACD,MAAM,OAAO,GAAG;gBACd,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;gBACf,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC;gBAC/B,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC;gBACjC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC;gBAC3B,WAAW,EAAE,MAAM,CAAC,cAAc,CAAC;gBACnC,OAAO,EAAE,MAAM,CAAC,OAAsC;aACvD,CAAC;YACF,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,OAAO,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5C,MAAM,OAAO,GAAG,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,UAAU,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YACvF,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QAC7F,CAAC;QACD,KAAK,QAAQ,EAAE,CAAC;YACd,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,cAAc,CAAC,UAAU,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7E,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAClG,CAAC;QACD,KAAK,SAAS,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,cAAc,CAAC,UAAU,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7E,IAAI,OAAO,OAAO,KAAK,QAAQ;gBAAE,OAAO,OAAO,CAAC;YAChD,OAAO,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACzF,CAAC;QACD,KAAK,QAAQ,EAAE,CAAC;YACd,IAAI,KAAK,GAAG,UAAU,CAAC;YACvB,IAAI,MAAM,GAAG,UAAU,CAAC;YACxB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC3C,MAAM,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAClF,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;gBACzC,MAAM;oBACJ,OAAO,CAAC,MAAM,GAAG,CAAC;wBAChB,CAAC,CAAC,+DAA+D;wBACjE,CAAC,CAAC,uEAAuE,YAAY,kCAAkC,CAAC;YAC9H,CAAC;YACD,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YAChE,IAAI,OAAO,OAAO,KAAK,QAAQ;gBAAE,OAAO,OAAO,CAAC;YAChD,OAAO,aAAa,CAClB,OAAO,EACP,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,eAAe,CAAC,EAAE,EAChF,MAAM,CAAC,IAAI,EACX,EAAE,CACH,CAAC;QACJ,CAAC;QACD,KAAK,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,IAAI,MAAM,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;gBAC9E,OAAO,KAAK,CAAC,UAAU,MAAM,CAAC,IAAI,sCAAsC,CAAC,CAAC;YAC5E,CAAC;YACD,IAAI,KAAK,GAAG,UAAU,CAAC;YACvB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC3C,KAAK,GAAG,IAAI,KAAK,IAAI,IAAI,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YACjG,CAAC;YACD,OAAO,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,WAAW,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9G,CAAC;QACD,KAAK,KAAK,EAAE,CAAC;YACX,MAAM,OAAO,GAAG;gBACd,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,iBAAiB,EAAE,MAAM,CAAC,oBAAoB,CAAC;gBAC/C,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;gBACxB,kBAAkB,EAAE,MAAM,CAAC,qBAAqB,CAAC;gBACjD,oBAAoB,EAAE,MAAM,CAAC,uBAAuB,CAAC;gBACrD,WAAW,EAAE,MAAM,CAAC,cAAc,CAAC;aACpC,CAAC;YACF,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;YACzC,IAAI,OAAO,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5C,OAAO,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,UAAU,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,SAAS,CAAC;YACR,MAAM,OAAO,GAAG;gBACd,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;gBACxB,kBAAkB,EAAE,MAAM,CAAC,qBAAqB,CAAC;gBACjD,oBAAoB,EAAE,MAAM,CAAC,uBAAuB,CAAC;gBACrD,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,WAAW,EAAE,MAAM,CAAC,cAAc,CAAC;aACpC,CAAC;YACF,MAAM,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAC7C,IAAI,OAAO,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5C,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,cAAc,CAAC,UAAU,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7E,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,IAAc;IAC3B,OAAO,SAAS,CAAC;QACf,IAAI,EAAE,IAAI;QACV,gBAAgB,EAAE,IAAI;QACtB,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE;YACP,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;YACzC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE;YACrD,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;YAC5C,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC9B,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;YAC5C,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;YAC3C,eAAe,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;YACpD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1B,gBAAgB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;YACrD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACvB,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAClC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC1C,oBAAoB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;YACzD,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC5C,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC5B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACpC,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;YAC1C,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC/B,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAChC,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACjC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC9B,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAClC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC9B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC5B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;YACxC,qBAAqB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;YAC1D,uBAAuB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;YAC5D,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;YACzC,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAClC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACtB,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;SACnD;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
package/dist/session.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ArchitectureResult, type Mode } from "@intentset/architecture";
|
|
1
|
+
import { type ArchitectureResult, type BaselineEntry, type Mode } from "@intentset/architecture";
|
|
2
2
|
import { type Diagnostic, type EvidenceBinding, type Graph, type Level, type ValidationResult } from "@intentset/core";
|
|
3
3
|
import { type BindingDecision, type EvidenceCheck, type EvidenceSnapshot, type RunRecord, type RunScope } from "@intentset/verification";
|
|
4
4
|
import { type Io, type Snapshot } from "./output.ts";
|
|
@@ -44,6 +44,12 @@ export interface Session {
|
|
|
44
44
|
snapshot: Snapshot;
|
|
45
45
|
tree?: Tree;
|
|
46
46
|
architecture?: ArchitectureResult;
|
|
47
|
+
/** L2 and above, with --baseline: the baseline read, and its path relative to the root, or null outside it. */
|
|
48
|
+
baseline?: {
|
|
49
|
+
given: string;
|
|
50
|
+
path: string | null;
|
|
51
|
+
entries: BaselineEntry[];
|
|
52
|
+
};
|
|
47
53
|
evidence?: EvidenceRun;
|
|
48
54
|
/** L4: the active knowledge artifacts checked for publication readiness, by ID. */
|
|
49
55
|
publication?: {
|
package/dist/session.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,KAAK,kBAAkB,
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
|
package/dist/session.js
CHANGED
|
@@ -54,19 +54,24 @@ export function openSession(command, options, io) {
|
|
|
54
54
|
const session = { repo, level, snapshot };
|
|
55
55
|
if (at(level, "L2")) {
|
|
56
56
|
let baseline = [];
|
|
57
|
+
let baselinePath = null;
|
|
57
58
|
if (options.baseline !== undefined) {
|
|
58
|
-
const
|
|
59
|
+
const file = resolve(io.cwd, options.baseline);
|
|
60
|
+
const read = readBaseline(file);
|
|
59
61
|
if (typeof read === "string") {
|
|
60
62
|
io.stderr(`intentset ${command}: --baseline ${options.baseline}: ${read}\n`);
|
|
61
63
|
return 2;
|
|
62
64
|
}
|
|
63
65
|
baseline = read;
|
|
66
|
+
baselinePath = insideRoot(root, file);
|
|
67
|
+
session.baseline = { given: options.baseline, path: baselinePath, entries: baseline };
|
|
64
68
|
}
|
|
65
69
|
const tree = readTree(root, repo.config);
|
|
66
70
|
const architecture = checkArchitecture(graph, repo.registries, { files: tree.files }, {
|
|
67
71
|
level,
|
|
68
72
|
mode: options.mode ?? "migration",
|
|
69
73
|
baseline,
|
|
74
|
+
...(baselinePath === null ? {} : { baselinePath }),
|
|
70
75
|
today: options.today ?? new Date().toISOString().slice(0, 10),
|
|
71
76
|
...(repo.config.registries === null ? {} : { registriesPath: repo.config.registries }),
|
|
72
77
|
});
|
package/dist/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAGL,iBAAiB,EAEjB,aAAa,GACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,cAAc,EAId,SAAS,EACT,SAAS,EACT,MAAM,EAEN,eAAe,EAEf,QAAQ,GACT,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAEL,aAAa,EAKb,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAA0B,MAAM,aAAa,CAAC;AACvE,OAAO,EAAoB,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAmB,MAAM,iBAAiB,CAAC;AAC3G,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAa,MAAM,WAAW,CAAC;AAEhD,sGAAsG;AACtG,MAAM,CAAC,MAAM,YAAY,GAAG,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.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.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "The intentset command: validate, graph, architecture check, evidence, impact, review, publish, serve, context, mcp, guide.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"intentset",
|
|
@@ -39,14 +39,14 @@
|
|
|
39
39
|
"intentset": "./dist/intentset.js"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@intentset/core": "^0.
|
|
43
|
-
"@intentset/markset-adapter": "^0.
|
|
44
|
-
"@intentset/architecture": "^0.
|
|
45
|
-
"@intentset/verification": "^0.
|
|
46
|
-
"@intentset/publisher": "^0.
|
|
47
|
-
"@intentset/atlas": "^0.
|
|
48
|
-
"@intentset/mcp": "^0.
|
|
49
|
-
"@intentset/conformance-suite": "^0.
|
|
42
|
+
"@intentset/core": "^0.10.0",
|
|
43
|
+
"@intentset/markset-adapter": "^0.10.0",
|
|
44
|
+
"@intentset/architecture": "^0.10.0",
|
|
45
|
+
"@intentset/verification": "^0.10.0",
|
|
46
|
+
"@intentset/publisher": "^0.10.0",
|
|
47
|
+
"@intentset/atlas": "^0.10.0",
|
|
48
|
+
"@intentset/mcp": "^0.10.0",
|
|
49
|
+
"@intentset/conformance-suite": "^0.10.0"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@modelcontextprotocol/sdk": "^1.32.0"
|
|
@@ -4,11 +4,12 @@
|
|
|
4
4
|
* in migration mode, the baseline, over every file the configuration does
|
|
5
5
|
* not ignore. Diagnostics like validate's, then the summary with what was not
|
|
6
6
|
* checked and what is left to review. `--write-baseline` writes the one file
|
|
7
|
-
* it names
|
|
7
|
+
* it names, and says how many entries the file it replaces did not hold and
|
|
8
|
+
* how many of its entries are gone. Nothing else is written.
|
|
8
9
|
*/
|
|
9
|
-
import { writeFileSync } from "node:fs";
|
|
10
|
+
import { existsSync, readFileSync, writeFileSync } from "node:fs";
|
|
10
11
|
import { resolve } from "node:path";
|
|
11
|
-
import { writeBaseline } from "@intentset/architecture";
|
|
12
|
+
import { type BaselineEntry, compareBaselines, parseBaseline, writeBaseline } from "@intentset/architecture";
|
|
12
13
|
import { count, formatDiagnostic, type Io, json, TOOL } from "../output.ts";
|
|
13
14
|
import { outputProblem } from "../outputs.ts";
|
|
14
15
|
import { architectureLines } from "../reports.ts";
|
|
@@ -34,7 +35,13 @@ export function architectureCommand(
|
|
|
34
35
|
io.stderr(`intentset architecture check: --write-baseline ${options.writeBaseline} ${problem}; not written.\n`);
|
|
35
36
|
return 2;
|
|
36
37
|
}
|
|
37
|
-
const entries = writeBaseline(diagnostics);
|
|
38
|
+
const entries = writeBaseline(diagnostics, (diagnostic) => architecture.subjects.get(diagnostic));
|
|
39
|
+
let replaced: BaselineEntry[] | null = null;
|
|
40
|
+
try {
|
|
41
|
+
if (existsSync(target)) replaced = parseBaseline(readFileSync(target, "utf8"));
|
|
42
|
+
} catch {
|
|
43
|
+
replaced = null;
|
|
44
|
+
}
|
|
38
45
|
try {
|
|
39
46
|
writeFileSync(target, `${JSON.stringify(entries, null, 2)}\n`);
|
|
40
47
|
} catch (error) {
|
|
@@ -43,8 +50,19 @@ export function architectureCommand(
|
|
|
43
50
|
);
|
|
44
51
|
return 2;
|
|
45
52
|
}
|
|
53
|
+
const change =
|
|
54
|
+
replaced === null
|
|
55
|
+
? ""
|
|
56
|
+
: (() => {
|
|
57
|
+
const { added, removed, replaced: smaller, rewritten } = compareBaselines(replaced, entries);
|
|
58
|
+
const form =
|
|
59
|
+
rewritten.length === 0
|
|
60
|
+
? ""
|
|
61
|
+
: `, ${count(rewritten.length, "entry", "entries")} rewritten in the current form as ${rewritten.reduce((sum, item) => sum + item.to.length, 0)}`;
|
|
62
|
+
return ` (${added.length} the file did not hold, ${removed.length + smaller.length} retired${form})`;
|
|
63
|
+
})();
|
|
46
64
|
io.stderr(
|
|
47
|
-
`intentset architecture check: wrote ${count(entries.length, "baseline entry", "baseline entries")} to ${options.writeBaseline}\n`,
|
|
65
|
+
`intentset architecture check: wrote ${count(entries.length, "baseline entry", "baseline entries")} to ${options.writeBaseline}${change}\n`,
|
|
48
66
|
);
|
|
49
67
|
}
|
|
50
68
|
|
package/src/commands/review.ts
CHANGED
|
@@ -13,9 +13,32 @@
|
|
|
13
13
|
* review). A refactor changes code and no behavior, so the list is a prompt,
|
|
14
14
|
* not an error: a commit says so with an Intentset-Unchanged trailer, and
|
|
15
15
|
* `--fail-on-drift` fails only on slices no commit has spoken for.
|
|
16
|
+
*
|
|
17
|
+
* With `--baseline`, it compares the baseline with the base's copy (VSA §9:
|
|
18
|
+
* a baseline may shrink and may not grow): the entries the base did not hold,
|
|
19
|
+
* those it held that are gone, those that moved with a renamed file, and
|
|
20
|
+
* cycles replaced by smaller ones, and entries written before 0.9 rewritten
|
|
21
|
+
* in the current form. `--fail-on-baseline-growth` fails on any
|
|
22
|
+
* entry the base did not hold; a deliberate addition is the caller's call.
|
|
16
23
|
*/
|
|
24
|
+
import {
|
|
25
|
+
type BaselineComparison,
|
|
26
|
+
type BaselineEntry,
|
|
27
|
+
compareBaselines,
|
|
28
|
+
describeEntry,
|
|
29
|
+
parseBaseline,
|
|
30
|
+
} from "@intentset/architecture";
|
|
17
31
|
import { type Graph, impact, compareStrings } from "@intentset/core";
|
|
18
|
-
import {
|
|
32
|
+
import {
|
|
33
|
+
acknowledgedSlices,
|
|
34
|
+
type Base,
|
|
35
|
+
type Changes,
|
|
36
|
+
changedFiles,
|
|
37
|
+
chooseBase,
|
|
38
|
+
fileAt,
|
|
39
|
+
renamesSince,
|
|
40
|
+
UNCHANGED_TRAILER,
|
|
41
|
+
} from "../git.ts";
|
|
19
42
|
import { count, formatDiagnostic, type Io, json, snapshotLine, TOOL } from "../output.ts";
|
|
20
43
|
import { levelJson, levelSections } from "../reports.ts";
|
|
21
44
|
import type { Session } from "../session.ts";
|
|
@@ -102,9 +125,48 @@ export function drift(graph: Graph, changed: readonly string[], acknowledged: Re
|
|
|
102
125
|
return out;
|
|
103
126
|
}
|
|
104
127
|
|
|
128
|
+
export interface BaselineReview extends Partial<BaselineComparison> {
|
|
129
|
+
/** The baseline file as given on the command line. */
|
|
130
|
+
file: string;
|
|
131
|
+
/** Entries in it now. */
|
|
132
|
+
entries: number;
|
|
133
|
+
/** Entries in the base's copy; null when the base has none or it could not be compared. */
|
|
134
|
+
atBase: number | null;
|
|
135
|
+
/** Why the comparison was not made, or what it assumed. */
|
|
136
|
+
note?: string;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/** The baseline compared with the base's copy, or why it could not be. */
|
|
140
|
+
export function reviewBaseline(
|
|
141
|
+
root: string,
|
|
142
|
+
base: Base | null,
|
|
143
|
+
baseline: { given: string; path: string | null; entries: BaselineEntry[] },
|
|
144
|
+
): BaselineReview {
|
|
145
|
+
const out: BaselineReview = { file: baseline.given, entries: baseline.entries.length, atBase: null };
|
|
146
|
+
if (base === null) return { ...out, note: "there is no base, so nothing was compared" };
|
|
147
|
+
if (baseline.path === null) return { ...out, note: "the file lies outside the repository, so it has no base copy" };
|
|
148
|
+
const text = fileAt(root, base.commit, baseline.path);
|
|
149
|
+
let atBase: BaselineEntry[] | null = null;
|
|
150
|
+
let note: string | undefined;
|
|
151
|
+
if (text === null) note = "the base has no such file, so every entry is new";
|
|
152
|
+
else {
|
|
153
|
+
try {
|
|
154
|
+
atBase = parseBaseline(text);
|
|
155
|
+
} catch (error) {
|
|
156
|
+
note = `the base's copy could not be read (${(error as Error).message}), so every entry is new`;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return {
|
|
160
|
+
...out,
|
|
161
|
+
atBase: atBase === null ? null : atBase.length,
|
|
162
|
+
...(note === undefined ? {} : { note }),
|
|
163
|
+
...compareBaselines(atBase, baseline.entries, renamesSince(root, base.commit)),
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
|
|
105
167
|
export function reviewCommand(
|
|
106
168
|
session: Session,
|
|
107
|
-
options: { base?: string; levelReason: string; failOnDrift?: boolean },
|
|
169
|
+
options: { base?: string; levelReason: string; failOnDrift?: boolean; failOnBaselineGrowth?: boolean },
|
|
108
170
|
asJson: boolean,
|
|
109
171
|
io: Io,
|
|
110
172
|
): number {
|
|
@@ -121,7 +183,10 @@ export function reviewCommand(
|
|
|
121
183
|
const changed = [...new Set([...changes.committed, ...changes.uncommitted])].sort(compareStrings);
|
|
122
184
|
const { starts, unattributed } = attribute(graph, changed);
|
|
123
185
|
const drifted = drift(graph, changed, new Set(acknowledgedSlices(repo.root, base)));
|
|
124
|
-
const
|
|
186
|
+
const baseline = session.baseline === undefined ? null : reviewBaseline(repo.root, base, session.baseline);
|
|
187
|
+
const failing =
|
|
188
|
+
(options.failOnDrift === true && drifted.some((item) => !item.acknowledged)) ||
|
|
189
|
+
(options.failOnBaselineGrowth === true && (baseline?.added?.length ?? 0) > 0);
|
|
125
190
|
const exit = session.errors > 0 || failing ? 1 : 0;
|
|
126
191
|
const impacts = starts.map(({ start, because }) => {
|
|
127
192
|
const artifact = graph.artifacts.get(start);
|
|
@@ -152,6 +217,7 @@ export function reviewCommand(
|
|
|
152
217
|
note: REACHABILITY_NOTE,
|
|
153
218
|
impact: impacts,
|
|
154
219
|
drift: drifted,
|
|
220
|
+
...(baseline === null ? {} : { baseline }),
|
|
155
221
|
unattributed,
|
|
156
222
|
}),
|
|
157
223
|
);
|
|
@@ -204,9 +270,44 @@ export function reviewCommand(
|
|
|
204
270
|
out.push(...item.code.map((path) => `- Code changed: ${path}`));
|
|
205
271
|
out.push(`- Records describing it, none changed: ${item.records.join(", ")}`);
|
|
206
272
|
}
|
|
273
|
+
if (baseline !== null) out.push("", ...baselineSection(baseline));
|
|
207
274
|
out.push("", `## Changed files no artifact accounts for (${unattributed.length})`, "");
|
|
208
275
|
if (unattributed.length === 0) out.push("None.");
|
|
209
276
|
else out.push(...unattributed.map((path) => `- ${path}`));
|
|
210
277
|
io.stdout(`${out.join("\n")}\n`);
|
|
211
278
|
return exit;
|
|
212
279
|
}
|
|
280
|
+
|
|
281
|
+
/** The review's baseline section: what the change added to the baseline and what it retired. */
|
|
282
|
+
function baselineSection(review: BaselineReview): string[] {
|
|
283
|
+
const out = [
|
|
284
|
+
`## Baseline (${review.file}: ${count(review.entries, "entry", "entries")}${review.atBase === null ? "" : `, ${review.atBase} at the base`})`,
|
|
285
|
+
"",
|
|
286
|
+
"A baseline may shrink and may not grow (VSA §9). An entry the base did not hold is a violation this change let in.",
|
|
287
|
+
];
|
|
288
|
+
if (review.note !== undefined) out.push("", `${review.note.charAt(0).toUpperCase()}${review.note.slice(1)}.`);
|
|
289
|
+
if (review.added === undefined) return out;
|
|
290
|
+
const list = (title: string, lines: string[]) => {
|
|
291
|
+
out.push("", `### ${title} (${lines.length})`, "");
|
|
292
|
+
if (lines.length === 0) out.push("None.");
|
|
293
|
+
else out.push(...lines.map((line) => `- ${line}`));
|
|
294
|
+
};
|
|
295
|
+
list("Added since the base", review.added.map(describeEntry));
|
|
296
|
+
list("Retired since the base", (review.removed ?? []).map(describeEntry));
|
|
297
|
+
list(
|
|
298
|
+
"Moved with a renamed file",
|
|
299
|
+
(review.moved ?? []).map(({ from, to }) => `${from.code} ${from.path} -> ${to.path}`),
|
|
300
|
+
);
|
|
301
|
+
list(
|
|
302
|
+
"Rewritten in the current form",
|
|
303
|
+
(review.rewritten ?? []).map(({ from, to }) => {
|
|
304
|
+
const names = to.map((entry) => entry.name).filter((name) => name !== undefined);
|
|
305
|
+
return `${describeEntry(from)} -> ${count(to.length, "entry", "entries")}${names.length > 0 ? `: ${names.join(", ")}` : ""}`;
|
|
306
|
+
}),
|
|
307
|
+
);
|
|
308
|
+
list(
|
|
309
|
+
"Cycles replaced by smaller ones",
|
|
310
|
+
(review.replaced ?? []).map(({ from, to }) => `${describeEntry(from)} -> ${to.message ?? to.fingerprint}`),
|
|
311
|
+
);
|
|
312
|
+
return out;
|
|
313
|
+
}
|
package/src/git.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The git reads `review` needs: a base to compare with
|
|
3
|
-
* since it. Every call is a read and passes --no-optional-locks, so not even
|
|
2
|
+
* The git reads `review` needs: a base to compare with, the files changed
|
|
3
|
+
* since it, the files it renamed and a file's text at the base. Every call is a read and passes --no-optional-locks, so not even
|
|
4
4
|
* git's own index refresh is written (invariant 7). Paths come back relative
|
|
5
5
|
* to the repository root the CLI is working in, which may be a subdirectory
|
|
6
6
|
* of the git work tree.
|
|
@@ -119,3 +119,25 @@ export function trackedChanges(root: string): string[] | null {
|
|
|
119
119
|
if (out === null) return null;
|
|
120
120
|
return out.split("\0").filter((entry) => entry !== "");
|
|
121
121
|
}
|
|
122
|
+
|
|
123
|
+
/** A file's text at `commit`, by its path relative to the root, or null when the commit has no such file. */
|
|
124
|
+
export function fileAt(root: string, commit: string, path: string): string | null {
|
|
125
|
+
return git(root, ["show", `${commit}:./${path}`]);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* The files renamed between `commit` and the working tree, as git's rename detection finds them, old path to new,
|
|
130
|
+
* relative to the root. A rename whose new file is untracked is not seen until it is added.
|
|
131
|
+
*/
|
|
132
|
+
export function renamesSince(root: string, commit: string): Map<string, string> {
|
|
133
|
+
const fields = paths(git(root, ["diff", "--relative", "--name-status", "-M", "-z", commit]));
|
|
134
|
+
const renames = new Map<string, string>();
|
|
135
|
+
for (let i = 0; i < fields.length; ) {
|
|
136
|
+
const status = fields[i];
|
|
137
|
+
if (status.startsWith("R") || status.startsWith("C")) {
|
|
138
|
+
if (status.startsWith("R")) renames.set(fields[i + 1], fields[i + 2]);
|
|
139
|
+
i += 3;
|
|
140
|
+
} else i += 2;
|
|
141
|
+
}
|
|
142
|
+
return renames;
|
|
143
|
+
}
|
package/src/main.ts
CHANGED
|
@@ -72,11 +72,13 @@ commands
|
|
|
72
72
|
context <ID|path> [--include-restricted]
|
|
73
73
|
the bounded engineering context of an artifact, with paths and
|
|
74
74
|
bodies; given a file a slice claims, the context of that slice
|
|
75
|
-
review [--base <ref>] [--fail-on-drift]
|
|
75
|
+
review [--base <ref>] [--fail-on-drift] [--baseline <file> [--fail-on-baseline-growth]]
|
|
76
76
|
the local review report: checks, coverage, the impact of what
|
|
77
77
|
changed, and each slice whose code changed while its records did
|
|
78
78
|
not; --fail-on-drift exits 1 for any such slice no commit
|
|
79
|
-
acknowledged with an Intentset-Unchanged trailer
|
|
79
|
+
acknowledged with an Intentset-Unchanged trailer. With --baseline,
|
|
80
|
+
the entries the base's copy did not hold and those it retired;
|
|
81
|
+
--fail-on-baseline-growth exits 1 for any it did not hold
|
|
80
82
|
publish --visibility <v> --audience <a> --product <ID> --release <r> --role <r> --edition <e>
|
|
81
83
|
[--flag <f>]... [--authorized-internal] [--authorized-restricted] --out <dir> [--html]
|
|
82
84
|
[--published-at <time>]
|
|
@@ -123,7 +125,8 @@ options
|
|
|
123
125
|
--version print "intentset <version>", the checker version a report names
|
|
124
126
|
|
|
125
127
|
exit codes: 0 no errors, 1 validation errors (or, with review --fail-on-drift,
|
|
126
|
-
unacknowledged drift
|
|
128
|
+
unacknowledged drift; with --fail-on-baseline-growth, a baseline
|
|
129
|
+
entry the base did not hold), 2 invocation or tool failure`;
|
|
127
130
|
|
|
128
131
|
const COMMANDS = [
|
|
129
132
|
"init",
|
|
@@ -179,7 +182,7 @@ const COMMAND_OPTIONS: Record<string, string[]> = {
|
|
|
179
182
|
],
|
|
180
183
|
impact: LEVEL_OPTIONS,
|
|
181
184
|
context: ["include-restricted", ...LEVEL_OPTIONS],
|
|
182
|
-
review: ["base", "fail-on-drift", ...LEVEL_OPTIONS],
|
|
185
|
+
review: ["base", "fail-on-drift", "fail-on-baseline-growth", ...LEVEL_OPTIONS],
|
|
183
186
|
serve: ["port", "host", "out", ...LEVEL_OPTIONS],
|
|
184
187
|
mcp: [
|
|
185
188
|
"mode",
|
|
@@ -439,11 +442,21 @@ export async function main(argv: string[], io: Io): Promise<number> {
|
|
|
439
442
|
? "the highest the inputs allow: run records were given or found"
|
|
440
443
|
: `the highest the inputs allow: no run records were given or found in ${EVIDENCE_DIR}/, so L3 and L4 were not checked`;
|
|
441
444
|
}
|
|
445
|
+
if (values["fail-on-baseline-growth"] && values.baseline === undefined) {
|
|
446
|
+
return usage(
|
|
447
|
+
"--fail-on-baseline-growth compares a baseline with the base's copy; give it with --baseline <file>",
|
|
448
|
+
);
|
|
449
|
+
}
|
|
442
450
|
const session = openSession(command, sessionOptions(level), io);
|
|
443
451
|
if (typeof session === "number") return session;
|
|
444
452
|
return reviewCommand(
|
|
445
453
|
session,
|
|
446
|
-
{
|
|
454
|
+
{
|
|
455
|
+
base: values.base,
|
|
456
|
+
levelReason: reason,
|
|
457
|
+
failOnDrift: values["fail-on-drift"],
|
|
458
|
+
failOnBaselineGrowth: values["fail-on-baseline-growth"],
|
|
459
|
+
},
|
|
447
460
|
values.json,
|
|
448
461
|
io,
|
|
449
462
|
);
|
|
@@ -519,6 +532,7 @@ function parse(argv: string[]) {
|
|
|
519
532
|
example: { type: "boolean", default: false },
|
|
520
533
|
agents: { type: "boolean", default: false },
|
|
521
534
|
"fail-on-drift": { type: "boolean", default: false },
|
|
535
|
+
"fail-on-baseline-growth": { type: "boolean", default: false },
|
|
522
536
|
format: { type: "string" },
|
|
523
537
|
"include-bodies": { type: "boolean", default: false },
|
|
524
538
|
release: { type: "string" },
|
package/src/session.ts
CHANGED
|
@@ -94,6 +94,8 @@ export interface Session {
|
|
|
94
94
|
snapshot: Snapshot;
|
|
95
95
|
tree?: Tree;
|
|
96
96
|
architecture?: ArchitectureResult;
|
|
97
|
+
/** L2 and above, with --baseline: the baseline read, and its path relative to the root, or null outside it. */
|
|
98
|
+
baseline?: { given: string; path: string | null; entries: BaselineEntry[] };
|
|
97
99
|
evidence?: EvidenceRun;
|
|
98
100
|
/** L4: the active knowledge artifacts checked for publication readiness, by ID. */
|
|
99
101
|
publication?: { checked: string[] };
|
|
@@ -129,13 +131,17 @@ export function openSession(command: string, options: SessionOptions, io: Io): S
|
|
|
129
131
|
|
|
130
132
|
if (at(level, "L2")) {
|
|
131
133
|
let baseline: BaselineEntry[] = [];
|
|
134
|
+
let baselinePath: string | null = null;
|
|
132
135
|
if (options.baseline !== undefined) {
|
|
133
|
-
const
|
|
136
|
+
const file = resolve(io.cwd, options.baseline);
|
|
137
|
+
const read = readBaseline(file);
|
|
134
138
|
if (typeof read === "string") {
|
|
135
139
|
io.stderr(`intentset ${command}: --baseline ${options.baseline}: ${read}\n`);
|
|
136
140
|
return 2;
|
|
137
141
|
}
|
|
138
142
|
baseline = read;
|
|
143
|
+
baselinePath = insideRoot(root, file);
|
|
144
|
+
session.baseline = { given: options.baseline, path: baselinePath, entries: baseline };
|
|
139
145
|
}
|
|
140
146
|
const tree = readTree(root, repo.config);
|
|
141
147
|
const architecture = checkArchitecture(
|
|
@@ -146,6 +152,7 @@ export function openSession(command: string, options: SessionOptions, io: Io): S
|
|
|
146
152
|
level,
|
|
147
153
|
mode: options.mode ?? "migration",
|
|
148
154
|
baseline,
|
|
155
|
+
...(baselinePath === null ? {} : { baselinePath }),
|
|
149
156
|
today: options.today ?? new Date().toISOString().slice(0, 10),
|
|
150
157
|
...(repo.config.registries === null ? {} : { registriesPath: repo.config.registries }),
|
|
151
158
|
},
|