@codyswann/lisa 4.81.0 → 4.81.1
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/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 +1 -0
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/dist/migrations/deploy-outcome-guard-edit.d.ts.map +1 -1
- package/dist/migrations/deploy-outcome-guard-edit.js +35 -14
- package/dist/migrations/deploy-outcome-guard-edit.js.map +1 -1
- package/dist/migrations/deploy-outcome-guard-yaml.d.ts +30 -1
- package/dist/migrations/deploy-outcome-guard-yaml.d.ts.map +1 -1
- package/dist/migrations/deploy-outcome-guard-yaml.js +88 -7
- package/dist/migrations/deploy-outcome-guard-yaml.js.map +1 -1
- 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-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-cdk-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-devin/.devin-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-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-devin/.devin-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-expo-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-devin/.devin-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-harper-fabric-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-devin/.devin-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-nestjs-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-devin/.devin-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-openclaw-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-devin/.devin-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-phaser-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-devin/.devin-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-rails-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-devin/.devin-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-typescript-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-devin/.devin-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/lisa-wiki-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-devin/.devin-plugin/plugin.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-outcome-guard-edit.d.ts","sourceRoot":"","sources":["../../src/migrations/deploy-outcome-guard-edit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"deploy-outcome-guard-edit.d.ts","sourceRoot":"","sources":["../../src/migrations/deploy-outcome-guard-edit.ts"],"names":[],"mappings":"AAiDA,OAAO,EACL,KAAK,aAAa,EAEnB,MAAM,sCAAsC,CAAC;AAE9C,4EAA4E;AAC5E,eAAO,MAAM,eAAe,6CAAmC,CAAC;AAuHhE;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,IAAI,CASf"}
|
|
@@ -32,7 +32,8 @@
|
|
|
32
32
|
* 1. A condition that never mentions the release result — safe to wrap, since
|
|
33
33
|
* `!cancelled() && (original)` cannot change what the original decides.
|
|
34
34
|
* 2. A flat top-level `&&` chain containing `needs.<release>.result ==
|
|
35
|
-
* 'success'` — the conjunct is dropped and `!cancelled()` prepended
|
|
35
|
+
* 'success'` — the conjunct is dropped and `!cancelled()` prepended, unless
|
|
36
|
+
* a remaining conjunct is already `always()` or `!cancelled()` (#4456).
|
|
36
37
|
*
|
|
37
38
|
* Anything else, including that conjunct nested inside an `||`, is left to a
|
|
38
39
|
* human. Dropping a term from inside a disjunction changes what the condition
|
|
@@ -51,10 +52,17 @@ import { releaseDependence, } from "../core/deploy-release-dependence.js";
|
|
|
51
52
|
export const GUARD_STEP_NAME = "🚨 Confirm the release shipped";
|
|
52
53
|
/** The status function that suppresses GitHub's implicit `success()`. */
|
|
53
54
|
const SUPPRESSOR = "!cancelled()";
|
|
55
|
+
/**
|
|
56
|
+
* Conjuncts that already suppress the implicit `success()`. When one survives
|
|
57
|
+
* the rewrite, prepending {@link SUPPRESSOR} would only duplicate it (#4456).
|
|
58
|
+
*/
|
|
59
|
+
const EXISTING_SUPPRESSORS = new Set(["always()", SUPPRESSOR]);
|
|
54
60
|
/** Tokens that take no space before them when a condition is re-rendered. */
|
|
55
|
-
const NO_SPACE_BEFORE = new Set([")", ","
|
|
61
|
+
const NO_SPACE_BEFORE = new Set([")", ","]);
|
|
56
62
|
/** Tokens that take no space after them when a condition is re-rendered. */
|
|
57
|
-
const NO_SPACE_AFTER = new Set(["(", "!"
|
|
63
|
+
const NO_SPACE_AFTER = new Set(["(", "!"]);
|
|
64
|
+
/** A function or context name: an `(` after one is a call, written `f()`. */
|
|
65
|
+
const CALLABLE = /^[A-Za-z_]\w*$/;
|
|
58
66
|
/**
|
|
59
67
|
* Strip a `${{ }}` wrapper and surrounding whitespace from a condition.
|
|
60
68
|
* @param condition - The raw `if:` text
|
|
@@ -68,21 +76,31 @@ function bareExpression(condition) {
|
|
|
68
76
|
.trim();
|
|
69
77
|
}
|
|
70
78
|
/**
|
|
71
|
-
*
|
|
79
|
+
* Whether a token is written with no space before it.
|
|
80
|
+
* @param token - The token being placed
|
|
81
|
+
* @param previous - The token before it
|
|
82
|
+
* @returns True when the two are glued, as in `always()` or `!x`
|
|
83
|
+
*/
|
|
84
|
+
function gluedTo(token, previous) {
|
|
85
|
+
if (NO_SPACE_BEFORE.has(token) || NO_SPACE_AFTER.has(previous))
|
|
86
|
+
return true;
|
|
87
|
+
return token === "(" && CALLABLE.test(previous);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Re-render a token run as canonical expression text: calls written `f(a, b)`,
|
|
91
|
+
* binary operators (`==`, `!=`, `&&`, `||`) spaced on both sides, `!` and
|
|
92
|
+
* parentheses glued to their operand. Canonical so a host that asserts its
|
|
93
|
+
* workflow text, or reviews the diff, reads what a person would have written.
|
|
72
94
|
* @param tokens - The tokens, in order
|
|
73
95
|
* @returns Readable expression text
|
|
74
96
|
*/
|
|
75
97
|
function render(tokens) {
|
|
76
|
-
return tokens
|
|
77
|
-
.reduce((text, token, index) => {
|
|
98
|
+
return tokens.reduce((text, token, index) => {
|
|
78
99
|
const previous = tokens[index - 1];
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
}, "")
|
|
84
|
-
.replace(/ == /g, " == ")
|
|
85
|
-
.trim();
|
|
100
|
+
return previous === undefined || gluedTo(token, previous)
|
|
101
|
+
? text + token
|
|
102
|
+
: `${text} ${token}`;
|
|
103
|
+
}, "");
|
|
86
104
|
}
|
|
87
105
|
/**
|
|
88
106
|
* Split a condition into its top-level `&&` conjuncts.
|
|
@@ -166,7 +184,10 @@ function proposedCondition(job, release) {
|
|
|
166
184
|
return null;
|
|
167
185
|
if (kept.some(conjunct => conjunct.some(token => token === gate)))
|
|
168
186
|
return null;
|
|
169
|
-
|
|
187
|
+
const rendered = kept.map(render);
|
|
188
|
+
return rendered.some(conjunct => EXISTING_SUPPRESSORS.has(conjunct))
|
|
189
|
+
? rendered.join(" && ")
|
|
190
|
+
: [SUPPRESSOR, ...rendered].join(" && ");
|
|
170
191
|
}
|
|
171
192
|
/**
|
|
172
193
|
* Tokenize, returning null instead of throwing on an unsupported expression.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-outcome-guard-edit.js","sourceRoot":"","sources":["../../src/migrations/deploy-outcome-guard-edit.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"deploy-outcome-guard-edit.js","sourceRoot":"","sources":["../../src/migrations/deploy-outcome-guard-edit.ts"],"names":[],"mappings":"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"}
|
|
@@ -67,13 +67,42 @@ export declare function locateFirstStep(lines: readonly string[], block: JobBloc
|
|
|
67
67
|
* @returns The step's lines, de-indented to column zero, or null when absent
|
|
68
68
|
*/
|
|
69
69
|
export declare function extractGuardStep(template: string, stepName: string): readonly string[] | null;
|
|
70
|
+
/**
|
|
71
|
+
* How a job's `if:` is written, so a rewrite keeps the host's own style (#4456).
|
|
72
|
+
*
|
|
73
|
+
* - `block` — a block scalar, keeping its indicator (`|`, `|-`, `>`, `>-`, …).
|
|
74
|
+
* - `expression` — a single plain `${{ … }}` line, kept on one line.
|
|
75
|
+
* - `plain` — a single plain unwrapped line, kept on one line when the rewrite
|
|
76
|
+
* can be written that way.
|
|
77
|
+
*
|
|
78
|
+
* A plain unwrapped line cannot always stay plain: the rewrite usually starts
|
|
79
|
+
* with `!cancelled()`, and a plain YAML scalar that starts with `!` is a tag,
|
|
80
|
+
* not text. That case, a quoted or multi-line plain scalar, and a job with no
|
|
81
|
+
* `if:` at all get a `>-` block, which reads the same and parses.
|
|
82
|
+
*/
|
|
83
|
+
export type ConditionStyle = {
|
|
84
|
+
readonly kind: "block";
|
|
85
|
+
readonly indicator: string;
|
|
86
|
+
} | {
|
|
87
|
+
readonly kind: "expression";
|
|
88
|
+
} | {
|
|
89
|
+
readonly kind: "plain";
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Read the style of an existing `if:` key.
|
|
93
|
+
* @param line - The job's `if:` line, or undefined when the job declares none
|
|
94
|
+
* @param continued - Whether the key carries content on further lines
|
|
95
|
+
* @returns The style to render the rewrite in
|
|
96
|
+
*/
|
|
97
|
+
export declare function conditionStyle(line: string | undefined, continued?: boolean): ConditionStyle;
|
|
70
98
|
/**
|
|
71
99
|
* Render the replacement `if:` block for a job.
|
|
72
100
|
* @param condition - The rewritten condition text
|
|
73
101
|
* @param keyIndent - Column the job's keys begin at
|
|
102
|
+
* @param style - How the host wrote the original `if:`
|
|
74
103
|
* @returns The lines to write in place of the job's old `if:`
|
|
75
104
|
*/
|
|
76
|
-
export declare function renderCondition(condition: string, keyIndent: number): readonly string[];
|
|
105
|
+
export declare function renderCondition(condition: string, keyIndent: number, style?: ConditionStyle): readonly string[];
|
|
77
106
|
/**
|
|
78
107
|
* Apply both edits to one workflow's source, or return null.
|
|
79
108
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-outcome-guard-yaml.d.ts","sourceRoot":"","sources":["../../src/migrations/deploy-outcome-guard-yaml.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,6EAA6E;AAC7E,MAAM,WAAW,QAAQ;IACvB,qCAAqC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,0CAA0C;IAC1C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAYD;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,KAAK,EAAE,MAAM,GACZ,QAAQ,GAAG,IAAI,CAiBjB;AAED,6EAA6E;AAC7E,MAAM,WAAW,OAAO;IACtB,qCAAqC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,0CAA0C;IAC1C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,KAAK,EAAE,QAAQ,EACf,GAAG,EAAE,MAAM,GACV,OAAO,GAAG,IAAI,CAahB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,KAAK,EAAE,QAAQ,GACd;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAS5D;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,SAAS,MAAM,EAAE,GAAG,IAAI,CAc1B;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"deploy-outcome-guard-yaml.d.ts","sourceRoot":"","sources":["../../src/migrations/deploy-outcome-guard-yaml.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,6EAA6E;AAC7E,MAAM,WAAW,QAAQ;IACvB,qCAAqC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,0CAA0C;IAC1C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAYD;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,KAAK,EAAE,MAAM,GACZ,QAAQ,GAAG,IAAI,CAiBjB;AAED,6EAA6E;AAC7E,MAAM,WAAW,OAAO;IACtB,qCAAqC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,0CAA0C;IAC1C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,KAAK,EAAE,QAAQ,EACf,GAAG,EAAE,MAAM,GACV,OAAO,GAAG,IAAI,CAahB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,KAAK,EAAE,QAAQ,GACd;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAS5D;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,SAAS,MAAM,EAAE,GAAG,IAAI,CAc1B;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GAC/B;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAK/B;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,SAAS,UAAQ,GAChB,cAAc,CAOhB;AAiDD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,cAA8B,GACpC,SAAS,MAAM,EAAE,CAsCnB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,SAAS,MAAM,EAAE,GAC3B,MAAM,GAAG,IAAI,CAyCf"}
|
|
@@ -110,27 +110,104 @@ export function extractGuardStep(template, stepName) {
|
|
|
110
110
|
.slice(start, end)
|
|
111
111
|
.map(line => (line.trim() === "" ? "" : line.slice(indent)));
|
|
112
112
|
}
|
|
113
|
+
/** The style used when the host's own cannot be kept. */
|
|
114
|
+
const DEFAULT_STYLE = { kind: "block", indicator: ">-" };
|
|
115
|
+
/**
|
|
116
|
+
* Read the style of an existing `if:` key.
|
|
117
|
+
* @param line - The job's `if:` line, or undefined when the job declares none
|
|
118
|
+
* @param continued - Whether the key carries content on further lines
|
|
119
|
+
* @returns The style to render the rewrite in
|
|
120
|
+
*/
|
|
121
|
+
export function conditionStyle(line, continued = false) {
|
|
122
|
+
const value = line?.replace(/^\s*if:/, "").trim() ?? "";
|
|
123
|
+
const block = /^([|>][-+]?)\s*(?:#.*)?$/.exec(value);
|
|
124
|
+
if (block?.[1] !== undefined)
|
|
125
|
+
return { kind: "block", indicator: block[1] };
|
|
126
|
+
if (continued)
|
|
127
|
+
return DEFAULT_STYLE;
|
|
128
|
+
if (/^\$\{\{.*\}\}$/.test(value))
|
|
129
|
+
return { kind: "expression" };
|
|
130
|
+
return /^[A-Za-z]/.test(value) ? { kind: "plain" } : DEFAULT_STYLE;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Whether a condition can be written as a plain YAML scalar unchanged: it
|
|
134
|
+
* starts with a letter (no tag, anchor, alias, quote or indicator) and carries
|
|
135
|
+
* neither `: ` nor ` #`, which would end the scalar early.
|
|
136
|
+
* @param condition - The rewritten condition text
|
|
137
|
+
* @returns True when a plain one-line `if:` reads back as exactly this text
|
|
138
|
+
*/
|
|
139
|
+
function plainSafe(condition) {
|
|
140
|
+
return (/^[A-Za-z]/.test(condition) &&
|
|
141
|
+
!condition.includes(": ") &&
|
|
142
|
+
!condition.includes(" #"));
|
|
143
|
+
}
|
|
144
|
+
/** The operator a multi-line condition is broken after. */
|
|
145
|
+
const AND = " && ";
|
|
146
|
+
/**
|
|
147
|
+
* Split a condition at its top-level `&&` operators only, so a parenthesised
|
|
148
|
+
* group or a quoted string is never broken across lines.
|
|
149
|
+
* @param condition - The rewritten condition text
|
|
150
|
+
* @returns The conjuncts, in order
|
|
151
|
+
*/
|
|
152
|
+
function topLevelParts(condition) {
|
|
153
|
+
const scan = [...condition].reduce((state, char, index) => {
|
|
154
|
+
if (char === "'")
|
|
155
|
+
return { ...state, quoted: !state.quoted };
|
|
156
|
+
if (state.quoted)
|
|
157
|
+
return state;
|
|
158
|
+
if (char === "(")
|
|
159
|
+
return { ...state, depth: state.depth + 1 };
|
|
160
|
+
if (char === ")")
|
|
161
|
+
return { ...state, depth: state.depth - 1 };
|
|
162
|
+
return state.depth === 0 && condition.startsWith(AND, index)
|
|
163
|
+
? { ...state, cuts: [...state.cuts, index] }
|
|
164
|
+
: state;
|
|
165
|
+
}, { depth: 0, quoted: false, cuts: [] });
|
|
166
|
+
const starts = [0, ...scan.cuts.map(cut => cut + AND.length)];
|
|
167
|
+
return starts.map((start, index) => condition.slice(start, scan.cuts[index] ?? condition.length));
|
|
168
|
+
}
|
|
113
169
|
/**
|
|
114
170
|
* Render the replacement `if:` block for a job.
|
|
115
171
|
* @param condition - The rewritten condition text
|
|
116
172
|
* @param keyIndent - Column the job's keys begin at
|
|
173
|
+
* @param style - How the host wrote the original `if:`
|
|
117
174
|
* @returns The lines to write in place of the job's old `if:`
|
|
118
175
|
*/
|
|
119
|
-
export function renderCondition(condition, keyIndent) {
|
|
176
|
+
export function renderCondition(condition, keyIndent, style = DEFAULT_STYLE) {
|
|
120
177
|
const pad = " ".repeat(keyIndent);
|
|
121
178
|
const inner = " ".repeat(keyIndent + 2);
|
|
179
|
+
// A one-line style cannot carry a condition that spans lines.
|
|
180
|
+
const oneLine = style.kind !== "block" && !condition.includes("\n");
|
|
181
|
+
const resolved = style.kind === "block" ||
|
|
182
|
+
(oneLine && (style.kind === "expression" || plainSafe(condition)))
|
|
183
|
+
? style
|
|
184
|
+
: DEFAULT_STYLE;
|
|
185
|
+
const key = resolved.kind === "expression"
|
|
186
|
+
? [`${pad}if: \${{ ${condition} }}`]
|
|
187
|
+
: resolved.kind === "plain"
|
|
188
|
+
? [`${pad}if: ${condition}`]
|
|
189
|
+
: [
|
|
190
|
+
`${pad}if: ${resolved.indicator}`,
|
|
191
|
+
// A host's own multi-line text, kept by the wrap rule, is
|
|
192
|
+
// re-indented line by line: an unindented continuation would end
|
|
193
|
+
// the block scalar and the file would no longer parse.
|
|
194
|
+
...topLevelParts(condition).map((part, index, parts) => {
|
|
195
|
+
const indented = part
|
|
196
|
+
.split("\n")
|
|
197
|
+
.map(line => inner + line.trim())
|
|
198
|
+
.join("\n");
|
|
199
|
+
return index === parts.length - 1 ? indented : `${indented} &&`;
|
|
200
|
+
}),
|
|
201
|
+
];
|
|
122
202
|
return [
|
|
123
|
-
`${pad}# \`!cancelled()\` suppresses the implicit \`success()\` GitHub would`,
|
|
203
|
+
`${pad}# \`!cancelled()\` / \`always()\` suppresses the implicit \`success()\` GitHub would`,
|
|
124
204
|
`${pad}# otherwise AND onto this condition. Without it a failed release`,
|
|
125
205
|
`${pad}# SKIPPED this job, and a skipped job renders as neutral and counts`,
|
|
126
206
|
`${pad}# as a satisfied required check — so a deploy that never happened`,
|
|
127
207
|
`${pad}# left no signal at all. The release result is read by the guard STEP`,
|
|
128
208
|
`${pad}# below, which fails this job loudly instead (#3467, applied by`,
|
|
129
209
|
`${pad}# Lisa's ensure-deploy-outcome-guard migration for #3740).`,
|
|
130
|
-
|
|
131
|
-
...condition
|
|
132
|
-
.split(" && ")
|
|
133
|
-
.map((part, index, parts) => index === parts.length - 1 ? `${inner}${part}` : `${inner}${part} &&`),
|
|
210
|
+
...key,
|
|
134
211
|
];
|
|
135
212
|
}
|
|
136
213
|
/**
|
|
@@ -156,7 +233,11 @@ export function applyGuardEdits(source, jobId, condition, guardStep) {
|
|
|
156
233
|
return null;
|
|
157
234
|
const existing = locateKey(lines, block, "if");
|
|
158
235
|
const guardLines = guardStep.map(line => line === "" ? "" : `${" ".repeat(step.indent)}${line}`);
|
|
159
|
-
const conditionLines = renderCondition(condition, block.keyIndent
|
|
236
|
+
const conditionLines = renderCondition(condition, block.keyIndent, existing === null
|
|
237
|
+
? undefined
|
|
238
|
+
: conditionStyle(lines[existing.start], lines
|
|
239
|
+
.slice(existing.start + 1, existing.end)
|
|
240
|
+
.some(line => line.trim() !== "")));
|
|
160
241
|
const declared = existing ?? {
|
|
161
242
|
start: block.start + 1,
|
|
162
243
|
end: block.start + 1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-outcome-guard-yaml.js","sourceRoot":"","sources":["../../src/migrations/deploy-outcome-guard-yaml.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"deploy-outcome-guard-yaml.js","sourceRoot":"","sources":["../../src/migrations/deploy-outcome-guard-yaml.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -189,7 +189,7 @@
|
|
|
189
189
|
"qs": "^6.16.0"
|
|
190
190
|
},
|
|
191
191
|
"name": "@codyswann/lisa",
|
|
192
|
-
"version": "4.81.
|
|
192
|
+
"version": "4.81.1",
|
|
193
193
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
194
194
|
"main": "dist/index.js",
|
|
195
195
|
"exports": {
|
|
@@ -345,7 +345,7 @@
|
|
|
345
345
|
"test": "tests"
|
|
346
346
|
},
|
|
347
347
|
"types": "./dist/index.d.ts",
|
|
348
|
-
"lisaReleaseCommit": "
|
|
349
|
-
"gitHead": "
|
|
350
|
-
"lisaReleaseTag": "v4.81.
|
|
348
|
+
"lisaReleaseCommit": "af68a5de662cdc8b5ef0d26c149e5ad7fa654642",
|
|
349
|
+
"gitHead": "af68a5de662cdc8b5ef0d26c149e5ad7fa654642",
|
|
350
|
+
"lisaReleaseTag": "v4.81.1"
|
|
351
351
|
}
|