lhci-ai-assistant 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 (79) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +228 -0
  3. package/dist/ai/copilot.d.ts +40 -0
  4. package/dist/ai/copilot.d.ts.map +1 -0
  5. package/dist/ai/copilot.js +176 -0
  6. package/dist/ai/copilot.js.map +1 -0
  7. package/dist/ai/local.d.ts +11 -0
  8. package/dist/ai/local.d.ts.map +1 -0
  9. package/dist/ai/local.js +199 -0
  10. package/dist/ai/local.js.map +1 -0
  11. package/dist/ai/openai.d.ts +39 -0
  12. package/dist/ai/openai.d.ts.map +1 -0
  13. package/dist/ai/openai.js +113 -0
  14. package/dist/ai/openai.js.map +1 -0
  15. package/dist/ai/prompt.d.ts +36 -0
  16. package/dist/ai/prompt.d.ts.map +1 -0
  17. package/dist/ai/prompt.js +190 -0
  18. package/dist/ai/prompt.js.map +1 -0
  19. package/dist/analyzer.d.ts +19 -0
  20. package/dist/analyzer.d.ts.map +1 -0
  21. package/dist/analyzer.js +264 -0
  22. package/dist/analyzer.js.map +1 -0
  23. package/dist/autofix/generator.d.ts +27 -0
  24. package/dist/autofix/generator.d.ts.map +1 -0
  25. package/dist/autofix/generator.js +153 -0
  26. package/dist/autofix/generator.js.map +1 -0
  27. package/dist/autofix/patterns.d.ts +34 -0
  28. package/dist/autofix/patterns.d.ts.map +1 -0
  29. package/dist/autofix/patterns.js +247 -0
  30. package/dist/autofix/patterns.js.map +1 -0
  31. package/dist/cli.d.ts +3 -0
  32. package/dist/cli.d.ts.map +1 -0
  33. package/dist/cli.js +159 -0
  34. package/dist/cli.js.map +1 -0
  35. package/dist/config.d.ts +19 -0
  36. package/dist/config.d.ts.map +1 -0
  37. package/dist/config.js +109 -0
  38. package/dist/config.js.map +1 -0
  39. package/dist/github/diff-fetcher.d.ts +43 -0
  40. package/dist/github/diff-fetcher.d.ts.map +1 -0
  41. package/dist/github/diff-fetcher.js +183 -0
  42. package/dist/github/diff-fetcher.js.map +1 -0
  43. package/dist/github/pr-commenter.d.ts +18 -0
  44. package/dist/github/pr-commenter.d.ts.map +1 -0
  45. package/dist/github/pr-commenter.js +229 -0
  46. package/dist/github/pr-commenter.js.map +1 -0
  47. package/dist/index.d.ts +23 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +85 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/metrics/comparator.d.ts +10 -0
  52. package/dist/metrics/comparator.d.ts.map +1 -0
  53. package/dist/metrics/comparator.js +228 -0
  54. package/dist/metrics/comparator.js.map +1 -0
  55. package/dist/metrics/extractor.d.ts +26 -0
  56. package/dist/metrics/extractor.d.ts.map +1 -0
  57. package/dist/metrics/extractor.js +174 -0
  58. package/dist/metrics/extractor.js.map +1 -0
  59. package/dist/metrics/loader.d.ts +35 -0
  60. package/dist/metrics/loader.d.ts.map +1 -0
  61. package/dist/metrics/loader.js +94 -0
  62. package/dist/metrics/loader.js.map +1 -0
  63. package/dist/output/json.d.ts +23 -0
  64. package/dist/output/json.d.ts.map +1 -0
  65. package/dist/output/json.js +144 -0
  66. package/dist/output/json.js.map +1 -0
  67. package/dist/output/markdown.d.ts +10 -0
  68. package/dist/output/markdown.d.ts.map +1 -0
  69. package/dist/output/markdown.js +226 -0
  70. package/dist/output/markdown.js.map +1 -0
  71. package/dist/output/terminal.d.ts +22 -0
  72. package/dist/output/terminal.d.ts.map +1 -0
  73. package/dist/output/terminal.js +238 -0
  74. package/dist/output/terminal.js.map +1 -0
  75. package/dist/types.d.ts +156 -0
  76. package/dist/types.d.ts.map +1 -0
  77. package/dist/types.js +6 -0
  78. package/dist/types.js.map +1 -0
  79. package/package.json +80 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../src/output/terminal.ts"],"names":[],"mappings":";;;;;AAMA,4CA8DC;AAmKD,wCAEC;AAKD,sCAEC;AAKD,kCAEC;AAKD,sCAEC;AA9PD,kDAA0B;AAG1B;;GAEG;AACH,SAAgB,gBAAgB,CAAC,MAAsB;IACrD,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,UAAU;IACV,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,cAAc;IACd,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACxC,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,eAAe;IACf,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACxC,kBAAkB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,cAAc;IACd,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACxC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YAClC,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,gBAAgB,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1E,CAAC;YACD,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAED,kBAAkB;IAClB,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACxC,qBAAqB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,aAAa;IACb,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACxC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,WAA+B;IACxD,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAE9C,OAAO,CAAC,GAAG,CACT,KAAK,QAAQ,IAAI,eAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,MAAM,IAAI,KAAK,IAAI,KAAK,KAAK,eAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAC5F,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,YAAgC;IAC1D,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAE9C,OAAO,CAAC,GAAG,CACT,KAAK,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,eAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,MAAM,IAAI,KAAK,IAAI,KAAK,KAAK,eAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CACtG,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,eAAiC;IAC9D,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAClD,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,KAAgB;IACvC,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,IAAI,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,cAAc,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QACtC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrB,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,QAAgB;IACxC,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,UAAU;YACb,OAAO,eAAK,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACzC,KAAK,MAAM;YACT,OAAO,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxB,KAAK,QAAQ;YACX,OAAO,eAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3B,KAAK,KAAK;YACR,OAAO,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB;YACE,OAAO,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,QAAgB;IACxC,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,MAAM;YACT,OAAO,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxB,KAAK,QAAQ;YACX,OAAO,eAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3B,KAAK,KAAK;YACR,OAAO,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1B;YACE,OAAO,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,UAAkB;IAC5C,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,MAAM;YACT,OAAO,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1B,KAAK,QAAQ;YACX,OAAO,eAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3B,KAAK,KAAK;YACR,OAAO,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB;YACE,OAAO,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,MAAc,EAAE,KAAa;IAChD,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,OAAO,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IACxC,CAAC;IACD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,MAAc,EAAE,IAAY;IAChD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAElC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAC9C,CAAC;IACD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACrC,CAAC;IACD,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,OAAe;IAC5C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,OAAe;IAC3C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,OAAe;IACzC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,OAAe;IAC3C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,156 @@
