torusguard 1.3.3 → 1.3.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 (322) hide show
  1. package/.torusguard/.manifest.json +66 -63
  2. package/.torusguard/rules/business-logic/TG-BIZ-001-client-controlled-sensitive-business-value.md +30 -14
  3. package/.torusguard/rules/business-logic/TG-BIZ-002-replayable-one-time-operation.md +33 -16
  4. package/.torusguard/rules/business-logic/TG-BIZ-003-missing-workflow-state-validation.md +31 -15
  5. package/.torusguard/rules/business-logic/TG-BIZ-004-unrestricted-sensitive-business-flow.md +26 -16
  6. package/.torusguard/rules/cache/TG-CACHE-001-sensitive-response-publicly-cacheable.md +24 -16
  7. package/.torusguard/rules/cache/TG-CACHE-002-missing-user-cache-isolation.md +32 -18
  8. package/.torusguard/rules/cache/TG-CACHE-003-sensitive-data-in-url.md +24 -17
  9. package/.torusguard/rules/csrf/TG-CSRF-001-missing-csrf-protection.md +31 -18
  10. package/.torusguard/rules/csrf/TG-CSRF-002-unsafe-credentialed-cross-origin-request.md +28 -17
  11. package/.torusguard/rules/graphql/TG-GQL-002-resolver-missing-authorization.md +33 -17
  12. package/.torusguard/rules/graphql/TG-GQL-003-unbounded-graphql-pagination-or-batching.md +31 -16
  13. package/.torusguard/rules/graphql/TG-GQL-004-unnecessary-production-introspection.md +25 -16
  14. package/.torusguard/rules/secrets/TG-SEC-005-secret-in-git-history.md +24 -19
  15. package/.torusguard/rules/secrets/TG-SEC-006-secret-in-build-artifact.md +36 -19
  16. package/.torusguard/rules/secrets/TG-SEC-007-secret-in-test-or-example-fixture.md +21 -16
  17. package/.torusguard/rules/ssrf/TG-SSRF-002-missing-internal-network-protection.md +45 -18
  18. package/.torusguard/rules/ssrf/TG-SSRF-003-unsafe-redirect-following.md +20 -16
  19. package/.torusguard/rules/ssrf/TG-SSRF-004-unbounded-outbound-request.md +28 -19
  20. package/.torusguard/rules/supply-chain/TG-SUPPLY-001-missing-or-ignored-dependency-lockfile.md +25 -18
  21. package/.torusguard/rules/supply-chain/TG-SUPPLY-003-unsafe-ci-cd-secret-exposure.md +29 -19
  22. package/.torusguard/rules/supply-chain/TG-SUPPLY-004-unpinned-ci-action.md +23 -18
  23. package/.torusguard/rules/supply-chain/TG-SUPPLY-005-unsafe-dependency-install-script.md +23 -18
  24. package/.torusguard/rules/webhook/TG-WEBHOOK-001-missing-webhook-signature-verification.md +36 -16
  25. package/.torusguard/rules/webhook/TG-WEBHOOK-002-replayable-webhook.md +26 -17
  26. package/.torusguard/rules/webhook/TG-WEBHOOK-003-missing-webhook-idempotency.md +30 -16
  27. package/.torusguard/rules/webhook/TG-WEBHOOK-004-unvalidated-webhook-event-type.md +25 -16
  28. package/.torusguard/rules/websocket/TG-WS-002-missing-channel-level-authorization.md +28 -17
  29. package/.torusguard/rules/websocket/TG-WS-003-unvalidated-websocket-message.md +31 -17
  30. package/.torusguard/rules/websocket/TG-WS-004-unbounded-websocket-connections.md +31 -17
  31. package/.torusguard/rules_catalog.json +520 -0
  32. package/.torusguard/runs/report-latest.html +93 -7
  33. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-115-9a059e/metadata.json +15 -0
  34. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-115-9a059e/minimal_patch_plan.md +21 -0
  35. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-115-9a059e/patch.diff +9 -0
  36. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-119-61557c/metadata.json +15 -0
  37. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-119-61557c/minimal_patch_plan.md +21 -0
  38. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-119-61557c/patch.diff +9 -0
  39. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-265-996ca3/metadata.json +15 -0
  40. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-265-996ca3/minimal_patch_plan.md +21 -0
  41. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-265-996ca3/patch.diff +9 -0
  42. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-503-d11cf8/metadata.json +15 -0
  43. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-503-d11cf8/minimal_patch_plan.md +21 -0
  44. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-503-d11cf8/patch.diff +9 -0
  45. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-79-91f41f/metadata.json +15 -0
  46. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-79-91f41f/minimal_patch_plan.md +21 -0
  47. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-79-91f41f/patch.diff +9 -0
  48. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-107-516a40/metadata.json +15 -0
  49. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-107-516a40/minimal_patch_plan.md +21 -0
  50. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-107-516a40/patch.diff +9 -0
  51. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-128-7809a1/metadata.json +15 -0
  52. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-128-7809a1/minimal_patch_plan.md +21 -0
  53. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-128-7809a1/patch.diff +9 -0
  54. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-256-c8a22e/metadata.json +15 -0
  55. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-256-c8a22e/minimal_patch_plan.md +21 -0
  56. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-256-c8a22e/patch.diff +9 -0
  57. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-003-53-d167b4/metadata.json +15 -0
  58. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-003-53-d167b4/minimal_patch_plan.md +21 -0
  59. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-003-53-d167b4/patch.diff +9 -0
  60. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-platform-001-183-47fd5e/metadata.json +15 -0
  61. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-platform-001-183-47fd5e/minimal_patch_plan.md +21 -0
  62. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-platform-001-183-47fd5e/patch.diff +9 -0
  63. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-209-4f6424/metadata.json +15 -0
  64. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-209-4f6424/minimal_patch_plan.md +21 -0
  65. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-209-4f6424/patch.diff +9 -0
  66. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-257-89bf34/metadata.json +15 -0
  67. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-257-89bf34/minimal_patch_plan.md +21 -0
  68. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-257-89bf34/patch.diff +9 -0
  69. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-341-ce228c/metadata.json +15 -0
  70. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-341-ce228c/minimal_patch_plan.md +21 -0
  71. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-341-ce228c/patch.diff +9 -0
  72. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-355-7b190b/metadata.json +15 -0
  73. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-355-7b190b/minimal_patch_plan.md +21 -0
  74. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-355-7b190b/patch.diff +9 -0
  75. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-64-5af31a/metadata.json +15 -0
  76. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-64-5af31a/minimal_patch_plan.md +21 -0
  77. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-64-5af31a/patch.diff +9 -0
  78. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-9-f51467/metadata.json +15 -0
  79. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-9-f51467/minimal_patch_plan.md +21 -0
  80. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-9-f51467/patch.diff +9 -0
  81. package/.torusguard/runs/run-20260910-120238-audit/findings.json +1520 -0
  82. package/.torusguard/runs/run-20260910-120238-audit/findings.md +560 -0
  83. package/.torusguard/runs/run-20260910-120238-audit/manifest.json +13 -0
  84. package/.torusguard/runs/run-20260910-120238-audit/recheck.md +86 -0
  85. package/.torusguard/runs/run-20260910-120238-audit/remediation.md +262 -0
  86. package/.torusguard/runs/run-20260910-120238-audit/summary.md +5 -0
  87. package/.torusguard/runs/run-20260910-121238-audit/findings.json +794 -0
  88. package/.torusguard/runs/run-20260910-121238-audit/findings.md +344 -0
  89. package/.torusguard/runs/run-20260910-121238-audit/manifest.json +12 -0
  90. package/.torusguard/runs/run-20260910-121238-audit/summary.md +5 -0
  91. package/.torusguard/runs/run-20260910-130454-audit/findings.json +893 -0
  92. package/.torusguard/runs/run-20260910-130454-audit/findings.md +386 -0
  93. package/.torusguard/runs/run-20260910-130454-audit/manifest.json +12 -0
  94. package/.torusguard/runs/run-20260910-130454-audit/summary.md +5 -0
  95. package/.torusguard/runs/run-20260910-130519-audit/findings.json +563 -0
  96. package/.torusguard/runs/run-20260910-130519-audit/findings.md +246 -0
  97. package/.torusguard/runs/run-20260910-130519-audit/manifest.json +12 -0
  98. package/.torusguard/runs/run-20260910-130519-audit/summary.md +5 -0
  99. package/.torusguard/runs/run-20260912-214110-audit/findings.json +1256 -0
  100. package/.torusguard/runs/run-20260912-214110-audit/findings.md +534 -0
  101. package/.torusguard/runs/run-20260912-214110-audit/manifest.json +12 -0
  102. package/.torusguard/runs/run-20260912-214110-audit/summary.md +5 -0
  103. package/.torusguard/runs/run-20260912-214813-audit/findings.json +992 -0
  104. package/.torusguard/runs/run-20260912-214813-audit/findings.md +422 -0
  105. package/.torusguard/runs/run-20260912-214813-audit/manifest.json +12 -0
  106. package/.torusguard/runs/run-20260912-214813-audit/summary.md +5 -0
  107. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-auth-003-49-7c96f3/metadata.json +17 -0
  108. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-auth-003-49-7c96f3/minimal_patch_plan.md +21 -0
  109. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-auth-003-49-7c96f3/patch.diff +9 -0
  110. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-input-003-53-d167b4/metadata.json +17 -0
  111. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-input-003-53-d167b4/minimal_patch_plan.md +21 -0
  112. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-input-003-53-d167b4/patch.diff +9 -0
  113. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-platform-001-12-cf8156/metadata.json +17 -0
  114. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-platform-001-12-cf8156/minimal_patch_plan.md +21 -0
  115. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-platform-001-12-cf8156/patch.diff +9 -0
  116. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-rate-001-26-affcfa/metadata.json +17 -0
  117. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-rate-001-26-affcfa/minimal_patch_plan.md +21 -0
  118. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-rate-001-26-affcfa/patch.diff +9 -0
  119. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-sec-001-9-e22e50/metadata.json +17 -0
  120. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-sec-001-9-e22e50/minimal_patch_plan.md +21 -0
  121. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-sec-001-9-e22e50/patch.diff +9 -0
  122. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-ssrf-004-9-9803ad/metadata.json +17 -0
  123. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-ssrf-004-9-9803ad/minimal_patch_plan.md +21 -0
  124. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-ssrf-004-9-9803ad/patch.diff +9 -0
  125. package/.torusguard/runs/run-20260912-215555-audit/findings.json +530 -0
  126. package/.torusguard/runs/run-20260912-215555-audit/findings.md +232 -0
  127. package/.torusguard/runs/run-20260912-215555-audit/manifest.json +13 -0
  128. package/.torusguard/runs/run-20260912-215555-audit/remediation.md +102 -0
  129. package/.torusguard/runs/run-20260912-215555-audit/summary.md +5 -0
  130. package/.torusguard/runs/run-20260912-215731-audit/apply_plan.md +6 -0
  131. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-client-001-7-587129/metadata.json +17 -0
  132. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-client-001-7-587129/minimal_patch_plan.md +21 -0
  133. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-client-001-7-587129/patch.diff +9 -0
  134. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-db-002-9-5f7850/metadata.json +17 -0
  135. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-db-002-9-5f7850/minimal_patch_plan.md +21 -0
  136. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-db-002-9-5f7850/patch.diff +9 -0
  137. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-input-001-27-2486f1/metadata.json +17 -0
  138. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-input-001-27-2486f1/minimal_patch_plan.md +22 -0
  139. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-input-001-27-2486f1/patch.diff +10 -0
  140. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-input-003-53-d167b4/metadata.json +17 -0
  141. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-input-003-53-d167b4/minimal_patch_plan.md +21 -0
  142. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-input-003-53-d167b4/patch.diff +9 -0
  143. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-platform-001-12-cf8156/metadata.json +17 -0
  144. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-platform-001-12-cf8156/minimal_patch_plan.md +21 -0
  145. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-platform-001-12-cf8156/patch.diff +9 -0
  146. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-platform-002-17-876973/metadata.json +17 -0
  147. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-platform-002-17-876973/minimal_patch_plan.md +23 -0
  148. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-platform-002-17-876973/patch.diff +11 -0
  149. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-platform-002-5-40c794/metadata.json +17 -0
  150. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-platform-002-5-40c794/minimal_patch_plan.md +23 -0
  151. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-platform-002-5-40c794/patch.diff +11 -0
  152. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-rate-001-26-affcfa/metadata.json +17 -0
  153. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-rate-001-26-affcfa/minimal_patch_plan.md +21 -0
  154. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-rate-001-26-affcfa/patch.diff +9 -0
  155. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-rate-002-54-0b38d2/metadata.json +17 -0
  156. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-rate-002-54-0b38d2/minimal_patch_plan.md +21 -0
  157. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-rate-002-54-0b38d2/patch.diff +9 -0
  158. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-001-18-a3c1e8/metadata.json +17 -0
  159. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-001-18-a3c1e8/minimal_patch_plan.md +21 -0
  160. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-001-18-a3c1e8/patch.diff +9 -0
  161. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-001-9-e22e50/metadata.json +17 -0
  162. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-001-9-e22e50/minimal_patch_plan.md +21 -0
  163. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-001-9-e22e50/patch.diff +9 -0
  164. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-004-28-a1a0a1/metadata.json +17 -0
  165. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-004-28-a1a0a1/minimal_patch_plan.md +21 -0
  166. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-004-28-a1a0a1/patch.diff +9 -0
  167. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-004-30-00569e/metadata.json +17 -0
  168. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-004-30-00569e/minimal_patch_plan.md +21 -0
  169. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-004-30-00569e/patch.diff +9 -0
  170. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-ssrf-004-9-9803ad/metadata.json +17 -0
  171. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-ssrf-004-9-9803ad/minimal_patch_plan.md +21 -0
  172. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-ssrf-004-9-9803ad/patch.diff +9 -0
  173. package/.torusguard/runs/run-20260912-215731-audit/diff_summary.md +186 -0
  174. package/.torusguard/runs/run-20260912-215731-audit/findings.json +497 -0
  175. package/.torusguard/runs/run-20260912-215731-audit/findings.md +218 -0
  176. package/.torusguard/runs/run-20260912-215731-audit/manifest.json +14 -0
  177. package/.torusguard/runs/run-20260912-215731-audit/recheck.md +76 -0
  178. package/.torusguard/runs/run-20260912-215731-audit/remediation.md +234 -0
  179. package/.torusguard/runs/run-20260912-215731-audit/summary.md +5 -0
  180. package/.torusguard/runs/run-20260912-220134-audit/findings.json +68 -0
  181. package/.torusguard/runs/run-20260912-220134-audit/findings.md +36 -0
  182. package/.torusguard/runs/run-20260912-220134-audit/manifest.json +12 -0
  183. package/.torusguard/runs/run-20260912-220134-audit/summary.md +5 -0
  184. package/.torusguard/runs/run-20260912-220200-audit/findings.json +1 -0
  185. package/.torusguard/runs/run-20260912-220200-audit/findings.md +8 -0
  186. package/.torusguard/runs/run-20260912-220200-audit/manifest.json +12 -0
  187. package/.torusguard/runs/run-20260912-220200-audit/recheck.md +6 -0
  188. package/.torusguard/runs/run-20260912-220200-audit/summary.md +5 -0
  189. package/.torusguard/runs/run-20260912-220227-audit/findings.json +1 -0
  190. package/.torusguard/runs/run-20260912-220227-audit/findings.md +8 -0
  191. package/.torusguard/runs/run-20260912-220227-audit/manifest.json +12 -0
  192. package/.torusguard/runs/run-20260912-220227-audit/recheck.md +6 -0
  193. package/.torusguard/runs/run-20260912-220227-audit/summary.md +5 -0
  194. package/.torusguard/scripts/__pycache__/audit_runner.cpython-311.pyc +0 -0
  195. package/.torusguard/scripts/__pycache__/diff_guard.cpython-311.pyc +0 -0
  196. package/.torusguard/scripts/__pycache__/finding_scorer.cpython-311.pyc +0 -0
  197. package/.torusguard/scripts/__pycache__/html_reporter.cpython-311.pyc +0 -0
  198. package/.torusguard/scripts/__pycache__/report_sync.cpython-311.pyc +0 -0
  199. package/.torusguard/scripts/__pycache__/rules_sync.cpython-311.pyc +0 -0
  200. package/.torusguard/scripts/__pycache__/stack_detect.cpython-311.pyc +0 -0
  201. package/.torusguard/scripts/__pycache__/term_ui.cpython-311.pyc +0 -0
  202. package/.torusguard/scripts/apply_runner.py +383 -339
  203. package/.torusguard/scripts/audit_runner.py +1306 -550
  204. package/.torusguard/scripts/finding_scorer.py +14 -2
  205. package/.torusguard/scripts/harden_runner.py +628 -375
  206. package/.torusguard/scripts/recheck_runner.py +248 -221
  207. package/.torusguard/scripts/recipes_runner.py +137 -130
  208. package/.torusguard/scripts/report_sync.py +423 -0
  209. package/.torusguard/scripts/sarif_exporter.py +116 -116
  210. package/.torusguard/scripts/term_ui.py +162 -0
  211. package/.torusguard/skills/torusguard/SKILL.md +61 -31
  212. package/.torusguard/skills/torusguard-apply/SKILL.md +80 -46
  213. package/.torusguard/skills/torusguard-audit/SKILL.md +83 -70
  214. package/.torusguard/skills/torusguard-authorize/SKILL.md +5 -4
  215. package/.torusguard/skills/torusguard-exploit-check/SKILL.md +6 -5
  216. package/.torusguard/skills/torusguard-full/SKILL.md +1 -1
  217. package/.torusguard/skills/torusguard-harden/SKILL.md +94 -63
  218. package/.torusguard/skills/torusguard-init/SKILL.md +64 -52
  219. package/.torusguard/skills/torusguard-recheck/SKILL.md +77 -53
  220. package/.torusguard/skills/torusguard-report/SKILL.md +72 -54
  221. package/.torusguard/skills/torusguard-status/SKILL.md +58 -42
  222. package/.torusguard/skills/torusguard-verify/SKILL.md +8 -7
  223. package/.torusguard/skills/torusguard-web-validate/SKILL.md +8 -7
  224. package/.torusguard/snapshots/run-20260912-215731-audit/demo/playground/vulnerable_nextjs/actions.ts.bak +24 -0
  225. package/.torusguard/snapshots/run-20260912-215731-audit/examples/hardened-react-express/server/index.js.bak +121 -0
  226. package/.torusguard/snapshots/run-20260912-215731-audit/examples/python/fastapi-vuln/main.py.bak +20 -0
  227. package/.torusguard/snapshots/run-20260912-215731-audit/examples/vulnerable-react-express/client/src/App.jsx.bak +63 -0
  228. package/.torusguard/snapshots/run-20260912-215731-audit/examples/vulnerable-react-express/client/vite.config.js.bak +12 -0
  229. package/.torusguard/snapshots/run-20260912-215731-audit/examples/vulnerable-react-express/server/index.js.bak +82 -0
  230. package/.torusguard/workflows/apply.md +11 -4
  231. package/.torusguard/workflows/audit.md +7 -1
  232. package/.torusguard/workflows/authorize.md +2 -1
  233. package/.torusguard/workflows/exploit-check.md +2 -1
  234. package/.torusguard/workflows/harden.md +7 -1
  235. package/.torusguard/workflows/init.md +6 -1
  236. package/.torusguard/workflows/memory.md +2 -1
  237. package/.torusguard/workflows/recheck.md +7 -1
  238. package/.torusguard/workflows/report.md +7 -1
  239. package/.torusguard/workflows/status.md +6 -1
  240. package/.torusguard/workflows/verify.md +6 -1
  241. package/.torusguard/workflows/web-validate.md +2 -1
  242. package/README.md +470 -344
  243. package/bin/torusguard.js +209 -97
  244. package/package.json +1 -1
  245. package/skills/torusguard/SKILL.md +73 -42
  246. package/skills/torusguard/payload/.manifest.json +66 -63
  247. package/skills/torusguard/payload/rules/business-logic/TG-BIZ-001-client-controlled-sensitive-business-value.md +30 -14
  248. package/skills/torusguard/payload/rules/business-logic/TG-BIZ-002-replayable-one-time-operation.md +33 -16
  249. package/skills/torusguard/payload/rules/business-logic/TG-BIZ-003-missing-workflow-state-validation.md +31 -15
  250. package/skills/torusguard/payload/rules/business-logic/TG-BIZ-004-unrestricted-sensitive-business-flow.md +26 -16
  251. package/skills/torusguard/payload/rules/cache/TG-CACHE-001-sensitive-response-publicly-cacheable.md +24 -16
  252. package/skills/torusguard/payload/rules/cache/TG-CACHE-002-missing-user-cache-isolation.md +32 -18
  253. package/skills/torusguard/payload/rules/cache/TG-CACHE-003-sensitive-data-in-url.md +24 -17
  254. package/skills/torusguard/payload/rules/csrf/TG-CSRF-001-missing-csrf-protection.md +31 -18
  255. package/skills/torusguard/payload/rules/csrf/TG-CSRF-002-unsafe-credentialed-cross-origin-request.md +28 -17
  256. package/skills/torusguard/payload/rules/graphql/TG-GQL-002-resolver-missing-authorization.md +33 -17
  257. package/skills/torusguard/payload/rules/graphql/TG-GQL-003-unbounded-graphql-pagination-or-batching.md +31 -16
  258. package/skills/torusguard/payload/rules/graphql/TG-GQL-004-unnecessary-production-introspection.md +25 -16
  259. package/skills/torusguard/payload/rules/secrets/TG-SEC-005-secret-in-git-history.md +24 -19
  260. package/skills/torusguard/payload/rules/secrets/TG-SEC-006-secret-in-build-artifact.md +36 -19
  261. package/skills/torusguard/payload/rules/secrets/TG-SEC-007-secret-in-test-or-example-fixture.md +21 -16
  262. package/skills/torusguard/payload/rules/ssrf/TG-SSRF-002-missing-internal-network-protection.md +45 -18
  263. package/skills/torusguard/payload/rules/ssrf/TG-SSRF-003-unsafe-redirect-following.md +20 -16
  264. package/skills/torusguard/payload/rules/ssrf/TG-SSRF-004-unbounded-outbound-request.md +28 -19
  265. package/skills/torusguard/payload/rules/supply-chain/TG-SUPPLY-001-missing-or-ignored-dependency-lockfile.md +25 -18
  266. package/skills/torusguard/payload/rules/supply-chain/TG-SUPPLY-003-unsafe-ci-cd-secret-exposure.md +29 -19
  267. package/skills/torusguard/payload/rules/supply-chain/TG-SUPPLY-004-unpinned-ci-action.md +23 -18
  268. package/skills/torusguard/payload/rules/supply-chain/TG-SUPPLY-005-unsafe-dependency-install-script.md +23 -18
  269. package/skills/torusguard/payload/rules/webhook/TG-WEBHOOK-001-missing-webhook-signature-verification.md +36 -16
  270. package/skills/torusguard/payload/rules/webhook/TG-WEBHOOK-002-replayable-webhook.md +26 -17
  271. package/skills/torusguard/payload/rules/webhook/TG-WEBHOOK-003-missing-webhook-idempotency.md +30 -16
  272. package/skills/torusguard/payload/rules/webhook/TG-WEBHOOK-004-unvalidated-webhook-event-type.md +25 -16
  273. package/skills/torusguard/payload/rules/websocket/TG-WS-002-missing-channel-level-authorization.md +28 -17
  274. package/skills/torusguard/payload/rules/websocket/TG-WS-003-unvalidated-websocket-message.md +31 -17
  275. package/skills/torusguard/payload/rules/websocket/TG-WS-004-unbounded-websocket-connections.md +31 -17
  276. package/skills/torusguard/payload/rules_catalog.json +520 -0
  277. package/skills/torusguard/payload/scripts/apply_runner.py +383 -339
  278. package/skills/torusguard/payload/scripts/audit_runner.py +1306 -550
  279. package/skills/torusguard/payload/scripts/finding_scorer.py +14 -2
  280. package/skills/torusguard/payload/scripts/harden_runner.py +628 -375
  281. package/skills/torusguard/payload/scripts/recheck_runner.py +248 -221
  282. package/skills/torusguard/payload/scripts/recipes_runner.py +137 -130
  283. package/skills/torusguard/payload/scripts/report_sync.py +423 -0
  284. package/skills/torusguard/payload/scripts/sarif_exporter.py +116 -116
  285. package/skills/torusguard/payload/scripts/term_ui.py +162 -0
  286. package/skills/torusguard/payload/skills/torusguard/SKILL.md +75 -42
  287. package/skills/torusguard/payload/skills/torusguard-apply/SKILL.md +63 -25
  288. package/skills/torusguard/payload/skills/torusguard-audit/SKILL.md +62 -45
  289. package/skills/torusguard/payload/skills/torusguard-authorize/SKILL.md +11 -5
  290. package/skills/torusguard/payload/skills/torusguard-exploit-check/SKILL.md +12 -6
  291. package/skills/torusguard/payload/skills/torusguard-full/SKILL.md +7 -2
  292. package/skills/torusguard/payload/skills/torusguard-harden/SKILL.md +71 -36
  293. package/skills/torusguard/payload/skills/torusguard-init/SKILL.md +45 -29
  294. package/skills/torusguard/payload/skills/torusguard-recheck/SKILL.md +59 -31
  295. package/skills/torusguard/payload/skills/torusguard-report/SKILL.md +52 -30
  296. package/skills/torusguard/payload/skills/torusguard-status/SKILL.md +40 -20
  297. package/skills/torusguard/payload/skills/torusguard-verify/SKILL.md +14 -8
  298. package/skills/torusguard/payload/skills/torusguard-web-validate/SKILL.md +14 -8
  299. package/skills/torusguard/payload/workflows/apply.md +11 -4
  300. package/skills/torusguard/payload/workflows/audit.md +7 -1
  301. package/skills/torusguard/payload/workflows/authorize.md +2 -1
  302. package/skills/torusguard/payload/workflows/exploit-check.md +2 -1
  303. package/skills/torusguard/payload/workflows/harden.md +7 -1
  304. package/skills/torusguard/payload/workflows/init.md +6 -1
  305. package/skills/torusguard/payload/workflows/memory.md +2 -1
  306. package/skills/torusguard/payload/workflows/recheck.md +7 -1
  307. package/skills/torusguard/payload/workflows/report.md +7 -1
  308. package/skills/torusguard/payload/workflows/status.md +6 -1
  309. package/skills/torusguard/payload/workflows/verify.md +6 -1
  310. package/skills/torusguard/payload/workflows/web-validate.md +2 -1
  311. package/skills/torusguard-apply/SKILL.md +63 -27
  312. package/skills/torusguard-audit/SKILL.md +62 -50
  313. package/skills/torusguard-authorize/SKILL.md +7 -2
  314. package/skills/torusguard-exploit-check/SKILL.md +7 -2
  315. package/skills/torusguard-full/SKILL.md +7 -2
  316. package/skills/torusguard-harden/SKILL.md +71 -40
  317. package/skills/torusguard-init/SKILL.md +45 -30
  318. package/skills/torusguard-recheck/SKILL.md +59 -32
  319. package/skills/torusguard-report/SKILL.md +52 -31
  320. package/skills/torusguard-status/SKILL.md +40 -21
  321. package/skills/torusguard-verify/SKILL.md +7 -2
  322. package/skills/torusguard-web-validate/SKILL.md +7 -2
