@stackguide/mcp-server 2.3.2 → 3.0.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 (56) hide show
  1. package/README.md +82 -16
  2. package/dist/config/healthWeights.d.ts +87 -0
  3. package/dist/config/healthWeights.d.ts.map +1 -0
  4. package/dist/config/healthWeights.js +238 -0
  5. package/dist/config/healthWeights.js.map +1 -0
  6. package/dist/config/types.d.ts +104 -0
  7. package/dist/config/types.d.ts.map +1 -1
  8. package/dist/config/types.js.map +1 -1
  9. package/dist/handlers/generate.d.ts +24 -0
  10. package/dist/handlers/generate.d.ts.map +1 -0
  11. package/dist/handlers/generate.js +845 -0
  12. package/dist/handlers/generate.js.map +1 -0
  13. package/dist/handlers/health.d.ts +19 -0
  14. package/dist/handlers/health.d.ts.map +1 -0
  15. package/dist/handlers/health.js +401 -0
  16. package/dist/handlers/health.js.map +1 -0
  17. package/dist/handlers/help.d.ts +1 -1
  18. package/dist/handlers/help.d.ts.map +1 -1
  19. package/dist/handlers/help.js +70 -10
  20. package/dist/handlers/help.js.map +1 -1
  21. package/dist/handlers/index.d.ts +2 -0
  22. package/dist/handlers/index.d.ts.map +1 -1
  23. package/dist/handlers/index.js +2 -0
  24. package/dist/handlers/index.js.map +1 -1
  25. package/dist/handlers/review.d.ts +12 -0
  26. package/dist/handlers/review.d.ts.map +1 -1
  27. package/dist/handlers/review.js +220 -21
  28. package/dist/handlers/review.js.map +1 -1
  29. package/dist/handlers/setup.d.ts +1 -0
  30. package/dist/handlers/setup.d.ts.map +1 -1
  31. package/dist/handlers/setup.js +102 -5
  32. package/dist/handlers/setup.js.map +1 -1
  33. package/dist/index.js +6 -2
  34. package/dist/index.js.map +1 -1
  35. package/dist/services/analysisCache.d.ts +110 -0
  36. package/dist/services/analysisCache.d.ts.map +1 -0
  37. package/dist/services/analysisCache.js +233 -0
  38. package/dist/services/analysisCache.js.map +1 -0
  39. package/dist/services/codeAnalyzer.d.ts +73 -22
  40. package/dist/services/codeAnalyzer.d.ts.map +1 -1
  41. package/dist/services/codeAnalyzer.js +462 -44
  42. package/dist/services/codeAnalyzer.js.map +1 -1
  43. package/dist/services/conventionDetector.d.ts +40 -0
  44. package/dist/services/conventionDetector.d.ts.map +1 -0
  45. package/dist/services/conventionDetector.js +465 -0
  46. package/dist/services/conventionDetector.js.map +1 -0
  47. package/dist/services/cursorDirectory.d.ts +29 -2
  48. package/dist/services/cursorDirectory.d.ts.map +1 -1
  49. package/dist/services/cursorDirectory.js +260 -9
  50. package/dist/services/cursorDirectory.js.map +1 -1
  51. package/dist/tools/definitions.d.ts +125 -0
  52. package/dist/tools/definitions.d.ts.map +1 -1
  53. package/dist/tools/definitions.js +62 -1
  54. package/dist/tools/definitions.js.map +1 -1
  55. package/dist/utils/validation.d.ts +2 -2
  56. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"codeAnalyzer.js","sourceRoot":"","sources":["../../src/services/codeAnalyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codeAnalyzer.js","sourceRoot":"","sources":["../../src/services/codeAnalyzer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAa5C,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAEhF,MAAM,qBAAqB,GAAkB;IAC3C,WAAW;IACX;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,YAAY;QACrB,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,oDAAoD;QAC7D,UAAU,EAAE,sDAAsD;QAClE,SAAS,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;QACvC,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,GAAG;QACb,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACpB,WAAW,EAAE,kCAAkC;YAC/C,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,aAAa;SACrB,CAAC;KACH;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,gBAAgB;QACzB,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,2CAA2C;QACpD,UAAU,EAAE,wCAAwC;QACpD,SAAS,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;QACvC,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,GAAG;QACb,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACpB,WAAW,EAAE,oCAAoC;YACjD,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,eAAe;SACvB,CAAC;KACH;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,0BAA0B;QACnC,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,uEAAuE;QAChF,UAAU,EAAE,iDAAiD;QAC7D,SAAS,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC;QACrD,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,GAAG;QACb,MAAM,EAAE,SAAS;KAClB;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,uCAAuC;QAChD,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,6BAA6B;QACtC,UAAU,EAAE,8CAA8C;QAC1D,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,GAAG;QACb,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACpB,WAAW,EAAE,sDAAsD;YACnE,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,iCAAiC;SACzC,CAAC;KACH;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,mDAAmD;QAC5D,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,4BAA4B;QACrC,UAAU,EAAE,wCAAwC;QACpD,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,GAAG;QACb,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACpB,WAAW,EAAE,qDAAqD;YAClE,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,8BAA8B;SACtC,CAAC;KACH;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,+EAA+E;QACxF,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,yDAAyD;QAClE,UAAU,EAAE,qCAAqC;QACjD,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,GAAG;QACb,MAAM,EAAE,SAAS;KAClB;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,sCAAsC;QAC/C,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,oDAAoD;QAC7D,UAAU,EAAE,sCAAsC;QAClD,SAAS,EAAE,CAAC,QAAQ,CAAC;QACrB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,GAAG;QACb,MAAM,EAAE,SAAS;KAClB;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,2CAA2C;QACpD,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,kCAAkC;QAC3C,UAAU,EAAE,8BAA8B;QAC1C,SAAS,EAAE,CAAC,QAAQ,CAAC;QACrB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,GAAG;QACb,MAAM,EAAE,SAAS;KAClB;IAED,cAAc;IACd;QACE,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,aAAa;QACvB,OAAO,EAAE,+CAA+C;QACxD,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,kEAAkE;QAC3E,UAAU,EAAE,iDAAiD;QAC7D,SAAS,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;QACvC,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;KAClB;IACD;QACE,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,aAAa;QACvB,OAAO,EAAE,iCAAiC;QAC1C,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,gDAAgD;QACzD,UAAU,EAAE,oEAAoE;QAChF,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;KAClB;IACD;QACE,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,aAAa;QACvB,OAAO,EAAE,uDAAuD;QAChE,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,gDAAgD;QACzD,UAAU,EAAE,qCAAqC;QACjD,SAAS,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC;QACrD,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;KAClB;IACD;QACE,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,aAAa;QACvB,OAAO,EAAE,sDAAsD;QAC/D,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,2CAA2C;QACpD,UAAU,EAAE,yDAAyD;QACrE,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;KAClB;IACD;QACE,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,aAAa;QACvB,OAAO,EAAE,kCAAkC;QAC3C,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,uCAAuC;QAChD,UAAU,EAAE,wDAAwD;QACpE,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;KAClB;IAED,mBAAmB;IACnB;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,kBAAkB;QAC5B,OAAO,EAAE,iCAAiC;QAC1C,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,iDAAiD;QAC1D,UAAU,EAAE,0DAA0D;QACtE,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACpB,WAAW,EAAE,0BAA0B;YACvC,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,yCAAyC;SACjE,CAAC;KACH;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,kBAAkB;QAC5B,OAAO,EAAE,2CAA2C;QACpD,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,mDAAmD;QAC5D,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;KAClB;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,kBAAkB;QAC5B,OAAO,EAAE,eAAe;QACxB,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,qDAAqD;QAC9D,SAAS,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;QACvC,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,GAAG;QACb,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;YACf,WAAW,EAAE,2BAA2B;YACxC,MAAM,EAAE,WAAW;YACnB,KAAK,EAAE,EAAE;SACV,CAAC;KACH;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,kBAAkB;QAC5B,OAAO,EAAE,kBAAkB;QAC3B,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,8BAA8B;QACvC,UAAU,EAAE,iDAAiD;QAC7D,SAAS,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;QACvC,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACpB,WAAW,EAAE,wBAAwB;YACrC,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC;SACvC,CAAC;KACH;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,kBAAkB;QAC5B,OAAO,EAAE,UAAU;QACnB,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,0DAA0D;QACnE,SAAS,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;QACvC,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;YACf,WAAW,EAAE,qBAAqB;YAClC,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,KAAK;SACb,CAAC;KACH;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,kBAAkB;QAC5B,OAAO,EAAE,UAAU;QACnB,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,8DAA8D;QACvE,SAAS,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;QACvC,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;YACf,WAAW,EAAE,qBAAqB;YAClC,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,KAAK;SACb,CAAC;KACH;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,kBAAkB;QAC5B,OAAO,EAAE,gDAAgD;QACzD,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,wCAAwC;QACjD,UAAU,EAAE,0CAA0C;QACtD,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;KAClB;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,kBAAkB;QAC5B,OAAO,EAAE,kCAAkC;QAC3C,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,iDAAiD;QAC1D,UAAU,EAAE,0CAA0C;QACtD,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;KAClB;IAED,eAAe;IACf;QACE,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,cAAc;QACxB,OAAO,EAAE,4CAA4C;QACrD,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,8CAA8C;QACvD,UAAU,EAAE,yCAAyC;QACrD,SAAS,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;QACvC,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;KAClB;IACD;QACE,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,cAAc;QACxB,OAAO,EAAE,sDAAsD;QAC/D,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,iEAAiE;QAC1E,UAAU,EAAE,uCAAuC;QACnD,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;KAClB;IACD;QACE,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,cAAc;QACxB,OAAO,EAAE,mCAAmC;QAC5C,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,2CAA2C;QACpD,UAAU,EAAE,4CAA4C;QACxD,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;KAClB;IAED,kBAAkB;IAClB;QACE,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,aAAa;QACtB,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,yDAAyD;QAClE,UAAU,EAAE,2CAA2C;QACvD,SAAS,EAAE,CAAC,QAAQ,CAAC;QACrB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;KAClB;IACD;QACE,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,aAAa;QACtB,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,gDAAgD;QACzD,UAAU,EAAE,4CAA4C;QACxD,SAAS,EAAE,CAAC,QAAQ,CAAC;QACrB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;KAClB;IACD;QACE,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,6BAA6B;QACtC,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,qCAAqC;QAC9C,UAAU,EAAE,yCAAyC;QACrD,SAAS,EAAE,CAAC,QAAQ,CAAC;QACrB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,GAAG;QACb,MAAM,EAAE,SAAS;KAClB;IACD;QACE,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,2BAA2B;QACpC,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,iDAAiD;QAC1D,UAAU,EAAE,kCAAkC;QAC9C,SAAS,EAAE,CAAC,QAAQ,CAAC;QACrB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;KAClB;IAED,cAAc;IACd;QACE,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,0BAA0B;QACnC,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,qDAAqD;QAC9D,UAAU,EAAE,mCAAmC;QAC/C,SAAS,EAAE,CAAC,IAAI,CAAC;QACjB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;KAClB;IACD;QACE,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,aAAa;QACtB,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,gCAAgC;QACzC,UAAU,EAAE,oCAAoC;QAChD,SAAS,EAAE,CAAC,IAAI,CAAC;QACjB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;KAClB;IACD;QACE,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,0DAA0D;QACnE,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,uCAAuC;QAChD,UAAU,EAAE,oCAAoC;QAChD,SAAS,EAAE,CAAC,IAAI,CAAC;QACjB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;KAClB;IAED,gBAAgB;IAChB;QACE,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,eAAe;QACxB,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,gCAAgC;QACzC,UAAU,EAAE,0DAA0D;QACtE,SAAS,EAAE,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;KAClB;IACD;QACE,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,sBAAsB;QAC/B,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,iDAAiD;QAC1D,UAAU,EAAE,uCAAuC;QACnD,SAAS,EAAE,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;KAClB;IACD;QACE,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,cAAc;QACvB,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,8DAA8D;QACvE,UAAU,EAAE,gDAAgD;QAC5D,SAAS,EAAE,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;KAClB;CACF,CAAC;AAEF,gFAAgF;AAChF,qCAAqC;AACrC,gFAAgF;AAEhF;;GAEG;AACH,MAAM,YAAY;IACR,YAAY,GAAkB,CAAC,GAAG,qBAAqB,CAAC,CAAC;IACzD,SAAS,GAAkB,EAAE,CAAC;IAC9B,YAAY,GAAkB,EAAE,CAAC;IAEzC;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,WAAW;QACT,MAAM,GAAG,GAAG;YACV,GAAG,IAAI,CAAC,YAAY;YACpB,GAAG,IAAI,CAAC,SAAS;YACjB,GAAG,IAAI,CAAC,YAAY;SACrB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAEzB,kDAAkD;QAClD,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,IAA0C;QACzD,MAAM,QAAQ,GAAgB;YAC5B,GAAG,IAAI;YACP,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,MAAM;SACf,CAAC;QAEF,oCAAoC;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE9B,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,IAA0C;QAC5D,MAAM,QAAQ,GAAgB;YAC5B,GAAG,IAAI;YACP,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,SAAS;SAClB,CAAC;QAEF,oCAAoC;QACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEjC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,KAAkD;QACrE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,MAAc;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;QAC1D,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,MAAc;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;QAC1D,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YAChD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAChE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,EAAE,CAAC;IACrE,CAAC;CACF;AAED,gCAAgC;AAChC,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;AAE/C,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF,SAAS,cAAc,CAAC,IAAY,EAAE,QAAgB;IACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IACvD,MAAM,OAAO,GAA2B;QACtC,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,QAAQ;KACf,CAAC;IACF,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;AACnC,CAAC;AAED,SAAS,aAAa,CAAC,OAAe,EAAE,KAAa;IACnD,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,IAAY,EACZ,OAAe,EACf,QAAkF,KAAK;IAEvF,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAgB,EAAE,CAAC;IAE/B,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAEzF,qCAAqC;IACrC,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;IAE5C,gCAAgC;IAChC,MAAM,YAAY,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAEzD,qCAAqC;IACrC,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QAC7C,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;QAC7D,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;QACvE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE;QAC7B,UAAU,EAAE,QAAQ,CAAC,MAAM;QAC3B,eAAe,EAAE,eAAe,CAAC,MAAM;QACvC,KAAK;QACL,QAAQ;KACT,CAAC,CAAC;IAEH,sBAAsB;IACtB,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,SAAS,CAAC,iCAAiC;QAExE,IAAI,KAAK,CAAC;QACV,oBAAoB;QACpB,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;QAE3B,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACrD,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACjD,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAE7B,kCAAkC;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAExE,MAAM,CAAC,IAAI,CAAC;gBACV,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,IAAI,EAAE,IAAI,CAAC,EAAE;gBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,IAAI;gBACJ,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC;gBACnC,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,QAAQ;gBACR,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;YAEH,iCAAiC;YACjC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAE5B,+CAA+C;YAC/C,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC3C,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAED,mCAAmC;IACnC,MAAM,aAAa,GAAkC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;IACtG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACnB,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACtE,IAAI,OAAO,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC;QAClC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,oBAAoB;IACpB,MAAM,OAAO,GAAG;QACd,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,MAAM;QACzD,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,MAAM;QAC7D,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,MAAM;QACtD,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,MAAM;KACpE,CAAC;IAEF,oCAAoC;IACpC,IAAI,KAAK,GAAG,GAAG,CAAC;IAChB,KAAK,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC;IAC7B,KAAK,IAAI,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC9B,KAAK,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;IAC1B,KAAK,IAAI,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC;IACnC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAE1C,6BAA6B;IAC7B,MAAM,UAAU,GAAG,MAAM;SACtB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;SACvB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAS,CAAC;SACrB,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;IAElF,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE;QAC/B,IAAI;QACJ,WAAW,EAAE,MAAM,CAAC,MAAM;QAC1B,KAAK;QACL,mBAAmB,EAAE,UAAU,CAAC,MAAM;QACtC,YAAY;KACb,CAAC,CAAC;IAEH,OAAO;QACL,IAAI;QACJ,QAAQ;QACR,MAAM;QACN,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACxB,OAAO;QACP,UAAU,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QAC1D,YAAY;KACb,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,KAA+C,EAC/C,QAAkF,KAAK;IAWvF,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IAEtE,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACzE,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;QACrC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;QAC3E,CAAC,CAAC,GAAG,CAAC;IAER,MAAM,OAAO,GAAG;QACd,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7D,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACzD,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;KACxE,CAAC;IAEF,MAAM,YAAY,GAAG;QACnB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;QACpE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9D,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;KACrE,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,OAAO;QACd,OAAO,EAAE;YACP,UAAU,EAAE,OAAO,CAAC,MAAM;YAC1B,WAAW;YACX,YAAY;YACZ,OAAO;YACP,YAAY;SACb;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAsB;IACzD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7C,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,QAAQ,iBAAiB,MAAM,CAAC,KAAK,MAAM,CAAC,CAAC;IAChF,KAAK,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,YAAY,CAAC,OAAO,aAAa,MAAM,CAAC,YAAY,CAAC,IAAI,UAAU,MAAM,CAAC,YAAY,CAAC,OAAO,UAAU,CAAC,CAAC;IAClJ,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACnC,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxD,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEzB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACnC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACrC,KAAK,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAErD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAEzE,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,SAAS,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACxE,IAAI,KAAK,CAAC,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACpD,IAAI,KAAK,CAAC,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;YACxD,IAAI,KAAK,CAAC,UAAU;gBAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;YAC7D,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACnB,KAAK,CAAC,IAAI,CAAC,uBAAuB,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;gBAChE,KAAK,CAAC,IAAI,CAAC,kBAAkB,KAAK,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;gBACxD,KAAK,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC;YACtD,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,qCAAqC;QACrC,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YAC3C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACpC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC;gBACvC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,MAAM,UAAU,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;YACvD,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,gFAAgF;AAChF,oEAAoE;AACpE,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CACxC,MAAc,EACd,OAAe,EACf,QAAgB;IAEhB,wEAAwE;IACxE,4BAA4B;IAC5B,kBAAkB;IAClB,MAAM;IACN,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,4EAA4E,CAAC,CAAC;IAEjH,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAkB,CAAC;IAClD,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAEnC,IAAI,CAAC;QACH,yBAAyB;QACzB,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC5D,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QAE7B,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;QAEhE,wCAAwC;QACxC,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACtE,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,gBAAgB,MAAM,EAAE,CAAC;QAE9D,gCAAgC;QAChC,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;QAExC,OAAO;YACL,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,QAA4B;YACtC,OAAO;YACP,QAAQ;YACR,OAAO;YACP,UAAU;YACV,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,GAAG,EAAE,+CAA+C;YAC9D,MAAM,EAAE,MAAM;SACf,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Convention Detector Service
3
+ *
4
+ * Detects project code conventions by analyzing:
5
+ * - ESLint, Prettier, EditorConfig configurations
6
+ * - Existing code patterns in the project
7
+ * - TSConfig settings
8
+ */
9
+ export interface CodeConventions {
10
+ indentation: 'tabs' | 'spaces';
11
+ indentSize: number;
12
+ quotes: 'single' | 'double';
13
+ semicolons: boolean;
14
+ trailingComma: 'none' | 'es5' | 'all';
15
+ componentNaming: 'PascalCase' | 'camelCase' | 'kebab-case';
16
+ fileNaming: 'PascalCase' | 'camelCase' | 'kebab-case' | 'snake_case';
17
+ reactStyle: 'functional' | 'class' | 'mixed';
18
+ propsStyle: 'interface' | 'type' | 'inline';
19
+ stateManagement: 'useState' | 'redux' | 'zustand' | 'jotai' | 'context' | 'none';
20
+ strictMode: boolean;
21
+ testFramework: 'jest' | 'vitest' | 'mocha' | 'none';
22
+ testLocation: 'alongside' | '__tests__' | 'tests';
23
+ importStyle: 'named' | 'default' | 'mixed';
24
+ importOrder: string[];
25
+ sources: string[];
26
+ confidence: 'high' | 'medium' | 'low';
27
+ }
28
+ /**
29
+ * Detect all code conventions for a project
30
+ */
31
+ export declare function detectConventions(projectPath: string): CodeConventions;
32
+ /**
33
+ * Format code according to conventions
34
+ */
35
+ export declare function formatWithConventions(code: string, conventions: CodeConventions): string;
36
+ /**
37
+ * Get convention summary as markdown
38
+ */
39
+ export declare function getConventionsSummary(conventions: CodeConventions): string;
40
+ //# sourceMappingURL=conventionDetector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conventionDetector.d.ts","sourceRoot":"","sources":["../../src/services/conventionDetector.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,MAAM,WAAW,eAAe;IAE9B,WAAW,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;IAGtC,eAAe,EAAE,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC;IAC3D,UAAU,EAAE,YAAY,GAAG,WAAW,GAAG,YAAY,GAAG,YAAY,CAAC;IAGrE,UAAU,EAAE,YAAY,GAAG,OAAO,GAAG,OAAO,CAAC;IAC7C,UAAU,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC5C,eAAe,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IAGjF,UAAU,EAAE,OAAO,CAAC;IAGpB,aAAa,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IACpD,YAAY,EAAE,WAAW,GAAG,WAAW,GAAG,OAAO,CAAC;IAGlD,WAAW,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;IAC3C,WAAW,EAAE,MAAM,EAAE,CAAC;IAGtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;CACvC;AA+VD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,CAmEtE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,GAAG,MAAM,CA2BxF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,eAAe,GAAG,MAAM,CAyB1E"}
@@ -0,0 +1,465 @@
1
+ /**
2
+ * Convention Detector Service
3
+ *
4
+ * Detects project code conventions by analyzing:
5
+ * - ESLint, Prettier, EditorConfig configurations
6
+ * - Existing code patterns in the project
7
+ * - TSConfig settings
8
+ */
9
+ import * as fs from 'fs';
10
+ import * as path from 'path';
11
+ import { logger } from '../utils/logger.js';
12
+ const DEFAULT_CONVENTIONS = {
13
+ indentation: 'spaces',
14
+ indentSize: 2,
15
+ quotes: 'single',
16
+ semicolons: true,
17
+ trailingComma: 'es5',
18
+ componentNaming: 'PascalCase',
19
+ fileNaming: 'PascalCase',
20
+ reactStyle: 'functional',
21
+ propsStyle: 'interface',
22
+ stateManagement: 'useState',
23
+ strictMode: true,
24
+ testFramework: 'none',
25
+ testLocation: '__tests__',
26
+ importStyle: 'named',
27
+ importOrder: ['react', 'libraries', 'components', 'utils', 'styles'],
28
+ sources: [],
29
+ confidence: 'low'
30
+ };
31
+ /**
32
+ * Read and parse JSON file safely
33
+ */
34
+ function readJsonFile(filePath) {
35
+ try {
36
+ if (fs.existsSync(filePath)) {
37
+ const content = fs.readFileSync(filePath, 'utf-8');
38
+ // Remove comments for JSON files that support them (like tsconfig)
39
+ const cleaned = content.replace(/\/\/.*$/gm, '').replace(/\/\*[\s\S]*?\*\//g, '');
40
+ return JSON.parse(cleaned);
41
+ }
42
+ }
43
+ catch (error) {
44
+ logger.debug(`Failed to parse ${filePath}`, { error });
45
+ }
46
+ return null;
47
+ }
48
+ /**
49
+ * Parse EditorConfig file
50
+ */
51
+ function parseEditorConfig(projectPath) {
52
+ const editorConfigPath = path.join(projectPath, '.editorconfig');
53
+ const conventions = {};
54
+ try {
55
+ if (fs.existsSync(editorConfigPath)) {
56
+ const content = fs.readFileSync(editorConfigPath, 'utf-8');
57
+ // Parse indent_style
58
+ const indentStyleMatch = content.match(/indent_style\s*=\s*(tab|space)/i);
59
+ if (indentStyleMatch) {
60
+ conventions.indentation = indentStyleMatch[1].toLowerCase() === 'tab' ? 'tabs' : 'spaces';
61
+ }
62
+ // Parse indent_size
63
+ const indentSizeMatch = content.match(/indent_size\s*=\s*(\d+)/i);
64
+ if (indentSizeMatch) {
65
+ conventions.indentSize = parseInt(indentSizeMatch[1], 10);
66
+ }
67
+ }
68
+ }
69
+ catch (error) {
70
+ logger.debug('Failed to parse .editorconfig', { error });
71
+ }
72
+ return conventions;
73
+ }
74
+ /**
75
+ * Parse Prettier configuration
76
+ */
77
+ function parsePrettierConfig(projectPath) {
78
+ const conventions = {};
79
+ // Check various Prettier config locations
80
+ const prettierFiles = [
81
+ '.prettierrc',
82
+ '.prettierrc.json',
83
+ '.prettierrc.js',
84
+ '.prettierrc.cjs',
85
+ 'prettier.config.js',
86
+ 'prettier.config.cjs'
87
+ ];
88
+ for (const file of prettierFiles) {
89
+ const filePath = path.join(projectPath, file);
90
+ if (file.endsWith('.json') || file === '.prettierrc') {
91
+ const config = readJsonFile(filePath);
92
+ if (config) {
93
+ if (config.useTabs !== undefined) {
94
+ conventions.indentation = config.useTabs ? 'tabs' : 'spaces';
95
+ }
96
+ if (config.tabWidth !== undefined) {
97
+ conventions.indentSize = config.tabWidth;
98
+ }
99
+ if (config.singleQuote !== undefined) {
100
+ conventions.quotes = config.singleQuote ? 'single' : 'double';
101
+ }
102
+ if (config.semi !== undefined) {
103
+ conventions.semicolons = config.semi;
104
+ }
105
+ if (config.trailingComma !== undefined) {
106
+ conventions.trailingComma = config.trailingComma;
107
+ }
108
+ return conventions;
109
+ }
110
+ }
111
+ }
112
+ // Check package.json for prettier config
113
+ const packageJson = readJsonFile(path.join(projectPath, 'package.json'));
114
+ if (packageJson?.prettier) {
115
+ const config = packageJson.prettier;
116
+ if (config.useTabs !== undefined)
117
+ conventions.indentation = config.useTabs ? 'tabs' : 'spaces';
118
+ if (config.tabWidth !== undefined)
119
+ conventions.indentSize = config.tabWidth;
120
+ if (config.singleQuote !== undefined)
121
+ conventions.quotes = config.singleQuote ? 'single' : 'double';
122
+ if (config.semi !== undefined)
123
+ conventions.semicolons = config.semi;
124
+ if (config.trailingComma !== undefined)
125
+ conventions.trailingComma = config.trailingComma;
126
+ }
127
+ return conventions;
128
+ }
129
+ /**
130
+ * Parse ESLint configuration
131
+ */
132
+ function parseEslintConfig(projectPath) {
133
+ const conventions = {};
134
+ const eslintFiles = [
135
+ '.eslintrc.json',
136
+ '.eslintrc.js',
137
+ '.eslintrc.cjs',
138
+ 'eslint.config.js',
139
+ 'eslint.config.mjs'
140
+ ];
141
+ for (const file of eslintFiles) {
142
+ const filePath = path.join(projectPath, file);
143
+ if (file.endsWith('.json')) {
144
+ const config = readJsonFile(filePath);
145
+ if (config?.rules) {
146
+ // Check quote style
147
+ if (config.rules.quotes) {
148
+ const quoteRule = Array.isArray(config.rules.quotes)
149
+ ? config.rules.quotes[1]
150
+ : config.rules.quotes;
151
+ if (quoteRule === 'single' || quoteRule === 'double') {
152
+ conventions.quotes = quoteRule;
153
+ }
154
+ }
155
+ // Check semicolons
156
+ if (config.rules.semi) {
157
+ const semiRule = Array.isArray(config.rules.semi)
158
+ ? config.rules.semi[1]
159
+ : config.rules.semi;
160
+ conventions.semicolons = semiRule === 'always';
161
+ }
162
+ // Check indent
163
+ if (config.rules.indent) {
164
+ const indentRule = Array.isArray(config.rules.indent)
165
+ ? config.rules.indent[1]
166
+ : config.rules.indent;
167
+ if (indentRule === 'tab') {
168
+ conventions.indentation = 'tabs';
169
+ }
170
+ else if (typeof indentRule === 'number') {
171
+ conventions.indentation = 'spaces';
172
+ conventions.indentSize = indentRule;
173
+ }
174
+ }
175
+ return conventions;
176
+ }
177
+ }
178
+ }
179
+ return conventions;
180
+ }
181
+ /**
182
+ * Parse TypeScript configuration
183
+ */
184
+ function parseTsConfig(projectPath) {
185
+ const conventions = {};
186
+ const tsConfig = readJsonFile(path.join(projectPath, 'tsconfig.json'));
187
+ if (tsConfig?.compilerOptions) {
188
+ const opts = tsConfig.compilerOptions;
189
+ // Check strict mode
190
+ conventions.strictMode = opts.strict === true;
191
+ // Check for additional strict flags
192
+ if (opts.noImplicitAny || opts.strictNullChecks || opts.strictFunctionTypes) {
193
+ conventions.strictMode = true;
194
+ }
195
+ }
196
+ return conventions;
197
+ }
198
+ /**
199
+ * Detect state management from dependencies
200
+ */
201
+ function detectStateManagement(projectPath) {
202
+ const packageJson = readJsonFile(path.join(projectPath, 'package.json'));
203
+ if (!packageJson?.dependencies && !packageJson?.devDependencies) {
204
+ return 'useState';
205
+ }
206
+ const deps = { ...packageJson.dependencies, ...packageJson.devDependencies };
207
+ if (deps['zustand'])
208
+ return 'zustand';
209
+ if (deps['jotai'])
210
+ return 'jotai';
211
+ if (deps['@reduxjs/toolkit'] || deps['redux'] || deps['react-redux'])
212
+ return 'redux';
213
+ if (deps['recoil'])
214
+ return 'context'; // Similar pattern to context
215
+ return 'useState';
216
+ }
217
+ /**
218
+ * Detect test framework from dependencies
219
+ */
220
+ function detectTestFramework(projectPath) {
221
+ const packageJson = readJsonFile(path.join(projectPath, 'package.json'));
222
+ if (!packageJson?.dependencies && !packageJson?.devDependencies) {
223
+ return 'none';
224
+ }
225
+ const deps = { ...packageJson.dependencies, ...packageJson.devDependencies };
226
+ if (deps['vitest'])
227
+ return 'vitest';
228
+ if (deps['jest'])
229
+ return 'jest';
230
+ if (deps['mocha'])
231
+ return 'mocha';
232
+ return 'none';
233
+ }
234
+ /**
235
+ * Detect test location by scanning project
236
+ */
237
+ function detectTestLocation(projectPath) {
238
+ if (fs.existsSync(path.join(projectPath, '__tests__')))
239
+ return '__tests__';
240
+ if (fs.existsSync(path.join(projectPath, 'tests')))
241
+ return 'tests';
242
+ if (fs.existsSync(path.join(projectPath, 'test')))
243
+ return 'tests';
244
+ // Check for .test. or .spec. files alongside source
245
+ const srcPath = path.join(projectPath, 'src');
246
+ if (fs.existsSync(srcPath)) {
247
+ try {
248
+ const files = fs.readdirSync(srcPath);
249
+ for (const file of files) {
250
+ if (file.includes('.test.') || file.includes('.spec.')) {
251
+ return 'alongside';
252
+ }
253
+ }
254
+ }
255
+ catch { /* ignore */ }
256
+ }
257
+ return '__tests__';
258
+ }
259
+ /**
260
+ * Analyze existing code patterns
261
+ */
262
+ function analyzeCodePatterns(projectPath) {
263
+ const conventions = {};
264
+ const srcPath = path.join(projectPath, 'src');
265
+ if (!fs.existsSync(srcPath))
266
+ return conventions;
267
+ try {
268
+ const files = fs.readdirSync(srcPath).filter(f => f.endsWith('.tsx') || f.endsWith('.ts') || f.endsWith('.jsx') || f.endsWith('.js'));
269
+ let functionalCount = 0;
270
+ let classCount = 0;
271
+ let interfaceCount = 0;
272
+ let typeCount = 0;
273
+ let singleQuotes = 0;
274
+ let doubleQuotes = 0;
275
+ let withSemicolons = 0;
276
+ let withoutSemicolons = 0;
277
+ for (const file of files.slice(0, 10)) {
278
+ try {
279
+ const content = fs.readFileSync(path.join(srcPath, file), 'utf-8');
280
+ // Check component style
281
+ if (/const\s+\w+\s*[:=]\s*(?:React\.)?FC|function\s+\w+\s*\(/.test(content)) {
282
+ functionalCount++;
283
+ }
284
+ if (/class\s+\w+\s+extends\s+(?:React\.)?Component/.test(content)) {
285
+ classCount++;
286
+ }
287
+ // Check props style
288
+ if (/interface\s+\w+Props/.test(content))
289
+ interfaceCount++;
290
+ if (/type\s+\w+Props\s*=/.test(content))
291
+ typeCount++;
292
+ // Check quotes (simple heuristic)
293
+ const singleMatches = (content.match(/'/g) || []).length;
294
+ const doubleMatches = (content.match(/"/g) || []).length;
295
+ if (singleMatches > doubleMatches)
296
+ singleQuotes++;
297
+ else
298
+ doubleQuotes++;
299
+ // Check semicolons
300
+ const lines = content.split('\n').filter(l => l.trim().length > 0);
301
+ const semiLines = lines.filter(l => l.trim().endsWith(';')).length;
302
+ if (semiLines > lines.length * 0.3)
303
+ withSemicolons++;
304
+ else
305
+ withoutSemicolons++;
306
+ }
307
+ catch { /* ignore */ }
308
+ }
309
+ // Determine patterns from analysis
310
+ if (functionalCount > classCount)
311
+ conventions.reactStyle = 'functional';
312
+ else if (classCount > functionalCount)
313
+ conventions.reactStyle = 'class';
314
+ else
315
+ conventions.reactStyle = 'mixed';
316
+ if (interfaceCount > typeCount)
317
+ conventions.propsStyle = 'interface';
318
+ else if (typeCount > interfaceCount)
319
+ conventions.propsStyle = 'type';
320
+ if (singleQuotes > doubleQuotes)
321
+ conventions.quotes = 'single';
322
+ else
323
+ conventions.quotes = 'double';
324
+ conventions.semicolons = withSemicolons > withoutSemicolons;
325
+ // Detect file naming from actual files
326
+ const componentFiles = files.filter(f => f.endsWith('.tsx') || f.endsWith('.jsx'));
327
+ if (componentFiles.length > 0) {
328
+ const sample = componentFiles[0].replace(/\.(tsx|jsx)$/, '');
329
+ if (/^[A-Z][a-zA-Z]+$/.test(sample))
330
+ conventions.fileNaming = 'PascalCase';
331
+ else if (/^[a-z][a-zA-Z]+$/.test(sample))
332
+ conventions.fileNaming = 'camelCase';
333
+ else if (/^[a-z]+-[a-z-]+$/.test(sample))
334
+ conventions.fileNaming = 'kebab-case';
335
+ else if (/^[a-z]+_[a-z_]+$/.test(sample))
336
+ conventions.fileNaming = 'snake_case';
337
+ }
338
+ }
339
+ catch (error) {
340
+ logger.debug('Failed to analyze code patterns', { error });
341
+ }
342
+ return conventions;
343
+ }
344
+ /**
345
+ * Detect all code conventions for a project
346
+ */
347
+ export function detectConventions(projectPath) {
348
+ const sources = [];
349
+ let conventions = { ...DEFAULT_CONVENTIONS };
350
+ // Parse EditorConfig
351
+ const editorConfig = parseEditorConfig(projectPath);
352
+ if (Object.keys(editorConfig).length > 0) {
353
+ conventions = { ...conventions, ...editorConfig };
354
+ sources.push('.editorconfig');
355
+ }
356
+ // Parse Prettier (overrides EditorConfig)
357
+ const prettierConfig = parsePrettierConfig(projectPath);
358
+ if (Object.keys(prettierConfig).length > 0) {
359
+ conventions = { ...conventions, ...prettierConfig };
360
+ sources.push('prettier');
361
+ }
362
+ // Parse ESLint
363
+ const eslintConfig = parseEslintConfig(projectPath);
364
+ if (Object.keys(eslintConfig).length > 0) {
365
+ conventions = { ...conventions, ...eslintConfig };
366
+ sources.push('eslint');
367
+ }
368
+ // Parse TSConfig
369
+ const tsConfig = parseTsConfig(projectPath);
370
+ if (Object.keys(tsConfig).length > 0) {
371
+ conventions = { ...conventions, ...tsConfig };
372
+ sources.push('tsconfig');
373
+ }
374
+ // Detect from package.json dependencies
375
+ conventions.stateManagement = detectStateManagement(projectPath);
376
+ conventions.testFramework = detectTestFramework(projectPath);
377
+ conventions.testLocation = detectTestLocation(projectPath);
378
+ // Analyze code patterns (lowest priority, fill in gaps)
379
+ const codePatterns = analyzeCodePatterns(projectPath);
380
+ for (const [key, value] of Object.entries(codePatterns)) {
381
+ if (value !== undefined && conventions[key] === DEFAULT_CONVENTIONS[key]) {
382
+ conventions[key] = value;
383
+ }
384
+ }
385
+ if (Object.keys(codePatterns).length > 0) {
386
+ sources.push('code-analysis');
387
+ }
388
+ // Set confidence based on sources
389
+ conventions.sources = sources;
390
+ if (sources.includes('prettier') || sources.includes('eslint')) {
391
+ conventions.confidence = 'high';
392
+ }
393
+ else if (sources.includes('.editorconfig') || sources.includes('tsconfig')) {
394
+ conventions.confidence = 'medium';
395
+ }
396
+ else if (sources.includes('code-analysis')) {
397
+ conventions.confidence = 'low';
398
+ }
399
+ logger.debug('Detected conventions', {
400
+ sources,
401
+ confidence: conventions.confidence,
402
+ indentation: conventions.indentation,
403
+ quotes: conventions.quotes
404
+ });
405
+ return conventions;
406
+ }
407
+ /**
408
+ * Format code according to conventions
409
+ */
410
+ export function formatWithConventions(code, conventions) {
411
+ let formatted = code;
412
+ // Apply indentation
413
+ if (conventions.indentation === 'tabs') {
414
+ formatted = formatted.replace(/^( {2,})/gm, (match) => {
415
+ return '\t'.repeat(Math.floor(match.length / 2));
416
+ });
417
+ }
418
+ else {
419
+ const indent = ' '.repeat(conventions.indentSize);
420
+ formatted = formatted.replace(/^\t+/gm, (match) => {
421
+ return indent.repeat(match.length);
422
+ });
423
+ }
424
+ // Apply quotes (simple replacement - doesn't handle complex cases)
425
+ if (conventions.quotes === 'single') {
426
+ // Only replace in simple string cases, avoid JSX attributes
427
+ formatted = formatted.replace(/(?<!<[^>]*)"([^"]*)"(?![^<]*>)/g, "'$1'");
428
+ }
429
+ else {
430
+ formatted = formatted.replace(/(?<!<[^>])'([^'])'(?![^<]*>)/g, '"$1"');
431
+ }
432
+ // Note: Full formatting should use Prettier/ESLint programmatically
433
+ // This is a basic implementation for template generation
434
+ return formatted;
435
+ }
436
+ /**
437
+ * Get convention summary as markdown
438
+ */
439
+ export function getConventionsSummary(conventions) {
440
+ return `
441
+ ## Detected Conventions
442
+
443
+ **Confidence:** ${conventions.confidence}
444
+ **Sources:** ${conventions.sources.join(', ') || 'defaults'}
445
+
446
+ ### Formatting
447
+ - Indentation: ${conventions.indentation} (${conventions.indentSize})
448
+ - Quotes: ${conventions.quotes}
449
+ - Semicolons: ${conventions.semicolons ? 'yes' : 'no'}
450
+ - Trailing Comma: ${conventions.trailingComma}
451
+
452
+ ### React
453
+ - Component Style: ${conventions.reactStyle}
454
+ - Props Definition: ${conventions.propsStyle}
455
+ - State Management: ${conventions.stateManagement}
456
+
457
+ ### TypeScript
458
+ - Strict Mode: ${conventions.strictMode ? 'yes' : 'no'}
459
+
460
+ ### Testing
461
+ - Framework: ${conventions.testFramework}
462
+ - Location: ${conventions.testLocation}
463
+ `.trim();
464
+ }
465
+ //# sourceMappingURL=conventionDetector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conventionDetector.js","sourceRoot":"","sources":["../../src/services/conventionDetector.ts"],"names":[],"mappings":"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"}