@codyswann/lisa 3.48.7 → 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.
Files changed (141) hide show
  1. package/dist/cli/doctor-hook-copy-parity.d.ts +8 -0
  2. package/dist/cli/doctor-hook-copy-parity.d.ts.map +1 -0
  3. package/dist/cli/doctor-hook-copy-parity.js +121 -0
  4. package/dist/cli/doctor-hook-copy-parity.js.map +1 -0
  5. package/dist/cli/doctor.d.ts.map +1 -1
  6. package/dist/cli/doctor.js +6 -0
  7. package/dist/cli/doctor.js.map +1 -1
  8. package/dist/cli/gate-report-agent-hooks.d.ts +40 -0
  9. package/dist/cli/gate-report-agent-hooks.d.ts.map +1 -0
  10. package/dist/cli/gate-report-agent-hooks.js +226 -0
  11. package/dist/cli/gate-report-agent-hooks.js.map +1 -0
  12. package/dist/cli/gate-report-assemble.d.ts +37 -0
  13. package/dist/cli/gate-report-assemble.d.ts.map +1 -0
  14. package/dist/cli/gate-report-assemble.js +69 -0
  15. package/dist/cli/gate-report-assemble.js.map +1 -0
  16. package/dist/cli/gate-report-cells.d.ts +27 -2
  17. package/dist/cli/gate-report-cells.d.ts.map +1 -1
  18. package/dist/cli/gate-report-cells.js +59 -14
  19. package/dist/cli/gate-report-cells.js.map +1 -1
  20. package/dist/cli/gate-report-contexts.d.ts +70 -0
  21. package/dist/cli/gate-report-contexts.d.ts.map +1 -0
  22. package/dist/cli/gate-report-contexts.js +72 -0
  23. package/dist/cli/gate-report-contexts.js.map +1 -0
  24. package/dist/cli/gate-report-facade.d.ts +62 -0
  25. package/dist/cli/gate-report-facade.d.ts.map +1 -0
  26. package/dist/cli/gate-report-facade.js +224 -0
  27. package/dist/cli/gate-report-facade.js.map +1 -0
  28. package/dist/cli/gate-report-fragment.d.ts +11 -0
  29. package/dist/cli/gate-report-fragment.d.ts.map +1 -0
  30. package/dist/cli/gate-report-fragment.js +100 -0
  31. package/dist/cli/gate-report-fragment.js.map +1 -0
  32. package/dist/cli/gate-report-html.d.ts +47 -0
  33. package/dist/cli/gate-report-html.d.ts.map +1 -0
  34. package/dist/cli/gate-report-html.js +49 -0
  35. package/dist/cli/gate-report-html.js.map +1 -0
  36. package/dist/cli/gate-report-joins.d.ts +37 -0
  37. package/dist/cli/gate-report-joins.d.ts.map +1 -0
  38. package/dist/cli/gate-report-joins.js +104 -0
  39. package/dist/cli/gate-report-joins.js.map +1 -0
  40. package/dist/cli/gate-report-merge.d.ts +22 -0
  41. package/dist/cli/gate-report-merge.d.ts.map +1 -0
  42. package/dist/cli/gate-report-merge.js +79 -0
  43. package/dist/cli/gate-report-merge.js.map +1 -0
  44. package/dist/cli/gate-report-preview.d.ts +0 -18
  45. package/dist/cli/gate-report-preview.d.ts.map +1 -1
  46. package/dist/cli/gate-report-preview.js +35 -266
  47. package/dist/cli/gate-report-preview.js.map +1 -1
  48. package/dist/cli/gate-report-rows.d.ts +39 -0
  49. package/dist/cli/gate-report-rows.d.ts.map +1 -0
  50. package/dist/cli/gate-report-rows.js +209 -0
  51. package/dist/cli/gate-report-rows.js.map +1 -0
  52. package/dist/cli/gate-report-sections.d.ts +32 -0
  53. package/dist/cli/gate-report-sections.d.ts.map +1 -0
  54. package/dist/cli/gate-report-sections.js +164 -0
  55. package/dist/cli/gate-report-sections.js.map +1 -0
  56. package/dist/cli/gate-report-style.d.ts +19 -0
  57. package/dist/cli/gate-report-style.d.ts.map +1 -0
  58. package/dist/cli/gate-report-style.js +97 -0
  59. package/dist/cli/gate-report-style.js.map +1 -0
  60. package/dist/cli/gate-report-summary.d.ts.map +1 -1
  61. package/dist/cli/gate-report-summary.js +3 -0
  62. package/dist/cli/gate-report-summary.js.map +1 -1
  63. package/dist/cli/gate-report-types.d.ts +132 -1
  64. package/dist/cli/gate-report-types.d.ts.map +1 -1
  65. package/dist/cli/gate-report-types.js +1 -1
  66. package/dist/cli/gate-report-upstream.d.ts +70 -0
  67. package/dist/cli/gate-report-upstream.d.ts.map +1 -0
  68. package/dist/cli/gate-report-upstream.js +90 -0
  69. package/dist/cli/gate-report-upstream.js.map +1 -0
  70. package/dist/cli/gate-report.d.ts +2 -0
  71. package/dist/cli/gate-report.d.ts.map +1 -1
  72. package/dist/cli/gate-report.js +98 -140
  73. package/dist/cli/gate-report.js.map +1 -1
  74. package/dist/cli/ui-cmd.d.ts +4 -0
  75. package/dist/cli/ui-cmd.d.ts.map +1 -1
  76. package/dist/cli/ui-cmd.js +10 -2
  77. package/dist/cli/ui-cmd.js.map +1 -1
  78. package/dist/cli/ui-gate-report.d.ts +57 -0
  79. package/dist/cli/ui-gate-report.d.ts.map +1 -0
  80. package/dist/cli/ui-gate-report.js +95 -0
  81. package/dist/cli/ui-gate-report.js.map +1 -0
  82. package/dist/core/hook-copy-parity.d.ts +81 -0
  83. package/dist/core/hook-copy-parity.d.ts.map +1 -0
  84. package/dist/core/hook-copy-parity.js +111 -0
  85. package/dist/core/hook-copy-parity.js.map +1 -0
  86. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
  87. package/dist/core/upstream-evidence-manifest.js +28 -2
  88. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  89. package/package.json +1 -1
  90. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  91. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  92. package/plugins/lisa-agy/plugin.json +1 -1
  93. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  94. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  95. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  96. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  97. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  98. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  99. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  100. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  101. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  102. package/plugins/lisa-expo-agy/plugin.json +1 -1
  103. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  104. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  105. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  106. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  107. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  108. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  109. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  110. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  111. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  112. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  113. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  114. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  115. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  116. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  117. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  118. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  119. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  120. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  121. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  122. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  123. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  124. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  125. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  126. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  127. package/plugins/lisa-rails-agy/plugin.json +1 -1
  128. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  129. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  130. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  131. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  132. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  133. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  134. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  135. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  136. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  137. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  138. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  139. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  140. package/ui/README.md +56 -3
  141. package/ui/index.html +52 -0
