@codyswann/lisa 4.21.5 → 4.22.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 (130) hide show
  1. package/all/copy-overwrite/scripts/lisa-environment-prepare.mjs +28 -12
  2. package/dist/cli/doctor-nightly-e2e-guard-command-files.d.ts +19 -0
  3. package/dist/cli/doctor-nightly-e2e-guard-command-files.d.ts.map +1 -0
  4. package/dist/cli/doctor-nightly-e2e-guard-command-files.js +221 -0
  5. package/dist/cli/doctor-nightly-e2e-guard-command-files.js.map +1 -0
  6. package/dist/cli/doctor-nightly-e2e-guard-contract.d.ts +113 -0
  7. package/dist/cli/doctor-nightly-e2e-guard-contract.d.ts.map +1 -0
  8. package/dist/cli/doctor-nightly-e2e-guard-contract.js +87 -0
  9. package/dist/cli/doctor-nightly-e2e-guard-contract.js.map +1 -0
  10. package/dist/cli/doctor-nightly-e2e-guard-deadline.d.ts +61 -0
  11. package/dist/cli/doctor-nightly-e2e-guard-deadline.d.ts.map +1 -0
  12. package/dist/cli/doctor-nightly-e2e-guard-deadline.js +97 -0
  13. package/dist/cli/doctor-nightly-e2e-guard-deadline.js.map +1 -0
  14. package/dist/cli/doctor-nightly-e2e-guard-evidence.d.ts +52 -0
  15. package/dist/cli/doctor-nightly-e2e-guard-evidence.d.ts.map +1 -0
  16. package/dist/cli/doctor-nightly-e2e-guard-evidence.js +68 -0
  17. package/dist/cli/doctor-nightly-e2e-guard-evidence.js.map +1 -0
  18. package/dist/cli/doctor-nightly-e2e-guard-graph.d.ts +14 -0
  19. package/dist/cli/doctor-nightly-e2e-guard-graph.d.ts.map +1 -0
  20. package/dist/cli/doctor-nightly-e2e-guard-graph.js +130 -0
  21. package/dist/cli/doctor-nightly-e2e-guard-graph.js.map +1 -0
  22. package/dist/cli/doctor-nightly-e2e-guard-io.d.ts +41 -0
  23. package/dist/cli/doctor-nightly-e2e-guard-io.d.ts.map +1 -0
  24. package/dist/cli/doctor-nightly-e2e-guard-io.js +239 -0
  25. package/dist/cli/doctor-nightly-e2e-guard-io.js.map +1 -0
  26. package/dist/cli/doctor-nightly-e2e-guard-job.d.ts +31 -0
  27. package/dist/cli/doctor-nightly-e2e-guard-job.d.ts.map +1 -0
  28. package/dist/cli/doctor-nightly-e2e-guard-job.js +156 -0
  29. package/dist/cli/doctor-nightly-e2e-guard-job.js.map +1 -0
  30. package/dist/cli/doctor-nightly-e2e-guard-proof.d.ts +42 -0
  31. package/dist/cli/doctor-nightly-e2e-guard-proof.d.ts.map +1 -0
  32. package/dist/cli/doctor-nightly-e2e-guard-proof.js +57 -0
  33. package/dist/cli/doctor-nightly-e2e-guard-proof.js.map +1 -0
  34. package/dist/cli/doctor-nightly-e2e-guard-remediation.d.ts +32 -0
  35. package/dist/cli/doctor-nightly-e2e-guard-remediation.d.ts.map +1 -0
  36. package/dist/cli/doctor-nightly-e2e-guard-remediation.js +55 -0
  37. package/dist/cli/doctor-nightly-e2e-guard-remediation.js.map +1 -0
  38. package/dist/cli/doctor-nightly-e2e-guard-runtime.d.ts +34 -0
  39. package/dist/cli/doctor-nightly-e2e-guard-runtime.d.ts.map +1 -0
  40. package/dist/cli/doctor-nightly-e2e-guard-runtime.js +93 -0
  41. package/dist/cli/doctor-nightly-e2e-guard-runtime.js.map +1 -0
  42. package/dist/cli/doctor-nightly-e2e-guard-scan.d.ts +17 -0
  43. package/dist/cli/doctor-nightly-e2e-guard-scan.d.ts.map +1 -0
  44. package/dist/cli/doctor-nightly-e2e-guard-scan.js +86 -0
  45. package/dist/cli/doctor-nightly-e2e-guard-scan.js.map +1 -0
  46. package/dist/cli/doctor-nightly-e2e-guard-shell-lexer.d.ts +38 -0
  47. package/dist/cli/doctor-nightly-e2e-guard-shell-lexer.d.ts.map +1 -0
  48. package/dist/cli/doctor-nightly-e2e-guard-shell-lexer.js +160 -0
  49. package/dist/cli/doctor-nightly-e2e-guard-shell-lexer.js.map +1 -0
  50. package/dist/cli/doctor-nightly-e2e-guard-shell.d.ts +40 -0
  51. package/dist/cli/doctor-nightly-e2e-guard-shell.d.ts.map +1 -0
  52. package/dist/cli/doctor-nightly-e2e-guard-shell.js +201 -0
  53. package/dist/cli/doctor-nightly-e2e-guard-shell.js.map +1 -0
  54. package/dist/cli/doctor-nightly-e2e-guard.d.ts +36 -0
  55. package/dist/cli/doctor-nightly-e2e-guard.d.ts.map +1 -0
  56. package/dist/cli/doctor-nightly-e2e-guard.js +186 -0
  57. package/dist/cli/doctor-nightly-e2e-guard.js.map +1 -0
  58. package/dist/cli/doctor.d.ts.map +1 -1
  59. package/dist/cli/doctor.js +7 -0
  60. package/dist/cli/doctor.js.map +1 -1
  61. package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
  62. package/dist/core/lisa-owned-hash-ledger.js +2 -0
  63. package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
  64. package/dist/core/nightly-e2e-guard-behavior-certificate.d.ts +25 -0
  65. package/dist/core/nightly-e2e-guard-behavior-certificate.d.ts.map +1 -0
  66. package/dist/core/nightly-e2e-guard-behavior-certificate.js +30 -0
  67. package/dist/core/nightly-e2e-guard-behavior-certificate.js.map +1 -0
  68. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
  69. package/dist/core/upstream-evidence-manifest.js +32 -5
  70. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  71. package/dist/migrations/ensure-playwright-dedicated-caller.d.ts +0 -2
  72. package/dist/migrations/ensure-playwright-dedicated-caller.d.ts.map +1 -1
  73. package/dist/migrations/ensure-playwright-dedicated-caller.js +12 -40
  74. package/dist/migrations/ensure-playwright-dedicated-caller.js.map +1 -1
  75. package/expo/create-only/.github/workflows/maestro-e2e.yml +6 -0
  76. package/expo/create-only/.github/workflows/playwright-e2e.yml +5 -5
  77. package/package.json +5 -3
  78. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  79. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  80. package/plugins/lisa-agy/plugin.json +1 -1
  81. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  82. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  83. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  84. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  85. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  86. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  87. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  88. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  89. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  90. package/plugins/lisa-expo-agy/plugin.json +1 -1
  91. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  92. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  93. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  94. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  95. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  96. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  97. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  98. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  99. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  100. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  101. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  102. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  103. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  104. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  105. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  106. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  107. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  108. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  109. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  110. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  111. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  112. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  113. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  114. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  115. package/plugins/lisa-rails-agy/plugin.json +1 -1
  116. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  117. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  118. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  119. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  120. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  121. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  122. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  123. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  124. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  125. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  126. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  127. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  128. package/scripts/check-derived-artifacts.mjs +32 -5
  129. package/scripts/generate-nightly-e2e-guard-certificate.mjs +370 -0
  130. package/scripts/two-channel-couplings.json +16 -4
