@kernlang/review 3.1.5 → 3.1.7

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 (156) hide show
  1. package/LICENSE +17 -0
  2. package/dist/cache.d.ts +1 -1
  3. package/dist/cache.js +5 -3
  4. package/dist/cache.js.map +1 -1
  5. package/dist/call-graph.d.ts +63 -0
  6. package/dist/call-graph.js +380 -0
  7. package/dist/call-graph.js.map +1 -0
  8. package/dist/concept-rules/boundary-mutation.d.ts +1 -1
  9. package/dist/concept-rules/boundary-mutation.js.map +1 -1
  10. package/dist/concept-rules/ignored-error.d.ts +1 -1
  11. package/dist/concept-rules/ignored-error.js.map +1 -1
  12. package/dist/concept-rules/illegal-dependency.d.ts +1 -1
  13. package/dist/concept-rules/illegal-dependency.js.map +1 -1
  14. package/dist/concept-rules/index.js +1 -6
  15. package/dist/concept-rules/index.js.map +1 -1
  16. package/dist/concept-rules/unguarded-effect.d.ts +1 -1
  17. package/dist/concept-rules/unguarded-effect.js.map +1 -1
  18. package/dist/concept-rules/unrecovered-effect.d.ts +1 -1
  19. package/dist/concept-rules/unrecovered-effect.js +2 -1
  20. package/dist/concept-rules/unrecovered-effect.js.map +1 -1
  21. package/dist/confidence.js +12 -8
  22. package/dist/confidence.js.map +1 -1
  23. package/dist/differ.js +3 -7
  24. package/dist/differ.js.map +1 -1
  25. package/dist/external-tools.js +5 -6
  26. package/dist/external-tools.js.map +1 -1
  27. package/dist/file-context.d.ts +21 -0
  28. package/dist/file-context.js +234 -0
  29. package/dist/file-context.js.map +1 -0
  30. package/dist/file-role.js +14 -7
  31. package/dist/file-role.js.map +1 -1
  32. package/dist/graph.d.ts +1 -1
  33. package/dist/graph.js +24 -16
  34. package/dist/graph.js.map +1 -1
  35. package/dist/index.d.ts +44 -35
  36. package/dist/index.js +221 -68
  37. package/dist/index.js.map +1 -1
  38. package/dist/inferrer.d.ts +8 -2
  39. package/dist/inferrer.js +80 -47
  40. package/dist/inferrer.js.map +1 -1
  41. package/dist/kern-lint.d.ts +3 -4
  42. package/dist/kern-lint.js +7 -5
  43. package/dist/kern-lint.js.map +1 -1
  44. package/dist/llm-bridge.d.ts +23 -7
  45. package/dist/llm-bridge.js +267 -31
  46. package/dist/llm-bridge.js.map +1 -1
  47. package/dist/llm-review.d.ts +16 -2
  48. package/dist/llm-review.js +240 -35
  49. package/dist/llm-review.js.map +1 -1
  50. package/dist/mappers/ts-concepts.d.ts +1 -1
  51. package/dist/mappers/ts-concepts.js +303 -32
  52. package/dist/mappers/ts-concepts.js.map +1 -1
  53. package/dist/norm-miner.d.ts +31 -0
  54. package/dist/norm-miner.js +119 -0
  55. package/dist/norm-miner.js.map +1 -0
  56. package/dist/obligations.d.ts +63 -0
  57. package/dist/obligations.js +158 -0
  58. package/dist/obligations.js.map +1 -0
  59. package/dist/quality-rules.d.ts +3 -3
  60. package/dist/quality-rules.js +4 -2
  61. package/dist/quality-rules.js.map +1 -1
  62. package/dist/reporter.d.ts +7 -2
  63. package/dist/reporter.js +82 -51
  64. package/dist/reporter.js.map +1 -1
  65. package/dist/rule-eval.d.ts +1 -2
  66. package/dist/rule-eval.js +5 -9
  67. package/dist/rule-eval.js.map +1 -1
  68. package/dist/rule-loader.js +16 -14
  69. package/dist/rule-loader.js.map +1 -1
  70. package/dist/rules/base.js +153 -69
  71. package/dist/rules/base.js.map +1 -1
  72. package/dist/rules/cli.d.ts +7 -0
  73. package/dist/rules/cli.js +99 -0
  74. package/dist/rules/cli.js.map +1 -0
  75. package/dist/rules/confidence.d.ts +1 -1
  76. package/dist/rules/confidence.js +5 -5
  77. package/dist/rules/confidence.js.map +1 -1
  78. package/dist/rules/dead-code.d.ts +10 -0
  79. package/dist/rules/dead-code.js +75 -0
  80. package/dist/rules/dead-code.js.map +1 -0
  81. package/dist/rules/dead-logic.js +35 -31
  82. package/dist/rules/dead-logic.js.map +1 -1
  83. package/dist/rules/express.d.ts +2 -1
  84. package/dist/rules/express.js +380 -126
  85. package/dist/rules/express.js.map +1 -1
  86. package/dist/rules/fastapi.d.ts +10 -0
  87. package/dist/rules/fastapi.js +183 -0
  88. package/dist/rules/fastapi.js.map +1 -0
  89. package/dist/rules/ground-layer.js +3 -3
  90. package/dist/rules/ground-layer.js.map +1 -1
  91. package/dist/rules/index.d.ts +5 -1
  92. package/dist/rules/index.js +602 -84
  93. package/dist/rules/index.js.map +1 -1
  94. package/dist/rules/ink.d.ts +8 -0
  95. package/dist/rules/ink.js +88 -0
  96. package/dist/rules/ink.js.map +1 -0
  97. package/dist/rules/kern-source.js +202 -63
  98. package/dist/rules/kern-source.js.map +1 -1
  99. package/dist/rules/nextjs.js +88 -33
  100. package/dist/rules/nextjs.js.map +1 -1
  101. package/dist/rules/null-safety.js +52 -26
  102. package/dist/rules/null-safety.js.map +1 -1
  103. package/dist/rules/nuxt.js +24 -29
  104. package/dist/rules/nuxt.js.map +1 -1
  105. package/dist/rules/react.js +355 -69
  106. package/dist/rules/react.js.map +1 -1
  107. package/dist/rules/security-v2.js +71 -57
  108. package/dist/rules/security-v2.js.map +1 -1
  109. package/dist/rules/security-v3.js.map +1 -1
  110. package/dist/rules/security-v4.js +54 -27
  111. package/dist/rules/security-v4.js.map +1 -1
  112. package/dist/rules/security.js +35 -5
  113. package/dist/rules/security.js.map +1 -1
  114. package/dist/rules/terminal.d.ts +8 -0
  115. package/dist/rules/terminal.js +139 -0
  116. package/dist/rules/terminal.js.map +1 -0
  117. package/dist/rules/vue.js +162 -107
  118. package/dist/rules/vue.js.map +1 -1
  119. package/dist/semantic-diff.d.ts +52 -0
  120. package/dist/semantic-diff.js +342 -0
  121. package/dist/semantic-diff.js.map +1 -0
  122. package/dist/spec-checker.js +11 -10
  123. package/dist/spec-checker.js.map +1 -1
  124. package/dist/suppression/apply-suppression.d.ts +2 -3
  125. package/dist/suppression/apply-suppression.js +3 -3
  126. package/dist/suppression/apply-suppression.js.map +1 -1
  127. package/dist/suppression/index.d.ts +2 -2
  128. package/dist/suppression/index.js +1 -1
  129. package/dist/suppression/index.js.map +1 -1
  130. package/dist/suppression/parse-directives.d.ts +1 -1
  131. package/dist/suppression/parse-directives.js +9 -4
  132. package/dist/suppression/parse-directives.js.map +1 -1
  133. package/dist/taint-ast.d.ts +20 -0
  134. package/dist/taint-ast.js +427 -0
  135. package/dist/taint-ast.js.map +1 -0
  136. package/dist/taint-crossfile.d.ts +28 -0
  137. package/dist/taint-crossfile.js +174 -0
  138. package/dist/taint-crossfile.js.map +1 -0
  139. package/dist/taint-findings.d.ts +17 -0
  140. package/dist/taint-findings.js +131 -0
  141. package/dist/taint-findings.js.map +1 -0
  142. package/dist/taint-regex.d.ts +61 -0
  143. package/dist/taint-regex.js +379 -0
  144. package/dist/taint-regex.js.map +1 -0
  145. package/dist/taint-types.d.ts +128 -0
  146. package/dist/taint-types.js +174 -0
  147. package/dist/taint-types.js.map +1 -0
  148. package/dist/taint.d.ts +13 -107
  149. package/dist/taint.js +16 -1067
  150. package/dist/taint.js.map +1 -1
  151. package/dist/template-detector.d.ts +2 -2
  152. package/dist/template-detector.js +11 -16
  153. package/dist/template-detector.js.map +1 -1
  154. package/dist/types.d.ts +35 -0
  155. package/dist/types.js.map +1 -1
  156. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -8,24 +8,30 @@
