shieldcortex 4.11.0 → 4.12.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 (224) hide show
  1. package/dashboard/.next/standalone/dashboard/.next/BUILD_ID +1 -1
  2. package/dashboard/.next/standalone/dashboard/.next/build-manifest.json +2 -2
  3. package/dashboard/.next/standalone/dashboard/.next/prerender-manifest.json +3 -3
  4. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.html +2 -2
  5. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.rsc +1 -1
  6. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  7. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  8. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  9. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  10. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  11. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.html +1 -1
  12. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.rsc +1 -1
  13. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  14. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  15. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  16. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  17. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  18. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  19. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.html +1 -1
  20. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.rsc +1 -1
  21. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/!KGRhc2hib2FyZCk/admin/__PAGE__.segment.rsc +1 -1
  22. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/!KGRhc2hib2FyZCk/admin.segment.rsc +1 -1
  23. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  24. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_full.segment.rsc +1 -1
  25. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_head.segment.rsc +1 -1
  26. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_index.segment.rsc +1 -1
  27. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_tree.segment.rsc +1 -1
  28. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.html +1 -1
  29. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.rsc +1 -1
  30. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/!KGRhc2hib2FyZCk/cloud/__PAGE__.segment.rsc +1 -1
  31. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/!KGRhc2hib2FyZCk/cloud.segment.rsc +1 -1
  32. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  33. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_full.segment.rsc +1 -1
  34. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_head.segment.rsc +1 -1
  35. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_index.segment.rsc +1 -1
  36. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_tree.segment.rsc +1 -1
  37. package/dashboard/.next/standalone/dashboard/.next/server/app/index.html +1 -1
  38. package/dashboard/.next/standalone/dashboard/.next/server/app/index.rsc +1 -1
  39. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  40. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_full.segment.rsc +1 -1
  41. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_head.segment.rsc +1 -1
  42. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_index.segment.rsc +1 -1
  43. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  44. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.html +1 -1
  45. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.rsc +1 -1
  46. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory/capture/__PAGE__.segment.rsc +1 -1
  47. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory/capture.segment.rsc +1 -1
  48. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  49. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  50. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_full.segment.rsc +1 -1
  51. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_head.segment.rsc +1 -1
  52. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_index.segment.rsc +1 -1
  53. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_tree.segment.rsc +1 -1
  54. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.html +1 -1
  55. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.rsc +1 -1
  56. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory/graph/__PAGE__.segment.rsc +1 -1
  57. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory/graph.segment.rsc +1 -1
  58. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  59. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  60. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_full.segment.rsc +1 -1
  61. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_head.segment.rsc +1 -1
  62. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_index.segment.rsc +1 -1
  63. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_tree.segment.rsc +1 -1
  64. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.html +1 -1
  65. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.rsc +1 -1
  66. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory/recall/__PAGE__.segment.rsc +1 -1
  67. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory/recall.segment.rsc +1 -1
  68. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  69. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  70. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_full.segment.rsc +1 -1
  71. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_head.segment.rsc +1 -1
  72. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_index.segment.rsc +1 -1
  73. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_tree.segment.rsc +1 -1
  74. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.html +1 -1
  75. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.rsc +1 -1
  76. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory/review/__PAGE__.segment.rsc +1 -1
  77. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory/review.segment.rsc +1 -1
  78. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  79. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  80. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_full.segment.rsc +1 -1
  81. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_head.segment.rsc +1 -1
  82. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_index.segment.rsc +1 -1
  83. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_tree.segment.rsc +1 -1
  84. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.html +1 -1
  85. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.rsc +1 -1
  86. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory/timeline/__PAGE__.segment.rsc +1 -1
  87. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory/timeline.segment.rsc +1 -1
  88. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  89. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  90. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_full.segment.rsc +1 -1
  91. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_head.segment.rsc +1 -1
  92. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_index.segment.rsc +1 -1
  93. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_tree.segment.rsc +1 -1
  94. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.html +1 -1
  95. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.rsc +1 -1
  96. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk/memory/__PAGE__.segment.rsc +1 -1
  97. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  98. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  99. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_full.segment.rsc +1 -1
  100. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_head.segment.rsc +1 -1
  101. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_index.segment.rsc +1 -1
  102. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_tree.segment.rsc +1 -1
  103. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.html +1 -1
  104. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.rsc +1 -1
  105. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk/overview/__PAGE__.segment.rsc +1 -1
  106. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk/overview.segment.rsc +1 -1
  107. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  108. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_full.segment.rsc +1 -1
  109. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_head.segment.rsc +1 -1
  110. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_index.segment.rsc +1 -1
  111. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_tree.segment.rsc +1 -1
  112. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.html +1 -1
  113. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.rsc +1 -1
  114. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection/audit/__PAGE__.segment.rsc +1 -1
  115. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection/audit.segment.rsc +1 -1
  116. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  117. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  118. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_full.segment.rsc +1 -1
  119. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_head.segment.rsc +1 -1
  120. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_index.segment.rsc +1 -1
  121. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_tree.segment.rsc +1 -1
  122. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.html +1 -1
  123. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.rsc +1 -1
  124. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection/intercepts/__PAGE__.segment.rsc +1 -1
  125. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection/intercepts.segment.rsc +1 -1
  126. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  127. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  128. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_full.segment.rsc +1 -1
  129. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_head.segment.rsc +1 -1
  130. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_index.segment.rsc +1 -1
  131. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_tree.segment.rsc +1 -1
  132. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.html +1 -1
  133. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.rsc +1 -1
  134. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection/iron-dome/__PAGE__.segment.rsc +1 -1
  135. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection/iron-dome.segment.rsc +1 -1
  136. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  137. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  138. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_full.segment.rsc +1 -1
  139. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_head.segment.rsc +1 -1
  140. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_index.segment.rsc +1 -1
  141. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_tree.segment.rsc +1 -1
  142. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.html +1 -1
  143. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.rsc +1 -1
  144. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection/policies/__PAGE__.segment.rsc +1 -1
  145. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection/policies.segment.rsc +1 -1
  146. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  147. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  148. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_full.segment.rsc +1 -1
  149. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_head.segment.rsc +1 -1
  150. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_index.segment.rsc +1 -1
  151. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_tree.segment.rsc +1 -1
  152. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.html +1 -1
  153. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.rsc +1 -1
  154. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection/quarantine/__PAGE__.segment.rsc +1 -1
  155. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection/quarantine.segment.rsc +1 -1
  156. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  157. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  158. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_full.segment.rsc +1 -1
  159. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_head.segment.rsc +1 -1
  160. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_index.segment.rsc +1 -1
  161. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_tree.segment.rsc +1 -1
  162. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.html +1 -1
  163. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.rsc +1 -1
  164. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk/protection/__PAGE__.segment.rsc +1 -1
  165. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  166. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  167. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_full.segment.rsc +1 -1
  168. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_head.segment.rsc +1 -1
  169. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_index.segment.rsc +1 -1
  170. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_tree.segment.rsc +1 -1
  171. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.html +1 -1
  172. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.rsc +1 -1
  173. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings/__PAGE__.segment.rsc +1 -1
  174. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings.segment.rsc +1 -1
  175. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  176. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_full.segment.rsc +1 -1
  177. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  178. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_index.segment.rsc +1 -1
  179. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  180. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.html +1 -1
  181. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.rsc +1 -1
  182. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain/xray/__PAGE__.segment.rsc +1 -1
  183. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain/xray.segment.rsc +1 -1
  184. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain.segment.rsc +1 -1
  185. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  186. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_full.segment.rsc +1 -1
  187. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_head.segment.rsc +1 -1
  188. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_index.segment.rsc +1 -1
  189. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_tree.segment.rsc +1 -1
  190. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.html +1 -1
  191. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.rsc +1 -1
  192. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk/supply-chain/__PAGE__.segment.rsc +1 -1
  193. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk/supply-chain.segment.rsc +1 -1
  194. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  195. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_full.segment.rsc +1 -1
  196. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_head.segment.rsc +1 -1
  197. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_index.segment.rsc +1 -1
  198. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_tree.segment.rsc +1 -1
  199. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.html +1 -1
  200. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.rsc +1 -1
  201. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk/xray/__PAGE__.segment.rsc +1 -1
  202. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk/xray.segment.rsc +1 -1
  203. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  204. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_full.segment.rsc +1 -1
  205. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_head.segment.rsc +1 -1
  206. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_index.segment.rsc +1 -1
  207. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_tree.segment.rsc +1 -1
  208. package/dashboard/.next/standalone/dashboard/.next/server/pages/404.html +1 -1
  209. package/dashboard/.next/standalone/dashboard/.next/server/pages/500.html +2 -2
  210. package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.js +1 -1
  211. package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.json +1 -1
  212. package/dist/cli/doctor.js +28 -0
  213. package/dist/index.js +5 -1
  214. package/dist/setup/claude-md.js +72 -22
  215. package/dist/setup/deep-clean.d.ts +97 -0
  216. package/dist/setup/deep-clean.js +322 -0
  217. package/dist/setup/uninstall.d.ts +2 -0
  218. package/dist/setup/uninstall.js +42 -1
  219. package/hooks/openclaw/cortex-memory/HOOK.md +3 -3
  220. package/package.json +1 -1
  221. package/plugins/openclaw/dist/openclaw.plugin.json +5 -1
  222. /package/dashboard/.next/standalone/dashboard/.next/static/{4PqmNv9d5qnvDyM43jSCq → jgZU5Sm7OQNSq-zkepmj1}/_buildManifest.js +0 -0
  223. /package/dashboard/.next/standalone/dashboard/.next/static/{4PqmNv9d5qnvDyM43jSCq → jgZU5Sm7OQNSq-zkepmj1}/_clientMiddlewareManifest.json +0 -0
  224. /package/dashboard/.next/standalone/dashboard/.next/static/{4PqmNv9d5qnvDyM43jSCq → jgZU5Sm7OQNSq-zkepmj1}/_ssgManifest.js +0 -0
