@vibe-validate/cli 0.17.6 → 0.18.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 (88) hide show
  1. package/dist/bin/vibe-validate +4 -0
  2. package/dist/bin/vibe-validate.js +4 -0
  3. package/dist/bin/vibe-validate.js.map +1 -1
  4. package/dist/bin/vv +4 -0
  5. package/dist/bin.js +12 -4
  6. package/dist/bin.js.map +1 -1
  7. package/dist/commands/cleanup.d.ts +4 -1
  8. package/dist/commands/cleanup.d.ts.map +1 -1
  9. package/dist/commands/cleanup.js +168 -122
  10. package/dist/commands/cleanup.js.map +1 -1
  11. package/dist/commands/config.d.ts.map +1 -1
  12. package/dist/commands/config.js +35 -21
  13. package/dist/commands/config.js.map +1 -1
  14. package/dist/commands/create-extractor.d.ts.map +1 -1
  15. package/dist/commands/create-extractor.js +29 -14
  16. package/dist/commands/create-extractor.js.map +1 -1
  17. package/dist/commands/doctor.d.ts.map +1 -1
  18. package/dist/commands/doctor.js +12 -23
  19. package/dist/commands/doctor.js.map +1 -1
  20. package/dist/commands/generate-workflow.d.ts.map +1 -1
  21. package/dist/commands/generate-workflow.js +6 -2
  22. package/dist/commands/generate-workflow.js.map +1 -1
  23. package/dist/commands/history.d.ts.map +1 -1
  24. package/dist/commands/history.js +19 -9
  25. package/dist/commands/history.js.map +1 -1
  26. package/dist/commands/init.d.ts.map +1 -1
  27. package/dist/commands/init.js +3 -1
  28. package/dist/commands/init.js.map +1 -1
  29. package/dist/commands/pre-commit.d.ts.map +1 -1
  30. package/dist/commands/pre-commit.js +3 -1
  31. package/dist/commands/pre-commit.js.map +1 -1
  32. package/dist/commands/run.d.ts.map +1 -1
  33. package/dist/commands/run.js +21 -13
  34. package/dist/commands/run.js.map +1 -1
  35. package/dist/commands/state.d.ts.map +1 -1
  36. package/dist/commands/state.js +11 -6
  37. package/dist/commands/state.js.map +1 -1
  38. package/dist/commands/watch-pr.d.ts +16 -0
  39. package/dist/commands/watch-pr.d.ts.map +1 -1
  40. package/dist/commands/watch-pr.js +574 -320
  41. package/dist/commands/watch-pr.js.map +1 -1
  42. package/dist/schemas/watch-pr-result.schema.d.ts +2071 -0
  43. package/dist/schemas/watch-pr-result.schema.d.ts.map +1 -0
  44. package/dist/schemas/watch-pr-result.schema.js +346 -0
  45. package/dist/schemas/watch-pr-result.schema.js.map +1 -0
  46. package/dist/schemas/watch-pr-schema.d.ts +6 -6
  47. package/dist/services/cache-manager.d.ts +113 -0
  48. package/dist/services/cache-manager.d.ts.map +1 -0
  49. package/dist/services/cache-manager.js +211 -0
  50. package/dist/services/cache-manager.js.map +1 -0
  51. package/dist/services/ci-providers/github-actions.d.ts.map +1 -1
  52. package/dist/services/ci-providers/github-actions.js +10 -16
  53. package/dist/services/ci-providers/github-actions.js.map +1 -1
  54. package/dist/services/external-check-extractor.d.ts +66 -0
  55. package/dist/services/external-check-extractor.d.ts.map +1 -0
  56. package/dist/services/external-check-extractor.js +114 -0
  57. package/dist/services/external-check-extractor.js.map +1 -0
  58. package/dist/services/extraction-mode-detector.d.ts +85 -0
  59. package/dist/services/extraction-mode-detector.d.ts.map +1 -0
  60. package/dist/services/extraction-mode-detector.js +200 -0
  61. package/dist/services/extraction-mode-detector.js.map +1 -0
  62. package/dist/services/github-fetcher.d.ts +234 -0
  63. package/dist/services/github-fetcher.d.ts.map +1 -0
  64. package/dist/services/github-fetcher.js +441 -0
  65. package/dist/services/github-fetcher.js.map +1 -0
  66. package/dist/services/history-summary-builder.d.ts +74 -0
  67. package/dist/services/history-summary-builder.d.ts.map +1 -0
  68. package/dist/services/history-summary-builder.js +199 -0
  69. package/dist/services/history-summary-builder.js.map +1 -0
  70. package/dist/services/watch-pr-orchestrator.d.ts +132 -0
  71. package/dist/services/watch-pr-orchestrator.d.ts.map +1 -0
  72. package/dist/services/watch-pr-orchestrator.js +451 -0
  73. package/dist/services/watch-pr-orchestrator.js.map +1 -0
  74. package/dist/utils/command-name.d.ts +21 -0
  75. package/dist/utils/command-name.d.ts.map +1 -0
  76. package/dist/utils/command-name.js +45 -0
  77. package/dist/utils/command-name.js.map +1 -0
  78. package/dist/utils/pid-lock.d.ts.map +1 -1
  79. package/dist/utils/pid-lock.js +3 -3
  80. package/dist/utils/pid-lock.js.map +1 -1
  81. package/dist/utils/secret-scanning.d.ts.map +1 -1
  82. package/dist/utils/secret-scanning.js +45 -17
  83. package/dist/utils/secret-scanning.js.map +1 -1
  84. package/dist/utils/temp-files.d.ts +1 -2
  85. package/dist/utils/temp-files.d.ts.map +1 -1
  86. package/dist/utils/temp-files.js +4 -4
  87. package/dist/utils/temp-files.js.map +1 -1
  88. package/package.json +8 -8
