@codyswann/lisa 4.34.5 → 4.34.6
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/all/copy-overwrite/scripts/lisa-hooks/block-managed-file-edits.sh +436 -9
- package/all/copy-overwrite/scripts/lisa-hooks/block-no-verify.sh +636 -101
- package/all/copy-overwrite/scripts/lisa-test-node.mjs +44 -1
- package/dist/codex/scripts/block-no-verify.sh +608 -99
- package/dist/configs/vitest/scratch-global-setup.d.ts +29 -0
- package/dist/configs/vitest/scratch-global-setup.d.ts.map +1 -1
- package/dist/configs/vitest/scratch-global-setup.js +77 -12
- package/dist/configs/vitest/scratch-global-setup.js.map +1 -1
- package/dist/core/config-shadowing.d.ts +72 -0
- package/dist/core/config-shadowing.d.ts.map +1 -0
- package/dist/core/config-shadowing.js +152 -0
- package/dist/core/config-shadowing.js.map +1 -0
- package/dist/core/config.d.ts +16 -1
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +1 -0
- package/dist/core/config.js.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.js +8 -0
- package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
- package/dist/core/lisa.d.ts +21 -0
- package/dist/core/lisa.d.ts.map +1 -1
- package/dist/core/lisa.js +46 -0
- package/dist/core/lisa.js.map +1 -1
- package/dist/core/nightly-e2e-guard-behavior-certificate.js +2 -2
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +17 -9
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/dist/opencode/plugin-templates/block-no-verify.sh +636 -101
- package/dist/strategies/copy-overwrite.d.ts +42 -0
- package/dist/strategies/copy-overwrite.d.ts.map +1 -1
- package/dist/strategies/copy-overwrite.js +69 -5
- package/dist/strategies/copy-overwrite.js.map +1 -1
- package/expo/copy-overwrite/scripts/check-lighthouse-details.mjs +138 -11
- package/expo/create-only/.github/workflows/deploy.yml +51 -4
- package/package.json +4 -4
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/hooks/block-managed-file-edits.sh +436 -9
- package/plugins/lisa/hooks/block-no-verify.agy.sh +608 -99
- package/plugins/lisa/hooks/block-no-verify.sh +636 -101
- package/plugins/lisa-agy/hooks/block-no-verify.agy.sh +608 -99
- 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-copilot/hooks/block-managed-file-edits.sh +436 -9
- package/plugins/lisa-copilot/hooks/block-no-verify.sh +636 -101
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/hooks/block-managed-file-edits.sh +436 -9
- package/plugins/lisa-cursor/hooks/block-no-verify.sh +636 -101
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-agy/plugin.json +1 -1
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-agy/plugin.json +1 -1
- package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-agy/plugin.json +1 -1
- package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-agy/plugin.json +1 -1
- package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-agy/plugin.json +1 -1
- package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-agy/plugin.json +1 -1
- package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-agy/plugin.json +1 -1
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/src/base/hooks/block-managed-file-edits.sh +436 -9
- package/plugins/src/base/hooks/block-no-verify.agy.sh +608 -99
- package/plugins/src/base/hooks/block-no-verify.sh +636 -101
- package/rails/create-only/.github/workflows/deploy.yml +45 -1
|
@@ -32,12 +32,41 @@ import { processBirthFingerprintSnapshot } from "./scratch-owner.js";
|
|
|
32
32
|
* against measured harm and belongs in its own ticket.
|
|
33
33
|
*/
|
|
34
34
|
export declare const MAX_NAMESPACE_ENTRIES = 512;
|
|
35
|
+
/**
|
|
36
|
+
* Why one entry could not be bound to an owner.
|
|
37
|
+
*
|
|
38
|
+
* `unrecognised` used to be a single word covering four different conditions,
|
|
39
|
+
* and the refusal reported none of them. That mattered because the conditions
|
|
40
|
+
* have opposite causes and opposite remedies: `marker-absent` on a root that
|
|
41
|
+
* acquires a marker moments later is a run allocating right now, while the same
|
|
42
|
+
* word on a root that keeps it is a writer that never wrote one at all. An
|
|
43
|
+
* operator — and the next person to read the failure — cannot tell those apart
|
|
44
|
+
* from a count.
|
|
45
|
+
*/
|
|
46
|
+
export type UnrecognisedReason =
|
|
47
|
+
/** No owner marker exists at the expected path */
|
|
48
|
+
"marker-absent"
|
|
49
|
+
/** A marker exists but is unreadable, oversized, a symlink, or invalid */
|
|
50
|
+
| "marker-unreadable"
|
|
51
|
+
/** A valid marker describes a different path, device, or inode */
|
|
52
|
+
| "identity-mismatch"
|
|
53
|
+
/** The entry is a symlink or is not a directory */
|
|
54
|
+
| "not-a-directory";
|
|
55
|
+
/** One unrecognised entry, paired with the reason it could not be bound. */
|
|
56
|
+
export interface UnrecognisedEntry {
|
|
57
|
+
/** Direct child basename */
|
|
58
|
+
readonly name: string;
|
|
59
|
+
/** Why the entry could not be bound to an owner */
|
|
60
|
+
readonly reason: UnrecognisedReason;
|
|
61
|
+
}
|
|
35
62
|
/** What an inspection of the namespace found. */
|
|
36
63
|
export interface NamespaceResidue {
|
|
37
64
|
/** Entries whose owning process is gone but which were not removed */
|
|
38
65
|
readonly orphaned: readonly string[];
|
|
39
66
|
/** Entries whose exact dead ownership cannot be established */
|
|
40
67
|
readonly unrecognised: readonly string[];
|
|
68
|
+
/** The same entries, each carrying why it could not be bound */
|
|
69
|
+
readonly unrecognisedDetail: readonly UnrecognisedEntry[];
|
|
41
70
|
/** Total entries present */
|
|
42
71
|
readonly total: number;
|
|
43
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scratch-global-setup.d.ts","sourceRoot":"","sources":["../../../src/configs/vitest/scratch-global-setup.ts"],"names":[],"mappings":"AAmDA,OAAO,EAGL,+BAA+B,EAGhC,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC,iDAAiD;AACjD,MAAM,WAAW,gBAAgB;IAC/B,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,+DAA+D;IAC/D,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,4BAA4B;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;
|
|
1
|
+
{"version":3,"file":"scratch-global-setup.d.ts","sourceRoot":"","sources":["../../../src/configs/vitest/scratch-global-setup.ts"],"names":[],"mappings":"AAmDA,OAAO,EAGL,+BAA+B,EAGhC,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC;;;;;;;;;;GAUG;AACH,MAAM,MAAM,kBAAkB;AAC5B,kDAAkD;AAChD,eAAe;AACjB,0EAA0E;GACxE,mBAAmB;AACrB,kEAAkE;GAChE,mBAAmB;AACrB,mDAAmD;GACjD,iBAAiB,CAAC;AAEtB,4EAA4E;AAC5E,MAAM,WAAW,iBAAiB;IAChC,4BAA4B;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;CACrC;AAED,iDAAiD;AACjD,MAAM,WAAW,gBAAgB;IAC/B,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,+DAA+D;IAC/D,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,gEAAgE;IAChE,QAAQ,CAAC,kBAAkB,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC1D,4BAA4B;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AA+ED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB,GAC3B,MAAK,MAA8B,EACnC,QAAO,CAAC,GAAG,EAAE,MAAM,KAAK,OAAwB,EAChD,QAAO,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAmC,KACnE,gBAoBF,CAAC;AAwEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,sBAAsB,GACjC,KAAK,MAAM,EACX,SAAS,gBAAgB,KACxB,MAAM,GAAG,SAuCX,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAC3B,QAAO,CAAC,GAAG,EAAE,MAAM,KAAK,OAAwB,EAChD,WAAU,OAAO,+BAAiE,KACjF,gBAQF,CAAC;AAgBF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,KAAG,MAcxC,CAAC;AAKf;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,oBAAoB,GAAI,SAAS,MAAM,KAAG,MAG/B,CAAC;AAEzB;;;;;GAKG;AACH,eAAO,MAAM,eAAe,mBAAmB,CAAC;AAQhD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,iBAAiB,GAC5B,SAAS,MAAM,EACf,QAAO,CAAC,IAAI,EAAE,MAAM,KAAK,IAExB,KACA,IAIF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,eAAe,GAC1B,SAAS,MAAM,EACf,cAAa,CAAC,IAAI,EAAE,MAAM,KAAK,IAE9B,KACA,IAMF,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,KAAK,QAAO,IAexB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,QAAQ,QAAO,IAE3B,CAAC"}
|
|
@@ -104,19 +104,33 @@ function markerMatchesInspectedPath(dir, root, owner) {
|
|
|
104
104
|
*/
|
|
105
105
|
function classifyNamespaceEntry(dir, name, alive, birth) {
|
|
106
106
|
const root = path.join(dir, name);
|
|
107
|
+
const shape = lstatSync(root, { throwIfNoEntry: false });
|
|
108
|
+
if (shape === undefined || shape.isSymbolicLink() || !shape.isDirectory()) {
|
|
109
|
+
return { kind: "unrecognised", reason: "not-a-directory" };
|
|
110
|
+
}
|
|
107
111
|
try {
|
|
108
112
|
const owner = readScratchOwnerRecord(root);
|
|
109
|
-
if (!markerMatchesInspectedPath(dir, root, owner))
|
|
110
|
-
return "unrecognised";
|
|
113
|
+
if (!markerMatchesInspectedPath(dir, root, owner)) {
|
|
114
|
+
return { kind: "unrecognised", reason: "identity-mismatch" };
|
|
115
|
+
}
|
|
111
116
|
return classifyScratchOwner(owner, {
|
|
112
117
|
isProcessAlive: alive,
|
|
113
118
|
processBirthFingerprint: birth,
|
|
114
119
|
}) === "preserve"
|
|
115
|
-
? "live"
|
|
116
|
-
: "orphaned";
|
|
120
|
+
? { kind: "live" }
|
|
121
|
+
: { kind: "orphaned" };
|
|
117
122
|
}
|
|
118
|
-
catch {
|
|
119
|
-
|
|
123
|
+
catch (error) {
|
|
124
|
+
// ENOENT is the marker being absent, which is a DIFFERENT condition from a
|
|
125
|
+
// marker that exists and cannot be trusted — see `UnrecognisedReason`. The
|
|
126
|
+
// two were one word until now, and separating them is the whole point of
|
|
127
|
+
// this classification.
|
|
128
|
+
return {
|
|
129
|
+
kind: "unrecognised",
|
|
130
|
+
reason: error.code === "ENOENT"
|
|
131
|
+
? "marker-absent"
|
|
132
|
+
: "marker-unreadable",
|
|
133
|
+
};
|
|
120
134
|
}
|
|
121
135
|
}
|
|
122
136
|
/**
|
|
@@ -138,13 +152,15 @@ export const inspectNamespace = (dir = scratchNamespaceDir(), alive = isProcessA
|
|
|
138
152
|
name,
|
|
139
153
|
disposition: classifyNamespaceEntry(dir, name, alive, birth),
|
|
140
154
|
}));
|
|
155
|
+
const unrecognisedDetail = classified.flatMap(entry => entry.disposition.kind === "unrecognised"
|
|
156
|
+
? [{ name: entry.name, reason: entry.disposition.reason }]
|
|
157
|
+
: []);
|
|
141
158
|
return {
|
|
142
159
|
orphaned: classified
|
|
143
|
-
.filter(entry => entry.disposition === "orphaned")
|
|
144
|
-
.map(entry => entry.name),
|
|
145
|
-
unrecognised: classified
|
|
146
|
-
.filter(entry => entry.disposition === "unrecognised")
|
|
160
|
+
.filter(entry => entry.disposition.kind === "orphaned")
|
|
147
161
|
.map(entry => entry.name),
|
|
162
|
+
unrecognised: unrecognisedDetail.map(entry => entry.name),
|
|
163
|
+
unrecognisedDetail,
|
|
148
164
|
total: entries.length,
|
|
149
165
|
};
|
|
150
166
|
};
|
|
@@ -154,6 +170,54 @@ export const inspectNamespace = (dir = scratchNamespaceDir(), alive = isProcessA
|
|
|
154
170
|
* @returns A comma-separated sample, elided beyond five.
|
|
155
171
|
*/
|
|
156
172
|
const sample = (names) => names.slice(0, 5).join(", ") + (names.length > 5 ? ", …" : "");
|
|
173
|
+
/**
|
|
174
|
+
* What each reason means, and what it points the reader at.
|
|
175
|
+
*
|
|
176
|
+
* Written as consequences rather than as restatements of the enum, because the
|
|
177
|
+
* failure is read by someone deciding what to do next. Each line names a cause
|
|
178
|
+
* that produces it and separates the transient case from the durable one — the
|
|
179
|
+
* distinction the single word `unrecognised` used to hide.
|
|
180
|
+
*/
|
|
181
|
+
const UNRECOGNISED_EXPLANATIONS = {
|
|
182
|
+
"marker-absent": "no owner marker at all. A root is briefly in this state while a run " +
|
|
183
|
+
"allocates it, so a few here during concurrent activity are a race with " +
|
|
184
|
+
"an allocation in flight; the same roots still present on a later run " +
|
|
185
|
+
"were written by something that never wrote a marker — a Lisa older than " +
|
|
186
|
+
"the owner-marker contract, or another tool sharing this directory",
|
|
187
|
+
"marker-unreadable": "a marker is present but cannot be trusted — unparseable, oversized, a " +
|
|
188
|
+
"symlink, or failing schema validation. Suspect a partially written " +
|
|
189
|
+
"marker or a writer disagreeing about the format",
|
|
190
|
+
"identity-mismatch": "a valid marker describes a different path, device, or inode than the one " +
|
|
191
|
+
"inspected. Suspect a moved, restored, or recreated directory",
|
|
192
|
+
"not-a-directory": "the entry is a symlink or not a directory, so it cannot be a run root " +
|
|
193
|
+
"at all. Suspect something other than Lisa writing into this namespace",
|
|
194
|
+
};
|
|
195
|
+
/**
|
|
196
|
+
* Group unrecognised entries by cause so the reader sees which one applies.
|
|
197
|
+
* @param detail - Unrecognised entries paired with their reasons
|
|
198
|
+
* @returns One indented line per reason present, each with a bounded sample.
|
|
199
|
+
*/
|
|
200
|
+
const describeUnrecognisedReasons = (detail) => {
|
|
201
|
+
const order = [
|
|
202
|
+
"marker-absent",
|
|
203
|
+
"marker-unreadable",
|
|
204
|
+
"identity-mismatch",
|
|
205
|
+
"not-a-directory",
|
|
206
|
+
];
|
|
207
|
+
return order
|
|
208
|
+
.flatMap(reason => {
|
|
209
|
+
const names = detail
|
|
210
|
+
.filter(entry => entry.reason === reason)
|
|
211
|
+
.map(entry => entry.name);
|
|
212
|
+
return names.length === 0
|
|
213
|
+
? []
|
|
214
|
+
: [
|
|
215
|
+
` ${reason} (${String(names.length)}): ${sample(names)} — ` +
|
|
216
|
+
`${UNRECOGNISED_EXPLANATIONS[reason]}.`,
|
|
217
|
+
];
|
|
218
|
+
})
|
|
219
|
+
.join("\n");
|
|
220
|
+
};
|
|
157
221
|
/** Safe operator recovery when automatic deletion authority is unavailable. */
|
|
158
222
|
const MANUAL_RECOVERY_GUIDANCE = "Remove only an exact entry whose dead owner you can independently verify. " +
|
|
159
223
|
"Do not clear the shared namespace or remove a live sibling's root.";
|
|
@@ -181,9 +245,10 @@ export const describeResidueFailure = (dir, residue) => {
|
|
|
181
245
|
}
|
|
182
246
|
if (residue.unrecognised.length > 0) {
|
|
183
247
|
return (`Test scratch namespace ${dir} holds ${String(residue.unrecognised.length)} ` +
|
|
184
|
-
`root(s) without valid owner-marker authority
|
|
248
|
+
`root(s) without valid owner-marker authority. ` +
|
|
185
249
|
`Lisa preserved the uncertain residue instead of deleting a path that ` +
|
|
186
|
-
`cannot be bound to a token and process-birth fingerprint
|
|
250
|
+
`cannot be bound to a token and process-birth fingerprint.\n` +
|
|
251
|
+
`${describeUnrecognisedReasons(residue.unrecognisedDetail)}\n` +
|
|
187
252
|
`There are ${String(residue.total)} entries in total; the historical ` +
|
|
188
253
|
`accumulating-residue ceiling is ${String(MAX_NAMESPACE_ENTRIES)}. ${MANUAL_RECOVERY_GUIDANCE}`);
|
|
189
254
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scratch-global-setup.js","sourceRoot":"","sources":["../../../src/configs/vitest/scratch-global-setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,+BAA+B,EAC/B,sBAAsB,GAEvB,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"scratch-global-setup.js","sourceRoot":"","sources":["../../../src/configs/vitest/scratch-global-setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config files whose **filename carries precedence**, and which existing
|
|
3
|
+
* sibling filenames the one Lisa ships would outrank.
|
|
4
|
+
*
|
|
5
|
+
* The guards in `strategies/copy-overwrite` all ask "does the destination path
|
|
6
|
+
* already exist?" That question is exactly right for the file Lisa writes and
|
|
7
|
+
* blind to the file Lisa's *outranks*. A repository configuring knip as
|
|
8
|
+
* `knip.ts` has no `knip.json`, so every one of those guards evaluates against
|
|
9
|
+
* a path that does not exist, passes trivially, and the template is written as
|
|
10
|
+
* a NEW file rather than as a replacement. knip then prefers `.json` over
|
|
11
|
+
* `.ts`, and the repository's own configuration silently stops being read
|
|
12
|
+
* (CodySwannGT/lisa#3501).
|
|
13
|
+
*
|
|
14
|
+
* Measured with knip 5.82.1, varying only which files exist:
|
|
15
|
+
*
|
|
16
|
+
* | present | knip reports |
|
|
17
|
+
* | ------------------ | ---------------------------------------- |
|
|
18
|
+
* | `knip.ts` only | the repository's real findings |
|
|
19
|
+
* | `knip.json` only | `Refine entry pattern (no matches)` |
|
|
20
|
+
* | **both** | identical to `knip.json` only |
|
|
21
|
+
*
|
|
22
|
+
* So the protection that already exists is path-level and this defect is
|
|
23
|
+
* precedence-level. Lisa is not overwriting the host's config; it is
|
|
24
|
+
* **outranking** it.
|
|
25
|
+
*
|
|
26
|
+
* **This is a seed-population guard and must stay one.** See
|
|
27
|
+
* {@link shadowedConfigSibling} for why applying it to Lisa's governance
|
|
28
|
+
* templates would open the hole it exists to close.
|
|
29
|
+
* @module core/config-shadowing
|
|
30
|
+
*/
|
|
31
|
+
/**
|
|
32
|
+
* The existing configuration file that Lisa's template would outrank, if any.
|
|
33
|
+
*
|
|
34
|
+
* **Callers must apply this only to the seed population** — templates a host
|
|
35
|
+
* owns after Lisa seeds them — and never to templates that declare
|
|
36
|
+
* `declaresReplacedEveryRun`. The asymmetry is the point, and inverting it
|
|
37
|
+
* would be worse than the defect this closes:
|
|
38
|
+
*
|
|
39
|
+
* - For a **seed** template (`knip.json`), Lisa's copy is a starting point the
|
|
40
|
+
* host then owns. A host that has already written its own config in another
|
|
41
|
+
* spelling has done the thing the seed exists to bootstrap, so writing would
|
|
42
|
+
* destroy the answer by outranking it.
|
|
43
|
+
* - For a **governance** template (`eslint.config.ts`), writing IS the point —
|
|
44
|
+
* the file is the guardrail. Standing down because a same-family file exists
|
|
45
|
+
* would let any host silently disable Lisa's enforcement by dropping in an
|
|
46
|
+
* `eslint.config.js`, and nothing would report it. That is #2374's
|
|
47
|
+
* undeliverable-fix incident re-entering through the door opened here. For
|
|
48
|
+
* those templates a same-family host file is a conflict to SURFACE, not a
|
|
49
|
+
* reason to stand down.
|
|
50
|
+
* @param relativePath - Repo-relative destination path of the managed template
|
|
51
|
+
* @param exists - Predicate answering whether a repo-relative path is present
|
|
52
|
+
* in the destination project
|
|
53
|
+
* @returns The existing sibling the template would outrank, with the tool it
|
|
54
|
+
* configures, or undefined when nothing would be shadowed
|
|
55
|
+
*/
|
|
56
|
+
export declare function shadowedConfigSibling(relativePath: string, exists: (candidateRelativePath: string) => Promise<boolean>): Promise<{
|
|
57
|
+
readonly tool: string;
|
|
58
|
+
readonly sibling: string;
|
|
59
|
+
} | undefined>;
|
|
60
|
+
/**
|
|
61
|
+
* The operator-facing explanation for a template Lisa declined to write.
|
|
62
|
+
*
|
|
63
|
+
* Written for someone who did not know the file was coming: it names what was
|
|
64
|
+
* not written, what already configures the tool, and why silence would have
|
|
65
|
+
* been worse than the skip.
|
|
66
|
+
* @param template - Repo-relative path Lisa would have written
|
|
67
|
+
* @param tool - Tool whose configuration is at stake
|
|
68
|
+
* @param sibling - Existing repo-relative config the template would outrank
|
|
69
|
+
* @returns One line for the apply summary
|
|
70
|
+
*/
|
|
71
|
+
export declare function shadowedConfigNote(template: string, tool: string, sibling: string): string;
|
|
72
|
+
//# sourceMappingURL=config-shadowing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-shadowing.d.ts","sourceRoot":"","sources":["../../src/core/config-shadowing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAyGH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,qBAAqB,CACzC,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,CAAC,qBAAqB,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GAC1D,OAAO,CAAC;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAC,CAa1E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,MAAM,CAMR"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config files whose **filename carries precedence**, and which existing
|
|
3
|
+
* sibling filenames the one Lisa ships would outrank.
|
|
4
|
+
*
|
|
5
|
+
* The guards in `strategies/copy-overwrite` all ask "does the destination path
|
|
6
|
+
* already exist?" That question is exactly right for the file Lisa writes and
|
|
7
|
+
* blind to the file Lisa's *outranks*. A repository configuring knip as
|
|
8
|
+
* `knip.ts` has no `knip.json`, so every one of those guards evaluates against
|
|
9
|
+
* a path that does not exist, passes trivially, and the template is written as
|
|
10
|
+
* a NEW file rather than as a replacement. knip then prefers `.json` over
|
|
11
|
+
* `.ts`, and the repository's own configuration silently stops being read
|
|
12
|
+
* (CodySwannGT/lisa#3501).
|
|
13
|
+
*
|
|
14
|
+
* Measured with knip 5.82.1, varying only which files exist:
|
|
15
|
+
*
|
|
16
|
+
* | present | knip reports |
|
|
17
|
+
* | ------------------ | ---------------------------------------- |
|
|
18
|
+
* | `knip.ts` only | the repository's real findings |
|
|
19
|
+
* | `knip.json` only | `Refine entry pattern (no matches)` |
|
|
20
|
+
* | **both** | identical to `knip.json` only |
|
|
21
|
+
*
|
|
22
|
+
* So the protection that already exists is path-level and this defect is
|
|
23
|
+
* precedence-level. Lisa is not overwriting the host's config; it is
|
|
24
|
+
* **outranking** it.
|
|
25
|
+
*
|
|
26
|
+
* **This is a seed-population guard and must stay one.** See
|
|
27
|
+
* {@link shadowedConfigSibling} for why applying it to Lisa's governance
|
|
28
|
+
* templates would open the hole it exists to close.
|
|
29
|
+
* @module core/config-shadowing
|
|
30
|
+
*/
|
|
31
|
+
/**
|
|
32
|
+
* The families this guard knows about.
|
|
33
|
+
*
|
|
34
|
+
* Deliberately one entry. knip is the reported defect, and the shape of the
|
|
35
|
+
* table is what makes the next tool a one-line addition rather than a
|
|
36
|
+
* redesign — but adding a tool changes that tool's behaviour, so each earns
|
|
37
|
+
* its own change and its own evidence.
|
|
38
|
+
*
|
|
39
|
+
* Surveyed and deliberately EXCLUDED, so the omissions are decisions rather
|
|
40
|
+
* than oversights:
|
|
41
|
+
*
|
|
42
|
+
* - `eslint.config.ts`, `vitest.config.ts`, `commitlint.config.cjs`,
|
|
43
|
+
* `sgconfig.yml` — governance templates. See {@link shadowedConfigSibling};
|
|
44
|
+
* excluding them is the whole safety argument, not an unfinished edge.
|
|
45
|
+
* - `tsconfig.json` — no alternative spelling exists. TypeScript resolves one
|
|
46
|
+
* filename, so nothing can outrank it and there is no family to declare.
|
|
47
|
+
* - `.prettierrc.json`, `.lintstagedrc.json` — seed templates whose tools DO
|
|
48
|
+
* have precedence orders, so they are candidates. Left out because neither
|
|
49
|
+
* has been observed shadowing anything, and a guard added on speculation
|
|
50
|
+
* changes real behaviour on the strength of a guess. They are the natural
|
|
51
|
+
* second entries once a report or a measurement exists.
|
|
52
|
+
*/
|
|
53
|
+
const CONFIG_FAMILIES = [
|
|
54
|
+
{
|
|
55
|
+
tool: "knip",
|
|
56
|
+
template: "knip.json",
|
|
57
|
+
// Read out of the resolver, not out of the report or the docs. knip walks
|
|
58
|
+
// `KNIP_CONFIG_LOCATIONS` in order and takes the FIRST spelling that
|
|
59
|
+
// exists (`util/create-options.js`, knip 5.82.1), and `knip.json` heads
|
|
60
|
+
// that list — so every spelling below it loses its settings the moment
|
|
61
|
+
// Lisa's file lands beside it. Listed in knip's own order, which is also
|
|
62
|
+
// precedence order, so a reader can diff this against the constant.
|
|
63
|
+
//
|
|
64
|
+
// The report proposed `knip.{ts,js,mjs,cjs}`, and `knip.mjs`/`knip.cjs`
|
|
65
|
+
// are deliberately absent: neither is in `KNIP_CONFIG_LOCATIONS`, so knip
|
|
66
|
+
// never reads them and a project holding one has no working knip config to
|
|
67
|
+
// shadow. Standing down for those would withhold the seed, leave knip on
|
|
68
|
+
// defaults, and print a note claiming the project configures knip in a
|
|
69
|
+
// file knip ignores — sending the next operator down exactly the debugging
|
|
70
|
+
// dead end that made this defect expensive.
|
|
71
|
+
//
|
|
72
|
+
// `package.json#knip` is a real knip config surface and is NOT a filename,
|
|
73
|
+
// so it cannot be probed through this table's exists-predicate. It is also
|
|
74
|
+
// a weaker version of the same defect — `create-options.js` merges it
|
|
75
|
+
// UNDER the config file (`Object.assign({}, manifest.knip, fileConfig)`),
|
|
76
|
+
// so a written `knip.json` overrides whichever keys the host set there
|
|
77
|
+
// rather than replacing the file wholesale. Recorded here as a known
|
|
78
|
+
// adjacent surface rather than silently unhandled; closing it needs a
|
|
79
|
+
// content probe, which is its own change and its own evidence.
|
|
80
|
+
shadows: [
|
|
81
|
+
"knip.jsonc",
|
|
82
|
+
".knip.json",
|
|
83
|
+
".knip.jsonc",
|
|
84
|
+
"knip.ts",
|
|
85
|
+
"knip.js",
|
|
86
|
+
"knip.config.ts",
|
|
87
|
+
"knip.config.js",
|
|
88
|
+
],
|
|
89
|
+
},
|
|
90
|
+
];
|
|
91
|
+
/**
|
|
92
|
+
* Normalise a repo-relative path so Windows separators compare equal.
|
|
93
|
+
* @param relativePath - Repo-relative path as the caller spelled it
|
|
94
|
+
* @returns The same path with forward slashes
|
|
95
|
+
*/
|
|
96
|
+
function normalise(relativePath) {
|
|
97
|
+
return relativePath.replaceAll("\\", "/");
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* The existing configuration file that Lisa's template would outrank, if any.
|
|
101
|
+
*
|
|
102
|
+
* **Callers must apply this only to the seed population** — templates a host
|
|
103
|
+
* owns after Lisa seeds them — and never to templates that declare
|
|
104
|
+
* `declaresReplacedEveryRun`. The asymmetry is the point, and inverting it
|
|
105
|
+
* would be worse than the defect this closes:
|
|
106
|
+
*
|
|
107
|
+
* - For a **seed** template (`knip.json`), Lisa's copy is a starting point the
|
|
108
|
+
* host then owns. A host that has already written its own config in another
|
|
109
|
+
* spelling has done the thing the seed exists to bootstrap, so writing would
|
|
110
|
+
* destroy the answer by outranking it.
|
|
111
|
+
* - For a **governance** template (`eslint.config.ts`), writing IS the point —
|
|
112
|
+
* the file is the guardrail. Standing down because a same-family file exists
|
|
113
|
+
* would let any host silently disable Lisa's enforcement by dropping in an
|
|
114
|
+
* `eslint.config.js`, and nothing would report it. That is #2374's
|
|
115
|
+
* undeliverable-fix incident re-entering through the door opened here. For
|
|
116
|
+
* those templates a same-family host file is a conflict to SURFACE, not a
|
|
117
|
+
* reason to stand down.
|
|
118
|
+
* @param relativePath - Repo-relative destination path of the managed template
|
|
119
|
+
* @param exists - Predicate answering whether a repo-relative path is present
|
|
120
|
+
* in the destination project
|
|
121
|
+
* @returns The existing sibling the template would outrank, with the tool it
|
|
122
|
+
* configures, or undefined when nothing would be shadowed
|
|
123
|
+
*/
|
|
124
|
+
export async function shadowedConfigSibling(relativePath, exists) {
|
|
125
|
+
const normalised = normalise(relativePath);
|
|
126
|
+
const family = CONFIG_FAMILIES.find(candidate => candidate.template === normalised);
|
|
127
|
+
if (family === undefined)
|
|
128
|
+
return undefined;
|
|
129
|
+
for (const sibling of family.shadows) {
|
|
130
|
+
if (await exists(sibling)) {
|
|
131
|
+
return { sibling, tool: family.tool };
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return undefined;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* The operator-facing explanation for a template Lisa declined to write.
|
|
138
|
+
*
|
|
139
|
+
* Written for someone who did not know the file was coming: it names what was
|
|
140
|
+
* not written, what already configures the tool, and why silence would have
|
|
141
|
+
* been worse than the skip.
|
|
142
|
+
* @param template - Repo-relative path Lisa would have written
|
|
143
|
+
* @param tool - Tool whose configuration is at stake
|
|
144
|
+
* @param sibling - Existing repo-relative config the template would outrank
|
|
145
|
+
* @returns One line for the apply summary
|
|
146
|
+
*/
|
|
147
|
+
export function shadowedConfigNote(template, tool, sibling) {
|
|
148
|
+
return (`${template}: not written — this project already configures ${tool} in ` +
|
|
149
|
+
`${sibling}, which ${template} would outrank, silently replacing your ` +
|
|
150
|
+
`settings with Lisa's defaults.`);
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=config-shadowing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-shadowing.js","sourceRoot":"","sources":["../../src/core/config-shadowing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAmCH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,eAAe,GAA4B;IAC/C;QACE,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,WAAW;QACrB,0EAA0E;QAC1E,qEAAqE;QACrE,wEAAwE;QACxE,uEAAuE;QACvE,yEAAyE;QACzE,oEAAoE;QACpE,EAAE;QACF,wEAAwE;QACxE,0EAA0E;QAC1E,2EAA2E;QAC3E,yEAAyE;QACzE,uEAAuE;QACvE,2EAA2E;QAC3E,4CAA4C;QAC5C,EAAE;QACF,2EAA2E;QAC3E,2EAA2E;QAC3E,sEAAsE;QACtE,0EAA0E;QAC1E,uEAAuE;QACvE,qEAAqE;QACrE,sEAAsE;QACtE,+DAA+D;QAC/D,OAAO,EAAE;YACP,YAAY;YACZ,YAAY;YACZ,aAAa;YACb,SAAS;YACT,SAAS;YACT,gBAAgB;YAChB,gBAAgB;SACjB;KACF;CACF,CAAC;AAEF;;;;GAIG;AACH,SAAS,SAAS,CAAC,YAAoB;IACrC,OAAO,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,YAAoB,EACpB,MAA2D;IAE3D,MAAM,UAAU,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CACjC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,KAAK,UAAU,CAC/C,CAAC;IACF,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAE3C,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACrC,IAAI,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QACxC,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAAgB,EAChB,IAAY,EACZ,OAAe;IAEf,OAAO,CACL,GAAG,QAAQ,mDAAmD,IAAI,MAAM;QACxE,GAAG,OAAO,WAAW,QAAQ,0CAA0C;QACvE,gCAAgC,CACjC,CAAC;AACJ,CAAC"}
|
package/dist/core/config.d.ts
CHANGED
|
@@ -197,7 +197,20 @@ export interface FileOperationResult {
|
|
|
197
197
|
* operator reading "out of date" about a guard they deliberately hardened
|
|
198
198
|
* would fix the wrong thing.
|
|
199
199
|
*/
|
|
200
|
-
| "host-ahead"
|
|
200
|
+
| "host-ahead"
|
|
201
|
+
/**
|
|
202
|
+
* A template Lisa did not write because the project already configures
|
|
203
|
+
* that tool under a filename Lisa's would OUTRANK.
|
|
204
|
+
*
|
|
205
|
+
* Distinct from "skipped" for the same reason "stale" is: `skipped` says
|
|
206
|
+
* nothing changed and nothing needed to, and folding a finding into it is
|
|
207
|
+
* exactly what let the previous defect stay invisible. Here something was
|
|
208
|
+
* deliberately not written, and the operator needs to know both that the
|
|
209
|
+
* template is absent and why — a `knip.json` written beside a repository's
|
|
210
|
+
* own `knip.ts` silently replaces its settings with stack defaults
|
|
211
|
+
* (CodySwannGT/lisa#3501).
|
|
212
|
+
*/
|
|
213
|
+
| "shadowed" | "overwritten" | "appended" | "merged" | "created";
|
|
201
214
|
readonly linesAdded?: number;
|
|
202
215
|
/**
|
|
203
216
|
* Operator-readable explanation of a non-obvious outcome, shown verbatim.
|
|
@@ -217,6 +230,8 @@ export interface OperationCounters {
|
|
|
217
230
|
stale: number;
|
|
218
231
|
/** Lisa-owned artifacts preserved because the installed copy may be ahead. */
|
|
219
232
|
hostAhead: number;
|
|
233
|
+
/** Templates not written because they would outrank the project's own config. */
|
|
234
|
+
shadowed: number;
|
|
220
235
|
overwritten: number;
|
|
221
236
|
appended: number;
|
|
222
237
|
merged: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
|
package/dist/core/config.js
CHANGED
package/dist/core/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAwBA;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAE/B;IACF,IAAI,EAAE,YAAY;IAClB,MAAM,EAAE,YAAY;IACpB,GAAG,EAAE,YAAY;IACjB,eAAe,EAAE,YAAY;IAC7B,MAAM,EAAE,YAAY;IACpB,aAAa,EAAE,YAAY;IAC3B,UAAU,EAAE,SAAS;IACrB,KAAK,EAAE,SAAS;CACR,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA2B;IACxD,YAAY;IACZ,aAAa;IACb,eAAe;IACf,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,KAAK;IACL,OAAO;CACC,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAA4B;IACtD,gBAAgB;IAChB,eAAe;IACf,aAAa;IACb,OAAO;IACP,cAAc;IACd,cAAc;CACN,CAAC;AAyBX;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAuB;IAChD,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,KAAK;IACL,SAAS;IACT,UAAU;IACV,OAAO;CACC,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAsC;IAChE,GAAG,EAAE,OAAO;CACb,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAsB;IACxD,GAAG,cAAc;IACjB,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;CAChC,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAsC;IACvE,IAAI,EAAE,OAAO;CACd,CAAC;AASF;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAgB,EAChB,KAAgB;IAEhB,IAAI,OAAO,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IACrC,OAAO,OAAO,KAAK,KAAK,CAAC;AAC3B,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAY,QAAQ,CAAC;AAoFjD;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,YAAoB,EACpB,OAAqC;IAErC,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACxC,8EAA8E;IAC9E,0CAA0C;IAC1C,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClD,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QAC9B,MAAM,KAAK,GAAG,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9D,OAAO,KAAK,KAAK,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,oBAAoB,CAAC,KAAa;IACzC,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAChF,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lisa-owned-hash-ledger.d.ts","sourceRoot":"","sources":["../../src/core/lisa-owned-hash-ledger.ts"],"names":[],"mappings":"AACA,6EAA6E;AAE7E;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAC3C,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"lisa-owned-hash-ledger.d.ts","sourceRoot":"","sources":["../../src/core/lisa-owned-hash-ledger.ts"],"names":[],"mappings":"AACA,6EAA6E;AAE7E;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAC3C,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CA+6BjC,CAAC;AAEH;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,+BAA+B,EAAE,QAAQ,CACpD,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAk1BjC,CAAC"}
|
|
@@ -155,6 +155,7 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
|
|
|
155
155
|
"scripts/check-lighthouse-details.mjs": Object.freeze([
|
|
156
156
|
"266b8c739fdede2af9530f44272a01171a6a671068b70b4621a02ea5ac5670b3",
|
|
157
157
|
"591b440da5e1f786ceaedeaeadee7c6d1a5604a01a3e32add689cbf85a23a923",
|
|
158
|
+
"6a836272c43592f2ffd2f622656ee011b80099fe368cf46e2ee35384d5128c3d",
|
|
158
159
|
"72ae7722f890160e98cce6157a96a986cab2b6bd7e12708b980801100449dd5e",
|
|
159
160
|
"aaa638667dfd63c44a218b19a14abeef6d99a61820bca2115bb74b857b4284d0",
|
|
160
161
|
"cc45ce2836005d889ec0caa0426a97264f94e0d836ac6142e8f6e90623c9b7c0",
|
|
@@ -578,6 +579,7 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
|
|
|
578
579
|
"133acf329582c5d4df9deb6a297df13216993c1bfec0b7df0663c69a1e2bb0db",
|
|
579
580
|
"18aebaef5ea9bf6af220dc9beef80a5cfb37282c6a53047783b4cc96d8daa4e3",
|
|
580
581
|
"3882bd338e65b9db9e97aa9e70426f0f7a0d191539df51636e1a5e93a2501137",
|
|
582
|
+
"4ada2bd17d423e563aa57c623363b250f6dd31c64d036bcb02a7ae3968a6ebb5",
|
|
581
583
|
"92e0ff52fcb29bc112ddcf1c3d85432032596572a84f3c5806a5b0c286ae55b3",
|
|
582
584
|
"c1b2abf324269c0248136500eb37d7c43559552f152a7c5d07a23c219fdc70b2",
|
|
583
585
|
"c6472a7f9d509a7eb7b17d665fe3f34827d4e5a50ba5b0d044dd325b468adbf8",
|
|
@@ -591,6 +593,7 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
|
|
|
591
593
|
"19ac4c32a9850dceb507dd8aac5a2646478e3ec3bbc1b8c7bf95d647b70a10f1",
|
|
592
594
|
"19e520180322247dd3ab61c80b13960115ae48ccd739ec3c0b4216cd8a2555a8",
|
|
593
595
|
"1be850b8e8ebced37d2b6dbeeb1f4a002ca47da904f6a635575b214a9a2ca6c1",
|
|
596
|
+
"220e16d26cefff69cb26de5c33491a5d4c67c9905032a87e07f14580dbb580be",
|
|
594
597
|
"2df476aacebcb2544a12f459a0092e88eb28c0d00e45fd7ed909c75dfe441027",
|
|
595
598
|
"33e2bd341eb992036059b0c4606db35a218adcfeca7e44d174fedf8ebdff29d2",
|
|
596
599
|
"3b93a0affab6413e3c14a6f43de5acb586286ed1819ece0a66b30429b4d00490",
|
|
@@ -799,6 +802,7 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
|
|
|
799
802
|
"scripts/lisa-test-node.mjs": Object.freeze([
|
|
800
803
|
"31b338144af00e20e3de02202982846d7333433a9bbda76a8c77d50e6fdbc47b",
|
|
801
804
|
"c2b0f436107de5de0f616090012b48752bbbb47dd0add20098662faac0f5f677",
|
|
805
|
+
"cd436584d756442fc393557a3244bbdacdf915bd0fb1a472ebe7afa8103d3475",
|
|
802
806
|
]),
|
|
803
807
|
"scripts/lisa-work-item.mjs": Object.freeze([
|
|
804
808
|
"04401ae05bf9464e6929180ffdfff80afc528a1df20733b032a0342252ca1d4a",
|
|
@@ -1104,6 +1108,7 @@ export const LISA_OWNED_HASH_HISTORY_DERIVED = Object.freeze({
|
|
|
1104
1108
|
"scripts/check-lighthouse-details.mjs": Object.freeze([
|
|
1105
1109
|
"266b8c739fdede2af9530f44272a01171a6a671068b70b4621a02ea5ac5670b3",
|
|
1106
1110
|
"591b440da5e1f786ceaedeaeadee7c6d1a5604a01a3e32add689cbf85a23a923",
|
|
1111
|
+
"6a836272c43592f2ffd2f622656ee011b80099fe368cf46e2ee35384d5128c3d",
|
|
1107
1112
|
"72ae7722f890160e98cce6157a96a986cab2b6bd7e12708b980801100449dd5e",
|
|
1108
1113
|
"aaa638667dfd63c44a218b19a14abeef6d99a61820bca2115bb74b857b4284d0",
|
|
1109
1114
|
"cc45ce2836005d889ec0caa0426a97264f94e0d836ac6142e8f6e90623c9b7c0",
|
|
@@ -1466,6 +1471,7 @@ export const LISA_OWNED_HASH_HISTORY_DERIVED = Object.freeze({
|
|
|
1466
1471
|
"133acf329582c5d4df9deb6a297df13216993c1bfec0b7df0663c69a1e2bb0db",
|
|
1467
1472
|
"18aebaef5ea9bf6af220dc9beef80a5cfb37282c6a53047783b4cc96d8daa4e3",
|
|
1468
1473
|
"3882bd338e65b9db9e97aa9e70426f0f7a0d191539df51636e1a5e93a2501137",
|
|
1474
|
+
"4ada2bd17d423e563aa57c623363b250f6dd31c64d036bcb02a7ae3968a6ebb5",
|
|
1469
1475
|
"92e0ff52fcb29bc112ddcf1c3d85432032596572a84f3c5806a5b0c286ae55b3",
|
|
1470
1476
|
"c1b2abf324269c0248136500eb37d7c43559552f152a7c5d07a23c219fdc70b2",
|
|
1471
1477
|
"c6472a7f9d509a7eb7b17d665fe3f34827d4e5a50ba5b0d044dd325b468adbf8",
|
|
@@ -1479,6 +1485,7 @@ export const LISA_OWNED_HASH_HISTORY_DERIVED = Object.freeze({
|
|
|
1479
1485
|
"19ac4c32a9850dceb507dd8aac5a2646478e3ec3bbc1b8c7bf95d647b70a10f1",
|
|
1480
1486
|
"19e520180322247dd3ab61c80b13960115ae48ccd739ec3c0b4216cd8a2555a8",
|
|
1481
1487
|
"1be850b8e8ebced37d2b6dbeeb1f4a002ca47da904f6a635575b214a9a2ca6c1",
|
|
1488
|
+
"220e16d26cefff69cb26de5c33491a5d4c67c9905032a87e07f14580dbb580be",
|
|
1482
1489
|
"2df476aacebcb2544a12f459a0092e88eb28c0d00e45fd7ed909c75dfe441027",
|
|
1483
1490
|
"33e2bd341eb992036059b0c4606db35a218adcfeca7e44d174fedf8ebdff29d2",
|
|
1484
1491
|
"3b93a0affab6413e3c14a6f43de5acb586286ed1819ece0a66b30429b4d00490",
|
|
@@ -1665,6 +1672,7 @@ export const LISA_OWNED_HASH_HISTORY_DERIVED = Object.freeze({
|
|
|
1665
1672
|
"scripts/lisa-test-node.mjs": Object.freeze([
|
|
1666
1673
|
"31b338144af00e20e3de02202982846d7333433a9bbda76a8c77d50e6fdbc47b",
|
|
1667
1674
|
"c2b0f436107de5de0f616090012b48752bbbb47dd0add20098662faac0f5f677",
|
|
1675
|
+
"cd436584d756442fc393557a3244bbdacdf915bd0fb1a472ebe7afa8103d3475",
|
|
1668
1676
|
]),
|
|
1669
1677
|
"scripts/lisa-work-item.mjs": Object.freeze([
|
|
1670
1678
|
"04401ae05bf9464e6929180ffdfff80afc528a1df20733b032a0342252ca1d4a",
|