@@ -1,10 +1,11 @@
1
1
  ---
2
2
  name: torusguard-web-validate
3
3
  description: Execute authorized HTTP probing against local/staging web applications — session capture, transparent audit headers, and secret redaction.
4
- version: 0.9.2
4
+ version: 1.3.5
5
5
  workflow: .torusguard/workflows/web-validate.md
6
- tools: Read, Grep, Glob, Bash, Write
6
+ tools: Read, Grep, Glob, Bash, Write, run_command
7
7
  scripts-binding:
8
+ - .torusguard/scripts/report_sync.py
8
9
  - .torusguard/scripts/safety_gate.py
9
10
  ---
10
11
 
@@ -34,11 +35,12 @@ All requests pass through `.torusguard/scripts/safety_gate.py`:
34
35
  ## Execution Steps
35
36
 
36
37
  1. **Gate Check:** Validate scope in `scope.json` and query `safety_gate.py`.
37
- 2. **Inject Audit Header:** Attach `X-TorusGuard-AuthID: <auth_id>` to all outbound requests.
38
- 3. **Dispatch Bounded Probe:** Send single non-destructive HTTP request.
39
- 4. **Validate Security Headers:** Check for CSP, HSTS, X-Content-Type-Options, and CORS configurations.
40
- 5. **Audit Cookie Flags:** Verify `HttpOnly`, `Secure`, and `SameSite` on session cookies.
41
- 6. **Capture Replay Trace:** Save sanitized trace in `.torusguard/runs/<run_id>/requests.json`.
38
+ 2. **Handle Automation Failure:** If automated web validation scripts fail, YOU must manually construct the HTTP requests (using `curl` or `fetch`) and inspect the responses.
39
+ 3. **Inject Audit Header:** Attach `X-TorusGuard-AuthID: <auth_id>` to all outbound requests.
40
+ 4. **Dispatch Bounded Probe:** Send single non-destructive HTTP request.
41
+ 5. **Validate Security Headers:** Check for CSP, HSTS, X-Content-Type-Options, and CORS configurations.
42
+ 6. **Audit Cookie Flags:** Verify `HttpOnly`, `Secure`, and `SameSite` on session cookies.
43
+ 7. **Capture Replay Trace:** Save sanitized trace in `.torusguard/runs/<run_id>/requests.json`.
42
44
 
