@codyswann/lisa 4.16.0 → 4.17.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-override-floor-conflicts.d.ts +15 -0
- package/dist/cli/doctor-override-floor-conflicts.d.ts.map +1 -0
- package/dist/cli/doctor-override-floor-conflicts.js +225 -0
- package/dist/cli/doctor-override-floor-conflicts.js.map +1 -0
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +8 -0
- package/dist/cli/doctor.js.map +1 -1
- package/dist/core/override-floors.d.ts +146 -0
- package/dist/core/override-floors.d.ts.map +1 -0
- package/dist/core/override-floors.js +200 -0
- package/dist/core/override-floors.js.map +1 -0
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +5 -0
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/dist/strategies/package-lisa.d.ts +59 -0
- package/dist/strategies/package-lisa.d.ts.map +1 -1
- package/dist/strategies/package-lisa.js +112 -130
- package/dist/strategies/package-lisa.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
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** One doctor check result, structurally identical to `DoctorCheck`. */
|
|
2
|
+
interface FloorCheck {
|
|
3
|
+
name: string;
|
|
4
|
+
status: "ok" | "warn" | "fail";
|
|
5
|
+
detail: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Check whether a `$name` override would resolve below a Lisa security floor.
|
|
9
|
+
* @param targetPath - Project path to inspect
|
|
10
|
+
* @param lisaRoot - Installed Lisa package root, injectable for tests
|
|
11
|
+
* @returns Doctor check result
|
|
12
|
+
*/
|
|
13
|
+
export declare function checkOverrideFloorConflicts(targetPath: string, lisaRoot?: string): Promise<FloorCheck>;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=doctor-override-floor-conflicts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor-override-floor-conflicts.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-override-floor-conflicts.ts"],"names":[],"mappings":"AA2CA,wEAAwE;AACxE,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;CAChB;AAkID;;;;;GAKG;AACH,wBAAsB,2BAA2B,CAC/C,UAAU,EAAE,MAAM,EAClB,QAAQ,GAAE,MAA0B,GACnC,OAAO,CAAC,UAAU,CAAC,CAoDrB"}
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Doctor check: will `lisa apply` refuse over an override that would resolve a
|
|
3
|
+
* Lisa security floor DOWNWARDS?
|
|
4
|
+
*
|
|
5
|
+
* `lisa apply` normalizes a forced literal override into npm's `"$name"`
|
|
6
|
+
* self-reference when the same package is a direct dependency, and refuses when
|
|
7
|
+
* the host's direct range starts below the floor it is replacing — because the
|
|
8
|
+
* rewrite would readmit exactly the versions the floor exists to exclude. That
|
|
9
|
+
* refusal is correct and this check does not soften it. What it adds is advance
|
|
10
|
+
* notice: the condition is decidable from `package.json` and Lisa's templates
|
|
11
|
+
* alone, with no network and no install, so an operator can be told "raise vite
|
|
12
|
+
* to ^8.0.16" instead of meeting an unexplained refusal from inside a
|
|
13
|
+
* `postinstall` that has already committed to updating.
|
|
14
|
+
*
|
|
15
|
+
* Why doctor rather than a push gate or a host-side script: the floors live in
|
|
16
|
+
* the INSTALLED Lisa package, not the host repo. A shipped `.mjs` gate running
|
|
17
|
+
* in a host's CI can compare an override against its own dependency line — that
|
|
18
|
+
* is `lisa-floor-collisions.mjs`, which by construction skips `$name` entries
|
|
19
|
+
* and has no notion of a Lisa floor. Answering this question needs both sides,
|
|
20
|
+
* and the only surface that holds both is the Lisa CLI running in the host
|
|
21
|
+
* checkout.
|
|
22
|
+
*
|
|
23
|
+
* `fail`, not `warn`: a project in this state is not degraded, it is frozen —
|
|
24
|
+
* every apply refuses, so no template, guardrail, or security pin reaches it
|
|
25
|
+
* until the raise is made.
|
|
26
|
+
* @module cli/doctor-override-floor-conflicts
|
|
27
|
+
*/
|
|
28
|
+
import { readFile } from "node:fs/promises";
|
|
29
|
+
import * as path from "node:path";
|
|
30
|
+
import { fileURLToPath } from "node:url";
|
|
31
|
+
import { describeSelfReferenceRemedy } from "../core/override-floors.js";
|
|
32
|
+
import { PackageLisaStrategy, } from "../strategies/package-lisa.js";
|
|
33
|
+
const CHECK_NAME = "Override self-references safe?";
|
|
34
|
+
const PACKAGE_JSON = "package.json";
|
|
35
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
36
|
+
/**
|
|
37
|
+
* Resolve the installed Lisa package root, mirroring how apply resolves it.
|
|
38
|
+
* @returns Absolute path to the Lisa package root
|
|
39
|
+
*/
|
|
40
|
+
function defaultLisaRoot() {
|
|
41
|
+
return path.resolve(__dirname, "..", "..");
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Read and parse the host manifest, keeping "absent" and "unparseable" apart.
|
|
45
|
+
* @param targetPath - Project path to inspect
|
|
46
|
+
* @returns The parsed manifest, or which of the two failure modes occurred
|
|
47
|
+
*/
|
|
48
|
+
async function readManifest(targetPath) {
|
|
49
|
+
const manifestPath = path.join(targetPath, PACKAGE_JSON);
|
|
50
|
+
const raw = await readFile(manifestPath, "utf8").catch(() => null);
|
|
51
|
+
if (raw === null) {
|
|
52
|
+
return { kind: "absent" };
|
|
53
|
+
}
|
|
54
|
+
try {
|
|
55
|
+
JSON.parse(raw);
|
|
56
|
+
return { kind: "parsed" };
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
return {
|
|
60
|
+
kind: "unreadable",
|
|
61
|
+
reason: error instanceof Error ? error.message : String(error),
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Fold the per-path audits into one conflict list, deduplicated by section and
|
|
67
|
+
* package name and labelled with the paths that refuse.
|
|
68
|
+
* @param report - The audit report for one project
|
|
69
|
+
* @returns Conflicts, each with the apply paths that would refuse over it
|
|
70
|
+
*/
|
|
71
|
+
function foldConflicts(report) {
|
|
72
|
+
const rows = report.paths.flatMap(entry => (entry.audit?.conflicts ?? []).map(conflict => ({
|
|
73
|
+
conflict,
|
|
74
|
+
applyPath: entry.applyPath,
|
|
75
|
+
})));
|
|
76
|
+
const keys = [
|
|
77
|
+
...new Set(rows.map(row => `${row.conflict.section}.${row.conflict.name}`)),
|
|
78
|
+
];
|
|
79
|
+
return keys.flatMap(key => {
|
|
80
|
+
const matching = rows.filter(row => `${row.conflict.section}.${row.conflict.name}` === key);
|
|
81
|
+
const first = matching[0];
|
|
82
|
+
return first === undefined
|
|
83
|
+
? []
|
|
84
|
+
: [
|
|
85
|
+
{
|
|
86
|
+
conflict: first.conflict,
|
|
87
|
+
paths: [...new Set(matching.map(row => row.applyPath))],
|
|
88
|
+
},
|
|
89
|
+
];
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Describe what an audit pass actually looked at, so an empty finding can never
|
|
94
|
+
* be read as a clean bill of health without its denominator.
|
|
95
|
+
* @param report - The audit report for one project
|
|
96
|
+
* @returns Operator-readable counts
|
|
97
|
+
*/
|
|
98
|
+
function describeScope(report) {
|
|
99
|
+
const inspected = report.paths.map(entry => {
|
|
100
|
+
if (entry.audit === null) {
|
|
101
|
+
return `${entry.applyPath}: not simulated`;
|
|
102
|
+
}
|
|
103
|
+
const counts = `${entry.audit.overridesInspected} overrides, ${entry.audit.rewritesJudged} judged`;
|
|
104
|
+
return `${entry.applyPath}: ${counts}`;
|
|
105
|
+
});
|
|
106
|
+
return `${report.lisaFloors} Lisa floors; ${inspected.join("; ")}`;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Render one conflict as a single operator-readable line.
|
|
110
|
+
* @param row - Conflict plus the apply paths that refuse over it
|
|
111
|
+
* @returns One line naming the package, both ranges, and the verified raise
|
|
112
|
+
*/
|
|
113
|
+
function describeConflict(row) {
|
|
114
|
+
const where = `refuses on ${row.paths.join(" and ")}`;
|
|
115
|
+
const ranges = `direct ${row.conflict.directRange} vs Lisa floor ${row.conflict.floorRange}`;
|
|
116
|
+
const remedy = describeSelfReferenceRemedy(row.conflict);
|
|
117
|
+
return `${row.conflict.section}.${row.conflict.name} (${ranges}; ${where}) — ${remedy}`;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Decide the check result when every apply path failed to simulate.
|
|
121
|
+
* @param paths - The per-path audits
|
|
122
|
+
* @returns The failing check, or null when at least one path produced an audit
|
|
123
|
+
*/
|
|
124
|
+
function reportUnsimulatable(paths) {
|
|
125
|
+
if (paths.some(entry => entry.audit !== null)) {
|
|
126
|
+
return null;
|
|
127
|
+
}
|
|
128
|
+
const reasons = paths.map(entry => `${entry.applyPath}: ${entry.error ?? "no result"}`);
|
|
129
|
+
return {
|
|
130
|
+
name: CHECK_NAME,
|
|
131
|
+
status: "fail",
|
|
132
|
+
detail: `Could not verify — no apply path could be simulated. ${reasons.join("; ")}`,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Check whether a `$name` override would resolve below a Lisa security floor.
|
|
137
|
+
* @param targetPath - Project path to inspect
|
|
138
|
+
* @param lisaRoot - Installed Lisa package root, injectable for tests
|
|
139
|
+
* @returns Doctor check result
|
|
140
|
+
*/
|
|
141
|
+
export async function checkOverrideFloorConflicts(targetPath, lisaRoot = defaultLisaRoot()) {
|
|
142
|
+
const manifest = await readManifest(targetPath);
|
|
143
|
+
if (manifest.kind === "unreadable") {
|
|
144
|
+
return {
|
|
145
|
+
name: CHECK_NAME,
|
|
146
|
+
status: "fail",
|
|
147
|
+
detail: `Could not verify — ${PACKAGE_JSON} is not parseable JSON: ${manifest.reason}`,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
const report = await new PackageLisaStrategy()
|
|
151
|
+
.auditOverrideFloors(targetPath, lisaRoot)
|
|
152
|
+
.catch((error) => error);
|
|
153
|
+
if (!isReport(report)) {
|
|
154
|
+
return {
|
|
155
|
+
name: CHECK_NAME,
|
|
156
|
+
status: "fail",
|
|
157
|
+
detail: `Could not verify — resolving Lisa's templates failed: ${report instanceof Error ? report.message : String(report)}`,
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
if (report.lisaFloors === 0) {
|
|
161
|
+
return describeNoFloors(report, manifest.kind === "absent");
|
|
162
|
+
}
|
|
163
|
+
if (manifest.kind === "absent") {
|
|
164
|
+
return {
|
|
165
|
+
name: CHECK_NAME,
|
|
166
|
+
status: "warn",
|
|
167
|
+
detail: `No ${PACKAGE_JSON} here, so no direct dependency can resolve below one of Lisa's ${report.lisaFloors} floors (0 manifests inspected)`,
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
const unsimulatable = reportUnsimulatable(report.paths);
|
|
171
|
+
if (unsimulatable !== null) {
|
|
172
|
+
return unsimulatable;
|
|
173
|
+
}
|
|
174
|
+
const conflicts = foldConflicts(report);
|
|
175
|
+
if (conflicts.length === 0) {
|
|
176
|
+
return {
|
|
177
|
+
name: CHECK_NAME,
|
|
178
|
+
status: "ok",
|
|
179
|
+
detail: `No override resolves below a Lisa floor (${describeScope(report)})`,
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
return {
|
|
183
|
+
name: CHECK_NAME,
|
|
184
|
+
status: "fail",
|
|
185
|
+
detail: `${conflicts.length} override(s) would resolve below a Lisa security floor, so lisa apply refuses and this project receives no updates (${describeScope(report)}). ${conflicts.map(describeConflict).join(" ")}`,
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Report a project for which Lisa resolved no floors at all.
|
|
190
|
+
*
|
|
191
|
+
* Split by whether any template applies. No detected type means Lisa ships
|
|
192
|
+
* nothing to force here and the check is genuinely inapplicable. A detected
|
|
193
|
+
* type whose templates yield zero floors means resolution produced nothing to
|
|
194
|
+
* compare against — an inert check, which is a failure rather than a pass.
|
|
195
|
+
* @param report - The audit report for one project
|
|
196
|
+
* @param manifestAbsent - True when the project has no package.json
|
|
197
|
+
* @returns Doctor check result
|
|
198
|
+
*/
|
|
199
|
+
function describeNoFloors(report, manifestAbsent) {
|
|
200
|
+
if (report.detectedTypes.length === 0) {
|
|
201
|
+
return {
|
|
202
|
+
name: CHECK_NAME,
|
|
203
|
+
status: "ok",
|
|
204
|
+
detail: "Not applicable: no Lisa project type detected, so no package.lisa.json floors apply here (0 floors, 0 manifests inspected)",
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
const missing = manifestAbsent ? ` and found no ${PACKAGE_JSON}` : "";
|
|
208
|
+
return {
|
|
209
|
+
name: CHECK_NAME,
|
|
210
|
+
status: "fail",
|
|
211
|
+
detail: `Could not verify — Lisa resolved 0 override floors for detected type(s) ${report.detectedTypes.join(", ")}${missing}. Nothing was compared, so this is not a pass.`,
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Narrow a settled audit call to a report.
|
|
216
|
+
* @param value - Either the report or the error the call rejected with
|
|
217
|
+
* @returns True when the value is an audit report
|
|
218
|
+
*/
|
|
219
|
+
function isReport(value) {
|
|
220
|
+
return (typeof value === "object" &&
|
|
221
|
+
value !== null &&
|
|
222
|
+
"lisaFloors" in value &&
|
|
223
|
+
"paths" in value);
|
|
224
|
+
}
|
|
225
|
+
//# sourceMappingURL=doctor-override-floor-conflicts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor-override-floor-conflicts.js","sourceRoot":"","sources":["../../src/cli/doctor-override-floor-conflicts.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/doctor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAqBnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAUzD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,mDAAmD;AACnD,KAAK,YAAY,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;AAO3C,oCAAoC;AACpC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,sCAAsC;AACtC,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,wCAAwC;AACxC,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wCAAwC;AACxC,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,OAAO,KAAK,CAAC;IACxB,cAAc,EAAE,OAAO,cAAc,CAAC;IACtC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;IAC9C,mBAAmB,EAAE,OAAO,mBAAmB,CAAC;CACjD;AAaD;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,EAChD,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,WAAW,CAAC,CAyBtB;AA0KD;;;;;;GAMG;AACH,wBAAsB,SAAS,CAC7B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,aAAa,EACtB,YAAY,GAAE,OAAO,CAAC,kBAAkB,CAAM,GAC7C,OAAO,CAAC,YAAY,CAAC,CAwGvB"}
|
package/dist/cli/doctor.js
CHANGED
|
@@ -21,6 +21,7 @@ import { checkReusableWorkflowRefs } from "./doctor-reusable-workflow-refs.js";
|
|
|
21
21
|
import { checkWorkerEpoch } from "./doctor-worker-epoch.js";
|
|
22
22
|
import { checkSerializeLegsContract } from "./doctor-serialize-legs-contract.js";
|
|
23
23
|
import { checkApplyFailure } from "./doctor-apply-failure.js";
|
|
24
|
+
import { checkOverrideFloorConflicts } from "./doctor-override-floor-conflicts.js";
|
|
24
25
|
import { renderDoctorResult } from "./doctor-render.js";
|
|
25
26
|
import { checkSkipJobsMigration } from "./doctor-skip-jobs-migration.js";
|
|
26
27
|
import { checkTwoChannelDrift } from "./doctor-two-channel-drift.js";
|
|
@@ -269,6 +270,13 @@ export async function runDoctor(targetPath, options, dependencies = {}) {
|
|
|
269
270
|
// the halves land out of order and nothing reads as red (#3050).
|
|
270
271
|
await checkTwoChannelDrift(resolvedTarget),
|
|
271
272
|
await checkApplyFailure(resolvedTarget),
|
|
273
|
+
// Immediately after the recorded-failure check, because they are the two
|
|
274
|
+
// halves of the same operator question. That one reports that an apply DID
|
|
275
|
+
// fail; this one answers whether the next one will, and names the one-line
|
|
276
|
+
// raise that prevents it — a security floor an override would resolve
|
|
277
|
+
// downwards is refused, and until now nothing said so in advance
|
|
278
|
+
// (CodySwannGT/lisa#2754).
|
|
279
|
+
await checkOverrideFloorConflicts(resolvedTarget),
|
|
272
280
|
await checkProjectType(resolvedTarget),
|
|
273
281
|
await checkInstructionFiles(resolvedTarget),
|
|
274
282
|
// Runs AFTER the instruction-files check because that check performs the
|
package/dist/cli/doctor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/** package.json sections whose keys are treated as direct dependencies. */
|
|
2
|
+
export declare const DIRECT_DEPENDENCY_SECTIONS: readonly ["dependencies", "devDependencies", "optionalDependencies", "peerDependencies"];
|
|
3
|
+
/** package.json sections that carry npm-style version overrides. */
|
|
4
|
+
export declare const OVERRIDE_SECTIONS: readonly ["overrides", "resolutions"];
|
|
5
|
+
/** One of the two npm override sections. */
|
|
6
|
+
export type OverrideSection = (typeof OVERRIDE_SECTIONS)[number];
|
|
7
|
+
/**
|
|
8
|
+
* What rewriting one literal override to `"$name"` would do to its floor.
|
|
9
|
+
*
|
|
10
|
+
* `unprovable` and `widening` are kept apart because they are different
|
|
11
|
+
* operator problems: the first is a range Lisa cannot parse on either side (a
|
|
12
|
+
* git spec, `workspace:*`, an alias), the second is an ordinary semver range
|
|
13
|
+
* that genuinely starts lower than the floor.
|
|
14
|
+
*/
|
|
15
|
+
export type SelfReferenceVerdict = "safe" | "unprovable" | "widening";
|
|
16
|
+
/** One override whose `$name` rewrite would resolve below Lisa's floor. */
|
|
17
|
+
export interface SelfReferenceFloorConflict {
|
|
18
|
+
/** Override section carrying the entry. */
|
|
19
|
+
readonly section: OverrideSection;
|
|
20
|
+
/** Package name. */
|
|
21
|
+
readonly name: string;
|
|
22
|
+
/** Literal override range in the merged manifest — Lisa's floor. */
|
|
23
|
+
readonly floorRange: string;
|
|
24
|
+
/** Direct dependency range `$name` would resolve to. */
|
|
25
|
+
readonly directRange: string;
|
|
26
|
+
/** Why the rewrite is refused. */
|
|
27
|
+
readonly verdict: Exclude<SelfReferenceVerdict, "safe">;
|
|
28
|
+
/**
|
|
29
|
+
* A direct range that has been VERIFIED to satisfy the guard, or null when
|
|
30
|
+
* none could be derived. Never a guess.
|
|
31
|
+
*/
|
|
32
|
+
readonly suggestedDirectRange: string | null;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* What one pass over a merged manifest actually looked at, alongside what it
|
|
36
|
+
* found.
|
|
37
|
+
*
|
|
38
|
+
* The counts are not decoration. A check that inspected nothing and a check
|
|
39
|
+
* that inspected everything and found nothing produce the same empty conflict
|
|
40
|
+
* list, and only the counts tell them apart — so every caller reports them and
|
|
41
|
+
* refuses to call zero inspected a pass.
|
|
42
|
+
*/
|
|
43
|
+
export interface OverrideFloorAudit {
|
|
44
|
+
/** Every top-level entry across `overrides` and `resolutions`. */
|
|
45
|
+
readonly overridesInspected: number;
|
|
46
|
+
/** Those the `$name` normalization guard actually judges. */
|
|
47
|
+
readonly rewritesJudged: number;
|
|
48
|
+
/** Those the guard would refuse. */
|
|
49
|
+
readonly conflicts: readonly SelfReferenceFloorConflict[];
|
|
50
|
+
/** Those the guard would perform, in the order they were read. */
|
|
51
|
+
readonly rewritable: readonly SelfReferenceCandidate[];
|
|
52
|
+
}
|
|
53
|
+
/** One override the `$name` normalization guard judges. */
|
|
54
|
+
export interface SelfReferenceCandidate {
|
|
55
|
+
/** Override section carrying the entry. */
|
|
56
|
+
readonly section: OverrideSection;
|
|
57
|
+
/** Package name. */
|
|
58
|
+
readonly name: string;
|
|
59
|
+
/** Literal override range in the merged manifest. */
|
|
60
|
+
readonly floorRange: string;
|
|
61
|
+
/** Direct dependency range `$name` would resolve to. */
|
|
62
|
+
readonly directRange: string;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Narrow an unknown value to a plain object record, returning {} otherwise.
|
|
66
|
+
* @param value - Candidate value
|
|
67
|
+
* @returns The value as a record, or an empty record when it is not a plain object
|
|
68
|
+
*/
|
|
69
|
+
export declare function asRecord(value: unknown): Record<string, unknown>;
|
|
70
|
+
/**
|
|
71
|
+
* Collect the names of every direct dependency declared across a package.json's
|
|
72
|
+
* dependency sections.
|
|
73
|
+
* @param pkg - Merged package.json object
|
|
74
|
+
* @returns Set of direct dependency names
|
|
75
|
+
*/
|
|
76
|
+
export declare function collectDirectDependencyNames(pkg: Record<string, unknown>): Set<string>;
|
|
77
|
+
/**
|
|
78
|
+
* Collect direct dependency ranges by package name.
|
|
79
|
+
* @param pkg - Merged package.json object
|
|
80
|
+
* @returns Package name to string range map
|
|
81
|
+
*/
|
|
82
|
+
export declare function collectDirectDependencyRanges(pkg: Record<string, unknown>): ReadonlyMap<string, string>;
|
|
83
|
+
/**
|
|
84
|
+
* Decide whether an override/resolution entry is a candidate for npm `$name`
|
|
85
|
+
* normalization at all.
|
|
86
|
+
* @param directDeps - Direct dependency names in the merged package
|
|
87
|
+
* @param name - Override/resolution key
|
|
88
|
+
* @param value - Override/resolution value
|
|
89
|
+
* @returns True when the entry is a literal direct-dependency collision
|
|
90
|
+
*/
|
|
91
|
+
export declare function needsSelfReferenceRewrite(directDeps: ReadonlySet<string>, name: string, value: unknown): boolean;
|
|
92
|
+
/**
|
|
93
|
+
* The one predicate behind both the apply's refusal and doctor's report.
|
|
94
|
+
* @remarks
|
|
95
|
+
* Deliberately plain `semver.subset`, with no ceiling normalization. The
|
|
96
|
+
* normalizing variant used by the host-pin branch (`rangeContains` in the
|
|
97
|
+
* package-lisa strategy) can only turn a refusal into an acceptance, and this
|
|
98
|
+
* branch is the one that decides whether a security floor may be resolved
|
|
99
|
+
* DOWNWARDS — so it keeps the stricter reading. Any range that reaches a
|
|
100
|
+
* `widening` verdict here still has a followable way out, because
|
|
101
|
+
* {@link suggestSatisfyingDirectRange} is verified against this same function.
|
|
102
|
+
* @param floorRange - The literal override range being replaced
|
|
103
|
+
* @param directRange - The direct dependency range `$name` would resolve to
|
|
104
|
+
* @returns Whether the rewrite is safe, unprovable, or widening
|
|
105
|
+
*/
|
|
106
|
+
export declare function classifySelfReferenceRewrite(floorRange: string, directRange: string): SelfReferenceVerdict;
|
|
107
|
+
/**
|
|
108
|
+
* Derive a direct dependency range that satisfies the floor, and PROVE it does
|
|
109
|
+
* before handing it to an operator.
|
|
110
|
+
* @remarks
|
|
111
|
+
* The natural suggestion is a caret at the floor's minimum version, because
|
|
112
|
+
* that is what a person writes and what the one already-fixed instance of this
|
|
113
|
+
* defect was fixed with. It is not always right: measured, `^1.18.0` is not a
|
|
114
|
+
* subset of a bounded floor `>=1.18.0 <1.19.0`, and `^0.0.0` is not a subset of
|
|
115
|
+
* `*`. So the caret is a CANDIDATE, tested against
|
|
116
|
+
* {@link classifySelfReferenceRewrite} and discarded when it fails, falling
|
|
117
|
+
* back to the floor range verbatim — which is a subset of itself for any range
|
|
118
|
+
* semver can parse.
|
|
119
|
+
*
|
|
120
|
+
* A floor semver cannot parse yields null. Printing an untested range would be
|
|
121
|
+
* the #3191 failure exactly: advice that sends the operator back into the same
|
|
122
|
+
* refusal.
|
|
123
|
+
* @param floorRange - The literal override range acting as the floor
|
|
124
|
+
* @returns A range verified to satisfy the guard, or null when none exists
|
|
125
|
+
*/
|
|
126
|
+
export declare function suggestSatisfyingDirectRange(floorRange: string): string | null;
|
|
127
|
+
/**
|
|
128
|
+
* Judge every `$name`-rewrite candidate in a merged manifest, collecting ALL
|
|
129
|
+
* conflicts rather than stopping at the first.
|
|
130
|
+
* @remarks
|
|
131
|
+
* The apply throws on the first conflict, which is right for an apply — it is
|
|
132
|
+
* about to write a file and must not. A report has the opposite obligation: an
|
|
133
|
+
* operator who fixes the one package named and re-runs, only to be handed the
|
|
134
|
+
* next one, is being drip-fed a list Lisa already had in full.
|
|
135
|
+
* @param pkg - Merged package.json, as the apply would persist it
|
|
136
|
+
* @returns What was inspected and every conflict found
|
|
137
|
+
*/
|
|
138
|
+
export declare function auditSelfReferenceRewrites(pkg: Record<string, unknown>): OverrideFloorAudit;
|
|
139
|
+
/**
|
|
140
|
+
* The remedy sentence, shared by the apply's refusal and doctor's report so an
|
|
141
|
+
* operator is never told two different things about the same conflict.
|
|
142
|
+
* @param conflict - The conflict to describe
|
|
143
|
+
* @returns One operator-readable sentence naming the exact raise to make
|
|
144
|
+
*/
|
|
145
|
+
export declare function describeSelfReferenceRemedy(conflict: SelfReferenceFloorConflict): string;
|
|
146
|
+
//# sourceMappingURL=override-floors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"override-floors.d.ts","sourceRoot":"","sources":["../../src/core/override-floors.ts"],"names":[],"mappings":"AAgCA,2EAA2E;AAC3E,eAAO,MAAM,0BAA0B,0FAK7B,CAAC;AAEX,oEAAoE;AACpE,eAAO,MAAM,iBAAiB,uCAAwC,CAAC;AAEvE,4CAA4C;AAC5C,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE;;;;;;;GAOG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,CAAC;AAEtE,2EAA2E;AAC3E,MAAM,WAAW,0BAA0B;IACzC,2CAA2C;IAC3C,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,oBAAoB;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,wDAAwD;IACxD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,kCAAkC;IAClC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;IACxD;;;OAGG;IACH,QAAQ,CAAC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9C;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,kBAAkB;IACjC,kEAAkE;IAClE,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,6DAA6D;IAC7D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,oCAAoC;IACpC,QAAQ,CAAC,SAAS,EAAE,SAAS,0BAA0B,EAAE,CAAC;IAC1D,kEAAkE;IAClE,QAAQ,CAAC,UAAU,EAAE,SAAS,sBAAsB,EAAE,CAAC;CACxD;AAED,2DAA2D;AAC3D,MAAM,WAAW,sBAAsB;IACrC,2CAA2C;IAC3C,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,oBAAoB;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,wDAAwD;IACxD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKhE;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,GAAG,CAAC,MAAM,CAAC,CAMb;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAQ7B;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,EAC/B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,GACb,OAAO,CAOT;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,oBAAoB,CAKtB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,MAAM,GACjB,MAAM,GAAG,IAAI,CAUf;AAeD;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,kBAAkB,CA4CpB;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,0BAA0B,GACnC,MAAM,CAcR"}
|