@dev-guard/core 0.1.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 (54) hide show
  1. package/LICENSE +21 -0
  2. package/dist/ai.d.ts +30 -0
  3. package/dist/ai.js +2050 -0
  4. package/dist/ai.js.map +1 -0
  5. package/dist/analyze.d.ts +2 -0
  6. package/dist/analyze.js +303 -0
  7. package/dist/analyze.js.map +1 -0
  8. package/dist/completion.d.ts +8 -0
  9. package/dist/completion.js +272 -0
  10. package/dist/completion.js.map +1 -0
  11. package/dist/context-files.d.ts +5 -0
  12. package/dist/context-files.js +44 -0
  13. package/dist/context-files.js.map +1 -0
  14. package/dist/defaults.d.ts +3 -0
  15. package/dist/defaults.js +46 -0
  16. package/dist/defaults.js.map +1 -0
  17. package/dist/diff-intent.d.ts +19 -0
  18. package/dist/diff-intent.js +517 -0
  19. package/dist/diff-intent.js.map +1 -0
  20. package/dist/drift.d.ts +19 -0
  21. package/dist/drift.js +264 -0
  22. package/dist/drift.js.map +1 -0
  23. package/dist/index-check.mjs +13 -0
  24. package/dist/index.d.ts +18 -0
  25. package/dist/index.js +16 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/prompt.d.ts +2 -0
  28. package/dist/prompt.js +633 -0
  29. package/dist/prompt.js.map +1 -0
  30. package/dist/report.d.ts +2 -0
  31. package/dist/report.js +90 -0
  32. package/dist/report.js.map +1 -0
  33. package/dist/review.d.ts +4 -0
  34. package/dist/review.js +350 -0
  35. package/dist/review.js.map +1 -0
  36. package/dist/scan.d.ts +9 -0
  37. package/dist/scan.js +322 -0
  38. package/dist/scan.js.map +1 -0
  39. package/dist/task-anchor.d.ts +21 -0
  40. package/dist/task-anchor.js +126 -0
  41. package/dist/task-anchor.js.map +1 -0
  42. package/dist/task-router.d.ts +3 -0
  43. package/dist/task-router.js +340 -0
  44. package/dist/task-router.js.map +1 -0
  45. package/dist/templates.d.ts +20 -0
  46. package/dist/templates.js +56 -0
  47. package/dist/templates.js.map +1 -0
  48. package/dist/types.d.ts +366 -0
  49. package/dist/types.js +2 -0
  50. package/dist/types.js.map +1 -0
  51. package/dist/update.d.ts +2 -0
  52. package/dist/update.js +250 -0
  53. package/dist/update.js.map +1 -0
  54. package/package.json +30 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAGhE,MAAM,UAAU,mBAAmB,CAAC,KAAuB;IACzD,MAAM,WAAW,GAAG,oBAAoB,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAChF,MAAM,kBAAkB,GAAG,0BAA0B,CAAC,WAAW,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC9F,MAAM,mBAAmB,GAAG,cAAc,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACxF,MAAM,OAAO,GAAG,YAAY,CAAC,kBAAkB,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IAE1D,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,OAAO,uBAAuB,CAAC,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,OAAO,CAAC,CAAC;IAC1F,CAAC;IAED,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QACpD,OAAO,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9F,CAAC;IAED,OAAO,eAAe,CAAC,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,OAAO,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,eAAe,CAAC,KAAuB,EAAE,WAAyB,EAAE,YAAsB,EAAE,OAAe;IAClH,MAAM,YAAY,GAAG,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG;QACf,CAAC,UAAU,EAAE,gBAAgB,CAAC,KAAK,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;QACxE,CAAC,YAAY,EAAE,gBAAgB,CAAC,KAAK,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,CAAC;QACpF,CAAC,cAAc,EAAE,gBAAgB,CAAC,KAAK,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;QAC1E,CAAC,cAAc,EAAE,gBAAgB,CAAC,KAAK,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,CAAC;QAChF,CAAC,OAAO,EAAE,gBAAgB,CAAC,KAAK,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;QACvE,CAAC,UAAU,EAAE,wBAAwB,CAAC,YAAY,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACjG,CAAC,UAAU,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAC7C,CAAC,QAAQ,EAAE,iBAAiB,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;QACtD,CAAC,aAAa,EAAE,gBAAgB,EAAE,CAAC;QACnC,CAAC,OAAO,EAAE,oBAAoB,EAAE,CAAC;QACjC,CAAC,QAAQ,EAAE,oBAAoB,CAAC,YAAY,CAAC,CAAC;KACtC,CAAC;IAEX,MAAM,UAAU,GAAG,cAAc,CAAC,YAAY,CAAC,eAAe,EAAE,GAAG,OAAO,mBAAmB,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;IACjI,OAAO;QACL,UAAU,EAAE,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAC;QACnD,OAAO;QACP,gBAAgB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC;KACnD,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,KAAuB,EACvB,WAAyB,EACzB,YAAsB,EACtB,OAAe,EACf,OAA+B;IAE/B,MAAM,YAAY,GAAG,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG;QACf,CAAC,IAAI,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;QACxC,CAAC,OAAO,EAAE,YAAY,CAAC,QAAQ,IAAI,YAAY,CAAC;QAChD,CAAC,OAAO,EAAE,yBAAyB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAC/D,CAAC,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC,OAAO,EAAE,iBAAiB,CAAC,YAAY,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACvF,CAAC,OAAO,EAAE,YAAY,CAAC,kBAAkB,IAAI,YAAY,CAAC,oBAAoB,IAAI,oBAAoB,EAAE,CAAC;QACzG,CAAC,QAAQ,EAAE,oBAAoB,CAAC,YAAY,CAAC,CAAC;KACtC,CAAC;IAEX,OAAO;QACL,UAAU,EAAE,gBAAgB,CAC1B,cAAc,CAAC,oBAAoB,CAAC,uBAAuB,EAAE,GAAG,OAAO,aAAa,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC,EACvJ,OAAO,CACR;QACD,OAAO;QACP,gBAAgB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC;KACnD,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAuB,EAAE,WAAyB,EAAE,YAAsB,EAAE,OAAe;IAC1H,MAAM,YAAY,GAAG,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAClD,MAAM,QAAQ,GAA4B;QACxC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,iCAAiC,CAAC;QAC7H,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC;QACrD,CAAC,OAAO,EAAE,gBAAgB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QACtD,CAAC,QAAQ,EAAE,sBAAsB,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;QAC3D,CAAC,SAAS,EAAE,wBAAwB,CAAC,YAAY,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAChG,CAAC,SAAS,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;QAC7C,CAAC,QAAQ,EAAE,iBAAiB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;KAC1D,CAAC;IACF,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QAC1B,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;QACpE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,UAAU,GAAG,gBAAgB,CACjC,yBAAyB,CAAC,GAAG,OAAO,iBAAiB,EAAE,QAAQ,EAAE,KAAK,CAAC,eAAe,IAAI,IAAI,CAAC,EAC/F,OAAO,CACR,CAAC;IAEF,OAAO;QACL,UAAU;QACV,OAAO;QACP,gBAAgB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC;KACnD,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,OAAe,EAAE,QAAkD;IACtG,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,MAAM,YAAY,KAAK,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7G,OAAO,KAAK,KAAK,WAAW,OAAO,OAAO,IAAI,IAAI,CAAC;AACrD,CAAC;AAED,SAAS,oBAAoB,CAC3B,KAAa,EACb,OAAe,EACf,QAAkD,EAClD,eAAwB;IAExB,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7E,IAAI,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC3B,IAAI,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAClD,OAAO,eAAe,IAAI,cAAc,CAAC,MAAM,CAAC,GAAG,eAAe,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxF,MAAM,cAAc,GAAG,CAAC,GAAG,MAAM,CAAC;aAC/B,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;aAC9G,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;QACrD,IAAI,cAAc,KAAK,SAAS,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YACvD,MAAM;QACR,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QACjC,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,GAAG,OAAO,uBAAuB,EAAE,MAAM,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,yBAAyB,CAChC,OAAe,EACf,QAAkD,EAClD,eAAuB;IAEvB,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC9F,IAAI,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC3B,MAAM,KAAK,GAAG,CAAC,KAA+C,EAAE,OAAO,GAAG,KAAK,EAAE,EAAE,CACjF,uCAAuC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK;SAC9F,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,KAAK,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;SACxD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACpB,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B,OAAO,cAAc,CAAC,MAAM,CAAC,GAAG,eAAe,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrE,MAAM,cAAc,GAAG,CAAC,GAAG,MAAM,CAAC;aAC/B,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;aAC9G,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;QACrD,IAAI,cAAc,KAAK,SAAS,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YACvD,MAAM;QACR,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QACjC,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,yBAAyB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,oBAAoB,CAAC,WAAqC,EAAE,YAAsB;IACzF,MAAM,MAAM,GACV,WAAW,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,UAAmB,EAAE,MAAM,EAAE,aAAsB,EAAE,CAAC,CAAC,CAAC;IACrH,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,UAAU,GAAiB,EAAE,CAAC;IAEpC,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,SAAS;QACX,CAAC;QAED,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;QAC1E,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,SAAS;QACX,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACrG,CAAC;AAID,SAAS,cAAc,CAAC,KAAuB,EAAE,WAAyB;IACxE,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IACD,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACvB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,YAAY,GAAG,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,iBAAiB,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IACpE,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,IAAI,IAAI,CAAC,OAAO,KAAK,qBAAqB,EAAE,CAAC;QAC9E,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACzB,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC9D,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;QACtC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;IACD,OAAO,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9C,CAAC;AAED,SAAS,iBAAiB,CAAC,YAA0B,EAAE,YAAY,GAAG,EAAE;IACtE,MAAM,MAAM,GAAG,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChF,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;QACtD,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;KAC9D,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,YAAoB,EAAE,WAAyB;IACzE,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,WAAW,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAC5B,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;SAAM,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IACD,IAAI,sFAAsF,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9G,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IACD,IAAI,+EAA+E,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QACvG,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IACD,IAAI,mCAAmC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QAC3D,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IACD,IAAI,sDAAsD,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9E,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAkB,EAAE,OAAe;IAC3D,OAAO,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,aAAa,OAAO,uBAAuB,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC7G,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,cAAc,CAAC,KAAe;IACrC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC/E,CAAC;AAED,SAAS,YAAY,CAAC,WAAyB,EAAE,QAAgB;IAC/D,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,MAAM,CAAC;IAC5F,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;IAClF,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM,CAAC;IACxF,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IAEjH,OAAO,GAAG,WAAW,CAAC,MAAM,yBAAyB,gBAAgB,YAAY,WAAW,eAAe,cAAc,eAAe,aAAa,EAAE,CAAC;AAC1J,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAgB,EAAE,QAAgB;IAC1D,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChC,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;AACjD,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgB,EAAE,QAAgB;IAC3D,MAAM,KAAK,GAAG,QAAQ;SACnB,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;SACjC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEhB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACxD,CAAC;AAED,SAAS,kBAAkB,CAAC,WAAyB;IACnD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,kDAAkD,CAAC;IAC5D,CAAC;IAED,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,OAAO;SAClB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAC1F,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,KAAK,GAAG,MAAM,IAAI,WAAW,EAAE,CAAC;IAC5D,CAAC,CAAC,CAAC;IACL,IAAI,WAAW,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QACxC,KAAK,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,aAAa,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,yBAAyB,CAAC,WAAyB,EAAE,YAA0B;IACtF,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACzD,MAAM,gBAAgB,GAAG;QACvB,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;QAC/E,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,UAAU,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;KACtF,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAElB,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,kBAAkB,EAAE,GAAG,gBAAgB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,CAAC,gBAAgB,EAAE,GAAG,gBAAgB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,gBAAgB,CAAC,WAAyB,EAAE,YAA0B;IAC7E,IAAI,2BAA2B,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5D,MAAM,UAAU,GAAG,gBAAgB,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAChE,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IAChF,CAAC;IACD,MAAM,OAAO,GAAG,gBAAgB,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC1D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,sBAAsB,CAAC;IAChC,CAAC;IACD,OAAO,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrF,CAAC;AAED,SAAS,iBAAiB,CAAC,WAAyB;IAClD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,WAAW;SACf,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC;QACnE,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC;QACrE,OAAO,KAAK,IAAI,CAAC,IAAI,iBAAiB,IAAI,CAAC,eAAe,aAAa,MAAM,WAAW,KAAK,EAAE,CAAC;IAClG,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,sBAAsB,CAAC,WAAyB;IACvD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,WAAW;SACf,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,eAAe,EAAE,CAAC;SAChF,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACjC,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3C,CAAC;AAED,SAAS,kBAAkB,CAAC,YAA0B;IACpD,MAAM,MAAM,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,kBAAkB,EAAE,YAAY,CAAC,oBAAoB,CAAC;SAChJ,IAAI,CAAC,IAAI,CAAC;SACV,WAAW,EAAE,CAAC;IACjB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAEhC,IAAI,4EAA4E,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9F,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,qGAAqG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACvH,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QAClC,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACjC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC/B,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,KAAK,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,+BAA+B,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACjD,KAAK,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3C,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,+BAA+B,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACjD,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACrC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC7B,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,oCAAoC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtD,KAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAC1C,KAAK,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,qDAAqD,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACvE,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC/B,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC/B,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC7B,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,KAAK,GAAG,CAAC,YAAY,CAAC,kBAAkB,IAAI,YAAY,CAAC,oBAAoB,IAAI,oBAAoB,EAAE,CAAC;SAC3G,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SACvC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACf,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,iCAAiC,CAAC;AACjF,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY;IACxC,MAAM,QAAQ,GAA4B;QACxC,+BAA+B;QAC/B,CAAC,sBAAsB,EAAE,wBAAwB,CAAC;QAClD,CAAC,kDAAkD,EAAE,kBAAkB,CAAC;QACxE,CAAC,0BAA0B,EAAE,mBAAmB,CAAC;QACjD,CAAC,0BAA0B,EAAE,qBAAqB,CAAC;QACnD,CAAC,yBAAyB,EAAE,oBAAoB,CAAC;QACjD,CAAC,iBAAiB,EAAE,eAAe,CAAC;QACpC,CAAC,uBAAuB,EAAE,gBAAgB,CAAC;QAC3C,CAAC,gCAAgC,EAAE,sBAAsB,CAAC;QAC1D,CAAC,oBAAoB,EAAE,kBAAkB,CAAC;QAC1C,CAAC,oBAAoB,EAAE,eAAe,CAAC;QACvC,CAAC,oBAAoB,EAAE,WAAW,CAAC;QACnC,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;QAC3C,CAAC,2BAA2B,EAAE,2BAA2B,CAAC;QAC1D,CAAC,8BAA8B,EAAE,mBAAmB,CAAC;QACrD,CAAC,oBAAoB,EAAE,gBAAgB,CAAC;QACxC,CAAC,4CAA4C,EAAE,wBAAwB,CAAC;QACxE,CAAC,cAAc,EAAE,uBAAuB,CAAC;QACzC,CAAC,qBAAqB,EAAE,iBAAiB,CAAC;QAC1C,CAAC,yBAAyB,EAAE,kBAAkB,CAAC;KAChD,CAAC;IACF,KAAK,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC;QACtC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IACD,OAAO,IAAI;SACR,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;SAC5B,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;SAC9B,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;SACZ,WAAW,EAAE,CAAC;AACnB,CAAC;AAED,SAAS,gBAAgB,CAAC,YAA0B;IAClD,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,IAAI,GAAG,YAAY,CAAC,eAAe;SACtC,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SAC9D,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;SACzC,MAAM,CAAC,OAAO,CAAC;SACf,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACf,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACpD,CAAC;AAED,SAAS,iBAAiB,CAAC,YAA0B,EAAE,YAAsB;IAC3E,IAAI,2BAA2B,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5D,OAAO,+CAA+C,CAAC;IACzD,CAAC;IACD,OAAO,oBAAoB,CAAC,YAAY,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY,EAAE,GAAW;IACjD,OAAO,IAAI;SACR,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;SAChF,MAAM,CAAC,OAAO,CAAC;SACf,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACnB,CAAC;AAED,SAAS,cAAc,CAAC,KAAe;IACrC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC3C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5H,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,QAAgB;IAChD,MAAM,KAAK,GAAG,IAAI;SACf,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;SAC7B,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACzC,IAAI,KAAK,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,MAAM,GAAG,QAAQ,OAAO,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAkBD,SAAS,mBAAmB,CAAC,YAAoB;IAC/C,OAAO;QACL,IAAI,EAAE,mBAAmB,CAAC,sBAAsB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACrE,OAAO,EAAE,mBAAmB,CAAC,sBAAsB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC3E,QAAQ,EAAE,mBAAmB,CAAC,sBAAsB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC5E,KAAK,EAAE,mBAAmB,CAAC,sBAAsB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACzE,KAAK,EAAE,mBAAmB,CAAC,sBAAsB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QAC7E,OAAO,EAAE,mBAAmB,CAAC,sBAAsB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC3E,UAAU,EAAE,mBAAmB,CAAC,sBAAsB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC9E,gBAAgB,EAAE,mBAAmB,CAAC,sBAAsB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACpF,SAAS,EAAE,mBAAmB,CAAC,sBAAsB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QACnF,kBAAkB,EAAE,mBAAmB,CAAC,sBAAsB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACtF,oBAAoB,EAAE,mBAAmB,CAAC,sBAAsB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACxF,QAAQ,EAAE,mBAAmB,CAAC,sBAAsB,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;QACvF,eAAe,EAAE,mBAAmB,CAAC,sBAAsB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;KACvF,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,YAA0B;IACpD,MAAM,OAAO,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9F,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;SAClC,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,OAAO,OAAO,IAAI,sBAAsB,CAAC;AAC3C,CAAC;AAED,SAAS,iBAAiB,CAAC,YAA0B,EAAE,aAAqB,EAAE,gBAAwB;IACpG,MAAM,OAAO,GAAG;QACd,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,cAAc,UAAU,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;QACjG,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,UAAU,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;QAChF,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,UAAU,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;KAC/E,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAElB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,iBAAiB,CAAC,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,uCAAuC,CAAC,CAAC;AAClI,CAAC;AAED,SAAS,wBAAwB,CAAC,YAA0B,EAAE,aAAqB,EAAE,gBAAwB;IAC3G,MAAM,IAAI,GAAG,CAAC,YAAY,CAAC,gBAAgB,EAAE,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,QAAQ,EAAE,aAAa,EAAE,gBAAgB,CAAC;SACzH,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC;SACV,WAAW,EAAE,CAAC;IACjB,MAAM,KAAK,GAAG,IAAI,GAAG,CAAS,CAAC,iBAAiB,EAAE,wBAAwB,CAAC,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAC7C,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,kCAAkC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1E,KAAK,MAAM,IAAI,IAAI;YACjB,yBAAyB;YACzB,iBAAiB;YACjB,2BAA2B;YAC3B,6BAA6B;YAC7B,+BAA+B;YAC/B,6BAA6B;SAC9B,EAAE,CAAC;YACF,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC9D,KAAK,MAAM,IAAI,IAAI;YACjB,0BAA0B;YAC1B,4BAA4B;YAC5B,8BAA8B;YAC9B,wCAAwC;SACzC,EAAE,CAAC;YACF,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAmB,IAAI,wFAAwF,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7I,KAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACtC,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACvC,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,iCAAiC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,KAAK,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,mDAAmD,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACnE,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,gCAAgC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,cAAc,CAAC,MAAc,EAAE,eAAe,GAAG,IAAI;IAC5D,MAAM,YAAY,GAA4B;QAC5C,CAAC,eAAe,EAAE,wBAAwB,CAAC;QAC3C,CAAC,cAAc,EAAE,iBAAiB,CAAC;QACnC,CAAC,QAAQ,EAAE,iBAAiB,CAAC;QAC7B,CAAC,aAAa,EAAE,wBAAwB,CAAC;QACzC,CAAC,2BAA2B,EAAE,wBAAwB,CAAC;KACxD,CAAC;IACF,IAAI,IAAI,GAAG,MAAM,CAAC;IAClB,KAAK,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,YAAY,EAAE,CAAC;QAClD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,KAAK,GAAG,IAAI;SACf,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;SAC7B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACf,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IACL,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACnD,OAAO,yBAAyB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,yBAAyB,CAAC,MAAc,EAAE,eAAe,GAAG,IAAI;IACvE,IAAI,cAAc,CAAC,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;QAC9C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAChF,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpH,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,IAAI,IAAI,GAAG,IAAI,GAAG,eAAe,EAAE,CAAC;YAC/C,SAAS;QACX,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,IAAI,IAAI,CAAC;IACf,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC1D,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,eAAe,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QAC9E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAC1C,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACvC,OAAO,IAAI;SACR,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACnF,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,sBAAsB,CAAC,YAAoB,EAAE,KAAa;IACjE,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,UAAU,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAEnH,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC;QACjD,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAC/B,MAAM;QACR,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACxC,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAe;IAC1C,OAAO,OAAO;SACX,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;SAC7B,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SAC1F,IAAI,CAAC,IAAI,CAAC;SACV,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO;QACL,6BAA6B;QAC7B,2CAA2C;QAC3C,4CAA4C;QAC5C,oCAAoC;KACrC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,oBAAoB;IAC3B,OAAO;QACL,uBAAuB;QACvB,2BAA2B;QAC3B,sCAAsC;QACtC,0BAA0B;KAC3B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,oBAAoB,CAAC,YAAsB;IAClD,MAAM,QAAQ,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACpC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC;QAClE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC;QACvG,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClE,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { CompactReport, CompactReportInput } from "./types.js";
