@codyswann/lisa 2.311.9 → 2.311.11

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 (61) hide show
  1. package/dist/cli/doctor-readiness-domain.d.ts.map +1 -1
  2. package/dist/cli/doctor-readiness-domain.js +4 -2
  3. package/dist/cli/doctor-readiness-domain.js.map +1 -1
  4. package/dist/cli/doctor-readiness-local-scripts.d.ts +9 -0
  5. package/dist/cli/doctor-readiness-local-scripts.d.ts.map +1 -0
  6. package/dist/cli/doctor-readiness-local-scripts.js +267 -0
  7. package/dist/cli/doctor-readiness-local-scripts.js.map +1 -0
  8. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
  9. package/dist/core/upstream-evidence-manifest.js +2 -0
  10. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  11. package/package.json +1 -1
  12. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  13. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  14. package/plugins/lisa-agy/plugin.json +1 -1
  15. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  16. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  17. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  18. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  19. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  20. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  21. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  22. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  23. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  24. package/plugins/lisa-expo-agy/plugin.json +1 -1
  25. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  26. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  27. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  28. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  29. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  30. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  31. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  32. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  33. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  34. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  35. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  36. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  37. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  38. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  39. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  40. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  41. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  42. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  43. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  44. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  45. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  46. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  47. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  48. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  49. package/plugins/lisa-rails-agy/plugin.json +1 -1
  50. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  51. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  52. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  53. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  54. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  55. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  56. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  57. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  58. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  59. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  60. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  61. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-readiness-domain.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-readiness-domain.ts"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EACL,KAAK,cAAc,EAIpB,MAAM,iCAAiC,CAAC;AAEzC,6EAA6E;AAC7E,eAAO,MAAM,6BAA6B,qBAAqB,CAAC;AA4PhE;;;;;;;;;;GAUG;AACH,wBAAsB,8BAA8B,CAClD,IAAI,EAAE,MAAM,EACZ,eAAe,CAAC,EAAE,SAAS,cAAc,EAAE,GAC1C,OAAO,CAAC,wBAAwB,CAAC,CA2BnC"}
1
+ {"version":3,"file":"doctor-readiness-domain.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-readiness-domain.ts"],"names":[],"mappings":"AAuCA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EACL,KAAK,cAAc,EAIpB,MAAM,iCAAiC,CAAC;AAEzC,6EAA6E;AAC7E,eAAO,MAAM,6BAA6B,qBAAqB,CAAC;AA4PhE;;;;;;;;;;GAUG;AACH,wBAAsB,8BAA8B,CAClD,IAAI,EAAE,MAAM,EACZ,eAAe,CAAC,EAAE,SAAS,cAAc,EAAE,GAC1C,OAAO,CAAC,wBAAwB,CAAC,CA4BnC"}
@@ -27,6 +27,7 @@
27
27
  * @module cli/doctor-readiness-domain
28
28
  */
29
29
  import { commandTargetsOwnedService, describeCommands, hasCheckedInRunbook, looksEphemeral, scanCommands, } from "./doctor-readiness-operations.js";
30
+ import { expandLocalScriptCommands } from "./doctor-readiness-local-scripts.js";
30
31
  import { informationalFindings } from "./doctor-readiness-shared.js";
31
32
  import { parseRepositoryWorkflows, } from "./doctor-readiness-workflows.js";
32
33
  /** The domain-ownership readiness dimension id (readiness-rubric, RRR-1). */