8
8
  *
9
9
  * v2: Unified ReviewFinding pipeline. All findings merged into single array.
10
10
  */
11
- import { readFileSync, readdirSync, statSync, existsSync } from 'fs';
12
- import { relative, join } from 'path';
13
- import { parseWithDiagnostics, countTokens, serializeIR } from '@kernlang/core';
14
- import { inferFromSourceFile, createInMemoryProject } from './inferrer.js';
15
- import { resolveImportGraph } from './graph.js';
16
- import { detectTemplates } from './template-detector.js';
11
+ import { countTokens, parseWithDiagnostics, serializeIR } from '@kernlang/core';
12
+ import { existsSync, readdirSync, readFileSync, statSync } from 'fs';
13
+ import { join, relative } from 'path';
14
+ import { buildCallGraph } from './call-graph.js';
15
+ import { runConceptRules } from './concept-rules/index.js';
17
16
  import { structuralDiff } from './differ.js';
18
- import { runQualityRules } from './quality-rules.js';
19
- import { calculateStats, sortAndDedup, sortFindings } from './reporter.js';
20
- import { classifyFileRole } from './file-role.js';
21
17
  import { runTSCDiagnostics } from './external-tools.js';
18
+ import { buildFileContextMap } from './file-context.js';
19
+ import { classifyFileRole } from './file-role.js';
20
+ import { resolveImportGraph } from './graph.js';
21
+ import { createInMemoryProject, inferFromSourceFile } from './inferrer.js';
22
+ import { flattenIR, lintKernIR } from './kern-lint.js';
22
23
  import { extractTsConcepts } from './mappers/ts-concepts.js';
