skillset 0.13.3 → 0.13.4
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/cli.js +26 -0
- package/dist/create.js +26 -0
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -16974,6 +16974,7 @@ async function validateChangeCheck(rootPath, status, entries, options) {
|
|
|
16974
16974
|
entries,
|
|
16975
16975
|
issues: issues.sort(compareIssues),
|
|
16976
16976
|
ok: !issues.some((issue) => issue.severity === "error"),
|
|
16977
|
+
stackedEvidence: stackedEvidenceGroups(validEntries, context),
|
|
16977
16978
|
status
|
|
16978
16979
|
};
|
|
16979
16980
|
}
|
|
@@ -17117,6 +17118,28 @@ function findDuplicateIds(entries) {
|
|
|
17117
17118
|
}
|
|
17118
17119
|
return new Set([...counts].filter(([, count]) => count > 1).map(([id]) => id));
|
|
17119
17120
|
}
|
|
17121
|
+
function stackedEvidenceGroups(entries, context) {
|
|
17122
|
+
const groups = new Map;
|
|
17123
|
+
for (const entry of entries) {
|
|
17124
|
+
for (const scope of entry.scopes) {
|
|
17125
|
+
const sourceHash = expectedHashForScope(scope, context);
|
|
17126
|
+
if (sourceHash === undefined || !(entry.sourceHashes.get(scope) ?? []).includes(sourceHash))
|
|
17127
|
+
continue;
|
|
17128
|
+
const key = `${scope}\x00${sourceHash}`;
|
|
17129
|
+
const existing = groups.get(key);
|
|
17130
|
+
if (existing === undefined) {
|
|
17131
|
+
groups.set(key, { paths: new Set([entry.path]), scope, sourceHash });
|
|
17132
|
+
continue;
|
|
17133
|
+
}
|
|
17134
|
+
existing.paths.add(entry.path);
|
|
17135
|
+
}
|
|
17136
|
+
}
|
|
17137
|
+
return [...groups.values()].filter((group) => group.paths.size > 1).map((group) => ({
|
|
17138
|
+
paths: [...group.paths].sort(compareStrings),
|
|
17139
|
+
scope: group.scope,
|
|
17140
|
+
sourceHash: group.sourceHash
|
|
17141
|
+
})).sort((left, right) => compareStrings(`${left.scope}\x00${left.sourceHash}`, `${right.scope}\x00${right.sourceHash}`));
|
|
17142
|
+
}
|
|
17120
17143
|
function hasSeverityBearingRegion(regions) {
|
|
17121
17144
|
return regions?.some((region) => region.severityBearing) === true;
|
|
17122
17145
|
}
|
|
@@ -21275,6 +21298,9 @@ function printChangeCheck(report) {
|
|
|
21275
21298
|
const path2 = issue.path === undefined ? "" : `${issue.path}: `;
|
|
21276
21299
|
console.log(` ${issue.severity}: ${path2}${issue.code}: ${issue.message}`);
|
|
21277
21300
|
}
|
|
21301
|
+
for (const group of report.stackedEvidence) {
|
|
21302
|
+
console.log(` stacked evidence: ${sourceUnitDisplay(group.scope)} ${group.sourceHash} shared by ${group.paths.length} pending entries: ${group.paths.join(", ")}`);
|
|
21303
|
+
}
|
|
21278
21304
|
const errors = report.issues.filter((issue) => issue.severity === "error").length;
|
|
21279
21305
|
const warnings = report.issues.length - errors;
|
|
21280
21306
|
if (errors === 0) {
|
package/dist/create.js
CHANGED
|
@@ -16974,6 +16974,7 @@ async function validateChangeCheck(rootPath, status, entries, options) {
|
|
|
16974
16974
|
entries,
|
|
16975
16975
|
issues: issues.sort(compareIssues),
|
|
16976
16976
|
ok: !issues.some((issue) => issue.severity === "error"),
|
|
16977
|
+
stackedEvidence: stackedEvidenceGroups(validEntries, context),
|
|
16977
16978
|
status
|
|
16978
16979
|
};
|
|
16979
16980
|
}
|
|
@@ -17117,6 +17118,28 @@ function findDuplicateIds(entries) {
|
|
|
17117
17118
|
}
|
|
17118
17119
|
return new Set([...counts].filter(([, count]) => count > 1).map(([id]) => id));
|
|
17119
17120
|
}
|
|
17121
|
+
function stackedEvidenceGroups(entries, context) {
|
|
17122
|
+
const groups = new Map;
|
|
17123
|
+
for (const entry of entries) {
|
|
17124
|
+
for (const scope of entry.scopes) {
|
|
17125
|
+
const sourceHash = expectedHashForScope(scope, context);
|
|
17126
|
+
if (sourceHash === undefined || !(entry.sourceHashes.get(scope) ?? []).includes(sourceHash))
|
|
17127
|
+
continue;
|
|
17128
|
+
const key = `${scope}\x00${sourceHash}`;
|
|
17129
|
+
const existing = groups.get(key);
|
|
17130
|
+
if (existing === undefined) {
|
|
17131
|
+
groups.set(key, { paths: new Set([entry.path]), scope, sourceHash });
|
|
17132
|
+
continue;
|
|
17133
|
+
}
|
|
17134
|
+
existing.paths.add(entry.path);
|
|
17135
|
+
}
|
|
17136
|
+
}
|
|
17137
|
+
return [...groups.values()].filter((group) => group.paths.size > 1).map((group) => ({
|
|
17138
|
+
paths: [...group.paths].sort(compareStrings),
|
|
17139
|
+
scope: group.scope,
|
|
17140
|
+
sourceHash: group.sourceHash
|
|
17141
|
+
})).sort((left, right) => compareStrings(`${left.scope}\x00${left.sourceHash}`, `${right.scope}\x00${right.sourceHash}`));
|
|
17142
|
+
}
|
|
17120
17143
|
function hasSeverityBearingRegion(regions) {
|
|
17121
17144
|
return regions?.some((region) => region.severityBearing) === true;
|
|
17122
17145
|
}
|
|
@@ -21275,6 +21298,9 @@ function printChangeCheck(report) {
|
|
|
21275
21298
|
const path2 = issue.path === undefined ? "" : `${issue.path}: `;
|
|
21276
21299
|
console.log(` ${issue.severity}: ${path2}${issue.code}: ${issue.message}`);
|
|
21277
21300
|
}
|
|
21301
|
+
for (const group of report.stackedEvidence) {
|
|
21302
|
+
console.log(` stacked evidence: ${sourceUnitDisplay(group.scope)} ${group.sourceHash} shared by ${group.paths.length} pending entries: ${group.paths.join(", ")}`);
|
|
21303
|
+
}
|
|
21278
21304
|
const errors = report.issues.filter((issue) => issue.severity === "error").length;
|
|
21279
21305
|
const warnings = report.issues.length - errors;
|
|
21280
21306
|
if (errors === 0) {
|