@vibe-validate/cli 0.17.6-rc.2 → 0.18.0-rc.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 (89) 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/commands/cleanup.d.ts.map +1 -1
  6. package/dist/commands/cleanup.js +5 -2
  7. package/dist/commands/cleanup.js.map +1 -1
  8. package/dist/commands/config.d.ts.map +1 -1
  9. package/dist/commands/config.js +3 -1
  10. package/dist/commands/config.js.map +1 -1
  11. package/dist/commands/create-extractor.d.ts.map +1 -1
  12. package/dist/commands/create-extractor.js +3 -1
  13. package/dist/commands/create-extractor.js.map +1 -1
  14. package/dist/commands/doctor.d.ts.map +1 -1
  15. package/dist/commands/doctor.js +11 -5
  16. package/dist/commands/doctor.js.map +1 -1
  17. package/dist/commands/generate-workflow.d.ts.map +1 -1
  18. package/dist/commands/generate-workflow.js +6 -2
  19. package/dist/commands/generate-workflow.js.map +1 -1
  20. package/dist/commands/history.d.ts.map +1 -1
  21. package/dist/commands/history.js +23 -13
  22. package/dist/commands/history.js.map +1 -1
  23. package/dist/commands/init.d.ts.map +1 -1
  24. package/dist/commands/init.js +3 -1
  25. package/dist/commands/init.js.map +1 -1
  26. package/dist/commands/pre-commit.d.ts.map +1 -1
  27. package/dist/commands/pre-commit.js +5 -2
  28. package/dist/commands/pre-commit.js.map +1 -1
  29. package/dist/commands/run.d.ts.map +1 -1
  30. package/dist/commands/run.js +12 -10
  31. package/dist/commands/run.js.map +1 -1
  32. package/dist/commands/state.d.ts.map +1 -1
  33. package/dist/commands/state.js +15 -10
  34. package/dist/commands/state.js.map +1 -1
  35. package/dist/commands/sync-check.js +5 -5
  36. package/dist/commands/sync-check.js.map +1 -1
  37. package/dist/commands/watch-pr.d.ts +16 -0
  38. package/dist/commands/watch-pr.d.ts.map +1 -1
  39. package/dist/commands/watch-pr.js +572 -318
  40. package/dist/commands/watch-pr.js.map +1 -1
  41. package/dist/schemas/watch-pr-result.schema.d.ts +2010 -0
  42. package/dist/schemas/watch-pr-result.schema.d.ts.map +1 -0
  43. package/dist/schemas/watch-pr-result.schema.js +335 -0
  44. package/dist/schemas/watch-pr-result.schema.js.map +1 -0
  45. package/dist/schemas/watch-pr-schema.d.ts +6 -6
  46. package/dist/services/cache-manager.d.ts +113 -0
  47. package/dist/services/cache-manager.d.ts.map +1 -0
  48. package/dist/services/cache-manager.js +211 -0
  49. package/dist/services/cache-manager.js.map +1 -0
  50. package/dist/services/ci-providers/github-actions.d.ts.map +1 -1
  51. package/dist/services/ci-providers/github-actions.js +10 -16
  52. package/dist/services/ci-providers/github-actions.js.map +1 -1
  53. package/dist/services/external-check-extractor.d.ts +66 -0
  54. package/dist/services/external-check-extractor.d.ts.map +1 -0
  55. package/dist/services/external-check-extractor.js +114 -0
  56. package/dist/services/external-check-extractor.js.map +1 -0
  57. package/dist/services/extraction-mode-detector.d.ts +85 -0
  58. package/dist/services/extraction-mode-detector.d.ts.map +1 -0
  59. package/dist/services/extraction-mode-detector.js +200 -0
  60. package/dist/services/extraction-mode-detector.js.map +1 -0
  61. package/dist/services/github-fetcher.d.ts +210 -0
  62. package/dist/services/github-fetcher.d.ts.map +1 -0
  63. package/dist/services/github-fetcher.js +412 -0
  64. package/dist/services/github-fetcher.js.map +1 -0
  65. package/dist/services/history-summary-builder.d.ts +74 -0
  66. package/dist/services/history-summary-builder.d.ts.map +1 -0
  67. package/dist/services/history-summary-builder.js +199 -0
  68. package/dist/services/history-summary-builder.js.map +1 -0
  69. package/dist/services/watch-pr-orchestrator.d.ts +119 -0
  70. package/dist/services/watch-pr-orchestrator.d.ts.map +1 -0
  71. package/dist/services/watch-pr-orchestrator.js +420 -0
  72. package/dist/services/watch-pr-orchestrator.js.map +1 -0
  73. package/dist/utils/command-name.d.ts +21 -0
  74. package/dist/utils/command-name.d.ts.map +1 -0
  75. package/dist/utils/command-name.js +45 -0
  76. package/dist/utils/command-name.js.map +1 -0
  77. package/dist/utils/pid-lock.d.ts.map +1 -1
  78. package/dist/utils/pid-lock.js +3 -3
  79. package/dist/utils/pid-lock.js.map +1 -1
  80. package/dist/utils/secret-scanning.d.ts +1 -1
  81. package/dist/utils/secret-scanning.d.ts.map +1 -1
  82. package/dist/utils/secret-scanning.js +32 -4
  83. package/dist/utils/secret-scanning.js.map +1 -1
  84. package/dist/utils/temp-files.d.ts.map +1 -1
  85. package/dist/utils/temp-files.js +2 -2
  86. package/dist/utils/temp-files.js.map +1 -1
  87. package/dist/utils/validate-workflow.js +7 -7
  88. package/dist/utils/validate-workflow.js.map +1 -1
  89. package/package.json +7 -7
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch-pr-result.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/watch-pr-result.schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,335 @@
1
+ /**
2
+ * Zod Schema for Watch PR Results
3
+ *
4
+ * CRITICAL PROJECT REQUIREMENT: All YAML-serializable types MUST be Zod schemas.
5
+ * Use z.infer<> to derive TypeScript types. Manual interfaces only for non-serializable data.
6
+ *
7
+ * This schema defines the complete structure of watch-pr command output,
8
+ * enabling runtime validation and JSON Schema generation.
9
+ *
10
+ * Output follows "Newspaper Philosophy" ordering: most important info first.
11
+ *
12
+ * @packageDocumentation
13
+ */
14
+ import { ErrorExtractorResultSchema } from '@vibe-validate/extractors';
15
+ import { z } from 'zod';
16
+ // ============================================================================
17
+ // Enums
18
+ // ============================================================================
19
+ /**
20
+ * Check Status Enum
21
+ *
22
+ * GitHub check run status
23
+ */
24
+ export const CheckStatusSchema = z.enum(['queued', 'in_progress', 'completed']);
25
+ /**
26
+ * Check Conclusion Enum
27
+ *
28
+ * GitHub check run conclusion (present when status is 'completed')
29
+ */
30
+ export const CheckConclusionSchema = z.enum([
31
+ 'success',
32
+ 'failure',
33
+ 'neutral',
34
+ 'cancelled',
35
+ 'skipped',
36
+ 'timed_out',
37
+ 'action_required',
38
+ ]);
39
+ /**
40
+ * Merge State Status Enum
41
+ *
42
+ * GitHub PR merge state status
43
+ */
44
+ export const MergeStateStatusSchema = z.enum([
45
+ 'BEHIND',
46
+ 'BLOCKED',
47
+ 'CLEAN',
48
+ 'DIRTY',
49
+ 'DRAFT',
50
+ 'HAS_HOOKS',
51
+ 'UNKNOWN',
52
+ 'UNSTABLE',
53
+ ]);
54
+ /**
55
+ * Severity Enum
56
+ *
57
+ * Severity level for guidance and external checks
58
+ */
59
+ export const SeveritySchema = z.enum(['error', 'warning', 'info']);
60
+ // ============================================================================
61
+ // PR Context Schemas
62
+ // ============================================================================
63
+ /**
64
+ * Linked Issue Schema
65
+ *
66
+ * GitHub issue linked to the PR (via closing keywords or manually)
67
+ */
68
+ export const LinkedIssueSchema = z.object({
69
+ /** Issue number */
70
+ number: z.number().int().positive(),
71
+ /** Issue title */
72
+ title: z.string(),
73
+ /** Issue URL */
74
+ url: z.string().url(),
75
+ });
76
+ /**
77
+ * PR Metadata Schema
78
+ *
79
+ * Complete PR context including metadata, labels, and linked issues
80
+ */
81
+ export const PRMetadataSchema = z.object({
82
+ /** PR number */
83
+ number: z.number().int().positive(),
84
+ /** PR title */
85
+ title: z.string(),
86
+ /** PR URL */
87
+ url: z.string().url(),
88
+ /** Head branch name */
89
+ branch: z.string(),
90
+ /** Base branch name (usually 'main' or 'develop') */
91
+ base_branch: z.string(),
92
+ /** PR author username */
93
+ author: z.string(),
94
+ /** Is this a draft PR? */
95
+ draft: z.boolean(),
96
+ /** Is the PR mergeable? */
97
+ mergeable: z.boolean(),
98
+ /** Merge state status (CLEAN, UNSTABLE, BLOCKED, etc.) */
99
+ merge_state_status: MergeStateStatusSchema,
100
+ /** PR labels */
101
+ labels: z.array(z.string()),
102
+ /** Issues linked to this PR (via closing keywords) */
103
+ linked_issues: z.array(LinkedIssueSchema).optional(),
104
+ });
105
+ // ============================================================================
106
+ // Check Schemas
107
+ // ============================================================================
108
+ /**
109
+ * GitHub Actions Check Schema
110
+ *
111
+ * Check run from GitHub Actions workflow.
112
+ * Includes run_id for drilling down with `gh run view`.
113
+ * May include extraction (from matrix or non-matrix mode).
114
+ */
115
+ export const GitHubActionCheckSchema = z.object({
116
+ /** Check name */
117
+ name: z.string(),
118
+ /** Check status (queued, in_progress, completed) */
119
+ status: CheckStatusSchema,
120
+ /** Check conclusion (present when completed) */
121
+ conclusion: CheckConclusionSchema.optional(),
122
+ /** GitHub run ID for this check */
123
+ run_id: z.number().int().positive(),
124
+ /** Workflow name */
125
+ workflow: z.string(),
126
+ /** When the check started (ISO 8601) */
127
+ started_at: z.string().datetime(),
128
+ /** Human-readable duration (e.g., "2m15s") */
129
+ duration: z.string(),
130
+ /** Local path to cached log file (if cached) */
131
+ log_file: z.string().optional(),
132
+ /**
133
+ * Extraction result (CRITICAL: NEW FEATURE)
134
+ *
135
+ * Errors extracted from check logs using one of two modes:
136
+ * - Matrix mode: Parsed from validate YAML output, passed through faithfully
137
+ * - Non-matrix mode: Extracted from raw test output using extractors
138
+ *
139
+ * Both modes produce ErrorExtractorResult schema (from @vibe-validate/extractors)
140
+ */
141
+ extraction: ErrorExtractorResultSchema.optional(),
142
+ });
143
+ /**
144
+ * External Check Details Schema
145
+ *
146
+ * Details extracted from external checks (codecov, SonarCloud, etc.)
147
+ */
148
+ export const ExternalCheckDetailsSchema = z.object({
149
+ /** Human-readable summary of the check result */
150
+ summary: z.string(),
151
+ /** Additional details (provider-specific) */
152
+ details: z.record(z.any()).optional(),
153
+ /** Severity level */
154
+ severity: SeveritySchema.optional(),
155
+ });
156
+ /**
157
+ * External Check Schema
158
+ *
159
+ * Status check from external provider (codecov, SonarCloud, etc.)
160
+ * These don't have GitHub run IDs, only detailsUrl.
161
+ */
162
+ export const ExternalCheckSchema = z.object({
163
+ /** Check name (e.g., "codecov/patch", "SonarCloud Code Analysis") */
164
+ name: z.string(),
165
+ /** Check status */
166
+ status: CheckStatusSchema,
167
+ /** Check conclusion (present when completed) */
168
+ conclusion: CheckConclusionSchema.optional(),
169
+ /** URL to view check details on external provider */
170
+ url: z.string().url(),
171
+ /** Provider name (e.g., "codecov", "sonarcloud") */
172
+ provider: z.string().optional(),
173
+ /** Extracted details (if extraction succeeded) */
174
+ extracted: ExternalCheckDetailsSchema.optional().nullable(),
175
+ /** Error message if extraction failed */
176
+ extraction_error: z.string().optional(),
177
+ });
178
+ /**
179
+ * Check History Summary Schema
180
+ *
181
+ * Condensed history for pattern recognition (~75 tokens)
182
+ * Provides recent pattern and success rate without full history details.
183
+ */
184
+ export const CheckHistorySummarySchema = z.object({
185
+ /** Total number of workflow runs for this PR branch */
186
+ total_runs: z.number().int().nonnegative(),
187
+ /** Recent pattern description (e.g., "Passed last 2 runs", "Failed last 3 runs") */
188
+ recent_pattern: z.string(),
189
+ /** Success rate percentage (e.g., "75%") based on last 10 runs */
190
+ success_rate: z.string().optional(),
191
+ });
192
+ /**
193
+ * Checks Summary Schema
194
+ *
195
+ * Complete check results with history context.
196
+ * Ordered by newspaper philosophy: failed checks before passed checks.
197
+ */
198
+ export const ChecksSummarySchema = z.object({
199
+ /** Total number of checks */
200
+ total: z.number().int().nonnegative(),
201
+ /** Number of passed checks */
202
+ passed: z.number().int().nonnegative(),
203
+ /** Number of failed checks */
204
+ failed: z.number().int().nonnegative(),
205
+ /** Number of pending checks */
206
+ pending: z.number().int().nonnegative(),
207
+ /** Condensed history for pattern recognition (cheap tokens, high value) */
208
+ history_summary: CheckHistorySummarySchema.optional(),
209
+ /** GitHub Actions checks (with run_id and optional extraction) */
210
+ github_actions: z.array(GitHubActionCheckSchema),
211
+ /** External checks (with detailsUrl and optional extraction) */
212
+ external_checks: z.array(ExternalCheckSchema),
213
+ });
214
+ // ============================================================================
215
+ // Changes Context Schemas
216
+ // ============================================================================
217
+ /**
218
+ * File Change Schema
219
+ *
220
+ * Git diff statistics for a single file
221
+ */
222
+ export const FileChangeSchema = z.object({
223
+ /** File path */
224
+ file: z.string(),
225
+ /** Number of lines inserted */
226
+ insertions: z.number().int().nonnegative(),
227
+ /** Number of lines deleted */
228
+ deletions: z.number().int().nonnegative(),
229
+ /** Is this a new file? */
230
+ new_file: z.boolean().optional(),
231
+ });
232
+ /**
233
+ * Changes Context Schema
234
+ *
235
+ * File change statistics for the PR
236
+ * Helps understand scope and potential impact areas.
237
+ */
238
+ export const ChangesContextSchema = z.object({
239
+ /** Total number of files changed */
240
+ files_changed: z.number().int().nonnegative(),
241
+ /** Total lines inserted across all files */
242
+ insertions: z.number().int().nonnegative(),
243
+ /** Total lines deleted across all files */
244
+ deletions: z.number().int().nonnegative(),
245
+ /** Number of commits in the PR */
246
+ commits: z.number().int().positive(),
247
+ /** Top files by lines changed (limited to 10 for token efficiency) */
248
+ top_files: z.array(FileChangeSchema).optional(),
249
+ });
250
+ // ============================================================================
251
+ // Guidance Schemas
252
+ // ============================================================================
253
+ /**
254
+ * Next Step Schema
255
+ *
256
+ * Actionable next step with severity and context
257
+ */
258
+ export const NextStepSchema = z.object({
259
+ /** Action description */
260
+ action: z.string(),
261
+ /** URL to perform the action (if applicable) */
262
+ url: z.string().url().optional(),
263
+ /** Severity level (prioritization) */
264
+ severity: SeveritySchema,
265
+ /** Reason or context for this action */
266
+ reason: z.string().optional(),
267
+ });
268
+ /**
269
+ * Guidance Schema
270
+ *
271
+ * Intelligent guidance based on check results.
272
+ * Provides context-aware next steps with severity-based prioritization.
273
+ */
274
+ export const GuidanceSchema = z.object({
275
+ /** Overall status (passed, failed, pending) */
276
+ status: z.enum(['passed', 'failed', 'pending']),
277
+ /** Does this failure block merging? */
278
+ blocking: z.boolean(),
279
+ /** Overall severity */
280
+ severity: SeveritySchema,
281
+ /** Human-readable summary */
282
+ summary: z.string(),
283
+ /** Prioritized list of next steps */
284
+ next_steps: z.array(NextStepSchema).optional(),
285
+ });
286
+ // ============================================================================
287
+ // Cache Schemas
288
+ // ============================================================================
289
+ /**
290
+ * Cache Info Schema
291
+ *
292
+ * Metadata about the local cache
293
+ */
294
+ export const CacheInfoSchema = z.object({
295
+ /** Cache directory location */
296
+ location: z.string(),
297
+ /** When the cache was created (ISO 8601) */
298
+ cached_at: z.string().datetime(),
299
+ /** When the cache expires (ISO 8601) */
300
+ expires_at: z.string().datetime(),
301
+ });
302
+ // ============================================================================
303
+ // Complete Result Schema
304
+ // ============================================================================
305
+ /**
306
+ * Watch PR Result Schema
307
+ *
308
+ * Complete result structure from watch-pr command.
309
+ *
310
+ * Field ordering follows "Newspaper Philosophy":
311
+ * 1. PR context & status (always needed)
312
+ * 2. Check summary + history (quick overview)
313
+ * 3. Failed checks FIRST (most actionable)
314
+ * 4. Passed checks (confirmation)
315
+ * 5. Guidance (what to do next)
316
+ * 6. Changes (context)
317
+ * 7. Cache (metadata, least important)
318
+ *
319
+ * If output is truncated, LLM still sees critical details.
320
+ */
321
+ export const WatchPRResultSchema = z.object({
322
+ /** PR metadata (number, title, branch, mergeable, labels, linked issues) */
323
+ pr: PRMetadataSchema,
324
+ /** Overall status (passed, failed, pending) */
325
+ status: z.enum(['passed', 'failed', 'pending']),
326
+ /** Check results with history context */
327
+ checks: ChecksSummarySchema,
328
+ /** File change context (optional, helps understand scope) */
329
+ changes: ChangesContextSchema.optional(),
330
+ /** Intelligent guidance with next steps (optional) */
331
+ guidance: GuidanceSchema.optional(),
332
+ /** Cache metadata (optional) */
333
+ cache: CacheInfoSchema.optional(),
334
+ });
335
+ //# sourceMappingURL=watch-pr-result.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch-pr-result.schema.js","sourceRoot":"","sources":["../../src/schemas/watch-pr-result.schema.ts"],"names":[],"mappings":"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"}
@@ -11,13 +11,13 @@ export declare const WatchPRResultSchema: z.ZodObject<{
11
11
  title: z.ZodString;
12
12
  url: z.ZodString;
13
13
  }, "strip", z.ZodTypeAny, {
14
- id: string | number;
15
14
  title: string;
16
15
  url: string;
17
- }, {
18
16
  id: string | number;
17
+ }, {
19
18
  title: string;
20
19
  url: string;
20
+ id: string | number;
21
21
  }>;
