shieldcortex 4.28.0 → 4.29.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 (250) 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 +2 -2
  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/replay.html +2 -2
  75. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.rsc +1 -1
  76. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/!KGRhc2hib2FyZCk/memory/replay/__PAGE__.segment.rsc +1 -1
  77. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/!KGRhc2hib2FyZCk/memory/replay.segment.rsc +1 -1
  78. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  79. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  80. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/_full.segment.rsc +1 -1
  81. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/_head.segment.rsc +1 -1
  82. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/_index.segment.rsc +1 -1
  83. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/_tree.segment.rsc +1 -1
  84. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.html +1 -1
  85. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.rsc +1 -1
  86. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory/review/__PAGE__.segment.rsc +1 -1
  87. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory/review.segment.rsc +1 -1
  88. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  89. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  90. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_full.segment.rsc +1 -1
  91. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_head.segment.rsc +1 -1
  92. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_index.segment.rsc +1 -1
  93. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_tree.segment.rsc +1 -1
  94. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.html +1 -1
  95. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.rsc +1 -1
  96. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory/timeline/__PAGE__.segment.rsc +1 -1
  97. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory/timeline.segment.rsc +1 -1
  98. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  99. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  100. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_full.segment.rsc +1 -1
  101. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_head.segment.rsc +1 -1
  102. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_index.segment.rsc +1 -1
  103. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_tree.segment.rsc +1 -1
  104. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.html +2 -2
  105. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.rsc +1 -1
  106. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk/memory/__PAGE__.segment.rsc +1 -1
  107. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  108. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  109. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_full.segment.rsc +1 -1
  110. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_head.segment.rsc +1 -1
  111. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_index.segment.rsc +1 -1
  112. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_tree.segment.rsc +1 -1
  113. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.html +2 -2
  114. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.rsc +1 -1
  115. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk/overview/__PAGE__.segment.rsc +1 -1
  116. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk/overview.segment.rsc +1 -1
  117. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  118. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_full.segment.rsc +1 -1
  119. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_head.segment.rsc +1 -1
  120. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_index.segment.rsc +1 -1
  121. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_tree.segment.rsc +1 -1
  122. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.html +1 -1
  123. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.rsc +1 -1
  124. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection/audit/__PAGE__.segment.rsc +1 -1
  125. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection/audit.segment.rsc +1 -1
  126. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  127. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  128. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_full.segment.rsc +1 -1
  129. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_head.segment.rsc +1 -1
  130. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_index.segment.rsc +1 -1
  131. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_tree.segment.rsc +1 -1
  132. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.html +1 -1
  133. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.rsc +1 -1
  134. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection/intercepts/__PAGE__.segment.rsc +1 -1
  135. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection/intercepts.segment.rsc +1 -1
  136. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  137. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  138. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_full.segment.rsc +1 -1
  139. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_head.segment.rsc +1 -1
  140. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_index.segment.rsc +1 -1
  141. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_tree.segment.rsc +1 -1
  142. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.html +1 -1
  143. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.rsc +1 -1
  144. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection/iron-dome/__PAGE__.segment.rsc +1 -1
  145. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection/iron-dome.segment.rsc +1 -1
  146. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  147. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  148. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_full.segment.rsc +1 -1
  149. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_head.segment.rsc +1 -1
  150. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_index.segment.rsc +1 -1
  151. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_tree.segment.rsc +1 -1
  152. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.html +1 -1
  153. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.rsc +1 -1
  154. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection/policies/__PAGE__.segment.rsc +1 -1
  155. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection/policies.segment.rsc +1 -1
  156. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  157. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  158. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_full.segment.rsc +1 -1
  159. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_head.segment.rsc +1 -1
  160. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_index.segment.rsc +1 -1
  161. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_tree.segment.rsc +1 -1
  162. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.html +1 -1
  163. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.rsc +1 -1
  164. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection/quarantine/__PAGE__.segment.rsc +1 -1
  165. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection/quarantine.segment.rsc +1 -1
  166. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  167. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  168. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_full.segment.rsc +1 -1
  169. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_head.segment.rsc +1 -1
  170. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_index.segment.rsc +1 -1
  171. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_tree.segment.rsc +1 -1
  172. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.html +2 -2
  173. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.rsc +1 -1
  174. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk/protection/__PAGE__.segment.rsc +1 -1
  175. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  176. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  177. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_full.segment.rsc +1 -1
  178. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_head.segment.rsc +1 -1
  179. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_index.segment.rsc +1 -1
  180. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_tree.segment.rsc +1 -1
  181. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.html +2 -2
  182. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.rsc +1 -1
  183. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings/__PAGE__.segment.rsc +1 -1
  184. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings.segment.rsc +1 -1
  185. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  186. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_full.segment.rsc +1 -1
  187. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  188. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_index.segment.rsc +1 -1
  189. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  190. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.html +1 -1
  191. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.rsc +1 -1
  192. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain/xray/__PAGE__.segment.rsc +1 -1
  193. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain/xray.segment.rsc +1 -1
  194. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain.segment.rsc +1 -1
  195. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  196. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_full.segment.rsc +1 -1
  197. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_head.segment.rsc +1 -1
  198. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_index.segment.rsc +1 -1
  199. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_tree.segment.rsc +1 -1
  200. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.html +1 -1
  201. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.rsc +1 -1
  202. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk/supply-chain/__PAGE__.segment.rsc +1 -1
  203. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk/supply-chain.segment.rsc +1 -1
  204. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  205. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_full.segment.rsc +1 -1
  206. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_head.segment.rsc +1 -1
  207. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_index.segment.rsc +1 -1
  208. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_tree.segment.rsc +1 -1
  209. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.html +2 -2
  210. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.rsc +1 -1
  211. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk/xray/__PAGE__.segment.rsc +1 -1
  212. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk/xray.segment.rsc +1 -1
  213. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  214. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_full.segment.rsc +1 -1
  215. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_head.segment.rsc +1 -1
  216. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_index.segment.rsc +1 -1
  217. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_tree.segment.rsc +1 -1
  218. package/dashboard/.next/standalone/dashboard/.next/server/pages/404.html +2 -2
  219. package/dashboard/.next/standalone/dashboard/.next/server/pages/500.html +2 -2
  220. package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.js +1 -1
  221. package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.json +1 -1
  222. package/dist/cli/doctor.d.ts +17 -0
  223. package/dist/cli/doctor.js +44 -0
  224. package/dist/cli/memory.d.ts +23 -0
  225. package/dist/cli/memory.js +101 -0
  226. package/dist/database/init.d.ts +9 -0
  227. package/dist/database/init.js +32 -4
  228. package/dist/database/migrations.js +126 -0
  229. package/dist/license/store.js +42 -2
  230. package/dist/memory/consolidate.d.ts +82 -6
  231. package/dist/memory/consolidate.js +287 -117
  232. package/dist/setup/openclaw.d.ts +26 -0
  233. package/dist/setup/openclaw.js +61 -0
  234. package/dist/tools/remember.js +24 -3
  235. package/hooks/openclaw/cortex-memory/handler.ts +223 -171
  236. package/hooks/openclaw/cortex-memory/runtime.mjs +64 -0
  237. package/package.json +1 -1
  238. package/scripts/lib/dedup.mjs +99 -0
  239. package/scripts/lib/openclaw-extract.mjs +129 -0
  240. package/scripts/lib/recall-log.mjs +16 -1
  241. package/scripts/lib/recall-relevance.mjs +191 -0
  242. package/scripts/lib/salience.mjs +8 -3
  243. package/scripts/lib/save-memory.mjs +62 -6
  244. package/scripts/lib/session-context.mjs +30 -0
  245. package/scripts/postinstall.mjs +29 -10
  246. package/scripts/prompt-recall-hook.mjs +118 -15
  247. package/scripts/session-start-hook.mjs +17 -6
  248. /package/dashboard/.next/standalone/dashboard/.next/static/{3HiFjAMoQUDn05ZMNC0Ae → 0HpUm8SRvm9fnWVO0OBB2}/_buildManifest.js +0 -0
  249. /package/dashboard/.next/standalone/dashboard/.next/static/{3HiFjAMoQUDn05ZMNC0Ae → 0HpUm8SRvm9fnWVO0OBB2}/_clientMiddlewareManifest.json +0 -0
  250. /package/dashboard/.next/standalone/dashboard/.next/static/{3HiFjAMoQUDn05ZMNC0Ae → 0HpUm8SRvm9fnWVO0OBB2}/_ssgManifest.js +0 -0