43
45
  ---
44
46
 
@@ -47,6 +49,10 @@ All Bearer tokens, cookies, passwords, and API keys are redacted prior to disk s
47
49
 
48
50
  ---
49
51
 
52
+ ## Living Report Ground Truth
53
+ - Always inspect `security_report.md` at workspace root before acting.
54
+ - Update finding statuses after completion to eliminate hallucination.
55
+
50
56
  ## Safety Constraints
51
57
  - Max 50 requests per validation session.
52
58
  - Never test unauthorized domains or third-party APIs.
@@ -56,7 +62,7 @@ All Bearer tokens, cookies, passwords, and API keys are redacted prior to disk s
56
62
 
57
63
  ## Output Format
58
64
  ```markdown
59
- 🌐 [TorusGuard] Web Validation Completed
65
+ 🌐 [TorusGuard] Web Validation Completed (AI Assisted)
60
66
  - Target: <Host URL> | Endpoints Tested: <Count>
61
67
  - Header Posture: <CSP/HSTS Status> | Cookies: <Flags Status>
62
68
  - Replay Trace: `.torusguard/runs/<run_id>/requests.json`
@@ -1,12 +1,14 @@
1
1
  ---
2
2
  description: Governed patch application with pre-apply rollback snapshots and Human Gate authorization.
3
3
  tools: Read, Grep, Glob, Bash, Edit, Write
4
- version: 0.9.2
4
+ version: 1.3.5
5
5
  agent: remediator
6
6
  lifecycle-phase: Phase 5 (Patch Application)
7
7
  required-skills:
8
8
  - torusguard-apply
9
9
  scripts-binding:
10
+ - .torusguard/scripts/apply_runner.py
11
+ - .torusguard/scripts/report_sync.py
10
12
  - .torusguard/scripts/run_manager.py
11
13
  - .torusguard/scripts/diff_guard.py
12
14
  ---
@@ -26,7 +28,7 @@ Governed patch application with pre-apply rollback snapshots and Human Gate auth
26
28
 
27
29
  Inspect bundle validity and file safety before modifying disk code:
28
30
  1. **Bundle Verification:** Assert `patch.diff` exists in active run's remediation folder.
29
- 2. **Pre-Apply Snapshot:** Save a byte-for-byte backup copy (`.bak` or `pre_apply/`) prior to editing.
31
+ 2. **Pre-Apply Snapshot:** Save a byte-for-byte backup copy (`.bak` or `.torusguard/snapshots/<run_id>/`) prior to editing.
30
32
  3. **Uncommitted Changes:** Check git status; ensure target file has clean baseline.
31
33
  4. **Ponytail Check:** Re-verify that patch additions $\le 35$ and deletions $\le 25$.
32
34
  5. **Human Gate:** Confirm operator approval before committing edits to disk.
@@ -47,11 +49,16 @@ Inspect bundle validity and file safety before modifying disk code:
47
49
 
48
50
  ---
49
51
 
52
+ ## Living Report Invariant
53
+ - Applied patches create pre-apply `.bak` snapshots in `.torusguard/snapshots/<run_id>/`.
54
+ - Finding statuses transition in `security_report.md` to `APPLIED 🔵`.
55
+ - Instant rollback available via `npx torusguard rollback`.
56
+
50
57
  ## Execution Steps
51
58
 
52
59
  1. **Load Remediation Bundle:** Read `patch.diff` and metadata from active run directory.
53
60
  2. **Audit Patch Invariants:** Run `python .torusguard/scripts/diff_guard.py <patch.diff>`.
54
- 3. **Create Rollback Backup:** Copy target file to `.torusguard/runs/<run_id>/pre_apply/<filename>.bak`.
61
+ 3. **Create Rollback Backup:** Copy target file to `.torusguard/runs/<run_id>/.torusguard/snapshots/<run_id>/<filename>.bak`.
55
62
  4. **Apply Minimal Diff:** Execute precise surgical edit using `replace_file_content` or `patch`.
56
63
  5. **Assert Syntax & Integrity:** Check that modified file compiles cleanly without syntax errors.
57
64
  6. **Log Application Ledger:** Record timestamp, original SHA-256, and patched SHA-256 in `apply-log.json`.
@@ -81,7 +88,7 @@ Inspect bundle validity and file safety before modifying disk code:
81
88
  ### 🚀 TorusGuard Patch Application
82
89
  - **Finding Addressed:** `TG-XXX-HASH`
83
90
  - **File Patched:** `src/path/to/file.py`
84
- - **Rollback Backup:** `.torusguard/runs/<run_id>/pre_apply/<file>.bak`
91
+ - **Rollback Backup:** `.torusguard/runs/<run_id>/.torusguard/snapshots/<run_id>/<file>.bak`
85
92
  - **Churn Applied:** +[Additions] / -[Deletions] lines
86
93
  - **Syntax Check:** PASSED (clean compile)
87
94
  - **Status:** APPLIED — run `/torusguard recheck` to verify fix
@@ -1,12 +1,14 @@
1
1
  ---
2
2
  description: Static security AST scanning, stable line-shift invariant fingerprinting, root-cause clustering, and 0-100 confidence scoring.
3
3
  tools: Read, Grep, Glob, Bash, Write
4
- version: 0.9.2
4
+ version: 1.3.5
5
5
  agent: auditor
6
6
  lifecycle-phase: Phase 2 (Static Audit & Clustering)
7
7
  required-skills:
8
8
  - torusguard-audit
9
9
  scripts-binding:
10
+ - .torusguard/scripts/audit_runner.py
11
+ - .torusguard/scripts/report_sync.py
10
12
  - .torusguard/scripts/run_manager.py
11
13
  - .torusguard/scripts/finding_scorer.py
12
14
  ---
@@ -45,6 +47,10 @@ Inspect workspace prerequisites before launching static audit:
45
47
 
46
48
  ---
47
49
 
50
+ ## Living Report Invariant
51
+ - Audit discoveries automatically synchronize to `security_report.md` at workspace root.
52
+ - Findings transition into `OPEN 🔴` status with stable invariant fingerprints.
53
+
48
54
  ## Execution Steps
49
55
 
50
56
  1. **Allocate Run Folder:** Run `python .torusguard/scripts/run_manager.py create audit`.
@@ -1,12 +1,13 @@
1
1
  ---
2
2
  description: Legal scope definition, target ownership proof verification, and safety boundary enforcement for runtime validation.
3
3
  tools: Read, Grep, Glob, Bash, Write
4
- version: 0.9.2
4
+ version: 1.3.5
5
5
  agent: reviewer
6
6
  lifecycle-phase: Phase 1 (Authorization Gate)
7
7
  required-skills:
8
8
  - torusguard-authorize
9
9
  scripts-binding:
10
+ - .torusguard/scripts/report_sync.py
10
11
  - .torusguard/scripts/safety_gate.py
11
12
  ---
12
13
 
@@ -1,12 +1,13 @@
1
1
  ---
2
2
  description: Safe, bounded, single-step exploitability confirmation across 5 standard verification statuses.
3
3
  tools: Read, Grep, Glob, Bash, Write
4
- version: 0.9.2
4
+ version: 1.3.5
5
5
  agent: validator
6
6
  lifecycle-phase: Phase 3c (Exploitability Check)
7
7
  required-skills:
8
8
  - torusguard-exploit-check
9
9
  scripts-binding:
10
+ - .torusguard/scripts/report_sync.py
10
11
  - .torusguard/scripts/safety_gate.py
11
12
  - .torusguard/scripts/finding_scorer.py
12
13
  ---
@@ -1,12 +1,14 @@
1
1
  ---
2
2
  description: Governed remediation formulation under strict Ponytail Protocol bounds (<= 35 additions, <= 25 deletions) and bundle packaging.
3
3
  tools: Read, Grep, Glob, Bash, Write
4
- version: 0.9.2
4
+ version: 1.3.5
5
5
  agent: remediator
6
6
  lifecycle-phase: Phase 4 (Remediation Formulation)
7
7
  required-skills:
8
8
  - torusguard-harden
9
9
  scripts-binding:
10
+ - .torusguard/scripts/harden_runner.py
11
+ - .torusguard/scripts/report_sync.py
10
12
  - .torusguard/scripts/run_manager.py
11
13
  - .torusguard/scripts/diff_guard.py
12
14
  ---
@@ -46,6 +48,10 @@ Inspect finding targets and patch constraints before generating diffs:
46
48
 
47
49
  ---
48
50
 
51
+ ## Living Report Invariant
52
+ - Candidate patches transition findings in `security_report.md` into `CANDIDATE 🟡` status.
53
+ - Every patch strictly conforms to Ponytail bounds (<= 35 additions, <= 25 deletions).
54
+
49
55
  ## Execution Steps
50
56
 
51
57
  1. **Select Target Finding:** Choose verified flaw from active run directory.
@@ -1,12 +1,13 @@
1
1
  ---
2
2
  description: Baseline project discovery, workspace scaffolding, stack detection, and framework-tailored security rule activation.
3
3
  tools: Read, Grep, Glob, Bash, Write
4
- version: 0.9.2
4
+ version: 1.3.5
5
5
  agent: profiler
6
6
  lifecycle-phase: Phase 0 (Baseline Setup)
7
7
  required-skills:
8
8
  - torusguard-init
9
9
  scripts-binding:
10
+ - .torusguard/scripts/report_sync.py
10
11
  - .torusguard/scripts/stack_detect.py
11
12
  ---
12
13
 
@@ -44,6 +45,10 @@ Inspect workspace state before running initialization:
44
45
 
45
46
  ---
46
47
 
48
+ ## Living Report Invariant
49
+ - Provisions baseline `security_report.md` single-source-of-truth ledger.
50
+ - Activates tailored rules across 18 families based on detected stack.
51
+
47
52
  ## Execution Steps
48
53
 
49
54
  1. **Scaffold Directory Topology:** Verify `.torusguard/` structure (`config/`, `rules/active/`, `runs/`, `scripts/`, `workflows/`, `templates/`, `schemas/`).
@@ -1,12 +1,13 @@
1
1
  ---
2
2
  description: TorusGuard Adaptive Security Memory Engine — view memory stats, export/import intelligence, apply TTL decay, and manage false positives.
3
3
  tools: Read, Grep, Glob, Bash
4
- version: 1.0.0
4
+ version: 1.3.5
5
5
  agent: reviewer
6
6
  lifecycle-phase: Intelligence / Memory
7
7
  required-skills:
8
8
  - torusguard
9
9
  scripts-binding:
10
+ - .torusguard/scripts/report_sync.py
10
11
  - .torusguard/scripts/memory_engine.py
11
12
  ---
12
13
 
@@ -1,12 +1,14 @@
1
1
  ---
2
2
  description: Targeted differential AST re-scan, fix closure verification, and regression state machine transitions.
3
3
  tools: Read, Grep, Glob, Bash, Write
4
- version: 0.9.2
4
+ version: 1.3.5
5
5
  agent: reviewer
6
6
  lifecycle-phase: Phase 6 (Targeted Recheck & Verification)
7
7
  required-skills:
8
8
  - torusguard-recheck
9
9
  scripts-binding:
10
+ - .torusguard/scripts/recheck_runner.py
11
+ - .torusguard/scripts/report_sync.py
10
12
  - .torusguard/scripts/run_manager.py
11
13
  - .torusguard/scripts/finding_scorer.py
12
14
  ---
@@ -46,6 +48,10 @@ Inspect applied patch history and target file scope before re-checking:
46
48
 
47
49
  ---
48
50
 
51
+ ## Living Report Invariant
52
+ - Verified fix closures transition findings in `security_report.md` to `RESOLVED 🟢`.
53
+ - Regressions transition findings to `REGRESSED ❌`.
54
+
49
55
  ## Execution Steps
50
56
 
51
57
  1. **Identify Modified Files:** Extract list of altered files from latest apply step.
@@ -1,12 +1,14 @@
1
1
  ---
2
2
  description: Executive posture reporting, cluster analysis, signed compliance audit, and OASIS SARIF v2.1.0 structured export.
3
3
  tools: Read, Grep, Glob, Bash, Write
4
- version: 0.9.2
4
+ version: 1.3.5
5
5
  agent: reviewer
6
6
  lifecycle-phase: Phase 7 (Reporting & SARIF Export)
7
7
  required-skills:
8
8
  - torusguard-report
9
9
  scripts-binding:
10
+ - .torusguard/scripts/html_reporter.py
11
+ - .torusguard/scripts/report_sync.py
10
12
  - .torusguard/scripts/sarif_exporter.py
11
13
  - .torusguard/scripts/run_manager.py
12
14
  ---
@@ -45,6 +47,10 @@ Inspect run records and reporting parameters before generating release artifacts
45
47
 
46
48
  ---
47
49
 
50
+ ## Living Report Invariant
51
+ - Executive posture reports incorporate health scoring and metrics from `security_report.md`.
52
+ - Emits visual dark-mode HTML (`--html`) and OASIS SARIF v2.1.0 (`--sarif`).
53
+
48
54
  ## Execution Steps
49
55
 
50
56
  1. **Aggregate Lifecycle Data:** Load all finding cards, verification traces, and recheck logs.
@@ -1,12 +1,13 @@
1
1
  ---
2
2
  description: Read-only diagnostic overview of workspace security posture, active configuration, rules catalog, and run history.
3
3
  tools: Read, Grep, Glob, Bash
4
- version: 0.9.2
4
+ version: 1.3.5
5
5
  agent: reviewer
6
6
  lifecycle-phase: System / Diagnostics
7
7
  required-skills:
8
8
  - torusguard-status
9
9
  scripts-binding:
10
+ - .torusguard/scripts/report_sync.py
10
11
  - .torusguard/scripts/run_manager.py
11
12
  ---
12
13
 
@@ -44,6 +45,10 @@ Inspect workspace state and configuration records prior to status display:
44
45
 
45
46
  ---
46
47
 
48
+ ## Living Report Invariant
49
+ - Reads current health score and status breakdown directly from `security_report.md`.
50
+ - Displays 18 rule families and 74 rules in standardized 75-column terminal cards.
51
+
47
52
  ## Execution Steps
48
53
 
49
54
  1. **Read Configuration:** Load `.torusguard/config/torusguard.json`; extract stack, version, and enabled rule count.
@@ -1,12 +1,13 @@
1
1
  ---
2
2
  description: Evidence sufficiency verification, live disk line match audit, and finding score refinement.
3
3
  tools: Read, Grep, Glob, Bash, Write
4
- version: 0.9.2
4
+ version: 1.3.5
5
5
  agent: validator
6
6
  lifecycle-phase: Phase 3a (Evidence Verification)
7
7
  required-skills:
8
8
  - torusguard-verify
9
9
  scripts-binding:
10
+ - .torusguard/scripts/report_sync.py
10
11
  - .torusguard/scripts/finding_scorer.py
11
12
  ---
12
13
 
@@ -44,6 +45,10 @@ Inspect finding records and evidence integrity before verification:
44
45
 
45
46
  ---
46
47
 
48
+ ## Living Report Invariant
49
+ - Confirmed evidence sufficiency transitions findings in `security_report.md` to `VERIFIED 🟠`.
50
+ - False positives transition to `FALSE POSITIVE ⚪`.
51
+
47
52
  ## Execution Steps
48
53
 
49
54
  1. **Locate Target Findings:** Load active findings from latest run directory.
@@ -1,12 +1,13 @@
1
1
  ---
2
2
  description: Authorized HTTP probing, token redaction, transparent audit header injection, and replay trace capture.
3
3
  tools: Read, Grep, Glob, Bash, Write
4
- version: 0.9.2
4
+ version: 1.3.5
5
5
  agent: validator
6
6
  lifecycle-phase: Phase 3b (Runtime Web Validation)
7
7
  required-skills:
8
8
  - torusguard-web-validate
9
9
  scripts-binding:
10
+ - .torusguard/scripts/report_sync.py
10
11
  - .torusguard/scripts/safety_gate.py
11
12
  ---
12
13
 
@@ -1,48 +1,84 @@
1
1
  ---
2
2
  name: torusguard-apply
3
- description: Apply governed remediation patches to disk with pre-apply rollback snapshots and Human Gate validation.
4
- version: 0.9.2
3
+ description: Apply governed remediation patches to disk with pre-apply rollback snapshots and Human Gate validation via CLI or AI Agent.
4
+ version: 1.3.5
5
5
  workflow: .torusguard/workflows/apply.md
6
- tools: Read, Grep, Glob, Bash, Edit, Write
6
+ tools: Read, Grep, Glob, Write, replace_file_content, run_command
7
7
  scripts-binding:
8
- - .torusguard/scripts/run_manager.py
9
- - .torusguard/scripts/diff_guard.py
8
+ - .torusguard/scripts/report_sync.py
9
+ - .torusguard/scripts/apply_runner.py
10
+ - .torusguard/scripts/term_ui.py
11
+ - .torusguard/scripts/memory_engine.py
10
12
  ---
11
13
 
12
14
  # TorusGuard Apply — Governed Patch Application & Rollback Snapshot
13
15
 
14
16
  ## Objective
15
- Safely apply approved remediation bundles to disk source files, capturing a byte-for-byte pre-apply backup snapshot and asserting syntax validity post-patch.
17
+ Safely apply approved remediation bundles to disk source files, creating an automated byte-for-byte pre-apply backup snapshot (`.bak`) in `.torusguard/snapshots/<run_id>/`, asserting syntax validity, and distilling passing patterns into Golden Fix Recipes.
16
18
 
17
19
  ---
18
20
 
19
- ## Execution Steps
21
+ ## Two Execution Modes
20
22
 
21
- 1. **Load Bundle:** Read `patch.diff` and metadata from `.torusguard/runs/<run_id>/remediation/<finding_id>/`.
22
- 2. **Handle CLI Failures:** If the CLI `npx torusguard apply` throws an error or fails to apply the patch, YOU MUST step in and apply it manually.
23
- 3. **Pre-Apply Snapshot:** Save exact backup to `.torusguard/runs/<run_id>/pre_apply/<filename>.bak`.
24
- 4. **Obtain Human Gate:** Confirm user approval for proposed diff.
25
- 5. **Apply Patch Manually:** Execute the surgical modification directly on the target file using `replace_file_content`. Ensure the lines match the `patch.diff` formulated during harden phase.
26
- 6. **Assert Integrity:** Verify modified file compiles cleanly without syntax errors (e.g. running `npm run build` or `python -m py_compile`).
27
- 7. **Record Ledger:** Log timestamp, file path, and post-patch SHA-256 in `apply-log.json`.
23
+ ### Mode A: Automated CLI Execution (Interactive or Non-Interactive)
24
+ Run the governed patch applier from your terminal:
25
+ ```bash
26
+ # Interactive Human Gate review (prompts for each patch: [y]es / [n]o / [a]ll / [q]uit)
27
+ npx torusguard apply
28
+
29
+ # Non-interactive automated application
30
+ npx torusguard apply --yes
31
+
32
+ # Apply patches from a specific run ID
33
+ npx torusguard apply --run run-20260910-121618-audit --yes
34
+
35
+ # Emergency rollback from pre-apply snapshot
36
+ npx torusguard rollback
37
+ # or
38
+ npx torusguard apply --rollback
39
+ ```
40
+ **Under the Hood:** Executes `python .torusguard/scripts/apply_runner.py`.
41
+ 1. Reads candidate bundles from `.torusguard/runs/<run_id>/bundles/`.
42
+ 2. Creates `.bak` snapshot in `.torusguard/snapshots/<run_id>/<rel_path>.bak`.
43
+ 3. Performs line-aware replacement without corrupting concurrent modifications.
44
+ 4. Distills the applied fix into a **Golden Fix Recipe** registered in `.torusguard/memory/patterns.json`.
45
+ 5. Emits `diff_summary.md` and `apply_plan.md` in the run directory.
46
+ 6. Displays pixel-perfect 75-column terminal cards.
47
+
48
+ ### Mode B: In-Session AI Chat Agent Application
49
+ When applying patches directly within an AI chat session:
50
+ 1. **Human Gate Confirmation:** Present the unified diff to the operator and request explicit approval before editing code.
51
+ 2. **Pre-Apply Snapshot:** Ensure target file backup is created at `.torusguard/snapshots/<run_id>/<rel_path>.bak`.
52
+ 3. **Execute Surgical Edit:** Use `replace_file_content` to apply only the approved lines. Strictly adhere to the formulated Ponytail diff.
53
+ 4. **Syntax & Integrity Check:** Verify that the patched file is syntactically valid (e.g. `node --check <file>` or `python -m py_compile <file>`). If syntax fails, immediately restore from `.bak`.
54
+ 5. **Memory Registration:** Update persistent memory events in `.torusguard/memory/events.json` with event `fix_applied`.
55
+ 6. **Recommend Recheck:** Advise running `/torusguard recheck` or `npx torusguard recheck` to verify closure.
28
56
 
29
57
  ---
30
58
 
31
- ## Governance & Safety Rules
32
- - Hard limit: additions $\le 35$, deletions $\le 25$ lines.
33
- - Always create a rollback snapshot before modifying disk code.
34
- - If compile or syntax error occurs, instantly restore from `.bak`.
35
- - Require explicit operator confirmation before writing changes.
36
- - **Do not give up** if the CLI automation fails; the AI Agent must manually complete the patching process.
59
+ ## Rollback Guarantee
60
+ If an applied patch introduces unexpected runtime behavior or breaks tests:
61
+ ```bash
62
+ # Instant one-command rollback of the latest applied run:
63
+ npx torusguard rollback
64
+
65
+ # Or rollback a specific run:
66
+ npx torusguard rollback --run run-20260910-121618-audit
67
+ ```
68
+ All affected files are restored byte-for-byte from `.torusguard/snapshots/<run_id>/`.
37
69
 
38
70
  ---
39
71
 
40
- ## Output Format
72
+ ## Output Card Format
41
73
  ```markdown
