@codyswann/lisa 3.49.0 → 3.50.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/gate-report-agent-hooks.d.ts +40 -0
- package/dist/cli/gate-report-agent-hooks.d.ts.map +1 -0
- package/dist/cli/gate-report-agent-hooks.js +226 -0
- package/dist/cli/gate-report-agent-hooks.js.map +1 -0
- package/dist/cli/gate-report-assemble.d.ts +37 -0
- package/dist/cli/gate-report-assemble.d.ts.map +1 -0
- package/dist/cli/gate-report-assemble.js +69 -0
- package/dist/cli/gate-report-assemble.js.map +1 -0
- package/dist/cli/gate-report-cells.d.ts +27 -2
- package/dist/cli/gate-report-cells.d.ts.map +1 -1
- package/dist/cli/gate-report-cells.js +59 -14
- package/dist/cli/gate-report-cells.js.map +1 -1
- package/dist/cli/gate-report-contexts.d.ts +70 -0
- package/dist/cli/gate-report-contexts.d.ts.map +1 -0
- package/dist/cli/gate-report-contexts.js +72 -0
- package/dist/cli/gate-report-contexts.js.map +1 -0
- package/dist/cli/gate-report-facade.d.ts +62 -0
- package/dist/cli/gate-report-facade.d.ts.map +1 -0
- package/dist/cli/gate-report-facade.js +224 -0
- package/dist/cli/gate-report-facade.js.map +1 -0
- package/dist/cli/gate-report-fragment.d.ts +11 -0
- package/dist/cli/gate-report-fragment.d.ts.map +1 -0
- package/dist/cli/gate-report-fragment.js +100 -0
- package/dist/cli/gate-report-fragment.js.map +1 -0
- package/dist/cli/gate-report-html.d.ts +47 -0
- package/dist/cli/gate-report-html.d.ts.map +1 -0
- package/dist/cli/gate-report-html.js +49 -0
- package/dist/cli/gate-report-html.js.map +1 -0
- package/dist/cli/gate-report-joins.d.ts +37 -0
- package/dist/cli/gate-report-joins.d.ts.map +1 -0
- package/dist/cli/gate-report-joins.js +104 -0
- package/dist/cli/gate-report-joins.js.map +1 -0
- package/dist/cli/gate-report-merge.d.ts +22 -0
- package/dist/cli/gate-report-merge.d.ts.map +1 -0
- package/dist/cli/gate-report-merge.js +79 -0
- package/dist/cli/gate-report-merge.js.map +1 -0
- package/dist/cli/gate-report-preview.d.ts +0 -18
- package/dist/cli/gate-report-preview.d.ts.map +1 -1
- package/dist/cli/gate-report-preview.js +35 -266
- package/dist/cli/gate-report-preview.js.map +1 -1
- package/dist/cli/gate-report-rows.d.ts +39 -0
- package/dist/cli/gate-report-rows.d.ts.map +1 -0
- package/dist/cli/gate-report-rows.js +209 -0
- package/dist/cli/gate-report-rows.js.map +1 -0
- package/dist/cli/gate-report-sections.d.ts +32 -0
- package/dist/cli/gate-report-sections.d.ts.map +1 -0
- package/dist/cli/gate-report-sections.js +164 -0
- package/dist/cli/gate-report-sections.js.map +1 -0
- package/dist/cli/gate-report-style.d.ts +19 -0
- package/dist/cli/gate-report-style.d.ts.map +1 -0
- package/dist/cli/gate-report-style.js +97 -0
- package/dist/cli/gate-report-style.js.map +1 -0
- package/dist/cli/gate-report-summary.d.ts.map +1 -1
- package/dist/cli/gate-report-summary.js +3 -0
- package/dist/cli/gate-report-summary.js.map +1 -1
- package/dist/cli/gate-report-types.d.ts +132 -1
- package/dist/cli/gate-report-types.d.ts.map +1 -1
- package/dist/cli/gate-report-types.js +1 -1
- package/dist/cli/gate-report-upstream.d.ts +70 -0
- package/dist/cli/gate-report-upstream.d.ts.map +1 -0
- package/dist/cli/gate-report-upstream.js +90 -0
- package/dist/cli/gate-report-upstream.js.map +1 -0
- package/dist/cli/gate-report.d.ts +2 -0
- package/dist/cli/gate-report.d.ts.map +1 -1
- package/dist/cli/gate-report.js +98 -140
- package/dist/cli/gate-report.js.map +1 -1
- package/dist/cli/ui-cmd.d.ts +4 -0
- package/dist/cli/ui-cmd.d.ts.map +1 -1
- package/dist/cli/ui-cmd.js +10 -2
- package/dist/cli/ui-cmd.js.map +1 -1
- package/dist/cli/ui-gate-report.d.ts +57 -0
- package/dist/cli/ui-gate-report.d.ts.map +1 -0
- package/dist/cli/ui-gate-report.js +95 -0
- package/dist/cli/ui-gate-report.js.map +1 -0
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +20 -2
- package/dist/core/upstream-evidence-manifest.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-agy/plugin.json +1 -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-cursor/.claude-plugin/plugin.json +1 -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/ui/README.md +56 -3
- package/ui/index.html +52 -0
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The report's non-tabular sections.
|
|
3
|
+
*
|
|
4
|
+
* Three of them exist because a Lisa-shaped report describing only Lisa's own
|
|
5
|
+
* jobs invites the conclusion that it is the whole picture:
|
|
6
|
+
*
|
|
7
|
+
* - **What else gates my merges** answers "and where does it come from",
|
|
8
|
+
* separating a context Lisa governs from one Lisa ships that nothing
|
|
9
|
+
* declares from one that is not Lisa's at all. The third is neither the
|
|
10
|
+
* project's misconfiguration nor Lisa's defect and must be labelled as such.
|
|
11
|
+
* - **What runs on every edit** exists because the `pre-tool` column renders
|
|
12
|
+
* as a wall of "not legal here", which reads as "nothing happens here" when
|
|
13
|
+
* the truth is the more alarming state: things run here that nothing can
|
|
14
|
+
* govern.
|
|
15
|
+
* - **Not this project's** states Lisa's own unfixed limitations once, with a
|
|
16
|
+
* count and a ticket, instead of scattering them through the project's report
|
|
17
|
+
* as rows it appears to have failed.
|
|
18
|
+
* @module cli/gate-report-sections
|
|
19
|
+
*/
|
|
20
|
+
import { chip, code, escapeHtml } from "./gate-report-html.js";
|
|
21
|
+
/** How each context origin is headed, in the operator's words. */
|
|
22
|
+
const ORIGIN_LABELS = {
|
|
23
|
+
"lisa-governed": "Lisa's, and your settings govern it",
|
|
24
|
+
"lisa-undeclared": "Lisa's, and nothing declares it",
|
|
25
|
+
"project-workflow": "your own workflow",
|
|
26
|
+
"third-party": "not Lisa's and not yours",
|
|
27
|
+
};
|
|
28
|
+
/** The order the origins read in — most actionable first. */
|
|
29
|
+
const ORIGIN_ORDER = [
|
|
30
|
+
"lisa-undeclared",
|
|
31
|
+
"lisa-governed",
|
|
32
|
+
"project-workflow",
|
|
33
|
+
"third-party",
|
|
34
|
+
];
|
|
35
|
+
/**
|
|
36
|
+
* The sentence describing the unknown band, and whose it is.
|
|
37
|
+
*
|
|
38
|
+
* Split out of the summary because the attribution clause is the part that
|
|
39
|
+
* must not be lost: "fifty-two not checked here" reads as a project largely
|
|
40
|
+
* unverified, and "all fifty-two are one Lisa limitation" reads as what it is.
|
|
41
|
+
* @param s - The report's summary counts
|
|
42
|
+
* @returns One sentence of HTML
|
|
43
|
+
*/
|
|
44
|
+
function unknownBand(s) {
|
|
45
|
+
if (s.bucketUnknown === 0) {
|
|
46
|
+
return "Every one of them was classified in this run.";
|
|
47
|
+
}
|
|
48
|
+
const upstream = s.bucketUnknownUpstream === 0
|
|
49
|
+
? ""
|
|
50
|
+
: `, and <strong>${s.bucketUnknownUpstream}</strong> of them are one Lisa limitation rather than anything about this project`;
|
|
51
|
+
const owned = s.bucketUnknown - s.bucketUnknownUpstream;
|
|
52
|
+
const mine = owned === 0 ? "" : `, with <strong>${owned}</strong> this project's own`;
|
|
53
|
+
const label = chip("unknown", "not checked here");
|
|
54
|
+
return `The other <strong>${s.bucketUnknown}</strong> are ${label} — counted separately rather than added to anything green${upstream}${mine}.`;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* The header counts, each with its denominator and its unknown band.
|
|
58
|
+
* @param report - The whole report
|
|
59
|
+
* @returns A section of HTML
|
|
60
|
+
*/
|
|
61
|
+
export function summarySection(report) {
|
|
62
|
+
const s = report.summary;
|
|
63
|
+
const classified = s.buckets.A + s.buckets.B + s.buckets.C + s.buckets.D;
|
|
64
|
+
const unknownText = unknownBand(s);
|
|
65
|
+
return [
|
|
66
|
+
'<div class="lgr-stats">',
|
|
67
|
+
`<div class="lgr-stat"><b>${s.governedBySettings}</b><span>of ${s.gateCount} properties governed by the settings file</span></div>`,
|
|
68
|
+
`<div class="lgr-stat"><b>${s.provedAnyway}</b><span>proved anyway by a command written into a script</span></div>`,
|
|
69
|
+
`<div class="lgr-stat"><b>${s.declaredOffOnly}</b><span>mentioned only to be switched off</span></div>`,
|
|
70
|
+
`<div class="lgr-stat"><b>${s.notDeclared}</b><span>never mentioned at all</span></div>`,
|
|
71
|
+
"</div>",
|
|
72
|
+
`<p class="lgr-denominator"><strong>${classified} of ${s.legalCells}</strong> check-and-moment pairs were classified — A ${s.buckets.A} · B ${s.buckets.B} · C ${s.buckets.C} · D ${s.buckets.D}. ${unknownText}</p>`,
|
|
73
|
+
].join("");
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* The declaration-versus-ruleset comparison.
|
|
77
|
+
* @param report - The whole report
|
|
78
|
+
* @returns A section of HTML
|
|
79
|
+
*/
|
|
80
|
+
export function rulesetSection(report) {
|
|
81
|
+
if (report.ruleset.state !== "verified") {
|
|
82
|
+
return `<p class="lgr-note">Branch protection was not read this run — <strong>${escapeHtml(report.ruleset.reason)}</strong>. ${escapeHtml(report.ruleset.message)} Nothing below claims a check does or does not block a merge.</p>`;
|
|
83
|
+
}
|
|
84
|
+
const { matched, declaredNotRequired, requiredNotDeclared } = report.ruleset.value;
|
|
85
|
+
const list = (values) => values.length === 0
|
|
86
|
+
? "<li><em>none</em></li>"
|
|
87
|
+
: values.map(value => `<li>${code(value)}</li>`).join("");
|
|
88
|
+
return [
|
|
89
|
+
'<div class="lgr-cols">',
|
|
90
|
+
`<div><h3>Matched <span class="lgr-count">${matched.length}</span></h3><p>Declared <code>required</code>, and the ruleset requires it.</p><ul>${list(matched)}</ul></div>`,
|
|
91
|
+
`<div><h3>Declared, not required <span class="lgr-count">${declaredNotRequired.length}</span></h3><p>The settings file asks for it; the ruleset does not enforce it, so it blocks nothing.</p><ul>${list(declaredNotRequired)}</ul></div>`,
|
|
92
|
+
`<div class="lgr-sharp"><h3>Required, not declared <span class="lgr-count">${requiredNotDeclared.length}</span></h3><p>A merge is blocked on these, and <strong>no declaration governs them</strong>. Changing the settings file cannot turn them on, off, or into something else.</p><ul>${list(requiredNotDeclared)}</ul></div>`,
|
|
93
|
+
"</div>",
|
|
94
|
+
].join("");
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* One origin's group of required contexts.
|
|
98
|
+
* @param origin - The origin
|
|
99
|
+
* @param rows - Its contexts
|
|
100
|
+
* @returns A block of HTML, or an empty string when nothing has that origin
|
|
101
|
+
*/
|
|
102
|
+
function originGroup(origin, rows) {
|
|
103
|
+
if (rows.length === 0)
|
|
104
|
+
return "";
|
|
105
|
+
const items = rows.map(row => `<li>${code(row.context)}</li>`).join("");
|
|
106
|
+
const heading = escapeHtml(ORIGIN_LABELS[origin]);
|
|
107
|
+
const detail = escapeHtml(rows[0]?.detail ?? "");
|
|
108
|
+
return `<div class="lgr-origin lgr-origin-${escapeHtml(origin)}"><h3>${heading} <span class="lgr-count">${rows.length}</span></h3><p>${detail}</p><ul>${items}</ul></div>`;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Everything a merge is blocked on, grouped by who put it there.
|
|
112
|
+
* @param report - The whole report
|
|
113
|
+
* @returns A section of HTML
|
|
114
|
+
*/
|
|
115
|
+
export function requiredContextsSection(report) {
|
|
116
|
+
if (report.requiredContexts.state !== "verified") {
|
|
117
|
+
return `<p class="lgr-note">The repository's required checks were not read this run — <strong>${escapeHtml(report.requiredContexts.reason)}</strong>. ${escapeHtml(report.requiredContexts.message)} This is not a claim that nothing else gates your merges.</p>`;
|
|
118
|
+
}
|
|
119
|
+
const rows = report.requiredContexts.value;
|
|
120
|
+
if (rows.length === 0) {
|
|
121
|
+
return '<p class="lgr-note">The ruleset requires no status check at all, so nothing here blocks a merge — including everything above.</p>';
|
|
122
|
+
}
|
|
123
|
+
return `<div class="lgr-cols">${ORIGIN_ORDER.map(origin => originGroup(origin, rows.filter(row => row.origin === origin))).join("")}</div>`;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* What fires on every file an agent writes.
|
|
127
|
+
* @param report - The whole report
|
|
128
|
+
* @returns A section of HTML
|
|
129
|
+
*/
|
|
130
|
+
export function agentHooksSection(report) {
|
|
131
|
+
if (report.agentHooks.state !== "verified") {
|
|
132
|
+
return `<p class="lgr-note">Which hooks run on every edit was not determined this run — <strong>${escapeHtml(report.agentHooks.reason)}</strong>. ${escapeHtml(report.agentHooks.message)}</p>`;
|
|
133
|
+
}
|
|
134
|
+
const hooks = report.agentHooks.value;
|
|
135
|
+
if (hooks.length === 0) {
|
|
136
|
+
return '<p class="lgr-note">No enabled plugin registers a hook on the tools that write files, so nothing runs at this moment. That is a checked answer, not an absence of information.</p>';
|
|
137
|
+
}
|
|
138
|
+
return [
|
|
139
|
+
`<p class="lgr-lede"><strong>${hooks.length} script${hooks.length === 1 ? "" : "s"} run on every file an agent writes or edits.</strong> The <code>pre-tool</code> column above is empty because no check in Lisa's registry may be declared at this moment — not because nothing happens here. These are real enforcement, and your settings file has no say over any of them.</p>`,
|
|
140
|
+
'<div class="lgr-scroll"><table><thead><tr><th>Script</th><th>Fires at</th><th>On tools</th><th>From plugin</th><th>Governed by settings</th></tr></thead><tbody>',
|
|
141
|
+
hooks
|
|
142
|
+
.map(hook => `<tr><td>${code(hook.script)}</td><td>${escapeHtml(hook.event)}</td><td>${code(hook.matcher)}</td><td>${code(hook.plugin)}</td><td>${chip("bad", "no — not declarable")}</td></tr>`)
|
|
143
|
+
.join(""),
|
|
144
|
+
"</tbody></table></div>",
|
|
145
|
+
].join("");
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Lisa's own limitations, stated once each with a count and a ticket.
|
|
149
|
+
* @param report - The whole report
|
|
150
|
+
* @returns A section of HTML, or an empty string when there are none
|
|
151
|
+
*/
|
|
152
|
+
export function upstreamSection(report) {
|
|
153
|
+
if (report.upstream.length === 0) {
|
|
154
|
+
return '<p class="lgr-note">Nothing in this report was left unanswered by a limitation of Lisa itself.</p>';
|
|
155
|
+
}
|
|
156
|
+
const lede = report.projectIsUpstream
|
|
157
|
+
? "This project <em>is</em> Lisa, so these are yours to fix — this is the one place the list below is actionable."
|
|
158
|
+
: "These are limitations of Lisa, not of this project. Nothing you can change here fixes them, and none of them means anything is wrong with your project.";
|
|
159
|
+
return [
|
|
160
|
+
`<p class="lgr-lede">${lede}</p>`,
|
|
161
|
+
...report.upstream.map(limitation => `<div class="lgr-upstream"><h3>${escapeHtml(limitation.headline)}</h3><p>${escapeHtml(limitation.detail)}</p><p class="lgr-upstream-meta">Affects <strong>${limitation.affected}</strong> ${escapeHtml(limitation.unit)} in this report · tracked as ${code(limitation.ticket)}</p></div>`),
|
|
162
|
+
].join("");
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=gate-report-sections.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gate-report-sections.js","sourceRoot":"","sources":["../../src/cli/gate-report-sections.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The report's stylesheet, scoped so it cannot reach the console around it.
|
|
3
|
+
*
|
|
4
|
+
* Every selector is prefixed with `.lisa-gate-report` and every class with
|
|
5
|
+
* `lgr-`, because this markup is injected into a 13,000-line page that already
|
|
6
|
+
* owns names like `.chip`, `.state`, `.stat` and `.cols`. An unscoped rule
|
|
7
|
+
* would silently restyle tabs that have nothing to do with this report — and
|
|
8
|
+
* the report would in turn inherit whatever those pages define, which is the
|
|
9
|
+
* same bug pointing the other way.
|
|
10
|
+
*
|
|
11
|
+
* Colours come from the console's own tokens with dark fallbacks, so the tab
|
|
12
|
+
* follows the light/dark toggle rather than punching a dark rectangle into a
|
|
13
|
+
* light page. The standalone document defines the same token names, which is
|
|
14
|
+
* what lets one stylesheet serve both surfaces.
|
|
15
|
+
* @module cli/gate-report-style
|
|
16
|
+
*/
|
|
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";
|
|
19
|
+
//# sourceMappingURL=gate-report-style.d.ts.map
|
|
@@ -0,0 +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,stMA8E7B,CAAC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The report's stylesheet, scoped so it cannot reach the console around it.
|
|
3
|
+
*
|
|
4
|
+
* Every selector is prefixed with `.lisa-gate-report` and every class with
|
|
5
|
+
* `lgr-`, because this markup is injected into a 13,000-line page that already
|
|
6
|
+
* owns names like `.chip`, `.state`, `.stat` and `.cols`. An unscoped rule
|
|
7
|
+
* would silently restyle tabs that have nothing to do with this report — and
|
|
8
|
+
* the report would in turn inherit whatever those pages define, which is the
|
|
9
|
+
* same bug pointing the other way.
|
|
10
|
+
*
|
|
11
|
+
* Colours come from the console's own tokens with dark fallbacks, so the tab
|
|
12
|
+
* follows the light/dark toggle rather than punching a dark rectangle into a
|
|
13
|
+
* light page. The standalone document defines the same token names, which is
|
|
14
|
+
* what lets one stylesheet serve both surfaces.
|
|
15
|
+
* @module cli/gate-report-style
|
|
16
|
+
*/
|
|
17
|
+
/** The scoped stylesheet. */
|
|
18
|
+
export const GATE_REPORT_STYLE = `
|
|
19
|
+
.lisa-gate-report{
|
|
20
|
+
--lgr-ink:var(--ink,#e6e9f2);--lgr-dim:var(--muted,#98a0b5);--lgr-faint:var(--faint,#6b7280);
|
|
21
|
+
--lgr-panel:var(--surface,#161923);--lgr-panel2:var(--surface2,#1b2030);--lgr-line:var(--line,#252a38);
|
|
22
|
+
--lgr-accent:var(--accent,#58a6ff);--lgr-good:var(--good,#22773c);--lgr-good-soft:var(--good-soft,#123021);
|
|
23
|
+
--lgr-warn:var(--warn,#93610a);--lgr-warn-soft:var(--warn-soft,#3a2c12);
|
|
24
|
+
--lgr-crit:var(--crit,#b3372c);--lgr-crit-soft:var(--crit-soft,#3a1616);
|
|
25
|
+
--lgr-mono:var(--mono,ui-monospace,monospace);
|
|
26
|
+
color:var(--lgr-ink);font-size:14px;line-height:1.55}
|
|
27
|
+
.lisa-gate-report h2{font-size:18px;margin:34px 0 6px;padding-top:20px;border-top:1px solid var(--lgr-line)}
|
|
28
|
+
.lisa-gate-report h3{font-size:12.5px;margin:0 0 4px;text-transform:uppercase;letter-spacing:.06em;color:var(--lgr-dim)}
|
|
29
|
+
.lisa-gate-report p{margin:0 0 14px}
|
|
30
|
+
.lisa-gate-report .lgr-lede,.lisa-gate-report .lgr-sub{color:var(--lgr-dim);max-width:86ch}
|
|
31
|
+
.lisa-gate-report .lgr-stats{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0 12px}
|
|
32
|
+
.lisa-gate-report .lgr-stat{background:var(--lgr-panel);border:1px solid var(--lgr-line);
|
|
33
|
+
border-radius:10px;padding:12px 16px;min-width:170px}
|
|
34
|
+
.lisa-gate-report .lgr-stat b{display:block;font-size:26px;line-height:1.1}
|
|
35
|
+
.lisa-gate-report .lgr-stat span{color:var(--lgr-dim);font-size:12.5px}
|
|
36
|
+
.lisa-gate-report .lgr-denominator{background:var(--lgr-panel);border:1px solid var(--lgr-line);
|
|
37
|
+
border-left:3px solid var(--lgr-accent);border-radius:8px;padding:12px 16px;max-width:100ch}
|
|
38
|
+
.lisa-gate-report .lgr-legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin:14px 0;
|
|
39
|
+
color:var(--lgr-dim);font-size:12.5px}
|
|
40
|
+
.lisa-gate-report .lgr-legend>span{display:flex;align-items:center;gap:6px}
|
|
41
|
+
.lisa-gate-report .lgr-scroll{overflow-x:auto;border:1px solid var(--lgr-line);border-radius:10px}
|
|
42
|
+
.lisa-gate-report table{border-collapse:collapse;width:100%;font-size:12.5px;background:var(--lgr-panel)}
|
|
43
|
+
.lisa-gate-report th,.lisa-gate-report td{text-align:left;padding:9px 11px;
|
|
44
|
+
border-bottom:1px solid var(--lgr-line);vertical-align:top}
|
|
45
|
+
.lisa-gate-report th{background:var(--lgr-panel2);font-size:11px;text-transform:uppercase;
|
|
46
|
+
letter-spacing:.05em;color:var(--lgr-dim)}
|
|
47
|
+
.lisa-gate-report th.lgr-m,.lisa-gate-report td.lgr-m{text-align:center;white-space:nowrap}
|
|
48
|
+
.lisa-gate-report td.lgr-illegal{background:repeating-linear-gradient(45deg,transparent,transparent 5px,
|
|
49
|
+
var(--lgr-panel2) 5px,var(--lgr-panel2) 10px)}
|
|
50
|
+
.lisa-gate-report .lgr-gid{display:block;font-family:var(--lgr-mono);font-size:12px;color:var(--lgr-accent)}
|
|
51
|
+
.lisa-gate-report .lgr-glabel{display:block;color:var(--lgr-dim);font-size:12px}
|
|
52
|
+
.lisa-gate-report .lgr-offaxis{margin-top:4px;color:var(--lgr-faint);font-size:11px;font-style:italic}
|
|
53
|
+
.lisa-gate-report .lgr-proves{color:var(--lgr-dim);max-width:34ch}
|
|
54
|
+
.lisa-gate-report code{font-family:var(--lgr-mono);font-size:11.5px;background:var(--lgr-panel2);
|
|
55
|
+
border:1px solid var(--lgr-line);border-radius:4px;padding:1px 5px}
|
|
56
|
+
.lisa-gate-report .lgr-prov{margin-top:5px;font-size:11px;color:var(--lgr-dim)}
|
|
57
|
+
.lisa-gate-report .lgr-provword{font-weight:700;color:var(--lgr-ink)}
|
|
58
|
+
.lisa-gate-report .lgr-under{margin-top:4px;font-size:11px;color:var(--lgr-dim)}
|
|
59
|
+
.lisa-gate-report .lgr-tier3{margin-top:5px;font-size:11px;color:var(--lgr-faint)}
|
|
60
|
+
.lisa-gate-report .lgr-state{display:inline-block;font-size:11px;border-radius:5px;padding:2px 7px;font-weight:600}
|
|
61
|
+
.lisa-gate-report .lgr-required{background:var(--lgr-good-soft);color:var(--lgr-good)}
|
|
62
|
+
.lisa-gate-report .lgr-optional{background:var(--lgr-warn-soft);color:var(--lgr-warn)}
|
|
63
|
+
.lisa-gate-report .lgr-off{background:var(--lgr-crit-soft);color:var(--lgr-crit)}
|
|
64
|
+
.lisa-gate-report .lgr-undeclared{background:var(--lgr-panel2);color:var(--lgr-faint);border:1px dashed var(--lgr-line)}
|
|
65
|
+
.lisa-gate-report .lgr-chip{display:inline-block;margin-left:5px;font-size:10.5px;border-radius:4px;
|
|
66
|
+
padding:1px 5px;font-weight:600;vertical-align:1px}
|
|
67
|
+
.lisa-gate-report .lgr-b-A,.lisa-gate-report .lgr-ok,.lisa-gate-report .lgr-yes-merge{
|
|
68
|
+
background:var(--lgr-good-soft);color:var(--lgr-good)}
|
|
69
|
+
.lisa-gate-report .lgr-b-B,.lisa-gate-report .lgr-other-merge{background:var(--lgr-warn-soft);color:var(--lgr-warn)}
|
|
70
|
+
.lisa-gate-report .lgr-b-C,.lisa-gate-report .lgr-bad{background:var(--lgr-crit-soft);color:var(--lgr-crit)}
|
|
71
|
+
.lisa-gate-report .lgr-b-D,.lisa-gate-report .lgr-none,.lisa-gate-report .lgr-no-merge{
|
|
72
|
+
background:var(--lgr-panel2);color:var(--lgr-faint)}
|
|
73
|
+
.lisa-gate-report .lgr-foreign{background:var(--lgr-panel2);color:var(--lgr-accent);border:1px solid var(--lgr-accent)}
|
|
74
|
+
.lisa-gate-report .lgr-unknown{background:repeating-linear-gradient(45deg,var(--lgr-panel2),
|
|
75
|
+
var(--lgr-panel2) 3px,var(--lgr-panel) 3px,var(--lgr-panel) 6px);
|
|
76
|
+
color:var(--lgr-dim);border:1px dashed var(--lgr-line)}
|
|
77
|
+
.lisa-gate-report .lgr-note{background:repeating-linear-gradient(45deg,var(--lgr-panel2),
|
|
78
|
+
var(--lgr-panel2) 4px,var(--lgr-panel) 4px,var(--lgr-panel) 8px);
|
|
79
|
+
border:1px dashed var(--lgr-line);border-radius:8px;padding:14px 16px;color:var(--lgr-ink)}
|
|
80
|
+
.lisa-gate-report .lgr-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;margin-bottom:14px}
|
|
81
|
+
.lisa-gate-report .lgr-cols>div{background:var(--lgr-panel);border:1px solid var(--lgr-line);
|
|
82
|
+
border-radius:10px;padding:14px 16px}
|
|
83
|
+
.lisa-gate-report .lgr-sharp,.lisa-gate-report .lgr-origin-lisa-undeclared{border-color:var(--lgr-crit)}
|
|
84
|
+
.lisa-gate-report .lgr-origin-third-party{border-color:var(--lgr-accent)}
|
|
85
|
+
.lisa-gate-report .lgr-cols p{color:var(--lgr-dim);font-size:12px;margin:0 0 8px}
|
|
86
|
+
.lisa-gate-report .lgr-cols ul{margin:0;padding-left:18px}
|
|
87
|
+
.lisa-gate-report .lgr-cols li{margin:3px 0;font-size:12.5px}
|
|
88
|
+
.lisa-gate-report .lgr-count{float:right;color:var(--lgr-ink);font-size:13px}
|
|
89
|
+
.lisa-gate-report .lgr-upstream{background:var(--lgr-panel);border:1px solid var(--lgr-line);
|
|
90
|
+
border-left:3px solid var(--lgr-accent);border-radius:10px;padding:14px 16px;margin-bottom:12px}
|
|
91
|
+
.lisa-gate-report .lgr-upstream h3{text-transform:none;letter-spacing:0;font-size:14px;color:var(--lgr-ink)}
|
|
92
|
+
.lisa-gate-report .lgr-upstream p{color:var(--lgr-dim);font-size:12.5px}
|
|
93
|
+
.lisa-gate-report .lgr-upstream-meta{margin:0}
|
|
94
|
+
.lisa-gate-report .lgr-foot{margin-top:32px;padding-top:16px;border-top:1px solid var(--lgr-line);
|
|
95
|
+
color:var(--lgr-faint);font-size:12px}
|
|
96
|
+
`;
|
|
97
|
+
//# sourceMappingURL=gate-report-style.js.map
|
|
@@ -0,0 +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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8EhC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-report-summary.d.ts","sourceRoot":"","sources":["../../src/cli/gate-report-summary.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAGV,aAAa,EACb,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"gate-report-summary.d.ts","sourceRoot":"","sources":["../../src/cli/gate-report-summary.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAGV,aAAa,EACb,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAmEhC;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,SAAS,aAAa,EAAE,EAC9B,WAAW,EAAE,MAAM,GAClB,iBAAiB,CAwBnB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isUpstreamFinding } from "./gate-report-upstream.js";
|
|
1
2
|
/** Levels that put a gate into service. */
|
|
2
3
|
const ACTIVE_LEVELS = new Set(["required", "optional"]);
|
|
3
4
|
/**
|
|
@@ -73,6 +74,8 @@ export function summarise(rows, momentCount) {
|
|
|
73
74
|
},
|
|
74
75
|
bucketUnknown: cells.filter(cell => cell.bucket.state !== "verified")
|
|
75
76
|
.length,
|
|
77
|
+
bucketUnknownUpstream: cells.filter(cell => isUpstreamFinding(cell.bucket))
|
|
78
|
+
.length,
|
|
76
79
|
declaredWithoutCommand: cells.filter(isDeclaredWithoutCommand).length,
|
|
77
80
|
provedAnyway: cells.filter(isProvedAnyway).length,
|
|
78
81
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-report-summary.js","sourceRoot":"","sources":["../../src/cli/gate-report-summary.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gate-report-summary.js","sourceRoot":"","sources":["../../src/cli/gate-report-summary.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* @module cli/gate-report-types
|
|
16
16
|
*/
|
|
17
17
|
/** Report format version, bumped when a consumer would have to change. */
|
|
18
|
-
export declare const GATE_REPORT_VERSION =
|
|
18
|
+
export declare const GATE_REPORT_VERSION = 2;
|
|
19
19
|
/**
|
|
20
20
|
* One fact, in one of the three states.
|
|
21
21
|
*
|
|
@@ -110,6 +110,22 @@ export interface GateMomentCell {
|
|
|
110
110
|
/** A, B, C, D, or an explicit refusal to classify. */
|
|
111
111
|
readonly bucket: Finding<Bucket>;
|
|
112
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* Whether this gate stands between a change and a merge.
|
|
115
|
+
*
|
|
116
|
+
* Three answers, not two, and the middle one is what the column exists for.
|
|
117
|
+
* A property proved inside a job named after a different gate still blocks the
|
|
118
|
+
* merge — but a red build then names a property that did not fail, and the
|
|
119
|
+
* report that collapses that into "yes" cannot surface the class at all.
|
|
120
|
+
*/
|
|
121
|
+
export interface MergeVerdict {
|
|
122
|
+
/** Whether it blocks, and under whose name. */
|
|
123
|
+
readonly verdict: "yes" | "yes-under-another-name" | "no";
|
|
124
|
+
/** The required context doing the blocking, when there is one. */
|
|
125
|
+
readonly context: string | null;
|
|
126
|
+
/** The job whose name it blocks under, when that is not this gate's own. */
|
|
127
|
+
readonly underJob: string | null;
|
|
128
|
+
}
|
|
113
129
|
/** One registry gate, with a cell for every moment on the report's axis. */
|
|
114
130
|
export interface GateReportRow {
|
|
115
131
|
/** Registry id. */
|
|
@@ -136,6 +152,14 @@ export interface GateReportRow {
|
|
|
136
152
|
readonly qualityJob: string | null;
|
|
137
153
|
/** One cell per moment on the report's axis, in axis order. */
|
|
138
154
|
readonly moments: readonly GateMomentCell[];
|
|
155
|
+
/**
|
|
156
|
+
* Whether a merge is blocked on this gate — Tier 2 joined with the workflow.
|
|
157
|
+
*
|
|
158
|
+
* Row-level rather than per-cell because a ruleset guards a merge and only
|
|
159
|
+
* the merge moment produces the contexts it names; asking it of `commit`
|
|
160
|
+
* would be asking a question that has no answer by construction.
|
|
161
|
+
*/
|
|
162
|
+
readonly merge: Finding<MergeVerdict>;
|
|
139
163
|
}
|
|
140
164
|
/** One `skip_jobs` token the project still forwards, and its migration. */
|
|
141
165
|
export interface SkipJobRow {
|
|
@@ -175,6 +199,15 @@ export interface GateReportSummary {
|
|
|
175
199
|
readonly buckets: Readonly<Record<Bucket, number>>;
|
|
176
200
|
/** Pairs this run declined to classify. Never folded into D. */
|
|
177
201
|
readonly bucketUnknown: number;
|
|
202
|
+
/**
|
|
203
|
+
* Of those, the ones an upstream limitation accounts for.
|
|
204
|
+
*
|
|
205
|
+
* Not a softening: the pair is still unclassified and still counts into
|
|
206
|
+
* `bucketUnknown`. It is the difference between telling an operator their
|
|
207
|
+
* project is largely unverified and telling them one upstream defect with a
|
|
208
|
+
* ticket number affects this many rows.
|
|
209
|
+
*/
|
|
210
|
+
readonly bucketUnknownUpstream: number;
|
|
178
211
|
/** Declared pairs whose task is missing from `package.json` — bucket C. */
|
|
179
212
|
readonly declaredWithoutCommand: number;
|
|
180
213
|
/** Undeclared pairs proved anyway by a command written into a script. */
|
|
@@ -200,7 +233,105 @@ export interface GateReport {
|
|
|
200
233
|
readonly skipJobs: Finding<readonly SkipJobRow[]>;
|
|
201
234
|
/** Declared contexts against the live ruleset — Tier 2. */
|
|
202
235
|
readonly ruleset: Finding<RulesetComparison>;
|
|
236
|
+
/**
|
|
237
|
+
* Every context a merge is blocked on, with who owns it.
|
|
238
|
+
*
|
|
239
|
+
* A Lisa-shaped report describing only Lisa's own jobs invites the
|
|
240
|
+
* conclusion that it is the whole picture of what gates this work. It is
|
|
241
|
+
* not: a project's CI almost always carries jobs Lisa neither ships nor
|
|
242
|
+
* governs, and some of them block merges.
|
|
243
|
+
*/
|
|
244
|
+
readonly requiredContexts: Finding<readonly RequiredContextRow[]>;
|
|
245
|
+
/** Agent hooks proved active at `pre-tool`, or why they could not be read. */
|
|
246
|
+
readonly agentHooks: Finding<readonly AgentHookEvidence[]>;
|
|
247
|
+
/** Which workflow files answered Tier 3, and whether `quality.yml` was one. */
|
|
248
|
+
readonly facadeSource: FacadeSource;
|
|
249
|
+
/**
|
|
250
|
+
* Limitations of Lisa itself, each stated once with the count it affects.
|
|
251
|
+
*
|
|
252
|
+
* Empty is the goal state. Every entry here is a row this report could not
|
|
253
|
+
* answer for a reason that is not the project's doing.
|
|
254
|
+
*/
|
|
255
|
+
readonly upstream: readonly UpstreamLimitation[];
|
|
256
|
+
/**
|
|
257
|
+
* Whether the project being reported on IS Lisa.
|
|
258
|
+
*
|
|
259
|
+
* Lisa is both a project and the upstream, so its own run is the one place
|
|
260
|
+
* the upstream section is actionable rather than merely explanatory.
|
|
261
|
+
*/
|
|
262
|
+
readonly projectIsUpstream: boolean;
|
|
203
263
|
/** Counts. */
|
|
204
264
|
readonly summary: GateReportSummary;
|
|
205
265
|
}
|
|
266
|
+
/**
|
|
267
|
+
* Who owns a finding the report could not turn into a pass.
|
|
268
|
+
*
|
|
269
|
+
* The report has two audiences and they are not the same person. A consumer
|
|
270
|
+
* asks "what is wrong with MY project, that I can fix"; showing them Lisa's
|
|
271
|
+
* own unfixed defect as fifty-two blanks in their report tells them their
|
|
272
|
+
* project is largely unverified when nothing about it is at fault.
|
|
273
|
+
*
|
|
274
|
+
* Attribution, never suppression. A finding is reattributed away from the
|
|
275
|
+
* project only when it is provably not the project's — a missing script, an
|
|
276
|
+
* absent declaration or an unrunnable command stays firmly in the project's
|
|
277
|
+
* view however unflattering, and no reattribution ever turns a row green.
|
|
278
|
+
*/
|
|
279
|
+
export type Attribution = "project" | "lisa" | "third-party";
|
|
280
|
+
/**
|
|
281
|
+
* One limitation of Lisa itself, stated once rather than per affected cell.
|
|
282
|
+
*
|
|
283
|
+
* "Fifty-two not checked here" is the wrong unit. It is ONE upstream
|
|
284
|
+
* limitation affecting fifty-two cells, and it has a ticket number.
|
|
285
|
+
*/
|
|
286
|
+
export interface UpstreamLimitation {
|
|
287
|
+
/** The machine `reason` the affected findings carry. */
|
|
288
|
+
readonly reason: string;
|
|
289
|
+
/** The upstream issue that closes it. */
|
|
290
|
+
readonly ticket: string;
|
|
291
|
+
/** One operator-readable sentence naming the limitation. */
|
|
292
|
+
readonly headline: string;
|
|
293
|
+
/** Why the report cannot answer, and what closing it would change. */
|
|
294
|
+
readonly detail: string;
|
|
295
|
+
/** How many things in THIS report it affects. */
|
|
296
|
+
readonly affected: number;
|
|
297
|
+
/** What those things are — checks, scripts — so the count reads as a fact. */
|
|
298
|
+
readonly unit: string;
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* One agent hook proved installed and active on this machine.
|
|
302
|
+
*
|
|
303
|
+
* These fire on every file an agent writes or edits — the `pre-tool` moment —
|
|
304
|
+
* and no gate can be declared there at all, so nothing in a settings file can
|
|
305
|
+
* govern, tune or switch them off. A `pre-tool` column rendered as a wall of
|
|
306
|
+
* "not legal here" reads as "nothing happens here", and the truth is the more
|
|
307
|
+
* alarming state: things run here that nothing can govern.
|
|
308
|
+
*/
|
|
309
|
+
export interface AgentHookEvidence {
|
|
310
|
+
/** The enabled plugin supplying it, as the settings file spells it. */
|
|
311
|
+
readonly plugin: string;
|
|
312
|
+
/** The harness event it is registered on. */
|
|
313
|
+
readonly event: string;
|
|
314
|
+
/** The tool matcher it fires for. */
|
|
315
|
+
readonly matcher: string;
|
|
316
|
+
/** The script's file name. Never an absolute path — those differ per machine. */
|
|
317
|
+
readonly script: string;
|
|
318
|
+
}
|
|
319
|
+
/** Where a required status context comes from. */
|
|
320
|
+
export type ContextOrigin = "lisa-governed" | "lisa-undeclared" | "project-workflow" | "third-party";
|
|
321
|
+
/** One context a merge is actually blocked on, and who put it there. */
|
|
322
|
+
export interface RequiredContextRow {
|
|
323
|
+
/** The context string, exactly as the ruleset names it. */
|
|
324
|
+
readonly context: string;
|
|
325
|
+
/** Who owns it. */
|
|
326
|
+
readonly origin: ContextOrigin;
|
|
327
|
+
/** Operator-readable sentence saying what that means here. */
|
|
328
|
+
readonly detail: string;
|
|
329
|
+
}
|
|
330
|
+
/** Whether a project's own CI holds the workflow Tier 3 is written in. */
|
|
331
|
+
export interface FacadeSource {
|
|
332
|
+
/** True when `.github/workflows/quality.yml` was read this run. */
|
|
333
|
+
readonly present: boolean;
|
|
334
|
+
/** Workflow files scanned for façade resolve steps, project-relative. */
|
|
335
|
+
readonly files: readonly string[];
|
|
336
|
+
}
|
|
206
337
|
//# sourceMappingURL=gate-report-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-report-types.d.ts","sourceRoot":"","sources":["../../src/cli/gate-report-types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"gate-report-types.d.ts","sourceRoot":"","sources":["../../src/cli/gate-report-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Findings this report cannot answer that are not the project's doing.
|
|
3
|
+
*
|
|
4
|
+
* The report has two audiences and they are not the same person. A consumer
|
|
5
|
+
* project is asking "what is wrong with MY project, that I can fix". Rendering
|
|
6
|
+
* one unfixed Lisa defect as fifty-two blanks in their report tells them their
|
|
7
|
+
* project is largely unverified when nothing about it is at fault, and the
|
|
8
|
+
* next thing they do is go looking for a problem they do not have.
|
|
9
|
+
*
|
|
10
|
+
* "Fifty-two not checked here" is the wrong unit. It is ONE upstream
|
|
11
|
+
* limitation affecting fifty-two cells, and it has a ticket number. So the
|
|
12
|
+
* cells stay exactly as unknown as they were — the three-state rule is
|
|
13
|
+
* untouched, and nothing here turns a row green — and the report additionally
|
|
14
|
+
* says who owns them.
|
|
15
|
+
*
|
|
16
|
+
* Attribution, never suppression. Only a reason listed here is reattributed,
|
|
17
|
+
* and every reason listed here is provably Lisa's. A project's own missing
|
|
18
|
+
* script, absent declaration or unreadable settings file carries a reason that
|
|
19
|
+
* is NOT in this table and stays firmly in the project's view, however
|
|
20
|
+
* unflattering.
|
|
21
|
+
* @module cli/gate-report-upstream
|
|
22
|
+
*/
|
|
23
|
+
import type { AgentHookEvidence, Finding, GateReportRow, UpstreamLimitation } from "./gate-report-types.js";
|
|
24
|
+
/** One limitation, before this report's counts are attached. */
|
|
25
|
+
interface UpstreamCatalogEntry {
|
|
26
|
+
/** The upstream issue that closes it. */
|
|
27
|
+
readonly ticket: string;
|
|
28
|
+
/** One sentence naming the limitation. */
|
|
29
|
+
readonly headline: string;
|
|
30
|
+
/** Why the report cannot answer, and what closing it would change. */
|
|
31
|
+
readonly detail: string;
|
|
32
|
+
/** What the count counts. */
|
|
33
|
+
readonly unit: string;
|
|
34
|
+
}
|
|
35
|
+
/** The moment agent hooks fire at, which no gate can be declared at. */
|
|
36
|
+
export declare const PRE_TOOL = "pre-tool";
|
|
37
|
+
/** The synthetic reason the `pre-tool` limitation is filed under. */
|
|
38
|
+
export declare const PRE_TOOL_REASON = "pre-tool-not-declarable";
|
|
39
|
+
/**
|
|
40
|
+
* Every machine reason that belongs to Lisa rather than to the project.
|
|
41
|
+
*
|
|
42
|
+
* Keyed by the exact `reason` string the findings carry, so a reason has to be
|
|
43
|
+
* added here deliberately. A typo attributes nothing, which is the safe
|
|
44
|
+
* direction: an unattributed finding stays in the project's view.
|
|
45
|
+
*/
|
|
46
|
+
export declare const UPSTREAM_LIMITATIONS: Readonly<Record<string, UpstreamCatalogEntry>>;
|
|
47
|
+
/**
|
|
48
|
+
* Whether a finding's unknown is one Lisa owns.
|
|
49
|
+
* @param finding - Any finding
|
|
50
|
+
* @returns True when it carries an upstream-owned reason
|
|
51
|
+
*/
|
|
52
|
+
export declare function isUpstreamFinding(finding: Finding<unknown>): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Build the upstream section for one report.
|
|
55
|
+
*
|
|
56
|
+
* Empty is the goal state, and an entry only appears when this report actually
|
|
57
|
+
* hit it — a limitation affecting nothing here is not reported here.
|
|
58
|
+
* @param options - Report inputs
|
|
59
|
+
* @param options.rows - Every gate row
|
|
60
|
+
* @param options.agentHooks - Edit-time hooks proved active
|
|
61
|
+
* @param options.preToolLegalGates - Gates the registry permits at `pre-tool`
|
|
62
|
+
* @returns The limitations, sorted by ticket for a stable payload
|
|
63
|
+
*/
|
|
64
|
+
export declare function collectUpstream(options: {
|
|
65
|
+
rows: readonly GateReportRow[];
|
|
66
|
+
agentHooks: Finding<readonly AgentHookEvidence[]>;
|
|
67
|
+
preToolLegalGates: number;
|
|
68
|
+
}): UpstreamLimitation[];
|
|
69
|
+
export {};
|
|
70
|
+
//# sourceMappingURL=gate-report-upstream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gate-report-upstream.d.ts","sourceRoot":"","sources":["../../src/cli/gate-report-upstream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EACV,iBAAiB,EACjB,OAAO,EACP,aAAa,EACb,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAEhC,gEAAgE;AAChE,UAAU,oBAAoB;IAC5B,yCAAyC;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,sEAAsE;IACtE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,6BAA6B;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,wEAAwE;AACxE,eAAO,MAAM,QAAQ,aAAa,CAAC;AAEnC,qEAAqE;AACrE,eAAO,MAAM,eAAe,4BAA4B,CAAC;AAEzD;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CACzC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAkBrC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAKpE;AA6BD;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE;IACvC,IAAI,EAAE,SAAS,aAAa,EAAE,CAAC;IAC/B,UAAU,EAAE,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC,CAAC;IAClD,iBAAiB,EAAE,MAAM,CAAC;CAC3B,GAAG,kBAAkB,EAAE,CA6BvB"}
|