@urateam/core 0.1.34 → 0.1.36

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 (40) hide show
  1. package/dist/__tests__/audit-immutability.test.js +7 -0
  2. package/dist/__tests__/audit-immutability.test.js.map +1 -1
  3. package/dist/__tests__/auto-deep-review.test.d.ts +2 -0
  4. package/dist/__tests__/auto-deep-review.test.d.ts.map +1 -0
  5. package/dist/__tests__/auto-deep-review.test.js +250 -0
  6. package/dist/__tests__/auto-deep-review.test.js.map +1 -0
  7. package/dist/__tests__/review-convention-prompt.test.d.ts +2 -0
  8. package/dist/__tests__/review-convention-prompt.test.d.ts.map +1 -0
  9. package/dist/__tests__/review-convention-prompt.test.js +142 -0
  10. package/dist/__tests__/review-convention-prompt.test.js.map +1 -0
  11. package/dist/audit/events.d.ts +22 -0
  12. package/dist/audit/events.d.ts.map +1 -1
  13. package/dist/audit/events.js +21 -0
  14. package/dist/audit/events.js.map +1 -1
  15. package/dist/executor/prompt/templates.d.ts.map +1 -1
  16. package/dist/executor/prompt/templates.js +6 -3
  17. package/dist/executor/prompt/templates.js.map +1 -1
  18. package/dist/executor/review/review-prompt.d.ts.map +1 -1
  19. package/dist/executor/review/review-prompt.js +8 -2
  20. package/dist/executor/review/review-prompt.js.map +1 -1
  21. package/dist/pipeline/auto-deep-review.d.ts +70 -0
  22. package/dist/pipeline/auto-deep-review.d.ts.map +1 -0
  23. package/dist/pipeline/auto-deep-review.js +86 -0
  24. package/dist/pipeline/auto-deep-review.js.map +1 -0
  25. package/dist/pipeline/runner.d.ts.map +1 -1
  26. package/dist/pipeline/runner.js +71 -8
  27. package/dist/pipeline/runner.js.map +1 -1
  28. package/dist/security/index.d.ts +1 -1
  29. package/dist/security/index.d.ts.map +1 -1
  30. package/dist/security/index.js +1 -1
  31. package/dist/security/index.js.map +1 -1
  32. package/dist/security/review-checklist.d.ts +16 -1
  33. package/dist/security/review-checklist.d.ts.map +1 -1
  34. package/dist/security/review-checklist.js +85 -1
  35. package/dist/security/review-checklist.js.map +1 -1
  36. package/dist/types.d.ts +8 -0
  37. package/dist/types.d.ts.map +1 -1
  38. package/dist/types.js +26 -1
  39. package/dist/types.js.map +1 -1
  40. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { SECURITY_REVIEW_CHECKLIST, REVIEW_OUTPUT_FORMAT, } from "../../security/review-checklist.js";
1
+ import { SECURITY_REVIEW_CHECKLIST, PROJECT_CONVENTION_CHECKLIST, REVIEW_OUTPUT_FORMAT, } from "../../security/review-checklist.js";
2
2
  import { sanitize } from "./sanitizer.js";
3
3
  // ---------------------------------------------------------------------------
4
4
  // XML-escape helper (prevents reviewer content from breaking prompt structure)
@@ -292,9 +292,12 @@ ${handoffBlock(handoff)}
292
292
 
293
293
  ${SECURITY_REVIEW_CHECKLIST}
294
294
 
295
+ ${PROJECT_CONVENTION_CHECKLIST}
296
+
295
297
  Instructions:
