@panguard-ai/threat-cloud 1.4.1 → 1.5.5

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 (41) hide show
  1. package/LICENSE +21 -0
  2. package/dist/admin-dashboard.js +5 -5
  3. package/dist/audit-logger.d.ts +1 -1
  4. package/dist/audit-logger.d.ts.map +1 -1
  5. package/dist/audit-logger.js.map +1 -1
  6. package/dist/badge-api.d.ts +58 -0
  7. package/dist/badge-api.d.ts.map +1 -0
  8. package/dist/badge-api.js +248 -0
  9. package/dist/badge-api.js.map +1 -0
  10. package/dist/cli.js +1 -1
  11. package/dist/cli.js.map +1 -1
  12. package/dist/database.d.ts +254 -2
  13. package/dist/database.d.ts.map +1 -1
  14. package/dist/database.js +769 -72
  15. package/dist/database.js.map +1 -1
  16. package/dist/index.d.ts +2 -0
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +1 -0
  19. package/dist/index.js.map +1 -1
  20. package/dist/llm-reviewer-tools.d.ts +110 -0
  21. package/dist/llm-reviewer-tools.d.ts.map +1 -0
  22. package/dist/llm-reviewer-tools.js +446 -0
  23. package/dist/llm-reviewer-tools.js.map +1 -0
  24. package/dist/llm-reviewer.d.ts +54 -0
  25. package/dist/llm-reviewer.d.ts.map +1 -1
  26. package/dist/llm-reviewer.js +708 -64
  27. package/dist/llm-reviewer.js.map +1 -1
  28. package/dist/migrations.d.ts.map +1 -1
  29. package/dist/migrations.js +215 -0
  30. package/dist/migrations.js.map +1 -1
  31. package/dist/migrator-crystallization.d.ts +80 -0
  32. package/dist/migrator-crystallization.d.ts.map +1 -0
  33. package/dist/migrator-crystallization.js +108 -0
  34. package/dist/migrator-crystallization.js.map +1 -0
  35. package/dist/server.d.ts +75 -2
  36. package/dist/server.d.ts.map +1 -1
  37. package/dist/server.js +1249 -130
  38. package/dist/server.js.map +1 -1
  39. package/dist/types.d.ts +33 -0
  40. package/dist/types.d.ts.map +1 -1
  41. package/package.json +15 -12