@@ -19,10 +19,15 @@
19
19
  */
20
20
  import { readFile } from "node:fs/promises";
21
21
  import * as path from "node:path";
22
- import { buildCell } from "./gate-report-cells.js";
23
- import { collectHookEvidence } from "./gate-report-executors.js";
22
+ import { collectAgentHooks } from "./gate-report-agent-hooks.js";
23
+ import { buildRow, invertJobTable, } from "./gate-report-assemble.js";
24
+ import { collectHookEvidence, } from "./gate-report-executors.js";
25
+ import { facadeFinding, facadeSourceOf, readFacadeFacts, } from "./gate-report-facade.js";
26
+ import { mergeVerdict } from "./gate-report-merge.js";
27
+ import { collectUpstream, PRE_TOOL } from "./gate-report-upstream.js";
24
28
  import { loadGateRegistry, } from "./gate-report-registry.js";
25
- import { compareContexts, defaultRequiredContextsReader, readRequiredContexts, } from "./gate-report-ruleset.js";
29
+ import { buildRequiredContexts, buildRulesetFinding, mergeBlockResolver, } from "./gate-report-joins.js";
30
+ import { defaultRequiredContextsReader, readRequiredContexts, } from "./gate-report-ruleset.js";
26
31
  import { buildSkipJobRows, defaultSkipJobTokensReader, } from "./gate-report-skip-jobs.js";
27
32
  import { readConfig } from "./gate-report-config.js";
28
33
  import { summarise } from "./gate-report-summary.js";
@@ -31,6 +36,8 @@ import { GATE_REPORT_VERSION, } from "./gate-report-types.js";
31
36
  const QUALITY_WORKFLOW_NAME = "🔍 Quality Checks";
32
37
  /** The moment a ruleset guards, and the one `quality.yml` defaults to. */
33
38
  const MERGE_MOMENT = "pull-request";
