shieldcortex 4.28.1 → 4.30.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 (251) 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/required-server-files.json +4 -4
  5. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.html +2 -2
  6. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.rsc +1 -1
  7. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  8. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  10. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  11. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  12. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.html +2 -2
  13. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.rsc +1 -1
  14. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  15. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  16. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  17. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  18. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  19. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  20. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.html +1 -1
  21. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.rsc +1 -1
  22. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/!KGRhc2hib2FyZCk/admin/__PAGE__.segment.rsc +1 -1
  23. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/!KGRhc2hib2FyZCk/admin.segment.rsc +1 -1
  24. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  25. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_full.segment.rsc +1 -1
  26. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_head.segment.rsc +1 -1
  27. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_index.segment.rsc +1 -1
  28. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_tree.segment.rsc +1 -1
  29. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.html +1 -1
  30. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.rsc +1 -1
  31. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/!KGRhc2hib2FyZCk/cloud/__PAGE__.segment.rsc +1 -1
  32. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/!KGRhc2hib2FyZCk/cloud.segment.rsc +1 -1
  33. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  34. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_full.segment.rsc +1 -1
  35. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_head.segment.rsc +1 -1
  36. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_index.segment.rsc +1 -1
  37. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_tree.segment.rsc +1 -1
  38. package/dashboard/.next/standalone/dashboard/.next/server/app/index.html +1 -1
  39. package/dashboard/.next/standalone/dashboard/.next/server/app/index.rsc +1 -1
  40. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  41. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_full.segment.rsc +1 -1
  42. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_head.segment.rsc +1 -1
  43. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_index.segment.rsc +1 -1
  44. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  45. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.html +1 -1
  46. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.rsc +1 -1
  47. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory/capture/__PAGE__.segment.rsc +1 -1
  48. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory/capture.segment.rsc +1 -1
  49. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  50. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  51. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_full.segment.rsc +1 -1
  52. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_head.segment.rsc +1 -1
  53. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_index.segment.rsc +1 -1
  54. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_tree.segment.rsc +1 -1
  55. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.html +1 -1
  56. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.rsc +1 -1
  57. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory/graph/__PAGE__.segment.rsc +1 -1
  58. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory/graph.segment.rsc +1 -1
  59. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  60. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  61. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_full.segment.rsc +1 -1
  62. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_head.segment.rsc +1 -1
  63. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_index.segment.rsc +1 -1
  64. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_tree.segment.rsc +1 -1
  65. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.html +1 -1
  66. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.rsc +1 -1
  67. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory/recall/__PAGE__.segment.rsc +1 -1
  68. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory/recall.segment.rsc +1 -1
  69. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  70. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  71. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_full.segment.rsc +1 -1
  72. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_head.segment.rsc +1 -1
  73. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_index.segment.rsc +1 -1
  74. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_tree.segment.rsc +1 -1
  75. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.html +2 -2
  76. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.rsc +1 -1
  77. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/!KGRhc2hib2FyZCk/memory/replay/__PAGE__.segment.rsc +1 -1
  78. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/!KGRhc2hib2FyZCk/memory/replay.segment.rsc +1 -1
  79. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  80. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  81. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/_full.segment.rsc +1 -1
  82. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/_head.segment.rsc +1 -1
  83. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/_index.segment.rsc +1 -1
  84. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/_tree.segment.rsc +1 -1
  85. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.html +1 -1
  86. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.rsc +1 -1
  87. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory/review/__PAGE__.segment.rsc +1 -1
  88. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory/review.segment.rsc +1 -1
  89. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  90. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  91. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_full.segment.rsc +1 -1
  92. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_head.segment.rsc +1 -1
  93. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_index.segment.rsc +1 -1
  94. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_tree.segment.rsc +1 -1
  95. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.html +1 -1
  96. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.rsc +1 -1
  97. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory/timeline/__PAGE__.segment.rsc +1 -1
  98. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory/timeline.segment.rsc +1 -1
  99. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  100. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  101. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_full.segment.rsc +1 -1
  102. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_head.segment.rsc +1 -1
  103. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_index.segment.rsc +1 -1
  104. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_tree.segment.rsc +1 -1
  105. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.html +2 -2
  106. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.rsc +1 -1
  107. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk/memory/__PAGE__.segment.rsc +1 -1
  108. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  109. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  110. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_full.segment.rsc +1 -1
  111. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_head.segment.rsc +1 -1
  112. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_index.segment.rsc +1 -1
  113. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_tree.segment.rsc +1 -1
  114. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.html +2 -2
  115. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.rsc +1 -1
  116. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk/overview/__PAGE__.segment.rsc +1 -1
  117. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk/overview.segment.rsc +1 -1
  118. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  119. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_full.segment.rsc +1 -1
  120. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_head.segment.rsc +1 -1
  121. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_index.segment.rsc +1 -1
  122. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_tree.segment.rsc +1 -1
  123. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.html +1 -1
  124. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.rsc +1 -1
  125. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection/audit/__PAGE__.segment.rsc +1 -1
  126. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection/audit.segment.rsc +1 -1
  127. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  128. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  129. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_full.segment.rsc +1 -1
  130. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_head.segment.rsc +1 -1
  131. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_index.segment.rsc +1 -1
  132. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_tree.segment.rsc +1 -1
  133. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.html +1 -1
  134. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.rsc +1 -1
  135. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection/intercepts/__PAGE__.segment.rsc +1 -1
  136. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection/intercepts.segment.rsc +1 -1
  137. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  138. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  139. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_full.segment.rsc +1 -1
  140. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_head.segment.rsc +1 -1
  141. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_index.segment.rsc +1 -1
  142. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_tree.segment.rsc +1 -1
  143. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.html +1 -1
  144. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.rsc +1 -1
  145. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection/iron-dome/__PAGE__.segment.rsc +1 -1
  146. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection/iron-dome.segment.rsc +1 -1
  147. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  148. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  149. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_full.segment.rsc +1 -1
  150. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_head.segment.rsc +1 -1
  151. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_index.segment.rsc +1 -1
  152. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_tree.segment.rsc +1 -1
  153. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.html +1 -1
  154. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.rsc +1 -1
  155. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection/policies/__PAGE__.segment.rsc +1 -1
  156. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection/policies.segment.rsc +1 -1
  157. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  158. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  159. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_full.segment.rsc +1 -1
  160. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_head.segment.rsc +1 -1
  161. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_index.segment.rsc +1 -1
  162. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_tree.segment.rsc +1 -1
  163. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.html +1 -1
  164. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.rsc +1 -1
  165. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection/quarantine/__PAGE__.segment.rsc +1 -1
  166. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection/quarantine.segment.rsc +1 -1
  167. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  168. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  169. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_full.segment.rsc +1 -1
  170. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_head.segment.rsc +1 -1
  171. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_index.segment.rsc +1 -1
  172. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_tree.segment.rsc +1 -1
  173. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.html +2 -2
  174. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.rsc +1 -1
  175. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk/protection/__PAGE__.segment.rsc +1 -1
  176. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  177. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  178. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_full.segment.rsc +1 -1
  179. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_head.segment.rsc +1 -1
  180. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_index.segment.rsc +1 -1
  181. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_tree.segment.rsc +1 -1
  182. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.html +2 -2
  183. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.rsc +1 -1
  184. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings/__PAGE__.segment.rsc +1 -1
  185. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings.segment.rsc +1 -1
  186. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  187. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_full.segment.rsc +1 -1
  188. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  189. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_index.segment.rsc +1 -1
  190. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  191. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.html +1 -1
  192. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.rsc +1 -1
  193. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain/xray/__PAGE__.segment.rsc +1 -1
  194. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain/xray.segment.rsc +1 -1
  195. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain.segment.rsc +1 -1
  196. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  197. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_full.segment.rsc +1 -1
  198. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_head.segment.rsc +1 -1
  199. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_index.segment.rsc +1 -1
  200. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_tree.segment.rsc +1 -1
  201. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.html +1 -1
  202. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.rsc +1 -1
  203. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk/supply-chain/__PAGE__.segment.rsc +1 -1
  204. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk/supply-chain.segment.rsc +1 -1
  205. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  206. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_full.segment.rsc +1 -1
  207. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_head.segment.rsc +1 -1
  208. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_index.segment.rsc +1 -1
  209. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_tree.segment.rsc +1 -1
  210. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.html +2 -2
  211. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.rsc +1 -1
  212. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk/xray/__PAGE__.segment.rsc +1 -1
  213. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk/xray.segment.rsc +1 -1
  214. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  215. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_full.segment.rsc +1 -1
  216. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_head.segment.rsc +1 -1
  217. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_index.segment.rsc +1 -1
  218. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_tree.segment.rsc +1 -1
  219. package/dashboard/.next/standalone/dashboard/.next/server/pages/404.html +2 -2
  220. package/dashboard/.next/standalone/dashboard/.next/server/pages/500.html +2 -2
  221. package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.js +1 -1
  222. package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.json +1 -1
  223. package/dashboard/.next/standalone/dashboard/server.js +1 -1
  224. package/dist/cli/doctor.d.ts +17 -0
  225. package/dist/cli/doctor.js +44 -0
  226. package/dist/cli/memory.d.ts +23 -0
  227. package/dist/cli/memory.js +101 -0
  228. package/dist/database/init.d.ts +9 -0
  229. package/dist/database/init.js +32 -4
  230. package/dist/database/migrations.js +126 -0
  231. package/dist/memory/consolidate.d.ts +82 -6
  232. package/dist/memory/consolidate.js +287 -117
  233. package/dist/setup/openclaw.d.ts +26 -0
  234. package/dist/setup/openclaw.js +61 -0
  235. package/dist/tools/remember.js +24 -3
  236. package/hooks/openclaw/cortex-memory/handler.ts +223 -171
  237. package/hooks/openclaw/cortex-memory/runtime.mjs +64 -0
  238. package/package.json +1 -1
  239. package/scripts/lib/dedup.mjs +99 -0
  240. package/scripts/lib/openclaw-extract.mjs +129 -0
  241. package/scripts/lib/recall-log.mjs +16 -1
  242. package/scripts/lib/recall-relevance.mjs +191 -0
  243. package/scripts/lib/salience.mjs +8 -3
  244. package/scripts/lib/save-memory.mjs +62 -6
  245. package/scripts/lib/session-context.mjs +30 -0
  246. package/scripts/postinstall.mjs +29 -10
  247. package/scripts/prompt-recall-hook.mjs +118 -15
  248. package/scripts/session-start-hook.mjs +17 -6
  249. /package/dashboard/.next/standalone/dashboard/.next/static/{N9XiRuuRX4eTtiJFa43tY → VIXwBuLiDSKn9ayKIqb6h}/_buildManifest.js +0 -0
  250. /package/dashboard/.next/standalone/dashboard/.next/static/{N9XiRuuRX4eTtiJFa43tY → VIXwBuLiDSKn9ayKIqb6h}/_clientMiddlewareManifest.json +0 -0
  251. /package/dashboard/.next/standalone/dashboard/.next/static/{N9XiRuuRX4eTtiJFa43tY → VIXwBuLiDSKn9ayKIqb6h}/_ssgManifest.js +0 -0