@@ -1 +1 @@
1
- {"version":3,"file":"llm-reviewer.js","sourceRoot":"","sources":["../src/llm-reviewer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AA4BpC,gDAAgD;AAChD,MAAM,cAAc,GAAG,MAAM,CAAC;AAE9B,+BAA+B;AAC/B,MAAM,aAAa,GAAG,0BAA0B,CAAC;AAEjD;;;GAGG;AACH,MAAM,OAAO,WAAW;IACL,MAAM,CAAS;IACf,EAAE,CAAgB;IAClB,KAAK,CAAS;IAE/B,YAAY,MAAc,EAAE,EAAiB,EAAE,KAAc;QAC3D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,aAAa,CAAC;IACtC,CAAC;IAED,sEAAsE;IACtE,WAAW;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc,CAClB,WAAmB,EACnB,WAAmB;QAEnB,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAEnD,IAAI,YAAoB,CAAC;QACzB,IAAI,CAAC;YACH,YAAY,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,OAAO,CAAC,KAAK,CAAC,yBAAyB,WAAW,KAAK,GAAG,EAAE,CAAC,CAAC;YAE9D,+EAA+E;YAC/E,IACE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACnB,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC;gBAC1B,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC;gBACzB,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EACnB,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;gBAC1E,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;YAC1C,CAAC;YAED,0CAA0C;YAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;gBACjC,QAAQ,EAAE,KAAK;gBACf,iBAAiB,EAAE,MAAM;gBACzB,aAAa,EAAE,CAAC;gBAChB,SAAS,EAAE,sBAAsB,GAAG,EAAE;aACvC,CAAC,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,0BAA0B,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YAC7D,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QACnD,CAAC;QAED,yBAAyB;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAE5C,4BAA4B;QAC5B,IAAI,CAAC,EAAE,CAAC,0BAA0B,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAE7D,oEAAoE;QACpE,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,iBAAiB,KAAK,MAAM,EAAE,CAAC;YAC9D,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC9D,CAAC;IAED;;;OAGG;IACK,iBAAiB,CAAC,WAAmB;QAC3C,OAAO;;;;;EAKT,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+HA6BkH,CAAC;IAC9H,CAAC;IAED;;;OAGG;IACK,gBAAgB,CAAC,MAAc;QACrC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;gBACjC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,UAAU,EAAE,IAAI;gBAChB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;aAC9C,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG;gBACd,QAAQ,EAAE,mBAAmB;gBAC7B,IAAI,EAAE,GAAG;gBACT,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,WAAW,EAAE,IAAI,CAAC,MAAM;oBACxB,mBAAmB,EAAE,YAAY;oBACjC,cAAc,EAAE,kBAAkB;oBAClC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC;iBACjD;gBACD,OAAO,EAAE,cAAc;aACxB,CAAC;YAEF,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACzC,MAAM,MAAM,GAAa,EAAE,CAAC;gBAE5B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;oBAC/B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrB,CAAC,CAAC,CAAC;gBAEH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;oBACjB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBAErD,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;wBAC3B,MAAM,CACJ,IAAI,KAAK,CAAC,iCAAiC,GAAG,CAAC,UAAU,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CACpF,CAAC;wBACF,OAAO;oBACT,CAAC;oBAED,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAE7B,CAAC;wBACF,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;wBACjE,IAAI,SAAS,EAAE,IAAI,EAAE,CAAC;4BACpB,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;wBAC1B,CAAC;6BAAM,CAAC;4BACN,MAAM,CAAC,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC,CAAC;wBACnE,CAAC;oBACH,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,MAAM,CACJ,IAAI,KAAK,CACP,2CAA2C,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC9F,CACF,CAAC;oBACJ,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;gBACrB,GAAG,CAAC,OAAO,EAAE,CAAC;gBACd,MAAM,CAAC,IAAI,KAAK,CAAC,yCAAyC,cAAc,IAAI,CAAC,CAAC,CAAC;YACjF,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACtB,MAAM,CAAC,IAAI,KAAK,CAAC,iCAAiC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACpE,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACvB,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,4EAA4E;IAC5E,4CAA4C;IAC5C,mDAAmD;IACnD,4EAA4E;IAEpE,MAAM,CAAU,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAuCtC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iGA+BgC,CAAC;IAEhG;;;OAGG;IACH,KAAK,CAAC,aAAa,CACjB,MAA4D;QAE5D,MAAM,OAAO,GAA0B,EAAE,CAAC;QAE1C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,SAAS;YAErD,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK;iBAC5B,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,gCAAgC;iBAC7C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;iBAC3C,IAAI,CAAC,IAAI,CAAC,CAAC;YAEd,MAAM,WAAW,GAAG,iCAAiC,KAAK,CAAC,OAAO,gDAAgD,WAAW,EAAE,CAAC;YAEhI,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAC9C,WAAW,CAAC,kBAAkB,GAAG,MAAM,GAAG,WAAW,CACtD,CAAC;gBAEF,IAAI,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBAC9C,OAAO,CAAC,IAAI,CAAC;wBACX,OAAO,EAAE,KAAK,CAAC,OAAO;wBACtB,YAAY,EAAE,KAAK;wBACnB,SAAS,EAAE,EAAE;wBACb,MAAM,EAAE,SAAS;qBAClB,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBAED,sBAAsB;gBACtB,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;gBACjE,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC3C,OAAO,CAAC,IAAI,CAAC;wBACX,OAAO,EAAE,KAAK,CAAC,OAAO;wBACtB,YAAY,EAAE,KAAK;wBACnB,SAAS,EAAE,EAAE;wBACb,MAAM,EAAE,SAAS;qBAClB,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBAED,MAAM,SAAS,GAAqC,EAAE,CAAC;gBACvD,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;gBAEnD,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;oBAC/B,MAAM,WAAW,GAAG,KAAK;yBACtB,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;yBACzB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;yBACnB,IAAI,EAAE,CAAC;oBAEV,0CAA0C;oBAC1C,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC;wBAAE,SAAS;oBAErF,6BAA6B;oBAC7B,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;oBAC3D,IAAI,UAAU,EAAE,CAAC;wBACf,IAAI,CAAC;4BACH,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAE,EAAE,GAAG,CAAC,CAAC;wBAClC,CAAC;wBAAC,MAAM,CAAC;4BACP,SAAS,CAAC,gCAAgC;wBAC5C,CAAC;oBACH,CAAC;oBAED,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAExF,mCAAmC;oBACnC,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC;wBACxB,WAAW;wBACX,WAAW;wBACX,WAAW,EAAE,WAAW;wBACxB,QAAQ,EAAE,IAAI,CAAC,KAAK;wBACpB,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC;4BAChC,QAAQ,EAAE,IAAI;4BACd,MAAM,EAAE,gBAAgB;4BACxB,OAAO,EAAE,KAAK,CAAC,OAAO;yBACvB,CAAC;qBACH,CAAC,CAAC;oBAEH,uDAAuD;oBACvD,KAAK,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;wBACxE,OAAO,CAAC,KAAK,CACX,kCAAkC,WAAW,YAAY,KAAK,CAAC,OAAO,IAAI,EAC1E,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CACjD,CAAC;oBACJ,CAAC,CAAC,CAAC;oBAEH,SAAS,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC/C,CAAC;gBAED,OAAO,CAAC,IAAI,CAAC;oBACX,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,YAAY,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC;oBAClC,SAAS;oBACT,MAAM,EAAE,SAAS;iBAClB,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,MAAM,WAAW,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACrE,OAAO,CAAC,KAAK,CAAC,iCAAiC,KAAK,CAAC,OAAO,MAAM,WAAW,EAAE,CAAC,CAAC;gBACjF,OAAO,CAAC,IAAI,CAAC;oBACX,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,YAAY,EAAE,KAAK;oBACnB,SAAS,EAAE,EAAE;oBACb,MAAM,EAAE,OAAO;oBACf,WAAW;iBACZ,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;OAGG;IACK,YAAY,CAAC,YAAoB;QACvC,MAAM,cAAc,GAAe;YACjC,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,MAAM;YACzB,aAAa,EAAE,CAAC;YAChB,SAAS,EAAE,8BAA8B;SAC1C,CAAC;QAEF,IAAI,CAAC;YACH,sEAAsE;YACtE,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YACpD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,EAAE,GAAG,cAAc,EAAE,SAAS,EAAE,+BAA+B,EAAE,CAAC;YAC3E,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAwB,CAAC;YAE/D,gCAAgC;YAChC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC;YAE1C,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAC;YACtD,MAAM,iBAAiB,GAAG,UAAU,CAAC,QAAQ,CAC3C,MAAM,CAAC,iBAAgD,CACxD;gBACC,CAAC,CAAE,MAAM,CAAC,iBAA+C;gBACzD,CAAC,CAAC,MAAM,CAAC;YAEX,MAAM,aAAa,GACjB,OAAO,MAAM,CAAC,aAAa,KAAK,QAAQ;gBACtC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;gBAC9D,CAAC,CAAC,CAAC,CAAC;YAER,MAAM,SAAS,GACb,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;gBAClC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC;gBACjC,CAAC,CAAC,uBAAuB,CAAC;YAE9B,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC;QACnE,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7F,OAAO,cAAc,CAAC;QACxB,CAAC;IACH,CAAC"}
1
+ {"version":3,"file":"llm-reviewer.js","sourceRoot":"","sources":["../src/llm-reviewer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,2CAA2C;AAC3C,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC;CACrC;AAED;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,SAAS,SAAS,EAqH1C,CAAC;AAiCF;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAyB3D"}
1
+ {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,2CAA2C;AAC3C,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC;CACrC;AAED;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,SAAS,SAAS,EA4V1C,CAAC;AAiCF;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAyB3D"}
@@ -127,6 +127,221 @@ export const migrations = [
127
127
  `);
128
128
  },
129
129
  },
130
+ {
131
+ version: 5,
132
+ name: 'add_canary_staging_columns',
133
+ up: (db) => {
134
+ const existing = db.prepare("PRAGMA table_info('atr_proposals')").all();
135
+ const columnNames = new Set(existing.map((c) => c.name));
136
+ if (!columnNames.has('canary_started_at')) {
137
+ db.exec(`ALTER TABLE atr_proposals ADD COLUMN canary_started_at TEXT`);
138
+ }
139
+ // Index for efficient canary queries
140
+ db.exec(`CREATE INDEX IF NOT EXISTS idx_atr_proposals_canary ON atr_proposals(status, canary_started_at)`);
141
+ },
142
+ },
143
+ {
144
+ version: 6,
145
+ name: 'create_verdict_cache_table',
146
+ up: (db) => {
147
+ db.exec(`
148
+ CREATE TABLE IF NOT EXISTS verdict_cache (
149
+ content_hash TEXT PRIMARY KEY,
150
+ skill_name TEXT NOT NULL,
151
+ verdict TEXT NOT NULL,
152
+ scanned_at TEXT NOT NULL DEFAULT (datetime('now')),
153
+ expires_at TEXT NOT NULL,
154
+ scan_count INTEGER NOT NULL DEFAULT 1
155
+ );
156
+
157
+ CREATE INDEX IF NOT EXISTS idx_verdict_cache_expires ON verdict_cache(expires_at);
158
+ CREATE INDEX IF NOT EXISTS idx_verdict_cache_skill ON verdict_cache(skill_name);
159
+ `);
160
+ },
161
+ },
162
+ {
163
+ version: 7,
164
+ name: 'create_skill_hash_history_table',
165
+ up: (db) => {
166
+ db.exec(`
167
+ CREATE TABLE IF NOT EXISTS skill_hash_history (
168
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
169
+ skill_name TEXT NOT NULL,
170
+ content_hash TEXT NOT NULL,
171
+ first_seen TEXT NOT NULL DEFAULT (datetime('now')),
172
+ last_seen TEXT NOT NULL DEFAULT (datetime('now')),
173
+ scan_verdict TEXT,
174
+ superseded_by TEXT,
175
+ rug_pull_flag INTEGER NOT NULL DEFAULT 0,
176
+ UNIQUE(skill_name, content_hash)
177
+ );
178
+
179
+ CREATE INDEX IF NOT EXISTS idx_skill_hash_name ON skill_hash_history(skill_name);
180
+ CREATE INDEX IF NOT EXISTS idx_skill_hash_hash ON skill_hash_history(content_hash);
181
+ CREATE INDEX IF NOT EXISTS idx_skill_hash_rug ON skill_hash_history(rug_pull_flag);
182
+ `);
183
+ },
184
+ },
185
+ {
186
+ version: 8,
187
+ name: 'create_orgs_devices_policies_tables',
188
+ up: (db) => {
189
+ db.exec(`
190
+ -- Organizations: groups of devices under one account
191
+ -- Threat Model: Fleet view (#6 Scope Escalation — org-level visibility)
192
+ CREATE TABLE IF NOT EXISTS orgs (
193
+ id TEXT PRIMARY KEY,
194
+ name TEXT NOT NULL,
195
+ api_key_hash TEXT,
196
+ created_at TEXT NOT NULL DEFAULT (datetime('now'))
197
+ );
198
+
199
+ -- Devices: individual machines running Guard
200
+ -- Threat Model: Fleet view (#6 — track all agents across org)
201
+ CREATE TABLE IF NOT EXISTS devices (
202
+ id TEXT PRIMARY KEY,
203
+ org_id TEXT NOT NULL REFERENCES orgs(id),
204
+ hostname TEXT,
205
+ os_type TEXT,
206
+ agent_count INTEGER NOT NULL DEFAULT 0,
207
+ guard_version TEXT,
208
+ last_seen TEXT NOT NULL DEFAULT (datetime('now')),
209
+ created_at TEXT NOT NULL DEFAULT (datetime('now'))
210
+ );
211
+ CREATE INDEX IF NOT EXISTS idx_devices_org ON devices(org_id);
212
+ CREATE INDEX IF NOT EXISTS idx_devices_last_seen ON devices(last_seen);
213
+
214
+ -- Org policies: per-org allow/block rules for skill categories
215
+ -- Threat Model: Policy engine (#1 Supply Chain, #6 Scope Escalation)
216
+ CREATE TABLE IF NOT EXISTS org_policies (
217
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
218
+ org_id TEXT NOT NULL REFERENCES orgs(id),
219
+ category TEXT NOT NULL,
220
+ action TEXT NOT NULL CHECK(action IN ('allow', 'block')),
221
+ created_at TEXT NOT NULL DEFAULT (datetime('now')),
222
+ UNIQUE(org_id, category)
223
+ );
224
+ CREATE INDEX IF NOT EXISTS idx_policies_org ON org_policies(org_id);
225
+ `);
226
+ },
227
+ },
228
+ {
229
+ version: 9,
230
+ name: 'create_client_keys_table',
231
+ up: (db) => {
232
+ db.exec(`
233
+ CREATE TABLE IF NOT EXISTS client_keys (
234
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
235
+ client_id TEXT NOT NULL,
236
+ client_key_hash TEXT NOT NULL UNIQUE,
237
+ created_at TEXT NOT NULL DEFAULT (datetime('now')),
238
+ last_used_at TEXT,
239
+ revoked INTEGER NOT NULL DEFAULT 0,
240
+ revoked_at TEXT,
241
+ ip_address TEXT
242
+ );
243
+ CREATE INDEX IF NOT EXISTS idx_client_keys_hash ON client_keys(client_key_hash);
244
+ CREATE INDEX IF NOT EXISTS idx_client_keys_client_id ON client_keys(client_id);
245
+ `);
246
+ },
247
+ },
248
+ {
249
+ version: 10,
250
+ name: 'add_client_key_role_column',
251
+ up: (db) => {
252
+ // Role differentiates auto-provisioned Guard client keys (role='guard')
253
+ // from manually-issued partner keys (role='partner') that can access
254
+ // L5 live-sync endpoints. Partner keys are issued by admin via
255
+ // /api/admin/partner-keys.
256
+ const cols = db.prepare('PRAGMA table_info(client_keys)').all();
257
+ if (!cols.some((c) => c.name === 'key_role')) {
258
+ db.exec("ALTER TABLE client_keys ADD COLUMN key_role TEXT NOT NULL DEFAULT 'guard'");
259
+ }
260
+ db.exec(`CREATE INDEX IF NOT EXISTS idx_client_keys_role ON client_keys(key_role);`);
261
+ },
262
+ },
263
+ {
264
+ version: 11,
265
+ name: 'add_payload_fingerprints_table',
266
+ up: (db) => {
267
+ // Caches LLM drafter verdicts keyed by normalized payload hash so
268
+ // repeat submissions of the same garak prompt (or near-duplicates
269
+ // across partner batches) skip the Anthropic API call entirely.
270
+ // Typical hit rate on garak corpus is 90%+ → ~10x cost reduction.
271
+ //
272
+ // result values:
273
+ // novel — LLM produced a new rule (see pattern_hash for the YAML)
274
+ // duplicate — LLM judged payload already covered by existing rule
275
+ // rejected — LLM output failed quality gate or self-test
276
+ //
277
+ // rule_id + pattern_hash are only populated when result='novel'.
278
+ db.exec(`
279
+ CREATE TABLE IF NOT EXISTS payload_fingerprints (
280
+ fingerprint TEXT PRIMARY KEY,
281
+ result TEXT NOT NULL CHECK(result IN ('duplicate', 'novel', 'rejected')),
282
+ rule_id TEXT,
283
+ pattern_hash TEXT,
284
+ first_seen_at TEXT NOT NULL DEFAULT (datetime('now')),
285
+ last_seen_at TEXT NOT NULL DEFAULT (datetime('now')),
286
+ hit_count INTEGER NOT NULL DEFAULT 1
287
+ )
288
+ `);
289
+ db.exec(`CREATE INDEX IF NOT EXISTS idx_payload_fp_result ON payload_fingerprints(result)`);
290
+ db.exec(`CREATE INDEX IF NOT EXISTS idx_payload_fp_pattern ON payload_fingerprints(pattern_hash) WHERE pattern_hash IS NOT NULL`);
291
+ },
292
+ },
293
+ {
294
+ version: 12,
295
+ name: 'add_migrator_telemetry_table',
296
+ up: (db) => {
297
+ // Per-rule fingerprints from Migrator runs. Carries no rule body —
298
+ // condition_hash is SHA-256 over the conditions, install_id is a
299
+ // random per-install UUID. Used by the crystallization analyzer to
300
+ // surface rules that recur across N+ tenants without leaking content.
301
+ db.exec(`
302
+ CREATE TABLE IF NOT EXISTS migrator_telemetry (
303
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
304
+ install_id TEXT NOT NULL,
305
+ migrator_version TEXT NOT NULL DEFAULT 'unknown',
306
+ source_kind TEXT NOT NULL DEFAULT 'sigma',
307
+ atr_id TEXT NOT NULL,
308
+ category TEXT NOT NULL DEFAULT 'unknown',
309
+ severity TEXT NOT NULL DEFAULT 'low',
310
+ has_agent_analogue INTEGER NOT NULL DEFAULT 0,
311
+ condition_hash TEXT NOT NULL,
312
+ framework_count INTEGER NOT NULL DEFAULT 0,
313
+ eu_articles TEXT,
314
+ owasp_agentic_ids TEXT,
315
+ owasp_llm_ids TEXT,
316
+ run_id TEXT NOT NULL,
317
+ created_at TEXT NOT NULL DEFAULT (datetime('now'))
318
+ )
319
+ `);
320
+ db.exec(`CREATE INDEX IF NOT EXISTS idx_migrator_tel_hash ON migrator_telemetry(condition_hash)`);
321
+ db.exec(`CREATE INDEX IF NOT EXISTS idx_migrator_tel_install ON migrator_telemetry(install_id)`);
322
+ db.exec(`CREATE INDEX IF NOT EXISTS idx_migrator_tel_created ON migrator_telemetry(created_at)`);
323
+ db.exec(`CREATE INDEX IF NOT EXISTS idx_migrator_tel_atr ON migrator_telemetry(atr_id)`);
324
+ },
325
+ },
326
+ {
327
+ version: 13,
328
+ name: 'add_migrator_telemetry_crystallization_index',
329
+ up: (db) => {
330
+ // Crystallization analyzer query is:
331
+ // SELECT condition_hash, COUNT(DISTINCT install_id), ...
332
+ // FROM migrator_telemetry
333
+ // WHERE created_at > ?
334
+ // GROUP BY condition_hash HAVING tenant_count >= ?
335
+ //
336
+ // Existing single-column idx_migrator_tel_hash + idx_migrator_tel_created
337
+ // each get used independently; SQLite picks one and full-scans the rest.
338
+ // A composite index covering (condition_hash, install_id, created_at)
339
+ // turns the GROUP BY + DISTINCT + WHERE into a single index range scan.
340
+ // Critical at >100k rows; benign at smaller scale.
341
+ db.exec(`CREATE INDEX IF NOT EXISTS idx_migrator_tel_crystallization
342
+ ON migrator_telemetry(condition_hash, install_id, created_at)`);
343
+ },
344
+ },
130
345
  ];
131
346
  /**
132
347
  * Ensure the schema_version tracking table exists.
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Migrator telemetry + crystallization analyzer.
3
+ *
4
+ * The "crystallization" pipeline surfaces detection rule fingerprints that
5
+ * recur across multiple Migrator deployments, so an admin can decide whether
6
+ * the rule pattern is worth contributing back to the public ATR repo.
7
+ *
8
+ * Privacy contract:
9
+ * - Migrator never sends rule bodies — only SHA-256 hashes of detection
10
+ * conditions plus per-rule metadata (atr_id, category, severity, etc).
11
+ * - install_id is a random UUID stored locally on each Migrator install.
12
+ * - This module never reconstructs rule bodies from telemetry. Crystallization
13
+ * candidates are surfaces only; publication requires explicit consent
14
+ * captured outside this module (typically a tenant admin opt-in flow).
15
+ *
16
+ * Auto-PR is intentionally NOT implemented here. Surfacing candidates is
17
+ * automated; publishing them is a human gate.
18
+ */
19
+ import type Database from 'better-sqlite3';
20
+ export interface MigratorTelemetryRule {
21
+ readonly atr_id: string;
22
+ readonly category: string;
23
+ readonly severity: string;
24
+ readonly has_agent_analogue: boolean;
25
+ readonly condition_hash: string;
26
+ readonly framework_count: number;
27
+ }
28
+ export interface MigratorTelemetryEvent {
29
+ readonly install_id: string;
30
+ readonly migrator_version: string;
31
+ readonly source_kind: 'sigma' | 'yara' | 'mixed';
32
+ readonly run_id?: string;
33
+ readonly rules: readonly MigratorTelemetryRule[];
34
+ readonly frameworks?: {
35
+ readonly eu_ai_act_articles?: readonly string[];
36
+ readonly owasp_agentic_ids?: readonly string[];
37
+ readonly owasp_llm_ids?: readonly string[];
38
+ };
39
+ }
40
+ export interface CrystallizationCandidate {
41
+ readonly condition_hash: string;
42
+ readonly tenant_count: number;
43
+ readonly run_count: number;
44
+ readonly atr_ids: readonly string[];
45
+ readonly category: string;
46
+ readonly severity: string;
47
+ readonly has_agent_analogue: boolean;
48
+ readonly avg_framework_count: number;
49
+ readonly first_seen_at: string;
50
+ readonly last_seen_at: string;
51
+ }
52
+ /**
53
+ * Persist a single MigratorTelemetryEvent. One event yields N rows
54
+ * (one per rule in the run).
55
+ */
56
+ export declare function recordMigratorTelemetry(db: Database.Database, event: MigratorTelemetryEvent): {
57
+ rows_inserted: number;
58
+ };
59
+ export interface CandidateQuery {
60
+ readonly minTenantCount?: number;
61
+ readonly windowDays?: number;
62
+ readonly limit?: number;
63
+ }
64
+ /**
65
+ * Surface fingerprints that recur across N+ tenants. Rule body is NOT
66
+ * available here — only metadata. Admin uses these to identify which
67
+ * Migrator-derived rules are most replicated across deployments and
68
+ * therefore most valuable to crystallize back into ATR mainline.
69
+ */
70
+ export declare function findCrystallizationCandidates(db: Database.Database, query?: CandidateQuery): readonly CrystallizationCandidate[];
71
+ export interface MigratorTelemetryStats {
72
+ readonly total_events: number;
73
+ readonly unique_installs: number;
74
+ readonly unique_atr_ids: number;
75
+ readonly events_last_24h: number;
76
+ readonly by_severity: Readonly<Record<string, number>>;
77
+ readonly by_category: Readonly<Record<string, number>>;
78
+ }
79
+ export declare function getMigratorTelemetryStats(db: Database.Database): MigratorTelemetryStats;
80
+ //# sourceMappingURL=migrator-crystallization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrator-crystallization.d.ts","sourceRoot":"","sources":["../src/migrator-crystallization.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IACjD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACjD,QAAQ,CAAC,UAAU,CAAC,EAAE;QACpB,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAChD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAC/C,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KAC5C,CAAC;CACH;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,KAAK,EAAE,sBAAsB,GAC5B;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,CAmC3B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,KAAK,GAAE,cAAmB,GACzB,SAAS,wBAAwB,EAAE,CAkDrC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvD,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACxD;AAED,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,sBAAsB,CAmCvF"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Migrator telemetry + crystallization analyzer.
3
+ *
4
+ * The "crystallization" pipeline surfaces detection rule fingerprints that
5
+ * recur across multiple Migrator deployments, so an admin can decide whether
6
+ * the rule pattern is worth contributing back to the public ATR repo.
7
+ *
8
+ * Privacy contract:
9
+ * - Migrator never sends rule bodies — only SHA-256 hashes of detection
10
+ * conditions plus per-rule metadata (atr_id, category, severity, etc).
11
+ * - install_id is a random UUID stored locally on each Migrator install.
12
+ * - This module never reconstructs rule bodies from telemetry. Crystallization
13
+ * candidates are surfaces only; publication requires explicit consent
14
+ * captured outside this module (typically a tenant admin opt-in flow).
15
+ *
16
+ * Auto-PR is intentionally NOT implemented here. Surfacing candidates is
17
+ * automated; publishing them is a human gate.
18
+ */
19
+ /**
20
+ * Persist a single MigratorTelemetryEvent. One event yields N rows
21
+ * (one per rule in the run).
22
+ */
23
+ export function recordMigratorTelemetry(db, event) {
24
+ const runId = event.run_id ?? `${event.install_id}-${Date.now()}`;
25
+ const stmt = db.prepare(`
26
+ INSERT INTO migrator_telemetry (
27
+ install_id, migrator_version, source_kind, atr_id, category, severity,
28
+ has_agent_analogue, condition_hash, framework_count,
29
+ eu_articles, owasp_agentic_ids, owasp_llm_ids, run_id
30
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
31
+ `);
32
+ const insert = db.transaction((rules) => {
33
+ let n = 0;
34
+ for (const r of rules) {
35
+ stmt.run(event.install_id, event.migrator_version, event.source_kind, r.atr_id, r.category, r.severity, r.has_agent_analogue ? 1 : 0, r.condition_hash, r.framework_count, JSON.stringify(event.frameworks?.eu_ai_act_articles ?? []), JSON.stringify(event.frameworks?.owasp_agentic_ids ?? []), JSON.stringify(event.frameworks?.owasp_llm_ids ?? []), runId);
36
+ n += 1;
37
+ }
38
+ return n;
39
+ });
40
+ const rows_inserted = insert(event.rules);
41
+ return { rows_inserted };
42
+ }
43
+ /**
44
+ * Surface fingerprints that recur across N+ tenants. Rule body is NOT
45
+ * available here — only metadata. Admin uses these to identify which
46
+ * Migrator-derived rules are most replicated across deployments and
47
+ * therefore most valuable to crystallize back into ATR mainline.
48
+ */
49
+ export function findCrystallizationCandidates(db, query = {}) {
50
+ const minTenants = query.minTenantCount ?? 3;
51
+ const windowDays = query.windowDays ?? 30;
52
+ const limit = query.limit ?? 100;
53
+ const rows = db
54
+ .prepare(`SELECT
55
+ condition_hash,
56
+ COUNT(DISTINCT install_id) AS tenant_count,
57
+ COUNT(DISTINCT run_id) AS run_count,
58
+ GROUP_CONCAT(DISTINCT atr_id) AS atr_ids,
59
+ MIN(category) AS category,
60
+ MIN(severity) AS severity,
61
+ MAX(has_agent_analogue) AS has_agent_analogue,
62
+ AVG(framework_count) AS avg_framework_count,
63
+ MIN(created_at) AS first_seen_at,
64
+ MAX(created_at) AS last_seen_at
65
+ FROM migrator_telemetry
66
+ WHERE created_at > datetime('now', ?)
67
+ GROUP BY condition_hash
68
+ HAVING tenant_count >= ?
69
+ ORDER BY tenant_count DESC, run_count DESC
70
+ LIMIT ?`)
71
+ .all(`-${windowDays} days`, minTenants, limit);
72
+ return rows.map((r) => ({
73
+ condition_hash: r.condition_hash,
74
+ tenant_count: r.tenant_count,
75
+ run_count: r.run_count,
76
+ atr_ids: r.atr_ids ? r.atr_ids.split(',') : [],
77
+ category: r.category,
78
+ severity: r.severity,
79
+ has_agent_analogue: r.has_agent_analogue === 1,
80
+ avg_framework_count: Math.round(r.avg_framework_count * 10) / 10,
81
+ first_seen_at: r.first_seen_at,
82
+ last_seen_at: r.last_seen_at,
83
+ }));
84
+ }
85
+ export function getMigratorTelemetryStats(db) {
86
+ const total = db.prepare('SELECT COUNT(*) AS c FROM migrator_telemetry').get()
87
+ .c;
88
+ const installs = db.prepare('SELECT COUNT(DISTINCT install_id) AS c FROM migrator_telemetry').get().c;
89
+ const atrIds = db.prepare('SELECT COUNT(DISTINCT atr_id) AS c FROM migrator_telemetry').get().c;
90
+ const last24h = db
91
+ .prepare(`SELECT COUNT(*) AS c FROM migrator_telemetry WHERE created_at > datetime('now', '-1 day')`)
92
+ .get().c;
93
+ const bySeverity = db
94
+ .prepare(`SELECT severity, COUNT(*) AS c FROM migrator_telemetry GROUP BY severity`)
95
+ .all();
96
+ const byCategory = db
97
+ .prepare(`SELECT category, COUNT(*) AS c FROM migrator_telemetry GROUP BY category`)
98
+ .all();
99
+ return {
100
+ total_events: total,
101
+ unique_installs: installs,
102
+ unique_atr_ids: atrIds,
103
+ events_last_24h: last24h,
104
+ by_severity: Object.fromEntries(bySeverity.map((r) => [r.severity, r.c])),
105
+ by_category: Object.fromEntries(byCategory.map((r) => [r.category, r.c])),
106
+ };
107
+ }
108
+ //# sourceMappingURL=migrator-crystallization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrator-crystallization.js","sourceRoot":"","sources":["../src/migrator-crystallization.ts"],"names":[],"mappings":"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"}