@kb-labs/quality-entry 2.104.0 → 2.106.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 (42) hide show
  1. package/dist/manifest.json +1394 -0
  2. package/dist/widgets/117.js +2 -3
  3. package/dist/widgets/165.js +1 -2
  4. package/dist/widgets/326.js +1 -2
  5. package/dist/widgets/370.js +1 -2
  6. package/dist/widgets/405.js +1 -2
  7. package/dist/widgets/46.js +2 -3
  8. package/dist/widgets/50.js +1 -2
  9. package/dist/widgets/546.js +1 -2
  10. package/dist/widgets/62.js +2 -3
  11. package/dist/widgets/648.js +1 -2
  12. package/dist/widgets/669.js +1 -2
  13. package/dist/widgets/707.js +1 -2
  14. package/dist/widgets/733.js +2 -3
  15. package/dist/widgets/775.js +1 -2
  16. package/dist/widgets/78.js +1 -2
  17. package/dist/widgets/945.js +1 -2
  18. package/dist/widgets/968.js +1 -2
  19. package/dist/widgets/__federation_expose_QualityOverview.js +1 -2
  20. package/dist/widgets/mf-manifest.json +12 -12
  21. package/dist/widgets/mf-stats.json +16 -16
  22. package/dist/widgets/remoteEntry.js +3 -4
  23. package/package.json +28 -28
  24. package/dist/widgets/117.js.map +0 -1
  25. package/dist/widgets/165.js.map +0 -1
  26. package/dist/widgets/326.js.map +0 -1
  27. package/dist/widgets/370.js.map +0 -1
  28. package/dist/widgets/405.js.map +0 -1
  29. package/dist/widgets/46.js.map +0 -1
  30. package/dist/widgets/50.js.map +0 -1
  31. package/dist/widgets/546.js.map +0 -1
  32. package/dist/widgets/62.js.map +0 -1
  33. package/dist/widgets/648.js.map +0 -1
  34. package/dist/widgets/669.js.map +0 -1
  35. package/dist/widgets/707.js.map +0 -1
  36. package/dist/widgets/733.js.map +0 -1
  37. package/dist/widgets/775.js.map +0 -1
  38. package/dist/widgets/78.js.map +0 -1
  39. package/dist/widgets/945.js.map +0 -1
  40. package/dist/widgets/968.js.map +0 -1
  41. package/dist/widgets/__federation_expose_QualityOverview.js.map +0 -1
  42. package/dist/widgets/remoteEntry.js.map +0 -1