296
- - Review all changed files for correctness, style, and security.
297
- - Apply the security checklist above to every change.
298
+ - Review all changed files for correctness, style, security, AND adherence to the Project Convention Checklist above.
299
+ - Apply the security checklist to every change.
300
+ - Apply the Tier 2 convention checklist to every change. The 9 categories (scratch-files, db-ddl-drift, audit-bypass-undocumented, credential-in-interface, spec-vs-impl, convention-execfile, convention-console, convention-throw, convention-as-any) are blocking-severity by default — use them verbatim in your \`ReviewFinding.category\` field so operators see one consistent vocabulary across the deterministic gates (Tiers 1a/1b/1c) and your findings.
298
301
  - IMPORTANT: Cross-reference the implementation against the acceptance criteria listed in the issue data above. For each criterion, verify there is corresponding code in the diff. If any acceptance criterion is NOT addressed by the code changes, report it as a blocking finding with category "incomplete-implementation".
299
302
  - DEAD CODE CHECK: For every new export (function, class, constant) in the changed files, use Grep to check if it is imported and called from at least one file other than its own test file. Re-exports in index/barrel files do NOT count as callers — there must be an actual invocation. Exception: side-effect-only registrations that run at import time are acceptable. If a new export has no callers outside its definition and test files, report it as a BLOCKING finding with category "dead-code" — the implementation is not wired into the pipeline and will have no effect at runtime.
300
303
  - DOCUMENTATION CHECK: If the changes introduce new configuration options, CLI flags, environment variables, or change existing behavior, check whether CLAUDE.md, README.md, or deploy/README.md were updated. If documentation was not updated, report it as a warning finding with category "missing-documentation".
@@ -1 +1 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/executor/prompt/templates.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,8EAA8E;AAC9E,+EAA+E;AAC/E,8EAA8E;AAE9E;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,OAAO,IAAI;SACR,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAE9E;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAAqB;IAClD,OAAO;;;;;YAKG,KAAK,CAAC,EAAE;SACX,KAAK,CAAC,KAAK;YACR,KAAK,CAAC,QAAQ;UAChB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM;;;EAGzC,KAAK,CAAC,WAAW;;;EAGjB,CAAC,GAAG,EAAE;QACJ,MAAM,WAAW,GAAG,CAAC,CAAC;QACtB,MAAM,QAAQ,GAAG,KAAK,CAAC,kBAAkB,IAAI,EAAE,CAAC;QAChD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC;QACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7E,OAAO,QAAQ,CAAC,MAAM,GAAG,WAAW;YAClC,CAAC,CAAC,KAAK,GAAG,eAAe,QAAQ,CAAC,MAAM,GAAG,WAAW,0BAA0B;YAChF,CAAC,CAAC,KAAK,CAAC;IACZ,CAAC,CAAC,EAAE;cACQ,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAgB;IAC/C,OAAO;cACK,IAAI,CAAC,GAAG;kBACJ,IAAI,CAAC,aAAa;gBACpB,IAAI,CAAC,WAAW;iBACf,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,qBAAqB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,wBAAwB,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE;gBACpL,CAAC;AACjB,CAAC;AAED,iKAAiK;AACjK,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAErC;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,OAAyB;IACpD,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAExB,6EAA6E;IAC7E,4EAA4E;IAC5E,sDAAsD;IACtD,MAAM,aAAa,GAAG,CAAC,CAAS,EAAE,EAAE,CAClC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,8BAA8B,EAAE,2BAA2B,CAAC,CAAC;IAEnF,IAAI,KAAK,GAAG;;;SAGL,OAAO,CAAC,KAAK;WACX,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC;YAC7B,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC;iBAC1B,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM;eAC9D,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM;eACnE,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC;IAEnF,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAChC,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC;QACvC,KAAK,IAAI,mBAAmB,EAAE,CAAC,MAAM,YAAY,EAAE,CAAC,MAAM,SAAS,CAAC;QACpE,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC;YACpB,MAAM,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,wBAAwB;gBAC1E,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,wBAAwB,CAAC,GAAG,aAAa;gBAC1E,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC;YAC1B,KAAK,IAAI,oBAAoB,aAAa,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,aAAa,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;QAChJ,CAAC;IACH,CAAC;IAED,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,IAAI,EAAE,CAAC;IACtG,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,YAAY,GAAG,gBAAgB,CAAC,GAAG,CACvC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,MAAM,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAC3J,CAAC;QACF,KAAK,IAAI,+BAA+B,gBAAgB,CAAC,MAAM,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAChG,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC;QACxF,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,KAAK,IAAI,QAAQ,OAAO,iCAAiC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,KAAK,IAAI,6BAA6B,CAAC;IACvC,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,OAAsB,EAAE,KAAa;IAC1D,MAAM,QAAQ,GACZ,OAAO,CAAC,IAAI;QACV,CAAC,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;QAC/E,CAAC,CAAC,SAAS,CAAC;IAEhB,IAAI,KAAK,GAAG,eAAe,KAAK,GAAG,CAAC,KAAK,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC;YAC1F,QAAQ;EAClB,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;IAE1B,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,KAAK,IAAI,kCAAkC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IACnF,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAgC;IAClE,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IAEzB,IAAI,KAAK,GAAG;;;MAGR,QAAQ,CAAC,KAAK;UACV,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAE5B,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QACxB,KAAK,IAAI,gCAAgC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;IAC5E,CAAC;IAED,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QACpC,KAAK,IAAI;EACX,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC;YACX,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC;iBACjB,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC;IAC/E,CAAC;IAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,KAAK,IAAI,+BAA+B,QAAQ,CAAC,QAAQ,CAAC,MAAM,YAAY,CAAC;QAC7E,KAAK,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACpF,CAAC;IAED,KAAK,IAAI,sBAAsB,CAAC;IAChC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E,MAAM,UAAU,cAAc,CAC5B,KAAqB,EACrB,IAAgB,EAChB,OAAyB;IAEzB,OAAO;;EAEP,cAAc,CAAC,KAAK,CAAC;;EAErB,gBAAgB,CAAC,IAAI,CAAC;;EAEtB,YAAY,CAAC,OAAO,CAAC;;;;;;;CAOtB,CAAC,IAAI,EAAE,CAAC;AACT,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,KAAqB,EACrB,IAAgB,EAChB,OAAyB;IAEzB,OAAO;;EAEP,cAAc,CAAC,KAAK,CAAC;;EAErB,gBAAgB,CAAC,IAAI,CAAC;;EAEtB,YAAY,CAAC,OAAO,CAAC;;;;;;CAMtB,CAAC,IAAI,EAAE,CAAC;AACT,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,KAAqB,EACrB,IAAgB,EAChB,OAAyB,EACzB,cAAsC,EACtC,aAAoC;IAEpC,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,oGAAoG,aAAa,CAAC,aAAa;;EAExI,gBAAgB,CAAC,IAAI,CAAC;;;;;;;;;;;;CAYvB,CAAC,IAAI,EAAE,CAAC;IACP,CAAC;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO;;EAET,cAAc,CAAC,KAAK,CAAC;;EAErB,gBAAgB,CAAC,IAAI,CAAC;;EAEtB,mBAAmB,CAAC,cAAc,CAAC;;EAEnC,YAAY,CAAC,OAAO,CAAC;;;kCAGW,cAAc,CAAC,QAAQ;6DACI,IAAI,CAAC,aAAa,mCAAmC,IAAI,CAAC,aAAa;;+DAErE,KAAK,CAAC,EAAE;+BACxC,cAAc,CAAC,QAAQ;kIAC4E,IAAI,CAAC,YAAY,aAAa,IAAI,CAAC,WAAW;;;;;;;CAO/K,CAAC,IAAI,EAAE,CAAC;IACP,CAAC;IAED,OAAO;;EAEP,cAAc,CAAC,KAAK,CAAC;;EAErB,gBAAgB,CAAC,IAAI,CAAC;;EAEtB,YAAY,CAAC,OAAO,CAAC;;;iCAGU,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,IAAI;;2BAE5B,IAAI,CAAC,YAAY;0BAClB,IAAI,CAAC,WAAW;;;;;;;;;;;;;;;;;EAiBxC,CAAC,KAAK,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,sCAAsC;;;;;CAK1H,CAAC,IAAI,EAAE,CAAC;AACT,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,KAAqB,EACrB,IAAgB,EAChB,OAAyB;IAEzB,OAAO;;EAEP,cAAc,CAAC,KAAK,CAAC;;EAErB,gBAAgB,CAAC,IAAI,CAAC;;EAEtB,YAAY,CAAC,OAAO,CAAC;;;6BAGM,IAAI,CAAC,WAAW;;;;;CAK5C,CAAC,IAAI,EAAE,CAAC;AACT,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,KAAqB,EACrB,IAAgB,EAChB,OAAyB;IAEzB,OAAO;;EAEP,cAAc,CAAC,KAAK,CAAC;;EAErB,gBAAgB,CAAC,IAAI,CAAC;;EAEtB,YAAY,CAAC,OAAO,CAAC;;EAErB,yBAAyB;;;;;;;;;;EAUzB,oBAAoB;CACrB,CAAC,IAAI,EAAE,CAAC;AACT,CAAC"}
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/executor/prompt/templates.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"review-prompt.d.ts","sourceRoot":"","sources":["../../../src/executor/review/review-prompt.ts"],"names":[],"mappings":"AACA,OAAO,EAAuB,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC/F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAmB1D,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,eAAe,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7C,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,uEAAuE;AACvE,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,WAAW,CAkDtE;AA0CD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,EAAE,CAqBhE"}
1
+ {"version":3,"file":"review-prompt.d.ts","sourceRoot":"","sources":["../../../src/executor/review/review-prompt.ts"],"names":[],"mappings":"AACA,OAAO,EAAuB,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAE/F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAwB1D,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,eAAe,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7C,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,uEAAuE;AACvE,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,WAAW,CAkDtE;AA0CD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,EAAE,CAqBhE"}
@@ -1,20 +1,26 @@
1
1
  import { z } from "zod";
2
2
  import { ReviewFindingSchema } from "../../types.js";
3
- const SYSTEM_PROMPT = `You are a careful code reviewer. Review the diff and changed files for issues in three dimensions:
3
+ import { PROJECT_CONVENTION_CHECKLIST } from "../../security/review-checklist.js";
4
+ const SYSTEM_PROMPT = `You are a careful code reviewer. Review the diff and changed files for issues in three dimensions plus the urateam project conventions enumerated below.
5
+
6
+ Primary dimensions:
4
7
  - reuse: duplication of existing code
5
8
  - quality: bugs, error-handling, type misuse, edge cases
6
9
  - efficiency: needless work, N+1 queries, hot-loop allocations
7
10
 
11
+ ${PROJECT_CONVENTION_CHECKLIST}
12
+
8
13
  Output exactly one JSON object and nothing else, matching this shape:
9
14
  { "findings": [
10
15
  { "severity": "blocking" | "warning" | "suggestion",
11
16
  "file": "path/to/file.ext",
12
17
  "line": <integer>,
13
- "category": "reuse" | "quality" | "efficiency",
18
+ "category": "reuse" | "quality" | "efficiency" | "scratch-files" | "db-ddl-drift" | "audit-bypass-undocumented" | "credential-in-interface" | "spec-vs-impl" | "convention-execfile" | "convention-console" | "convention-throw" | "convention-as-any",
14
19
  "description": "<concise>",
15
20
  "fix": "<concrete suggestion>" }
16
21
  ]
17
22
  }
23
+ Use the Tier 2 project-convention category strings VERBATIM for convention violations — operators see one consistent vocabulary across both the main review agent and the OpenRouter fanout.
18
24
  Return an empty findings array if you find nothing.`;
