@bbearai/admin 0.1.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.
@@ -0,0 +1,2512 @@
1
+ import { SupabaseClient } from '@supabase/supabase-js';
2
+
3
+ declare function isValidUUID(str: string | undefined): boolean;
4
+ declare function sanitizeSearchQuery(query: string | undefined): string | undefined;
5
+ declare function extractFunctionName(codeSnippet?: string): string | undefined;
6
+ declare function analyzeFileTypes(files: string[]): {
7
+ hasUIComponents: boolean;
8
+ hasAPIRoutes: boolean;
9
+ hasTests: boolean;
10
+ hasStyles: boolean;
11
+ hasConfig: boolean;
12
+ primaryType: string;
13
+ };
14
+ declare function getTrackTemplates(track: string): {
15
+ title: string;
16
+ description: string;
17
+ steps: Array<{
18
+ action: string;
19
+ expectedResult: string;
20
+ }>;
21
+ expected_result: string;
22
+ }[];
23
+
24
+ declare function listReports(supabase: SupabaseClient, projectId: string, args: {
25
+ limit?: number;
26
+ status?: string;
27
+ severity?: string;
28
+ type?: string;
29
+ }): Promise<{
30
+ error: string;
31
+ reports?: undefined;
32
+ total?: undefined;
33
+ } | {
34
+ reports: {
35
+ id: any;
36
+ type: any;
37
+ severity: any;
38
+ status: any;
39
+ description: any;
40
+ route: any;
41
+ reporter: any;
42
+ created_at: any;
43
+ }[];
44
+ total: number;
45
+ error?: undefined;
46
+ }>;
47
+ declare function getReport(supabase: SupabaseClient, projectId: string, args: {
48
+ report_id: string;
49
+ }): Promise<{
50
+ error: string;
51
+ report?: undefined;
52
+ } | {
53
+ report: {
54
+ id: any;
55
+ type: any;
56
+ severity: any;
57
+ status: any;
58
+ description: any;
59
+ app_context: any;
60
+ device_info: any;
61
+ navigation_history: any;
62
+ screenshots: any;
63
+ created_at: any;
64
+ reporter: {
65
+ name: any;
66
+ } | null;
67
+ track: {
68
+ name: any;
69
+ icon: any;
70
+ } | null;
71
+ };
72
+ error?: undefined;
73
+ }>;
74
+ declare function searchReports(supabase: SupabaseClient, projectId: string, args: {
75
+ query?: string;
76
+ route?: string;
77
+ }): Promise<{
78
+ error: string;
79
+ reports?: undefined;
80
+ total?: undefined;
81
+ } | {
82
+ reports: {
83
+ id: any;
84
+ type: any;
85
+ severity: any;
86
+ status: any;
87
+ description: any;
88
+ route: any;
89
+ created_at: any;
90
+ }[];
91
+ total: number;
92
+ error?: undefined;
93
+ }>;
94
+ declare function updateReportStatus(supabase: SupabaseClient, projectId: string, args: {
95
+ report_id: string;
96
+ status: string;
97
+ resolution_notes?: string;
98
+ }): Promise<{
99
+ error: string;
100
+ success?: undefined;
101
+ message?: undefined;
102
+ } | {
103
+ success: boolean;
104
+ message: string;
105
+ error?: undefined;
106
+ }>;
107
+ declare function getReportContext(supabase: SupabaseClient, projectId: string, args: {
108
+ report_id: string;
109
+ }): Promise<{
110
+ error: string;
111
+ context?: undefined;
112
+ } | {
113
+ context: {
114
+ app_context: any;
115
+ device_info: any;
116
+ navigation_history: any;
117
+ enhanced_context: any;
118
+ };
119
+ error?: undefined;
120
+ }>;
121
+ declare function bulkUpdateReports(supabase: SupabaseClient, projectId: string, args: {
122
+ report_ids: string[];
123
+ status: string;
124
+ resolution_notes?: string;
125
+ }): Promise<{
126
+ error: string;
127
+ success?: undefined;
128
+ updatedCount?: undefined;
129
+ requestedCount?: undefined;
130
+ notFound?: undefined;
131
+ status?: undefined;
132
+ reports?: undefined;
133
+ message?: undefined;
134
+ } | {
135
+ success: boolean;
136
+ updatedCount: number;
137
+ requestedCount: number;
138
+ notFound: string[] | undefined;
139
+ status: string;
140
+ reports: {
141
+ id: any;
142
+ status: any;
143
+ description: any;
144
+ }[];
145
+ message: string;
146
+ error?: undefined;
147
+ }>;
148
+
149
+ declare function getProjectInfo(supabase: SupabaseClient, projectId: string): Promise<{
150
+ error: string;
151
+ project?: undefined;
152
+ stats?: undefined;
153
+ tracks?: undefined;
154
+ } | {
155
+ project: {
156
+ id: any;
157
+ name: any;
158
+ slug: any;
159
+ qaEnabled: any;
160
+ };
161
+ stats: {
162
+ tracks: number;
163
+ testCases: number;
164
+ openBugs: number;
165
+ };
166
+ tracks: {
167
+ id: any;
168
+ name: any;
169
+ icon: any;
170
+ template: any;
171
+ }[];
172
+ error?: undefined;
173
+ }>;
174
+ declare function getQaTracks(supabase: SupabaseClient, projectId: string): Promise<{
175
+ error: string;
176
+ tracks?: undefined;
177
+ } | {
178
+ tracks: {
179
+ id: any;
180
+ name: any;
181
+ slug: any;
182
+ icon: any;
183
+ color: any;
184
+ testTemplate: any;
185
+ description: any;
186
+ requiresCertification: any;
187
+ evaluationCriteria: any;
188
+ }[];
189
+ error?: undefined;
190
+ }>;
191
+
192
+ declare function createTestCase(supabase: SupabaseClient, projectId: string, args: {
193
+ test_key: string;
194
+ title: string;
195
+ description?: string;
196
+ track?: string;
197
+ priority?: string;
198
+ steps: Array<{
199
+ stepNumber: number;
200
+ action: string;
201
+ expectedResult?: string;
202
+ }>;
203
+ expected_result: string;
204
+ preconditions?: string;
205
+ target_route?: string;
206
+ }): Promise<{
207
+ error: string;
208
+ success?: undefined;
209
+ testCase?: undefined;
210
+ message?: undefined;
211
+ } | {
212
+ success: boolean;
213
+ testCase: {
214
+ id: any;
215
+ testKey: any;
216
+ title: any;
217
+ };
218
+ message: string;
219
+ error?: undefined;
220
+ }>;
221
+ declare function updateTestCase(supabase: SupabaseClient, projectId: string, args: {
222
+ test_case_id?: string;
223
+ test_key?: string;
224
+ title?: string;
225
+ description?: string;
226
+ priority?: string;
227
+ steps?: Array<{
228
+ stepNumber: number;
229
+ action: string;
230
+ expectedResult?: string;
231
+ }>;
232
+ expected_result?: string;
233
+ preconditions?: string;
234
+ target_route?: string;
235
+ }): Promise<{
236
+ error: string;
237
+ success?: undefined;
238
+ testCase?: undefined;
239
+ message?: undefined;
240
+ updatedFields?: undefined;
241
+ } | {
242
+ success: boolean;
243
+ testCase: {
244
+ id: any;
245
+ testKey: any;
246
+ title: any;
247
+ targetRoute: any;
248
+ };
249
+ message: string;
250
+ updatedFields: string[];
251
+ error?: undefined;
252
+ }>;
253
+ declare function deleteTestCases(supabase: SupabaseClient, projectId: string, args: {
254
+ test_case_id?: string;
255
+ test_key?: string;
256
+ test_case_ids?: string[];
257
+ test_keys?: string[];
258
+ }): Promise<{
259
+ error: string;
260
+ success?: undefined;
261
+ deletedCount?: undefined;
262
+ deleted?: undefined;
263
+ message?: undefined;
264
+ warning?: undefined;
265
+ } | {
266
+ success: boolean;
267
+ deletedCount: number;
268
+ deleted: {
269
+ id: any;
270
+ testKey: any;
271
+ title: any;
272
+ }[];
273
+ message: string;
274
+ warning: string;
275
+ error?: undefined;
276
+ }>;
277
+ declare function listTestCases(supabase: SupabaseClient, projectId: string, args: {
278
+ track?: string;
279
+ priority?: string;
280
+ missing_target_route?: boolean;
281
+ limit?: number;
282
+ offset?: number;
283
+ }): Promise<{
284
+ error: string;
285
+ count?: undefined;
286
+ testCases?: undefined;
287
+ pagination?: undefined;
288
+ } | {
289
+ count: number;
290
+ testCases: {
291
+ id: any;
292
+ testKey: any;
293
+ title: any;
294
+ description: any;
295
+ priority: any;
296
+ targetRoute: any;
297
+ hasTargetRoute: boolean;
298
+ track: any;
299
+ stepsCount: any;
300
+ }[];
301
+ pagination: {
302
+ limit: number;
303
+ offset: number;
304
+ hasMore: boolean;
305
+ };
306
+ error?: undefined;
307
+ }>;
308
+ declare function listTestRuns(supabase: SupabaseClient, projectId: string, args: {
309
+ status?: string;
310
+ limit?: number;
311
+ }): Promise<{
312
+ error: string;
313
+ count?: undefined;
314
+ testRuns?: undefined;
315
+ } | {
316
+ count: number;
317
+ testRuns: {
318
+ id: any;
319
+ name: any;
320
+ description: any;
321
+ status: any;
322
+ totalTests: any;
323
+ passedTests: any;
324
+ failedTests: any;
325
+ passRate: number;
326
+ startedAt: any;
327
+ completedAt: any;
328
+ createdAt: any;
329
+ }[];
330
+ error?: undefined;
331
+ }>;
332
+ declare function createTestRun(supabase: SupabaseClient, projectId: string, args: {
333
+ name: string;
334
+ description?: string;
335
+ }): Promise<{
336
+ error: string;
337
+ success?: undefined;
338
+ testRun?: undefined;
339
+ message?: undefined;
340
+ } | {
341
+ success: boolean;
342
+ testRun: {
343
+ id: any;
344
+ name: any;
345
+ description: any;
346
+ status: any;
347
+ createdAt: any;
348
+ };
349
+ message: string;
350
+ error?: undefined;
351
+ }>;
352
+ declare function listTestAssignments(supabase: SupabaseClient, projectId: string, args: {
353
+ tester_id?: string;
354
+ test_run_id?: string;
355
+ status?: string;
356
+ limit?: number;
357
+ }): Promise<{
358
+ error: string;
359
+ count?: undefined;
360
+ assignments?: undefined;
361
+ } | {
362
+ count: number;
363
+ assignments: {
364
+ id: any;
365
+ status: any;
366
+ assignedAt: any;
367
+ startedAt: any;
368
+ completedAt: any;
369
+ durationSeconds: any;
370
+ isVerification: any;
371
+ notes: any;
372
+ testCase: {
373
+ id: any;
374
+ testKey: any;
375
+ title: any;
376
+ priority: any;
377
+ targetRoute: any;
378
+ } | null;
379
+ tester: {
380
+ id: any;
381
+ name: any;
382
+ email: any;
383
+ } | null;
384
+ testRun: {
385
+ id: any;
386
+ name: any;
387
+ } | null;
388
+ }[];
389
+ error?: undefined;
390
+ }>;
391
+ declare function assignTests(supabase: SupabaseClient, projectId: string, args: {
392
+ tester_id: string;
393
+ test_case_ids: string[];
394
+ test_run_id?: string;
395
+ }): Promise<{
396
+ error: string;
397
+ success?: undefined;
398
+ created?: undefined;
399
+ skipped?: undefined;
400
+ skippedTests?: undefined;
401
+ tester?: undefined;
402
+ message?: undefined;
403
+ testRun?: undefined;
404
+ } | {
405
+ success: boolean;
406
+ created: number;
407
+ skipped: number;
408
+ skippedTests: string[];
409
+ tester: {
410
+ id: any;
411
+ name: any;
412
+ };
413
+ message: string;
414
+ error?: undefined;
415
+ testRun?: undefined;
416
+ } | {
417
+ success: boolean;
418
+ created: number;
419
+ skipped: number;
420
+ tester: {
421
+ id: any;
422
+ name: any;
423
+ };
424
+ testRun: string | null;
425
+ message: string;
426
+ error?: undefined;
427
+ skippedTests?: undefined;
428
+ }>;
429
+
430
+ declare function getBugPatterns(supabase: SupabaseClient, projectId: string, args: {
431
+ route?: string;
432
+ }): Promise<{
433
+ error: string;
434
+ hotspots?: undefined;
435
+ summary?: undefined;
436
+ recommendations?: undefined;
437
+ } | {
438
+ hotspots: {
439
+ total: number;
440
+ critical: number;
441
+ open: number;
442
+ resolved: number;
443
+ route: string;
444
+ }[];
445
+ summary: {
446
+ totalRoutes: number;
447
+ totalBugs: number;
448
+ criticalRoutes: number;
449
+ };
450
+ recommendations: string[];
451
+ error?: undefined;
452
+ }>;
453
+ declare function suggestTestCases(supabase: SupabaseClient, projectId: string, args: {
454
+ route?: string;
455
+ track?: string;
456
+ count?: number;
457
+ }): Promise<{
458
+ suggestions: {
459
+ test_key: string;
460
+ title: string;
461
+ description: string;
462
+ track: string;
463
+ priority: string;
464
+ steps: Array<{
465
+ stepNumber: number;
466
+ action: string;
467
+ expectedResult: string;
468
+ }>;
469
+ expected_result: string;
470
+ }[];
471
+ context: {
472
+ route: string;
473
+ track: string;
474
+ bugHotspots: any;
475
+ };
476
+ historicalContext: {
477
+ relatedBugs: {
478
+ id: any;
479
+ description: any;
480
+ severity: any;
481
+ }[];
482
+ recommendation: string;
483
+ };
484
+ instructions: string;
485
+ }>;
486
+ declare function getTestPriorities(supabase: SupabaseClient, projectId: string, args: {
487
+ limit?: number;
488
+ min_score?: number;
489
+ include_factors?: boolean;
490
+ }): Promise<{
491
+ error: string;
492
+ priorities?: undefined;
493
+ summary?: undefined;
494
+ guidance?: undefined;
495
+ } | {
496
+ priorities: any[];
497
+ summary: {
498
+ totalRoutes: number;
499
+ criticalCount: number;
500
+ highCount: number;
501
+ mediumCount: number;
502
+ };
503
+ guidance: string;
504
+ error?: undefined;
505
+ }>;
506
+ declare function getCoverageGaps(supabase: SupabaseClient, projectId: string, args: {
507
+ gap_type?: 'untested_routes' | 'missing_tracks' | 'stale_coverage' | 'all';
508
+ stale_days?: number;
509
+ }): Promise<{
510
+ gaps: {
511
+ untested: any[];
512
+ missingTracks: any[];
513
+ stale: any[];
514
+ };
515
+ summary: {
516
+ untestedRoutes: number;
517
+ routesMissingTracks: number;
518
+ staleRoutes: number;
519
+ };
520
+ recommendations: string[];
521
+ }>;
522
+ declare function getRegressions(supabase: SupabaseClient, projectId: string, args: {
523
+ days?: number;
524
+ include_history?: boolean;
525
+ }): Promise<{
526
+ regressions: any[];
527
+ summary: {
528
+ totalRegressions: number;
529
+ criticalRegressions: number;
530
+ recurringPatterns: number;
531
+ };
532
+ recommendations: string[];
533
+ }>;
534
+ declare function getCoverageMatrix(supabase: SupabaseClient, projectId: string, args: {
535
+ include_execution_data?: boolean;
536
+ include_bug_counts?: boolean;
537
+ }): Promise<{
538
+ matrix: any[];
539
+ tracks: {
540
+ id: any;
541
+ name: any;
542
+ icon: any;
543
+ color: any;
544
+ }[];
545
+ summary: {
546
+ totalRoutes: number;
547
+ totalTests: any;
548
+ routesWithCriticalBugs: number | undefined;
549
+ };
550
+ }>;
551
+ declare function getStaleCoverage(supabase: SupabaseClient, projectId: string, args: {
552
+ days_threshold?: number;
553
+ limit?: number;
554
+ }): Promise<{
555
+ error: string;
556
+ staleRoutes?: undefined;
557
+ summary?: undefined;
558
+ guidance?: undefined;
559
+ } | {
560
+ staleRoutes: any[];
561
+ summary: {
562
+ totalStale: number;
563
+ neverTested: number;
564
+ withCriticalBugs: number;
565
+ threshold: number;
566
+ };
567
+ guidance: string;
568
+ error?: undefined;
569
+ }>;
570
+ declare function generateDeployChecklist(supabase: SupabaseClient, projectId: string, args: {
571
+ routes: string[];
572
+ changed_files?: string[];
573
+ deployment_type?: 'hotfix' | 'feature' | 'release';
574
+ }): Promise<{
575
+ checklist: {
576
+ critical: any[];
577
+ recommended: any[];
578
+ optional: any[];
579
+ gaps: any[];
580
+ };
581
+ summary: {
582
+ criticalTests: number;
583
+ recommendedTests: number;
584
+ optionalTests: number;
585
+ coverageGaps: number;
586
+ thoroughness: number;
587
+ deploymentType: "hotfix" | "feature" | "release";
588
+ };
589
+ guidance: string;
590
+ }>;
591
+ declare function getQAHealth(supabase: SupabaseClient, projectId: string, args: {
592
+ period_days?: number;
593
+ compare_previous?: boolean;
594
+ }): Promise<{
595
+ metrics: {
596
+ velocity: {
597
+ testsPerWeek: number;
598
+ testsCompleted: number;
599
+ trend: "stable" | "up" | "down";
600
+ changePercent: number | undefined;
601
+ };
602
+ bugDiscovery: {
603
+ bugsFound: number;
604
+ bugsPerTest: number;
605
+ criticalBugs: number;
606
+ trend: "stable" | "up" | "down";
607
+ changePercent: number | undefined;
608
+ };
609
+ resolution: {
610
+ bugsResolved: number;
611
+ avgResolutionDays: number;
612
+ trend: "stable" | "up" | "down";
613
+ changePercent: number | undefined;
614
+ };
615
+ coverage: {
616
+ routeCoverage: number;
617
+ routesWithTests: number;
618
+ totalRoutes: number;
619
+ };
620
+ testerHealth: {
621
+ activeTesters: number;
622
+ totalTesters: number;
623
+ utilizationPercent: number;
624
+ };
625
+ };
626
+ healthScore: {
627
+ score: number;
628
+ grade: string;
629
+ breakdown: {
630
+ coverage: number;
631
+ velocity: number;
632
+ resolution: number;
633
+ stability: number;
634
+ };
635
+ };
636
+ recommendations: string[];
637
+ period: {
638
+ days: number;
639
+ start: string;
640
+ end: string;
641
+ };
642
+ }>;
643
+ declare function getQASessions(supabase: SupabaseClient, projectId: string, args: {
644
+ status?: 'active' | 'completed' | 'all';
645
+ tester_id?: string;
646
+ limit?: number;
647
+ include_findings?: boolean;
648
+ }): Promise<{
649
+ error: string;
650
+ sessions?: undefined;
651
+ summary?: undefined;
652
+ } | {
653
+ sessions: {
654
+ id: any;
655
+ focus_area: any;
656
+ track: any;
657
+ platform: any;
658
+ started_at: any;
659
+ ended_at: any;
660
+ notes: any;
661
+ routes_covered: any;
662
+ status: any;
663
+ duration_minutes: any;
664
+ findings_count: any;
665
+ bugs_filed: any;
666
+ created_at: any;
667
+ tester: {
668
+ id: any;
669
+ name: any;
670
+ email: any;
671
+ }[];
672
+ }[];
673
+ summary: {
674
+ total: number;
675
+ active: number;
676
+ completed: number;
677
+ totalFindings: number;
678
+ totalBugsFiled: number;
679
+ };
680
+ error?: undefined;
681
+ }>;
682
+ declare function getQAAlerts(supabase: SupabaseClient, projectId: string, args: {
683
+ severity?: string;
684
+ type?: string;
685
+ status?: string;
686
+ refresh?: boolean;
687
+ }): Promise<{
688
+ error: string;
689
+ alerts?: undefined;
690
+ summary?: undefined;
691
+ } | {
692
+ alerts: {
693
+ id: any;
694
+ type: any;
695
+ severity: any;
696
+ title: any;
697
+ description: any;
698
+ route: any;
699
+ track: any;
700
+ recommendation: any;
701
+ action_type: any;
702
+ status: any;
703
+ created_at: any;
704
+ }[];
705
+ summary: {
706
+ total: number;
707
+ critical: number;
708
+ warning: number;
709
+ info: number;
710
+ byType: {
711
+ hot_spot: number;
712
+ coverage_gap: number;
713
+ track_gap: number;
714
+ };
715
+ };
716
+ error?: undefined;
717
+ }>;
718
+
719
+ declare function getDeploymentAnalysis(supabase: SupabaseClient, projectId: string, args: {
720
+ deployment_id?: string;
721
+ environment?: 'production' | 'preview' | 'staging' | 'all';
722
+ limit?: number;
723
+ include_testing_priority?: boolean;
724
+ }): Promise<{
725
+ error: string;
726
+ deployment?: undefined;
727
+ deployments?: undefined;
728
+ summary?: undefined;
729
+ } | {
730
+ deployment: any;
731
+ error?: undefined;
732
+ deployments?: undefined;
733
+ summary?: undefined;
734
+ } | {
735
+ deployments: {
736
+ id: any;
737
+ environment: any;
738
+ commit_sha: any;
739
+ commit_message: any;
740
+ branch: any;
741
+ deployed_at: any;
742
+ risk_score: any;
743
+ routes_affected: any;
744
+ testing_priority: any;
745
+ verified: boolean;
746
+ }[];
747
+ summary: {
748
+ total: number;
749
+ avgRiskScore: number;
750
+ highRisk: number;
751
+ verified: number;
752
+ };
753
+ error?: undefined;
754
+ deployment?: undefined;
755
+ }>;
756
+ declare function getTesterRecommendations(supabase: SupabaseClient, _projectId: string, args: {
757
+ test_case_id: string;
758
+ limit?: number;
759
+ }): Promise<{
760
+ error: string;
761
+ test_case?: undefined;
762
+ recommendations?: undefined;
763
+ } | {
764
+ test_case: {
765
+ id: string;
766
+ test_key: any;
767
+ title: any;
768
+ track: any;
769
+ } | null;
770
+ recommendations: any;
771
+ error?: undefined;
772
+ }>;
773
+ declare function analyzeCommitForTesting(supabase: SupabaseClient, projectId: string, args: {
774
+ commit_sha?: string;
775
+ files_changed: string[];
776
+ commit_message?: string;
777
+ record_deployment?: boolean;
778
+ }): Promise<{
779
+ commit_sha: string | undefined;
780
+ files_analyzed: number;
781
+ risk_score: number;
782
+ affected_routes: {
783
+ route: string;
784
+ feature?: string;
785
+ confidence: number;
786
+ matched_files: string[];
787
+ }[];
788
+ bug_history_summary: {
789
+ total: number;
790
+ critical: number;
791
+ high: number;
792
+ };
793
+ testing_recommendations: {
794
+ route: string;
795
+ feature: string | undefined;
796
+ priority: string;
797
+ reason: string;
798
+ recent_bugs: number;
799
+ }[];
800
+ deployment_recorded: boolean;
801
+ }>;
802
+ declare function getTestingPatterns(supabase: SupabaseClient, _projectId: string, args: {
803
+ feature_type?: string;
804
+ framework?: string;
805
+ tracks?: string[];
806
+ search?: string;
807
+ }): Promise<{
808
+ patterns: {
809
+ title: any;
810
+ category: any;
811
+ track: any;
812
+ severity: any;
813
+ description: any;
814
+ why_it_happens: any;
815
+ suggested_tests: any;
816
+ common_fix: any;
817
+ source: any;
818
+ frameworks: any;
819
+ }[];
820
+ summary: {
821
+ total: number;
822
+ by_severity: {
823
+ critical: number;
824
+ high: number;
825
+ medium: number;
826
+ low: number;
827
+ };
828
+ by_track: any;
829
+ };
830
+ note: string;
831
+ }>;
832
+ declare function analyzeChangesForTests(supabase: SupabaseClient, projectId: string, args: {
833
+ changed_files: string[];
834
+ change_type: 'feature' | 'bugfix' | 'refactor' | 'ui_change' | 'api_change' | 'config';
835
+ change_summary: string;
836
+ affected_routes?: string[];
837
+ }): Promise<{
838
+ analysis: {
839
+ change_type: "feature" | "bugfix" | "refactor" | "ui_change" | "api_change" | "config";
840
+ files_changed: number;
841
+ file_types: {
842
+ hasUIComponents: boolean;
843
+ hasAPIRoutes: boolean;
844
+ hasTests: boolean;
845
+ hasStyles: boolean;
846
+ hasConfig: boolean;
847
+ primaryType: string;
848
+ };
849
+ affected_routes: string[];
850
+ existing_coverage: number;
851
+ related_bugs: number;
852
+ coverage_ratio: number;
853
+ };
854
+ recommendation: {
855
+ should_create_tests: boolean;
856
+ urgency: string;
857
+ reason: string;
858
+ };
859
+ suggestions: {
860
+ create_command: string;
861
+ test_key: string;
862
+ title: string;
863
+ description: string;
864
+ track: string;
865
+ priority: string;
866
+ target_route: string | null;
867
+ rationale: string;
868
+ steps: Array<{
869
+ stepNumber: number;
870
+ action: string;
871
+ expectedResult: string;
872
+ }>;
873
+ expected_result: string;
874
+ }[];
875
+ existing_tests: {
876
+ test_key: any;
877
+ title: any;
878
+ target_route: any;
879
+ }[];
880
+ next_steps: string[];
881
+ }>;
882
+
883
+ declare function createBugReport(supabase: SupabaseClient, projectId: string, args: {
884
+ title: string;
885
+ description: string;
886
+ severity: string;
887
+ file_path?: string;
888
+ line_number?: number;
889
+ code_snippet?: string;
890
+ suggested_fix?: string;
891
+ related_files?: string[];
892
+ }): Promise<{
893
+ error: string;
894
+ success?: undefined;
895
+ report_id?: undefined;
896
+ message?: undefined;
897
+ details?: undefined;
898
+ } | {
899
+ success: boolean;
900
+ report_id: any;
901
+ message: string;
902
+ details: {
903
+ id: any;
904
+ severity: string;
905
+ file: string | undefined;
906
+ line: number | undefined;
907
+ };
908
+ error?: undefined;
909
+ }>;
910
+ declare function getBugsForFile(supabase: SupabaseClient, projectId: string, args: {
911
+ file_path: string;
912
+ include_resolved?: boolean;
913
+ }): Promise<{
914
+ error: string;
915
+ file?: undefined;
916
+ direct_bugs?: undefined;
917
+ related_bugs?: undefined;
918
+ summary?: undefined;
919
+ recommendation?: undefined;
920
+ } | {
921
+ file: string;
922
+ direct_bugs: {
923
+ id: any;
924
+ title: any;
925
+ severity: any;
926
+ status: any;
927
+ line: any;
928
+ description: any;
929
+ }[];
930
+ related_bugs: {
931
+ id: any;
932
+ title: any;
933
+ severity: any;
934
+ status: any;
935
+ source_file: any;
936
+ }[];
937
+ summary: {
938
+ total: number;
939
+ critical: number;
940
+ open: number;
941
+ };
942
+ recommendation: string;
943
+ error?: undefined;
944
+ }>;
945
+ declare function markFixedWithCommit(supabase: SupabaseClient, projectId: string, args: {
946
+ report_id: string;
947
+ commit_sha: string;
948
+ commit_message?: string;
949
+ resolution_notes?: string;
950
+ files_changed?: string[];
951
+ notify_tester?: boolean;
952
+ }): Promise<{
953
+ error: string;
954
+ success?: undefined;
955
+ message?: undefined;
956
+ report_id?: undefined;
957
+ commit?: undefined;
958
+ tester_notified?: undefined;
959
+ next_steps?: undefined;
960
+ } | {
961
+ success: boolean;
962
+ message: string;
963
+ report_id: string;
964
+ commit: string;
965
+ tester_notified: boolean;
966
+ next_steps: string[];
967
+ error?: undefined;
968
+ }>;
969
+ declare function getBugsAffectingCode(supabase: SupabaseClient, projectId: string, args: {
970
+ file_paths: string[];
971
+ include_related?: boolean;
972
+ }): Promise<{
973
+ error: string;
974
+ files_checked?: undefined;
975
+ affected_bugs?: undefined;
976
+ summary?: undefined;
977
+ warnings?: undefined;
978
+ recommendation?: undefined;
979
+ } | {
980
+ files_checked: string[];
981
+ affected_bugs: {
982
+ id: string;
983
+ title: string;
984
+ severity: string;
985
+ status: string;
986
+ matched_file: string;
987
+ match_type: "direct" | "related" | "route";
988
+ }[];
989
+ summary: {
990
+ total: number;
991
+ critical: number;
992
+ high: number;
993
+ direct_matches: number;
994
+ };
995
+ warnings: string[];
996
+ recommendation: string;
997
+ error?: undefined;
998
+ }>;
999
+ declare function linkBugToCode(supabase: SupabaseClient, projectId: string, args: {
1000
+ report_id: string;
1001
+ file_path: string;
1002
+ line_number?: number;
1003
+ code_snippet?: string;
1004
+ function_name?: string;
1005
+ }): Promise<{
1006
+ error: string;
1007
+ success?: undefined;
1008
+ message?: undefined;
1009
+ report_id?: undefined;
1010
+ } | {
1011
+ success: boolean;
1012
+ message: string;
1013
+ report_id: string;
1014
+ error?: undefined;
1015
+ }>;
1016
+ declare function createRegressionTest(supabase: SupabaseClient, projectId: string, args: {
1017
+ report_id: string;
1018
+ test_type?: string;
1019
+ }): Promise<{
1020
+ error: string;
1021
+ current_status?: undefined;
1022
+ success?: undefined;
1023
+ test_case?: undefined;
1024
+ message?: undefined;
1025
+ original_bug?: undefined;
1026
+ } | {
1027
+ error: string;
1028
+ current_status: any;
1029
+ success?: undefined;
1030
+ test_case?: undefined;
1031
+ message?: undefined;
1032
+ original_bug?: undefined;
1033
+ } | {
1034
+ success: boolean;
1035
+ test_case: {
1036
+ id: any;
1037
+ test_key: any;
1038
+ title: any;
1039
+ type: string;
1040
+ };
1041
+ message: string;
1042
+ original_bug: {
1043
+ id: string;
1044
+ title: any;
1045
+ };
1046
+ error?: undefined;
1047
+ current_status?: undefined;
1048
+ }>;
1049
+
1050
+ declare function getPendingFixes(supabase: SupabaseClient, projectId: string, args: {
1051
+ limit?: number;
1052
+ include_claimed?: boolean;
1053
+ }): Promise<{
1054
+ error: string;
1055
+ fix_requests?: undefined;
1056
+ count?: undefined;
1057
+ message?: undefined;
1058
+ } | {
1059
+ fix_requests: {
1060
+ id: any;
1061
+ title: any;
1062
+ description: any;
1063
+ prompt: any;
1064
+ file_path: any;
1065
+ status: any;
1066
+ claimed_by: any;
1067
+ claimed_at: any;
1068
+ created_at: any;
1069
+ related_report: {
1070
+ id: any;
1071
+ title: any;
1072
+ severity: any;
1073
+ } | null;
1074
+ }[];
1075
+ count: number;
1076
+ message: string;
1077
+ error?: undefined;
1078
+ }>;
1079
+ declare function claimFixRequest(supabase: SupabaseClient, projectId: string, args: {
1080
+ fix_request_id: string;
1081
+ claimed_by?: string;
1082
+ }): Promise<{
1083
+ error: string;
1084
+ status?: undefined;
1085
+ success?: undefined;
1086
+ message?: undefined;
1087
+ fix_request?: undefined;
1088
+ next_steps?: undefined;
1089
+ } | {
1090
+ error: string;
1091
+ status: any;
1092
+ success?: undefined;
1093
+ message?: undefined;
1094
+ fix_request?: undefined;
1095
+ next_steps?: undefined;
1096
+ } | {
1097
+ success: boolean;
1098
+ message: string;
1099
+ fix_request: {
1100
+ id: string;
1101
+ title: any;
1102
+ prompt: any;
1103
+ };
1104
+ next_steps: string[];
1105
+ error?: undefined;
1106
+ status?: undefined;
1107
+ }>;
1108
+ declare function completeFixRequest(supabase: SupabaseClient, projectId: string, args: {
1109
+ fix_request_id: string;
1110
+ completion_notes?: string;
1111
+ success?: boolean;
1112
+ }): Promise<{
1113
+ error: string;
1114
+ success?: undefined;
1115
+ message?: undefined;
1116
+ fix_request_id?: undefined;
1117
+ status?: undefined;
1118
+ } | {
1119
+ success: boolean;
1120
+ message: string;
1121
+ fix_request_id: string;
1122
+ status: unknown;
1123
+ error?: undefined;
1124
+ }>;
1125
+
1126
+ declare function listTesters(supabase: SupabaseClient, projectId: string, args: {
1127
+ status?: string;
1128
+ platform?: string;
1129
+ }): Promise<{
1130
+ error: string;
1131
+ count?: undefined;
1132
+ testers?: undefined;
1133
+ } | {
1134
+ count: number;
1135
+ testers: {
1136
+ id: any;
1137
+ name: any;
1138
+ email: any;
1139
+ status: any;
1140
+ platforms: any;
1141
+ tier: any;
1142
+ assignedCount: any;
1143
+ completedCount: any;
1144
+ notes: any;
1145
+ }[];
1146
+ error?: undefined;
1147
+ }>;
1148
+ declare function createTester(supabase: SupabaseClient, projectId: string, args: {
1149
+ name: string;
1150
+ email: string;
1151
+ platforms?: string[];
1152
+ tier?: number;
1153
+ notes?: string;
1154
+ }): Promise<{
1155
+ error: string;
1156
+ success?: undefined;
1157
+ tester?: undefined;
1158
+ message?: undefined;
1159
+ } | {
1160
+ success: boolean;
1161
+ tester: {
1162
+ id: any;
1163
+ name: any;
1164
+ email: any;
1165
+ status: any;
1166
+ platforms: any;
1167
+ tier: any;
1168
+ notes: any;
1169
+ createdAt: any;
1170
+ };
1171
+ message: string;
1172
+ error?: undefined;
1173
+ }>;
1174
+ declare function updateTester(supabase: SupabaseClient, projectId: string, args: {
1175
+ tester_id: string;
1176
+ status?: string;
1177
+ platforms?: string[];
1178
+ tier?: number;
1179
+ notes?: string;
1180
+ name?: string;
1181
+ }): Promise<{
1182
+ error: string;
1183
+ success?: undefined;
1184
+ tester?: undefined;
1185
+ updatedFields?: undefined;
1186
+ } | {
1187
+ success: boolean;
1188
+ tester: {
1189
+ id: any;
1190
+ name: any;
1191
+ email: any;
1192
+ status: any;
1193
+ platforms: any;
1194
+ tier: any;
1195
+ notes: any;
1196
+ };
1197
+ updatedFields: string[];
1198
+ error?: undefined;
1199
+ }>;
1200
+ declare function getTesterWorkload(supabase: SupabaseClient, projectId: string, args: {
1201
+ tester_id: string;
1202
+ }): Promise<{
1203
+ error: string;
1204
+ tester?: undefined;
1205
+ totalAssignments?: undefined;
1206
+ counts?: undefined;
1207
+ activeLoad?: undefined;
1208
+ recentAssignments?: undefined;
1209
+ } | {
1210
+ tester: {
1211
+ id: any;
1212
+ name: any;
1213
+ email: any;
1214
+ status: any;
1215
+ platforms: any;
1216
+ tier: any;
1217
+ };
1218
+ totalAssignments: number;
1219
+ counts: Record<string, number>;
1220
+ activeLoad: number;
1221
+ recentAssignments: {
1222
+ id: any;
1223
+ status: any;
1224
+ assignedAt: any;
1225
+ completedAt: any;
1226
+ testCase: {
1227
+ testKey: any;
1228
+ title: any;
1229
+ priority: any;
1230
+ } | null;
1231
+ testRun: any;
1232
+ }[];
1233
+ error?: undefined;
1234
+ }>;
1235
+
1236
+ declare function getBugTrends(supabase: SupabaseClient, projectId: string, args: {
1237
+ group_by?: string;
1238
+ days?: number;
1239
+ }): Promise<{
1240
+ error: string;
1241
+ period?: undefined;
1242
+ groupBy?: undefined;
1243
+ totalReports?: undefined;
1244
+ weeks?: undefined;
1245
+ breakdown?: undefined;
1246
+ } | {
1247
+ period: string;
1248
+ groupBy: string;
1249
+ totalReports: number;
1250
+ weeks: {
1251
+ count: number;
1252
+ critical: number;
1253
+ high: number;
1254
+ medium: number;
1255
+ low: number;
1256
+ week: string;
1257
+ }[];
1258
+ error?: undefined;
1259
+ breakdown?: undefined;
1260
+ } | {
1261
+ period: string;
1262
+ groupBy: string;
1263
+ totalReports: number;
1264
+ breakdown: Record<string, number>;
1265
+ error?: undefined;
1266
+ weeks?: undefined;
1267
+ }>;
1268
+ declare function getTesterLeaderboard(supabase: SupabaseClient, projectId: string, args: {
1269
+ days?: number;
1270
+ sort_by?: string;
1271
+ }): Promise<{
1272
+ error: string;
1273
+ period?: undefined;
1274
+ sortedBy?: undefined;
1275
+ leaderboard?: undefined;
1276
+ } | {
1277
+ period: string;
1278
+ sortedBy: string;
1279
+ leaderboard: any[];
1280
+ error?: undefined;
1281
+ }>;
1282
+ declare function exportTestResults(supabase: SupabaseClient, projectId: string, args: {
1283
+ test_run_id: string;
1284
+ }): Promise<{
1285
+ error: string;
1286
+ testRun?: undefined;
1287
+ summary?: undefined;
1288
+ assignments?: undefined;
1289
+ } | {
1290
+ testRun: {
1291
+ id: any;
1292
+ name: any;
1293
+ description: any;
1294
+ status: any;
1295
+ startedAt: any;
1296
+ completedAt: any;
1297
+ createdAt: any;
1298
+ };
1299
+ summary: {
1300
+ totalAssignments: number;
1301
+ passed: number;
1302
+ failed: number;
1303
+ blocked: number;
1304
+ skipped: number;
1305
+ pending: number;
1306
+ inProgress: number;
1307
+ passRate: number;
1308
+ };
1309
+ assignments: {
1310
+ id: any;
1311
+ status: any;
1312
+ assignedAt: any;
1313
+ startedAt: any;
1314
+ completedAt: any;
1315
+ durationSeconds: any;
1316
+ isVerification: any;
1317
+ notes: any;
1318
+ skipReason: any;
1319
+ testResult: any;
1320
+ feedbackRating: any;
1321
+ feedbackNote: any;
1322
+ testCase: {
1323
+ id: any;
1324
+ testKey: any;
1325
+ title: any;
1326
+ priority: any;
1327
+ description: any;
1328
+ targetRoute: any;
1329
+ } | null;
1330
+ tester: {
1331
+ id: any;
1332
+ name: any;
1333
+ email: any;
1334
+ } | null;
1335
+ }[];
1336
+ error?: undefined;
1337
+ }>;
1338
+ declare function getTestingVelocity(supabase: SupabaseClient, projectId: string, args: {
1339
+ days?: number;
1340
+ }): Promise<{
1341
+ error: string;
1342
+ period?: undefined;
1343
+ totalCompleted?: undefined;
1344
+ averagePerDay?: undefined;
1345
+ trend?: undefined;
1346
+ daily?: undefined;
1347
+ } | {
1348
+ period: string;
1349
+ totalCompleted: number;
1350
+ averagePerDay: number;
1351
+ trend: string;
1352
+ daily: {
1353
+ date: string;
1354
+ count: number;
1355
+ }[];
1356
+ error?: undefined;
1357
+ }>;
1358
+
1359
+ interface BugBearAdminOptions {
1360
+ supabaseUrl: string;
1361
+ supabaseKey: string;
1362
+ projectId: string;
1363
+ }
1364
+ /**
1365
+ * BugBearAdmin — ergonomic wrapper around all admin SDK functions.
1366
+ *
1367
+ * Constructs a Supabase client and binds `supabase` + `projectId` into every method,
1368
+ * so consumers only need to pass the `args` object.
1369
+ *
1370
+ * Usage:
1371
+ * ```ts
1372
+ * const admin = new BugBearAdmin({
1373
+ * supabaseUrl: 'https://xxx.supabase.co',
1374
+ * supabaseKey: 'eyJ...',
1375
+ * projectId: 'a9bc405e-...',
1376
+ * });
1377
+ *
1378
+ * const { reports } = await admin.listReports({ limit: 5 });
1379
+ * ```
1380
+ */
1381
+ declare class BugBearAdmin {
1382
+ readonly supabase: SupabaseClient;
1383
+ private projectId;
1384
+ constructor(opts: BugBearAdminOptions);
1385
+ /** Switch the active project. */
1386
+ setProjectId(projectId: string): void;
1387
+ /** Get the current project ID. */
1388
+ getProjectId(): string;
1389
+ listReports(args: Parameters<typeof listReports>[2]): Promise<{
1390
+ error: string;
1391
+ reports?: undefined;
1392
+ total?: undefined;
1393
+ } | {
1394
+ reports: {
1395
+ id: any;
1396
+ type: any;
1397
+ severity: any;
1398
+ status: any;
1399
+ description: any;
1400
+ route: any;
1401
+ reporter: any;
1402
+ created_at: any;
1403
+ }[];
1404
+ total: number;
1405
+ error?: undefined;
1406
+ }>;
1407
+ getReport(args: Parameters<typeof getReport>[2]): Promise<{
1408
+ error: string;
1409
+ report?: undefined;
1410
+ } | {
1411
+ report: {
1412
+ id: any;
1413
+ type: any;
1414
+ severity: any;
1415
+ status: any;
1416
+ description: any;
1417
+ app_context: any;
1418
+ device_info: any;
1419
+ navigation_history: any;
1420
+ screenshots: any;
1421
+ created_at: any;
1422
+ reporter: {
1423
+ name: any;
1424
+ } | null;
1425
+ track: {
1426
+ name: any;
1427
+ icon: any;
1428
+ } | null;
1429
+ };
1430
+ error?: undefined;
1431
+ }>;
1432
+ searchReports(args: Parameters<typeof searchReports>[2]): Promise<{
1433
+ error: string;
1434
+ reports?: undefined;
1435
+ total?: undefined;
1436
+ } | {
1437
+ reports: {
1438
+ id: any;
1439
+ type: any;
1440
+ severity: any;
1441
+ status: any;
1442
+ description: any;
1443
+ route: any;
1444
+ created_at: any;
1445
+ }[];
1446
+ total: number;
1447
+ error?: undefined;
1448
+ }>;
1449
+ updateReportStatus(args: Parameters<typeof updateReportStatus>[2]): Promise<{
1450
+ error: string;
1451
+ success?: undefined;
1452
+ message?: undefined;
1453
+ } | {
1454
+ success: boolean;
1455
+ message: string;
1456
+ error?: undefined;
1457
+ }>;
1458
+ getReportContext(args: Parameters<typeof getReportContext>[2]): Promise<{
1459
+ error: string;
1460
+ context?: undefined;
1461
+ } | {
1462
+ context: {
1463
+ app_context: any;
1464
+ device_info: any;
1465
+ navigation_history: any;
1466
+ enhanced_context: any;
1467
+ };
1468
+ error?: undefined;
1469
+ }>;
1470
+ bulkUpdateReports(args: Parameters<typeof bulkUpdateReports>[2]): Promise<{
1471
+ error: string;
1472
+ success?: undefined;
1473
+ updatedCount?: undefined;
1474
+ requestedCount?: undefined;
1475
+ notFound?: undefined;
1476
+ status?: undefined;
1477
+ reports?: undefined;
1478
+ message?: undefined;
1479
+ } | {
1480
+ success: boolean;
1481
+ updatedCount: number;
1482
+ requestedCount: number;
1483
+ notFound: string[] | undefined;
1484
+ status: string;
1485
+ reports: {
1486
+ id: any;
1487
+ status: any;
1488
+ description: any;
1489
+ }[];
1490
+ message: string;
1491
+ error?: undefined;
1492
+ }>;
1493
+ getProjectInfo(): Promise<{
1494
+ error: string;
1495
+ project?: undefined;
1496
+ stats?: undefined;
1497
+ tracks?: undefined;
1498
+ } | {
1499
+ project: {
1500
+ id: any;
1501
+ name: any;
1502
+ slug: any;
1503
+ qaEnabled: any;
1504
+ };
1505
+ stats: {
1506
+ tracks: number;
1507
+ testCases: number;
1508
+ openBugs: number;
1509
+ };
1510
+ tracks: {
1511
+ id: any;
1512
+ name: any;
1513
+ icon: any;
1514
+ template: any;
1515
+ }[];
1516
+ error?: undefined;
1517
+ }>;
1518
+ getQaTracks(): Promise<{
1519
+ error: string;
1520
+ tracks?: undefined;
1521
+ } | {
1522
+ tracks: {
1523
+ id: any;
1524
+ name: any;
1525
+ slug: any;
1526
+ icon: any;
1527
+ color: any;
1528
+ testTemplate: any;
1529
+ description: any;
1530
+ requiresCertification: any;
1531
+ evaluationCriteria: any;
1532
+ }[];
1533
+ error?: undefined;
1534
+ }>;
1535
+ createTestCase(args: Parameters<typeof createTestCase>[2]): Promise<{
1536
+ error: string;
1537
+ success?: undefined;
1538
+ testCase?: undefined;
1539
+ message?: undefined;
1540
+ } | {
1541
+ success: boolean;
1542
+ testCase: {
1543
+ id: any;
1544
+ testKey: any;
1545
+ title: any;
1546
+ };
1547
+ message: string;
1548
+ error?: undefined;
1549
+ }>;
1550
+ updateTestCase(args: Parameters<typeof updateTestCase>[2]): Promise<{
1551
+ error: string;
1552
+ success?: undefined;
1553
+ testCase?: undefined;
1554
+ message?: undefined;
1555
+ updatedFields?: undefined;
1556
+ } | {
1557
+ success: boolean;
1558
+ testCase: {
1559
+ id: any;
1560
+ testKey: any;
1561
+ title: any;
1562
+ targetRoute: any;
1563
+ };
1564
+ message: string;
1565
+ updatedFields: string[];
1566
+ error?: undefined;
1567
+ }>;
1568
+ deleteTestCases(args: Parameters<typeof deleteTestCases>[2]): Promise<{
1569
+ error: string;
1570
+ success?: undefined;
1571
+ deletedCount?: undefined;
1572
+ deleted?: undefined;
1573
+ message?: undefined;
1574
+ warning?: undefined;
1575
+ } | {
1576
+ success: boolean;
1577
+ deletedCount: number;
1578
+ deleted: {
1579
+ id: any;
1580
+ testKey: any;
1581
+ title: any;
1582
+ }[];
1583
+ message: string;
1584
+ warning: string;
1585
+ error?: undefined;
1586
+ }>;
1587
+ listTestCases(args: Parameters<typeof listTestCases>[2]): Promise<{
1588
+ error: string;
1589
+ count?: undefined;
1590
+ testCases?: undefined;
1591
+ pagination?: undefined;
1592
+ } | {
1593
+ count: number;
1594
+ testCases: {
1595
+ id: any;
1596
+ testKey: any;
1597
+ title: any;
1598
+ description: any;
1599
+ priority: any;
1600
+ targetRoute: any;
1601
+ hasTargetRoute: boolean;
1602
+ track: any;
1603
+ stepsCount: any;
1604
+ }[];
1605
+ pagination: {
1606
+ limit: number;
1607
+ offset: number;
1608
+ hasMore: boolean;
1609
+ };
1610
+ error?: undefined;
1611
+ }>;
1612
+ listTestRuns(args: Parameters<typeof listTestRuns>[2]): Promise<{
1613
+ error: string;
1614
+ count?: undefined;
1615
+ testRuns?: undefined;
1616
+ } | {
1617
+ count: number;
1618
+ testRuns: {
1619
+ id: any;
1620
+ name: any;
1621
+ description: any;
1622
+ status: any;
1623
+ totalTests: any;
1624
+ passedTests: any;
1625
+ failedTests: any;
1626
+ passRate: number;
1627
+ startedAt: any;
1628
+ completedAt: any;
1629
+ createdAt: any;
1630
+ }[];
1631
+ error?: undefined;
1632
+ }>;
1633
+ createTestRun(args: Parameters<typeof createTestRun>[2]): Promise<{
1634
+ error: string;
1635
+ success?: undefined;
1636
+ testRun?: undefined;
1637
+ message?: undefined;
1638
+ } | {
1639
+ success: boolean;
1640
+ testRun: {
1641
+ id: any;
1642
+ name: any;
1643
+ description: any;
1644
+ status: any;
1645
+ createdAt: any;
1646
+ };
1647
+ message: string;
1648
+ error?: undefined;
1649
+ }>;
1650
+ listTestAssignments(args: Parameters<typeof listTestAssignments>[2]): Promise<{
1651
+ error: string;
1652
+ count?: undefined;
1653
+ assignments?: undefined;
1654
+ } | {
1655
+ count: number;
1656
+ assignments: {
1657
+ id: any;
1658
+ status: any;
1659
+ assignedAt: any;
1660
+ startedAt: any;
1661
+ completedAt: any;
1662
+ durationSeconds: any;
1663
+ isVerification: any;
1664
+ notes: any;
1665
+ testCase: {
1666
+ id: any;
1667
+ testKey: any;
1668
+ title: any;
1669
+ priority: any;
1670
+ targetRoute: any;
1671
+ } | null;
1672
+ tester: {
1673
+ id: any;
1674
+ name: any;
1675
+ email: any;
1676
+ } | null;
1677
+ testRun: {
1678
+ id: any;
1679
+ name: any;
1680
+ } | null;
1681
+ }[];
1682
+ error?: undefined;
1683
+ }>;
1684
+ assignTests(args: Parameters<typeof assignTests>[2]): Promise<{
1685
+ error: string;
1686
+ success?: undefined;
1687
+ created?: undefined;
1688
+ skipped?: undefined;
1689
+ skippedTests?: undefined;
1690
+ tester?: undefined;
1691
+ message?: undefined;
1692
+ testRun?: undefined;
1693
+ } | {
1694
+ success: boolean;
1695
+ created: number;
1696
+ skipped: number;
1697
+ skippedTests: string[];
1698
+ tester: {
1699
+ id: any;
1700
+ name: any;
1701
+ };
1702
+ message: string;
1703
+ error?: undefined;
1704
+ testRun?: undefined;
1705
+ } | {
1706
+ success: boolean;
1707
+ created: number;
1708
+ skipped: number;
1709
+ tester: {
1710
+ id: any;
1711
+ name: any;
1712
+ };
1713
+ testRun: string | null;
1714
+ message: string;
1715
+ error?: undefined;
1716
+ skippedTests?: undefined;
1717
+ }>;
1718
+ getBugPatterns(args: Parameters<typeof getBugPatterns>[2]): Promise<{
1719
+ error: string;
1720
+ hotspots?: undefined;
1721
+ summary?: undefined;
1722
+ recommendations?: undefined;
1723
+ } | {
1724
+ hotspots: {
1725
+ total: number;
1726
+ critical: number;
1727
+ open: number;
1728
+ resolved: number;
1729
+ route: string;
1730
+ }[];
1731
+ summary: {
1732
+ totalRoutes: number;
1733
+ totalBugs: number;
1734
+ criticalRoutes: number;
1735
+ };
1736
+ recommendations: string[];
1737
+ error?: undefined;
1738
+ }>;
1739
+ suggestTestCases(args: Parameters<typeof suggestTestCases>[2]): Promise<{
1740
+ suggestions: {
1741
+ test_key: string;
1742
+ title: string;
1743
+ description: string;
1744
+ track: string;
1745
+ priority: string;
1746
+ steps: Array<{
1747
+ stepNumber: number;
1748
+ action: string;
1749
+ expectedResult: string;
1750
+ }>;
1751
+ expected_result: string;
1752
+ }[];
1753
+ context: {
1754
+ route: string;
1755
+ track: string;
1756
+ bugHotspots: any;
1757
+ };
1758
+ historicalContext: {
1759
+ relatedBugs: {
1760
+ id: any;
1761
+ description: any;
1762
+ severity: any;
1763
+ }[];
1764
+ recommendation: string;
1765
+ };
1766
+ instructions: string;
1767
+ }>;
1768
+ getTestPriorities(args: Parameters<typeof getTestPriorities>[2]): Promise<{
1769
+ error: string;
1770
+ priorities?: undefined;
1771
+ summary?: undefined;
1772
+ guidance?: undefined;
1773
+ } | {
1774
+ priorities: any[];
1775
+ summary: {
1776
+ totalRoutes: number;
1777
+ criticalCount: number;
1778
+ highCount: number;
1779
+ mediumCount: number;
1780
+ };
1781
+ guidance: string;
1782
+ error?: undefined;
1783
+ }>;
1784
+ getCoverageGaps(args: Parameters<typeof getCoverageGaps>[2]): Promise<{
1785
+ gaps: {
1786
+ untested: any[];
1787
+ missingTracks: any[];
1788
+ stale: any[];
1789
+ };
1790
+ summary: {
1791
+ untestedRoutes: number;
1792
+ routesMissingTracks: number;
1793
+ staleRoutes: number;
1794
+ };
1795
+ recommendations: string[];
1796
+ }>;
1797
+ getRegressions(args: Parameters<typeof getRegressions>[2]): Promise<{
1798
+ regressions: any[];
1799
+ summary: {
1800
+ totalRegressions: number;
1801
+ criticalRegressions: number;
1802
+ recurringPatterns: number;
1803
+ };
1804
+ recommendations: string[];
1805
+ }>;
1806
+ getCoverageMatrix(args: Parameters<typeof getCoverageMatrix>[2]): Promise<{
1807
+ matrix: any[];
1808
+ tracks: {
1809
+ id: any;
1810
+ name: any;
1811
+ icon: any;
1812
+ color: any;
1813
+ }[];
1814
+ summary: {
1815
+ totalRoutes: number;
1816
+ totalTests: any;
1817
+ routesWithCriticalBugs: number | undefined;
1818
+ };
1819
+ }>;
1820
+ getStaleCoverage(args: Parameters<typeof getStaleCoverage>[2]): Promise<{
1821
+ error: string;
1822
+ staleRoutes?: undefined;
1823
+ summary?: undefined;
1824
+ guidance?: undefined;
1825
+ } | {
1826
+ staleRoutes: any[];
1827
+ summary: {
1828
+ totalStale: number;
1829
+ neverTested: number;
1830
+ withCriticalBugs: number;
1831
+ threshold: number;
1832
+ };
1833
+ guidance: string;
1834
+ error?: undefined;
1835
+ }>;
1836
+ generateDeployChecklist(args: Parameters<typeof generateDeployChecklist>[2]): Promise<{
1837
+ checklist: {
1838
+ critical: any[];
1839
+ recommended: any[];
1840
+ optional: any[];
1841
+ gaps: any[];
1842
+ };
1843
+ summary: {
1844
+ criticalTests: number;
1845
+ recommendedTests: number;
1846
+ optionalTests: number;
1847
+ coverageGaps: number;
1848
+ thoroughness: number;
1849
+ deploymentType: "hotfix" | "feature" | "release";
1850
+ };
1851
+ guidance: string;
1852
+ }>;
1853
+ getQAHealth(args: Parameters<typeof getQAHealth>[2]): Promise<{
1854
+ metrics: {
1855
+ velocity: {
1856
+ testsPerWeek: number;
1857
+ testsCompleted: number;
1858
+ trend: "stable" | "up" | "down";
1859
+ changePercent: number | undefined;
1860
+ };
1861
+ bugDiscovery: {
1862
+ bugsFound: number;
1863
+ bugsPerTest: number;
1864
+ criticalBugs: number;
1865
+ trend: "stable" | "up" | "down";
1866
+ changePercent: number | undefined;
1867
+ };
1868
+ resolution: {
1869
+ bugsResolved: number;
1870
+ avgResolutionDays: number;
1871
+ trend: "stable" | "up" | "down";
1872
+ changePercent: number | undefined;
1873
+ };
1874
+ coverage: {
1875
+ routeCoverage: number;
1876
+ routesWithTests: number;
1877
+ totalRoutes: number;
1878
+ };
1879
+ testerHealth: {
1880
+ activeTesters: number;
1881
+ totalTesters: number;
1882
+ utilizationPercent: number;
1883
+ };
1884
+ };
1885
+ healthScore: {
1886
+ score: number;
1887
+ grade: string;
1888
+ breakdown: {
1889
+ coverage: number;
1890
+ velocity: number;
1891
+ resolution: number;
1892
+ stability: number;
1893
+ };
1894
+ };
1895
+ recommendations: string[];
1896
+ period: {
1897
+ days: number;
1898
+ start: string;
1899
+ end: string;
1900
+ };
1901
+ }>;
1902
+ getQASessions(args: Parameters<typeof getQASessions>[2]): Promise<{
1903
+ error: string;
1904
+ sessions?: undefined;
1905
+ summary?: undefined;
1906
+ } | {
1907
+ sessions: {
1908
+ id: any;
1909
+ focus_area: any;
1910
+ track: any;
1911
+ platform: any;
1912
+ started_at: any;
1913
+ ended_at: any;
1914
+ notes: any;
1915
+ routes_covered: any;
1916
+ status: any;
1917
+ duration_minutes: any;
1918
+ findings_count: any;
1919
+ bugs_filed: any;
1920
+ created_at: any;
1921
+ tester: {
1922
+ id: any;
1923
+ name: any;
1924
+ email: any;
1925
+ }[];
1926
+ }[];
1927
+ summary: {
1928
+ total: number;
1929
+ active: number;
1930
+ completed: number;
1931
+ totalFindings: number;
1932
+ totalBugsFiled: number;
1933
+ };
1934
+ error?: undefined;
1935
+ }>;
1936
+ getQAAlerts(args: Parameters<typeof getQAAlerts>[2]): Promise<{
1937
+ error: string;
1938
+ alerts?: undefined;
1939
+ summary?: undefined;
1940
+ } | {
1941
+ alerts: {
1942
+ id: any;
1943
+ type: any;
1944
+ severity: any;
1945
+ title: any;
1946
+ description: any;
1947
+ route: any;
1948
+ track: any;
1949
+ recommendation: any;
1950
+ action_type: any;
1951
+ status: any;
1952
+ created_at: any;
1953
+ }[];
1954
+ summary: {
1955
+ total: number;
1956
+ critical: number;
1957
+ warning: number;
1958
+ info: number;
1959
+ byType: {
1960
+ hot_spot: number;
1961
+ coverage_gap: number;
1962
+ track_gap: number;
1963
+ };
1964
+ };
1965
+ error?: undefined;
1966
+ }>;
1967
+ getDeploymentAnalysis(args: Parameters<typeof getDeploymentAnalysis>[2]): Promise<{
1968
+ error: string;
1969
+ deployment?: undefined;
1970
+ deployments?: undefined;
1971
+ summary?: undefined;
1972
+ } | {
1973
+ deployment: any;
1974
+ error?: undefined;
1975
+ deployments?: undefined;
1976
+ summary?: undefined;
1977
+ } | {
1978
+ deployments: {
1979
+ id: any;
1980
+ environment: any;
1981
+ commit_sha: any;
1982
+ commit_message: any;
1983
+ branch: any;
1984
+ deployed_at: any;
1985
+ risk_score: any;
1986
+ routes_affected: any;
1987
+ testing_priority: any;
1988
+ verified: boolean;
1989
+ }[];
1990
+ summary: {
1991
+ total: number;
1992
+ avgRiskScore: number;
1993
+ highRisk: number;
1994
+ verified: number;
1995
+ };
1996
+ error?: undefined;
1997
+ deployment?: undefined;
1998
+ }>;
1999
+ getTesterRecommendations(args: Parameters<typeof getTesterRecommendations>[2]): Promise<{
2000
+ error: string;
2001
+ test_case?: undefined;
2002
+ recommendations?: undefined;
2003
+ } | {
2004
+ test_case: {
2005
+ id: string;
2006
+ test_key: any;
2007
+ title: any;
2008
+ track: any;
2009
+ } | null;
2010
+ recommendations: any;
2011
+ error?: undefined;
2012
+ }>;
2013
+ analyzeCommitForTesting(args: Parameters<typeof analyzeCommitForTesting>[2]): Promise<{
2014
+ commit_sha: string | undefined;
2015
+ files_analyzed: number;
2016
+ risk_score: number;
2017
+ affected_routes: {
2018
+ route: string;
2019
+ feature?: string;
2020
+ confidence: number;
2021
+ matched_files: string[];
2022
+ }[];
2023
+ bug_history_summary: {
2024
+ total: number;
2025
+ critical: number;
2026
+ high: number;
2027
+ };
2028
+ testing_recommendations: {
2029
+ route: string;
2030
+ feature: string | undefined;
2031
+ priority: string;
2032
+ reason: string;
2033
+ recent_bugs: number;
2034
+ }[];
2035
+ deployment_recorded: boolean;
2036
+ }>;
2037
+ getTestingPatterns(args: Parameters<typeof getTestingPatterns>[2]): Promise<{
2038
+ patterns: {
2039
+ title: any;
2040
+ category: any;
2041
+ track: any;
2042
+ severity: any;
2043
+ description: any;
2044
+ why_it_happens: any;
2045
+ suggested_tests: any;
2046
+ common_fix: any;
2047
+ source: any;
2048
+ frameworks: any;
2049
+ }[];
2050
+ summary: {
2051
+ total: number;
2052
+ by_severity: {
2053
+ critical: number;
2054
+ high: number;
2055
+ medium: number;
2056
+ low: number;
2057
+ };
2058
+ by_track: any;
2059
+ };
2060
+ note: string;
2061
+ }>;
2062
+ analyzeChangesForTests(args: Parameters<typeof analyzeChangesForTests>[2]): Promise<{
2063
+ analysis: {
2064
+ change_type: "feature" | "bugfix" | "refactor" | "ui_change" | "api_change" | "config";
2065
+ files_changed: number;
2066
+ file_types: {
2067
+ hasUIComponents: boolean;
2068
+ hasAPIRoutes: boolean;
2069
+ hasTests: boolean;
2070
+ hasStyles: boolean;
2071
+ hasConfig: boolean;
2072
+ primaryType: string;
2073
+ };
2074
+ affected_routes: string[];
2075
+ existing_coverage: number;
2076
+ related_bugs: number;
2077
+ coverage_ratio: number;
2078
+ };
2079
+ recommendation: {
2080
+ should_create_tests: boolean;
2081
+ urgency: string;
2082
+ reason: string;
2083
+ };
2084
+ suggestions: {
2085
+ create_command: string;
2086
+ test_key: string;
2087
+ title: string;
2088
+ description: string;
2089
+ track: string;
2090
+ priority: string;
2091
+ target_route: string | null;
2092
+ rationale: string;
2093
+ steps: Array<{
2094
+ stepNumber: number;
2095
+ action: string;
2096
+ expectedResult: string;
2097
+ }>;
2098
+ expected_result: string;
2099
+ }[];
2100
+ existing_tests: {
2101
+ test_key: any;
2102
+ title: any;
2103
+ target_route: any;
2104
+ }[];
2105
+ next_steps: string[];
2106
+ }>;
2107
+ createBugReport(args: Parameters<typeof createBugReport>[2]): Promise<{
2108
+ error: string;
2109
+ success?: undefined;
2110
+ report_id?: undefined;
2111
+ message?: undefined;
2112
+ details?: undefined;
2113
+ } | {
2114
+ success: boolean;
2115
+ report_id: any;
2116
+ message: string;
2117
+ details: {
2118
+ id: any;
2119
+ severity: string;
2120
+ file: string | undefined;
2121
+ line: number | undefined;
2122
+ };
2123
+ error?: undefined;
2124
+ }>;
2125
+ getBugsForFile(args: Parameters<typeof getBugsForFile>[2]): Promise<{
2126
+ error: string;
2127
+ file?: undefined;
2128
+ direct_bugs?: undefined;
2129
+ related_bugs?: undefined;
2130
+ summary?: undefined;
2131
+ recommendation?: undefined;
2132
+ } | {
2133
+ file: string;
2134
+ direct_bugs: {
2135
+ id: any;
2136
+ title: any;
2137
+ severity: any;
2138
+ status: any;
2139
+ line: any;
2140
+ description: any;
2141
+ }[];
2142
+ related_bugs: {
2143
+ id: any;
2144
+ title: any;
2145
+ severity: any;
2146
+ status: any;
2147
+ source_file: any;
2148
+ }[];
2149
+ summary: {
2150
+ total: number;
2151
+ critical: number;
2152
+ open: number;
2153
+ };
2154
+ recommendation: string;
2155
+ error?: undefined;
2156
+ }>;
2157
+ markFixedWithCommit(args: Parameters<typeof markFixedWithCommit>[2]): Promise<{
2158
+ error: string;
2159
+ success?: undefined;
2160
+ message?: undefined;
2161
+ report_id?: undefined;
2162
+ commit?: undefined;
2163
+ tester_notified?: undefined;
2164
+ next_steps?: undefined;
2165
+ } | {
2166
+ success: boolean;
2167
+ message: string;
2168
+ report_id: string;
2169
+ commit: string;
2170
+ tester_notified: boolean;
2171
+ next_steps: string[];
2172
+ error?: undefined;
2173
+ }>;
2174
+ getBugsAffectingCode(args: Parameters<typeof getBugsAffectingCode>[2]): Promise<{
2175
+ error: string;
2176
+ files_checked?: undefined;
2177
+ affected_bugs?: undefined;
2178
+ summary?: undefined;
2179
+ warnings?: undefined;
2180
+ recommendation?: undefined;
2181
+ } | {
2182
+ files_checked: string[];
2183
+ affected_bugs: {
2184
+ id: string;
2185
+ title: string;
2186
+ severity: string;
2187
+ status: string;
2188
+ matched_file: string;
2189
+ match_type: "direct" | "related" | "route";
2190
+ }[];
2191
+ summary: {
2192
+ total: number;
2193
+ critical: number;
2194
+ high: number;
2195
+ direct_matches: number;
2196
+ };
2197
+ warnings: string[];
2198
+ recommendation: string;
2199
+ error?: undefined;
2200
+ }>;
2201
+ linkBugToCode(args: Parameters<typeof linkBugToCode>[2]): Promise<{
2202
+ error: string;
2203
+ success?: undefined;
2204
+ message?: undefined;
2205
+ report_id?: undefined;
2206
+ } | {
2207
+ success: boolean;
2208
+ message: string;
2209
+ report_id: string;
2210
+ error?: undefined;
2211
+ }>;
2212
+ createRegressionTest(args: Parameters<typeof createRegressionTest>[2]): Promise<{
2213
+ error: string;
2214
+ current_status?: undefined;
2215
+ success?: undefined;
2216
+ test_case?: undefined;
2217
+ message?: undefined;
2218
+ original_bug?: undefined;
2219
+ } | {
2220
+ error: string;
2221
+ current_status: any;
2222
+ success?: undefined;
2223
+ test_case?: undefined;
2224
+ message?: undefined;
2225
+ original_bug?: undefined;
2226
+ } | {
2227
+ success: boolean;
2228
+ test_case: {
2229
+ id: any;
2230
+ test_key: any;
2231
+ title: any;
2232
+ type: string;
2233
+ };
2234
+ message: string;
2235
+ original_bug: {
2236
+ id: string;
2237
+ title: any;
2238
+ };
2239
+ error?: undefined;
2240
+ current_status?: undefined;
2241
+ }>;
2242
+ getPendingFixes(args: Parameters<typeof getPendingFixes>[2]): Promise<{
2243
+ error: string;
2244
+ fix_requests?: undefined;
2245
+ count?: undefined;
2246
+ message?: undefined;
2247
+ } | {
2248
+ fix_requests: {
2249
+ id: any;
2250
+ title: any;
2251
+ description: any;
2252
+ prompt: any;
2253
+ file_path: any;
2254
+ status: any;
2255
+ claimed_by: any;
2256
+ claimed_at: any;
2257
+ created_at: any;
2258
+ related_report: {
2259
+ id: any;
2260
+ title: any;
2261
+ severity: any;
2262
+ } | null;
2263
+ }[];
2264
+ count: number;
2265
+ message: string;
2266
+ error?: undefined;
2267
+ }>;
2268
+ claimFixRequest(args: Parameters<typeof claimFixRequest>[2]): Promise<{
2269
+ error: string;
2270
+ status?: undefined;
2271
+ success?: undefined;
2272
+ message?: undefined;
2273
+ fix_request?: undefined;
2274
+ next_steps?: undefined;
2275
+ } | {
2276
+ error: string;
2277
+ status: any;
2278
+ success?: undefined;
2279
+ message?: undefined;
2280
+ fix_request?: undefined;
2281
+ next_steps?: undefined;
2282
+ } | {
2283
+ success: boolean;
2284
+ message: string;
2285
+ fix_request: {
2286
+ id: string;
2287
+ title: any;
2288
+ prompt: any;
2289
+ };
2290
+ next_steps: string[];
2291
+ error?: undefined;
2292
+ status?: undefined;
2293
+ }>;
2294
+ completeFixRequest(args: Parameters<typeof completeFixRequest>[2]): Promise<{
2295
+ error: string;
2296
+ success?: undefined;
2297
+ message?: undefined;
2298
+ fix_request_id?: undefined;
2299
+ status?: undefined;
2300
+ } | {
2301
+ success: boolean;
2302
+ message: string;
2303
+ fix_request_id: string;
2304
+ status: unknown;
2305
+ error?: undefined;
2306
+ }>;
2307
+ listTesters(args: Parameters<typeof listTesters>[2]): Promise<{
2308
+ error: string;
2309
+ count?: undefined;
2310
+ testers?: undefined;
2311
+ } | {
2312
+ count: number;
2313
+ testers: {
2314
+ id: any;
2315
+ name: any;
2316
+ email: any;
2317
+ status: any;
2318
+ platforms: any;
2319
+ tier: any;
2320
+ assignedCount: any;
2321
+ completedCount: any;
2322
+ notes: any;
2323
+ }[];
2324
+ error?: undefined;
2325
+ }>;
2326
+ createTester(args: Parameters<typeof createTester>[2]): Promise<{
2327
+ error: string;
2328
+ success?: undefined;
2329
+ tester?: undefined;
2330
+ message?: undefined;
2331
+ } | {
2332
+ success: boolean;
2333
+ tester: {
2334
+ id: any;
2335
+ name: any;
2336
+ email: any;
2337
+ status: any;
2338
+ platforms: any;
2339
+ tier: any;
2340
+ notes: any;
2341
+ createdAt: any;
2342
+ };
2343
+ message: string;
2344
+ error?: undefined;
2345
+ }>;
2346
+ updateTester(args: Parameters<typeof updateTester>[2]): Promise<{
2347
+ error: string;
2348
+ success?: undefined;
2349
+ tester?: undefined;
2350
+ updatedFields?: undefined;
2351
+ } | {
2352
+ success: boolean;
2353
+ tester: {
2354
+ id: any;
2355
+ name: any;
2356
+ email: any;
2357
+ status: any;
2358
+ platforms: any;
2359
+ tier: any;
2360
+ notes: any;
2361
+ };
2362
+ updatedFields: string[];
2363
+ error?: undefined;
2364
+ }>;
2365
+ getTesterWorkload(args: Parameters<typeof getTesterWorkload>[2]): Promise<{
2366
+ error: string;
2367
+ tester?: undefined;
2368
+ totalAssignments?: undefined;
2369
+ counts?: undefined;
2370
+ activeLoad?: undefined;
2371
+ recentAssignments?: undefined;
2372
+ } | {
2373
+ tester: {
2374
+ id: any;
2375
+ name: any;
2376
+ email: any;
2377
+ status: any;
2378
+ platforms: any;
2379
+ tier: any;
2380
+ };
2381
+ totalAssignments: number;
2382
+ counts: Record<string, number>;
2383
+ activeLoad: number;
2384
+ recentAssignments: {
2385
+ id: any;
2386
+ status: any;
2387
+ assignedAt: any;
2388
+ completedAt: any;
2389
+ testCase: {
2390
+ testKey: any;
2391
+ title: any;
2392
+ priority: any;
2393
+ } | null;
2394
+ testRun: any;
2395
+ }[];
2396
+ error?: undefined;
2397
+ }>;
2398
+ getBugTrends(args: Parameters<typeof getBugTrends>[2]): Promise<{
2399
+ error: string;
2400
+ period?: undefined;
2401
+ groupBy?: undefined;
2402
+ totalReports?: undefined;
2403
+ weeks?: undefined;
2404
+ breakdown?: undefined;
2405
+ } | {
2406
+ period: string;
2407
+ groupBy: string;
2408
+ totalReports: number;
2409
+ weeks: {
2410
+ count: number;
2411
+ critical: number;
2412
+ high: number;
2413
+ medium: number;
2414
+ low: number;
2415
+ week: string;
2416
+ }[];
2417
+ error?: undefined;
2418
+ breakdown?: undefined;
2419
+ } | {
2420
+ period: string;
2421
+ groupBy: string;
2422
+ totalReports: number;
2423
+ breakdown: Record<string, number>;
2424
+ error?: undefined;
2425
+ weeks?: undefined;
2426
+ }>;
2427
+ getTesterLeaderboard(args: Parameters<typeof getTesterLeaderboard>[2]): Promise<{
2428
+ error: string;
2429
+ period?: undefined;
2430
+ sortedBy?: undefined;
2431
+ leaderboard?: undefined;
2432
+ } | {
2433
+ period: string;
2434
+ sortedBy: string;
2435
+ leaderboard: any[];
2436
+ error?: undefined;
2437
+ }>;
2438
+ exportTestResults(args: Parameters<typeof exportTestResults>[2]): Promise<{
2439
+ error: string;
2440
+ testRun?: undefined;
2441
+ summary?: undefined;
2442
+ assignments?: undefined;
2443
+ } | {
2444
+ testRun: {
2445
+ id: any;
2446
+ name: any;
2447
+ description: any;
2448
+ status: any;
2449
+ startedAt: any;
2450
+ completedAt: any;
2451
+ createdAt: any;
2452
+ };
2453
+ summary: {
2454
+ totalAssignments: number;
2455
+ passed: number;
2456
+ failed: number;
2457
+ blocked: number;
2458
+ skipped: number;
2459
+ pending: number;
2460
+ inProgress: number;
2461
+ passRate: number;
2462
+ };
2463
+ assignments: {
2464
+ id: any;
2465
+ status: any;
2466
+ assignedAt: any;
2467
+ startedAt: any;
2468
+ completedAt: any;
2469
+ durationSeconds: any;
2470
+ isVerification: any;
2471
+ notes: any;
2472
+ skipReason: any;
2473
+ testResult: any;
2474
+ feedbackRating: any;
2475
+ feedbackNote: any;
2476
+ testCase: {
2477
+ id: any;
2478
+ testKey: any;
2479
+ title: any;
2480
+ priority: any;
2481
+ description: any;
2482
+ targetRoute: any;
2483
+ } | null;
2484
+ tester: {
2485
+ id: any;
2486
+ name: any;
2487
+ email: any;
2488
+ } | null;
2489
+ }[];
2490
+ error?: undefined;
2491
+ }>;
2492
+ getTestingVelocity(args: Parameters<typeof getTestingVelocity>[2]): Promise<{
2493
+ error: string;
2494
+ period?: undefined;
2495
+ totalCompleted?: undefined;
2496
+ averagePerDay?: undefined;
2497
+ trend?: undefined;
2498
+ daily?: undefined;
2499
+ } | {
2500
+ period: string;
2501
+ totalCompleted: number;
2502
+ averagePerDay: number;
2503
+ trend: string;
2504
+ daily: {
2505
+ date: string;
2506
+ count: number;
2507
+ }[];
2508
+ error?: undefined;
2509
+ }>;
2510
+ }
2511
+
2512
+ export { BugBearAdmin, type BugBearAdminOptions, analyzeChangesForTests, analyzeCommitForTesting, analyzeFileTypes, assignTests, bulkUpdateReports, claimFixRequest, completeFixRequest, createBugReport, createRegressionTest, createTestCase, createTestRun, createTester, deleteTestCases, exportTestResults, extractFunctionName, generateDeployChecklist, getBugPatterns, getBugTrends, getBugsAffectingCode, getBugsForFile, getCoverageGaps, getCoverageMatrix, getDeploymentAnalysis, getPendingFixes, getProjectInfo, getQAAlerts, getQAHealth, getQASessions, getQaTracks, getRegressions, getReport, getReportContext, getStaleCoverage, getTestPriorities, getTesterLeaderboard, getTesterRecommendations, getTesterWorkload, getTestingPatterns, getTestingVelocity, getTrackTemplates, isValidUUID, linkBugToCode, listReports, listTestAssignments, listTestCases, listTestRuns, listTesters, markFixedWithCommit, sanitizeSearchQuery, searchReports, suggestTestCases, updateReportStatus, updateTestCase, updateTester };