@@ -528,4 +528,130 @@ export function runMigrations(database) {
528
528
  catch (err) {
529
529
  logIfUnexpectedDdlError(err, 'session_events.sensitivity_level column + index');
530
530
  }
531
+ // ---------------------------------------------------------------------------
532
+ // Migration: v4.29.0 — one-time salience-wall backfill (clamp-only).
533
+ //
534
+ // Historically ~80% of stored memories landed at salience=1.0 (the "wall"),
535
+ // collapsing salience as a ranking signal. That stale 1.0 data is all
536
+ // machine-generated (auto / legacy-migrate / plugin captures). Forward-only
537
+ // fixes never cleaned it, so this self-healing auto-migration clamps those
538
+ // rows down to a flat 0.6 on the next process startup after updating.
539
+ //
540
+ // SCOPE IS CLAMP-ONLY. We deliberately do NOT re-derive category or
541
+ // memory_purpose — live data proved the title-prefix heuristic is not
542
+ // authoritative and re-deriving corrupts already-correct labels. The ONLY
543
+ // mutation is lowering salience.
544
+ //
545
+ // Untouched: manual/user rows (explicit user input), pinned rows, and
546
+ // canonical rows. updated_at is intentionally NOT re-stamped — these rows
547
+ // were not user-edited, and re-stamping would trigger a fleet-wide cloud
548
+ // re-sync burst.
549
+ //
550
+ // Run-once guard = existence of `memories_backfill_backup` (NOT user_version,
551
+ // which `.dump`-based disaster recovery does not preserve; the table does).
552
+ // The backup table also powers the revert path (Task 5).
553
+ //
554
+ // This block owns a LOUD catch (NOT logIfUnexpectedDdlError) — a data
555
+ // backfill failure must be visible and retried, not swallowed as idempotent.
556
+ try {
557
+ // Clamp predicate — flat 0.6 for machine rows; manual/user/pinned/canonical
558
+ // untouched. COALESCE guards old fleet DBs with NULL pinned/status.
559
+ const CLAMP_WHERE = `
560
+ salience > 0.6
561
+ AND COALESCE(pinned, 0) = 0
562
+ AND COALESCE(status, 'active') != 'canonical'
563
+ AND capture_method IN ('auto', 'legacy-migrate', 'plugin')`;
564
+ // Run-once guard (outside the txn): if the box already self-healed, bail
565
+ // before doing any FTS or write work.
566
+ const alreadyDone = database.prepare("SELECT 1 FROM sqlite_master WHERE type='table' AND name='memories_backfill_backup'").get();
567
+ if (!alreadyDone) {
568
+ // FTS rebuild FIRST, in its own try/catch (B3). On a drifted-FTS DB the
569
+ // per-row memories_au trigger throws "database disk image is malformed"
570
+ // mid-UPDATE and aborts everything. Repairing the index up front means
571
+ // the trigger firings during the clamp won't throw. A rebuild failure
572
+ // here must NOT abort the backfill, so it is isolated.
573
+ try {
574
+ database.exec("INSERT INTO memories_fts(memories_fts) VALUES('rebuild')");
575
+ }
576
+ catch (ftsErr) {
577
+ const msg = ftsErr instanceof Error ? ftsErr.message : String(ftsErr);
578
+ console.error(`[backfill v4.29.0] FTS rebuild skipped (continuing): ${msg}`);
579
+ }
580
+ // Backup-table creation + the clamp UPDATE in a SINGLE IMMEDIATE
581
+ // transaction (B4). IMMEDIATE grabs the write lock at BEGIN, closing the
582
+ // read-gate -> write race so five concurrent runMigrations processes
583
+ // serialise cleanly. The guard is RE-READ inside the txn: a concurrent
584
+ // winner may have created the table between our outer check and the lock.
585
+ let clamped = 0;
586
+ const run = database.transaction(() => {
587
+ const winnerCreatedTable = database.prepare("SELECT 1 FROM sqlite_master WHERE type='table' AND name='memories_backfill_backup'").get();
588
+ if (winnerCreatedTable) {
589
+ return; // a concurrent winner already created the table; no-op
590
+ }
591
+ // Back up just the mutated column (clamp-only). Doubles as the run-once
592
+ // guard: even a zero-row match creates the (empty) table so the box
593
+ // never re-scans on subsequent startups.
594
+ database.exec(`
595
+ CREATE TABLE IF NOT EXISTS memories_backfill_backup AS
596
+ SELECT id, salience, datetime('now') AS backed_up_at
597
+ FROM memories
598
+ WHERE ${CLAMP_WHERE}
599
+ `);
600
+ const res = database.prepare(`UPDATE memories SET salience = 0.6 WHERE ${CLAMP_WHERE}`).run();
601
+ clamped = res.changes;
602
+ });
603
+ run.immediate();
604
+ // SUCCESS marker (after commit) so the fleet rollout is observable via the
605
+ // existing cloud audit ingest. firewall_result is constrained to
606
+ // ALLOW/BLOCK/QUARANTINE — this is an informational ALLOW marker.
607
+ // ORDERING DEPENDENCY: both markers INSERT into `defence_audit`, which is
608
+ // created earlier in this same function — keep the table migration ahead
609
+ // of this backfill block or the markers will silently no-op (caught below).
610
+ //
611
+ // GATED on clamped > 0: a run that healed nothing (fresh DB, or a box with
612
+ // no stale machine rows) still creates the run-once guard table, but must
613
+ // NOT emit a "healed" telemetry row. An unconditional marker was genuine
614
+ // noise AND tripped the defence-pipeline-bypass invariant (every
615
+ // saveAutoExtractedMemory must produce exactly one defence_audit row —
616
+ // a spurious migration marker made it two).
617
+ if (clamped > 0) {
618
+ try {
619
+ database.prepare(`
620
+ INSERT INTO defence_audit (
621
+ memory_id, project, timestamp,
622
+ source_type, source_identifier,
623
+ trust_score, sensitivity_level, firewall_result,
624
+ anomaly_score, threat_indicators, blocked_patterns,
625
+ reason, fragmentation_score, pipeline_duration_ms
626
+ ) VALUES (NULL, NULL, ?, 'migration', 'backfill-v4.29.0', 1.0, 'INTERNAL', 'ALLOW', 0, '[]', '[]', ?, NULL, 0)
627
+ `).run(new Date().toISOString(), JSON.stringify({ status: 'success', clamped, version: 'v4.29.0' }));
628
+ }
629
+ catch {
630
+ // Older schemas may predate the audit columns. The success path itself
631
+ // already committed; the marker is best-effort observability only.
632
+ }
633
+ }
634
+ }
635
+ }
636
+ catch (err) {
637
+ // LOUD catch — do NOT route through logIfUnexpectedDdlError. Because the
638
+ // guard table is created INSIDE the rolled-back transaction, a failure here
639
+ // leaves NO guard, so the box cleanly retries on next startup.
640
+ const msg = err instanceof Error ? err.message : String(err);
641
+ console.error(`[backfill v4.29.0] FAILED, will retry next startup: ${msg}`);
642
+ try {
643
+ database.prepare(`
644
+ INSERT INTO defence_audit (
645
+ memory_id, project, timestamp,
646
+ source_type, source_identifier,
647
+ trust_score, sensitivity_level, firewall_result,
648
+ anomaly_score, threat_indicators, blocked_patterns,
649
+ reason, fragmentation_score, pipeline_duration_ms
650
+ ) VALUES (NULL, NULL, ?, 'migration', 'backfill-v4.29.0', 0, 'INTERNAL', 'BLOCK', 0, '[]', '[]', ?, NULL, 0)
651
+ `).run(new Date().toISOString(), JSON.stringify({ status: 'failed', error: msg, version: 'v4.29.0' }));
652
+ }
653
+ catch {
654
+ // Best-effort marker; the stderr line above carries the signal.
655
+ }
656
+ }
531
657
  }