2
+ export declare function generateCompactReport(input: CompactReportInput): CompactReport;
package/dist/report.js ADDED
@@ -0,0 +1,90 @@
1
+ export function generateCompactReport(input) {
2
+ const task = extractSection(input.taskMarkdown, "목표") || firstMeaningfulLine(input.taskMarkdown) || "현재 task 없음";
3
+ const isDiffFirst = input.anchorMode === "diff-first";
4
+ const userRequest = isDiffFirst
5
+ ? "inferred from current diff"
6
+ : input.runLog?.userRequest || input.runLog?.title || "저장된 userRequest 없음";
7
+ const changedFiles = input.changedFiles;
8
+ const check = summarizeCheck(input.checkReport.findings);
9
+ const review = summarizeReview(input.runLog?.reviewResult);
10
+ const nextAction = suggestNextAction({
11
+ changedFiles,
12
+ findings: input.checkReport.findings,
13
+ review,
14
+ scanStale: input.scanStale
15
+ });
16
+ return {
17
+ task: compactLine(task),
18
+ userRequest: compactLine(userRequest),
19
+ changedFiles,
20
+ check,
21
+ review,
22
+ runId: isDiffFirst ? "ignored (stale anchor)" : (input.runLog?.id ?? "none"),
23
+ nextAction
24
+ };
25
+ }
26
+ function summarizeCheck(findings) {
27
+ const warnings = findings.filter((finding) => finding.severity === "warning");
28
+ if (warnings.length === 0) {
29
+ return "pass";
30
+ }
31
+ return `warning - ${warnings.map((finding) => finding.title).slice(0, 2).join(", ")}`;
32
+ }
33
+ function summarizeReview(markdown) {
34
+ if (!markdown?.trim()) {
35
+ return "none";
36
+ }
37
+ const status = markdown.match(/(?:^|\n)\s*status:\s*([a-z_]+)/i)?.[1] ?? "unknown";
38
+ const conclusion = extractSection(markdown, "결론") || extractSection(markdown, "요구사항 충족 여부");
39
+ const summary = compactLine(conclusion).replace(/^[-*\s]+/, "");
40
+ return summary ? `${status} - ${summary}` : status;
41
+ }
42
+ function suggestNextAction(input) {
43
+ if (input.scanStale) {
44
+ return "run dev-guard refresh";
45
+ }
46
+ if (input.changedFiles.length === 0) {
47
+ return "run task-ai or start implementation";
48
+ }
49
+ if (/needs_changes|risky|critical/.test(input.review)) {
50
+ return "run dev-guard fix-prompt";
51
+ }
52
+ if (input.findings.some((finding) => finding.severity === "warning")) {
53
+ return "review check warnings";
54
+ }
55
+ if (/pass/.test(input.review)) {
56
+ return "build and commit";
57
+ }
58
+ return "run dev-guard check/review before commit";
59
+ }
60
+ function extractSection(markdown, title) {
61
+ const lines = markdown.split("\n");
62
+ const start = lines.findIndex((line) => line.trim() === `## ${title}`);
63
+ if (start < 0) {
64
+ return "";
65
+ }
66
+ const body = [];
67
+ for (const line of lines.slice(start + 1)) {
68
+ if (/^##\s+/.test(line.trim())) {
69
+ break;
70
+ }
71
+ body.push(line);
72
+ }
73
+ return body.join("\n").trim();
74
+ }
75
+ function firstMeaningfulLine(markdown) {
76
+ return markdown
77
+ .split("\n")
78
+ .map((line) => line.trim())
79
+ .find((line) => line && !line.startsWith("#")) ?? "";
80
+ }
81
+ function compactLine(value) {
82
+ return value
83
+ .split("\n")
84
+ .map((line) => line.replace(/^[-*\s]+/, "").trim())
85
+ .filter(Boolean)
86
+ .join(" / ")
87
+ .replace(/\s+/g, " ")
88
+ .slice(0, 160);
89
+ }
90
+ //# sourceMappingURL=report.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { AIProvider, ReviewContext, ReviewFixPrompt, ReviewFixPromptInput, ReviewResult } from "./types.js";
2
+ export declare function generateReviewResult(provider: AIProvider, context: ReviewContext, model?: string): Promise<ReviewResult>;
3
+ export declare function buildReviewPrompt(context: ReviewContext): string;
4
+ export declare function buildReviewFixPrompt(input: ReviewFixPromptInput): ReviewFixPrompt;
package/dist/review.js ADDED
@@ -0,0 +1,350 @@
1
+ const requiredReviewSections = [
2
+ "결론",
3
+ "요구사항 충족 여부",
4
+ "범위 초과 수정",
5
+ "규칙 위반 가능성",
6
+ "반복 실수 가능성",
7
+ "확인이 필요한 파일",
8
+ "Codex 재수정 프롬프트",
9
+ "커밋 가능 여부"
10
+ ];
11
+ export async function generateReviewResult(provider, context, model) {
12
+ const markdown = normalizeReviewMarkdown(await provider.generateText({
13
+ model,
14
+ system: reviewSystemPrompt(),
15
+ prompt: buildReviewPrompt(context)
16
+ }));
17
+ if (!markdown) {
18
+ throw new Error("AI review result is empty. No files were modified.");
19
+ }
20
+ const missingSections = requiredReviewSections.filter((section) => !hasSection(markdown, section));
21
+ const status = extractStatus(markdown);
22
+ if (missingSections.length > 0 || !status) {
23
+ const missing = missingSections.length > 0 ? ` missing sections: ${missingSections.join(", ")}.` : "";
24
+ const statusMessage = status ? "" : " missing valid status.";
25
+ throw new Error(`AI review result format is invalid.${missing}${statusMessage}`);
26
+ }
27
+ return {
28
+ markdown,
29
+ status,
30
+ fixPrompt: extractSection(markdown, "Codex 재수정 프롬프트") || "재수정 프롬프트를 생성하지 못했습니다. 리뷰 결과를 직접 확인하세요."
31
+ };
32
+ }
33
+ export function buildReviewPrompt(context) {
34
+ return `현재 작업 목표와 완료 조건:
35
+ ${context.taskMarkdown || "(task.md 비어 있음)"}
36
+
37
+ 반드시 지켜야 할 규칙:
38
+ ${context.rulesMarkdown || "(rules.md 비어 있음)"}
39
+
40
+ 반복하면 안 되는 실수:
41
+ ${context.mistakesMarkdown || "(mistakes.md 비어 있음)"}
42
+
43
+ 프로젝트 상태:
44
+ ${context.projectStateMarkdown || "(PROJECT_STATE.md 비어 있음)"}
45
+
46
+ 최근 결정:
47
+ ${context.decisionsMarkdown || "(DECISIONS.md 비어 있음)"}
48
+
49
+ Codex 전달 run 기록:
50
+ ${formatRunLog(context.runLog)}
51
+
52
+ review 기준 선택:
53
+ ${context.runSelectionSummary || "- using task.md\n- run match score: none"}
54
+
55
+ 변경 파일 목록:
56
+ ${formatChangeFiles(context.changeFiles, context.changedFiles)}
57
+
58
+ git diff:
59
+ ${trimToLimit(context.diffText || "(diff 본문 없음)", 45000)}
60
+
61
+ 영향도 힌트:
62
+ ${formatImpactHints(context.impactHints ?? [])}
63
+
64
+ untracked 파일 내용 일부:
65
+ ${formatUntrackedContexts(context.untrackedFileContexts ?? [])}
66
+
67
+ 관련 project memory 요약:
68
+ ${formatMemorySummaries(context.memorySummaries ?? [], context.projectMapMarkdown)}
69
+
70
+ 리뷰 지침:
71
+ - task.md 요구사항과 완료 조건을 기준으로 실제 diff가 충분한지 판단하세요.
72
+ - task.md에 "완료 기준" 섹션이 있으면, 그것을 빌드 성공보다 우선하는 완료 정의로 사용하세요.
73
+ - task type이 i18n이면 hardcoded user-facing strings, locale mix, missing translation keys, aria/title/placeholder/metadata 누락 가능성을 diff에서 확인하세요.
74
+ - i18n에서 기존 컴포넌트의 한국어 문자열이 t("key") 호출로 바뀌고, ko/en locale resource가 함께 추가되며 default locale이 ko로 유지되면 정상 migration으로 보세요. 이 경우 한국어 copy 삭제나 영어 덮어쓰기로 판단하지 마세요.
75
+ - task type이 ui_text_cleanup이면 wording consistency, duplicate phrasing, awkward CTA wording을 확인하세요.
76
+ - review 기준 선택에서 "run: ignored" 또는 "using diff-inferred task"라고 표시된 경우, run 기록(userRequest/generatedTaskMarkdown/generatedCodexPrompt)은 참고용 reference로만 사용하고 요구사항 판단의 primary basis로 쓰지 마세요. 이 경우 현재 task.md(위에 제공된 목표)를 유일한 primary requirement로 사용하세요.
77
+ - run이 제공된 경우에도 run match score가 낮거나 latest run does not match 경고가 있으면, run 기준으로 pass를 쉽게 내지 말고 현재 task.md와 실제 diff를 우선하세요.
78
+ - 실제 diff에 나온 파일명, 수정된 문자열, 컴포넌트명, 조건문, import/export 변경을 먼저 근거로 쓰세요.
79
+ - 영향도 힌트가 있으면 변경 파일의 reverse dependency를 참고해 필요한 검증 범위를 짚으세요.
80
+ - 가능하면 수정된 문구 자체를 짧게 인용하세요. 단, 긴 코드는 인용하지 말고 요약하세요.
81
+ - task.md 수정 범위 밖 파일이 바뀌었는지 확인하세요.
82
+ - untracked 파일은 새로 생성된 파일입니다. untracked 파일 내용 일부가 제공되면 해당 excerpt를 실제 검토 근거로 사용하세요.
83
+ - untracked 파일이 task.md scope 안에 있고 excerpt로 요구사항 위반이 확인되지 않으면, 단순히 "전체 파일 확인 필요"만으로 needs_changes를 선택하지 마세요.
84
+ - rules.md와 mistakes.md에 비추어 반복 실수 가능성을 짚으세요.
85
+ - diff나 제공된 파일 내용에 근거 없는 추측을 하지 마세요.
86
+ - 확인할 수 없으면 "확인 필요"라고 쓰세요.
87
+ - status 기준: pass는 요구사항 충족과 위반 없음, info는 참고만 필요한 경우, warning은 minor wording/취향 차이/작은 문구 길이 문제, unknown은 정보 부족이지만 구체 위반 없음, risky는 명확한 위험, needs_changes는 요구사항 불충족/범위 초과/보호 대상 수정/로직 깨짐, critical은 로직 파괴나 데이터/인증/보호 대상 훼손 가능성이 큰 경우에만 선택하세요.
88
+ - 문구가 조금 길거나 취향 차이 수준이면 needs_changes가 아니라 warning으로 두세요.
89
+ - needs_changes, risky, critical인 경우 "Codex 재수정 프롬프트"에는 문제 파일, 요구사항과 다른 점, 수정해야 할 구체 항목, 건드리면 안 되는 파일/로직을 반드시 포함하세요.
90
+ - "검토하세요", "확인하세요"만 있는 모호한 재수정 프롬프트는 금지합니다.
91
+ - "RIP처럼", "간결하게 피기", "필요 없는 UI 요소를 없앨 수 있는 방법 고려", "위반이 발견되었습니다", "가능성이 존재합니다" 같은 어색하거나 generic한 표현을 쓰지 마세요.
92
+ - 한국어는 짧고 직접적인 개발 협업 문체로 작성하세요.
93
+ - context files는 포함된 경우에도 코드 변경과 구분해서 판단하세요.
94
+ - 코드 수정은 하지 말고 리뷰 결과만 작성하세요.
95
+
96
+ 반드시 아래 Markdown 형식으로만 답하세요. 코드펜스는 쓰지 마세요.
97
+
98
+ status: pass | info | warning | needs_changes | risky | critical | unknown
99
+
100
+ ## 결론
101
+
102
+ ## 요구사항 충족 여부
103
+
104
+ ## 범위 초과 수정
105
+
106
+ ## 규칙 위반 가능성
107
+
108
+ ## 반복 실수 가능성
109
+
110
+ ## 확인이 필요한 파일
111
+
112
+ ## Codex 재수정 프롬프트
113
+
114
+ ## 커밋 가능 여부
115
+ `;
116
+ }
117
+ export function buildReviewFixPrompt(input) {
118
+ if (input.review.status === "pass") {
119
+ return {
120
+ needed: false,
121
+ promptText: "재수정 프롬프트 불필요: review status가 pass입니다."
122
+ };
123
+ }
124
+ const taskGoal = extractSection(input.taskMarkdown, "목표") || extractSection(input.taskMarkdown, "Goal") || firstMeaningfulLine(input.taskMarkdown);
125
+ const taskScope = extractSection(input.taskMarkdown, "수정 범위") || extractSection(input.taskMarkdown, "수정 대상") || "확인 후 판단";
126
+ const taskProtected = [extractSection(input.taskMarkdown, "보호 대상"), extractSection(input.taskMarkdown, "건드리면 안 되는 것")].filter(Boolean).join("\n") ||
127
+ "원래 요구사항과 직접 관련 없는 기존 동작과 파일은 되돌리거나 수정하지 마세요.";
128
+ const completion = extractSection(input.taskMarkdown, "완료 조건") || "- 원래 요구사항을 충족한다.\n- 검증 명령어가 성공한다.";
129
+ const verification = extractSection(input.taskMarkdown, "검증 명령어") || "- `pnpm run build`";
130
+ const problemBullets = actionableBullets([extractSection(input.review.markdown, "결론"), extractSection(input.review.markdown, "요구사항 충족 여부")]);
131
+ const reviewResultBullets = actionableBullets([
132
+ extractSection(input.review.markdown, "요구사항 충족 여부"),
133
+ extractSection(input.review.markdown, "범위 초과 수정"),
134
+ extractSection(input.review.markdown, "규칙 위반 가능성"),
135
+ extractSection(input.review.markdown, "반복 실수 가능성")
136
+ ]);
137
+ const scopeDrift = actionableBullets([extractSection(input.review.markdown, "범위 초과 수정")], ["- 확인 후 판단"]);
138
+ const filesToCheck = actionableBullets([extractSection(input.review.markdown, "확인이 필요한 파일"), formatChangeFiles(input.changeFiles, input.changedFiles)]);
139
+ const fixInstructions = actionableBullets([input.review.fixPrompt], ["- 파일을 직접 확인한 뒤 원래 요구사항에 맞게 최소 수정한다."]);
140
+ const protectedItems = actionableBullets([taskProtected], ["- 원래 요구사항과 직접 관련 없는 기존 동작과 파일은 유지한다."]);
141
+ const completionItems = actionableBullets([completion]);
142
+ const verificationItems = actionableBullets([verification]);
143
+ return {
144
+ needed: true,
145
+ promptText: `# Codex 재수정 프롬프트
146
+
147
+ ## 문제 요약
148
+ - review status: ${input.review.status}
149
+ ${problemBullets}
150
+
151
+ ## 원래 요구사항
152
+ ${sanitizeText(taskGoal || "확인 후 판단")}
153
+
154
+ ## 현재 review 결과
155
+ ${reviewResultBullets}
156
+
157
+ ## 수정 지시
158
+ ${fixInstructions}
159
+
160
+ 반드시 아래 원칙을 지키세요.
161
+ - 무조건 되돌리지 마세요.
162
+ - 원래 요구사항과 직접 관련 없는 변경인 경우에만 되돌리세요.
163
+ - 기존 동작 복원이 필요한 경우에도, 원래 요구사항을 충족하기 위한 관련 UI 수정은 유지할 수 있습니다.
164
+ - 확실하지 않은 내용은 "확인 후 판단"으로 표시하고, 파일을 직접 확인한 뒤 최소 수정하세요.
165
+
166
+ ## 되돌리지 말아야 할 것
167
+ ${protectedItems}
168
+
169
+ ## 되돌려야 할 가능성이 있는 것
170
+ ${scopeDrift}
171
+
172
+ ## 확인 파일
173
+ ${filesToCheck}
174
+
175
+ ## 수정 대상 파일
176
+ ${actionableBullets([taskScope])}
177
+
178
+ ## 완료 조건
179
+ ${completionItems}
180
+
181
+ ## 검증 명령어
182
+ ${verificationItems}
183
+ `
184
+ };
185
+ }
186
+ function reviewSystemPrompt() {
187
+ return [
188
+ "You are a strict AI code-reviewer for dev-guard.",
189
+ "Review only the provided task, rules, mistakes, project memory, changed files, and diff.",
190
+ "Return only Markdown. Do not wrap the answer in code fences.",
191
+ "The first non-empty line must be exactly one of: status: pass, status: info, status: warning, status: needs_changes, status: risky, status: critical, status: unknown.",
192
+ "Always include the required Korean section headings.",
193
+ "Do not invent causes or files that are not supported by the provided context.",
194
+ "If the diff is insufficient to verify a claim, mark it 확인 필요.",
195
+ "Do not choose needs_changes based only on missing full-file context when untracked excerpts are provided and no concrete violation is visible.",
196
+ "Minor wording issues should be warning, not needs_changes.",
197
+ "For needs_changes, risky, or critical, the fix prompt must name files, concrete mismatches, exact edits, and protected files or logic. Do not write a vague prompt.",
198
+ "Use natural concise Korean. Avoid generic or awkward phrases."
199
+ ].join("\n");
200
+ }
201
+ function formatImpactHints(impactHints) {
202
+ if (impactHints.length === 0) {
203
+ return "- 영향도 힌트 없음";
204
+ }
205
+ return impactHints
206
+ .slice(0, 5)
207
+ .map((hint) => `- ${hint.file}: imported by ${hint.importedByCount}; affected areas ${hint.affectedAreas.join(", ") || "unknown"}; examples ${hint.importedBy.slice(0, 3).join(", ") || "none"}`)
208
+ .join("\n");
209
+ }
210
+ function normalizeReviewMarkdown(markdown) {
211
+ return markdown.trim().replace(/^```(?:md|markdown)?\s*/i, "").replace(/\s*```$/i, "").trim();
212
+ }
213
+ function extractStatus(markdown) {
214
+ const match = markdown.match(/(?:^|\n)\s*status:\s*(pass|info|warning|needs_changes|risky|critical|unknown)\s*(?:\n|$)/i);
215
+ return match?.[1]?.toLowerCase();
216
+ }
217
+ function hasSection(markdown, section) {
218
+ return new RegExp(`^##\\s+${escapeRegExp(section)}\\s*$`, "m").test(markdown);
219
+ }
220
+ function extractSection(markdown, section) {
221
+ const lines = markdown.split("\n");
222
+ const start = lines.findIndex((line) => new RegExp(`^##\\s+${escapeRegExp(section)}\\s*$`).test(line.trim()));
223
+ if (start < 0) {
224
+ return "";
225
+ }
226
+ const body = [];
227
+ for (const line of lines.slice(start + 1)) {
228
+ if (/^##\s+/.test(line.trim())) {
229
+ break;
230
+ }
231
+ body.push(line);
232
+ }
233
+ return body.join("\n").trim();
234
+ }
235
+ function formatChangeFiles(changeFiles, changedFiles) {
236
+ const files = changeFiles && changeFiles.length > 0
237
+ ? changeFiles.map((file) => {
238
+ const rename = file.oldPath ? ` from ${file.oldPath}` : "";
239
+ const state = file.source === file.status ? file.source : `${file.source}/${file.status}`;
240
+ return `- ${file.path} (${state}${rename})`;
241
+ })
242
+ : changedFiles.map((file) => `- ${file}`);
243
+ return files.length > 0 ? files.join("\n") : "- none";
244
+ }
245
+ function formatRunLog(runLog) {
246
+ if (!runLog) {
247
+ return "(run 기록 없음)";
248
+ }
249
+ return [
250
+ `- run id: ${runLog.id}`,
251
+ `- command: ${runLog.command}`,
252
+ `- createdAt: ${runLog.createdAt}`,
253
+ `- provider/model: ${runLog.provider ?? "unknown"}/${runLog.model ?? "unknown"}`,
254
+ `- git: ${runLog.gitBranch ?? "unknown"} ${runLog.gitHead ?? ""}`.trim(),
255
+ `- userRequest: ${runLog.userRequest || "(비어 있음)"}`,
256
+ `- relatedFiles: ${runLog.relatedFiles.length > 0 ? runLog.relatedFiles.join(", ") : "none"}`,
257
+ "",
258
+ "### generatedTaskMarkdown",
259
+ trimToLimit(runLog.generatedTaskMarkdown || "(비어 있음)", 12000),
260
+ "",
261
+ "### generatedCodexPrompt",
262
+ trimToLimit(runLog.generatedCodexPrompt || "(비어 있음)", 16000)
263
+ ].join("\n");
264
+ }
265
+ function firstMeaningfulLine(markdown) {
266
+ return (markdown
267
+ .split("\n")
268
+ .map((line) => line.trim())
269
+ .find((line) => line.length > 0 && !line.startsWith("#")) ?? "");
270
+ }
271
+ function actionableBullets(sections, fallback = ["- 확인 후 판단"]) {
272
+ const seen = new Set();
273
+ const lines = sections
274
+ .flatMap((section) => section.split("\n"))
275
+ .map(sanitizeText)
276
+ .map((line) => line.replace(/^[-*\d.)\s]+/, "").trim())
277
+ .filter(Boolean)
278
+ .filter((line) => !isGenericReviewLine(line))
279
+ .filter((line) => {
280
+ const key = line.toLowerCase();
281
+ if (seen.has(key)) {
282
+ return false;
283
+ }
284
+ seen.add(key);
285
+ return true;
286
+ })
287
+ .slice(0, 10);
288
+ if (lines.length === 0) {
289
+ return fallback.join("\n");
290
+ }
291
+ return lines.map((line) => `- ${line}`).join("\n");
292
+ }
293
+ function sanitizeText(text) {
294
+ return text
295
+ .replace(/설명을 간결하게 피기 위한 것입니다/g, "설명 문구를 줄입니다")
296
+ .replace(/RIP처럼/g, "요구사항과 다르게")
297
+ .replace(/간결하게 피기/g, "문구를 자연스럽게 줄이기")
298
+ .replace(/필요 없는 UI 요소를 없앨 수 있는 방법 고려/g, "불필요한 UI 요소는 요구사항과 관련 있을 때만 정리")
299
+ .replace(/위반이 발견되었습니다/g, "문제가 있습니다")
300
+ .replace(/가능성이 존재합니다/g, "가능성이 있습니다")
301
+ .replace(/할 수 있습니다/g, "할 수 있음")
302
+ .replace(/될 수 있습니다/g, "될 수 있음")
303
+ .replace(/있을 수 있습니다/g, "있을 수 있음")
304
+ .replace(/\s+/g, " ")
305
+ .trim();
306
+ }
307
+ function isGenericReviewLine(line) {
308
+ const normalized = line.toLowerCase();
309
+ return (normalized === "확인 필요" ||
310
+ normalized === "검토 필요" ||
311
+ normalized === "문제 없음" ||
312
+ normalized === "없음" ||
313
+ normalized === "가능성이 있습니다" ||
314
+ /^(검토하세요|확인하세요|수정하세요)[.]?$/.test(line) ||
315
+ /추가 검토가 필요/.test(line));
316
+ }
317
+ function formatUntrackedContexts(contexts) {
318
+ if (!contexts || contexts.length === 0) {
319
+ return "(없음)";
320
+ }
321
+ return contexts
322
+ .map((context) => {
323
+ const truncated = context.truncated ? "\n... truncated by dev-guard review context limit ..." : "";
324
+ return `### ${context.path}\n- 새로 생성된 untracked 파일입니다. 아래 excerpt를 기준으로 scope/요구사항 충족 여부를 검토하세요.\n\n${context.excerpt}${truncated}`;
325
+ })
326
+ .join("\n\n");
327
+ }
328
+ function formatMemorySummaries(summaries, projectMapMarkdown) {
329
+ const summaryText = summaries && summaries.length > 0
330
+ ? summaries
331
+ .map((summary) => {
332
+ const keywords = summary.keywords.length > 0 ? summary.keywords.join(", ") : "none";
333
+ const features = summary.features.length > 0 ? summary.features.join(", ") : "none";
334
+ return `- ${summary.path}: ${summary.role}; keywords: ${keywords}; features: ${features}`;
335
+ })
336
+ .join("\n")
337
+ : "- 관련 file summary 없음";
338
+ const projectMap = projectMapMarkdown ? `\n\nproject-map excerpt:\n${trimToLimit(projectMapMarkdown, 8000)}` : "";
339
+ return `${summaryText}${projectMap}`;
340
+ }
341
+ function trimToLimit(content, maxCharacters) {
342
+ if (content.length <= maxCharacters) {
343
+ return content;
344
+ }
345
+ return `${content.slice(0, Math.max(0, maxCharacters - 80)).trimEnd()}\n... truncated by dev-guard review context limit ...`;
346
+ }
347
+ function escapeRegExp(value) {
348
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
349
+ }
350
+ //# sourceMappingURL=review.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review.js","sourceRoot":"","sources":["../src/review.ts"],"names":[],"mappings":"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"}
package/dist/scan.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ import type { CodeGraphEntry, FileSummary, ImpactHint, ProjectIndexEntry, ProjectRefreshInput, ProjectRefreshResult, ProjectScanInputFile, ProjectScanResult } from "./types.js";
2
+ export declare function buildProjectScan(files: ProjectScanInputFile[]): ProjectScanResult;
3
+ export declare function refreshProjectScan(input: ProjectRefreshInput): ProjectRefreshResult;
4
+ export declare function buildCodeGraph(files: ProjectScanInputFile[], index?: ProjectIndexEntry[]): CodeGraphEntry[];
5
+ export declare function buildImpactHints(changedFiles: string[], codeGraph: CodeGraphEntry[], limit?: number): ImpactHint[];
6
+ export declare function selectRelatedFilesFromScan(requirement: string, index: ProjectIndexEntry[], summaries: FileSummary[]): string[];
7
+ export declare function buildProjectIndexEntry(file: ProjectScanInputFile): ProjectIndexEntry;
8
+ export declare function buildFileSummaries(index: ProjectIndexEntry[]): FileSummary[];
9
+ export declare function buildProjectMapMarkdown(index: ProjectIndexEntry[], summaries: FileSummary[]): string;