23
- import { runConceptRules } from './concept-rules/index.js';
24
- import { lintConfidenceGraph } from './rules/confidence.js';
25
- import { lintKernIR, flattenIR } from './kern-lint.js';
24
+ import { mineNorms } from './norm-miner.js';
25
+ import { synthesizeObligations } from './obligations.js';
26
+ import { runQualityRules } from './quality-rules.js';
27
+ import { assignDefaultConfidence, calculateStats, sortAndDedup, sortFindings } from './reporter.js';
26
28
  import { loadBuiltinNativeRules, loadNativeRules } from './rule-loader.js';
27
- import { lintKernSourceIR, KERN_SOURCE_RULES } from './rules/kern-source.js';
29
+ import { lintConfidenceGraph } from './rules/confidence.js';
30
+ import { crossFileAsyncRule, deadExportRule } from './rules/dead-code.js';
31
+ import { runFastapiConceptRules } from './rules/fastapi.js';
28
32
  import { GROUND_LAYER_RULES } from './rules/ground-layer.js';
33
+ import { KERN_SOURCE_RULES, lintKernSourceIR } from './rules/kern-source.js';
34
+ import { detectTemplates } from './template-detector.js';
29
35
  // Load native .kern rules once at module init
30
36
  // Guard: import.meta.url is undefined when bundled as CJS (e.g. esbuild for VS Code worker)
31
37
  let NATIVE_RULES = [];