@@ -9,7 +9,7 @@
9
9
  *
10
10
  * License is cached in memory after first read.
11
11
  */
12
- import { readFileSync, writeFileSync, existsSync, unlinkSync, mkdirSync } from 'fs';
12
+ import { readFileSync, writeFileSync, existsSync, unlinkSync, mkdirSync, statSync } from 'fs';
13
13
  import { join } from 'path';
14
14
  import { homedir } from 'os';
15
15
  import { verifyLicenseKey } from './verify.js';
@@ -22,10 +22,32 @@ function getLicenseFilePath() {
22
22
  return join(getConfigDir(), 'license.json');
23
23
  }
24
24
  // ── Cache ────────────────────────────────────────────────
25
+ //
26
+ // In-memory cache of the parsed/verified licence. Refreshed automatically
27
+ // when the on-disk file mtime changes (v4.27.2). This lets long-running
28
+ // workers pick up `shieldcortex license activate <key>` without a process
29
+ // restart — previously the worker held the old tier cached for its
30
+ // lifetime and any cloud_sync / heartbeat feature gate stayed stuck on
31
+ // the value at startup. The mtime check is a single stat() per call
32
+ // (microseconds); cheap enough to run on every gate hit.
25
33
  let cachedLicense = null;
34
+ let cachedLicenseFileMtimeMs = null;
35
+ /**
36
+ * Read the licence file's current mtime (ms). Returns null if the file
37
+ * doesn't exist — that's a valid cached state too (= FREE).
38
+ */
39
+ function readLicenseFileMtimeMs() {
40
+ try {
41
+ return statSync(getLicenseFilePath()).mtimeMs;
42
+ }
43
+ catch {
44
+ return null;
45
+ }
46
+ }
26
47
  /** Clear the in-memory cache (useful for testing or after activation). */
