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":"RuntimeManager.js","sourceRoot":"","sources":["../../src/languages/RuntimeManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RuntimeManager.js","sourceRoot":"","sources":["../../src/languages/RuntimeManager.ts"],"names":[],"mappings":"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"}
Binary file
@@ -4,6 +4,8 @@ import (
4
4
  "go/ast"
5
5
  "go/token"
6
6
  "sort"
7
+ "strconv"
8
+ "strings"
7
9
  "time"
8
10
  )
9
11
 
@@ -135,24 +137,36 @@ func (a *Analyzer) runSOLIDAnalysis() []Violation {
135
137
  return solidAnalyzer.Analyze()
136
138
  }
137
139
 
138
- // runImportAnalysis analyzes import usage and organization
140
+ // runImportAnalysis analyzes import usage and organization.
141
+ //
142
+ // The old `import-organization` predicate was a raw import count
143
+ // (`len(file.Imports) > 10`). Count is not "organization" — a file with twelve
144
+ // well-grouped imports is fine, and a file with two mis-grouped imports is not.
145
+ // The honest reading is grouping: Go convention (goimports/gofmt) requires
146
+ // standard-library imports first, then third-party, then local, each block
147
+ // sorted. A stdlib import appearing after a third-party import is the
148
+ // "mixed-up imports" case a reviewer actually flags. "Unnecessary deps" is out
149
+ // of scope — the Go compiler already rejects unused imports at build time, so a
150
+ // static analyzer adds no signal there.
139
151
  func (a *Analyzer) runImportAnalysis() []Violation {
140
152
  var violations []Violation
141
153
 
142
154
  for filePath, file := range a.parser.files {
143
- // Check for unused imports
144
- if len(file.Imports) > 10 {
155
+ // Detect import grouping violations (stdlib vs third-party vs local).
156
+ if pos, grouped := firstImportGroupViolation(file.Imports); grouped > 0 {
157
+ line := a.parser.fileSet.Position(pos).Line
145
158
  violations = append(violations, Violation{
146
159
  File: filePath,
147
- Line: 1,
160
+ Line: line,
148
161
  Severity: "suggestion",
149
- Message: "File has many imports - consider organizing or reducing import count",
162
+ Message: "Import block mixes standard library and third-party imports without grouping",
150
163
  Details: map[string]interface{}{
151
- "importCount": len(file.Imports),
164
+ "importCount": len(file.Imports),
165
+ "groupingViolations": grouped,
152
166
  },
153
- Suggestion: "Group related imports and consider if all are necessary",
167
+ Suggestion: "Group standard library imports first, then third-party imports, each block separated by a blank line",
154
168
  Analyzer: "imports",
155
- Category: "import-organization",
169
+ Rule: "import-organization",
156
170
  })
157
171
  }
158
172
 
@@ -170,7 +184,7 @@ func (a *Analyzer) runImportAnalysis() []Violation {
170
184
  },
171
185
  Suggestion: "Use explicit import names instead of dot imports",
172
186
  Analyzer: "imports",
173
- Category: "import-style",
187
+ Rule: "import-style",
174
188
  })
175
189
  }
176
190
  }
@@ -210,7 +224,7 @@ func (a *Analyzer) runErrorAnalysis() []Violation {
210
224
  },
211
225
  Suggestion: "Check the error, return it, or explicitly ignore it with '_ = err'",
212
226
  Analyzer: "errors",
213
- Category: "error-handling",
227
+ Rule: "error-handling",
214
228
  })
215
229
  return true
216
230
  })
@@ -251,7 +265,7 @@ func (a *Analyzer) runGoroutineAnalysis() []Violation {
251
265
  },
252
266
  Suggestion: "Use sync.WaitGroup or a channel to synchronize the goroutine",
253
267
  Analyzer: "goroutines",
254
- Category: "concurrency",
268
+ Rule: "concurrency",
255
269
  })
256
270
  return true
257
271
  })
@@ -260,29 +274,49 @@ func (a *Analyzer) runGoroutineAnalysis() []Violation {
260
274
  return violations
261
275
  }
262
276
 