19
25
  /** Cheap heuristic: ~4 chars/token. Good enough to gate truncation. */
20
26
  export function estimateTokens(s) {
@@ -1 +1 @@
1
- {"version":3,"file":"review-prompt.js","sourceRoot":"","sources":["../../../src/executor/review/review-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAA4C,MAAM,gBAAgB,CAAC;AAG/F,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;oDAe8B,CAAC;AAerD,uEAAuE;AACvE,MAAM,UAAU,cAAc,CAAC,CAAS;IACtC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAuB;IACvD,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IACvD,MAAM,WAAW,GAAG;QAClB,WAAW;QACX,OAAO,CAAC,OAAO,CAAC,WAAW;QAC3B,EAAE;QACF,gBAAgB;QAChB,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QACnD,EAAE;QACF,gBAAgB;QAChB,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QACnD,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,MAAM,SAAS,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAErE,uEAAuE;IACvE,MAAM,WAAW,GACf,cAAc,CAAC,aAAa,CAAC;QAC7B,cAAc,CAAC,WAAW,CAAC;QAC3B,cAAc,CAAC,SAAS,CAAC,CAAC;IAC5B,IAAI,SAAS,GAAG,cAAc,GAAG,WAAW,CAAC;IAC7C,IAAI,SAAS,GAAG,CAAC;QAAE,SAAS,GAAG,CAAC,CAAC;IACjC,MAAM,aAAa,GAAiB,EAAE,CAAC;IACvC,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,IAAI,YAAY,CAAC;QAClE,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,IAAI,IAAI,SAAS,EAAE,CAAC;YACtB,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACtB,SAAS,IAAI,IAAI,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,cAAc,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,aAAa;SAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,IAAI,YAAY,CAAC;SAC/D,IAAI,CAAC,EAAE,CAAC,CAAC;IAEZ,MAAM,WAAW,GAAG,GAAG,WAAW,KAAK,SAAS,KAAK,UAAU,EAAE,CAAC;IAElE,OAAO;QACL,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE;YAC1C,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE;SACvC;QACD,oBAAoB,EAAE,WAAW,GAAG,cAAc,CAAC,UAAU,CAAC;QAC9D,cAAc;KACf,CAAC;AACJ,CAAC;AAED,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC;CACvC,CAAC,CAAC;AAEH,sEAAsE;AACtE,SAAS,sBAAsB,CAAC,CAAS;IACvC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;IACf,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACf,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBACf,8DAA8D;gBAC9D,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;oBACjB,CAAC,IAAI,CAAC,CAAC,CAAE,oBAAoB;gBAC/B,CAAC;qBAAM,CAAC;oBACN,CAAC,IAAI,CAAC,CAAC,CAAE,+BAA+B;gBAC1C,CAAC;gBACD,SAAS;YACX,CAAC;YACD,IAAI,CAAC,KAAK,GAAG;gBAAE,QAAQ,GAAG,KAAK,CAAC;YAChC,SAAS;QACX,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACd,QAAQ,GAAG,IAAI,CAAC;YAChB,SAAS;QACX,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACd,IAAI,KAAK,KAAK,CAAC;gBAAE,KAAK,GAAG,CAAC,CAAC;YAC3B,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;aAAM,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACrB,KAAK,IAAI,CAAC,CAAC;YACX,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,MAAM,MAAM,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM;QACT,MAAM,IAAI,KAAK,CACb,qEAAqE,CACtE,CAAC;IACJ,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,kDAAmD,CAAW,CAAC,OAAO,EAAE,CACzE,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,sBAAsB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACxD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,kDAAkD,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CACzE,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"review-prompt.js","sourceRoot":"","sources":["../../../src/executor/review/review-prompt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Tier 3 — auto-deep-review thresholds.
3
+ *
4
+ * Promotes the deep-review fanout from opt-in (`config.deepReviewPasses ?? 0`)
5
+ * to default-on for PRs above heuristic thresholds. The decision logic lives
6
+ * here as pure functions; the runner reads `shouldAutoDeepReview(...)` and
7
+ * bumps `deepReviewPasses` to at least 1 when the heuristic fires.
8
+ *
9
+ * Three thresholds — any one trips:
10
+ * • newFiles ≥ N — proxy for "non-trivial scope"
11
+ * • totalLines ≥ N — measures actual diff size
12
+ * • newPublicExports ≥ N — surface-area changes (new functions/types)
13
+ *
14
+ * Defaults: { newFiles: 5, totalLines: 200, newPublicExports: 2 } — per the
15
+ * operator brief.
16
+ *
17
+ * Escape hatches:
18
+ * 1. `URATEAM_DISABLE_AUTO_DEEP_REVIEW=true` short-circuits the heuristic.
19
+ * 2. Per-pipeline `autoDeepReviewThresholds: { newFiles: 999999, ... }`
20
+ * raises the bar so the heuristic effectively never fires.
21
+ *
22
+ * Deep-review findings remain blocking-by-default (Tier 3 design); the
23
+ * existing review-fix loop already escalates blocking findings, so no
24
+ * runner-side blocking-flag mechanism is needed beyond bumping
25
+ * `deepReviewPasses`.
26
+ */
27
+ export interface AutoDeepReviewThresholds {
28
+ /** Number of files changed (added + modified + deleted) in the diff. */
29
+ changedFiles: number;
30
+ /** Sum of insertions + deletions across the diff. */
31
+ totalLines: number;
32
+ /** Number of newly-added top-level `export` lines under source paths. */
33
+ newPublicExports: number;
34
+ }
35
+ export declare const DEFAULT_AUTO_DEEP_REVIEW_THRESHOLDS: AutoDeepReviewThresholds;
36
+ export interface DiffMetrics {
37
+ /** Number of files changed (added + modified + deleted) in the diff. The
38
+ * `git diff --stat` "N files changed" line counts all three; the threshold
39
+ * is named accordingly to avoid the older `newFiles` misnomer the brief
40
+ * used. */
41
+ changedFiles: number;
42
+ /** Sum of insertions and deletions across the diff. */
43
+ totalLines: number;
44
+ /** Count of newly-added top-level `export` lines under monorepo
45
+ * `packages/<pkg>/src/` OR repo-root `src/` (for non-monorepo
46
+ * consumers), excluding `__tests__/`. Counts named exports (`export
47
+ * function`, `export class`, ...), default exports (`export default
48
+ * ...`), named re-exports (`export { foo }`), and wildcard re-exports
49
+ * (`export * from`). */
50
+ newPublicExports: number;
51
+ }
52
+ /**
53
+ * Pure parser: scans a unified diff for newly-added `export` declarations
54
+ * under `packages/<pkg>/src/` (excluding `__tests__/`). Used by Tier 3's heuristic
55
+ * to decide whether the diff introduces enough new public surface area to
56
+ * warrant a deep review.
57
+ *
58
+ * Counts only LINES — does not deduplicate by symbol. The heuristic is
59
+ * "approximately how much new public surface is in the diff", not "exact
60
+ * symbol count", so per-line counting is the right level.
61
+ */
62
+ export declare function countNewPublicExports(diff: string): number;
63
+ /**
64
+ * Decide whether to force an auto-deep-review pass. Honors the env-var
65
+ * escape hatch first; otherwise compares each metric against its threshold
66
+ * (any one tripping is sufficient — these are alternative triggers, not
67
+ * AND-ed conditions).
68
+ */
69
+ export declare function shouldAutoDeepReview(metrics: DiffMetrics, thresholds?: AutoDeepReviewThresholds): boolean;
70
+ //# sourceMappingURL=auto-deep-review.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-deep-review.d.ts","sourceRoot":"","sources":["../../src/pipeline/auto-deep-review.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,MAAM,WAAW,wBAAwB;IACvC,wEAAwE;IACxE,YAAY,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,mCAAmC,EAAE,wBAIjD,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B;;;gBAGY;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;6BAKyB;IACzB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAiBD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAoB1D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,WAAW,EACpB,UAAU,GAAE,wBAA8D,GACzE,OAAO,CAOT"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Tier 3 — auto-deep-review thresholds.
3
+ *
4
+ * Promotes the deep-review fanout from opt-in (`config.deepReviewPasses ?? 0`)
5
+ * to default-on for PRs above heuristic thresholds. The decision logic lives
6
+ * here as pure functions; the runner reads `shouldAutoDeepReview(...)` and
7
+ * bumps `deepReviewPasses` to at least 1 when the heuristic fires.
8
+ *
9
+ * Three thresholds — any one trips:
10
+ * • newFiles ≥ N — proxy for "non-trivial scope"
11
+ * • totalLines ≥ N — measures actual diff size
12
+ * • newPublicExports ≥ N — surface-area changes (new functions/types)
13
+ *
14
+ * Defaults: { newFiles: 5, totalLines: 200, newPublicExports: 2 } — per the
15
+ * operator brief.
16
+ *
17
+ * Escape hatches:
18
+ * 1. `URATEAM_DISABLE_AUTO_DEEP_REVIEW=true` short-circuits the heuristic.
19
+ * 2. Per-pipeline `autoDeepReviewThresholds: { newFiles: 999999, ... }`
20
+ * raises the bar so the heuristic effectively never fires.
21
+ *
22
+ * Deep-review findings remain blocking-by-default (Tier 3 design); the
23
+ * existing review-fix loop already escalates blocking findings, so no
24
+ * runner-side blocking-flag mechanism is needed beyond bumping
25
+ * `deepReviewPasses`.
26
+ */
27
+ export const DEFAULT_AUTO_DEEP_REVIEW_THRESHOLDS = {
28
+ changedFiles: 5,
29
+ totalLines: 200,
30
+ newPublicExports: 2,
31
+ };
32
+ const EXPORT_REGEX = /^\+export\s+(default\s+)?(async\s+)?(function|class|const|let|interface|type|enum|\{|\*)/;
33
+ const PATH_HEADER_REGEX = /^\+\+\+ b\/(.+)$/;
34
+ /** Source paths that count toward `newPublicExports`:
35
+ * - `packages/<pkg>/src/...` — monorepo case
36
+ * - `src/...` — non-monorepo case (single-package projects)
37
+ * Both exclude `__tests__/` (tests aren't public surface).
38
+ */
39
+ const SOURCE_PATH_MONOREPO = /^packages\/[^/]+\/src\//;
40
+ const SOURCE_PATH_SINGLE = /^src\//;
41
+ const TESTS_PATH_FRAGMENT = "/__tests__/";
42
+ /**
43
+ * Pure parser: scans a unified diff for newly-added `export` declarations
44
+ * under `packages/<pkg>/src/` (excluding `__tests__/`). Used by Tier 3's heuristic
45
+ * to decide whether the diff introduces enough new public surface area to
46
+ * warrant a deep review.
47
+ *
48
+ * Counts only LINES — does not deduplicate by symbol. The heuristic is
49
+ * "approximately how much new public surface is in the diff", not "exact
50
+ * symbol count", so per-line counting is the right level.
51
+ */
52
+ export function countNewPublicExports(diff) {
53
+ let currentFile = null;
54
+ let currentFileInScope = false;
55
+ let count = 0;
56
+ for (const line of diff.split("\n")) {
57
+ const pathMatch = PATH_HEADER_REGEX.exec(line);
58
+ if (pathMatch) {
59
+ currentFile = pathMatch[1];
60
+ currentFileInScope =
61
+ (SOURCE_PATH_MONOREPO.test(currentFile) ||
62
+ SOURCE_PATH_SINGLE.test(currentFile)) &&
63
+ !currentFile.includes(TESTS_PATH_FRAGMENT);
64
+ continue;
65
+ }
66
+ if (!currentFile || !currentFileInScope)
67
+ continue;
68
+ if (EXPORT_REGEX.test(line))
69
+ count++;
70
+ }
71
+ return count;
72
+ }
73
+ /**
74
+ * Decide whether to force an auto-deep-review pass. Honors the env-var
75
+ * escape hatch first; otherwise compares each metric against its threshold
76
+ * (any one tripping is sufficient — these are alternative triggers, not
77
+ * AND-ed conditions).
78
+ */
79
+ export function shouldAutoDeepReview(metrics, thresholds = DEFAULT_AUTO_DEEP_REVIEW_THRESHOLDS) {
80
+ if (process.env.URATEAM_DISABLE_AUTO_DEEP_REVIEW === "true")
81
+ return false;
82
+ return (metrics.changedFiles >= thresholds.changedFiles ||
83
+ metrics.totalLines >= thresholds.totalLines ||
84
+ metrics.newPublicExports >= thresholds.newPublicExports);
85
+ }
86
+ //# sourceMappingURL=auto-deep-review.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-deep-review.js","sourceRoot":"","sources":["../../src/pipeline/auto-deep-review.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAWH,MAAM,CAAC,MAAM,mCAAmC,GAA6B;IAC3E,YAAY,EAAE,CAAC;IACf,UAAU,EAAE,GAAG;IACf,gBAAgB,EAAE,CAAC;CACpB,CAAC;AAmBF,MAAM,YAAY,GAChB,0FAA0F,CAAC;AAE7F,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAE7C;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,yBAAyB,CAAC;AACvD,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AAEpC,MAAM,mBAAmB,GAAG,aAAa,CAAC;AAE1C;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,IAAI,WAAW,GAAkB,IAAI,CAAC;IACtC,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAC/B,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,SAAS,EAAE,CAAC;YACd,WAAW,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;YAC5B,kBAAkB;gBAChB,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC;oBACrC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBACvC,CAAC,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;YAC7C,SAAS;QACX,CAAC;QACD,IAAI,CAAC,WAAW,IAAI,CAAC,kBAAkB;YAAE,SAAS;QAClD,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,KAAK,EAAE,CAAC;IACvC,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAoB,EACpB,aAAuC,mCAAmC;IAE1E,IAAI,OAAO,CAAC,GAAG,CAAC,gCAAgC,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1E,OAAO,CACL,OAAO,CAAC,YAAY,IAAI,UAAU,CAAC,YAAY;QAC/C,OAAO,CAAC,UAAU,IAAI,UAAU,CAAC,UAAU;QAC3C,OAAO,CAAC,gBAAgB,IAAI,UAAU,CAAC,gBAAgB,CACxD,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/pipeline/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/pipeline/runner.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ import { homedir } from "node:os";
21
21
  import { execFile as execFileCb } from "node:child_process";
22
22
  import { promisify } from "node:util";
23
23
  const execFileAsync = promisify(execFileCb);
24
- import { cloneRepo, createWorktree, deleteWorktree, pushBranch, pushBranchForce, choosePushStrategy, rebaseBranch, abortRebase, autoCommitChanges, getAgentCommits, createPRViaCli, mergePRViaCli, getDiffLineCount, getChangedFiles, checkDuplicateBranch, branchName, pruneWorktreesInRepoDirs, } from "../repo/git.js";
24
+ import { cloneRepo, createWorktree, deleteWorktree, pushBranch, pushBranchForce, choosePushStrategy, rebaseBranch, abortRebase, autoCommitChanges, getAgentCommits, createPRViaCli, mergePRViaCli, getDiffLineCount, getChangedFiles, checkDuplicateBranch, branchName, pruneWorktreesInRepoDirs, gitExecSafe, } from "../repo/git.js";
25
25
  import { addPRComment, createGitHubClient, createPR, prHasCommentStartingWith, } from "../repo/github.js";
26
26
  import { createMR, buildAuthenticatedUrl, } from "../repo/gitlab.js";
27
27
  import { parseRepoUrl, parseGitLabUrl } from "../repo/config.js";
@@ -36,11 +36,12 @@ import { createLogger, runWithLogContext } from "../logger.js";
36
36
  import { isTransientError, MAX_TRANSIENT_RETRIES } from "./error-classifier.js";
37
37
  import { evaluatePolicyGates } from "../policy/evaluate.js";
38
38
  import { buildReviewerRequest, verifyApprovalsReceived } from "../policy/index.js";
39
- import { logAuditEvent, policyReviewersRequestedEvent, reviewFanoutFallbackUsedEvent, pipelineScratchFilesBlockedEvent, pipelineTypecheckFailedEvent, pipelineSpecVsImplFailedEvent, } from "../audit/index.js";
39
+ import { logAuditEvent, policyReviewersRequestedEvent, reviewFanoutFallbackUsedEvent, pipelineScratchFilesBlockedEvent, pipelineTypecheckFailedEvent, pipelineSpecVsImplFailedEvent, pipelineAutoDeepReviewBumpedEvent, } from "../audit/index.js";
40
40
  import { matchesAnyPattern } from "../util/glob.js";
41
41
  import { findScratchFiles } from "./scratch-file-guard.js";
42
42
  import { runTypecheck } from "./typecheck-gate.js";
43
43
  import { checkSpecVsImpl } from "./spec-vs-impl-gate.js";
44
+ import { countNewPublicExports, shouldAutoDeepReview, DEFAULT_AUTO_DEEP_REVIEW_THRESHOLDS, } from "./auto-deep-review.js";
44
45
  import { startFeedbackPipeline, } from "./feedback-pipeline.js";
45
46
  // Re-export from extracted module so existing callers (including tests) still
46
47
  // find buildReviewFeedbackContext at pipeline/runner.js without changing their
@@ -1051,13 +1052,62 @@ export class PipelineRunner {
1051
1052
  // run 3 parallel sub-agents (reuse, quality, efficiency) to harden code
1052
1053
  // quality. Configurable via deepReviewPasses (default 0/disabled) and
1053
1054
  // maxDeepReviewPasses (hard cap, default 3).
1054
- const effectiveDeepReviewPasses = isFeatureLicensed("deep-review")
1055
+ let effectiveDeepReviewPasses = isFeatureLicensed("deep-review")
1055
1056
  ? config.deepReviewPasses ?? 0
1056
1057
  : 0;
1057
- const deepReviewPasses = effectiveDeepReviewPasses;
1058
- const maxDeepReviewPasses = config.maxDeepReviewPasses ?? 3;
1059
1058
  const hasReview = config.stages.includes("review");
1060
1059
  const hasImplement = config.stages.includes("implement");
1060
+ // Tier 3 — auto-bump deepReviewPasses to ≥1 when the agent's diff trips
1061
+ // any of the heuristic thresholds (changedFiles / totalLines /
1062
+ // newPublicExports). The agentic deep-review provider runs on Claude
1063
+ // and is enabled by `deep-review` license alone — no OpenRouter env
1064
+ // vars required. OpenRouter fanout is an additional provider that
1065
+ // runs on top when its env vars are set, but the bump is useful
1066
+ // regardless because the agentic provider always activates.
1067
+ if (isFeatureLicensed("deep-review") && hasReview && hasImplement) {
1068
+ try {
1069
+ const diffOut = await gitExecSafe(["diff", "--stat", `origin/${repoConfig.defaultBranch}...HEAD`], worktreePath);
1070
+ // "N files changed, X insertions(+), Y deletions(-)" — last line.
1071
+ // git diff --stat reports changed (added + modified + deleted) — the
1072
+ // field is named `changedFiles` to match.
1073
+ const tail = diffOut.split("\n").filter(Boolean).pop() ?? "";
1074
+ const changedFilesMatch = /^\s*(\d+)\s+files? changed/.exec(tail);
1075
+ const insertionsMatch = /(\d+)\s+insertion/.exec(tail);
1076
+ const deletionsMatch = /(\d+)\s+deletion/.exec(tail);
1077
+ const changedFiles = changedFilesMatch ? Number(changedFilesMatch[1]) : 0;
1078
+ const totalLines = (insertionsMatch ? Number(insertionsMatch[1]) : 0) +
1079
+ (deletionsMatch ? Number(deletionsMatch[1]) : 0);
1080
+ const fullDiff = await gitExecSafe(["diff", `origin/${repoConfig.defaultBranch}...HEAD`], worktreePath);
1081
+ const newPublicExports = countNewPublicExports(fullDiff);
1082
+ const thresholds = config.autoDeepReviewThresholds ??
1083
+ DEFAULT_AUTO_DEEP_REVIEW_THRESHOLDS;
1084
+ if (shouldAutoDeepReview({ changedFiles, totalLines, newPublicExports }, thresholds)) {
1085
+ const bumped = Math.max(effectiveDeepReviewPasses, 1);
1086
+ if (bumped > effectiveDeepReviewPasses) {
1087
+ runLog.info({
1088
+ metrics: { changedFiles, totalLines, newPublicExports },
1089
+ thresholds,
1090
+ from: effectiveDeepReviewPasses,
1091
+ to: bumped,
1092
+ }, "auto-deep-review: thresholds tripped — forcing deepReviewPasses ≥ 1");
1093
+ await logAuditEvent(this.db, pipelineAutoDeepReviewBumpedEvent({
1094
+ runId,
1095
+ issueId: sanitizedIssue.id,
1096
+ metrics: { changedFiles, totalLines, newPublicExports },
1097
+ thresholds,
1098
+ from: effectiveDeepReviewPasses,
1099
+ to: bumped,
1100
+ }));
1101
+ effectiveDeepReviewPasses = bumped;
1102
+ }
1103
+ }
1104
+ }
1105
+ catch (autoErr) {
1106
+ runLog.warn({ err: autoErr }, "auto-deep-review: heuristic evaluation failed — proceeding with configured deepReviewPasses");
1107
+ }
1108
+ }
1109
+ const deepReviewPasses = effectiveDeepReviewPasses;
1110
+ const maxDeepReviewPasses = config.maxDeepReviewPasses ?? 3;
1061
1111
  if (deepReviewPasses > 0 && hasReview && hasImplement) {
1062
1112
  // Cap deep review iterations against maxReviewPasses
1063
1113
  const passLimit = Math.min(deepReviewPasses, maxDeepReviewPasses);
@@ -1203,17 +1253,30 @@ export class PipelineRunner {
1203
1253
  handoff = drReviewResult.handoffArtifact;
1204
1254
  // Merge deep review findings into handoff context so downstream logic
1205
1255
  // (e.g. auto-merge gate) can see them as standard ReviewFindings.
1256
+ //
1257
+ // Tier 3 — when `deepReviewFindingsAreBlocking` is true (default),
1258
+ // upgrade every deep-review finding's severity to "blocking" so it
1259
+ // forces draft. Operators who want the pre-Tier-3 advisory behavior
1260
+ // can set `deepReviewFindingsAreBlocking: false` per pipeline.
1206
1261
  if (handoff && deepResult.findings.length > 0) {
1207
- // deepResult.findings is already ReviewFinding[] (the agentic
1208
- // provider wrapper performs the conversion before returning).
1262
+ const findingsAreBlocking = config.deepReviewFindingsAreBlocking ?? true;
1263
+ const incoming = findingsAreBlocking
1264
+ ? deepResult.findings.map((f) => ({ ...f, severity: "blocking" }))
1265
+ : deepResult.findings;
1209
1266
  const existingFindings = handoff.context.reviewFindings ?? [];
1210
1267
  handoff = {
1211
1268
  ...handoff,
1212
1269
  context: {
1213
1270
  ...handoff.context,
1214
- reviewFindings: [...existingFindings, ...deepResult.findings],
1271
+ reviewFindings: [...existingFindings, ...incoming],
1215
1272
  },
1216
1273
  };
1274
+ if (findingsAreBlocking) {
1275
+ runLog.info({
1276
+ drPass,
1277
+ upgraded: deepResult.findings.length,
1278
+ }, "deep review: findings upgraded to blocking (Tier 3 deepReviewFindingsAreBlocking)");
1279
+ }
1217
1280
  }
1218
1281
  }
1219
1282
  }