42
- 🚀 [TorusGuard] Patch Applied Successfully (AI Assisted)
43
- - Finding Target: <Finding ID> | File: <Path>
44
- - Churn: +<Additions> / -<Deletions>
45
- - Rollback Backup: `.torusguard/runs/<run_id>/pre_apply/<file>.bak`
46
- - Compile Check: PASSED
47
- Next: Run `/torusguard recheck` to verify vulnerability is closed.
74
+ ### 🚀 TorusGuard Patch Applied Successfully
75
+ - **Target File:** `server/index.js:9`
76
+ - **Rule ID:** `TG-SEC-001` (Hardcoded JWT secret)
77
+ - **Ponytail Churn:** +1 / -1
78
+ - **Rollback Snapshot:** `.torusguard/snapshots/<run_id>/server/index.js.bak`
79
+ - **Golden Recipe:** Distilled into persistent memory
80
+ - **Next Step:** Run `npx torusguard recheck` or `/torusguard recheck` to verify closure
48
81
  ```
82
+
83
+ ## Living Report Ground Truth
84
+ - Read `security_report.md` in the workspace root before taking any action. Update the relevant finding card after completing remediation.
@@ -1,75 +1,87 @@
1
1
  ---
2
2
  name: torusguard-audit
3
- description: Static AST scanning, memory pattern boosting, and 0–100 confidence scoring.
4
- version: 1.0.0
3
+ description: Static AST security scanning, line-shift invariant fingerprinting, root-cause clustering, and 0-100 confidence scoring via CLI or AI Agent.
4
+ version: 1.3.5
5
5
  workflow: .torusguard/workflows/audit.md
6
- tools: Read, Grep, Glob, Write
6
+ tools: Read, Grep, Glob, Write, run_command
7
7
  scripts-binding:
8
+ - .torusguard/scripts/report_sync.py
9
+ - .torusguard/scripts/audit_runner.py
10
+ - .torusguard/scripts/term_ui.py
8
11
  - .torusguard/scripts/finding_scorer.py
9
- - .torusguard/scripts/run_manager.py
10
12
  ---
11
13
 
12
- # TorusGuard Audit — Static Code Analysis & Memory Scanning
14
+ # TorusGuard Audit — Static Code Security Analysis
13
15
 
14
16
  ## Objective
15
- Execute static AST analysis, query memory context, compute 0–100 confidence scores with memory boosts, and record findings to runs and memory.
17
+ Execute static AST analysis across polyglot project files, evaluate code against 74 canonical security rules across 11 families, assign stable line-shift invariant fingerprints, cluster architectural root causes, and score findings with auditable 0–100 confidence ratings.
16
18
 
17
19
  ---
18
20
 
19
- ## Execution Steps
21
+ ## Two Execution Modes
20
22
 
21
- 1. **Run Setup:** Initialize `.torusguard/runs/run-YYYYMMDD-HHMMSS-audit/` via `run_manager.py`.
22
- 2. **Context & Rules:** Load `.torusguard/memory/context.json` for patterns and false positives. Load rules from `.torusguard/rules/active/`.
23
- 3. **AST Scan Sinks:** Match files against active rules:
24
- - `TG-SEC-*`: Secrets and API keys.
25
- - `TG-INPUT-*`: SQL injection, unvalidated input.
26
- - `TG-DB-*`: Unscoped tenant queries (`Model.get(id=id)`).
27
- - `TG-AUTH-*`: Insecure cookies, open CORS.
28
- - `TG-CLIENT-*`: Client bundle secret leaks.
29
- 4. **Stable Fingerprinting:** Compute SHA-256 hash of surrounding AST context.
30
- 5. **Root-Cause Clustering:** Group findings by causal sink (`cluster-tenant-isolation`).
31
- 6. **Scoring:** Calculate 0–100 score via `finding_scorer.py` (applies memory boost/suppression).
32
- 7. **Write Artifacts:** Save `findings.json` and sync findings to memory engine.
23
+ ### Mode A: Automated CLI Execution
24
+ Run the static security audit from your terminal:
25
+ ```bash
26
+ # Scan current repository
27
+ npx torusguard audit
33
28
 