39
+ /** The package this repository publishes as, for the upstream self-check. */
40
+ const LISA_PACKAGE_NAME = "@codyswann/lisa";
34
41
  /**
35
42
  * Read `package.json` scripts, distinguishing absent from unreadable.
36
43
  * @param projectRoot - Project root
@@ -107,131 +114,6 @@ function resolveOneMoment(registry, gates, runner, moment) {
107
114
  };
108
115
  }
109
116
  }
110
- /**
111
- * The Tier 2 answer for one cell, never defaulted to a verdict.
112
- * @param contexts - The live required contexts, or an unknown
113
- * @returns A resolver for one cell's expected context
114
- */
115
- function mergeBlockResolver(contexts) {
116
- return (moment, expectedContext) => {
117
- if (moment !== MERGE_MOMENT) {
118
- return {
119
- state: "not-applicable",
120
- reason: "moment-produces-no-merge-context",
121
- message: `A ruleset guards a merge, and only the ${MERGE_MOMENT} gate set produces the status contexts it names. A declaration at ${moment} is enforced by a hook, not by branch protection.`,
122
- };
123
- }
124
- if (expectedContext === null) {
125
- return {
126
- state: "not-applicable",
127
- reason: "no-required-declaration",
128
- message: "Only a `required` declaration produces a status context, so there is nothing here for a ruleset to require.",
129
- };
130
- }
131
- if (contexts.state !== "verified")
132
- return contexts;
133
- return {
134
- state: "verified",
135
- value: {
136
- required: contexts.value.includes(expectedContext),
137
- context: contexts.value.includes(expectedContext)
138
- ? expectedContext
139
- : null,
140
- },
141
- };
142
- };
143
- }
144
- /**
145
- * Build one gate's row.
146
- * @param context - Report-wide cell inputs
147
- * @param moments - Per-moment resolution results, in axis order
148
- * @param id - Gate id
149
- * @param jobForGate - Gate id -> `quality.yml` job
150
- * @returns The row
151
- */
152
- function buildRow(context, moments, id, jobForGate) {
153
- const definition = context.registry.REGISTRY[id];
154
- const cells = moments.map(moment => buildCell(context, moment, id));
155
- return {
156
- id,
157
- label: definition?.label ?? id,
158
- summary: definition?.summary ?? "",
159
- legalMoments: [...(definition?.moments ?? [])].sort((left, right) => left.localeCompare(right)),
160
- defaultTask: definition?.task ?? null,
161
- taskAt: { ...definition?.taskAt },
162
- projectTask: projectLevelTask(context.gates, id),
163
- mayRewrite: definition?.mayRewrite === true,
164
- costly: definition?.costly === true,
165
- interceptor: context.registry.INTERCEPTORS[id] ?? null,
166
- qualityJob: jobForGate.get(id) ?? null,
167
- moments: cells,
168
- };
169
- }
170
- /**
171
- * A gate-level `run` override from the settings file.
172
- * @param gates - The gates block
173
- * @param id - Gate id
174
- * @returns The task, or null
175
- */
176
- function projectLevelTask(gates, id) {
177
- const gate = gates[id];
178
- if (typeof gate !== "object" || gate === null)
179
- return null;
180
- const run = Reflect.get(gate, "run");
181
- return typeof run === "string" ? run : null;
182
- }
183
- /**
184
- * Invert the static job table so a gate can name its CI job.
185
- * @param registry - The shipped registry
186
- * @returns Gate id -> job id
187
- */
188
- function invertJobTable(registry) {
189
- // Reversed before the Map is built so that when two jobs name one gate the
190
- // FIRST in declaration order wins, which is the order the table reads in.
191
- return new Map(Object.entries(registry.QUALITY_JOB_GATES)
192
- .map(([job, gate]) => [gate, job])
193
- .reverse());
194
- }
195
- /**
196
- * The contexts a gates block implies at the merge moment.
197
- * @param registry - The shipped registry
198
- * @param gates - The gates block
199
- * @returns The contexts, or null when the block cannot be resolved
200
- */
201
- function declaredContexts(registry, gates) {
202
- try {
203
- return registry.contextsFor(gates, {
204
- moment: MERGE_MOMENT,
205
- workflowName: QUALITY_WORKFLOW_NAME,
206
- });
207
- }
208
- catch {
209
- return null;
210
- }
211
- }
212
- /**
213
- * The ruleset comparison, or the same unknown the contexts came back with.
214
- * @param registry - The shipped registry
215
- * @param gates - The gates block
216
- * @param contexts - Live required contexts, or an unknown
217
- * @returns The comparison
218
- */
219
- function buildRulesetFinding(registry, gates, contexts) {
220
- if (contexts.state !== "verified")
221
- return contexts;
222
- const declared = declaredContexts(registry, gates);
223
- if (declared === null) {
224
- return {
225
- state: "unknown",
226
- reason: "declarations-unresolvable",
227
- message: "The gates block could not be resolved, so the contexts it implies cannot be compared with the ruleset.",
228
- };
229
- }
230
- return {
231
- state: "verified",
232
- value: compareContexts(declared, contexts.value),
233
- };
234
- }
235
117
  /**
236
118
  * The report emitted when the shipped registry cannot be found.
237
119
  * @returns A report that claims nothing
@@ -252,23 +134,60 @@ function registryMissingReport() {
252
134
  gates: [],
253
135
  skipJobs: missing,
254
136
  ruleset: missing,
137
+ requiredContexts: missing,
138
+ agentHooks: missing,
139
+ facadeSource: { present: false, files: [] },
140
+ upstream: [],
141
+ projectIsUpstream: false,
255
142
  summary: summarise([], 0),
256
143
  };
257
144
  }
258
145
  /**
259
- * Build the gate report for one project.
146
+ * Whether the project being reported on is Lisa itself.
147
+ *
148
+ * Lisa is both a project and the upstream, so its own run is the one place the
149
+ * upstream section is actionable rather than merely explanatory. Read from the
150
+ * package name rather than from a path, because a path differs per machine and
151
+ * a checkout can be called anything.
152
+ * @param projectRoot - Project root
153
+ * @returns True when this checkout is the Lisa package
154
+ */
155
+ async function readProjectIsUpstream(projectRoot) {
156
+ const source = await readFile(path.join(projectRoot, "package.json"), "utf8").catch(() => undefined);
157
+ if (source === undefined)
158
+ return false;
159
+ try {
160
+ const parsed = JSON.parse(source);
161
+ return (parsed !== null &&
162
+ typeof parsed === "object" &&
163
+ Reflect.get(parsed, "name") === LISA_PACKAGE_NAME);
164
+ }
165
+ catch {
166
+ return false;
167
+ }
168
+ }
169
+ /**
170
+ * Gates the registry permits declaring at the agent-edit moment.
171
+ * @param registry - The shipped registry
172
+ * @returns How many registry entries list `pre-tool` in their moments
173
+ */
174
+ function preToolLegalGates(registry) {
175
+ return Object.values(registry.REGISTRY).filter(gate => gate.moments.includes(PRE_TOOL)).length;
176
+ }
177
+ /**
178
+ * Every input the report is derived from, read once and in parallel.
179
+ *
180
+ * One place, so a new input is a line here rather than a new sequential await
181
+ * buried in the assembly — and so the one call that reaches the network stays
182
+ * visible beside the six that do not.
183
+ * @param registry - The shipped registry
260
184
  * @param options - Report inputs
261
- * @returns The report
185
+ * @returns Scripts, hooks, contexts, skip jobs, workflows, agent hooks, and
186
+ * whether this project is Lisa
262
187
  */
