@codyswann/lisa 4.0.1 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/all/copy-overwrite/scripts/lisa-gates.mjs +299 -15
- package/dist/cli/doctor-readiness.d.ts +25 -0
- package/dist/cli/doctor-readiness.d.ts.map +1 -1
- package/dist/cli/doctor-readiness.js +35 -5
- package/dist/cli/doctor-readiness.js.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.js +5 -0
- package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +5 -1
- package/dist/core/upstream-evidence-manifest.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
|
@@ -24,6 +24,14 @@
|
|
|
24
24
|
* another. What a gate needs in order to run is expressed as `needs`, and the
|
|
25
25
|
* surface falls out of wherever that moment happens to occur.
|
|
26
26
|
*
|
|
27
|
+
* `needs` is TWO fields wearing one name, split by who can honestly know the
|
|
28
|
+
* answer. A project declares `tools` and `secrets`, because those describe the
|
|
29
|
+
* prover IT named and Lisa has never seen it. The registry declares `deps`,
|
|
30
|
+
* because that describes the prover LISA wrote — see the field's own comment
|
|
31
|
+
* below. For as long as this sentence was written and no registry entry had a
|
|
32
|
+
* `needs`, the promise was true of one half only; the split is what makes it
|
|
33
|
+
* true of both.
|
|
34
|
+
*
|
|
27
35
|
* ## Two proof modes
|
|
28
36
|
*
|
|
29
37
|
* `run` executes a task and reads its exit code. `await` watches for an
|
|
@@ -184,9 +192,48 @@ export const GATE_FIELDS = new Set(["run", "needs", "task"]);
|
|
|
184
192
|
* run that is already blocked.
|
|
185
193
|
*/
|
|
186
194
|
|
|
195
|
+
/**
|
|
196
|
+
* Registry field: what a gate needs in order to run.
|
|
197
|
+
*
|
|
198
|
+
* The module doc comment above has promised this field since the registry was
|
|
199
|
+
* written — *"What a gate needs in order to run is expressed as `needs`"* — and
|
|
200
|
+
* until now no registry entry had one. Prose promising a mechanism that does
|
|
201
|
+
* not exist is the same shape as a check reporting satisfied without proving
|
|
202
|
+
* anything, in miniature, and it is closed here rather than filed separately
|
|
203
|
+
* because a generic runner cannot be built without it.
|
|
204
|
+
*
|
|
205
|
+
* Three keys, all optional:
|
|
206
|
+
*
|
|
207
|
+
* - `tools` and `secrets` are the union `needsAt` reports, and a project may
|
|
208
|
+
* declare its own on top. What Lisa knows and what the project knows are
|
|
209
|
+
* both true, so they add rather than override.
|
|
210
|
+
* - `deps` is REGISTRY-ONLY, and it is a claim about **Lisa's default prover
|
|
211
|
+
* for this gate**, not about the gate. `deps: false` says that prover runs
|
|
212
|
+
* with nothing installed — a shipped `.mjs` importing only `node:` builtins
|
|
213
|
+
* and its own siblings. Absent means the prover needs the project's
|
|
214
|
+
* dependencies, which is the safe answer and therefore the default.
|
|
215
|
+
*
|
|
216
|
+
* `deps` is registry-only because it is only ever safe as a claim about a
|
|
217
|
+
* command Lisa wrote. The moment a project names a prover of its own, Lisa has
|
|
218
|
+
* no idea what it imports — so `momentLegs` honours `deps: false` ONLY while
|
|
219
|
+
* the resolved task is still the registry default, and installs otherwise.
|
|
220
|
+
* Skipping an install a prover needed fails as `Cannot find module`, which
|
|
221
|
+
* reads as a broken gate rather than a wrong declaration; the asymmetry is why
|
|
222
|
+
* the unsafe direction is unreachable rather than merely discouraged.
|
|
223
|
+
*/
|
|
224
|
+
|
|
187
225
|
/** Prefix marking a gate, or a config key, that this project invented. */
|
|
188
226
|
export const CUSTOM_PREFIX = "x-";
|
|
189
227
|
|
|
228
|
+
/**
|
|
229
|
+
* `needs.deps: false`, named once.
|
|
230
|
+
*
|
|
231
|
+
* Written as a shared constant rather than repeated inline so that the set of
|
|
232
|
+
* gates making this claim is greppable, and so a reader who wants to know what
|
|
233
|
+
* the claim means has one place to look rather than six identical literals.
|
|
234
|
+
*/
|
|
235
|
+
const NO_INSTALL = Object.freeze({ deps: false });
|
|
236
|
+
|
|
190
237
|
const COMMIT_ONWARD = [COMMIT, PUSH, PULL_REQUEST, PRE_DEPLOY, POST_DEPLOY];
|
|
191
238
|
const PUSH_ONWARD = [PUSH, PULL_REQUEST, PRE_DEPLOY, POST_DEPLOY];
|
|
192
239
|
const PR_ONWARD = [PULL_REQUEST, PRE_DEPLOY, POST_DEPLOY];
|
|
@@ -516,6 +563,9 @@ export const REGISTRY = Object.freeze({
|
|
|
516
563
|
summary:
|
|
517
564
|
"Every persistent entity carries a reset policy, and every fixture-owned entity has something that sweeps it.",
|
|
518
565
|
task: "check:state-classification",
|
|
566
|
+
// `check-state-classification.mjs` imports `node:fs`, `node:path`,
|
|
567
|
+
// `node:url` and two shipped siblings. Nothing from `node_modules`.
|
|
568
|
+
needs: NO_INSTALL,
|
|
519
569
|
declareOnly:
|
|
520
570
|
"The prover ships as `scripts/check-state-classification.mjs` and no template installs a script for it. Point `run:` at a task that invokes it, or at your own inventory comparison.",
|
|
521
571
|
// Not folded into the environment facade above, though it sits in the same
|
|
@@ -722,6 +772,10 @@ export const REGISTRY = Object.freeze({
|
|
|
722
772
|
label: "🔗 Work-Item Traceability",
|
|
723
773
|
summary: "Every change is bound to a live tracker item.",
|
|
724
774
|
task: "check:work-item",
|
|
775
|
+
// Both provers are `lisa-work-item.mjs`, which imports `node:fs`,
|
|
776
|
+
// `node:path`, Node's own process-spawning builtin, and one shipped
|
|
777
|
+
// sibling. It shells out to `gh`, which the runner image carries.
|
|
778
|
+
needs: NO_INSTALL,
|
|
725
779
|
// The property is one property; the prover is not one prover. At
|
|
726
780
|
// pull-request there is a pull request to read — a body, a backlink, a
|
|
727
781
|
// number — and `validate-pr` reads it. At push there is often no pull
|
|
@@ -741,6 +795,11 @@ export const REGISTRY = Object.freeze({
|
|
|
741
795
|
label: "📝 Commit Message",
|
|
742
796
|
summary: "Commit messages follow the declared convention.",
|
|
743
797
|
task: "check:commit-msg",
|
|
798
|
+
// The commit-msg prover is commitlint, which is a dependency — but the
|
|
799
|
+
// `declareOnly` below says there is no repo-wide script form, so any
|
|
800
|
+
// project declaring this gate names a `run:` of its own and the
|
|
801
|
+
// registry claim is never the one that decides. Left absent rather
|
|
802
|
+
// than guessed: absent means install, which is the safe answer.
|
|
744
803
|
declareOnly:
|
|
745
804
|
"Proved by the commit-msg hook running commitlint against one message file. There is no repo-wide script form.",
|
|
746
805
|
moments: COMMIT_ONWARD,
|
|
@@ -749,6 +808,9 @@ export const REGISTRY = Object.freeze({
|
|
|
749
808
|
label: "📐 Threshold Ratchet",
|
|
750
809
|
summary: "Quality thresholds may tighten, never loosen.",
|
|
751
810
|
task: "check:thresholds",
|
|
811
|
+
// `threshold-ratchet.mjs` imports `node:fs`, `node:path`, `node:url`,
|
|
812
|
+
// Node's own process-spawning builtin, and two siblings beside it.
|
|
813
|
+
needs: NO_INSTALL,
|
|
752
814
|
declareOnly:
|
|
753
815
|
"The prover ships as a plugin hook (`threshold-ratchet.mjs`), not as a package script.",
|
|
754
816
|
moments: PUSH_ONWARD,
|
|
@@ -779,12 +841,20 @@ export const REGISTRY = Object.freeze({
|
|
|
779
841
|
label: "🩹 Conflict Markers",
|
|
780
842
|
summary: "No leftover merge-conflict markers in tracked files.",
|
|
781
843
|
task: "check:conflict-markers",
|
|
844
|
+
// `check-conflict-markers.mjs` imports `node:fs`, `node:path`,
|
|
845
|
+
// `node:process`, Node's own process-spawning builtin, and one shipped
|
|
846
|
+
// sibling; it enumerates tracked files through `git ls-files`. Nothing
|
|
847
|
+
// from `node_modules`.
|
|
848
|
+
needs: NO_INSTALL,
|
|
782
849
|
moments: COMMIT_ONWARD,
|
|
783
850
|
},
|
|
784
851
|
"version-duplication": {
|
|
785
852
|
label: "🧮 Duplicate Versions",
|
|
786
853
|
summary: "One declared version per dependency.",
|
|
787
854
|
task: "check:duplicate-versions",
|
|
855
|
+
// `check-duplicate-versions.mjs` imports `node:fs`, `node:path`,
|
|
856
|
+
// `node:process`, `node:url` and one sibling.
|
|
857
|
+
needs: NO_INSTALL,
|
|
788
858
|
declareOnly:
|
|
789
859
|
"A prover exists in Lisa's own `scripts/` and is not shipped to consumers. Exposing it is separate work; until then, point `run:` at your own.",
|
|
790
860
|
moments: COMMIT_ONWARD,
|
|
@@ -919,6 +989,161 @@ export function qualityJobPlan({ gates = {}, moment }) {
|
|
|
919
989
|
);
|
|
920
990
|
}
|
|
921
991
|
|
|
992
|
+
/**
|
|
993
|
+
* The gates a hand-written job already posts a branch-protection context for.
|
|
994
|
+
*
|
|
995
|
+
* Exactly one job may be named a gate's `label`, or two jobs post one context
|
|
996
|
+
* and branch protection matches whichever reported last. So the generic runner
|
|
997
|
+
* emits no leg for anything in here — not because those gates are unimportant,
|
|
998
|
+
* but because their context is spoken for.
|
|
999
|
+
*
|
|
1000
|
+
* THIS IS THE MIGRATION, and it is one act rather than two. There is no
|
|
1001
|
+
* separate ledger of "gates that moved onto the runner", because a ledger
|
|
1002
|
+
* nothing depends on is a comment wearing code's clothes:
|
|
1003
|
+
* `tests/integration/quality-gate-skip-jobs-mapping.test.ts` derives
|
|
1004
|
+
* `QUALITY_JOB_GATES` from the jobs the shipped workflows actually define and
|
|
1005
|
+
* asserts equality, so a deleted job MUST lose its row in the same commit —
|
|
1006
|
+
* and losing the row is exactly what hands the gate to the runner. Forgetting
|
|
1007
|
+
* a ledger entry could have been silent; forgetting the row cannot be.
|
|
1008
|
+
*
|
|
1009
|
+
* The deletion order still matters and is still a safety property: a block
|
|
1010
|
+
* deleted before its leg has reported green turns a proving check into a
|
|
1011
|
+
* silently absent one. What enforces it is the sequence, not a list — the leg
|
|
1012
|
+
* cannot exist until the block is gone, so the block is deleted only once the
|
|
1013
|
+
* gate's declaration has been observed running through some other leg.
|
|
1014
|
+
* @returns {readonly string[]} Sorted gate ids, deduplicated.
|
|
1015
|
+
*/
|
|
1016
|
+
export function jobBackedGates() {
|
|
1017
|
+
return Object.freeze(
|
|
1018
|
+
[...new Set(Object.values(QUALITY_JOB_GATES))].sort((left, right) =>
|
|
1019
|
+
left.localeCompare(right)
|
|
1020
|
+
)
|
|
1021
|
+
);
|
|
1022
|
+
}
|
|
1023
|
+
|
|
1024
|
+
/** What a leg does when it runs. */
|
|
1025
|
+
export const LEG_ACTIONS = Object.freeze(["run", "report", "unproved"]);
|
|
1026
|
+
|
|
1027
|
+
/** Minutes a leg gets when its gate is not marked `costly`. */
|
|
1028
|
+
export const LEG_TIMEOUT_MINUTES = 15;
|
|
1029
|
+
|
|
1030
|
+
/** Minutes a leg gets when its gate IS marked `costly`. */
|
|
1031
|
+
export const COSTLY_LEG_TIMEOUT_MINUTES = 60;
|
|
1032
|
+
|
|
1033
|
+
/**
|
|
1034
|
+
* What a task may be spelled with before it reaches a leg's shell.
|
|
1035
|
+
*
|
|
1036
|
+
* The same class `quality.yml`'s in-job resolver applies, and it must be
|
|
1037
|
+
* applied HERE as well rather than instead: a leg receives an already-resolved
|
|
1038
|
+
* task through the matrix, so the workflow has no second chance to refuse it.
|
|
1039
|
+
* `.lisa.config.json` is a file a pull request can edit, and the resolved value
|
|
1040
|
+
* reaches `run: $GATE_RUNNER $GATE_TASK` as a deliberate word split. A colon is
|
|
1041
|
+
* admitted because task names carry one (`test:cov`, `lint:staged`); `$( )`,
|
|
1042
|
+
* backticks, `;`, `&&` and quotes are not.
|
|
1043
|
+
*/
|
|
1044
|
+
const TASK_PATTERN = /^[A-Za-z0-9:._@/= -]+$/;
|
|
1045
|
+
|
|
1046
|
+
/**
|
|
1047
|
+
* The matrix legs a moment's declarations imply, one leg per posted context.
|
|
1048
|
+
*
|
|
1049
|
+
* This is the pull-request moment's answer to `lisa-run-gates.mjs`. The commit
|
|
1050
|
+
* and push moments have had a generic executor since the hooks stopped
|
|
1051
|
+
* hardcoding their step lists; the pull-request moment did not, so a gate
|
|
1052
|
+
* outside the hand-written set was unreachable from a declaration no matter
|
|
1053
|
+
* what a project wrote. That asymmetry is the root cause behind several filed
|
|
1054
|
+
* symptoms, and it closes by making the workflow ask the registry too.
|
|
1055
|
+
*
|
|
1056
|
+
* ## Which gates get a leg, and why `off` is included
|
|
1057
|
+
*
|
|
1058
|
+
* Every gate the project DECLARES at this moment, including the ones declared
|
|
1059
|
+
* `off`, minus the ones a hand-written job already posts a context for.
|
|
1060
|
+
*
|
|
1061
|
+
* Including `off` is the half that is easy to get wrong and expensive to get
|
|
1062
|
+
* wrong. A required context that never reports does not read as skipped — it
|
|
1063
|
+
* holds the pull request at "Expected — Waiting for status to be reported",
|
|
1064
|
+
* forever. `contextsFor` will not emit a context for an `off` gate, so the two
|
|
1065
|
+
* agree for a project whose ruleset is generated from the same declaration; a
|
|
1066
|
+
* ruleset that still names it must still see it report. So an `off` leg runs,
|
|
1067
|
+
* says out loud that the project turned this gate off, and succeeds.
|
|
1068
|
+
*
|
|
1069
|
+
* ## What a leg cannot do, and says instead
|
|
1070
|
+
*
|
|
1071
|
+
* A leg's body is `$runner $task`. Where nothing resolves to a task — a custom
|
|
1072
|
+
* `x-` gate the project declared without a `run:`, say — the leg reports
|
|
1073
|
+
* `unproved` and FAILS. That is deliberate and it is the distinction between
|
|
1074
|
+
* this and the defect it replaces: a job that skips its proving step when the
|
|
1075
|
+
* prover is missing reports green having measured nothing. Absent is not a
|
|
1076
|
+
* skip, and a leg that measured nothing must be loud rather than absent.
|
|
1077
|
+
*
|
|
1078
|
+
* `await` and `intercept` gates get no leg at all, which is a different
|
|
1079
|
+
* statement: those are proved, by a vendor posting its own context or by Lisa
|
|
1080
|
+
* internally, and a leg would be a second reporter for one property.
|
|
1081
|
+
* @param {object} options Resolution inputs.
|
|
1082
|
+
* @param {object} options.gates The project gates block.
|
|
1083
|
+
* @param {string} options.moment The moment to resolve.
|
|
1084
|
+
* @param {string} [options.runner] The task runner.
|
|
1085
|
+
* @param {object|null} [options.scripts] The project's package scripts.
|
|
1086
|
+
* @returns {object[]} One leg per context this moment must post.
|
|
1087
|
+
*/
|
|
1088
|
+
export function momentLegs({
|
|
1089
|
+
gates,
|
|
1090
|
+
moment,
|
|
1091
|
+
runner = DEFAULT_RUNNER,
|
|
1092
|
+
scripts = null,
|
|
1093
|
+
}) {
|
|
1094
|
+
const spokenFor = new Set(jobBackedGates());
|
|
1095
|
+
const legs = [];
|
|
1096
|
+
for (const gate of resolveMoment({
|
|
1097
|
+
gates,
|
|
1098
|
+
moment,
|
|
1099
|
+
runner,
|
|
1100
|
+
includeOff: true,
|
|
1101
|
+
scripts,
|
|
1102
|
+
})) {
|
|
1103
|
+
if (spokenFor.has(gate.id)) continue;
|
|
1104
|
+
if (gate.mode === "await" || gate.mode === "intercept") continue;
|
|
1105
|
+
|
|
1106
|
+
const definition = REGISTRY[gate.id];
|
|
1107
|
+
const action =
|
|
1108
|
+
gate.level === "off" ? "report" : gate.task ? "run" : "unproved";
|
|
1109
|
+
if (action === "run" && !TASK_PATTERN.test(gate.task)) {
|
|
1110
|
+
throw new Error(
|
|
1111
|
+
`gates."${gate.id}"."${moment}" resolves to task ` +
|
|
1112
|
+
`${JSON.stringify(gate.task)}, which is not a plain word.`
|
|
1113
|
+
);
|
|
1114
|
+
}
|
|
1115
|
+
// `deps: false` is a claim about LISA'S prover, so it may only be honoured
|
|
1116
|
+
// while Lisa's prover is what resolved. A project `run:`, or a `shippedAs`
|
|
1117
|
+
// alias standing in for a default that does not exist here, both mean the
|
|
1118
|
+
// command is one Lisa did not write and cannot make claims about.
|
|
1119
|
+
const registryTask =
|
|
1120
|
+
definition?.taskAt?.[momentFamily(moment)] ?? definition?.task ?? null;
|
|
1121
|
+
const lisasOwnProver =
|
|
1122
|
+
gate.alias === null && gate.task !== null && gate.task === registryTask;
|
|
1123
|
+
legs.push({
|
|
1124
|
+
gate: gate.id,
|
|
1125
|
+
label: gate.label,
|
|
1126
|
+
level: gate.level,
|
|
1127
|
+
action,
|
|
1128
|
+
// Emitted empty rather than omitted for a leg that runs nothing. A
|
|
1129
|
+
// matrix `include:` entry with a missing key leaves `matrix.task`
|
|
1130
|
+
// unset, and `run: $GATE_RUNNER $GATE_TASK` with an unset task runs the
|
|
1131
|
+
// runner bare — which for `npm run` prints the script list and exits 0.
|
|
1132
|
+
runner: action === "run" ? runner : "",
|
|
1133
|
+
task: action === "run" ? gate.task : "",
|
|
1134
|
+
install:
|
|
1135
|
+
action === "run" &&
|
|
1136
|
+
!(definition?.needs?.deps === false && lisasOwnProver),
|
|
1137
|
+
timeout:
|
|
1138
|
+
definition?.costly === true
|
|
1139
|
+
? COSTLY_LEG_TIMEOUT_MINUTES
|
|
1140
|
+
: LEG_TIMEOUT_MINUTES,
|
|
1141
|
+
summary: definition?.summary ?? "",
|
|
1142
|
+
});
|
|
1143
|
+
}
|
|
1144
|
+
return legs;
|
|
1145
|
+
}
|
|
1146
|
+
|
|
922
1147
|
/**
|
|
923
1148
|
* Jobs that prove a gate some OTHER job carries the label for.
|
|
924
1149
|
*
|
|
@@ -3179,17 +3404,28 @@ function verdictFor({
|
|
|
3179
3404
|
);
|
|
3180
3405
|
}
|
|
3181
3406
|
const family = momentFamily(moment);
|
|
3182
|
-
|
|
3183
|
-
|
|
3184
|
-
|
|
3185
|
-
|
|
3186
|
-
|
|
3187
|
-
|
|
3188
|
-
|
|
3189
|
-
|
|
3190
|
-
|
|
3191
|
-
|
|
3192
|
-
|
|
3407
|
+
// A HAND-WRITTEN JOB is still the answer wherever one exists, and it is the
|
|
3408
|
+
// FIRST answer: that job's `name:` is the gate's label, it owns the context,
|
|
3409
|
+
// and the generic runner deliberately emits no leg for it.
|
|
3410
|
+
if (
|
|
3411
|
+
family === PULL_REQUEST &&
|
|
3412
|
+
Object.values(QUALITY_JOB_GATES).includes(gate)
|
|
3413
|
+
)
|
|
3414
|
+
return null;
|
|
3415
|
+
// Everything below is the GENERIC RUNNER's question, and until #2881 the
|
|
3416
|
+
// pull-request moment was excluded from it. That exclusion was true when it
|
|
3417
|
+
// was written — the moment had one hand-written block per gate and nothing
|
|
3418
|
+
// else — and it is the asymmetry the runner closes: a pull-request
|
|
3419
|
+
// declaration with no job now gets a matrix leg, exactly as a commit
|
|
3420
|
+
// declaration with no hook step gets a hook leg. So the same test applies to
|
|
3421
|
+
// both: does the declaration resolve to a task this project actually has?
|
|
3422
|
+
//
|
|
3423
|
+
// What has NOT changed is what happens when it does not. A leg with no task
|
|
3424
|
+
// reports NOT PROVED and fails, which is loud rather than absent — but it is
|
|
3425
|
+
// still a declaration describing nothing, so it is still `orphaned` here.
|
|
3426
|
+
// The classifier answers "can anything run this", not "will something say so
|
|
3427
|
+
// when it cannot".
|
|
3428
|
+
//
|
|
3193
3429
|
// The deploy and continuous families have a generic runner the same way the
|
|
3194
3430
|
// hooks do — `lisa-run-gates.mjs --moment=<moment>` — but unlike a hook,
|
|
3195
3431
|
// which every repository installs, the CALLER is a workflow this repository
|
|
@@ -3211,9 +3447,10 @@ function verdictFor({
|
|
|
3211
3447
|
`"off" to put on record that you meant it not to run.`
|
|
3212
3448
|
);
|
|
3213
3449
|
}
|
|
3214
|
-
// Everything remaining is executed by
|
|
3215
|
-
// moment,
|
|
3216
|
-
// run it, so
|
|
3450
|
+
// Everything remaining is executed by a generic runner: a hook at its
|
|
3451
|
+
// moment, a matrix leg at pull-request, or a workflow at a deploy or
|
|
3452
|
+
// scheduled one. All three resolve a task and run it, so all three need a
|
|
3453
|
+
// task that exists.
|
|
3217
3454
|
if (scripts === null || scripts === undefined) return null;
|
|
3218
3455
|
const task = resolvedTaskFor({ gate, block, moment, scripts });
|
|
3219
3456
|
if (
|
|
@@ -3482,6 +3719,19 @@ function validateNeeds(id, gate) {
|
|
|
3482
3719
|
if (typeof gate.needs !== "object" || Array.isArray(gate.needs)) {
|
|
3483
3720
|
return [`gates."${id}".needs must be an object with tools and/or secrets`];
|
|
3484
3721
|
}
|
|
3722
|
+
// Refused rather than ignored. `deps` is a claim about the prover Lisa
|
|
3723
|
+
// wrote, and honouring a project's copy of it would let a declaration skip
|
|
3724
|
+
// an install its own `run:` needs — a leg failing as `Cannot find module`,
|
|
3725
|
+
// which reads as a broken gate rather than as a wrong declaration. Silently
|
|
3726
|
+
// dropping the key would be worse: the operator would have written something
|
|
3727
|
+
// that looks obeyed and is not.
|
|
3728
|
+
if (gate.needs.deps !== undefined) {
|
|
3729
|
+
problems.push(
|
|
3730
|
+
`gates."${id}".needs.deps is registry-owned and cannot be declared. ` +
|
|
3731
|
+
`It states whether LISA's default prover for this gate runs without ` +
|
|
3732
|
+
`an install; a project naming its own "run:" always gets one.`
|
|
3733
|
+
);
|
|
3734
|
+
}
|
|
3485
3735
|
for (const field of ["tools", "secrets"]) {
|
|
3486
3736
|
if (gate.needs[field] === undefined) continue;
|
|
3487
3737
|
if (!Array.isArray(gate.needs[field])) {
|
|
@@ -3802,6 +4052,11 @@ export function needsAt({ gates, moment }) {
|
|
|
3802
4052
|
const secrets = new Set();
|
|
3803
4053
|
const reasons = {};
|
|
3804
4054
|
for (const gate of resolveMoment({ gates, moment })) {
|
|
4055
|
+
// PROJECT-DECLARED ONLY, and deliberately so. `tools` and `secrets` say
|
|
4056
|
+
// what a PROVER needs, and the prover is whatever the project named — Lisa
|
|
4057
|
+
// does not know it and must not guess on its behalf. The registry's own
|
|
4058
|
+
// `needs` carries `deps`, which is a claim about Lisa's default prover and
|
|
4059
|
+
// is read where that claim is used (`momentLegs`), not here.
|
|
3805
4060
|
const declared = gates[gate.id]?.needs ?? {};
|
|
3806
4061
|
for (const tool of declared.tools ?? []) {
|
|
3807
4062
|
tools.add(tool);
|
|
@@ -4200,6 +4455,35 @@ function main() {
|
|
|
4200
4455
|
return;
|
|
4201
4456
|
}
|
|
4202
4457
|
|
|
4458
|
+
if (command === "legs") {
|
|
4459
|
+
const moment = flag("moment");
|
|
4460
|
+
if (!moment)
|
|
4461
|
+
throw new Error("usage: lisa-gates.mjs legs --moment=<moment> [--json]");
|
|
4462
|
+
const legs = momentLegs({ gates, moment, runner, scripts });
|
|
4463
|
+
if (rest.includes("--json")) {
|
|
4464
|
+
// ONE LINE, deliberately. This is read by `fromJSON()` in a workflow
|
|
4465
|
+
// through a job output, and a job output is a single line — a
|
|
4466
|
+
// pretty-printed array would arrive truncated at its first newline and
|
|
4467
|
+
// `fromJSON` would fail on a fragment, which reads as a malformed
|
|
4468
|
+
// registry rather than as a formatting choice made here.
|
|
4469
|
+
console.log(JSON.stringify(legs));
|
|
4470
|
+
return;
|
|
4471
|
+
}
|
|
4472
|
+
for (const leg of legs) {
|
|
4473
|
+
const how =
|
|
4474
|
+
leg.action === "run"
|
|
4475
|
+
? `${leg.runner} ${leg.task}`
|
|
4476
|
+
: leg.action === "report"
|
|
4477
|
+
? "(declared off — the leg reports and passes)"
|
|
4478
|
+
: "(NO PROVER — the leg reports NOT PROVED and fails)";
|
|
4479
|
+
console.log(
|
|
4480
|
+
`${leg.level.padEnd(9)} ${leg.gate.padEnd(28)} ${leg.label.padEnd(30)} ${how}`
|
|
4481
|
+
);
|
|
4482
|
+
}
|
|
4483
|
+
console.log(`\n${legs.length} leg(s) at ${moment}.`);
|
|
4484
|
+
return;
|
|
4485
|
+
}
|
|
4486
|
+
|
|
4203
4487
|
if (command === "needs") {
|
|
4204
4488
|
const moment = flag("moment") ?? SESSION_START;
|
|
4205
4489
|
console.log(JSON.stringify(needsAt({ gates, moment }), null, 2));
|
|
@@ -4371,7 +4655,7 @@ function main() {
|
|
|
4371
4655
|
}
|
|
4372
4656
|
|
|
4373
4657
|
throw new Error(
|
|
4374
|
-
"usage: lisa-gates.mjs validate|list|needs|contexts|skip-jobs|audit-config|inventory|unconfigured|seed"
|
|
4658
|
+
"usage: lisa-gates.mjs validate|list|legs|quality-plan|needs|contexts|skip-jobs|audit-config|inventory|unconfigured|seed"
|
|
4375
4659
|
);
|
|
4376
4660
|
}
|
|
4377
4661
|
|
|
@@ -80,4 +80,29 @@ export declare function runDimensionProducer(id: string, targetPath: string, pro
|
|
|
80
80
|
* offline by construction — readiness must be assessable with no network.
|
|
81
81
|
*/
|
|
82
82
|
export type DimensionProducer = (targetPath: string) => Promise<ReadinessDimensionRecord>;
|
|
83
|
+
/**
|
|
84
|
+
* Atomically write the readiness report: write a sibling temp file, then rename
|
|
85
|
+
* it into place so a reader never observes a partial document.
|
|
86
|
+
*
|
|
87
|
+
* The temp name carries a UUID, and that is the load-bearing part rather than a
|
|
88
|
+
* flourish. It used to be a fixed `${reportPath}.tmp`, which meant two
|
|
89
|
+
* concurrent `lisa doctor` runs in one checkout opened the SAME file: both
|
|
90
|
+
* truncated it, both wrote from offset zero, and the first to finish renamed it
|
|
91
|
+
* out from under the second — whose descriptor then pointed at the published
|
|
92
|
+
* report, so its tail landed inside the document the first run had just
|
|
93
|
+
* published. The rename was always atomic; the CONTENT being renamed was not,
|
|
94
|
+
* which is precisely the property the paragraph above claims to buy.
|
|
95
|
+
*
|
|
96
|
+
* Concurrent doctor runs are the normal operating mode here, not an edge case:
|
|
97
|
+
* six agents ran against this repository at once on 2026-08-24.
|
|
98
|
+
*
|
|
99
|
+
* `crypto.randomUUID()` rather than a pid or a timestamp, matching
|
|
100
|
+
* `src/core/learnings-lock.ts`, which uses it for its owner token and its
|
|
101
|
+
* quarantine path for exactly this reason. A pid collides across containers and
|
|
102
|
+
* is reused after wraparound; a millisecond timestamp collides between two runs
|
|
103
|
+
* started in the same tick, which is the case that matters most.
|
|
104
|
+
* @param reportPath - Destination path
|
|
105
|
+
* @param report - Report to persist
|
|
106
|
+
*/
|
|
107
|
+
export declare function persistReadinessReport(reportPath: string, report: ReadinessReport): Promise<void>;
|
|
83
108
|
//# sourceMappingURL=doctor-readiness.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor-readiness.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-readiness.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"doctor-readiness.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-readiness.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACtB,MAAM,gCAAgC,CAAC;AAgCxC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAM5E,OAAO,EACL,iCAAiC,EACjC,gBAAgB,EAChB,wBAAwB,EACxB,eAAe,EACf,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,gCAAgC,CAAC;AACxC,YAAY,EACV,uBAAuB,EACvB,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,gBAAgB,EAChB,aAAa,GACd,MAAM,gCAAgC,CAAC;AAQxC;;;GAGG;AACH,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAkE1C,gEAAgE;AAChE,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EACA,CAAC;AAEtD,qEAAqE;AACrE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;IAC9C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,SAAS,wBAAwB,EAAE,CAAC;CAC1D;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,WAAW,CAAC,CA6CtB;AAyBD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,gBAAgB,EACzB,UAAU,EAAE,SAAS,uBAAuB,EAAE,GAC7C,MAAM,CAeR;AAsCD;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,wBAAwB,CAAC,CAUnC;AAED;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAC9B,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAwCvC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,IAAI,CAAC,CAef"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import crypto from "node:crypto";
|
|
2
|
+
import { rename, rm, writeFile } from "node:fs/promises";
|
|
2
3
|
import { mkdir } from "node:fs/promises";
|
|
3
4
|
import * as path from "node:path";
|
|
4
5
|
import process from "node:process";
|
|
@@ -256,14 +257,43 @@ function reasonedSkip(reason, id) {
|
|
|
256
257
|
/**
|
|
257
258
|
* Atomically write the readiness report: write a sibling temp file, then rename
|
|
258
259
|
* it into place so a reader never observes a partial document.
|
|
260
|
+
*
|
|
261
|
+
* The temp name carries a UUID, and that is the load-bearing part rather than a
|
|
262
|
+
* flourish. It used to be a fixed `${reportPath}.tmp`, which meant two
|
|
263
|
+
* concurrent `lisa doctor` runs in one checkout opened the SAME file: both
|
|
264
|
+
* truncated it, both wrote from offset zero, and the first to finish renamed it
|
|
265
|
+
* out from under the second — whose descriptor then pointed at the published
|
|
266
|
+
* report, so its tail landed inside the document the first run had just
|
|
267
|
+
* published. The rename was always atomic; the CONTENT being renamed was not,
|
|
268
|
+
* which is precisely the property the paragraph above claims to buy.
|
|
269
|
+
*
|
|
270
|
+
* Concurrent doctor runs are the normal operating mode here, not an edge case:
|
|
271
|
+
* six agents ran against this repository at once on 2026-08-24.
|
|
272
|
+
*
|
|
273
|
+
* `crypto.randomUUID()` rather than a pid or a timestamp, matching
|
|
274
|
+
* `src/core/learnings-lock.ts`, which uses it for its owner token and its
|
|
275
|
+
* quarantine path for exactly this reason. A pid collides across containers and
|
|
276
|
+
* is reused after wraparound; a millisecond timestamp collides between two runs
|
|
277
|
+
* started in the same tick, which is the case that matters most.
|
|
259
278
|
* @param reportPath - Destination path
|
|
260
279
|
* @param report - Report to persist
|
|
261
280
|
*/
|
|
262
|
-
async function persistReadinessReport(reportPath, report) {
|
|
281
|
+
export async function persistReadinessReport(reportPath, report) {
|
|
263
282
|
await mkdir(path.dirname(reportPath), { recursive: true });
|
|
264
|
-
const tempPath = `${reportPath}.tmp`;
|
|
265
|
-
|
|
266
|
-
|
|
283
|
+
const tempPath = `${reportPath}.${crypto.randomUUID()}.tmp`;
|
|
284
|
+
try {
|
|
285
|
+
await writeFile(tempPath, `${JSON.stringify(report, null, 2)}\n`, "utf8");
|
|
286
|
+
await rename(tempPath, reportPath);
|
|
287
|
+
}
|
|
288
|
+
catch (error) {
|
|
289
|
+
// A unique name is only half the fix. `.lisa/` is a directory a consumer
|
|
290
|
+
// commits, so a temp file orphaned by a failed write is a stray artifact
|
|
291
|
+
// that gets committed — and unlike the old fixed name, a UUID name would
|
|
292
|
+
// accumulate one per failure rather than being overwritten by the next run.
|
|
293
|
+
// Removal is best-effort: the write error is the one worth reporting.
|
|
294
|
+
await rm(tempPath, { force: true }).catch(() => undefined);
|
|
295
|
+
throw error;
|
|
296
|
+
}
|
|
267
297
|
}
|
|
268
298
|
/**
|
|
269
299
|
* Resolve Lisa's package version for the persisted stamp, degrading to
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor-readiness.js","sourceRoot":"","sources":["../../src/cli/doctor-readiness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor-readiness.js","sourceRoot":"","sources":["../../src/cli/doctor-readiness.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lisa-owned-hash-ledger.d.ts","sourceRoot":"","sources":["../../src/core/lisa-owned-hash-ledger.ts"],"names":[],"mappings":"AACA,6EAA6E;AAE7E;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAC3C,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"lisa-owned-hash-ledger.d.ts","sourceRoot":"","sources":["../../src/core/lisa-owned-hash-ledger.ts"],"names":[],"mappings":"AACA,6EAA6E;AAE7E;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAC3C,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAsjBjC,CAAC"}
|
|
@@ -303,6 +303,7 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
|
|
|
303
303
|
"37c2c3642c3c8ea92b9d53d9c10e2b7365e4c5e757af54396ef0af06720a89c6",
|
|
304
304
|
"3c3d194212e9072d011a352608a0340f7b132b9d1e26486b862289cd94a303a8",
|
|
305
305
|
"407799d7eef3c61902cce4a9d4e194176453a28d8b562b327a75ec843da51684",
|
|
306
|
+
"40ad2fbf5be600ad81bd864f500a8e68bb1ea4163b02af1dd85c1243af7f0c95",
|
|
306
307
|
"444ed4b879ef7af5dc409ae48743ad06354e47b727ddb5be0877cab52ddd0b64",
|
|
307
308
|
"45d1e52bbe453068298715ea4f25e3990589dd20d2adc8e61c05fbe79a023c78",
|
|
308
309
|
"4634a1012f1c9ef991ce99ee98eb85a57d207e99b1da1bc760a67a09b5017946",
|
|
@@ -318,7 +319,9 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
|
|
|
318
319
|
"5f5eeda36a19fc6b99f621128b192d07ec79e4735b4514c9b20ae94a3e29c4b5",
|
|
319
320
|
"60b961b1bd4a01f17fc0c19dd09b2505958bdeaa5c1030868835ac628e77d97f",
|
|
320
321
|
"6d9bc1c708a7cc585e7f8c4539ec28e4a29cbfd9a0c08b5a96760f8f0865453d",
|
|
322
|
+
"710038fcbc5a507e5012a1c13929a4d1d7dc3e5932f8238a7a91d47977d5ce57",
|
|
321
323
|
"7249cbe9f8fddfa6087331fa7fccd9df9813f5ba764623b747273a0ebbcbb576",
|
|
324
|
+
"757fcb641ad5a5a7f3d08b48b9a544f7d7de9284563b7f03fd8955e2bf86a905",
|
|
322
325
|
"75b3bed6034e81ece759b4566291f26be9c6f51ebd3444ae9232964588a71a66",
|
|
323
326
|
"777702830df0c13842b512619b7c6911471ad18eb29dff073e5aee711b5b8730",
|
|
324
327
|
"78545c144834f42ffa97174fb5a36edb66c63634f738ac5a0890bae8ccd7f2f6",
|
|
@@ -341,6 +344,8 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
|
|
|
341
344
|
"b7e9e276fc4587837bb423d22ec183e5f8bb70f93c52347c9403cab99b8a052d",
|
|
342
345
|
"bba52f26e70e0dc399a8ed8ea9cbd3885a18f08401b28bd18871a1af4fbca375",
|
|
343
346
|
"bbb49c8d803179f7081816144011ed1f3752673eb249ff21dd738412f0302e77",
|
|
347
|
+
"bff724776d5818f5dba71078ef964e9436fa44eeb1c3f8d55974ce11f8e80a13",
|
|
348
|
+
"c491b8eb16c06173e6a349a6410a58fa4e732e1c508af3a6de87a826bdfa2ca9",
|
|
344
349
|
"c5643655f16b3229646b59cf2ac74edc631959825231a8cf69575cc8268ce0c2",
|
|
345
350
|
"c950082c3a0e7e987a8d32455eb16103cd0516c9b907f551a93395eb2e61d253",
|
|
346
351
|
"cc4270e365f53c60a5eefb58a8ac8e22be184c0821fcdcc8fe67bcfc1df5e3dd",
|
|
@@ -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,CA43EpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,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,CA43EpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CA8hPjE,CAAC;AAEL,sFAAsF;AACtF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAk6I/D,CAAC"}
|