34
- ---
35
-
36
- ## Confidence Scoring Rubric
37
- - **1. Evidence (35):** AST flow (35), regex sink (20), heuristic (10).
38
- - **2. Reproduction (25):** Automated test (25), simulated (15), hypothesis (0).
39
- - **3. Corroboration (15):** >=3 files (15), 2 files (10), single (5).
40
- - **4. Environment (15):** Explicit route (15), ambiguous (8), unknown (0).
41
- - **5. Review Status (10):** Human confirmed (10), agent verified (5), auto (0).
42
- - **Memory Modifier:** False positive (-30), regression (+15), recurring (+10).
43
- - **Bands:** 90–100 (`Confirmed`), 70–89 (`High`), 50–69 (`Medium`), <50 (`Review`).
29
+ # Scan specific directory or example app
30
+ npx torusguard audit ./examples/vulnerable-react-express
44
31
 
45
- ---
32
+ # Include test fixtures and spec directories
33
+ npx torusguard audit --include-tests
46
34
 
47
- ## Finding Card Format
48
- ```markdown
49
- ### [TG-DB-004] Missing Tenant Scoping in /invoices/
50
- - **Severity**: High | **Confidence**: 90/100 (Confirmed) | **Memory Boost**: +10
51
- - **File**: `views.py:42` | **Cluster**: `cluster-tenant-isolation`
52
- - **Remediation**: Apply `.filter(tenant=request.user.tenant)`.
35
+ # Output machine-readable JSON
36
+ npx torusguard audit --json
53
37
  ```
