clawhatch 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 (115) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +348 -0
  3. package/dist/checks/cloud-sync.d.ts +10 -0
  4. package/dist/checks/cloud-sync.d.ts.map +1 -0
  5. package/dist/checks/cloud-sync.js +62 -0
  6. package/dist/checks/cloud-sync.js.map +1 -0
  7. package/dist/checks/data-protection.d.ts +9 -0
  8. package/dist/checks/data-protection.d.ts.map +1 -0
  9. package/dist/checks/data-protection.js +197 -0
  10. package/dist/checks/data-protection.js.map +1 -0
  11. package/dist/checks/identity.d.ts +14 -0
  12. package/dist/checks/identity.d.ts.map +1 -0
  13. package/dist/checks/identity.js +327 -0
  14. package/dist/checks/identity.js.map +1 -0
  15. package/dist/checks/model.d.ts +10 -0
  16. package/dist/checks/model.d.ts.map +1 -0
  17. package/dist/checks/model.js +337 -0
  18. package/dist/checks/model.js.map +1 -0
  19. package/dist/checks/network.d.ts +9 -0
  20. package/dist/checks/network.d.ts.map +1 -0
  21. package/dist/checks/network.js +177 -0
  22. package/dist/checks/network.js.map +1 -0
  23. package/dist/checks/operational.d.ts +9 -0
  24. package/dist/checks/operational.d.ts.map +1 -0
  25. package/dist/checks/operational.js +158 -0
  26. package/dist/checks/operational.js.map +1 -0
  27. package/dist/checks/sandbox.d.ts +9 -0
  28. package/dist/checks/sandbox.d.ts.map +1 -0
  29. package/dist/checks/sandbox.js +135 -0
  30. package/dist/checks/sandbox.js.map +1 -0
  31. package/dist/checks/secrets.d.ts +9 -0
  32. package/dist/checks/secrets.d.ts.map +1 -0
  33. package/dist/checks/secrets.js +816 -0
  34. package/dist/checks/secrets.js.map +1 -0
  35. package/dist/checks/skills.d.ts +9 -0
  36. package/dist/checks/skills.d.ts.map +1 -0
  37. package/dist/checks/skills.js +303 -0
  38. package/dist/checks/skills.js.map +1 -0
  39. package/dist/checks/tools.d.ts +9 -0
  40. package/dist/checks/tools.d.ts.map +1 -0
  41. package/dist/checks/tools.js +397 -0
  42. package/dist/checks/tools.js.map +1 -0
  43. package/dist/discover.d.ts +22 -0
  44. package/dist/discover.d.ts.map +1 -0
  45. package/dist/discover.js +281 -0
  46. package/dist/discover.js.map +1 -0
  47. package/dist/fixer.d.ts +16 -0
  48. package/dist/fixer.d.ts.map +1 -0
  49. package/dist/fixer.js +361 -0
  50. package/dist/fixer.js.map +1 -0
  51. package/dist/index.d.ts +16 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +230 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/init.d.ts +14 -0
  56. package/dist/init.d.ts.map +1 -0
  57. package/dist/init.js +108 -0
  58. package/dist/init.js.map +1 -0
  59. package/dist/notify.d.ts +28 -0
  60. package/dist/notify.d.ts.map +1 -0
  61. package/dist/notify.js +217 -0
  62. package/dist/notify.js.map +1 -0
  63. package/dist/parsers/config.d.ts +16 -0
  64. package/dist/parsers/config.d.ts.map +1 -0
  65. package/dist/parsers/config.js +54 -0
  66. package/dist/parsers/config.js.map +1 -0
  67. package/dist/parsers/env.d.ts +6 -0
  68. package/dist/parsers/env.d.ts.map +1 -0
  69. package/dist/parsers/env.js +35 -0
  70. package/dist/parsers/env.js.map +1 -0
  71. package/dist/parsers/jsonl.d.ts +12 -0
  72. package/dist/parsers/jsonl.d.ts.map +1 -0
  73. package/dist/parsers/jsonl.js +61 -0
  74. package/dist/parsers/jsonl.js.map +1 -0
  75. package/dist/parsers/markdown.d.ts +17 -0
  76. package/dist/parsers/markdown.d.ts.map +1 -0
  77. package/dist/parsers/markdown.js +57 -0
  78. package/dist/parsers/markdown.js.map +1 -0
  79. package/dist/reporter-html.d.ts +9 -0
  80. package/dist/reporter-html.d.ts.map +1 -0
  81. package/dist/reporter-html.js +581 -0
  82. package/dist/reporter-html.js.map +1 -0
  83. package/dist/reporter.d.ts +10 -0
  84. package/dist/reporter.d.ts.map +1 -0
  85. package/dist/reporter.js +133 -0
  86. package/dist/reporter.js.map +1 -0
  87. package/dist/sanitize.d.ts +17 -0
  88. package/dist/sanitize.d.ts.map +1 -0
  89. package/dist/sanitize.js +83 -0
  90. package/dist/sanitize.js.map +1 -0
  91. package/dist/scanner.d.ts +18 -0
  92. package/dist/scanner.d.ts.map +1 -0
  93. package/dist/scanner.js +236 -0
  94. package/dist/scanner.js.map +1 -0
  95. package/dist/scoring.d.ts +17 -0
  96. package/dist/scoring.d.ts.map +1 -0
  97. package/dist/scoring.js +47 -0
  98. package/dist/scoring.js.map +1 -0
  99. package/dist/telemetry.d.ts +16 -0
  100. package/dist/telemetry.d.ts.map +1 -0
  101. package/dist/telemetry.js +52 -0
  102. package/dist/telemetry.js.map +1 -0
  103. package/dist/threat-feed.d.ts +14 -0
  104. package/dist/threat-feed.d.ts.map +1 -0
  105. package/dist/threat-feed.js +133 -0
  106. package/dist/threat-feed.js.map +1 -0
  107. package/dist/types.d.ts +221 -0
  108. package/dist/types.d.ts.map +1 -0
  109. package/dist/types.js +11 -0
  110. package/dist/types.js.map +1 -0
  111. package/dist/utils.d.ts +12 -0
  112. package/dist/utils.d.ts.map +1 -0
  113. package/dist/utils.js +34 -0
  114. package/dist/utils.js.map +1 -0
  115. package/package.json +71 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixer.js","sourceRoot":"","sources":["../src/fixer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,SAAS,UAAU,CAAC,QAAgB;IAClC,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC1D,OAAO,GAAG,QAAQ,QAAQ,EAAE,EAAE,CAAC;AACjC,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,QAAgB;IACxC,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC/B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,OAAe;IACvC,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,EAAE,CAAC,QAAQ,CAAC,GAAG,OAAO,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE;YAC1C,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,QAAmB,EACnB,UAAyB,EACzB,WAAmB;IAEnB,MAAM,OAAO,GAAgB,EAAE,CAAC;IAChC,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAEtD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC,CAAC;QAC9D,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,aAAa,OAAO,CAAC,MAAM,6CAA6C,CACzE,CACF,CAAC;IAEF,6DAA6D;IAC7D,MAAM,WAAW,GAAc,EAAE,CAAC;IAClC,MAAM,eAAe,GAAc,EAAE,CAAC;IACtC,MAAM,UAAU,GAAc,EAAE,CAAC;IAEjC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YACnB,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;aAAM,IAAI,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9B,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,qDAAqD;IACrD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,EAAE,CAAC;QACzC,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;IACjC,CAAC;IAED,yBAAyB;IACzB,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,MAAM,kBAAkB,CAAC,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,uCAAuC;IACvC,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,EAAE,KAAK,YAAY,EAAE,CAAC;YAC1B,MAAM,CAAC,GAAG,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,UAAU;IACV,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IACxD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,OAAO,qBAAqB,OAAO,WAAW,CAAC,CAAC,CAAC;IAE9E,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,WAAW,CAAC,OAAgB;IACnC,wEAAwE;IACxE,oEAAoE;IACpE,OAAO;QACL,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;QAC9D,cAAc;QACd,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa;QAC1D,aAAa,EAAE,aAAa;QAC5B,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa;KAC3D,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,eAAe,CAAC,OAAgB;IACvC,OAAO;QACL,cAAc;QACd,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY;KACvD,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACzB,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,KAAgB,EAChB,UAAkB;IAElB,MAAM,OAAO,GAAgB,EAAE,CAAC;IAEhC,8BAA8B;IAC9B,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC;IAC5D,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,YAAY,CAAC,CAAC;IAExE,8BAA8B;IAC9B,MAAM,kBAAkB,GAAc,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,wBAAwB,CAAC,CAAC,KAAK,EAAE,CAClC,CACF,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,MAAM,UAAU,CAC/B,KAAK,CAAC,MAAM,CAAC,wBAAwB,CAAC,CACvC,CAAC;QACF,IAAI,QAAQ,EAAE,CAAC;YACb,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC;gBACX,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE,CAAC,CAAC,KAAK;gBACpB,aAAa,EAAE,iCAAiC;aACjD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,CAAC,GAAG,SAAS,EAAE,GAAG,kBAAkB,CAAC,CAAC;IAC1D,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IAE7C,qBAAqB;IACrB,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC,CAAC;IAEnD,wBAAwB;IACxB,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAChD,IAAI,MAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,IAAI,CAAC;YACX,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;YACvB,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,mBAAmB;YAChC,aAAa,EAAE,+BAA+B;SAC/C,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,iBAAiB;IACjB,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC;YACX,OAAO,EAAE,CAAC;YACV,OAAO;YACP,UAAU,EAAE,GAAG;YACf,WAAW,EAAE,CAAC,CAAC,KAAK;YACpB,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,yCAAyC;SAC/E,CAAC,CAAC;IACL,CAAC;IAED,uBAAuB;IACvB,MAAM,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAEtE,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAsB,EAAE,OAAgB;IACnE,QAAQ,OAAO,CAAC,EAAE,EAAE,CAAC;QACnB,gBAAgB;QAChB,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,OAAO;gBAAE,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;YACzC,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,WAAW,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,OAAO;gBAAE,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI;gBAAE,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC;YACnD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;YACnC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC5D,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,aAAa,CAAC;QACnB,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,OAAO;gBAAE,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI;gBAAE,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC;YACnD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC5D,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,OAAO;gBAAE,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;YACzC,MAAM,CAAC,OAAO,CAAC,iBAAiB,GAAG,KAAK,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,OAAO;gBAAE,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;YACzC,MAAM,CAAC,OAAO,CAAC,4BAA4B,GAAG,KAAK,CAAC;YACpD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,iDAAiD;QACjD,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,iDAAiD;YACjD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAChD,IAAI,EAAE,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;wBAC3B,EAAE,CAAC,QAAQ,GAAG,SAAS,CAAC;oBAC1B,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAChD,IAAI,EAAE,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;wBAC9B,EAAE,CAAC,WAAW,GAAG,WAAW,CAAC;oBAC/B,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAChD,IAAI,EAAE,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;wBAChC,EAAE,CAAC,cAAc,GAAG,IAAI,CAAC;oBAC3B,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,OAAO;gBAAG,MAAkC,CAAC,OAAO,GAAG,EAAE,CAAC;YACtE,MAAM,CAAC,OAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,WAAW;YAC7C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,QAAQ;gBAAG,MAAkC,CAAC,QAAQ,GAAG,EAAE,CAAC;YACxE,MAAM,CAAC,QAAS,CAAC,eAAe,GAAG,IAAI,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,gBAAgB;QAChB,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,OAAO;gBAAG,MAAkC,CAAC,OAAO,GAAG,EAAE,CAAC;YACtE,MAAM,CAAC,OAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,IAAI,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;gBAC3B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;YACzC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,IAAI,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;gBAC3B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC;YAC9C,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,IAAI,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;gBAC5B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAClD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,OAAgB;IAChD,IAAI,QAAQ,EAAE,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO;YACL,OAAO;YACP,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,OAAO,CAAC,KAAK;YAC1B,aAAa,EAAE,oEAAoE;SACpF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,OAAO;YACL,OAAO;YACP,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,OAAO,CAAC,KAAK;YAC1B,aAAa,EAAE,yBAAyB;SACzC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QACzD,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAChC,OAAO;YACL,OAAO;YACP,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,OAAO,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;SAC1D,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO;YACP,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,OAAO,CAAC,KAAK;YAC1B,aAAa,EAAE,iBAAiB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;SACvF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,WAAmB;IAClD,4EAA4E;IAC5E,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAEtD,IAAI,CAAC;QACH,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACnD,CAAC;QAAC,MAAM,CAAC;YACP,iCAAiC;QACnC,CAAC;QAED,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAElE,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACrE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAE5D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO;gBACL,OAAO,EAAE,EAAE,EAAE,EAAE,YAAY,EAAa;gBACxC,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE,mBAAmB;gBAChC,aAAa,EAAE,6BAA6B;aAC7C,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,4CAA4C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QACpF,MAAM,SAAS,CAAC,aAAa,EAAE,OAAO,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE5D,OAAO;YACL,OAAO,EAAE,EAAE,EAAE,EAAE,YAAY,EAAa;YACxC,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,GAAG;YACf,WAAW,EAAE,SAAS,OAAO,CAAC,MAAM,wBAAwB;SAC7D,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,EAAE,EAAE,EAAE,YAAY,EAAa;YACxC,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,mBAAmB;YAChC,aAAa,EAAE,WAAW,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;SACjF,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Clawhatch CLI — Security scanner for OpenClaw AI agents.