27
48
  export function clearLicenseCache() {
28
49
  cachedLicense = null;
50
+ cachedLicenseFileMtimeMs = null;
29
51
  clearTrialCache();
30
52
  }
31
53
  // ── Read ─────────────────────────────────────────────────
@@ -34,6 +56,15 @@ export function clearLicenseCache() {
34
56
  * Returns a LicenseInfo with tier='free' if no license exists or verification fails.
35
57
  */
36
58
  export function getLicense() {
59
+ // Hot-reload: if the licence file's mtime has changed since the value
60
+ // was cached (or the file appeared/disappeared), drop the cache so the
61
+ // new tier takes effect immediately. This is what makes long-running
62
+ // workers see `shieldcortex license activate <key>` without a restart.
63
+ const currentMtimeMs = readLicenseFileMtimeMs();
64
+ if (cachedLicense !== null && cachedLicenseFileMtimeMs !== currentMtimeMs) {
65
+ cachedLicense = null;
66
+ clearTrialCache();
67
+ }
37
68
  if (cachedLicense)
38
69
  return cachedLicense;
39
70
  const FREE = {
@@ -49,11 +80,13 @@ export function getLicense() {
49
80
  const licenseFile = getLicenseFilePath();
50
81
  if (!existsSync(licenseFile)) {
51
82
  cachedLicense = FREE;
83
+ cachedLicenseFileMtimeMs = null;
52
84
  return FREE;
53
85
  }
54
86
  const raw = JSON.parse(readFileSync(licenseFile, 'utf-8'));
55
87
  if (!raw.key) {
56
88
  cachedLicense = FREE;
89
+ cachedLicenseFileMtimeMs = currentMtimeMs;
57
90
  return FREE;
58
91
  }
59
92
  // Check if previously marked as revoked or expired by online validation.
@@ -62,15 +95,18 @@ export function getLicense() {
62
95
  // so we only hard-block on revoked here.
63
96
  if (raw.validationStatus === 'revoked') {
64
97
  cachedLicense = FREE;
98
+ cachedLicenseFileMtimeMs = currentMtimeMs;
65
99
  return FREE;
66
100
  }
67
101
  // Verify the key cryptographically (checks exp + grace period)
68
102
  const info = verifyLicenseKey(raw.key);
69
103
  cachedLicense = info;
104
+ cachedLicenseFileMtimeMs = currentMtimeMs;
70
105
  return info;
71
106
  }
72
107
  catch {
73
108
  cachedLicense = FREE;
109
+ cachedLicenseFileMtimeMs = currentMtimeMs;
74
110
  return FREE;
75
111
  }
76
112
  }
@@ -126,8 +162,10 @@ export function activateLicense(key) {
126
162
  const licenseFile = getLicenseFilePath();
127
163
  mkdirSync(configDir, { recursive: true });
128
164
  writeFileSync(licenseFile, JSON.stringify(file, null, 2) + '\n', { mode: 0o600 });
129
- // Invalidate cache
165
+ // Refresh cache + mtime so the next getLicense() call in this process
166
+ // doesn't trigger a re-read for no reason.
130
167
  cachedLicense = info;
168
+ cachedLicenseFileMtimeMs = readLicenseFileMtimeMs();
131
169
  return info;
132
170
  }
133
171
  /**
@@ -144,6 +182,7 @@ export function deactivateLicense() {
144
182
  // Best effort
145
183
  }
146
184
  cachedLicense = null;
185
+ cachedLicenseFileMtimeMs = null;
147
186
  clearTrialCache();
148
187
  }
149
188
  /**
@@ -162,6 +201,7 @@ export function updateValidationStatus(status) {
162
201
  // If revoked or expired, invalidate cache so next getLicense() re-verifies
163
202
  if (status === 'revoked' || status === 'expired') {
164
203
  cachedLicense = null;
204
+ cachedLicenseFileMtimeMs = null;
165
205
  }
166
206
  }
167
207
  catch {
@@ -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;