@@ -0,0 +1,322 @@
1
+ /**
2
+ * Deep-clean / residue detection for ShieldCortex ↔ OpenClaw integration.
3
+ *
4
+ * The standard `uninstall` and `uninstallPlugin` code paths only fire when
5
+ * the on-disk artefacts they expected are still present. Partial uninstalls,
6
+ * manual cleanups, and version-to-version shape changes left orphaned config
7
+ * entries in `~/.openclaw/openclaw.json` and `~/.openclaw/workspace/.clawhub/lock.json`
8
+ * that kept producing "plugin references without files" and "missing skill file"
9
+ * warnings until purged by hand (see incident notes 2026-04-23/24).
10
+ *
11
+ * This module scans every known residue location once, independently of disk
12
+ * state, and offers a single surgical clean-up pass.
13
+ *
14
+ * Scope: read/write of JSON config files + directory removal under the user's
15
+ * home directory. No network, no sudo, no shell invocation.
16
+ */
17
+ import fs from 'fs';
18
+ import path from 'path';
19
+ import os from 'os';
20
+ import { execSync } from 'child_process';
21
+ const PLUGIN_ID = 'shieldcortex-realtime';
22
+ const HOOK_NAME = 'cortex-memory';
23
+ /**
24
+ * Resolve the real user's home directory (mirrors openclaw.ts behaviour so the
25
+ * two modules agree on which home to touch under sudo).
26
+ */
27
+ function resolveHome() {
28
+ const sudoUser = process.env.SUDO_USER;
29
+ if (sudoUser) {
30
+ try {
31
+ const entry = execSync(`getent passwd ${sudoUser}`, {
32
+ encoding: 'utf-8',
33
+ timeout: 5000,
34
+ }).trim();
35
+ const homeDir = entry.split(':')[5];
36
+ if (homeDir && fs.existsSync(homeDir))
37
+ return homeDir;
38
+ }
39
+ catch {
40
+ // getent not available (macOS)
41
+ }
42
+ }
43
+ return os.homedir();
44
+ }
45
+ function readJsonOrNull(file) {
46
+ if (!fs.existsSync(file))
47
+ return null;
48
+ try {
49
+ const parsed = JSON.parse(fs.readFileSync(file, 'utf-8'));
50
+ return typeof parsed === 'object' && parsed !== null
51
+ ? parsed
52
+ : null;
53
+ }
54
+ catch {
55
+ return null;
56
+ }
57
+ }
58
+ function writeJson(file, data) {
59
+ fs.mkdirSync(path.dirname(file), { recursive: true });
60
+ fs.writeFileSync(file, JSON.stringify(data, null, 2) + '\n', 'utf-8');
61
+ }
62
+ function getPath(root, keyPath) {
63
+ let node = root;
64
+ for (const key of keyPath) {
65
+ if (typeof node !== 'object' || node === null)
66
+ return undefined;
67
+ node = node[key];
68
+ }
69
+ return node;
70
+ }
71
+ function deletePath(root, keyPath) {
72
+ if (keyPath.length === 0)
73
+ return false;
74
+ let node = root;
75
+ for (let i = 0; i < keyPath.length - 1; i++) {
76
+ const next = node[keyPath[i]];
77
+ if (typeof next !== 'object' || next === null)
78
+ return false;
79
+ node = next;
80
+ }
81
+ const leaf = keyPath[keyPath.length - 1];
82
+ if (leaf in node) {
83
+ delete node[leaf];
84
+ return true;
85
+ }
86
+ return false;
87
+ }
88
+ function filterArrayAtPath(root, keyPath, contains) {
89
+ const target = getPath(root, keyPath);
90
+ if (!Array.isArray(target))
91
+ return false;
92
+ const before = target.length;
93
+ const filtered = target.filter((entry) => !(typeof entry === 'string' && entry.includes(contains)));
94
+ if (filtered.length === before)
95
+ return false;
96
+ // Re-walk and assign back so we don't rely on aliasing
97
+ let node = root;
98
+ for (let i = 0; i < keyPath.length - 1; i++) {
99
+ node = node[keyPath[i]];
100
+ }
101
+ node[keyPath[keyPath.length - 1]] = filtered;
102
+ return true;
103
+ }
104
+ /**
105
+ * Build the full list of known residue locations and whether each one is
106
+ * currently populated. Pure read — no mutation.
107
+ */
108
+ export function scanForResidue() {
109
+ const home = resolveHome();
110
+ const openclawJson = path.join(home, '.openclaw', 'openclaw.json');
111
+ const clawhubLock = path.join(home, '.openclaw', 'workspace', '.clawhub', 'lock.json');
112
+ const cfg = readJsonOrNull(openclawJson) ?? {};
113
+ const lock = readJsonOrNull(clawhubLock) ?? {};
114
+ const paths = [];
115
+ // ── openclaw.json: plugins ─────────────────────────────
116
+ paths.push({
117
+ description: `openclaw.json: .plugins.installs["${PLUGIN_ID}"]`,
118
+ removal: { kind: 'delete-config-key', file: openclawJson, keyPath: ['plugins', 'installs', PLUGIN_ID] },
119
+ present: !!getPath(cfg, ['plugins', 'installs', PLUGIN_ID]),
120
+ });
121
+ paths.push({
122
+ description: `openclaw.json: .plugins.entries["${PLUGIN_ID}"]`,
123
+ removal: { kind: 'delete-config-key', file: openclawJson, keyPath: ['plugins', 'entries', PLUGIN_ID] },
124
+ present: !!getPath(cfg, ['plugins', 'entries', PLUGIN_ID]),
125
+ });
126
+ paths.push({
127
+ description: `openclaw.json: .plugins.allow[] contains "${PLUGIN_ID}"`,
128
+ removal: { kind: 'filter-config-array', file: openclawJson, keyPath: ['plugins', 'allow'], contains: PLUGIN_ID },
129
+ present: (() => {
130
+ const arr = getPath(cfg, ['plugins', 'allow']);
131
+ return Array.isArray(arr) && arr.some((e) => typeof e === 'string' && e.includes(PLUGIN_ID));
132
+ })(),
133
+ });
134
+ paths.push({
135
+ description: `openclaw.json: .plugins.load.paths[] contains "${PLUGIN_ID}"`,
136
+ removal: { kind: 'filter-config-array', file: openclawJson, keyPath: ['plugins', 'load', 'paths'], contains: PLUGIN_ID },
137
+ present: (() => {
138
+ const arr = getPath(cfg, ['plugins', 'load', 'paths']);
139
+ return Array.isArray(arr) && arr.some((e) => typeof e === 'string' && e.includes(PLUGIN_ID));
140
+ })(),
141
+ });
142
+ // ── openclaw.json: hooks (both modern and legacy shapes) ─
143
+ paths.push({
144
+ description: 'openclaw.json: .hooks.shieldcortex',
145
+ removal: { kind: 'delete-config-key', file: openclawJson, keyPath: ['hooks', 'shieldcortex'] },
146
+ present: !!getPath(cfg, ['hooks', 'shieldcortex']),
147
+ });
148
+ paths.push({
149
+ description: 'openclaw.json: .hooks.internal.installs.shieldcortex',
150
+ removal: { kind: 'delete-config-key', file: openclawJson, keyPath: ['hooks', 'internal', 'installs', 'shieldcortex'] },
151
+ present: !!getPath(cfg, ['hooks', 'internal', 'installs', 'shieldcortex']),
152
+ });
153
+ paths.push({
154
+ description: 'openclaw.json: .hooks.internal.entries.shieldcortex',
155
+ removal: { kind: 'delete-config-key', file: openclawJson, keyPath: ['hooks', 'internal', 'entries', 'shieldcortex'] },
156
+ present: !!getPath(cfg, ['hooks', 'internal', 'entries', 'shieldcortex']),
157
+ });
158
+ paths.push({
159
+ description: 'openclaw.json: .hooks.internal.allow[] contains "shieldcortex"',
160
+ removal: { kind: 'filter-config-array', file: openclawJson, keyPath: ['hooks', 'internal', 'allow'], contains: 'shieldcortex' },
161
+ present: (() => {
162
+ const arr = getPath(cfg, ['hooks', 'internal', 'allow']);
163
+ return Array.isArray(arr) && arr.some((e) => typeof e === 'string' && e.includes('shieldcortex'));
164
+ })(),
165
+ });
166
+ // ── clawhub lock ────────────────────────────────────────
167
+ paths.push({
168
+ description: 'clawhub/lock.json: .skills.shieldcortex',
169
+ removal: { kind: 'delete-config-key', file: clawhubLock, keyPath: ['skills', 'shieldcortex'] },
170
+ present: !!getPath(lock, ['skills', 'shieldcortex']),
171
+ });
172
+ // ── filesystem ──────────────────────────────────────────
173
+ const dirs = [
174
+ path.join(home, '.openclaw', 'hooks', HOOK_NAME),
175
+ path.join(home, '.openclaw', 'hooks', 'internal', HOOK_NAME),
176
+ path.join(home, '.openclaw', 'hooks', 'shieldcortex'),
177
+ path.join(home, '.claude', 'hooks', HOOK_NAME),
178
+ path.join(home, '.claude', 'hooks', 'internal', HOOK_NAME),
179
+ path.join(home, '.openclaw', 'extensions', PLUGIN_ID),
180
+ ];
181
+ for (const dir of dirs) {
182
+ paths.push({
183
+ description: dir,
184
+ removal: { kind: 'delete-directory', path: dir },
185
+ present: fs.existsSync(dir),
186
+ });
187
+ }
188
+ const dirtyCount = paths.filter((p) => p.present).length;
189
+ const cleanCount = paths.length - dirtyCount;
190
+ return { paths, dirtyCount, cleanCount };
191
+ }
192
+ /**
193
+ * Apply all pending removals from a residue report. Config mutations for the
194
+ * same file are batched so we write each JSON file at most once.
195
+ */
196
+ export function cleanResidue(report, options = {}) {
197
+ const result = { removed: [], errors: [] };
198
+ // Load each referenced config file once
199
+ const configCache = new Map();
200
+ const loadConfig = (file) => {
201
+ if (!configCache.has(file)) {
202
+ configCache.set(file, readJsonOrNull(file) ?? {});
203
+ }
204
+ return configCache.get(file);
205
+ };
206
+ const dirtyConfigFiles = new Set();
207
+ for (const entry of report.paths) {
208
+ if (!entry.present)
209
+ continue;
210
+ try {
211
+ const r = entry.removal;
212
+ if (r.kind === 'delete-directory') {
213
+ if (!options.dryRun) {
214
+ fs.rmSync(r.path, { recursive: true, force: true });
215
+ }
216
+ result.removed.push(entry.description);
217
+ }
218
+ else if (r.kind === 'delete-config-key') {
219
+ const cfg = loadConfig(r.file);
220
+ if (deletePath(cfg, r.keyPath)) {
221
+ dirtyConfigFiles.add(r.file);
222
+ result.removed.push(entry.description);
223
+ }
224
+ }
225
+ else if (r.kind === 'filter-config-array') {
226
+ const cfg = loadConfig(r.file);
227
+ if (filterArrayAtPath(cfg, r.keyPath, r.contains)) {
228
+ dirtyConfigFiles.add(r.file);
229
+ result.removed.push(entry.description);
230
+ }
231
+ }
232
+ }
233
+ catch (err) {
234
+ result.errors.push({ description: entry.description, error: err.message });
235
+ }
236
+ }
237
+ if (!options.dryRun) {
238
+ for (const file of dirtyConfigFiles) {
239
+ try {
240
+ writeJson(file, configCache.get(file));
241
+ }
242
+ catch (err) {
243
+ result.errors.push({ description: file, error: err.message });
244
+ }
245
+ }
246
+ }
247
+ return result;
248
+ }
249
+ /**
250
+ * Best-effort restart of the OpenClaw gateway so the purged config takes
251
+ * effect. Returns a structured report; never throws.
252
+ *
253
+ * Order of attempts:
254
+ * - Linux: `systemctl --user restart openclaw-gateway`
255
+ * - macOS: `launchctl kickstart -k gui/<uid>/ai.openclaw.gateway`
256
+ * - Fallback: skip with info message.
257
+ */
258
+ export async function restartOpenClawGateway() {
259
+ const platform = process.platform;
260
+ if (platform === 'linux') {
261
+ try {
262
+ execSync('systemctl --user restart openclaw-gateway', {
263
+ encoding: 'utf-8',
264
+ timeout: 10000,
265
+ stdio: ['ignore', 'pipe', 'pipe'],
266
+ });
267
+ return { attempted: true, restarted: true, method: 'systemctl --user' };
268
+ }
269
+ catch (err) {
270
+ return {
271
+ attempted: true,
272
+ restarted: false,
273
+ method: 'systemctl --user',
274
+ detail: err.message,
275
+ };
276
+ }
277
+ }
278
+ if (platform === 'darwin') {
279
+ try {
280
+ const uid = process.getuid ? process.getuid() : 0;
281
+ execSync(`launchctl kickstart -k gui/${uid}/ai.openclaw.gateway`, {
282
+ encoding: 'utf-8',
283
+ timeout: 10000,
284
+ stdio: ['ignore', 'pipe', 'pipe'],
285
+ });
286
+ return { attempted: true, restarted: true, method: 'launchctl kickstart' };
287
+ }
288
+ catch (err) {
289
+ return {
290
+ attempted: true,
291
+ restarted: false,
292
+ method: 'launchctl kickstart',
293
+ detail: err.message,
294
+ };
295
+ }
296
+ }
297
+ return {
298
+ attempted: false,
299
+ restarted: false,
300
+ method: 'unsupported-platform',
301
+ detail: `Restart not implemented for platform: ${platform}`,
302
+ };
303
+ }
304
+ /**
305
+ * High-level entry point used by `shieldcortex uninstall --deep`.
306
+ * Scans → cleans → (optionally) restarts gateway.
307
+ */
308
+ export async function runDeepClean(options = {}) {
309
+ const report = scanForResidue();
310
+ const result = cleanResidue(report, { dryRun: options.dryRun });
311
+ let gateway;
312
+ if (options.restartGateway && !options.dryRun && result.removed.length > 0) {
313
+ gateway = await restartOpenClawGateway();
314
+ }
315
+ return { report, result, gateway };
316
+ }
317
+ // Exported for tests
318
+ export const _internals = {
319
+ PLUGIN_ID,
320
+ HOOK_NAME,
321
+ resolveHome,
322
+ };
@@ -16,4 +16,6 @@ export declare function removeClaudeMdBlock(): void;
16
16
  export declare function uninstallSetup(): Promise<void>;