38
+ **Under the Hood:** Executes `python .torusguard/scripts/audit_runner.py`.
39
+ - Auto-detects repository stack and skips build/cache directories (`node_modules`, `.git`, `.venv`, `dist`, `build`).
40
+ - Evaluates files across 18 canonical security families:
41
+ - `TG-SEC-*`: Hardcoded credentials, private keys, JWT secrets, client env leaks.
42
+ - `TG-INPUT-*`: SQL injection, command injection, path traversal, unsafe HTML rendering.
43
+ - `TG-DB-*`: Missing tenant isolation, service role keys in client code.
44
+ - `TG-AUTH-*`: Plaintext passwords, missing cookie security flags (httpOnly, secure, sameSite).
45
+ - `TG-PLATFORM-*`: Permissive wildcard CORS with credentials, missing security headers.
46
+ - `TG-DIFF-*`: Disabled TLS verification (`verify=False`, `rejectUnauthorized: false`).
47
+ - Generates run directory: `.torusguard/runs/run-YYYYMMDD-HHMMSS-audit/`.
48
+ - Writes `findings.json`, `findings.md`, and `manifest.json`.
49
+ - Displays standardized 75-column terminal cards.
50
+ - Returns exit code `1` if findings are discovered, `0` if clean.
51
+
52
+ ### Mode B: In-Session AI Chat Agent Scan
53
+ When auditing files directly in AI chat:
54
+ 1. **Discover Sinks:** Use `grep_search` and `view_file` to search for dangerous patterns across server and client code.
55
+ 2. **Cluster Root Causes:** Group findings by causal architecture (e.g. `cluster-tenant-isolation`, `cluster-credentials-exposure`, `cluster-injection`).
56
+ 3. **Audit Evidence Sufficiency:** Ensure that user-controlled input reaches the vulnerable sink without prior sanitization or schema validation.
57
+ 4. **Present Actionable Findings:** Display finding cards with severity, rule ID, file, line, and remediation recommendation.
58
+ 5. **Prompt Next Phase:** Guide the operator to `/torusguard harden` or `npx torusguard harden`.
54
59
 