22
22
  status: z.ZodEnum<["pending", "in_progress", "completed", "timeout"]>;
23
23
  result: z.ZodEnum<["success", "failure", "cancelled", "unknown"]>;
@@ -531,12 +531,12 @@ export declare const WatchPRResultSchema: z.ZodObject<{
531
531
  summary: string;
532
532
  status: "in_progress" | "completed" | "pending" | "timeout";
533
533
  result: "unknown" | "success" | "failure" | "cancelled";
534
+ duration: string;
534
535
  pr: {
535
- id: string | number;
536
536
  title: string;
537
537
  url: string;
538
+ id: string | number;
538
539
  };
539
- duration: string;
540
540
  failures?: {
541
541
  name: string;
542
542
  checkId: string;
@@ -598,12 +598,12 @@ export declare const WatchPRResultSchema: z.ZodObject<{
598
598
  summary: string;
599
599
  status: "in_progress" | "completed" | "pending" | "timeout";
600
600
  result: "unknown" | "success" | "failure" | "cancelled";
601
+ duration: string;
601
602
  pr: {
602
- id: string | number;
603
603
  title: string;
604
604
  url: string;
605
+ id: string | number;
605
606
  };
606
- duration: string;
607
607
  failures?: {
608
608
  name: string;
609
609
  checkId: string;
@@ -0,0 +1,113 @@
1
+ /**
2
+ * CacheManager - Local cache management for watch-pr command
3
+ *
4
+ * Provides:
5
+ * - Atomic writes (concurrent-safe)
6
+ * - TTL-based cache freshness
7
+ * - Separate logs (immutable) and extractions (mutable) directories
8
+ * - Cross-platform path handling
9
+ *
10
+ * Cache structure:
11
+ * ${os.tmpdir()}/vibe-validate/watch-pr-cache/<repo-name>/<pr-number>/
12
+ * ├── logs/ # Immutable log files
13
+ * │ ├── 123.log
14
+ * │ └── 456.log
15
+ * ├── extractions/ # Mutable extraction results
16
+ * │ ├── 123.json
17
+ * │ └── 456.json
18
+ * └── metadata.json # Complete WatchPRResult
19
+ *
20
+ * @packageDocumentation
21
+ */
22
+ import type { ErrorExtractorResult } from '@vibe-validate/extractors';
23
+ import type { WatchPRResult } from '../schemas/watch-pr-result.schema.js';
24
+ /**
25
+ * CacheManager - Manages local cache for watch-pr command
26
+ *
27
+ * Provides concurrent-safe caching with TTL support.
28
+ */
29
+ export declare class CacheManager {
30
+ /** Base cache directory */
31
+ private readonly cacheDir;
32
+ /** Logs directory (immutable) */
33
+ private readonly logsDir;
34
+ /** Extractions directory (mutable) */
35
+ private readonly extractionsDir;
36
+ /**
37
+ * Create a new CacheManager
38
+ *
39
+ * @param repoName - Repository name (e.g., "jdutton/vibe-validate")
40
+ * @param prNumber - PR number
41
+ * @param baseDir - Base directory for cache (defaults to OS temp)
42
+ */
43
+ constructor(repoName: string, prNumber: number, baseDir?: string);
44
+ /**
45
+ * Initialize cache directories
46
+ *
47
+ * Creates directory structure if it doesn't exist.
48
+ */
49
+ private initDirectories;
50
+ /**
51
+ * Atomic write - Write file atomically using temp file + rename
52
+ *
53
+ * Provides concurrent safety by writing to temp file first, then renaming.
54
+ *
55
+ * @param filePath - Target file path
56
+ * @param content - Content to write
57
+ */
58
+ private atomicWrite;
59
+ /**
60
+ * Check if a file is fresh (within TTL)
61
+ *
62
+ * @param filePath - File path to check
63
+ * @param ttl - TTL in milliseconds
64
+ * @returns true if file exists and is fresh, false otherwise
65
+ */
66
+ private isFresh;
67
+ /**
68
+ * Save log file (immutable)
69
+ *
70
+ * @param runId - GitHub run ID
71
+ * @param logs - Log content
72
+ * @returns Path to saved log file
73
+ */
74
+ saveLog(runId: number, logs: string): Promise<string>;
75
+ /**
76
+ * Save extraction result (mutable)
77
+ *
78
+ * @param runId - GitHub run ID
79
+ * @param extraction - Extraction result
80
+ */
81
+ saveExtraction(runId: number, extraction: ErrorExtractorResult): Promise<void>;
82
+ /**
83
+ * Get extraction result
84
+ *
85
+ * @param runId - GitHub run ID
86
+ * @returns Extraction result or null if not found
87
+ */
88
+ getExtraction(runId: number): Promise<ErrorExtractorResult | null>;
89
+ /**
90
+ * Save metadata (complete WatchPRResult)
91
+ *
92
+ * @param data - WatchPRResult data
93
+ */
94
+ saveMetadata(data: WatchPRResult): Promise<void>;
95
+ /**
96
+ * Get metadata (complete WatchPRResult)
97
+ *
98
+ * @returns Metadata or null if not found
99
+ */
100
+ getMetadata(): Promise<WatchPRResult | null>;
101
+ /**
102
+ * Get or fetch data with caching
103
+ *
104
+ * Generic cache wrapper with TTL support.
105
+ *
106
+ * @param key - Cache key
107
+ * @param fetcher - Function to fetch data if cache is stale/missing
108
+ * @param ttl - TTL in milliseconds (default: 5 minutes)
109
+ * @returns Cached or fetched data
110
+ */
111
+ getOrFetch<T>(key: string, fetcher: () => Promise<T>, ttl?: number): Promise<T>;
112
+ }
113
+ //# sourceMappingURL=cache-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-manager.d.ts","sourceRoot":"","sources":["../../src/services/cache-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAMH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAO1E;;;;GAIG;AACH,qBAAa,YAAY;IACvB,2BAA2B;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAElC,iCAAiC;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC,sCAAsC;IACtC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IAExC;;;;;;OAMG;gBACS,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAiBhE;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAWvB;;;;;;;OAOG;YACW,WAAW;IAezB;;;;;;OAMG;YACW,OAAO;IAUrB;;;;;;OAMG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAM3D;;;;;OAKG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpF;;;;;OAKG;IACG,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAUxE;;;;OAIG;IACG,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtD;;;;OAIG;IACG,WAAW,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAUlD;;;;;;;;;OASG;IACG,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,GAAE,MAAuB,GAAG,OAAO,CAAC,CAAC,CAAC;CAyBtG"}