17
17
  export declare function uninstallAll(options?: {
18
18
  keepLogs?: boolean;
19
+ deep?: boolean;
20
+ restartGateway?: boolean;
19
21
  }): Promise<void>;
@@ -154,7 +154,10 @@ export async function uninstallSetup() {
154
154
  export async function uninstallAll(options) {
155
155
  if (blockAgentUninstall())
156
156
  return;
157
- const confirmed = await requireConfirmation('fully uninstall ShieldCortex');
157
+ const action = options?.deep
158
+ ? 'fully uninstall ShieldCortex and purge OpenClaw residue'
159
+ : 'fully uninstall ShieldCortex';
160
+ const confirmed = await requireConfirmation(action);
158
161
  if (!confirmed) {
159
162
  console.log('Uninstall cancelled.');
160
163
  return;
@@ -188,6 +191,44 @@ export async function uninstallAll(options) {
188
191
  catch (err) {
189
192
  console.error(`Failed to remove CLAUDE.md block: ${err.message}`);
190
193
  }
194
+ // 5. Deep clean: purge all known OpenClaw residue locations that the
195
+ // version-specific uninstall paths miss, then (best-effort) restart
196
+ // the gateway so the purged config takes effect immediately.
197
+ if (options?.deep) {
198
+ try {
199
+ const { runDeepClean } = await import('./deep-clean.js');
200
+ const { report, result, gateway } = await runDeepClean({
201
+ restartGateway: options?.restartGateway !== false,
202
+ });
203
+ if (result.removed.length > 0) {
204
+ console.log(`\nDeep clean: removed ${result.removed.length} residue reference(s):`);
205
+ for (const r of result.removed) {
206
+ console.log(` - ${r}`);
207
+ }
208
+ }
209
+ else if (report.dirtyCount === 0) {
210
+ console.log('\nDeep clean: no OpenClaw residue detected.');
211
+ }
212
+ if (result.errors.length > 0) {
213
+ console.warn(`\nDeep clean: ${result.errors.length} error(s):`);
214
+ for (const e of result.errors) {
215
+ console.warn(` - ${e.description}: ${e.error}`);
216
+ }
217
+ }
218
+ if (gateway) {
219
+ if (gateway.restarted) {
220
+ console.log(`\nOpenClaw gateway restarted via ${gateway.method}.`);
221
+ }
222
+ else if (gateway.attempted) {
223
+ console.warn(`\nOpenClaw gateway restart via ${gateway.method} failed: ${gateway.detail ?? 'unknown'}`);
224
+ console.warn('Restart it manually for the cleanup to take effect.');
225
+ }
226
+ }
227
+ }
228
+ catch (err) {
229
+ console.error(`Deep clean failed: ${err.message}`);
230
+ }
231
+ }
191
232
  console.log('\nDatabase preserved at ~/.shieldcortex/memories.db — delete manually if desired.');
192
233
  console.log('Uninstall complete.\n');
193
234
  console.log('To also remove the npm package:');
@@ -28,9 +28,9 @@ When `openclawAutoMemory` is enabled:
28
28
  5. Skips exact and near-duplicate memories using novelty filtering
29
29
 
30
30
  ### On Session Start (Agent Bootstrap)
31
- 1. Calls Cortex `get_context` to retrieve relevant memories
32
- 2. Injects them into the agent's bootstrap context
33
- 3. Agent starts with knowledge of past sessions
31
+ Bootstrap context injection was **disabled in v2026.2.26**. OpenClaw's native Memory Search now handles context recall at session start, so the hook no longer pushes memories into the system prompt (which was producing ~40× duplication of CORTEX_MEMORY.md and eating most of the context window).
32
+
33
+ The hook still fires on `agent:bootstrap` for lifecycle wiring (warning-bootstrap-file handoff, etc.) but contributes nothing to the system prompt. This keeps `extraSystemPromptHash` stable across turns and prevents the session-binding reset loop documented in `src/setup/claude-md.ts`.
34
34
 
35
35
  ### Keyword Triggers
36
36
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shieldcortex",
3
- "version": "4.11.0",
3
+ "version": "4.12.0",
4
4
  "description": "Trustworthy memory and security for AI agents. Recall debugging, review queue, OpenClaw session capture, and memory poisoning defence for Claude Code, Codex, OpenClaw, LangChain, and MCP agents.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,9 +1,13 @@
1
1
  {
2
2
  "id": "shieldcortex-realtime",
3
- "version": "4.11.0",
3
+ "version": "4.12.0",
4
4
  "name": "ShieldCortex Real-time Scanner",
5
5
  "description": "Real-time defence scanning on LLM input, memory extraction on LLM output, and active tool call interception with approval gating.",
6
6
  "kind": null,
7
+ "engines": {
8
+ "openclaw": ">=2026.3.22",
9
+ "recommended": ">=2026.4.23"
10
+ },
7
11
  "enabledByDefault": false,
8
12
  "activation": {
9
13
  "hooks": ["llm_input", "llm_output", "before_tool_call", "session_end"],