@codyswann/lisa 4.22.10 → 4.22.12
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/check-release-package-identity.mjs +51 -41
- package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.js +2 -0
- package/dist/core/lisa-owned-hash-ledger.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 +3 -2
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/dist/strategies/copy-contents.d.ts +1 -1
- package/dist/strategies/copy-contents.d.ts.map +1 -1
- package/dist/strategies/copy-contents.js +6 -2
- package/dist/strategies/copy-contents.js.map +1 -1
- package/package.json +3 -3
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-agy/plugin.json +1 -1
- package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-agy/plugin.json +1 -1
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-agy/plugin.json +1 -1
- package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-agy/plugin.json +1 -1
- package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-agy/plugin.json +1 -1
- package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-agy/plugin.json +1 -1
- package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-agy/plugin.json +1 -1
- package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-agy/plugin.json +1 -1
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
- package/scripts/check-release-package-identity.mjs +51 -41
|
@@ -90,6 +90,33 @@ function tarMember(tarballPath, member) {
|
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
+
/** Create the one npm archive whose bytes will be published. */
|
|
94
|
+
function createCandidateArchive(root, packDestination) {
|
|
95
|
+
mkdirSync(packDestination, { recursive: true });
|
|
96
|
+
if (readdirSync(packDestination).length !== 0) {
|
|
97
|
+
mismatch(`pack destination must be empty (${packDestination})`);
|
|
98
|
+
}
|
|
99
|
+
try {
|
|
100
|
+
return String(
|
|
101
|
+
boundedExecFileSync(
|
|
102
|
+
"npm",
|
|
103
|
+
[
|
|
104
|
+
"pack",
|
|
105
|
+
"--ignore-scripts",
|
|
106
|
+
"--silent",
|
|
107
|
+
"--pack-destination",
|
|
108
|
+
packDestination,
|
|
109
|
+
],
|
|
110
|
+
{ cwd: root, encoding: "utf8", timeout: 120_000 }
|
|
111
|
+
)
|
|
112
|
+
);
|
|
113
|
+
} catch (error) {
|
|
114
|
+
mismatch(
|
|
115
|
+
`npm pack failed before publication (${error instanceof Error ? error.message : String(error)})`
|
|
116
|
+
);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
93
120
|
/** Extract the one workspace package version certified by generated bytes. */
|
|
94
121
|
function certificateVersion(bytes, label) {
|
|
95
122
|
const match = String(bytes).match(
|
|
@@ -115,18 +142,24 @@ export function assertReleaseCommit(releaseCommit) {
|
|
|
115
142
|
* @returns {{headCommit: string, tagCommit: string, releaseCommit: string}}
|
|
116
143
|
*/
|
|
117
144
|
export function assertCheckoutIdentity({ root, releaseCommit, tag }) {
|
|
118
|
-
assertReleaseCommit(releaseCommit);
|
|
145
|
+
const validatedReleaseCommit = assertReleaseCommit(releaseCommit);
|
|
119
146
|
const headCommit = gitCommit(root, "HEAD");
|
|
120
|
-
if (headCommit !==
|
|
147
|
+
if (headCommit !== validatedReleaseCommit) {
|
|
121
148
|
mismatch(
|
|
122
|
-
`HEAD ${headCommit} does not match release commit ${
|
|
149
|
+
`HEAD ${headCommit} does not match release commit ${validatedReleaseCommit}`
|
|
123
150
|
);
|
|
124
151
|
}
|
|
125
152
|
const tagCommit = gitCommit(root, tag);
|
|
126
|
-
if (tagCommit !==
|
|
127
|
-
mismatch(
|
|
153
|
+
if (tagCommit !== validatedReleaseCommit) {
|
|
154
|
+
mismatch(
|
|
155
|
+
`tag ${tag} resolves ${tagCommit}, expected ${validatedReleaseCommit}`
|
|
156
|
+
);
|
|
128
157
|
}
|
|
129
|
-
return Object.freeze({
|
|
158
|
+
return Object.freeze({
|
|
159
|
+
headCommit,
|
|
160
|
+
tagCommit,
|
|
161
|
+
releaseCommit: validatedReleaseCommit,
|
|
162
|
+
});
|
|
130
163
|
}
|
|
131
164
|
|
|
132
165
|
/**
|
|
@@ -140,21 +173,21 @@ export function packAndValidateReleaseCandidate({
|
|
|
140
173
|
releaseCommit,
|
|
141
174
|
packDestination,
|
|
142
175
|
}) {
|
|
143
|
-
assertReleaseCommit(releaseCommit);
|
|
176
|
+
const validatedReleaseCommit = assertReleaseCommit(releaseCommit);
|
|
144
177
|
const packageJson = readJson(path.join(root, "package.json"), "package.json");
|
|
145
178
|
if (packageJson.version !== version) {
|
|
146
179
|
mismatch(
|
|
147
180
|
`package.json version ${JSON.stringify(packageJson.version)} expected ${version}`
|
|
148
181
|
);
|
|
149
182
|
}
|
|
150
|
-
if (packageJson.lisaReleaseCommit !==
|
|
183
|
+
if (packageJson.lisaReleaseCommit !== validatedReleaseCommit) {
|
|
151
184
|
mismatch(
|
|
152
|
-
`package.json lisaReleaseCommit ${JSON.stringify(packageJson.lisaReleaseCommit)} expected ${
|
|
185
|
+
`package.json lisaReleaseCommit ${JSON.stringify(packageJson.lisaReleaseCommit)} expected ${validatedReleaseCommit}`
|
|
153
186
|
);
|
|
154
187
|
}
|
|
155
|
-
if (packageJson.gitHead !==
|
|
188
|
+
if (packageJson.gitHead !== validatedReleaseCommit) {
|
|
156
189
|
mismatch(
|
|
157
|
-
`package.json gitHead ${JSON.stringify(packageJson.gitHead)} expected ${
|
|
190
|
+
`package.json gitHead ${JSON.stringify(packageJson.gitHead)} expected ${validatedReleaseCommit}`
|
|
158
191
|
);
|
|
159
192
|
}
|
|
160
193
|
|
|
@@ -172,30 +205,7 @@ export function packAndValidateReleaseCandidate({
|
|
|
172
205
|
}
|
|
173
206
|
}
|
|
174
207
|
|
|
175
|
-
|
|
176
|
-
if (readdirSync(packDestination).length !== 0) {
|
|
177
|
-
mismatch(`pack destination must be empty (${packDestination})`);
|
|
178
|
-
}
|
|
179
|
-
let packOutput;
|
|
180
|
-
try {
|
|
181
|
-
packOutput = String(
|
|
182
|
-
boundedExecFileSync(
|
|
183
|
-
"npm",
|
|
184
|
-
[
|
|
185
|
-
"pack",
|
|
186
|
-
"--ignore-scripts",
|
|
187
|
-
"--silent",
|
|
188
|
-
"--pack-destination",
|
|
189
|
-
packDestination,
|
|
190
|
-
],
|
|
191
|
-
{ cwd: root, encoding: "utf8", timeout: 120_000 }
|
|
192
|
-
)
|
|
193
|
-
);
|
|
194
|
-
} catch (error) {
|
|
195
|
-
mismatch(
|
|
196
|
-
`npm pack failed before publication (${error instanceof Error ? error.message : String(error)})`
|
|
197
|
-
);
|
|
198
|
-
}
|
|
208
|
+
const packOutput = createCandidateArchive(root, packDestination);
|
|
199
209
|
const candidates = readdirSync(packDestination).filter(file =>
|
|
200
210
|
file.endsWith(".tgz")
|
|
201
211
|
);
|
|
@@ -223,14 +233,14 @@ export function packAndValidateReleaseCandidate({
|
|
|
223
233
|
`packed package version ${JSON.stringify(packedPackage.version)} expected ${version}`
|
|
224
234
|
);
|
|
225
235
|
}
|
|
226
|
-
if (packedPackage.lisaReleaseCommit !==
|
|
236
|
+
if (packedPackage.lisaReleaseCommit !== validatedReleaseCommit) {
|
|
227
237
|
mismatch(
|
|
228
|
-
`packed lisaReleaseCommit ${JSON.stringify(packedPackage.lisaReleaseCommit)} expected ${
|
|
238
|
+
`packed lisaReleaseCommit ${JSON.stringify(packedPackage.lisaReleaseCommit)} expected ${validatedReleaseCommit}`
|
|
229
239
|
);
|
|
230
240
|
}
|
|
231
|
-
if (packedPackage.gitHead !==
|
|
241
|
+
if (packedPackage.gitHead !== validatedReleaseCommit) {
|
|
232
242
|
mismatch(
|
|
233
|
-
`packed gitHead ${JSON.stringify(packedPackage.gitHead)} expected ${
|
|
243
|
+
`packed gitHead ${JSON.stringify(packedPackage.gitHead)} expected ${validatedReleaseCommit}`
|
|
234
244
|
);
|
|
235
245
|
}
|
|
236
246
|
|
|
@@ -241,7 +251,7 @@ export function packAndValidateReleaseCandidate({
|
|
|
241
251
|
packedCertificateVersion = certificateVersion(member, "packed certificate");
|
|
242
252
|
if (packedCertificateVersion !== version) {
|
|
243
253
|
mismatch(
|
|
244
|
-
`packed certificate names ${packedCertificateVersion}, expected ${version} at release commit ${
|
|
254
|
+
`packed certificate names ${packedCertificateVersion}, expected ${version} at release commit ${validatedReleaseCommit} (${PACKED_CERTIFICATE})`
|
|
245
255
|
);
|
|
246
256
|
}
|
|
247
257
|
certificateMemberSha256 = sha256(member);
|
|
@@ -249,7 +259,7 @@ export function packAndValidateReleaseCandidate({
|
|
|
249
259
|
|
|
250
260
|
return Object.freeze({
|
|
251
261
|
version,
|
|
252
|
-
releaseCommit,
|
|
262
|
+
releaseCommit: validatedReleaseCommit,
|
|
253
263
|
certificateVersion: packedCertificateVersion,
|
|
254
264
|
tarballPath,
|
|
255
265
|
tarballSha256: sha256(tarballBytes),
|