shieldcortex 4.4.1 → 4.6.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 (590) hide show
  1. package/README.md +23 -11
  2. package/dashboard/.next/standalone/dashboard/.next/BUILD_ID +1 -1
  3. package/dashboard/.next/standalone/dashboard/.next/app-path-routes-manifest.json +19 -0
  4. package/dashboard/.next/standalone/dashboard/.next/build-manifest.json +8 -6
  5. package/dashboard/.next/standalone/dashboard/.next/prerender-manifest.json +459 -3
  6. package/dashboard/.next/standalone/dashboard/.next/routes-manifest.json +114 -0
  7. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/admin/page/app-paths-manifest.json +3 -0
  8. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/admin/page/build-manifest.json +18 -0
  9. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/admin/page/next-font-manifest.json +11 -0
  10. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/admin/page/react-loadable-manifest.json +1 -0
  11. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/admin/page/server-reference-manifest.json +4 -0
  12. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/admin/page.js +19 -0
  13. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/admin/page.js.map +5 -0
  14. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/admin/page.js.nft.json +1 -0
  15. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/admin/page_client-reference-manifest.js +2 -0
  16. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/cloud/page/app-paths-manifest.json +3 -0
  17. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/cloud/page/build-manifest.json +18 -0
  18. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/cloud/page/next-font-manifest.json +11 -0
  19. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/cloud/page/react-loadable-manifest.json +1 -0
  20. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/cloud/page/server-reference-manifest.json +4 -0
  21. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/cloud/page.js +19 -0
  22. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/cloud/page.js.map +5 -0
  23. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/cloud/page.js.nft.json +1 -0
  24. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/cloud/page_client-reference-manifest.js +2 -0
  25. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/capture/page/app-paths-manifest.json +3 -0
  26. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/capture/page/build-manifest.json +18 -0
  27. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/capture/page/next-font-manifest.json +11 -0
  28. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/capture/page/react-loadable-manifest.json +1 -0
  29. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/capture/page/server-reference-manifest.json +4 -0
  30. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/capture/page.js +19 -0
  31. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/capture/page.js.map +5 -0
  32. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/capture/page.js.nft.json +1 -0
  33. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/capture/page_client-reference-manifest.js +2 -0
  34. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/graph/page/app-paths-manifest.json +3 -0
  35. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/graph/page/build-manifest.json +18 -0
  36. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/graph/page/next-font-manifest.json +11 -0
  37. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/graph/page/react-loadable-manifest.json +1 -0
  38. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/graph/page/server-reference-manifest.json +4 -0
  39. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/graph/page.js +19 -0
  40. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/graph/page.js.map +5 -0
  41. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/graph/page.js.nft.json +1 -0
  42. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/graph/page_client-reference-manifest.js +2 -0
  43. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/page/app-paths-manifest.json +3 -0
  44. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/page/build-manifest.json +18 -0
  45. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/page/next-font-manifest.json +11 -0
  46. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/page/react-loadable-manifest.json +8 -0
  47. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/page/server-reference-manifest.json +4 -0
  48. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/page.js +18 -0
  49. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/page.js.map +5 -0
  50. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/page.js.nft.json +1 -0
  51. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/page_client-reference-manifest.js +2 -0
  52. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/recall/page/app-paths-manifest.json +3 -0
  53. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/recall/page/build-manifest.json +18 -0
  54. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/recall/page/next-font-manifest.json +11 -0
  55. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/recall/page/react-loadable-manifest.json +1 -0
  56. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/recall/page/server-reference-manifest.json +4 -0
  57. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/recall/page.js +19 -0
  58. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/recall/page.js.map +5 -0
  59. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/recall/page.js.nft.json +1 -0
  60. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/recall/page_client-reference-manifest.js +2 -0
  61. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page/app-paths-manifest.json +3 -0
  62. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page/build-manifest.json +18 -0
  63. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page/next-font-manifest.json +11 -0
  64. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page/react-loadable-manifest.json +1 -0
  65. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page/server-reference-manifest.json +4 -0
  66. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page.js +19 -0
  67. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page.js.map +5 -0
  68. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page.js.nft.json +1 -0
  69. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page_client-reference-manifest.js +2 -0
  70. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/timeline/page/app-paths-manifest.json +3 -0
  71. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/timeline/page/build-manifest.json +18 -0
  72. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/timeline/page/next-font-manifest.json +11 -0
  73. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/timeline/page/react-loadable-manifest.json +1 -0
  74. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/timeline/page/server-reference-manifest.json +4 -0
  75. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/timeline/page.js +19 -0
  76. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/timeline/page.js.map +5 -0
  77. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/timeline/page.js.nft.json +1 -0
  78. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/timeline/page_client-reference-manifest.js +2 -0
  79. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/overview/page/app-paths-manifest.json +3 -0
  80. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/overview/page/build-manifest.json +18 -0
  81. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/overview/page/next-font-manifest.json +11 -0
  82. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/overview/page/react-loadable-manifest.json +1 -0
  83. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/overview/page/server-reference-manifest.json +4 -0
  84. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/overview/page.js +18 -0
  85. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/overview/page.js.map +5 -0
  86. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/overview/page.js.nft.json +1 -0
  87. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/overview/page_client-reference-manifest.js +2 -0
  88. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/audit/page/app-paths-manifest.json +3 -0
  89. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/audit/page/build-manifest.json +18 -0
  90. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/audit/page/next-font-manifest.json +11 -0
  91. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/audit/page/react-loadable-manifest.json +1 -0
  92. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/audit/page/server-reference-manifest.json +4 -0
  93. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/audit/page.js +19 -0
  94. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/audit/page.js.map +5 -0
  95. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/audit/page.js.nft.json +1 -0
  96. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/audit/page_client-reference-manifest.js +2 -0
  97. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/intercepts/page/app-paths-manifest.json +3 -0
  98. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/intercepts/page/build-manifest.json +18 -0
  99. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/intercepts/page/next-font-manifest.json +11 -0
  100. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/intercepts/page/react-loadable-manifest.json +1 -0
  101. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/intercepts/page/server-reference-manifest.json +4 -0
  102. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/intercepts/page.js +19 -0
  103. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/intercepts/page.js.map +5 -0
  104. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/intercepts/page.js.nft.json +1 -0
  105. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/intercepts/page_client-reference-manifest.js +2 -0
  106. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/iron-dome/page/app-paths-manifest.json +3 -0
  107. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/iron-dome/page/build-manifest.json +18 -0
  108. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/iron-dome/page/next-font-manifest.json +11 -0
  109. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/iron-dome/page/react-loadable-manifest.json +1 -0
  110. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/iron-dome/page/server-reference-manifest.json +4 -0
  111. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/iron-dome/page.js +19 -0
  112. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/iron-dome/page.js.map +5 -0
  113. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/iron-dome/page.js.nft.json +1 -0
  114. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/iron-dome/page_client-reference-manifest.js +2 -0
  115. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/page/app-paths-manifest.json +3 -0
  116. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/page/build-manifest.json +18 -0
  117. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/page/next-font-manifest.json +11 -0
  118. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/page/react-loadable-manifest.json +1 -0
  119. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/page/server-reference-manifest.json +4 -0
  120. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/page.js +18 -0
  121. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/page.js.map +5 -0
  122. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/page.js.nft.json +1 -0
  123. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/page_client-reference-manifest.js +2 -0
  124. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/policies/page/app-paths-manifest.json +3 -0
  125. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/policies/page/build-manifest.json +18 -0
  126. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/policies/page/next-font-manifest.json +11 -0
  127. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/policies/page/react-loadable-manifest.json +1 -0
  128. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/policies/page/server-reference-manifest.json +4 -0
  129. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/policies/page.js +19 -0
  130. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/policies/page.js.map +5 -0
  131. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/policies/page.js.nft.json +1 -0
  132. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/policies/page_client-reference-manifest.js +2 -0
  133. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/quarantine/page/app-paths-manifest.json +3 -0
  134. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/quarantine/page/build-manifest.json +18 -0
  135. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/quarantine/page/next-font-manifest.json +11 -0
  136. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/quarantine/page/react-loadable-manifest.json +1 -0
  137. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/quarantine/page/server-reference-manifest.json +4 -0
  138. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/quarantine/page.js +19 -0
  139. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/quarantine/page.js.map +5 -0
  140. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/quarantine/page.js.nft.json +1 -0
  141. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/quarantine/page_client-reference-manifest.js +2 -0
  142. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/settings/page/app-paths-manifest.json +3 -0
  143. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/settings/page/build-manifest.json +18 -0
  144. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/settings/page/next-font-manifest.json +11 -0
  145. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/settings/page/react-loadable-manifest.json +1 -0
  146. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/settings/page/server-reference-manifest.json +4 -0
  147. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/settings/page.js +18 -0
  148. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/settings/page.js.map +5 -0
  149. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -0
  150. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +2 -0
  151. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/page/app-paths-manifest.json +3 -0
  152. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/page/build-manifest.json +18 -0
  153. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/page/next-font-manifest.json +11 -0
  154. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/page/react-loadable-manifest.json +1 -0
  155. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/page/server-reference-manifest.json +4 -0
  156. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/page.js +19 -0
  157. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/page.js.map +5 -0
  158. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/page.js.nft.json +1 -0
  159. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/page_client-reference-manifest.js +2 -0
  160. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/xray/page/app-paths-manifest.json +3 -0
  161. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/xray/page/build-manifest.json +18 -0
  162. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/xray/page/next-font-manifest.json +11 -0
  163. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/xray/page/react-loadable-manifest.json +1 -0
  164. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/xray/page/server-reference-manifest.json +4 -0
  165. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/xray/page.js +19 -0
  166. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/xray/page.js.map +5 -0
  167. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/xray/page.js.nft.json +1 -0
  168. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/xray/page_client-reference-manifest.js +2 -0
  169. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page/app-paths-manifest.json +3 -0
  170. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page/build-manifest.json +18 -0
  171. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page/next-font-manifest.json +11 -0
  172. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page/react-loadable-manifest.json +1 -0
  173. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page/server-reference-manifest.json +4 -0
  174. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page.js +18 -0
  175. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page.js.map +5 -0
  176. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page.js.nft.json +1 -0
  177. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page_client-reference-manifest.js +2 -0
  178. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error/page/build-manifest.json +6 -4
  179. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error/page.js +1 -1
  180. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error/page.js.nft.json +1 -1
  181. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  182. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.html +2 -2
  183. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.rsc +7 -7
  184. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  185. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  186. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
  187. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  188. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  189. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found/page/build-manifest.json +6 -4
  190. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found/page.js +2 -2
  191. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found/page.js.nft.json +1 -1
  192. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  193. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.html +1 -1
  194. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.rsc +10 -11
  195. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +10 -11
  196. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +3 -3
  197. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +6 -7
  198. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  199. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  200. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -3
  201. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.html +1 -0
  202. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.meta +18 -0
  203. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.rsc +21 -0
  204. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/!KGRhc2hib2FyZCk/admin/__PAGE__.segment.rsc +6 -0
  205. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/!KGRhc2hib2FyZCk/admin.segment.rsc +4 -0
  206. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -0
  207. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_full.segment.rsc +21 -0
  208. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_head.segment.rsc +5 -0
  209. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_index.segment.rsc +7 -0
  210. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_tree.segment.rsc +4 -0
  211. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.html +1 -0
  212. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.meta +18 -0
  213. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.rsc +21 -0
  214. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/!KGRhc2hib2FyZCk/cloud/__PAGE__.segment.rsc +6 -0
  215. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/!KGRhc2hib2FyZCk/cloud.segment.rsc +4 -0
  216. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -0
  217. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_full.segment.rsc +21 -0
  218. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_head.segment.rsc +5 -0
  219. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_index.segment.rsc +7 -0
  220. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_tree.segment.rsc +4 -0
  221. package/dashboard/.next/standalone/dashboard/.next/server/app/index.html +1 -1
  222. package/dashboard/.next/standalone/dashboard/.next/server/app/index.meta +2 -0
  223. package/dashboard/.next/standalone/dashboard/.next/server/app/index.rsc +15 -19
  224. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/__PAGE__.segment.rsc +5 -8
  225. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_full.segment.rsc +15 -19
  226. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_head.segment.rsc +3 -3
  227. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_index.segment.rsc +6 -7
  228. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_tree.segment.rsc +2 -3
  229. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.html +1 -0
  230. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.meta +19 -0
  231. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.rsc +21 -0
  232. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory/capture/__PAGE__.segment.rsc +6 -0
  233. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory/capture.segment.rsc +4 -0
  234. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +4 -0
  235. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -0
  236. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_full.segment.rsc +21 -0
  237. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_head.segment.rsc +5 -0
  238. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_index.segment.rsc +7 -0
  239. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_tree.segment.rsc +4 -0
  240. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.html +1 -0
  241. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.meta +19 -0
  242. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.rsc +21 -0
  243. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory/graph/__PAGE__.segment.rsc +6 -0
  244. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory/graph.segment.rsc +4 -0
  245. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +4 -0
  246. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -0
  247. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_full.segment.rsc +21 -0
  248. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_head.segment.rsc +5 -0
  249. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_index.segment.rsc +7 -0
  250. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_tree.segment.rsc +4 -0
  251. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.html +1 -0
  252. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.meta +19 -0
  253. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.rsc +21 -0
  254. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory/recall/__PAGE__.segment.rsc +6 -0
  255. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory/recall.segment.rsc +4 -0
  256. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +4 -0
  257. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -0
  258. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_full.segment.rsc +21 -0
  259. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_head.segment.rsc +5 -0
  260. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_index.segment.rsc +7 -0
  261. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_tree.segment.rsc +4 -0
  262. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.html +1 -0
  263. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.meta +19 -0
  264. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.rsc +21 -0
  265. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory/review/__PAGE__.segment.rsc +6 -0
  266. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory/review.segment.rsc +4 -0
  267. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +4 -0
  268. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -0
  269. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_full.segment.rsc +21 -0
  270. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_head.segment.rsc +5 -0
  271. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_index.segment.rsc +7 -0
  272. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_tree.segment.rsc +4 -0
  273. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.html +1 -0
  274. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.meta +19 -0
  275. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.rsc +21 -0
  276. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory/timeline/__PAGE__.segment.rsc +6 -0
  277. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory/timeline.segment.rsc +4 -0
  278. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +4 -0
  279. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -0
  280. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_full.segment.rsc +21 -0
  281. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_head.segment.rsc +5 -0
  282. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_index.segment.rsc +7 -0
  283. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_tree.segment.rsc +4 -0
  284. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.html +1 -0
  285. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.meta +16 -0
  286. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.rsc +24 -0
  287. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk/memory/__PAGE__.segment.rsc +9 -0
  288. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +4 -0
  289. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -0
  290. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_full.segment.rsc +24 -0
  291. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_head.segment.rsc +5 -0
  292. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_index.segment.rsc +7 -0
  293. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_tree.segment.rsc +4 -0
  294. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.html +1 -0
  295. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.meta +16 -0
  296. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.rsc +24 -0
  297. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk/overview/__PAGE__.segment.rsc +9 -0
  298. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk/overview.segment.rsc +4 -0
  299. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -0
  300. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_full.segment.rsc +24 -0
  301. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_head.segment.rsc +5 -0
  302. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_index.segment.rsc +7 -0
  303. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_tree.segment.rsc +4 -0
  304. package/dashboard/.next/standalone/dashboard/.next/server/app/page/build-manifest.json +6 -4
  305. package/dashboard/.next/standalone/dashboard/.next/server/app/page/react-loadable-manifest.json +1 -15
  306. package/dashboard/.next/standalone/dashboard/.next/server/app/page.js +4 -3
  307. package/dashboard/.next/standalone/dashboard/.next/server/app/page.js.nft.json +1 -1
  308. package/dashboard/.next/standalone/dashboard/.next/server/app/page_client-reference-manifest.js +1 -1
  309. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.html +1 -0
  310. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.meta +19 -0
  311. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.rsc +21 -0
  312. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection/audit/__PAGE__.segment.rsc +6 -0
  313. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection/audit.segment.rsc +4 -0
  314. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +4 -0
  315. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -0
  316. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_full.segment.rsc +21 -0
  317. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_head.segment.rsc +5 -0
  318. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_index.segment.rsc +7 -0
  319. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_tree.segment.rsc +4 -0
  320. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.html +1 -0
  321. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.meta +19 -0
  322. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.rsc +21 -0
  323. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection/intercepts/__PAGE__.segment.rsc +6 -0
  324. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection/intercepts.segment.rsc +4 -0
  325. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +4 -0
  326. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -0
  327. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_full.segment.rsc +21 -0
  328. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_head.segment.rsc +5 -0
  329. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_index.segment.rsc +7 -0
  330. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_tree.segment.rsc +4 -0
  331. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.html +1 -0
  332. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.meta +19 -0
  333. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.rsc +21 -0
  334. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection/iron-dome/__PAGE__.segment.rsc +6 -0
  335. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection/iron-dome.segment.rsc +4 -0
  336. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +4 -0
  337. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -0
  338. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_full.segment.rsc +21 -0
  339. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_head.segment.rsc +5 -0
  340. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_index.segment.rsc +7 -0
  341. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_tree.segment.rsc +4 -0
  342. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.html +1 -0
  343. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.meta +19 -0
  344. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.rsc +21 -0
  345. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection/policies/__PAGE__.segment.rsc +6 -0
  346. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection/policies.segment.rsc +4 -0
  347. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +4 -0
  348. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -0
  349. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_full.segment.rsc +21 -0
  350. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_head.segment.rsc +5 -0
  351. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_index.segment.rsc +7 -0
  352. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_tree.segment.rsc +4 -0
  353. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.html +1 -0
  354. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.meta +19 -0
  355. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.rsc +21 -0
  356. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection/quarantine/__PAGE__.segment.rsc +6 -0
  357. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection/quarantine.segment.rsc +4 -0
  358. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +4 -0
  359. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -0
  360. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_full.segment.rsc +21 -0
  361. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_head.segment.rsc +5 -0
  362. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_index.segment.rsc +7 -0
  363. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_tree.segment.rsc +4 -0
  364. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.html +1 -0
  365. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.meta +16 -0
  366. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.rsc +21 -0
  367. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk/protection/__PAGE__.segment.rsc +6 -0
  368. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +4 -0
  369. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -0
  370. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_full.segment.rsc +21 -0
  371. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_head.segment.rsc +5 -0
  372. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_index.segment.rsc +7 -0
  373. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_tree.segment.rsc +4 -0
  374. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.html +1 -0
  375. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.meta +16 -0
  376. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.rsc +21 -0
  377. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings/__PAGE__.segment.rsc +6 -0
  378. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings.segment.rsc +4 -0
  379. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -0
  380. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_full.segment.rsc +21 -0
  381. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_head.segment.rsc +5 -0
  382. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_index.segment.rsc +7 -0
  383. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_tree.segment.rsc +4 -0
  384. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.html +1 -0
  385. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.meta +19 -0
  386. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.rsc +21 -0
  387. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain/xray/__PAGE__.segment.rsc +6 -0
  388. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain/xray.segment.rsc +4 -0
  389. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain.segment.rsc +4 -0
  390. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -0
  391. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_full.segment.rsc +21 -0
  392. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_head.segment.rsc +5 -0
  393. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_index.segment.rsc +7 -0
  394. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_tree.segment.rsc +4 -0
  395. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.html +1 -0
  396. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.meta +18 -0
  397. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.rsc +21 -0
  398. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk/supply-chain/__PAGE__.segment.rsc +6 -0
  399. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk/supply-chain.segment.rsc +4 -0
  400. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -0
  401. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_full.segment.rsc +21 -0
  402. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_head.segment.rsc +5 -0
  403. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_index.segment.rsc +7 -0
  404. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_tree.segment.rsc +4 -0
  405. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.html +1 -0
  406. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.meta +16 -0
  407. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.rsc +21 -0
  408. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk/xray/__PAGE__.segment.rsc +6 -0
  409. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk/xray.segment.rsc +4 -0
  410. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -0
  411. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_full.segment.rsc +21 -0
  412. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_head.segment.rsc +5 -0
  413. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_index.segment.rsc +7 -0
  414. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_tree.segment.rsc +4 -0
  415. package/dashboard/.next/standalone/dashboard/.next/server/app-paths-manifest.json +19 -0
  416. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/52d24__next-internal_server_app_(dashboard)_memory_capture_page_actions_63edc13b.js +3 -0
  417. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/52d24__next-internal_server_app_(dashboard)_memory_graph_page_actions_dbea2941.js +3 -0
  418. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/52d24__next-internal_server_app_(dashboard)_memory_recall_page_actions_862f5d2a.js +3 -0
  419. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/52d24__next-internal_server_app_(dashboard)_memory_review_page_actions_a92d5b10.js +3 -0
  420. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/52d24__next-internal_server_app_(dashboard)_memory_timeline_page_actions_ca9ce9e1.js +3 -0
  421. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/52d24__next-internal_server_app_(dashboard)_protection_audit_page_actions_f7691378.js +3 -0
  422. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/52d24__next-internal_server_app_(dashboard)_protection_policies_page_actions_cf89da5c.js +3 -0
  423. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/52d24__next-internal_server_app_(dashboard)_supply-chain_page_actions_dde2608a.js +3 -0
  424. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/52d24__next-internal_server_app_(dashboard)_supply-chain_xray_page_actions_25d3be0c.js +3 -0
  425. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/87dda_server_app_(dashboard)_protection_intercepts_page_actions_6ddf5b47.js +3 -0
  426. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/87dda_server_app_(dashboard)_protection_quarantine_page_actions_6f4f062b.js +3 -0
  427. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/9f1d4_next_c9fe89e1._.js +6 -0
  428. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/9f1d4_next_dist_0984e28b._.js +6 -0
  429. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/9f1d4_next_dist_d7bbb1c6._.js +3 -0
  430. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/9f1d4_next_dist_esm_8b94d72c._.js +6 -0
  431. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/9f1d4_next_dist_esm_build_templates_app-page_f7d4354e.js +1 -1
  432. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/9f1d4_next_dist_fe6a9400._.js +1 -1
  433. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/9f1d4_sonner_dist_index_mjs_8c2eff75._.js +3 -0
  434. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__453bd501._.js +3 -0
  435. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__4b8693ea._.js +3 -0
  436. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__5304568b._.js +3 -0
  437. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__883523b7._.js +3 -3
  438. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__b789489c._.js +3 -0
  439. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__c95102dd._.js +1 -1
  440. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__fb5796ae._.js +3 -0
  441. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/acce3_next-internal_server_app_(dashboard)_protection_iron-dome_page_actions_0aea67c8.js +3 -0
  442. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_024efb58._.js +4 -0
  443. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_0734b815._.js +3 -0
  444. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_0934dafc._.js +3 -0
  445. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_0d9fbcc0._.js +4 -0
  446. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_0e714544._.js +3 -0
  447. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/{dashboard_f4cc9ff7._.js → dashboard_18059cf9._.js} +2 -2
  448. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_1bfd1423._.js +3 -0
  449. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_21edaee1._.js +3 -0
  450. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_254480da._.js +3 -0
  451. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_25af784d._.js +3 -0
  452. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_2ae2cdd9._.js +4 -0
  453. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_2f2b5522._.js +4 -0
  454. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_315f952f._.js +4 -0
  455. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_341cc376._.js +4 -0
  456. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_354daf70._.js +3 -0
  457. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_42c76551._.js +4 -0
  458. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_537e8679._.js +3 -0
  459. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_5a44c25a._.js +4 -0
  460. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_5b25ee34._.js +3 -0
  461. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_5ebb1380._.js +3 -0
  462. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_62f8f1fa._.js +3 -0
  463. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_65d138f7._.js +4 -0
  464. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_71fe2c0e._.js +4 -0
  465. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_7cf5447f._.js +4 -0
  466. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_80a74456._.js +3 -0
  467. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_8481163e._.js +3 -0
  468. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_86b2b751._.js +3 -0
  469. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_8c581cd9._.js +3 -0
  470. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_91d25d41._.js +3 -0
  471. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_992cf6c5._.js +3 -0
  472. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_9f4c00b5._.js +4 -0
  473. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard__next-internal_server_app_(dashboard)_admin_page_actions_f99f8aba.js +3 -0
  474. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard__next-internal_server_app_(dashboard)_cloud_page_actions_5ff04aeb.js +3 -0
  475. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard__next-internal_server_app_(dashboard)_memory_page_actions_4529165f.js +3 -0
  476. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard__next-internal_server_app_(dashboard)_overview_page_actions_4a244b02.js +3 -0
  477. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard__next-internal_server_app_(dashboard)_protection_page_actions_4229fd3d.js +3 -0
  478. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard__next-internal_server_app_(dashboard)_settings_page_actions_aa1f9866.js +3 -0
  479. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard__next-internal_server_app_(dashboard)_xray_page_actions_c6ca6ce9.js +3 -0
  480. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_a0a7f554._.js +4 -0
  481. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_a3053031._.js +3 -0
  482. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_a38f5767._.js +3 -0
  483. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_a3cc94bf._.js +4 -0
  484. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_b1850b4f._.js +3 -0
  485. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_b4e15446._.js +4 -0
  486. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_bc44a6f5._.js +4 -0
  487. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_c06ef3e8._.js +3 -0
  488. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_c219bf07._.js +11 -0
  489. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_cb692f5d._.js +4 -0
  490. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_ccbe7478._.js +3 -0
  491. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_d2ab3dee._.js +3 -0
  492. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_d5fc66fc._.js +3 -0
  493. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_dd1ddeb1._.js +3 -0
  494. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/{dashboard_1cd9d700._.js → dashboard_dd70a70e._.js} +2 -2
  495. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_ebc28872._.js +3 -0
  496. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_f6813b70._.js +3 -0
  497. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_f89c6dde._.js +4 -0
  498. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_fa4d9b7f._.js +4 -0
  499. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_fb667e64._.js +3 -0
  500. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_29acd7a4._.js +3 -0
  501. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_error_tsx_2301e8fd._.js +3 -0
  502. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_components_protection_ProtectionOverview_tsx_54554a97._.js +3 -0
  503. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_components_settings_SettingsView_tsx_16dc83a7._.js +3 -0
  504. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_components_xray_XRayOverview_tsx_ceba698e._.js +3 -0
  505. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_lib_3f1490a1._.js +3 -0
  506. package/dashboard/.next/standalone/dashboard/.next/server/middleware-build-manifest.js +6 -4
  507. package/dashboard/.next/standalone/dashboard/.next/server/next-font-manifest.js +1 -1
  508. package/dashboard/.next/standalone/dashboard/.next/server/next-font-manifest.json +76 -0
  509. package/dashboard/.next/standalone/dashboard/.next/server/pages/404.html +1 -1
  510. package/dashboard/.next/standalone/dashboard/.next/server/pages/500.html +2 -2
  511. package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.js +1 -1
  512. package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.json +1 -1
  513. package/dashboard/.next/standalone/dashboard/.next/static/chunks/102f894cc892994d.js +1 -0
  514. package/dashboard/.next/standalone/dashboard/.next/static/chunks/1482af194911d5e7.js +1 -0
  515. package/dashboard/.next/standalone/dashboard/.next/static/chunks/2c2a280eeaed7ed2.js +1 -0
  516. package/dashboard/.next/standalone/dashboard/.next/static/chunks/302ad459a0e5c4ba.js +1 -0
  517. package/dashboard/.next/standalone/dashboard/.next/static/chunks/344b86872b9c4525.js +9 -0
  518. package/dashboard/.next/standalone/dashboard/.next/static/chunks/364656baa57adaa7.js +1 -0
  519. package/dashboard/.next/standalone/dashboard/.next/static/chunks/417032eeb2cd875f.js +1 -0
  520. package/dashboard/.next/standalone/dashboard/.next/static/chunks/43d761df92da7cb6.js +1 -0
  521. package/dashboard/.next/standalone/dashboard/.next/static/chunks/4ddb24d8ce3b8617.js +1 -0
  522. package/dashboard/.next/standalone/dashboard/.next/static/chunks/5274a6127d41c42c.js +1 -0
  523. package/dashboard/.next/standalone/dashboard/.next/static/chunks/52843253e4b833a5.js +1 -0
  524. package/dashboard/.next/standalone/dashboard/.next/static/chunks/{e007ff86847a4042.js → 8a5b61fd5e1bbcfa.js} +1 -1
  525. package/dashboard/.next/standalone/dashboard/.next/static/chunks/8eaf3adbd52b96d5.css +3 -0
  526. package/dashboard/.next/standalone/dashboard/.next/static/chunks/927fe0465516b94a.js +1 -0
  527. package/dashboard/.next/standalone/dashboard/.next/static/chunks/99a618b860658c5c.js +1 -0
  528. package/dashboard/.next/standalone/dashboard/.next/static/chunks/9e56d1f8f4d7adcb.js +4 -0
  529. package/dashboard/.next/standalone/dashboard/.next/static/chunks/a18776eadc9ef21a.js +1 -0
  530. package/dashboard/.next/standalone/dashboard/.next/static/chunks/abc5967c868b0fe9.js +1 -0
  531. package/dashboard/.next/standalone/dashboard/.next/static/chunks/b31e08a78b0cb6fb.js +1 -0
  532. package/dashboard/.next/standalone/dashboard/.next/static/chunks/b4b3fb5729bead7e.js +1 -0
  533. package/dashboard/.next/standalone/dashboard/.next/static/chunks/c2ccb1c0ed7b2af2.js +1 -0
  534. package/dashboard/.next/standalone/dashboard/.next/static/chunks/cbc2e6ffcad6e91c.js +1 -0
  535. package/dashboard/.next/standalone/dashboard/.next/static/chunks/d2f861595d6a41df.js +1 -0
  536. package/dashboard/.next/standalone/dashboard/.next/static/chunks/{215ce64499260c25.js → d334b69bff7779be.js} +1 -1
  537. package/dashboard/.next/standalone/dashboard/.next/static/chunks/d878b929b21636c4.js +1 -0
  538. package/dashboard/.next/standalone/dashboard/.next/static/chunks/d9ad4c35fc865415.js +1 -0
  539. package/dashboard/.next/standalone/dashboard/.next/static/chunks/e281719dbabcca1d.js +2 -0
  540. package/dashboard/.next/standalone/dashboard/.next/static/chunks/turbopack-79214717b23f7452.js +4 -0
  541. package/dashboard/.next/standalone/dashboard/package.json +1 -0
  542. package/dist/api/events.d.ts +1 -1
  543. package/dist/api/routes/admin.js +101 -7
  544. package/dist/api/routes/graph.js +3 -2
  545. package/dist/api/routes/memories.js +24 -5
  546. package/dist/api/routes/system.js +11 -1
  547. package/dist/api/routes/xray-findings.d.ts +4 -0
  548. package/dist/api/routes/xray-findings.js +57 -0
  549. package/dist/api/routes/xray.d.ts +4 -0
  550. package/dist/api/routes/xray.js +358 -0
  551. package/dist/api/visualization-server.js +23 -1
  552. package/dist/xray/activity.d.ts +87 -0
  553. package/dist/xray/activity.js +256 -0
  554. package/dist/xray/dir-scanner.js +48 -2
  555. package/dist/xray/file-scanner.js +42 -19
  556. package/dist/xray/findings-store.d.ts +56 -0
  557. package/dist/xray/findings-store.js +173 -0
  558. package/dist/xray/guidance.d.ts +26 -0
  559. package/dist/xray/guidance.js +180 -0
  560. package/dist/xray/index.js +21 -0
  561. package/dist/xray/preinstall.js +79 -0
  562. package/dist/xray/types.d.ts +19 -0
  563. package/dist/xray/watch.js +83 -5
  564. package/package.json +1 -1
  565. package/plugins/openclaw/dist/openclaw.plugin.json +1 -1
  566. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/9f1d4_next_dist_e83b0b39._.js +0 -6
  567. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__1837adce._.js +0 -3
  568. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__3b976911._.js +0 -3
  569. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__536fb178._.js +0 -3
  570. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__dd62b66f._.js +0 -3
  571. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__e7b9112f._.js +0 -3
  572. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_19978329._.js +0 -3
  573. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_3051539d._.js +0 -11
  574. package/dashboard/.next/standalone/dashboard/.next/static/chunks/2473c16c0c2f6b5f.css +0 -2
  575. package/dashboard/.next/standalone/dashboard/.next/static/chunks/3c430292ca8ddc5f.css +0 -1
  576. package/dashboard/.next/standalone/dashboard/.next/static/chunks/4c20fb97ba4556e7.js +0 -1
  577. package/dashboard/.next/standalone/dashboard/.next/static/chunks/64ee9622541d967c.js +0 -1
  578. package/dashboard/.next/standalone/dashboard/.next/static/chunks/6ba7a5c1a80a6791.js +0 -1
  579. package/dashboard/.next/standalone/dashboard/.next/static/chunks/7d08316952ccdcef.js +0 -5
  580. package/dashboard/.next/standalone/dashboard/.next/static/chunks/a2549232b06fdb76.js +0 -842
  581. package/dashboard/.next/standalone/dashboard/.next/static/chunks/b3ac7aa47461e043.js +0 -3
  582. package/dashboard/.next/standalone/dashboard/.next/static/chunks/d3d8171bf50ef87e.js +0 -1
  583. package/dashboard/.next/standalone/dashboard/.next/static/chunks/da64d159c042f5ae.js +0 -1
  584. package/dashboard/.next/standalone/dashboard/.next/static/chunks/e8456c3e5fe1c1d8.js +0 -1
  585. package/dashboard/.next/standalone/dashboard/.next/static/chunks/ec55aacd8af83909.js +0 -1
  586. package/dashboard/.next/standalone/dashboard/.next/static/chunks/f772b169c536121a.js +0 -9
  587. package/dashboard/.next/standalone/dashboard/.next/static/chunks/turbopack-c2d84e7d37269ac1.js +0 -4
  588. /package/dashboard/.next/standalone/dashboard/.next/static/{iirFNn01-fptKDNjFObe- → jgtHmh7zpEVcqlYNM0gvu}/_buildManifest.js +0 -0
  589. /package/dashboard/.next/standalone/dashboard/.next/static/{iirFNn01-fptKDNjFObe- → jgtHmh7zpEVcqlYNM0gvu}/_clientMiddlewareManifest.json +0 -0
  590. /package/dashboard/.next/standalone/dashboard/.next/static/{iirFNn01-fptKDNjFObe- → jgtHmh7zpEVcqlYNM0gvu}/_ssgManifest.js +0 -0
