@codyswann/lisa 4.6.1 โ†’ 4.6.3

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.
Files changed (58) hide show
  1. package/all/copy-overwrite/scripts/lisa-gates.mjs +296 -21
  2. package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
  3. package/dist/core/lisa-owned-hash-ledger.js +4 -0
  4. package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
  5. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
  6. package/dist/core/upstream-evidence-manifest.js +2 -1
  7. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  8. package/package.json +1 -1
  9. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  10. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  11. package/plugins/lisa-agy/plugin.json +1 -1
  12. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  13. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  14. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  15. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  16. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  17. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  18. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  19. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  20. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  21. package/plugins/lisa-expo-agy/plugin.json +1 -1
  22. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  23. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  24. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  25. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  26. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  27. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  28. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  29. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  30. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  31. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  32. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  33. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  34. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  35. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  36. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  37. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  38. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  39. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  40. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  41. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  42. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  43. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  44. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  45. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  46. package/plugins/lisa-rails-agy/plugin.json +1 -1
  47. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  48. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  49. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  50. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  51. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  52. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  53. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  54. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  55. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  56. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  57. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  58. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
@@ -2703,6 +2703,7 @@ export const KNOWN_CONFIG_KEYS = Object.freeze([
2703
2703
  "learnings",
2704
2704
  "health",
2705
2705
  "verification",
2706
+ "thresholdRatchet",
2706
2707
  ]);
2707
2708
 