@@ -0,0 +1,201 @@
1
+ /**
2
+ * @file doctor-nightly-e2e-guard-shell.ts
3
+ * @description Static interpreter for the intentionally small guard run grammar
4
+ * @module cli/doctor-nightly-e2e-guard-shell
5
+ */
6
+ import { normalizeNightlyGuardTarget } from "./doctor-nightly-e2e-guard-contract.js";
7
+ import { inspectNightlyGuardCommandFileWrites, } from "./doctor-nightly-e2e-guard-command-files.js";
8
+ import { lexNightlyGuardRun, } from "./doctor-nightly-e2e-guard-shell-lexer.js";
9
+ import { isExecutionChangingEnvironmentName, nightlyGuardEnvironmentFailure, nightlyGuardPosixContextFailure, } from "./doctor-nightly-e2e-guard-runtime.js";
10
+ const ENVIRONMENT_NAME = /^[A-Z][A-Z0-9_]*$/u;
11
+ const ENVIRONMENT_TARGET = /^\$(?:\{([A-Z][A-Z0-9_]*)\}|([A-Z][A-Z0-9_]*))$/u;
12
+ const BYPASS_ENVIRONMENT_NAMES = new Set([
13
+ "GATE_BYPASS",
14
+ "NIGHTLY_BYPASS",
15
+ "NIGHTLY_BYPASS_LABEL",
16
+ "NIGHTLY_BYPASS_MAX_HOURS",
17
+ "NIGHTLY_BYPASS_REASON_PATTERN",
18
+ ]);
19
+ const EXACT_BYPASS_REFERENCE = /(?:^|[^A-Z0-9_])(?:GATE_BYPASS|NIGHTLY_BYPASS)(?=$|[^A-Z0-9_])/iu;
20
+ /**
21
+ * Compare bypass vocabulary independently of label case and punctuation.
22
+ * @param value - Executable expression or literal environment value
23
+ * @returns Whether the normalized text can denote nightly bypass state
24
+ */
25
+ export const hasNightlyBypassReference = (value) => {
26
+ const terms = value
27
+ .toLowerCase()
28
+ .split(/[^a-z0-9]+/u)
29
+ .filter(Boolean);
30
+ const candidates = value
31
+ .split(/['"`()$,{}[\]]+/u)
32
+ .map(candidate => candidate.toLowerCase().replace(/[^a-z0-9]/gu, ""));
33
+ const constructedExpression = /\$\{\{[\s\S]*\}\}/u.test(value) &&
34
+ ["nightly", "e2e", "bypass"].every(term => terms.includes(term)) &&
35
+ !terms.includes("cache");
36
+ return (EXACT_BYPASS_REFERENCE.test(value) ||
37
+ candidates.includes("nightlye2ebypass") ||
38
+ constructedExpression);
39
+ };
40
+ /**
41
+ * Match the exact environment names implemented by the shipped guard.
42
+ * @param value - YAML or shell environment name
43
+ * @returns Whether the name is part of the bounded-waiver contract
44
+ */
45
+ export const isNightlyBypassEnvironmentName = (value) => ENVIRONMENT_NAME.test(value) && BYPASS_ENVIRONMENT_NAMES.has(value);
46
+ const words = (tokens) => tokens.filter((token) => token.kind === "word");
47
+ const actualEnvironmentTarget = (word) => word.quote === "single"
48
+ ? undefined
49
+ : ENVIRONMENT_TARGET.exec(word.value)?.[0];
50
+ const environmentName = (word) => {
51
+ const match = ENVIRONMENT_TARGET.exec(word.value);
52
+ return match?.[1] ?? match?.[2];
53
+ };
54
+ const targetFromWord = (word, env) => {
55
+ if (word.quote === "single" && ENVIRONMENT_TARGET.test(word.value)) {
56
+ return {
57
+ reason: "single-quoted environment target is a literal shell string and cannot resolve a guard",
58
+ };
59
+ }
60
+ const variable = actualEnvironmentTarget(word);
61
+ const candidate = variable ? env[environmentName(word) ?? ""] : word.value;
62
+ if (candidate === undefined) {
63
+ return {
64
+ reason: "could not resolve the Node target from one unquoted or double-quoted literal environment level",
65
+ };
66
+ }
67
+ const target = normalizeNightlyGuardTarget(candidate);
68
+ return target
69
+ ? { target }
70
+ : {
71
+ reason: "Node target must be one literal contained relative ASCII .js/.mjs/.cjs path; expressions, substitutions, absolute/escaping paths, and multiple commands are unsupported",
72
+ };
73
+ };
74
+ const bypassAssignment = (word) => {
75
+ const equals = word.value.indexOf("=");
76
+ if (equals <= 0)
77
+ return false;
78
+ const name = word.value.slice(0, equals);
79
+ return isNightlyBypassEnvironmentName(name);
80
+ };
81
+ const safeEnvironmentFileName = (name) => !isNightlyBypassEnvironmentName(name) &&
82
+ !hasNightlyBypassReference(name) &&
83
+ !isExecutionChangingEnvironmentName(name);
84
+ const runMetadata = (tokens) => {
85
+ const commandWords = words(tokens);
86
+ const node = commandWords.findIndex(word => word.value === "node");
87
+ const containsNode = node >= 0;
88
+ const fileWrites = inspectNightlyGuardCommandFileWrites(tokens, safeEnvironmentFileName);
89
+ const bypassEvidence = commandWords.some(word => bypassAssignment(word) || hasNightlyBypassReference(word.value));
90
+ const normalizedRun = commandWords.map(word => word.value).join(" ");
91
+ const inlineEnvironment = containsNode &&
92
+ (commandWords.slice(0, node).some(bypassAssignment) ||
93
+ (commandWords[0]?.value === "env" &&
94
+ hasNightlyBypassReference(normalizedRun)));
95
+ const bypassWiring = fileWrites.some(write => write.file === "GITHUB_ENV" && write.safety !== "safe")
96
+ ? "GITHUB_ENV"
97
+ : inlineEnvironment
98
+ ? "inline environment"
99
+ : undefined;
100
+ return {
101
+ commandWords,
102
+ node,
103
+ containsNode,
104
+ bypassEvidence,
105
+ ...(bypassWiring ? { bypassWiring } : {}),
106
+ ...(fileWrites.length > 0 ? { commandFileWrites: fileWrites } : {}),
107
+ };
108
+ };
109
+ const resultBase = (metadata) => ({
110
+ reportingOnly: false,
111
+ containsNode: metadata.containsNode,
112
+ bypassEvidence: metadata.bypassEvidence,
113
+ ...(metadata.bypassWiring ? { bypassWiring: metadata.bypassWiring } : {}),
114
+ ...(metadata.commandFileWrites
115
+ ? { commandFileWrites: metadata.commandFileWrites }
116
+ : {}),
117
+ });
118
+ const commandGroups = (tokens) => tokens
119
+ .reduce((groups, token) => {
120
+ if (token.kind === "operator" &&
121
+ (token.value === "\n" || token.value === ";")) {
122
+ return groups.at(-1)?.length === 0 ? groups : [...groups, []];
123
+ }
124
+ const prior = groups.slice(0, -1);
125
+ const last = groups.at(-1) ?? [];
126
+ return [...prior, [...last, token]];
127
+ }, [[]])
128
+ .filter(group => group.length > 0);
129
+ const unsupportedCommandShape = (tokens) => tokens.some(token => token.kind === "operator" && token.value !== "\n" && token.value !== ";") || commandGroups(tokens).length !== 1;
130
+ const nodePrefixFailure = (commandWords, node) => {
131
+ const prefix = commandWords.slice(0, node);
132
+ if (prefix.length === 0 ||
133
+ (prefix.length === 1 && prefix[0]?.value === "env")) {
134
+ return undefined;
135
+ }
136
+ const assignments = prefix.filter(word => word.value.includes("="));
137
+ const dangerous = assignments.find(word => isExecutionChangingEnvironmentName(word.value.slice(0, word.value.indexOf("="))));
138
+ if (dangerous) {
139
+ return `${dangerous.value.slice(0, dangerous.value.indexOf("="))} pre-node assignment is unsafe`;
140
+ }
141
+ return assignments.length > 0
142
+ ? "pre-node environment assignments are unsupported because they can change certified handler behavior"
143
+ : "Node command does not match the supported literal grammar";
144
+ };
145
+ const inspectNodeCommand = (metadata, env, environmentFailure) => {
146
+ const base = resultBase(metadata);
147
+ const afterNode = metadata.commandWords.slice(metadata.node + 1);
148
+ const prefixFailure = nodePrefixFailure(metadata.commandWords, metadata.node);
149
+ const refusal = environmentFailure ?? prefixFailure;
150
+ if (refusal || (afterNode.length !== 1 && afterNode.length !== 2)) {
151
+ return {
152
+ ...base,
153
+ reason: refusal ?? "Node command does not match the supported literal grammar",
154
+ };
155
+ }
156
+ const option = afterNode[1]?.value;
157
+ if (option === "--contract-version" || option === "--report-issues") {
158
+ return { ...base, reportingOnly: true };
159
+ }
160
+ if (afterNode.length !== 1) {
161
+ return { ...base, reason: "Node target has unsupported arguments" };
162
+ }
163
+ return {
164
+ ...base,
165
+ ...targetFromWord(afterNode[0], env),
166
+ };
167
+ };
168
+ /**
169
+ * Interpret the supported Node grammar after bounded comment-aware lexing.
170
+ * @param run - YAML-decoded shell scalar
171
+ * @param env - Literal YAML environment levels available to this step
172
+ * @param context - Runner and effective shell metadata proving POSIX semantics
173
+ * @returns Static target/reporting/refusal and bypass-wiring evidence
174
+ */
175
+ export function inspectNightlyGuardRun(run, env, context) {
176
+ const lexical = lexNightlyGuardRun(run);
177
+ if (!lexical.tokens) {
178
+ return {
179
+ reportingOnly: false,
180
+ containsNode: /(?:^|[ \t])node(?:[ \t]|$)/u.test(run),
181
+ bypassEvidence: hasNightlyBypassReference(run),
182
+ ...(lexical.reason ? { reason: lexical.reason } : {}),
183
+ };
184
+ }
185
+ const tokens = lexical.tokens;
186
+ const metadata = runMetadata(tokens);
187
+ const contextFailure = nightlyGuardPosixContextFailure(run, context);
188
+ if (contextFailure) {
189
+ return { ...resultBase(metadata), reason: contextFailure };
190
+ }
191
+ if (!metadata.containsNode)
192
+ return resultBase(metadata);
193
+ if (unsupportedCommandShape(tokens)) {
194
+ return {
195
+ ...resultBase(metadata),
196
+ reason: "multiple commands, pipelines, and shell operators are unsupported",
197
+ };
198
+ }
199
+ return inspectNodeCommand(metadata, env, nightlyGuardEnvironmentFailure(context.environment));
200
+ }
201
+ //# sourceMappingURL=doctor-nightly-e2e-guard-shell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor-nightly-e2e-guard-shell.js","sourceRoot":"","sources":["../../src/cli/doctor-nightly-e2e-guard-shell.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AACrF,OAAO,EACL,oCAAoC,GAErC,MAAM,6CAA6C,CAAC;AACrD,OAAO,EACL,kBAAkB,GAGnB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,kCAAkC,EAClC,8BAA8B,EAC9B,+BAA+B,GAEhC,MAAM,uCAAuC,CAAC;AAE/C,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAC9C,MAAM,kBAAkB,GAAG,kDAAkD,CAAC;AAC9E,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC;IACvC,aAAa;IACb,gBAAgB;IAChB,sBAAsB;IACtB,0BAA0B;IAC1B,+BAA+B;CAChC,CAAC,CAAC;AACH,MAAM,sBAAsB,GAC1B,kEAAkE,CAAC;AAoBrE;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,KAAa,EAAW,EAAE;IAClE,MAAM,KAAK,GAAG,KAAK;SAChB,WAAW,EAAE;SACb,KAAK,CAAC,aAAa,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,MAAM,UAAU,GAAG,KAAK;SACrB,KAAK,CAAC,kBAAkB,CAAC;SACzB,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;IACxE,MAAM,qBAAqB,GACzB,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC;QAChC,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAChE,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3B,OAAO,CACL,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC;QAClC,UAAU,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACvC,qBAAqB,CACtB,CAAC;AACJ,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,KAAa,EAAW,EAAE,CACvE,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,wBAAwB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAEtE,MAAM,KAAK,GAAG,CAAC,MAA6B,EAAwB,EAAE,CACpE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAsB,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;AAEtE,MAAM,uBAAuB,GAAG,CAAC,IAAe,EAAsB,EAAE,CACtE,IAAI,CAAC,KAAK,KAAK,QAAQ;IACrB,CAAC,CAAC,SAAS;IACX,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAE/C,MAAM,eAAe,GAAG,CAAC,IAAe,EAAsB,EAAE;IAC9D,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClD,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CACrB,IAAe,EACf,GAAqC,EACmB,EAAE;IAC1D,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACnE,OAAO;YACL,MAAM,EACJ,uFAAuF;SAC1F,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;IAC3E,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO;YACL,MAAM,EACJ,gGAAgG;SACnG,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,2BAA2B,CAAC,SAAS,CAAC,CAAC;IACtD,OAAO,MAAM;QACX,CAAC,CAAC,EAAE,MAAM,EAAE;QACZ,CAAC,CAAC;YACE,MAAM,EACJ,yKAAyK;SAC5K,CAAC;AACR,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,IAAe,EAAW,EAAE;IACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACzC,OAAO,8BAA8B,CAAC,IAAI,CAAC,CAAC;AAC9C,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAAC,IAAY,EAAW,EAAE,CACxD,CAAC,8BAA8B,CAAC,IAAI,CAAC;IACrC,CAAC,yBAAyB,CAAC,IAAI,CAAC;IAChC,CAAC,kCAAkC,CAAC,IAAI,CAAC,CAAC;AAY5C,MAAM,WAAW,GAAG,CAAC,MAA6B,EAAe,EAAE;IACjE,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC;IACnE,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,CAAC;IAC/B,MAAM,UAAU,GAAG,oCAAoC,CACrD,MAAM,EACN,uBAAuB,CACxB,CAAC;IACF,MAAM,cAAc,GAAG,YAAY,CAAC,IAAI,CACtC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CACxE,CAAC;IACF,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrE,MAAM,iBAAiB,GACrB,YAAY;QACZ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC;YACjD,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK;gBAC/B,yBAAyB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IACjD,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAClC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAChE;QACC,CAAC,CAAC,YAAY;QACd,CAAC,CAAC,iBAAiB;YACjB,CAAC,CAAC,oBAAoB;YACtB,CAAC,CAAC,SAAS,CAAC;IAChB,OAAO;QACL,YAAY;QACZ,IAAI;QACJ,YAAY;QACZ,cAAc;QACd,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpE,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CACjB,QAAqB,EAQrB,EAAE,CAAC,CAAC;IACJ,aAAa,EAAE,KAAK;IACpB,YAAY,EAAE,QAAQ,CAAC,YAAY;IACnC,cAAc,EAAE,QAAQ,CAAC,cAAc;IACvC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,GAAG,CAAC,QAAQ,CAAC,iBAAiB;QAC5B,CAAC,CAAC,EAAE,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,EAAE;QACnD,CAAC,CAAC,EAAE,CAAC;CACR,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,CACpB,MAA6B,EACO,EAAE,CACtC,MAAM;KACH,MAAM,CACL,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;IAChB,IACE,KAAK,CAAC,IAAI,KAAK,UAAU;QACzB,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,GAAG,CAAC,EAC7C,CAAC;QACD,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACjC,OAAO,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AACtC,CAAC,EACD,CAAC,EAAE,CAAC,CACL;KACA,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAEvC,MAAM,uBAAuB,GAAG,CAAC,MAA6B,EAAW,EAAE,CACzE,MAAM,CAAC,IAAI,CACT,KAAK,CAAC,EAAE,CACN,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,GAAG,CAC3E,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;AAE1C,MAAM,iBAAiB,GAAG,CACxB,YAAkC,EAClC,IAAY,EACQ,EAAE;IACtB,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC3C,IACE,MAAM,CAAC,MAAM,KAAK,CAAC;QACnB,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,CAAC,EACnD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACpE,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACxC,kCAAkC,CAChC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAC7C,CACF,CAAC;IACF,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,gCAAgC,CAAC;IACnG,CAAC;IACD,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC;QAC3B,CAAC,CAAC,qGAAqG;QACvG,CAAC,CAAC,2DAA2D,CAAC;AAClE,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CACzB,QAAqB,EACrB,GAAqC,EACrC,kBAAsC,EACX,EAAE;IAC7B,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IACjE,MAAM,aAAa,GAAG,iBAAiB,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAG,kBAAkB,IAAI,aAAa,CAAC;IACpD,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAClE,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EACJ,OAAO,IAAI,2DAA2D;SACzE,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,MAAM,KAAK,oBAAoB,IAAI,MAAM,KAAK,iBAAiB,EAAE,CAAC;QACpE,OAAO,EAAE,GAAG,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,uCAAuC,EAAE,CAAC;IACtE,CAAC;IACD,OAAO;QACL,GAAG,IAAI;QACP,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,CAAc,EAAE,GAAG,CAAC;KAClD,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CACpC,GAAW,EACX,GAAqC,EACrC,OAAmC;IAEnC,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,OAAO;YACL,aAAa,EAAE,KAAK;YACpB,YAAY,EAAE,6BAA6B,CAAC,IAAI,CAAC,GAAG,CAAC;YACrD,cAAc,EAAE,yBAAyB,CAAC,GAAG,CAAC;YAC9C,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtD,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,cAAc,GAAG,+BAA+B,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACrE,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IAC7D,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,YAAY;QAAE,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC;IACxD,IAAI,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC;QACpC,OAAO;YACL,GAAG,UAAU,CAAC,QAAQ,CAAC;YACvB,MAAM,EACJ,mEAAmE;SACtE,CAAC;IACJ,CAAC;IACD,OAAO,kBAAkB,CACvB,QAAQ,EACR,GAAG,EACH,8BAA8B,CAAC,OAAO,CAAC,WAAW,CAAC,CACpD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,36 @@
1
+ import type { HashLedger } from "../core/lisa-owned-provenance.js";
2
+ import type { DoctorCheck } from "./doctor.js";
3
+ import { type NightlyGuardProbeResult, type NightlyGuardScanResult } from "./doctor-nightly-e2e-guard-contract.js";
4
+ import { proveNightlyE2eGuardTarget, type NightlyGuardBehaviorCertificates, type NightlyGuardProofDependencies } from "./doctor-nightly-e2e-guard-proof.js";
5
+ import { type NightlyGuardScanDependencies } from "./doctor-nightly-e2e-guard-scan.js";
6
+ /** Stable doctor row name shared by human and JSON output. */
7
+ export declare const NIGHTLY_GUARD_CHECK_NAME = "Nightly E2E bypass guard bounded?";
8
+ /** Injected read-only collaborators for deterministic deadline/provenance tests. */
9
+ export interface NightlyGuardDependencies {
10
+ /** Installed Lisa root, for package-copy remediation classification. */
11
+ readonly lisaRoot?: string;
12
+ /** Known shipped hashes, injectable for provenance bite controls. */
13
+ readonly ledger?: HashLedger;
14
+ /** Exact behavior certificates, injectable for package fixture tests. */
15
+ readonly certificates?: NightlyGuardBehaviorCertificates;
16
+ /** Monotonic clock started before discovery. */
17
+ readonly now?: () => number;
18
+ /** Discovery seam used to prove the outer deadline includes scanning. */
19
+ readonly scanImpl?: (projectRoot: string, dependencies?: NightlyGuardScanDependencies) => Promise<NightlyGuardScanResult>;
20
+ /** Static target proof seam used to prove target deduplication. */
21
+ readonly probeImpl?: (projectRoot: string, target: string, dependencies?: NightlyGuardProofDependencies) => Promise<NightlyGuardProbeResult>;
22
+ /** Target ceiling override used only by deterministic tests. */
23
+ readonly timeoutMs?: number;
24
+ }
25
+ /**
26
+ * Report whether every active bypass-bearing nightly caller runs a trusted,
27
+ * compatible major-1 guard without evaluating any target bytes.
28
+ * @param projectRoot - Project root to inspect without mutation
29
+ * @param dependencies - Optional read-only collaborators for tests
30
+ * @returns Existing `DoctorCheck` shape used by both renderers and exit logic
31
+ */
32
+ export declare function checkNightlyE2eGuard(projectRoot: string, dependencies?: NightlyGuardDependencies): Promise<DoctorCheck>;
33
+ /** Backward-compatible name for direct callers of the former executable probe. */
34
+ export declare const probeNightlyE2eGuardTarget: typeof proveNightlyE2eGuardTarget;
35
+ export type { NightlyGuardProbeResult } from "./doctor-nightly-e2e-guard-contract.js";
36
+ //# sourceMappingURL=doctor-nightly-e2e-guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor-nightly-e2e-guard.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-nightly-e2e-guard.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAIL,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC5B,MAAM,wCAAwC,CAAC;AAOhD,OAAO,EACL,0BAA0B,EAC1B,KAAK,gCAAgC,EACrC,KAAK,6BAA6B,EACnC,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,oCAAoC,CAAC;AAE5C,8DAA8D;AAC9D,eAAO,MAAM,wBAAwB,sCAAsC,CAAC;AAqB5E,oFAAoF;AACpF,MAAM,WAAW,wBAAwB;IACvC,wEAAwE;IACxE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,qEAAqE;IACrE,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IAC7B,yEAAyE;IACzE,QAAQ,CAAC,YAAY,CAAC,EAAE,gCAAgC,CAAC;IACzD,gDAAgD;IAChD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,yEAAyE;IACzE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAClB,WAAW,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,4BAA4B,KACxC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACrC,mEAAmE;IACnE,QAAQ,CAAC,SAAS,CAAC,EAAE,CACnB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,6BAA6B,KACzC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACtC,gEAAgE;IAChE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AA4MD;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,YAAY,GAAE,wBAA6B,GAC1C,OAAO,CAAC,WAAW,CAAC,CAsBtB;AAED,kFAAkF;AAClF,eAAO,MAAM,0BAA0B,mCAA6B,CAAC;AACrE,YAAY,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC"}
@@ -0,0 +1,186 @@
1
+ /**
2
+ * @file doctor-nightly-e2e-guard.ts
3
+ * @description Read-only doctor verdict for active bounded nightly bypass guards
4
+ * @module cli/doctor-nightly-e2e-guard
5
+ */
6
+ import * as path from "node:path";
7
+ import { fileURLToPath } from "node:url";
8
+ import { TextDecoder } from "node:util";
9
+ import { MAX_NIGHTLY_GUARD_DETAIL_BYTES, NIGHTLY_GUARD_OPERATION_TIMEOUT_MS, } from "./doctor-nightly-e2e-guard-contract.js";
10
+ import { createNightlyGuardDeadline, NightlyGuardDeadlineError, withinNightlyGuardDeadline, } from "./doctor-nightly-e2e-guard-deadline.js";
11
+ import { proveNightlyE2eGuardTarget, } from "./doctor-nightly-e2e-guard-proof.js";
12
+ import { nightlyGuardRemediation } from "./doctor-nightly-e2e-guard-remediation.js";
13
+ import { scanNightlyE2eGuardCallers, } from "./doctor-nightly-e2e-guard-scan.js";
14
+ /** Stable doctor row name shared by human and JSON output. */
15
+ export const NIGHTLY_GUARD_CHECK_NAME = "Nightly E2E bypass guard bounded?";
16
+ const DETAIL_SUFFIX = "\n[detail truncated at the 4 KiB nightly-guard limit]";
17
+ const UTF8 = new TextDecoder();
18
+ const boundedDetail = (detail) => {
19
+ const bytes = Buffer.from(detail);
20
+ if (bytes.length <= MAX_NIGHTLY_GUARD_DETAIL_BYTES)
21
+ return detail;
22
+ const suffixBytes = Buffer.byteLength(DETAIL_SUFFIX);
23
+ const available = MAX_NIGHTLY_GUARD_DETAIL_BYTES - suffixBytes;
24
+ const prefix = [0, 1, 2, 3]
25
+ .map(offset => UTF8.decode(bytes.subarray(0, available - offset)))
26
+ .find(candidate => Buffer.byteLength(candidate) <= available) ?? "";
27
+ return `${prefix}${DETAIL_SUFFIX}`;
28
+ };
29
+ const boundedCheck = (check) => ({
30
+ ...check,
31
+ detail: boundedDetail(check.detail),
32
+ });
33
+ const defaultLisaRoot = () => path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..", "..");
34
+ const displayError = (error) => error instanceof Error ? error.message : String(error);
35
+ const deadlineFailure = (reason) => ({
36
+ name: NIGHTLY_GUARD_CHECK_NAME,
37
+ status: "fail",
38
+ detail: `Guard proof unavailable: ${reason} across discovery, target proof, and remediation.`,
39
+ });
40
+ const discoveryFailure = (scan) => {
41
+ const facts = scan.failures
42
+ .map(failure => `${failure.workflow}: ${failure.reason}`)
43
+ .join("; ");
44
+ return {
45
+ name: NIGHTLY_GUARD_CHECK_NAME,
46
+ status: "fail",
47
+ detail: `Guard discovery unavailable: ${facts}. Remediation: keep workflow/job names and required-check context, use one literal \`node <relative-guard.js>\` target, then run \`node <relative-guard.js> --contract-version\`.`,
48
+ };
49
+ };
50
+ const determinateZero = () => ({
51
+ name: NIGHTLY_GUARD_CHECK_NAME,
52
+ status: "ok",
53
+ detail: "Inspected active workflows: 0 bypass-bearing nightly callers (determinate zero).",
54
+ });
55
+ /**
56
+ * Prove distinct targets sequentially so the shared deadline remains exact.
57
+ * @param projectRoot - Project containment root
58
+ * @param targets - Distinct literal target paths
59
+ * @param deadline - Whole-operation deadline
60
+ * @param dependencies - Injected proof collaborators
61
+ * @returns Target-keyed proof results
62
+ */
63
+ async function proveTargets(projectRoot, targets, deadline, dependencies) {
64
+ const prove = dependencies.probeImpl ?? proveNightlyE2eGuardTarget;
65
+ const proveNext = async (index, prior) => {
66
+ const target = targets[index];
67
+ if (target === undefined)
68
+ return prior;
69
+ if (deadline.expiresAt - deadline.now() <= 0) {
70
+ throw new NightlyGuardDeadlineError(deadline.reason);
71
+ }
72
+ const result = await prove(projectRoot, target, {
73
+ deadline,
74
+ ...(dependencies.certificates
75
+ ? { certificates: dependencies.certificates }
76
+ : {}),
77
+ ...(dependencies.timeoutMs ? { timeoutMs: dependencies.timeoutMs } : {}),
78
+ });
79
+ return await proveNext(index + 1, [...prior, { target, result }]);
80
+ };
81
+ return await proveNext(0, []);
82
+ }
83
+ const successfulFinding = (callers, results) => {
84
+ const facts = callers.map(caller => {
85
+ const result = results.get(caller.target);
86
+ const version = result?.state === "compatible" ? result.version : "unavailable";
87
+ return `${caller.callPath} -> ${caller.target} (${version})`;
88
+ });
89
+ return {
90
+ name: NIGHTLY_GUARD_CHECK_NAME,
91
+ status: "ok",
92
+ detail: `Inspected ${callers.length} bypass-bearing nightly caller(s) and ${results.size} target(s): ${facts.join("; ")}.`,
93
+ };
94
+ };
95
+ /**
96
+ * Format one failed caller with target proof and exact repair advice.
97
+ * @param caller - Active attributed call path
98
+ * @param result - Deduplicated target proof
99
+ * @param projectRoot - Project containment root
100
+ * @param deadline - Whole-operation deadline
101
+ * @param dependencies - Package/provenance collaborators
102
+ * @returns One operator-readable failure fact
103
+ */
104
+ async function failedFact(caller, result, projectRoot, deadline, dependencies) {
105
+ const reason = result?.state === "failure" ? result.reason : "proof unavailable";
106
+ const version = result?.state === "failure" && result.version
107
+ ? ` (reported ${result.version})`
108
+ : "";
109
+ const remediation = await nightlyGuardRemediation({
110
+ projectRoot,
111
+ lisaRoot: dependencies.lisaRoot ?? defaultLisaRoot(),
112
+ caller,
113
+ deadline,
114
+ ...(dependencies.ledger ? { ledger: dependencies.ledger } : {}),
115
+ ...(dependencies.certificates
116
+ ? { certificates: dependencies.certificates }
117
+ : {}),
118
+ });
119
+ return `${caller.callPath} -> ${caller.target}: ${reason}${version}. Remediation: ${remediation}`;
120
+ }
121
+ /**
122
+ * Build deterministic failure facts while retaining every active call path.
123
+ * @param callers - Active caller paths
124
+ * @param results - Deduplicated target proofs
125
+ * @param projectRoot - Project containment root
126
+ * @param deadline - Whole-operation deadline
127
+ * @param dependencies - Package/provenance collaborators
128
+ * @returns Failed doctor row
129
+ */
130
+ async function failedFinding(callers, results, projectRoot, deadline, dependencies) {
131
+ const failed = callers.filter(caller => results.get(caller.target)?.state !== "compatible");
132
+ const facts = await Promise.all(failed.map(caller => failedFact(caller, results.get(caller.target), projectRoot, deadline, dependencies)));
133
+ return {
134
+ name: NIGHTLY_GUARD_CHECK_NAME,
135
+ status: "fail",
136
+ detail: `Nightly bypass guard contract failed for ${failed.length} caller(s):\n${facts.map(fact => ` - ${fact}`).join("\n")}`,
137
+ };
138
+ }
139
+ /**
140
+ * Evaluate discovery and static proof under one already-started deadline.
141
+ * @param projectRoot - Project containment root
142
+ * @param deadline - Deadline started before discovery
143
+ * @param dependencies - Read-only collaborators
144
+ * @returns Complete doctor row
145
+ */
146
+ async function evaluateNightlyGuard(projectRoot, deadline, dependencies) {
147
+ const scan = await (dependencies.scanImpl ?? scanNightlyE2eGuardCallers)(projectRoot, { deadline });
148
+ if (deadline.expiresAt - deadline.now() <= 0) {
149
+ throw new NightlyGuardDeadlineError(deadline.reason);
150
+ }
151
+ if (scan.state === "unavailable")
152
+ return discoveryFailure(scan);
153
+ if (scan.callers.length === 0)
154
+ return determinateZero();
155
+ const targets = [...new Set(scan.callers.map(caller => caller.target))];
156
+ const proofs = await proveTargets(projectRoot, targets, deadline, dependencies);
157
+ const results = new Map(proofs.map(proof => [proof.target, proof.result]));
158
+ return proofs.every(proof => proof.result.state === "compatible")
159
+ ? successfulFinding(scan.callers, results)
160
+ : await failedFinding(scan.callers, results, projectRoot, deadline, dependencies);
161
+ }
162
+ /**
163
+ * Report whether every active bypass-bearing nightly caller runs a trusted,
164
+ * compatible major-1 guard without evaluating any target bytes.
165
+ * @param projectRoot - Project root to inspect without mutation
166
+ * @param dependencies - Optional read-only collaborators for tests
167
+ * @returns Existing `DoctorCheck` shape used by both renderers and exit logic
168
+ */
169
+ export async function checkNightlyE2eGuard(projectRoot, dependencies = {}) {
170
+ const deadline = createNightlyGuardDeadline(dependencies.now, NIGHTLY_GUARD_OPERATION_TIMEOUT_MS);
171
+ try {
172
+ return boundedCheck(await withinNightlyGuardDeadline(deadline, () => evaluateNightlyGuard(projectRoot, deadline, dependencies)));
173
+ }
174
+ catch (error) {
175
+ return boundedCheck(error instanceof NightlyGuardDeadlineError
176
+ ? deadlineFailure(error.message)
177
+ : {
178
+ name: NIGHTLY_GUARD_CHECK_NAME,
179
+ status: "fail",
180
+ detail: `Guard proof unavailable: ${displayError(error)}.`,
181
+ });
182
+ }
183
+ }
184
+ /** Backward-compatible name for direct callers of the former executable probe. */
185
+ export const probeNightlyE2eGuardTarget = proveNightlyE2eGuardTarget;
186
+ //# sourceMappingURL=doctor-nightly-e2e-guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor-nightly-e2e-guard.js","sourceRoot":"","sources":["../../src/cli/doctor-nightly-e2e-guard.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAsBnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAUzD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,mDAAmD;AACnD,KAAK,YAAY,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;AAO3C,oCAAoC;AACpC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,sCAAsC;AACtC,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,wCAAwC;AACxC,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wCAAwC;AACxC,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,OAAO,KAAK,CAAC;IACxB,cAAc,EAAE,OAAO,cAAc,CAAC;IACtC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;IAC9C,mBAAmB,EAAE,OAAO,mBAAmB,CAAC;CACjD;AAaD;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,EAChD,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,WAAW,CAAC,CAyBtB;AA0KD;;;;;;GAMG;AACH,wBAAsB,SAAS,CAC7B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,aAAa,EACtB,YAAY,GAAE,OAAO,CAAC,kBAAkB,CAAM,GAC7C,OAAO,CAAC,YAAY,CAAC,CA8GvB"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAsBnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAWzD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,mDAAmD;AACnD,KAAK,YAAY,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;AAO3C,oCAAoC;AACpC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,sCAAsC;AACtC,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,wCAAwC;AACxC,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wCAAwC;AACxC,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,OAAO,KAAK,CAAC;IACxB,cAAc,EAAE,OAAO,cAAc,CAAC;IACtC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;IAC9C,mBAAmB,EAAE,OAAO,mBAAmB,CAAC;CACjD;AAaD;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,EAChD,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,WAAW,CAAC,CAyBtB;AA0KD;;;;;;GAMG;AACH,wBAAsB,SAAS,CAC7B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,aAAa,EACtB,YAAY,GAAE,OAAO,CAAC,kBAAkB,CAAM,GAC7C,OAAO,CAAC,YAAY,CAAC,CAoHvB"}
@@ -26,6 +26,7 @@ import { checkOverrideFloorConflicts } from "./doctor-override-floor-conflicts.j
26
26
  import { renderDoctorResult } from "./doctor-render.js";
27
27
  import { checkSkipJobsMigration } from "./doctor-skip-jobs-migration.js";
28
28
  import { checkTwoChannelDrift } from "./doctor-two-channel-drift.js";
29
+ import { checkNightlyE2eGuard } from "./doctor-nightly-e2e-guard.js";
29
30
  import { checkWiki } from "./doctor-wiki.js";
30
31
  import { checkDeclaredContexts } from "./doctor-declared-contexts.js";
31
32
  import { checkTraceabilityGate } from "./doctor-traceability-gate.js";
@@ -276,6 +277,12 @@ export async function runDoctor(targetPath, options, dependencies = {}) {
276
277
  // arrived — the body travels at `@main` and the script only on an apply, so
277
278
  // the halves land out of order and nothing reads as red (#3050).
278
279
  await checkTwoChannelDrift(resolvedTarget),
280
+ // The two-channel check asks whether a workflow's companion file arrived;
281
+ // this one follows the file the ACTIVE bypass-bearing caller invokes and
282
+ // proves its shipped provenance plus contract declaration without executing
283
+ // untrusted project JavaScript. A current managed copy sitting unused next
284
+ // to an older renamed fork must not make either check look green (#2519).
285
+ await checkNightlyE2eGuard(resolvedTarget),
279
286
  await checkApplyFailure(resolvedTarget),
280
287
  // Immediately after the recorded-failure check, because they are the two
281
288
  // halves of the same operator question. That one reports that an apply DID
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EACL,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AACnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKnD,MAAM,kBAAkB,GAAG,uBAAuB,CAAC;AACnD,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AAC7C,MAAM,yBAAyB,GAAG,8BAA8B,CAAC;AACjE,MAAM,4BAA4B,GAAG,8BAA8B,CAAC;AAkDpE,MAAM,oBAAoB,GAAuB;IAC/C,SAAS,EAAE,KAAK;IAChB,cAAc;IACd,WAAW,EAAE,IAAI,CAAC,EAAE;QAClB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC1B,CAAC;IACD,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;IACtC,kBAAkB;IAClB,mBAAmB;CACpB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAgD,EAChD,OAAgB;IAEhB,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO;YACL,IAAI,EAAE,kBAAkB;YACxB,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,uCAAuC;SAChD,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC3C,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACvC,OAAO;YACL,IAAI,EAAE,kBAAkB;YACxB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,aAAa,MAAM,CAAC,OAAO,eAAe,MAAM,CAAC,MAAM,EAAE;SAClE,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;QACrC,MAAM,EAAE,MAAM,CAAC,MAAM;YACnB,CAAC,CAAC,aAAa,MAAM,CAAC,OAAO,eAAe,MAAM,CAAC,MAAM,EAAE;YAC3D,CAAC,CAAC,6BAA6B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;KAC9E,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,kBAAkB,CAAC,UAAkB;IAClD,MAAM,WAAW,GAAG,CAAC,mBAAmB,EAAE,yBAAyB,CAAC;SACjE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;SAChD,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IAEhD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,IAAI,EAAE,yBAAyB;YAC/B,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,uDAAuD;SAChE,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,IAAI,EAAE,yBAAyB;gBAC/B,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,2BAClC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CACvD,EAAE;aACH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,EAAE,yBAAyB;QAC/B,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;KAC5E,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,gBAAgB,CAAC,UAAkB;IAChD,MAAM,gBAAgB,GAAG,sBAAsB,EAAE,CAAC;IAClD,MAAM,aAAa,GAAG,gBAAgB,CAAC,mBAAmB,CACxD,MAAM,gBAAgB,CAAC,SAAS,CAAC,UAAU,CAAC,CAC7C,CAAC;IACF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO;YACL,IAAI,EAAE,wBAAwB;YAC9B,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,+BAA+B;SACxC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,wBAAwB;QAC9B,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;KACjC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,kBAAkB,CAC/B,IAAwB,EACxB,OAAgB;IAEhB,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO;YACL,IAAI,EAAE,mBAAmB;YACzB,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,+CAA+C;SACxD,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,EAAC,OAAO,EAAC,EAAE;QAC1C,MAAM,aAAa,GAAG,GAAG,OAAO,CAAC,IAAI,GAAG,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CACnC,gCAAgC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,EAAE,CAChE,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,OAAO,GAAG,aAAa,SAAS,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpD,CAAC;YACD,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA8B,CAAC;YAClE,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;gBAC9B,OAAO,GAAG,aAAa,eAAe,CAAC;YACzC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,GAAG,aAAa,cAAc,CAAC;QACxC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CACH,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;IAE3E,OAAO;QACL,IAAI,EAAE,mBAAmB;QACzB,MAAM,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;QAC7C,MAAM,EACJ,QAAQ,CAAC,MAAM,KAAK,CAAC;YACnB,CAAC,CAAC,8CAA8C;YAChD,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;KAC1B,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,qBAAqB,CAAC,UAAkB;IAC/C,OAAO;QACL,mBAAmB;QACnB,yBAAyB;QACzB,kBAAkB;QAClB,kBAAkB;KACnB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,qBAAqB,CAAC,UAAkB;IACrD,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,EAAE,CAAC;QACvC,OAAO;YACL,IAAI,EAAE,4BAA4B;YAClC,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,mCAAmC;SAC5C,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,UAAU,CAAC,CAAC;QACzD,OAAO;YACL,IAAI,EAAE,4BAA4B;YAClC,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,MAAM,CAAC,OAAO;gBACpB,CAAC,CAAC,aAAa,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC1C,CAAC,CAAC,qEAAqE;SAC1E,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,IAAI,EAAE,4BAA4B;YAClC,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,0CACN,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CACvD,EAAE;SACH,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,UAA8B,EAC9B,OAAsB,EACtB,eAA4C,EAAE;IAE9C,MAAM,IAAI,GAAG,EAAE,GAAG,oBAAoB,EAAE,GAAG,YAAY,EAAE,CAAC;IAC1D,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG;QACb,MAAM,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC;QAClD,4EAA4E;QAC5E,2EAA2E;QAC3E,wDAAwD;QACxD,MAAM,mBAAmB,CAAC,cAAc,CAAC;QACzC,oEAAoE;QACpE,yEAAyE;QACzE,sEAAsE;QACtE,qEAAqE;QACrE,qDAAqD;QACrD,MAAM,2BAA2B,CAAC,cAAc,CAAC;QACjD,gBAAgB,EAAE;QAClB,MAAM,kBAAkB,CAAC,cAAc,CAAC;QACxC,2EAA2E;QAC3E,yEAAyE;QACzE,wEAAwE;QACxE,2EAA2E;QAC3E,qCAAqC;QACrC,MAAM,qBAAqB,CAAC,cAAc,CAAC;QAC3C,mEAAmE;QACnE,yEAAyE;QACzE,mEAAmE;QACnE,uEAAuE;QACvE,MAAM,qBAAqB,CAAC,cAAc,CAAC;QAC3C,MAAM,iBAAiB,CAAC,cAAc,EAAE,IAAI,CAAC;QAC7C,MAAM,kBAAkB,CAAC,cAAc,EAAE,IAAI,CAAC;QAC9C,MAAM,4BAA4B,CAAC,cAAc,CAAC;QAClD,MAAM,uBAAuB,CAAC,cAAc,CAAC;QAC7C,MAAM,yBAAyB,CAAC,cAAc,CAAC;QAC/C,qEAAqE;QACrE,2EAA2E;QAC3E,wEAAwE;QACxE,4DAA4D;QAC5D,2BAA2B;QAC3B,MAAM,sBAAsB,CAAC,cAAc,CAAC;QAC5C,2EAA2E;QAC3E,sEAAsE;QACtE,4EAA4E;QAC5E,iEAAiE;QACjE,MAAM,oBAAoB,CAAC,cAAc,CAAC;QAC1C,0EAA0E;QAC1E,yEAAyE;QACzE,4EAA4E;QAC5E,2EAA2E;QAC3E,0EAA0E;QAC1E,MAAM,oBAAoB,CAAC,cAAc,CAAC;QAC1C,MAAM,iBAAiB,CAAC,cAAc,CAAC;QACvC,yEAAyE;QACzE,2EAA2E;QAC3E,2EAA2E;QAC3E,sEAAsE;QACtE,iEAAiE;QACjE,2BAA2B;QAC3B,MAAM,2BAA2B,CAAC,cAAc,CAAC;QACjD,MAAM,gBAAgB,CAAC,cAAc,CAAC;QACtC,MAAM,qBAAqB,CAAC,cAAc,CAAC;QAC3C,yEAAyE;QACzE,0EAA0E;QAC1E,2EAA2E;QAC3E,eAAe;QACf,MAAM,oBAAoB,CAAC,cAAc,CAAC;QAC1C,wEAAwE;QACxE,4EAA4E;QAC5E,2EAA2E;QAC3E,qEAAqE;QACrE,8DAA8D;QAC9D,MAAM,iBAAiB,CAAC,cAAc,CAAC;QACvC,uEAAuE;QACvE,iEAAiE;QACjE,uEAAuE;QACvE,uEAAuE;QACvE,oDAAoD;QACpD,2BAA2B;QAC3B,MAAM,4BAA4B,CAAC,cAAc,CAAC;QAClD,MAAM,gBAAgB,CAAC,cAAc,CAAC;QACtC,uBAAuB,CAAC,cAAc,CAAC;QACvC,oEAAoE;QACpE,uEAAuE;QACvE,yEAAyE;QACzE,gCAAgC;QAChC,qEAAqE;QACrE,4EAA4E;QAC5E,MAAM,0BAA0B,CAAC,cAAc,CAAC;QAChD,oEAAoE;QACpE,2EAA2E;QAC3E,yEAAyE;QACzE,wCAAwC;QACxC,MAAM,mBAAmB,CAAC,cAAc,CAAC;QACzC,MAAM,oBAAoB,CAAC,cAAc,CAAC;QAC1C,wEAAwE;QACxE,2EAA2E;QAC3E,yEAAyE;QACzE,uEAAuE;QACvE,MAAM,uBAAuB,CAAC,cAAc,CAAC;QAC7C,MAAM,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC;QACxD,SAAS,CAAC,cAAc,CAAC;QACzB,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,IAAI;YAC5B,CAAC,CAAC,CAAC,MAAM,wBAAwB,CAAC,cAAc,CAAC,CAAC;YAClD,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,kBAAkB,CACrC,MAAM,EACN,cAAc,EACd,OAAO,EACP,IAAI,CAAC,KAAK,CACX,CAAC;IAEF,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -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,CAysBjC,CAAC;AAEH;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,+BAA+B,EAAE,QAAQ,CACpD,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CA4mBjC,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,CA0sBjC,CAAC;AAEH;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,+BAA+B,EAAE,QAAQ,CACpD,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CA6mBjC,CAAC"}
@@ -323,6 +323,7 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
323
323
  "scripts/lisa-environment-prepare.mjs": Object.freeze([
324
324
  "5cce1e1cd585d5b82db05c0fcea9fe4e24171f54c3ddba82cde151a97e277745",
325
325
  "63879152ebb67f289e900167daf035f2d03d7773c6e110ed5ab708c95417c55c",
326
+ "9f42451a38eabd69e453fbaabd34de2490dfbc8ab79b1d7a2f27f574d3314090",
326
327
  "c765c7a44ea81d54c7820f2068c8811fb73ca3e5f063cb55a8c30391d1326323",
327
328
  "f8c8e276fa6d68ed661f07882f20ee095d18a5e8a90136f78f1ed2b032ce33d4",
328
329
  "f936bc8a038a7901ade1ba58cc52e5f5a8b8b2a52a9f0c1516567cc80eb02ccb",
@@ -1029,6 +1030,7 @@ export const LISA_OWNED_HASH_HISTORY_DERIVED = Object.freeze({
1029
1030
  "scripts/lisa-environment-prepare.mjs": Object.freeze([
1030
1031
  "5cce1e1cd585d5b82db05c0fcea9fe4e24171f54c3ddba82cde151a97e277745",
1031
1032
  "63879152ebb67f289e900167daf035f2d03d7773c6e110ed5ab708c95417c55c",
1033
+ "9f42451a38eabd69e453fbaabd34de2490dfbc8ab79b1d7a2f27f574d3314090",
1032
1034
  "c765c7a44ea81d54c7820f2068c8811fb73ca3e5f063cb55a8c30391d1326323",
1033
1035
  "f8c8e276fa6d68ed661f07882f20ee095d18a5e8a90136f78f1ed2b032ce33d4",
1034
1036
  "f936bc8a038a7901ade1ba58cc52e5f5a8b8b2a52a9f0c1516567cc80eb02ccb",