@@ -0,0 +1,1394 @@
1
+ {
2
+ "schema": "kb.plugin/3",
3
+ "id": "@kb-labs/quality",
4
+ "version": "0.1.0",
5
+ "configSection": "quality",
6
+ "display": {
7
+ "name": "Quality",
8
+ "description": "Code quality, architecture analysis, and trend tracking",
9
+ "tags": [
10
+ "quality",
11
+ "architecture",
12
+ "coupling",
13
+ "monorepo"
14
+ ]
15
+ },
16
+ "platform": {
17
+ "requires": [
18
+ "storage",
19
+ "cache"
20
+ ],
21
+ "optional": [
22
+ "analytics",
23
+ "logger"
24
+ ]
25
+ },
26
+ "cli": {
27
+ "groupMeta": [
28
+ {
29
+ "path": "quality",
30
+ "describe": "Code quality, architecture analysis, and trend tracking."
31
+ },
32
+ {
33
+ "path": "quality check",
34
+ "describe": "Static analysis checks (layers, types, builds, tests)"
35
+ },
36
+ {
37
+ "path": "quality fix",
38
+ "describe": "Auto-fix quality issues"
39
+ }
40
+ ],
41
+ "commands": [
42
+ {
43
+ "path": "quality stats",
44
+ "category": "Overview",
45
+ "operationType": "read",
46
+ "describe": "Monorepo statistics",
47
+ "handler": "./cli/commands/stats.js#default",
48
+ "flags": [
49
+ {
50
+ "name": "json",
51
+ "type": "boolean",
52
+ "default": false,
53
+ "description": "Output JSON format"
54
+ },
55
+ {
56
+ "name": "md",
57
+ "type": "boolean",
58
+ "default": false,
59
+ "description": "Output Markdown table"
60
+ },
61
+ {
62
+ "name": "health",
63
+ "type": "boolean",
64
+ "default": false,
65
+ "description": "Show health score"
66
+ },
67
+ {
68
+ "name": "refresh",
69
+ "type": "boolean",
70
+ "default": false,
71
+ "description": "Bypass cache and recalculate"
72
+ }
73
+ ],
74
+ "examples": [
75
+ "kb quality stats",
76
+ "kb quality stats --json"
77
+ ],
78
+ "permissions": {
79
+ "fs": {
80
+ "read": [
81
+ ".kb/**",
82
+ "**"
83
+ ],
84
+ "write": [
85
+ ".kb/**",
86
+ "**"
87
+ ]
88
+ },
89
+ "env": {
90
+ "read": [
91
+ "HOME",
92
+ "USER",
93
+ "PATH",
94
+ "TMPDIR",
95
+ "NODE_ENV",
96
+ "KB_*"
97
+ ]
98
+ },
99
+ "shell": {
100
+ "allow": [
101
+ "pnpm",
102
+ "git"
103
+ ]
104
+ },
105
+ "platform": {
106
+ "analytics": true,
107
+ "cache": {
108
+ "namespaces": [
109
+ "quality:"
110
+ ]
111
+ }
112
+ },
113
+ "quotas": {
114
+ "timeoutMs": 300000,
115
+ "memoryMb": 1024
116
+ }
117
+ }
118
+ },
119
+ {
120
+ "path": "quality health",
121
+ "category": "Overview",
122
+ "operationType": "analyze",
123
+ "describe": "Multidimensional health score (architecture, TypeScript, dead code, deps)",
124
+ "handler": "./cli/commands/health.js#default",
125
+ "flags": [
126
+ {
127
+ "name": "json",
128
+ "type": "boolean",
129
+ "default": false,
130
+ "description": "Output JSON format"
131
+ },
132
+ {
133
+ "name": "package",
134
+ "type": "string",
135
+ "alias": "p",
136
+ "description": "Check health for specific package"
137
+ },
138
+ {
139
+ "name": "detailed",
140
+ "type": "boolean",
141
+ "alias": "d",
142
+ "default": false,
143
+ "description": "Show detailed breakdown"
144
+ },
145
+ {
146
+ "name": "refresh",
147
+ "type": "boolean",
148
+ "default": false,
149
+ "description": "Bypass cache and recompute"
150
+ }
151
+ ],
152
+ "examples": [
153
+ "kb quality health",
154
+ "kb quality health --json",
155
+ "kb quality health --detailed"
156
+ ],
157
+ "permissions": {
158
+ "fs": {
159
+ "read": [
160
+ ".kb/**",
161
+ "**"
162
+ ],
163
+ "write": [
164
+ ".kb/**",
165
+ "**"
166
+ ]
167
+ },
168
+ "env": {
169
+ "read": [
170
+ "HOME",
171
+ "USER",
172
+ "PATH",
173
+ "TMPDIR",
174
+ "NODE_ENV",
175
+ "KB_*"
176
+ ]
177
+ },
178
+ "shell": {
179
+ "allow": [
180
+ "pnpm",
181
+ "git"
182
+ ]
183
+ },
184
+ "platform": {
185
+ "analytics": true,
186
+ "cache": {
187
+ "namespaces": [
188
+ "quality:"
189
+ ]
190
+ }
191
+ },
192
+ "quotas": {
193
+ "timeoutMs": 300000,
194
+ "memoryMb": 1024
195
+ }
196
+ }
197
+ },
198
+ {
199
+ "path": "quality snapshot",
200
+ "category": "Overview",
201
+ "operationType": "mutate",
202
+ "describe": "Collect all metrics and save a snapshot for trend tracking",
203
+ "handler": "./cli/commands/snapshot.js#default",
204
+ "flags": [
205
+ {
206
+ "name": "json",
207
+ "type": "boolean",
208
+ "default": false,
209
+ "description": "Output JSON format"
210
+ }
211
+ ],
212
+ "examples": [
213
+ "kb quality snapshot",
214
+ "kb quality snapshot --json"
215
+ ],
216
+ "permissions": {
217
+ "fs": {
218
+ "read": [
219
+ ".kb/**",
220
+ "**"
221
+ ],
222
+ "write": [
223
+ ".kb/**",
224
+ "**"
225
+ ]
226
+ },
227
+ "env": {
228
+ "read": [
229
+ "HOME",
230
+ "USER",
231
+ "PATH",
232
+ "TMPDIR",
233
+ "NODE_ENV",
234
+ "KB_*"
235
+ ]
236
+ },
237
+ "shell": {
238
+ "allow": [
239
+ "pnpm",
240
+ "git"
241
+ ]
242
+ },
243
+ "platform": {
244
+ "analytics": true,
245
+ "cache": {
246
+ "namespaces": [
247
+ "quality:"
248
+ ]
249
+ }
250
+ },
251
+ "quotas": {
252
+ "timeoutMs": 300000,
253
+ "memoryMb": 1024
254
+ }
255
+ }
256
+ },
257
+ {
258
+ "path": "quality history",
259
+ "category": "Overview",
260
+ "operationType": "read",
261
+ "describe": "Show quality snapshot history and delta trends",
262
+ "handler": "./cli/commands/history.js#default",
263
+ "flags": [
264
+ {
265
+ "name": "json",
266
+ "type": "boolean",
267
+ "default": false,
268
+ "description": "Output JSON format"
269
+ },
270
+ {
271
+ "name": "limit",
272
+ "type": "number",
273
+ "default": 10,
274
+ "description": "Number of entries to show"
275
+ }
276
+ ],
277
+ "examples": [
278
+ "kb quality history",
279
+ "kb quality history --json",
280
+ "kb quality history --limit 20"
281
+ ],
282
+ "permissions": {
283
+ "fs": {
284
+ "read": [
285
+ ".kb/**",
286
+ "**"
287
+ ],
288
+ "write": [
289
+ ".kb/**",
290
+ "**"
291
+ ]
292
+ },
293
+ "env": {
294
+ "read": [
295
+ "HOME",
296
+ "USER",
297
+ "PATH",
298
+ "TMPDIR",
299
+ "NODE_ENV",
300
+ "KB_*"
301
+ ]
302
+ },
303
+ "shell": {
304
+ "allow": [
305
+ "pnpm",
306
+ "git"
307
+ ]
308
+ },
309
+ "platform": {
310
+ "analytics": true,
311
+ "cache": {
312
+ "namespaces": [
313
+ "quality:"
314
+ ]
315
+ }
316
+ },
317
+ "quotas": {
318
+ "timeoutMs": 300000,
319
+ "memoryMb": 1024
320
+ }
321
+ }
322
+ },
323
+ {
324
+ "path": "quality context",
325
+ "category": "Agent",
326
+ "operationType": "read",
327
+ "describe": "Package context for agents: layer, dependents, dependencies (fast, stateless)",
328
+ "handler": "./cli/commands/context.js#default",
329
+ "flags": [
330
+ {
331
+ "name": "package",
332
+ "type": "string",
333
+ "alias": "p",
334
+ "description": "Package name to get context for"
335
+ },
336
+ {
337
+ "name": "json",
338
+ "type": "boolean",
339
+ "default": false,
340
+ "description": "Output JSON format"
341
+ }
342
+ ],
343
+ "examples": [
344
+ "kb quality context --package @kb-labs/sdk",
345
+ "kb quality context --package @kb-labs/sdk --json",
346
+ "kb quality context --json"
347
+ ],
348
+ "permissions": {
349
+ "fs": {
350
+ "read": [
351
+ ".kb/**",
352
+ "**"
353
+ ],
354
+ "write": [
355
+ ".kb/**",
356
+ "**"
357
+ ]
358
+ },
359
+ "env": {
360
+ "read": [
361
+ "HOME",
362
+ "USER",
363
+ "PATH",
364
+ "TMPDIR",
365
+ "NODE_ENV",
366
+ "KB_*"
367
+ ]
368
+ },
369
+ "shell": {
370
+ "allow": [
371
+ "pnpm",
372
+ "git"
373
+ ]
374
+ },
375
+ "platform": {
376
+ "analytics": true,
377
+ "cache": {
378
+ "namespaces": [
379
+ "quality:"
380
+ ]
381
+ }
382
+ },
383
+ "quotas": {
384
+ "timeoutMs": 300000,
385
+ "memoryMb": 1024
386
+ }
387
+ }
388
+ },
389
+ {
390
+ "path": "quality gate",
391
+ "category": "Agent",
392
+ "operationType": "analyze",
393
+ "describe": "Architecture gate: fail if new layering violations introduced",
394
+ "handler": "./cli/commands/gate.js#default",
395
+ "flags": [
396
+ {
397
+ "name": "json",
398
+ "type": "boolean",
399
+ "default": false,
400
+ "description": "Output JSON format"
401
+ },
402
+ {
403
+ "name": "strict",
404
+ "type": "boolean",
405
+ "default": false,
406
+ "description": "Fail even on pre-existing violations (not just new ones)"
407
+ }
408
+ ],
409
+ "examples": [
410
+ "kb quality gate",
411
+ "kb quality gate --json",
412
+ "kb quality gate --strict"
413
+ ],
414
+ "permissions": {
415
+ "fs": {
416
+ "read": [
417
+ ".kb/**",
418
+ "**"
419
+ ],
420
+ "write": [
421
+ ".kb/**",
422
+ "**"
423
+ ]
424
+ },
425
+ "env": {
426
+ "read": [
427
+ "HOME",
428
+ "USER",
429
+ "PATH",
430
+ "TMPDIR",
431
+ "NODE_ENV",
432
+ "KB_*"
433
+ ]
434
+ },
435
+ "shell": {
436
+ "allow": [
437
+ "pnpm",
438
+ "git"
439
+ ]
440
+ },
441
+ "platform": {
442
+ "analytics": true,
443
+ "cache": {
444
+ "namespaces": [
445
+ "quality:"
446
+ ]
447
+ }
448
+ },
449
+ "quotas": {
450
+ "timeoutMs": 300000,
451
+ "memoryMb": 1024
452
+ }
453
+ }
454
+ },
455
+ {
456
+ "path": "quality check layers",
457
+ "category": "Architecture",
458
+ "operationType": "analyze",
459
+ "describe": "Detect layering violations (lower layer importing higher layer)",
460
+ "handler": "./cli/commands/check-layers.js#default",
461
+ "flags": [
462
+ {
463
+ "name": "json",
464
+ "type": "boolean",
465
+ "default": false,
466
+ "description": "Output JSON format"
467
+ },
468
+ {
469
+ "name": "package",
470
+ "type": "string",
471
+ "alias": "p",
472
+ "description": "Filter violations by package name"
473
+ }
474
+ ],
475
+ "examples": [
476
+ "kb quality check layers",
477
+ "kb quality check layers --json",
478
+ "kb quality check layers --package @kb-labs/plugins-qa"
479
+ ],
480
+ "permissions": {
481
+ "fs": {
482
+ "read": [
483
+ ".kb/**",
484
+ "**"
485
+ ],
486
+ "write": [
487
+ ".kb/**",
488
+ "**"
489
+ ]
490
+ },
491
+ "env": {
492
+ "read": [
493
+ "HOME",
494
+ "USER",
495
+ "PATH",
496
+ "TMPDIR",
497
+ "NODE_ENV",
498
+ "KB_*"
499
+ ]
500
+ },
501
+ "shell": {
502
+ "allow": [
503
+ "pnpm",
504
+ "git"
505
+ ]
506
+ },
507
+ "platform": {
508
+ "analytics": true,
509
+ "cache": {
510
+ "namespaces": [
511
+ "quality:"
512
+ ]
513
+ }
514
+ },
515
+ "quotas": {
516
+ "timeoutMs": 300000,
517
+ "memoryMb": 1024
518
+ }
519
+ }
520
+ },
521
+ {
522
+ "path": "quality coupling",
523
+ "category": "Architecture",
524
+ "operationType": "analyze",
525
+ "describe": "Show coupling metrics per package (Ca/Ce/instability)",
526
+ "handler": "./cli/commands/coupling.js#default",
527
+ "flags": [
528
+ {
529
+ "name": "json",
530
+ "type": "boolean",
531
+ "default": false,
532
+ "description": "Output JSON format"
533
+ },
534
+ {
535
+ "name": "sort",
536
+ "type": "string",
537
+ "default": "instability",
538
+ "description": "Sort by: instability | coupled"
539
+ },
540
+ {
541
+ "name": "top",
542
+ "type": "number",
543
+ "default": 10,
544
+ "description": "Show top N packages"
545
+ }
546
+ ],
547
+ "examples": [
548
+ "kb quality coupling",
549
+ "kb quality coupling --json",
550
+ "kb quality coupling --sort coupled --top 20"
551
+ ],
552
+ "permissions": {
553
+ "fs": {
554
+ "read": [
555
+ ".kb/**",
556
+ "**"
557
+ ],
558
+ "write": [
559
+ ".kb/**",
560
+ "**"
561
+ ]
562
+ },
563
+ "env": {
564
+ "read": [
565
+ "HOME",
566
+ "USER",
567
+ "PATH",
568
+ "TMPDIR",
569
+ "NODE_ENV",
570
+ "KB_*"
571
+ ]
572
+ },
573
+ "shell": {
574
+ "allow": [
575
+ "pnpm",
576
+ "git"
577
+ ]
578
+ },
579
+ "platform": {
580
+ "analytics": true,
581
+ "cache": {
582
+ "namespaces": [
583
+ "quality:"
584
+ ]
585
+ }
586
+ },
587
+ "quotas": {
588
+ "timeoutMs": 300000,
589
+ "memoryMb": 1024
590
+ }
591
+ }
592
+ },
593
+ {
594
+ "path": "quality build order",
595
+ "category": "Architecture",
596
+ "operationType": "analyze",
597
+ "describe": "Topological build order",
598
+ "handler": "./cli/commands/build-order.js#default",
599
+ "flags": [
600
+ {
601
+ "name": "package",
602
+ "type": "string",
603
+ "alias": "p",
604
+ "description": "Calculate build order for specific package"
605
+ },
606
+ {
607
+ "name": "layers",
608
+ "type": "boolean",
609
+ "default": false,
610
+ "description": "Show build layers (parallel groups)"
611
+ },
612
+ {
613
+ "name": "script",
614
+ "type": "boolean",
615
+ "default": false,
616
+ "description": "Output as shell script"
617
+ },
618
+ {
619
+ "name": "json",
620
+ "type": "boolean",
621
+ "default": false,
622
+ "description": "Output JSON format"
623
+ }
624
+ ],
625
+ "examples": [
626
+ "kb quality build order",
627
+ "kb quality build order --json"
628
+ ],
629
+ "permissions": {
630
+ "fs": {
631
+ "read": [
632
+ ".kb/**",
633
+ "**"
634
+ ],
635
+ "write": [
636
+ ".kb/**",
637
+ "**"
638
+ ]
639
+ },
640
+ "env": {
641
+ "read": [
642
+ "HOME",
643
+ "USER",
644
+ "PATH",
645
+ "TMPDIR",
646
+ "NODE_ENV",
647
+ "KB_*"
648
+ ]
649
+ },
650
+ "shell": {
651
+ "allow": [
652
+ "pnpm",
653
+ "git"
654
+ ]
655
+ },
656
+ "platform": {
657
+ "analytics": true,
658
+ "cache": {
659
+ "namespaces": [
660
+ "quality:"
661
+ ]
662
+ }
663
+ },
664
+ "quotas": {
665
+ "timeoutMs": 300000,
666
+ "memoryMb": 1024
667
+ }
668
+ }
669
+ },
670
+ {
671
+ "path": "quality cycles",
672
+ "category": "Architecture",
673
+ "operationType": "analyze",
674
+ "describe": "Detect circular dependencies",
675
+ "handler": "./cli/commands/cycles.js#default",
676
+ "flags": [
677
+ {
678
+ "name": "json",
679
+ "type": "boolean",
680
+ "default": false,
681
+ "description": "Output JSON format"
682
+ }
683
+ ],
684
+ "examples": [
685
+ "kb quality cycles",
686
+ "kb quality cycles --json"
687
+ ],
688
+ "permissions": {
689
+ "fs": {
690
+ "read": [
691
+ ".kb/**",
692
+ "**"
693
+ ],
694
+ "write": [
695
+ ".kb/**",
696
+ "**"
697
+ ]
698
+ },
699
+ "env": {
700
+ "read": [
701
+ "HOME",
702
+ "USER",
703
+ "PATH",
704
+ "TMPDIR",
705
+ "NODE_ENV",
706
+ "KB_*"
707
+ ]
708
+ },
709
+ "shell": {
710
+ "allow": [
711
+ "pnpm",
712
+ "git"
713
+ ]
714
+ },
715
+ "platform": {
716
+ "analytics": true,
717
+ "cache": {
718
+ "namespaces": [
719
+ "quality:"
720
+ ]
721
+ }
722
+ },
723
+ "quotas": {
724
+ "timeoutMs": 300000,
725
+ "memoryMb": 1024
726
+ }
727
+ }
728
+ },
729
+ {
730
+ "path": "quality dead code",
731
+ "category": "Checks",
732
+ "operationType": "analyze",
733
+ "describe": "Detect unused files, exports, and deps via knip",
734
+ "handler": "./cli/commands/dead-code.js#default",
735
+ "flags": [
736
+ {
737
+ "name": "package",
738
+ "type": "string",
739
+ "alias": "p",
740
+ "description": "Scan specific package only"
741
+ },
742
+ {
743
+ "name": "json",
744
+ "type": "boolean",
745
+ "default": false,
746
+ "description": "Output JSON format"
747
+ },
748
+ {
749
+ "name": "verbose",
750
+ "type": "boolean",
751
+ "alias": "v",
752
+ "default": false,
753
+ "description": "Show entry points and alive reasons"
754
+ },
755
+ {
756
+ "name": "auto-remove",
757
+ "type": "boolean",
758
+ "default": false,
759
+ "description": "Remove dead files (creates backup first)"
760
+ },
761
+ {
762
+ "name": "dry-run",
763
+ "type": "boolean",
764
+ "default": false,
765
+ "description": "Show what would be removed without actually deleting"
766
+ },
767
+ {
768
+ "name": "restore",
769
+ "type": "string",
770
+ "description": "Restore files from backup ID"
771
+ },
772
+ {
773
+ "name": "list-backups",
774
+ "type": "boolean",
775
+ "default": false,
776
+ "description": "List available backups"
777
+ },
778
+ {
779
+ "name": "refresh",
780
+ "type": "boolean",
781
+ "default": false,
782
+ "description": "Bypass cache and rescan"
783
+ }
784
+ ],
785
+ "examples": [
786
+ "kb quality dead code",
787
+ "kb quality dead code --json"
788
+ ],
789
+ "permissions": {
790
+ "fs": {
791
+ "read": [
792
+ ".kb/**",
793
+ "**"
794
+ ],
795
+ "write": [
796
+ ".kb/**",
797
+ "**"
798
+ ]
799
+ },
800
+ "env": {
801
+ "read": [
802
+ "HOME",
803
+ "USER",
804
+ "PATH",
805
+ "TMPDIR",
806
+ "NODE_ENV",
807
+ "KB_*"
808
+ ]
809
+ },
810
+ "shell": {
811
+ "allow": [
812
+ "pnpm",
813
+ "git"
814
+ ]
815
+ },
816
+ "platform": {
817
+ "analytics": true,
818
+ "cache": {
819
+ "namespaces": [
820
+ "quality:"
821
+ ]
822
+ }
823
+ },
824
+ "quotas": {
825
+ "timeoutMs": 300000,
826
+ "memoryMb": 1024
827
+ }
828
+ }
829
+ },
830
+ {
831
+ "path": "quality check types",
832
+ "category": "Checks",
833
+ "operationType": "analyze",
834
+ "describe": "TypeScript type safety analysis (any count, ts-ignore, errors)",
835
+ "handler": "./cli/commands/check-types.js#default",
836
+ "flags": [
837
+ {
838
+ "name": "package",
839
+ "type": "string",
840
+ "alias": "p",
841
+ "description": "Analyze types for specific package"
842
+ },
843
+ {
844
+ "name": "errors-only",
845
+ "type": "boolean",
846
+ "default": false,
847
+ "description": "Show only packages with errors"
848
+ },
849
+ {
850
+ "name": "json",
851
+ "type": "boolean",
852
+ "default": false,
853
+ "description": "Output JSON format"
854
+ },
855
+ {
856
+ "name": "refresh",
857
+ "type": "boolean",
858
+ "default": false,
859
+ "description": "Bypass cache and analyze fresh"
860
+ }
861
+ ],
862
+ "examples": [
863
+ "kb quality check types",
864
+ "kb quality check types --json"
865
+ ],
866
+ "permissions": {
867
+ "fs": {
868
+ "read": [
869
+ ".kb/**",
870
+ "**"
871
+ ],
872
+ "write": [
873
+ ".kb/**",
874
+ "**"
875
+ ]
876
+ },
877
+ "env": {
878
+ "read": [
879
+ "HOME",
880
+ "USER",
881
+ "PATH",
882
+ "TMPDIR",
883
+ "NODE_ENV",
884
+ "KB_*"
885
+ ]
886
+ },
887
+ "shell": {
888
+ "allow": [
889
+ "pnpm",
890
+ "git"
891
+ ]
892
+ },
893
+ "platform": {
894
+ "analytics": true,
895
+ "cache": {
896
+ "namespaces": [
897
+ "quality:"
898
+ ]
899
+ }
900
+ },
901
+ "quotas": {
902
+ "timeoutMs": 600000,
903
+ "memoryMb": 2048
904
+ }
905
+ }
906
+ },
907
+ {
908
+ "path": "quality check builds",
909
+ "category": "Checks",
910
+ "operationType": "analyze",
911
+ "describe": "Build status across monorepo",
912
+ "handler": "./cli/commands/check-builds.js#default",
913
+ "flags": [
914
+ {
915
+ "name": "package",
916
+ "type": "string",
917
+ "alias": "p",
918
+ "description": "Check builds for specific package"
919
+ },
920
+ {
921
+ "name": "timeout",
922
+ "type": "number",
923
+ "default": 30000,
924
+ "description": "Timeout per package in milliseconds"
925
+ },
926
+ {
927
+ "name": "json",
928
+ "type": "boolean",
929
+ "default": false,
930
+ "description": "Output JSON format"
931
+ },
932
+ {
933
+ "name": "refresh",
934
+ "type": "boolean",
935
+ "default": false,
936
+ "description": "Bypass cache and check fresh"
937
+ }
938
+ ],
939
+ "examples": [
940
+ "kb quality check builds",
941
+ "kb quality check builds --json"
942
+ ],
943
+ "permissions": {
944
+ "fs": {
945
+ "read": [
946
+ ".kb/**",
947
+ "**"
948
+ ],
949
+ "write": [
950
+ ".kb/**",
951
+ "**"
952
+ ]
953
+ },
954
+ "env": {
955
+ "read": [
956
+ "HOME",
957
+ "USER",
958
+ "PATH",
959
+ "TMPDIR",
960
+ "NODE_ENV",
961
+ "KB_*"
962
+ ]
963
+ },
964
+ "shell": {
965
+ "allow": [
966
+ "pnpm",
967
+ "git"
968
+ ]
969
+ },
970
+ "platform": {
971
+ "analytics": true,
972
+ "cache": {
973
+ "namespaces": [
974
+ "quality:"
975
+ ]
976
+ }
977
+ },
978
+ "quotas": {
979
+ "timeoutMs": 600000,
980
+ "memoryMb": 2048
981
+ }
982
+ }
983
+ },
984
+ {
985
+ "path": "quality check tests",
986
+ "category": "Checks",
987
+ "operationType": "execute",
988
+ "describe": "Run tests and track coverage",
989
+ "handler": "./cli/commands/check-tests.js#default",
990
+ "flags": [
991
+ {
992
+ "name": "package",
993
+ "type": "string",
994
+ "alias": "p",
995
+ "description": "Run tests for specific package"
996
+ },
997
+ {
998
+ "name": "timeout",
999
+ "type": "number",
1000
+ "default": 60000,
1001
+ "description": "Timeout per package in milliseconds"
1002
+ },
1003
+ {
1004
+ "name": "with-coverage",
1005
+ "type": "boolean",
1006
+ "default": false,
1007
+ "description": "Collect coverage statistics"
1008
+ },
1009
+ {
1010
+ "name": "coverage-only",
1011
+ "type": "boolean",
1012
+ "default": false,
1013
+ "description": "Only show existing coverage (skip test execution)"
1014
+ },
1015
+ {
1016
+ "name": "json",
1017
+ "type": "boolean",
1018
+ "default": false,
1019
+ "description": "Output JSON format"
1020
+ },
1021
+ {
1022
+ "name": "refresh",
1023
+ "type": "boolean",
1024
+ "default": false,
1025
+ "description": "Bypass cache and run fresh"
1026
+ }
1027
+ ],
1028
+ "examples": [
1029
+ "kb quality check tests",
1030
+ "kb quality check tests --with-coverage"
1031
+ ],
1032
+ "permissions": {
1033
+ "fs": {
1034
+ "read": [
1035
+ ".kb/**",
1036
+ "**"
1037
+ ],
1038
+ "write": [
1039
+ ".kb/**",
1040
+ "**"
1041
+ ]
1042
+ },
1043
+ "env": {
1044
+ "read": [
1045
+ "HOME",
1046
+ "USER",
1047
+ "PATH",
1048
+ "TMPDIR",
1049
+ "NODE_ENV",
1050
+ "KB_*"
1051
+ ]
1052
+ },
1053
+ "shell": {
1054
+ "allow": [
1055
+ "pnpm",
1056
+ "git"
1057
+ ]
1058
+ },
1059
+ "platform": {
1060
+ "analytics": true,
1061
+ "cache": {
1062
+ "namespaces": [
1063
+ "quality:"
1064
+ ]
1065
+ }
1066
+ },
1067
+ "quotas": {
1068
+ "timeoutMs": 600000,
1069
+ "memoryMb": 2048
1070
+ }
1071
+ }
1072
+ },
1073
+ {
1074
+ "path": "quality fix deps",
1075
+ "category": "Fixes",
1076
+ "operationType": "mutate",
1077
+ "describe": "Auto-fix dependency issues",
1078
+ "handler": "./cli/commands/fix-deps.js#default",
1079
+ "flags": [
1080
+ {
1081
+ "name": "dry-run",
1082
+ "type": "boolean",
1083
+ "default": false,
1084
+ "description": "Preview changes without applying them"
1085
+ },
1086
+ {
1087
+ "name": "remove-unused",
1088
+ "type": "boolean",
1089
+ "default": false,
1090
+ "description": "Remove unused dependencies"
1091
+ },
1092
+ {
1093
+ "name": "add-missing",
1094
+ "type": "boolean",
1095
+ "default": false,
1096
+ "description": "Add missing workspace dependencies"
1097
+ },
1098
+ {
1099
+ "name": "align-versions",
1100
+ "type": "boolean",
1101
+ "default": false,
1102
+ "description": "Align duplicate dependency versions"
1103
+ },
1104
+ {
1105
+ "name": "all",
1106
+ "type": "boolean",
1107
+ "default": false,
1108
+ "description": "Apply all fixes (remove-unused + add-missing + align-versions)"
1109
+ },
1110
+ {
1111
+ "name": "stats",
1112
+ "type": "boolean",
1113
+ "default": false,
1114
+ "description": "Show dependency statistics"
1115
+ },
1116
+ {
1117
+ "name": "json",
1118
+ "type": "boolean",
1119
+ "default": false,
1120
+ "description": "Output JSON format"
1121
+ }
1122
+ ],
1123
+ "examples": [
1124
+ "kb quality fix deps --dry-run",
1125
+ "kb quality fix deps --all"
1126
+ ],
1127
+ "permissions": {
1128
+ "fs": {
1129
+ "read": [
1130
+ ".kb/**",
1131
+ "**"
1132
+ ],
1133
+ "write": [
1134
+ ".kb/**",
1135
+ "**"
1136
+ ]
1137
+ },
1138
+ "env": {
1139
+ "read": [
1140
+ "HOME",
1141
+ "USER",
1142
+ "PATH",
1143
+ "TMPDIR",
1144
+ "NODE_ENV",
1145
+ "KB_*"
1146
+ ]
1147
+ },
1148
+ "shell": {
1149
+ "allow": [
1150
+ "pnpm",
1151
+ "git"
1152
+ ]
1153
+ },
1154
+ "platform": {
1155
+ "analytics": true,
1156
+ "cache": {
1157
+ "namespaces": [
1158
+ "quality:"
1159
+ ]
1160
+ }
1161
+ },
1162
+ "quotas": {
1163
+ "timeoutMs": 300000,
1164
+ "memoryMb": 1024
1165
+ }
1166
+ }
1167
+ },
1168
+ {
1169
+ "path": "quality visualize",
1170
+ "category": "Fixes",
1171
+ "operationType": "analyze",
1172
+ "describe": "Visualize dependency graph",
1173
+ "handler": "./cli/commands/visualize.js#default",
1174
+ "flags": [
1175
+ {
1176
+ "name": "package",
1177
+ "type": "string",
1178
+ "alias": "p",
1179
+ "description": "Focus on specific package"
1180
+ },
1181
+ {
1182
+ "name": "tree",
1183
+ "type": "boolean",
1184
+ "default": false,
1185
+ "description": "Show dependency tree"
1186
+ },
1187
+ {
1188
+ "name": "dot",
1189
+ "type": "boolean",
1190
+ "default": false,
1191
+ "description": "Output DOT format for graphviz"
1192
+ },
1193
+ {
1194
+ "name": "stats",
1195
+ "type": "boolean",
1196
+ "default": false,
1197
+ "description": "Show graph statistics"
1198
+ },
1199
+ {
1200
+ "name": "reverse",
1201
+ "type": "boolean",
1202
+ "default": false,
1203
+ "description": "Show reverse dependencies (who depends on this)"
1204
+ },
1205
+ {
1206
+ "name": "impact",
1207
+ "type": "boolean",
1208
+ "default": false,
1209
+ "description": "Show impact analysis (what will be affected)"
1210
+ },
1211
+ {
1212
+ "name": "json",
1213
+ "type": "boolean",
1214
+ "default": false,
1215
+ "description": "Output JSON format"
1216
+ }
1217
+ ],
1218
+ "examples": [
1219
+ "kb quality visualize --tree",
1220
+ "kb quality visualize --dot"
1221
+ ],
1222
+ "permissions": {
1223
+ "fs": {
1224
+ "read": [
1225
+ ".kb/**",
1226
+ "**"
1227
+ ],
1228
+ "write": [
1229
+ ".kb/**",
1230
+ "**"
1231
+ ]
1232
+ },
1233
+ "env": {
1234
+ "read": [
1235
+ "HOME",
1236
+ "USER",
1237
+ "PATH",
1238
+ "TMPDIR",
1239
+ "NODE_ENV",
1240
+ "KB_*"
1241
+ ]
1242
+ },
1243
+ "shell": {
1244
+ "allow": [
1245
+ "pnpm",
1246
+ "git"
1247
+ ]
1248
+ },
1249
+ "platform": {
1250
+ "analytics": true,
1251
+ "cache": {
1252
+ "namespaces": [
1253
+ "quality:"
1254
+ ]
1255
+ }
1256
+ },
1257
+ "quotas": {
1258
+ "timeoutMs": 300000,
1259
+ "memoryMb": 1024
1260
+ }
1261
+ }
1262
+ }
1263
+ ]
1264
+ },
1265
+ "rest": {
1266
+ "basePath": "/v1/plugins/quality",
1267
+ "routes": [
1268
+ {
1269
+ "method": "GET",
1270
+ "path": "/stats",
1271
+ "handler": "./rest/handlers/stats-handler.js#default",
1272
+ "timeoutMs": 120000
1273
+ },
1274
+ {
1275
+ "method": "GET",
1276
+ "path": "/health",
1277
+ "handler": "./rest/handlers/health-handler.js#default"
1278
+ },
1279
+ {
1280
+ "method": "GET",
1281
+ "path": "/layers",
1282
+ "handler": "./rest/handlers/layers-handler.js#default"
1283
+ },
1284
+ {
1285
+ "method": "GET",
1286
+ "path": "/coupling",
1287
+ "handler": "./rest/handlers/coupling-handler.js#default"
1288
+ },
1289
+ {
1290
+ "method": "GET",
1291
+ "path": "/dead-code",
1292
+ "handler": "./rest/handlers/knip-handler.js#default"
1293
+ },
1294
+ {
1295
+ "method": "GET",
1296
+ "path": "/history",
1297
+ "handler": "./rest/handlers/history-handler.js#default"
1298
+ },
1299
+ {
1300
+ "method": "POST",
1301
+ "path": "/snapshot",
1302
+ "handler": "./rest/handlers/snapshot-handler.js#default"
1303
+ },
1304
+ {
1305
+ "method": "GET",
1306
+ "path": "/dependencies",
1307
+ "handler": "./rest/handlers/dependencies-handler.js#default"
1308
+ },
1309
+ {
1310
+ "method": "GET",
1311
+ "path": "/build-order",
1312
+ "handler": "./rest/handlers/build-order-handler.js#default"
1313
+ },
1314
+ {
1315
+ "method": "GET",
1316
+ "path": "/cycles",
1317
+ "handler": "./rest/handlers/cycles-handler.js#default"
1318
+ },
1319
+ {
1320
+ "method": "GET",
1321
+ "path": "/graph",
1322
+ "handler": "./rest/handlers/graph-handler.js#default"
1323
+ },
1324
+ {
1325
+ "method": "GET",
1326
+ "path": "/stale",
1327
+ "handler": "./rest/handlers/stale-handler.js#default"
1328
+ }
1329
+ ]
1330
+ },
1331
+ "studio": {
1332
+ "version": 2,
1333
+ "remoteName": "qualityPlugin",
1334
+ "pages": [
1335
+ {
1336
+ "id": "quality.overview",
1337
+ "title": "Quality",
1338
+ "icon": "CheckCircleOutlined",
1339
+ "route": "/p/quality",
1340
+ "entry": "./QualityOverview",
1341
+ "order": 1
1342
+ }
1343
+ ],
1344
+ "menus": [
1345
+ {
1346
+ "id": "quality",
1347
+ "label": "Quality",
1348
+ "icon": "CheckCircleOutlined",
1349
+ "target": "quality.overview",
1350
+ "order": 40
1351
+ }
1352
+ ]
1353
+ },
1354
+ "permissions": {
1355
+ "fs": {
1356
+ "read": [
1357
+ ".kb/**",
1358
+ "**"
1359
+ ],
1360
+ "write": [
1361
+ ".kb/**",
1362
+ "**"
1363
+ ]
1364
+ },
1365
+ "env": {
1366
+ "read": [
1367
+ "HOME",
1368
+ "USER",
1369
+ "PATH",
1370
+ "TMPDIR",
1371
+ "NODE_ENV",
1372
+ "KB_*"
1373
+ ]
1374
+ },
1375
+ "shell": {
1376
+ "allow": [
1377
+ "pnpm",
1378
+ "git"
1379
+ ]
1380
+ },
1381
+ "platform": {
1382
+ "analytics": true,
1383
+ "cache": {
1384
+ "namespaces": [
1385
+ "quality:"
1386
+ ]
1387
+ }
1388
+ },
1389
+ "quotas": {
1390
+ "timeoutMs": 300000,
1391
+ "memoryMb": 1024
1392
+ }
1393
+ }
1394
+ }