@@ -27,8 +27,42 @@ export declare function findDuplicateMemoryPairs(options?: {
27
27
  limit?: number;
28
28
  }): DuplicateMemoryPair[];
29
29
  /**
30
- * Find memories with very similar titles/content and merge them.
31
- * Keeps the newer one, appends unique content from the older one.
30
+ * De-duplicate long-term memories found as duplicate PAIRS by
31
+ * findDuplicateMemoryPairs (same project|category, similar title + >0.5 content
32
+ * overlap). Runs every ~4h on the auto path: server.ts setInterval → fullCleanup
33
+ * → consolidate → deduplicateMemories.
34
+ *
35
+ * B11 (memory-quality fix): the previous implementation built
36
+ * `kept.content + "\n\nMerged from duplicate:\n" + uniqueSentences` and wrote it
37
+ * back with `UPDATE memories SET content = ?`. That was the SECOND lossy-append
38
+ * site (mergeSimilarMemories was the first) and kept generating ever-growing
39
+ * "frankenmemories" on this path even after the first site was fixed. The kept
40
+ * memory's `content` is now NEVER modified.
41
+ *
42
+ * New policy (identical to mergeSimilarMemories — one source of truth):
43
+ * - KEEP the higher-EFFECTIVE-salience member of the pair (computeEffectiveSalience
44
+ * via the shared salience.mjs — recency/access/pin/downvote, same ranking as
45
+ * recall and the downvote CLI). NOTE: this can differ from the pair's raw
46
+ * `recommendedKeepId`, which only considered raw salience + recency.
47
+ * - Dispose the loser via the shared disposeLoser: combined similarity
48
+ * (re-measured vs the kept row) ≥ 0.85 → DELETE; below → DOWNVOTE (reversible).
49
+ * - Tags are unioned onto the kept row (metadata only, non-lossy). The kept
50
+ * content and salience are untouched.
51
+ *
52
+ * Defence re-scan removed (B11): the old re-scan existed ONLY to validate the
53
+ * SYNTHESIZED concatenated merged body before persisting it (two individually-
54
+ * clean rows could straddle a credential pattern across the join). Now that no
55
+ * concatenation happens here, there is no synthesized content to scan — the kept
56
+ * row's bytes are written verbatim and unchanged, exactly as they already exist
57
+ * in `memories`. So this pass introduces no new bytes to validate. (This is a
58
+ * narrow claim about THIS path: it does not assume every row was scanned at write
59
+ * time — e.g. importMemories inserts rows with no scan — only that the dedup no
60
+ * longer fabricates a new body that would need scanning.) Dropping the re-scan
61
+ * also avoids re-auditing unchanged content on every 4h pass.
62
+ *
63
+ * Only rows clustered in THIS pass are acted on; historical merged rows are not
64
+ * rewritten (effective salience demotes them over time). STM→LTM promotion is
65
+ * handled separately by processDecay/promoteMemory in consolidate().
32
66
  */