263
- // runChannelAnalysis analyzes channel usage for potential deadlocks
277
+ // runChannelAnalysis analyzes channels for the provable same-goroutine deadlock.
278
+ //
279
+ // The old predicate was `containsChannel(function.Signature) && function.Complexity
280
+ // > 3` — a signature substring ("chan") plus a cyclomatic-complexity count standing
281
+ // in for "potential deadlock". Neither is a deadlock: a channel in the signature is
282
+ // not a deadlock, and a 3-statement function can deadlock. The honest, provable
283
+ // signal is a *same-goroutine* deadlock: a channel created unbuffered
284
+ // (`make(chan T)`, no buffer) that is both sent to and received from (or operated
285
+ // on twice) in the same function with no `go` statement in the body. An unbuffered
286
+ // send blocks until a receiver is ready; if the counterpart lives in the same
287
+ // goroutine, the first operation blocks before the second can run — guaranteed,
288
+ // independent of external code. Cross-goroutine deadlock detection is out of scope:
289
+ // it needs inter-procedural escape/dataflow analysis the syntax-only subprocess
290
+ // lacks.
264
291
  func (a *Analyzer) runChannelAnalysis() []Violation {
265
292
  var violations []Violation
266
293
 
267
- // This is a simplified implementation
268
- // A full implementation would analyze the AST for channel operations
269
- functions := a.parser.ExtractFunctions()
270
- for _, function := range functions {
271
- if containsChannel(function.Signature) && function.Complexity > 3 {
294
+ for filePath, file := range a.parser.files {
295
+ ast.Inspect(file, func(n ast.Node) bool {
296
+ funcDecl, ok := n.(*ast.FuncDecl)
297
+ if !ok || funcDecl.Body == nil || isTestFunction(funcDecl.Name.Name) {
298
+ return true
299
+ }
300
+ channel := a.deadlockChannel(funcDecl)
301
+ if channel == "" {
302
+ return true
303
+ }
304
+ pos := a.parser.fileSet.Position(funcDecl.Pos())
272
305
  violations = append(violations, Violation{
273
- File: function.File,
274
- Line: function.StartLine,
275
- Severity: "suggestion",
276
- Message: "Complex function uses channels - review for proper synchronization",
306
+ File: filePath,
307
+ Line: pos.Line,
308
+ Severity: "warning",
309
+ Message: "Guaranteed deadlock: unbuffered channel is both sent to and received from in the same goroutine",
277
310
  Details: map[string]interface{}{
278
- "function": function.Name,
279
- "complexity": function.Complexity,
311
+ "function": funcDecl.Name.Name,
312
+ "channel": channel,
280
313
  },
281
- Suggestion: "Ensure proper channel synchronization to avoid deadlocks",
314
+ Suggestion: "Buffer the channel, or run one side (send or receive) in its own goroutine",
282
315
  Analyzer: "channels",
283
- Category: "concurrency",
316
+ Rule: "channel-deadlock",
284
317
  })
285
- }
318
+ return true
319
+ })
286
320
  }
287
321
 
288
322
  return violations
@@ -479,20 +513,117 @@ func (a *Analyzer) analyzeConcurrency(funcDecl *ast.FuncDecl) (hasGo, hasSync bo
479
513
  return hasGo, hasSync
480
514
  }
481
515
 
482
- func containsChannel(signature string) bool {
483
- return containsSubstring(signature, "chan")
516
+ // deadlockChannel reports the name of an unbuffered channel that is operated on
517
+ // twice (sent to or received from) at the top level of a function body with no
518
+ // `go` statement — a guaranteed same-goroutine deadlock. Returns "" when no such
519
+ // channel exists. A buffered channel (`make(chan T, N)`) never qualifies because
520
+ // its send does not block; and any `go` statement makes the deadlock unprovable
521
+ // (the counterpart could live in the spawned goroutine), so the function is
522
+ // cleared.
523
+ func (a *Analyzer) deadlockChannel(funcDecl *ast.FuncDecl) string {
524
+ unbuffered := make(map[string]bool)
525
+ ops := make(map[string]int)
526
+ hasGo := false
527
+
528
+ for _, stmt := range funcDecl.Body.List {
529
+ ast.Inspect(stmt, func(n ast.Node) bool {
530
+ switch node := n.(type) {
531
+ case *ast.GoStmt:
532
+ hasGo = true
533
+ case *ast.AssignStmt:
534
+ // `ch := make(chan T)` / `ch = make(chan T)` — unbuffered creation.
535
+ for i, rhs := range node.Rhs {
536
+ if isUnbufferedMakeChan(rhs) && i < len(node.Lhs) {
537
+ if ident, ok := node.Lhs[i].(*ast.Ident); ok {
538
+ unbuffered[ident.Name] = true
539
+ }
540
+ }
541
+ }
542
+ case *ast.SendStmt:
543
+ if ident, ok := node.Chan.(*ast.Ident); ok {
544
+ ops[ident.Name]++
545
+ }
546
+ case *ast.UnaryExpr:
547
+ if node.Op == token.ARROW {
548
+ if ident, ok := node.X.(*ast.Ident); ok {
549
+ ops[ident.Name]++
550
+ }
551
+ }
552
+ }
553
+ return true
554
+ })
555
+ }
556
+
557
+ if hasGo {
558
+ return ""
559
+ }
560
+ for name := range unbuffered {
561
+ if ops[name] >= 2 {
562
+ return name
563
+ }
564
+ }
565
+ return ""
484
566
  }
485
567
 
486
- func containsSubstring(str, substr string) bool {
487
- if len(str) < len(substr) {
568
+ // isUnbufferedMakeChan reports whether expr is `make(chan T)` a single-argument
569
+ // make of a channel type, i.e. an unbuffered channel. `make(chan T, N)` has two
570
+ // arguments (a buffer), so its send does not block.
571
+ func isUnbufferedMakeChan(expr ast.Expr) bool {
572
+ call, ok := expr.(*ast.CallExpr)
573
+ if !ok || len(call.Args) != 1 {
488
574
  return false
489
575
  }
490
- for i := 0; i <= len(str)-len(substr); i++ {
491
- if str[i:i+len(substr)] == substr {
492
- return true
576
+ ident, ok := call.Fun.(*ast.Ident)
577
+ if !ok || ident.Name != "make" {
578
+ return false
579
+ }
580
+ _, ok = call.Args[0].(*ast.ChanType)
581
+ return ok
582
+ }
583
+
584
+ // importGroup classifies an unquoted import path into a grouping tier:
585
+ // 0 = standard library (first path segment has no '.'), 1 = third-party (first
586
+ // segment has a '.'), 2 = local (relative './' or '../'). This is the
587
+ // stdlib-before-third-party-before-local convention goimports/gofmt enforce.
588
+ func importGroup(path string) int {
589
+ if strings.HasPrefix(path, ".") {
590
+ return 2
591
+ }
592
+ first := path
593
+ if idx := strings.IndexByte(path, '/'); idx >= 0 {
594
+ first = path[:idx]
595
+ }
596
+ if strings.Contains(first, ".") {
597
+ return 1
598
+ }
599
+ return 0
600
+ }
601
+
602
+ // firstImportGroupViolation reports the position of the first import that breaks
603
+ // the stdlib-before-third-party-before-local grouping, and how many imports in
604
+ // total are out of group order. It returns (token.NoPos, 0) when the import
605
+ // block is grouped (the group sequence is non-decreasing).
606
+ func firstImportGroupViolation(imports []*ast.ImportSpec) (token.Pos, int) {
607
+ maxGroup := -1
608
+ grouped := 0
609
+ firstPos := token.NoPos
610
+ for _, spec := range imports {
611
+ path, err := strconv.Unquote(spec.Path.Value)
612
+ if err != nil {
613
+ path = spec.Path.Value
614
+ }
615
+ g := importGroup(path)
616
+ switch {
617
+ case g > maxGroup:
618
+ maxGroup = g
619
+ case g < maxGroup:
620
+ grouped++
621
+ if firstPos == token.NoPos {
622
+ firstPos = spec.Pos()
623
+ }
493
624
  }
494
625
  }
495
- return false
626
+ return firstPos, grouped
496
627
  }
497
628
 
498
629
  // excludeTestFiles removes *_test.go files from a file list. Test files are
@@ -507,4 +638,4 @@ func excludeTestFiles(files []string) []string {
507
638
  }
508
639
  }
509
640
  return out
510
- }
641
+ }