@@ -50,7 +51,7 @@ const IRREVERSIBLE_DATA_OPS = [
50
51
  /\brails\s+db:(drop|reset)\b/,
51
52
  /\bprisma\s+migrate\s+reset\b[^\n]*--force\b/,
52
53
  /\bredis-cli\b[^\n]*\bflushall\b/i,
53
- /\bkubectl\s+delete\s+(namespace|pvc|persistentvolumeclaims?)\b/,
54
+ /\bkubectl\s+delete\s+(namespace|ns|pvc|persistentvolumeclaims?)\b/,
54
55
  /\bgcloud\s+sql\s+instances\s+delete\b/,
55
56
  /\baz\s+group\s+delete\b/,
56
57
  /\b(mongo|mongosh)\b[^\n]*\bdropdatabase\s*\(/i,
@@ -237,7 +238,8 @@ function skipRecord(guarded, scan, inspected, runbook, recoverableDestructiveOps
237
238
  * @returns The domain-ownership dimension record
238
239
  */
239
240
  export async function assessDomainOwnershipDimension(root, parsedWorkflows) {
240
- const workflows = parsedWorkflows ?? (await parseRepositoryWorkflows(root));
241
+ const parsed = parsedWorkflows ?? (await parseRepositoryWorkflows(root));
242
+ const workflows = await expandLocalScriptCommands(root, parsed);
241
243
  const scan = scanCommands(workflows, destroysData, {
242
244
  exemptStep: jobTakesBackupBeforeStep,
243
245
  unresolvedStep: servicesDeferral,
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-readiness-domain.js","sourceRoot":"","sources":["../../src/cli/doctor-readiness-domain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor-readiness-domain.js","sourceRoot":"","sources":["../../src/cli/doctor-readiness-domain.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { ParsedWorkflow } from "./doctor-readiness-workflows.js";
2
+ /**
3
+ * Inline directly invoked local shell scripts into the parsed workflow commands.
4
+ * @param root - Repository root
5
+ * @param workflows - Parsed workflow files
6
+ * @returns Workflows with bounded script content appended to matching steps
7
+ */
8
+ export declare function expandLocalScriptCommands(root: string, workflows: readonly ParsedWorkflow[]): Promise<readonly ParsedWorkflow[]>;
9
+ //# sourceMappingURL=doctor-readiness-local-scripts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor-readiness-local-scripts.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-readiness-local-scripts.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,cAAc,EAGf,MAAM,iCAAiC,CAAC;AA8QzC;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,SAAS,cAAc,EAAE,GACnC,OAAO,CAAC,SAAS,cAAc,EAAE,CAAC,CAKpC"}
@@ -0,0 +1,267 @@
1
+ /**
2
+ * Bounded expansion of repo-local shell wrappers referenced by workflow run
3
+ * steps.
4
+ * @module cli/doctor-readiness-local-scripts
5
+ */
6
+ import { open, realpath } from "node:fs/promises";
7
+ import * as path from "node:path";
8
+ /** Most bytes read from one local wrapper script during offline expansion. */
9
+ const MAX_LOCAL_SCRIPT_BYTES = 16_384;
10
+ /** Most wrapper scripts expanded across one readiness scan. */
11
+ const MAX_LOCAL_SCRIPT_EXPANSIONS = 64;
12
+ /** Separators that end one shell invocation for this conservative scan. */
13
+ const SHELL_INVOCATION_SEPARATOR = /\n|&&|\|\||[;&|]/;
14
+ /** Shell commands that execute another shell script path. */
15
+ const SHELL_SCRIPT_RUNNERS = new Set(["bash", "sh", "source", "."]);
16
+ /** Shell runners that accept option flags before the script path. */
17
+ const OPTIONED_SHELL_RUNNERS = new Set(["bash", "sh"]);
18
+ /** Prefix assignments that set env only for the following shell invocation. */
19
+ const SHELL_ENV_ASSIGNMENT = /^[A-Za-z_]\w*=.*$/u;
20
+ /**
21
+ * Whether a word is a shell-runner option rather than the script path.
22
+ * @param word - Shell token
23
+ * @returns True when the token should be skipped after bash/sh
24
+ */
25
+ function isShellRunnerOption(word) {
26
+ return word.startsWith("-") && word !== "-";
27
+ }
28
+ /**
29
+ * Find the first non-assignment token in one shell invocation.
30
+ * @param words - Whitespace-split shell invocation
31
+ * @param index - Current scan index
32
+ * @returns Index of the command token
33
+ */
34
+ function firstCommandIndex(words, index = 0) {
35
+ return SHELL_ENV_ASSIGNMENT.test(words[index] ?? "")
36
+ ? firstCommandIndex(words, index + 1)
37
+ : index;
38
+ }
39
+ /**
40
+ * Find the first non-option script argument after a shell runner.
41
+ * @param words - Whitespace-split shell invocation
42
+ * @param index - Current scan index
43
+ * @returns Index of the script argument
44
+ */
45
+ function firstShellScriptIndex(words, index) {
46
+ return isShellRunnerOption(words[index] ?? "")
47
+ ? firstShellScriptIndex(words, index + 1)
48
+ : index;
49
+ }
50
+ /**
51
+ * Locate the word in one invocation that names the script to expand.
52
+ * @param words - Whitespace-split shell invocation
53
+ * @returns Script word and whether a shell runner selected it
54
+ */
55
+ function scriptCandidate(words) {
56
+ const index = firstCommandIndex(words);
57
+ const command = words[index];
58
+ if (command === undefined) {
59
+ return null;
60
+ }
61
+ const usesRunner = SHELL_SCRIPT_RUNNERS.has(command);
62
+ if (!usesRunner) {
63
+ return { candidate: command, usesRunner };
64
+ }
65
+ const candidateIndex = OPTIONED_SHELL_RUNNERS.has(command)
66
+ ? firstShellScriptIndex(words, index + 1)
67
+ : index + 1;
68
+ const candidate = words[candidateIndex];
69
+ return candidate === undefined ? null : { candidate, usesRunner };
70
+ }
71
+ /**
72
+ * Extract repo-relative shell scripts named directly by a workflow run step.
73
+ * @param command - Workflow step command
74
+ * @returns Unique repo-relative script paths
75
+ */
76
+ function localScriptPaths(command) {
77
+ return [
78
+ ...new Set(command
79
+ .split(SHELL_INVOCATION_SEPARATOR)
80
+ .flatMap(invocation => {
81
+ const words = invocation.trim().split(/\s+/u);
82
+ if (words.length === 0 || words[0]?.startsWith("#")) {
83
+ return [];
84
+ }
85
+ const parsed = scriptCandidate(words);
86
+ if (parsed === null) {
87
+ return [];
88
+ }
89
+ const candidate = parsed?.candidate;
90
+ if (candidate === undefined ||
91
+ !candidate.endsWith(".sh") ||
92
+ candidate.includes("..")) {
93
+ return [];
94
+ }
95
+ if (!parsed.usesRunner &&
96
+ !candidate.includes("/") &&
97
+ !candidate.startsWith("./")) {
98
+ return [];
99
+ }
100
+ return [candidate.replace(/^\.\//u, "")];
101
+ })
102
+ .filter(candidate => !candidate.startsWith("-"))),
103
+ ];
104
+ }
105
+ /**
106
+ * Read one bounded repo-local script for offline command expansion.
107
+ * @param root - Repository root
108
+ * @param relativePath - Repo-relative script path
109
+ * @returns Script content, or null when it cannot be safely read
110
+ */
111
+ async function readLocalScript(root, relativePath) {
112
+ try {
113
+ const rootPath = await realpath(root);
114
+ const target = await realpath(path.resolve(rootPath, relativePath));
115
+ if (!target.startsWith(`${rootPath}${path.sep}`)) {
116
+ return null;
117
+ }
118
+ const file = await open(target, "r");
119
+ try {
120
+ const buffer = Buffer.alloc(MAX_LOCAL_SCRIPT_BYTES + 1);
121
+ const { bytesRead } = await file.read(buffer, 0, MAX_LOCAL_SCRIPT_BYTES + 1, 0);
122
+ return bytesRead > MAX_LOCAL_SCRIPT_BYTES
123
+ ? null
124
+ : buffer.subarray(0, bytesRead).toString("utf8");
125
+ }
126
+ finally {
127
+ await file.close();
128
+ }
129
+ }
130
+ catch {
131
+ return null;
132
+ }
133
+ }
134
+ /**
135
+ * Append any bounded local script bodies referenced by a workflow step.
136
+ * @param root - Repository root
137
+ * @param step - Parsed workflow step
138
+ * @param context - Shared expansion budget
139
+ * @returns Step with script bodies appended to `run`, when present
140
+ */
141
+ async function expandLocalScriptStep(root, step, context) {
142
+ const expanded = await expandLocalScriptBodies(root, localScriptPaths(step.run), context.remainingScripts);
143
+ return {
144
+ remainingScripts: expanded.remainingScripts,
145
+ value: expanded.value.length === 0
146
+ ? step
147
+ : { ...step, run: [step.run, ...expanded.value].join("\n") },
148
+ };
149
+ }
150
+ /**
151
+ * Read script bodies sequentially under the aggregate expansion budget.
152
+ * @param root - Repository root
153
+ * @param scripts - Candidate script paths
154
+ * @param remainingScripts - Remaining aggregate expansion budget
155
+ * @returns Expanded script bodies and updated budget
156
+ */
157
+ async function expandLocalScriptBodies(root, scripts, remainingScripts) {
158
+ const [script, ...rest] = scripts;
159
+ if (script === undefined || remainingScripts <= 0) {
160
+ return { value: [], remainingScripts };
161
+ }
162
+ const content = await readLocalScript(root, script);
163
+ const expanded = await expandLocalScriptBodies(root, rest, remainingScripts - 1);
164
+ return {
165
+ remainingScripts: expanded.remainingScripts,
166
+ value: content === null ? expanded.value : [content, ...expanded.value],
167
+ };
168
+ }
169
+ /**
170
+ * Expand directly invoked local shell scripts in one parsed job.
171
+ * @param root - Repository root
172
+ * @param job - Parsed workflow job
173
+ * @param context - Shared expansion budget
174
+ * @returns Job with script-expanded steps
175
+ */
176
+ async function expandLocalScriptJob(root, job, context) {
177
+ const expanded = await expandLocalScriptSteps(root, job.steps, context);
178
+ return {
179
+ remainingScripts: expanded.remainingScripts,
180
+ value: {
181
+ ...job,
182
+ steps: expanded.value,
183
+ },
184
+ };
185
+ }
186
+ /**
187
+ * Expand local scripts across a job's steps under the shared budget.
188
+ * @param root - Repository root
189
+ * @param steps - Parsed workflow steps
190
+ * @param context - Shared expansion budget
191
+ * @returns Expanded steps and updated budget
192
+ */
193
+ async function expandLocalScriptSteps(root, steps, context) {
194
+ const [step, ...rest] = steps;
195
+ if (step === undefined) {
196
+ return { value: [], remainingScripts: context.remainingScripts };
197
+ }
198
+ const expandedStep = await expandLocalScriptStep(root, step, context);
199
+ const expandedRest = await expandLocalScriptSteps(root, rest, {
200
+ remainingScripts: expandedStep.remainingScripts,
201
+ });
202
+ return {
203
+ remainingScripts: expandedRest.remainingScripts,
204
+ value: [expandedStep.value, ...expandedRest.value],
205
+ };
206
+ }
207
+ /**
208
+ * Inline directly invoked local shell scripts into the parsed workflow commands.
209
+ * @param root - Repository root
210
+ * @param workflows - Parsed workflow files
211
+ * @returns Workflows with bounded script content appended to matching steps
212
+ */
213
+ export async function expandLocalScriptCommands(root, workflows) {
214
+ const expanded = await expandLocalScriptWorkflows(root, workflows, {
215
+ remainingScripts: MAX_LOCAL_SCRIPT_EXPANSIONS,
216
+ });
217
+ return expanded.value;
218
+ }
219
+ /**
220
+ * Expand local scripts across workflows under the shared budget.
221
+ * @param root - Repository root
222
+ * @param workflows - Parsed workflow files
223
+ * @param context - Shared expansion budget
224
+ * @returns Expanded workflows and updated budget
225
+ */
226
+ async function expandLocalScriptWorkflows(root, workflows, context) {
227
+ const [workflow, ...rest] = workflows;
228
+ if (workflow === undefined) {
229
+ return { value: [], remainingScripts: context.remainingScripts };
230
+ }
231
+ const expandedJobs = await expandLocalScriptJobs(root, workflow.jobs, context);
232
+ const expandedRest = await expandLocalScriptWorkflows(root, rest, {
233
+ remainingScripts: expandedJobs.remainingScripts,
234
+ });
235
+ return {
236
+ remainingScripts: expandedRest.remainingScripts,
237
+ value: [
238
+ {
239
+ ...workflow,
240
+ jobs: expandedJobs.value,
241
+ },
242
+ ...expandedRest.value,
243
+ ],
244
+ };
245
+ }
246
+ /**
247
+ * Expand local scripts across workflow jobs under the shared budget.
248
+ * @param root - Repository root
249
+ * @param jobs - Parsed workflow jobs
250
+ * @param context - Shared expansion budget
251
+ * @returns Expanded jobs and updated budget
252
+ */
253
+ async function expandLocalScriptJobs(root, jobs, context) {
254
+ const [job, ...rest] = jobs;
255
+ if (job === undefined) {
256
+ return { value: [], remainingScripts: context.remainingScripts };
257
+ }
258
+ const expandedJob = await expandLocalScriptJob(root, job, context);
259
+ const expandedRest = await expandLocalScriptJobs(root, rest, {
260
+ remainingScripts: expandedJob.remainingScripts,
261
+ });
262
+ return {
263
+ remainingScripts: expandedRest.remainingScripts,
264
+ value: [expandedJob.value, ...expandedRest.value],
265
+ };
266
+ }
267
+ //# sourceMappingURL=doctor-readiness-local-scripts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor-readiness-local-scripts.js","sourceRoot":"","sources":["../../src/cli/doctor-readiness-local-scripts.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,CAkjEpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CA23MjE,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,CAkjEpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CA63MjE,CAAC;AAEL,sFAAsF;AACtF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAk6I/D,CAAC"}
@@ -6395,6 +6395,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
6395
6395
  "src/cli/doctor-readiness-guardrails.ts": true,
6396
6396
  "src/cli/doctor-readiness-journey-freshness.ts": true,
6397
6397
  "src/cli/doctor-readiness-journey.ts": true,
6398
+ "src/cli/doctor-readiness-local-scripts.ts": true,
6398
6399
  "src/cli/doctor-readiness-operations.ts": true,
6399
6400
  "src/cli/doctor-readiness-promoted-artifact.ts": true,
6400
6401
  "src/cli/doctor-readiness-release-path.ts": true,
@@ -6799,6 +6800,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
6799
6800
  "tests/unit/cli/doctor-readiness-guardrails-wrappers.test.ts": true,
6800
6801
  "tests/unit/cli/doctor-readiness-guardrails.test.ts": true,
6801
6802
  "tests/unit/cli/doctor-readiness-journey.test.ts": true,
6803
+ "tests/unit/cli/doctor-readiness-local-scripts.test.ts": true,
6802
6804
  "tests/unit/cli/doctor-readiness-supply-chain-exceptions.test.ts": true,
6803
6805
  "tests/unit/cli/doctor-readiness-supply-chain-go.test.ts": true,
6804
6806
  "tests/unit/cli/doctor-readiness-supply-chain-install-gate.test.ts": true,