2708
2709
  /**
@@ -4184,6 +4185,78 @@ export function needsAt({ gates, moment }) {
4184
4185
  };
4185
4186
  }
4186
4187
 
4188
+ /**
4189
+ * The separator GitHub puts between the levels of a check-run name.
4190
+ *
4191
+ * Load-bearing, not cosmetic: a derived required context and a posted
4192
+ * check-run name are only comparable because both are this string joining the
4193
+ * same chain of names.
4194
+ */
4195
+ export const CONTEXT_SEPARATOR = " / ";
4196
+
4197
+ /**
4198
+ * The caller chain the shipped wiring produces on the pull-request path.
4199
+ *
4200
+ * Measured, not assumed. A check-run's reported name is the `/`-joined chain
4201
+ * of the JOB names that reach it, outermost first โ€” the top workflow's own
4202
+ * `name:` never appears. On CodySwannGT/lisa, `ci.yml`'s job `๐Ÿ” Quality
4203
+ * Checks` calls `quality.yml` directly, so pull request #3129's head
4204
+ * `b1307c42` posted `๐Ÿ” Quality Checks / ๐Ÿงน Lint`: ONE level. On the release
4205
+ * path `deploy.yml`'s job `Release` calls `release.yml`, whose job `๐Ÿ” Quality
4206
+ * Checks` calls the same `quality.yml`, so commit `6b44d6258` posted `Release
4207
+ * / ๐Ÿ” Quality Checks / ๐Ÿงน Lint`: TWO. Same jobs, same labels, different
4208
+ * names, because the chain above them is different.
4209
+ *
4210
+ * This default is the one-level form because that is what every ruleset in the
4211
+ * fleet is pinned to today โ€” Lisa's own `quality checks` ruleset (13 required
4212
+ * contexts) and every shipped `github-rulesets/*.json` and
4213
+ * `create-only/.github/required-checks.json` seed carry the bare prefix. It
4214
+ * must not move without a coordinated ruleset migration: renaming a derived
4215
+ * context strands every consumer pinned to the old string at "Expected โ€”
4216
+ * Waiting for status to be reported", forever.
4217
+ */
4218
+ const DEFAULT_CALLER_CHAIN = Object.freeze(["๐Ÿ” Quality Checks"]);
4219
+
4220
+ /**
4221
+ * Normalise and validate the caller chain a derived context is prefixed with.
4222
+ *
4223
+ * Depth is not knowable from the gates block โ€” it is a property of how the
4224
+ * CONSUMER wired its workflows, and it varies with that wiring: one hop from a
4225
+ * pull-request workflow, two through a release workflow, more for anyone who
4226
+ * nests further. So the chain is passed in rather than assumed, and
4227
+ * `workflowName` keeps accepting it as one `/`-joined string. That is why
4228
+ * nothing gained a flag: `--workflow "Release / ๐Ÿ” Quality Checks"` already
4229
+ * reaches here, and the long-standing single-level value normalises to itself.
4230
+ *
4231
+ * A blank level is refused rather than tolerated, because it fails in the
4232
+ * direction that is invisible. `"/ ๐Ÿ” Quality Checks"` would derive
4233
+ * `" / ๐Ÿ” Quality Checks / ๐Ÿงน Lint"` โ€” a name no run posts. A required context
4234
+ * that never reports does not turn a pull request red; it holds it pending
4235
+ * forever, with no failing check to read and no log to open.
4236
+ * @param {object} options Chain inputs.
4237
+ * @param {string[]} [options.callerChain] Caller job names, outermost first.
4238
+ * @param {string} [options.workflowName] The same chain, `/`-joined.
4239
+ * @returns {string[]} The validated chain, outermost first.
4240
+ */
4241
+ function callerChainFrom({ callerChain, workflowName }) {
4242
+ let raw = DEFAULT_CALLER_CHAIN;
4243
+ if (Array.isArray(callerChain)) {
4244
+ raw = callerChain;
4245
+ } else if (typeof workflowName === "string") {
4246
+ raw = workflowName.split("/");
4247
+ }
4248
+ const chain = raw.map(segment => String(segment).trim());
4249
+ if (chain.length === 0 || chain.some(segment => segment === "")) {
4250
+ throw new Error(
4251
+ "caller chain must be one or more non-empty job names, outermost first" +
4252
+ ` โ€” got ${JSON.stringify(raw)}. A blank level derives a context no ` +
4253
+ "run ever posts, which holds every pull request at " +
4254
+ '"Expected โ€” Waiting for status to be reported" forever.'
4255
+ );
4256
+ }
4257
+ return chain;
4258
+ }
4259
+
4187
4260
  /**
4188
4261
  * The branch-protection contexts a gates block implies at one moment.
4189
4262
  *
@@ -4196,21 +4269,35 @@ export function needsAt({ gates, moment }) {
4196
4269
  * `off` safe: a skipped required check counts as satisfied on GitHub, so a gate
4197
4270
  * that is off must never appear here โ€” and because the job condition and this
4198
4271
  * list come from one declaration, it cannot.
4272
+ *
4273
+ * The prefix is a CHAIN, not a name. See `callerChainFrom`: one level is what
4274
+ * the pull-request path posts and what every live ruleset pins, two is what
4275
+ * the release path posts, and passing the wrong depth is the permanent-pending
4276
+ * trap in either direction. `verifyContextsPosted` closes that loop against a
4277
+ * real run rather than leaving it to reasoning.
4199
4278
  * @param {object} gates The gates block.
4200
4279
  * @param {object} [options] Context options.
4280
+ * @param {string} [options.moment] The moment to derive for.
4281
+ * @param {string} [options.workflowName] Caller chain, `/`-joined.
4282
+ * @param {string[]} [options.callerChain] Caller chain, outermost first.
4283
+ * @param {string[]} [options.previousLabels] Labels retired this release.
4201
4284
  * @returns {string[]} Sorted, de-duplicated contexts.
4202
4285
  */