@@ -0,0 +1,451 @@
1
+ /**
2
+ * WatchPROrchestrator - Coordinate all components to build complete WatchPRResult
3
+ *
4
+ * Responsibilities:
5
+ * - Coordinate data fetching (PR metadata, checks, history, changes)
6
+ * - Extract errors from check logs (matrix + non-matrix modes)
7
+ * - Extract external check details (codecov, SonarCloud, etc.)
8
+ * - Build complete WatchPRResult with validation
9
+ * - Generate intelligent guidance
10
+ * - Handle caching (save/retrieve results)
11
+ * - Select output format (YAML on failure, text on success)
12
+ *
13
+ * @packageDocumentation
14
+ */
15
+ import { CacheManager } from './cache-manager.js';
16
+ import { CodecovExtractor, ExternalExtractorRegistry, SonarCloudExtractor, } from './external-check-extractor.js';
17
+ import { ExtractionModeDetector } from './extraction-mode-detector.js';
18
+ import { GitHubFetcher } from './github-fetcher.js';
19
+ import { HistorySummaryBuilder } from './history-summary-builder.js';
20
+ /**
21
+ * WatchPROrchestrator - Build complete WatchPRResult
22
+ */
23
+ export class WatchPROrchestrator {
24
+ owner;
25
+ repo;
26
+ fetcher;
27
+ historyBuilder;
28
+ extractionDetector;
29
+ externalCheckExtractor;
30
+ cacheManager;
31
+ constructor(owner, repo) {
32
+ this.owner = owner;
33
+ this.repo = repo;
34
+ this.fetcher = new GitHubFetcher(owner, repo);
35
+ this.historyBuilder = new HistorySummaryBuilder(owner, repo);
36
+ this.extractionDetector = new ExtractionModeDetector();
37
+ // Initialize external check extractor registry
38
+ this.externalCheckExtractor = new ExternalExtractorRegistry();
39
+ this.externalCheckExtractor.register(new CodecovExtractor());
40
+ this.externalCheckExtractor.register(new SonarCloudExtractor());
41
+ }
42
+ /**
43
+ * Build complete WatchPRResult
44
+ *
45
+ * @param prNumber - PR number
46
+ * @param options - Options (useCache, forceFetch)
47
+ * @returns Complete WatchPRResult
48
+ */
49
+ // eslint-disable-next-line sonarjs/cognitive-complexity
50
+ async buildResult(prNumber, options = {}) {
51
+ const { useCache = true } = options;
52
+ // Initialize cache manager if caching enabled (for logs only)
53
+ if (useCache && !this.cacheManager) {
54
+ this.cacheManager = new CacheManager(`${this.owner}/${this.repo}`, prNumber);
55
+ }
56
+ // Always fetch fresh PR metadata and checks from GitHub
57
+ // Cache is ONLY used for expensive log downloads, NOT for status
58
+ const prMetadata = await this.fetcher.fetchPRDetails(prNumber);
59
+ // Fetch checks
60
+ const checks = await this.fetcher.fetchChecks(prNumber);
61
+ // Classify checks into GitHub Actions vs external
62
+ const githubActions = [];
63
+ const rawExternalChecks = [];
64
+ for (const check of checks) {
65
+ if (check.type === 'github_action') {
66
+ // GitHub Action check - may have extraction
67
+ if (!check.run_id ||
68
+ !check.workflow ||
69
+ !check.started_at ||
70
+ !check.duration) {
71
+ continue; // Skip invalid checks
72
+ }
73
+ const actionCheck = {
74
+ name: check.name,
75
+ status: check.status,
76
+ conclusion: check.conclusion,
77
+ run_id: check.run_id,
78
+ job_id: check.job_id,
79
+ workflow: check.workflow,
80
+ started_at: check.started_at,
81
+ duration: check.duration,
82
+ };
83
+ // Try to extract errors if check failed
84
+ if (check.conclusion === 'failure' && check.run_id) {
85
+ // Use retry logic to handle GitHub API race condition (Issue #4)
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);
88
+ if (logs) {
89
+ const extraction = await this.extractionDetector.detectAndExtract(actionCheck, logs);
90
+ if (extraction) {
91
+ actionCheck.extraction = extraction;
92
+ }
93
+ // Save logs to cache
94
+ if (this.cacheManager) {
95
+ await this.cacheManager.saveLog(check.run_id, logs);
96
+ if (extraction) {
97
+ await this.cacheManager.saveExtraction(check.run_id, extraction);
98
+ }
99
+ }
100
+ }
101
+ // If logs are null, gracefully continue without extraction
102
+ // No noisy error output (Issue #4 fix)
103
+ }
104
+ githubActions.push(actionCheck);
105
+ }
106
+ else {
107
+ // External check - will extract later
108
+ if (!check.url) {
109
+ continue; // Skip invalid checks
110
+ }
111
+ rawExternalChecks.push({
112
+ name: check.name,
113
+ status: check.status,
114
+ conclusion: check.conclusion,
115
+ url: check.url,
116
+ provider: check.provider,
117
+ });
118
+ }
119
+ }
120
+ // Extract details from external checks (all at once)
121
+ const externalChecks = await this.externalCheckExtractor.extractAll(rawExternalChecks);
122
+ // Order checks: failed first (newspaper philosophy)
123
+ const orderedGitHubActions = this.orderChecks(githubActions);
124
+ const orderedExternalChecks = this.orderExternalChecks(externalChecks);
125
+ // Calculate check counts
126
+ const totalChecks = githubActions.length + externalChecks.length;
127
+ const passedChecks = githubActions.filter((c) => c.conclusion === 'success').length +
128
+ externalChecks.filter((c) => c.conclusion === 'success').length;
129
+ const failedChecks = githubActions.filter((c) => c.conclusion === 'failure').length +
130
+ externalChecks.filter((c) => c.conclusion === 'failure').length;
131
+ const pendingChecks = githubActions.filter((c) => c.status !== 'completed').length +
132
+ externalChecks.filter((c) => c.status !== 'completed').length;
133
+ // Fetch history summary
134
+ const historySummary = await this.historyBuilder.buildSummary(prMetadata.branch);
135
+ // Fetch file changes
136
+ const changes = await this.fetcher.fetchFileChanges(prNumber);
137
+ // Determine overall status
138
+ let status = 'passed';
139
+ if (failedChecks > 0) {
140
+ status = 'failed';
141
+ }
142
+ else if (pendingChecks > 0) {
143
+ status = 'pending';
144
+ }
145
+ // Generate guidance
146
+ const guidance = this.generateGuidance(status, orderedGitHubActions, orderedExternalChecks, prMetadata.mergeable);
147
+ // Build result
148
+ const result = {
149
+ pr: prMetadata,
150
+ status,
151
+ checks: {
152
+ total: totalChecks,
153
+ passed: passedChecks,
154
+ failed: failedChecks,
155
+ pending: pendingChecks,
156
+ history_summary: historySummary.total_runs > 0 ? historySummary : undefined,
157
+ github_actions: orderedGitHubActions,
158
+ external_checks: orderedExternalChecks,
159
+ },
160
+ changes,
161
+ guidance,
162
+ // Note: cache field removed - will be added back when actually needed
163
+ };
164
+ // Note: We do NOT cache the result itself - only logs are cached
165
+ // This ensures PR status is always fresh from GitHub
166
+ return result;
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
+ }
231
+ /**
232
+ * Build result for a specific run ID
233
+ *
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.
236
+ *
237
+ * @param prNumber - PR number
238
+ * @param runId - GitHub run ID
239
+ * @param options - Options (useCache)
240
+ * @returns WatchPRResult with job-level checks
241
+ */
242
+ async buildResultForRun(prNumber, runId, options = {}) {
243
+ const { useCache = false } = options;
244
+ // Initialize cache manager if caching enabled
245
+ if (useCache && !this.cacheManager) {
246
+ this.cacheManager = new CacheManager(`${this.owner}/${this.repo}`, prNumber);
247
+ }
248
+ // Fetch metadata
249
+ const prMetadata = await this.fetcher.fetchPRDetails(prNumber);
250
+ const runDetails = await this.fetcher.fetchRunDetails(runId);
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
255
+ const changes = await this.fetcher.fetchFileChanges(prNumber);
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);
265
+ // Build result
266
+ return {
267
+ pr: prMetadata,
268
+ status,
269
+ checks: {
270
+ total: totalChecks,
271
+ passed: passedChecks,
272
+ failed: failedChecks,
273
+ pending: pendingChecks,
274
+ github_actions: this.orderChecks(actionChecks),
275
+ external_checks: [],
276
+ },
277
+ changes,
278
+ guidance,
279
+ };
280
+ }
281
+ /**
282
+ * Get priority for check ordering (lower is higher priority)
283
+ */
284
+ getCheckPriority(conclusion, status) {
285
+ if (conclusion === 'failure')
286
+ return 0;
287
+ if (status !== 'completed')
288
+ return 1;
289
+ if (conclusion === 'success')
290
+ return 2;
291
+ return 3;
292
+ }
293
+ /**
294
+ * Order checks: failed first, then pending, then passed
295
+ *
296
+ * @param checks - GitHub Action checks
297
+ * @returns Ordered checks
298
+ */
299
+ orderChecks(checks) {
300
+ return checks.sort((a, b) => {
301
+ return this.getCheckPriority(a.conclusion, a.status) - this.getCheckPriority(b.conclusion, b.status);
302
+ });
303
+ }
304
+ /**
305
+ * Order external checks: failed first, then pending, then passed
306
+ *
307
+ * @param checks - External checks
308
+ * @returns Ordered checks
309
+ */
310
+ // eslint-disable-next-line sonarjs/no-identical-functions
311
+ orderExternalChecks(checks) {
312
+ return checks.sort((a, b) => {
313
+ return this.getCheckPriority(a.conclusion, a.status) - this.getCheckPriority(b.conclusion, b.status);
314
+ });
315
+ }
316
+ /**
317
+ * Generate intelligent guidance based on check results
318
+ *
319
+ * @param status - Overall status
320
+ * @param githubActions - GitHub Action checks
321
+ * @param externalChecks - External checks
322
+ * @param mergeable - Is PR mergeable?
323
+ * @returns Guidance with next steps
324
+ */
325
+ generateGuidance(status, githubActions, externalChecks, mergeable) {
326
+ const nextSteps = [];
327
+ if (status === 'failed') {
328
+ // Find failed checks
329
+ const failedGitHubActions = githubActions.filter((c) => c.conclusion === 'failure');
330
+ const failedExternalChecks = externalChecks.filter((c) => c.conclusion === 'failure');
331
+ // Add next steps for failed GitHub Actions
332
+ for (const check of failedGitHubActions) {
333
+ nextSteps.push({
334
+ action: `Fix ${check.name} failure`,
335
+ url: `https://github.com/${this.owner}/${this.repo}/actions/runs/${check.run_id}`,
336
+ severity: 'error',
337
+ reason: check.extraction
338
+ ? `${check.extraction.totalErrors} error(s) detected`
339
+ : 'Check failed',
340
+ });
341
+ }
342
+ // Add next steps for failed external checks
343
+ for (const check of failedExternalChecks) {
344
+ nextSteps.push({
345
+ action: `Fix ${check.name} failure`,
346
+ url: check.url,
347
+ severity: check.extracted?.severity ?? 'error',
348
+ reason: check.extracted?.summary ?? 'Check failed',
349
+ });
350
+ }
351
+ return {
352
+ status: 'failed',
353
+ blocking: !mergeable,
354
+ severity: 'error',
355
+ summary: `${failedGitHubActions.length + failedExternalChecks.length} check(s) failed`,
356
+ next_steps: nextSteps,
357
+ };
358
+ }
359
+ if (status === 'pending') {
360
+ return {
361
+ status: 'pending',
362
+ blocking: false,
363
+ severity: 'info',
364
+ summary: 'Checks are still running',
365
+ next_steps: [
366
+ {
367
+ action: 'Wait for checks to complete',
368
+ severity: 'info',
369
+ },
370
+ ],
371
+ };
372
+ }
373
+ // Passed
374
+ return {
375
+ status: 'passed',
376
+ blocking: false,
377
+ severity: 'info',
378
+ summary: 'All checks passed',
379
+ next_steps: mergeable
380
+ ? [
381
+ {
382
+ action: 'Ready to merge',
383
+ severity: 'info',
384
+ },
385
+ ]
386
+ : [
387
+ {
388
+ action: 'Resolve merge conflicts',
389
+ severity: 'warning',
390
+ reason: 'PR is not mergeable',
391
+ },
392
+ ],
393
+ };
394
+ }
395
+ // buildCacheInfo() removed - cache field will be added back when actually needed
396
+ /**
397
+ * Fetch logs with retry logic for race conditions
398
+ *
399
+ * When GitHub marks a check as complete, logs may not be immediately available.
400
+ * This method retries with exponential backoff to handle the race condition.
401
+ *
402
+ * Retry schedule: 2s, 4s, 8s (total 3 attempts over ~14 seconds)
403
+ *
404
+ * @param runId - GitHub run ID
405
+ * @param jobId - GitHub job ID (optional, for matrix strategy jobs)
406
+ * @param maxRetries - Maximum number of retry attempts (default: 3)
407
+ * @returns Log content, or null if all retries failed
408
+ */
409
+ async fetchLogsWithRetry(runId, jobId, maxRetries = 3) {
410
+ for (let attempt = 1; attempt <= maxRetries; attempt++) {
411
+ try {
412
+ return await this.fetcher.fetchRunLogs(runId, jobId);
413
+ }
414
+ catch {
415
+ // Intentionally suppress error (Issue #4 fix: no noisy output)
416
+ // If this was the last attempt, break without sleeping
417
+ if (attempt === maxRetries) {
418
+ break;
419
+ }
420
+ // Exponential backoff: 2s, 4s, 8s
421
+ const delayMs = Math.pow(2, attempt) * 1000;
422
+ await new Promise((resolve) => setTimeout(resolve, delayMs));
423
+ }
424
+ }
425
+ // All retries failed - return null (graceful degradation)
426
+ // Logs can be inspected with debug mode if needed
427
+ return null;
428
+ }
429
+ /**
430
+ * Fetch all workflow runs for a PR (for --history flag)
431
+ *
432
+ * @param prNumber - PR number
433
+ * @returns List of workflow runs with basic metadata
434
+ */
435
+ async fetchRunsForPR(prNumber) {
436
+ return await this.fetcher.fetchRunsForPR(prNumber);
437
+ }
438
+ /**
439
+ * Determine if output should be YAML format
440
+ *
441
+ * Auto-YAML on failure (consistent with validate command)
442
+ *
443
+ * @param status - Overall status
444
+ * @param forceYAML - Force YAML output
445
+ * @returns True if should output YAML
446
+ */
447
+ shouldOutputYAML(status, forceYAML) {
448
+ return forceYAML || status === 'failed';
449
+ }
450
+ }
451
+ //# sourceMappingURL=watch-pr-orchestrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch-pr-orchestrator.js","sourceRoot":"","sources":["../../src/services/watch-pr-orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAaH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE;;GAEG;AACH,MAAM,OAAO,mBAAmB;IAQX;IACA;IARF,OAAO,CAAgB;IACvB,cAAc,CAAwB;IACtC,kBAAkB,CAAyB;IAC3C,sBAAsB,CAA4B;IAC3D,YAAY,CAAgB;IAEpC,YACmB,KAAa,EACb,IAAY;QADZ,UAAK,GAAL,KAAK,CAAQ;QACb,SAAI,GAAJ,IAAI,CAAQ;QAE7B,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,cAAc,GAAG,IAAI,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,kBAAkB,GAAG,IAAI,sBAAsB,EAAE,CAAC;QAEvD,+CAA+C;QAC/C,IAAI,CAAC,sBAAsB,GAAG,IAAI,yBAAyB,EAAE,CAAC;QAC9D,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;OAMG;IACH,wDAAwD;IACxD,KAAK,CAAC,WAAW,CACf,QAAgB,EAChB,UAAwD,EAAE;QAE1D,MAAM,EAAE,QAAQ,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;QAEpC,8DAA8D;QAC9D,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACnC,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC/E,CAAC;QAED,wDAAwD;QACxD,iEAAiE;QACjE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAE/D,eAAe;QACf,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAExD,kDAAkD;QAClD,MAAM,aAAa,GAAwB,EAAE,CAAC;QAC9C,MAAM,iBAAiB,GAAoB,EAAE,CAAC;QAE9C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBACnC,4CAA4C;gBAC5C,IACE,CAAC,KAAK,CAAC,MAAM;oBACb,CAAC,KAAK,CAAC,QAAQ;oBACf,CAAC,KAAK,CAAC,UAAU;oBACjB,CAAC,KAAK,CAAC,QAAQ,EACf,CAAC;oBACD,SAAS,CAAC,sBAAsB;gBAClC,CAAC;gBAED,MAAM,WAAW,GAAsB;oBACrC,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;iBACzB,CAAC;gBAEF,wCAAwC;gBACxC,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;oBACnD,iEAAiE;oBACjE,gEAAgE;oBAChE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;oBACvE,IAAI,IAAI,EAAE,CAAC;wBACT,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;wBACrF,IAAI,UAAU,EAAE,CAAC;4BACf,WAAW,CAAC,UAAU,GAAG,UAAU,CAAC;wBACtC,CAAC;wBAED,qBAAqB;wBACrB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;4BACtB,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;4BACpD,IAAI,UAAU,EAAE,CAAC;gCACf,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;4BACnE,CAAC;wBACH,CAAC;oBACH,CAAC;oBACD,2DAA2D;oBAC3D,uCAAuC;gBACzC,CAAC;gBAED,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,sCAAsC;gBACtC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;oBACf,SAAS,CAAC,sBAAsB;gBAClC,CAAC;gBAED,iBAAiB,CAAC,IAAI,CAAC;oBACrB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,GAAG,EAAE,KAAK,CAAC,GAAG;oBACd,QAAQ,EAAE,KAAK,CAAC,QAAQ;iBACzB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,qDAAqD;QACrD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;QAEvF,oDAAoD;QACpD,MAAM,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAC7D,MAAM,qBAAqB,GAAG,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;QAEvE,yBAAyB;QACzB,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;QACjE,MAAM,YAAY,GAChB,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,MAAM;YAC9D,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;QAClE,MAAM,YAAY,GAChB,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,MAAM;YAC9D,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;QAClE,MAAM,aAAa,GACjB,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM;YAC5D,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM,CAAC;QAEhE,wBAAwB;QACxB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAEjF,qBAAqB;QACrB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAE9D,2BAA2B;QAC3B,IAAI,MAAM,GAAa,QAAQ,CAAC;QAChC,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,GAAG,QAAQ,CAAC;QACpB,CAAC;aAAM,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,GAAG,SAAS,CAAC;QACrB,CAAC;QAED,oBAAoB;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CACpC,MAAM,EACN,oBAAoB,EACpB,qBAAqB,EACrB,UAAU,CAAC,SAAS,CACrB,CAAC;QAEF,eAAe;QACf,MAAM,MAAM,GAAkB;YAC5B,EAAE,EAAE,UAAU;YACd,MAAM;YACN,MAAM,EAAE;gBACN,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE,YAAY;gBACpB,MAAM,EAAE,YAAY;gBACpB,OAAO,EAAE,aAAa;gBACtB,eAAe,EAAE,cAAc,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;gBAC3E,cAAc,EAAE,oBAAoB;gBACpC,eAAe,EAAE,qBAAqB;aACvC;YACD,OAAO;YACP,QAAQ;YACR,sEAAsE;SACvE,CAAC;QAEF,iEAAiE;QACjE,qDAAqD;QAErD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB,CAC7B,GAA6I,EAC7I,KAAa,EACb,YAAoB;QAEpB,qBAAqB;QACrB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACrF,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;QAE9D,mBAAmB;QACnB,IAAI,SAAS,GAAgB,QAAQ,CAAC;QACtC,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAC/B,SAAS,GAAG,WAAW,CAAC;QAC1B,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YACxC,SAAS,GAAG,aAAa,CAAC;QAC5B,CAAC;QAED,MAAM,WAAW,GAAsB;YACrC,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,MAAM,EAAE,SAAS;YACjB,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAE,GAAG,CAAC,UAA8B,CAAC,CAAC,CAAC,SAAS;YAC5E,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,uDAAuD;YACvE,QAAQ,EAAE,YAAY;YACtB,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,QAAQ,EAAE,GAAG,YAAY,GAAG;SAC7B,CAAC;QAEF,kCAAkC;QAClC,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAC/D,MAAM,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,qBAAqB,CAAC,KAAwB,EAAE,KAAa,EAAE,KAAc;QACzF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC/E,IAAI,UAAU,EAAE,CAAC;YACf,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;QAChC,CAAC;QAED,gBAAgB;QAChB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC7C,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,sBAAsB,CAAC,MAA2B;QACxD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC;QAChE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,aAAa,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;QAEzF,IAAI,UAAU;YAAE,OAAO,QAAQ,CAAC;QAChC,IAAI,UAAU;YAAE,OAAO,SAAS,CAAC;QACjC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,iBAAiB,CACrB,QAAgB,EAChB,KAAa,EACb,UAAkC,EAAE;QAEpC,MAAM,EAAE,QAAQ,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;QAErC,8CAA8C;QAC9C,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACnC,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC/E,CAAC;QAED,iBAAiB;QACjB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAEpD,yBAAyB;QACzB,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CACzE,CAAC;QAEF,qBAAqB;QACrB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAE9D,mBAAmB;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;QAEzD,mBAAmB;QACnB,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC;QACxC,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;QACjF,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;QACjF,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,aAAa,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;QAE3G,oBAAoB;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;QAEvF,eAAe;QACf,OAAO;YACL,EAAE,EAAE,UAAU;YACd,MAAM;YACN,MAAM,EAAE;gBACN,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE,YAAY;gBACpB,MAAM,EAAE,YAAY;gBACpB,OAAO,EAAE,aAAa;gBACtB,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;gBAC9C,eAAe,EAAE,EAAE;aACpB;YACD,OAAO;YACP,QAAQ;SACT,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,UAA4B,EAAE,MAAe;QACpE,IAAI,UAAU,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC;QACvC,IAAI,MAAM,KAAK,WAAW;YAAE,OAAO,CAAC,CAAC;QACrC,IAAI,UAAU,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC;QACvC,OAAO,CAAC,CAAC;IACX,CAAC;IAED;;;;;OAKG;IACK,WAAW,CAAC,MAA2B;QAC7C,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QACvG,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,0DAA0D;IAClD,mBAAmB,CAAC,MAAuB;QACjD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QACvG,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACK,gBAAgB,CACtB,MAAuC,EACvC,aAAkC,EAClC,cAA+B,EAC/B,SAAkB;QAElB,MAAM,SAAS,GAAe,EAAE,CAAC;QAEjC,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,qBAAqB;YACrB,MAAM,mBAAmB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC;YACpF,MAAM,oBAAoB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC;YAEtF,2CAA2C;YAC3C,KAAK,MAAM,KAAK,IAAI,mBAAmB,EAAE,CAAC;gBACxC,SAAS,CAAC,IAAI,CAAC;oBACb,MAAM,EAAE,OAAO,KAAK,CAAC,IAAI,UAAU;oBACnC,GAAG,EAAE,sBAAsB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,iBAAiB,KAAK,CAAC,MAAM,EAAE;oBACjF,QAAQ,EAAE,OAAO;oBACjB,MAAM,EAAE,KAAK,CAAC,UAAU;wBACtB,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,oBAAoB;wBACrD,CAAC,CAAC,cAAc;iBACnB,CAAC,CAAC;YACL,CAAC;YAED,4CAA4C;YAC5C,KAAK,MAAM,KAAK,IAAI,oBAAoB,EAAE,CAAC;gBACzC,SAAS,CAAC,IAAI,CAAC;oBACb,MAAM,EAAE,OAAO,KAAK,CAAC,IAAI,UAAU;oBACnC,GAAG,EAAE,KAAK,CAAC,GAAG;oBACd,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,QAAQ,IAAI,OAAO;oBAC9C,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,IAAI,cAAc;iBACnD,CAAC,CAAC;YACL,CAAC;YAED,OAAO;gBACL,MAAM,EAAE,QAAQ;gBAChB,QAAQ,EAAE,CAAC,SAAS;gBACpB,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,GAAG,mBAAmB,CAAC,MAAM,GAAG,oBAAoB,CAAC,MAAM,kBAAkB;gBACtF,UAAU,EAAE,SAAS;aACtB,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,0BAA0B;gBACnC,UAAU,EAAE;oBACV;wBACE,MAAM,EAAE,6BAA6B;wBACrC,QAAQ,EAAE,MAAM;qBACjB;iBACF;aACF,CAAC;QACJ,CAAC;QAED,SAAS;QACT,OAAO;YACL,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,mBAAmB;YAC5B,UAAU,EAAE,SAAS;gBACnB,CAAC,CAAC;oBACE;wBACE,MAAM,EAAE,gBAAgB;wBACxB,QAAQ,EAAE,MAAM;qBACjB;iBACF;gBACH,CAAC,CAAC;oBACE;wBACE,MAAM,EAAE,yBAAyB;wBACjC,QAAQ,EAAE,SAAS;wBACnB,MAAM,EAAE,qBAAqB;qBAC9B;iBACF;SACN,CAAC;IACJ,CAAC;IAED,iFAAiF;IAEjF;;;;;;;;;;;;OAYG;IACK,KAAK,CAAC,kBAAkB,CAAC,KAAa,EAAE,KAAc,EAAE,UAAU,GAAG,CAAC;QAC5E,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;YACvD,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACvD,CAAC;YAAC,MAAM,CAAC;gBACP,+DAA+D;gBAC/D,uDAAuD;gBACvD,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;oBAC3B,MAAM;gBACR,CAAC;gBAED,kCAAkC;gBAClC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;gBAC5C,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QAED,0DAA0D;QAC1D,kDAAkD;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAAC,QAAgB;QAQnC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC;IAED;;;;;;;;OAQG;IACH,gBAAgB,CAAC,MAAc,EAAE,SAAkB;QACjD,OAAO,SAAS,IAAI,MAAM,KAAK,QAAQ,CAAC;IAC1C,CAAC;CACF"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Command name detection utilities
3
+ *
4
+ * Detects the actual command name used to invoke vibe-validate (e.g., "vv" vs "vibe-validate")
5
+ * so error messages and usage examples reflect what the user actually typed.
6
+ */
7
+ /**
8
+ * Get the command name that was used to invoke the CLI
9
+ *
10
+ * @returns The command name (e.g., "vv", "vibe-validate", or fallback "vibe-validate")
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * const cmd = getCommandName();
15
+ * console.error(`Usage: ${cmd} watch-pr <pr-number>`);
16
+ * // If invoked with "vv": "Usage: vv watch-pr <pr-number>"
17
+ * // If invoked with "vibe-validate": "Usage: vibe-validate watch-pr <pr-number>"
18
+ * ```
19
+ */
20
+ export declare function getCommandName(): string;
21
+ //# sourceMappingURL=command-name.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-name.d.ts","sourceRoot":"","sources":["../../src/utils/command-name.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,IAAI,MAAM,CA4BvC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Command name detection utilities
3
+ *
4
+ * Detects the actual command name used to invoke vibe-validate (e.g., "vv" vs "vibe-validate")
5
+ * so error messages and usage examples reflect what the user actually typed.
6
+ */
7
+ import { basename } from 'node:path';
8
+ /**
9
+ * Get the command name that was used to invoke the CLI
10
+ *
11
+ * @returns The command name (e.g., "vv", "vibe-validate", or fallback "vibe-validate")
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * const cmd = getCommandName();
16
+ * console.error(`Usage: ${cmd} watch-pr <pr-number>`);
17
+ * // If invoked with "vv": "Usage: vv watch-pr <pr-number>"
18
+ * // If invoked with "vibe-validate": "Usage: vibe-validate watch-pr <pr-number>"
19
+ * ```
20
+ */
21
+ export function getCommandName() {
22
+ // Check if the wrapper passed the command name via environment variable
23
+ // This is set by the smart wrapper (bin/vibe-validate.ts) when it spawns bin.js
24
+ const envCommandName = process.env.VV_COMMAND_NAME;
25
+ if (envCommandName === 'vv' || envCommandName === 'vibe-validate') {
26
+ return envCommandName;
27
+ }
28
+ // Fallback: extract from process.argv[1] (for direct invocation or dev mode)
29
+ // process.argv[0] is node executable
30
+ // process.argv[1] is the script being executed (e.g., /path/to/vv or /path/to/vibe-validate)
31
+ const scriptPath = process.argv[1];
32
+ if (!scriptPath) {
33
+ return 'vibe-validate'; // Fallback
34
+ }
35
+ // Extract basename (e.g., "vv" from "/usr/local/bin/vv")
36
+ const commandName = basename(scriptPath);
37
+ // Handle common cases: vv, vibe-validate, or .js/.ts extensions in dev mode
38
+ if (commandName === 'vv' || commandName === 'vibe-validate') {
39
+ return commandName;
40
+ }
41
+ // Dev mode: might be bin.js, bin.ts, vibe-validate.js, etc.
42
+ // Fall back to "vibe-validate" for consistency
43
+ return 'vibe-validate';
44
+ }
45
+ //# sourceMappingURL=command-name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-name.js","sourceRoot":"","sources":["../../src/utils/command-name.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,cAAc;IAC5B,wEAAwE;IACxE,gFAAgF;IAChF,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IACnD,IAAI,cAAc,KAAK,IAAI,IAAI,cAAc,KAAK,eAAe,EAAE,CAAC;QAClE,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,6EAA6E;IAC7E,qCAAqC;IACrC,6FAA6F;IAC7F,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEnC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,eAAe,CAAC,CAAC,WAAW;IACrC,CAAC;IAED,yDAAyD;IACzD,MAAM,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IAEzC,4EAA4E;IAC5E,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,eAAe,EAAE,CAAC;QAC5D,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,4DAA4D;IAC5D,+CAA+C;IAC/C,OAAO,eAAe,CAAC;AACzB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pid-lock.d.ts","sourceRoot":"","sources":["../../src/utils/pid-lock.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,kCAAkC;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,6CAA6C;IAC7C,QAAQ,EAAE,OAAO,CAAC;IAClB,wBAAwB;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,QAAQ,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,KAAK,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAChC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA8DD;;;;;;;;;;;GAWG;AACH,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,UAAU,CAAC,CAyCrB;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIjE;AAED;;;;;;;;;GASG;AACH,wBAAsB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAuBtG;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EACjB,cAAc,GAAE,MAAY,EAC5B,cAAc,GAAE,MAAa,EAC7B,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,QAAQ,GAAG,IAAI,CAAA;CAAE,CAAC,CA6B/E"}
1
+ {"version":3,"file":"pid-lock.d.ts","sourceRoot":"","sources":["../../src/utils/pid-lock.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,kCAAkC;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,6CAA6C;IAC7C,QAAQ,EAAE,OAAO,CAAC;IAClB,wBAAwB;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,QAAQ,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,KAAK,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAChC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA8DD;;;;;;;;;;;GAWG;AACH,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,UAAU,CAAC,CAyCrB;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIjE;AAED;;;;;;;;;GASG;AACH,wBAAsB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAuBtG;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EACjB,cAAc,GAAE,MAAY,EAC5B,cAAc,GAAE,MAAa,EAC7B,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,QAAQ,GAAG,IAAI,CAAA;CAAE,CAAC,CA6B/E"}
@@ -5,8 +5,8 @@
5
5
  * Cross-platform (Node.js), works on Windows, macOS, Linux.
6
6
  */
7
7
  import { readFileSync, writeFileSync, unlinkSync, existsSync } from 'node:fs';
8
- import { tmpdir } from 'node:os';
9
8
  import { join } from 'node:path';
9
+ import { normalizedTmpdir } from '@vibe-validate/utils';
10
10
  /**
11
11
  * Encode directory path for use in lock file name
12
12
  *
@@ -40,11 +40,11 @@ function getLockFilePath(directory, options = {}) {
40
40
  throw new Error('projectId is required when scope is "project"');
41
41
  }
42
42
  // Project-scoped: /tmp/vibe-validate-project-{projectId}.lock
43
- return join(tmpdir(), `vibe-validate-project-${options.projectId}.lock`);
43
+ return join(normalizedTmpdir(), `vibe-validate-project-${options.projectId}.lock`);
44
44
  }
45
45
  // Directory-scoped (default): /tmp/vibe-validate-{encoded-dir}.lock
46
46
  const encoded = encodeDirectoryPath(directory);
47
- return join(tmpdir(), `vibe-validate-${encoded}.lock`);
47
+ return join(normalizedTmpdir(), `vibe-validate-${encoded}.lock`);
48
48
  }
49
49
  /**
50
50
  * Check if a process is running
@@ -1 +1 @@
1
- {"version":3,"file":"pid-lock.js","sourceRoot":"","sources":["../../src/utils/pid-lock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pid-lock.js","sourceRoot":"","sources":["../../src/utils/pid-lock.ts"],"names":[],"mappings":"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"}
@@ -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"}