33
67
  export declare function deduplicateMemories(options?: {
34
68
  dryRun?: boolean;
@@ -55,10 +89,32 @@ export declare function clusterAndSummarise(options?: {
55
89
  */
56
90
  export declare function enforceMemoryLimits(config?: MemoryConfig): number;
57
91
  /**
58
- * Find and merge similar short-term memories into coherent long-term entries.
59
- * Groups memories by project|category, then clusters by Jaccard similarity
60
- * on content (0.6 weight) + title (0.4 weight).
61
- * Returns count of deleted (merged) memories.
92
+ * Find clusters of similar short-term memories within each project|category,
93
+ * KEEP the single highest-effective-salience member, and demote the rest
94
+ * WITHOUT destroying or concatenating their content.
95
+ *
96
+ * B11 (memory-quality fix): the previous implementation appended every loser's
97
+ * body into the kept memory ("Consolidated context:" bullets) and deleted the
98
+ * losers. Over ~417 live rows this produced 188 ever-growing "frankenmemories"
99
+ * — exactly the garbled content users complained about. The kept memory's
100
+ * `content` is now NEVER modified.
101
+ *
102
+ * Disposition per loser (see NEAR_IDENTICAL_DELETE_THRESHOLD):
103
+ * - combined ≥ 0.85 → DELETE (near-identical; content already in the kept row)
104
+ * - combined < 0.85 → DOWNVOTE (reversible; sinks via effective salience)
105
+ *
106
+ * Why the split exists at all: NO reaping path (decay.ts shouldDelete,
107
+ * prune.ts, expiry.ts, enforceMemoryLimits) reads `downvote_count` or effective
108
+ * salience — they all order by raw `salience`. So downvote-ONLY would leave the
109
+ * store unbounded (the dups sink in recall but never get pruned). Deleting the
110
+ * near-identical losers keeps the store bounded with zero information loss; the
111
+ * moderate near-dups are preserved and merely demoted.
112
+ *
113
+ * Tags are unioned onto the kept row and access counts summed (metadata only,
114
+ * non-lossy). STM→LTM promotion is handled separately by processDecay/
115
+ * promoteMemory in consolidate(); this function only de-duplicates.
116
+ *
117
+ * Returns the count of deleted (near-identical) losers.
62
118
  */
63
119
  export declare function mergeSimilarMemories(project?: string, similarityThreshold?: number): number;
64
120
  /**
@@ -144,5 +200,25 @@ export interface DreamModeResult {
144
200
  * 1. Find near-duplicates by embedding similarity >0.9, merge them
145
201
  * 2. Flag memories >30 days old with no access as archival candidates
146
202
  * 3. Detect and flag contradictions
203
+ *
204
+ * DISPOSAL POLICY — deliberately DIVERGES from the auto path:
205
+ * This is the EXPLICIT, user-invoked `shieldcortex consolidate` command (and the
206
+ * public `consolidateMemories` export). Because the user has actively asked for a
207
+ * consolidation, aggressive cleanup is the intended behaviour: the loser of every
208
+ * duplicate pair is HARD-DELETED. This is on purpose and must NOT be replaced with
209
+ * the gentle `disposeLoser` policy.
210
+ *
211
+ * Contrast with the 4-hourly AUTO path (deduplicateMemories / mergeSimilarMemories),
212
+ * which runs UNATTENDED and therefore uses the conservative `disposeLoser`: it only
213
+ * deletes near-identical losers (combined ≥ 0.85, content already contained in the
214
+ * kept row) and merely DOWNVOTES (reversible) the moderate near-dups. That caution
215
+ * is right for an unsupervised background job, but wrong for a deliberate manual
216
+ * cleanup the user explicitly triggered.
217
+ *
218
+ * The two paths DO share keep-selection: both pick the kept row by EFFECTIVE
219
+ * salience (effectiveSalienceOfRow — recency/access/pin/downvote), so the row that
220
+ * survives is consistent across all three dedup sites. Effective salience also
221
+ * discriminates where the pair's raw `recommendedKeepId` (raw salience + recency)
222
+ * ties at 1.0.
147
223
  */
148
224
  export declare function consolidateMemories(): DreamModeResult;