@sdd-method/sdd-cli 1.3.2 → 1.5.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/lib/catalogue/builders/adrs.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/adrs.js +19 -1
- package/dist/lib/catalogue/builders/adrs.js.map +1 -1
- package/dist/lib/catalogue/builders/quality-scores.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/quality-scores.js +159 -8
- package/dist/lib/catalogue/builders/quality-scores.js.map +1 -1
- package/dist/lib/catalogue/canonical-schema.yaml +59 -9
- package/dist/lib/catalogue/graph-projection.d.ts +65 -0
- package/dist/lib/catalogue/graph-projection.d.ts.map +1 -0
- package/dist/lib/catalogue/graph-projection.js +293 -0
- package/dist/lib/catalogue/graph-projection.js.map +1 -0
- package/dist/lib/catalogue/graph-run.d.ts +39 -0
- package/dist/lib/catalogue/graph-run.d.ts.map +1 -0
- package/dist/lib/catalogue/graph-run.js +73 -0
- package/dist/lib/catalogue/graph-run.js.map +1 -0
- package/dist/lib/catalogue/impact-run.d.ts +73 -0
- package/dist/lib/catalogue/impact-run.d.ts.map +1 -0
- package/dist/lib/catalogue/impact-run.js +0 -0
- package/dist/lib/catalogue/impact-run.js.map +1 -0
- package/dist/lib/catalogue/rubric-coverage-map.yaml +176 -0
- package/dist/lib/catalogue/scores-coverage.d.ts +13 -0
- package/dist/lib/catalogue/scores-coverage.d.ts.map +1 -1
- package/dist/lib/catalogue/scores-coverage.js +113 -2
- package/dist/lib/catalogue/scores-coverage.js.map +1 -1
- package/dist/lib/lock-file.d.ts.map +1 -1
- package/dist/lib/lock-file.js +7 -1
- package/dist/lib/lock-file.js.map +1 -1
- package/dist/verbs/catalogue.d.ts.map +1 -1
- package/dist/verbs/catalogue.js +56 -0
- package/dist/verbs/catalogue.js.map +1 -1
- package/package.json +1 -1
- package/scripts/sync-canonical-schema.sh +21 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adrs.d.ts","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/adrs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"adrs.d.ts","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/adrs.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAqB,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAGrD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7C,gEAAgE;IAChE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B;;;;;;;;OAQG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAUD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAYD,wBAAsB,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC;IAChE,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;CAC9B,CAAC,CAqGD;AAkHD,2FAA2F;AAC3F,eAAO,MAAM,YAAY,aAAO,CAAC"}
|
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
// Source paths discovered:
|
|
5
5
|
// - docs/platform/adr/ADR XXXX: Title.md (platform-scoped)
|
|
6
6
|
// - docs/method/adr/ADR XXXX: Title.md (method-scoped → domain_id=platform)
|
|
7
|
+
// - docs/method/platform-adr/ADR XXXX: Title.md (method-scoped; the frozen
|
|
8
|
+
// platform-foundational 0001-0099 band per M-ADR 0140)
|
|
7
9
|
// - docs/domains/<domain>/architecture/adr/ADR XXXX: Title.md
|
|
8
10
|
//
|
|
9
11
|
// Per ADR 0136 the method-scope ADRs are owned by the platform-root in
|
|
@@ -164,6 +166,22 @@ function extractField(text, field) {
|
|
|
164
166
|
function escapeRegex(s) {
|
|
165
167
|
return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
166
168
|
}
|
|
169
|
+
/**
|
|
170
|
+
* Directory names that hold ADR files. An EXPLICIT SET, not a pattern.
|
|
171
|
+
*
|
|
172
|
+
* `platform-adr` was invisible until 2026-08-06 because this walk tested for a
|
|
173
|
+
* directory named exactly "adr" — so `docs/method/platform-adr/` was recursed
|
|
174
|
+
* into and its files were never collected. Measured at discovery: 14 files
|
|
175
|
+
* present, 0 rows, in EVERY SDD of both reference estates (~1,414 files), while
|
|
176
|
+
* the directory is bundle payload and its ADRs are cited, superseded and scored
|
|
177
|
+
* like any other. One estate held 13 assessments of them, which read as orphaned
|
|
178
|
+
* scores and were nearly withdrawn as ADRs that no longer existed.
|
|
179
|
+
*
|
|
180
|
+
* Named rather than matched (`endsWith("adr")`, `/adr$/`) on purpose: a pattern
|
|
181
|
+
* here would also swallow any future directory an adopter happens to name
|
|
182
|
+
* `<something>-adr`, and this file has just paid for one loose match.
|
|
183
|
+
*/
|
|
184
|
+
const ADR_DIR_NAMES = new Set(["adr", "platform-adr"]);
|
|
167
185
|
async function collectAdrFiles(docsDir) {
|
|
168
186
|
const out = [];
|
|
169
187
|
let entries;
|
|
@@ -179,7 +197,7 @@ async function collectAdrFiles(docsDir) {
|
|
|
179
197
|
for (const entry of entries) {
|
|
180
198
|
const full = join(docsDir, entry.name);
|
|
181
199
|
if (entry.isDirectory()) {
|
|
182
|
-
if (entry.name
|
|
200
|
+
if (ADR_DIR_NAMES.has(entry.name)) {
|
|
183
201
|
// Walk all files in the adr/ directory (no nesting expected).
|
|
184
202
|
const inner = await readdir(full, { withFileTypes: true });
|
|
185
203
|
for (const f of inner) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adrs.js","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/adrs.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"adrs.js","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/adrs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quality-scores.d.ts","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/quality-scores.ts"],"names":[],"mappings":"AA4CA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,mEAAmE;IACnE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,aAAa,EAAE,YAAY,EAAE,CAAC;IACvC,QAAQ,CAAC,sBAAsB,EAAE,YAAY,EAAE,CAAC;CACjD;
|
|
1
|
+
{"version":3,"file":"quality-scores.d.ts","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/quality-scores.ts"],"names":[],"mappings":"AA4CA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,mEAAmE;IACnE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,aAAa,EAAE,YAAY,EAAE,CAAC;IACvC,QAAQ,CAAC,sBAAsB,EAAE,YAAY,EAAE,CAAC;CACjD;AAyTD,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,wBAAwB,CAAC,CA6SnC"}
|
|
@@ -57,12 +57,28 @@ const HEADER_KEYS = new Set([
|
|
|
57
57
|
"assessed_at",
|
|
58
58
|
"assessed_by",
|
|
59
59
|
]);
|
|
60
|
+
const BANDED_FAMILIES = new Map([
|
|
61
|
+
[
|
|
62
|
+
"reverse-repo-quality",
|
|
63
|
+
{ targetKind: "repository", rubrics: ["reverseability", "repo_doc_quality"], pathField: "doc_path" },
|
|
64
|
+
],
|
|
65
|
+
[
|
|
66
|
+
"reverse-product-quality",
|
|
67
|
+
{ targetKind: "product", rubrics: ["product_synthesis_quality"], pathField: "product_path" },
|
|
68
|
+
],
|
|
69
|
+
[
|
|
70
|
+
"reverse-platform-evidence-quality",
|
|
71
|
+
{ targetKind: "platform_evidence", rubrics: ["reverse_platform_evidence_quality"], pathField: "evidence_path" },
|
|
72
|
+
],
|
|
73
|
+
]);
|
|
60
74
|
/**
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
75
|
+
* `domain-artifact` is a THIRD shape and does not fit either map: it wraps a
|
|
76
|
+
* banded score (`current.artifact_quality` = {total, band}) in the multi-review
|
|
77
|
+
* envelope, and names its rubric per-unit in a `rubric:` field pointing at a
|
|
78
|
+
* rubric FILE. Six distinct rubrics across one estate's 66 units, so the
|
|
79
|
+
* registry_type cannot supply rubric_id and the sub-block list cannot either.
|
|
65
80
|
*/
|
|
81
|
+
const DOMAIN_ARTIFACT_TYPE = "reverse-domain-artifact-quality";
|
|
66
82
|
const TARGET_KIND_BY_RUBRIC = new Map([
|
|
67
83
|
["adr-quality", "adr"],
|
|
68
84
|
["contract-quality", "contract"],
|
|
@@ -212,6 +228,59 @@ function mergePreferringCurrent(current, review) {
|
|
|
212
228
|
}
|
|
213
229
|
return out;
|
|
214
230
|
}
|
|
231
|
+
/** Rows for one banded sub-block, or null when the unit does not carry it. */
|
|
232
|
+
function bandedRows(block, ctx) {
|
|
233
|
+
if (!isRecord(block))
|
|
234
|
+
return null;
|
|
235
|
+
const id = `${ctx.rubricId}__${ctx.targetKind}__${slugToken(ctx.targetRef)}`;
|
|
236
|
+
const stalenessBasis = ctx.corpusRef !== null ? "corpus_ref" : ctx.targetPath !== null ? "scored_at" : "none";
|
|
237
|
+
const row = {
|
|
238
|
+
id,
|
|
239
|
+
rubric_id: ctx.rubricId,
|
|
240
|
+
scoring_form: "banded",
|
|
241
|
+
target_kind: ctx.targetKind,
|
|
242
|
+
target_ref: ctx.targetRef,
|
|
243
|
+
target_path: ctx.targetPath,
|
|
244
|
+
gate: null,
|
|
245
|
+
weighted_score: null,
|
|
246
|
+
score_denominator: null,
|
|
247
|
+
band: str(block["band"]),
|
|
248
|
+
band_total: num(block["total"]),
|
|
249
|
+
scored_at: ctx.scoredAt,
|
|
250
|
+
corpus_ref: ctx.corpusRef,
|
|
251
|
+
staleness_basis: stalenessBasis,
|
|
252
|
+
review_run_id: null,
|
|
253
|
+
selection_method: null,
|
|
254
|
+
scorer_provider: null,
|
|
255
|
+
scorer_tool: null,
|
|
256
|
+
scorer_model: ctx.assessedBy,
|
|
257
|
+
scorer_model_family: null,
|
|
258
|
+
scorer_prompt_version: null,
|
|
259
|
+
flag_count: 0,
|
|
260
|
+
hard_gate_triggered: false,
|
|
261
|
+
required_actions_count: 0,
|
|
262
|
+
sdd_id: ctx.sddId,
|
|
263
|
+
source_sdd_id: null,
|
|
264
|
+
};
|
|
265
|
+
const dims = [];
|
|
266
|
+
const d = block["dimensions"];
|
|
267
|
+
if (isRecord(d)) {
|
|
268
|
+
for (const [k, v] of Object.entries(d)) {
|
|
269
|
+
dims.push({
|
|
270
|
+
id: `${id}__${slugToken(k)}`,
|
|
271
|
+
quality_score_id: id,
|
|
272
|
+
rubric_id: ctx.rubricId,
|
|
273
|
+
target_kind: ctx.targetKind,
|
|
274
|
+
target_ref: ctx.targetRef,
|
|
275
|
+
dimension_key: k,
|
|
276
|
+
dimension_score: num(v),
|
|
277
|
+
dimension_weight: null,
|
|
278
|
+
source_sdd_id: null,
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
return { row, dims };
|
|
283
|
+
}
|
|
215
284
|
export async function buildQualityScores(inputs) {
|
|
216
285
|
const { sddPath, findings, sddId } = inputs;
|
|
217
286
|
const dir = join(sddPath, REGISTRY_DIR_REL);
|
|
@@ -263,18 +332,96 @@ export async function buildQualityScores(inputs) {
|
|
|
263
332
|
if (declared !== null && declared !== fromFilename) {
|
|
264
333
|
findings.add("convention", `${rel} declares registry_type '${declared}' but its filename says '${fromFilename}' — rubric_id uses the declared value; rename the file or correct registry_type so the two agree`);
|
|
265
334
|
}
|
|
335
|
+
const fileAssessedBy = str(doc["assessed_by"]);
|
|
336
|
+
// --- the banded reverse family (schema 3.3.0) ---
|
|
337
|
+
const banded = BANDED_FAMILIES.get(rubricId);
|
|
338
|
+
if (banded !== undefined || rubricId === DOMAIN_ARTIFACT_TYPE) {
|
|
339
|
+
const units = doc["units"];
|
|
340
|
+
if (!isRecord(units)) {
|
|
341
|
+
findings.add("convention", `${rel} declares registry_type '${rubricId}' but has no \`units:\` mapping — the banded family keys its entries there; no scores read from this file`);
|
|
342
|
+
continue;
|
|
343
|
+
}
|
|
344
|
+
const fileScoredAt = str(doc["assessed_at"]);
|
|
345
|
+
for (const [unitKey, unitVal] of Object.entries(units)) {
|
|
346
|
+
if (!isRecord(unitVal))
|
|
347
|
+
continue;
|
|
348
|
+
const targetRef = str(unitVal["unit_id"]) ?? unitKey;
|
|
349
|
+
// The reverse family records the exported snapshot it read — the one
|
|
350
|
+
// place a corpus anchor is already authored anywhere in either estate.
|
|
351
|
+
const snap = unitVal["snapshot"];
|
|
352
|
+
const corpusRef = isRecord(snap) ? str(snap["source_revision"]) : null;
|
|
353
|
+
if (banded !== undefined) {
|
|
354
|
+
const targetPath = banded.pathField ? str(unitVal[banded.pathField]) : null;
|
|
355
|
+
for (const sub of banded.rubrics) {
|
|
356
|
+
const built = bandedRows(unitVal[sub], {
|
|
357
|
+
rubricId: `${rubricId}.${sub}`,
|
|
358
|
+
targetKind: banded.targetKind,
|
|
359
|
+
targetRef,
|
|
360
|
+
targetPath,
|
|
361
|
+
scoredAt: fileScoredAt,
|
|
362
|
+
corpusRef,
|
|
363
|
+
assessedBy: fileAssessedBy,
|
|
364
|
+
sddId,
|
|
365
|
+
});
|
|
366
|
+
if (built) {
|
|
367
|
+
qualityScores.push(built.row);
|
|
368
|
+
qualityScoreDimensions.push(...built.dims);
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
else {
|
|
373
|
+
// domain-artifact: rubric named per unit, banded score inside `current`.
|
|
374
|
+
const current = isRecord(unitVal["current"]) ? unitVal["current"] : {};
|
|
375
|
+
const rubricPath = str(unitVal["rubric"]);
|
|
376
|
+
if (rubricPath === null) {
|
|
377
|
+
findings.add("coverage", `${rel}: ${unitKey} names no \`rubric:\` — this family identifies its rubric per unit, so the score cannot be attributed; add the rubric path`);
|
|
378
|
+
continue;
|
|
379
|
+
}
|
|
380
|
+
const stem = rubricPath.split("/").pop().replace(/\.md$/, "");
|
|
381
|
+
const built = bandedRows(current["artifact_quality"], {
|
|
382
|
+
rubricId: stem,
|
|
383
|
+
targetKind: str(unitVal["artifact_type"]) ?? "domain_artifact",
|
|
384
|
+
targetRef,
|
|
385
|
+
targetPath: str(unitVal["doc_path"]),
|
|
386
|
+
scoredAt: str(current["scored_at"]) ?? fileScoredAt,
|
|
387
|
+
corpusRef,
|
|
388
|
+
assessedBy: fileAssessedBy,
|
|
389
|
+
sddId,
|
|
390
|
+
});
|
|
391
|
+
if (built) {
|
|
392
|
+
qualityScores.push(built.row);
|
|
393
|
+
qualityScoreDimensions.push(...built.dims);
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
continue;
|
|
398
|
+
}
|
|
266
399
|
const targetKind = TARGET_KIND_BY_RUBRIC.get(rubricId);
|
|
267
400
|
if (targetKind === undefined) {
|
|
268
401
|
findings.add("coverage", `${rel} uses rubric '${rubricId}', which has no target-kind mapping — its scores are NOT catalogued; add the rubric to the quality-scores builder's TARGET_KIND_BY_RUBRIC map (a new rubric ships its registry, rubric, skill trio and seed rows; this is the fifth surface)`);
|
|
269
402
|
continue;
|
|
270
403
|
}
|
|
271
|
-
|
|
272
|
-
//
|
|
273
|
-
|
|
404
|
+
// --- the entry container: the single non-header mapping OF ENTRIES ---
|
|
405
|
+
//
|
|
406
|
+
// Detected STRUCTURALLY, not positionally. The first version counted
|
|
407
|
+
// non-header mapping keys and refused any file with more than one — which
|
|
408
|
+
// cost a whole registry whenever an author put a `rollup:` summary block
|
|
409
|
+
// beside the entries. Measured: two registries in one estate, 11 authored
|
|
410
|
+
// units and 75 dimension rows silently uncatalogued, and the summary is
|
|
411
|
+
// trivially distinguishable — its values are scalars (scored_at, total,
|
|
412
|
+
// pass/conditional/fail, note) while an entry container's values are
|
|
413
|
+
// themselves mappings.
|
|
414
|
+
//
|
|
415
|
+
// The ambiguity guard survives for the case it was actually written for:
|
|
416
|
+
// if TWO mappings both hold entry-shaped values, that is genuinely
|
|
417
|
+
// ambiguous and is still refused rather than guessed.
|
|
418
|
+
const containers = Object.entries(doc).filter(([k, v]) => !HEADER_KEYS.has(k) &&
|
|
419
|
+
isRecord(v) &&
|
|
420
|
+
Object.values(v).some((x) => isRecord(x)));
|
|
274
421
|
if (containers.length === 0)
|
|
275
422
|
continue; // headers-only registry: deliberate, silent
|
|
276
423
|
if (containers.length > 1) {
|
|
277
|
-
findings.add("convention", `${rel} has ${containers.length}
|
|
424
|
+
findings.add("convention", `${rel} has ${containers.length} mappings holding entry-shaped values (${containers.map(([k]) => k).join(", ")}) — a registry declares exactly one entry container; no scores read from this file. A scalar-valued summary block beside the entries is fine and is ignored; two containers of entries are not.`);
|
|
278
425
|
continue;
|
|
279
426
|
}
|
|
280
427
|
const container = containers[0]?.[1];
|
|
@@ -337,6 +484,10 @@ export async function buildQualityScores(inputs) {
|
|
|
337
484
|
gate,
|
|
338
485
|
weighted_score: num(current["weighted_score"]),
|
|
339
486
|
score_denominator: num(entryVal["score_denominator"] ?? current["score_denominator"]),
|
|
487
|
+
// Empty on a weighted row by design — the two scales never share a
|
|
488
|
+
// column, so an average over weighted_score is correct by construction.
|
|
489
|
+
band: null,
|
|
490
|
+
band_total: null,
|
|
340
491
|
scored_at: str(current["scored_at"]) ?? str(entryVal["scored_at"]),
|
|
341
492
|
corpus_ref: corpusRef,
|
|
342
493
|
staleness_basis: stalenessBasis,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quality-scores.js","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/quality-scores.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,uBAAuB;AACvB,6CAA6C;AAC7C,EAAE;AACF,2EAA2E;AAC3E,8EAA8E;AAC9E,mDAAmD;AACnD,EAAE;AACF,6EAA6E;AAC7E,0EAA0E;AAC1E,+EAA+E;AAC/E,4DAA4D;AAC5D,EAAE;AACF,4EAA4E;AAC5E,gFAAgF;AAChF,+EAA+E;AAC/E,gFAAgF;AAChF,iFAAiF;AACjF,iEAAiE;AACjE,4EAA4E;AAC5E,kFAAkF;AAClF,yEAAyE;AACzE,qEAAqE;AACrE,+EAA+E;AAC/E,gFAAgF;AAChF,yDAAyD;AACzD,gFAAgF;AAChF,4EAA4E;AAC5E,gFAAgF;AAChF,8EAA8E;AAC9E,kCAAkC;AAClC,EAAE;AACF,8EAA8E;AAC9E,yEAAyE;AACzE,mEAAmE;AACnE,2EAA2E;AAC3E,+EAA+E;AAC/E,+EAA+E;AAC/E,8EAA8E;AAC9E,QAAQ;AAER,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAgB1C,MAAM,gBAAgB,GAAG,6BAA6B,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;IAC1B,gBAAgB;IAChB,aAAa;IACb,gBAAgB;IAChB,eAAe;IACf,aAAa;IACb,aAAa;CACd,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,qBAAqB,GAAgC,IAAI,GAAG,CAAC;IACjE,CAAC,aAAa,EAAE,KAAK,CAAC;IACtB,CAAC,kBAAkB,EAAE,UAAU,CAAC;IAChC,CAAC,YAAY,EAAE,YAAY,CAAC;IAC5B,CAAC,qBAAqB,EAAE,QAAQ,CAAC;IACjC,CAAC,gBAAgB,EAAE,QAAQ,CAAC;IAC5B,CAAC,mBAAmB,EAAE,YAAY,CAAC;IACnC,CAAC,uBAAuB,EAAE,YAAY,CAAC;IACvC,CAAC,UAAU,EAAE,UAAU,CAAC;IACxB,CAAC,SAAS,EAAE,SAAS,CAAC;IACtB,CAAC,oBAAoB,EAAE,SAAS,CAAC;IACjC,CAAC,aAAa,EAAE,QAAQ,CAAC;IACzB,CAAC,eAAe,EAAE,eAAe,CAAC;IAClC,CAAC,YAAY,EAAE,YAAY,CAAC;IAC5B,CAAC,YAAY,EAAE,YAAY,CAAC;IAC5B,CAAC,yBAAyB,EAAE,aAAa,CAAC;CAC3C,CAAC,CAAC;AAEH,gFAAgF;AAChF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;AAEzE,MAAM,QAAQ,GAAG,CAAC,CAAU,EAAgC,EAAE,CAC5D,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAE3D,MAAM,GAAG,GAAG,CAAC,CAAU,EAAiB,EAAE,CACxC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAEvE,MAAM,GAAG,GAAG,CAAC,CAAU,EAAiB,EAAE;IACxC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IAC1D,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,SAAS,UAAU,CAAC,KAA8B,EAAE,OAAgC;IAClF,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IAChE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC;IAChD,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IACjD,IAAI,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;IAClF,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CACxB,KAA8B,EAC9B,OAAgC;IAEhC,MAAM,IAAI,GAAG,OAAO,CAAC,sBAAsB,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC9E,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAChD,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IACxD,IAAI,QAAQ,CAAC,EAAE,CAAC;QAAE,OAAO,EAAE,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAClD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,oBAAoB,CAC3B,KAA8B,EAC9B,OAAgC;IAEhC,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,wBAAwB,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAC3F,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,QAAQ,CAAC;IACvC,MAAM,IAAI,GAAG,OAAO,CAAC,kBAAkB,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtE,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;GAMG;AACH,SAAS,YAAY,CACnB,KAA8B,EAC9B,OAAgC,EAChC,cAA6B;IAE7B,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpD,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACrB,OAAO;YACL,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACxC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAChC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAClC,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAChD,qBAAqB,EAAE,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;SACrD,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,cAAc,CAAC;IAC/E,OAAO;QACL,eAAe,EAAE,IAAI;QACrB,WAAW,EAAE,IAAI;QACjB,YAAY,EAAE,IAAI;QAClB,mBAAmB,EAAE,IAAI;QACzB,qBAAqB,EAAE,IAAI;KAC5B,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,MAAM,SAAS,GAAG,CAAC,CAAS,EAAU,EAAE,CACtC,CAAC;KACE,IAAI,EAAE;KACN,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC;KACjC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;KACvB,WAAW,EAAE,CAAC;AAGnB;;;;;;;;;;;;;;;GAeG;AACH,SAAS,YAAY,CACnB,KAA8B,EAC9B,OAAgC;IAEhC,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;IACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,MAAM,MAAM,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACzC,MAAM,MAAM,GACV,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACjE,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;IAChC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;QACpE,IAAI,GAAG;YAAE,OAAO,GAAG,CAAC;IACtB,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC;AAED;;;;;;GAMG;AACH,SAAS,sBAAsB,CAC7B,OAAgC,EAChC,MAA+B;IAE/B,MAAM,GAAG,GAA4B,EAAE,GAAG,MAAM,EAAE,CAAC;IACnD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAgC;IAEhC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAE5C,IAAI,KAAe,CAAC;IACpB,IAAI,CAAC;QACH,KAAK,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;aACzB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;aACxD,IAAI,EAAE,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,2EAA2E;QAC3E,sEAAsE;QACtE,8EAA8E;QAC9E,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,sBAAsB,EAAE,EAAE,EAAE,CAAC;IAC3D,CAAC;IAED,MAAM,aAAa,GAAmB,EAAE,CAAC;IACzC,MAAM,sBAAsB,GAAmB,EAAE,CAAC;IAElD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,GAAG,gBAAgB,IAAI,IAAI,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QAEpD,IAAI,GAAY,CAAC;QACjB,IAAI,CAAC;YACH,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,qEAAqE;YACrE,yEAAyE;YACzE,yEAAyE;YACzE,uEAAuE;YACvE,+CAA+C;YAC/C,sEAAsE;YACtE,uEAAuE;YACvE,uEAAuE;YACvE,uEAAuE;YACvE,wEAAwE;YACxE,wEAAwE;YACxE,sEAAsE;YACtE,yBAAyB;YACzB,QAAQ,CAAC,GAAG,CACV,YAAY,EACZ,GAAG,GAAG,2BAA2B,MAAM,CAAE,CAAW,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,yLAAyL,CACtQ,CAAC;YACF,SAAS;QACX,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,SAAS;QAE7B,4EAA4E;QAC5E,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;QACzD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,QAAQ,IAAI,YAAY,CAAC;QAC1C,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;YACnD,QAAQ,CAAC,GAAG,CACV,YAAY,EACZ,GAAG,GAAG,4BAA4B,QAAQ,4BAA4B,YAAY,kGAAkG,CACrL,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,QAAQ,CAAC,GAAG,CACV,UAAU,EACV,GAAG,GAAG,iBAAiB,QAAQ,8OAA8O,CAC9Q,CAAC;YACF,SAAS;QACX,CAAC;QAED,MAAM,cAAc,GAAG,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;QAE/C,iEAAiE;QACjE,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAC3C,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAC/C,CAAC;QACF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS,CAAC,4CAA4C;QACnF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,QAAQ,CAAC,GAAG,CACV,YAAY,EACZ,GAAG,GAAG,QAAQ,UAAU,CAAC,MAAM,gCAAgC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,oEAAoE,CACzK,CAAC;YACF,SAAS;QACX,CAAC;QACD,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,SAAS;QAEnC,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,SAAS;YAElC,2EAA2E;YAC3E,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;YAC7C,MAAM,YAAY,GAAG,MAAM;gBACzB,CAAC,CAAE,QAAQ,CAAC,SAAS,CAA6B;gBAClD,CAAC,CAAC,QAAQ,CAAC;YAEb,mEAAmE;YACnE,sEAAsE;YACtE,kEAAkE;YAClE,sEAAsE;YACtE,wEAAwE;YACxE,qEAAqE;YACrE,sEAAsE;YACtE,wEAAwE;YACxE,oEAAoE;YACpE,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YACtD,MAAM,OAAO,GAAG,QAAQ;gBACtB,CAAC,CAAC,sBAAsB,CAAC,YAAY,EAAE,QAAQ,CAAC;gBAChD,CAAC,CAAC,YAAY,CAAC;YACjB,IAAI,MAAM,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;gBACrE,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACpC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACjD,QAAQ,CAAC,GAAG,CACV,UAAU,EACV,GAAG,GAAG,KAAK,QAAQ,QAAQ,OAAO,CAAC,MAAM,kQAAkQ,CAC5S,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,QAAQ,CAAC;YACvD,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;YAE3E,oEAAoE;YACpE,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YACrC,IAAI,IAAI,GAAkB,IAAI,CAAC;YAC/B,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBAC9C,IAAI,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC7B,IAAI,GAAG,OAAO,CAAC;gBACjB,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,GAAG,CACV,YAAY,EACZ,GAAG,GAAG,KAAK,QAAQ,cAAc,OAAO,2CAA2C,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,mLAAmL,CACnS,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;YAC5E,MAAM,cAAc,GAClB,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;YAEjF,MAAM,eAAe,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;YACrD,MAAM,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC;gBAC/C,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;gBAChC,CAAC,CAAC,IAAI,CAAC;YAET,MAAM,EAAE,GAAG,GAAG,QAAQ,KAAK,UAAU,KAAK,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;YAEjE,aAAa,CAAC,IAAI,CAAC;gBACjB,EAAE;gBACF,SAAS,EAAE,QAAQ;gBACnB,YAAY,EAAE,UAAU;gBACxB,WAAW,EAAE,UAAU;gBACvB,UAAU,EAAE,SAAS;gBACrB,WAAW,EAAE,UAAU;gBACvB,IAAI;gBACJ,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;gBAC9C,iBAAiB,EAAE,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;gBACrF,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBAClE,UAAU,EAAE,SAAS;gBACrB,eAAe,EAAE,cAAc;gBAC/B,aAAa,EAAE,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;gBAC5C,gBAAgB,EAAE,eAAe;gBACjC,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,cAAc,CAAC;gBAClD,UAAU,EAAE,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC;gBACzC,mBAAmB,EAAE,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC;gBACzD,sBAAsB,EAAE,oBAAoB,CAAC,QAAQ,EAAE,OAAO,CAAC;gBAC/D,MAAM,EAAE,KAAK;gBACb,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;YAEH,sDAAsD;YACtD,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;YACjC,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACrB,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;oBACtD,sBAAsB,CAAC,IAAI,CAAC;wBAC1B,EAAE,EAAE,GAAG,EAAE,KAAK,SAAS,CAAC,MAAM,CAAC,EAAE;wBACjC,gBAAgB,EAAE,EAAE;wBACpB,SAAS,EAAE,QAAQ;wBACnB,WAAW,EAAE,UAAU;wBACvB,UAAU,EAAE,SAAS;wBACrB,aAAa,EAAE,MAAM;wBACrB,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC;wBAC5B,gBAAgB,EAAE,IAAI;wBACtB,aAAa,EAAE,IAAI;qBACpB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtF,0EAA0E;IAC1E,6EAA6E;IAC7E,6EAA6E;IAC7E,qEAAqE;IACrE,6EAA6E;IAC7E,wBAAwB;IACxB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7B,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACjB,QAAQ,CAAC,GAAG,CACV,YAAY,EACZ,iCAAiC,EAAE,0MAA0M,CAC9O,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACf,CAAC;IAED,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,CAAC;AACnD,CAAC"}
|
|
1
|
+
{"version":3,"file":"quality-scores.js","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/quality-scores.ts"],"names":[],"mappings":"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"}
|
|
@@ -62,9 +62,52 @@
|
|
|
62
62
|
# Builder contract: see docs/method/methods/guides/catalogue-builder-specification.md.
|
|
63
63
|
# Category taxonomy: see docs/method/methods/standards/product-category-taxonomy.md.
|
|
64
64
|
|
|
65
|
-
schema_version: "3.
|
|
65
|
+
schema_version: "3.3.0"
|
|
66
66
|
schema_owner: "sdd-method"
|
|
67
67
|
schema_status: "canonical"
|
|
68
|
+
# 3.3.0 also DEPRECATES the `products` maturity triplet (`synthesis_quality`,
|
|
69
|
+
# `synthesis_band`, `last_assessed`) for removal at 4.0.0, resolving the
|
|
70
|
+
# two-sources-for-one-fact that D-B0.7 committed to settling in this change-set.
|
|
71
|
+
# Both are fed from `reverse-product-quality-scores.yaml`; `quality_scores` is
|
|
72
|
+
# strictly more expressive and the triplet is strictly lossy:
|
|
73
|
+
# - the triplet takes ONE unit per file (the SELF-PRODUCT rule); quality_scores
|
|
74
|
+
# takes all of them — measured 9 rows against 0 triplet cells in one SDD,
|
|
75
|
+
# because none of its nine units is the self-product;
|
|
76
|
+
# - `synthesis_band`'s closed vocabulary accepts three of the seven band values
|
|
77
|
+
# the estate authors, silently emptying the rest;
|
|
78
|
+
# - the triplet carries no dimensions and no corpus_ref, while the banded rows
|
|
79
|
+
# carry both (246 of 330 rows in one SDD have a real corpus anchor from
|
|
80
|
+
# `snapshot.source_revision` — the only authored corpus_ref anywhere).
|
|
81
|
+
# Nothing consumes the triplet: verified across builders and aggregator, exactly
|
|
82
|
+
# as 2.48.0 verified before deprecating `products.status` in favour of it. It
|
|
83
|
+
# keeps emitting until 4.0.0, so no row changes value now.
|
|
84
|
+
#
|
|
85
|
+
# Bump rationale (3.3.0 — additive minor, 2026-08-06, per M-ADR 0205 §4.5): the
|
|
86
|
+
# BANDED reverse scoring family joins the class (Phase B4). Two columns and one
|
|
87
|
+
# enum value; no existing column, catalogue or enum changes meaning.
|
|
88
|
+
#
|
|
89
|
+
# 1. `scoring_form` gains `banded`. It was reserved-but-undeclared at 3.2.0 so
|
|
90
|
+
# a premature banded row would fail loudly; the reverse family is now
|
|
91
|
+
# modelled, so the value is real.
|
|
92
|
+
# 2. `quality_scores.band` and `.band_total` added.
|
|
93
|
+
#
|
|
94
|
+
# THE TWO SCORE SCALES NEVER SHARE A COLUMN, and that is the whole design.
|
|
95
|
+
# A weighted row carries weighted_score (1-5) with band/band_total empty; a
|
|
96
|
+
# banded row carries band + band_total (0-13) with weighted_score empty. Sharing
|
|
97
|
+
# one column and disambiguating via scoring_form would make every average over
|
|
98
|
+
# it silently wrong for a mixed population — the basis-error shape this arc paid
|
|
99
|
+
# for repeatedly. Separation makes the aggregate correct by construction.
|
|
100
|
+
#
|
|
101
|
+
# `band` IS DELIBERATELY UNBOUND, measured rather than assumed. The vocabulary is
|
|
102
|
+
# per-rubric: `reverseability` uses easy | moderate | hard | very-hard, a
|
|
103
|
+
# DIFFICULTY scale where a higher band is worse, while the four quality rubrics
|
|
104
|
+
# use strong | working. A single closed enum over both would assert that `hard`
|
|
105
|
+
# and `working` are comparable. Note this contradicts the reverse form's
|
|
106
|
+
# description in earlier planning ("strong/working/weak/not-usable"): that
|
|
107
|
+
# vocabulary is not what the estate authors. 671 banded scores measured across
|
|
108
|
+
# 102 registry files.
|
|
109
|
+
# ACTIVATION (M-ADR 0200 §4.6): additive only. No existing row changes value.
|
|
110
|
+
# Backward-compatible; SCHEMA_COMPAT "^3.0.0".
|
|
68
111
|
# Bump rationale (3.2.0 — additive minor, 2026-08-06, per M-ADR 0205 §4.5):
|
|
69
112
|
# the rubric score registries join the catalogue metamodel. Two new catalogues
|
|
70
113
|
# and four new enums; no existing column, catalogue or enum is touched.
|
|
@@ -666,14 +709,19 @@ enums:
|
|
|
666
709
|
Reserved by M-ADR 0205 §4.5 so the banded reverse family can arrive
|
|
667
710
|
additively without reshaping rows.
|
|
668
711
|
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
712
|
+
Both forms are now declared. `banded` was added in 3.3.0 once the reverse
|
|
713
|
+
family was modelled; before that it was deliberately absent so a premature
|
|
714
|
+
banded row would fail loudly rather than pass against an unemitted value.
|
|
715
|
+
|
|
716
|
+
The two forms are NOT interchangeable and must not be averaged together —
|
|
717
|
+
which is why they never share a score column. A weighted row carries
|
|
718
|
+
`weighted_score` (1-5) and leaves `band`/`band_total` empty; a banded row
|
|
719
|
+
carries `band` + `band_total` and leaves `weighted_score` empty. Any
|
|
720
|
+
aggregate over `weighted_score` is therefore correct by construction
|
|
721
|
+
rather than by the caller remembering to filter.
|
|
675
722
|
values:
|
|
676
723
|
- { value: weighted, description: "Weighted 1-5 dimensions rolled into a weighted_score against a pass threshold, with flags and hard gates. The forward house form; all fifteen method-side registries use it." }
|
|
724
|
+
- { value: banded, description: "Dimensions summed to an integer total and mapped to a named band. The reverse family's form. Added in 3.3.0. The band vocabulary is PER-RUBRIC and deliberately unbound — see the band column." }
|
|
677
725
|
|
|
678
726
|
c4_system_kind:
|
|
679
727
|
description: >
|
|
@@ -837,8 +885,8 @@ catalogues:
|
|
|
837
885
|
- { name: surface, type: string, nullable: true, description: "ui | api (empty for non-application-product). Application-product surface trait from the manifest's surface: field (M-ADR 0167, sdd-manifest-schema 1.2.0). Empty on non-application products. Added in 2.35.0." }
|
|
838
886
|
- { name: packaging, type: string, nullable: true, description: "vendor-saas | self-operated (empty for non-application-product). Application-product packaging trait from the manifest's packaging: field (M-ADR 0175, sdd-manifest-schema 1.7.0). `vendor-saas` marks a packaged-SaaS product — vendor-operated runtime (no own deployment evidence) and a vendor-versioned base capability set. Absent in the manifest resolves to `self-operated`, the unmarked norm. Per M-ADR 0175 §4 no builder may branch on this trait beyond evidence/deployment handling. Column position follows the M-ADR 0194 §3.1 canonical axis order (surface, packaging, application_archetype). Added in 2.41.0." }
|
|
839
887
|
- { name: application_archetype, type: string, nullable: true, description: "Application-product shape classification from the manifest's application_archetype: field (M-ADR 0191, sdd-manifest-schema 1.2.0). Resolved-enum over a tiered vocabulary (method: unclassified; reference-architecture bundle; adopter). Defaults to 'unclassified' for application-product (with a coverage finding), empty for other profiles. Distinct from the M-ADR 0173 domain archetype and M-ADR 0169 openui archetype. Added in 2.35.0." }
|
|
840
|
-
- { name: synthesis_quality, type: int, nullable: true, description: "Score 0-10 from the product-synthesis rubric (reverse method only). WIRED in 2.47.0 from `orchestration/gate-registry/reverse-product-quality-scores.yaml` — the registry family at product granularity — via the SELF-PRODUCT rule: the unit whose `product_path` is '.' AND whose key equals the SDD's sdd_id. Both conditions are required; product_path alone admits synthetic gate fixtures, key-matching alone admits covered sub-products. Backfill only: it fills an empty cell and never overwrites an emitted value. Empty on a forward estate by design — a forward-authored product has no reverse rubric score, and residue-based authoring signals deliberately do NOT write here (see status)." }
|
|
841
|
-
- { name: synthesis_band, type: string, nullable: true, description: "developing | working | strong — a CLOSED vocabulary; a band outside it is reported as a convention finding and the cell left empty rather than emitting a value no consumer can interpret. Wired in 2.47.0 alongside synthesis_quality." }
|
|
888
|
+
- { name: synthesis_quality, type: int, nullable: true, description: "DEPRECATED at 3.3.0, for removal at 4.0.0 — superseded by `quality_scores` (rubric_id `reverse-product-quality.product_synthesis_quality`). Score 0-10 from the product-synthesis rubric (reverse method only). WIRED in 2.47.0 from `orchestration/gate-registry/reverse-product-quality-scores.yaml` — the registry family at product granularity — via the SELF-PRODUCT rule: the unit whose `product_path` is '.' AND whose key equals the SDD's sdd_id. Both conditions are required; product_path alone admits synthetic gate fixtures, key-matching alone admits covered sub-products. Backfill only: it fills an empty cell and never overwrites an emitted value. Empty on a forward estate by design — a forward-authored product has no reverse rubric score, and residue-based authoring signals deliberately do NOT write here (see status)." }
|
|
889
|
+
- { name: synthesis_band, type: string, nullable: true, description: "DEPRECATED at 3.3.0, for removal at 4.0.0 — superseded by `quality_scores.band`, which is UNBOUND because the vocabulary is per-rubric. This column's closed set accepts only three of the SEVEN band values the reverse estate actually authors (measured 3.3.0: strong, working, weak, moderate, easy, hard, very-hard), silently emptying the rest. developing | working | strong — a CLOSED vocabulary; a band outside it is reported as a convention finding and the cell left empty rather than emitting a value no consumer can interpret. Wired in 2.47.0 alongside synthesis_quality." }
|
|
842
890
|
- { name: last_assessed, type: date, nullable: true }
|
|
843
891
|
- { name: highest_snapshot_impact, type: string, nullable: true }
|
|
844
892
|
- { name: repo_count, type: int, nullable: false, description: "Number of repos mapped to this product." }
|
|
@@ -2086,6 +2134,8 @@ catalogues:
|
|
|
2086
2134
|
- { name: gate, type: string, nullable: true, description: "Verdict — see the quality_gate enum, which is deliberately UNBOUND. An out-of-vocabulary value leaves this cell EMPTY and raises a convention finding naming the file, entry and value (the products.synthesis_band precedent). Empty therefore means either unauthored or out-of-vocabulary, and the finding distinguishes them." }
|
|
2087
2135
|
- { name: weighted_score, type: number, nullable: true, description: "The rubric's rolled-up weighted score. Empty for an unscored entry — which is a real state the registries author deliberately, not a gap." }
|
|
2088
2136
|
- { name: score_denominator, type: number, nullable: true, description: "Denominator the weighted_score was computed against, where the rubric records one (contract-quality does). Present so a score is never reported without its basis." }
|
|
2137
|
+
- { name: band, type: string, nullable: true, description: "Named band for a `banded` row; empty for a weighted one. DELIBERATELY UNBOUND, and for the same reason `dimension_key` is not normalised: the vocabulary belongs to the rubric, not to the method. Measured across the reverse estate at 3.3.0 — `reverseability` uses easy | moderate | hard | very-hard (a DIFFICULTY scale, where a higher band is worse), while `repo_doc_quality`, `product_synthesis_quality`, `reverse_platform_evidence_quality` and `artifact_quality` use strong | working (a QUALITY scale). One closed enum over both would assert that `hard` and `working` are comparable, which they are not. A consumer comparing bands must therefore group by rubric_id first." }
|
|
2138
|
+
- { name: band_total, type: int, nullable: true, description: "Integer total a `banded` rubric summed its dimensions to, before mapping to `band`; empty for a weighted row. Kept SEPARATE from weighted_score rather than sharing it: the scales are incompatible (a banded total ranges 0-13 against a weighted 1-5), and a single column holding both would make any average over it silently wrong. Separation makes an aggregate over weighted_score correct by construction rather than by the caller remembering to filter on scoring_form." }
|
|
2089
2139
|
- { name: scored_at, type: date, nullable: true, description: "Date of the effective assessment, from `scored_at` (the forward house form's field name — NOT `assessed_at`, which is the reverse family's file-level field). Date-typed: per the M-ADR 0205 §4.1 engine's TRY_CAST semantics, a prose value here is reported as a type nonconformance rather than aborting the load or being smoothed away — the `adrs.decision_date` case, which reverse practice already exercises." }
|
|
2090
2140
|
- { name: corpus_ref, type: string, nullable: true, description: "The commit the assessment read — the precise staleness anchor. NEW AUTHORING introduced by this change-set: no score written before it carries one, so this column is empty across both estates at introduction and fills forward as registries are rewritten. The reverse family already has the idea under a different name (`snapshot.source_revision`)." }
|
|
2091
2141
|
- { name: staleness_basis, type: string, nullable: false, description: "Which anchor this row's staleness can be computed from — see the staleness_basis enum. Emitted by the builder, never authored. Exists so no consumer can state a staleness verdict without its basis." }
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Graph projection — `sdd-cli catalogue graph` (M-ADR 0205 §4.6, Phase C0b).
|
|
3
|
+
*
|
|
4
|
+
* Derives a typed node/edge list (JSON Lines) from built catalogues. The
|
|
5
|
+
* projection is DERIVED, never authored, never a second source of truth:
|
|
6
|
+
* regenerated on every run, digest-stamped, not committed. The derivation
|
|
7
|
+
* rule is the C0a rule table (catalogue-engine-evolution plan), keyed on
|
|
8
|
+
* the rubric-coverage-map's `kind` × the schema's FK arity:
|
|
9
|
+
*
|
|
10
|
+
* entity (less `applications`) → nodes, id = "<catalogue>/<pk>"
|
|
11
|
+
* entity FK columns → edges typed "<catalogue>.<column>"
|
|
12
|
+
* edge, 2 FKs → edges, declaration order = source→target;
|
|
13
|
+
* a row with an empty nullable endpoint
|
|
14
|
+
* degrades to a property record, never an edge
|
|
15
|
+
* edge, 3 FKs → edges with declared endpoint pairs
|
|
16
|
+
* (THREE_FK_ENDPOINTS below)
|
|
17
|
+
* edge, 1 FK → property records on the FK owner
|
|
18
|
+
* `applications` → excluded (C0a ruling 2026-08-06: filtered
|
|
19
|
+
* view of products — its rows ARE product
|
|
20
|
+
* rows; emitting it creates edge-less
|
|
21
|
+
* shadow nodes beside the products nodes)
|
|
22
|
+
* finding / enum kinds → excluded (diagnostics / vocabularies)
|
|
23
|
+
*
|
|
24
|
+
* Emission reads the PARSED CSV ROWS, deliberately not an engine readback:
|
|
25
|
+
* the engine's load TRY_CASTs typed columns and silently nulls unparseable
|
|
26
|
+
* cells (a real, measured case: prose in a date-typed column). A projection
|
|
27
|
+
* that inherits cast smoothing is no longer a faithful derivation of the
|
|
28
|
+
* CSV canon. C1's impact queries run on the engine; this emission does not.
|
|
29
|
+
*
|
|
30
|
+
* Every edge endpoint and property owner MUST resolve to a node record in
|
|
31
|
+
* the same export — a dangling reference here is a defect in the projection,
|
|
32
|
+
* not a finding about the estate (the FK layer already reports those). A
|
|
33
|
+
* candidate whose endpoint does not resolve is OMITTED and COUNTED, loudly,
|
|
34
|
+
* in the header and summary: `omitted_external` for external /
|
|
35
|
+
* external-for-profiles FKs (expected at member tier, resolving at
|
|
36
|
+
* aggregate), `omitted_unresolved` for the rest (mirrors an FK-layer
|
|
37
|
+
* finding). Stub nodes are never emitted — inventing nodes is the failure
|
|
38
|
+
* mode the C0a rule exists to prevent.
|
|
39
|
+
*/
|
|
40
|
+
import type { CatalogueRow } from "./csv-writer.js";
|
|
41
|
+
import type { CanonicalSchema } from "./schema-loader.js";
|
|
42
|
+
export type GraphTier = "member" | "aggregate";
|
|
43
|
+
export interface GraphCounts {
|
|
44
|
+
readonly nodes: number;
|
|
45
|
+
readonly edges: number;
|
|
46
|
+
readonly properties: number;
|
|
47
|
+
readonly omittedExternal: number;
|
|
48
|
+
readonly omittedUnresolved: number;
|
|
49
|
+
}
|
|
50
|
+
export interface GraphProjection {
|
|
51
|
+
/** Complete JSONL document, header first, trailing newline. */
|
|
52
|
+
readonly text: string;
|
|
53
|
+
readonly counts: GraphCounts;
|
|
54
|
+
/** sha256 hex digest of the body (every line after the header). */
|
|
55
|
+
readonly digest: string;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Kinds must cover every schema catalogue — a catalogue without a kind
|
|
59
|
+
* cannot be classified and the projection must not guess (the map is
|
|
60
|
+
* guarded method-side by the entity-scoring-coverage correspondence
|
|
61
|
+
* instance; this is the consumer-side half of that guarantee).
|
|
62
|
+
*/
|
|
63
|
+
export declare function assertKindCoverage(schema: CanonicalSchema, kinds: ReadonlyMap<string, string>): void;
|
|
64
|
+
export declare function projectGraph(schema: CanonicalSchema, kinds: ReadonlyMap<string, string>, rowsByCatalogue: ReadonlyMap<string, readonly CatalogueRow[]>, tier: GraphTier): GraphProjection;
|
|
65
|
+
//# sourceMappingURL=graph-projection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-projection.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/graph-projection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EACV,eAAe,EAGhB,MAAM,oBAAoB,CAAC;AAuB5B,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE/C,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,eAAe;IAC9B,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,mEAAmE;IACnE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAOD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACjC,IAAI,CAUN;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC,EAC7D,IAAI,EAAE,SAAS,GACd,eAAe,CAgOjB"}
|