code-auditor-mcp 3.7.0 → 3.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +43 -1
  3. package/dist/analyzers/cross-language/SchemaValidator.d.ts.map +1 -1
  4. package/dist/analyzers/cross-language/SchemaValidator.js +122 -43
  5. package/dist/analyzers/cross-language/SchemaValidator.js.map +1 -1
  6. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts +2 -2
  7. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js +6 -7
  8. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js.map +1 -1
  9. package/dist/analyzers/ruleRegistry.d.ts.map +1 -1
  10. package/dist/analyzers/ruleRegistry.js +19 -18
  11. package/dist/analyzers/ruleRegistry.js.map +1 -1
  12. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts +9 -1
  13. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts.map +1 -1
  14. package/dist/analyzers/universal/UniversalDRYAnalyzer.js +63 -44
  15. package/dist/analyzers/universal/UniversalDRYAnalyzer.js.map +1 -1
  16. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
  17. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +76 -28
  18. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
  19. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js +73 -13
  20. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js.map +1 -1
  21. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts +12 -2
  22. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts.map +1 -1
  23. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js +30 -18
  24. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js.map +1 -1
  25. package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts +2 -8
  26. package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts.map +1 -1
  27. package/dist/analyzers/universal/UniversalStylesAnalyzer.js +54 -45
  28. package/dist/analyzers/universal/UniversalStylesAnalyzer.js.map +1 -1
  29. package/dist/analyzers/universal/functionConcerns.d.ts +9 -4
  30. package/dist/analyzers/universal/functionConcerns.d.ts.map +1 -1
  31. package/dist/analyzers/universal/functionConcerns.js +25 -11
  32. package/dist/analyzers/universal/functionConcerns.js.map +1 -1
  33. package/dist/analyzers/universal/schema/codeAnalysis.js +4 -4
  34. package/dist/analyzers/universal/schema/codeAnalysis.js.map +1 -1
  35. package/dist/analyzers/universal/schema/jsonSchema.js +124 -11
  36. package/dist/analyzers/universal/schema/jsonSchema.js.map +1 -1
  37. package/dist/auditRouter.d.ts.map +1 -1
  38. package/dist/auditRouter.js +4 -6
  39. package/dist/auditRouter.js.map +1 -1
  40. package/dist/auditRunner.js +1 -1
  41. package/dist/auditRunner.js.map +1 -1
  42. package/dist/cli.js +284 -75
  43. package/dist/cli.js.map +1 -1
  44. package/dist/config/configLoader.d.ts.map +1 -1
  45. package/dist/config/configLoader.js +23 -0
  46. package/dist/config/configLoader.js.map +1 -1
  47. package/dist/config/defaults.d.ts +3 -0
  48. package/dist/config/defaults.d.ts.map +1 -1
  49. package/dist/config/defaults.js +30 -8
  50. package/dist/config/defaults.js.map +1 -1
  51. package/dist/conventions/conventionMiner.d.ts +18 -3
  52. package/dist/conventions/conventionMiner.d.ts.map +1 -1
  53. package/dist/conventions/conventionMiner.js +130 -12
  54. package/dist/conventions/conventionMiner.js.map +1 -1
  55. package/dist/daemon/core.d.ts +128 -0
  56. package/dist/daemon/core.d.ts.map +1 -0
  57. package/dist/daemon/core.js +700 -0
  58. package/dist/daemon/core.js.map +1 -0
  59. package/dist/daemon/lspServer.d.ts +51 -0
  60. package/dist/daemon/lspServer.d.ts.map +1 -0
  61. package/dist/daemon/lspServer.js +168 -0
  62. package/dist/daemon/lspServer.js.map +1 -0
  63. package/dist/daemon/main.d.ts +34 -0
  64. package/dist/daemon/main.d.ts.map +1 -0
  65. package/dist/daemon/main.js +147 -0
  66. package/dist/daemon/main.js.map +1 -0
  67. package/dist/daemon/resolve.d.ts +41 -0
  68. package/dist/daemon/resolve.d.ts.map +1 -0
  69. package/dist/daemon/resolve.js +90 -0
  70. package/dist/daemon/resolve.js.map +1 -0
  71. package/dist/daemon/socketClient.d.ts +21 -0
  72. package/dist/daemon/socketClient.d.ts.map +1 -0
  73. package/dist/daemon/socketClient.js +60 -0
  74. package/dist/daemon/socketClient.js.map +1 -0
  75. package/dist/daemon/socketServer.d.ts +33 -0
  76. package/dist/daemon/socketServer.d.ts.map +1 -0
  77. package/dist/daemon/socketServer.js +106 -0
  78. package/dist/daemon/socketServer.js.map +1 -0
  79. package/dist/daemon/types.d.ts +78 -0
  80. package/dist/daemon/types.d.ts.map +1 -0
  81. package/dist/daemon/types.js +10 -0
  82. package/dist/daemon/types.js.map +1 -0
  83. package/dist/dataPaths.d.ts +21 -0
  84. package/dist/dataPaths.d.ts.map +1 -1
  85. package/dist/dataPaths.js +27 -0
  86. package/dist/dataPaths.js.map +1 -1
  87. package/dist/hooks/core.d.ts.map +1 -1
  88. package/dist/hooks/core.js +21 -4
  89. package/dist/hooks/core.js.map +1 -1
  90. package/dist/languages/RuntimeManager.js +10 -0
  91. package/dist/languages/RuntimeManager.js.map +1 -1
  92. package/dist/languages/go/analyzer +0 -0
  93. package/dist/languages/go/analyzer-src/analyzer.go +166 -35
  94. package/dist/languages/go/analyzer-src/solid.go +80 -172
  95. package/dist/languages/go/analyzer-src/types.go +18 -18
  96. package/dist/ledger.d.ts +1 -1
  97. package/dist/ledger.d.ts.map +1 -1
  98. package/dist/ledger.js +3 -3
  99. package/dist/ledger.js.map +1 -1
  100. package/dist/mcpAuditJobs.js +1 -1
  101. package/dist/mcpAuditJobs.js.map +1 -1
  102. package/dist/nextFileIncremental.d.ts +9 -3
  103. package/dist/nextFileIncremental.d.ts.map +1 -1
  104. package/dist/nextFileIncremental.js +32 -6
  105. package/dist/nextFileIncremental.js.map +1 -1
  106. package/dist/pipeline.d.ts +26 -0
  107. package/dist/pipeline.d.ts.map +1 -1
  108. package/dist/pipeline.js +86 -10
  109. package/dist/pipeline.js.map +1 -1
  110. package/dist/pipelineAdapters.d.ts +1 -1
  111. package/dist/pipelineAdapters.js +1 -1
  112. package/dist/reporting/csvReportGenerator.js +1 -1
  113. package/dist/ruleAliases.d.ts.map +1 -1
  114. package/dist/ruleAliases.js +41 -2
  115. package/dist/ruleAliases.js.map +1 -1
  116. package/dist/types.d.ts +23 -1
  117. package/dist/types.d.ts.map +1 -1
  118. package/dist/types.js.map +1 -1
  119. package/package.json +5 -2
  120. package/plugin/.claude-plugin/plugin.json +1 -1
  121. package/plugin/skills/code-auditor/SKILL.md +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"auditRunner.js","sourceRoot":"","sources":["../src/auditRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auditRunner.js","sourceRoot":"","sources":["../src/auditRunner.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -406,7 +406,6 @@ program
406
406
  .option('-p, --path <projectPath>', 'Project root path', process.cwd())
407
407
  .action(async (paths, options) => {
408
408
  try {
409
- await initParsers();
410
409
  const fileSet = new Set();
411
410
  // Collect paths from stdin if requested
412
411
  if (options.stdin) {
@@ -427,18 +426,43 @@ program
427
426
  }
428
427
  // Resolve scope
429
428
  let scope = 'changed';
429
+ let resolvedPaths = [];
430
430
  if (fileSet.size > 0) {
431
431
  // Convert to absolute paths
432
- const resolved = [...fileSet].map((f) => isAbsolute(f) ? f : resolve(process.cwd(), f));
433
- scope = resolved;
432
+ resolvedPaths = [...fileSet].map((f) => isAbsolute(f) ? f : resolve(process.cwd(), f));
433
+ scope = resolvedPaths;
434
+ }
435
+ // R2 — resolve to a live daemon first (fast path); fall back in-process.
436
+ // The daemon serves per-file diagnostics for exactly the changed set. It is
437
+ // only trusted when ready and none of the queried files are stale (R4): a
438
+ // just-edited file whose re-audit hasn't landed falls through in-process so
439
+ // the gate never misses a finding. SARIF needs full run metadata, so it
440
+ // always runs in-process.
441
+ const projectRoot = resolve(options.path || process.cwd());
442
+ let result;
443
+ if (resolvedPaths.length > 0 && options.format !== 'sarif') {
444
+ const { resolveDaemon, readDaemonDiagnostics } = await import('./daemon/resolve.js');
445
+ const daemon = await resolveDaemon(projectRoot);
446
+ if (daemon.mode === 'not-ready') {
447
+ reportDaemonIndexing(daemon.state, !!options.json);
448
+ return;
449
+ }
450
+ if (daemon.mode === 'ready') {
451
+ const diag = await readDaemonDiagnostics(daemon.socketPath, resolvedPaths);
452
+ if (diag && diag.status === 'ready' && diag.staleFiles.length === 0) {
453
+ result = await buildChangedResultFromDiagnostics(diag.diagnostics, projectRoot);
454
+ }
455
+ }
456
+ }
457
+ if (!result) {
458
+ await initParsers();
459
+ const runner = createAuditRunner({
460
+ projectRoot: options.path,
461
+ scope,
462
+ analyzerConcurrency: 4
463
+ });
464
+ result = await runner.run();
434
465
  }
435
- // Create runner
436
- const runner = createAuditRunner({
437
- projectRoot: options.path,
438
- scope,
439
- analyzerConcurrency: 4
440
- });
441
- const result = await runner.run();
442
466
  // Collect all violations
443
467
  const violations = Object.values(result.analyzerResults).flatMap((r) => r.violations || []);
444
468
  // Blocking gate decision (Spec 45 R1/R2/R4), computed once so the
@@ -473,7 +497,7 @@ program
473
497
  const col = v.column ?? v.start?.column ?? 1;
474
498
  return {
475
499
  analyzer: v.analyzer || '',
476
- rule: v.rule || v.type || '',
500
+ rule: v.rule,
477
501
  severity: v.severity,
478
502
  message: v.message,
479
503
  file: filePath,
@@ -586,7 +610,7 @@ function summarizeFindings(violations) {
586
610
  bySeverity.set(severity, (bySeverity.get(severity) ?? 0) + 1);
587
611
  const analyzer = v.analyzer ?? 'unknown';
588
612
  byAnalyzer.set(analyzer, (byAnalyzer.get(analyzer) ?? 0) + 1);
589
- const rule = v.rule || v.type || 'unknown';
613
+ const rule = v.rule;
590
614
  byRule.set(rule, (byRule.get(rule) ?? 0) + 1);
591
615
  }
592
616
  return { bySeverity, byAnalyzer, byRule };
@@ -604,6 +628,32 @@ function printCountSummary(violations) {
604
628
  console.log(`by analyzer: ${groupedCounts(byAnalyzer)}`);
605
629
  console.log(`by rule: ${groupedCounts(byRule)}`);
606
630
  }
631
+ /**
632
+ * Reconstruct a `changed`-compatible result from daemon-served diagnostics so the
633
+ * gate/output logic below stays identical to the in-process path. Gate severities
634
+ * are read from the project config (one JSON file, no parsing) so a custom
635
+ * `gateSeverities` never diverges from what the in-process run would have used.
636
+ */
637
+ async function buildChangedResultFromDiagnostics(violations, projectRoot) {
638
+ const analyzerResults = {};
639
+ for (const v of violations) {
640
+ const key = v.analyzer || 'unknown';
641
+ (analyzerResults[key] = analyzerResults[key] || { violations: [] }).violations.push(v);
642
+ }
643
+ let configUsed;
644
+ try {
645
+ const { findConfigFileUp, loadConfig } = await import('./config/configLoader.js');
646
+ const configPath = await findConfigFileUp(projectRoot);
647
+ const config = await loadConfig({ configPath: configPath ?? undefined });
648
+ if (Array.isArray(config.gateSeverities) && config.gateSeverities.length > 0) {
649
+ configUsed = { gateSeverities: config.gateSeverities };
650
+ }
651
+ }
652
+ catch {
653
+ // No config — the gate falls back to DEFAULT_BLOCKING_SEVERITIES, matching in-process.
654
+ }
655
+ return { analyzerResults, metadata: { configUsed, diagnostics: [] } };
656
+ }
607
657
  // Self-audit gate (Spec 33 Item 15 + Spec 44 remediation). Runs the full
608
658
  // analyzer pipeline over the tool's own production source and asserts zero
609
659
  // *blocking* (critical/warning) findings in the self-audit scope — the same
@@ -699,7 +749,7 @@ program
699
749
  }
700
750
  return {
701
751
  analyzer: v.analyzer || '',
702
- rule: v.rule || v.type || '',
752
+ rule: v.rule,
703
753
  severity: v.severity,
704
754
  message: v.message,
705
755
  file: filePath,
@@ -752,78 +802,100 @@ program
752
802
  .option('--json', 'Output a single JSON object (or {done:true}) to stdout')
753
803
  .action(async (options) => {
754
804
  try {
805
+ const projectDir = resolve(options.path || process.cwd());
806
+ // R2 — resolve to a live daemon first; fall back in-process when absent.
807
+ // The daemon is an optimisation: a ready daemon serves the current ranking
808
+ // without re-auditing, and an indexing daemon reports its status (R3).
809
+ const { resolveDaemon, readDaemonFindings } = await import('./daemon/resolve.js');
810
+ const daemon = await resolveDaemon(projectDir);
811
+ if (daemon.mode === 'not-ready') {
812
+ reportDaemonIndexing(daemon.state, !!options.json);
813
+ return;
814
+ }
815
+ if (daemon.mode === 'ready') {
816
+ const findings = await readDaemonFindings(daemon.socketPath);
817
+ if (findings && findings.status === 'ready' && findings.staleFiles.length === 0) {
818
+ const { summarizeViolations } = await import('./nextFileIncremental.js');
819
+ printNextFile(findings.violations, summarizeViolations(findings.violations), projectDir, !!options.json);
820
+ return;
821
+ }
822
+ // Daemon fell behind (R4) or vanished — fall through to in-process.
823
+ }
755
824
  await initParsers();
756
825
  const { violations, summary } = await runNextFile({
757
826
  projectRoot: options.path,
758
827
  configName: options.config,
759
828
  });
760
- // Rank files worst-first from the (incrementally-merged) violation set.
761
- const ranked = rankFilesByPriority(violations);
762
- if (ranked.length === 0) {
763
- if (options.json) {
764
- process.stdout.write(JSON.stringify({ done: true, summary }, null, 2) + '\n');
765
- }
766
- else {
767
- console.log(chalk.green('\n✓ No readings — nothing left to refactor.'));
768
- }
769
- return;
770
- }
771
- const top = ranked[0];
772
- // Every issue on the file, ordered critical → warning → suggestion.
773
- const ordered = orderFindingsWithinFile(top.violations);
774
- const projectDir = resolve(options.path || process.cwd());
775
- const relativize = (filePath) => {
776
- if (!filePath)
777
- return '';
778
- if (filePath.startsWith('/') || filePath.startsWith('\\\\')) {
779
- const rel = relative(projectDir, filePath);
780
- if (!rel.startsWith('..') && !isAbsolute(rel))
781
- return rel;
782
- }
783
- return filePath;
784
- };
785
- if (options.json) {
786
- const output = {
787
- done: false,
788
- file: relativize(top.file),
789
- remainingFiles: ranked.length - 1,
790
- remainingFindings: violations.length - top.count,
791
- summary,
792
- findings: ordered.map((v) => ({
793
- analyzer: v.analyzer || '',
794
- rule: v.rule || v.type || '',
795
- severity: v.severity,
796
- message: v.message,
797
- file: relativize(v.file || ''),
798
- line: v.line ?? v.start?.line,
799
- column: v.column ?? v.start?.column ?? 1,
800
- endLine: v.end?.line,
801
- endColumn: v.end?.column,
802
- enclosingSymbol: v.symbol || v.enclosingFunction || '',
803
- suggestion: v.suggestion || '',
804
- details: v.details || '',
805
- ...(v.new !== undefined && { new: v.new }),
806
- })),
807
- };
808
- process.stdout.write(JSON.stringify(output, null, 2) + '\n');
809
- }
810
- else {
811
- console.log(chalk.blue('🔍 Next File to Refactor'));
812
- console.log(chalk.gray('══════════════════════════════════════════════════'));
813
- console.log(`\n${chalk.bold(relativize(top.file))} — ${top.count} reading(s), highest severity ${top.maxSeverity}`);
814
- console.log(chalk.gray(`${ranked.length - 1} more file(s) with readings · ${violations.length - top.count} remaining reading(s)`));
815
- console.log(chalk.gray('\n── Readings ────────────────────────────────────────'));
816
- for (const v of ordered) {
817
- const icon = v.severity === 'critical' ? '🔴' : v.severity === 'warning' ? '🟡' : '🔵';
818
- console.log(`${icon} ${chalk.bold(relativize(v.file || ''))}${v.line ? `:${v.line}` : ''} [${v.severity}] ${v.rule} — ${v.message}`);
819
- }
820
- }
829
+ printNextFile(violations, summary, projectDir, !!options.json);
821
830
  }
822
831
  catch (error) {
823
832
  console.error(chalk.red('Error:'), error);
824
833
  process.exit(1);
825
834
  }
826
835
  });
836
+ /** Rank the violation set and emit the `next-file` result (shared by both paths). */
837
+ function printNextFile(violations, summary, projectDir, json) {
838
+ // Rank files worst-first from the (incrementally-merged) violation set.
839
+ const ranked = rankFilesByPriority(violations);
840
+ if (ranked.length === 0) {
841
+ if (json) {
842
+ process.stdout.write(JSON.stringify({ done: true, summary }, null, 2) + '\n');
843
+ }
844
+ else {
845
+ console.log(chalk.green('\n✓ No readings — nothing left to refactor.'));
846
+ }
847
+ return;
848
+ }
849
+ const top = ranked[0];
850
+ // Every issue on the file, ordered critical → warning → suggestion.
851
+ const ordered = orderFindingsWithinFile(top.violations);
852
+ const relativize = (filePath) => {
853
+ if (!filePath)
854
+ return '';
855
+ if (filePath.startsWith('/') || filePath.startsWith('\\\\')) {
856
+ const rel = relative(projectDir, filePath);
857
+ if (!rel.startsWith('..') && !isAbsolute(rel))
858
+ return rel;
859
+ }
860
+ return filePath;
861
+ };
862
+ if (json) {
863
+ const output = {
864
+ done: false,
865
+ file: relativize(top.file),
866
+ remainingFiles: ranked.length - 1,
867
+ remainingFindings: violations.length - top.count,
868
+ summary,
869
+ findings: ordered.map((v) => ({
870
+ analyzer: v.analyzer || '',
871
+ rule: v.rule,
872
+ severity: v.severity,
873
+ message: v.message,
874
+ file: relativize(v.file || ''),
875
+ line: v.line ?? v.start?.line,
876
+ column: v.column ?? v.start?.column ?? 1,
877
+ endLine: v.end?.line,
878
+ endColumn: v.end?.column,
879
+ enclosingSymbol: v.symbol || v.enclosingFunction || '',
880
+ suggestion: v.suggestion || '',
881
+ details: v.details || '',
882
+ ...(v.new !== undefined && { new: v.new }),
883
+ })),
884
+ };
885
+ process.stdout.write(JSON.stringify(output, null, 2) + '\n');
886
+ }
887
+ else {
888
+ console.log(chalk.blue('🔍 Next File to Refactor'));
889
+ console.log(chalk.gray('══════════════════════════════════════════════════'));
890
+ console.log(`\n${chalk.bold(relativize(top.file))} — ${top.count} reading(s), highest severity ${top.maxSeverity}`);
891
+ console.log(chalk.gray(`${ranked.length - 1} more file(s) with readings · ${violations.length - top.count} remaining reading(s)`));
892
+ console.log(chalk.gray('\n── Readings ────────────────────────────────────────'));
893
+ for (const v of ordered) {
894
+ const icon = v.severity === 'critical' ? '🔴' : v.severity === 'warning' ? '🟡' : '🔵';
895
+ console.log(`${icon} ${chalk.bold(relativize(v.file || ''))}${v.line ? `:${v.line}` : ''} [${v.severity}] ${v.rule} — ${v.message}`);
896
+ }
897
+ }
898
+ }
827
899
  // Baseline command (Spec 18 R1)
828
900
  program
829
901
  .command('baseline')
@@ -2999,7 +3071,7 @@ program
2999
3071
  filePath = rel;
3000
3072
  }
3001
3073
  return {
3002
- rule: v.rule || v.type || '',
3074
+ rule: v.rule,
3003
3075
  analyzer: v.analyzer || '',
3004
3076
  severity: v.severity,
3005
3077
  file: filePath,
@@ -3034,6 +3106,143 @@ function renderBar(value, width) {
3034
3106
  const color = value > 0.8 ? chalk.green : value > 0.5 ? chalk.yellow : chalk.red;
3035
3107
  return color('█'.repeat(filled) + '░'.repeat(empty));
3036
3108
  }
3109
+ // ── Daemon command (Spec 50) ────────────────────────────────────────────
3110
+ // The daemon is an optimisation, never a dependency (R2). These commands start,
3111
+ // stop, and inspect it. The hot-path reads — `changed` (the hook gate) and
3112
+ // `next-file` (the refactor loop) — resolve to a live daemon and fall back
3113
+ // in-process when it is absent. `audit` stays in-process on purpose: it emits
3114
+ // full reports (baseline, recommendations, per-category SARIF/HTML) that need
3115
+ // the complete analyzer results, which the daemon does not serve over its
3116
+ // findings face (it serves the flattened violation set).
3117
+ const DAEMON_NOT_READY_EXIT_CODE = 3;
3118
+ /** R3 — a query while the seed is still running: the status is the answer. */
3119
+ function reportDaemonIndexing(state, json) {
3120
+ const progress = state?.progress;
3121
+ const filesIndexed = progress?.filesIndexed ?? 0;
3122
+ const filesTotal = progress?.filesTotal ?? 0;
3123
+ const phase = progress?.phase ?? 'files';
3124
+ const retryAfterMs = state?.retryAfterMs ?? null;
3125
+ const throughputUnknown = state?.throughputUnknown ?? false;
3126
+ if (json) {
3127
+ process.stdout.write(JSON.stringify({
3128
+ status: 'indexing',
3129
+ progress: { filesIndexed, filesTotal, phase },
3130
+ retryAfterMs,
3131
+ throughputUnknown,
3132
+ }, null, 2) + '\n');
3133
+ }
3134
+ else {
3135
+ const retry = retryAfterMs != null
3136
+ ? `try again in ~${Math.max(1, Math.round(retryAfterMs / 1000))}s`
3137
+ : 'check back shortly';
3138
+ const phaseDetail = phase === 'files'
3139
+ ? `${filesIndexed} of ${filesTotal} files`
3140
+ : `${phase} phase`;
3141
+ console.log(chalk.yellow(`⏳ Daemon indexing — ${phaseDetail}; ${retry}.`));
3142
+ }
3143
+ process.exit(DAEMON_NOT_READY_EXIT_CODE);
3144
+ }
3145
+ const daemonCmd = program
3146
+ .command('daemon')
3147
+ .description('Manage the per-project code-auditor daemon (Spec 50)')
3148
+ .action(() => {
3149
+ console.log(chalk.yellow('Use a daemon subcommand:'));
3150
+ console.log(chalk.gray(' code-audit daemon start [--foreground] Start the daemon for this project'));
3151
+ console.log(chalk.gray(' code-audit daemon stop Ask the daemon to shut down'));
3152
+ console.log(chalk.gray(' code-audit daemon status Show daemon status'));
3153
+ });
3154
+ daemonCmd
3155
+ .command('start')
3156
+ .description('Start the daemon for this project (detached by default)')
3157
+ .option('-p, --path <path>', 'Project root', process.cwd())
3158
+ .option('-c, --config <config>', 'Configuration name')
3159
+ .option('--foreground', 'Run in the foreground (blocking; useful for debugging)')
3160
+ .action(async (options) => {
3161
+ try {
3162
+ const { resolveDaemonSocketPath } = await import('./dataPaths.js');
3163
+ const { isDaemonListening } = await import('./daemon/socketClient.js');
3164
+ const projectRoot = resolve(options.path);
3165
+ const socketPath = resolveDaemonSocketPath(projectRoot);
3166
+ if (await isDaemonListening(socketPath)) {
3167
+ console.log(chalk.green('✓ Daemon already running.'));
3168
+ return;
3169
+ }
3170
+ if (options.foreground) {
3171
+ const { runDaemonForeground } = await import('./daemon/main.js');
3172
+ await runDaemonForeground({ projectRoot, configName: options.config, foreground: true });
3173
+ return;
3174
+ }
3175
+ const { startDaemonDetached } = await import('./daemon/resolve.js');
3176
+ startDaemonDetached(projectRoot, options.config);
3177
+ console.log(chalk.green('✓ Daemon started (detached).'));
3178
+ console.log(chalk.gray(` Socket: ${socketPath}`));
3179
+ console.log(chalk.gray(' It indexes on startup — `code-audit daemon status` to watch.'));
3180
+ }
3181
+ catch (error) {
3182
+ console.error(chalk.red('Error:'), error);
3183
+ process.exit(1);
3184
+ }
3185
+ });
3186
+ daemonCmd
3187
+ .command('stop')
3188
+ .description('Ask the daemon to shut down')
3189
+ .option('-p, --path <path>', 'Project root', process.cwd())
3190
+ .action(async (options) => {
3191
+ try {
3192
+ const { resolveDaemonSocketPath } = await import('./dataPaths.js');
3193
+ const { isDaemonListening } = await import('./daemon/socketClient.js');
3194
+ const { requestDaemonShutdown } = await import('./daemon/resolve.js');
3195
+ const socketPath = resolveDaemonSocketPath(resolve(options.path));
3196
+ if (!(await isDaemonListening(socketPath))) {
3197
+ console.log(chalk.gray('No daemon running.'));
3198
+ return;
3199
+ }
3200
+ await requestDaemonShutdown(socketPath);
3201
+ console.log(chalk.green('✓ Shutdown requested.'));
3202
+ }
3203
+ catch (error) {
3204
+ console.error(chalk.red('Error:'), error);
3205
+ process.exit(1);
3206
+ }
3207
+ });
3208
+ daemonCmd
3209
+ .command('status')
3210
+ .description('Show daemon status')
3211
+ .option('-p, --path <path>', 'Project root', process.cwd())
3212
+ .option('--json', 'Output as JSON')
3213
+ .action(async (options) => {
3214
+ try {
3215
+ const { resolveDaemon } = await import('./daemon/resolve.js');
3216
+ const { resolveDaemonSocketPath } = await import('./dataPaths.js');
3217
+ const projectRoot = resolve(options.path);
3218
+ const resolved = await resolveDaemon(projectRoot);
3219
+ const socketPath = resolveDaemonSocketPath(projectRoot);
3220
+ if (options.json) {
3221
+ process.stdout.write(JSON.stringify({
3222
+ running: resolved.mode !== 'absent',
3223
+ mode: resolved.mode,
3224
+ socketPath,
3225
+ ...(resolved.state && { state: resolved.state }),
3226
+ }, null, 2) + '\n');
3227
+ return;
3228
+ }
3229
+ if (resolved.mode === 'absent') {
3230
+ console.log(chalk.gray('No daemon running.'));
3231
+ console.log(chalk.gray('Start one: code-audit daemon start'));
3232
+ return;
3233
+ }
3234
+ if (resolved.mode === 'not-ready') {
3235
+ reportDaemonIndexing(resolved.state, false);
3236
+ return;
3237
+ }
3238
+ console.log(chalk.green('✓ Daemon ready.'));
3239
+ console.log(chalk.gray(` Socket: ${socketPath}`));
3240
+ }
3241
+ catch (error) {
3242
+ console.error(chalk.red('Error:'), error);
3243
+ process.exit(1);
3244
+ }
3245
+ });
3037
3246
  // Parse command line arguments
3038
3247
  program.parse(process.argv);
3039
3248
  // If no command was provided, show help