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.
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +43 -1
- package/dist/analyzers/cross-language/SchemaValidator.d.ts.map +1 -1
- package/dist/analyzers/cross-language/SchemaValidator.js +122 -43
- package/dist/analyzers/cross-language/SchemaValidator.js.map +1 -1
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts +2 -2
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js +6 -7
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js.map +1 -1
- package/dist/analyzers/ruleRegistry.d.ts.map +1 -1
- package/dist/analyzers/ruleRegistry.js +19 -18
- package/dist/analyzers/ruleRegistry.js.map +1 -1
- package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts +9 -1
- package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDRYAnalyzer.js +63 -44
- package/dist/analyzers/universal/UniversalDRYAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +76 -28
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js +73 -13
- package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts +12 -2
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js +30 -18
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts +2 -8
- package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalStylesAnalyzer.js +54 -45
- package/dist/analyzers/universal/UniversalStylesAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/functionConcerns.d.ts +9 -4
- package/dist/analyzers/universal/functionConcerns.d.ts.map +1 -1
- package/dist/analyzers/universal/functionConcerns.js +25 -11
- package/dist/analyzers/universal/functionConcerns.js.map +1 -1
- package/dist/analyzers/universal/schema/codeAnalysis.js +4 -4
- package/dist/analyzers/universal/schema/codeAnalysis.js.map +1 -1
- package/dist/analyzers/universal/schema/jsonSchema.js +124 -11
- package/dist/analyzers/universal/schema/jsonSchema.js.map +1 -1
- package/dist/auditRouter.d.ts.map +1 -1
- package/dist/auditRouter.js +4 -6
- package/dist/auditRouter.js.map +1 -1
- package/dist/auditRunner.js +1 -1
- package/dist/auditRunner.js.map +1 -1
- package/dist/cli.js +284 -75
- package/dist/cli.js.map +1 -1
- package/dist/config/configLoader.d.ts.map +1 -1
- package/dist/config/configLoader.js +23 -0
- package/dist/config/configLoader.js.map +1 -1
- package/dist/config/defaults.d.ts +3 -0
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +30 -8
- package/dist/config/defaults.js.map +1 -1
- package/dist/conventions/conventionMiner.d.ts +18 -3
- package/dist/conventions/conventionMiner.d.ts.map +1 -1
- package/dist/conventions/conventionMiner.js +130 -12
- package/dist/conventions/conventionMiner.js.map +1 -1
- package/dist/daemon/core.d.ts +128 -0
- package/dist/daemon/core.d.ts.map +1 -0
- package/dist/daemon/core.js +700 -0
- package/dist/daemon/core.js.map +1 -0
- package/dist/daemon/lspServer.d.ts +51 -0
- package/dist/daemon/lspServer.d.ts.map +1 -0
- package/dist/daemon/lspServer.js +168 -0
- package/dist/daemon/lspServer.js.map +1 -0
- package/dist/daemon/main.d.ts +34 -0
- package/dist/daemon/main.d.ts.map +1 -0
- package/dist/daemon/main.js +147 -0
- package/dist/daemon/main.js.map +1 -0
- package/dist/daemon/resolve.d.ts +41 -0
- package/dist/daemon/resolve.d.ts.map +1 -0
- package/dist/daemon/resolve.js +90 -0
- package/dist/daemon/resolve.js.map +1 -0
- package/dist/daemon/socketClient.d.ts +21 -0
- package/dist/daemon/socketClient.d.ts.map +1 -0
- package/dist/daemon/socketClient.js +60 -0
- package/dist/daemon/socketClient.js.map +1 -0
- package/dist/daemon/socketServer.d.ts +33 -0
- package/dist/daemon/socketServer.d.ts.map +1 -0
- package/dist/daemon/socketServer.js +106 -0
- package/dist/daemon/socketServer.js.map +1 -0
- package/dist/daemon/types.d.ts +78 -0
- package/dist/daemon/types.d.ts.map +1 -0
- package/dist/daemon/types.js +10 -0
- package/dist/daemon/types.js.map +1 -0
- package/dist/dataPaths.d.ts +21 -0
- package/dist/dataPaths.d.ts.map +1 -1
- package/dist/dataPaths.js +27 -0
- package/dist/dataPaths.js.map +1 -1
- package/dist/hooks/core.d.ts.map +1 -1
- package/dist/hooks/core.js +21 -4
- package/dist/hooks/core.js.map +1 -1
- package/dist/languages/RuntimeManager.js +10 -0
- package/dist/languages/RuntimeManager.js.map +1 -1
- package/dist/languages/go/analyzer +0 -0
- package/dist/languages/go/analyzer-src/analyzer.go +166 -35
- package/dist/languages/go/analyzer-src/solid.go +80 -172
- package/dist/languages/go/analyzer-src/types.go +18 -18
- package/dist/ledger.d.ts +1 -1
- package/dist/ledger.d.ts.map +1 -1
- package/dist/ledger.js +3 -3
- package/dist/ledger.js.map +1 -1
- package/dist/mcpAuditJobs.js +1 -1
- package/dist/mcpAuditJobs.js.map +1 -1
- package/dist/nextFileIncremental.d.ts +9 -3
- package/dist/nextFileIncremental.d.ts.map +1 -1
- package/dist/nextFileIncremental.js +32 -6
- package/dist/nextFileIncremental.js.map +1 -1
- package/dist/pipeline.d.ts +26 -0
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +86 -10
- package/dist/pipeline.js.map +1 -1
- package/dist/pipelineAdapters.d.ts +1 -1
- package/dist/pipelineAdapters.js +1 -1
- package/dist/reporting/csvReportGenerator.js +1 -1
- package/dist/ruleAliases.d.ts.map +1 -1
- package/dist/ruleAliases.js +41 -2
- package/dist/ruleAliases.js.map +1 -1
- package/dist/types.d.ts +23 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +5 -2
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/skills/code-auditor/SKILL.md +6 -6
package/dist/auditRunner.js.map
CHANGED
|
@@ -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
|
-
|
|
433
|
-
scope =
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|