@vibe-validate/cli 0.18.0-rc.1 → 0.18.1

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 (52) hide show
  1. package/dist/bin.js +12 -4
  2. package/dist/bin.js.map +1 -1
  3. package/dist/commands/cleanup.d.ts +4 -1
  4. package/dist/commands/cleanup.d.ts.map +1 -1
  5. package/dist/commands/cleanup.js +165 -122
  6. package/dist/commands/cleanup.js.map +1 -1
  7. package/dist/commands/config.d.ts.map +1 -1
  8. package/dist/commands/config.js +34 -22
  9. package/dist/commands/config.js.map +1 -1
  10. package/dist/commands/create-extractor.d.ts.map +1 -1
  11. package/dist/commands/create-extractor.js +43 -20
  12. package/dist/commands/create-extractor.js.map +1 -1
  13. package/dist/commands/doctor.d.ts.map +1 -1
  14. package/dist/commands/doctor.js +17 -26
  15. package/dist/commands/doctor.js.map +1 -1
  16. package/dist/commands/generate-workflow.d.ts +3 -2
  17. package/dist/commands/generate-workflow.d.ts.map +1 -1
  18. package/dist/commands/generate-workflow.js +71 -67
  19. package/dist/commands/generate-workflow.js.map +1 -1
  20. package/dist/commands/init.d.ts.map +1 -1
  21. package/dist/commands/init.js +11 -2
  22. package/dist/commands/init.js.map +1 -1
  23. package/dist/commands/pre-commit.d.ts.map +1 -1
  24. package/dist/commands/pre-commit.js +4 -1
  25. package/dist/commands/pre-commit.js.map +1 -1
  26. package/dist/commands/run.d.ts.map +1 -1
  27. package/dist/commands/run.js +10 -4
  28. package/dist/commands/run.js.map +1 -1
  29. package/dist/schemas/watch-pr-result.schema.d.ts +73 -12
  30. package/dist/schemas/watch-pr-result.schema.d.ts.map +1 -1
  31. package/dist/schemas/watch-pr-result.schema.js +11 -0
  32. package/dist/schemas/watch-pr-result.schema.js.map +1 -1
  33. package/dist/services/github-fetcher.d.ts +25 -1
  34. package/dist/services/github-fetcher.d.ts.map +1 -1
  35. package/dist/services/github-fetcher.js +32 -3
  36. package/dist/services/github-fetcher.js.map +1 -1
  37. package/dist/services/watch-pr-orchestrator.d.ts +16 -3
  38. package/dist/services/watch-pr-orchestrator.d.ts.map +1 -1
  39. package/dist/services/watch-pr-orchestrator.js +88 -57
  40. package/dist/services/watch-pr-orchestrator.js.map +1 -1
  41. package/dist/utils/package-manager-commands.d.ts +72 -0
  42. package/dist/utils/package-manager-commands.d.ts.map +1 -0
  43. package/dist/utils/package-manager-commands.js +210 -0
  44. package/dist/utils/package-manager-commands.js.map +1 -0
  45. package/dist/utils/secret-scanning.d.ts.map +1 -1
  46. package/dist/utils/secret-scanning.js +45 -17
  47. package/dist/utils/secret-scanning.js.map +1 -1
  48. package/dist/utils/temp-files.d.ts +1 -2
  49. package/dist/utils/temp-files.d.ts.map +1 -1
  50. package/dist/utils/temp-files.js +2 -2
  51. package/dist/utils/temp-files.js.map +1 -1
  52. package/package.json +8 -8
