@oddessentials/odd-ai-reviewers 1.7.3 → 1.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 (73) hide show
  1. package/dist/agents/ai_semantic_review.d.ts.map +1 -1
  2. package/dist/agents/ai_semantic_review.js +4 -1
  3. package/dist/agents/ai_semantic_review.js.map +1 -1
  4. package/dist/agents/control_flow/safe-source-detector.d.ts +48 -0
  5. package/dist/agents/control_flow/safe-source-detector.d.ts.map +1 -0
  6. package/dist/agents/control_flow/safe-source-detector.js +424 -0
  7. package/dist/agents/control_flow/safe-source-detector.js.map +1 -0
  8. package/dist/agents/control_flow/safe-source-patterns.d.ts +61 -0
  9. package/dist/agents/control_flow/safe-source-patterns.d.ts.map +1 -0
  10. package/dist/agents/control_flow/safe-source-patterns.js +137 -0
  11. package/dist/agents/control_flow/safe-source-patterns.js.map +1 -0
  12. package/dist/agents/control_flow/scope-stack.d.ts +113 -0
  13. package/dist/agents/control_flow/scope-stack.d.ts.map +1 -0
  14. package/dist/agents/control_flow/scope-stack.js +320 -0
  15. package/dist/agents/control_flow/scope-stack.js.map +1 -0
  16. package/dist/agents/control_flow/vulnerability-detector.d.ts +13 -0
  17. package/dist/agents/control_flow/vulnerability-detector.d.ts.map +1 -1
  18. package/dist/agents/control_flow/vulnerability-detector.js +252 -35
  19. package/dist/agents/control_flow/vulnerability-detector.js.map +1 -1
  20. package/dist/agents/opencode.d.ts.map +1 -1
  21. package/dist/agents/opencode.js +4 -1
  22. package/dist/agents/opencode.js.map +1 -1
  23. package/dist/agents/pr_agent.d.ts.map +1 -1
  24. package/dist/agents/pr_agent.js +5 -2
  25. package/dist/agents/pr_agent.js.map +1 -1
  26. package/dist/agents/security.d.ts.map +1 -1
  27. package/dist/agents/security.js +1 -0
  28. package/dist/agents/security.js.map +1 -1
  29. package/dist/agents/types.d.ts +6 -0
  30. package/dist/agents/types.d.ts.map +1 -1
  31. package/dist/benchmark/adapter.d.ts +39 -0
  32. package/dist/benchmark/adapter.d.ts.map +1 -0
  33. package/dist/benchmark/adapter.js +217 -0
  34. package/dist/benchmark/adapter.js.map +1 -0
  35. package/dist/benchmark/scoring.d.ts +100 -0
  36. package/dist/benchmark/scoring.d.ts.map +1 -0
  37. package/dist/benchmark/scoring.js +195 -0
  38. package/dist/benchmark/scoring.js.map +1 -0
  39. package/dist/context-loader.d.ts +80 -0
  40. package/dist/context-loader.d.ts.map +1 -0
  41. package/dist/context-loader.js +202 -0
  42. package/dist/context-loader.js.map +1 -0
  43. package/dist/main.d.ts.map +1 -1
  44. package/dist/main.js +131 -4
  45. package/dist/main.js.map +1 -1
  46. package/dist/phases/index.d.ts +1 -1
  47. package/dist/phases/index.d.ts.map +1 -1
  48. package/dist/phases/index.js +1 -1
  49. package/dist/phases/index.js.map +1 -1
  50. package/dist/phases/report.d.ts +8 -1
  51. package/dist/phases/report.d.ts.map +1 -1
  52. package/dist/phases/report.js +27 -5
  53. package/dist/phases/report.js.map +1 -1
  54. package/dist/preflight.d.ts.map +1 -1
  55. package/dist/preflight.js +8 -3
  56. package/dist/preflight.js.map +1 -1
  57. package/dist/report/ado.d.ts +2 -0
  58. package/dist/report/ado.d.ts.map +1 -1
  59. package/dist/report/ado.js +9 -23
  60. package/dist/report/ado.js.map +1 -1
  61. package/dist/report/finding-validator.d.ts +104 -0
  62. package/dist/report/finding-validator.d.ts.map +1 -0
  63. package/dist/report/finding-validator.js +273 -0
  64. package/dist/report/finding-validator.js.map +1 -0
  65. package/dist/report/github.d.ts +2 -0
  66. package/dist/report/github.d.ts.map +1 -1
  67. package/dist/report/github.js +9 -23
  68. package/dist/report/github.js.map +1 -1
  69. package/dist/trust.d.ts +6 -0
  70. package/dist/trust.d.ts.map +1 -1
  71. package/dist/trust.js +2 -0
  72. package/dist/trust.js.map +1 -1
  73. package/package.json +5 -5
@@ -8,6 +8,22 @@
8
8
  */
9
9
  import ts from 'typescript';
10
10
  import { getLogger } from './logger.js';