4203
4286
  export function contextsFor(gates, options = {}) {
4204
4287
  const {
4205
4288
  moment = PULL_REQUEST,
4206
- workflowName = "๐Ÿ” Quality Checks",
4289
+ workflowName,
4290
+ callerChain,
4207
4291
  previousLabels = [],
4208
4292
  } = options;
4293
+ const prefix = callerChainFrom({ callerChain, workflowName }).join(
4294
+ CONTEXT_SEPARATOR
4295
+ );
4209
4296
 
4210
4297
  const contexts = resolveMoment({ gates, moment })
4211
4298
  .filter(gate => gate.level === "required")
4212
4299
  // An awaited signal posts under its own name; a run job posts under the
4213
- // calling workflow's.
4300
+ // chain of jobs that reach it.
4214
4301
  .flatMap(gate => {
4215
4302
  if (gate.mode === "await") return [gate.awaits];
4216
4303
  // The gate's OWN record of what it used to be called, unioned in
@@ -4220,8 +4307,8 @@ export function contextsFor(gates, options = {}) {
4220
4307
  // DECLARED once, in the registry, and every derivation sees it.
4221
4308
  const former = REGISTRY[gate.id]?.previousLabels ?? [];
4222
4309
  return [
4223
- `${workflowName} / ${gate.label}`,
4224
- ...former.map(label => `${workflowName} / ${label}`),
4310
+ `${prefix}${CONTEXT_SEPARATOR}${gate.label}`,
4311
+ ...former.map(label => `${prefix}${CONTEXT_SEPARATOR}${label}`),
4225
4312
  ];
4226
4313
  });
4227
4314
 
@@ -4229,11 +4316,122 @@ export function contextsFor(gates, options = {}) {
4229
4316
  // question from the registry field: the field records a rename Lisa shipped,
4230
4317
  // the flag names a string some particular ruleset happens to carry.
4231
4318
  for (const label of previousLabels) {
4232
- contexts.push(`${workflowName} / ${label}`);
4319
+ contexts.push(`${prefix}${CONTEXT_SEPARATOR}${label}`);
4233
4320
  }
4234
4321
  return [...new Set(contexts)].sort((a, b) => a.localeCompare(b));
4235
4322
  }
4236
4323
 
4324
+ /**
4325
+ * Why a derived context list could not be reported clear.
4326
+ *
4327
+ * `NEVER_POSTED` is the trap this vocabulary exists for; the two vacuous
4328
+ * reasons exist because without them an empty comparison is indistinguishable
4329
+ * from a passing one.
4330
+ */
4331
+ export const CONTEXT_VERDICTS = Object.freeze({
4332
+ NEVER_POSTED: "never-posted",
4333
+ VACUOUS_DERIVED: "vacuous-derived",
4334
+ VACUOUS_POSTED: "vacuous-posted",
4335
+ });
4336
+
4337
+ /**
4338
+ * The caller chains a real run actually posted, read off its check-run names.
4339
+ *
4340
+ * This is how the depth stops being an assumption. Rather than reasoning about
4341
+ * YAML, hand a completed run's check-run names and the gate labels in play,
4342
+ * and each name that ends in a known label yields the chain that produced it โ€”
4343
+ * `["๐Ÿ” Quality Checks"]` from a pull-request run, `["Release", "๐Ÿ” Quality
4344
+ * Checks"]` from the release run of the same commit. Feed the answer back in
4345
+ * as `callerChain` and the derivation matches reality by construction.
4346
+ * @param {string[]} [postedNames] Check-run names a completed run posted.
4347
+ * @param {string[]} [labels] Gate labels those runs are named for.
4348
+ * @returns {string[][]} Distinct chains, shallowest first.
4349
+ */
4350
+ export function postedCallerChains(postedNames = [], labels = []) {
4351
+ const chains = new Map();
4352
+ for (const name of postedNames) {
4353
+ for (const label of labels) {
4354
+ const suffix = `${CONTEXT_SEPARATOR}${label}`;
4355
+ if (!name.endsWith(suffix)) continue;
4356
+ const prefix = name.slice(0, -suffix.length);
4357
+ if (prefix === "") continue;
4358
+ chains.set(prefix, prefix.split(CONTEXT_SEPARATOR));
4359
+ }
4360
+ }
4361
+ return [...chains.values()].sort(
4362
+ (left, right) =>
4363
+ left.length - right.length ||
4364
+ left.join(CONTEXT_SEPARATOR).localeCompare(right.join(CONTEXT_SEPARATOR))
4365
+ );
4366
+ }
4367
+
4368
+ /**
4369
+ * Prove every derived required context is a name a real run actually posted.
4370
+ *
4371
+ * The whole point of the exercise. A required context nothing posts is not a
4372
+ * failure anyone can see: GitHub holds the pull request at "Expected โ€” Waiting
4373
+ * for status to be reported" indefinitely, with no red tick to chase and no log
4374
+ * to read. Deriving one level too few strands a nested consumer there; deriving
4375
+ * one too many strands everybody pinned to the current string. Reasoning about
4376
+ * which is right is exactly what got this wrong, so this compares against what
4377
+ * a run posted instead.
4378
+ *
4379
+ * Both vacuous arms fail rather than pass, and that is deliberate. An empty
4380
+ * derived set and a fully-matched one produce the same "nothing missing", and
4381
+ * an empty posted set makes every derived name look absent OR present
4382
+ * depending on which way you write the loop. Neither is evidence, so neither
4383
+ * reports clear.
4384
+ * @param {object} [options] Comparison inputs.
4385
+ * @param {string[]} [options.derived] Contexts `contextsFor` derived.
4386
+ * @param {string[]} [options.posted] Check-run names a completed run posted.
4387
+ * @returns {{ok: boolean, missing: string[], verdict: string|null, reason: string|null}} The verdict.
4388
+ */
4389
+ export function verifyContextsPosted({ derived = [], posted = [] } = {}) {
4390
+ if (derived.length === 0) {
4391
+ return {
4392
+ ok: false,
4393
+ missing: [],
4394
+ verdict: CONTEXT_VERDICTS.VACUOUS_DERIVED,
4395
+ reason:
4396
+ "no required context was derived, so nothing was compared. An empty " +
4397
+ "derived set reports the same all-clear as a fully-matched one; name " +
4398
+ "the moment and the gates block that were meant to produce contexts.",
4399
+ };
4400
+ }
4401
+ if (posted.length === 0) {
4402
+ return {
4403
+ ok: false,
4404
+ missing: [...derived],
4405
+ verdict: CONTEXT_VERDICTS.VACUOUS_POSTED,
4406
+ reason:
4407
+ "no check-run names were supplied, so nothing could be compared " +
4408
+ `against the ${derived.length} derived context(s). Read them off a ` +
4409
+ "completed run: gh api repos/OWNER/NAME/commits/SHA/check-runs " +
4410
+ "--paginate --slurp, unioned with the commit statuses from " +
4411
+ "repos/OWNER/NAME/commits/SHA/status โ€” a required context can be " +
4412
+ "either surface.",
4413
+ };
4414
+ }
4415
+ const seen = new Set(posted);
4416
+ const missing = derived
4417
+ .filter(context => !seen.has(context))
4418
+ .sort((left, right) => left.localeCompare(right));
4419
+ if (missing.length === 0) {
4420
+ return { ok: true, missing, verdict: null, reason: null };
4421
+ }
4422
+ return {
4423
+ ok: false,
4424
+ missing,
4425
+ verdict: CONTEXT_VERDICTS.NEVER_POSTED,
4426
+ reason:
4427
+ `${missing.length} derived context(s) name no check run this run ` +
4428
+ "posted. Requiring one holds every pull request pending forever. Check " +
4429
+ "the caller chain first: the depth is the number of reusable-workflow " +
4430
+ "hops above the job, and it differs between the pull-request and " +
4431
+ "release paths.",
4432
+ };
4433
+ }
4434
+
4237
4435
  /**
4238
4436
  * Format the common unknown-moment suffix.
4239
4437
  * @param {string} moment The rejected moment.
@@ -4428,6 +4626,82 @@ function reportUngoverned(gates) {
4428
4626
  console.log("");
4429
4627
  }
4430
4628
 
4629
+ /**
4630
+ * Derive the contexts both `contexts` and `verify-contexts` answer about.
4631
+ *
4632
+ * One function so the names being VERIFIED are byte-for-byte the names being
4633
+ * REQUIRED. Two call sites deriving separately is how a verifier ends up
4634
+ * proving something other than what shipped.
4635
+ *
4636
+ * `--workflow` takes the whole caller chain, `/`-joined, because that is what
4637
+ * GitHub names a check run: `--workflow "๐Ÿ” Quality Checks"` for the
4638
+ * pull-request path, `--workflow "Release / ๐Ÿ” Quality Checks"` for the
4639
+ * release path. Nothing needed a new flag; the old single-level value is the
4640
+ * one-element chain and derives exactly what it always did.
4641
+ * @param {object} gates The gates block.
4642
+ * @param {(name: string) => string|null} flag CLI flag reader.
4643
+ * @returns {string[]} Derived contexts.
4644
+ */
4645
+ function cliContexts(gates, flag) {
4646
+ return contextsFor(gates, {
4647
+ moment: flag("moment") ?? PULL_REQUEST,
4648
+ workflowName:
4649
+ flag("workflow") ?? DEFAULT_CALLER_CHAIN.join(CONTEXT_SEPARATOR),
4650
+ previousLabels: (flag("previous") ?? "")
4651
+ .split(",")
4652
+ .map(entry => entry.trim())
4653
+ .filter(Boolean),
4654
+ });
4655
+ }
4656
+
4657
+ /**
4658
+ * Read the names a completed run posted, from one or more evidence files.
4659
+ *
4660
+ * GitHub posts a required context from TWO surfaces and a branch ruleset
4661
+ * cannot tell them apart: a check run (`.../check-runs`, `.name`) and a commit
4662
+ * status (`.../status`, `.statuses[].context`). CodeRabbit is a status, so a
4663
+ * verifier that reads only check runs reports it never-posted and sends
4664
+ * whoever reads that on a hunt for a naming bug that is not there. Both shapes
4665
+ * are accepted, and `--posted` takes a comma-separated list so the two can be
4666
+ * unioned:
4667
+ *
4668
+ * ```
4669
+ * gh api repos/OWNER/NAME/commits/SHA/check-runs --paginate --slurp > runs.json
4670
+ * gh api repos/OWNER/NAME/commits/SHA/status > statuses.json
4671
+ * lisa-gates.mjs verify-contexts --posted=runs.json,statuses.json
4672
+ * ```
4673
+ * @param {string|null} source Comma-separated file paths, or `-` for stdin.
4674
+ * @returns {string[]} Posted names, unioned across the sources.
4675
+ */
4676
+ function readPostedNames(source) {
4677
+ const sources = (source ?? "")
4678
+ .split(",")
4679
+ .map(entry => entry.trim())
4680
+ .filter(Boolean);
4681
+ if (sources.length === 0) {
4682
+ throw new Error(
4683
+ "verify-contexts requires --posted=<file|->[,<file>] naming what a " +
4684
+ "completed run posted: gh api repos/OWNER/NAME/commits/SHA/check-runs " +
4685
+ "--paginate --slurp > runs.json, and gh api " +
4686
+ "repos/OWNER/NAME/commits/SHA/status > statuses.json for the commit " +
4687
+ "statuses a check-runs read alone would miss."
4688
+ );
4689
+ }
4690
+ const names = new Set();
4691
+ for (const entry of sources) {
4692
+ const parsed = JSON.parse(readFileSync(entry === "-" ? 0 : entry, "utf8"));
4693
+ for (const payload of Array.isArray(parsed) ? parsed : [parsed]) {
4694
+ if (typeof payload === "string") {
4695
+ names.add(payload);
4696
+ continue;
4697
+ }
4698
+ for (const run of payload.check_runs ?? []) names.add(run.name);
4699
+ for (const status of payload.statuses ?? []) names.add(status.context);
4700
+ }
4701
+ }
4702
+ return [...names];
4703
+ }
4704
+
4431
4705
  /**
4432
4706
  * CLI entry point.
4433
4707
  */
@@ -4583,24 +4857,25 @@ function main() {
4583
4857
  }
4584
4858
 
4585
4859
  if (command === "contexts") {
4586
- const previousLabels = (flag("previous") ?? "")
4587
- .split(",")
4588
- .map(entry => entry.trim())
4589
- .filter(Boolean);
4590
- console.log(
4591
- JSON.stringify(
4592
- contextsFor(gates, {
4593
- moment: flag("moment") ?? PULL_REQUEST,
4594
- workflowName: flag("workflow") ?? "๐Ÿ” Quality Checks",
4595
- previousLabels,
4596
- }),
4597
- null,
4598
- 2
4599
- )
4600
- );
4860
+ console.log(JSON.stringify(cliContexts(gates, flag), null, 2));
4601
4861
  return;
4602
4862
  }
4603
4863
 
4864
+ if (command === "verify-contexts") {
4865
+ const result = verifyContextsPosted({
4866
+ derived: cliContexts(gates, flag),
4867
+ posted: readPostedNames(flag("posted")),
4868
+ });
4869
+ if (result.ok) {
4870
+ console.log("every derived required context was posted by that run.");
4871
+ return;
4872
+ }
4873
+ const listed = result.missing.length
4874
+ ? `\n missing: ${result.missing.join("\n missing: ")}`
4875
+ : "";
4876
+ throw new Error(`${result.verdict}: ${result.reason}${listed}`);
4877
+ }
4878
+
4604
4879
  if (command === "skip-jobs") {
4605
4880
  // Deliberately not gated on reading .lisa.config.json: this answers "what
4606
4881
  // would replace this token", which a repository that has not migrated yet
@@ -4747,7 +5022,7 @@ function main() {
4747
5022
  }
4748
5023
 
4749
5024
  throw new Error(
4750
- "usage: lisa-gates.mjs validate|list|legs|quality-plan|needs|contexts|skip-jobs|audit-config|inventory|unconfigured|seed"
5025
+ "usage: lisa-gates.mjs validate|list|legs|quality-plan|needs|contexts|verify-contexts|skip-jobs|audit-config|inventory|unconfigured|seed"
4751
5026
  );
4752
5027
  }
4753
5028
 
@@ -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,CAsmBjC,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,CA0mBjC,CAAC"}
@@ -326,6 +326,7 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
326
326
  "444ed4b879ef7af5dc409ae48743ad06354e47b727ddb5be0877cab52ddd0b64",
327
327
  "45d1e52bbe453068298715ea4f25e3990589dd20d2adc8e61c05fbe79a023c78",
328
328
  "4634a1012f1c9ef991ce99ee98eb85a57d207e99b1da1bc760a67a09b5017946",
329
+ "48ea370b67e2cc200cc2041fadfda3b8037b5f36d66d99723fdc969af2f25c51",
329
330
  "4907989922ad86f5c162413e1b4c8560b6e7bb9417ab4d109f8dbfc676d4921e",
330
331
  "49f37c7e896df0c43c07827b02bbecc570cccf3c27b2f7741ed53dc139a7824c",
331
332
  "4a1dd584267006e0538590ec183d40f90a87a5eea40bf041027920145f4f39d3",
@@ -371,6 +372,7 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
371
372
  "cc4270e365f53c60a5eefb58a8ac8e22be184c0821fcdcc8fe67bcfc1df5e3dd",
372
373
  "ccbbab687ee2dbc572726ae187324af34b971075b6c808e1781005b489500429",
373
374
  "cd41b2f04be5ba97be8fd6e618e8bccca4c4d0823acbc8e82c239b6d45dfe020",
375
+ "cebeb1a5a1f87d2f77fb961229be81d9180ab9dafe977559b71d527bf32397c9",
374
376
  "d1b7ef530ea29a4ab1c5b1aaa13bd94262d2a0d16cfd7066345efc526457f44c",
375
377
  "d404a7f78facf07abf5633e3aeb9ba779334bfebd2989cc4cb38d1b37d96a2ba",
376
378
  "d545c49bbe6bf31c224d4205ee1fcb8e849c057d5241913c19f83d4ba7195793",
@@ -384,6 +386,8 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
384
386
  "f0343c4ef3fde6576362eeb52e1ae3855108eba9d5034ccec8478db0637935d8",
385
387
  "f1bcdbc71883ee315034fe8e1dedfc83ea0d8e8ca5d445c455cfa448581a75a9",
386
388
  "f5204b52a6e99ebc327d288e8c534b5dd6acb32325c864bf599655cdbbe4a55e",
389
+ "f69886d89b2bc90c8f87ae5f6d0dd2f10022f71921d4e6416def4f1d5c484b8e",
390
+ "f8740e49cb987ae8cf9fda2718c00c2854f8043f140448142041a3d7decd8d89",
387
391
  "f8ae8672df5cc6e8485bbb5d9292a19ee0cac4d9b02c3489869f3352c61d8d2e",
388
392
  "f8ebc11f8bbb27ce8cea883044687f7c023302a928de1d917209cae84274367a",
389
393
  "f9e94e7daa0fffedefb224882c2944f66a8f39d60e6a4c1f4410975a7f98ef24",
@@ -1 +1 @@
1
- {"version":3,"file":"lisa-owned-hash-ledger.js","sourceRoot":"","sources":["../../src/core/lisa-owned-hash-ledger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lisa-owned-hash-ledger.js","sourceRoot":"","sources":["../../src/core/lisa-owned-hash-ledger.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"upstream-evidence-manifest.d.ts","sourceRoot":"","sources":["../../src/core/upstream-evidence-manifest.ts"],"names":[],"mappings":"AACA,iFAAiF;AACjF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA84EpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAokPjE,CAAC;AAEL,sFAAsF;AACtF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAk6I/D,CAAC"}
1
+ {"version":3,"file":"upstream-evidence-manifest.d.ts","sourceRoot":"","sources":["../../src/core/upstream-evidence-manifest.ts"],"names":[],"mappings":"AACA,iFAAiF;AACjF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA84EpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAqkPjE,CAAC;AAEL,sFAAsF;AACtF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAk6I/D,CAAC"}
@@ -15,7 +15,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
15
15
  "all/copy-overwrite/scripts/lisa-enforcement-fallback.sh": "b4cc14d5dc02c790ea3e51b0134b9c3d5e4a0e8ef08a652817f7485a0badde17",
16
16
  "all/copy-overwrite/scripts/lisa-environment-prepare.mjs": "63879152ebb67f289e900167daf035f2d03d7773c6e110ed5ab708c95417c55c",
17
17
  "all/copy-overwrite/scripts/lisa-floor-collisions.mjs": "41060648b4394d417528f4f560a52f296b4df5b6ec8a5633e08afe4588b6a088",
18
- "all/copy-overwrite/scripts/lisa-gates.mjs": "a8f424d74c4d6e6df4b5972090d2e3160ff09ae671c0479bb49a5d8ab9bb9281",
18
+ "all/copy-overwrite/scripts/lisa-gates.mjs": "48ea370b67e2cc200cc2041fadfda3b8037b5f36d66d99723fdc969af2f25c51",
19
19
  "all/copy-overwrite/scripts/lisa-hooks/block-direct-issue-create.sh": "2e030d5a394d3edb48c391db49661fb3d45545c85f88ea03d1ab07ad3787c089",
20
20
  "all/copy-overwrite/scripts/lisa-hooks/block-instruction-file-edits.sh": "3e709e1ec8a5843c00684bc477ad32ddab2c5fdb11f71d5aeec0c49609eaf025",
21
21
  "all/copy-overwrite/scripts/lisa-hooks/block-managed-file-edits.sh": "d3ef2562b718156912f0877f8a0668026f5966fcca43eb9e064aa57a4e9a4976",
@@ -8216,6 +8216,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
8216
8216
  "tests/unit/scripts/lint-staged-preflight.test.ts": true,
8217
8217
  "tests/unit/scripts/lisa-assert-eas-profile.test.ts": true,
8218
8218
  "tests/unit/scripts/lisa-environment-prepare.test.ts": true,
8219
+ "tests/unit/scripts/lisa-gates-caller-chain.test.ts": true,
8219
8220
  "tests/unit/scripts/lisa-gates-declared-executors.test.ts": true,
8220
8221
  "tests/unit/scripts/lisa-gates-evidence.test.ts": true,
8221
8222
  "tests/unit/scripts/lisa-gates-fixtures.ts": true,