@kb-labs/quality-entry 2.15.0 → 2.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +10 -10
- package/dist/index.js.map +1 -1
- package/dist/manifest.js +10 -10
- package/dist/manifest.js.map +1 -1
- package/dist/widgets/370.js +1 -1
- package/dist/widgets/370.js.map +1 -1
- package/dist/widgets/@mf-types.zip +0 -0
- package/dist/widgets/mf-manifest.json +5 -5
- package/dist/widgets/mf-stats.json +5 -5
- package/dist/widgets/remoteEntry.js +3 -3
- package/dist/widgets/remoteEntry.js.map +1 -1
- package/package.json +8 -8
package/dist/index.js
CHANGED
|
@@ -313,7 +313,7 @@ var manifest = {
|
|
|
313
313
|
// quality:stats - Monorepo statistics and health score
|
|
314
314
|
// ======================================================================
|
|
315
315
|
{
|
|
316
|
-
id: "
|
|
316
|
+
id: "stats",
|
|
317
317
|
group: "quality",
|
|
318
318
|
describe: "Get monorepo statistics and health score",
|
|
319
319
|
longDescription: "Analyzes monorepo structure, collects package statistics, dependency info, and calculates health score. Results are cached for 5 minutes.",
|
|
@@ -332,7 +332,7 @@ var manifest = {
|
|
|
332
332
|
// quality:health - Monorepo health check
|
|
333
333
|
// ======================================================================
|
|
334
334
|
{
|
|
335
|
-
id: "
|
|
335
|
+
id: "health",
|
|
336
336
|
group: "quality",
|
|
337
337
|
describe: "Check monorepo health score",
|
|
338
338
|
longDescription: "Analyzes monorepo health including dependency issues, structure problems, and build health. Returns health score (0-100) with grade (A-F) and actionable recommendations.",
|
|
@@ -351,7 +351,7 @@ var manifest = {
|
|
|
351
351
|
// quality:fix-deps - Dependency auto-fixer
|
|
352
352
|
// ======================================================================
|
|
353
353
|
{
|
|
354
|
-
id: "
|
|
354
|
+
id: "fix-deps",
|
|
355
355
|
group: "quality",
|
|
356
356
|
describe: "Auto-fix dependency issues",
|
|
357
357
|
longDescription: "Automatically fixes dependency issues including removing unused deps, adding missing workspace deps, and aligning duplicate versions. Supports --dry-run for previewing changes.",
|
|
@@ -370,7 +370,7 @@ var manifest = {
|
|
|
370
370
|
// quality:build-order - Calculate build order with topological sort
|
|
371
371
|
// ======================================================================
|
|
372
372
|
{
|
|
373
|
-
id: "
|
|
373
|
+
id: "build-order",
|
|
374
374
|
group: "quality",
|
|
375
375
|
describe: "Calculate build order using topological sort",
|
|
376
376
|
longDescription: "Analyzes package dependencies and calculates correct build order using topological sort. Shows build layers where each layer can be built in parallel. Detects circular dependencies.",
|
|
@@ -389,7 +389,7 @@ var manifest = {
|
|
|
389
389
|
// quality:cycles - Detect circular dependencies
|
|
390
390
|
// ======================================================================
|
|
391
391
|
{
|
|
392
|
-
id: "
|
|
392
|
+
id: "cycles",
|
|
393
393
|
group: "quality",
|
|
394
394
|
describe: "Detect circular dependencies",
|
|
395
395
|
longDescription: "Uses DFS to find all circular dependency chains in the monorepo. Shows complete dependency cycles with recommendations for breaking them.",
|
|
@@ -406,7 +406,7 @@ var manifest = {
|
|
|
406
406
|
// quality:visualize - Visualize dependency graph
|
|
407
407
|
// ======================================================================
|
|
408
408
|
{
|
|
409
|
-
id: "
|
|
409
|
+
id: "visualize",
|
|
410
410
|
group: "quality",
|
|
411
411
|
describe: "Visualize dependency graph",
|
|
412
412
|
longDescription: "Visualize monorepo dependency graph in various formats: tree view, DOT format for graphviz, reverse dependencies (who depends on this), impact analysis (what will be affected by changes), and comprehensive graph statistics.",
|
|
@@ -426,7 +426,7 @@ var manifest = {
|
|
|
426
426
|
// quality:check-builds - Check build status across monorepo
|
|
427
427
|
// ======================================================================
|
|
428
428
|
{
|
|
429
|
-
id: "
|
|
429
|
+
id: "check-builds",
|
|
430
430
|
group: "quality",
|
|
431
431
|
describe: "Check build status across monorepo",
|
|
432
432
|
longDescription: "Analyzes build status across all packages with build scripts. Detects build failures with error messages and stale builds (dist/ older than src/). Results are cached for 10 minutes.",
|
|
@@ -446,7 +446,7 @@ var manifest = {
|
|
|
446
446
|
// quality:check-types - TypeScript type safety analysis
|
|
447
447
|
// ======================================================================
|
|
448
448
|
{
|
|
449
|
-
id: "
|
|
449
|
+
id: "check-types",
|
|
450
450
|
group: "quality",
|
|
451
451
|
describe: "Analyze TypeScript type safety across monorepo",
|
|
452
452
|
longDescription: "Analyzes TypeScript type errors, warnings, and type coverage using TypeScript Compiler API. Detects any usage, @ts-ignore comments, and calculates type coverage percentage. Results are cached for 10 minutes.",
|
|
@@ -466,7 +466,7 @@ var manifest = {
|
|
|
466
466
|
// quality:check-tests - Test execution and coverage tracking
|
|
467
467
|
// ======================================================================
|
|
468
468
|
{
|
|
469
|
-
id: "
|
|
469
|
+
id: "check-tests",
|
|
470
470
|
group: "quality",
|
|
471
471
|
describe: "Run tests and track coverage across monorepo",
|
|
472
472
|
longDescription: "Runs tests across all packages with test scripts and collects coverage statistics. Parses test output (vitest/jest) to extract test counts and reads coverage-summary.json. Results are cached for 5 minutes.",
|
|
@@ -487,7 +487,7 @@ var manifest = {
|
|
|
487
487
|
// quality:dead-code - Dead code file detection
|
|
488
488
|
// ======================================================================
|
|
489
489
|
{
|
|
490
|
-
id: "
|
|
490
|
+
id: "dead-code",
|
|
491
491
|
group: "quality",
|
|
492
492
|
describe: "Detect dead (unreachable) source files",
|
|
493
493
|
longDescription: "Analyzes import graph to find source files not reachable from any entry point (package.json, tsup.config.ts, manifest.ts). Supports automated removal with backup and restore capabilities. Zero false positives by design.",
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli/commands/flags.ts","../src/manifest.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Shared command flags definitions\n *\n * DRY pattern: Define flags once, use in both manifest and command handlers.\n */\n\n/**\n * Flags for quality:stats command\n */\nexport const statsFlags = {\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n md: {\n type: 'boolean',\n description: 'Output Markdown table',\n default: false,\n },\n health: {\n type: 'boolean',\n description: 'Show health score',\n default: false,\n },\n refresh: {\n type: 'boolean',\n description: 'Bypass cache and recalculate',\n default: false,\n },\n} as const;\n\nexport type StatsFlags = typeof statsFlags;\n\n/**\n * Flags for quality:health command\n */\nexport const healthFlags = {\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n package: {\n type: 'string',\n description: 'Check health for specific package',\n alias: 'p',\n },\n detailed: {\n type: 'boolean',\n description: 'Show detailed breakdown',\n default: false,\n alias: 'd',\n },\n} as const;\n\nexport type HealthFlags = typeof healthFlags;\n\n/**\n * Flags for quality:fix-deps command\n */\nexport const fixDepsFlags = {\n 'dry-run': {\n type: 'boolean',\n description: 'Preview changes without applying them',\n default: false,\n },\n 'remove-unused': {\n type: 'boolean',\n description: 'Remove unused dependencies',\n default: false,\n },\n 'add-missing': {\n type: 'boolean',\n description: 'Add missing workspace dependencies',\n default: false,\n },\n 'align-versions': {\n type: 'boolean',\n description: 'Align duplicate dependency versions',\n default: false,\n },\n all: {\n type: 'boolean',\n description: 'Apply all fixes (remove-unused + add-missing + align-versions)',\n default: false,\n },\n stats: {\n type: 'boolean',\n description: 'Show dependency statistics',\n default: false,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n} as const;\n\nexport type FixDepsFlags = typeof fixDepsFlags;\n\n/**\n * Flags for quality:run command\n */\nexport const runFlags = {\n script: {\n type: 'string',\n description: 'Script to run (build, test, type-check, lint)',\n required: true,\n },\n 'continue-on-error': {\n type: 'boolean',\n description: 'Continue even if packages fail',\n default: true,\n },\n parallel: {\n type: 'boolean',\n description: 'Run in parallel (respects dependencies)',\n default: false,\n },\n filter: {\n type: 'string',\n description: 'Filter packages by pattern (@kb-labs/*)',\n },\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n verbose: {\n type: 'boolean',\n description: 'Show full output for each package',\n default: false,\n alias: 'v',\n },\n} as const;\n\nexport type RunFlags = typeof runFlags;\n\n/**\n * Flags for quality:build-order command\n */\nexport const buildOrderFlags = {\n package: {\n type: 'string',\n description: 'Calculate build order for specific package',\n alias: 'p',\n },\n layers: {\n type: 'boolean',\n description: 'Show build layers (parallel groups)',\n default: false,\n },\n script: {\n type: 'boolean',\n description: 'Output as shell script',\n default: false,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n} as const;\n\nexport type BuildOrderFlags = typeof buildOrderFlags;\n\n/**\n * Flags for quality:cycles command\n */\nexport const cyclesFlags = {\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n} as const;\n\nexport type CyclesFlags = typeof cyclesFlags;\n\n/**\n * Flags for quality:visualize command\n */\nexport const visualizeFlags = {\n package: {\n type: 'string',\n description: 'Focus on specific package',\n alias: 'p',\n },\n tree: {\n type: 'boolean',\n description: 'Show dependency tree',\n default: false,\n },\n dot: {\n type: 'boolean',\n description: 'Output DOT format for graphviz',\n default: false,\n },\n stats: {\n type: 'boolean',\n description: 'Show graph statistics',\n default: false,\n },\n reverse: {\n type: 'boolean',\n description: 'Show reverse dependencies (who depends on this)',\n default: false,\n },\n impact: {\n type: 'boolean',\n description: 'Show impact analysis (what will be affected)',\n default: false,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n} as const;\n\nexport type VisualizeFlags = typeof visualizeFlags;\n\n/**\n * Flags for quality:check-builds command\n */\nexport const checkBuildsFlags = {\n package: {\n type: 'string',\n description: 'Check builds for specific package',\n alias: 'p',\n },\n timeout: {\n type: 'number',\n description: 'Timeout per package in milliseconds',\n default: 30000,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n refresh: {\n type: 'boolean',\n description: 'Bypass cache and check fresh',\n default: false,\n },\n} as const;\n\nexport type CheckBuildsFlags = typeof checkBuildsFlags;\n\n/**\n * Flags for quality:check-types command\n */\nexport const checkTypesFlags = {\n package: {\n type: 'string',\n description: 'Analyze types for specific package',\n alias: 'p',\n },\n 'errors-only': {\n type: 'boolean',\n description: 'Show only packages with errors',\n default: false,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n refresh: {\n type: 'boolean',\n description: 'Bypass cache and analyze fresh',\n default: false,\n },\n} as const;\n\nexport type CheckTypesFlags = typeof checkTypesFlags;\n\n/**\n * Flags for quality:check-tests command\n */\nexport const checkTestsFlags = {\n package: {\n type: 'string',\n description: 'Run tests for specific package',\n alias: 'p',\n },\n timeout: {\n type: 'number',\n description: 'Timeout per package in milliseconds',\n default: 60000,\n },\n 'with-coverage': {\n type: 'boolean',\n description: 'Collect coverage statistics',\n default: false,\n },\n 'coverage-only': {\n type: 'boolean',\n description: 'Only show existing coverage (skip test execution)',\n default: false,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n refresh: {\n type: 'boolean',\n description: 'Bypass cache and run fresh',\n default: false,\n },\n} as const;\n\nexport type CheckTestsFlags = typeof checkTestsFlags;\n\n/**\n * Flags for quality:dead-code command\n */\nexport const deadCodeFlags = {\n package: {\n type: 'string',\n description: 'Scan specific package only',\n alias: 'p',\n },\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n verbose: {\n type: 'boolean',\n description: 'Show entry points and alive reasons',\n default: false,\n alias: 'v',\n },\n 'auto-remove': {\n type: 'boolean',\n description: 'Remove dead files (creates backup first)',\n default: false,\n },\n 'dry-run': {\n type: 'boolean',\n description: 'Show what would be removed without actually deleting',\n default: false,\n },\n restore: {\n type: 'string',\n description: 'Restore files from backup ID',\n },\n 'list-backups': {\n type: 'boolean',\n description: 'List available backups',\n default: false,\n },\n refresh: {\n type: 'boolean',\n description: 'Bypass cache and rescan',\n default: false,\n },\n} as const;\n\nexport type DeadCodeFlags = typeof deadCodeFlags;\n","/**\n * Quality Plugin Manifest V3\n *\n * Monorepo quality analysis and automated fixes\n */\n\nimport {\n combinePermissions,\n kbPlatformPreset,\n defineCommandFlags,\n} from '@kb-labs/sdk';\nimport {\n QUALITY_BASE_PATH,\n QUALITY_ROUTES,\n} from '@kb-labs/quality-contracts';\nimport {\n statsFlags,\n healthFlags,\n fixDepsFlags,\n buildOrderFlags,\n cyclesFlags,\n visualizeFlags,\n checkBuildsFlags,\n checkTypesFlags,\n checkTestsFlags,\n deadCodeFlags,\n} from './cli/commands/flags.js';\n\n/**\n * Build permissions using V3 combinePermissions builder pattern.\n * Quality plugin needs read/write access to entire monorepo for analysis and fixes.\n */\nconst pluginPermissions = combinePermissions()\n .with(kbPlatformPreset)\n .withFs({\n mode: 'readWrite',\n allow: ['**'], // Access to entire monorepo\n })\n .withPlatform({\n cache: ['quality:'], // Cache namespace prefix\n analytics: true, // Track command usage\n })\n .withQuotas({\n timeoutMs: 300000, // 5 minutes for long-running operations\n memoryMb: 1024, // 1GB memory\n })\n .build();\n\n/**\n * Heavy operations permissions (builds, types, tests)\n * These operations scan the entire monorepo and can take a long time\n */\nconst heavyOperationsPermissions = combinePermissions()\n .with(kbPlatformPreset)\n .withFs({\n mode: 'readWrite',\n allow: ['**'],\n })\n .withPlatform({\n cache: ['quality:'],\n analytics: true,\n })\n .withQuotas({\n timeoutMs: 600000, // 10 minutes for heavy operations\n memoryMb: 2048, // 2GB memory\n })\n .build();\n\nexport const manifest = {\n schema: 'kb.plugin/3',\n id: '@kb-labs/quality',\n version: '0.1.0',\n\n display: {\n name: 'Quality Tools',\n description: 'Monorepo quality analysis and automated fixes',\n tags: ['quality', 'monorepo', 'analysis', 'devtools'],\n },\n\n platform: {\n requires: ['storage', 'cache'],\n optional: ['analytics', 'logger'],\n },\n\n cli: {\n commands: [\n // ======================================================================\n // quality:stats - Monorepo statistics and health score\n // ======================================================================\n {\n id: 'quality:stats',\n group: 'quality',\n describe: 'Get monorepo statistics and health score',\n longDescription:\n 'Analyzes monorepo structure, collects package statistics, dependency info, and calculates health score. ' +\n 'Results are cached for 5 minutes.',\n\n handler: './cli/commands/stats.js#default',\n handlerPath: './cli/commands/stats.js',\n\n flags: defineCommandFlags(statsFlags),\n\n examples: [\n 'kb quality:stats',\n 'kb quality:stats --health',\n 'kb quality:stats --json',\n 'kb quality:stats --md',\n ],\n\n permissions: pluginPermissions,\n },\n\n // ======================================================================\n // quality:health - Monorepo health check\n // ======================================================================\n {\n id: 'quality:health',\n group: 'quality',\n describe: 'Check monorepo health score',\n longDescription:\n 'Analyzes monorepo health including dependency issues, structure problems, and build health. ' +\n 'Returns health score (0-100) with grade (A-F) and actionable recommendations.',\n\n handler: './cli/commands/health.js#default',\n handlerPath: './cli/commands/health.js',\n\n flags: defineCommandFlags(healthFlags),\n\n examples: [\n 'kb quality:health',\n 'kb quality:health --detailed',\n 'kb quality:health --package @kb-labs/core',\n 'kb quality:health --json',\n ],\n\n permissions: pluginPermissions,\n },\n\n // ======================================================================\n // quality:fix-deps - Dependency auto-fixer\n // ======================================================================\n {\n id: 'quality:fix-deps',\n group: 'quality',\n describe: 'Auto-fix dependency issues',\n longDescription:\n 'Automatically fixes dependency issues including removing unused deps, adding missing workspace deps, ' +\n 'and aligning duplicate versions. Supports --dry-run for previewing changes.',\n\n handler: './cli/commands/fix-deps.js#default',\n handlerPath: './cli/commands/fix-deps.js',\n\n flags: defineCommandFlags(fixDepsFlags),\n\n examples: [\n 'kb quality:fix-deps --stats',\n 'kb quality:fix-deps --remove-unused --dry-run',\n 'kb quality:fix-deps --align-versions',\n 'kb quality:fix-deps --all --dry-run',\n ],\n\n permissions: pluginPermissions,\n },\n\n // ======================================================================\n // quality:build-order - Calculate build order with topological sort\n // ======================================================================\n {\n id: 'quality:build-order',\n group: 'quality',\n describe: 'Calculate build order using topological sort',\n longDescription:\n 'Analyzes package dependencies and calculates correct build order using topological sort. ' +\n 'Shows build layers where each layer can be built in parallel. Detects circular dependencies.',\n\n handler: './cli/commands/build-order.js#default',\n handlerPath: './cli/commands/build-order.js',\n\n flags: defineCommandFlags(buildOrderFlags),\n\n examples: [\n 'kb quality:build-order',\n 'kb quality:build-order --layers',\n 'kb quality:build-order --package @kb-labs/core',\n 'kb quality:build-order --script > build.sh',\n ],\n\n permissions: pluginPermissions,\n },\n\n // ======================================================================\n // quality:cycles - Detect circular dependencies\n // ======================================================================\n {\n id: 'quality:cycles',\n group: 'quality',\n describe: 'Detect circular dependencies',\n longDescription:\n 'Uses DFS to find all circular dependency chains in the monorepo. ' +\n 'Shows complete dependency cycles with recommendations for breaking them.',\n\n handler: './cli/commands/cycles.js#default',\n handlerPath: './cli/commands/cycles.js',\n\n flags: defineCommandFlags(cyclesFlags),\n\n examples: [\n 'kb quality:cycles',\n 'kb quality:cycles --json',\n ],\n\n permissions: pluginPermissions,\n },\n\n // ======================================================================\n // quality:visualize - Visualize dependency graph\n // ======================================================================\n {\n id: 'quality:visualize',\n group: 'quality',\n describe: 'Visualize dependency graph',\n longDescription:\n 'Visualize monorepo dependency graph in various formats: tree view, DOT format for graphviz, ' +\n 'reverse dependencies (who depends on this), impact analysis (what will be affected by changes), ' +\n 'and comprehensive graph statistics.',\n\n handler: './cli/commands/visualize.js#default',\n handlerPath: './cli/commands/visualize.js',\n\n flags: defineCommandFlags(visualizeFlags),\n\n examples: [\n 'kb quality:visualize --stats',\n 'kb quality:visualize --tree --package @kb-labs/core',\n 'kb quality:visualize --reverse --package @kb-labs/sdk',\n 'kb quality:visualize --impact --package @kb-labs/core',\n 'kb quality:visualize --dot > deps.dot',\n ],\n\n permissions: pluginPermissions,\n },\n\n // ======================================================================\n // quality:check-builds - Check build status across monorepo\n // ======================================================================\n {\n id: 'quality:check-builds',\n group: 'quality',\n describe: 'Check build status across monorepo',\n longDescription:\n 'Analyzes build status across all packages with build scripts. ' +\n 'Detects build failures with error messages and stale builds (dist/ older than src/). ' +\n 'Results are cached for 10 minutes.',\n\n handler: './cli/commands/check-builds.js#default',\n handlerPath: './cli/commands/check-builds.js',\n\n flags: defineCommandFlags(checkBuildsFlags),\n\n examples: [\n 'kb quality:check-builds',\n 'kb quality:check-builds --package @kb-labs/core',\n 'kb quality:check-builds --timeout 60000',\n 'kb quality:check-builds --json',\n 'kb quality:check-builds --refresh',\n ],\n\n permissions: heavyOperationsPermissions,\n },\n\n // ======================================================================\n // quality:check-types - TypeScript type safety analysis\n // ======================================================================\n {\n id: 'quality:check-types',\n group: 'quality',\n describe: 'Analyze TypeScript type safety across monorepo',\n longDescription:\n 'Analyzes TypeScript type errors, warnings, and type coverage using TypeScript Compiler API. ' +\n 'Detects any usage, @ts-ignore comments, and calculates type coverage percentage. ' +\n 'Results are cached for 10 minutes.',\n\n handler: './cli/commands/check-types.js#default',\n handlerPath: './cli/commands/check-types.js',\n\n flags: defineCommandFlags(checkTypesFlags),\n\n examples: [\n 'kb quality:check-types',\n 'kb quality:check-types --package @kb-labs/core',\n 'kb quality:check-types --errors-only',\n 'kb quality:check-types --json',\n 'kb quality:check-types --refresh',\n ],\n\n permissions: heavyOperationsPermissions,\n },\n\n // ======================================================================\n // quality:check-tests - Test execution and coverage tracking\n // ======================================================================\n {\n id: 'quality:check-tests',\n group: 'quality',\n describe: 'Run tests and track coverage across monorepo',\n longDescription:\n 'Runs tests across all packages with test scripts and collects coverage statistics. ' +\n 'Parses test output (vitest/jest) to extract test counts and reads coverage-summary.json. ' +\n 'Results are cached for 5 minutes.',\n\n handler: './cli/commands/check-tests.js#default',\n handlerPath: './cli/commands/check-tests.js',\n\n flags: defineCommandFlags(checkTestsFlags),\n\n examples: [\n 'kb quality:check-tests',\n 'kb quality:check-tests --package @kb-labs/core',\n 'kb quality:check-tests --with-coverage',\n 'kb quality:check-tests --coverage-only',\n 'kb quality:check-tests --timeout 120000',\n 'kb quality:check-tests --json',\n ],\n\n permissions: heavyOperationsPermissions,\n },\n\n // ======================================================================\n // quality:dead-code - Dead code file detection\n // ======================================================================\n {\n id: 'quality:dead-code',\n group: 'quality',\n describe: 'Detect dead (unreachable) source files',\n longDescription:\n 'Analyzes import graph to find source files not reachable from any entry point ' +\n '(package.json, tsup.config.ts, manifest.ts). Supports automated removal with ' +\n 'backup and restore capabilities. Zero false positives by design.',\n\n handler: './cli/commands/dead-code.js#default',\n handlerPath: './cli/commands/dead-code.js',\n\n flags: defineCommandFlags(deadCodeFlags),\n\n examples: [\n 'kb quality:dead-code',\n 'kb quality:dead-code --package @kb-labs/core',\n 'kb quality:dead-code --auto-remove --dry-run',\n 'kb quality:dead-code --auto-remove',\n 'kb quality:dead-code --list-backups',\n 'kb quality:dead-code --restore 2026-02-15T10-30-00',\n 'kb quality:dead-code --json',\n ],\n\n permissions: pluginPermissions,\n },\n ],\n },\n\n // REST API routes\n rest: {\n basePath: QUALITY_BASE_PATH,\n routes: [\n // GET /stats\n {\n method: 'GET',\n path: QUALITY_ROUTES.STATS,\n handler: './rest/handlers/stats-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#StatsRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#StatsResponseSchema',\n },\n },\n // GET /health\n {\n method: 'GET',\n path: QUALITY_ROUTES.HEALTH,\n handler: './rest/handlers/health-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#HealthRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#HealthResponseSchema',\n },\n },\n // GET /dependencies\n {\n method: 'GET',\n path: QUALITY_ROUTES.DEPENDENCIES,\n handler: './rest/handlers/dependencies-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#DependenciesRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#DependenciesResponseSchema',\n },\n },\n // GET /build-order\n {\n method: 'GET',\n path: QUALITY_ROUTES.BUILD_ORDER,\n handler: './rest/handlers/build-order-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#BuildOrderRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#BuildOrderResponseSchema',\n },\n },\n // GET /cycles\n {\n method: 'GET',\n path: QUALITY_ROUTES.CYCLES,\n handler: './rest/handlers/cycles-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#CyclesRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#CyclesResponseSchema',\n },\n },\n // GET /graph\n {\n method: 'GET',\n path: QUALITY_ROUTES.GRAPH,\n handler: './rest/handlers/graph-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#GraphRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#GraphResponseSchema',\n },\n },\n // GET /stale\n {\n method: 'GET',\n path: QUALITY_ROUTES.STALE,\n handler: './rest/handlers/stale-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#StaleRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#StaleResponseSchema',\n },\n },\n // GET /builds\n {\n method: 'GET',\n path: QUALITY_ROUTES.BUILDS,\n handler: './rest/handlers/builds-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#BuildsRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#BuildsResponseSchema',\n },\n },\n // GET /types\n {\n method: 'GET',\n path: QUALITY_ROUTES.TYPES,\n handler: './rest/handlers/types-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#TypesRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#TypesResponseSchema',\n },\n },\n // GET /tests\n {\n method: 'GET',\n path: QUALITY_ROUTES.TESTS,\n handler: './rest/handlers/tests-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#TestsRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#TestsResponseSchema',\n },\n },\n ],\n },\n\n // Studio V2 — Module Federation pages\n studio: {\n version: 2 as const,\n remoteName: 'qualityPlugin',\n pages: [\n {\n id: 'quality.overview',\n title: 'Quality',\n icon: 'CheckCircleOutlined',\n route: '/p/quality',\n entry: './QualityOverview',\n order: 1,\n },\n ],\n menus: [\n {\n id: 'quality',\n label: 'Quality',\n icon: 'CheckCircleOutlined',\n target: 'quality.overview',\n order: 40,\n },\n ],\n },\n\n permissions: pluginPermissions,\n};\n\nexport default manifest;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/cli/commands/flags.ts","../src/manifest.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Shared command flags definitions\n *\n * DRY pattern: Define flags once, use in both manifest and command handlers.\n */\n\n/**\n * Flags for quality:stats command\n */\nexport const statsFlags = {\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n md: {\n type: 'boolean',\n description: 'Output Markdown table',\n default: false,\n },\n health: {\n type: 'boolean',\n description: 'Show health score',\n default: false,\n },\n refresh: {\n type: 'boolean',\n description: 'Bypass cache and recalculate',\n default: false,\n },\n} as const;\n\nexport type StatsFlags = typeof statsFlags;\n\n/**\n * Flags for quality:health command\n */\nexport const healthFlags = {\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n package: {\n type: 'string',\n description: 'Check health for specific package',\n alias: 'p',\n },\n detailed: {\n type: 'boolean',\n description: 'Show detailed breakdown',\n default: false,\n alias: 'd',\n },\n} as const;\n\nexport type HealthFlags = typeof healthFlags;\n\n/**\n * Flags for quality:fix-deps command\n */\nexport const fixDepsFlags = {\n 'dry-run': {\n type: 'boolean',\n description: 'Preview changes without applying them',\n default: false,\n },\n 'remove-unused': {\n type: 'boolean',\n description: 'Remove unused dependencies',\n default: false,\n },\n 'add-missing': {\n type: 'boolean',\n description: 'Add missing workspace dependencies',\n default: false,\n },\n 'align-versions': {\n type: 'boolean',\n description: 'Align duplicate dependency versions',\n default: false,\n },\n all: {\n type: 'boolean',\n description: 'Apply all fixes (remove-unused + add-missing + align-versions)',\n default: false,\n },\n stats: {\n type: 'boolean',\n description: 'Show dependency statistics',\n default: false,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n} as const;\n\nexport type FixDepsFlags = typeof fixDepsFlags;\n\n/**\n * Flags for quality:run command\n */\nexport const runFlags = {\n script: {\n type: 'string',\n description: 'Script to run (build, test, type-check, lint)',\n required: true,\n },\n 'continue-on-error': {\n type: 'boolean',\n description: 'Continue even if packages fail',\n default: true,\n },\n parallel: {\n type: 'boolean',\n description: 'Run in parallel (respects dependencies)',\n default: false,\n },\n filter: {\n type: 'string',\n description: 'Filter packages by pattern (@kb-labs/*)',\n },\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n verbose: {\n type: 'boolean',\n description: 'Show full output for each package',\n default: false,\n alias: 'v',\n },\n} as const;\n\nexport type RunFlags = typeof runFlags;\n\n/**\n * Flags for quality:build-order command\n */\nexport const buildOrderFlags = {\n package: {\n type: 'string',\n description: 'Calculate build order for specific package',\n alias: 'p',\n },\n layers: {\n type: 'boolean',\n description: 'Show build layers (parallel groups)',\n default: false,\n },\n script: {\n type: 'boolean',\n description: 'Output as shell script',\n default: false,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n} as const;\n\nexport type BuildOrderFlags = typeof buildOrderFlags;\n\n/**\n * Flags for quality:cycles command\n */\nexport const cyclesFlags = {\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n} as const;\n\nexport type CyclesFlags = typeof cyclesFlags;\n\n/**\n * Flags for quality:visualize command\n */\nexport const visualizeFlags = {\n package: {\n type: 'string',\n description: 'Focus on specific package',\n alias: 'p',\n },\n tree: {\n type: 'boolean',\n description: 'Show dependency tree',\n default: false,\n },\n dot: {\n type: 'boolean',\n description: 'Output DOT format for graphviz',\n default: false,\n },\n stats: {\n type: 'boolean',\n description: 'Show graph statistics',\n default: false,\n },\n reverse: {\n type: 'boolean',\n description: 'Show reverse dependencies (who depends on this)',\n default: false,\n },\n impact: {\n type: 'boolean',\n description: 'Show impact analysis (what will be affected)',\n default: false,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n} as const;\n\nexport type VisualizeFlags = typeof visualizeFlags;\n\n/**\n * Flags for quality:check-builds command\n */\nexport const checkBuildsFlags = {\n package: {\n type: 'string',\n description: 'Check builds for specific package',\n alias: 'p',\n },\n timeout: {\n type: 'number',\n description: 'Timeout per package in milliseconds',\n default: 30000,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n refresh: {\n type: 'boolean',\n description: 'Bypass cache and check fresh',\n default: false,\n },\n} as const;\n\nexport type CheckBuildsFlags = typeof checkBuildsFlags;\n\n/**\n * Flags for quality:check-types command\n */\nexport const checkTypesFlags = {\n package: {\n type: 'string',\n description: 'Analyze types for specific package',\n alias: 'p',\n },\n 'errors-only': {\n type: 'boolean',\n description: 'Show only packages with errors',\n default: false,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n refresh: {\n type: 'boolean',\n description: 'Bypass cache and analyze fresh',\n default: false,\n },\n} as const;\n\nexport type CheckTypesFlags = typeof checkTypesFlags;\n\n/**\n * Flags for quality:check-tests command\n */\nexport const checkTestsFlags = {\n package: {\n type: 'string',\n description: 'Run tests for specific package',\n alias: 'p',\n },\n timeout: {\n type: 'number',\n description: 'Timeout per package in milliseconds',\n default: 60000,\n },\n 'with-coverage': {\n type: 'boolean',\n description: 'Collect coverage statistics',\n default: false,\n },\n 'coverage-only': {\n type: 'boolean',\n description: 'Only show existing coverage (skip test execution)',\n default: false,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n refresh: {\n type: 'boolean',\n description: 'Bypass cache and run fresh',\n default: false,\n },\n} as const;\n\nexport type CheckTestsFlags = typeof checkTestsFlags;\n\n/**\n * Flags for quality:dead-code command\n */\nexport const deadCodeFlags = {\n package: {\n type: 'string',\n description: 'Scan specific package only',\n alias: 'p',\n },\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n verbose: {\n type: 'boolean',\n description: 'Show entry points and alive reasons',\n default: false,\n alias: 'v',\n },\n 'auto-remove': {\n type: 'boolean',\n description: 'Remove dead files (creates backup first)',\n default: false,\n },\n 'dry-run': {\n type: 'boolean',\n description: 'Show what would be removed without actually deleting',\n default: false,\n },\n restore: {\n type: 'string',\n description: 'Restore files from backup ID',\n },\n 'list-backups': {\n type: 'boolean',\n description: 'List available backups',\n default: false,\n },\n refresh: {\n type: 'boolean',\n description: 'Bypass cache and rescan',\n default: false,\n },\n} as const;\n\nexport type DeadCodeFlags = typeof deadCodeFlags;\n","/**\n * Quality Plugin Manifest V3\n *\n * Monorepo quality analysis and automated fixes\n */\n\nimport {\n combinePermissions,\n kbPlatformPreset,\n defineCommandFlags,\n} from '@kb-labs/sdk';\nimport {\n QUALITY_BASE_PATH,\n QUALITY_ROUTES,\n} from '@kb-labs/quality-contracts';\nimport {\n statsFlags,\n healthFlags,\n fixDepsFlags,\n buildOrderFlags,\n cyclesFlags,\n visualizeFlags,\n checkBuildsFlags,\n checkTypesFlags,\n checkTestsFlags,\n deadCodeFlags,\n} from './cli/commands/flags.js';\n\n/**\n * Build permissions using V3 combinePermissions builder pattern.\n * Quality plugin needs read/write access to entire monorepo for analysis and fixes.\n */\nconst pluginPermissions = combinePermissions()\n .with(kbPlatformPreset)\n .withFs({\n mode: 'readWrite',\n allow: ['**'], // Access to entire monorepo\n })\n .withPlatform({\n cache: ['quality:'], // Cache namespace prefix\n analytics: true, // Track command usage\n })\n .withQuotas({\n timeoutMs: 300000, // 5 minutes for long-running operations\n memoryMb: 1024, // 1GB memory\n })\n .build();\n\n/**\n * Heavy operations permissions (builds, types, tests)\n * These operations scan the entire monorepo and can take a long time\n */\nconst heavyOperationsPermissions = combinePermissions()\n .with(kbPlatformPreset)\n .withFs({\n mode: 'readWrite',\n allow: ['**'],\n })\n .withPlatform({\n cache: ['quality:'],\n analytics: true,\n })\n .withQuotas({\n timeoutMs: 600000, // 10 minutes for heavy operations\n memoryMb: 2048, // 2GB memory\n })\n .build();\n\nexport const manifest = {\n schema: 'kb.plugin/3',\n id: '@kb-labs/quality',\n version: '0.1.0',\n\n display: {\n name: 'Quality Tools',\n description: 'Monorepo quality analysis and automated fixes',\n tags: ['quality', 'monorepo', 'analysis', 'devtools'],\n },\n\n platform: {\n requires: ['storage', 'cache'],\n optional: ['analytics', 'logger'],\n },\n\n cli: {\n commands: [\n // ======================================================================\n // quality:stats - Monorepo statistics and health score\n // ======================================================================\n {\n id: 'stats',\n group: 'quality',\n describe: 'Get monorepo statistics and health score',\n longDescription:\n 'Analyzes monorepo structure, collects package statistics, dependency info, and calculates health score. ' +\n 'Results are cached for 5 minutes.',\n\n handler: './cli/commands/stats.js#default',\n handlerPath: './cli/commands/stats.js',\n\n flags: defineCommandFlags(statsFlags),\n\n examples: [\n 'kb quality:stats',\n 'kb quality:stats --health',\n 'kb quality:stats --json',\n 'kb quality:stats --md',\n ],\n\n permissions: pluginPermissions,\n },\n\n // ======================================================================\n // quality:health - Monorepo health check\n // ======================================================================\n {\n id: 'health',\n group: 'quality',\n describe: 'Check monorepo health score',\n longDescription:\n 'Analyzes monorepo health including dependency issues, structure problems, and build health. ' +\n 'Returns health score (0-100) with grade (A-F) and actionable recommendations.',\n\n handler: './cli/commands/health.js#default',\n handlerPath: './cli/commands/health.js',\n\n flags: defineCommandFlags(healthFlags),\n\n examples: [\n 'kb quality:health',\n 'kb quality:health --detailed',\n 'kb quality:health --package @kb-labs/core',\n 'kb quality:health --json',\n ],\n\n permissions: pluginPermissions,\n },\n\n // ======================================================================\n // quality:fix-deps - Dependency auto-fixer\n // ======================================================================\n {\n id: 'fix-deps',\n group: 'quality',\n describe: 'Auto-fix dependency issues',\n longDescription:\n 'Automatically fixes dependency issues including removing unused deps, adding missing workspace deps, ' +\n 'and aligning duplicate versions. Supports --dry-run for previewing changes.',\n\n handler: './cli/commands/fix-deps.js#default',\n handlerPath: './cli/commands/fix-deps.js',\n\n flags: defineCommandFlags(fixDepsFlags),\n\n examples: [\n 'kb quality:fix-deps --stats',\n 'kb quality:fix-deps --remove-unused --dry-run',\n 'kb quality:fix-deps --align-versions',\n 'kb quality:fix-deps --all --dry-run',\n ],\n\n permissions: pluginPermissions,\n },\n\n // ======================================================================\n // quality:build-order - Calculate build order with topological sort\n // ======================================================================\n {\n id: 'build-order',\n group: 'quality',\n describe: 'Calculate build order using topological sort',\n longDescription:\n 'Analyzes package dependencies and calculates correct build order using topological sort. ' +\n 'Shows build layers where each layer can be built in parallel. Detects circular dependencies.',\n\n handler: './cli/commands/build-order.js#default',\n handlerPath: './cli/commands/build-order.js',\n\n flags: defineCommandFlags(buildOrderFlags),\n\n examples: [\n 'kb quality:build-order',\n 'kb quality:build-order --layers',\n 'kb quality:build-order --package @kb-labs/core',\n 'kb quality:build-order --script > build.sh',\n ],\n\n permissions: pluginPermissions,\n },\n\n // ======================================================================\n // quality:cycles - Detect circular dependencies\n // ======================================================================\n {\n id: 'cycles',\n group: 'quality',\n describe: 'Detect circular dependencies',\n longDescription:\n 'Uses DFS to find all circular dependency chains in the monorepo. ' +\n 'Shows complete dependency cycles with recommendations for breaking them.',\n\n handler: './cli/commands/cycles.js#default',\n handlerPath: './cli/commands/cycles.js',\n\n flags: defineCommandFlags(cyclesFlags),\n\n examples: [\n 'kb quality:cycles',\n 'kb quality:cycles --json',\n ],\n\n permissions: pluginPermissions,\n },\n\n // ======================================================================\n // quality:visualize - Visualize dependency graph\n // ======================================================================\n {\n id: 'visualize',\n group: 'quality',\n describe: 'Visualize dependency graph',\n longDescription:\n 'Visualize monorepo dependency graph in various formats: tree view, DOT format for graphviz, ' +\n 'reverse dependencies (who depends on this), impact analysis (what will be affected by changes), ' +\n 'and comprehensive graph statistics.',\n\n handler: './cli/commands/visualize.js#default',\n handlerPath: './cli/commands/visualize.js',\n\n flags: defineCommandFlags(visualizeFlags),\n\n examples: [\n 'kb quality:visualize --stats',\n 'kb quality:visualize --tree --package @kb-labs/core',\n 'kb quality:visualize --reverse --package @kb-labs/sdk',\n 'kb quality:visualize --impact --package @kb-labs/core',\n 'kb quality:visualize --dot > deps.dot',\n ],\n\n permissions: pluginPermissions,\n },\n\n // ======================================================================\n // quality:check-builds - Check build status across monorepo\n // ======================================================================\n {\n id: 'check-builds',\n group: 'quality',\n describe: 'Check build status across monorepo',\n longDescription:\n 'Analyzes build status across all packages with build scripts. ' +\n 'Detects build failures with error messages and stale builds (dist/ older than src/). ' +\n 'Results are cached for 10 minutes.',\n\n handler: './cli/commands/check-builds.js#default',\n handlerPath: './cli/commands/check-builds.js',\n\n flags: defineCommandFlags(checkBuildsFlags),\n\n examples: [\n 'kb quality:check-builds',\n 'kb quality:check-builds --package @kb-labs/core',\n 'kb quality:check-builds --timeout 60000',\n 'kb quality:check-builds --json',\n 'kb quality:check-builds --refresh',\n ],\n\n permissions: heavyOperationsPermissions,\n },\n\n // ======================================================================\n // quality:check-types - TypeScript type safety analysis\n // ======================================================================\n {\n id: 'check-types',\n group: 'quality',\n describe: 'Analyze TypeScript type safety across monorepo',\n longDescription:\n 'Analyzes TypeScript type errors, warnings, and type coverage using TypeScript Compiler API. ' +\n 'Detects any usage, @ts-ignore comments, and calculates type coverage percentage. ' +\n 'Results are cached for 10 minutes.',\n\n handler: './cli/commands/check-types.js#default',\n handlerPath: './cli/commands/check-types.js',\n\n flags: defineCommandFlags(checkTypesFlags),\n\n examples: [\n 'kb quality:check-types',\n 'kb quality:check-types --package @kb-labs/core',\n 'kb quality:check-types --errors-only',\n 'kb quality:check-types --json',\n 'kb quality:check-types --refresh',\n ],\n\n permissions: heavyOperationsPermissions,\n },\n\n // ======================================================================\n // quality:check-tests - Test execution and coverage tracking\n // ======================================================================\n {\n id: 'check-tests',\n group: 'quality',\n describe: 'Run tests and track coverage across monorepo',\n longDescription:\n 'Runs tests across all packages with test scripts and collects coverage statistics. ' +\n 'Parses test output (vitest/jest) to extract test counts and reads coverage-summary.json. ' +\n 'Results are cached for 5 minutes.',\n\n handler: './cli/commands/check-tests.js#default',\n handlerPath: './cli/commands/check-tests.js',\n\n flags: defineCommandFlags(checkTestsFlags),\n\n examples: [\n 'kb quality:check-tests',\n 'kb quality:check-tests --package @kb-labs/core',\n 'kb quality:check-tests --with-coverage',\n 'kb quality:check-tests --coverage-only',\n 'kb quality:check-tests --timeout 120000',\n 'kb quality:check-tests --json',\n ],\n\n permissions: heavyOperationsPermissions,\n },\n\n // ======================================================================\n // quality:dead-code - Dead code file detection\n // ======================================================================\n {\n id: 'dead-code',\n group: 'quality',\n describe: 'Detect dead (unreachable) source files',\n longDescription:\n 'Analyzes import graph to find source files not reachable from any entry point ' +\n '(package.json, tsup.config.ts, manifest.ts). Supports automated removal with ' +\n 'backup and restore capabilities. Zero false positives by design.',\n\n handler: './cli/commands/dead-code.js#default',\n handlerPath: './cli/commands/dead-code.js',\n\n flags: defineCommandFlags(deadCodeFlags),\n\n examples: [\n 'kb quality:dead-code',\n 'kb quality:dead-code --package @kb-labs/core',\n 'kb quality:dead-code --auto-remove --dry-run',\n 'kb quality:dead-code --auto-remove',\n 'kb quality:dead-code --list-backups',\n 'kb quality:dead-code --restore 2026-02-15T10-30-00',\n 'kb quality:dead-code --json',\n ],\n\n permissions: pluginPermissions,\n },\n ],\n },\n\n // REST API routes\n rest: {\n basePath: QUALITY_BASE_PATH,\n routes: [\n // GET /stats\n {\n method: 'GET',\n path: QUALITY_ROUTES.STATS,\n handler: './rest/handlers/stats-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#StatsRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#StatsResponseSchema',\n },\n },\n // GET /health\n {\n method: 'GET',\n path: QUALITY_ROUTES.HEALTH,\n handler: './rest/handlers/health-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#HealthRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#HealthResponseSchema',\n },\n },\n // GET /dependencies\n {\n method: 'GET',\n path: QUALITY_ROUTES.DEPENDENCIES,\n handler: './rest/handlers/dependencies-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#DependenciesRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#DependenciesResponseSchema',\n },\n },\n // GET /build-order\n {\n method: 'GET',\n path: QUALITY_ROUTES.BUILD_ORDER,\n handler: './rest/handlers/build-order-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#BuildOrderRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#BuildOrderResponseSchema',\n },\n },\n // GET /cycles\n {\n method: 'GET',\n path: QUALITY_ROUTES.CYCLES,\n handler: './rest/handlers/cycles-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#CyclesRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#CyclesResponseSchema',\n },\n },\n // GET /graph\n {\n method: 'GET',\n path: QUALITY_ROUTES.GRAPH,\n handler: './rest/handlers/graph-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#GraphRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#GraphResponseSchema',\n },\n },\n // GET /stale\n {\n method: 'GET',\n path: QUALITY_ROUTES.STALE,\n handler: './rest/handlers/stale-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#StaleRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#StaleResponseSchema',\n },\n },\n // GET /builds\n {\n method: 'GET',\n path: QUALITY_ROUTES.BUILDS,\n handler: './rest/handlers/builds-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#BuildsRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#BuildsResponseSchema',\n },\n },\n // GET /types\n {\n method: 'GET',\n path: QUALITY_ROUTES.TYPES,\n handler: './rest/handlers/types-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#TypesRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#TypesResponseSchema',\n },\n },\n // GET /tests\n {\n method: 'GET',\n path: QUALITY_ROUTES.TESTS,\n handler: './rest/handlers/tests-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#TestsRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#TestsResponseSchema',\n },\n },\n ],\n },\n\n // Studio V2 — Module Federation pages\n studio: {\n version: 2 as const,\n remoteName: 'qualityPlugin',\n pages: [\n {\n id: 'quality.overview',\n title: 'Quality',\n icon: 'CheckCircleOutlined',\n route: '/p/quality',\n entry: './QualityOverview',\n order: 1,\n },\n ],\n menus: [\n {\n id: 'quality',\n label: 'Quality',\n icon: 'CheckCircleOutlined',\n target: 'quality.overview',\n order: 40,\n },\n ],\n },\n\n permissions: pluginPermissions,\n};\n\nexport default manifest;\n"]}
|
package/dist/manifest.js
CHANGED
|
@@ -313,7 +313,7 @@ var manifest = {
|
|
|
313
313
|
// quality:stats - Monorepo statistics and health score
|
|
314
314
|
// ======================================================================
|
|
315
315
|
{
|
|
316
|
-
id: "
|
|
316
|
+
id: "stats",
|
|
317
317
|
group: "quality",
|
|
318
318
|
describe: "Get monorepo statistics and health score",
|
|
319
319
|
longDescription: "Analyzes monorepo structure, collects package statistics, dependency info, and calculates health score. Results are cached for 5 minutes.",
|
|
@@ -332,7 +332,7 @@ var manifest = {
|
|
|
332
332
|
// quality:health - Monorepo health check
|
|
333
333
|
// ======================================================================
|
|
334
334
|
{
|
|
335
|
-
id: "
|
|
335
|
+
id: "health",
|
|
336
336
|
group: "quality",
|
|
337
337
|
describe: "Check monorepo health score",
|
|
338
338
|
longDescription: "Analyzes monorepo health including dependency issues, structure problems, and build health. Returns health score (0-100) with grade (A-F) and actionable recommendations.",
|
|
@@ -351,7 +351,7 @@ var manifest = {
|
|
|
351
351
|
// quality:fix-deps - Dependency auto-fixer
|
|
352
352
|
// ======================================================================
|
|
353
353
|
{
|
|
354
|
-
id: "
|
|
354
|
+
id: "fix-deps",
|
|
355
355
|
group: "quality",
|
|
356
356
|
describe: "Auto-fix dependency issues",
|
|
357
357
|
longDescription: "Automatically fixes dependency issues including removing unused deps, adding missing workspace deps, and aligning duplicate versions. Supports --dry-run for previewing changes.",
|
|
@@ -370,7 +370,7 @@ var manifest = {
|
|
|
370
370
|
// quality:build-order - Calculate build order with topological sort
|
|
371
371
|
// ======================================================================
|
|
372
372
|
{
|
|
373
|
-
id: "
|
|
373
|
+
id: "build-order",
|
|
374
374
|
group: "quality",
|
|
375
375
|
describe: "Calculate build order using topological sort",
|
|
376
376
|
longDescription: "Analyzes package dependencies and calculates correct build order using topological sort. Shows build layers where each layer can be built in parallel. Detects circular dependencies.",
|
|
@@ -389,7 +389,7 @@ var manifest = {
|
|
|
389
389
|
// quality:cycles - Detect circular dependencies
|
|
390
390
|
// ======================================================================
|
|
391
391
|
{
|
|
392
|
-
id: "
|
|
392
|
+
id: "cycles",
|
|
393
393
|
group: "quality",
|
|
394
394
|
describe: "Detect circular dependencies",
|
|
395
395
|
longDescription: "Uses DFS to find all circular dependency chains in the monorepo. Shows complete dependency cycles with recommendations for breaking them.",
|
|
@@ -406,7 +406,7 @@ var manifest = {
|
|
|
406
406
|
// quality:visualize - Visualize dependency graph
|
|
407
407
|
// ======================================================================
|
|
408
408
|
{
|
|
409
|
-
id: "
|
|
409
|
+
id: "visualize",
|
|
410
410
|
group: "quality",
|
|
411
411
|
describe: "Visualize dependency graph",
|
|
412
412
|
longDescription: "Visualize monorepo dependency graph in various formats: tree view, DOT format for graphviz, reverse dependencies (who depends on this), impact analysis (what will be affected by changes), and comprehensive graph statistics.",
|
|
@@ -426,7 +426,7 @@ var manifest = {
|
|
|
426
426
|
// quality:check-builds - Check build status across monorepo
|
|
427
427
|
// ======================================================================
|
|
428
428
|
{
|
|
429
|
-
id: "
|
|
429
|
+
id: "check-builds",
|
|
430
430
|
group: "quality",
|
|
431
431
|
describe: "Check build status across monorepo",
|
|
432
432
|
longDescription: "Analyzes build status across all packages with build scripts. Detects build failures with error messages and stale builds (dist/ older than src/). Results are cached for 10 minutes.",
|
|
@@ -446,7 +446,7 @@ var manifest = {
|
|
|
446
446
|
// quality:check-types - TypeScript type safety analysis
|
|
447
447
|
// ======================================================================
|
|
448
448
|
{
|
|
449
|
-
id: "
|
|
449
|
+
id: "check-types",
|
|
450
450
|
group: "quality",
|
|
451
451
|
describe: "Analyze TypeScript type safety across monorepo",
|
|
452
452
|
longDescription: "Analyzes TypeScript type errors, warnings, and type coverage using TypeScript Compiler API. Detects any usage, @ts-ignore comments, and calculates type coverage percentage. Results are cached for 10 minutes.",
|
|
@@ -466,7 +466,7 @@ var manifest = {
|
|
|
466
466
|
// quality:check-tests - Test execution and coverage tracking
|
|
467
467
|
// ======================================================================
|
|
468
468
|
{
|
|
469
|
-
id: "
|
|
469
|
+
id: "check-tests",
|
|
470
470
|
group: "quality",
|
|
471
471
|
describe: "Run tests and track coverage across monorepo",
|
|
472
472
|
longDescription: "Runs tests across all packages with test scripts and collects coverage statistics. Parses test output (vitest/jest) to extract test counts and reads coverage-summary.json. Results are cached for 5 minutes.",
|
|
@@ -487,7 +487,7 @@ var manifest = {
|
|
|
487
487
|
// quality:dead-code - Dead code file detection
|
|
488
488
|
// ======================================================================
|
|
489
489
|
{
|
|
490
|
-
id: "
|
|
490
|
+
id: "dead-code",
|
|
491
491
|
group: "quality",
|
|
492
492
|
describe: "Detect dead (unreachable) source files",
|
|
493
493
|
longDescription: "Analyzes import graph to find source files not reachable from any entry point (package.json, tsup.config.ts, manifest.ts). Supports automated removal with backup and restore capabilities. Zero false positives by design.",
|
package/dist/manifest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli/commands/flags.ts","../src/manifest.ts"],"names":[],"mappings":";;;;;;AASO,IAAM,UAAA,GAAa;AAAA,EACxB,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,oBAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,EAAA,EAAI;AAAA,IACF,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,uBAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,mBAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,8BAAA;AAAA,IACb,OAAA,EAAS;AAAA;AAEb,CAAA;AAOO,IAAM,WAAA,GAAc;AAAA,EACzB,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,oBAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa,mCAAA;AAAA,IACb,KAAA,EAAO;AAAA,GACT;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,yBAAA;AAAA,IACb,OAAA,EAAS,KAAA;AAAA,IACT,KAAA,EAAO;AAAA;AAEX,CAAA;AAOO,IAAM,YAAA,GAAe;AAAA,EAC1B,SAAA,EAAW;AAAA,IACT,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,uCAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,4BAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,aAAA,EAAe;AAAA,IACb,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,oCAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,gBAAA,EAAkB;AAAA,IAChB,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,qCAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,GAAA,EAAK;AAAA,IACH,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,gEAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,4BAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,oBAAA;AAAA,IACb,OAAA,EAAS;AAAA;AAEb,CAAA;AA6CO,IAAM,eAAA,GAAkB;AAAA,EAC7B,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa,4CAAA;AAAA,IACb,KAAA,EAAO;AAAA,GACT;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,qCAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,wBAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,oBAAA;AAAA,IACb,OAAA,EAAS;AAAA;AAEb,CAAA;AAOO,IAAM,WAAA,GAAc;AAAA,EACzB,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,oBAAA;AAAA,IACb,OAAA,EAAS;AAAA;AAEb,CAAA;AAOO,IAAM,cAAA,GAAiB;AAAA,EAC5B,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa,2BAAA;AAAA,IACb,KAAA,EAAO;AAAA,GACT;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,sBAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,GAAA,EAAK;AAAA,IACH,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,gCAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,uBAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,iDAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,8CAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,oBAAA;AAAA,IACb,OAAA,EAAS;AAAA;AAEb,CAAA;AAOO,IAAM,gBAAA,GAAmB;AAAA,EAC9B,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa,mCAAA;AAAA,IACb,KAAA,EAAO;AAAA,GACT;AAAA,EACA,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa,qCAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,oBAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,8BAAA;AAAA,IACb,OAAA,EAAS;AAAA;AAEb,CAAA;AAOO,IAAM,eAAA,GAAkB;AAAA,EAC7B,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa,oCAAA;AAAA,IACb,KAAA,EAAO;AAAA,GACT;AAAA,EACA,aAAA,EAAe;AAAA,IACb,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,gCAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,oBAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,gCAAA;AAAA,IACb,OAAA,EAAS;AAAA;AAEb,CAAA;AAOO,IAAM,eAAA,GAAkB;AAAA,EAC7B,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa,gCAAA;AAAA,IACb,KAAA,EAAO;AAAA,GACT;AAAA,EACA,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa,qCAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,6BAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,mDAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,oBAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,4BAAA;AAAA,IACb,OAAA,EAAS;AAAA;AAEb,CAAA;AAOO,IAAM,aAAA,GAAgB;AAAA,EAC3B,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa,4BAAA;AAAA,IACb,KAAA,EAAO;AAAA,GACT;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,oBAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,qCAAA;AAAA,IACb,OAAA,EAAS,KAAA;AAAA,IACT,KAAA,EAAO;AAAA,GACT;AAAA,EACA,aAAA,EAAe;AAAA,IACb,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,0CAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,SAAA,EAAW;AAAA,IACT,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,sDAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa;AAAA,GACf;AAAA,EACA,cAAA,EAAgB;AAAA,IACd,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,wBAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX;AAAA,EACA,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,yBAAA;AAAA,IACb,OAAA,EAAS;AAAA;AAEb,CAAA;;;ACzUA,IAAM,oBAAoB,kBAAA,EAAmB,CAC1C,IAAA,CAAK,gBAAgB,EACrB,MAAA,CAAO;AAAA,EACN,IAAA,EAAM,WAAA;AAAA,EACN,KAAA,EAAO,CAAC,IAAI;AAAA;AACd,CAAC,EACA,YAAA,CAAa;AAAA,EACZ,KAAA,EAAO,CAAC,UAAU,CAAA;AAAA;AAAA,EAClB,SAAA,EAAW;AAAA;AACb,CAAC,EACA,UAAA,CAAW;AAAA,EACV,SAAA,EAAW,GAAA;AAAA;AAAA,EACX,QAAA,EAAU;AAAA;AACZ,CAAC,EACA,KAAA,EAAM;AAMT,IAAM,6BAA6B,kBAAA,EAAmB,CACnD,IAAA,CAAK,gBAAgB,EACrB,MAAA,CAAO;AAAA,EACN,IAAA,EAAM,WAAA;AAAA,EACN,KAAA,EAAO,CAAC,IAAI;AACd,CAAC,EACA,YAAA,CAAa;AAAA,EACZ,KAAA,EAAO,CAAC,UAAU,CAAA;AAAA,EAClB,SAAA,EAAW;AACb,CAAC,EACA,UAAA,CAAW;AAAA,EACV,SAAA,EAAW,GAAA;AAAA;AAAA,EACX,QAAA,EAAU;AAAA;AACZ,CAAC,EACA,KAAA,EAAM;AAEF,IAAM,QAAA,GAAW;AAAA,EACtB,MAAA,EAAQ,aAAA;AAAA,EACR,EAAA,EAAI,kBAAA;AAAA,EACJ,OAAA,EAAS,OAAA;AAAA,EAET,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,eAAA;AAAA,IACN,WAAA,EAAa,+CAAA;AAAA,IACb,IAAA,EAAM,CAAC,SAAA,EAAW,UAAA,EAAY,YAAY,UAAU;AAAA,GACtD;AAAA,EAEA,QAAA,EAAU;AAAA,IACR,QAAA,EAAU,CAAC,SAAA,EAAW,OAAO,CAAA;AAAA,IAC7B,QAAA,EAAU,CAAC,WAAA,EAAa,QAAQ;AAAA,GAClC;AAAA,EAEA,GAAA,EAAK;AAAA,IACH,QAAA,EAAU;AAAA;AAAA;AAAA;AAAA,MAIR;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,QAAA,EAAU,0CAAA;AAAA,QACV,eAAA,EACE,2IAAA;AAAA,QAGF,OAAA,EAAS,iCAAA;AAAA,QACT,WAAA,EAAa,yBAAA;AAAA,QAEb,KAAA,EAAO,mBAAmB,UAAU,CAAA;AAAA,QAEpC,QAAA,EAAU;AAAA,UACR,kBAAA;AAAA,UACA,2BAAA;AAAA,UACA,yBAAA;AAAA,UACA;AAAA,SACF;AAAA,QAEA,WAAA,EAAa;AAAA,OACf;AAAA;AAAA;AAAA;AAAA,MAKA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,QAAA,EAAU,6BAAA;AAAA,QACV,eAAA,EACE,2KAAA;AAAA,QAGF,OAAA,EAAS,kCAAA;AAAA,QACT,WAAA,EAAa,0BAAA;AAAA,QAEb,KAAA,EAAO,mBAAmB,WAAW,CAAA;AAAA,QAErC,QAAA,EAAU;AAAA,UACR,mBAAA;AAAA,UACA,8BAAA;AAAA,UACA,2CAAA;AAAA,UACA;AAAA,SACF;AAAA,QAEA,WAAA,EAAa;AAAA,OACf;AAAA;AAAA;AAAA;AAAA,MAKA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,QAAA,EAAU,4BAAA;AAAA,QACV,eAAA,EACE,kLAAA;AAAA,QAGF,OAAA,EAAS,oCAAA;AAAA,QACT,WAAA,EAAa,4BAAA;AAAA,QAEb,KAAA,EAAO,mBAAmB,YAAY,CAAA;AAAA,QAEtC,QAAA,EAAU;AAAA,UACR,6BAAA;AAAA,UACA,+CAAA;AAAA,UACA,sCAAA;AAAA,UACA;AAAA,SACF;AAAA,QAEA,WAAA,EAAa;AAAA,OACf;AAAA;AAAA;AAAA;AAAA,MAKA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,QAAA,EAAU,8CAAA;AAAA,QACV,eAAA,EACE,uLAAA;AAAA,QAGF,OAAA,EAAS,uCAAA;AAAA,QACT,WAAA,EAAa,+BAAA;AAAA,QAEb,KAAA,EAAO,mBAAmB,eAAe,CAAA;AAAA,QAEzC,QAAA,EAAU;AAAA,UACR,wBAAA;AAAA,UACA,iCAAA;AAAA,UACA,gDAAA;AAAA,UACA;AAAA,SACF;AAAA,QAEA,WAAA,EAAa;AAAA,OACf;AAAA;AAAA;AAAA;AAAA,MAKA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,QAAA,EAAU,8BAAA;AAAA,QACV,eAAA,EACE,2IAAA;AAAA,QAGF,OAAA,EAAS,kCAAA;AAAA,QACT,WAAA,EAAa,0BAAA;AAAA,QAEb,KAAA,EAAO,mBAAmB,WAAW,CAAA;AAAA,QAErC,QAAA,EAAU;AAAA,UACR,mBAAA;AAAA,UACA;AAAA,SACF;AAAA,QAEA,WAAA,EAAa;AAAA,OACf;AAAA;AAAA;AAAA;AAAA,MAKA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,QAAA,EAAU,4BAAA;AAAA,QACV,eAAA,EACE,iOAAA;AAAA,QAIF,OAAA,EAAS,qCAAA;AAAA,QACT,WAAA,EAAa,6BAAA;AAAA,QAEb,KAAA,EAAO,mBAAmB,cAAc,CAAA;AAAA,QAExC,QAAA,EAAU;AAAA,UACR,8BAAA;AAAA,UACA,qDAAA;AAAA,UACA,uDAAA;AAAA,UACA,uDAAA;AAAA,UACA;AAAA,SACF;AAAA,QAEA,WAAA,EAAa;AAAA,OACf;AAAA;AAAA;AAAA;AAAA,MAKA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,QAAA,EAAU,oCAAA;AAAA,QACV,eAAA,EACE,uLAAA;AAAA,QAIF,OAAA,EAAS,wCAAA;AAAA,QACT,WAAA,EAAa,gCAAA;AAAA,QAEb,KAAA,EAAO,mBAAmB,gBAAgB,CAAA;AAAA,QAE1C,QAAA,EAAU;AAAA,UACR,yBAAA;AAAA,UACA,iDAAA;AAAA,UACA,yCAAA;AAAA,UACA,gCAAA;AAAA,UACA;AAAA,SACF;AAAA,QAEA,WAAA,EAAa;AAAA,OACf;AAAA;AAAA;AAAA;AAAA,MAKA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,QAAA,EAAU,gDAAA;AAAA,QACV,eAAA,EACE,iNAAA;AAAA,QAIF,OAAA,EAAS,uCAAA;AAAA,QACT,WAAA,EAAa,+BAAA;AAAA,QAEb,KAAA,EAAO,mBAAmB,eAAe,CAAA;AAAA,QAEzC,QAAA,EAAU;AAAA,UACR,wBAAA;AAAA,UACA,gDAAA;AAAA,UACA,sCAAA;AAAA,UACA,+BAAA;AAAA,UACA;AAAA,SACF;AAAA,QAEA,WAAA,EAAa;AAAA,OACf;AAAA;AAAA;AAAA;AAAA,MAKA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,QAAA,EAAU,8CAAA;AAAA,QACV,eAAA,EACE,+MAAA;AAAA,QAIF,OAAA,EAAS,uCAAA;AAAA,QACT,WAAA,EAAa,+BAAA;AAAA,QAEb,KAAA,EAAO,mBAAmB,eAAe,CAAA;AAAA,QAEzC,QAAA,EAAU;AAAA,UACR,wBAAA;AAAA,UACA,gDAAA;AAAA,UACA,wCAAA;AAAA,UACA,wCAAA;AAAA,UACA,yCAAA;AAAA,UACA;AAAA,SACF;AAAA,QAEA,WAAA,EAAa;AAAA,OACf;AAAA;AAAA;AAAA;AAAA,MAKA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,QAAA,EAAU,wCAAA;AAAA,QACV,eAAA,EACE,6NAAA;AAAA,QAIF,OAAA,EAAS,qCAAA;AAAA,QACT,WAAA,EAAa,6BAAA;AAAA,QAEb,KAAA,EAAO,mBAAmB,aAAa,CAAA;AAAA,QAEvC,QAAA,EAAU;AAAA,UACR,sBAAA;AAAA,UACA,8CAAA;AAAA,UACA,8CAAA;AAAA,UACA,oCAAA;AAAA,UACA,qCAAA;AAAA,UACA,oDAAA;AAAA,UACA;AAAA,SACF;AAAA,QAEA,WAAA,EAAa;AAAA;AACf;AACF,GACF;AAAA;AAAA,EAGA,IAAA,EAAM;AAAA,IACJ,QAAA,EAAU,iBAAA;AAAA,IACV,MAAA,EAAQ;AAAA;AAAA,MAEN;AAAA,QACE,MAAA,EAAQ,KAAA;AAAA,QACR,MAAM,cAAA,CAAe,KAAA;AAAA,QACrB,OAAA,EAAS,0CAAA;AAAA,QACT,KAAA,EAAO;AAAA,UACL,GAAA,EAAK;AAAA,SACP;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,GAAA,EAAK;AAAA;AACP,OACF;AAAA;AAAA,MAEA;AAAA,QACE,MAAA,EAAQ,KAAA;AAAA,QACR,MAAM,cAAA,CAAe,MAAA;AAAA,QACrB,OAAA,EAAS,2CAAA;AAAA,QACT,KAAA,EAAO;AAAA,UACL,GAAA,EAAK;AAAA,SACP;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,GAAA,EAAK;AAAA;AACP,OACF;AAAA;AAAA,MAEA;AAAA,QACE,MAAA,EAAQ,KAAA;AAAA,QACR,MAAM,cAAA,CAAe,YAAA;AAAA,QACrB,OAAA,EAAS,iDAAA;AAAA,QACT,KAAA,EAAO;AAAA,UACL,GAAA,EAAK;AAAA,SACP;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,GAAA,EAAK;AAAA;AACP,OACF;AAAA;AAAA,MAEA;AAAA,QACE,MAAA,EAAQ,KAAA;AAAA,QACR,MAAM,cAAA,CAAe,WAAA;AAAA,QACrB,OAAA,EAAS,gDAAA;AAAA,QACT,KAAA,EAAO;AAAA,UACL,GAAA,EAAK;AAAA,SACP;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,GAAA,EAAK;AAAA;AACP,OACF;AAAA;AAAA,MAEA;AAAA,QACE,MAAA,EAAQ,KAAA;AAAA,QACR,MAAM,cAAA,CAAe,MAAA;AAAA,QACrB,OAAA,EAAS,2CAAA;AAAA,QACT,KAAA,EAAO;AAAA,UACL,GAAA,EAAK;AAAA,SACP;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,GAAA,EAAK;AAAA;AACP,OACF;AAAA;AAAA,MAEA;AAAA,QACE,MAAA,EAAQ,KAAA;AAAA,QACR,MAAM,cAAA,CAAe,KAAA;AAAA,QACrB,OAAA,EAAS,0CAAA;AAAA,QACT,KAAA,EAAO;AAAA,UACL,GAAA,EAAK;AAAA,SACP;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,GAAA,EAAK;AAAA;AACP,OACF;AAAA;AAAA,MAEA;AAAA,QACE,MAAA,EAAQ,KAAA;AAAA,QACR,MAAM,cAAA,CAAe,KAAA;AAAA,QACrB,OAAA,EAAS,0CAAA;AAAA,QACT,KAAA,EAAO;AAAA,UACL,GAAA,EAAK;AAAA,SACP;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,GAAA,EAAK;AAAA;AACP,OACF;AAAA;AAAA,MAEA;AAAA,QACE,MAAA,EAAQ,KAAA;AAAA,QACR,MAAM,cAAA,CAAe,MAAA;AAAA,QACrB,OAAA,EAAS,2CAAA;AAAA,QACT,KAAA,EAAO;AAAA,UACL,GAAA,EAAK;AAAA,SACP;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,GAAA,EAAK;AAAA;AACP,OACF;AAAA;AAAA,MAEA;AAAA,QACE,MAAA,EAAQ,KAAA;AAAA,QACR,MAAM,cAAA,CAAe,KAAA;AAAA,QACrB,OAAA,EAAS,0CAAA;AAAA,QACT,KAAA,EAAO;AAAA,UACL,GAAA,EAAK;AAAA,SACP;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,GAAA,EAAK;AAAA;AACP,OACF;AAAA;AAAA,MAEA;AAAA,QACE,MAAA,EAAQ,KAAA;AAAA,QACR,MAAM,cAAA,CAAe,KAAA;AAAA,QACrB,OAAA,EAAS,0CAAA;AAAA,QACT,KAAA,EAAO;AAAA,UACL,GAAA,EAAK;AAAA,SACP;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,GAAA,EAAK;AAAA;AACP;AACF;AACF,GACF;AAAA;AAAA,EAGA,MAAA,EAAQ;AAAA,IACN,OAAA,EAAS,CAAA;AAAA,IACT,UAAA,EAAY,eAAA;AAAA,IACZ,KAAA,EAAO;AAAA,MACL;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,IAAA,EAAM,qBAAA;AAAA,QACN,KAAA,EAAO,YAAA;AAAA,QACP,KAAA,EAAO,mBAAA;AAAA,QACP,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,KAAA,EAAO;AAAA,MACL;AAAA,QACE,EAAA,EAAI,SAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,IAAA,EAAM,qBAAA;AAAA,QACN,MAAA,EAAQ,kBAAA;AAAA,QACR,KAAA,EAAO;AAAA;AACT;AACF,GACF;AAAA,EAEA,WAAA,EAAa;AACf;AAEA,IAAO,gBAAA,GAAQ","file":"manifest.js","sourcesContent":["/**\n * Shared command flags definitions\n *\n * DRY pattern: Define flags once, use in both manifest and command handlers.\n */\n\n/**\n * Flags for quality:stats command\n */\nexport const statsFlags = {\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n md: {\n type: 'boolean',\n description: 'Output Markdown table',\n default: false,\n },\n health: {\n type: 'boolean',\n description: 'Show health score',\n default: false,\n },\n refresh: {\n type: 'boolean',\n description: 'Bypass cache and recalculate',\n default: false,\n },\n} as const;\n\nexport type StatsFlags = typeof statsFlags;\n\n/**\n * Flags for quality:health command\n */\nexport const healthFlags = {\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n package: {\n type: 'string',\n description: 'Check health for specific package',\n alias: 'p',\n },\n detailed: {\n type: 'boolean',\n description: 'Show detailed breakdown',\n default: false,\n alias: 'd',\n },\n} as const;\n\nexport type HealthFlags = typeof healthFlags;\n\n/**\n * Flags for quality:fix-deps command\n */\nexport const fixDepsFlags = {\n 'dry-run': {\n type: 'boolean',\n description: 'Preview changes without applying them',\n default: false,\n },\n 'remove-unused': {\n type: 'boolean',\n description: 'Remove unused dependencies',\n default: false,\n },\n 'add-missing': {\n type: 'boolean',\n description: 'Add missing workspace dependencies',\n default: false,\n },\n 'align-versions': {\n type: 'boolean',\n description: 'Align duplicate dependency versions',\n default: false,\n },\n all: {\n type: 'boolean',\n description: 'Apply all fixes (remove-unused + add-missing + align-versions)',\n default: false,\n },\n stats: {\n type: 'boolean',\n description: 'Show dependency statistics',\n default: false,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n} as const;\n\nexport type FixDepsFlags = typeof fixDepsFlags;\n\n/**\n * Flags for quality:run command\n */\nexport const runFlags = {\n script: {\n type: 'string',\n description: 'Script to run (build, test, type-check, lint)',\n required: true,\n },\n 'continue-on-error': {\n type: 'boolean',\n description: 'Continue even if packages fail',\n default: true,\n },\n parallel: {\n type: 'boolean',\n description: 'Run in parallel (respects dependencies)',\n default: false,\n },\n filter: {\n type: 'string',\n description: 'Filter packages by pattern (@kb-labs/*)',\n },\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n verbose: {\n type: 'boolean',\n description: 'Show full output for each package',\n default: false,\n alias: 'v',\n },\n} as const;\n\nexport type RunFlags = typeof runFlags;\n\n/**\n * Flags for quality:build-order command\n */\nexport const buildOrderFlags = {\n package: {\n type: 'string',\n description: 'Calculate build order for specific package',\n alias: 'p',\n },\n layers: {\n type: 'boolean',\n description: 'Show build layers (parallel groups)',\n default: false,\n },\n script: {\n type: 'boolean',\n description: 'Output as shell script',\n default: false,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n} as const;\n\nexport type BuildOrderFlags = typeof buildOrderFlags;\n\n/**\n * Flags for quality:cycles command\n */\nexport const cyclesFlags = {\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n} as const;\n\nexport type CyclesFlags = typeof cyclesFlags;\n\n/**\n * Flags for quality:visualize command\n */\nexport const visualizeFlags = {\n package: {\n type: 'string',\n description: 'Focus on specific package',\n alias: 'p',\n },\n tree: {\n type: 'boolean',\n description: 'Show dependency tree',\n default: false,\n },\n dot: {\n type: 'boolean',\n description: 'Output DOT format for graphviz',\n default: false,\n },\n stats: {\n type: 'boolean',\n description: 'Show graph statistics',\n default: false,\n },\n reverse: {\n type: 'boolean',\n description: 'Show reverse dependencies (who depends on this)',\n default: false,\n },\n impact: {\n type: 'boolean',\n description: 'Show impact analysis (what will be affected)',\n default: false,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n} as const;\n\nexport type VisualizeFlags = typeof visualizeFlags;\n\n/**\n * Flags for quality:check-builds command\n */\nexport const checkBuildsFlags = {\n package: {\n type: 'string',\n description: 'Check builds for specific package',\n alias: 'p',\n },\n timeout: {\n type: 'number',\n description: 'Timeout per package in milliseconds',\n default: 30000,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n refresh: {\n type: 'boolean',\n description: 'Bypass cache and check fresh',\n default: false,\n },\n} as const;\n\nexport type CheckBuildsFlags = typeof checkBuildsFlags;\n\n/**\n * Flags for quality:check-types command\n */\nexport const checkTypesFlags = {\n package: {\n type: 'string',\n description: 'Analyze types for specific package',\n alias: 'p',\n },\n 'errors-only': {\n type: 'boolean',\n description: 'Show only packages with errors',\n default: false,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n refresh: {\n type: 'boolean',\n description: 'Bypass cache and analyze fresh',\n default: false,\n },\n} as const;\n\nexport type CheckTypesFlags = typeof checkTypesFlags;\n\n/**\n * Flags for quality:check-tests command\n */\nexport const checkTestsFlags = {\n package: {\n type: 'string',\n description: 'Run tests for specific package',\n alias: 'p',\n },\n timeout: {\n type: 'number',\n description: 'Timeout per package in milliseconds',\n default: 60000,\n },\n 'with-coverage': {\n type: 'boolean',\n description: 'Collect coverage statistics',\n default: false,\n },\n 'coverage-only': {\n type: 'boolean',\n description: 'Only show existing coverage (skip test execution)',\n default: false,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n refresh: {\n type: 'boolean',\n description: 'Bypass cache and run fresh',\n default: false,\n },\n} as const;\n\nexport type CheckTestsFlags = typeof checkTestsFlags;\n\n/**\n * Flags for quality:dead-code command\n */\nexport const deadCodeFlags = {\n package: {\n type: 'string',\n description: 'Scan specific package only',\n alias: 'p',\n },\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n verbose: {\n type: 'boolean',\n description: 'Show entry points and alive reasons',\n default: false,\n alias: 'v',\n },\n 'auto-remove': {\n type: 'boolean',\n description: 'Remove dead files (creates backup first)',\n default: false,\n },\n 'dry-run': {\n type: 'boolean',\n description: 'Show what would be removed without actually deleting',\n default: false,\n },\n restore: {\n type: 'string',\n description: 'Restore files from backup ID',\n },\n 'list-backups': {\n type: 'boolean',\n description: 'List available backups',\n default: false,\n },\n refresh: {\n type: 'boolean',\n description: 'Bypass cache and rescan',\n default: false,\n },\n} as const;\n\nexport type DeadCodeFlags = typeof deadCodeFlags;\n","/**\n * Quality Plugin Manifest V3\n *\n * Monorepo quality analysis and automated fixes\n */\n\nimport {\n combinePermissions,\n kbPlatformPreset,\n defineCommandFlags,\n} from '@kb-labs/sdk';\nimport {\n QUALITY_BASE_PATH,\n QUALITY_ROUTES,\n} from '@kb-labs/quality-contracts';\nimport {\n statsFlags,\n healthFlags,\n fixDepsFlags,\n buildOrderFlags,\n cyclesFlags,\n visualizeFlags,\n checkBuildsFlags,\n checkTypesFlags,\n checkTestsFlags,\n deadCodeFlags,\n} from './cli/commands/flags.js';\n\n/**\n * Build permissions using V3 combinePermissions builder pattern.\n * Quality plugin needs read/write access to entire monorepo for analysis and fixes.\n */\nconst pluginPermissions = combinePermissions()\n .with(kbPlatformPreset)\n .withFs({\n mode: 'readWrite',\n allow: ['**'], // Access to entire monorepo\n })\n .withPlatform({\n cache: ['quality:'], // Cache namespace prefix\n analytics: true, // Track command usage\n })\n .withQuotas({\n timeoutMs: 300000, // 5 minutes for long-running operations\n memoryMb: 1024, // 1GB memory\n })\n .build();\n\n/**\n * Heavy operations permissions (builds, types, tests)\n * These operations scan the entire monorepo and can take a long time\n */\nconst heavyOperationsPermissions = combinePermissions()\n .with(kbPlatformPreset)\n .withFs({\n mode: 'readWrite',\n allow: ['**'],\n })\n .withPlatform({\n cache: ['quality:'],\n analytics: true,\n })\n .withQuotas({\n timeoutMs: 600000, // 10 minutes for heavy operations\n memoryMb: 2048, // 2GB memory\n })\n .build();\n\nexport const manifest = {\n schema: 'kb.plugin/3',\n id: '@kb-labs/quality',\n version: '0.1.0',\n\n display: {\n name: 'Quality Tools',\n description: 'Monorepo quality analysis and automated fixes',\n tags: ['quality', 'monorepo', 'analysis', 'devtools'],\n },\n\n platform: {\n requires: ['storage', 'cache'],\n optional: ['analytics', 'logger'],\n },\n\n cli: {\n commands: [\n // ======================================================================\n // quality:stats - Monorepo statistics and health score\n // ======================================================================\n {\n id: 'quality:stats',\n group: 'quality',\n describe: 'Get monorepo statistics and health score',\n longDescription:\n 'Analyzes monorepo structure, collects package statistics, dependency info, and calculates health score. ' +\n 'Results are cached for 5 minutes.',\n\n handler: './cli/commands/stats.js#default',\n handlerPath: './cli/commands/stats.js',\n\n flags: defineCommandFlags(statsFlags),\n\n examples: [\n 'kb quality:stats',\n 'kb quality:stats --health',\n 'kb quality:stats --json',\n 'kb quality:stats --md',\n ],\n\n permissions: pluginPermissions,\n },\n\n // ======================================================================\n // quality:health - Monorepo health check\n // ======================================================================\n {\n id: 'quality:health',\n group: 'quality',\n describe: 'Check monorepo health score',\n longDescription:\n 'Analyzes monorepo health including dependency issues, structure problems, and build health. ' +\n 'Returns health score (0-100) with grade (A-F) and actionable recommendations.',\n\n handler: './cli/commands/health.js#default',\n handlerPath: './cli/commands/health.js',\n\n flags: defineCommandFlags(healthFlags),\n\n examples: [\n 'kb quality:health',\n 'kb quality:health --detailed',\n 'kb quality:health --package @kb-labs/core',\n 'kb quality:health --json',\n ],\n\n permissions: pluginPermissions,\n },\n\n // ======================================================================\n // quality:fix-deps - Dependency auto-fixer\n // ======================================================================\n {\n id: 'quality:fix-deps',\n group: 'quality',\n describe: 'Auto-fix dependency issues',\n longDescription:\n 'Automatically fixes dependency issues including removing unused deps, adding missing workspace deps, ' +\n 'and aligning duplicate versions. Supports --dry-run for previewing changes.',\n\n handler: './cli/commands/fix-deps.js#default',\n handlerPath: './cli/commands/fix-deps.js',\n\n flags: defineCommandFlags(fixDepsFlags),\n\n examples: [\n 'kb quality:fix-deps --stats',\n 'kb quality:fix-deps --remove-unused --dry-run',\n 'kb quality:fix-deps --align-versions',\n 'kb quality:fix-deps --all --dry-run',\n ],\n\n permissions: pluginPermissions,\n },\n\n // ======================================================================\n // quality:build-order - Calculate build order with topological sort\n // ======================================================================\n {\n id: 'quality:build-order',\n group: 'quality',\n describe: 'Calculate build order using topological sort',\n longDescription:\n 'Analyzes package dependencies and calculates correct build order using topological sort. ' +\n 'Shows build layers where each layer can be built in parallel. Detects circular dependencies.',\n\n handler: './cli/commands/build-order.js#default',\n handlerPath: './cli/commands/build-order.js',\n\n flags: defineCommandFlags(buildOrderFlags),\n\n examples: [\n 'kb quality:build-order',\n 'kb quality:build-order --layers',\n 'kb quality:build-order --package @kb-labs/core',\n 'kb quality:build-order --script > build.sh',\n ],\n\n permissions: pluginPermissions,\n },\n\n // ======================================================================\n // quality:cycles - Detect circular dependencies\n // ======================================================================\n {\n id: 'quality:cycles',\n group: 'quality',\n describe: 'Detect circular dependencies',\n longDescription:\n 'Uses DFS to find all circular dependency chains in the monorepo. ' +\n 'Shows complete dependency cycles with recommendations for breaking them.',\n\n handler: './cli/commands/cycles.js#default',\n handlerPath: './cli/commands/cycles.js',\n\n flags: defineCommandFlags(cyclesFlags),\n\n examples: [\n 'kb quality:cycles',\n 'kb quality:cycles --json',\n ],\n\n permissions: pluginPermissions,\n },\n\n // ======================================================================\n // quality:visualize - Visualize dependency graph\n // ======================================================================\n {\n id: 'quality:visualize',\n group: 'quality',\n describe: 'Visualize dependency graph',\n longDescription:\n 'Visualize monorepo dependency graph in various formats: tree view, DOT format for graphviz, ' +\n 'reverse dependencies (who depends on this), impact analysis (what will be affected by changes), ' +\n 'and comprehensive graph statistics.',\n\n handler: './cli/commands/visualize.js#default',\n handlerPath: './cli/commands/visualize.js',\n\n flags: defineCommandFlags(visualizeFlags),\n\n examples: [\n 'kb quality:visualize --stats',\n 'kb quality:visualize --tree --package @kb-labs/core',\n 'kb quality:visualize --reverse --package @kb-labs/sdk',\n 'kb quality:visualize --impact --package @kb-labs/core',\n 'kb quality:visualize --dot > deps.dot',\n ],\n\n permissions: pluginPermissions,\n },\n\n // ======================================================================\n // quality:check-builds - Check build status across monorepo\n // ======================================================================\n {\n id: 'quality:check-builds',\n group: 'quality',\n describe: 'Check build status across monorepo',\n longDescription:\n 'Analyzes build status across all packages with build scripts. ' +\n 'Detects build failures with error messages and stale builds (dist/ older than src/). ' +\n 'Results are cached for 10 minutes.',\n\n handler: './cli/commands/check-builds.js#default',\n handlerPath: './cli/commands/check-builds.js',\n\n flags: defineCommandFlags(checkBuildsFlags),\n\n examples: [\n 'kb quality:check-builds',\n 'kb quality:check-builds --package @kb-labs/core',\n 'kb quality:check-builds --timeout 60000',\n 'kb quality:check-builds --json',\n 'kb quality:check-builds --refresh',\n ],\n\n permissions: heavyOperationsPermissions,\n },\n\n // ======================================================================\n // quality:check-types - TypeScript type safety analysis\n // ======================================================================\n {\n id: 'quality:check-types',\n group: 'quality',\n describe: 'Analyze TypeScript type safety across monorepo',\n longDescription:\n 'Analyzes TypeScript type errors, warnings, and type coverage using TypeScript Compiler API. ' +\n 'Detects any usage, @ts-ignore comments, and calculates type coverage percentage. ' +\n 'Results are cached for 10 minutes.',\n\n handler: './cli/commands/check-types.js#default',\n handlerPath: './cli/commands/check-types.js',\n\n flags: defineCommandFlags(checkTypesFlags),\n\n examples: [\n 'kb quality:check-types',\n 'kb quality:check-types --package @kb-labs/core',\n 'kb quality:check-types --errors-only',\n 'kb quality:check-types --json',\n 'kb quality:check-types --refresh',\n ],\n\n permissions: heavyOperationsPermissions,\n },\n\n // ======================================================================\n // quality:check-tests - Test execution and coverage tracking\n // ======================================================================\n {\n id: 'quality:check-tests',\n group: 'quality',\n describe: 'Run tests and track coverage across monorepo',\n longDescription:\n 'Runs tests across all packages with test scripts and collects coverage statistics. ' +\n 'Parses test output (vitest/jest) to extract test counts and reads coverage-summary.json. ' +\n 'Results are cached for 5 minutes.',\n\n handler: './cli/commands/check-tests.js#default',\n handlerPath: './cli/commands/check-tests.js',\n\n flags: defineCommandFlags(checkTestsFlags),\n\n examples: [\n 'kb quality:check-tests',\n 'kb quality:check-tests --package @kb-labs/core',\n 'kb quality:check-tests --with-coverage',\n 'kb quality:check-tests --coverage-only',\n 'kb quality:check-tests --timeout 120000',\n 'kb quality:check-tests --json',\n ],\n\n permissions: heavyOperationsPermissions,\n },\n\n // ======================================================================\n // quality:dead-code - Dead code file detection\n // ======================================================================\n {\n id: 'quality:dead-code',\n group: 'quality',\n describe: 'Detect dead (unreachable) source files',\n longDescription:\n 'Analyzes import graph to find source files not reachable from any entry point ' +\n '(package.json, tsup.config.ts, manifest.ts). Supports automated removal with ' +\n 'backup and restore capabilities. Zero false positives by design.',\n\n handler: './cli/commands/dead-code.js#default',\n handlerPath: './cli/commands/dead-code.js',\n\n flags: defineCommandFlags(deadCodeFlags),\n\n examples: [\n 'kb quality:dead-code',\n 'kb quality:dead-code --package @kb-labs/core',\n 'kb quality:dead-code --auto-remove --dry-run',\n 'kb quality:dead-code --auto-remove',\n 'kb quality:dead-code --list-backups',\n 'kb quality:dead-code --restore 2026-02-15T10-30-00',\n 'kb quality:dead-code --json',\n ],\n\n permissions: pluginPermissions,\n },\n ],\n },\n\n // REST API routes\n rest: {\n basePath: QUALITY_BASE_PATH,\n routes: [\n // GET /stats\n {\n method: 'GET',\n path: QUALITY_ROUTES.STATS,\n handler: './rest/handlers/stats-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#StatsRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#StatsResponseSchema',\n },\n },\n // GET /health\n {\n method: 'GET',\n path: QUALITY_ROUTES.HEALTH,\n handler: './rest/handlers/health-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#HealthRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#HealthResponseSchema',\n },\n },\n // GET /dependencies\n {\n method: 'GET',\n path: QUALITY_ROUTES.DEPENDENCIES,\n handler: './rest/handlers/dependencies-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#DependenciesRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#DependenciesResponseSchema',\n },\n },\n // GET /build-order\n {\n method: 'GET',\n path: QUALITY_ROUTES.BUILD_ORDER,\n handler: './rest/handlers/build-order-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#BuildOrderRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#BuildOrderResponseSchema',\n },\n },\n // GET /cycles\n {\n method: 'GET',\n path: QUALITY_ROUTES.CYCLES,\n handler: './rest/handlers/cycles-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#CyclesRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#CyclesResponseSchema',\n },\n },\n // GET /graph\n {\n method: 'GET',\n path: QUALITY_ROUTES.GRAPH,\n handler: './rest/handlers/graph-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#GraphRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#GraphResponseSchema',\n },\n },\n // GET /stale\n {\n method: 'GET',\n path: QUALITY_ROUTES.STALE,\n handler: './rest/handlers/stale-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#StaleRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#StaleResponseSchema',\n },\n },\n // GET /builds\n {\n method: 'GET',\n path: QUALITY_ROUTES.BUILDS,\n handler: './rest/handlers/builds-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#BuildsRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#BuildsResponseSchema',\n },\n },\n // GET /types\n {\n method: 'GET',\n path: QUALITY_ROUTES.TYPES,\n handler: './rest/handlers/types-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#TypesRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#TypesResponseSchema',\n },\n },\n // GET /tests\n {\n method: 'GET',\n path: QUALITY_ROUTES.TESTS,\n handler: './rest/handlers/tests-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#TestsRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#TestsResponseSchema',\n },\n },\n ],\n },\n\n // Studio V2 — Module Federation pages\n studio: {\n version: 2 as const,\n remoteName: 'qualityPlugin',\n pages: [\n {\n id: 'quality.overview',\n title: 'Quality',\n icon: 'CheckCircleOutlined',\n route: '/p/quality',\n entry: './QualityOverview',\n order: 1,\n },\n ],\n menus: [\n {\n id: 'quality',\n label: 'Quality',\n icon: 'CheckCircleOutlined',\n target: 'quality.overview',\n order: 40,\n },\n ],\n },\n\n permissions: pluginPermissions,\n};\n\nexport default manifest;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/cli/commands/flags.ts","../src/manifest.ts"],"names":[],"mappings":"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","file":"manifest.js","sourcesContent":["/**\n * Shared command flags definitions\n *\n * DRY pattern: Define flags once, use in both manifest and command handlers.\n */\n\n/**\n * Flags for quality:stats command\n */\nexport const statsFlags = {\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n md: {\n type: 'boolean',\n description: 'Output Markdown table',\n default: false,\n },\n health: {\n type: 'boolean',\n description: 'Show health score',\n default: false,\n },\n refresh: {\n type: 'boolean',\n description: 'Bypass cache and recalculate',\n default: false,\n },\n} as const;\n\nexport type StatsFlags = typeof statsFlags;\n\n/**\n * Flags for quality:health command\n */\nexport const healthFlags = {\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n package: {\n type: 'string',\n description: 'Check health for specific package',\n alias: 'p',\n },\n detailed: {\n type: 'boolean',\n description: 'Show detailed breakdown',\n default: false,\n alias: 'd',\n },\n} as const;\n\nexport type HealthFlags = typeof healthFlags;\n\n/**\n * Flags for quality:fix-deps command\n */\nexport const fixDepsFlags = {\n 'dry-run': {\n type: 'boolean',\n description: 'Preview changes without applying them',\n default: false,\n },\n 'remove-unused': {\n type: 'boolean',\n description: 'Remove unused dependencies',\n default: false,\n },\n 'add-missing': {\n type: 'boolean',\n description: 'Add missing workspace dependencies',\n default: false,\n },\n 'align-versions': {\n type: 'boolean',\n description: 'Align duplicate dependency versions',\n default: false,\n },\n all: {\n type: 'boolean',\n description: 'Apply all fixes (remove-unused + add-missing + align-versions)',\n default: false,\n },\n stats: {\n type: 'boolean',\n description: 'Show dependency statistics',\n default: false,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n} as const;\n\nexport type FixDepsFlags = typeof fixDepsFlags;\n\n/**\n * Flags for quality:run command\n */\nexport const runFlags = {\n script: {\n type: 'string',\n description: 'Script to run (build, test, type-check, lint)',\n required: true,\n },\n 'continue-on-error': {\n type: 'boolean',\n description: 'Continue even if packages fail',\n default: true,\n },\n parallel: {\n type: 'boolean',\n description: 'Run in parallel (respects dependencies)',\n default: false,\n },\n filter: {\n type: 'string',\n description: 'Filter packages by pattern (@kb-labs/*)',\n },\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n verbose: {\n type: 'boolean',\n description: 'Show full output for each package',\n default: false,\n alias: 'v',\n },\n} as const;\n\nexport type RunFlags = typeof runFlags;\n\n/**\n * Flags for quality:build-order command\n */\nexport const buildOrderFlags = {\n package: {\n type: 'string',\n description: 'Calculate build order for specific package',\n alias: 'p',\n },\n layers: {\n type: 'boolean',\n description: 'Show build layers (parallel groups)',\n default: false,\n },\n script: {\n type: 'boolean',\n description: 'Output as shell script',\n default: false,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n} as const;\n\nexport type BuildOrderFlags = typeof buildOrderFlags;\n\n/**\n * Flags for quality:cycles command\n */\nexport const cyclesFlags = {\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n} as const;\n\nexport type CyclesFlags = typeof cyclesFlags;\n\n/**\n * Flags for quality:visualize command\n */\nexport const visualizeFlags = {\n package: {\n type: 'string',\n description: 'Focus on specific package',\n alias: 'p',\n },\n tree: {\n type: 'boolean',\n description: 'Show dependency tree',\n default: false,\n },\n dot: {\n type: 'boolean',\n description: 'Output DOT format for graphviz',\n default: false,\n },\n stats: {\n type: 'boolean',\n description: 'Show graph statistics',\n default: false,\n },\n reverse: {\n type: 'boolean',\n description: 'Show reverse dependencies (who depends on this)',\n default: false,\n },\n impact: {\n type: 'boolean',\n description: 'Show impact analysis (what will be affected)',\n default: false,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n} as const;\n\nexport type VisualizeFlags = typeof visualizeFlags;\n\n/**\n * Flags for quality:check-builds command\n */\nexport const checkBuildsFlags = {\n package: {\n type: 'string',\n description: 'Check builds for specific package',\n alias: 'p',\n },\n timeout: {\n type: 'number',\n description: 'Timeout per package in milliseconds',\n default: 30000,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n refresh: {\n type: 'boolean',\n description: 'Bypass cache and check fresh',\n default: false,\n },\n} as const;\n\nexport type CheckBuildsFlags = typeof checkBuildsFlags;\n\n/**\n * Flags for quality:check-types command\n */\nexport const checkTypesFlags = {\n package: {\n type: 'string',\n description: 'Analyze types for specific package',\n alias: 'p',\n },\n 'errors-only': {\n type: 'boolean',\n description: 'Show only packages with errors',\n default: false,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n refresh: {\n type: 'boolean',\n description: 'Bypass cache and analyze fresh',\n default: false,\n },\n} as const;\n\nexport type CheckTypesFlags = typeof checkTypesFlags;\n\n/**\n * Flags for quality:check-tests command\n */\nexport const checkTestsFlags = {\n package: {\n type: 'string',\n description: 'Run tests for specific package',\n alias: 'p',\n },\n timeout: {\n type: 'number',\n description: 'Timeout per package in milliseconds',\n default: 60000,\n },\n 'with-coverage': {\n type: 'boolean',\n description: 'Collect coverage statistics',\n default: false,\n },\n 'coverage-only': {\n type: 'boolean',\n description: 'Only show existing coverage (skip test execution)',\n default: false,\n },\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n refresh: {\n type: 'boolean',\n description: 'Bypass cache and run fresh',\n default: false,\n },\n} as const;\n\nexport type CheckTestsFlags = typeof checkTestsFlags;\n\n/**\n * Flags for quality:dead-code command\n */\nexport const deadCodeFlags = {\n package: {\n type: 'string',\n description: 'Scan specific package only',\n alias: 'p',\n },\n json: {\n type: 'boolean',\n description: 'Output JSON format',\n default: false,\n },\n verbose: {\n type: 'boolean',\n description: 'Show entry points and alive reasons',\n default: false,\n alias: 'v',\n },\n 'auto-remove': {\n type: 'boolean',\n description: 'Remove dead files (creates backup first)',\n default: false,\n },\n 'dry-run': {\n type: 'boolean',\n description: 'Show what would be removed without actually deleting',\n default: false,\n },\n restore: {\n type: 'string',\n description: 'Restore files from backup ID',\n },\n 'list-backups': {\n type: 'boolean',\n description: 'List available backups',\n default: false,\n },\n refresh: {\n type: 'boolean',\n description: 'Bypass cache and rescan',\n default: false,\n },\n} as const;\n\nexport type DeadCodeFlags = typeof deadCodeFlags;\n","/**\n * Quality Plugin Manifest V3\n *\n * Monorepo quality analysis and automated fixes\n */\n\nimport {\n combinePermissions,\n kbPlatformPreset,\n defineCommandFlags,\n} from '@kb-labs/sdk';\nimport {\n QUALITY_BASE_PATH,\n QUALITY_ROUTES,\n} from '@kb-labs/quality-contracts';\nimport {\n statsFlags,\n healthFlags,\n fixDepsFlags,\n buildOrderFlags,\n cyclesFlags,\n visualizeFlags,\n checkBuildsFlags,\n checkTypesFlags,\n checkTestsFlags,\n deadCodeFlags,\n} from './cli/commands/flags.js';\n\n/**\n * Build permissions using V3 combinePermissions builder pattern.\n * Quality plugin needs read/write access to entire monorepo for analysis and fixes.\n */\nconst pluginPermissions = combinePermissions()\n .with(kbPlatformPreset)\n .withFs({\n mode: 'readWrite',\n allow: ['**'], // Access to entire monorepo\n })\n .withPlatform({\n cache: ['quality:'], // Cache namespace prefix\n analytics: true, // Track command usage\n })\n .withQuotas({\n timeoutMs: 300000, // 5 minutes for long-running operations\n memoryMb: 1024, // 1GB memory\n })\n .build();\n\n/**\n * Heavy operations permissions (builds, types, tests)\n * These operations scan the entire monorepo and can take a long time\n */\nconst heavyOperationsPermissions = combinePermissions()\n .with(kbPlatformPreset)\n .withFs({\n mode: 'readWrite',\n allow: ['**'],\n })\n .withPlatform({\n cache: ['quality:'],\n analytics: true,\n })\n .withQuotas({\n timeoutMs: 600000, // 10 minutes for heavy operations\n memoryMb: 2048, // 2GB memory\n })\n .build();\n\nexport const manifest = {\n schema: 'kb.plugin/3',\n id: '@kb-labs/quality',\n version: '0.1.0',\n\n display: {\n name: 'Quality Tools',\n description: 'Monorepo quality analysis and automated fixes',\n tags: ['quality', 'monorepo', 'analysis', 'devtools'],\n },\n\n platform: {\n requires: ['storage', 'cache'],\n optional: ['analytics', 'logger'],\n },\n\n cli: {\n commands: [\n // ======================================================================\n // quality:stats - Monorepo statistics and health score\n // ======================================================================\n {\n id: 'stats',\n group: 'quality',\n describe: 'Get monorepo statistics and health score',\n longDescription:\n 'Analyzes monorepo structure, collects package statistics, dependency info, and calculates health score. ' +\n 'Results are cached for 5 minutes.',\n\n handler: './cli/commands/stats.js#default',\n handlerPath: './cli/commands/stats.js',\n\n flags: defineCommandFlags(statsFlags),\n\n examples: [\n 'kb quality:stats',\n 'kb quality:stats --health',\n 'kb quality:stats --json',\n 'kb quality:stats --md',\n ],\n\n permissions: pluginPermissions,\n },\n\n // ======================================================================\n // quality:health - Monorepo health check\n // ======================================================================\n {\n id: 'health',\n group: 'quality',\n describe: 'Check monorepo health score',\n longDescription:\n 'Analyzes monorepo health including dependency issues, structure problems, and build health. ' +\n 'Returns health score (0-100) with grade (A-F) and actionable recommendations.',\n\n handler: './cli/commands/health.js#default',\n handlerPath: './cli/commands/health.js',\n\n flags: defineCommandFlags(healthFlags),\n\n examples: [\n 'kb quality:health',\n 'kb quality:health --detailed',\n 'kb quality:health --package @kb-labs/core',\n 'kb quality:health --json',\n ],\n\n permissions: pluginPermissions,\n },\n\n // ======================================================================\n // quality:fix-deps - Dependency auto-fixer\n // ======================================================================\n {\n id: 'fix-deps',\n group: 'quality',\n describe: 'Auto-fix dependency issues',\n longDescription:\n 'Automatically fixes dependency issues including removing unused deps, adding missing workspace deps, ' +\n 'and aligning duplicate versions. Supports --dry-run for previewing changes.',\n\n handler: './cli/commands/fix-deps.js#default',\n handlerPath: './cli/commands/fix-deps.js',\n\n flags: defineCommandFlags(fixDepsFlags),\n\n examples: [\n 'kb quality:fix-deps --stats',\n 'kb quality:fix-deps --remove-unused --dry-run',\n 'kb quality:fix-deps --align-versions',\n 'kb quality:fix-deps --all --dry-run',\n ],\n\n permissions: pluginPermissions,\n },\n\n // ======================================================================\n // quality:build-order - Calculate build order with topological sort\n // ======================================================================\n {\n id: 'build-order',\n group: 'quality',\n describe: 'Calculate build order using topological sort',\n longDescription:\n 'Analyzes package dependencies and calculates correct build order using topological sort. ' +\n 'Shows build layers where each layer can be built in parallel. Detects circular dependencies.',\n\n handler: './cli/commands/build-order.js#default',\n handlerPath: './cli/commands/build-order.js',\n\n flags: defineCommandFlags(buildOrderFlags),\n\n examples: [\n 'kb quality:build-order',\n 'kb quality:build-order --layers',\n 'kb quality:build-order --package @kb-labs/core',\n 'kb quality:build-order --script > build.sh',\n ],\n\n permissions: pluginPermissions,\n },\n\n // ======================================================================\n // quality:cycles - Detect circular dependencies\n // ======================================================================\n {\n id: 'cycles',\n group: 'quality',\n describe: 'Detect circular dependencies',\n longDescription:\n 'Uses DFS to find all circular dependency chains in the monorepo. ' +\n 'Shows complete dependency cycles with recommendations for breaking them.',\n\n handler: './cli/commands/cycles.js#default',\n handlerPath: './cli/commands/cycles.js',\n\n flags: defineCommandFlags(cyclesFlags),\n\n examples: [\n 'kb quality:cycles',\n 'kb quality:cycles --json',\n ],\n\n permissions: pluginPermissions,\n },\n\n // ======================================================================\n // quality:visualize - Visualize dependency graph\n // ======================================================================\n {\n id: 'visualize',\n group: 'quality',\n describe: 'Visualize dependency graph',\n longDescription:\n 'Visualize monorepo dependency graph in various formats: tree view, DOT format for graphviz, ' +\n 'reverse dependencies (who depends on this), impact analysis (what will be affected by changes), ' +\n 'and comprehensive graph statistics.',\n\n handler: './cli/commands/visualize.js#default',\n handlerPath: './cli/commands/visualize.js',\n\n flags: defineCommandFlags(visualizeFlags),\n\n examples: [\n 'kb quality:visualize --stats',\n 'kb quality:visualize --tree --package @kb-labs/core',\n 'kb quality:visualize --reverse --package @kb-labs/sdk',\n 'kb quality:visualize --impact --package @kb-labs/core',\n 'kb quality:visualize --dot > deps.dot',\n ],\n\n permissions: pluginPermissions,\n },\n\n // ======================================================================\n // quality:check-builds - Check build status across monorepo\n // ======================================================================\n {\n id: 'check-builds',\n group: 'quality',\n describe: 'Check build status across monorepo',\n longDescription:\n 'Analyzes build status across all packages with build scripts. ' +\n 'Detects build failures with error messages and stale builds (dist/ older than src/). ' +\n 'Results are cached for 10 minutes.',\n\n handler: './cli/commands/check-builds.js#default',\n handlerPath: './cli/commands/check-builds.js',\n\n flags: defineCommandFlags(checkBuildsFlags),\n\n examples: [\n 'kb quality:check-builds',\n 'kb quality:check-builds --package @kb-labs/core',\n 'kb quality:check-builds --timeout 60000',\n 'kb quality:check-builds --json',\n 'kb quality:check-builds --refresh',\n ],\n\n permissions: heavyOperationsPermissions,\n },\n\n // ======================================================================\n // quality:check-types - TypeScript type safety analysis\n // ======================================================================\n {\n id: 'check-types',\n group: 'quality',\n describe: 'Analyze TypeScript type safety across monorepo',\n longDescription:\n 'Analyzes TypeScript type errors, warnings, and type coverage using TypeScript Compiler API. ' +\n 'Detects any usage, @ts-ignore comments, and calculates type coverage percentage. ' +\n 'Results are cached for 10 minutes.',\n\n handler: './cli/commands/check-types.js#default',\n handlerPath: './cli/commands/check-types.js',\n\n flags: defineCommandFlags(checkTypesFlags),\n\n examples: [\n 'kb quality:check-types',\n 'kb quality:check-types --package @kb-labs/core',\n 'kb quality:check-types --errors-only',\n 'kb quality:check-types --json',\n 'kb quality:check-types --refresh',\n ],\n\n permissions: heavyOperationsPermissions,\n },\n\n // ======================================================================\n // quality:check-tests - Test execution and coverage tracking\n // ======================================================================\n {\n id: 'check-tests',\n group: 'quality',\n describe: 'Run tests and track coverage across monorepo',\n longDescription:\n 'Runs tests across all packages with test scripts and collects coverage statistics. ' +\n 'Parses test output (vitest/jest) to extract test counts and reads coverage-summary.json. ' +\n 'Results are cached for 5 minutes.',\n\n handler: './cli/commands/check-tests.js#default',\n handlerPath: './cli/commands/check-tests.js',\n\n flags: defineCommandFlags(checkTestsFlags),\n\n examples: [\n 'kb quality:check-tests',\n 'kb quality:check-tests --package @kb-labs/core',\n 'kb quality:check-tests --with-coverage',\n 'kb quality:check-tests --coverage-only',\n 'kb quality:check-tests --timeout 120000',\n 'kb quality:check-tests --json',\n ],\n\n permissions: heavyOperationsPermissions,\n },\n\n // ======================================================================\n // quality:dead-code - Dead code file detection\n // ======================================================================\n {\n id: 'dead-code',\n group: 'quality',\n describe: 'Detect dead (unreachable) source files',\n longDescription:\n 'Analyzes import graph to find source files not reachable from any entry point ' +\n '(package.json, tsup.config.ts, manifest.ts). Supports automated removal with ' +\n 'backup and restore capabilities. Zero false positives by design.',\n\n handler: './cli/commands/dead-code.js#default',\n handlerPath: './cli/commands/dead-code.js',\n\n flags: defineCommandFlags(deadCodeFlags),\n\n examples: [\n 'kb quality:dead-code',\n 'kb quality:dead-code --package @kb-labs/core',\n 'kb quality:dead-code --auto-remove --dry-run',\n 'kb quality:dead-code --auto-remove',\n 'kb quality:dead-code --list-backups',\n 'kb quality:dead-code --restore 2026-02-15T10-30-00',\n 'kb quality:dead-code --json',\n ],\n\n permissions: pluginPermissions,\n },\n ],\n },\n\n // REST API routes\n rest: {\n basePath: QUALITY_BASE_PATH,\n routes: [\n // GET /stats\n {\n method: 'GET',\n path: QUALITY_ROUTES.STATS,\n handler: './rest/handlers/stats-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#StatsRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#StatsResponseSchema',\n },\n },\n // GET /health\n {\n method: 'GET',\n path: QUALITY_ROUTES.HEALTH,\n handler: './rest/handlers/health-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#HealthRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#HealthResponseSchema',\n },\n },\n // GET /dependencies\n {\n method: 'GET',\n path: QUALITY_ROUTES.DEPENDENCIES,\n handler: './rest/handlers/dependencies-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#DependenciesRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#DependenciesResponseSchema',\n },\n },\n // GET /build-order\n {\n method: 'GET',\n path: QUALITY_ROUTES.BUILD_ORDER,\n handler: './rest/handlers/build-order-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#BuildOrderRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#BuildOrderResponseSchema',\n },\n },\n // GET /cycles\n {\n method: 'GET',\n path: QUALITY_ROUTES.CYCLES,\n handler: './rest/handlers/cycles-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#CyclesRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#CyclesResponseSchema',\n },\n },\n // GET /graph\n {\n method: 'GET',\n path: QUALITY_ROUTES.GRAPH,\n handler: './rest/handlers/graph-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#GraphRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#GraphResponseSchema',\n },\n },\n // GET /stale\n {\n method: 'GET',\n path: QUALITY_ROUTES.STALE,\n handler: './rest/handlers/stale-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#StaleRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#StaleResponseSchema',\n },\n },\n // GET /builds\n {\n method: 'GET',\n path: QUALITY_ROUTES.BUILDS,\n handler: './rest/handlers/builds-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#BuildsRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#BuildsResponseSchema',\n },\n },\n // GET /types\n {\n method: 'GET',\n path: QUALITY_ROUTES.TYPES,\n handler: './rest/handlers/types-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#TypesRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#TypesResponseSchema',\n },\n },\n // GET /tests\n {\n method: 'GET',\n path: QUALITY_ROUTES.TESTS,\n handler: './rest/handlers/tests-handler.js#default',\n input: {\n zod: '@kb-labs/quality-contracts#TestsRequestSchema',\n },\n output: {\n zod: '@kb-labs/quality-contracts#TestsResponseSchema',\n },\n },\n ],\n },\n\n // Studio V2 — Module Federation pages\n studio: {\n version: 2 as const,\n remoteName: 'qualityPlugin',\n pages: [\n {\n id: 'quality.overview',\n title: 'Quality',\n icon: 'CheckCircleOutlined',\n route: '/p/quality',\n entry: './QualityOverview',\n order: 1,\n },\n ],\n menus: [\n {\n id: 'quality',\n label: 'Quality',\n icon: 'CheckCircleOutlined',\n target: 'quality.overview',\n order: 40,\n },\n ],\n },\n\n permissions: pluginPermissions,\n};\n\nexport default manifest;\n"]}
|