263
- export async function buildGateReport(options) {
264
- const registry = await loadGateRegistry();
265
- if (registry === null)
266
- return registryMissingReport();
188
+ async function readInputs(registry, options) {
267
189
  const { projectRoot } = options;
268
- const parsed = readConfig(registry, projectRoot);
269
- const gates = parsed.gates;
270
- const axis = momentAxis(registry, gates);
271
- const [scripts, hooks, contexts, skipJobs] = await Promise.all([
190
+ return await Promise.all([
272
191
  readScripts(projectRoot),
273
192
  collectHookEvidence(projectRoot),
274
193
  readRequiredContexts({
@@ -281,7 +200,33 @@ export async function buildGateReport(options) {
281
200
  projectRoot,
282
201
  read: options.readSkipJobTokens ?? defaultSkipJobTokensReader,
283
202
  }),
203
+ readFacadeFacts(projectRoot),
204
+ collectAgentHooks(projectRoot, options.homedir === undefined ? {} : { homedir: options.homedir }),
205
+ readProjectIsUpstream(projectRoot),
284
206
  ]);
207
+ }
208
+ /**
209
+ * Build the gate report for one project.
210
+ * @param options - Report inputs
211
+ * @returns The report
212
+ */
213
+ export async function buildGateReport(options) {
214
+ const registry = await loadGateRegistry();
215
+ if (registry === null)
216
+ return registryMissingReport();
217
+ const { projectRoot } = options;
218
+ const parsed = readConfig(registry, projectRoot);
219
+ const gates = parsed.gates;
220
+ const axis = momentAxis(registry, gates);
221
+ const [scripts, hooks, contexts, skipJobs, facade, agentHooks, isUpstream] = await readInputs(registry, options);
222
+ const joins = {
223
+ registry,
224
+ gates,
225
+ contexts,
226
+ facade,
227
+ mergeMoment: MERGE_MOMENT,
228
+ workflowName: QUALITY_WORKFLOW_NAME,
229
+ };
285
230
  const context = {
286
231
  registry,
287
232
  gates,
@@ -289,7 +234,11 @@ export async function buildGateReport(options) {
289
234
  scripts,
290
235
  runner: parsed.runner,
291
236
  workflowName: QUALITY_WORKFLOW_NAME,
292
- blocksMerge: mergeBlockResolver(contexts),
237
+ blocksMerge: mergeBlockResolver(joins),
238
+ facade: (gateId, qualityJob) => facadeFinding(facade, gateId, qualityJob),
239
+ facadeKnown: facade.qualityYmlPresent,
240
+ mergeMoment: MERGE_MOMENT,
241
+ merge: inputs => mergeVerdict({ ...inputs, required: contexts, facade }),
293
242
  };
294
243
  const moments = axis.map(moment => ({
295
244
  moment,
@@ -310,7 +259,16 @@ export async function buildGateReport(options) {
310
259
  declarationProblems: parsed.problems,
311
260
  gates: rows,
312
261
  skipJobs,
313
- ruleset: buildRulesetFinding(registry, gates, contexts),
262
+ ruleset: buildRulesetFinding(joins),
263
+ requiredContexts: buildRequiredContexts(joins),
264
+ agentHooks,
265
+ facadeSource: facadeSourceOf(facade),
266
+ upstream: collectUpstream({
267
+ rows,
268
+ agentHooks,
269
+ preToolLegalGates: preToolLegalGates(registry),
270
+ }),
271
+ projectIsUpstream: isUpstream,
314
272
  summary: summarise(rows, axis.length),
315
273
  };
316
274
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gate-report.js","sourceRoot":"","sources":["../../src/cli/gate-report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gate-report.js","sourceRoot":"","sources":["../../src/cli/gate-report.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import * as http from "node:http";
2
2
  import type { JsonObject } from "../sync/json-path.js";
3
3
  import { type RemoteEnvironmentStatus } from "./remote-environment.js";
4
4
  import { type StatusProbe } from "./ui-status.js";
5
+ import { type GateReportDependencies } from "./ui-gate-report.js";
5
6
  import { type UiHealthDependencies } from "./ui-health.js";
6
7
  import { type SetupReadinessDependencies } from "./ui-setup-readiness.js";
7
8
  export { createGithubAuthProbe, runProbe, type GitRemoteReader, type GithubAuthCheck, type ProbeResult, type StatusProbe, } from "./ui-status.js";
@@ -12,6 +13,7 @@ export { createDetectedStacksProbe, DETECTED_STACKS_PROBE_ID, } from "./ui-detec
12
13
  export { createLisaVersionProbe, mapLisaVersionCheck, type LisaVersionValue, } from "./ui-lisa-version.js";
13
14
  export { createCiQualityJobsProbe, computeCiQualityJobs, parseCiWorkflowInputs, CI_QUALITY_JOBS_PROBE_ID, type CiQualityJobEntry, type CiQualityJobsValue, type CiWorkflowInputs, type RepoSecretsPresence, } from "./ui-ci-quality-jobs.js";
14
15
  export { createObservabilityProviderProbes } from "./ui-observability-providers.js";
16
+ export { createGateReportHandler, readGateReport, type GateReportDependencies, type GateReportResponse, } from "./ui-gate-report.js";
15
17
  export { inspectRemoteEnvironment } from "./remote-environment.js";
16
18
  /** Default port for the settings console. */
17
19
  export declare const DEFAULT_UI_PORT = 4780;
@@ -30,6 +32,8 @@ export interface UiRuntimeDependencies {
30
32
  readonly health?: Partial<UiHealthDependencies>;
31
33
  /** Read-only setup-readiness boundaries exposed by /api/setup-readiness. */
32
34
  readonly setupReadiness?: SetupReadinessDependencies;
35
+ /** Read-only gate-report boundaries exposed by /api/gate-report. */
36
+ readonly gateReport?: GateReportDependencies;
33
37
  }
34
38
  /**
35
39
  * Locate the packaged `ui/index.html` by walking up from this module until a
@@ -1 +1 @@
1
- {"version":3,"file":"ui-cmd.d.ts","sourceRoot":"","sources":["../../src/cli/ui-cmd.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAIlC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,yBAAyB,CAAC;AAMjC,OAAO,EAKL,KAAK,WAAW,EACjB,MAAM,gBAAgB,CAAC;AAKxB,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAGL,KAAK,0BAA0B,EAEhC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,qBAAqB,EACrB,QAAQ,EACR,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,WAAW,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,8BAA8B,EAC9B,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,GACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,GACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,KAAK,gBAAgB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,GACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,iCAAiC,EAAE,MAAM,iCAAiC,CAAC;AACpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,6CAA6C;AAC7C,eAAO,MAAM,eAAe,OAAO,CAAC;AAKpC,iCAAiC;AACjC,MAAM,WAAW,YAAY;IAC3B,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,sDAAsD;AACtD,MAAM,WAAW,qBAAqB;IACpC,gDAAgD;IAChD,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IACzC,sEAAsE;IACtE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAChD,4EAA4E;IAC5E,QAAQ,CAAC,cAAc,CAAC,EAAE,0BAA0B,CAAC;CACtD;AAYD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAUnD;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,UAAU,EAClB,iBAAiB,GAAE,uBAIlB,GACA,MAAM,CAQR;AAuPD;;;;;;GAMG;AACH,wBAAsB,KAAK,CACzB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,GAAE,YAAiB,EAC1B,YAAY,GAAE,qBAA0B,GACvC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAqDtB"}
1
+ {"version":3,"file":"ui-cmd.d.ts","sourceRoot":"","sources":["../../src/cli/ui-cmd.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,7 @@ import { createEnabledPluginsProbe } from "./ui-enabled-plugins.js";
26
26
  import { createAutomationsProbe } from "./ui-automations.js";
27
27
  import { createObservabilityProviderProbes } from "./ui-observability-providers.js";
28
28
  import { serveConfigWrite } from "./ui-config-write.js";
29
+ import { createGateReportHandler, } from "./ui-gate-report.js";
29
30
  import { createUiHealthHandler, } from "./ui-health.js";
30
31
  import { createSetupReadinessReader, readMergedUiConfig, } from "./ui-setup-readiness.js";
31
32
  export { createGithubAuthProbe, runProbe, } from "./ui-status.js";
@@ -36,6 +37,7 @@ export { createDetectedStacksProbe, DETECTED_STACKS_PROBE_ID, } from "./ui-detec
36
37
  export { createLisaVersionProbe, mapLisaVersionCheck, } from "./ui-lisa-version.js";
37
38
  export { createCiQualityJobsProbe, computeCiQualityJobs, parseCiWorkflowInputs, CI_QUALITY_JOBS_PROBE_ID, } from "./ui-ci-quality-jobs.js";
38
39
  export { createObservabilityProviderProbes } from "./ui-observability-providers.js";
40
+ export { createGateReportHandler, readGateReport, } from "./ui-gate-report.js";
39
41
  export { inspectRemoteEnvironment } from "./remote-environment.js";
40
42
  /** Default port for the settings console. */
41
43
  export const DEFAULT_UI_PORT = 4780;
@@ -252,11 +254,13 @@ function isLoopbackHost(host) {
252
254
  * @param destDir - Project root served by this UI process
253
255
  * @param healthDependencies - Injectable Health v1 storage/run boundaries
254
256
  * @param setupReadinessDependencies - Injectable read-only Setup boundaries
257
+ * @param gateReportDependencies - Injectable read-only Doctor boundaries
255
258
  * @returns Loopback HTTP request handler
256
259
  */
257
- function createUiRequestHandler(page, probes, destDir, healthDependencies = {}, setupReadinessDependencies = {}) {
260
+ function createUiRequestHandler(page, probes, destDir, healthDependencies = {}, setupReadinessDependencies = {}, gateReportDependencies = {}) {
258
261
  const readSnapshot = createStatusSnapshotReader(probes);
259
262
  const serveHealth = createUiHealthHandler(destDir, healthDependencies);
263
+ const serveGateReport = createGateReportHandler(destDir, gateReportDependencies);
260
264
  const readCurrentSetup = createSetupReadinessSnapshotReader(createSetupReadinessReader(destDir, setupReadinessDependencies));
261
265
  validateStatusProbes(probes);
262
266
  return (request, response) => {
@@ -287,6 +291,10 @@ function createUiRequestHandler(page, probes, destDir, healthDependencies = {},
287
291
  serveSetupReadiness(request, response, readCurrentSetup);
288
292
  return;
289
293
  }
294
+ if (pathname === "/api/gate-report") {
295
+ serveGateReport(request, response);
296
+ return;
297
+ }
290
298
  if (pathname === "/" || pathname === "/index.html") {
291
299
  response.writeHead(200, { "content-type": "text/html; charset=utf-8" });
292
300
  response.end(page);
@@ -333,7 +341,7 @@ export async function runUi(targetPath, options = {}, dependencies = {}) {
333
341
  ...createObservabilityProviderProbes(),
334
342
  createAutomationsProbe({ cwd: destDir }),
335
343
  ];
336
- const server = http.createServer(createUiRequestHandler(page, probes, destDir, dependencies.health, dependencies.setupReadiness));
344
+ const server = http.createServer(createUiRequestHandler(page, probes, destDir, dependencies.health, dependencies.setupReadiness, dependencies.gateReport));
337
345
  await new Promise(resolve => {
338
346
  server.listen(port, "127.0.0.1", resolve);
339
347
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ui-cmd.js","sourceRoot":"","sources":["../../src/cli/ui-cmd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui-cmd.js","sourceRoot":"","sources":["../../src/cli/ui-cmd.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * `GET /api/gate-report` — the Doctor tab's data, composed at serve time.
3
+ *
4
+ * The tab's markup is composed HERE rather than living inside
5
+ * `ui/index.html`, and that is the point of the route. That file is a single
6
+ * 13,000-line zero-build document with a known concurrent-edit hazard where
7
+ * union merges lose braces; a section of this size pasted into it would make a
8
+ * bad merge materially worse, and would put a second copy of the report's
9
+ * markup somewhere no test renders. The console instead gains a small block
10
+ * that asks this route for the fragment.
11
+ *
12
+ * The standalone property `ui/README.md` advertises survives untouched:
13
+ * opening `ui/index.html` from disk still works, and the tab then says — in
14
+ * the report's own three-state vocabulary — that the report could not be
15
+ * derived without a server. That is an honest `unknown`, not an empty panel.
16
+ *
17
+ * Lazy and single-flight, following `/api/setup-readiness`. Tier 2 shells out
18
+ * to `gh`, so building the report at server start would delay the console for
19
+ * a section the operator may never open, and two tabs opened at once must not
20
+ * become two `gh` invocations.
21
+ * @module cli/ui-gate-report
22
+ */
23
+ import type * as http from "node:http";
24
+ import type { GateReport } from "./gate-report-types.js";
25
+ /** What the route returns. */
26
+ export interface GateReportResponse {
27
+ /** The scoped fragment the console injects into the Doctor tab. */
28
+ readonly html: string;
29
+ /**
30
+ * The payload the fragment was rendered from.
31
+ *
32
+ * Served alongside the markup so an agent or a script can consume the same
33
+ * verdicts the operator is looking at, without a second derivation that
34
+ * could disagree with the first.
35
+ */
36
+ readonly report: GateReport;
37
+ }
38
+ /** Injectable boundaries, so tests never shell out or read a real project. */
39
+ export interface GateReportDependencies {
40
+ /** Build the report. Defaults to the real emitter. */
41
+ readonly build?: (projectRoot: string) => Promise<GateReport>;
42
+ }
43
+ /**
44
+ * Build the response for one project.
45
+ * @param projectRoot - Project root served by this UI process
46
+ * @param dependencies - Injectable boundaries
47
+ * @returns The fragment and the payload it came from
48
+ */
49
+ export declare function readGateReport(projectRoot: string, dependencies?: GateReportDependencies): Promise<GateReportResponse>;
50
+ /**
51
+ * Create the `/api/gate-report` handler for one project.
52
+ * @param projectRoot - Project root served by this UI process
53
+ * @param dependencies - Injectable boundaries
54
+ * @returns A request handler
55
+ */
56
+ export declare function createGateReportHandler(projectRoot: string, dependencies?: GateReportDependencies): (request: http.IncomingMessage, response: http.ServerResponse) => void;
57
+ //# sourceMappingURL=ui-gate-report.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-gate-report.d.ts","sourceRoot":"","sources":["../../src/cli/ui-gate-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,KAAK,IAAI,MAAM,WAAW,CAAC;AAKvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAMzD,8BAA8B;AAC9B,MAAM,WAAW,kBAAkB;IACjC,mEAAmE;IACnE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;CAC7B;AAED,8EAA8E;AAC9E,MAAM,WAAW,sBAAsB;IACrC,sDAAsD;IACtD,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;CAC/D;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,YAAY,GAAE,sBAA2B,GACxC,OAAO,CAAC,kBAAkB,CAAC,CAS7B;AA8BD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,EACnB,YAAY,GAAE,sBAA2B,GACxC,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,KAAK,IAAI,CA8CxE"}
@@ -0,0 +1,95 @@
1
+ import * as path from "node:path";
2
+ import { renderGateReportFragment } from "./gate-report-fragment.js";
3
+ import { buildGateReport } from "./gate-report.js";
4
+ const JSON_CONTENT_TYPE = "application/json; charset=utf-8";
5
+ const NO_STORE = "no-store";
6
+ const TEXT_CONTENT_TYPE = "text/plain; charset=utf-8";
7
+ /**
8
+ * Build the response for one project.
9
+ * @param projectRoot - Project root served by this UI process
10
+ * @param dependencies - Injectable boundaries
11
+ * @returns The fragment and the payload it came from
12
+ */
13
+ export async function readGateReport(projectRoot, dependencies = {}) {
14
+ const build = dependencies.build ??
15
+ (async (root) => await buildGateReport({ projectRoot: root }));
16
+ const report = await build(projectRoot);
17
+ return {
18
+ report,
19
+ html: renderGateReportFragment(report, path.basename(projectRoot)),
20
+ };
21
+ }
22
+ /**
23
+ * Coalesce concurrent reads without caching a stale answer for later ones.
24
+ *
25
+ * The slot is a `current` holder rather than a reassigned binding, which is
26
+ * the shape the repository's immutability rules already sanction: the entry is
27
+ * set when a read starts and cleared when it settles, which is the same
28
+ * lifetime with none of the suppression.
29
+ * @param read - The underlying reader
30
+ * @returns A single-flight reader that clears after settlement
31
+ */
32
+ function singleFlight(read) {
33
+ const slot = {
34
+ current: undefined,
35
+ };
36
+ return () => {
37
+ if (slot.current !== undefined)
38
+ return slot.current;
39
+ const pending = read();
40
+ slot.current = pending;
41
+ const clear = () => {
42
+ if (slot.current === pending)
43
+ slot.current = undefined;
44
+ };
45
+ void pending.then(clear, clear);
46
+ return pending;
47
+ };
48
+ }
49
+ /**
50
+ * Create the `/api/gate-report` handler for one project.
51
+ * @param projectRoot - Project root served by this UI process
52
+ * @param dependencies - Injectable boundaries
53
+ * @returns A request handler
54
+ */
55
+ export function createGateReportHandler(projectRoot, dependencies = {}) {
56
+ const read = singleFlight(async () => await readGateReport(projectRoot, dependencies));
57
+ return (request, response) => {
58
+ if (request.method === "HEAD") {
59
+ response.writeHead(200, {
60
+ "cache-control": NO_STORE,
61
+ "content-type": JSON_CONTENT_TYPE,
62
+ });
63
+ response.end();
64
+ return;
65
+ }
66
+ if (request.method !== "GET") {
67
+ response.writeHead(405, {
68
+ allow: "GET, HEAD",
69
+ "cache-control": NO_STORE,
70
+ "content-type": TEXT_CONTENT_TYPE,
71
+ });
72
+ response.end("Method not allowed");
73
+ return;
74
+ }
75
+ void read().then(result => {
76
+ response.writeHead(200, {
77
+ "cache-control": NO_STORE,
78
+ "content-type": JSON_CONTENT_TYPE,
79
+ });
80
+ response.end(JSON.stringify(result));
81
+ }, error => {
82
+ // A failure here must not render as an empty report. The console shows
83
+ // the message, which keeps "the report could not be derived" distinct
84
+ // from "the report found nothing".
85
+ response.writeHead(500, {
86
+ "cache-control": NO_STORE,
87
+ "content-type": JSON_CONTENT_TYPE,
88
+ });
89
+ response.end(JSON.stringify({
90
+ error: error instanceof Error ? error.message : String(error),
91
+ }));
92
+ });
93
+ };
94
+ }
95
+ //# sourceMappingURL=ui-gate-report.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-gate-report.js","sourceRoot":"","sources":["../../src/cli/ui-gate-report.ts"],"names":[],"mappings":"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"}