@@ -0,0 +1,57 @@
1
+ import { listFindings, getFinding, updateFindingStatus, deleteFinding, quarantineFile, getStats, } from '../../xray/findings-store.js';
2
+ import { getGuidance, isLikelySystemFile } from '../../xray/guidance.js';
3
+ /** Enrich a finding with guidance and system-file flag */
4
+ function enrichFinding(f) {
5
+ const guidance = getGuidance(f.category, f.severity);
6
+ const systemFile = isLikelySystemFile(f.file || f.target);
7
+ return { ...f, guidance, systemFile };
8
+ }
9
+ export function registerXRayFindingRoutes(app, requireNotLocked) {
10
+ // List findings with optional filters
11
+ app.get('/api/xray/findings', (req, res) => {
12
+ const status = req.query.status;
13
+ const target = req.query.target;
14
+ const severity = req.query.severity;
15
+ const limit = Number(req.query.limit) || 100;
16
+ const findings = listFindings({ status, target, severity, limit }).map(enrichFinding);
17
+ res.json({ findings });
18
+ });
19
+ // Get finding stats
20
+ app.get('/api/xray/findings/stats', (_req, res) => {
21
+ res.json(getStats());
22
+ });
23
+ // Get single finding
24
+ app.get('/api/xray/findings/:id', (req, res) => {
25
+ const finding = getFinding(String(req.params.id));
26
+ if (!finding)
27
+ return res.status(404).json({ error: 'Finding not found' });
28
+ res.json({ finding: enrichFinding(finding) });
29
+ });
30
+ // Update finding status (acknowledge, ignore, resolve)
31
+ app.patch('/api/xray/findings/:id', requireNotLocked, (req, res) => {
32
+ const { status, note } = req.body;
33
+ if (!status || !['reviewed', 'ignored', 'resolved'].includes(status)) {
34
+ return res.status(400).json({ error: 'status must be one of: reviewed, ignored, resolved' });
35
+ }
36
+ const updated = updateFindingStatus(String(req.params.id), status, note);
37
+ if (!updated)
38
+ return res.status(404).json({ error: 'Finding not found' });
39
+ res.json({ finding: updated });
40
+ });
41
+ // Quarantine the file associated with a finding
42
+ app.post('/api/xray/findings/:id/quarantine', requireNotLocked, (req, res) => {
43
+ const { note } = req.body;
44
+ const result = quarantineFile(String(req.params.id), note);
45
+ if (result.error && !result.moved) {
46
+ return res.status(result.error === 'Finding not found' ? 404 : 400).json(result);
47
+ }
48
+ res.json(result);
49
+ });
50
+ // Delete a finding record
51
+ app.delete('/api/xray/findings/:id', requireNotLocked, (req, res) => {
52
+ const deleted = deleteFinding(String(req.params.id));
53
+ if (!deleted)
54
+ return res.status(404).json({ error: 'Finding not found' });
55
+ res.json({ deleted: true });
56
+ });
57
+ }
@@ -0,0 +1,4 @@
1
+ import type { Express, Request, Response } from 'express';
2
+ type Middleware = (_req: Request, res: Response, next: (err?: unknown) => void) => void;
3
+ export declare function registerXRayRoutes(app: Express, requireNotLocked: Middleware): void;
4
+ export {};
@@ -0,0 +1,358 @@
1
+ import { execFile, spawn } from 'child_process';
2
+ import fs from 'fs';
3
+ import os from 'os';
4
+ import path from 'path';
5
+ import { getRequiredTier, isFeatureEnabled, requireFeature, FeatureGatedError } from '../../license/gate.js';
6
+ import { scanDirectory } from '../../xray/dir-scanner.js';
7
+ import { scanFile } from '../../xray/file-scanner.js';
8
+ import { inspectNpmPackage } from '../../xray/npm-inspector.js';
9
+ import { calculateTrustScore } from '../../xray/trust-score.js';
10
+ import { appendActivity, appendHistory, createHistoryEntry, getHistoryEntry, readActivity, readHistory, readWatchSessions, } from '../../xray/activity.js';
11
+ import { addFindings } from '../../xray/findings-store.js';
12
+ function runAppleScript(lines) {
13
+ return new Promise((resolve, reject) => {
14
+ execFile('osascript', lines.flatMap((line) => ['-e', line]), (error, stdout, stderr) => {
15
+ if (error) {
16
+ const message = stderr?.trim() || error.message;
17
+ reject(new Error(message));
18
+ return;
19
+ }
20
+ resolve(stdout.trim());
21
+ });
22
+ });
23
+ }
24
+ function detectTargetType(target) {
25
+ if (target.startsWith('.') || target.startsWith('/') || target.startsWith('~')) {
26
+ const resolved = path.resolve(target);
27
+ const stat = fs.statSync(resolved);
28
+ return stat.isDirectory() ? 'dir' : 'file';
29
+ }
30
+ if (fs.existsSync(target)) {
31
+ const stat = fs.statSync(target);
32
+ return stat.isDirectory() ? 'dir' : 'file';
33
+ }
34
+ return 'npm';
35
+ }
36
+ function toFeatureGateBody(err) {
37
+ return {
38
+ error: 'Feature requires upgrade',
39
+ code: 'FEATURE_GATED',
40
+ feature: err.feature,
41
+ requiredTier: err.requiredTier,
42
+ upgradeUrl: 'https://shieldcortex.ai/pricing',
43
+ };
44
+ }
45
+ function matchesText(value, query) {
46
+ if (!query)
47
+ return true;
48
+ return value.toLowerCase().includes(query.toLowerCase());
49
+ }
50
+ function filterHistory(entries, req) {
51
+ const risk = typeof req.query.risk === 'string' ? req.query.risk.toUpperCase() : undefined;
52
+ const targetType = typeof req.query.targetType === 'string' ? req.query.targetType : undefined;
53
+ const deep = typeof req.query.deep === 'string' ? req.query.deep === 'true' : undefined;
54
+ const search = typeof req.query.search === 'string' ? req.query.search.trim() : undefined;
55
+ return entries.filter((entry) => {
56
+ if (risk && entry.riskLevel !== risk)
57
+ return false;
58
+ if (targetType && entry.targetType !== targetType)
59
+ return false;
60
+ if (deep !== undefined && entry.deepScan !== deep)
61
+ return false;
62
+ if (!matchesText(entry.target, search))
63
+ return false;
64
+ return true;
65
+ });
66
+ }
67
+ function filterActivity(entries, req) {
68
+ const kind = typeof req.query.kind === 'string' ? req.query.kind : undefined;
69
+ const status = typeof req.query.status === 'string' ? req.query.status : undefined;
70
+ const risk = typeof req.query.risk === 'string' ? req.query.risk.toUpperCase() : undefined;
71
+ const targetType = typeof req.query.targetType === 'string' ? req.query.targetType : undefined;
72
+ const search = typeof req.query.search === 'string' ? req.query.search.trim() : undefined;
73
+ return entries.filter((entry) => {
74
+ if (kind && entry.kind !== kind)
75
+ return false;
76
+ if (status && entry.status !== status)
77
+ return false;
78
+ if (risk && entry.riskLevel !== risk)
79
+ return false;
80
+ if (targetType && entry.targetType !== targetType)
81
+ return false;
82
+ if (!matchesText(entry.target, search))
83
+ return false;
84
+ return true;
85
+ });
86
+ }
87
+ function filterWatchSessions(entries, req) {
88
+ const state = typeof req.query.state === 'string' ? req.query.state : undefined;
89
+ const search = typeof req.query.search === 'string' ? req.query.search.trim() : undefined;
90
+ const deep = typeof req.query.deep === 'string' ? req.query.deep === 'true' : undefined;
91
+ return entries.filter((entry) => {
92
+ if (state && state !== 'all' && entry.state !== state)
93
+ return false;
94
+ if (deep !== undefined && entry.deepScan !== deep)
95
+ return false;
96
+ if (!matchesText(entry.root, search))
97
+ return false;
98
+ return true;
99
+ });
100
+ }
101
+ export function registerXRayRoutes(app, requireNotLocked) {
102
+ app.post('/api/xray/pick-target', requireNotLocked, async (req, res) => {
103
+ try {
104
+ if (os.platform() !== 'darwin') {
105
+ return res.status(501).json({ error: 'Native picker is currently implemented for macOS only' });
106
+ }
107
+ const kind = req.body?.kind === 'folder' ? 'folder' : 'file';
108
+ const script = kind === 'folder'
109
+ ? [
110
+ 'try',
111
+ 'set chosenFolder to choose folder with prompt "Choose a folder to scan with ShieldCortex X-Ray"',
112
+ 'POSIX path of chosenFolder',
113
+ 'on error number -128',
114
+ 'return ""',
115
+ 'end try',
116
+ ]
117
+ : [
118
+ 'try',
119
+ 'set chosenFile to choose file with prompt "Choose a file to scan with ShieldCortex X-Ray"',
120
+ 'POSIX path of chosenFile',
121
+ 'on error number -128',
122
+ 'return ""',
123
+ 'end try',
124
+ ];
125
+ const selectedPath = await runAppleScript(script);
126
+ res.json({ path: selectedPath || null, kind });
127
+ }
128
+ catch (error) {
129
+ res.status(500).json({ error: error.message });
130
+ }
131
+ });
132
+ app.get('/api/xray/history', (req, res) => {
133
+ const entries = filterHistory(readHistory(), req);
134
+ res.json({ entries });
135
+ });
136
+ app.get('/api/xray/history/:id', (req, res) => {
137
+ const entry = getHistoryEntry(String(req.params.id));
138
+ if (!entry) {
139
+ return res.status(404).json({ error: 'Scan history entry not found' });
140
+ }
141
+ res.json({ entry });
142
+ });
143
+ app.get('/api/xray/activity', (req, res) => {
144
+ const limit = Math.max(1, Math.min(100, Number(req.query.limit) || 25));
145
+ const entries = filterActivity(readActivity(100), req).slice(0, limit);
146
+ res.json({ entries });
147
+ });
148
+ app.get('/api/xray/watch-sessions', (req, res) => {
149
+ const limit = Math.max(1, Math.min(50, Number(req.query.limit) || 20));
150
+ const entries = filterWatchSessions(readWatchSessions(), req).slice(0, limit);
151
+ res.json({ entries });
152
+ });
153
+ app.get('/api/xray/status', (_req, res) => {
154
+ const history = readHistory();
155
+ const activity = readActivity(12);
156
+ const watchSessions = readWatchSessions();
157
+ const recentBlocks = activity.filter((entry) => entry.status === 'blocked').length;
158
+ res.json({
159
+ capabilities: {
160
+ localScan: true,
161
+ watchMode: true,
162
+ preinstallHook: true,
163
+ npmInspection: isFeatureEnabled('xray_deep'),
164
+ deepScan: isFeatureEnabled('xray_deep'),
165
+ requiredTier: getRequiredTier('xray_deep'),
166
+ },
167
+ summary: {
168
+ scans: history.length,
169
+ blockedEvents: recentBlocks,
170
+ highRiskScans: history.filter((entry) => entry.riskLevel === 'HIGH' || entry.riskLevel === 'CRITICAL').length,
171
+ lastScannedAt: history[0]?.scannedAt ?? null,
172
+ activeWatchRoots: watchSessions.filter((entry) => entry.active).length,
173
+ staleWatchRoots: watchSessions.filter((entry) => entry.state === 'stale').length,
174
+ watchSessions: watchSessions.length,
175
+ },
176
+ });
177
+ });
178
+ app.post('/api/xray/scan', requireNotLocked, async (req, res) => {
179
+ try {
180
+ const target = typeof req.body?.target === 'string' ? req.body.target.trim() : '';
181
+ const deep = req.body?.deep === true;
182
+ if (!target) {
183
+ return res.status(400).json({ error: '"target" is required' });
184
+ }
185
+ if (deep) {
186
+ try {
187
+ requireFeature('xray_deep');
188
+ }
189
+ catch (err) {
190
+ if (err instanceof FeatureGatedError) {
191
+ return res.status(403).json(toFeatureGateBody(err));
192
+ }
193
+ throw err;
194
+ }
195
+ }
196
+ const targetType = detectTargetType(target);
197
+ if (targetType === 'npm' && !isFeatureEnabled('xray_deep')) {
198
+ return res.status(403).json({
199
+ error: 'npm registry inspection requires a Pro licence.',
200
+ code: 'FEATURE_GATED',
201
+ feature: 'xray_deep',
202
+ requiredTier: 'pro',
203
+ upgradeUrl: 'https://shieldcortex.ai/pricing',
204
+ });
205
+ }
206
+ let result;
207
+ if (targetType === 'npm') {
208
+ result = await inspectNpmPackage(target, deep);
209
+ }
210
+ else {
211
+ const resolved = path.resolve(target);
212
+ if (!fs.existsSync(resolved)) {
213
+ return res.status(404).json({ error: `Target not found: ${resolved}` });
214
+ }
215
+ const stat = fs.statSync(resolved);
216
+ if (stat.isDirectory()) {
217
+ result = await scanDirectory(resolved, deep);
218
+ }
219
+ else if (stat.isFile()) {
220
+ const findings = await scanFile(resolved, deep);
221
+ const { score, riskLevel } = calculateTrustScore(findings);
222
+ result = {
223
+ target: resolved,
224
+ trustScore: score,
225
+ riskLevel,
226
+ findings,
227
+ filesScanned: 1,
228
+ scannedAt: new Date(),
229
+ deepScan: deep,
230
+ };
231
+ }
232
+ else {
233
+ return res.status(400).json({ error: 'Target must be a file, directory, or npm package' });
234
+ }
235
+ }
236
+ const historyEntry = createHistoryEntry(result, targetType);
237
+ appendHistory(historyEntry);
238
+ const persistedFindings = result.findings.length > 0
239
+ ? addFindings(historyEntry.id, 'scan', result.target, result.findings)
240
+ : [];
241
+ appendActivity({
242
+ kind: 'scan',
243
+ status: result.findings.length === 0 ? 'pass' : result.riskLevel === 'LOW' ? 'warn' : 'detected',
244
+ target: result.target,
245
+ targetType,
246
+ deepScan: result.deepScan,
247
+ trustScore: result.trustScore,
248
+ riskLevel: result.riskLevel,
249
+ filesScanned: result.filesScanned,
250
+ findingCount: result.findings.length,
251
+ scannedAt: result.scannedAt.toISOString(),
252
+ summary: result.findings.length === 0
253
+ ? 'No findings detected'
254
+ : `${result.findings.length} findings across ${result.filesScanned} files`,
255
+ });
256
+ res.json({
257
+ result: {
258
+ ...result,
259
+ scannedAt: result.scannedAt.toISOString(),
260
+ },
261
+ persistedFindings,
262
+ });
263
+ }
264
+ catch (error) {
265
+ res.status(500).json({ error: error.message });
266
+ }
267
+ });
268
+ // ── Watch mode management (start/stop from dashboard) ────────
269
+ const activeWatchers = new Map();
270
+ const MAX_CONCURRENT_WATCHERS = 10;
271
+ app.post('/api/xray/watch/start', requireNotLocked, async (req, res) => {
272
+ try {
273
+ const target = typeof req.body?.target === 'string' ? req.body.target.trim() : '';
274
+ const deep = req.body?.deep === true;
275
+ if (!target) {
276
+ return res.status(400).json({ error: '"target" is required' });
277
+ }
278
+ const resolved = path.resolve(target);
279
+ if (!fs.existsSync(resolved)) {
280
+ return res.status(400).json({ error: `Target does not exist: ${resolved}` });
281
+ }
282
+ const stat = fs.statSync(resolved);
283
+ if (!stat.isDirectory()) {
284
+ return res.status(400).json({ error: 'Watch mode only works on directories' });
285
+ }
286
+ // Block overly broad paths that would trigger macOS permission dialogs
287
+ const dangerousPaths = ['/', '/Users', '/tmp', '/private', '/var', '/System', '/Applications'];
288
+ const homedir = os.homedir();
289
+ if (dangerousPaths.includes(resolved) || resolved === homedir) {
290
+ return res.status(400).json({
291
+ error: `Watching "${resolved}" is too broad — it would scan system files and trigger OS permission dialogs. Watch a specific project directory instead, e.g. ${homedir}/Development/my-project`,
292
+ });
293
+ }
294
+ // Check if already watching this directory
295
+ if (activeWatchers.has(resolved)) {
296
+ return res.status(409).json({ error: 'Already watching this directory', root: resolved });
297
+ }
298
+ // Limit concurrent watchers to prevent DoS
299
+ if (activeWatchers.size >= MAX_CONCURRENT_WATCHERS) {
300
+ return res.status(429).json({
301
+ error: `Maximum ${MAX_CONCURRENT_WATCHERS} concurrent watchers reached. Stop an existing watcher first.`,
302
+ activeCount: activeWatchers.size,
303
+ });
304
+ }
305
+ // Spawn shieldcortex xray --watch as a detached child
306
+ const args = ['xray', resolved, '--watch'];
307
+ if (deep)
308
+ args.push('--deep');
309
+ const shieldcortexBin = process.argv[1]?.replace(/\/dist\/.*$/, '/dist/index.js') || 'shieldcortex';
310
+ const child = spawn(process.execPath, [shieldcortexBin, ...args], {
311
+ detached: true,
312
+ stdio: 'ignore',
313
+ env: { ...process.env },
314
+ });
315
+ child.unref();
316
+ activeWatchers.set(resolved, child);
317
+ child.on('exit', () => {
318
+ activeWatchers.delete(resolved);
319
+ });
320
+ res.json({
321
+ started: true,
322
+ root: resolved,
323
+ deep,
324
+ pid: child.pid,
325
+ });
326
+ }
327
+ catch (error) {
328
+ res.status(500).json({ error: error.message });
329
+ }
330
+ });
331
+ app.post('/api/xray/watch/stop', requireNotLocked, (req, res) => {
332
+ try {
333
+ const target = typeof req.body?.target === 'string' ? req.body.target.trim() : '';
334
+ if (!target) {
335
+ return res.status(400).json({ error: '"target" is required' });
336
+ }
337
+ const resolved = path.resolve(target);
338
+ const child = activeWatchers.get(resolved);
339
+ if (!child) {
340
+ return res.status(404).json({ error: 'No active watcher for this directory', root: resolved });
341
+ }
342
+ child.kill('SIGTERM');
343
+ activeWatchers.delete(resolved);
344
+ res.json({ stopped: true, root: resolved });
345
+ }
346
+ catch (error) {
347
+ res.status(500).json({ error: error.message });
348
+ }
349
+ });
350
+ app.get('/api/xray/watch/active', (_req, res) => {
351
+ const watchers = Array.from(activeWatchers.entries()).map(([root, child]) => ({
352
+ root,
353
+ pid: child.pid,
354
+ active: !child.killed,
355
+ }));
356
+ res.json({ watchers });
357
+ });
358
+ }
@@ -33,7 +33,10 @@ import { registerIncidentRoutes } from './routes/incidents.js';
33
33
  import { registerMemoryRoutes } from './routes/memories.js';
