@codyswann/lisa 4.8.3 → 4.9.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.
Files changed (58) hide show
  1. package/all/copy-overwrite/scripts/lisa-run-gates.mjs +232 -67
  2. package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
  3. package/dist/core/lisa-owned-hash-ledger.js +2 -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
@@ -60,7 +60,6 @@ import { invokedAsScript } from "./lib/invoked-as-script.mjs";
60
60
  import {
61
61
  configurationProblems,
62
62
  declarationsAt,
63
- momentFamily,
64
63
  momentsExecutedBy,
65
64
  projectScripts,
66
65
  readGates,
@@ -969,19 +968,21 @@ function spawnExec(command) {
969
968
  }
970
969
 
971
970
  /**
972
- * Version of the recorded document. Bumped only when a reader must change.
973
- */
974
- export const EVIDENCE_SCHEMA_VERSION = 1;
975
-
976
- /**
977
- * Discriminator a reader checks before trusting a file's shape.
971
+ * The one schema token, which a reader REFUSES to best-effort parse past.
978
972
  *
979
973
  * A reader that parsed any JSON it was handed would credit a file that happens
980
974
  * to have a `gates` array, which is how evidence of one thing becomes evidence
981
975
  * of another. This token is also what a caller greps for to find out whether
982
976
  * the runner it resolved is old enough to ignore `--evidence` entirely.
977
+ *
978
+ * Shared verbatim with the release verifier in CodySwannGT/lisa#3013. Two
979
+ * producers — this one at the deploy moments, that one at `pull-request` — and
980
+ * ONE schema, because two evidence formats for one property is this
981
+ * repository's recurring defect. The verifier keys on `contract.moment` and
982
+ * refuses to satisfy a `pre-deploy:*` gate with a `pull-request` envelope
983
+ * regardless of tree match, so the two producers never compete.
983
984
  */
984
- export const EVIDENCE_KIND = "lisa-gate-evidence";
985
+ export const EVIDENCE_SCHEMA = "lisa.gate-evidence/v1";
985
986
 
986
987
  /**
987
988
  * What this run was able to say about the moment as a whole.
@@ -1049,21 +1050,94 @@ function canonical(value) {
1049
1050
  }
1050
1051
 
1051
1052
  /**
1052
- * Digest of the gates block this run executed.
1053
- *
1054
- * Evidence is only reusable while the contract that produced it still holds. A
1055
- * reader comparing digests can refuse a result recorded when the gate was
1056
- * `optional` from satisfying a moment that now declares it `required` — which
1057
- * is a stale-evidence hole that no timestamp closes.
1058
- * @param {object|null} gates The gates block, or null when it was unreadable.
1059
- * @returns {string|null} `sha256:<hex>`, or null when there was no block.
1053
+ * A sha256 over canonical JSON, spelled once.
1054
+ * @param {unknown} value Any JSON value.
1055
+ * @returns {string} `sha256:<hex>`.
1060
1056
  */
1061
- function configDigest(gates) {
1062
- if (!gates) return null;
1063
- const canonicalised = JSON.stringify(canonical(gates));
1057
+ function digest(value) {
1058
+ const canonicalised = JSON.stringify(canonical(value));
1064
1059
  return `sha256:${createHash("sha256").update(canonicalised).digest("hex")}`;
1065
1060
  }
1066
1061
 
1062
+ /**
1063
+ * Digest of the RESOLVED PLAN at this moment — not the config file's bytes.
1064
+ *
1065
+ * Evidence is only reusable while the contract that produced it still holds,
1066
+ * and three things make the plan the right subject rather than the file:
1067
+ *
1068
+ * - an unrelated key elsewhere in `.lisa.config.json` being edited would force
1069
+ * spurious reruns against a file digest, while proving nothing changed here;
1070
+ * - the raw file does not capture `shippedAs` alias resolution, which reads
1071
+ * `package.json` scripts and genuinely changes WHICH COMMAND proved the
1072
+ * gate — a file digest would call two different provers the same contract;
1073
+ * - `includeOff: true` is what makes "this project declared the gate off" a
1074
+ * RECORDED fact rather than an absence indistinguishable from a registry
1075
+ * that never knew the gate existed.
1076
+ *
1077
+ * It is also what refuses a result recorded while a gate was `optional` from
1078
+ * satisfying a moment that now declares it `required` — a stale-evidence hole
1079
+ * no timestamp closes.
1080
+ * @param {object} options Inputs.
1081
+ * @param {object|null} options.gates The gates block.
1082
+ * @param {string} options.moment The moment being run.
1083
+ * @param {string} [options.runner] The task-runner prefix.
1084
+ * @param {Record<string,string>|null} [options.scripts] Project scripts.
1085
+ * @returns {string|null} `sha256:<hex>`, or null when no plan could resolve.
1086
+ */
1087
+ function planDigest({ gates, moment, runner, scripts = null }) {
1088
+ if (!gates) return null;
1089
+ try {
1090
+ // The runner is forwarded verbatim when stated, INCLUDING a value
1091
+ // `resolveMoment` refuses. A truthiness guard here would let an invalid
1092
+ // runner fall through to the default, and the envelope would then record
1093
+ // `contract.runner` as one thing while digesting a plan built from
1094
+ // another — two facts about the same run, in one document.
1095
+ const options = { gates, includeOff: true, moment, scripts };
1096
+ const plan = resolveMoment(
1097
+ runner === undefined ? options : { ...options, runner }
1098
+ ).map(gate => ({
1099
+ awaits: gate.awaits,
1100
+ command: gate.command,
1101
+ id: gate.id,
1102
+ level: gate.level,
1103
+ mode: gate.mode,
1104
+ task: gate.task,
1105
+ work: gate.work,
1106
+ }));
1107
+ return digest({
1108
+ gates: [...plan].sort((left, right) => left.id.localeCompare(right.id)),
1109
+ runner: runner ?? null,
1110
+ });
1111
+ } catch {
1112
+ // An unresolvable plan — an invalid runner, a refused configuration — has
1113
+ // no contract to digest. Null says so; it does not guess one.
1114
+ return null;
1115
+ }
1116
+ }
1117
+
1118
+ /**
1119
+ * The `@codyswann/lisa` version that owns the resolver behind this run.
1120
+ *
1121
+ * Read from the package manifest three directories up, which is this file's
1122
+ * home both inside the installed package and inside the Lisa repository. The
1123
+ * name check is what makes it safe: a project that COPIED this script into its
1124
+ * own `scripts/` would find its own manifest there, and reporting a host
1125
+ * application's version as the registry version would be a confident lie about
1126
+ * which resolver produced the plan.
1127
+ * @returns {string|null} The version, or null when it cannot be established.
1128
+ */
1129
+ function registryVersion() {
1130
+ try {
1131
+ const manifest = fileURLToPath(
1132
+ new URL("../../../package.json", import.meta.url)
1133
+ );
1134
+ const parsed = JSON.parse(readFileSync(manifest, "utf8"));
1135
+ return parsed.name === "@codyswann/lisa" ? (parsed.version ?? null) : null;
1136
+ } catch {
1137
+ return null;
1138
+ }
1139
+ }
1140
+
1067
1141
  /**
1068
1142
  * One revision from git, or null when git cannot answer.
1069
1143
  *
@@ -1089,65 +1163,142 @@ function gitRev(spec) {
1089
1163
  }
1090
1164
 
1091
1165
  /**
1092
- * What this evidence is ABOUT — the binding that makes it non-transferable.
1093
- *
1094
- * `observed_at` alone is a timestamp, not a proof. Without a subject, a reader
1095
- * cannot tell a `continuous:staging` result from a `pre-deploy:production`
1096
- * one, or a result for the tree being released from one for a tree that never
1097
- * shipped. Each field answers one of those questions, and the tree pair is
1098
- * deliberately BOTH: two commits legitimately share a tree after a rebase, and
1099
- * that is exactly the case where reuse is sound.
1100
- * @param {object} options Inputs.
1101
- * @param {string} options.moment The moment that was run.
1102
- * @param {object|null} options.gates The gates block that was executed.
1166
+ * WHAT this evidence is about: the tree, and nothing that varies with it.
1167
+ *
1168
+ * `tree` is the identity; `commit` is evidentiary only. Both are recorded
1169
+ * deliberately, because two commits legitimately share a tree after a rebase
1170
+ * and that is exactly the case where reusing the evidence is sound — a reader
1171
+ * keyed on the commit would rerun everything a rebase touched for no reason,
1172
+ * and one keyed on nothing at all would credit a tree that never shipped.
1103
1173
  * @returns {object} The subject binding.
1104
1174
  */
1105
- function evidenceSubject({ moment, gates }) {
1106
- const family = momentFamily(moment);
1107
- const [, environment = null] = moment.split(":");
1175
+ function evidenceSubject() {
1108
1176
  return {
1109
1177
  repository: process.env.GITHUB_REPOSITORY ?? null,
1110
- commit_sha: process.env.GITHUB_SHA ?? gitRev("HEAD"),
1111
- tree_sha: gitRev("HEAD^{tree}"),
1178
+ tree: gitRev("HEAD^{tree}"),
1179
+ commit: process.env.GITHUB_SHA ?? gitRev("HEAD"),
1112
1180
  ref: process.env.GITHUB_REF ?? null,
1181
+ };
1182
+ }
1183
+
1184
+ /**
1185
+ * UNDER WHICH CONTRACT it was proved — the half a tree hash cannot carry.
1186
+ *
1187
+ * `workflow_ref` and `workflow_sha` are not redundant with `subject.tree`, and
1188
+ * this is the load-bearing argument for keeping them: consumers call the
1189
+ * reusable workflow at `@main`, so its contents can change with NO change to
1190
+ * the caller's tree. Tree identity alone would let evidence produced by an
1191
+ * older, weaker workflow satisfy a stricter one.
1192
+ *
1193
+ * `inputs_digest` covers the same hole one level down — the same workflow at
1194
+ * the same sha proves different things when handed a different
1195
+ * `working_directory` or `install_dependencies`. The caller states its own
1196
+ * normalised inputs, because only the caller knows them; unstated means null,
1197
+ * which a verifier reads as "not established" rather than "no inputs".
1198
+ * @param {object} options Inputs.
1199
+ * @param {string} options.moment The moment that was run.
1200
+ * @param {object|null} options.gates The gates block that was executed.
1201
+ * @param {string} [options.runner] The task-runner prefix.
1202
+ * @param {Record<string,string>|null} [options.scripts] Project scripts.
1203
+ * @returns {object} The contract binding.
1204
+ */
1205
+ function evidenceContract({ moment, gates, runner, scripts = null }) {
1206
+ const inputs = process.env.LISA_GATE_EVIDENCE_INPUTS ?? null;
1207
+ return {
1113
1208
  moment,
1114
- family,
1115
- // `momentFamily` returns the moment itself when it takes no environment
1116
- // suffix, so that comparison is the test for "this is a deploy family".
1117
- environment: family === moment ? null : environment,
1118
- config_digest: configDigest(gates),
1209
+ runner: runner ?? null,
1210
+ gates_digest: planDigest({ gates, moment, runner, scripts }),
1211
+ registry_version: registryVersion(),
1212
+ workflow_ref: process.env.GITHUB_WORKFLOW_REF ?? null,
1213
+ workflow_sha: process.env.GITHUB_WORKFLOW_SHA ?? null,
1214
+ inputs_digest: inputs ? digest(JSON.parse(inputs)) : null,
1119
1215
  };
1120
1216
  }
1121
1217
 
1122
1218
  /**
1123
- * Which run produced this, so an auditor can go and read it.
1219
+ * A caller chain the CALLER derived, or null. Never a literal written here.
1220
+ *
1221
+ * Depth is a property of how a consumer wired its workflows, not of the gates
1222
+ * block: a pull-request path posts one level and a release path posts two, and
1223
+ * a consumer's release job is not even named uniformly across the fleet. The
1224
+ * only truthful derivation is `postedCallerChains` over a completed run's
1225
+ * check-run names, which needs API scope this runner does not have — so a
1226
+ * caller that CAN read them states the answer here, and everything else
1227
+ * records null. A verifier treats a null chain as ineligible and reruns, which
1228
+ * is the safe direction; a guessed literal would not be.
1229
+ * @returns {string[]|null} The chain, shallowest element first.
1230
+ */
1231
+ function callerChain() {
1232
+ const stated = process.env.LISA_GATE_EVIDENCE_CALLER_CHAIN ?? null;
1233
+ if (!stated) return null;
1234
+ try {
1235
+ const parsed = JSON.parse(stated);
1236
+ return Array.isArray(parsed) && parsed.every(el => typeof el === "string")
1237
+ ? parsed
1238
+ : null;
1239
+ } catch {
1240
+ return null;
1241
+ }
1242
+ }
1243
+
1244
+ /**
1245
+ * WHO produced it, so an auditor can go and read the run.
1246
+ *
1247
+ * `reused_gates` is emitted from day one, empty, even though nothing reuses
1248
+ * yet. An absent field and an empty one must not be the same thing to a
1249
+ * reader: adding it later would leave every envelope written before the
1250
+ * addition indistinguishable from one that reused everything. It exists to
1251
+ * close circular reuse — a run that reuses evidence and then emits its own
1252
+ * envelope could otherwise be reused in turn, and the chain of proof bottoms
1253
+ * out on nothing. A verifier refuses any envelope with a non-empty
1254
+ * `reused_gates` as a source. Primary proof only.
1124
1255
  * @returns {object} The originating run, with nulls off CI.
1125
1256
  */
1126
- function evidenceRun() {
1257
+ function evidenceProducer() {
1127
1258
  const id = process.env.GITHUB_RUN_ID ?? null;
1128
1259
  const server = process.env.GITHUB_SERVER_URL ?? null;
1129
1260
  const repository = process.env.GITHUB_REPOSITORY ?? null;
1130
1261
  return {
1131
- id,
1132
- attempt: process.env.GITHUB_RUN_ATTEMPT ?? null,
1133
- workflow: process.env.GITHUB_WORKFLOW ?? null,
1134
- job: process.env.GITHUB_JOB ?? null,
1135
- actor: process.env.GITHUB_ACTOR ?? null,
1136
- url:
1262
+ run_id: id,
1263
+ run_attempt: process.env.GITHUB_RUN_ATTEMPT ?? null,
1264
+ run_url:
1137
1265
  id && server && repository
1138
1266
  ? `${server}/${repository}/actions/runs/${id}`
1139
1267
  : null,
1268
+ workflow: process.env.GITHUB_WORKFLOW ?? null,
1269
+ event: process.env.GITHUB_EVENT_NAME ?? null,
1270
+ actor: process.env.GITHUB_ACTOR ?? null,
1271
+ caller_chain: callerChain(),
1272
+ // This runner never reuses. It executes every gate it records, so the list
1273
+ // is empty by construction rather than by omission.
1274
+ reused_gates: [],
1140
1275
  };
1141
1276
  }
1142
1277
 
1143
1278
  /**
1144
- * One gate's outcome in the shipped `EVIDENCE_FIELDS` shape.
1279
+ * One gate's outcome: `EVIDENCE_FIELDS` verbatim, plus exactly two additions.
1280
+ *
1281
+ * All seven `EVIDENCE_FIELDS` keys are spelled exactly as that module declares
1282
+ * them, so `readEvidence` reads a row with no adapter. The two additions are
1283
+ * the release verifier's requirements and this producer's too:
1284
+ *
1285
+ * - `level` — without a per-row level, a required gate can be "covered" by
1286
+ * evidence that was OPTIONAL when it ran, which is a silent downgrade. Here
1287
+ * it is also the only thing that tells a reader whether a failing gate was
1288
+ * allowed to fail.
1289
+ * - `label` — the registry label, which ties the row to the branch-protection
1290
+ * context `contextsFor` derives, so an audit can name the context and not
1291
+ * only the gate id.
1292
+ *
1293
+ * Nothing else. `task` and `command` deliberately do NOT get their own row
1294
+ * keys: they are inside `contract.gates_digest`, and a second copy on the row
1295
+ * is a second place to drift. The command still appears once, as
1296
+ * `prover.tool`, which is an `EVIDENCE_FIELDS` key.
1145
1297
  *
1146
- * The shape is `lisa-gates.mjs`'s, not a new one. That file has shipped
1147
- * `EVIDENCE_FIELDS` and a `readEvidence` reader since the continuous moment
1148
- * was added, with no producer anywhere — so the format already existed and the
1149
- * only thing missing was something to write it. Inventing a second shape for
1150
- * the same property is this repository's recurring defect.
1298
+ * `prover.version` is null rather than `"unknown"` when unresolvable. A string
1299
+ * that looks like a version and is a placeholder is worse than an absent
1300
+ * field: the verifier treats a null-version row as uncoverable and reruns,
1301
+ * which is the safe answer, and a placeholder would defeat that.
1151
1302
  *
1152
1303
  * `work` is null and stays null until a prover-output parser exists. That is
1153
1304
  * not a shortcut: `readEvidence` demotes a `pass` with no work count to
@@ -1183,13 +1334,19 @@ function gateEvidence(outcome, observedAt) {
1183
1334
  * direction on purpose: a freshness bound computed against it can only ever
1184
1335
  * judge the evidence OLDER than it truly is, so a bound errs toward `unknown`
1185
1336
  * rather than toward crediting a stale observation.
1337
+ * `verdict` is this producer's one addition to the shared header, and it is
1338
+ * what makes the zero-gate case legible ON DISK rather than only as an exit
1339
+ * code. An envelope recording nothing and an envelope recording a clean run
1340
+ * must not be byte-similar: `"no-gates"` beside an empty `gates` array says
1341
+ * which one this is, where a bare empty array would read as either.
1186
1342
  * @param {object} options Inputs.
1187
1343
  * @param {string} options.moment The moment that was run.
1188
1344
  * @param {object|null} [options.gates] The gates block that was executed.
1189
1345
  * @param {string} options.verdict One of `EVIDENCE_VERDICT`.
1190
1346
  * @param {GateRun|null} [options.result] What `runGates` produced, if it ran.
1347
+ * @param {string} [options.runner] The task-runner prefix.
1348
+ * @param {Record<string,string>|null} [options.scripts] Project scripts.
1191
1349
  * @param {string} options.observedAt When the run began, ISO-8601.
1192
- * @param {string} options.recordedAt When the document was built, ISO-8601.
1193
1350
  * @returns {object} The evidence envelope.
1194
1351
  */
1195
1352
  export function evidenceDocument({
@@ -1197,21 +1354,20 @@ export function evidenceDocument({
1197
1354
  gates = null,
1198
1355
  verdict,
1199
1356
  result = null,
1357
+ runner = undefined,
1358
+ scripts = null,
1200
1359
  observedAt,
1201
- recordedAt,
1202
1360
  }) {
1203
1361
  const observations = (result?.results ?? []).map(outcome =>
1204
1362
  gateEvidence(outcome, observedAt)
1205
1363
  );
1206
1364
  return {
1207
- schema_version: EVIDENCE_SCHEMA_VERSION,
1208
- kind: EVIDENCE_KIND,
1365
+ schema: EVIDENCE_SCHEMA,
1209
1366
  verdict,
1210
- observed: observations.length,
1367
+ subject: evidenceSubject(),
1368
+ contract: evidenceContract({ gates, moment, runner, scripts }),
1369
+ producer: evidenceProducer(),
1211
1370
  observed_at: observedAt,
1212
- recorded_at: recordedAt,
1213
- subject: evidenceSubject({ moment, gates }),
1214
- run: evidenceRun(),
1215
1371
  gates: observations,
1216
1372
  };
1217
1373
  }
@@ -1361,6 +1517,8 @@ function main() {
1361
1517
  * @param {object} [parts] The block that ran and what it produced.
1362
1518
  * @param {object|null} [parts.gates] The gates block.
1363
1519
  * @param {GateRun|null} [parts.result] What `runGates` produced.
1520
+ * @param {string} [parts.runner] The task-runner prefix.
1521
+ * @param {Record<string,string>|null} [parts.scripts] Project scripts.
1364
1522
  * @returns {number} The exit code, upgraded on a recording failure.
1365
1523
  */
1366
1524
  const settle = (code, verdict, parts = {}) => {
@@ -1368,12 +1526,13 @@ function main() {
1368
1526
  const written = writeEvidence(
1369
1527
  evidencePath,
1370
1528
  evidenceDocument({
1371
- moment,
1372
1529
  gates: parts.gates ?? null,
1373
- verdict,
1374
- result: parts.result ?? null,
1530
+ moment,
1375
1531
  observedAt,
1376
- recordedAt: new Date().toISOString(),
1532
+ result: parts.result ?? null,
1533
+ runner: parts.runner,
1534
+ scripts: parts.scripts ?? null,
1535
+ verdict,
1377
1536
  })
1378
1537
  );
1379
1538
  return written ? code : EXIT.RUNNER_FAILED;
@@ -1432,6 +1591,8 @@ function main() {
1432
1591
  reportRefusal(moment, blocking, line => console.error(line));
1433
1592
  return settle(EXIT.BLOCKED, EVIDENCE_VERDICT.REFUSED, {
1434
1593
  gates: config.gates,
1594
+ runner: config.runner,
1595
+ scripts,
1435
1596
  });
1436
1597
  }
1437
1598
  const elsewhere = problemsIn(config.gates).filter(
@@ -1464,6 +1625,8 @@ function main() {
1464
1625
  ) {
1465
1626
  return settle(EXIT.RUNNER_FAILED, EVIDENCE_VERDICT.RUNNER_FAILED, {
1466
1627
  gates: config.gates,
1628
+ runner: config.runner,
1629
+ scripts,
1467
1630
  });
1468
1631
  }
1469
1632
  if (missing.length) {
@@ -1488,6 +1651,8 @@ function main() {
1488
1651
  );
1489
1652
  return settle(EXIT.NO_GATES, EVIDENCE_VERDICT.FELL_BACK, {
1490
1653
  gates: config.gates,
1654
+ runner: config.runner,
1655
+ scripts,
1491
1656
  });
1492
1657
  }
1493
1658
 
@@ -1513,7 +1678,7 @@ function main() {
1513
1678
  return settle(
1514
1679
  result.blocked ? EXIT.BLOCKED : EXIT.PROVED,
1515
1680
  result.blocked ? EVIDENCE_VERDICT.BLOCKED : EVIDENCE_VERDICT.PROVED,
1516
- { gates: config.gates, result }
1681
+ { gates: config.gates, result, runner: config.runner, scripts }
1517
1682
  );
1518
1683
  }
1519
1684
 
@@ -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,CAonBjC,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,CAsnBjC,CAAC"}
@@ -539,6 +539,8 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
539
539
  "2d166a07c9809800771c7f41e515bff8d66c23aeeae2838dd52d5f2547037422",
540
540
  "59f78a0895c4d3c68a0b74ac879abfb3220f1866ee48b9540f70388d77292555",
541
541
  "5c65c8db73c5465cef810789ef71abe405df4d5d5db64f78923e5050656f13c8",
542
+ "670f7059a0694b5f829252c056eec31f18e926a5137b652cb77f9e29a5a7ab73",
543
+ "6e419a489d0605cc0743af207ff4ff3428d8bcdfbabb7207d164593b9644dfa5",
542
544
  "94453bdae8ab3dd2eba0883c4b278027396090e0bdc8e2f102414abc6415912a",
543
545
  "a58af06f1d677d82b780a6857916c1684a44649ba742b2b329d408057ae5700d",
544
546
  "ba610745a8878bb9a21af249d6ab5b384fcf88e7c530db846f4f8163faba7a8e",
@@ -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,CAg5EpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAymPjE,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,CAg5EpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CA0mPjE,CAAC;AAEL,sFAAsF;AACtF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAk6I/D,CAAC"}
@@ -26,7 +26,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
26
26
  "all/copy-overwrite/scripts/lisa-lint-staged-preflight.mjs": "ce4bc224a102e3ac2bc29d8f2038eefd619129d4639c25954c93f05011f7f977",
27
27
  "all/copy-overwrite/scripts/lisa-postinstall.mjs": "d22fe47acf9a68828ca28b19b88e269bf535e77bc38952dec9f7a703269f1c44",
28
28
  "all/copy-overwrite/scripts/lisa-reconcile-policy.mjs": "f27bd7fd72f5fa29dfc1b56b2b1744a8930054943f37da55a3b137f2141d7e57",
29
- "all/copy-overwrite/scripts/lisa-run-gates.mjs": "23574bf396cadfaa1e8f8c59b70bca4ecebd145e23917a90d79ee2ded74f2b69",
29
+ "all/copy-overwrite/scripts/lisa-run-gates.mjs": "6e419a489d0605cc0743af207ff4ff3428d8bcdfbabb7207d164593b9644dfa5",
30
30
  "all/copy-overwrite/scripts/lisa-schema-validate.mjs": "8a1684f5c2b4d37fc782d2090273772814f7ad6c61e7ae5459163a1f28b7a5dc",
31
31
  "all/copy-overwrite/scripts/lisa-test-node.mjs": "31b338144af00e20e3de02202982846d7333433a9bbda76a8c77d50e6fdbc47b",
32
32
  "all/copy-overwrite/scripts/lisa-work-item.mjs": "04401ae05bf9464e6929180ffdfff80afc528a1df20733b032a0342252ca1d4a",
@@ -8283,6 +8283,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
8283
8283
  "tests/unit/scripts/lisa-reconcile-policy.test.ts": true,
8284
8284
  "tests/unit/scripts/lisa-ruleset-payload.test.ts": true,
8285
8285
  "tests/unit/scripts/lisa-run-gates-conditional-floor.test.ts": true,
8286
+ "tests/unit/scripts/lisa-run-gates-envelope.test.ts": true,
8286
8287
  "tests/unit/scripts/lisa-run-gates-evidence.test.ts": true,
8287
8288
  "tests/unit/scripts/lisa-run-gates-fixtures.ts": true,
8288
8289
  "tests/unit/scripts/lisa-run-gates-floor.test.ts": true,