11
+ import { detectSafeSources, filterSafeSources } from './safe-source-detector.js';
12
+ import { ScopeStack, isScopeNode, nodeIdentityKey, registerNodeDeclarations, } from './scope-stack.js';
13
+ // =============================================================================
14
+ // Assignment operator detection — includes compound assignments (+=, ??=, etc.)
15
+ // that can propagate taint from the RHS to the LHS variable.
16
+ // =============================================================================
17
+ const ASSIGNMENT_OPERATORS = new Set([
18
+ ts.SyntaxKind.EqualsToken, // =
19
+ ts.SyntaxKind.PlusEqualsToken, // +=
20
+ ts.SyntaxKind.BarBarEqualsToken, // ||=
21
+ ts.SyntaxKind.QuestionQuestionEqualsToken, // ??=
22
+ ts.SyntaxKind.AmpersandAmpersandEqualsToken, // &&=
23
+ ]);
24
+ function isAssignmentOperator(kind) {
25
+ return ASSIGNMENT_OPERATORS.has(kind);
26
+ }
11
27
  /**
12
28
  * Built-in sink patterns for common vulnerability types.
13
29
  */
@@ -136,9 +152,19 @@ export class VulnerabilityDetector {
136
152
  this.findSinks(sourceFile, filePath, detectedSinks);
137
153
  // Step 2: Find all sources (user input)
138
154
  this.findSources(sourceFile, filePath, detectedSources);
139
- // Step 3: Track taint propagation
140
- this.trackTaint(sourceFile, filePath, detectedSources, taintedVariables);
141
- // Step 4: Match sinks to tainted data
155
+ // Step 3: Detect safe sources and filter them out (prevents false positives)
156
+ const safeSources = detectSafeSources(sourceFile, filePath);
157
+ const filteredSources = filterSafeSources(detectedSources, safeSources);
158
+ for (const ss of safeSources) {
159
+ this.logger.log('debug', 'vulnerability', 'Safe source detected', {
160
+ patternId: ss.patternId,
161
+ variableName: ss.variableName,
162
+ file: filePath,
163
+ });
164
+ }
165
+ // Step 4: Track taint propagation
166
+ this.trackTaint(sourceFile, filePath, filteredSources, taintedVariables);
167
+ // Step 5: Match sinks to tainted data
142
168
  for (const sink of detectedSinks) {
143
169
  const affectedVariable = this.findAffectedVariable(sink, taintedVariables, sourceFile);
144
170
  if (affectedVariable) {
@@ -150,6 +176,7 @@ export class VulnerabilityDetector {
150
176
  file: filePath,
151
177
  sinksFound: detectedSinks.length,
152
178
  sourcesFound: detectedSources.length,
179
+ safeSourcesDetected: safeSources.length,
153
180
  taintedVars: taintedVariables.length,
154
181
  vulnerabilities: vulnerabilities.length,
155
182
  });
@@ -268,23 +295,30 @@ export class VulnerabilityDetector {
268
295
  * Find user input sources in the source file.
269
296
  */
270
297
  findSources(sourceFile, filePath, sources) {
298
+ const scope = new ScopeStack();
271
299
  const visit = (node) => {
300
+ const isScope = isScopeNode(node);
301
+ if (isScope)
302
+ scope.enterScope(node);
303
+ registerNodeDeclarations(node, scope);
272
304
  // Check property access for source patterns
273
305
  if (ts.isPropertyAccessExpression(node)) {
274
- this.checkPropertyAccessForSource(node, sourceFile, filePath, sources);
306
+ this.checkPropertyAccessForSource(node, sourceFile, filePath, sources, scope);
275
307
  }
276
308
  // Check element access (e.g., req['body'])
277
309
  if (ts.isElementAccessExpression(node)) {
278
- this.checkElementAccessForSource(node, sourceFile, filePath, sources);
310
+ this.checkElementAccessForSource(node, sourceFile, filePath, sources, scope);
279
311
  }
280
312
  ts.forEachChild(node, visit);
313
+ if (isScope)
314
+ scope.leaveScope();
281
315
  };
282
316
  visit(sourceFile);
283
317
  }
284
318
  /**
285
319
  * Check if property access is a taint source.
286
320
  */
287
- checkPropertyAccessForSource(node, sourceFile, filePath, sources) {
321
+ checkPropertyAccessForSource(node, sourceFile, filePath, sources, scope) {
288
322
  const propName = node.name.text;
289
323
  let objectName = '';
290
324
  if (ts.isIdentifier(node.expression)) {
@@ -295,15 +329,12 @@ export class VulnerabilityDetector {
295
329
  const objectMatches = !pattern.objects ||
296
330
  pattern.objects.some((obj) => objectName.toLowerCase() === obj.toLowerCase());
297
331
  if (nameMatches && objectMatches) {
298
- const { line, character } = sourceFile.getLineAndCharacterOfPosition(node.getStart());
332
+ const binding = this.findAssignedBinding(node, sourceFile, filePath, scope);
299
333
  sources.push({
300
- location: {
301
- file: filePath,
302
- line: line + 1,
303
- column: character,
304
- },
334
+ location: binding?.location ?? this.nodeLocation(node, sourceFile, filePath),
305
335
  expression: node.getText(sourceFile),
306
- variableName: this.findAssignedVariable(node, sourceFile) || propName,
336
+ variableName: binding?.variableName ?? (this.findAssignedVariable(node, sourceFile) || propName),
337
+ declarationKey: binding?.declarationKey ?? null,
307
338
  });
308
339
  break;
309
340
  }
@@ -312,7 +343,7 @@ export class VulnerabilityDetector {
312
343
  /**
313
344
  * Check element access for source patterns (e.g., req['body']).
314
345
  */
315
- checkElementAccessForSource(node, sourceFile, filePath, sources) {
346
+ checkElementAccessForSource(node, sourceFile, filePath, sources, scope) {
316
347
  if (!ts.isStringLiteral(node.argumentExpression))
317
348
  return;
318
349
  const propName = node.argumentExpression.text;
@@ -325,15 +356,12 @@ export class VulnerabilityDetector {
325
356
  const objectMatches = !pattern.objects ||
326
357
  pattern.objects.some((obj) => objectName.toLowerCase() === obj.toLowerCase());
327
358
  if (nameMatches && objectMatches) {
328
- const { line, character } = sourceFile.getLineAndCharacterOfPosition(node.getStart());
359
+ const binding = this.findAssignedBinding(node, sourceFile, filePath, scope);
329
360
  sources.push({
330
- location: {
331
- file: filePath,
332
- line: line + 1,
333
- column: character,
334
- },
361
+ location: binding?.location ?? this.nodeLocation(node, sourceFile, filePath),
335
362
  expression: node.getText(sourceFile),
336
- variableName: this.findAssignedVariable(node, sourceFile) || propName,
363
+ variableName: binding?.variableName ?? (this.findAssignedVariable(node, sourceFile) || propName),
364
+ declarationKey: binding?.declarationKey ?? null,
337
365
  });
338
366
  break;
339
367
  }
@@ -357,84 +385,273 @@ export class VulnerabilityDetector {
357
385
  }
358
386
  return null;
359
387
  }
388
+ findAssignedBinding(node, sourceFile, filePath, scope) {
389
+ let current = node.parent;
390
+ while (current) {
391
+ if (ts.isVariableDeclaration(current) && ts.isIdentifier(current.name)) {
392
+ return {
393
+ variableName: current.name.text,
394
+ declarationKey: nodeIdentityKey(current, sourceFile),
395
+ location: this.nodeLocation(current, sourceFile, filePath),
396
+ };
397
+ }
398
+ if (ts.isBinaryExpression(current) &&
399
+ isAssignmentOperator(current.operatorToken.kind) &&
400
+ ts.isIdentifier(current.left)) {
401
+ const decl = scope.resolveDeclaration(current.left.text);
402
+ return {
403
+ variableName: current.left.text,
404
+ declarationKey: decl ? nodeIdentityKey(decl, sourceFile) : null,
405
+ location: decl
406
+ ? this.nodeLocation(decl, sourceFile, filePath)
407
+ : this.nodeLocation(current.left, sourceFile, filePath),
408
+ };
409
+ }
410
+ current = current.parent;
411
+ }
412
+ return null;
413
+ }
414
+ nodeLocation(node, sourceFile, filePath) {
415
+ const { line, character } = sourceFile.getLineAndCharacterOfPosition(node.getStart(sourceFile));
416
+ return {
417
+ file: filePath,
418
+ line: line + 1,
419
+ column: character,
420
+ };
421
+ }
360
422
  /**
361
423
  * Track taint propagation through variable assignments.
424
+ * Uses a scope stack to resolve identifiers to their declaring nodes,
425
+ * keying taint entries by declaration identity instead of raw name.
362
426
  */
363
427
  trackTaint(sourceFile, filePath, sources, tainted) {
364
428
  // Initialize tainted variables from sources
429
+ // Sources don't have declaration keys yet — they'll be resolved during the walk
365
430
  for (const source of sources) {
366
431
  tainted.push({
367
432
  name: source.variableName,
433
+ declarationKey: source.declarationKey,
368
434
  sourceLocation: source.location,
369
435
  taintedAt: source.location,
370
436
  });
371
437
  }
438
+ const scope = new ScopeStack();
372
439
  // Track taint through assignments
373
440
  const visit = (node) => {
441
+ const isScope = isScopeNode(node);
442
+ if (isScope)
443
+ scope.enterScope(node);
444
+ // Register all declaration types (var/let/const, destructuring, params, catch)
445
+ registerNodeDeclarations(node, scope);
446
+ // Resolve declaration keys for initial source entries when we encounter
447
+ // their declaring variable. This ensures taint entries for `const userInput = req.body.data`
448
+ // get a proper declarationKey so scope-based matching works in findTaintInExpression.
449
+ // Match by BOTH name AND source location to avoid assigning the wrong key when
450
+ // the same variable name is declared in multiple scopes (e.g., two handlers each
451
+ // doing `const data = req.body.data`).
452
+ if (ts.isVariableDeclaration(node) && ts.isIdentifier(node.name)) {
453
+ const varName = node.name.text;
454
+ const declKey = nodeIdentityKey(node, sourceFile);
455
+ const declStart = node.getStart();
456
+ const declEnd = node.getEnd();
457
+ const { line: declStartLine } = sourceFile.getLineAndCharacterOfPosition(declStart);
458
+ const { line: declEndLine } = sourceFile.getLineAndCharacterOfPosition(declEnd);
459
+ for (const entry of tainted) {
460
+ if (entry.name === varName &&
461
+ entry.declarationKey === null &&
462
+ entry.taintedAt.file === filePath) {
463
+ // Check the source falls within the declaration's line range
464
+ // (handles multi-line initializers like `const x =\n req.body.y`)
465
+ const srcLine = entry.taintedAt.line - 1; // zero-based
466
+ if (srcLine < declStartLine || srcLine > declEndLine) {
467
+ continue;
468
+ }
469
+ // When column data is available, verify via absolute position
470
+ // to prevent mismatches when two same-named variables share a line
471
+ if (entry.taintedAt.column !== undefined) {
472
+ const sourceAbsPos = ts.getPositionOfLineAndCharacter(sourceFile, srcLine, entry.taintedAt.column);
473
+ if (sourceAbsPos < declStart || sourceAbsPos >= declEnd) {
474
+ continue;
475
+ }
476
+ }
477
+ entry.declarationKey = declKey;
478
+ }
479
+ }
480
+ }
481
+ // Resolve declaration keys for taint entries created by assignment expressions
482
+ // (e.g., `let q; q = req.body.query;` or `q += req.body.query;`).
483
+ // The taint source line falls within the BinaryExpression span, not within
484
+ // a VariableDeclaration, so the block above won't match.
485
+ // We resolve the LHS identifier via the scope stack.
486
+ if (ts.isBinaryExpression(node) &&
487
+ isAssignmentOperator(node.operatorToken.kind) &&
488
+ ts.isIdentifier(node.left)) {
489
+ const varName = node.left.text;
490
+ const assignStart = node.getStart();
491
+ const assignEnd = node.getEnd();
492
+ const { line: assignStartLine } = sourceFile.getLineAndCharacterOfPosition(assignStart);
493
+ const { line: assignEndLine } = sourceFile.getLineAndCharacterOfPosition(assignEnd);
494
+ for (const entry of tainted) {
495
+ if (entry.name === varName &&
496
+ entry.declarationKey === null &&
497
+ entry.taintedAt.file === filePath) {
498
+ const srcLine = entry.taintedAt.line - 1; // zero-based
499
+ if (srcLine < assignStartLine || srcLine > assignEndLine)
500
+ continue;
501
+ const decl = scope.resolveDeclaration(varName);
502
+ if (decl) {
503
+ entry.declarationKey = nodeIdentityKey(decl, sourceFile);
504
+ }
505
+ }
506
+ }
507
+ }
374
508
  if (ts.isVariableDeclaration(node) && ts.isIdentifier(node.name) && node.initializer) {
375
509
  const varName = node.name.text;
376
- const taintSource = this.findTaintInExpression(node.initializer, tainted, sourceFile);
510
+ const taintSource = this.findTaintInExpression(node.initializer, tainted, sourceFile, scope);
377
511
  if (taintSource) {
378
512
  const { line, character } = sourceFile.getLineAndCharacterOfPosition(node.getStart());
513
+ const declKey = nodeIdentityKey(node, sourceFile);
379
514
  tainted.push({
380
515
  name: varName,
516
+ declarationKey: declKey,
381
517
  sourceLocation: taintSource.sourceLocation,
382
518
  taintedAt: { file: filePath, line: line + 1, column: character },
383
519
  });
384
520
  }
385
521
  }
386
522
  if (ts.isBinaryExpression(node) &&
387
- node.operatorToken.kind === ts.SyntaxKind.EqualsToken &&
523
+ isAssignmentOperator(node.operatorToken.kind) &&
388
524
  ts.isIdentifier(node.left)) {
389
525
  const varName = node.left.text;
390
- const taintSource = this.findTaintInExpression(node.right, tainted, sourceFile);
526
+ const taintSource = this.findTaintInExpression(node.right, tainted, sourceFile, scope);
391
527
  if (taintSource) {
392
528
  const { line, character } = sourceFile.getLineAndCharacterOfPosition(node.getStart());
529
+ // Resolve the LHS to its declaration
530
+ const decl = scope.resolveDeclaration(varName);
531
+ const declKey = decl ? nodeIdentityKey(decl, sourceFile) : null;
393
532
  tainted.push({
394
533
  name: varName,
534
+ declarationKey: declKey,
395
535
  sourceLocation: taintSource.sourceLocation,
396
536
  taintedAt: { file: filePath, line: line + 1, column: character },
397
537
  });
398
538
  }
399
539
  }
400
540
  ts.forEachChild(node, visit);
541
+ if (isScope)
542
+ scope.leaveScope();
401
543
  };
402
544
  visit(sourceFile);
403
545
  }
404
546
  /**
405
547
  * Find if an expression uses a tainted variable.
548
+ * Resolves identifiers to their declaring nodes via the scope stack,
549
+ * then matches by declaration identity key rather than raw name.
550
+ * Falls back to name-based matching for taint entries without a declaration key
551
+ * (e.g., initial source entries that weren't resolved during the walk).
406
552
  */
407
- findTaintInExpression(node, tainted, _sourceFile) {
553
+ findTaintInExpression(node, tainted, sourceFile, scope) {
408
554
  if (ts.isIdentifier(node)) {
409
- return tainted.find((t) => t.name === node.text) || null;
555
+ if (scope) {
556
+ const decl = scope.resolveDeclaration(node.text);
557
+ if (decl) {
558
+ // Scope resolved the identifier to a specific declaration.
559
+ // Only check taint entries that match this exact declaration.
560
+ // Do NOT fall back to name-based matching — scope resolution is authoritative.
561
+ const declKey = nodeIdentityKey(decl, sourceFile);
562
+ return tainted.find((t) => t.declarationKey === declKey) || null;
563
+ }
564
+ }
565
+ // Fallback: name-based match ONLY when scope could not resolve the identifier
566
+ // (undeclared global, no scope stack available, or identifier not found in any scope)
567
+ return tainted.find((t) => t.declarationKey === null && t.name === node.text) || null;
410
568
  }
411
569
  let found = null;
412
570
  node.forEachChild((child) => {
413
571
  if (!found) {
414
- found = this.findTaintInExpression(child, tainted, _sourceFile);
572
+ found = this.findTaintInExpression(child, tainted, sourceFile, scope);
415
573
  }
416
574
  });
417
575
  return found;
418
576
  }
419
577
  /**
420
578
  * Find the affected variable for a sink.
579
+ *
580
+ * Parses the sink's AST sub-tree to find identifiers, resolves each to its
581
+ * declaration via the scope stack, and matches against tainted entries by
582
+ * declaration identity key. Falls back to name-based matching for taint
583
+ * entries without a declaration key.
421
584
  */
422
585
  findAffectedVariable(sink, tainted, sourceFile) {
423
- // Parse the sink expression to find referenced variables
586
+ // Build a scope stack to resolve identifiers in the sink
587
+ const scope = new ScopeStack();
588
+ const sinkLine = sink.location.line; // 1-based
589
+ // Collect all identifier names referenced in the sink expression text.
590
+ // We need to find the AST node for the sink and walk its identifiers.
591
+ let sinkNode = null;
592
+ const findSinkNode = (node) => {
593
+ const isScope = isScopeNode(node);
594
+ if (isScope)
595
+ scope.enterScope(node);
596
+ // Register all declaration types
597
+ registerNodeDeclarations(node, scope);
598
+ // Check if this node matches the sink location
599
+ const { line } = sourceFile.getLineAndCharacterOfPosition(node.getStart(sourceFile));
600
+ if (line + 1 === sinkLine && node.getText(sourceFile) === sink.expression) {
601
+ sinkNode = node;
602
+ }
603
+ ts.forEachChild(node, findSinkNode);
604
+ if (isScope)
605
+ scope.leaveScope();
606
+ };
607
+ findSinkNode(sourceFile);
608
+ // Walk identifiers in the sink node and match against tainted declarations
609
+ if (sinkNode) {
610
+ // Re-walk up to and including the sink node to have scope in correct state
611
+ const scope2 = new ScopeStack();
612
+ let result = null;
613
+ const walkForMatch = (node) => {
614
+ const isScope = isScopeNode(node);
615
+ if (isScope)
616
+ scope2.enterScope(node);
617
+ registerNodeDeclarations(node, scope2);
618
+ // If we found the sink node, search its identifiers
619
+ if (node === sinkNode) {
620
+ const match = this.findTaintInExpression(node, tainted, sourceFile, scope2);
621
+ if (match) {
622
+ result = match;
623
+ if (isScope)
624
+ scope2.leaveScope();
625
+ return true;
626
+ }
627
+ }
628
+ let found = false;
629
+ node.forEachChild((child) => {
630
+ if (!found) {
631
+ found = walkForMatch(child);
632
+ }
633
+ });
634
+ if (isScope)
635
+ scope2.leaveScope();
636
+ return found;
637
+ };
638
+ walkForMatch(sourceFile);
639
+ // Scope-based resolution is authoritative when the sink node was found.
640
+ // Return the result (which may be null) without falling through to text-based matching.
641
+ return result;
642
+ }
643
+ // Fallback: text-based matching ONLY for cases where AST node wasn't found.
644
+ // Uses escaped name to prevent regex metacharacter injection.
424
645
  const sinkText = sink.expression;
425
646
  for (const taintedVar of tainted) {
426
- // Check if the tainted variable is used in the sink
427
- // Trust: ANALYZED_CODE - Variable name extracted from analyzed source, not user input
428
- // Control: Word boundaries (\b) prevent pattern injection from identifier names
429
- // See docs/security/regex-threat-model.md
430
- // eslint-disable-next-line security/detect-non-literal-regexp -- Analyzed code identifier
431
- const varPattern = new RegExp(`\\b${taintedVar.name}\\b`);
647
+ const escaped = taintedVar.name.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
648
+ // eslint-disable-next-line security/detect-non-literal-regexp -- Escaped analyzed code identifier
649
+ const varPattern = new RegExp(`\\b${escaped}\\b`);
432
650
  if (varPattern.test(sinkText)) {
433
651
  return taintedVar;
434
652
  }
435
653
  }
436
654
  // Also check for common patterns where taint flows through function params
437
- // This is a simplified check - full taint tracking would be more complex
438
655
  const functionParams = this.extractFunctionParams(sourceFile, sink.location.line);
439
656
  for (const param of functionParams) {
440
657
  const taintedParam = tainted.find((t) => t.name === param);
@@ -1 +1 @@
1
- {"version":3,"file":"vulnerability-detector.js","sourceRoot":"","sources":["../../../src/agents/control_flow/vulnerability-detector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vulnerability-detector.js","sourceRoot":"","sources":["../../../src/agents/control_flow/vulnerability-detector.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../src/agents/opencode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,OAAO,KAAK,EAAE,WAAW,EAAgD,MAAM,YAAY,CAAC;AAqY5F,eAAO,MAAM,aAAa,EAAE,WAmE3B,CAAC"}
1
+ {"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../src/agents/opencode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,OAAO,KAAK,EAAE,WAAW,EAAgD,MAAM,YAAY,CAAC;AAwY5F,eAAO,MAAM,aAAa,EAAE,WAmE3B,CAAC"}
@@ -72,6 +72,9 @@ Focus on:
72
72
  - Performance issues
73
73
  - Code quality problems
74
74
 
75
+ ### Framework & Language Conventions
76
+ Do NOT flag: (1) Express 4-param error middleware unused _next, (2) identical query keys as double-fetching (React Query dedup), (3) Promise.allSettled iteration as "wrong order", (4) TypeScript _prefix unused params, (5) assertNever/exhaustive switch as missing error handling, (6) constants adjacent to their only usage as needing externalization.
77
+
75
78
  Return your findings as a JSON object. Do NOT include any text before or after the JSON.`;
76
79
  if (existsSync(PROMPT_PATH)) {
77
80
  try {
@@ -85,7 +88,7 @@ Return your findings as a JSON object. Do NOT include any text before or after t
85
88
  systemPrompt = `Current date (UTC): ${currentDate}\n\n${systemPrompt}`;
86
89
  const userPrompt = `## Files Changed
87
90
  ${files}
88
-
91
+ ${context.projectRules ? `\n## Project Rules\n\nThe following project rules/conventions apply:\n\n${context.projectRules}\n` : ''}${context.prDescription ? `\n## PR Description\n\nThe author describes this PR as:\n\n${context.prDescription}\n` : ''}
89
92
  ## Diff
90
93
  \`\`\`diff
91
94
  ${context.diffContent}
@@ -1 +1 @@
1
- {"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/agents/opencode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/agents/opencode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEhC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEhE,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,4CAA4C,CAAC,CAAC;AAE5F,MAAM,oBAAoB,GAAG;IAC3B,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,MAAM;IACN,IAAI;IACJ,MAAM;IACN,KAAK;IACL,KAAK;IACL,QAAQ;IACR,KAAK;IACL,QAAQ;IACR,MAAM;IACN,SAAS;CACV,CAAC;AAoBF;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAAC,OAAqB;IACpD,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;IAExC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;SACxB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC;SACrC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS,GAAG,CAAC;SAC3D,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,qFAAqF;IACrF,IAAI,YAAY,GAAG;;;;;;;;;;;;;;;;;;yFAkBoE,CAAC;IAExF,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,YAAY,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,+BAA+B;IAC/B,YAAY,GAAG,uBAAuB,WAAW,OAAO,YAAY,EAAE,CAAC;IAEvE,MAAM,UAAU,GAAG;EACnB,KAAK;EACL,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,2EAA2E,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,8DAA8D,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,EAAE;;;EAGtP,OAAO,CAAC,WAAW;;;;;;;;;;;;;;;;;;;wDAmBmC,CAAC;IAEvD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,GAAW;IAC9B,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,OAAO;YACV,OAAO,OAAO,CAAC;QACjB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB;YACE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa,CAC1B,OAAqB,EACrB,MAAc,EACd,KAAa;IAEb,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,UAAU,CAAC;IAE3B,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAChD,oBAAoB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CACzD,CAAC;IAEF,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,YAAY,CAAC;YAClB,OAAO;YACP,MAAM,EAAE,8BAA8B;YACtC,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,cAAc,EAAE,CAAC,EAAE;SACnE,CAAC,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACtC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,oBAAoB,GAAG,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAE3D,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAC3C,CAAC,UAAU,EAAE,EAAE,CACb,SAAS,CAAC,GAAG,EAAE,CACb,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YAC7B,KAAK;YACL,QAAQ,EAAE;gBACR,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE;gBACnC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;aAChC;YACD,eAAe,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;YACxC,GAAG,UAAU;YACb,WAAW,EAAE,GAAG;SACjB,CAAC,CACH,EACH,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAC3C,KAAK,CACN,CAAC;QAEF,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;QACtD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,UAAU,CAAC,4BAA4B,EAAE,cAAc,CAAC,gBAAgB,EAAE;gBAClF,OAAO;gBACP,KAAK,EAAE,qBAAqB;aAC7B,CAAC,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAqB,CAAC;QACvD,MAAM,QAAQ,GAAc,EAAE,CAAC;QAE/B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YACxC,QAAQ,CAAC,IAAI,CAAC;gBACZ,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC;gBACnC,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,OAAO,EAAE,GAAG,CAAC,QAAQ;gBACrB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,MAAM,EAAE,GAAG,CAAC,OAAO,IAAI,oBAAoB;gBAC3C,WAAW,EAAE,OAAO;aACrB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,uBAAuB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,EAAE,YAAY,IAAI,oBAAoB,CAAC;QACxE,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,EAAE,aAAa,IAAI,oBAAoB,CAAC;QAC3E,MAAM,gBAAgB,GAAG,QAAQ,CAAC,KAAK,EAAE,iBAAiB,IAAI,CAAC,CAAC;QAChE,MAAM,gBAAgB,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,OAAO,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC;QAE9F,OAAO,YAAY,CAAC;YAClB,OAAO;YACP,QAAQ;YACR,OAAO,EAAE;gBACP,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBAClC,cAAc,EAAE,cAAc,CAAC,MAAM;gBACrC,UAAU;gBACV,gBAAgB;aACjB;SACF,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,sDAAsD;QACtD,MAAM,UAAU,GACd,KAAK,YAAY,UAAU;YACzB,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,IAAI,UAAU,CACZ,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,sBAAsB,EAC/D,cAAc,CAAC,gBAAgB,EAC/B,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAClC,CAAC;QAER,OAAO,YAAY,CAAC;YAClB,OAAO;YACP,KAAK,EAAE,UAAU,CAAC,OAAO;YACzB,YAAY,EAAE,MAAM;YACpB,OAAO,EAAE;gBACP,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBAClC,cAAc,EAAE,CAAC;gBACjB,UAAU,EAAE,oBAAoB;aACjC;SACF,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,QAAQ,EAAE,CAAC,CAAC,KAAK,CACf,CAAC,CAAC,MAAM,CAAC;QACP,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC9C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACjC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC/B,CAAC,CACH;CACF,CAAC,CAAC;AAEH;;GAEG;AACH,KAAK,UAAU,gBAAgB,CAC7B,OAAqB,EACrB,MAAc,EACd,KAAa;IAEb,MAAM,OAAO,GAAG,UAAU,CAAC;IAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,sBAAsB;IACtB,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAChD,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACzC,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,YAAY,CAAC;YAClB,OAAO;YACP,MAAM,EAAE,8BAA8B;YACtC,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,cAAc,EAAE,CAAC,EAAE;SACnE,CAAC,CAAC;IACL,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,oBAAoB,GAAG,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAE3D,OAAO,CAAC,GAAG,CAAC,gDAAgD,KAAK,EAAE,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,sCAAsC,oBAAoB,EAAE,CAAC,CAAC;IAE1E,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAEzC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,CACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YACrB,KAAK;YACL,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,qBAAqB;YACvD,MAAM;YACN,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;SAC5C,CAAC,CACH,CAAC;QAEF,qCAAqC;QACrC,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QACpE,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAChD,MAAM,IAAI,UAAU,CAClB,uCAAuC,EACvC,cAAc,CAAC,gBAAgB,EAC/B;gBACE,OAAO;gBACP,KAAK,EAAE,qBAAqB;aAC7B,CACF,CAAC;QACJ,CAAC;QAED,0EAA0E;QAC1E,MAAM,MAAM,GAAG,iBAAiB,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAEhE,MAAM,MAAM,GAAG,uBAAuB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,UAAU,CAClB,6BAA6B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EACnD,cAAc,CAAC,WAAW,EAC1B,EAAE,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,CACxC,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAc,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC7D,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC;YACnC,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,GAAG,CAAC,QAAQ;YACrB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,MAAM,EAAE,GAAG,CAAC,OAAO,IAAI,2BAA2B;YAClD,WAAW,EAAE,OAAO;SACrB,CAAC,CAAC,CAAC;QAEJ,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,uBAAuB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC;QAC9E,yEAAyE;QACzE,MAAM,gBAAgB,GACpB,QAAQ,CAAC,KAAK,CAAC,YAAY,GAAG,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAC;QAEnF,OAAO,CAAC,GAAG,CAAC,iCAAiC,UAAU,eAAe,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAEzF,OAAO,YAAY,CAAC;YAClB,OAAO;YACP,QAAQ;YACR,OAAO,EAAE;gBACP,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBAClC,cAAc,EAAE,cAAc,CAAC,MAAM;gBACrC,UAAU;gBACV,gBAAgB;aACjB;SACF,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,sDAAsD;QACtD,MAAM,UAAU,GACd,KAAK,YAAY,UAAU;YACzB,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,IAAI,UAAU,CACZ,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB,EAClE,cAAc,CAAC,gBAAgB,EAC/B,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,CACrC,CAAC;QAER,OAAO,YAAY,CAAC;YAClB,OAAO;YACP,KAAK,EAAE,UAAU,CAAC,OAAO;YACzB,YAAY,EAAE,MAAM;YACpB,OAAO,EAAE;gBACP,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBAClC,cAAc,EAAE,CAAC;gBACjB,UAAU,EAAE,oBAAoB;aACjC;SACF,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAgB;IACxC,EAAE,EAAE,UAAU;IACd,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,IAAI;IAEb,QAAQ,CAAC,IAAc;QACrB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAC5C,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAAqB;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;QAE7B,4DAA4D;QAC5D,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;QAE7C,OAAO,CAAC,GAAG,CAAC,wBAAwB,QAAQ,YAAY,cAAc,EAAE,CAAC,CAAC;QAE1E,qCAAqC;QACrC,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,MAAM,YAAY,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAAC;gBACnD,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,6DAA6D;oBAC7D,OAAO,YAAY,CAAC;wBAClB,OAAO,EAAE,IAAI,CAAC,EAAE;wBAChB,KAAK,EAAE,wDAAwD;wBAC/D,YAAY,EAAE,WAAW;wBACzB,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,cAAc,EAAE,CAAC,EAAE;qBACnE,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;YACjE,CAAC;YAED,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,SAAS,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC;gBAC7C,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,OAAO,YAAY,CAAC;wBAClB,OAAO,EAAE,IAAI,CAAC,EAAE;wBAChB,KAAK,EAAE,kDAAkD;wBACzD,YAAY,EAAE,WAAW;wBACzB,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,cAAc,EAAE,CAAC,EAAE;qBACnE,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,aAAa,CAAC,OAAO,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;YAC3D,CAAC;YAED,KAAK,cAAc;gBACjB,oCAAoC;gBACpC,OAAO,YAAY,CAAC;oBAClB,OAAO,EAAE,IAAI,CAAC,EAAE;oBAChB,KAAK,EAAE,uDAAuD;oBAC9D,YAAY,EAAE,WAAW;oBACzB,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,cAAc,EAAE,CAAC,EAAE;iBACnE,CAAC,CAAC;YAEL;gBACE,2DAA2D;gBAC3D,OAAO,YAAY,CAAC;oBAClB,OAAO,EAAE,IAAI,CAAC,EAAE;oBAChB,KAAK,EAAE,uDAAuD,QAAQ,EAAE;oBACxE,YAAY,EAAE,WAAW;oBACzB,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,cAAc,EAAE,CAAC,EAAE;iBACnE,CAAC,CAAC;QACP,CAAC;IACH,CAAC;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pr_agent.d.ts","sourceRoot":"","sources":["../../src/agents/pr_agent.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAgD,MAAM,YAAY,CAAC;AAkK5F,eAAO,MAAM,YAAY,EAAE,WA0N1B,CAAC"}
1
+ {"version":3,"file":"pr_agent.d.ts","sourceRoot":"","sources":["../../src/agents/pr_agent.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAgD,MAAM,YAAY,CAAC;AAkK5F,eAAO,MAAM,YAAY,EAAE,WA6N1B,CAAC"}
@@ -153,7 +153,10 @@ export const prAgentAgent = {
153
153
  1. ALWAYS verify data flow before flagging a security sink. Only flag innerHTML, eval, dangerouslySetInnerHTML, or similar when user-controlled data actually flows into them. Hardcoded strings, template literals with internal variables, and caught Error objects are NOT security vulnerabilities.
154
154
  2. ALWAYS quote the exact code construct you are flagging — name the specific selector, function call, variable assignment, or element. If you cannot point to a specific line in the diff, do not report the finding.
155
155
  3. NEVER flag a pattern based on generic rules without verifying it applies to the specific context. Read the surrounding code, types, and comments before concluding something is an issue.
156
- 4. When uncertain about data flow or context (e.g., a function's return value is not visible in the diff), report at "info" severity with an explicit uncertainty qualifier: "Potential issue — verify that [specific concern]."`;
156
+ 4. When uncertain about data flow or context (e.g., a function's return value is not visible in the diff), report at "info" severity with an explicit uncertainty qualifier: "Potential issue — verify that [specific concern]."
157
+
158
+ ### Framework & Language Conventions
159
+ Do NOT flag: (1) Express 4-param error middleware unused _next, (2) identical query keys as double-fetching (React Query dedup), (3) Promise.allSettled iteration as "wrong order", (4) TypeScript _prefix unused params, (5) assertNever/exhaustive switch as missing error handling, (6) constants adjacent to their only usage as needing externalization.`;
157
160
  if (existsSync(PROMPT_PATH)) {
158
161
  try {
159
162
  systemPrompt = await readFile(PROMPT_PATH, 'utf-8');
@@ -171,7 +174,7 @@ export const prAgentAgent = {
171
174
  .join('\n');
172
175
  const userPrompt = `## Files Changed
173
176
  ${fileSummary}
174
-
177
+ ${context.projectRules ? `\n## Project Rules\n\nThe following project rules/conventions apply:\n\n${context.projectRules}\n` : ''}${context.prDescription ? `\n## PR Description\n\nThe author describes this PR as:\n\n${context.prDescription}\n` : ''}
175
178
  ## Diff Content
176
179
  \`\`\`diff
177
180
  ${context.diffContent}