55
60
  ---
56
61
 
57
- ## Safety Constraints
58
- - Read-only analysis; zero code modifications during audit.
59
- - Exclude build directories (`node_modules/`, `.venv/`, `dist/`).
60
- - Redact secrets before saving to `findings.md`.
62
+ ## Canonical Rule Families
63
+ | Family | Scope | Example Violations |
64
+ | :--- | :--- | :--- |
65
+ | **TG-SEC** | Secrets & Credentials | Hardcoded JWT secret, API key strings, token logging |
66
+ | **TG-INPUT** | Injection & Input Validation | Raw SQL interpolation, DOM `innerHTML`, `path.join` traversal |
67
+ | **TG-DB** | Database & Tenant Scoping | Unscoped `.objects.get(id=...)`, Prisma missing `tenantId` |
68
+ | **TG-AUTH** | Authentication & Cookies | Insecure cookies (missing httpOnly/secure/sameSite) |
69
+ | **TG-PLATFORM** | Server & Platform Config | Wildcard CORS (`origin: '*'`) with credentials |
70
+ | **TG-DIFF** | Security Bypasses | Disabled TLS verification (`verify=False`) |
61
71
 
62
72
  ---
63
73
 
64
- ## Output Format
74
+ ## Output Card Format
65
75
  ```markdown
66
- 🛡️ [TorusGuard] Static Code Audit Completed
67
- - Run ID: run-YYYYMMDD-HHMMSS-audit | Files: <Count> | Findings: <Count>
68
- - Posture Score: <Score>/100 (100 = Perfect, 0 = Extremely Vulnerable)
69
- - Clusters: <Count> identified | Memory Patterns Applied: <Count>
70
-
71
- > [!IMPORTANT]
72
- > If the posture score is low (e.g. 10/100) and vulnerabilities exist, it is your responsibility as the AI Agent to proactively recommend and manually execute the patches if the automated CLI falls short.
73
-
74
- Next: Run `/torusguard harden` to formulate surgical fixes.
76
+ ### 🛡️ TorusGuard Static Security Audit Completed
77
+ - **Run ID:** `run-20260910-121618-audit`
78
+ - **Scope:** 7 files evaluated across 11 canonical families
79
+ - **Status:** ✖ CRITICAL FINDINGS DETECTED
80
+ - **Findings:** 2 Critical, 2 High, 2 Medium/Low (6 total)
81
+ - **Clusters:** 3 architectural root causes identified
82
+ - **Artifacts:** `.torusguard/runs/<run_id>/findings.json`
83
+ - **Next Action:** Run `npx torusguard harden` or `/torusguard harden`
75
84
  ```
