@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/inferrer.js CHANGED
@@ -6,10 +6,43 @@
6
6
  *
7
7
  * v2: Adds stable nodeId, promptAlias, sourceSpans to InferResult.
8
8
  */
9
- import { Project, SyntaxKind, } from 'ts-morph';
10
9
  import { countTokens } from '@kernlang/core';
10
+ import { Project, SyntaxKind } from 'ts-morph';
11
11
  // ── Create Project ───────────────────────────────────────────────────────
12
- export function createProject() {
12
+ import { existsSync } from 'fs';
13
+ import { dirname, resolve } from 'path';
14
+ /**
15
+ * Walk up from a directory to find the nearest tsconfig.json.
16
+ * Returns the path or undefined if not found.
17
+ */
18
+ function findTsConfig(startDir) {
19
+ let dir = startDir;
20
+ for (let i = 0; i < 20; i++) {
21
+ const candidate = resolve(dir, 'tsconfig.json');
22
+ if (existsSync(candidate))
23
+ return candidate;
24
+ const parent = dirname(dir);
25
+ if (parent === dir)
26
+ break;
27
+ dir = parent;
28
+ }
29
+ return undefined;
30
+ }
31
+ /**
32
+ * Create a ts-morph Project for analysis.
33
+ * If startPath is provided, finds the nearest tsconfig.json and uses it
34
+ * for module resolution (paths, references, moduleResolution). This fixes
35
+ * false "Cannot find module" errors in monorepo packages.
36
+ */
37
+ export function createProject(startPath) {
38
+ const tsConfigFilePath = startPath ? findTsConfig(dirname(startPath)) : undefined;
39
+ if (tsConfigFilePath) {
40
+ return new Project({
41
+ tsConfigFilePath,
42
+ skipAddingFilesFromTsConfig: true, // Only load files we explicitly add
43
+ });
44
+ }
45
+ // Fallback: no tsconfig found — use strict defaults
13
46
  return new Project({
14
47
  compilerOptions: { strict: true, target: 99 /* Latest */ },
15
48
  useInMemoryFileSystem: false,
@@ -30,7 +63,7 @@ export function inferFromSource(source, filePath = 'input.ts') {
30
63
  return inferFromSourceFile(sourceFile);
31
64
  }
32
65
  export function inferFromFile(filePath) {
33
- const project = createProject();
66
+ const project = createProject(filePath);
34
67
  const sourceFile = project.addSourceFileAtPath(filePath);
35
68
  return inferFromSourceFile(sourceFile);
36
69
  }
@@ -100,7 +133,7 @@ function serializeKernNode(node) {
100
133
  }
101
134
  if (node.children) {
102
135
  for (const child of node.children) {
103
- parts.push(' ' + serializeKernNode(child));
136
+ parts.push(` ${serializeKernNode(child)}`);
104
137
  }
105
138
  }
106
139
  return parts.join(' ');
@@ -121,12 +154,15 @@ function inferTypes(sourceFile) {
121
154
  const endOffset = decl.getEnd();
122
155
  // Union of string literals → type name=X values="a|b|c"
123
156
  if (typeNode.getKind() === SyntaxKind.UnionType) {
124
- const unionMembers = text.split('|').map(s => s.trim());
125
- const allLiterals = unionMembers.every(m => m.startsWith("'") || m.startsWith('"'));
157
+ const unionMembers = text.split('|').map((s) => s.trim());
158
+ const allLiterals = unionMembers.every((m) => m.startsWith("'") || m.startsWith('"'));
126
159
  if (allLiterals) {
127
- const values = unionMembers.map(m => m.replace(/['"]/g, '')).join('|');
160
+ const values = unionMembers.map((m) => m.replace(/['"]/g, '')).join('|');
128
161
  const node = { type: 'type', props: { name, values } };
129
- results.push(makeResult(node, sourceFile, startOffset, endOffset, startLine, endLine, `type ${name} = ${values.split('|').map(v => `'${v}'`).join(' | ')}`, 'high', 98, originalText));
162
+ results.push(makeResult(node, sourceFile, startOffset, endOffset, startLine, endLine, `type ${name} = ${values
163
+ .split('|')
164
+ .map((v) => `'${v}'`)
165
+ .join(' | ')}`, 'high', 98, originalText));
130
166
  }
131
167
  else {
132
168
  // Type alias union (non-literal)
@@ -152,7 +188,10 @@ function inferInterfaces(sourceFile) {
152
188
  const originalText = decl.getText();
153
189
  const startOffset = decl.getStart();
154
190
  const endOffset = decl.getEnd();
155
- const extendsClause = decl.getExtends().map(e => e.getText()).join(', ') || undefined;
191
+ const extendsClause = decl
192
+ .getExtends()
193
+ .map((e) => e.getText())
194
+ .join(', ') || undefined;
156
195
  const children = [];
157
196
  for (const prop of decl.getProperties()) {
158
197
  const fieldName = prop.getName();
@@ -207,7 +246,7 @@ function inferFunctions(sourceFile) {
207
246
  const className = cls.getName() ?? 'AnonymousClass';
208
247
  // Skip Error subclasses — handled by inferErrors
209
248
  const extendsExpr = cls.getExtends();
210
- if (extendsExpr && extendsExpr.getText().includes('Error'))
249
+ if (extendsExpr?.getText().includes('Error'))
211
250
  continue;
212
251
  for (const method of cls.getMethods()) {
213
252
  if (method.isAbstract())
@@ -219,8 +258,9 @@ function inferFunctions(sourceFile) {
219
258
  }
220
259
  /** Shared helper to emit an fn IR node from any function-like AST node. */
221
260
  function pushFnResult(results, sourceFile, anchor, fn, name, isExported) {
222
- const params = fn.getParameters()
223
- .map(p => `${p.getName()}:${p.getType().getText(p)}`)
261
+ const params = fn
262
+ .getParameters()
263
+ .map((p) => `${p.getName()}:${p.getType().getText(p)}`)
224
264
  .join(',');
225
265
  const returnType = fn.getReturnType().getText(fn);
226
266
  const isAsync = fn.isAsync();
@@ -300,7 +340,7 @@ function inferImports(sourceFile) {
300
340
  const startOffset = decl.getStart();
301
341
  const endOffset = decl.getEnd();
302
342
  const defaultImport = decl.getDefaultImport()?.getText();
303
- const namedImports = decl.getNamedImports().map(n => n.getName());
343
+ const namedImports = decl.getNamedImports().map((n) => n.getName());
304
344
  const isTypeOnly = decl.isTypeOnly();
305
345
  const props = { from };
306
346
  if (defaultImport)
@@ -330,10 +370,11 @@ function inferConsts(sourceFile) {
330
370
  const typeName = typeNode?.getText();
331
371
  const initializer = decl.getInitializer()?.getText();
332
372
  // Skip if it's a function expression or arrow function
333
- if (initializer && (initializer.startsWith('(') ||
334
- initializer.startsWith('function') ||
335
- initializer.startsWith('async') ||
336
- initializer.includes('=>'))) {
373
+ if (initializer &&
374
+ (initializer.startsWith('(') ||
375
+ initializer.startsWith('function') ||
376
+ initializer.startsWith('async') ||
377
+ initializer.includes('=>'))) {
337
378
  continue;
338
379
  }
339
380
  const props = { name };
@@ -344,7 +385,7 @@ function inferConsts(sourceFile) {
344
385
  if (!isExported)
345
386
  props.export = 'false';
346
387
  const node = { type: 'const', props };
347
- results.push(makeResult(node, sourceFile, startOffset, endOffset, startLine, endLine, `const ${name}${typeName ? ': ' + typeName : ''} = ${initializer || '...'}`, 'high', 90, originalText));
388
+ results.push(makeResult(node, sourceFile, startOffset, endOffset, startLine, endLine, `const ${name}${typeName ? `: ${typeName}` : ''} = ${initializer || '...'}`, 'high', 90, originalText));
348
389
  }
349
390
  }
350
391
  return results;
@@ -361,13 +402,17 @@ function inferExports(sourceFile) {
361
402
  const endOffset = decl.getEnd();
362
403
  const text = decl.getText();
363
404
  const specifier = decl.getModuleSpecifierValue();
364
- const namedExports = decl.getNamedExports().map(e => e.getName());
405
+ const namedExports = decl.getNamedExports().map((e) => e.getName());
365
406
  const isTypeOnly = decl.isTypeOnly();
366
407
  const node = {
367
408
  type: 'export',
368
409
  props: {
369
410
  ...(specifier ? { from: specifier } : {}),
370
- ...(namedExports.length > 0 ? (isTypeOnly ? { types: namedExports.join(',') } : { names: namedExports.join(',') }) : {}),
411
+ ...(namedExports.length > 0
412
+ ? isTypeOnly
413
+ ? { types: namedExports.join(',') }
414
+ : { names: namedExports.join(',') }
415
+ : {}),
371
416
  ...(!specifier && namedExports.length === 0 ? { star: 'true' } : {}),
372
417
  },
373
418
  };
@@ -419,7 +464,7 @@ function inferMachines(sourceFile, existing) {
419
464
  const results = [];
420
465
  const filePath = sourceFile.getFilePath() || 'input.ts';
421
466
  // Look for *State type aliases that are string literal unions
422
- const stateTypes = existing.filter(r => r.node.type === 'type' &&
467
+ const stateTypes = existing.filter((r) => r.node.type === 'type' &&
423
468
  r.node.props?.name &&
424
469
  r.node.props.name.endsWith('State') &&
425
470
  r.node.props.values);
@@ -428,17 +473,14 @@ function inferMachines(sourceFile, existing) {
428
473
  const baseName = stateName.replace(/State$/, '');
429
474
  const values = stateResult.node.props.values.split('|');
430
475
  // Check for matching XStateError class
431
- const errorResult = existing.find(r => r.node.type === 'error' &&
432
- r.node.props?.name === `${baseName}StateError`);
476
+ const errorResult = existing.find((r) => r.node.type === 'error' && r.node.props?.name === `${baseName}StateError`);
433
477
  // Check for transition functions matching the pattern: verbBaseName
434
- const transitionFns = existing.filter(r => r.node.type === 'fn' &&
435
- r.node.props?.name &&
436
- r.node.props.name.endsWith(baseName));
478
+ const transitionFns = existing.filter((r) => r.node.type === 'fn' && r.node.props?.name && r.node.props.name.endsWith(baseName));
437
479
  // Need at least the state type + 1 transition OR state type + error
438
480
  if (!errorResult && transitionFns.length === 0)
439
481
  continue;
440
482
  const startLine = stateResult.startLine;
441
- const endLine = Math.max(errorResult?.endLine || startLine, ...transitionFns.map(f => f.endLine));
483
+ const endLine = Math.max(errorResult?.endLine || startLine, ...transitionFns.map((f) => f.endLine));
442
484
  // Build machine node
443
485
  const children = [];
444
486
  // States
@@ -461,7 +503,7 @@ function inferMachines(sourceFile, existing) {
461
503
  }
462
504
  const allOriginalText = [stateResult, errorResult, ...transitionFns]
463
505
  .filter(Boolean)
464
- .map(r => r.tsTokens)
506
+ .map((r) => r.tsTokens)
465
507
  .reduce((a, b) => a + b, 0);
466
508
  const node = {
467
509
  type: 'machine',
@@ -472,7 +514,7 @@ function inferMachines(sourceFile, existing) {
472
514
  const componentSpans = [
473
515
  ...stateResult.sourceSpans,
474
516
  ...(errorResult?.sourceSpans || []),
475
- ...transitionFns.flatMap(fn => fn.sourceSpans),
517
+ ...transitionFns.flatMap((fn) => fn.sourceSpans),
476
518
  ];
477
519
  const confidence = errorResult && transitionFns.length > 0 ? 90 : 75;
478
520
  results.push({
@@ -496,14 +538,12 @@ function inferMachines(sourceFile, existing) {
496
538
  function inferConfigs(sourceFile, existing) {
497
539
  const results = [];
498
540
  const filePath = sourceFile.getFilePath() || 'input.ts';
499
- const configInterfaces = existing.filter(r => r.node.type === 'interface' &&
500
- r.node.props?.name &&
501
- r.node.props.name.endsWith('Config'));
541
+ const configInterfaces = existing.filter((r) => r.node.type === 'interface' && r.node.props?.name && r.node.props.name.endsWith('Config'));
502
542
  for (const ifaceResult of configInterfaces) {
503
543
  const name = ifaceResult.node.props.name;
504
544
  // Look for DEFAULT_X_CONFIG or DEFAULT_XCONFIG or defaultXConfig
505
545
  const upperName = name.replace(/([a-z])([A-Z])/g, '$1_$2').toUpperCase();
506
- const defaultConst = existing.find(r => r.node.type === 'const' &&
546
+ const defaultConst = existing.find((r) => r.node.type === 'const' &&
507
547
  r.node.props?.name &&
508
548
  (r.node.props.name === `DEFAULT_${upperName}` ||
509
549
  r.node.props.name.toUpperCase().includes(upperName)));
@@ -512,7 +552,7 @@ function inferConfigs(sourceFile, existing) {
512
552
  const startLine = Math.min(ifaceResult.startLine, defaultConst.startLine);
513
553
  const endLine = Math.max(ifaceResult.endLine, defaultConst.endLine);
514
554
  // Build config node from interface fields
515
- const children = (ifaceResult.node.children || []).map(field => {
555
+ const children = (ifaceResult.node.children || []).map((field) => {
516
556
  return { ...field };
517
557
  });
518
558
  const node = {
@@ -520,10 +560,7 @@ function inferConfigs(sourceFile, existing) {
520
560
  props: { name },
521
561
  children,
522
562
  };
523
- const componentSpans = [
524
- ...ifaceResult.sourceSpans,
525
- ...defaultConst.sourceSpans,
526
- ];
563
+ const componentSpans = [...ifaceResult.sourceSpans, ...defaultConst.sourceSpans];
527
564
  results.push({
528
565
  node,
529
566
  nodeId: `${filePath}#config:${name}@L${startLine}`,
@@ -546,7 +583,7 @@ function inferEvents(sourceFile, existing) {
546
583
  const results = [];
547
584
  const filePath = sourceFile.getFilePath() || 'input.ts';
548
585
  // Find *EventType type aliases
549
- const eventTypes = existing.filter(r => r.node.type === 'type' &&
586
+ const eventTypes = existing.filter((r) => r.node.type === 'type' &&
550
587
  r.node.props?.name &&
551
588
  r.node.props.name.endsWith('EventType') &&
552
589
  r.node.props.values);
@@ -554,17 +591,15 @@ function inferEvents(sourceFile, existing) {
554
591
  const typeName = eventTypeResult.node.props.name;
555
592
  const baseName = typeName.replace(/Type$/, '');
556
593
  // Look for matching XEvent interface
557
- const eventInterface = existing.find(r => r.node.type === 'interface' &&
558
- r.node.props?.name === baseName);
594
+ const eventInterface = existing.find((r) => r.node.type === 'interface' && r.node.props?.name === baseName);
559
595
  // Look for matching XEventMap interface
560
- const eventMap = existing.find(r => r.node.type === 'interface' &&
561
- r.node.props?.name === `${baseName}Map`);
596
+ const eventMap = existing.find((r) => r.node.type === 'interface' && r.node.props?.name === `${baseName}Map`);
562
597
  if (!eventInterface)
563
598
  continue;
564
599
  const startLine = Math.min(eventTypeResult.startLine, eventInterface.startLine);
565
600
  const endLine = Math.max(eventTypeResult.endLine, eventInterface.endLine, eventMap?.endLine || 0);
566
601
  const values = eventTypeResult.node.props.values.split('|');
567
- const children = values.map(v => ({
602
+ const children = values.map((v) => ({
568
603
  type: 'type',
569
604
  props: { name: v, value: v },
570
605
  }));
@@ -578,9 +613,7 @@ function inferEvents(sourceFile, existing) {
578
613
  ...eventInterface.sourceSpans,
579
614
  ...(eventMap?.sourceSpans || []),
580
615
  ];
581
- const totalTokens = eventTypeResult.tsTokens +
582
- eventInterface.tsTokens +
583
- (eventMap?.tsTokens || 0);
616
+ const totalTokens = eventTypeResult.tsTokens + eventInterface.tsTokens + (eventMap?.tsTokens || 0);
584
617
  results.push({
585
618
  node,
586
619
  nodeId: `${filePath}#event:${baseName}@L${startLine}`,
@@ -1 +1 @@
1
- {"version":3,"file":"inferrer.js","sourceRoot":"","sources":["../src/inferrer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inferrer.js","sourceRoot":"","sources":["../src/inferrer.ts"],"names":[],"mappings":"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"}
@@ -5,14 +5,13 @@
5
5
  * Ground-layer rules need to inspect KERN nodes before compilation.
6
6
  * Supports both TypeScript rule functions and native .kern rule files.
7
7
  */
8
- import type { IRNode } from '@kernlang/core';
9
- import type { ConceptMap } from '@kernlang/core';
8
+ import type { ConceptMap, IRNode } from '@kernlang/core';
10
9
  import type { ReviewFinding } from './types.js';
11
10
  export type KernLintRule = ((nodes: IRNode[], concepts?: ConceptMap) => ReviewFinding[]) & {
12
11
  ruleId?: string;
13
12
  };
14
- export { loadNativeRules, loadBuiltinNativeRules } from './rule-loader.js';
15
- export { buildRuleIndex, evaluateRule, conceptNodeToIR } from './rule-eval.js';
13
+ export { buildRuleIndex, conceptNodeToIR, evaluateRule } from './rule-eval.js';
14
+ export { loadBuiltinNativeRules, loadNativeRules } from './rule-loader.js';
16
15
  /**
17
16
  * Run KERN-IR lint rules against a list of IR nodes.
18
17
  * When concepts are provided, native rules with `subject=concept` can match concept nodes.
package/dist/kern-lint.js CHANGED
@@ -5,20 +5,21 @@
5
5
  * Ground-layer rules need to inspect KERN nodes before compilation.
6
6
  * Supports both TypeScript rule functions and native .kern rule files.
7
7
  */
8
+ export { buildRuleIndex, conceptNodeToIR, evaluateRule } from './rule-eval.js';
8
9
  // Re-export for consumers
9
- export { loadNativeRules, loadBuiltinNativeRules } from './rule-loader.js';
10
- export { buildRuleIndex, evaluateRule, conceptNodeToIR } from './rule-eval.js';
10
+ export { loadBuiltinNativeRules, loadNativeRules } from './rule-loader.js';
11
11
  /**
12
12
  * Run KERN-IR lint rules against a list of IR nodes.
13
13
  * When concepts are provided, native rules with `subject=concept` can match concept nodes.
14
14
  */
15
15
  export function lintKernIR(nodes, rules, concepts) {
16
- return rules.flatMap(rule => {
16
+ return rules.flatMap((rule) => {
17
17
  try {
18
18
  return rule(nodes, concepts);
19
19
  }
20
20
  catch (err) {
21
- return [{
21
+ return [
22
+ {
22
23
  source: 'kern',
23
24
  ruleId: 'internal-rule-error',
24
25
  severity: 'info',
@@ -26,7 +27,8 @@ export function lintKernIR(nodes, rules, concepts) {
26
27
  message: `Rule threw: ${err.message}`,
27
28
  primarySpan: { file: 'unknown', startLine: 0, startCol: 0, endLine: 0, endCol: 0 },
28
29
  fingerprint: `rule-error-${err.message.slice(0, 20)}`,
29
- }];
30
+ },
31
+ ];
30
32
  }
31
33
  });
32
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"kern-lint.js","sourceRoot":"","sources":["../src/kern-lint.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,0BAA0B;AAC1B,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAE/E;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,KAAe,EAAE,KAAqB,EAAE,QAAqB;IACtF,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAC1B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC;oBACN,MAAM,EAAE,MAAe;oBACvB,MAAM,EAAE,qBAAqB;oBAC7B,QAAQ,EAAE,MAAe;oBACzB,QAAQ,EAAE,WAAoB;oBAC9B,OAAO,EAAE,eAAgB,GAAa,CAAC,OAAO,EAAE;oBAChD,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;oBAClF,WAAW,EAAE,cAAe,GAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;iBACjE,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,MAAM,MAAM,GAAa,CAAC,IAAI,CAAC,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"kern-lint.js","sourceRoot":"","sources":["../src/kern-lint.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC/E,0BAA0B;AAC1B,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE3E;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,KAAe,EAAE,KAAqB,EAAE,QAAqB;IACtF,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC5B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL;oBACE,MAAM,EAAE,MAAe;oBACvB,MAAM,EAAE,qBAAqB;oBAC7B,QAAQ,EAAE,MAAe;oBACzB,QAAQ,EAAE,WAAoB;oBAC9B,OAAO,EAAE,eAAgB,GAAa,CAAC,OAAO,EAAE;oBAChD,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;oBAClF,WAAW,EAAE,cAAe,GAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;iBACjE;aACF,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,MAAM,MAAM,GAAa,CAAC,IAAI,CAAC,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -11,10 +11,9 @@
11
11
  *
12
12
  * Supports: OpenAI, Anthropic (via proxy), Ollama, any OpenAI-compatible API.
13
13
  */
14
- import type { InferResult, ReviewFinding } from './types.js';
15
- import type { TaintResult } from './taint.js';
16
14
  import type { LLMGraphContext } from './llm-review.js';
17
- import type { TemplateMatch } from './types.js';
15
+ import type { TaintResult } from './taint.js';
16
+ import type { InferResult, ReviewFinding, TemplateMatch } from './types.js';
18
17
  export interface LLMBridgeConfig {
19
18
  apiKey?: string;
20
19
  model?: string;
@@ -22,6 +21,10 @@ export interface LLMBridgeConfig {
22
21
  timeout?: number;
23
22
  maxTokens?: number;
24
23
  }
24
+ export interface ReviewInstructionOptions {
25
+ target?: 'api' | 'assistant';
26
+ hasInlineSource?: boolean;
27
+ }
25
28
  /**
26
29
  * Check if LLM review is available (API key configured).
27
30
  */
@@ -32,11 +35,24 @@ export interface LLMReviewInput {
32
35
  templateMatches: TemplateMatch[];
33
36
  taintResults?: TaintResult[];
34
37
  graphContext?: LLMGraphContext;
38
+ /** Actual source code — enables deep review (LLM sees real code, not just IR) */
39
+ source?: string;
40
+ /** Static findings already found — LLM can validate, extend, or suppress */
41
+ staticFindings?: ReviewFinding[];
42
+ /** Target framework context */
43
+ target?: string;
44
+ /** Proof obligations for AI verification */
45
+ obligations?: import('./obligations.js').ProofObligation[];
35
46
  }
36
47
  /**
37
- * Run LLM security review on a batch of files.
38
- * Returns ReviewFinding[] merged from LLM responses.
39
- *
40
- * When API key is not available, returns empty array (CI/CD safe).
48
+ * Filter predicate for static findings sent to the LLM.
49
+ * Excludes info-severity and low-confidence findings to save tokens.
41
50
  */
51
+ export declare function isHighValueFinding(f: ReviewFinding): boolean;
42
52
  export declare function runLLMReview(inputs: LLMReviewInput[], configOverride?: LLMBridgeConfig): Promise<ReviewFinding[]>;
53
+ /**
54
+ * Build review instructions for the no-API-key CLI path.
55
+ * Shared review categories from buildSystemPrompt() adapted for AI CLI tools
56
+ * (Claude Code, Cursor, Codex) that read kern review output directly.
57
+ */
58
+ export declare function buildReviewInstructions(options?: ReviewInstructionOptions): string;