34
34
  import { registerRecallRoutes } from './routes/recall.js';
35
35
  import { registerSystemRoutes } from './routes/system.js';
36
+ import { registerXRayRoutes } from './routes/xray.js';
37
+ import { registerXRayFindingRoutes } from './routes/xray-findings.js';
36
38
  import { createIronDomeRouteGuard } from './iron-dome-route-guard.js';
39
+ import { readAndClearDetectionEvents } from '../xray/activity.js';
37
40
  const PORT = process.env.PORT || 3001;
38
41
  /**
39
42
  * In-memory counters for FEATURE_GATED (403) responses per feature.
@@ -175,6 +178,8 @@ export function startVisualizationServer(dbPath) {
175
178
  requireIronDomeAction: createIronDomeRouteGuard,
176
179
  });
177
180
  registerRecallRoutes(app, requireNotLocked);
181
+ registerXRayRoutes(app, requireNotLocked);
182
+ registerXRayFindingRoutes(app, requireNotLocked);
178
183
  registerSystemRoutes(app, {
179
184
  broadcast,
180
185
  clients,
@@ -612,6 +617,10 @@ export function startVisualizationServer(dbPath) {
612
617
  requireProFeature,
613
618
  requireIronDomeAction: createIronDomeRouteGuard,
614
619
  });
620
+ // Catch-all for unmatched API routes — return JSON instead of Express HTML 404
621
+ app.all('/api/*', (_req, res) => {
622
+ res.status(404).json({ error: 'Not found' });
623
+ });
615
624
  // ============================================
616
625
  // WEBSOCKET SERVER
617
626
  // ============================================
@@ -684,7 +693,7 @@ export function startVisualizationServer(dbPath) {
684
693
  });
685
694
  // Decay tick - update clients with decay changes every 30 seconds
686
695
  let decayTickCount = 0;
687
- setInterval(() => {
696
+ const decayTickInterval = setInterval(() => {
688
697
  const db = getDatabase();
689
698
  const rawRows = db.prepare('SELECT * FROM memories ORDER BY last_accessed DESC LIMIT 200').all();
690
699
  // Convert raw DB rows to Memory objects (snake_case -> camelCase)
@@ -755,6 +764,17 @@ export function startVisualizationServer(dbPath) {
755
764
  console.error('[Events] Cleanup error:', error);
756
765
  }
757
766
  }, 60 * 60 * 1000);
767
+ // Poll for X-Ray watch detections every 3 seconds and broadcast to WebSocket clients
768
+ const xrayDetectionInterval = setInterval(() => {
769
+ const events = readAndClearDetectionEvents();
770
+ for (const event of events) {
771
+ broadcast({
772
+ type: 'xray_detection',
773
+ timestamp: event.timestamp || new Date().toISOString(),
774
+ data: event,
775
+ });
776
+ }
777
+ }, 3000);
758
778
  // ============================================
759
779
  // START SERVER
760
780
  // ============================================
@@ -768,8 +788,10 @@ export function startVisualizationServer(dbPath) {
768
788
  // Stop the brain worker
769
789
  brainWorker.stop();
770
790
  // Clear polling intervals
791
+ clearInterval(decayTickInterval);
771
792
  clearInterval(eventPollInterval);
772
793
  clearInterval(cleanupInterval);
794
+ clearInterval(xrayDetectionInterval);
773
795
  // Close WebSocket connections
774
796
  for (const client of clients) {
775
797
  client.close();
@@ -0,0 +1,87 @@
1
+ import type { XRayResult } from './types.js';
2
+ export type XRayTargetType = 'npm' | 'file' | 'dir';
3
+ export type XRayActivityKind = 'scan' | 'watch' | 'preinstall';
4
+ export type XRayActivityStatus = 'pass' | 'warn' | 'blocked' | 'detected';
5
+ export interface XRayHistoryEntry {
6
+ id: string;
7
+ target: string;
8
+ targetType: XRayTargetType;
9
+ deepScan: boolean;
10
+ trustScore: number;
11
+ riskLevel: XRayResult['riskLevel'];
12
+ filesScanned: number;
13
+ findingCount: number;
14
+ scannedAt: string;
15
+ result: {
16
+ target: string;
17
+ trustScore: number;
18
+ riskLevel: XRayResult['riskLevel'];
19
+ findings: XRayResult['findings'];
20
+ filesScanned: number;
21
+ scannedAt: string;
22
+ deepScan: boolean;
23
+ };
24
+ }
25
+ export interface XRayActivityEntry {
26
+ id: string;
27
+ kind: XRayActivityKind;
28
+ status: XRayActivityStatus;
29
+ target: string;
30
+ targetType: XRayTargetType;
31
+ deepScan: boolean;
32
+ trustScore: number;
33
+ riskLevel: XRayResult['riskLevel'];
34
+ filesScanned: number;
35
+ findingCount: number;
36
+ scannedAt: string;
37
+ summary: string;
38
+ }
39
+ export interface XRayWatchSessionEntry {
40
+ id: string;
41
+ root: string;
42
+ deepScan: boolean;
43
+ startedAt: string;
44
+ lastHeartbeatAt: string;
45
+ endedAt: string | null;
46
+ active: boolean;
47
+ state: 'active' | 'stale' | 'ended';
48
+ changesDetected: number;
49
+ findingsDetected: number;
50
+ highestRiskLevel: XRayResult['riskLevel'];
51
+ lastEventAt: string | null;
52
+ lastEventSummary: string | null;
53
+ }
54
+ export declare function serializeXRayResult(result: XRayResult): {
55
+ target: string;
56
+ trustScore: number;
57
+ riskLevel: "LOW" | "MEDIUM" | "HIGH" | "CRITICAL" | "SAFE";
58
+ findings: import("./types.js").XRayFinding[];
59
+ filesScanned: number;
60
+ scannedAt: string;
61
+ deepScan: boolean;
62
+ };
63
+ export declare function createHistoryEntry(result: XRayResult, targetType: XRayTargetType): XRayHistoryEntry;
64
+ export declare function readHistory(): XRayHistoryEntry[];
65
+ export declare function getHistoryEntry(id: string): XRayHistoryEntry | null;
66
+ export declare function appendHistory(entry: XRayHistoryEntry): void;
67
+ export declare function appendActivity(entry: Omit<XRayActivityEntry, 'id'>): XRayActivityEntry;
68
+ export declare function readActivity(limit?: number): XRayActivityEntry[];
69
+ export declare function readWatchSessions(): XRayWatchSessionEntry[];
70
+ export declare function startWatchSession(root: string, deepScan: boolean): XRayWatchSessionEntry;
71
+ export declare function heartbeatWatchSession(sessionId: string): XRayWatchSessionEntry | null;
72
+ export declare function recordWatchSessionEvent(sessionId: string, payload: {
73
+ findingsDetected: number;
74
+ riskLevel: XRayResult['riskLevel'];
75
+ summary: string;
76
+ scannedAt?: string;
77
+ }): XRayWatchSessionEntry | null;
78
+ export declare function endWatchSession(sessionId: string): XRayWatchSessionEntry | null;
79
+ export declare const DETECTION_EVENTS_FILE: string;
80
+ export declare function emitDetectionEvent(event: {
81
+ target: string;
82
+ findingCount: number;
83
+ riskLevel: string;
84
+ severity: string;
85
+ summary: string;
86
+ }): void;
87
+ export declare function readAndClearDetectionEvents(): Array<Record<string, unknown>>;