4
+ *
5
+ * Usage:
6
+ * npx clawhatch scan # Basic scan
7
+ * npx clawhatch scan --workspace . # Include workspace files
8
+ * npx clawhatch scan --json # Machine-readable output
9
+ * npx clawhatch scan --fix # Auto-fix safe issues
10
+ * npx clawhatch scan --deep # Deep scan (full session logs)
11
+ * npx clawhatch scan --share # Share anonymized results
12
+ * npx clawhatch threats # View community threat feed
13
+ * npx clawhatch subscribe --webhook URL # Subscribe to alerts
14
+ */
15
+ export {};
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;GAYG"}
package/dist/index.js ADDED
@@ -0,0 +1,230 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Clawhatch CLI — Security scanner for OpenClaw AI agents.
4
+ *
5
+ * Usage:
6
+ * npx clawhatch scan # Basic scan
7
+ * npx clawhatch scan --workspace . # Include workspace files
8
+ * npx clawhatch scan --json # Machine-readable output
9
+ * npx clawhatch scan --fix # Auto-fix safe issues
10
+ * npx clawhatch scan --deep # Deep scan (full session logs)
11
+ * npx clawhatch scan --share # Share anonymized results
12
+ * npx clawhatch threats # View community threat feed
13
+ * npx clawhatch subscribe --webhook URL # Subscribe to alerts
14
+ */
15
+ import { Command } from "commander";
16
+ import chalk from "chalk";
17
+ import { writeFile } from "node:fs/promises";
18
+ import { resolve } from "node:path";
19
+ import { scan } from "./scanner.js";
20
+ import { reportFindings, reportJson } from "./reporter.js";
21
+ import { generateHtmlReport } from "./reporter-html.js";
22
+ import { applyFixes } from "./fixer.js";
23
+ import { sanitizeFindings, redactPaths } from "./sanitize.js";
24
+ import { initSecureConfig } from "./init.js";
25
+ import { anonymizeScanResult, uploadThreatReport } from "./telemetry.js";
26
+ import { DEFAULT_API_URL, fetchThreatFeed, formatThreatFeed, checkAgainstFeed } from "./threat-feed.js";
27
+ import { loadNotifyConfig, saveNotifyConfig, buildAlerts, sendWebhookAlert, sendTestAlert } from "./notify.js";
28
+ const program = new Command();
29
+ program
30
+ .name("clawhatch")
31
+ .description("Security scanner for OpenClaw AI agents")
32
+ .version("0.1.0");
33
+ program
34
+ .command("scan")
35
+ .description("Scan your OpenClaw installation for security issues")
36
+ .option("-p, --path <path>", "OpenClaw installation path", "~/.openclaw")
37
+ .option("-w, --workspace <path>", "Workspace path (for SOUL.md, skills, etc.)")
38
+ .option("--json", "Output JSON instead of formatted text")
39
+ .option("--format <format>", "Output format: text, json, html", "text")
40
+ .option("--fix", "Auto-apply safe fixes (prompts for behavioral changes)")
41
+ .option("--deep", "Deep scan — full session log analysis (slower)")
42
+ .option("--share", "Anonymize and share results with community threat feed")
43
+ .option("--upload", "Alias for --share")
44
+ .option("--redact-paths", "Redact file paths in output (for sharing results)")
45
+ .action(async (options) => {
46
+ // --json flag is an alias for --format json
47
+ const format = options.json ? "json" : options.format;
48
+ const shouldShare = !!(options.share || options.upload);
49
+ if (format === "text") {
50
+ console.log(chalk.cyan("\n Clawhatch Security Scanner v0.1.0\n"));
51
+ }
52
+ const result = await scan({
53
+ openclawPath: options.path,
54
+ workspacePath: options.workspace,
55
+ autoFix: !!options.fix,
56
+ deep: !!options.deep,
57
+ json: format === "json",
58
+ upload: shouldShare,
59
+ });
60
+ // Apply path redaction if requested
61
+ if (options.redactPaths) {
62
+ result.findings = redactPaths(result.findings);
63
+ result.suggestions = redactPaths(result.suggestions);
64
+ }
65
+ // Output results
66
+ if (format === "json") {
67
+ // Sanitize before JSON output
68
+ result.findings = sanitizeFindings(result.findings);
69
+ result.suggestions = sanitizeFindings(result.suggestions);
70
+ reportJson(result);
71
+ }
72
+ else if (format === "html") {
73
+ const html = generateHtmlReport(result);
74
+ const outPath = resolve(process.cwd(), "clawhatch-report.html");
75
+ await writeFile(outPath, html, "utf-8");
76
+ console.log(chalk.green(`\n HTML report written to ${outPath}\n`));
77
+ }
78
+ else {
79
+ reportFindings(result);
80
+ }
81
+ // Auto-fix if requested
82
+ if (options.fix && result.findings.some((f) => f.autoFixable)) {
83
+ const configPath = result.findings.find((f) => f.file)?.file ?? null;
84
+ const { findOpenClawDir } = await import("./discover.js");
85
+ const openclawDir = await findOpenClawDir(options.path);
86
+ if (openclawDir) {
87
+ await applyFixes(result.findings, configPath, openclawDir);
88
+ }
89
+ }
90
+ // Community threat intelligence
91
+ if (shouldShare) {
92
+ const report = anonymizeScanResult(result);
93
+ if (format !== "json") {
94
+ console.log(chalk.dim("\n Sharing anonymized results with community..."));
95
+ }
96
+ const uploadResult = await uploadThreatReport(report, DEFAULT_API_URL);
97
+ if (uploadResult.success) {
98
+ if (format !== "json") {
99
+ console.log(chalk.green(" Shared with community threat feed."));
100
+ }
101
+ }
102
+ else {
103
+ if (format !== "json") {
104
+ console.log(chalk.yellow(` Could not share: ${uploadResult.error}`));
105
+ }
106
+ }
107
+ }
108
+ // Check against community feed and send webhook alerts
109
+ const { findOpenClawDir } = await import("./discover.js");
110
+ const openclawDir = await findOpenClawDir(options.path);
111
+ if (openclawDir) {
112
+ const notifyConfig = await loadNotifyConfig(openclawDir);
113
+ if (notifyConfig?.notify?.webhookUrl) {
114
+ const feed = await fetchThreatFeed(notifyConfig.apiUrl ?? DEFAULT_API_URL);
115
+ // Show community cross-reference warnings
116
+ if (feed && format === "text") {
117
+ const warnings = checkAgainstFeed(result, feed);
118
+ if (warnings.length > 0) {
119
+ console.log(chalk.bold.yellow("\n Community Threat Warnings"));
120
+ for (const w of warnings) {
121
+ console.log(chalk.yellow(` ! ${w}`));
122
+ }
123
+ }
124
+ }
125
+ // Send webhook alerts
126
+ const threshold = notifyConfig.notify.threshold ?? "HIGH";
127
+ const alerts = buildAlerts(result, feed, threshold);
128
+ if (alerts.length > 0) {
129
+ const sent = await sendWebhookAlert(notifyConfig.notify.webhookUrl, alerts, result.score);
130
+ if (format !== "json") {
131
+ if (sent) {
132
+ console.log(chalk.green(` Sent ${alerts.length} alert(s) to webhook.`));
133
+ }
134
+ else {
135
+ console.log(chalk.yellow(" Failed to send webhook alerts."));
136
+ }
137
+ }
138
+ }
139
+ }
140
+ }
141
+ // Exit code: 1 if critical findings, 0 otherwise
142
+ const hasCritical = result.findings.some((f) => f.severity === "CRITICAL");
143
+ process.exit(hasCritical ? 1 : 0);
144
+ });
145
+ program
146
+ .command("init")
147
+ .description("Generate a secure baseline OpenClaw configuration")
148
+ .option("-p, --path <path>", "Target directory", "~/.openclaw")
149
+ .action(async (options) => {
150
+ console.log(chalk.cyan("\n Clawhatch Config Generator v0.1.0\n"));
151
+ // FIX: Use os.homedir() for reliable cross-platform ~ expansion
152
+ // process.env.HOME is undefined on Windows; USERPROFILE may have spaces
153
+ const { homedir } = await import("node:os");
154
+ const { join } = await import("node:path");
155
+ const targetDir = options.path.startsWith("~")
156
+ ? join(homedir(), options.path.slice(1))
157
+ : options.path;
158
+ const result = await initSecureConfig(targetDir);
159
+ console.log("");
160
+ if (result.created.length > 0) {
161
+ console.log(chalk.green(` Created ${result.created.length} file(s) in ${targetDir}`));
162
+ }
163
+ if (result.skipped.length > 0) {
164
+ console.log(chalk.yellow(` Skipped ${result.skipped.length} file(s) (already exist)`));
165
+ }
166
+ console.log(chalk.cyan("\n Next steps:"));
167
+ console.log(chalk.white(" 1. Set OPENCLAW_AUTH_TOKEN in .env (use the command in the file)"));
168
+ console.log(chalk.white(" 2. Add your API keys to .env"));
169
+ console.log(chalk.white(" 3. Run: clawhatch scan -p " + targetDir + "\n"));
170
+ });
171
+ program
172
+ .command("threats")
173
+ .description("View the community threat intelligence feed")
174
+ .option("--api-url <url>", "API endpoint", DEFAULT_API_URL)
175
+ .action(async (options) => {
176
+ console.log(chalk.dim("\n Fetching community threat feed...\n"));
177
+ const feed = await fetchThreatFeed(options.apiUrl);
178
+ if (!feed) {
179
+ console.log(chalk.yellow(" Could not reach the community feed. Try again later.\n"));
180
+ process.exit(0);
181
+ }
182
+ console.log(formatThreatFeed(feed));
183
+ });
184
+ program
185
+ .command("subscribe")
186
+ .description("Subscribe to community threat alerts via webhook")
187
+ .option("--webhook <url>", "Discord, Slack, or generic webhook URL")
188
+ .option("--threshold <severity>", "Minimum severity to alert on", "HIGH")
189
+ .option("-p, --path <path>", "OpenClaw installation path", "~/.openclaw")
190
+ .action(async (options) => {
191
+ if (!options.webhook) {
192
+ console.error(chalk.red("\n --webhook <url> is required.\n"));
193
+ console.log(chalk.dim(" Examples:"));
194
+ console.log(chalk.dim(" clawhatch subscribe --webhook https://discord.com/api/webhooks/..."));
195
+ console.log(chalk.dim(" clawhatch subscribe --webhook https://hooks.slack.com/services/..."));
196
+ console.log(chalk.dim(" clawhatch subscribe --threshold CRITICAL\n"));
197
+ process.exit(1);
198
+ }
199
+ const { homedir } = await import("node:os");
200
+ const { join } = await import("node:path");
201
+ const openclawDir = options.path.startsWith("~")
202
+ ? join(homedir(), options.path.slice(1))
203
+ : options.path;
204
+ const threshold = options.threshold.toUpperCase();
205
+ const valid = ["CRITICAL", "HIGH", "MEDIUM", "LOW"];
206
+ if (!valid.includes(threshold)) {
207
+ console.error(chalk.red(`\n Invalid threshold: ${threshold}`));
208
+ console.error(chalk.dim(` Valid: ${valid.join(", ")}\n`));
209
+ process.exit(1);
210
+ }
211
+ // Save webhook config
212
+ await saveNotifyConfig(openclawDir, {
213
+ notify: {
214
+ webhookUrl: options.webhook,
215
+ threshold,
216
+ },
217
+ });
218
+ console.log(chalk.dim("\n Sending test alert..."));
219
+ const ok = await sendTestAlert(options.webhook);
220
+ if (ok) {
221
+ console.log(chalk.green(" Webhook confirmed! You will receive alerts here."));
222
+ }
223
+ else {
224
+ console.log(chalk.yellow(" Could not reach webhook. Check the URL and try again."));
225
+ }
226
+ console.log(chalk.dim(` Threshold: ${threshold} and above`));
227
+ console.log(chalk.dim(` Config saved to: ${openclawDir}/clawhatch.json\n`));
228
+ });
229
+ program.parse();
230
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/init.d.ts ADDED
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Generate a secure baseline OpenClaw configuration.
3
+ *
4
+ * Creates openclaw.json, .env, and .gitignore with
5
+ * hardened defaults in the target directory.
6
+ */
7
+ interface InitResult {
8
+ created: string[];
9
+ skipped: string[];
10
+ directory: string;
11
+ }
12
+ export declare function initSecureConfig(targetDir: string): Promise<InitResult>;
13
+ export {};
14
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA2DH,UAAU,UAAU;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAWD,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,CAAC,CAwCrB"}
package/dist/init.js ADDED
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Generate a secure baseline OpenClaw configuration.
3
+ *
4
+ * Creates openclaw.json, .env, and .gitignore with
5
+ * hardened defaults in the target directory.
6
+ */
7
+ import { writeFile, mkdir, access } from "node:fs/promises";
8
+ import { join } from "node:path";
9
+ import chalk from "chalk";
10
+ const SECURE_CONFIG = {
11
+ gateway: {
12
+ bind: "127.0.0.1",
13
+ port: 3000,
14
+ auth: {
15
+ mode: "token",
16
+ token: "${OPENCLAW_AUTH_TOKEN}",
17
+ },
18
+ allowInsecureAuth: false,
19
+ dangerouslyDisableDeviceAuth: false,
20
+ },
21
+ channels: {},
22
+ sandbox: {
23
+ mode: "all",
24
+ workspaceAccess: "ro",
25
+ },
26
+ tools: {
27
+ elevated: [],
28
+ auditLog: true,
29
+ timeout: 30000,
30
+ rateLimit: 60,
31
+ },
32
+ retention: {
33
+ sessionLogTTL: 2592000,
34
+ encryptAtRest: false,
35
+ logRotation: true,
36
+ },
37
+ skills: {
38
+ sandboxed: true,
39
+ verifySignatures: false,
40
+ autoUpdate: false,
41
+ },
42
+ model: {
43
+ default: "claude-sonnet-4-5-20250929",
44
+ },
45
+ };
46
+ const ENV_TEMPLATE = `# OpenClaw Environment Variables
47
+ # Generate a secure token: node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
48
+ OPENCLAW_AUTH_TOKEN=
49
+ OPENAI_API_KEY=
50
+ ANTHROPIC_API_KEY=
51
+ `;
52
+ const GITIGNORE_TEMPLATE = `.env
53
+ .env.*
54
+ credentials/
55
+ *.key
56
+ *.pem
57
+ *.p12
58
+ agents/*/sessions/
59
+ `;
60
+ async function fileExists(path) {
61
+ try {
62
+ await access(path);
63
+ return true;
64
+ }
65
+ catch {
66
+ return false;
67
+ }
68
+ }
69
+ export async function initSecureConfig(targetDir) {
70
+ const result = { created: [], skipped: [], directory: targetDir };
71
+ // Ensure directory exists
72
+ await mkdir(targetDir, { recursive: true });
73
+ // Write openclaw.json
74
+ const configPath = join(targetDir, "openclaw.json");
75
+ if (await fileExists(configPath)) {
76
+ console.log(chalk.yellow(` ! Skipping ${configPath} (already exists)`));
77
+ result.skipped.push("openclaw.json");
78
+ }
79
+ else {
80
+ await writeFile(configPath, JSON.stringify(SECURE_CONFIG, null, 2) + "\n");
81
+ console.log(chalk.green(` + Created ${configPath}`));
82
+ result.created.push("openclaw.json");
83
+ }
84
+ // Write .env
85
+ const envPath = join(targetDir, ".env");
86
+ if (await fileExists(envPath)) {
87
+ console.log(chalk.yellow(` ! Skipping ${envPath} (already exists)`));
88
+ result.skipped.push(".env");
89
+ }
90
+ else {
91
+ await writeFile(envPath, ENV_TEMPLATE);
92
+ console.log(chalk.green(` + Created ${envPath}`));
93
+ result.created.push(".env");
94
+ }
95
+ // Write .gitignore
96
+ const gitignorePath = join(targetDir, ".gitignore");
97
+ if (await fileExists(gitignorePath)) {
98
+ console.log(chalk.yellow(` ! Skipping ${gitignorePath} (already exists)`));
99
+ result.skipped.push(".gitignore");
100
+ }
101
+ else {
102
+ await writeFile(gitignorePath, GITIGNORE_TEMPLATE);
103
+ console.log(chalk.green(` + Created ${gitignorePath}`));
104
+ result.created.push(".gitignore");
105
+ }
106
+ return result;
107
+ }
108
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Notification system for Clawhatch security scanner.
3
+ * Supports Discord, Slack, and generic webhook alerts.
4
+ */
5
+ import type { ClawhatchConfig, ScanResult, ThreatFeed, WebhookAlert } from "./types.js";
6
+ /**
7
+ * Load clawhatch.json from the openclaw directory.
8
+ */
9
+ export declare function loadNotifyConfig(openclawDir: string): Promise<ClawhatchConfig | null>;
10
+ /**
11
+ * Save (merge) clawhatch.json in the openclaw directory.
12
+ */
13
+ export declare function saveNotifyConfig(openclawDir: string, config: ClawhatchConfig): Promise<void>;
14
+ /**
15
+ * Build webhook alerts from scan results, filtered by severity threshold.
16
+ */
17
+ export declare function buildAlerts(result: ScanResult, feed: ThreatFeed | null, threshold: string): WebhookAlert[];
18
+ /**
19
+ * Send webhook alerts to a Discord, Slack, or generic endpoint.
20
+ * Returns true on 2xx, false otherwise. Never throws.
21
+ */
22
+ export declare function sendWebhookAlert(webhookUrl: string, alerts: WebhookAlert[], score: number): Promise<boolean>;
23
+ /**
24
+ * Send a test message to verify the webhook is working.
25
+ * Returns true on 2xx, false otherwise. Never throws.
26
+ */
27
+ export declare function sendTestAlert(webhookUrl: string): Promise<boolean>;
28
+ //# sourceMappingURL=notify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notify.d.ts","sourceRoot":"","sources":["../src/notify.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EACV,UAAU,EACV,YAAY,EAEb,MAAM,YAAY,CAAC;AASpB;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAOjC;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,UAAU,GAAG,IAAI,EACvB,SAAS,EAAE,MAAM,GAChB,YAAY,EAAE,CAkChB;AAkGD;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,YAAY,EAAE,EACtB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC,CA2BlB;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA8BxE"}