@codyswann/lisa 2.311.11 → 2.311.13
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-readiness-guardrails.d.ts.map +1 -1
- package/dist/cli/doctor-readiness-guardrails.js +9 -2
- package/dist/cli/doctor-readiness-guardrails.js.map +1 -1
- package/dist/cli/doctor-readiness-local-scripts.d.ts +14 -0
- package/dist/cli/doctor-readiness-local-scripts.d.ts.map +1 -1
- package/dist/cli/doctor-readiness-local-scripts.js +48 -32
- package/dist/cli/doctor-readiness-local-scripts.js.map +1 -1
- package/dist/cli/doctor-readiness-promoted-artifact.d.ts +23 -1
- package/dist/cli/doctor-readiness-promoted-artifact.d.ts.map +1 -1
- package/dist/cli/doctor-readiness-promoted-artifact.js +109 -6
- package/dist/cli/doctor-readiness-promoted-artifact.js.map +1 -1
- package/dist/cli/doctor-readiness-release-path.d.ts.map +1 -1
- package/dist/cli/doctor-readiness-release-path.js +11 -38
- package/dist/cli/doctor-readiness-release-path.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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor-readiness-guardrails.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-readiness-guardrails.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"doctor-readiness-guardrails.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-readiness-guardrails.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EACL,KAAK,cAAc,EAIpB,MAAM,iCAAiC,CAAC;AAEzC,gFAAgF;AAChF,eAAO,MAAM,gCAAgC,wBAAwB,CAAC;AAmYtE;;;;;;;;GAQG;AACH,wBAAsB,iCAAiC,CACrD,IAAI,EAAE,MAAM,EACZ,eAAe,CAAC,EAAE,SAAS,cAAc,EAAE,GAC1C,OAAO,CAAC,wBAAwB,CAAC,CAsCnC"}
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
* @module cli/doctor-readiness-guardrails
|
|
24
24
|
*/
|
|
25
25
|
import { commandTargetsOwnedService, describeCommands, hasCheckedInRunbook, looksEphemeral, scanCommands, } from "./doctor-readiness-operations.js";
|
|
26
|
+
import { expandLocalScriptCommandsWithDiagnostics } from "./doctor-readiness-local-scripts.js";
|
|
26
27
|
import { informationalFindings } from "./doctor-readiness-shared.js";
|
|
27
28
|
import { parseRepositoryWorkflows, } from "./doctor-readiness-workflows.js";
|
|
28
29
|
/** The feedback/guardrails readiness dimension id (readiness-rubric, RRR-1). */
|
|
@@ -347,13 +348,19 @@ function skipRecord(scan, inspected, runbook) {
|
|
|
347
348
|
* @returns The feedback/guardrails dimension record
|
|
348
349
|
*/
|
|
349
350
|
export async function assessFeedbackGuardrailsDimension(root, parsedWorkflows) {
|
|
350
|
-
const
|
|
351
|
-
const
|
|
351
|
+
const parsed = parsedWorkflows ?? (await parseRepositoryWorkflows(root));
|
|
352
|
+
const expanded = await expandLocalScriptCommandsWithDiagnostics(root, parsed);
|
|
353
|
+
const workflows = expanded.value;
|
|
354
|
+
const scanned = scanCommands(workflows, isConsequential, {
|
|
352
355
|
unresolvedWorkflow: lifecycleDeferral,
|
|
353
356
|
unresolvedStep: servicesDeferral,
|
|
354
357
|
unresolvedJobCall: reusableCallDeferral,
|
|
355
358
|
unresolvedActionStep: actionStepDeferral,
|
|
356
359
|
});
|
|
360
|
+
const scan = {
|
|
361
|
+
...scanned,
|
|
362
|
+
unresolved: [...scanned.unresolved, ...expanded.unresolved],
|
|
363
|
+
};
|
|
357
364
|
const runbook = await hasCheckedInRunbook(root);
|
|
358
365
|
if (scan.ungated.length === 0 || runbook) {
|
|
359
366
|
return skipRecord(runbook ? { ...scan, gated: [...scan.gated, ...scan.ungated] } : scan, workflows.length, runbook);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor-readiness-guardrails.js","sourceRoot":"","sources":["../../src/cli/doctor-readiness-guardrails.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"doctor-readiness-guardrails.js","sourceRoot":"","sources":["../../src/cli/doctor-readiness-guardrails.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import type { ParsedWorkflow } from "./doctor-readiness-workflows.js";
|
|
2
|
+
/** Expansion result plus the remaining aggregate script budget. */
|
|
3
|
+
interface ExpansionResult<T> {
|
|
4
|
+
readonly value: T;
|
|
5
|
+
readonly remainingScripts: number;
|
|
6
|
+
readonly unresolved: readonly string[];
|
|
7
|
+
}
|
|
2
8
|
/**
|
|
3
9
|
* Inline directly invoked local shell scripts into the parsed workflow commands.
|
|
4
10
|
* @param root - Repository root
|
|
@@ -6,4 +12,12 @@ import type { ParsedWorkflow } from "./doctor-readiness-workflows.js";
|
|
|
6
12
|
* @returns Workflows with bounded script content appended to matching steps
|
|
7
13
|
*/
|
|
8
14
|
export declare function expandLocalScriptCommands(root: string, workflows: readonly ParsedWorkflow[]): Promise<readonly ParsedWorkflow[]>;
|
|
15
|
+
/**
|
|
16
|
+
* Inline local scripts and report wrapper calls that bounded expansion skipped.
|
|
17
|
+
* @param root - Repository root
|
|
18
|
+
* @param workflows - Parsed workflow files
|
|
19
|
+
* @returns Expanded workflows plus unresolved skipped-wrapper observations
|
|
20
|
+
*/
|
|
21
|
+
export declare function expandLocalScriptCommandsWithDiagnostics(root: string, workflows: readonly ParsedWorkflow[]): Promise<ExpansionResult<readonly ParsedWorkflow[]>>;
|
|
22
|
+
export {};
|
|
9
23
|
//# sourceMappingURL=doctor-readiness-local-scripts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor-readiness-local-scripts.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-readiness-local-scripts.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,cAAc,EAGf,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor-readiness-local-scripts.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-readiness-local-scripts.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,cAAc,EAGf,MAAM,iCAAiC,CAAC;AAoBzC,mEAAmE;AACnE,UAAU,eAAe,CAAC,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAuRD;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,SAAS,cAAc,EAAE,GACnC,OAAO,CAAC,SAAS,cAAc,EAAE,CAAC,CAMpC;AAED;;;;;GAKG;AACH,wBAAsB,wCAAwC,CAC5D,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,SAAS,cAAc,EAAE,GACnC,OAAO,CAAC,eAAe,CAAC,SAAS,cAAc,EAAE,CAAC,CAAC,CAMrD"}
|
|
@@ -134,14 +134,20 @@ async function readLocalScript(root, relativePath) {
|
|
|
134
134
|
/**
|
|
135
135
|
* Append any bounded local script bodies referenced by a workflow step.
|
|
136
136
|
* @param root - Repository root
|
|
137
|
+
* @param job - Parsed workflow job
|
|
137
138
|
* @param step - Parsed workflow step
|
|
138
|
-
* @param
|
|
139
|
+
* @param remainingScripts - Remaining aggregate expansion budget
|
|
139
140
|
* @returns Step with script bodies appended to `run`, when present
|
|
140
141
|
*/
|
|
141
|
-
async function expandLocalScriptStep(root, step,
|
|
142
|
-
const expanded = await expandLocalScriptBodies(root, localScriptPaths(step.run),
|
|
142
|
+
async function expandLocalScriptStep(root, job, step, remainingScripts) {
|
|
143
|
+
const expanded = await expandLocalScriptBodies(root, localScriptPaths(step.run), remainingScripts);
|
|
144
|
+
const unresolved = expanded.skippedScripts.map(script => `\`${job.workflow}\` job \`${job.id}\` step \`${step.name}\` invokes ` +
|
|
145
|
+
"local " +
|
|
146
|
+
`script \`${script}\`, but the bounded wrapper expansion budget was ` +
|
|
147
|
+
"exhausted before that script could be inspected");
|
|
143
148
|
return {
|
|
144
149
|
remainingScripts: expanded.remainingScripts,
|
|
150
|
+
unresolved,
|
|
145
151
|
value: expanded.value.length === 0
|
|
146
152
|
? step
|
|
147
153
|
: { ...step, run: [step.run, ...expanded.value].join("\n") },
|
|
@@ -156,13 +162,17 @@ async function expandLocalScriptStep(root, step, context) {
|
|
|
156
162
|
*/
|
|
157
163
|
async function expandLocalScriptBodies(root, scripts, remainingScripts) {
|
|
158
164
|
const [script, ...rest] = scripts;
|
|
159
|
-
if (script === undefined
|
|
160
|
-
return { value: [], remainingScripts };
|
|
165
|
+
if (script === undefined) {
|
|
166
|
+
return { value: [], remainingScripts, skippedScripts: [] };
|
|
167
|
+
}
|
|
168
|
+
if (remainingScripts <= 0) {
|
|
169
|
+
return { value: [], remainingScripts, skippedScripts: scripts };
|
|
161
170
|
}
|
|
162
171
|
const content = await readLocalScript(root, script);
|
|
163
172
|
const expanded = await expandLocalScriptBodies(root, rest, remainingScripts - 1);
|
|
164
173
|
return {
|
|
165
174
|
remainingScripts: expanded.remainingScripts,
|
|
175
|
+
skippedScripts: expanded.skippedScripts,
|
|
166
176
|
value: content === null ? expanded.value : [content, ...expanded.value],
|
|
167
177
|
};
|
|
168
178
|
}
|
|
@@ -170,13 +180,14 @@ async function expandLocalScriptBodies(root, scripts, remainingScripts) {
|
|
|
170
180
|
* Expand directly invoked local shell scripts in one parsed job.
|
|
171
181
|
* @param root - Repository root
|
|
172
182
|
* @param job - Parsed workflow job
|
|
173
|
-
* @param
|
|
183
|
+
* @param remainingScripts - Remaining aggregate expansion budget
|
|
174
184
|
* @returns Job with script-expanded steps
|
|
175
185
|
*/
|
|
176
|
-
async function expandLocalScriptJob(root, job,
|
|
177
|
-
const expanded = await expandLocalScriptSteps(root, job.steps,
|
|
186
|
+
async function expandLocalScriptJob(root, job, remainingScripts) {
|
|
187
|
+
const expanded = await expandLocalScriptSteps(root, job, job.steps, remainingScripts);
|
|
178
188
|
return {
|
|
179
189
|
remainingScripts: expanded.remainingScripts,
|
|
190
|
+
unresolved: expanded.unresolved,
|
|
180
191
|
value: {
|
|
181
192
|
...job,
|
|
182
193
|
steps: expanded.value,
|
|
@@ -186,21 +197,21 @@ async function expandLocalScriptJob(root, job, context) {
|
|
|
186
197
|
/**
|
|
187
198
|
* Expand local scripts across a job's steps under the shared budget.
|
|
188
199
|
* @param root - Repository root
|
|
200
|
+
* @param job - Parsed workflow job
|
|
189
201
|
* @param steps - Parsed workflow steps
|
|
190
|
-
* @param
|
|
202
|
+
* @param remainingScripts - Remaining aggregate expansion budget
|
|
191
203
|
* @returns Expanded steps and updated budget
|
|
192
204
|
*/
|
|
193
|
-
async function expandLocalScriptSteps(root, steps,
|
|
205
|
+
async function expandLocalScriptSteps(root, job, steps, remainingScripts) {
|
|
194
206
|
const [step, ...rest] = steps;
|
|
195
207
|
if (step === undefined) {
|
|
196
|
-
return { value: [], remainingScripts:
|
|
208
|
+
return { value: [], remainingScripts, unresolved: [] };
|
|
197
209
|
}
|
|
198
|
-
const expandedStep = await expandLocalScriptStep(root, step,
|
|
199
|
-
const expandedRest = await expandLocalScriptSteps(root, rest,
|
|
200
|
-
remainingScripts: expandedStep.remainingScripts,
|
|
201
|
-
});
|
|
210
|
+
const expandedStep = await expandLocalScriptStep(root, job, step, remainingScripts);
|
|
211
|
+
const expandedRest = await expandLocalScriptSteps(root, job, rest, expandedStep.remainingScripts);
|
|
202
212
|
return {
|
|
203
213
|
remainingScripts: expandedRest.remainingScripts,
|
|
214
|
+
unresolved: [...expandedStep.unresolved, ...expandedRest.unresolved],
|
|
204
215
|
value: [expandedStep.value, ...expandedRest.value],
|
|
205
216
|
};
|
|
206
217
|
}
|
|
@@ -211,29 +222,35 @@ async function expandLocalScriptSteps(root, steps, context) {
|
|
|
211
222
|
* @returns Workflows with bounded script content appended to matching steps
|
|
212
223
|
*/
|
|
213
224
|
export async function expandLocalScriptCommands(root, workflows) {
|
|
214
|
-
const expanded = await
|
|
215
|
-
remainingScripts: MAX_LOCAL_SCRIPT_EXPANSIONS,
|
|
216
|
-
});
|
|
225
|
+
const expanded = await expandLocalScriptCommandsWithDiagnostics(root, workflows);
|
|
217
226
|
return expanded.value;
|
|
218
227
|
}
|
|
228
|
+
/**
|
|
229
|
+
* Inline local scripts and report wrapper calls that bounded expansion skipped.
|
|
230
|
+
* @param root - Repository root
|
|
231
|
+
* @param workflows - Parsed workflow files
|
|
232
|
+
* @returns Expanded workflows plus unresolved skipped-wrapper observations
|
|
233
|
+
*/
|
|
234
|
+
export async function expandLocalScriptCommandsWithDiagnostics(root, workflows) {
|
|
235
|
+
return await expandLocalScriptWorkflows(root, workflows, MAX_LOCAL_SCRIPT_EXPANSIONS);
|
|
236
|
+
}
|
|
219
237
|
/**
|
|
220
238
|
* Expand local scripts across workflows under the shared budget.
|
|
221
239
|
* @param root - Repository root
|
|
222
240
|
* @param workflows - Parsed workflow files
|
|
223
|
-
* @param
|
|
241
|
+
* @param remainingScripts - Remaining aggregate expansion budget
|
|
224
242
|
* @returns Expanded workflows and updated budget
|
|
225
243
|
*/
|
|
226
|
-
async function expandLocalScriptWorkflows(root, workflows,
|
|
244
|
+
async function expandLocalScriptWorkflows(root, workflows, remainingScripts) {
|
|
227
245
|
const [workflow, ...rest] = workflows;
|
|
228
246
|
if (workflow === undefined) {
|
|
229
|
-
return { value: [], remainingScripts:
|
|
247
|
+
return { value: [], remainingScripts, unresolved: [] };
|
|
230
248
|
}
|
|
231
|
-
const expandedJobs = await expandLocalScriptJobs(root, workflow.jobs,
|
|
232
|
-
const expandedRest = await expandLocalScriptWorkflows(root, rest,
|
|
233
|
-
remainingScripts: expandedJobs.remainingScripts,
|
|
234
|
-
});
|
|
249
|
+
const expandedJobs = await expandLocalScriptJobs(root, workflow.jobs, remainingScripts);
|
|
250
|
+
const expandedRest = await expandLocalScriptWorkflows(root, rest, expandedJobs.remainingScripts);
|
|
235
251
|
return {
|
|
236
252
|
remainingScripts: expandedRest.remainingScripts,
|
|
253
|
+
unresolved: [...expandedJobs.unresolved, ...expandedRest.unresolved],
|
|
237
254
|
value: [
|
|
238
255
|
{
|
|
239
256
|
...workflow,
|
|
@@ -247,20 +264,19 @@ async function expandLocalScriptWorkflows(root, workflows, context) {
|
|
|
247
264
|
* Expand local scripts across workflow jobs under the shared budget.
|
|
248
265
|
* @param root - Repository root
|
|
249
266
|
* @param jobs - Parsed workflow jobs
|
|
250
|
-
* @param
|
|
267
|
+
* @param remainingScripts - Remaining aggregate expansion budget
|
|
251
268
|
* @returns Expanded jobs and updated budget
|
|
252
269
|
*/
|
|
253
|
-
async function expandLocalScriptJobs(root, jobs,
|
|
270
|
+
async function expandLocalScriptJobs(root, jobs, remainingScripts) {
|
|
254
271
|
const [job, ...rest] = jobs;
|
|
255
272
|
if (job === undefined) {
|
|
256
|
-
return { value: [], remainingScripts:
|
|
273
|
+
return { value: [], remainingScripts, unresolved: [] };
|
|
257
274
|
}
|
|
258
|
-
const expandedJob = await expandLocalScriptJob(root, job,
|
|
259
|
-
const expandedRest = await expandLocalScriptJobs(root, rest,
|
|
260
|
-
remainingScripts: expandedJob.remainingScripts,
|
|
261
|
-
});
|
|
275
|
+
const expandedJob = await expandLocalScriptJob(root, job, remainingScripts);
|
|
276
|
+
const expandedRest = await expandLocalScriptJobs(root, rest, expandedJob.remainingScripts);
|
|
262
277
|
return {
|
|
263
278
|
remainingScripts: expandedRest.remainingScripts,
|
|
279
|
+
unresolved: [...expandedJob.unresolved, ...expandedRest.unresolved],
|
|
264
280
|
value: [expandedJob.value, ...expandedRest.value],
|
|
265
281
|
};
|
|
266
282
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor-readiness-local-scripts.js","sourceRoot":"","sources":["../../src/cli/doctor-readiness-local-scripts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAOlC,8EAA8E;AAC9E,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAEtC,+DAA+D;AAC/D,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAEvC,2EAA2E;AAC3E,MAAM,0BAA0B,GAAG,kBAAkB,CAAC;AAEtD,6DAA6D;AAC7D,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;AAEpE,qEAAqE;AACrE,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AAEvD,+EAA+E;AAC/E,MAAM,oBAAoB,GAAG,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor-readiness-local-scripts.js","sourceRoot":"","sources":["../../src/cli/doctor-readiness-local-scripts.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,12 @@ import type { ParsedWorkflowJob, ParsedWorkflowStep } from "./doctor-readiness-w
|
|
|
6
6
|
import type { ReleasePathOutcome } from "./doctor-readiness-release-path.js";
|
|
7
7
|
/** The GitHub Actions promotion step Lisa recognizes for CI-built artifacts. */
|
|
8
8
|
export declare const PROMOTION_ACTION = "actions/download-artifact";
|
|
9
|
+
/**
|
|
10
|
+
* Whether an action step publishes something externally.
|
|
11
|
+
* @param step - The step to classify
|
|
12
|
+
* @returns True when the action is a known publishing action
|
|
13
|
+
*/
|
|
14
|
+
export declare function isPublishAction(step: ParsedWorkflowStep): boolean;
|
|
9
15
|
/**
|
|
10
16
|
* Whether an action reference is the trusted artifact-promotion action.
|
|
11
17
|
* @param uses - Raw action reference
|
|
@@ -16,9 +22,25 @@ export declare function isPromotionAction(uses: string): boolean;
|
|
|
16
22
|
* Whether the job promotes an artifact produced by another job.
|
|
17
23
|
* @param job - The publishing job
|
|
18
24
|
* @param publishStep - The step that ships
|
|
25
|
+
* @param ancestorJobs - Jobs in the publishing job's `needs:` closure
|
|
19
26
|
* @returns True when a download-artifact step is present before publication
|
|
20
27
|
*/
|
|
21
|
-
export declare function promotesValidatedArtifact(job: ParsedWorkflowJob, publishStep: ParsedWorkflowStep): boolean;
|
|
28
|
+
export declare function promotesValidatedArtifact(job: ParsedWorkflowJob, publishStep: ParsedWorkflowStep, ancestorJobs?: readonly ParsedWorkflowJob[]): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Whether a named artifact download disagrees with named ancestor uploads.
|
|
31
|
+
* @param job - The publishing job
|
|
32
|
+
* @param publishStep - The step that ships
|
|
33
|
+
* @param ancestorJobs - Jobs in the publishing job's `needs:` closure
|
|
34
|
+
* @returns True when the downloaded artifact name is not uploaded by any ancestor
|
|
35
|
+
*/
|
|
36
|
+
export declare function hasArtifactNameMismatch(job: ParsedWorkflowJob, publishStep: ParsedWorkflowStep, ancestorJobs: readonly ParsedWorkflowJob[]): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* The release job downloaded a named artifact different from anything a
|
|
39
|
+
* validating ancestor uploaded, so the shipped bytes are not the tested bytes.
|
|
40
|
+
* @param where - Evidence location label
|
|
41
|
+
* @returns The violation outcome
|
|
42
|
+
*/
|
|
43
|
+
export declare function artifactNameMismatch(where: string): ReleasePathOutcome;
|
|
22
44
|
/**
|
|
23
45
|
* A downloaded artifact without linked validation is unestablished, not clean.
|
|
24
46
|
* @param where - Evidence location label
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor-readiness-promoted-artifact.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-readiness-promoted-artifact.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAE7E,gFAAgF;AAChF,eAAO,MAAM,gBAAgB,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor-readiness-promoted-artifact.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-readiness-promoted-artifact.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAE7E,gFAAgF;AAChF,eAAO,MAAM,gBAAgB,8BAA8B,CAAC;AA4B5D;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAMjE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AA6CD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,iBAAiB,EACtB,WAAW,EAAE,kBAAkB,EAC/B,YAAY,GAAE,SAAS,iBAAiB,EAAO,GAC9C,OAAO,CAWT;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,iBAAiB,EACtB,WAAW,EAAE,kBAAkB,EAC/B,YAAY,EAAE,SAAS,iBAAiB,EAAE,GACzC,OAAO,CAST;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAOtE;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAQ5E"}
|
|
@@ -1,24 +1,127 @@
|
|
|
1
1
|
/** The GitHub Actions promotion step Lisa recognizes for CI-built artifacts. */
|
|
2
2
|
export const PROMOTION_ACTION = "actions/download-artifact";
|
|
3
|
+
const DOCKER_BUILD_PUSH_ACTION = "docker/build-push-action";
|
|
4
|
+
const GITHUB_RELEASE_ACTION = "softprops/action-gh-release";
|
|
5
|
+
const PYPI_PUBLISH_ACTION = "pypa/gh-action-pypi-publish";
|
|
6
|
+
const UPLOAD_ARTIFACT_ACTION = "actions/upload-artifact";
|
|
7
|
+
/**
|
|
8
|
+
* Normalize an action reference to its owner/repo component.
|
|
9
|
+
* @param uses - Raw `uses:` value
|
|
10
|
+
* @returns Lowercase action id without an `@ref`
|
|
11
|
+
*/
|
|
12
|
+
function actionId(uses) {
|
|
13
|
+
return (uses.split("@")[0] ?? "").trim().toLowerCase();
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Whether a serialized `with:` block sets a boolean option to true.
|
|
17
|
+
* @param inputs - Flattened step inputs
|
|
18
|
+
* @param name - Input name to read
|
|
19
|
+
* @returns True when the option is explicitly true
|
|
20
|
+
*/
|
|
21
|
+
function hasTrueInput(inputs, name) {
|
|
22
|
+
const escaped = name.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
23
|
+
return new RegExp(`(^|\\n)${escaped}:\\s*['"]?true['"]?(\\s|$)`, "i").test(inputs);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Whether an action step publishes something externally.
|
|
27
|
+
* @param step - The step to classify
|
|
28
|
+
* @returns True when the action is a known publishing action
|
|
29
|
+
*/
|
|
30
|
+
export function isPublishAction(step) {
|
|
31
|
+
const id = actionId(step.uses);
|
|
32
|
+
if (id === DOCKER_BUILD_PUSH_ACTION) {
|
|
33
|
+
return hasTrueInput(step.inputs, "push");
|
|
34
|
+
}
|
|
35
|
+
return id === PYPI_PUBLISH_ACTION || id === GITHUB_RELEASE_ACTION;
|
|
36
|
+
}
|
|
3
37
|
/**
|
|
4
38
|
* Whether an action reference is the trusted artifact-promotion action.
|
|
5
39
|
* @param uses - Raw action reference
|
|
6
40
|
* @returns True when the action id is exactly actions/download-artifact
|
|
7
41
|
*/
|
|
8
42
|
export function isPromotionAction(uses) {
|
|
9
|
-
|
|
10
|
-
|
|
43
|
+
return actionId(uses) === PROMOTION_ACTION;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Whether an action reference uploads an artifact produced by CI.
|
|
47
|
+
* @param uses - Raw action reference
|
|
48
|
+
* @returns True when the action id is exactly actions/upload-artifact
|
|
49
|
+
*/
|
|
50
|
+
function isUploadAction(uses) {
|
|
51
|
+
return actionId(uses) === UPLOAD_ARTIFACT_ACTION;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Read a scalar step input from the parser's flattened `with:` text.
|
|
55
|
+
* @param inputs - Flattened step inputs
|
|
56
|
+
* @param name - Input name to read
|
|
57
|
+
* @returns The input value, or null when absent
|
|
58
|
+
*/
|
|
59
|
+
function stepInput(inputs, name) {
|
|
60
|
+
const escaped = name.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
61
|
+
const match = new RegExp(`(^|\\n)${escaped}:\\s*(.+)(\\n|$)`).exec(inputs);
|
|
62
|
+
const value = match?.[2]?.trim();
|
|
63
|
+
if (value === undefined || value === "") {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
return value.replace(/^['"]|['"]$/g, "");
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* List artifact names uploaded by jobs whose outputs have already been validated.
|
|
70
|
+
* @param validatingAncestorJobs - Validating jobs in the publishing job's `needs:` closure
|
|
71
|
+
* @returns Uploaded artifact names
|
|
72
|
+
*/
|
|
73
|
+
function uploadedArtifactNames(validatingAncestorJobs) {
|
|
74
|
+
return new Set(validatingAncestorJobs.flatMap(job => job.steps
|
|
75
|
+
.filter(step => isUploadAction(step.uses))
|
|
76
|
+
.map(step => stepInput(step.inputs, "name"))
|
|
77
|
+
.filter((name) => name !== null)));
|
|
11
78
|
}
|
|
12
79
|
/**
|
|
13
80
|
* Whether the job promotes an artifact produced by another job.
|
|
14
81
|
* @param job - The publishing job
|
|
15
82
|
* @param publishStep - The step that ships
|
|
83
|
+
* @param ancestorJobs - Jobs in the publishing job's `needs:` closure
|
|
16
84
|
* @returns True when a download-artifact step is present before publication
|
|
17
85
|
*/
|
|
18
|
-
export function promotesValidatedArtifact(job, publishStep) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
86
|
+
export function promotesValidatedArtifact(job, publishStep, ancestorJobs = []) {
|
|
87
|
+
const uploads = uploadedArtifactNames(ancestorJobs);
|
|
88
|
+
return job.steps.slice(0, job.steps.indexOf(publishStep)).some(step => {
|
|
89
|
+
if (!isPromotionAction(step.uses)) {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
const downloadName = stepInput(step.inputs, "name");
|
|
93
|
+
return (downloadName === null || uploads.size === 0 || uploads.has(downloadName));
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Whether a named artifact download disagrees with named ancestor uploads.
|
|
98
|
+
* @param job - The publishing job
|
|
99
|
+
* @param publishStep - The step that ships
|
|
100
|
+
* @param ancestorJobs - Jobs in the publishing job's `needs:` closure
|
|
101
|
+
* @returns True when the downloaded artifact name is not uploaded by any ancestor
|
|
102
|
+
*/
|
|
103
|
+
export function hasArtifactNameMismatch(job, publishStep, ancestorJobs) {
|
|
104
|
+
const uploads = uploadedArtifactNames(ancestorJobs);
|
|
105
|
+
return job.steps.slice(0, job.steps.indexOf(publishStep)).some(step => {
|
|
106
|
+
if (!isPromotionAction(step.uses)) {
|
|
107
|
+
return false;
|
|
108
|
+
}
|
|
109
|
+
const downloadName = stepInput(step.inputs, "name");
|
|
110
|
+
return downloadName !== null && !uploads.has(downloadName);
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* The release job downloaded a named artifact different from anything a
|
|
115
|
+
* validating ancestor uploaded, so the shipped bytes are not the tested bytes.
|
|
116
|
+
* @param where - Evidence location label
|
|
117
|
+
* @returns The violation outcome
|
|
118
|
+
*/
|
|
119
|
+
export function artifactNameMismatch(where) {
|
|
120
|
+
return {
|
|
121
|
+
kind: "violation",
|
|
122
|
+
evidence: `${where} downloads a named artifact that no validating ancestor uploads, ` +
|
|
123
|
+
"so the release path cannot prove the shipped artifact is the one CI tested",
|
|
124
|
+
};
|
|
22
125
|
}
|
|
23
126
|
/**
|
|
24
127
|
* A downloaded artifact without linked validation is unestablished, not clean.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor-readiness-promoted-artifact.js","sourceRoot":"","sources":["../../src/cli/doctor-readiness-promoted-artifact.ts"],"names":[],"mappings":"AAUA,gFAAgF;AAChF,MAAM,CAAC,MAAM,gBAAgB,GAAG,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor-readiness-promoted-artifact.js","sourceRoot":"","sources":["../../src/cli/doctor-readiness-promoted-artifact.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor-readiness-release-path.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-readiness-release-path.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor-readiness-release-path.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-readiness-release-path.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,iCAAiC,CAAC;AAezC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAgF3E,sDAAsD;AACtD,MAAM,MAAM,kBAAkB,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACzD;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAE/B;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAW7D;AA4BD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,iBAAiB,GACrB,SAAS,kBAAkB,EAAE,CAE/B;AAmJD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,cAAc,EACxB,GAAG,EAAE,iBAAiB,EACtB,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,EACnC,YAAY,CAAC,EAAE,SAAS,cAAc,EAAE,GACvC,SAAS,kBAAkB,EAAE,CAuC/B"}
|
|
@@ -1,17 +1,8 @@
|
|
|
1
|
-
import { ancestorJobs, reusableCallerValidation, } from "./doctor-readiness-reusable-callers.js";
|
|
2
|
-
import { isPromotionAction, promotesValidatedArtifact, PROMOTION_ACTION, unresolvedPromotedArtifact, } from "./doctor-readiness-promoted-artifact.js";
|
|
1
|
+
import { ancestorJobs as ancestors, reusableCallerValidation, } from "./doctor-readiness-reusable-callers.js";
|
|
2
|
+
import { artifactNameMismatch, hasArtifactNameMismatch, isPublishAction, isPromotionAction, promotesValidatedArtifact, PROMOTION_ACTION, unresolvedPromotedArtifact, } from "./doctor-readiness-promoted-artifact.js";
|
|
3
3
|
export { PROMOTION_ACTION } from "./doctor-readiness-promoted-artifact.js";
|
|
4
|
-
const
|
|
5
|
-
"npm publish",
|
|
6
|
-
"docker push",
|
|
7
|
-
"gh release upload",
|
|
8
|
-
"aws s3 sync",
|
|
9
|
-
"cdk deploy",
|
|
10
|
-
"eas submit",
|
|
11
|
-
];
|
|
4
|
+
const PUBLISH_VERB = /(npm publish|docker push|gh release upload|aws s3 sync|cdk deploy|eas submit)/;
|
|
12
5
|
const DOCKER_BUILD_PUSH_ACTION = "docker/build-push-action";
|
|
13
|
-
const PYPI_PUBLISH_ACTION = "pypa/gh-action-pypi-publish";
|
|
14
|
-
const GITHUB_RELEASE_ACTION = "softprops/action-gh-release";
|
|
15
6
|
/** Commands that actually run a test suite. */
|
|
16
7
|
const VALIDATING_COMMANDS = [
|
|
17
8
|
/\b(npm|yarn|pnpm|bun|npx|bunx)\s+(run\s+)?test\b/,
|
|
@@ -101,28 +92,6 @@ const DRY_RUN_FLAG = /--dry[-_]?run\b/;
|
|
|
101
92
|
function actionId(uses) {
|
|
102
93
|
return (uses.split("@")[0] ?? "").trim().toLowerCase();
|
|
103
94
|
}
|
|
104
|
-
/**
|
|
105
|
-
* Whether a serialized `with:` block sets a boolean option to true.
|
|
106
|
-
* @param inputs - Flattened step inputs
|
|
107
|
-
* @param name - Input name to read
|
|
108
|
-
* @returns True when the option is explicitly true
|
|
109
|
-
*/
|
|
110
|
-
function hasTrueInput(inputs, name) {
|
|
111
|
-
const escaped = name.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
112
|
-
return new RegExp(`(^|\\n)${escaped}:\\s*['"]?true['"]?(\\s|$)`, "i").test(inputs);
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Whether an action step publishes something externally.
|
|
116
|
-
* @param step - The step to classify
|
|
117
|
-
* @returns True when the action is a known publishing action
|
|
118
|
-
*/
|
|
119
|
-
function isPublishAction(step) {
|
|
120
|
-
const id = actionId(step.uses);
|
|
121
|
-
if (id === DOCKER_BUILD_PUSH_ACTION) {
|
|
122
|
-
return hasTrueInput(step.inputs, "push");
|
|
123
|
-
}
|
|
124
|
-
return id === PYPI_PUBLISH_ACTION || id === GITHUB_RELEASE_ACTION;
|
|
125
|
-
}
|
|
126
95
|
/**
|
|
127
96
|
* Whether a step actually puts an artifact in front of users. A `--dry-run`
|
|
128
97
|
* invocation names a publish verb but ships nothing, so faulting its release
|
|
@@ -131,8 +100,7 @@ function isPublishAction(step) {
|
|
|
131
100
|
* @returns True when the step really publishes
|
|
132
101
|
*/
|
|
133
102
|
function isPublishStep(step) {
|
|
134
|
-
return ((
|
|
135
|
-
!DRY_RUN_FLAG.test(step.run)) ||
|
|
103
|
+
return ((PUBLISH_VERB.test(step.run) && !DRY_RUN_FLAG.test(step.run)) ||
|
|
136
104
|
isPublishAction(step));
|
|
137
105
|
}
|
|
138
106
|
/**
|
|
@@ -169,7 +137,7 @@ function validationPrecedesPublish(workflow, job, publishStep, allWorkflows) {
|
|
|
169
137
|
"validated") {
|
|
170
138
|
return true;
|
|
171
139
|
}
|
|
172
|
-
if (
|
|
140
|
+
if (ancestors(workflow, job).some(isValidatingJob)) {
|
|
173
141
|
return true;
|
|
174
142
|
}
|
|
175
143
|
return job.steps
|
|
@@ -260,16 +228,21 @@ function offlineUnresolvableTrigger(workflow, defaultBranches, allWorkflows) {
|
|
|
260
228
|
export function assessReleasePaths(workflow, job, defaultBranches, allWorkflows) {
|
|
261
229
|
return findPublishSteps(job).map(publishStep => {
|
|
262
230
|
const where = `${workflow.file} job \`${job.id}\` step \`${describeStep(publishStep)}\``;
|
|
231
|
+
const validatingAncestors = ancestors(workflow, job).filter(isValidatingJob);
|
|
263
232
|
const validated = validationPrecedesPublish(workflow, job, publishStep, allWorkflows);
|
|
264
233
|
if (shipsSelfBuiltArtifact(job, publishStep)) {
|
|
265
234
|
return validated
|
|
266
235
|
? rebuildPastValidation(where)
|
|
267
236
|
: unvalidatedSelfBuild(where, workflow, defaultBranches, allWorkflows);
|
|
268
237
|
}
|
|
238
|
+
if (validated &&
|
|
239
|
+
hasArtifactNameMismatch(job, publishStep, validatingAncestors)) {
|
|
240
|
+
return artifactNameMismatch(where);
|
|
241
|
+
}
|
|
269
242
|
if (validated) {
|
|
270
243
|
return { kind: "clean" };
|
|
271
244
|
}
|
|
272
|
-
if (promotesValidatedArtifact(job, publishStep))
|
|
245
|
+
if (promotesValidatedArtifact(job, publishStep, validatingAncestors))
|
|
273
246
|
return unresolvedPromotedArtifact(where);
|
|
274
247
|
// Neither built here nor promoted from CI, and nothing validating precedes it:
|
|
275
248
|
// the link between what ships and what was validated is simply not observable
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor-readiness-release-path.js","sourceRoot":"","sources":["../../src/cli/doctor-readiness-release-path.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,YAAY,
|
|
1
|
+
{"version":3,"file":"doctor-readiness-release-path.js","sourceRoot":"","sources":["../../src/cli/doctor-readiness-release-path.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -115,7 +115,7 @@
|
|
|
115
115
|
"brace-expansion": ">=5.0.8"
|
|
116
116
|
},
|
|
117
117
|
"name": "@codyswann/lisa",
|
|
118
|
-
"version": "2.311.
|
|
118
|
+
"version": "2.311.13",
|
|
119
119
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
120
120
|
"main": "dist/index.js",
|
|
121
121
|
"exports": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.311.
|
|
3
|
+
"version": "2.311.13",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.311.
|
|
3
|
+
"version": "2.311.13",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, across Claude and Codex.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.311.
|
|
3
|
+
"version": "2.311.13",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.311.
|
|
3
|
+
"version": "2.311.13",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.311.
|
|
3
|
+
"version": "2.311.13",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|