@codyswann/lisa 3.52.0 → 3.54.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/cli/doctor-declared-contexts.d.ts +32 -0
- package/dist/cli/doctor-declared-contexts.d.ts.map +1 -0
- package/dist/cli/doctor-declared-contexts.js +144 -0
- package/dist/cli/doctor-declared-contexts.js.map +1 -0
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +6 -0
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/gate-report-drift-section.d.ts +8 -0
- package/dist/cli/gate-report-drift-section.d.ts.map +1 -0
- package/dist/cli/gate-report-drift-section.js +68 -0
- package/dist/cli/gate-report-drift-section.js.map +1 -0
- package/dist/cli/gate-report-fragment.d.ts.map +1 -1
- package/dist/cli/gate-report-fragment.js +7 -1
- package/dist/cli/gate-report-fragment.js.map +1 -1
- package/dist/cli/gate-report-joins.d.ts +45 -0
- package/dist/cli/gate-report-joins.d.ts.map +1 -1
- package/dist/cli/gate-report-joins.js +56 -0
- package/dist/cli/gate-report-joins.js.map +1 -1
- package/dist/cli/gate-report-registry.d.ts +9 -0
- package/dist/cli/gate-report-registry.d.ts.map +1 -1
- package/dist/cli/gate-report-registry.js +15 -0
- package/dist/cli/gate-report-registry.js.map +1 -1
- package/dist/cli/gate-report-sections.d.ts +6 -0
- package/dist/cli/gate-report-sections.d.ts.map +1 -1
- package/dist/cli/gate-report-sections.js +59 -0
- package/dist/cli/gate-report-sections.js.map +1 -1
- package/dist/cli/gate-report-style.d.ts +1 -1
- package/dist/cli/gate-report-style.d.ts.map +1 -1
- package/dist/cli/gate-report-style.js +3 -0
- package/dist/cli/gate-report-style.js.map +1 -1
- package/dist/cli/gate-report-templates.d.ts +22 -0
- package/dist/cli/gate-report-templates.d.ts.map +1 -0
- package/dist/cli/gate-report-templates.js +110 -0
- package/dist/cli/gate-report-templates.js.map +1 -0
- package/dist/cli/gate-report-types.d.ts +19 -5
- package/dist/cli/gate-report-types.d.ts.map +1 -1
- package/dist/cli/gate-report-types.js.map +1 -1
- package/dist/cli/gate-report.d.ts +3 -0
- package/dist/cli/gate-report.d.ts.map +1 -1
- package/dist/cli/gate-report.js +26 -2
- package/dist/cli/gate-report.js.map +1 -1
- package/dist/core/gate-declaration-drift.d.ts +190 -0
- package/dist/core/gate-declaration-drift.d.ts.map +1 -0
- package/dist/core/gate-declaration-drift.js +300 -0
- package/dist/core/gate-declaration-drift.js.map +1 -0
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +13 -1
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/dist/health/declared-checks-inspection.d.ts +48 -0
- package/dist/health/declared-checks-inspection.d.ts.map +1 -0
- package/dist/health/declared-checks-inspection.js +154 -0
- package/dist/health/declared-checks-inspection.js.map +1 -0
- package/dist/health/deterministic-inputs.d.ts +40 -0
- package/dist/health/deterministic-inputs.d.ts.map +1 -0
- package/dist/health/deterministic-inputs.js +71 -0
- package/dist/health/deterministic-inputs.js.map +1 -0
- package/dist/health/deterministic.d.ts.map +1 -1
- package/dist/health/deterministic.js +10 -45
- package/dist/health/deterministic.js.map +1 -1
- package/dist/health/ruleset-inspection.d.ts +27 -0
- package/dist/health/ruleset-inspection.d.ts.map +1 -1
- package/dist/health/ruleset-inspection.js +70 -0
- package/dist/health/ruleset-inspection.js.map +1 -1
- package/package.json +1 -1
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-doctor/SKILL.md +33 -1
- package/plugins/lisa/skills/lisa-doctor/SKILL.md +33 -1
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/skills/lisa-doctor/SKILL.md +33 -1
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-agy/plugin.json +1 -1
- package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/skills/lisa-doctor/SKILL.md +33 -1
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/skills/lisa-doctor/SKILL.md +33 -1
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-agy/plugin.json +1 -1
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-agy/plugin.json +1 -1
- package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-agy/plugin.json +1 -1
- package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-agy/plugin.json +1 -1
- package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-agy/plugin.json +1 -1
- package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-agy/plugin.json +1 -1
- package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-agy/plugin.json +1 -1
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/src/base/skills/lisa-doctor/SKILL.md +33 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-report-sections.d.ts","sourceRoot":"","sources":["../../src/cli/gate-report-sections.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gate-report-sections.d.ts","sourceRoot":"","sources":["../../src/cli/gate-report-sections.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAEV,UAAU,EAGX,MAAM,wBAAwB,CAAC;AA0ChC;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAazD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAiBzD;AAmBD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAclE;AAyCD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAc1D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAmB5D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAc1D"}
|
|
@@ -15,6 +15,14 @@
|
|
|
15
15
|
* - **Not this project's** states Lisa's own unfixed limitations once, with a
|
|
16
16
|
* count and a ticket, instead of scattering them through the project's report
|
|
17
17
|
* as rows it appears to have failed.
|
|
18
|
+
*
|
|
19
|
+
* A fourth is here for a duller reason: the emitter computed the `skip_jobs`
|
|
20
|
+
* migration from the first day and the renderer showed none of it. Rendering
|
|
21
|
+
* data the emitter already produced is the whole shape of this change, and
|
|
22
|
+
* leaving one instance of it unrendered would be shipping the defect next to
|
|
23
|
+
* its own fix. It is also the closest v1 gets to an action a reader can take:
|
|
24
|
+
* the report never writes a declaration, but it can hand over the exact line to
|
|
25
|
+
* paste.
|
|
18
26
|
* @module cli/gate-report-sections
|
|
19
27
|
*/
|
|
20
28
|
import { chip, code, escapeHtml } from "./gate-report-html.js";
|
|
@@ -122,6 +130,57 @@ export function requiredContextsSection(report) {
|
|
|
122
130
|
}
|
|
123
131
|
return `<div class="lgr-cols">${ORIGIN_ORDER.map(origin => originGroup(origin, rows.filter(row => row.origin === origin))).join("")}</div>`;
|
|
124
132
|
}
|
|
133
|
+
/** What each `skip_jobs` migration status means, in the operator's words. */
|
|
134
|
+
const SKIP_STATUS_TEXT = {
|
|
135
|
+
replaceable: "one declaration replaces this token exactly",
|
|
136
|
+
partial: "a declaration covers part of what this token switches off",
|
|
137
|
+
unmappable: "no gate governs what this token switches off",
|
|
138
|
+
inert: "this token switches nothing off",
|
|
139
|
+
unknown: "this workflow has never had a token by this name",
|
|
140
|
+
"moment-illegal": "the replacing gate cannot be declared at this moment",
|
|
141
|
+
};
|
|
142
|
+
/** The chip variant each status renders with. */
|
|
143
|
+
const SKIP_STATUS_VARIANT = {
|
|
144
|
+
replaceable: "ok",
|
|
145
|
+
partial: "b-B",
|
|
146
|
+
unmappable: "bad",
|
|
147
|
+
inert: "none",
|
|
148
|
+
unknown: "bad",
|
|
149
|
+
"moment-illegal": "bad",
|
|
150
|
+
};
|
|
151
|
+
/**
|
|
152
|
+
* One row of the `skip_jobs` migration table.
|
|
153
|
+
* @param entry - The token and its resolution
|
|
154
|
+
* @returns A table row
|
|
155
|
+
*/
|
|
156
|
+
function skipJobRow(entry) {
|
|
157
|
+
const status = chip(SKIP_STATUS_VARIANT[entry.status] ?? "unknown", entry.status, SKIP_STATUS_TEXT[entry.status] ?? "");
|
|
158
|
+
const gate = entry.gate === null ? chip("none", "no gate") : code(entry.gate);
|
|
159
|
+
const declaration = entry.declaration === null
|
|
160
|
+
? chip("none", "nothing to paste")
|
|
161
|
+
: code(entry.declaration);
|
|
162
|
+
return `<tr><td>${code(entry.token)}</td><td>${status}</td><td>${gate}</td><td>${declaration}</td></tr>`;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* The tokens this project still forwards, and what replaces each.
|
|
166
|
+
* @param report - The whole report
|
|
167
|
+
* @returns A section of HTML
|
|
168
|
+
*/
|
|
169
|
+
export function skipJobsSection(report) {
|
|
170
|
+
if (report.skipJobs.state !== "verified") {
|
|
171
|
+
return `<p class="lgr-note">${escapeHtml(report.skipJobs.message)}</p>`;
|
|
172
|
+
}
|
|
173
|
+
const rows = report.skipJobs.value;
|
|
174
|
+
if (rows.length === 0) {
|
|
175
|
+
return '<p class="lgr-note">This project forwards no <code>skip_jobs</code> tokens, so nothing here is switched off by name. That is a checked answer, not an absence of information.</p>';
|
|
176
|
+
}
|
|
177
|
+
return [
|
|
178
|
+
`<p class="lgr-lede">Each token below switches a cloud job off <em>by name</em>, which no declaration governs. The last column is the line that replaces it — this report never writes it for you, but it can hand it over.</p>`,
|
|
179
|
+
'<div class="lgr-scroll"><table><thead><tr><th>Token</th><th>Migration</th><th>Replaced by</th><th>Declaration to paste</th></tr></thead><tbody>',
|
|
180
|
+
rows.map(skipJobRow).join(""),
|
|
181
|
+
"</tbody></table></div>",
|
|
182
|
+
].join("");
|
|
183
|
+
}
|
|
125
184
|
/**
|
|
126
185
|
* What fires on every file an agent writes.
|
|
127
186
|
* @param report - The whole report
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-report-sections.js","sourceRoot":"","sources":["../../src/cli/gate-report-sections.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"gate-report-sections.js","sourceRoot":"","sources":["../../src/cli/gate-report-sections.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,5 +15,5 @@
|
|
|
15
15
|
* @module cli/gate-report-style
|
|
16
16
|
*/
|
|
17
17
|
/** The scoped stylesheet. */
|
|
18
|
-
export declare const GATE_REPORT_STYLE = "\n.lisa-gate-report{\n--lgr-ink:var(--ink,#e6e9f2);--lgr-dim:var(--muted,#98a0b5);--lgr-faint:var(--faint,#6b7280);\n--lgr-panel:var(--surface,#161923);--lgr-panel2:var(--surface2,#1b2030);--lgr-line:var(--line,#252a38);\n--lgr-accent:var(--accent,#58a6ff);--lgr-good:var(--good,#22773c);--lgr-good-soft:var(--good-soft,#123021);\n--lgr-warn:var(--warn,#93610a);--lgr-warn-soft:var(--warn-soft,#3a2c12);\n--lgr-crit:var(--crit,#b3372c);--lgr-crit-soft:var(--crit-soft,#3a1616);\n--lgr-mono:var(--mono,ui-monospace,monospace);\ncolor:var(--lgr-ink);font-size:14px;line-height:1.55}\n.lisa-gate-report h2{font-size:18px;margin:34px 0 6px;padding-top:20px;border-top:1px solid var(--lgr-line)}\n.lisa-gate-report h3{font-size:12.5px;margin:0 0 4px;text-transform:uppercase;letter-spacing:.06em;color:var(--lgr-dim)}\n.lisa-gate-report p{margin:0 0 14px}\n.lisa-gate-report .lgr-lede,.lisa-gate-report .lgr-sub{color:var(--lgr-dim);max-width:86ch}\n.lisa-gate-report .lgr-stats{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0 12px}\n.lisa-gate-report .lgr-stat{background:var(--lgr-panel);border:1px solid var(--lgr-line);\nborder-radius:10px;padding:12px 16px;min-width:170px}\n.lisa-gate-report .lgr-stat b{display:block;font-size:26px;line-height:1.1}\n.lisa-gate-report .lgr-stat span{color:var(--lgr-dim);font-size:12.5px}\n.lisa-gate-report .lgr-denominator{background:var(--lgr-panel);border:1px solid var(--lgr-line);\nborder-left:3px solid var(--lgr-accent);border-radius:8px;padding:12px 16px;max-width:100ch}\n.lisa-gate-report .lgr-legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin:14px 0;\ncolor:var(--lgr-dim);font-size:12.5px}\n.lisa-gate-report .lgr-legend>span{display:flex;align-items:center;gap:6px}\n.lisa-gate-report .lgr-scroll{overflow-x:auto;border:1px solid var(--lgr-line);border-radius:10px}\n.lisa-gate-report table{border-collapse:collapse;width:100%;font-size:12.5px;background:var(--lgr-panel)}\n.lisa-gate-report th,.lisa-gate-report td{text-align:left;padding:9px 11px;\nborder-bottom:1px solid var(--lgr-line);vertical-align:top}\n.lisa-gate-report th{background:var(--lgr-panel2);font-size:11px;text-transform:uppercase;\nletter-spacing:.05em;color:var(--lgr-dim)}\n.lisa-gate-report th.lgr-m,.lisa-gate-report td.lgr-m{text-align:center;white-space:nowrap}\n.lisa-gate-report td.lgr-illegal{background:repeating-linear-gradient(45deg,transparent,transparent 5px,\nvar(--lgr-panel2) 5px,var(--lgr-panel2) 10px)}\n.lisa-gate-report .lgr-gid{display:block;font-family:var(--lgr-mono);font-size:12px;color:var(--lgr-accent)}\n.lisa-gate-report .lgr-glabel{display:block;color:var(--lgr-dim);font-size:12px}\n.lisa-gate-report .lgr-offaxis{margin-top:4px;color:var(--lgr-faint);font-size:11px;font-style:italic}\n.lisa-gate-report .lgr-proves{color:var(--lgr-dim);max-width:34ch}\n.lisa-gate-report code{font-family:var(--lgr-mono);font-size:11.5px;background:var(--lgr-panel2);\nborder:1px solid var(--lgr-line);border-radius:4px;padding:1px 5px}\n.lisa-gate-report .lgr-prov{margin-top:5px;font-size:11px;color:var(--lgr-dim)}\n.lisa-gate-report .lgr-provword{font-weight:700;color:var(--lgr-ink)}\n.lisa-gate-report .lgr-under{margin-top:4px;font-size:11px;color:var(--lgr-dim)}\n.lisa-gate-report .lgr-tier3{margin-top:5px;font-size:11px;color:var(--lgr-faint)}\n.lisa-gate-report .lgr-state{display:inline-block;font-size:11px;border-radius:5px;padding:2px 7px;font-weight:600}\n.lisa-gate-report .lgr-required{background:var(--lgr-good-soft);color:var(--lgr-good)}\n.lisa-gate-report .lgr-optional{background:var(--lgr-warn-soft);color:var(--lgr-warn)}\n.lisa-gate-report .lgr-off{background:var(--lgr-crit-soft);color:var(--lgr-crit)}\n.lisa-gate-report .lgr-undeclared{background:var(--lgr-panel2);color:var(--lgr-faint);border:1px dashed var(--lgr-line)}\n.lisa-gate-report .lgr-chip{display:inline-block;margin-left:5px;font-size:10.5px;border-radius:4px;\npadding:1px 5px;font-weight:600;vertical-align:1px}\n.lisa-gate-report .lgr-b-A,.lisa-gate-report .lgr-ok,.lisa-gate-report .lgr-yes-merge{\nbackground:var(--lgr-good-soft);color:var(--lgr-good)}\n.lisa-gate-report .lgr-b-B,.lisa-gate-report .lgr-other-merge{background:var(--lgr-warn-soft);color:var(--lgr-warn)}\n.lisa-gate-report .lgr-b-C,.lisa-gate-report .lgr-bad{background:var(--lgr-crit-soft);color:var(--lgr-crit)}\n.lisa-gate-report .lgr-b-D,.lisa-gate-report .lgr-none,.lisa-gate-report .lgr-no-merge{\nbackground:var(--lgr-panel2);color:var(--lgr-faint)}\n.lisa-gate-report .lgr-foreign{background:var(--lgr-panel2);color:var(--lgr-accent);border:1px solid var(--lgr-accent)}\n.lisa-gate-report .lgr-unknown{background:repeating-linear-gradient(45deg,var(--lgr-panel2),\nvar(--lgr-panel2) 3px,var(--lgr-panel) 3px,var(--lgr-panel) 6px);\ncolor:var(--lgr-dim);border:1px dashed var(--lgr-line)}\n.lisa-gate-report .lgr-note{background:repeating-linear-gradient(45deg,var(--lgr-panel2),\nvar(--lgr-panel2) 4px,var(--lgr-panel) 4px,var(--lgr-panel) 8px);\nborder:1px dashed var(--lgr-line);border-radius:8px;padding:14px 16px;color:var(--lgr-ink)}\n.lisa-gate-report .lgr-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;margin-bottom:14px}\n.lisa-gate-report .lgr-cols>div{background:var(--lgr-panel);border:1px solid var(--lgr-line);\nborder-radius:10px;padding:14px 16px}\n.lisa-gate-report .lgr-sharp,.lisa-gate-report .lgr-origin-lisa-undeclared{border-color:var(--lgr-crit)}\n.lisa-gate-report .lgr-origin-third-party{border-color:var(--lgr-accent)}\n.lisa-gate-report .lgr-cols p{color:var(--lgr-dim);font-size:12px;margin:0 0 8px}\n.lisa-gate-report .lgr-cols ul{margin:0;padding-left:18px}\n.lisa-gate-report .lgr-cols li{margin:3px 0;font-size:12.5px}\n.lisa-gate-report .lgr-count{float:right;color:var(--lgr-ink);font-size:13px}\n.lisa-gate-report .lgr-upstream{background:var(--lgr-panel);border:1px solid var(--lgr-line);\nborder-left:3px solid var(--lgr-accent);border-radius:10px;padding:14px 16px;margin-bottom:12px}\n.lisa-gate-report .lgr-upstream h3{text-transform:none;letter-spacing:0;font-size:14px;color:var(--lgr-ink)}\n.lisa-gate-report .lgr-upstream p{color:var(--lgr-dim);font-size:12.5px}\n.lisa-gate-report .lgr-upstream-meta{margin:0}\n.lisa-gate-report .lgr-foot{margin-top:32px;padding-top:16px;border-top:1px solid var(--lgr-line);\ncolor:var(--lgr-faint);font-size:12px}\n";
|
|
18
|
+
export declare const GATE_REPORT_STYLE = "\n.lisa-gate-report{\n--lgr-ink:var(--ink,#e6e9f2);--lgr-dim:var(--muted,#98a0b5);--lgr-faint:var(--faint,#6b7280);\n--lgr-panel:var(--surface,#161923);--lgr-panel2:var(--surface2,#1b2030);--lgr-line:var(--line,#252a38);\n--lgr-accent:var(--accent,#58a6ff);--lgr-good:var(--good,#22773c);--lgr-good-soft:var(--good-soft,#123021);\n--lgr-warn:var(--warn,#93610a);--lgr-warn-soft:var(--warn-soft,#3a2c12);\n--lgr-crit:var(--crit,#b3372c);--lgr-crit-soft:var(--crit-soft,#3a1616);\n--lgr-mono:var(--mono,ui-monospace,monospace);\ncolor:var(--lgr-ink);font-size:14px;line-height:1.55}\n.lisa-gate-report h2{font-size:18px;margin:34px 0 6px;padding-top:20px;border-top:1px solid var(--lgr-line)}\n.lisa-gate-report h3{font-size:12.5px;margin:0 0 4px;text-transform:uppercase;letter-spacing:.06em;color:var(--lgr-dim)}\n.lisa-gate-report p{margin:0 0 14px}\n.lisa-gate-report .lgr-lede,.lisa-gate-report .lgr-sub{color:var(--lgr-dim);max-width:86ch}\n.lisa-gate-report .lgr-stats{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0 12px}\n.lisa-gate-report .lgr-stat{background:var(--lgr-panel);border:1px solid var(--lgr-line);\nborder-radius:10px;padding:12px 16px;min-width:170px}\n.lisa-gate-report .lgr-stat b{display:block;font-size:26px;line-height:1.1}\n.lisa-gate-report .lgr-stat span{color:var(--lgr-dim);font-size:12.5px}\n.lisa-gate-report .lgr-denominator{background:var(--lgr-panel);border:1px solid var(--lgr-line);\nborder-left:3px solid var(--lgr-accent);border-radius:8px;padding:12px 16px;max-width:100ch}\n.lisa-gate-report .lgr-legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin:14px 0;\ncolor:var(--lgr-dim);font-size:12.5px}\n.lisa-gate-report .lgr-legend>span{display:flex;align-items:center;gap:6px}\n.lisa-gate-report .lgr-scroll{overflow-x:auto;border:1px solid var(--lgr-line);border-radius:10px}\n.lisa-gate-report table{border-collapse:collapse;width:100%;font-size:12.5px;background:var(--lgr-panel)}\n.lisa-gate-report th,.lisa-gate-report td{text-align:left;padding:9px 11px;\nborder-bottom:1px solid var(--lgr-line);vertical-align:top}\n.lisa-gate-report th{background:var(--lgr-panel2);font-size:11px;text-transform:uppercase;\nletter-spacing:.05em;color:var(--lgr-dim)}\n.lisa-gate-report th.lgr-m,.lisa-gate-report td.lgr-m{text-align:center;white-space:nowrap}\n.lisa-gate-report td.lgr-illegal{background:repeating-linear-gradient(45deg,transparent,transparent 5px,\nvar(--lgr-panel2) 5px,var(--lgr-panel2) 10px)}\n.lisa-gate-report .lgr-gid{display:block;font-family:var(--lgr-mono);font-size:12px;color:var(--lgr-accent)}\n.lisa-gate-report .lgr-glabel{display:block;color:var(--lgr-dim);font-size:12px}\n.lisa-gate-report .lgr-offaxis{margin-top:4px;color:var(--lgr-faint);font-size:11px;font-style:italic}\n.lisa-gate-report .lgr-proves{color:var(--lgr-dim);max-width:34ch}\n.lisa-gate-report code{font-family:var(--lgr-mono);font-size:11.5px;background:var(--lgr-panel2);\nborder:1px solid var(--lgr-line);border-radius:4px;padding:1px 5px}\n.lisa-gate-report .lgr-prov{margin-top:5px;font-size:11px;color:var(--lgr-dim)}\n.lisa-gate-report .lgr-provword{font-weight:700;color:var(--lgr-ink)}\n.lisa-gate-report .lgr-under{margin-top:4px;font-size:11px;color:var(--lgr-dim)}\n.lisa-gate-report .lgr-tier3{margin-top:5px;font-size:11px;color:var(--lgr-faint)}\n.lisa-gate-report .lgr-state{display:inline-block;font-size:11px;border-radius:5px;padding:2px 7px;font-weight:600}\n.lisa-gate-report .lgr-required{background:var(--lgr-good-soft);color:var(--lgr-good)}\n.lisa-gate-report .lgr-optional{background:var(--lgr-warn-soft);color:var(--lgr-warn)}\n.lisa-gate-report .lgr-off{background:var(--lgr-crit-soft);color:var(--lgr-crit)}\n.lisa-gate-report .lgr-undeclared{background:var(--lgr-panel2);color:var(--lgr-faint);border:1px dashed var(--lgr-line)}\n.lisa-gate-report .lgr-chip{display:inline-block;margin-left:5px;font-size:10.5px;border-radius:4px;\npadding:1px 5px;font-weight:600;vertical-align:1px}\n.lisa-gate-report .lgr-b-A,.lisa-gate-report .lgr-ok,.lisa-gate-report .lgr-yes-merge{\nbackground:var(--lgr-good-soft);color:var(--lgr-good)}\n.lisa-gate-report .lgr-b-B,.lisa-gate-report .lgr-other-merge{background:var(--lgr-warn-soft);color:var(--lgr-warn)}\n.lisa-gate-report .lgr-b-C,.lisa-gate-report .lgr-bad{background:var(--lgr-crit-soft);color:var(--lgr-crit)}\n.lisa-gate-report .lgr-b-D,.lisa-gate-report .lgr-none,.lisa-gate-report .lgr-no-merge{\nbackground:var(--lgr-panel2);color:var(--lgr-faint)}\n.lisa-gate-report .lgr-foreign{background:var(--lgr-panel2);color:var(--lgr-accent);border:1px solid var(--lgr-accent)}\n.lisa-gate-report .lgr-unknown{background:repeating-linear-gradient(45deg,var(--lgr-panel2),\nvar(--lgr-panel2) 3px,var(--lgr-panel) 3px,var(--lgr-panel) 6px);\ncolor:var(--lgr-dim);border:1px dashed var(--lgr-line)}\n.lisa-gate-report .lgr-note{background:repeating-linear-gradient(45deg,var(--lgr-panel2),\nvar(--lgr-panel2) 4px,var(--lgr-panel) 4px,var(--lgr-panel) 8px);\nborder:1px dashed var(--lgr-line);border-radius:8px;padding:14px 16px;color:var(--lgr-ink)}\n.lisa-gate-report .lgr-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;margin-bottom:14px}\n.lisa-gate-report .lgr-cols>div{background:var(--lgr-panel);border:1px solid var(--lgr-line);\nborder-radius:10px;padding:14px 16px}\n.lisa-gate-report .lgr-sharp,.lisa-gate-report .lgr-origin-lisa-undeclared{border-color:var(--lgr-crit)}\n.lisa-gate-report .lgr-origin-third-party{border-color:var(--lgr-accent)}\n.lisa-gate-report .lgr-cols p{color:var(--lgr-dim);font-size:12px;margin:0 0 8px}\n.lisa-gate-report .lgr-cols ul{margin:0;padding-left:18px}\n.lisa-gate-report .lgr-cols li{margin:3px 0;font-size:12.5px}\n.lisa-gate-report .lgr-count{float:right;color:var(--lgr-ink);font-size:13px}\n.lisa-gate-report .lgr-upstream{background:var(--lgr-panel);border:1px solid var(--lgr-line);\nborder-left:3px solid var(--lgr-accent);border-radius:10px;padding:14px 16px;margin-bottom:12px}\n.lisa-gate-report .lgr-upstream h3{text-transform:none;letter-spacing:0;font-size:14px;color:var(--lgr-ink)}\n.lisa-gate-report .lgr-upstream p{color:var(--lgr-dim);font-size:12.5px}\n.lisa-gate-report .lgr-upstream-meta{margin:0}\n.lisa-gate-report .lgr-foot{margin-top:32px;padding-top:16px;border-top:1px solid var(--lgr-line);\ncolor:var(--lgr-faint);font-size:12px}\n.lisa-gate-report .lgr-surface{margin:18px 0 8px;color:var(--lgr-ink);\ntext-transform:none;letter-spacing:0;font-size:14px}\n.lisa-gate-report .lgr-why{color:var(--lgr-dim);font-size:11.5px;margin:3px 0 8px}\n";
|
|
19
19
|
//# sourceMappingURL=gate-report-style.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-report-style.d.ts","sourceRoot":"","sources":["../../src/cli/gate-report-style.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,6BAA6B;AAC7B,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"gate-report-style.d.ts","sourceRoot":"","sources":["../../src/cli/gate-report-style.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,6BAA6B;AAC7B,eAAO,MAAM,iBAAiB,w6MAiF7B,CAAC"}
|
|
@@ -93,5 +93,8 @@ border-left:3px solid var(--lgr-accent);border-radius:10px;padding:14px 16px;mar
|
|
|
93
93
|
.lisa-gate-report .lgr-upstream-meta{margin:0}
|
|
94
94
|
.lisa-gate-report .lgr-foot{margin-top:32px;padding-top:16px;border-top:1px solid var(--lgr-line);
|
|
95
95
|
color:var(--lgr-faint);font-size:12px}
|
|
96
|
+
.lisa-gate-report .lgr-surface{margin:18px 0 8px;color:var(--lgr-ink);
|
|
97
|
+
text-transform:none;letter-spacing:0;font-size:14px}
|
|
98
|
+
.lisa-gate-report .lgr-why{color:var(--lgr-dim);font-size:11.5px;margin:3px 0 8px}
|
|
96
99
|
`;
|
|
97
100
|
//# sourceMappingURL=gate-report-style.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-report-style.js","sourceRoot":"","sources":["../../src/cli/gate-report-style.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,6BAA6B;AAC7B,MAAM,CAAC,MAAM,iBAAiB,GAAG
|
|
1
|
+
{"version":3,"file":"gate-report-style.js","sourceRoot":"","sources":["../../src/cli/gate-report-style.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,6BAA6B;AAC7B,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiFhC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { EnforcedContext } from "../core/gate-declaration-drift.js";
|
|
2
|
+
import type { Finding } from "./gate-report-types.js";
|
|
3
|
+
/** Reads the contexts the shipped templates require. Injectable for tests. */
|
|
4
|
+
export type TemplateEnforcementReader = (projectRoot: string) => Promise<readonly EnforcedContext[]>;
|
|
5
|
+
/**
|
|
6
|
+
* The default reader: the shipped templates, normalized as apply normalizes.
|
|
7
|
+
* @param projectRoot - Project root
|
|
8
|
+
* @returns The contexts the templates require
|
|
9
|
+
*/
|
|
10
|
+
export declare const defaultTemplateEnforcementReader: TemplateEnforcementReader;
|
|
11
|
+
/**
|
|
12
|
+
* Read the templates, degrading to `unknown` and never to a pass.
|
|
13
|
+
* @param options - Inputs
|
|
14
|
+
* @param options.projectRoot - Project root
|
|
15
|
+
* @param options.read - Injectable reader, so tests never touch the package
|
|
16
|
+
* @returns The contexts, or an honest unknown
|
|
17
|
+
*/
|
|
18
|
+
export declare function readTemplateEnforcement(options: {
|
|
19
|
+
projectRoot: string;
|
|
20
|
+
read?: TemplateEnforcementReader;
|
|
21
|
+
}): Promise<Finding<readonly EnforcedContext[]>>;
|
|
22
|
+
//# sourceMappingURL=gate-report-templates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gate-report-templates.d.ts","sourceRoot":"","sources":["../../src/cli/gate-report-templates.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAIzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEtD,8EAA8E;AAC9E,MAAM,MAAM,yBAAyB,GAAG,CACtC,WAAW,EAAE,MAAM,KAChB,OAAO,CAAC,SAAS,eAAe,EAAE,CAAC,CAAC;AA+BzC;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,EAAE,yBAkB5C,CAAC;AAgBJ;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAAC,OAAO,EAAE;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,yBAAyB,CAAC;CAClC,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,eAAe,EAAE,CAAC,CAAC,CAwB/C"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tier 1 — what the shipped ruleset templates require, read offline.
|
|
3
|
+
*
|
|
4
|
+
* The declaration-versus-live half of this comparison needs the network and
|
|
5
|
+
* degrades to `unknown`; this half needs nothing but the Lisa package and the
|
|
6
|
+
* project's settings file, so it answers in a repository with no credentials,
|
|
7
|
+
* no `gh`, and no network at all. That matters because the template is what a
|
|
8
|
+
* repository's protection is provisioned FROM: a declaration that disagrees
|
|
9
|
+
* with the template is drift the moment anyone runs the provisioner, whether or
|
|
10
|
+
* not the live ruleset has caught up yet.
|
|
11
|
+
*
|
|
12
|
+
* Every failure lands on `unknown` carrying a reason. In particular an empty
|
|
13
|
+
* template set is `unknown`, never an empty pass: a comparison against nothing
|
|
14
|
+
* would report every declaration as enforcing nothing, which is a false claim
|
|
15
|
+
* rather than a missing one.
|
|
16
|
+
* @module cli/gate-report-templates
|
|
17
|
+
*/
|
|
18
|
+
import { readFile, realpath } from "node:fs/promises";
|
|
19
|
+
import * as path from "node:path";
|
|
20
|
+
import { expectedRequiredContexts } from "../health/ruleset-inspection.js";
|
|
21
|
+
import { detectHealthProjectTypes } from "../health/template-inspection.js";
|
|
22
|
+
import { resolveLisaPackageRoot } from "./gate-report-registry.js";
|
|
23
|
+
/**
|
|
24
|
+
* Read `.lisa.config.json` as a plain record.
|
|
25
|
+
*
|
|
26
|
+
* The whole file rather than only its `gates` block, because the per-repo
|
|
27
|
+
* `github.rulesets.addRequiredChecks` and `dropRequiredChecks` opt-ins change
|
|
28
|
+
* which contexts a template actually ends up requiring.
|
|
29
|
+
* @param projectRoot - Project root
|
|
30
|
+
* @returns The parsed object, or null when it could not be read
|
|
31
|
+
*/
|
|
32
|
+
async function readRawConfig(projectRoot) {
|
|
33
|
+
const source = await readFile(path.join(projectRoot, ".lisa.config.json"), "utf8").catch(() => undefined);
|
|
34
|
+
if (source === undefined)
|
|
35
|
+
return null;
|
|
36
|
+
try {
|
|
37
|
+
const parsed = JSON.parse(source);
|
|
38
|
+
return parsed !== null &&
|
|
39
|
+
typeof parsed === "object" &&
|
|
40
|
+
!Array.isArray(parsed)
|
|
41
|
+
? parsed
|
|
42
|
+
: null;
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* The default reader: the shipped templates, normalized as apply normalizes.
|
|
50
|
+
* @param projectRoot - Project root
|
|
51
|
+
* @returns The contexts the templates require
|
|
52
|
+
*/
|
|
53
|
+
export const defaultTemplateEnforcementReader = async (projectRoot) => {
|
|
54
|
+
const lisaRoot = resolveLisaPackageRoot();
|
|
55
|
+
if (lisaRoot === null)
|
|
56
|
+
throw new Error("LISA_PACKAGE_NOT_FOUND");
|
|
57
|
+
// The health readers confine every read to a CANONICAL root and reject a
|
|
58
|
+
// path that resolves outside it. A caller-supplied root that is merely
|
|
59
|
+
// absolute — a symlinked temporary directory, a checkout reached through
|
|
60
|
+
// one — resolves elsewhere and is refused, so it is canonicalized here
|
|
61
|
+
// rather than at each of the reads it is threaded through.
|
|
62
|
+
const canonical = await realpath(projectRoot).catch(() => projectRoot);
|
|
63
|
+
const config = await readRawConfig(canonical);
|
|
64
|
+
if (config === null)
|
|
65
|
+
throw new Error("CONFIG_UNREADABLE");
|
|
66
|
+
return await expectedRequiredContexts(lisaRoot, canonical, await detectHealthProjectTypes(canonical), config);
|
|
67
|
+
};
|
|
68
|
+
/** Why a template read failed, in words an operator can act on. */
|
|
69
|
+
const REASONS = {
|
|
70
|
+
LISA_PACKAGE_NOT_FOUND: {
|
|
71
|
+
reason: "lisa-package-not-found",
|
|
72
|
+
message: "The running Lisa package could not be located, so the ruleset templates were not read. Nothing here claims a declaration does or does not match the protection it will be provisioned into.",
|
|
73
|
+
},
|
|
74
|
+
CONFIG_UNREADABLE: {
|
|
75
|
+
reason: "config-unreadable",
|
|
76
|
+
message: ".lisa.config.json could not be read, so the per-repo required-check opt-ins that change what a template requires are unknown. The comparison was not made.",
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Read the templates, degrading to `unknown` and never to a pass.
|
|
81
|
+
* @param options - Inputs
|
|
82
|
+
* @param options.projectRoot - Project root
|
|
83
|
+
* @param options.read - Injectable reader, so tests never touch the package
|
|
84
|
+
* @returns The contexts, or an honest unknown
|
|
85
|
+
*/
|
|
86
|
+
export async function readTemplateEnforcement(options) {
|
|
87
|
+
const read = options.read ?? defaultTemplateEnforcementReader;
|
|
88
|
+
try {
|
|
89
|
+
const value = await read(options.projectRoot);
|
|
90
|
+
if (value.length === 0) {
|
|
91
|
+
return {
|
|
92
|
+
state: "unknown",
|
|
93
|
+
reason: "templates-not-found",
|
|
94
|
+
message: "No shipped ruleset template named a required status check for this project, so there is nothing to hold the declarations against. An empty template set is reported as unread rather than as a project whose merges are blocked on nothing.",
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
return { state: "verified", value };
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
const key = error instanceof Error ? error.message : String(error);
|
|
101
|
+
return {
|
|
102
|
+
state: "unknown",
|
|
103
|
+
...(REASONS[key] ?? {
|
|
104
|
+
reason: "templates-unreadable",
|
|
105
|
+
message: "Reading the shipped ruleset templates failed, so what the protection they provision would require is unknown for this run.",
|
|
106
|
+
}),
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=gate-report-templates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gate-report-templates.js","sourceRoot":"","sources":["../../src/cli/gate-report-templates.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
* every count states its unknown band explicitly.
|
|
15
15
|
* @module cli/gate-report-types
|
|
16
16
|
*/
|
|
17
|
+
import type { DeclarationDriftReport, DeclarationState } from "../core/gate-declaration-drift.js";
|
|
17
18
|
/** Report format version, bumped when a consumer would have to change. */
|
|
18
19
|
export declare const GATE_REPORT_VERSION = 2;
|
|
19
20
|
/**
|
|
@@ -39,12 +40,12 @@ export type Finding<T> = {
|
|
|
39
40
|
/**
|
|
40
41
|
* What the settings file says about one gate at one moment.
|
|
41
42
|
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
* `
|
|
45
|
-
*
|
|
43
|
+
* Defined once in `core/gate-declaration-drift` and re-exported here. The
|
|
44
|
+
* declaration-versus-ruleset comparison turns on the difference between `off`
|
|
45
|
+
* and `not-declared`, so a second definition that drifted by one member would
|
|
46
|
+
* be a defect in exactly the place the comparison exists to protect.
|
|
46
47
|
*/
|
|
47
|
-
export type DeclarationState
|
|
48
|
+
export type { DeclarationState };
|
|
48
49
|
/** How a declared gate is proved. */
|
|
49
50
|
export type ProofMode = "run" | "await" | "intercept" | "off";
|
|
50
51
|
/**
|
|
@@ -233,6 +234,19 @@ export interface GateReport {
|
|
|
233
234
|
readonly skipJobs: Finding<readonly SkipJobRow[]>;
|
|
234
235
|
/** Declared contexts against the live ruleset — Tier 2. */
|
|
235
236
|
readonly ruleset: Finding<RulesetComparison>;
|
|
237
|
+
/**
|
|
238
|
+
* The declaration held against each surface that enforces it.
|
|
239
|
+
*
|
|
240
|
+
* Two surfaces, reported separately and never merged. `templates` needs no
|
|
241
|
+
* network and says what protection would require the moment anyone
|
|
242
|
+
* provisions it; `live` says what the repository requires right now, and is
|
|
243
|
+
* `unknown` whenever this run could not read it. Folding them into one
|
|
244
|
+
* verdict would let a reachable surface vouch for an unreachable one.
|
|
245
|
+
*/
|
|
246
|
+
readonly declarationDrift: {
|
|
247
|
+
readonly templates: Finding<DeclarationDriftReport>;
|
|
248
|
+
readonly live: Finding<DeclarationDriftReport>;
|
|
249
|
+
};
|
|
236
250
|
/**
|
|
237
251
|
* Every context a merge is blocked on, with who owns it.
|
|
238
252
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-report-types.d.ts","sourceRoot":"","sources":["../../src/cli/gate-report-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,0EAA0E;AAC1E,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC;;;;;;;GAOG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,IACjB;IAAE,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GACjD;IACE,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,GACD;IACE,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEN;;;;;;;GAOG;AACH,
|
|
1
|
+
{"version":3,"file":"gate-report-types.d.ts","sourceRoot":"","sources":["../../src/cli/gate-report-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-report-types.js","sourceRoot":"","sources":["../../src/cli/gate-report-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"gate-report-types.js","sourceRoot":"","sources":["../../src/cli/gate-report-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAOH,0EAA0E;AAC1E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type GateRegistryModule } from "./gate-report-registry.js";
|
|
2
|
+
import { type TemplateEnforcementReader } from "./gate-report-templates.js";
|
|
2
3
|
import { type RequiredContextsReader } from "./gate-report-ruleset.js";
|
|
3
4
|
import { type SkipJobTokensReader } from "./gate-report-skip-jobs.js";
|
|
4
5
|
import { type GateReport } from "./gate-report-types.js";
|
|
@@ -12,6 +13,8 @@ export interface GateReportOptions {
|
|
|
12
13
|
readonly readRequiredContexts?: RequiredContextsReader;
|
|
13
14
|
/** Injectable `skip_jobs` reader, for the same reason. */
|
|
14
15
|
readonly readSkipJobTokens?: SkipJobTokensReader;
|
|
16
|
+
/** Injectable Tier 1 ruleset-template reader, for the same reason. */
|
|
17
|
+
readonly readTemplateContexts?: TemplateEnforcementReader;
|
|
15
18
|
/** Injectable home directory, so agent-hook discovery is testable. */
|
|
16
19
|
readonly homedir?: () => string;
|
|
17
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-report.d.ts","sourceRoot":"","sources":["../../src/cli/gate-report.ts"],"names":[],"mappings":"AAyCA,OAAO,EAEL,KAAK,kBAAkB,EAExB,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"gate-report.d.ts","sourceRoot":"","sources":["../../src/cli/gate-report.ts"],"names":[],"mappings":"AAyCA,OAAO,EAEL,KAAK,kBAAkB,EAExB,MAAM,2BAA2B,CAAC;AASnC,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,4BAA4B,CAAC;AAIpC,OAAO,EAIL,KAAK,UAAU,EAEhB,MAAM,wBAAwB,CAAC;AAWhC,8BAA8B;AAC9B,MAAM,WAAW,iBAAiB;IAChC,iCAAiC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,gEAAgE;IAChE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,0DAA0D;IAC1D,QAAQ,CAAC,oBAAoB,CAAC,EAAE,sBAAsB,CAAC;IACvD,0DAA0D;IAC1D,QAAQ,CAAC,iBAAiB,CAAC,EAAE,mBAAmB,CAAC;IACjD,sEAAsE;IACtE,QAAQ,CAAC,oBAAoB,CAAC,EAAE,yBAAyB,CAAC;IAC1D,sEAAsE;IACtE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,MAAM,CAAC;CACjC;AA0BD;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,kBAAkB,EAC5B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,MAAM,EAAE,CASV;AA6LD;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,UAAU,CAAC,CAsErB"}
|
package/dist/cli/gate-report.js
CHANGED
|
@@ -26,7 +26,8 @@ import { facadeFinding, facadeSourceOf, readFacadeFacts, } from "./gate-report-f
|
|
|
26
26
|
import { mergeVerdict } from "./gate-report-merge.js";
|
|
27
27
|
import { collectUpstream, PRE_TOOL } from "./gate-report-upstream.js";
|
|
28
28
|
import { loadGateRegistry, } from "./gate-report-registry.js";
|
|
29
|
-
import { buildRequiredContexts, buildRulesetFinding, mergeBlockResolver, } from "./gate-report-joins.js";
|
|
29
|
+
import { buildDeclarationDrift, buildRequiredContexts, buildRulesetFinding, liveEnforcement, mergeBlockResolver, } from "./gate-report-joins.js";
|
|
30
|
+
import { readTemplateEnforcement, } from "./gate-report-templates.js";
|
|
30
31
|
import { defaultRequiredContextsReader, readRequiredContexts, } from "./gate-report-ruleset.js";
|
|
31
32
|
import { buildSkipJobRows, defaultSkipJobTokensReader, } from "./gate-report-skip-jobs.js";
|
|
32
33
|
import { readConfig } from "./gate-report-config.js";
|
|
@@ -134,6 +135,7 @@ function registryMissingReport() {
|
|
|
134
135
|
gates: [],
|
|
135
136
|
skipJobs: missing,
|
|
136
137
|
ruleset: missing,
|
|
138
|
+
declarationDrift: { templates: missing, live: missing },
|
|
137
139
|
requiredContexts: missing,
|
|
138
140
|
agentHooks: missing,
|
|
139
141
|
facadeSource: { present: false, files: [] },
|
|
@@ -203,8 +205,29 @@ async function readInputs(registry, options) {
|
|
|
203
205
|
readFacadeFacts(projectRoot),
|
|
204
206
|
collectAgentHooks(projectRoot, options.homedir === undefined ? {} : { homedir: options.homedir }),
|
|
205
207
|
readProjectIsUpstream(projectRoot),
|
|
208
|
+
readTemplateEnforcement(options.readTemplateContexts === undefined
|
|
209
|
+
? { projectRoot }
|
|
210
|
+
: { projectRoot, read: options.readTemplateContexts }),
|
|
206
211
|
]);
|
|
207
212
|
}
|
|
213
|
+
/**
|
|
214
|
+
* The declaration held against both surfaces that enforce it.
|
|
215
|
+
*
|
|
216
|
+
* Two surfaces, never merged into one verdict: the template needs no network
|
|
217
|
+
* and says what protection would require the moment anyone provisions it; the
|
|
218
|
+
* live ruleset says what the repository requires right now, and is `unknown`
|
|
219
|
+
* whenever this run did not read it. Folding them would let a reachable
|
|
220
|
+
* surface vouch for an unreachable one.
|
|
221
|
+
* @param joins - The join inputs
|
|
222
|
+
* @param templates - What the shipped templates require, or why that is unknown
|
|
223
|
+
* @returns One comparison per surface
|
|
224
|
+
*/
|
|
225
|
+
function declarationDrift(joins, templates) {
|
|
226
|
+
return {
|
|
227
|
+
templates: buildDeclarationDrift(joins, "ruleset-templates", templates),
|
|
228
|
+
live: buildDeclarationDrift(joins, "live-ruleset", liveEnforcement(joins.contexts)),
|
|
229
|
+
};
|
|
230
|
+
}
|
|
208
231
|
/**
|
|
209
232
|
* Build the gate report for one project.
|
|
210
233
|
* @param options - Report inputs
|
|
@@ -218,7 +241,7 @@ export async function buildGateReport(options) {
|
|
|
218
241
|
const parsed = readConfig(registry, projectRoot);
|
|
219
242
|
const gates = parsed.gates;
|
|
220
243
|
const axis = momentAxis(registry, gates);
|
|
221
|
-
const [scripts, hooks, contexts, skipJobs, facade, agentHooks, isUpstream] = await readInputs(registry, options);
|
|
244
|
+
const [scripts, hooks, contexts, skipJobs, facade, agentHooks, isUpstream, templates,] = await readInputs(registry, options);
|
|
222
245
|
const joins = {
|
|
223
246
|
registry,
|
|
224
247
|
gates,
|
|
@@ -260,6 +283,7 @@ export async function buildGateReport(options) {
|
|
|
260
283
|
gates: rows,
|
|
261
284
|
skipJobs,
|
|
262
285
|
ruleset: buildRulesetFinding(joins),
|
|
286
|
+
declarationDrift: declarationDrift(joins, templates),
|
|
263
287
|
requiredContexts: buildRequiredContexts(joins),
|
|
264
288
|
agentHooks,
|
|
265
289
|
facadeSource: facadeSourceOf(facade),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-report.js","sourceRoot":"","sources":["../../src/cli/gate-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EACL,QAAQ,EACR,cAAc,GAEf,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,mBAAmB,GAEpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,aAAa,EACb,cAAc,EACd,eAAe,GAEhB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EACL,gBAAgB,GAGjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,GAEnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,6BAA6B,EAC7B,oBAAoB,GAErB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,gBAAgB,EAChB,0BAA0B,GAE3B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"gate-report.js","sourceRoot":"","sources":["../../src/cli/gate-report.ts"],"names":[],"mappings":"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"}
|