1
+ /**
2
+ * Core type definitions for LHCI AI Assistant
3
+ */
4
+ export type AIProvider = 'copilot' | 'openai' | 'local';
5
+ export type OutputFormat = 'terminal' | 'json' | 'markdown';
6
+ export interface LHReport {
7
+ categories: Record<string, CategoryResult>;
8
+ audits: Record<string, AuditResult>;
9
+ finalUrl: string;
10
+ fetchTime: string;
11
+ requestedUrl?: string;
12
+ }
13
+ export interface CategoryResult {
14
+ id: string;
15
+ title: string;
16
+ score: number | null;
17
+ auditRefs?: AuditRef[];
18
+ }
19
+ export interface AuditRef {
20
+ id: string;
21
+ weight: number;
22
+ group?: string;
23
+ }
24
+ export interface AuditResult {
25
+ id: string;
26
+ title: string;
27
+ description: string;
28
+ score: number | null;
29
+ numericValue?: number;
30
+ displayValue?: string;
31
+ details?: AuditDetails;
32
+ }
33
+ export interface AuditDetails {
34
+ type: string;
35
+ items?: unknown[];
36
+ overallSavingsMs?: number;
37
+ overallSavingsBytes?: number;
38
+ }
39
+ export interface Metrics {
40
+ scores: {
41
+ performance?: number;
42
+ accessibility?: number;
43
+ bestPractices?: number;
44
+ seo?: number;
45
+ };
46
+ coreWebVitals: {
47
+ fcp?: number;
48
+ lcp?: number;
49
+ tbt?: number;
50
+ cls?: number;
51
+ speedIndex?: number;
52
+ tti?: number;
53
+ };
54
+ opportunities: Opportunity[];
55
+ }
56
+ export interface Opportunity {
57
+ id: string;
58
+ title: string;
59
+ description?: string;
60
+ savingsMs?: number;
61
+ savingsBytes?: number;
62
+ score?: number;
63
+ }
64
+ export interface MetricComparison {
65
+ metric: string;
66
+ base: number;
67
+ current: number;
68
+ diff: number;
69
+ diffPercent: number;
70
+ isRegression: boolean;
71
+ isImprovement: boolean;
72
+ severity: 'low' | 'medium' | 'high' | 'critical';
73
+ }
74
+ export interface ComparisonResult {
75
+ regressions: MetricComparison[];
76
+ improvements: MetricComparison[];
77
+ unchanged: MetricComparison[];
78
+ overallScore: {
79
+ base: number;
80
+ current: number;
81
+ diff: number;
82
+ };
83
+ }
84
+ export interface GitHubFile {
85
+ sha: string;
86
+ filename: string;
87
+ status: 'added' | 'modified' | 'removed' | 'renamed';
88
+ additions: number;
89
+ deletions: number;
90
+ changes: number;
91
+ patch?: string;
92
+ }
93
+ export interface PRDiff {
94
+ files: GitHubFile[];
95
+ additions: number;
96
+ deletions: number;
97
+ }
98
+ export interface AnalyzeOptions {
99
+ provider: AIProvider;
100
+ githubToken?: string;
101
+ openaiKey?: string;
102
+ autoFix?: boolean;
103
+ interactive?: boolean;
104
+ postComment?: boolean;
105
+ prNumber?: number;
106
+ baseHash?: string;
107
+ output: OutputFormat;
108
+ configPath?: string;
109
+ repo?: string;
110
+ }
111
+ export interface AnalysisResult {
112
+ summary: string;
113
+ regressions: MetricComparison[];
114
+ improvements: MetricComparison[];
115
+ rootCauses: RootCause[];
116
+ recommendations: Recommendation[];
117
+ autoFixes?: AutoFix[];
118
+ }
119
+ export interface RootCause {
120
+ metric: string;
121
+ cause: string;
122
+ confidence: 'low' | 'medium' | 'high';
123
+ relatedFiles?: string[];
124
+ }
125
+ export interface Recommendation {
126
+ title: string;
127
+ description: string;
128
+ priority: 'low' | 'medium' | 'high';
129
+ impact: string;
130
+ effort: 'low' | 'medium' | 'high';
131
+ }
132
+ export interface AutoFix {
133
+ id: string;
134
+ title: string;
135
+ description: string;
136
+ file: string;
137
+ diff: string;
138
+ confidence: 'low' | 'medium' | 'high';
139
+ }
140
+ export interface Config {
141
+ ai?: {
142
+ provider?: AIProvider;
143
+ githubToken?: string;
144
+ openaiKey?: string;
145
+ autoFix?: boolean;
146
+ outputFormat?: OutputFormat;
147
+ };
148
+ thresholds?: {
149
+ performance?: number;
150
+ accessibility?: number;
151
+ bestPractices?: number;
152
+ seo?: number;
153
+ };
154
+ ignore?: string[];
155
+ }
156
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Core type definitions for LHCI AI Assistant
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;GAEG"}
package/package.json ADDED
@@ -0,0 +1,80 @@
1
+ {
2
+ "name": "lhci-ai-assistant",
3
+ "version": "0.1.0",
4
+ "description": "AI-powered companion tool for Lighthouse CI that analyzes performance regressions, explains root causes, and suggests fixes",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "bin": {
8
+ "lhci-ai": "dist/cli.js"
9
+ },
10
+ "scripts": {
11
+ "build": "tsc",
12
+ "dev": "tsc --watch",
13
+ "test": "jest",
14
+ "lint": "eslint src --ext .ts",
15
+ "prepublishOnly": "npm run build && npm run test"
16
+ },
17
+ "keywords": [
18
+ "lighthouse",
19
+ "lighthouse-ci",
20
+ "lhci",
21
+ "performance",
22
+ "ai",
23
+ "copilot",
24
+ "github-copilot",
25
+ "openai",
26
+ "web-vitals",
27
+ "core-web-vitals",
28
+ "fcp",
29
+ "lcp",
30
+ "cls",
31
+ "performance-analysis",
32
+ "web-performance"
33
+ ],
34
+ "author": "Kanmi Obasa <i@kanmiobasa.com>",
35
+ "license": "MIT",
36
+ "repository": {
37
+ "type": "git",
38
+ "url": "git+https://github.com/konfirmed/lhci-ai-assistant.git"
39
+ },
40
+ "bugs": {
41
+ "url": "https://github.com/konfirmed/lhci-ai-assistant/issues"
42
+ },
43
+ "homepage": "https://github.com/konfirmed/lhci-ai-assistant#readme",
44
+ "engines": {
45
+ "node": ">=18.0.0"
46
+ },
47
+ "files": [
48
+ "dist",
49
+ "README.md",
50
+ "LICENSE"
51
+ ],
52
+ "peerDependencies": {
53
+ "@lhci/cli": "^0.13.0"
54
+ },
55
+ "peerDependenciesMeta": {
56
+ "@lhci/cli": {
57
+ "optional": true
58
+ }
59
+ },
60
+ "dependencies": {
61
+ "@github/copilot-sdk": "^0.1.18",
62
+ "chalk": "^4.1.2",
63
+ "commander": "^11.1.0",
64
+ "dotenv": "^16.3.1",
65
+ "glob": "^10.3.10",
66
+ "inquirer": "^8.2.6",
67
+ "ora": "^5.4.1"
68
+ },
69
+ "devDependencies": {
70
+ "@types/inquirer": "^9.0.7",
71
+ "@types/jest": "^29.5.11",
72
+ "@types/node": "^20.10.6",
73
+ "@typescript-eslint/eslint-plugin": "^6.17.0",
74
+ "@typescript-eslint/parser": "^6.17.0",
75
+ "eslint": "^8.56.0",
76
+ "jest": "^29.7.0",
77
+ "ts-jest": "^29.1.1",
78
+ "typescript": "^5.3.3"
79
+ }
80
+ }