@@ -35,46 +41,77 @@ try {
35
41
  catch {
36
42
  // CJS bundle — native .kern rules not available, regex rules still work
37
43
  }
38
- import { buildConfidenceGraph, serializeGraph, computeConfidenceSummary } from './confidence.js';
39
- import { analyzeTaint, taintToFindings, analyzeTaintCrossFile, crossFileTaintToFindings } from './taint.js';
44
+ import { buildConfidenceGraph, computeConfidenceSummary, serializeGraph } from './confidence.js';
40
45
  import { applySuppression } from './suppression/index.js';
46
+ import { analyzeTaint, analyzeTaintCrossFile, crossFileTaintToFindings, taintToFindings } from './taint.js';
41
47
  import { createFingerprint } from './types.js';
42
- export { resolveImportGraph } from './graph.js';
43
- export { createFingerprint } from './types.js';
44
- export { inferFromSource, inferFromFile } from './inferrer.js';
45
- export { classifyFileRole } from './file-role.js';
46
- export { detectTemplates } from './template-detector.js';
48
+ export { buildCallGraph } from './call-graph.js';
49
+ export { runConceptRules } from './concept-rules/index.js';
50
+ // Confidence layer
51
+ export { buildConfidenceGraph, buildMultiFileConfidenceGraph, computeConfidenceSummary, parseConfidence, propagateConfidence, resolveBaseConfidence, serializeGraph, } from './confidence.js';
47
52
  export { structuralDiff } from './differ.js';
53
+ export { linkToNodes, runESLint, runTSCDiagnostics, runTSCDiagnosticsFromPaths } from './external-tools.js';
54
+ export { buildFileContextMap, clearFileContextCache } from './file-context.js';
55
+ export { classifyFileRole } from './file-role.js';
56
+ export { resolveImportGraph } from './graph.js';
57
+ export { inferFromFile, inferFromSource } from './inferrer.js';
58
+ // KERN-IR lint pipeline (ground layer)
59
+ export { flattenIR, lintKernIR } from './kern-lint.js';
60
+ // LLM bridge (Phase 3)
61
+ export { buildReviewInstructions, isLLMAvailable, runLLMReview } from './llm-bridge.js';
62
+ export { buildLLMPrompt, exportKernIR, parseLLMResponse } from './llm-review.js';
63
+ export { extractTsConcepts } from './mappers/ts-concepts.js';
64
+ // Norm mining + obligations
65
+ export { mineNorms } from './norm-miner.js';
66
+ export { obligationsFromNorms, obligationsFromStructure, synthesizeObligations } from './obligations.js';
48
67
  export { runQualityRules } from './quality-rules.js';
68
+ export { assignDefaultConfidence, calculateStats, checkEnforcement, dedup, formatEnforcement, formatReport, formatReportJSON, formatSARIF, formatSARIFWithSuppressions, formatSummary, sortAndDedup, sortFindings, } from './reporter.js';
69
+ export { CONFIDENCE_RULES, lintConfidenceGraph, lintMultiFileConfidenceGraph } from './rules/confidence.js';
70
+ export { actionMissingIdempotent, assumeLowTrust, branchNonExhaustive, collectUnbounded, expectRangeInverted, GROUND_LAYER_RULES, guardWithoutElse, reasonWithoutBasis, } from './rules/ground-layer.js';
49
71
  export { getRuleRegistry } from './rules/index.js';
50
- export { calculateStats, formatReport, formatReportJSON, formatSARIF, formatSARIFWithSuppressions, formatSummary, checkEnforcement, formatEnforcement, dedup, sortAndDedup, sortFindings } from './reporter.js';
51
- export { exportKernIR, buildLLMPrompt, parseLLMResponse } from './llm-review.js';
52
- export { runESLint, runTSCDiagnostics, runTSCDiagnosticsFromPaths, linkToNodes } from './external-tools.js';
53
- export { extractTsConcepts } from './mappers/ts-concepts.js';
54
- export { runConceptRules } from './concept-rules/index.js';
55
- // Suppression
56
- export { applySuppression, parseDirectives, configDirectives, isConceptRule } from './suppression/index.js';
57
- // KERN-IR lint pipeline (ground layer)
58
- export { lintKernIR, flattenIR } from './kern-lint.js';
59
- export { GROUND_LAYER_RULES } from './rules/ground-layer.js';
60
- export { lintKernSourceIR, KERN_SOURCE_RULES, undefinedReference, typeModelMismatch, unusedState, handlerHeavy, missingConfidence } from './rules/kern-source.js';
61
- export { guardWithoutElse, actionMissingIdempotent, branchNonExhaustive, collectUnbounded, reasonWithoutBasis, assumeLowTrust, expectRangeInverted, } from './rules/ground-layer.js';
62
- // Confidence layer
63
- export { parseConfidence, buildConfidenceGraph, buildMultiFileConfidenceGraph, propagateConfidence, resolveBaseConfidence, serializeGraph, computeConfidenceSummary, } from './confidence.js';
64
- export { lintConfidenceGraph, lintMultiFileConfidenceGraph, CONFIDENCE_RULES } from './rules/confidence.js';
72
+ export { handlerHeavy, KERN_SOURCE_RULES, lintKernSourceIR, missingConfidence, typeModelMismatch, undefinedReference, unusedState, } from './rules/kern-source.js';
65
73
  // ReDoS detection (reusable by rule compilers)
66
74
  export { isReDoSVulnerable } from './rules/security-v3.js';
75
+ // Semantic diff
76
+ export { computeSemanticDiff, computeSemanticDiffFromSource, formatSemanticDiff, getOldFileContent, semanticChangesToFindings, } from './semantic-diff.js';
77
+ // Suppression
78
+ export { applySuppression, configDirectives, isConceptRule, parseDirectives } from './suppression/index.js';
67
79
  // Taint tracking (Phase 2 + cross-file)
68
- export { analyzeTaint, taintToFindings, analyzeTaintCrossFile, crossFileTaintToFindings, buildExportMap, buildImportMap, isSanitizerSufficient } from './taint.js';
69
- // LLM bridge (Phase 3)
70
- export { runLLMReview, isLLMAvailable } from './llm-bridge.js';
80
+ export { analyzeTaint, analyzeTaintCrossFile, buildExportMap, buildImportMap, crossFileTaintToFindings, isSanitizerSufficient, taintToFindings, } from './taint.js';
81
+ export { detectTemplates } from './template-detector.js';
82
+ export { createFingerprint } from './types.js';
71
83
  // Cache (Phase 0)
72
- import { computeCacheKey, reviewCache, clearReviewCache } from './cache.js';
73
- export { clearReviewCache };
84
+ import { clearReviewCache, computeCacheKey, reviewCache } from './cache.js';
74
85
  // Spec checker — .kern contract vs .ts implementation
75
- export { checkSpec, checkSpecFiles, extractSpecContracts, extractImplRoutes, matchRoutes, verifyRouteContract, specViolationsToFindings } from './spec-checker.js';
86
+ export { checkSpec, checkSpecFiles, extractImplRoutes, extractSpecContracts, matchRoutes, specViolationsToFindings, verifyRouteContract, } from './spec-checker.js';
87
+ export { clearReviewCache };
88
+ /** Shared filesystem-backed Project for type-aware analysis (reused across reviewFile calls) */
89
+ let _fsProject;
90
+ function getOrCreateFsProject() {
91
+ if (!_fsProject) {
92
+ const { Project } = require('ts-morph');
93
+ _fsProject = new Project({
94
+ compilerOptions: {
95
+ strict: true,
96
+ target: 99 /* Latest */,
97
+ module: 99 /* ESNext */,
98
+ moduleResolution: 100 /* Bundler */,
99
+ skipLibCheck: true,
100
+ noEmit: true,
101
+ },
102
+ useInMemoryFileSystem: false,
103
+ skipAddingFilesFromTsConfig: true,
104
+ });
105
+ }
106
+ return _fsProject;
107
+ }
108
+ /** Reset the shared project (for tests / watch mode) */
109
+ export function resetFsProject() {
110
+ _fsProject = undefined;
111
+ }
76
112
  /**
77
113
  * Review a single file. Auto-detects language from extension.
114
+ * Uses a filesystem-backed ts-morph Project for type-aware analysis.
78
115
  * Supports: .ts, .tsx, .py, .kern
79
116
  */
80
117
  export function reviewFile(filePath, config) {
@@ -94,7 +131,8 @@ export function reviewFile(filePath, config) {
94
131
  report = reviewPythonSource(source, filePath, config);
95
132
  }
96
133
  else {
97
- report = reviewSource(source, filePath, config);
134
+ // Use filesystem-backed project for real files (enables TypeChecker)
135
+ report = reviewSourceWithProject(source, filePath, config);
98
136
  }
99
137
  if (key) {
100
138
  reviewCache.set(key, report);
@@ -102,13 +140,41 @@ export function reviewFile(filePath, config) {
102
140
  return report;
103
141
  }
104
142
  /**
105
- * Review TypeScript source code (string).
143
+ * Review TypeScript source with a filesystem-backed project.
144
+ * The fs project enables .getReturnType() to resolve types from node_modules.
145
+ */
146
+ function reviewSourceWithProject(source, filePath, config) {
147
+ try {
148
+ const fsProject = getOrCreateFsProject();
149
+ // Add or update the file in the project
150
+ let sf = fsProject.getSourceFile(filePath);
151
+ if (sf) {
152
+ sf.replaceWithText(source);
153
+ }
154
+ else {
155
+ sf = fsProject.addSourceFileAtPath(filePath);
156
+ }
157
+ return reviewSourceInternal(source, filePath, config, fsProject, sf);
158
+ }
159
+ catch {
160
+ // Fallback to in-memory project if fs project fails
161
+ return reviewSource(source, filePath, config);
162
+ }
163
+ }
164
+ /**
165
+ * Review TypeScript source code (string). Uses in-memory project (no type resolution).
166
+ * For file-from-disk review with type resolution, use reviewFile() instead.
106
167
  */
107
168
  export function reviewSource(source, filePath = 'input.ts', config) {
108
- const totalLines = source.split('\n').length;
109
- // ── Shared context: single AST parse, shared across all phases ──
110
169
  const project = createInMemoryProject();
111
170
  const sourceFile = project.createSourceFile(filePath, source);
171
+ return reviewSourceInternal(source, filePath, config, project, sourceFile);
172
+ }
173
+ /**
174
+ * Internal review implementation — shared between reviewSource (in-memory) and reviewFile (filesystem).
175
+ */
176
+ function reviewSourceInternal(source, filePath, config, project, sourceFile) {
177
+ const totalLines = source.split('\n').length;
112
178
  const fileRole = classifyFileRole(sourceFile, filePath);
113
179
  // Helper: run a phase safely, collect findings even if a phase throws
114
180
  const allFindings = [];
@@ -118,7 +184,10 @@ export function reviewSource(source, filePath = 'input.ts', config) {
118
184
  }
119
185
  catch (err) {
120
186
  allFindings.push({
121
- source: 'kern', ruleId: 'internal-error', severity: 'info', category: 'structure',
187
+ source: 'kern',
188
+ ruleId: 'internal-error',
189
+ severity: 'info',
190
+ category: 'structure',
122
191
  message: `Review phase '${name}' failed: ${err.message}`,
123
192
  primarySpan: { file: filePath, startLine: 1, startCol: 1, endLine: 1, endCol: 1 },
124
193
  fingerprint: createFingerprint('internal-error', 1, name.charCodeAt(0)),
@@ -138,13 +207,13 @@ export function reviewSource(source, filePath = 'input.ts', config) {
138
207
  // Phase 4: Structural diff → unified findings
139
208
  allFindings.push(...safePhase('diff', () => structuralDiff(source, inferred, filePath), []));
140
209
  // Phase 5: Quality rules → unified findings (receives fileRole)
141
- allFindings.push(...safePhase('quality', () => runQualityRules(sourceFile, inferred, templateMatches, config, fileRole), []));
210
+ allFindings.push(...safePhase('quality', () => runQualityRules(sourceFile, inferred, templateMatches, config, fileRole, project), []));
142
211
  // Phase 6: Concept extraction + concept rules (universal, cross-language)
143
212
  const emptyConcepts = { filePath, language: 'typescript', nodes: [], edges: [], extractorVersion: '0' };
144
213
  const concepts = safePhase('concepts', () => extractTsConcepts(sourceFile, filePath), emptyConcepts);
145
214
  allFindings.push(...safePhase('concept-rules', () => runConceptRules(concepts, filePath), []));
146
215
  // Phase 7: KERN-IR lint (ground layer + confidence rules on inferred nodes)
147
- const irNodes = inferred.map(r => r.node);
216
+ const irNodes = inferred.map((r) => r.node);
148
217
  const groundFindings = safePhase('ground-lint', () => lintKernIR(irNodes, GROUND_LAYER_RULES), []);
149
218
  for (const f of groundFindings) {
150
219
  if (!f.primarySpan.file)
@@ -160,7 +229,7 @@ export function reviewSource(source, filePath = 'input.ts', config) {
160
229
  // Phase 7b: Native .kern rules (built-in + custom)
161
230
  const rulesToRun = [...NATIVE_RULES];
162
231
  if (config?.rulesDirs && config.rulesDirs.length > 0) {
163
- const builtinIds = new Set(NATIVE_RULES.map(r => r.ruleId).filter(Boolean));
232
+ const builtinIds = new Set(NATIVE_RULES.map((r) => r.ruleId).filter(Boolean));
164
233
  const customRules = loadNativeRules(config.rulesDirs, builtinIds);
165
234
  rulesToRun.push(...customRules);
166
235
  }
@@ -177,7 +246,7 @@ export function reviewSource(source, filePath = 'input.ts', config) {
177
246
  // Build confidence graph if any nodes have confidence props
178
247
  let confidenceGraph;
179
248
  let confidenceSummary;
180
- const hasConfidence = irNodes.some(n => n.props?.confidence !== undefined);
249
+ const hasConfidence = irNodes.some((n) => n.props?.confidence !== undefined);
181
250
  if (hasConfidence) {
182
251
  const graph = buildConfidenceGraph(irNodes);
183
252
  confidenceGraph = serializeGraph(graph);
@@ -185,6 +254,8 @@ export function reviewSource(source, filePath = 'input.ts', config) {
185
254
  }
186
255
  // Merge, dedup, sort — single shared utility
187
256
  const dedupedFindings = sortAndDedup(allFindings);
257
+ // Assign calibrated confidence scores to all findings
258
+ assignDefaultConfidence(dedupedFindings);
188
259
  // Apply suppression (inline comments + config disabledRules)
189
260
  const suppression = applySuppression(dedupedFindings, source, filePath, config, config?.strict ?? false);
190
261
  const findings = sortAndDedup(suppression.findings);
@@ -214,7 +285,10 @@ export function reviewKernSource(source, filePath = 'input.kern', _config) {
214
285
  }
215
286
  catch (err) {
216
287
  allFindings.push({
217
- source: 'kern', ruleId: 'internal-error', severity: 'info', category: 'structure',
288
+ source: 'kern',
289
+ ruleId: 'internal-error',
290
+ severity: 'info',
291
+ category: 'structure',
218
292
  message: `Review phase '${name}' failed: ${err.message}`,
219
293
  primarySpan: { file: filePath, startLine: 1, startCol: 1, endLine: 1, endCol: 1 },
220
294
  fingerprint: createFingerprint('internal-error', 1, name.charCodeAt(0)),
@@ -223,9 +297,12 @@ export function reviewKernSource(source, filePath = 'input.kern', _config) {
223
297
  }
224
298
  }
225
299
  // Parse .kern → IR tree + structured diagnostics
226
- const { root, diagnostics: parseDiags } = safePhase('parse', () => parseWithDiagnostics(source), { root: { type: 'document' }, diagnostics: [] });
300
+ const { root, diagnostics: parseDiags } = safePhase('parse', () => parseWithDiagnostics(source), {
301
+ root: { type: 'document' },
302
+ diagnostics: [],
303
+ });
227
304
  // Map parse diagnostics → ReviewFindings (severity capped at 'warning' unless --strict-parse is enabled)
228
- const hasParseErrors = parseDiags.some(d => d.severity === 'error');
305
+ const hasParseErrors = parseDiags.some((d) => d.severity === 'error');
229
306
  for (const d of parseDiags) {
230
307
  allFindings.push({
231
308
  source: 'kern',
@@ -239,7 +316,7 @@ export function reviewKernSource(source, filePath = 'input.kern', _config) {
239
316
  });
240
317
  }
241
318
  // Flatten IR tree for rule consumption
242
- const flatNodes = flattenIR(root).filter(n => n.type !== 'document');
319
+ const flatNodes = flattenIR(root).filter((n) => n.type !== 'document');
243
320
  // Skip structural lint when parse has errors — partial tree causes cascading false positives
244
321
  if (!hasParseErrors) {
245
322
  // Ground-layer rules on IR nodes
@@ -262,7 +339,7 @@ export function reviewKernSource(source, filePath = 'input.kern', _config) {
262
339
  // Native .kern rules (built-in + custom)
263
340
  const rulesToRunKern = [...NATIVE_RULES];
264
341
  if (_config?.rulesDirs && _config.rulesDirs.length > 0) {
265
- const builtinIds = new Set(NATIVE_RULES.map(r => r.ruleId).filter(Boolean));
342
+ const builtinIds = new Set(NATIVE_RULES.map((r) => r.ruleId).filter(Boolean));
266
343
  const customRules = loadNativeRules(_config.rulesDirs, builtinIds);
267
344
  rulesToRunKern.push(...customRules);
268
345
  }
@@ -278,7 +355,7 @@ export function reviewKernSource(source, filePath = 'input.kern', _config) {
278
355
  // Confidence graph
279
356
  let confidenceGraph;
280
357
  let confidenceSummary;
281
- if (flatNodes.some(n => n.props?.confidence !== undefined)) {
358
+ if (flatNodes.some((n) => n.props?.confidence !== undefined)) {
282
359
  const graph = buildConfidenceGraph(flatNodes);
283
360
  confidenceGraph = serializeGraph(graph);
284
361
  confidenceSummary = computeConfidenceSummary(graph);
@@ -296,10 +373,15 @@ export function reviewKernSource(source, filePath = 'input.kern', _config) {
296
373
  promptAlias: `N${i + 1}`,
297
374
  startLine: line,
298
375
  endLine,
299
- sourceSpans: [{
300
- file: filePath, startLine: line, startCol: node.loc?.col ?? 1,
301
- endLine, endCol: node.loc?.endCol ?? 1,
302
- }],
376
+ sourceSpans: [
377
+ {
378
+ file: filePath,
379
+ startLine: line,
380
+ startCol: node.loc?.col ?? 1,
381
+ endLine,
382
+ endCol: node.loc?.endCol ?? 1,
383
+ },
384
+ ],
303
385
  summary: `${node.type}${name !== node.type ? ` ${name}` : ''}`,
304
386
  confidence: 'high',
305
387
  confidencePct: 100,
@@ -308,6 +390,7 @@ export function reviewKernSource(source, filePath = 'input.kern', _config) {
308
390
  };
309
391
  });
310
392
  const dedupedFindings = sortAndDedup(allFindings);
393
+ assignDefaultConfidence(dedupedFindings);
311
394
  const suppression = applySuppression(dedupedFindings, source, filePath, _config, _config?.strict ?? false);
312
395
  const findings = sortAndDedup(suppression.findings);
313
396
  const kernTokens = countTokens(source);
@@ -342,10 +425,13 @@ export function reviewPythonSource(source, filePath = 'input.py', config) {
342
425
  const { extractPythonConcepts } = require('@kernlang/review-python');
343
426
  const concepts = extractPythonConcepts(source, filePath);
344
427
  conceptFindings = runConceptRules(concepts, filePath);
428
+ if (config?.target === 'fastapi') {
429
+ conceptFindings.push(...runFastapiConceptRules(concepts, filePath, source));
430
+ }
345
431
  // Native .kern rules with concept matching (built-in + custom)
346
432
  const rulesToRunPy = [...NATIVE_RULES];
347
433
  if (config?.rulesDirs && config.rulesDirs.length > 0) {
348
- const builtinIds = new Set(NATIVE_RULES.map(r => r.ruleId).filter(Boolean));
434
+ const builtinIds = new Set(NATIVE_RULES.map((r) => r.ruleId).filter(Boolean));
349
435
  const customRules = loadNativeRules(config.rulesDirs, builtinIds);
350
436
  rulesToRunPy.push(...customRules);
351
437
  }
@@ -355,7 +441,8 @@ export function reviewPythonSource(source, filePath = 'input.py', config) {
355
441
  }
356
442
  catch (_err) {
357
443
  // @kernlang/review-python not installed — skip concept extraction
358
- conceptFindings = [{
444
+ conceptFindings = [
445
+ {
359
446
  source: 'kern',
360
447
  ruleId: 'missing-python-support',
361
448
  severity: 'info',
@@ -363,9 +450,11 @@ export function reviewPythonSource(source, filePath = 'input.py', config) {
363
450
  message: 'Install @kernlang/review-python for Python concept analysis',
364
451
  primarySpan: { file: filePath, startLine: 1, startCol: 1, endLine: 1, endCol: 1 },
365
452
  fingerprint: 'missing-python-0',
366
- }];
453
+ },
454
+ ];
367
455
  }
368
456
  const dedupedFindings = sortAndDedup(conceptFindings);
457
+ assignDefaultConfidence(dedupedFindings);
369
458
  const suppression = applySuppression(dedupedFindings, source, filePath, config, config?.strict ?? false);
370
459
  const findings = sortAndDedup(suppression.findings);
371
460
  return {
@@ -408,11 +497,14 @@ export function reviewGraph(entryFiles, config, graphOptions) {
408
497
  const graph = resolveImportGraph(entryFiles, graphOptions);
409
498
  const entrySet = new Set(graph.entryFiles);
410
499
  const reports = [];
500
+ // Build file context map — every file gets import chain awareness
501
+ const fileContextMap = buildFileContextMap(graph);
502
+ const graphConfig = { ...config, fileContextMap };
411
503
  for (const gf of graph.files) {
412
504
  if (!existsSync(gf.path))
413
505
  continue;
414
506
  try {
415
- const report = reviewFile(gf.path, config);
507
+ const report = reviewFile(gf.path, graphConfig);
416
508
  const isEntry = entrySet.has(gf.path);
417
509
  // Tag every finding with provenance
418
510
  for (const f of report.findings) {
@@ -448,11 +540,20 @@ export function reviewGraph(entryFiles, config, graphOptions) {
448
540
  const crossFileFindings = crossFileTaintToFindings(crossFileResults);
449
541
  // Add cross-file findings to the caller's report, then re-run suppression
450
542
  for (const f of crossFileFindings) {
451
- const callerReport = reports.find(r => r.filePath === f.primarySpan.file);
543
+ const callerReport = reports.find((r) => r.filePath === f.primarySpan.file);
452
544
  if (callerReport) {
453
545
  callerReport.findings.push(f);
454
546
  }
455
547
  }
548
+ // Attach raw cross-file taint results for structured output
549
+ for (const result of crossFileResults) {
550
+ const callerReport = reports.find((r) => r.filePath === result.callerFile);
551
+ if (callerReport) {
552
+ if (!callerReport.crossFileTaint)
553
+ callerReport.crossFileTaint = [];
554
+ callerReport.crossFileTaint.push(result);
555
+ }
556
+ }
456
557
  }
457
558
  // Cross-file concept analysis — re-run concept rules with full graph context
458
559
  // This fixes false positives where guards are in middleware files and effects in handlers
@@ -479,12 +580,54 @@ export function reviewGraph(entryFiles, config, graphOptions) {
479
580
  if (!concepts)
480
581
  continue;
481
582
  // Remove per-file concept findings (they were run without cross-file context)
482
- report.findings = report.findings.filter(f => !CONCEPT_RULE_IDS.has(f.ruleId));
583
+ report.findings = report.findings.filter((f) => !CONCEPT_RULE_IDS.has(f.ruleId));
483
584
  // Re-run concept rules with cross-file context
484
585
  const crossFileConceptFindings = runConceptRules(concepts, report.filePath, allConcepts, graphImports);
485
586
  report.findings.push(...crossFileConceptFindings);
486
587
  }
487
588
  }
589
+ // Note: server-hook / missing-use-client client boundary suppression is now handled
590
+ // by FileContext in the rules themselves (ctx.fileContext.isClientBoundary).
591
+ // ── Norm mining + proof obligations ──
592
+ if (allConcepts.size > 0) {
593
+ const normViolations = mineNorms(allConcepts);
594
+ for (const report of reports) {
595
+ const obligations = synthesizeObligations(allConcepts, fileContextMap, report.filePath, normViolations);
596
+ // Attach obligations to the report (as metadata, not findings — they're for the LLM reviewer)
597
+ report.obligations = obligations;
598
+ }
599
+ }
600
+ // ── Call graph analysis: dead exports + cross-file async ──
601
+ try {
602
+ // Use provided project, or build one with all graph files loaded
603
+ let cgProject = graphOptions?.project;
604
+ if (!cgProject) {
605
+ const { Project } = require('ts-morph');
606
+ cgProject = new Project({
607
+ compilerOptions: { strict: true, target: 99, module: 99, moduleResolution: 100, skipLibCheck: true },
608
+ useInMemoryFileSystem: false,
609
+ skipAddingFilesFromTsConfig: true,
610
+ });
611
+ for (const gf of graph.files) {
612
+ try {
613
+ cgProject.addSourceFileAtPath(gf.path);
614
+ }
615
+ catch {
616
+ /* skip unresolvable */
617
+ }
618
+ }
619
+ }
620
+ const callGraph = buildCallGraph(graph, cgProject);
621
+ for (const report of reports) {
622
+ const deadExportFindings = deadExportRule(callGraph, report.filePath);
623
+ report.findings.push(...deadExportFindings);
624
+ const asyncFindings = crossFileAsyncRule(callGraph, report.filePath);
625
+ report.findings.push(...asyncFindings);
626
+ }
627
+ }
628
+ catch {
629
+ // Call graph build failure should not crash the review pipeline
630
+ }
488
631
  // Re-run suppression + dedup on all reports (cross-file findings were injected after initial suppression)
489
632
  for (const report of reports) {
490
633
  try {
@@ -503,10 +646,20 @@ function collectReviewableFiles(dirPath, recursive) {
503
646
  for (const entry of readdirSync(dirPath)) {
504
647
  const full = join(dirPath, entry);
505
648
  const stat = statSync(full);
506
- if (stat.isDirectory() && recursive && !entry.startsWith('.') && entry !== 'node_modules' && entry !== 'dist' && entry !== '__pycache__' && entry !== '.venv' && entry !== 'venv') {
649
+ if (stat.isDirectory() &&
650
+ recursive &&
651
+ !entry.startsWith('.') &&
652
+ entry !== 'node_modules' &&
653
+ entry !== 'dist' &&
654
+ entry !== '__pycache__' &&
655
+ entry !== '.venv' &&
656
+ entry !== 'venv') {
507
657
  files.push(...collectReviewableFiles(full, true));
508
658
  }
509
- else if ((entry.endsWith('.ts') || entry.endsWith('.tsx')) && !entry.endsWith('.d.ts') && !entry.endsWith('.test.ts') && !entry.endsWith('.test.tsx')) {
659
+ else if ((entry.endsWith('.ts') || entry.endsWith('.tsx')) &&
660
+ !entry.endsWith('.d.ts') &&
661
+ !entry.endsWith('.test.ts') &&
662
+ !entry.endsWith('.test.tsx')) {
510
663
  files.push(full);
511
664
  }
512
665
  else if (entry.endsWith('.py') && !entry.startsWith('test_') && !entry.endsWith('_test.py')) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -6,9 +6,15 @@
6
6
  *
7
7
  * v2: Adds stable nodeId, promptAlias, sourceSpans to InferResult.
8
8
  */
9
- import { Project, SourceFile } from 'ts-morph';
9
+ import { Project, type SourceFile } from 'ts-morph';
10
10
  import type { InferResult } from './types.js';
11
- export declare function createProject(): Project;
11
+ /**
12
+ * Create a ts-morph Project for analysis.
13
+ * If startPath is provided, finds the nearest tsconfig.json and uses it
14
+ * for module resolution (paths, references, moduleResolution). This fixes
15
+ * false "Cannot find module" errors in monorepo packages.
16
+ */
17
+ export declare function createProject(startPath?: string): Project;
12
18
  export declare function createInMemoryProject(): Project;
13
19
  export declare function inferFromSource(source: string, filePath?: string): InferResult[];
14
20
  export declare function inferFromFile(filePath: string): InferResult[];