@@ -75,6 +75,7 @@ export class WatchPROrchestrator {
75
75
  status: check.status,
76
76
  conclusion: check.conclusion,
77
77
  run_id: check.run_id,
78
+ job_id: check.job_id,
78
79
  workflow: check.workflow,
79
80
  started_at: check.started_at,
80
81
  duration: check.duration,
@@ -82,7 +83,8 @@ export class WatchPROrchestrator {
82
83
  // Try to extract errors if check failed
83
84
  if (check.conclusion === 'failure' && check.run_id) {
84
85
  // Use retry logic to handle GitHub API race condition (Issue #4)
85
- const logs = await this.fetchLogsWithRetry(check.run_id);
86
+ // Pass job_id for matrix strategy jobs to get job-specific logs
87
+ const logs = await this.fetchLogsWithRetry(check.run_id, check.job_id);
86
88
  if (logs) {
87
89
  const extraction = await this.extractionDetector.detectAndExtract(actionCheck, logs);
88
90
  if (extraction) {
@@ -163,16 +165,79 @@ export class WatchPROrchestrator {
163
165
  // This ensures PR status is always fresh from GitHub
164
166
  return result;
165
167
  }
168
+ /**
169
+ * Build GitHub Action check from a workflow job
170
+ */
171
+ async buildCheckFromJob(job, runId, workflowName) {
172
+ // Calculate duration
173
+ const startTime = new Date(job.started_at).getTime();
174
+ const endTime = job.completed_at ? new Date(job.completed_at).getTime() : Date.now();
175
+ const durationSecs = Math.floor((endTime - startTime) / 1000);
176
+ // Normalize status
177
+ let jobStatus = 'queued';
178
+ if (job.status === 'completed') {
179
+ jobStatus = 'completed';
180
+ }
181
+ else if (job.status === 'in_progress') {
182
+ jobStatus = 'in_progress';
183
+ }
184
+ const actionCheck = {
185
+ name: job.name,
186
+ status: jobStatus,
187
+ conclusion: job.conclusion ? job.conclusion : undefined,
188
+ run_id: runId,
189
+ job_id: job.id, // CRITICAL: Include job_id for matrix strategy support
190
+ workflow: workflowName,
191
+ started_at: job.started_at,
192
+ duration: `${durationSecs}s`,
193
+ };
194
+ // Extract errors from failed jobs
195
+ if (job.status === 'completed' && job.conclusion === 'failure') {
196
+ await this.extractErrorsForCheck(actionCheck, runId, job.id);
197
+ }
198
+ return actionCheck;
199
+ }
200
+ /**
201
+ * Extract errors for a check from run logs
202
+ */
203
+ async extractErrorsForCheck(check, runId, jobId) {
204
+ const logs = await this.fetchLogsWithRetry(runId, jobId);
205
+ if (!logs)
206
+ return;
207
+ const extraction = await this.extractionDetector.detectAndExtract(check, logs);
208
+ if (extraction) {
209
+ check.extraction = extraction;
210
+ }
211
+ // Save to cache
212
+ if (this.cacheManager) {
213
+ await this.cacheManager.saveLog(runId, logs);
214
+ if (extraction) {
215
+ await this.cacheManager.saveExtraction(runId, extraction);
216
+ }
217
+ }
218
+ }
219
+ /**
220
+ * Determine overall PR status from checks
221
+ */
222
+ determineOverallStatus(checks) {
223
+ const hasFailure = checks.some(c => c.conclusion === 'failure');
224
+ const hasPending = checks.some(c => c.status === 'in_progress' || c.status === 'queued');
225
+ if (hasFailure)
226
+ return 'failed';
227
+ if (hasPending)
228
+ return 'pending';
229
+ return 'passed';
230
+ }
166
231
  /**
167
232
  * Build result for a specific run ID
168
233
  *
169
- * Useful for watching specific failed runs to test extraction.
170
- * Does not use history summary (since it's a single run).
234
+ * Fetches all jobs for the workflow run and creates individual checks for each job.
235
+ * This provides consistent job-level detail matching the default behavior.
171
236
  *
172
237
  * @param prNumber - PR number
173
238
  * @param runId - GitHub run ID
174
239
  * @param options - Options (useCache)
175
- * @returns WatchPRResult with single check
240
+ * @returns WatchPRResult with job-level checks
176
241
  */
177
242
  async buildResultForRun(prNumber, runId, options = {}) {
178
243
  const { useCache = false } = options;
@@ -180,56 +245,25 @@ export class WatchPROrchestrator {
180
245
  if (useCache && !this.cacheManager) {
181
246
  this.cacheManager = new CacheManager(`${this.owner}/${this.repo}`, prNumber);
182
247
  }
183
- // Fetch PR metadata (still needed for context)
248
+ // Fetch metadata
184
249
  const prMetadata = await this.fetcher.fetchPRDetails(prNumber);
185
- // Fetch specific run details
186
250
  const runDetails = await this.fetcher.fetchRunDetails(runId);
187
- // Build GitHub Action check from run details
188
- const actionCheck = {
189
- name: runDetails.name,
190
- status: runDetails.status,
191
- conclusion: runDetails.conclusion,
192
- run_id: runDetails.run_id,
193
- workflow: runDetails.workflow,
194
- started_at: runDetails.started_at,
195
- duration: runDetails.duration,
196
- };
197
- // Try to extract errors from logs (with retry logic for Issue #4)
198
- const logs = await this.fetchLogsWithRetry(runId);
199
- if (logs) {
200
- const extraction = await this.extractionDetector.detectAndExtract(actionCheck, logs);
201
- if (extraction) {
202
- actionCheck.extraction = extraction;
203
- }
204
- // Save logs to cache (extraction can be re-run later)
205
- if (this.cacheManager) {
206
- await this.cacheManager.saveLog(runId, logs);
207
- if (extraction) {
208
- await this.cacheManager.saveExtraction(runId, extraction);
209
- }
210
- }
211
- }
212
- // If logs are null, gracefully continue without extraction
213
- // No noisy error output (Issue #4 fix)
214
- // Fetch file changes (for context)
251
+ const jobs = await this.fetcher.fetchRunJobs(runId);
252
+ // Build checks from jobs
253
+ const actionChecks = await Promise.all(jobs.map(job => this.buildCheckFromJob(job, runId, runDetails.workflow)));
254
+ // Fetch file changes
215
255
  const changes = await this.fetcher.fetchFileChanges(prNumber);
216
- // Determine status from the single check
217
- let status = 'passed';
218
- if (actionCheck.conclusion === 'failure') {
219
- status = 'failed';
220
- }
221
- else if (actionCheck.status === 'in_progress' || actionCheck.status === 'queued') {
222
- status = 'pending';
223
- }
224
- // Calculate check counts (single check)
225
- const totalChecks = 1;
226
- const passedChecks = actionCheck.conclusion === 'success' ? 1 : 0;
227
- const failedChecks = actionCheck.conclusion === 'failure' ? 1 : 0;
228
- const pendingChecks = actionCheck.status === 'in_progress' || actionCheck.status === 'queued' ? 1 : 0;
229
- // Generate guidance (simplified for single run)
230
- const guidance = this.generateGuidance(status, [actionCheck], [], prMetadata.mergeable);
256
+ // Determine status
257
+ const status = this.determineOverallStatus(actionChecks);
258
+ // Calculate counts
259
+ const totalChecks = actionChecks.length;
260
+ const passedChecks = actionChecks.filter(c => c.conclusion === 'success').length;
261
+ const failedChecks = actionChecks.filter(c => c.conclusion === 'failure').length;
262
+ const pendingChecks = actionChecks.filter(c => c.status === 'in_progress' || c.status === 'queued').length;
263
+ // Generate guidance
264
+ const guidance = this.generateGuidance(status, actionChecks, [], prMetadata.mergeable);
231
265
  // Build result
232
- const result = {
266
+ return {
233
267
  pr: prMetadata,
234
268
  status,
235
269
  checks: {
@@ -237,16 +271,12 @@ export class WatchPROrchestrator {
237
271
  passed: passedChecks,
238
272
  failed: failedChecks,
239
273
  pending: pendingChecks,
240
- github_actions: [actionCheck],
274
+ github_actions: this.orderChecks(actionChecks),
241
275
  external_checks: [],
242
276
  },
243
277
  changes,
244
278
  guidance,
245
- // Note: cache field removed - will be added back when actually needed
246
279
  };
247
- // Don't cache metadata for single-run mode (historical runs are immutable)
248
- // But logs and extractions are already cached above
249
- return result;
250
280
  }
251
281
  /**
252
282
  * Get priority for check ordering (lower is higher priority)
@@ -372,13 +402,14 @@ export class WatchPROrchestrator {
372
402
  * Retry schedule: 2s, 4s, 8s (total 3 attempts over ~14 seconds)
373
403
  *
374
404
  * @param runId - GitHub run ID
405
+ * @param jobId - GitHub job ID (optional, for matrix strategy jobs)
375
406
  * @param maxRetries - Maximum number of retry attempts (default: 3)
376
407
  * @returns Log content, or null if all retries failed
377
408
  */
378
- async fetchLogsWithRetry(runId, maxRetries = 3) {
409
+ async fetchLogsWithRetry(runId, jobId, maxRetries = 3) {
379
410
  for (let attempt = 1; attempt <= maxRetries; attempt++) {
380
411
  try {
381
- return await this.fetcher.fetchRunLogs(runId);
412
+ return await this.fetcher.fetchRunLogs(runId, jobId);
382
413
  }
383
414
  catch {
384
415
  // Intentionally suppress error (Issue #4 fix: no noisy output)
@@ -1 +1 @@
1
- {"version":3,"file":"watch-pr-orchestrator.js","sourceRoot":"","sources":["../../src/services/watch-pr-orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watch-pr-orchestrator.js","sourceRoot":"","sources":["../../src/services/watch-pr-orchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Package Manager Command Utilities
3
+ *
4
+ * Provides package-manager-agnostic command generation for all supported package managers:
5
+ * npm, pnpm, yarn, bun
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ /**
10
+ * Supported package managers
11
+ */
12
+ export type PackageManager = 'npm' | 'pnpm' | 'yarn' | 'bun';
13
+ /**
14
+ * Get install command for package manager (for CI/production)
15
+ * Uses frozen lockfile modes to ensure reproducible installs
16
+ */
17
+ export declare function getInstallCommand(packageManager: PackageManager): string;
18
+ /**
19
+ * Get basic install command without frozen lockfile (for local development)
20
+ */
21
+ export declare function getInstallCommandUnfrozen(packageManager: PackageManager): string;
22
+ /**
23
+ * Get command to install dev dependencies
24
+ * @param packages - Space-separated list of packages to install
25
+ */
26
+ export declare function getDevInstallCommand(packageManager: PackageManager, packages: string): string;
27
+ /**
28
+ * Get command to install global packages
29
+ * @param packages - Space-separated list of packages to install
30
+ */
31
+ export declare function getGlobalInstallCommand(packageManager: PackageManager, packages: string): string;
32
+ /**
33
+ * Get command to install regular dependencies
34
+ * @param packages - Space-separated list of packages to install
35
+ */
36
+ export declare function getAddCommand(packageManager: PackageManager, packages: string): string;
37
+ /**
38
+ * Get upgrade command for a package
39
+ * @param packageName - Name of package to upgrade
40
+ * @param scope - 'local' for dev dependency, 'global' for global install
41
+ */
42
+ export declare function getUpgradeCommand(packageManager: PackageManager, packageName: string, scope?: 'local' | 'global'): string;
43
+ /**
44
+ * Get build command for package manager
45
+ */
46
+ export declare function getBuildCommand(packageManager: PackageManager): string;
47
+ /**
48
+ * Get validate command for package manager
49
+ */
50
+ export declare function getValidateCommand(packageManager: PackageManager): string;
51
+ /**
52
+ * Get coverage command for package manager
53
+ */
54
+ export declare function getCoverageCommand(packageManager: PackageManager): string;
55
+ /**
56
+ * Get run command prefix for package manager
57
+ */
58
+ export declare function getRunCommand(packageManager: PackageManager, script: string): string;
59
+ /**
60
+ * Detect package manager from package.json and lockfiles
61
+ * Priority:
62
+ * 1. package.json packageManager field (official spec)
63
+ * 2. Lockfile detection (priority: bun > yarn > npm > pnpm)
64
+ * Note: npm preferred over pnpm when both exist (more conservative default)
65
+ */
66
+ export declare function detectPackageManager(cwd?: string): PackageManager;
67
+ /**
68
+ * Get formatted list of upgrade commands for all package managers
69
+ * Useful for help text where we want to show all options
70
+ */
71
+ export declare function getAllUpgradeCommands(packageName: string, scope?: 'local' | 'global'): string;
72
+ //# sourceMappingURL=package-manager-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-manager-commands.d.ts","sourceRoot":"","sources":["../../src/utils/package-manager-commands.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAE7D;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,cAAc,GAAG,MAAM,CAQxE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,cAAc,EAAE,cAAc,GAAG,MAAM,CAQhF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQ7F;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQhG;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQtF;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,MAAM,EACnB,KAAK,GAAE,OAAO,GAAG,QAAkB,GAClC,MAAM,CAaR;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,cAAc,EAAE,cAAc,GAAG,MAAM,CAQtE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,cAAc,GAAG,MAAM,CAQzE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,cAAc,GAAG,MAAM,CAQzE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,cAAc,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAQpF;AA8CD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,GAAE,MAAsB,GAAG,cAAc,CAEhF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,GAAE,OAAO,GAAG,QAAkB,GAAG,MAAM,CAKtG"}
@@ -0,0 +1,210 @@
1
+ /**
2
+ * Package Manager Command Utilities
3
+ *
4
+ * Provides package-manager-agnostic command generation for all supported package managers:
5
+ * npm, pnpm, yarn, bun
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ import { existsSync, readFileSync } from 'node:fs';
10
+ import { join } from 'node:path';
11
+ /**
12
+ * Get install command for package manager (for CI/production)
13
+ * Uses frozen lockfile modes to ensure reproducible installs
14
+ */
15
+ export function getInstallCommand(packageManager) {
16
+ switch (packageManager) {
17
+ case 'bun': return 'bun install';
18
+ case 'pnpm': return 'pnpm install --frozen-lockfile';
19
+ case 'yarn': return 'yarn install --frozen-lockfile';
20
+ case 'npm': return 'npm ci';
21
+ default: return 'npm ci';
22
+ }
23
+ }
24
+ /**
25
+ * Get basic install command without frozen lockfile (for local development)
26
+ */
27
+ export function getInstallCommandUnfrozen(packageManager) {
28
+ switch (packageManager) {
29
+ case 'bun': return 'bun install';
30
+ case 'pnpm': return 'pnpm install';
31
+ case 'yarn': return 'yarn install';
32
+ case 'npm': return 'npm install';
33
+ default: return 'npm install';
34
+ }
35
+ }
36
+ /**
37
+ * Get command to install dev dependencies
38
+ * @param packages - Space-separated list of packages to install
39
+ */
40
+ export function getDevInstallCommand(packageManager, packages) {
41
+ switch (packageManager) {
42
+ case 'bun': return `bun add --dev ${packages}`;
43
+ case 'pnpm': return `pnpm add -D ${packages}`;
44
+ case 'yarn': return `yarn add --dev ${packages}`;
45
+ case 'npm': return `npm install --save-dev ${packages}`;
46
+ default: return `npm install --save-dev ${packages}`;
47
+ }
48
+ }
49
+ /**
50
+ * Get command to install global packages
51
+ * @param packages - Space-separated list of packages to install
52
+ */
53
+ export function getGlobalInstallCommand(packageManager, packages) {
54
+ switch (packageManager) {
55
+ case 'bun': return `bun add --global ${packages}`;
56
+ case 'pnpm': return `pnpm add -g ${packages}`;
57
+ case 'yarn': return `yarn global add ${packages}`;
58
+ case 'npm': return `npm install -g ${packages}`;
59
+ default: return `npm install -g ${packages}`;
60
+ }
61
+ }
62
+ /**
63
+ * Get command to install regular dependencies
64
+ * @param packages - Space-separated list of packages to install
65
+ */
66
+ export function getAddCommand(packageManager, packages) {
67
+ switch (packageManager) {
68
+ case 'bun': return `bun add ${packages}`;
69
+ case 'pnpm': return `pnpm add ${packages}`;
70
+ case 'yarn': return `yarn add ${packages}`;
71
+ case 'npm': return `npm install ${packages}`;
72
+ default: return `npm install ${packages}`;
73
+ }
74
+ }
75
+ /**
76
+ * Get upgrade command for a package
77
+ * @param packageName - Name of package to upgrade
78
+ * @param scope - 'local' for dev dependency, 'global' for global install
79
+ */
80
+ export function getUpgradeCommand(packageManager, packageName, scope = 'local') {
81
+ if (scope === 'global') {
82
+ return getGlobalInstallCommand(packageManager, `${packageName}@latest`);
83
+ }
84
+ // Local upgrade
85
+ switch (packageManager) {
86
+ case 'bun': return `bun update ${packageName}`;
87
+ case 'pnpm': return `pnpm update ${packageName}`;
88
+ case 'yarn': return `yarn upgrade ${packageName}`;
89
+ case 'npm': return `npm install -D ${packageName}@latest`;
90
+ default: return `npm install -D ${packageName}@latest`;
91
+ }
92
+ }
93
+ /**
94
+ * Get build command for package manager
95
+ */
96
+ export function getBuildCommand(packageManager) {
97
+ switch (packageManager) {
98
+ case 'bun': return 'bun run build';
99
+ case 'pnpm': return 'pnpm -r build';
100
+ case 'yarn': return 'yarn run build';
101
+ case 'npm': return 'npm run build';
102
+ default: return 'npm run build';
103
+ }
104
+ }
105
+ /**
106
+ * Get validate command for package manager
107
+ */
108
+ export function getValidateCommand(packageManager) {
109
+ switch (packageManager) {
110
+ case 'bun': return 'bun run validate';
111
+ case 'pnpm': return 'pnpm validate';
112
+ case 'yarn': return 'yarn run validate';
113
+ case 'npm': return 'npm run validate';
114
+ default: return 'npm run validate';
115
+ }
116
+ }
117
+ /**
118
+ * Get coverage command for package manager
119
+ */
120
+ export function getCoverageCommand(packageManager) {
121
+ switch (packageManager) {
122
+ case 'bun': return 'bun run test:coverage';
123
+ case 'pnpm': return 'pnpm test:coverage';
124
+ case 'yarn': return 'yarn run test:coverage';
125
+ case 'npm': return 'npm run test:coverage';
126
+ default: return 'npm run test:coverage';
127
+ }
128
+ }
129
+ /**
130
+ * Get run command prefix for package manager
131
+ */
132
+ export function getRunCommand(packageManager, script) {
133
+ switch (packageManager) {
134
+ case 'bun': return `bun run ${script}`;
135
+ case 'pnpm': return `pnpm ${script}`;
136
+ case 'yarn': return `yarn run ${script}`;
137
+ case 'npm': return `npm run ${script}`;
138
+ default: return `npm run ${script}`;
139
+ }
140
+ }
141
+ /**
142
+ * Detect package manager from package.json packageManager field
143
+ */
144
+ function detectFromPackageJson(cwd) {
145
+ try {
146
+ const packageJsonPath = join(cwd, 'package.json');
147
+ if (!existsSync(packageJsonPath))
148
+ return null;
149
+ const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf8'));
150
+ const pm = packageJson.packageManager;
151
+ if (!pm)
152
+ return null;
153
+ if (pm.startsWith('bun@'))
154
+ return 'bun';
155
+ if (pm.startsWith('pnpm@'))
156
+ return 'pnpm';
157
+ if (pm.startsWith('yarn@'))
158
+ return 'yarn';
159
+ if (pm.startsWith('npm@'))
160
+ return 'npm';
161
+ return null;
162
+ }
163
+ catch {
164
+ return null;
165
+ }
166
+ }
167
+ /**
168
+ * Detect package manager from lockfiles
169
+ * Priority: bun > yarn > npm > pnpm
170
+ * Note: npm preferred over pnpm when both exist (more conservative default)
171
+ */
172
+ function detectFromLockfiles(cwd) {
173
+ // Check both bun.lockb (binary, older) and bun.lock (text, newer)
174
+ const hasBunLock = existsSync(join(cwd, 'bun.lockb')) || existsSync(join(cwd, 'bun.lock'));
175
+ const hasPnpmLock = existsSync(join(cwd, 'pnpm-lock.yaml'));
176
+ const hasYarnLock = existsSync(join(cwd, 'yarn.lock'));
177
+ const hasNpmLock = existsSync(join(cwd, 'package-lock.json'));
178
+ // Priority: bun > yarn > npm > pnpm
179
+ // npm preferred over pnpm when both exist (more conservative default)
180
+ if (hasBunLock)
181
+ return 'bun';
182
+ if (hasYarnLock)
183
+ return 'yarn';
184
+ if (hasNpmLock)
185
+ return 'npm';
186
+ if (hasPnpmLock)
187
+ return 'pnpm';
188
+ return 'npm'; // Default
189
+ }
190
+ /**
191
+ * Detect package manager from package.json and lockfiles
192
+ * Priority:
193
+ * 1. package.json packageManager field (official spec)
194
+ * 2. Lockfile detection (priority: bun > yarn > npm > pnpm)
195
+ * Note: npm preferred over pnpm when both exist (more conservative default)
196
+ */
197
+ export function detectPackageManager(cwd = process.cwd()) {
198
+ return detectFromPackageJson(cwd) ?? detectFromLockfiles(cwd);
199
+ }
200
+ /**
201
+ * Get formatted list of upgrade commands for all package managers
202
+ * Useful for help text where we want to show all options
203
+ */
204
+ export function getAllUpgradeCommands(packageName, scope = 'local') {
205
+ const managers = ['npm', 'pnpm', 'yarn', 'bun'];
206
+ return managers
207
+ .map(pm => getUpgradeCommand(pm, packageName, scope))
208
+ .join(' or\n ');
209
+ }
210
+ //# sourceMappingURL=package-manager-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-manager-commands.js","sourceRoot":"","sources":["../../src/utils/package-manager-commands.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAOjC;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,cAA8B;IAC9D,QAAQ,cAAc,EAAE,CAAC;QACvB,KAAK,KAAK,CAAC,CAAC,OAAO,aAAa,CAAC;QACjC,KAAK,MAAM,CAAC,CAAC,OAAO,gCAAgC,CAAC;QACrD,KAAK,MAAM,CAAC,CAAC,OAAO,gCAAgC,CAAC;QACrD,KAAK,KAAK,CAAC,CAAC,OAAO,QAAQ,CAAC;QAC5B,OAAO,CAAC,CAAC,OAAO,QAAQ,CAAC;IAC3B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,cAA8B;IACtE,QAAQ,cAAc,EAAE,CAAC;QACvB,KAAK,KAAK,CAAC,CAAC,OAAO,aAAa,CAAC;QACjC,KAAK,MAAM,CAAC,CAAC,OAAO,cAAc,CAAC;QACnC,KAAK,MAAM,CAAC,CAAC,OAAO,cAAc,CAAC;QACnC,KAAK,KAAK,CAAC,CAAC,OAAO,aAAa,CAAC;QACjC,OAAO,CAAC,CAAC,OAAO,aAAa,CAAC;IAChC,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,cAA8B,EAAE,QAAgB;IACnF,QAAQ,cAAc,EAAE,CAAC;QACvB,KAAK,KAAK,CAAC,CAAC,OAAO,iBAAiB,QAAQ,EAAE,CAAC;QAC/C,KAAK,MAAM,CAAC,CAAC,OAAO,eAAe,QAAQ,EAAE,CAAC;QAC9C,KAAK,MAAM,CAAC,CAAC,OAAO,kBAAkB,QAAQ,EAAE,CAAC;QACjD,KAAK,KAAK,CAAC,CAAC,OAAO,0BAA0B,QAAQ,EAAE,CAAC;QACxD,OAAO,CAAC,CAAC,OAAO,0BAA0B,QAAQ,EAAE,CAAC;IACvD,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,cAA8B,EAAE,QAAgB;IACtF,QAAQ,cAAc,EAAE,CAAC;QACvB,KAAK,KAAK,CAAC,CAAC,OAAO,oBAAoB,QAAQ,EAAE,CAAC;QAClD,KAAK,MAAM,CAAC,CAAC,OAAO,eAAe,QAAQ,EAAE,CAAC;QAC9C,KAAK,MAAM,CAAC,CAAC,OAAO,mBAAmB,QAAQ,EAAE,CAAC;QAClD,KAAK,KAAK,CAAC,CAAC,OAAO,kBAAkB,QAAQ,EAAE,CAAC;QAChD,OAAO,CAAC,CAAC,OAAO,kBAAkB,QAAQ,EAAE,CAAC;IAC/C,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,cAA8B,EAAE,QAAgB;IAC5E,QAAQ,cAAc,EAAE,CAAC;QACvB,KAAK,KAAK,CAAC,CAAC,OAAO,WAAW,QAAQ,EAAE,CAAC;QACzC,KAAK,MAAM,CAAC,CAAC,OAAO,YAAY,QAAQ,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,CAAC,OAAO,YAAY,QAAQ,EAAE,CAAC;QAC3C,KAAK,KAAK,CAAC,CAAC,OAAO,eAAe,QAAQ,EAAE,CAAC;QAC7C,OAAO,CAAC,CAAC,OAAO,eAAe,QAAQ,EAAE,CAAC;IAC5C,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,cAA8B,EAC9B,WAAmB,EACnB,QAA4B,OAAO;IAEnC,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,uBAAuB,CAAC,cAAc,EAAE,GAAG,WAAW,SAAS,CAAC,CAAC;IAC1E,CAAC;IAED,gBAAgB;IAChB,QAAQ,cAAc,EAAE,CAAC;QACvB,KAAK,KAAK,CAAC,CAAC,OAAO,cAAc,WAAW,EAAE,CAAC;QAC/C,KAAK,MAAM,CAAC,CAAC,OAAO,eAAe,WAAW,EAAE,CAAC;QACjD,KAAK,MAAM,CAAC,CAAC,OAAO,gBAAgB,WAAW,EAAE,CAAC;QAClD,KAAK,KAAK,CAAC,CAAC,OAAO,kBAAkB,WAAW,SAAS,CAAC;QAC1D,OAAO,CAAC,CAAC,OAAO,kBAAkB,WAAW,SAAS,CAAC;IACzD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,cAA8B;IAC5D,QAAQ,cAAc,EAAE,CAAC;QACvB,KAAK,KAAK,CAAC,CAAC,OAAO,eAAe,CAAC;QACnC,KAAK,MAAM,CAAC,CAAC,OAAO,eAAe,CAAC;QACpC,KAAK,MAAM,CAAC,CAAC,OAAO,gBAAgB,CAAC;QACrC,KAAK,KAAK,CAAC,CAAC,OAAO,eAAe,CAAC;QACnC,OAAO,CAAC,CAAC,OAAO,eAAe,CAAC;IAClC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,cAA8B;IAC/D,QAAQ,cAAc,EAAE,CAAC;QACvB,KAAK,KAAK,CAAC,CAAC,OAAO,kBAAkB,CAAC;QACtC,KAAK,MAAM,CAAC,CAAC,OAAO,eAAe,CAAC;QACpC,KAAK,MAAM,CAAC,CAAC,OAAO,mBAAmB,CAAC;QACxC,KAAK,KAAK,CAAC,CAAC,OAAO,kBAAkB,CAAC;QACtC,OAAO,CAAC,CAAC,OAAO,kBAAkB,CAAC;IACrC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,cAA8B;IAC/D,QAAQ,cAAc,EAAE,CAAC;QACvB,KAAK,KAAK,CAAC,CAAC,OAAO,uBAAuB,CAAC;QAC3C,KAAK,MAAM,CAAC,CAAC,OAAO,oBAAoB,CAAC;QACzC,KAAK,MAAM,CAAC,CAAC,OAAO,wBAAwB,CAAC;QAC7C,KAAK,KAAK,CAAC,CAAC,OAAO,uBAAuB,CAAC;QAC3C,OAAO,CAAC,CAAC,OAAO,uBAAuB,CAAC;IAC1C,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,cAA8B,EAAE,MAAc;IAC1E,QAAQ,cAAc,EAAE,CAAC;QACvB,KAAK,KAAK,CAAC,CAAC,OAAO,WAAW,MAAM,EAAE,CAAC;QACvC,KAAK,MAAM,CAAC,CAAC,OAAO,QAAQ,MAAM,EAAE,CAAC;QACrC,KAAK,MAAM,CAAC,CAAC,OAAO,YAAY,MAAM,EAAE,CAAC;QACzC,KAAK,KAAK,CAAC,CAAC,OAAO,WAAW,MAAM,EAAE,CAAC;QACvC,OAAO,CAAC,CAAC,OAAO,WAAW,MAAM,EAAE,CAAC;IACtC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,GAAW;IACxC,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;YAAE,OAAO,IAAI,CAAC;QAE9C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;QACtE,MAAM,EAAE,GAAG,WAAW,CAAC,cAAc,CAAC;QACtC,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QAErB,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC;QACxC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,MAAM,CAAC;QAC1C,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,MAAM,CAAC;QAC1C,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,GAAW;IACtC,kEAAkE;IAClE,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;IAC3F,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAE9D,oCAAoC;IACpC,sEAAsE;IACtE,IAAI,UAAU;QAAE,OAAO,KAAK,CAAC;IAC7B,IAAI,WAAW;QAAE,OAAO,MAAM,CAAC;IAC/B,IAAI,UAAU;QAAE,OAAO,KAAK,CAAC;IAC7B,IAAI,WAAW;QAAE,OAAO,MAAM,CAAC;IAE/B,OAAO,KAAK,CAAC,CAAC,UAAU;AAC1B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IAC9D,OAAO,qBAAqB,CAAC,GAAG,CAAC,IAAI,mBAAmB,CAAC,GAAG,CAAC,CAAC;AAChE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,WAAmB,EAAE,QAA4B,OAAO;IAC5F,MAAM,QAAQ,GAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAClE,OAAO,QAAQ;SACZ,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,iBAAiB,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;SACpD,IAAI,CAAC,UAAU,CAAC,CAAC;AACtB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"secret-scanning.d.ts","sourceRoot":"","sources":["../../src/utils/secret-scanning.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,YAAY,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,kBAAkB,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAKtE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAExE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,GAAE,MAAsB,GAAG,aAAa,EAAE,CAmBtF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,GAAG,GAAE,MAAsB,GAC1B;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,CAoCjD;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,kBAAkB,EACxB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,OAAe,GACvB,UAAU,CA0FZ;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAE/D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,kBAAkB,EACxB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,kBAAkB,GAAE,OAAe,GAClC,IAAI,CAmBN;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAsBpE"}
1
+ {"version":3,"file":"secret-scanning.d.ts","sourceRoot":"","sources":["../../src/utils/secret-scanning.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,YAAY,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,kBAAkB,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAKtE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAExE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,GAAE,MAAsB,GAAG,aAAa,EAAE,CAmBtF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,GAAG,GAAE,MAAsB,GAC1B;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,CAoCjD;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAmDD;;GAEG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,kBAAkB,EACxB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,OAAe,GACvB,UAAU,CA4EZ;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAE/D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,kBAAkB,EACxB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,kBAAkB,GAAE,OAAe,GAClC,IAAI,CAmBN;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAsBpE"}
@@ -80,6 +80,48 @@ export function selectToolsToRun(scanCommand, cwd = process.cwd()) {
80
80
  }
81
81
  return toRun;
82
82
  }
83
+ /**
84
+ * Convert Buffer or string to string, avoiding [object Object] for Buffers
85
+ */
86
+ function toSafeString(value) {
87
+ // Handle string
88
+ if (typeof value === 'string') {
89
+ return value;
90
+ }
91
+ // Handle Buffer
92
+ if (Buffer.isBuffer(value)) {
93
+ return value.toString('utf-8');
94
+ }
95
+ // Handle null/undefined
96
+ if (value === null || value === undefined) {
97
+ return '';
98
+ }
99
+ // Handle objects (including arrays, dates, etc.) - use JSON.stringify to avoid "[object Object]"
100
+ if (typeof value === 'object') {
101
+ try {
102
+ return JSON.stringify(value);
103
+ }
104
+ catch {
105
+ // JSON.stringify failed (circular reference, etc.) - return error indicator
106
+ return '[Unable to stringify object]';
107
+ }
108
+ }
109
+ // Handle primitives explicitly to satisfy SonarQube
110
+ // These all have safe toString() implementations
111
+ if (typeof value === 'number' || typeof value === 'boolean' || typeof value === 'bigint') {
112
+ return String(value);
113
+ }
114
+ // Handle symbol
115
+ if (typeof value === 'symbol') {
116
+ return value.toString();
117
+ }
118
+ // Handle function (edge case - shouldn't normally happen)
119
+ if (typeof value === 'function') {
120
+ return '[Function]';
121
+ }
122
+ // Fallback for any other type (shouldn't happen with current JS types)
123
+ return '[Unknown type]';
124
+ }
83
125
  /**
84
126
  * Run a secret scanning command
85
127
  */
@@ -128,7 +170,7 @@ export function runSecretScan(tool, command, verbose = false) {
128
170
  tool,
129
171
  passed: true,
130
172
  duration,
131
- output: verbose ? result.toString() : undefined,
173
+ output: verbose ? toSafeString(result) : undefined,
132
174
  };
133
175
  }
134
176
  catch (error) {
@@ -136,22 +178,8 @@ export function runSecretScan(tool, command, verbose = false) {
136
178
  if (error && typeof error === 'object' && 'stderr' in error && 'stdout' in error) {
137
179
  // Safely convert stderr/stdout to strings (may be Buffer or string from child_process)
138
180
  // Handle potential undefined/null values before stringification to avoid [object Object]
139
- const stderrValue = error.stderr;
140
- const stdoutValue = error.stdout;
141
- let stderr = '';
142
- if (typeof stderrValue === 'string') {
143
- stderr = stderrValue;
144
- }
145
- else if (stderrValue) {
146
- stderr = String(stderrValue);
147
- }
148
- let stdout = '';
149
- if (typeof stdoutValue === 'string') {
150
- stdout = stdoutValue;
151
- }
152
- else if (stdoutValue) {
153
- stdout = String(stdoutValue);
154
- }
181
+ const stderr = toSafeString(error.stderr);
182
+ const stdout = toSafeString(error.stdout);
155
183
  return {
156
184
  tool,
157
185
  passed: false,