85
+
86
+ ## Living Report Ground Truth
87
+ - Read `security_report.md` in the workspace root before taking any action. Update the relevant finding card after completing remediation.
@@ -1,10 +1,11 @@
1
1
  ---
2
2
  name: torusguard-authorize
3
3
  description: Register and validate runtime target authorization boundaries — scope boundaries, ownership proofs, TTL expiration, and Safety Gate enforcement.
4
- version: 0.9.2
4
+ version: 1.3.5
5
5
  workflow: .torusguard/workflows/authorize.md
6
- tools: Read, Grep, Glob, Write
6
+ tools: Read, Grep, Glob, Write, run_command
7
7
  scripts-binding:
8
+ - .torusguard/scripts/report_sync.py
8
9
  - .torusguard/scripts/safety_gate.py
9
10
  ---
10
11
 
@@ -30,6 +31,10 @@ Define and validate legal runtime authorization boundaries, verify target owners
30
31
 
31
32
  ---
32
33
 
34
+ ## Living Report Ground Truth
35
+ - Always inspect `security_report.md` at workspace root before acting.
36
+ - Update finding statuses after completion to eliminate hallucination.
37
+
33
38
  ## Safety Constraints
34
39
  - Never authorize wildcard hosts (`*`) or third-party domains.
35
40
  - State-changing destructive actions (`DELETE`, bulk drops) are disabled by default.