shieldcortex 4.16.0 → 4.18.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 (419) hide show
  1. package/README.md +49 -0
  2. package/dashboard/.next/standalone/dashboard/.next/BUILD_ID +1 -1
  3. package/dashboard/.next/standalone/dashboard/.next/app-path-routes-manifest.json +1 -0
  4. package/dashboard/.next/standalone/dashboard/.next/build-manifest.json +4 -4
  5. package/dashboard/.next/standalone/dashboard/.next/prerender-manifest.json +27 -3
  6. package/dashboard/.next/standalone/dashboard/.next/routes-manifest.json +6 -0
  7. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/admin/page/build-manifest.json +2 -2
  8. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/admin/page/next-font-manifest.json +2 -2
  9. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/admin/page.js.nft.json +1 -1
  10. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/admin/page_client-reference-manifest.js +1 -1
  11. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/cloud/page/build-manifest.json +2 -2
  12. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/cloud/page/next-font-manifest.json +2 -2
  13. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/cloud/page.js.nft.json +1 -1
  14. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/cloud/page_client-reference-manifest.js +1 -1
  15. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/capture/page/build-manifest.json +2 -2
  16. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/capture/page/next-font-manifest.json +2 -2
  17. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/capture/page.js.nft.json +1 -1
  18. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/capture/page_client-reference-manifest.js +1 -1
  19. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/graph/page/build-manifest.json +2 -2
  20. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/graph/page/next-font-manifest.json +2 -2
  21. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/graph/page.js.nft.json +1 -1
  22. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/graph/page_client-reference-manifest.js +1 -1
  23. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/page/build-manifest.json +2 -2
  24. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/page/next-font-manifest.json +2 -2
  25. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/page.js.nft.json +1 -1
  26. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/page_client-reference-manifest.js +1 -1
  27. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/recall/page/build-manifest.json +2 -2
  28. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/recall/page/next-font-manifest.json +2 -2
  29. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/recall/page.js.nft.json +1 -1
  30. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/recall/page_client-reference-manifest.js +1 -1
  31. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/replay/page/app-paths-manifest.json +3 -0
  32. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/replay/page/build-manifest.json +18 -0
  33. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/replay/page/next-font-manifest.json +11 -0
  34. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/replay/page/react-loadable-manifest.json +1 -0
  35. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/replay/page/server-reference-manifest.json +4 -0
  36. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/replay/page.js +18 -0
  37. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/replay/page.js.map +5 -0
  38. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/replay/page.js.nft.json +1 -0
  39. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/replay/page_client-reference-manifest.js +2 -0
  40. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page/build-manifest.json +2 -2
  41. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page/next-font-manifest.json +2 -2
  42. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page.js.nft.json +1 -1
  43. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page_client-reference-manifest.js +1 -1
  44. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/timeline/page/build-manifest.json +2 -2
  45. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/timeline/page/next-font-manifest.json +2 -2
  46. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/timeline/page.js.nft.json +1 -1
  47. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/timeline/page_client-reference-manifest.js +1 -1
  48. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/overview/page/build-manifest.json +2 -2
  49. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/overview/page/next-font-manifest.json +2 -2
  50. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/overview/page.js.nft.json +1 -1
  51. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/overview/page_client-reference-manifest.js +1 -1
  52. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/audit/page/build-manifest.json +2 -2
  53. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/audit/page/next-font-manifest.json +2 -2
  54. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/audit/page.js.nft.json +1 -1
  55. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/audit/page_client-reference-manifest.js +1 -1
  56. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/intercepts/page/build-manifest.json +2 -2
  57. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/intercepts/page/next-font-manifest.json +2 -2
  58. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/intercepts/page.js.nft.json +1 -1
  59. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/intercepts/page_client-reference-manifest.js +1 -1
  60. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/iron-dome/page/build-manifest.json +2 -2
  61. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/iron-dome/page/next-font-manifest.json +2 -2
  62. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/iron-dome/page.js.nft.json +1 -1
  63. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/iron-dome/page_client-reference-manifest.js +1 -1
  64. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/page/build-manifest.json +2 -2
  65. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/page/next-font-manifest.json +2 -2
  66. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/page.js.nft.json +1 -1
  67. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/page_client-reference-manifest.js +1 -1
  68. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/policies/page/build-manifest.json +2 -2
  69. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/policies/page/next-font-manifest.json +2 -2
  70. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/policies/page.js.nft.json +1 -1
  71. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/policies/page_client-reference-manifest.js +1 -1
  72. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/quarantine/page/build-manifest.json +2 -2
  73. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/quarantine/page/next-font-manifest.json +2 -2
  74. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/quarantine/page.js.nft.json +1 -1
  75. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/quarantine/page_client-reference-manifest.js +1 -1
  76. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/settings/page/build-manifest.json +2 -2
  77. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/settings/page/next-font-manifest.json +2 -2
  78. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  79. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  80. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/page/build-manifest.json +2 -2
  81. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/page/next-font-manifest.json +2 -2
  82. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/page.js.nft.json +1 -1
  83. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/page_client-reference-manifest.js +1 -1
  84. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/xray/page/build-manifest.json +2 -2
  85. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/xray/page/next-font-manifest.json +2 -2
  86. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/xray/page.js.nft.json +1 -1
  87. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/xray/page_client-reference-manifest.js +1 -1
  88. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page/build-manifest.json +2 -2
  89. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page/next-font-manifest.json +2 -2
  90. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page.js.nft.json +1 -1
  91. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page_client-reference-manifest.js +1 -1
  92. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error/page/build-manifest.json +2 -2
  93. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error/page.js.nft.json +1 -1
  94. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  95. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.html +2 -2
  96. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.rsc +1 -1
  97. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  98. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  99. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  100. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  101. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  102. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found/page/build-manifest.json +2 -2
  103. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found/page/next-font-manifest.json +2 -2
  104. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found/page.js.nft.json +1 -1
  105. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  106. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.html +2 -2
  107. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.rsc +3 -3
  108. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  109. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  110. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  111. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  112. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  113. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -3
  114. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.html +1 -1
  115. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.rsc +11 -11
  116. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/!KGRhc2hib2FyZCk/admin/__PAGE__.segment.rsc +1 -1
  117. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/!KGRhc2hib2FyZCk/admin.segment.rsc +1 -1
  118. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -7
  119. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_full.segment.rsc +11 -11
  120. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_head.segment.rsc +1 -1
  121. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_index.segment.rsc +3 -3
  122. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_tree.segment.rsc +5 -5
  123. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.html +1 -1
  124. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.rsc +11 -11
  125. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/!KGRhc2hib2FyZCk/cloud/__PAGE__.segment.rsc +1 -1
  126. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/!KGRhc2hib2FyZCk/cloud.segment.rsc +1 -1
  127. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -7
  128. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_full.segment.rsc +11 -11
  129. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_head.segment.rsc +1 -1
  130. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_index.segment.rsc +3 -3
  131. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_tree.segment.rsc +5 -5
  132. package/dashboard/.next/standalone/dashboard/.next/server/app/index.html +1 -1
  133. package/dashboard/.next/standalone/dashboard/.next/server/app/index.rsc +5 -5
  134. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  135. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_full.segment.rsc +5 -5
  136. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_head.segment.rsc +1 -1
  137. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_index.segment.rsc +3 -3
  138. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_tree.segment.rsc +5 -5
  139. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.html +1 -1
  140. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.rsc +11 -11
  141. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory/capture/__PAGE__.segment.rsc +1 -1
  142. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory/capture.segment.rsc +1 -1
  143. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  144. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -7
  145. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_full.segment.rsc +11 -11
  146. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_head.segment.rsc +1 -1
  147. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_index.segment.rsc +3 -3
  148. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_tree.segment.rsc +5 -5
  149. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.html +1 -1
  150. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.rsc +11 -11
  151. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory/graph/__PAGE__.segment.rsc +1 -1
  152. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory/graph.segment.rsc +1 -1
  153. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  154. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -7
  155. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_full.segment.rsc +11 -11
  156. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_head.segment.rsc +1 -1
  157. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_index.segment.rsc +3 -3
  158. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_tree.segment.rsc +5 -5
  159. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.html +1 -1
  160. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.rsc +11 -11
  161. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory/recall/__PAGE__.segment.rsc +1 -1
  162. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory/recall.segment.rsc +1 -1
  163. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  164. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -7
  165. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_full.segment.rsc +11 -11
  166. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_head.segment.rsc +1 -1
  167. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_index.segment.rsc +3 -3
  168. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_tree.segment.rsc +5 -5
  169. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.html +9 -0
  170. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.meta +17 -0
  171. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.rsc +31 -0
  172. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/!KGRhc2hib2FyZCk/memory/replay/__PAGE__.segment.rsc +9 -0
  173. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/!KGRhc2hib2FyZCk/memory/replay.segment.rsc +4 -0
  174. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +4 -0
  175. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/!KGRhc2hib2FyZCk.segment.rsc +10 -0
  176. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/_full.segment.rsc +31 -0
  177. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/_head.segment.rsc +5 -0
  178. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/_index.segment.rsc +8 -0
  179. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/_tree.segment.rsc +5 -0
  180. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.html +1 -1
  181. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.rsc +11 -11
  182. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory/review/__PAGE__.segment.rsc +1 -1
  183. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory/review.segment.rsc +1 -1
  184. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  185. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -7
  186. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_full.segment.rsc +11 -11
  187. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_head.segment.rsc +1 -1
  188. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_index.segment.rsc +3 -3
  189. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_tree.segment.rsc +5 -5
  190. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.html +1 -1
  191. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.rsc +11 -11
  192. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory/timeline/__PAGE__.segment.rsc +1 -1
  193. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory/timeline.segment.rsc +1 -1
  194. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  195. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -7
  196. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_full.segment.rsc +11 -11
  197. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_head.segment.rsc +1 -1
  198. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_index.segment.rsc +3 -3
  199. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_tree.segment.rsc +5 -5
  200. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.html +2 -2
  201. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.rsc +13 -13
  202. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk/memory/__PAGE__.segment.rsc +2 -2
  203. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  204. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -7
  205. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_full.segment.rsc +13 -13
  206. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_head.segment.rsc +1 -1
  207. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_index.segment.rsc +3 -3
  208. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_tree.segment.rsc +5 -5
  209. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.html +2 -2
  210. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.rsc +12 -12
  211. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk/overview/__PAGE__.segment.rsc +2 -2
  212. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk/overview.segment.rsc +1 -1
  213. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -7
  214. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_full.segment.rsc +12 -12
  215. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_head.segment.rsc +1 -1
  216. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_index.segment.rsc +3 -3
  217. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_tree.segment.rsc +5 -5
  218. package/dashboard/.next/standalone/dashboard/.next/server/app/page/build-manifest.json +2 -2
  219. package/dashboard/.next/standalone/dashboard/.next/server/app/page/next-font-manifest.json +2 -2
  220. package/dashboard/.next/standalone/dashboard/.next/server/app/page.js.nft.json +1 -1
  221. package/dashboard/.next/standalone/dashboard/.next/server/app/page_client-reference-manifest.js +1 -1
  222. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.html +1 -1
  223. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.rsc +11 -11
  224. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection/audit/__PAGE__.segment.rsc +1 -1
  225. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection/audit.segment.rsc +1 -1
  226. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  227. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -7
  228. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_full.segment.rsc +11 -11
  229. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_head.segment.rsc +1 -1
  230. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_index.segment.rsc +3 -3
  231. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_tree.segment.rsc +5 -5
  232. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.html +1 -1
  233. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.rsc +11 -11
  234. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection/intercepts/__PAGE__.segment.rsc +1 -1
  235. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection/intercepts.segment.rsc +1 -1
  236. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  237. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -7
  238. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_full.segment.rsc +11 -11
  239. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_head.segment.rsc +1 -1
  240. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_index.segment.rsc +3 -3
  241. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_tree.segment.rsc +5 -5
  242. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.html +1 -1
  243. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.rsc +11 -11
  244. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection/iron-dome/__PAGE__.segment.rsc +1 -1
  245. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection/iron-dome.segment.rsc +1 -1
  246. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  247. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -7
  248. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_full.segment.rsc +11 -11
  249. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_head.segment.rsc +1 -1
  250. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_index.segment.rsc +3 -3
  251. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_tree.segment.rsc +5 -5
  252. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.html +1 -1
  253. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.rsc +11 -11
  254. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection/policies/__PAGE__.segment.rsc +1 -1
  255. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection/policies.segment.rsc +1 -1
  256. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  257. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -7
  258. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_full.segment.rsc +11 -11
  259. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_head.segment.rsc +1 -1
  260. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_index.segment.rsc +3 -3
  261. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_tree.segment.rsc +5 -5
  262. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.html +1 -1
  263. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.rsc +11 -11
  264. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection/quarantine/__PAGE__.segment.rsc +1 -1
  265. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection/quarantine.segment.rsc +1 -1
  266. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  267. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -7
  268. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_full.segment.rsc +11 -11
  269. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_head.segment.rsc +1 -1
  270. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_index.segment.rsc +3 -3
  271. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_tree.segment.rsc +5 -5
  272. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.html +2 -2
  273. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.rsc +13 -13
  274. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk/protection/__PAGE__.segment.rsc +2 -2
  275. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  276. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -7
  277. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_full.segment.rsc +13 -13
  278. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_head.segment.rsc +1 -1
  279. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_index.segment.rsc +3 -3
  280. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_tree.segment.rsc +5 -5
  281. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.html +2 -2
  282. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.rsc +13 -13
  283. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings/__PAGE__.segment.rsc +2 -2
  284. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings.segment.rsc +1 -1
  285. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -7
  286. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_full.segment.rsc +13 -13
  287. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  288. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_index.segment.rsc +3 -3
  289. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_tree.segment.rsc +5 -5
  290. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.html +1 -1
  291. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.rsc +11 -11
  292. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain/xray/__PAGE__.segment.rsc +1 -1
  293. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain/xray.segment.rsc +1 -1
  294. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain.segment.rsc +1 -1
  295. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -7
  296. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_full.segment.rsc +11 -11
  297. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_head.segment.rsc +1 -1
  298. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_index.segment.rsc +3 -3
  299. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_tree.segment.rsc +5 -5
  300. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.html +1 -1
  301. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.rsc +11 -11
  302. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk/supply-chain/__PAGE__.segment.rsc +1 -1
  303. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk/supply-chain.segment.rsc +1 -1
  304. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -7
  305. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_full.segment.rsc +11 -11
  306. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_head.segment.rsc +1 -1
  307. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_index.segment.rsc +3 -3
  308. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_tree.segment.rsc +5 -5
  309. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.html +2 -2
  310. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.rsc +12 -12
  311. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk/xray/__PAGE__.segment.rsc +2 -2
  312. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk/xray.segment.rsc +1 -1
  313. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk.segment.rsc +7 -7
  314. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_full.segment.rsc +12 -12
  315. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_head.segment.rsc +1 -1
  316. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_index.segment.rsc +3 -3
  317. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_tree.segment.rsc +5 -5
  318. package/dashboard/.next/standalone/dashboard/.next/server/app-paths-manifest.json +1 -0
  319. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/52d24__next-internal_server_app_(dashboard)_memory_replay_page_actions_b95fee26.js +3 -0
  320. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/{9f1d4_@tanstack_68dcbde9._.js → 9f1d4_@tanstack_785e068c._.js} +2 -2
  321. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/{dashboard_25b568c3._.js → 9f1d4_next_c9fe89e1._.js} +2 -2
  322. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/{[root-of-the-server]__2de25d56._.js → [root-of-the-server]__60b060b2._.js} +2 -2
  323. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__7f43774d._.js +3 -0
  324. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__801e783f._.js +3 -0
  325. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__8930a320._.js +3 -0
  326. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_11e120e8._.js +3 -0
  327. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_2373e047._.js +3 -0
  328. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_283c47c0._.js +3 -0
  329. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_2e20858e._.js +4 -0
  330. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_45d60d74._.js +3 -0
  331. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_5ca514a1._.js +3 -0
  332. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_5ccb6514._.js +3 -0
  333. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_609078b2._.js +3 -0
  334. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/{dashboard_91003e6d._.js → dashboard_92148040._.js} +2 -2
  335. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_c33b336f._.js +3 -0
  336. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_fac483f8._.js +3 -0
  337. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_memory_replay_page_tsx_d2b20535._.js +3 -0
  338. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_components_protection_ProtectionOverview_tsx_54554a97._.js +1 -1
  339. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_d191b6dc._.js +1 -1
  340. package/dashboard/.next/standalone/dashboard/.next/server/middleware-build-manifest.js +2 -2
  341. package/dashboard/.next/standalone/dashboard/.next/server/next-font-manifest.js +1 -1
  342. package/dashboard/.next/standalone/dashboard/.next/server/next-font-manifest.json +46 -42
  343. package/dashboard/.next/standalone/dashboard/.next/server/pages/404.html +2 -2
  344. package/dashboard/.next/standalone/dashboard/.next/server/pages/500.html +2 -2
  345. package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.js +1 -1
  346. package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.json +1 -1
  347. package/dashboard/.next/standalone/dashboard/.next/static/chunks/0fa2c109e0d6d832.js +1 -0
  348. package/dashboard/.next/standalone/dashboard/.next/static/chunks/349dace3a1c9af01.js +1 -0
  349. package/dashboard/.next/standalone/dashboard/.next/static/chunks/3505433bf7977a34.js +1 -0
  350. package/dashboard/.next/standalone/dashboard/.next/static/chunks/4d0b86f6afedd8b5.js +3 -0
  351. package/dashboard/.next/standalone/dashboard/.next/static/chunks/a681787c6c10e4bd.css +1 -0
  352. package/dashboard/.next/standalone/dashboard/.next/static/chunks/a7d5d0791c8c6223.css +2 -0
  353. package/dashboard/.next/standalone/dashboard/.next/static/chunks/afe4beed85ba4fec.js +1 -0
  354. package/dashboard/.next/standalone/dashboard/.next/static/chunks/b2a6e883eaa58507.js +1 -0
  355. package/dashboard/.next/standalone/dashboard/.next/static/chunks/bcfaf98940462e7d.js +1 -0
  356. package/dashboard/.next/standalone/dashboard/.next/static/chunks/f70f563804550a9c.js +1 -0
  357. package/dashboard/.next/standalone/dashboard/.next/static/chunks/{turbopack-79214717b23f7452.js → turbopack-768a6a8b9db952e0.js} +2 -2
  358. package/dashboard/.next/standalone/dashboard/.next/static/media/4fa387ec64143e14-s.c36e1862.woff2 +0 -0
  359. package/dashboard/.next/standalone/dashboard/.next/static/media/53b9e256198e5412-s.853d50a3.woff2 +0 -0
  360. package/dashboard/.next/standalone/dashboard/.next/static/media/5ce348bf30bf5439-s.ebceb24d.woff2 +0 -0
  361. package/dashboard/.next/standalone/dashboard/.next/static/media/6306c77e7c8268e4-s.ff4a2084.woff2 +0 -0
  362. package/dashboard/.next/standalone/dashboard/.next/static/media/7178b3e590c64307-s.55554cd0.woff2 +0 -0
  363. package/dashboard/.next/standalone/dashboard/.next/static/media/797e433ab948586e-s.p.479bea2b.woff2 +0 -0
  364. package/dashboard/.next/standalone/dashboard/.next/static/media/7d817b4c03b0c5f1-s.f377b9c4.woff2 +0 -0
  365. package/dashboard/.next/standalone/dashboard/.next/static/media/8a480f0b521d4e75-s.ea323500.woff2 +0 -0
  366. package/dashboard/.next/standalone/dashboard/.next/static/media/bbc41e54d2fcbd21-s.d1207556.woff2 +0 -0
  367. package/dashboard/.next/standalone/dashboard/.next/static/media/caa3a2e1cccd8315-s.p.3b6cae6d.woff2 +0 -0
  368. package/dashboard/.next/standalone/dashboard/.next/static/media/fef07dbb0973bf53-s.518e079e.woff2 +0 -0
  369. package/dist/api/routes/sessions.d.ts +19 -0
  370. package/dist/api/routes/sessions.js +213 -0
  371. package/dist/api/visualization-server.js +2 -0
  372. package/dist/cli/import-jsonl.d.ts +12 -0
  373. package/dist/cli/import-jsonl.js +83 -0
  374. package/dist/database/init.js +44 -0
  375. package/dist/database/schema.sql +31 -0
  376. package/dist/index.js +8 -0
  377. package/dist/sessions/capture.d.ts +45 -0
  378. package/dist/sessions/capture.js +59 -0
  379. package/dist/sessions/glob.d.ts +38 -0
  380. package/dist/sessions/glob.js +183 -0
  381. package/dist/sessions/import-jsonl.d.ts +85 -0
  382. package/dist/sessions/import-jsonl.js +193 -0
  383. package/dist/sessions/timeline.d.ts +28 -0
  384. package/dist/sessions/timeline.js +52 -0
  385. package/package.json +1 -1
  386. package/plugins/openclaw/dist/openclaw.plugin.json +1 -1
  387. package/scripts/lib/session-capture.mjs +102 -0
  388. package/scripts/pre-compact-hook.mjs +19 -0
  389. package/scripts/prompt-recall-hook.mjs +30 -4
  390. package/scripts/session-end-hook.mjs +19 -0
  391. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__521be65c._.js +0 -3
  392. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__52bd7a9f._.js +0 -3
  393. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__6f881a23._.js +0 -3
  394. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_1c5148b9._.js +0 -3
  395. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_204d1c9e._.js +0 -3
  396. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_415e5b1b._.js +0 -3
  397. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_442a0173._.js +0 -3
  398. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_64f63df9._.js +0 -3
  399. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_7cb6f257._.js +0 -3
  400. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_9b8695d8._.js +0 -3
  401. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_c343baff._.js +0 -3
  402. package/dashboard/.next/standalone/dashboard/.next/static/chunks/2473c16c0c2f6b5f.css +0 -2
  403. package/dashboard/.next/standalone/dashboard/.next/static/chunks/5f18f98891076bc5.js +0 -1
  404. package/dashboard/.next/standalone/dashboard/.next/static/chunks/b053d5f11418d645.js +0 -3
  405. package/dashboard/.next/standalone/dashboard/.next/static/chunks/bf725d638cce46d4.css +0 -1
  406. package/dashboard/.next/standalone/dashboard/.next/static/chunks/d05e311dfccb5729.js +0 -1
  407. package/dashboard/.next/standalone/dashboard/.next/static/chunks/d9ad4c35fc865415.js +0 -1
  408. package/dashboard/.next/standalone/dashboard/.next/static/chunks/e804a1fda2839550.js +0 -1
  409. package/dashboard/.next/standalone/dashboard/.next/static/chunks/e9f4b8da354f1005.js +0 -1
  410. package/dashboard/.next/standalone/dashboard/.next/static/chunks/fe6075d947234b5d.js +0 -1
  411. package/dashboard/.next/standalone/dashboard/.next/static/media/4fa387ec64143e14-s.c1fdd6c2.woff2 +0 -0
  412. package/dashboard/.next/standalone/dashboard/.next/static/media/7178b3e590c64307-s.b97b3418.woff2 +0 -0
  413. package/dashboard/.next/standalone/dashboard/.next/static/media/797e433ab948586e-s.p.dbea232f.woff2 +0 -0
  414. package/dashboard/.next/standalone/dashboard/.next/static/media/8a480f0b521d4e75-s.8e0177b5.woff2 +0 -0
  415. package/dashboard/.next/standalone/dashboard/.next/static/media/bbc41e54d2fcbd21-s.799d8ef8.woff2 +0 -0
  416. package/dashboard/.next/standalone/dashboard/.next/static/media/caa3a2e1cccd8315-s.p.853070df.woff2 +0 -0
  417. /package/dashboard/.next/standalone/dashboard/.next/static/{6WjF0Utj3STrFgg7vZVPK → 5ueRnXG92g_vRzyK9j89H}/_buildManifest.js +0 -0
  418. /package/dashboard/.next/standalone/dashboard/.next/static/{6WjF0Utj3STrFgg7vZVPK → 5ueRnXG92g_vRzyK9j89H}/_clientMiddlewareManifest.json +0 -0
  419. /package/dashboard/.next/standalone/dashboard/.next/static/{6WjF0Utj3STrFgg7vZVPK → 5ueRnXG92g_vRzyK9j89H}/_ssgManifest.js +0 -0
@@ -1,3 +0,0 @@
1
- module.exports=[73683,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},64575,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={DEFAULT_SEGMENT_KEY:function(){return l},NOT_FOUND_SEGMENT_KEY:function(){return m},PAGE_SEGMENT_KEY:function(){return k},addSearchParamsIfPageSegment:function(){return i},computeSelectedLayoutSegment:function(){return j},getSegmentValue:function(){return f},getSelectedLayoutSegmentPath:function(){return function a(b,c,d=!0,e=[]){let g;if(d)g=b[1][c];else{let a=b[1];g=a.children??Object.values(a)[0]}if(!g)return e;let h=f(g[0]);return!h||h.startsWith(k)?e:(e.push(h),a(g,c,!1,e))}},isGroupSegment:function(){return g},isParallelRouteSegment:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(a){return Array.isArray(a)?a[1]:a}function g(a){return"("===a[0]&&a.endsWith(")")}function h(a){return a.startsWith("@")&&"@children"!==a}function i(a,b){if(a.includes(k)){let a=JSON.stringify(b);return"{}"!==a?k+"?"+a:k}return a}function j(a,b){if(!a||0===a.length)return null;let c="children"===b?a[0]:a[a.length-1];return c===l?null:c}let k="__PAGE__",l="__DEFAULT__",m="/_not-found"},76625,a=>{"use strict";let b=(0,a.i(70694).default)("database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);a.s(["Database",()=>b],76625)},9315,a=>{"use strict";var b=a.i(98419),c=a.i(14220),d=a.i(86044);let e=process.env.NEXT_PUBLIC_WS_URL||"ws://localhost:3001/ws/events";function f(a={}){let{enabled:g=!0,onMessage:h}=a,i=(0,c.useQueryClient)(),j=(0,b.useRef)(null),k=(0,b.useRef)(null),l=(0,b.useRef)(0),m=(0,b.useRef)(1e3),n=(0,b.useRef)(()=>{}),[o,p]=(0,b.useState)(!1),[q,r]=(0,b.useState)(!1),[s,t]=(0,b.useState)(null),u=(0,b.useRef)(h);(0,b.useEffect)(()=>{u.current=h},[h]);let v=(0,b.useCallback)(async()=>{if(g&&j.current?.readyState!==WebSocket.OPEN){k.current&&(clearTimeout(k.current),k.current=null);try{let a=await (0,d.getApiToken)(),b=`${e}?token=${encodeURIComponent(a)}`,c=new WebSocket(b);j.current=c,c.onopen=()=>{p(!0),l.current=0,m.current=1e3,console.log("[WebSocket] Connected to memory server")},c.onmessage=a=>{try{let b=JSON.parse(a.data);switch(t({type:b.type,data:b.data,timestamp:b.timestamp||new Date().toISOString()}),u.current?.(b),b.type){case"initial_state":case"consolidation_complete":case"predictive_consolidation":i.invalidateQueries({queryKey:["memories"]}),i.invalidateQueries({queryKey:["stats"]}),i.invalidateQueries({queryKey:["links"]});break;case"memory_created":case"memory_updated":case"memory_deleted":i.invalidateQueries({queryKey:["memories"]}),i.invalidateQueries({queryKey:["stats"]});break;case"decay_tick":case"worker_light_tick":case"worker_medium_tick":break;case"link_discovered":i.invalidateQueries({queryKey:["links"]});break;case"defence_event":i.invalidateQueries({queryKey:["agents"]}),i.invalidateQueries({queryKey:["agent-timeline"]}),i.invalidateQueries({queryKey:["audit-logs"]}),i.invalidateQueries({queryKey:["audit-stats"]});break;case"kill_switch_activated":case"kill_switch_deactivated":i.invalidateQueries({queryKey:["control-status"]}),i.invalidateQueries({queryKey:["iron-dome-status"]}),i.invalidateQueries({queryKey:["iron-dome-audit"]});break;case"update_started":case"update_complete":case"update_failed":"update_complete"===b.type&&(i.invalidateQueries({queryKey:["version"]}),i.invalidateQueries({queryKey:["version-check"]}));break;case"server_restarting":console.log("[WebSocket] Server restarting, will reconnect shortly...");break;case"xray_detection":i.invalidateQueries({queryKey:["xray-activity"]}),i.invalidateQueries({queryKey:["xray-watch-sessions"]}),i.invalidateQueries({queryKey:["xray-findings"]}),i.invalidateQueries({queryKey:["xray-status"]})}}catch(a){console.error("[WebSocket] Failed to parse message:",a)}},c.onerror=()=>{console.warn("[WebSocket] Connection failed - is the API server running?")},c.onclose=a=>{if(p(!1),console.log("[WebSocket] Disconnected",a.code),(1008===a.code||4001===a.code||4003===a.code)&&(0,d.invalidateApiToken)(),g&&l.current<10){let a=m.current;l.current++,m.current=Math.min(2*m.current,3e4),console.log(`[WebSocket] Reconnecting in ${a}ms (attempt ${l.current}/10)...`),k.current=setTimeout(()=>{n.current()},a)}else l.current>=10&&(r(!0),console.error("[WebSocket] Max reconnection attempts reached. Use reconnect() to try again."))}}catch(a){console.error("[WebSocket] Failed to connect:",a)}}},[g,i]);return(0,b.useEffect)(()=>{n.current=v}),(0,b.useEffect)(()=>(g&&v(),()=>{k.current&&clearTimeout(k.current),j.current&&(j.current.close(),j.current=null)}),[g,v]),{isConnected:o,connectionFailed:q,lastEvent:s,reconnect:(0,b.useCallback)(()=>{l.current=0,m.current=1e3,r(!1),v()},[v])}}a.s(["useMemoryWebSocket",()=>f])},37197,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={getDeploymentId:function(){return f},getDeploymentIdQueryOrEmptyString:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(){return!1}function g(){return""}},67789,a=>{"use strict";var b=a.i(40458),c=a.i(66807),d=a.i(14220),e=a.i(86044),f=a.i(9315);let g=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function h(a){let b=new URLSearchParams;a?.project&&b.set("project",a.project),a?.type&&b.set("type",a.type),a?.category&&b.set("category",a.category),a?.limit&&b.set("limit",a.limit.toString()),a?.offset&&b.set("offset",a.offset.toString()),a?.mode&&b.set("mode",a.mode),a?.query&&b.set("query",a.query);let c=await (0,e.authFetch)(`${g}/api/memories?${b}`);if(!c.ok)throw Error("Failed to fetch memories");return c.json()}async function i(a){let b=a?`?project=${a}`:"",c=await (0,e.authFetch)(`${g}/api/stats${b}`);if(!c.ok)throw Error("Failed to fetch stats");return c.json()}async function j(){let a=await (0,e.authFetch)(`${g}/api/projects`);if(!a.ok)throw Error("Failed to fetch projects");return a.json()}async function k(){let a=await (0,e.authFetch)(`${g}/api/capture/openclaw/sessions`);if(!a.ok)throw Error("Failed to fetch OpenClaw sessions");return a.json()}async function l(a){let b=await (0,e.authFetch)(`${g}/api/memories/${a}/access`,{method:"POST"});if(!b.ok)throw Error("Failed to access memory");return b.json()}function m(a){return(0,b.useQuery)({queryKey:["stats",a],queryFn:()=>i(a),refetchInterval:3e4})}function n(){return(0,b.useQuery)({queryKey:["projects"],queryFn:j,refetchInterval:6e4})}function o(){return(0,b.useQuery)({queryKey:["openclaw-sessions"],queryFn:k,staleTime:3e4})}function p(a){let c,d=(0,f.useMemoryWebSocket)();return{...{...c=(0,b.useQuery)({queryKey:["memories",a],queryFn:()=>h(a),refetchInterval:3e4}),data:c.data?.memories,pagination:c.data?.pagination},isConnected:d.isConnected,lastEvent:d.lastEvent}}function q(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:l,onSuccess:()=>{a.invalidateQueries({queryKey:["memories"]}),a.invalidateQueries({queryKey:["stats"]})}})}async function r(){let a=await (0,e.authFetch)(`${g}/api/version`);if(!a.ok)throw Error("Failed to fetch version");return a.json()}function s(){return(0,b.useQuery)({queryKey:["version"],queryFn:r,refetchInterval:6e4,staleTime:3e4})}async function t(a){let b=a?`?project=${a}`:"",c=await (0,e.authFetch)(`${g}/api/memories/quality${b}`);if(!c.ok)throw Error("Failed to fetch quality");return c.json()}function u(a){return(0,b.useQuery)({queryKey:["quality",a],queryFn:()=>t(a),staleTime:3e5})}async function v(a){let b=a?`?project=${a}`:"",c=await (0,e.authFetch)(`${g}/api/contradictions${b}`);if(!c.ok)throw Error("Failed to fetch contradictions");return c.json()}function w(a){return(0,b.useQuery)({queryKey:["contradictions",a],queryFn:()=>v(a),staleTime:3e5})}async function x(a){let b=await (0,e.authFetch)(`${g}/api/memories/${a}/promote`,{method:"POST"});if(!b.ok)throw Error("Failed to promote memory");return b.json()}async function y(a){let b=await (0,e.authFetch)(`${g}/api/memories/${a}`,{method:"DELETE"});if(!b.ok)throw Error("Failed to delete memory");return b.json()}async function z(a,b){let c=await (0,e.authFetch)(`${g}/api/memories/${a}/quarantine`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reason:b})});if(!c.ok)throw Error("Failed to quarantine memory");return c.json()}function A(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:x,onSuccess:()=>{a.invalidateQueries({queryKey:["memories"]}),a.invalidateQueries({queryKey:["stats"]})}})}function B(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:y,onSuccess:()=>{a.invalidateQueries({queryKey:["memories"]}),a.invalidateQueries({queryKey:["stats"]}),a.invalidateQueries({queryKey:["links"]})}})}function C(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:({id:a,reason:b})=>z(a,b),onSuccess:()=>{a.invalidateQueries({queryKey:["memories"]}),a.invalidateQueries({queryKey:["stats"]})}})}a.s(["useAccessMemory",()=>q,"useContradictions",()=>w,"useDeleteMemory",()=>B,"useMemoriesWithRealtime",()=>p,"useOpenClawSessions",()=>o,"useProjects",()=>n,"usePromoteMemory",()=>A,"useQuality",()=>u,"useQuarantineMemory",()=>C,"useStats",()=>m,"useVersion",()=>s])}];
2
-
3
- //# sourceMappingURL=dashboard_9b8695d8._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[74150,35031,79030,a=>{"use strict";let b=(0,a.i(70694).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);a.s(["CheckCircle2",()=>b],74150);var c=a.i(40458),d=a.i(66807),e=a.i(14220),f=a.i(86044);let g=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function h(){let a=await (0,f.authFetch)(`${g}/api/license/status`);if(!a.ok)throw Error("Failed to fetch license status");return a.json()}async function i(a){let b=await (0,f.authFetch)(`${g}/api/license/activate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:a})});if(!b.ok)throw Error((await b.json().catch(()=>({error:"Activation failed"}))).error||"Activation failed");return b.json()}async function j(){let a=await (0,f.authFetch)(`${g}/api/license/deactivate`,{method:"POST"});if(!a.ok)throw Error("Failed to deactivate license");return a.json()}function k(){return(0,c.useQuery)({queryKey:["license-status"],queryFn:h,refetchInterval:6e4,retry:2})}function l(){let a=(0,e.useQueryClient)();return(0,d.useMutation)({mutationFn:a=>i(a),onSuccess:()=>{a.invalidateQueries({queryKey:["license-status"]})}})}function m(){let a=(0,e.useQueryClient)();return(0,d.useMutation)({mutationFn:j,onSuccess:()=>{a.invalidateQueries({queryKey:["license-status"]})}})}a.s(["useActivateLicense",()=>l,"useDeactivateLicense",()=>m,"useLicenseStatus",()=>k],35031),a.s(["PLAN_PRICING",0,{pro:{label:"Pro",price:"£29/mo"},team:{label:"Team",price:"£99/mo"}},"TIER_BG",0,{free:"bg-[var(--sc-surface-interactive)]",pro:"bg-[var(--sc-cyan)]/10",team:"bg-[var(--sc-coral)]/10",enterprise:"bg-[var(--sc-amber)]/10"},"TIER_COLOURS",0,{free:"text-[var(--sc-text-muted)]",pro:"text-[var(--sc-cyan)]",team:"text-[var(--sc-coral)]",enterprise:"text-[var(--sc-amber)]"},"TIER_LABELS",0,{free:"Free",pro:"Pro",team:"Team",enterprise:"Enterprise"}],79030)},47520,a=>{"use strict";let b=(0,a.i(70694).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);a.s(["AlertTriangle",()=>b],47520)},32322,a=>{"use strict";let b=(0,a.i(70694).default)("lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);a.s(["Lock",()=>b],32322)},79151,a=>{"use strict";var b=a.i(16306),c=a.i(64565),d=a.i(32322);function e({tabs:a,activeTab:e,onChange:f,className:g}){return(0,b.jsx)("div",{className:(0,c.cn)("flex items-center gap-4 overflow-x-auto border-b border-[var(--term-border)] px-1 scrollbar-hide","theme-glass:gap-1 theme-glass:rounded-xl theme-glass:border-0 theme-glass:bg-[var(--sc-bg-surface)] theme-glass:p-1",g),role:"tablist",children:a.map(a=>{let g=a.id===e;return(0,b.jsxs)("button",{type:"button",role:"tab","aria-selected":g?"true":"false",onClick:()=>f(a.id),className:(0,c.cn)("relative flex shrink-0 items-center gap-2 px-1 py-2 text-xs font-mono transition-colors","focus-visible:outline-1 focus-visible:outline-offset-2 focus-visible:outline-[var(--term-electric)]",g?"text-[var(--term-electric-fg)]":"text-[var(--term-text-muted)] hover:text-[var(--term-text)]","theme-glass:font-medium theme-glass:font-sans theme-glass:rounded-lg theme-glass:px-3 theme-glass:py-2 sm:theme-glass:px-4 sm:theme-glass:text-sm",g&&"theme-glass:bg-[var(--sc-bg-elevated)] theme-glass:text-[var(--sc-text-primary)]",!g&&"theme-glass:hover:text-[var(--sc-text-secondary)]"),children:[a.icon,(0,b.jsx)("span",{children:a.label}),a.locked&&(0,b.jsx)(d.Lock,{size:11,className:"text-[var(--term-warn)] theme-glass:text-[var(--sc-coral)]"}),void 0!==a.count&&a.count>0&&(0,b.jsxs)("span",{className:"text-[var(--term-text-muted)] theme-glass:ml-0.5 theme-glass:rounded-full theme-glass:bg-[var(--sc-coral)]/15 theme-glass:px-1.5 theme-glass:py-0.5 theme-glass:text-[10px] theme-glass:font-bold theme-glass:text-[var(--sc-coral)]",children:[(0,b.jsxs)("span",{className:"theme-glass:hidden",children:["(",a.count,")"]}),(0,b.jsx)("span",{className:"hidden theme-glass:inline",children:a.count})]}),g&&(0,b.jsx)("span",{"aria-hidden":!0,className:"absolute -bottom-px left-0 right-0 h-px bg-[var(--term-electric)] theme-glass:hidden"})]},a.id)})})}function f({eyebrow:a,title:d,subtitle:f,actions:g,tabs:h,activeTab:i,onTabChange:j,className:k}){return(0,b.jsxs)("div",{className:(0,c.cn)("space-y-3 theme-glass:space-y-4",k),children:[(0,b.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between sm:gap-4 theme-glass:gap-3",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsxs)("div",{className:"theme-glass:hidden",children:[a&&(0,b.jsxs)("p",{className:"text-[11px] uppercase tracking-wider text-[var(--term-text-muted)]",children:[(0,b.jsx)("span",{className:"text-[var(--term-electric-fg)]",children:"›"})," ",a]}),(0,b.jsxs)("h1",{className:"mt-1 flex items-baseline flex-wrap gap-2 text-base font-mono text-[var(--term-text)] sm:text-lg",children:[(0,b.jsx)("span",{className:"text-[var(--term-electric-fg)]","aria-hidden":!0,children:"$"}),(0,b.jsx)("span",{children:"shieldcortex"}),(0,b.jsx)("span",{className:"text-[var(--term-text-dim)]",children:d.toLowerCase()}),(0,b.jsx)("span",{className:"cli-cursor text-[var(--term-electric-fg)]","aria-hidden":!0})]}),f&&(0,b.jsxs)("p",{className:"mt-1 text-xs text-[var(--term-text-muted)]",children:[(0,b.jsx)("span",{"aria-hidden":!0,children:"#"})," ",f]})]}),(0,b.jsxs)("div",{className:"hidden theme-glass:block",children:[a&&(0,b.jsx)("p",{className:"text-[10px] font-semibold uppercase tracking-[0.2em] text-[var(--sc-coral)] sm:text-[11px]",children:a}),(0,b.jsx)("h1",{className:"mt-1 text-xl font-bold text-[var(--sc-text-primary)] sm:text-2xl",children:d}),f&&(0,b.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-secondary)] sm:text-sm",children:f})]})]}),g&&(0,b.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:g})]}),h&&i&&j&&(0,b.jsx)(e,{tabs:h,activeTab:i,onChange:j})]})}a.s(["PageHeader",()=>f],79151)},54100,60210,a=>{"use strict";var b=a.i(16306),c=a.i(64565);let d={critical:"severity-critical",high:"severity-high",medium:"severity-medium",low:"severity-low",safe:"severity-safe",info:"severity-info"};function e({children:a,className:e,hover:f=!1,hoverCyan:g=!1,strong:h=!1,severity:i,onClick:j,selected:k=!1,title:l,statusLine:m,bodyPadding:n=!0}){let o=j?a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),j())}:void 0;return(0,b.jsxs)("div",{className:(0,c.cn)("glass-card overflow-hidden",f&&"glass-card-hover cursor-pointer",g&&"glass-card-hover-cyan cursor-pointer",j&&!f&&!g&&"cursor-pointer",i&&d[i],k&&"border-[var(--term-electric)]",e),onClick:j,onKeyDown:o,role:j?"button":void 0,tabIndex:j?0:void 0,children:[void 0!==l&&(0,b.jsxs)("div",{className:"flex items-center gap-2 px-4 py-2 border-b border-[var(--term-border)] bg-[var(--term-surface-2)] theme-glass:hidden",children:[(0,b.jsx)("span",{"aria-hidden":!0,className:"w-2.5 h-2.5 rounded-full bg-[var(--term-light-red)]"}),(0,b.jsx)("span",{"aria-hidden":!0,className:"w-2.5 h-2.5 rounded-full bg-[var(--term-light-yellow)]"}),(0,b.jsx)("span",{"aria-hidden":!0,className:"w-2.5 h-2.5 rounded-full bg-[var(--term-light-green)]"}),(0,b.jsx)("span",{className:"ml-2 text-xs select-none truncate text-[var(--term-text-muted)]",children:l})]}),(0,b.jsx)("div",{className:(0,c.cn)(n?"p-5":""),children:a}),void 0!==m&&(0,b.jsx)("div",{className:"px-4 py-2 text-xs border-t border-[var(--term-border)] bg-[var(--term-surface-2)] text-[var(--term-text-muted)] theme-glass:hidden",children:m})]})}a.s(["GlassCard",()=>e],54100);let f={critical:"text-[var(--term-danger)]",high:"text-[var(--term-danger)]",medium:"text-[var(--term-warn)]",low:"text-[var(--term-electric-fg)]",safe:"text-[var(--term-neon-fg)]",info:"text-[var(--term-text-muted)]",coral:"text-[var(--term-electric-fg)]",cyan:"text-[var(--term-neon-fg)]",amber:"text-[var(--term-warn)]",muted:"text-[var(--term-text-muted)]"},g={critical:"bg-[var(--term-danger)]",high:"bg-[var(--term-danger)]",medium:"bg-[var(--term-warn)]",low:"bg-[var(--term-electric)]",safe:"bg-[var(--term-neon)]",info:"bg-[var(--term-text-muted)]",coral:"bg-[var(--term-electric)]",cyan:"bg-[var(--term-neon)]",amber:"bg-[var(--term-warn)]",muted:"bg-[var(--term-text-muted)]"},h={critical:"theme-glass:bg-[var(--sc-coral)]/15 theme-glass:border-[var(--sc-coral)]/30",high:"theme-glass:bg-[var(--sc-coral-mid)]/15 theme-glass:border-[var(--sc-coral-mid)]/30",medium:"theme-glass:bg-[var(--sc-amber)]/15 theme-glass:border-[var(--sc-amber)]/30",low:"theme-glass:bg-[var(--sc-cyan-mid)]/15 theme-glass:border-[var(--sc-cyan-mid)]/30",safe:"theme-glass:bg-[var(--sc-cyan)]/15 theme-glass:border-[var(--sc-cyan)]/30",info:"theme-glass:bg-[var(--sc-text-muted)]/15 theme-glass:border-[var(--sc-text-muted)]/30",coral:"theme-glass:bg-[var(--sc-coral)]/15 theme-glass:border-[var(--sc-coral)]/30",cyan:"theme-glass:bg-[var(--sc-cyan)]/15 theme-glass:border-[var(--sc-cyan)]/30",amber:"theme-glass:bg-[var(--sc-amber)]/15 theme-glass:border-[var(--sc-amber)]/30",muted:"theme-glass:bg-[var(--sc-surface-interactive)] theme-glass:border-[var(--sc-border)]"};function i({children:a,variant:d="muted",className:e,dot:i=!1,pulse:j=!1}){return(0,b.jsxs)("span",{className:(0,c.cn)("inline-flex items-center gap-1.5 px-1 text-[11px] font-semibold uppercase tracking-wider whitespace-nowrap",f[d],"theme-glass:rounded-full theme-glass:border theme-glass:px-2.5 theme-glass:py-0.5",h[d],e),children:[i&&(0,b.jsx)("span",{className:(0,c.cn)("h-1.5 w-1.5 rounded-full",g[d],j&&"animate-pulse"),"aria-hidden":!0}),(0,b.jsx)("span",{"aria-hidden":!0,className:"text-[var(--term-text-muted)] theme-glass:hidden",children:"["}),(0,b.jsx)("span",{children:a}),(0,b.jsx)("span",{"aria-hidden":!0,className:"text-[var(--term-text-muted)] theme-glass:hidden",children:"]"})]})}function j(a){let b=a.toUpperCase();return"CRITICAL"===b?"critical":"HIGH"===b?"high":"MEDIUM"===b?"medium":"LOW"===b?"low":"SAFE"===b?"safe":"info"}a.s(["Badge",()=>i,"riskVariant",()=>j],60210)},23808,a=>{"use strict";var b=a.i(16306),c=a.i(64565),d=a.i(98419);let e={coral:"border border-[var(--term-electric)] text-[var(--term-electric-fg)] bg-transparent hover:bg-[var(--term-electric)]/10",cyan:"border border-[var(--term-neon)] text-[var(--term-neon-fg)] bg-transparent hover:bg-[var(--term-neon)]/10",ghost:"border border-transparent text-[var(--term-text-muted)] bg-transparent hover:text-[var(--term-text)] hover:border-[var(--term-border)]",outline:"border border-[var(--term-border)] text-[var(--term-text-dim)] bg-transparent hover:border-[var(--term-text-muted)] hover:text-[var(--term-text)]"},f={sm:"px-2 py-1 text-xs",md:"px-3 py-1.5 text-sm",lg:"px-4 py-2 text-sm"},g={coral:"theme-glass:border-0 theme-glass:bg-gradient-to-br theme-glass:from-[var(--sc-coral)] theme-glass:to-[var(--sc-coral-dark)] theme-glass:text-white theme-glass:hover:shadow-[0_8px_30px_var(--sc-glow-coral-mid)]",cyan:"theme-glass:border-0 theme-glass:bg-[var(--sc-cyan)] theme-glass:text-[var(--sc-bg-deep)] theme-glass:hover:bg-[var(--sc-cyan-mid)]",ghost:"theme-glass:bg-transparent theme-glass:text-[var(--sc-text-secondary)] theme-glass:hover:bg-[var(--sc-surface-interactive)]",outline:"theme-glass:bg-transparent theme-glass:border theme-glass:border-[var(--sc-border)] theme-glass:text-[var(--sc-text-secondary)]"},h={sm:"theme-glass:px-3 theme-glass:py-1.5 theme-glass:text-xs theme-glass:rounded-lg",md:"theme-glass:px-4 theme-glass:py-2 theme-glass:text-sm theme-glass:rounded-xl",lg:"theme-glass:px-6 theme-glass:py-3 theme-glass:text-sm theme-glass:rounded-xl"},i=(0,d.forwardRef)(({variant:a="coral",size:d="md",glow:i=!1,pulse:j=!1,className:k,children:l,...m},n)=>(0,b.jsxs)("button",{ref:n,className:(0,c.cn)("inline-flex items-center justify-center gap-2 rounded-md font-mono transition-colors","focus-visible:outline-1 focus-visible:outline-offset-2 focus-visible:outline-[var(--term-electric)]",j?"disabled:pointer-events-none":"disabled:pointer-events-none disabled:opacity-50",e[a],f[d],"theme-glass:font-semibold theme-glass:transition-all theme-glass:hover:-translate-y-0.5",g[a],h[d],i&&"coral"===a&&"theme-glass:glow-coral-subtle",i&&"cyan"===a&&"theme-glass:glow-cyan-subtle",j&&"theme-glass:glow-cyan-pulse",k),type:"button",...m,children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-2 theme-glass:hidden",children:[j&&(0,b.jsx)("span",{className:"cli-cursor","aria-hidden":!0}),(0,b.jsx)("span",{className:"text-[var(--term-text-muted)]","aria-hidden":!0,children:"["}),(0,b.jsx)("span",{className:"leading-none",children:l}),(0,b.jsx)("span",{className:"text-[var(--term-text-muted)]","aria-hidden":!0,children:"]"})]}),(0,b.jsx)("span",{className:"hidden theme-glass:inline-flex items-center gap-2",children:l})]}));i.displayName="Button",a.s(["Button",0,i])},6750,a=>{"use strict";let b=(0,a.i(70694).default)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);a.s(["FileText",()=>b],6750)}];
2
-
3
- //# sourceMappingURL=dashboard_c343baff._.js.map
@@ -1,2 +0,0 @@
1
- @font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.8e0177b5.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.b97b3418.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.853070df.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist","Geist Fallback"}
2
- @font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.c1fdd6c2.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.799d8ef8.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.dbea232f.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,75025,e=>{"use strict";let t=(0,e.i(24929).default)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);e.s(["FileText",()=>t],75025)},19711,e=>{"use strict";var t=e.i(27493),a=e.i(66949),r=e.i(45256),s=e.i(63312),i=e.i(50279),n=e.i(81523);function l({feature:e,children:l,label:c}){let{data:o}=(0,s.useLicenseStatus)();if(!o)return(0,t.jsx)(t.Fragment,{children:l});let d=o.features.find(t=>t.feature===e);if(!d||d.enabled)return(0,t.jsx)(t.Fragment,{children:l});let m=d.requiredTier;return(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("div",{className:"pointer-events-none select-none opacity-20 blur-[3px]",children:l}),(0,t.jsxs)("div",{className:"absolute inset-0 flex flex-col items-center justify-center rounded-2xl bg-[var(--sc-card-bg-strong)] backdrop-blur-sm",children:[(0,t.jsx)("div",{className:"rounded-xl bg-[var(--sc-coral)]/10 p-3",children:(0,t.jsx)(a.Lock,{size:24,className:"text-[var(--sc-coral)]"})}),(0,t.jsxs)("p",{className:"mt-3 text-sm font-semibold text-[var(--sc-text-primary)]",children:[i.TIER_LABELS[m]," Feature"]}),c&&(0,t.jsx)("p",{className:"mt-1 max-w-xs text-center text-xs text-[var(--sc-text-muted)]",children:c}),(0,t.jsx)("a",{href:"https://shieldcortex.ai/pricing",target:"_blank",rel:"noopener noreferrer",className:"mt-4",children:(0,t.jsxs)(n.Button,{variant:"coral",size:"sm",glow:!0,children:["Upgrade to ",i.TIER_LABELS[m],(0,t.jsx)(r.ExternalLink,{size:12})]})})]})]})}e.s(["ProFeatureGate",()=>l])},87353,e=>{"use strict";var t=e.i(22534),a=e.i(45688),r=e.i(71921),s=e.i(1235),i=e.i(88969);let n=t.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function l(e){let t=new URLSearchParams;e?.startTime&&t.set("startTime",e.startTime),e?.endTime&&t.set("endTime",e.endTime),e?.source&&t.set("source",e.source),e?.firewallResult&&t.set("firewallResult",e.firewallResult),e?.project&&t.set("project",e.project),e?.limit&&t.set("limit",e.limit.toString());let a=await (0,i.authFetch)(`${n}/api/v1/audit?${t}`);if(!a.ok)throw Error(await (0,i.readApiError)(a,"Failed to fetch audit logs"));return a.json()}async function c(e,t){let a=new URLSearchParams({timeRange:e});t&&a.set("project",t);let r=await (0,i.authFetch)(`${n}/api/v1/audit/stats?${a}`);if(!r.ok)throw Error(await (0,i.readApiError)(r,"Failed to fetch audit stats"));return r.json()}async function o(e="pending",t=50,a,r){let s=new URLSearchParams({status:e,limit:t.toString()});a&&s.set("project",a),r&&s.set("sourceType",r);let l=await (0,i.authFetch)(`${n}/api/v1/quarantine?${s}`);if(!l.ok)throw Error(await (0,i.readApiError)(l,"Failed to fetch quarantine"));return l.json()}async function d(e){let t=await (0,i.authFetch)(`${n}/api/v1/quarantine/${e}/approve`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reviewedBy:"dashboard"})});if(!t.ok)throw Error(await (0,i.readApiError)(t,"Failed to approve quarantined item"));return t.json()}async function m(e,t){let a=await (0,i.authFetch)(`${n}/api/v1/quarantine/${e}/reject`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reviewedBy:"dashboard",notes:t})});if(!a.ok)throw Error(await (0,i.readApiError)(a,"Failed to reject quarantined item"));return a.json()}async function u(e){let t=await (0,i.authFetch)(`${n}/api/v1/quarantine/bulk-approve`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:e,reviewedBy:"dashboard"})});if(!t.ok)throw Error(await (0,i.readApiError)(t,"Failed to bulk approve quarantined items"));return t.json()}async function h(e){let t=await (0,i.authFetch)(`${n}/api/v1/quarantine/bulk-reject`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:e,reviewedBy:"dashboard"})});if(!t.ok)throw Error(await (0,i.readApiError)(t,"Failed to bulk reject quarantined items"));return t.json()}async function x(){let e=await (0,i.authFetch)(`${n}/api/v1/review-copilot/status`);if(!e.ok)throw Error(await (0,i.readApiError)(e,"Failed to fetch Local AI status"));return e.json()}async function v(e){let t=await (0,i.authFetch)(`${n}/api/v1/quarantine/${e}/annotate`,{method:"POST",headers:{"Content-Type":"application/json"}});if(!t.ok)throw Error(await (0,i.readApiError)(t,"Failed to explain quarantined item"));return t.json()}async function p(e){let t=await (0,i.authFetch)(`${n}/api/v1/quarantine/annotate-pending`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error(await (0,i.readApiError)(t,"Failed to explain pending quarantine"));return t.json()}function g(e){return(0,a.useQuery)({queryKey:["audit-logs",e],queryFn:()=>l(e),refetchInterval:3e4,retry:2})}function y(e="24h",t){return(0,a.useQuery)({queryKey:["audit-stats",e,t],queryFn:()=>c(e,t),refetchInterval:3e4,retry:2})}function b(e="pending",t=50,r,s){return(0,a.useQuery)({queryKey:["quarantine",e,t,r,s],queryFn:()=>o(e,t,r,s),refetchInterval:3e4,retry:2})}function f(){return(0,a.useQuery)({queryKey:["review-copilot-status"],queryFn:x,refetchInterval:3e4,retry:2})}function j(){let e=(0,s.useQueryClient)();return(0,r.useMutation)({mutationFn:d,onSuccess:()=>{e.invalidateQueries({queryKey:["quarantine"]}),e.invalidateQueries({queryKey:["audit-stats"]}),e.invalidateQueries({queryKey:["memories"]}),e.invalidateQueries({queryKey:["stats"]}),e.invalidateQueries({queryKey:["review-queue"]}),e.invalidateQueries({queryKey:["openclaw-sessions"]}),e.invalidateQueries({queryKey:["quality"]})}})}function w(){let e=(0,s.useQueryClient)();return(0,r.useMutation)({mutationFn:({id:e,notes:t})=>m(e,t),onSuccess:()=>{e.invalidateQueries({queryKey:["quarantine"]}),e.invalidateQueries({queryKey:["audit-stats"]}),e.invalidateQueries({queryKey:["review-queue"]})}})}function N(){let e=(0,s.useQueryClient)();return(0,r.useMutation)({mutationFn:u,onSuccess:()=>{e.invalidateQueries({queryKey:["quarantine"]}),e.invalidateQueries({queryKey:["audit-stats"]}),e.invalidateQueries({queryKey:["memories"]}),e.invalidateQueries({queryKey:["stats"]}),e.invalidateQueries({queryKey:["review-queue"]}),e.invalidateQueries({queryKey:["openclaw-sessions"]}),e.invalidateQueries({queryKey:["quality"]})}})}function k(){let e=(0,s.useQueryClient)();return(0,r.useMutation)({mutationFn:h,onSuccess:()=>{e.invalidateQueries({queryKey:["quarantine"]}),e.invalidateQueries({queryKey:["audit-stats"]}),e.invalidateQueries({queryKey:["review-queue"]})}})}function q(){let e=(0,s.useQueryClient)();return(0,r.useMutation)({mutationFn:v,onSuccess:()=>{e.invalidateQueries({queryKey:["quarantine"]}),e.invalidateQueries({queryKey:["review-copilot-status"]})}})}function F(){let e=(0,s.useQueryClient)();return(0,r.useMutation)({mutationFn:p,onSuccess:()=>{e.invalidateQueries({queryKey:["quarantine"]}),e.invalidateQueries({queryKey:["review-copilot-status"]})}})}e.s(["useAnnotatePendingQuarantine",()=>F,"useAnnotateQuarantine",()=>q,"useApproveQuarantine",()=>j,"useAuditLogs",()=>g,"useAuditStats",()=>y,"useBulkApproveQuarantine",()=>N,"useBulkRejectQuarantine",()=>k,"useQuarantine",()=>b,"useRejectQuarantine",()=>w,"useReviewCopilotStatus",()=>f])},77744,e=>{"use strict";let t=(0,e.i(24929).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",()=>t],77744)},46194,e=>{"use strict";var t=e.i(27493),a=e.i(76490);let r={coral:"text-[var(--term-electric-fg)]",cyan:"text-[var(--term-neon-fg)]",amber:"text-[var(--term-warn)]",muted:"text-[var(--term-text)]"},s={coral:{icon:"text-[var(--sc-coral)]",iconBg:"bg-[var(--sc-coral)]/10",trendUp:"text-[var(--sc-coral)]",trendDown:"text-[var(--sc-cyan)]"},cyan:{icon:"text-[var(--sc-cyan)]",iconBg:"bg-[var(--sc-cyan)]/10",trendUp:"text-[var(--sc-cyan)]",trendDown:"text-[var(--sc-coral)]"},amber:{icon:"text-[var(--sc-amber)]",iconBg:"bg-[var(--sc-amber)]/10",trendUp:"text-[var(--sc-amber)]",trendDown:"text-[var(--sc-text-muted)]"},muted:{icon:"text-[var(--sc-text-secondary)]",iconBg:"bg-[var(--sc-surface-interactive)]",trendUp:"text-[var(--sc-cyan)]",trendDown:"text-[var(--sc-coral)]"}};function i({label:e,value:i,icon:n,trend:l,accent:c="cyan",className:o}){let d=s[c];return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:(0,a.cn)("theme-glass:hidden flex items-center justify-between gap-3 px-4 py-2 border-b border-[var(--term-border)] last:border-0",o),children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 min-w-0",children:[(0,t.jsx)(n,{size:14,className:"text-[var(--term-text-muted)] shrink-0","aria-hidden":!0}),(0,t.jsx)("span",{className:"text-xs uppercase tracking-wider text-[var(--term-text-muted)] truncate",children:e})]}),(0,t.jsxs)("div",{className:"flex items-baseline gap-2 shrink-0",children:[(0,t.jsx)("span",{className:(0,a.cn)("text-base tabular-nums",r[c]),children:i}),l&&(0,t.jsxs)("span",{className:(0,a.cn)("text-xs tabular-nums",l.value>=0?"text-[var(--term-neon-fg)]":"text-[var(--term-danger)]"),children:[l.value>=0?"+":"",l.value,"%"]})]})]}),(0,t.jsx)("div",{className:(0,a.cn)("hidden theme-glass:block glass-card p-5",o),children:(0,t.jsxs)("div",{className:"flex items-start justify-between",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("p",{className:"text-xs font-medium uppercase tracking-wider text-[var(--sc-text-muted)]",children:e}),(0,t.jsx)("p",{className:"mt-2 text-2xl font-bold text-[var(--sc-text-primary)]",children:i}),l&&(0,t.jsxs)("p",{className:(0,a.cn)("mt-1 text-xs",l.value>=0?d.trendUp:d.trendDown),children:[l.value>=0?"+":"",l.value,"% ",l.label]})]}),(0,t.jsx)("div",{className:(0,a.cn)("rounded-xl p-2.5",d.iconBg),children:(0,t.jsx)(n,{size:20,className:d.icon})})]})})]})}e.s(["StatCard",()=>i])},45256,76624,e=>{"use strict";let t=(0,e.i(24929).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",()=>t],45256);var a=e.i(27493),r=e.i(95659),s=e.i(81523);function i({explanation:e,actions:t}){let i=t?.filter(Boolean)??[];return(0,a.jsxs)("div",{className:"rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/70 p-3",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsx)(r.Badge,{variant:e.synthetic?"amber":"cyan",children:e.synthetic?"Fallback":"Local AI"}),(0,a.jsxs)(r.Badge,{variant:"muted",children:[Math.round(100*e.confidence),"% confidence"]})]}),(0,a.jsx)("p",{className:"mt-3 text-sm font-semibold text-[var(--sc-text-primary)]",children:e.summary}),(0,a.jsx)("p",{className:"mt-1 text-sm leading-6 text-[var(--sc-text-secondary)]",children:e.whyItMatters}),e.riskSignals.length>0&&(0,a.jsx)("div",{className:"mt-3 flex flex-wrap gap-1.5",children:e.riskSignals.map(e=>(0,a.jsx)("span",{className:"rounded bg-[var(--sc-bg-elevated)] px-2 py-1 text-[11px] text-[var(--sc-text-secondary)]",children:e},e))}),e.evidence.length>0&&(0,a.jsx)("div",{className:"mt-3 space-y-2",children:e.evidence.map((e,t)=>(0,a.jsxs)("div",{className:"rounded border border-[var(--sc-border)] bg-[var(--sc-bg-surface)] px-2 py-1.5",children:[(0,a.jsx)("div",{className:"text-[10px] uppercase tracking-[0.14em] text-[var(--sc-text-muted)]",children:e.reason}),(0,a.jsxs)("div",{className:"mt-1 break-words text-xs text-[var(--sc-text-primary)]",children:['"',e.snippet,'"']})]},`${e.snippet}-${t}`))}),e.nextSteps.length>0&&(0,a.jsxs)("div",{className:"mt-3 border-t border-[var(--sc-border)] pt-3",children:[(0,a.jsx)("div",{className:"text-[10px] font-semibold uppercase tracking-[0.16em] text-[var(--sc-text-muted)]",children:"Next steps"}),(0,a.jsx)("div",{className:"mt-2 space-y-1",children:e.nextSteps.map(e=>(0,a.jsx)("div",{className:"text-xs leading-5 text-[var(--sc-text-secondary)]",children:e},e))})]}),i.length>0&&(0,a.jsx)("div",{className:"mt-3 flex flex-wrap gap-2 border-t border-[var(--sc-border)] pt-3",children:i.map(e=>(0,a.jsxs)(s.Button,{variant:e.variant??"outline",size:"sm",onClick:e.onClick,disabled:e.disabled||e.pending,children:[e.icon,e.pending?"Working":e.label]},e.key))})]})}e.s(["LocalAiExplanationPanel",()=>i],76624)},23457,e=>{"use strict";var t=e.i(22534),a=e.i(71921),r=e.i(88969);let s=t.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function i(e){let t=await (0,r.gatedFetch)(`${s}/api/v1/local-ai/explain`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error(await (0,r.readApiError)(t,"Failed to generate local explanation"));return t.json()}function n(){return(0,a.useMutation)({mutationFn:i})}e.s(["useLocalAiExplain",()=>n])},44250,e=>{"use strict";function t(e,t){let a=e.trim();if(!a)return"";let r=a.replace(/^file:\/+/,""),s=r.startsWith("/")?r:`/${r}`,i="number"==typeof t&&Number.isFinite(t)&&t>0?`:${t}`:"";return`vscode://file${s}${i}`}e.s(["buildEditorUrl",()=>t])},71259,e=>{"use strict";let t=(0,e.i(24929).default)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["Eye",()=>t],71259)},16511,e=>{"use strict";let t=(0,e.i(24929).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",()=>t],16511)},15771,63312,50279,e=>{"use strict";let t=(0,e.i(24929).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["CheckCircle2",()=>t],15771);var a=e.i(22534),r=e.i(45688),s=e.i(71921),i=e.i(1235),n=e.i(88969);let l=a.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function c(){let e=await (0,n.authFetch)(`${l}/api/license/status`);if(!e.ok)throw Error("Failed to fetch license status");return e.json()}async function o(e){let t=await (0,n.authFetch)(`${l}/api/license/activate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:e})});if(!t.ok)throw Error((await t.json().catch(()=>({error:"Activation failed"}))).error||"Activation failed");return t.json()}async function d(){let e=await (0,n.authFetch)(`${l}/api/license/deactivate`,{method:"POST"});if(!e.ok)throw Error("Failed to deactivate license");return e.json()}function m(){return(0,r.useQuery)({queryKey:["license-status"],queryFn:c,refetchInterval:6e4,retry:2})}function u(){let e=(0,i.useQueryClient)();return(0,s.useMutation)({mutationFn:e=>o(e),onSuccess:()=>{e.invalidateQueries({queryKey:["license-status"]})}})}function h(){let e=(0,i.useQueryClient)();return(0,s.useMutation)({mutationFn:d,onSuccess:()=>{e.invalidateQueries({queryKey:["license-status"]})}})}e.s(["useActivateLicense",()=>u,"useDeactivateLicense",()=>h,"useLicenseStatus",()=>m],63312),e.s(["PLAN_PRICING",0,{pro:{label:"Pro",price:"£29/mo"},team:{label:"Team",price:"£99/mo"}},"TIER_BG",0,{free:"bg-[var(--sc-surface-interactive)]",pro:"bg-[var(--sc-cyan)]/10",team:"bg-[var(--sc-coral)]/10",enterprise:"bg-[var(--sc-amber)]/10"},"TIER_COLOURS",0,{free:"text-[var(--sc-text-muted)]",pro:"text-[var(--sc-cyan)]",team:"text-[var(--sc-coral)]",enterprise:"text-[var(--sc-amber)]"},"TIER_LABELS",0,{free:"Free",pro:"Pro",team:"Team",enterprise:"Enterprise"}],50279)},18509,e=>{"use strict";let t=(0,e.i(24929).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);e.s(["AlertTriangle",()=>t],18509)},16467,95659,e=>{"use strict";var t=e.i(27493),a=e.i(76490);let r={critical:"severity-critical",high:"severity-high",medium:"severity-medium",low:"severity-low",safe:"severity-safe",info:"severity-info"};function s({children:e,className:s,hover:i=!1,hoverCyan:n=!1,strong:l=!1,severity:c,onClick:o,selected:d=!1,title:m,statusLine:u,bodyPadding:h=!0}){let x=o?e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),o())}:void 0;return(0,t.jsxs)("div",{className:(0,a.cn)("glass-card overflow-hidden",i&&"glass-card-hover cursor-pointer",n&&"glass-card-hover-cyan cursor-pointer",o&&!i&&!n&&"cursor-pointer",c&&r[c],d&&"border-[var(--term-electric)]",s),onClick:o,onKeyDown:x,role:o?"button":void 0,tabIndex:o?0:void 0,children:[void 0!==m&&(0,t.jsxs)("div",{className:"flex items-center gap-2 px-4 py-2 border-b border-[var(--term-border)] bg-[var(--term-surface-2)] theme-glass:hidden",children:[(0,t.jsx)("span",{"aria-hidden":!0,className:"w-2.5 h-2.5 rounded-full bg-[var(--term-light-red)]"}),(0,t.jsx)("span",{"aria-hidden":!0,className:"w-2.5 h-2.5 rounded-full bg-[var(--term-light-yellow)]"}),(0,t.jsx)("span",{"aria-hidden":!0,className:"w-2.5 h-2.5 rounded-full bg-[var(--term-light-green)]"}),(0,t.jsx)("span",{className:"ml-2 text-xs select-none truncate text-[var(--term-text-muted)]",children:m})]}),(0,t.jsx)("div",{className:(0,a.cn)(h?"p-5":""),children:e}),void 0!==u&&(0,t.jsx)("div",{className:"px-4 py-2 text-xs border-t border-[var(--term-border)] bg-[var(--term-surface-2)] text-[var(--term-text-muted)] theme-glass:hidden",children:u})]})}e.s(["GlassCard",()=>s],16467);let i={critical:"text-[var(--term-danger)]",high:"text-[var(--term-danger)]",medium:"text-[var(--term-warn)]",low:"text-[var(--term-electric-fg)]",safe:"text-[var(--term-neon-fg)]",info:"text-[var(--term-text-muted)]",coral:"text-[var(--term-electric-fg)]",cyan:"text-[var(--term-neon-fg)]",amber:"text-[var(--term-warn)]",muted:"text-[var(--term-text-muted)]"},n={critical:"bg-[var(--term-danger)]",high:"bg-[var(--term-danger)]",medium:"bg-[var(--term-warn)]",low:"bg-[var(--term-electric)]",safe:"bg-[var(--term-neon)]",info:"bg-[var(--term-text-muted)]",coral:"bg-[var(--term-electric)]",cyan:"bg-[var(--term-neon)]",amber:"bg-[var(--term-warn)]",muted:"bg-[var(--term-text-muted)]"},l={critical:"theme-glass:bg-[var(--sc-coral)]/15 theme-glass:border-[var(--sc-coral)]/30",high:"theme-glass:bg-[var(--sc-coral-mid)]/15 theme-glass:border-[var(--sc-coral-mid)]/30",medium:"theme-glass:bg-[var(--sc-amber)]/15 theme-glass:border-[var(--sc-amber)]/30",low:"theme-glass:bg-[var(--sc-cyan-mid)]/15 theme-glass:border-[var(--sc-cyan-mid)]/30",safe:"theme-glass:bg-[var(--sc-cyan)]/15 theme-glass:border-[var(--sc-cyan)]/30",info:"theme-glass:bg-[var(--sc-text-muted)]/15 theme-glass:border-[var(--sc-text-muted)]/30",coral:"theme-glass:bg-[var(--sc-coral)]/15 theme-glass:border-[var(--sc-coral)]/30",cyan:"theme-glass:bg-[var(--sc-cyan)]/15 theme-glass:border-[var(--sc-cyan)]/30",amber:"theme-glass:bg-[var(--sc-amber)]/15 theme-glass:border-[var(--sc-amber)]/30",muted:"theme-glass:bg-[var(--sc-surface-interactive)] theme-glass:border-[var(--sc-border)]"};function c({children:e,variant:r="muted",className:s,dot:c=!1,pulse:o=!1}){return(0,t.jsxs)("span",{className:(0,a.cn)("inline-flex items-center gap-1.5 px-1 text-[11px] font-semibold uppercase tracking-wider whitespace-nowrap",i[r],"theme-glass:rounded-full theme-glass:border theme-glass:px-2.5 theme-glass:py-0.5",l[r],s),children:[c&&(0,t.jsx)("span",{className:(0,a.cn)("h-1.5 w-1.5 rounded-full",n[r],o&&"animate-pulse"),"aria-hidden":!0}),(0,t.jsx)("span",{"aria-hidden":!0,className:"text-[var(--term-text-muted)] theme-glass:hidden",children:"["}),(0,t.jsx)("span",{children:e}),(0,t.jsx)("span",{"aria-hidden":!0,className:"text-[var(--term-text-muted)] theme-glass:hidden",children:"]"})]})}function o(e){let t=e.toUpperCase();return"CRITICAL"===t?"critical":"HIGH"===t?"high":"MEDIUM"===t?"medium":"LOW"===t?"low":"SAFE"===t?"safe":"info"}e.s(["Badge",()=>c,"riskVariant",()=>o],95659)},66949,e=>{"use strict";let t=(0,e.i(24929).default)("lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);e.s(["Lock",()=>t],66949)},40950,e=>{"use strict";var t=e.i(27493),a=e.i(76490),r=e.i(66949);function s({tabs:e,activeTab:s,onChange:i,className:n}){return(0,t.jsx)("div",{className:(0,a.cn)("flex items-center gap-4 overflow-x-auto border-b border-[var(--term-border)] px-1 scrollbar-hide","theme-glass:gap-1 theme-glass:rounded-xl theme-glass:border-0 theme-glass:bg-[var(--sc-bg-surface)] theme-glass:p-1",n),role:"tablist",children:e.map(e=>{let n=e.id===s;return(0,t.jsxs)("button",{type:"button",role:"tab","aria-selected":n?"true":"false",onClick:()=>i(e.id),className:(0,a.cn)("relative flex shrink-0 items-center gap-2 px-1 py-2 text-xs font-mono transition-colors","focus-visible:outline-1 focus-visible:outline-offset-2 focus-visible:outline-[var(--term-electric)]",n?"text-[var(--term-electric-fg)]":"text-[var(--term-text-muted)] hover:text-[var(--term-text)]","theme-glass:font-medium theme-glass:font-sans theme-glass:rounded-lg theme-glass:px-3 theme-glass:py-2 sm:theme-glass:px-4 sm:theme-glass:text-sm",n&&"theme-glass:bg-[var(--sc-bg-elevated)] theme-glass:text-[var(--sc-text-primary)]",!n&&"theme-glass:hover:text-[var(--sc-text-secondary)]"),children:[e.icon,(0,t.jsx)("span",{children:e.label}),e.locked&&(0,t.jsx)(r.Lock,{size:11,className:"text-[var(--term-warn)] theme-glass:text-[var(--sc-coral)]"}),void 0!==e.count&&e.count>0&&(0,t.jsxs)("span",{className:"text-[var(--term-text-muted)] theme-glass:ml-0.5 theme-glass:rounded-full theme-glass:bg-[var(--sc-coral)]/15 theme-glass:px-1.5 theme-glass:py-0.5 theme-glass:text-[10px] theme-glass:font-bold theme-glass:text-[var(--sc-coral)]",children:[(0,t.jsxs)("span",{className:"theme-glass:hidden",children:["(",e.count,")"]}),(0,t.jsx)("span",{className:"hidden theme-glass:inline",children:e.count})]}),n&&(0,t.jsx)("span",{"aria-hidden":!0,className:"absolute -bottom-px left-0 right-0 h-px bg-[var(--term-electric)] theme-glass:hidden"})]},e.id)})})}function i({eyebrow:e,title:r,subtitle:i,actions:n,tabs:l,activeTab:c,onTabChange:o,className:d}){return(0,t.jsxs)("div",{className:(0,a.cn)("space-y-3 theme-glass:space-y-4",d),children:[(0,t.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between sm:gap-4 theme-glass:gap-3",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsxs)("div",{className:"theme-glass:hidden",children:[e&&(0,t.jsxs)("p",{className:"text-[11px] uppercase tracking-wider text-[var(--term-text-muted)]",children:[(0,t.jsx)("span",{className:"text-[var(--term-electric-fg)]",children:"›"})," ",e]}),(0,t.jsxs)("h1",{className:"mt-1 flex items-baseline flex-wrap gap-2 text-base font-mono text-[var(--term-text)] sm:text-lg",children:[(0,t.jsx)("span",{className:"text-[var(--term-electric-fg)]","aria-hidden":!0,children:"$"}),(0,t.jsx)("span",{children:"shieldcortex"}),(0,t.jsx)("span",{className:"text-[var(--term-text-dim)]",children:r.toLowerCase()}),(0,t.jsx)("span",{className:"cli-cursor text-[var(--term-electric-fg)]","aria-hidden":!0})]}),i&&(0,t.jsxs)("p",{className:"mt-1 text-xs text-[var(--term-text-muted)]",children:[(0,t.jsx)("span",{"aria-hidden":!0,children:"#"})," ",i]})]}),(0,t.jsxs)("div",{className:"hidden theme-glass:block",children:[e&&(0,t.jsx)("p",{className:"text-[10px] font-semibold uppercase tracking-[0.2em] text-[var(--sc-coral)] sm:text-[11px]",children:e}),(0,t.jsx)("h1",{className:"mt-1 text-xl font-bold text-[var(--sc-text-primary)] sm:text-2xl",children:r}),i&&(0,t.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-secondary)] sm:text-sm",children:i})]})]}),n&&(0,t.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:n})]}),l&&c&&o&&(0,t.jsx)(s,{tabs:l,activeTab:c,onChange:o})]})}e.s(["PageHeader",()=>i],40950)},81523,e=>{"use strict";var t=e.i(27493),a=e.i(76490),r=e.i(4);let s={coral:"border border-[var(--term-electric)] text-[var(--term-electric-fg)] bg-transparent hover:bg-[var(--term-electric)]/10",cyan:"border border-[var(--term-neon)] text-[var(--term-neon-fg)] bg-transparent hover:bg-[var(--term-neon)]/10",ghost:"border border-transparent text-[var(--term-text-muted)] bg-transparent hover:text-[var(--term-text)] hover:border-[var(--term-border)]",outline:"border border-[var(--term-border)] text-[var(--term-text-dim)] bg-transparent hover:border-[var(--term-text-muted)] hover:text-[var(--term-text)]"},i={sm:"px-2 py-1 text-xs",md:"px-3 py-1.5 text-sm",lg:"px-4 py-2 text-sm"},n={coral:"theme-glass:border-0 theme-glass:bg-gradient-to-br theme-glass:from-[var(--sc-coral)] theme-glass:to-[var(--sc-coral-dark)] theme-glass:text-white theme-glass:hover:shadow-[0_8px_30px_var(--sc-glow-coral-mid)]",cyan:"theme-glass:border-0 theme-glass:bg-[var(--sc-cyan)] theme-glass:text-[var(--sc-bg-deep)] theme-glass:hover:bg-[var(--sc-cyan-mid)]",ghost:"theme-glass:bg-transparent theme-glass:text-[var(--sc-text-secondary)] theme-glass:hover:bg-[var(--sc-surface-interactive)]",outline:"theme-glass:bg-transparent theme-glass:border theme-glass:border-[var(--sc-border)] theme-glass:text-[var(--sc-text-secondary)]"},l={sm:"theme-glass:px-3 theme-glass:py-1.5 theme-glass:text-xs theme-glass:rounded-lg",md:"theme-glass:px-4 theme-glass:py-2 theme-glass:text-sm theme-glass:rounded-xl",lg:"theme-glass:px-6 theme-glass:py-3 theme-glass:text-sm theme-glass:rounded-xl"},c=(0,r.forwardRef)(({variant:e="coral",size:r="md",glow:c=!1,pulse:o=!1,className:d,children:m,...u},h)=>(0,t.jsxs)("button",{ref:h,className:(0,a.cn)("inline-flex items-center justify-center gap-2 rounded-md font-mono transition-colors","focus-visible:outline-1 focus-visible:outline-offset-2 focus-visible:outline-[var(--term-electric)]",o?"disabled:pointer-events-none":"disabled:pointer-events-none disabled:opacity-50",s[e],i[r],"theme-glass:font-semibold theme-glass:transition-all theme-glass:hover:-translate-y-0.5",n[e],l[r],c&&"coral"===e&&"theme-glass:glow-coral-subtle",c&&"cyan"===e&&"theme-glass:glow-cyan-subtle",o&&"theme-glass:glow-cyan-pulse",d),type:"button",...u,children:[(0,t.jsxs)("span",{className:"inline-flex items-center gap-2 theme-glass:hidden",children:[o&&(0,t.jsx)("span",{className:"cli-cursor","aria-hidden":!0}),(0,t.jsx)("span",{className:"text-[var(--term-text-muted)]","aria-hidden":!0,children:"["}),(0,t.jsx)("span",{className:"leading-none",children:m}),(0,t.jsx)("span",{className:"text-[var(--term-text-muted)]","aria-hidden":!0,children:"]"})]}),(0,t.jsx)("span",{className:"hidden theme-glass:inline-flex items-center gap-2",children:m})]}));c.displayName="Button",e.s(["Button",0,c])},19331,e=>{"use strict";let t=(0,e.i(24929).default)("clock-3",[["path",{d:"M12 6v6h4",key:"135r8i"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);e.s(["Clock3",()=>t],19331)},53615,84982,e=>{"use strict";var t=e.i(27493),a=e.i(76490);function r({className:e}){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:(0,a.cn)("theme-glass:hidden flex items-center overflow-hidden rounded-md bg-[var(--term-surface-2)] text-[var(--term-text-muted)] text-xs leading-none animate-pulse px-2",e),"aria-busy":"true","aria-live":"polite",children:(0,t.jsx)("span",{className:"select-none whitespace-nowrap tracking-tighter",children:"█▓▓▓▒▒▒░░░░ ▓▓▒▒░░ █▓▒░ ▓▓▒░░ █▓▓▒░░░ ▓▒░░ █▒▒░"})}),(0,t.jsx)("div",{className:(0,a.cn)("hidden theme-glass:block animate-pulse rounded-xl bg-[var(--sc-surface-interactive)]",e),"aria-busy":"true","aria-live":"polite"})]})}function s(){return(0,t.jsxs)("div",{className:"mx-auto max-w-7xl space-y-6 p-6",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(r,{className:"h-3 w-24"}),(0,t.jsx)(r,{className:"h-7 w-56"}),(0,t.jsx)(r,{className:"h-4 w-80"})]}),(0,t.jsx)(r,{className:"h-10 w-96"}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4 lg:grid-cols-4",children:[(0,t.jsx)(r,{className:"h-24"}),(0,t.jsx)(r,{className:"h-24"}),(0,t.jsx)(r,{className:"h-24"}),(0,t.jsx)(r,{className:"h-24"})]}),(0,t.jsxs)("div",{className:"grid gap-6 lg:grid-cols-2",children:[(0,t.jsx)(r,{className:"h-64"}),(0,t.jsx)(r,{className:"h-64"})]})]})}e.s(["PageSkeleton",()=>s,"Skeleton",()=>r],53615);let i=(0,e.i(24929).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["Loader2",()=>i],84982)},77715,e=>{"use strict";let t=(0,e.i(24929).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.s(["XCircle",()=>t],77715)}]);
@@ -1,3 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,27241,e=>{"use strict";let t,a,r,s,c;var i=e.i(27493),l=e.i(16871),n=e.i(4),o=e.i(53615),d=e.i(18509),x=e.i(24929);let m=(0,x.default)("radio-tower",[["path",{d:"M4.9 16.1C1 12.2 1 5.8 4.9 1.9",key:"s0qx1y"}],["path",{d:"M7.8 4.7a6.14 6.14 0 0 0-.8 7.5",key:"1idnkw"}],["circle",{cx:"12",cy:"9",r:"2",key:"1092wv"}],["path",{d:"M16.2 4.8c2 2 2.26 5.11.8 7.47",key:"ojru2q"}],["path",{d:"M19.1 1.9a9.96 9.96 0 0 1 0 14.1",key:"rhi7fg"}],["path",{d:"M9.5 18h5",key:"mfy3pd"}],["path",{d:"m8 22 4-11 4 11",key:"25yftu"}]]);var u=e.i(27528),p=e.i(51069),v=e.i(46194),h=e.i(40950),g=e.i(22534),b=e.i(45688),y=e.i(71921),j=e.i(1235),f=e.i(88969);let N=g.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function w(){let e=await (0,f.authFetch)(`${N}/api/iron-dome/status`);if(!e.ok)throw Error(await (0,f.readApiError)(e,"Failed to fetch Iron Dome status"));return e.json()}async function k(e){let t=await (0,f.authFetch)(`${N}/api/iron-dome/activate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({profile:e})});if(!t.ok)throw Error(await (0,f.readApiError)(t,"Failed to activate Iron Dome"));return t.json()}async function C(){let e=await (0,f.authFetch)(`${N}/api/iron-dome/deactivate`,{method:"POST"});if(!e.ok)throw Error(await (0,f.readApiError)(e,"Failed to deactivate Iron Dome"));return e.json()}async function _(e){let t=await (0,f.authFetch)(`${N}/api/iron-dome/config`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error(await (0,f.readApiError)(t,"Failed to update Iron Dome configuration"));return t.json()}async function S(e){let t=await (0,f.authFetch)(`${N}/api/iron-dome/scan`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:e})});if(!t.ok)throw Error(await (0,f.readApiError)(t,"Failed to scan text"));return t.json()}async function A(){let e=await (0,f.authFetch)(`${N}/api/iron-dome/emergency-stop`,{method:"POST"});if(!e.ok)throw Error(await (0,f.readApiError)(e,"Failed to trigger emergency stop"));return e.json()}async function E(e){let t=await (0,f.authFetch)(`${N}/api/iron-dome/resume`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reason:e||"Resumed via dashboard"})});if(!t.ok)throw Error(await (0,f.readApiError)(t,"Failed to resume operations"));return t.json()}async function L(){let e=await (0,f.authFetch)(`${N}/api/control/status`);if(!e.ok)throw Error(await (0,f.readApiError)(e,"Failed to fetch control status"));return e.json()}async function P(e){let t=new URLSearchParams;e&&t.set("limit",e.toString());let a=await (0,f.authFetch)(`${N}/api/iron-dome/audit?${t}`);if(!a.ok)throw Error(await (0,f.readApiError)(a,"Failed to fetch Iron Dome audit"));return a.json()}function $(){return(0,b.useQuery)({queryKey:["iron-dome-status"],queryFn:w,refetchInterval:3e4,retry:2})}var z=e.i(87353);let F=g.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function T(e){let t=new URLSearchParams;e?.limit&&t.set("limit",String(e.limit)),e?.severity&&t.set("severity",e.severity),e?.outcome&&t.set("outcome",e.outcome),e?.tool&&t.set("tool",e.tool);let a=await (0,f.authFetch)(`${F}/api/v1/intercepts?${t}`);if(!a.ok)throw Error(await (0,f.readApiError)(a,"Failed to fetch interceptor events"));return a.json()}function I(e){return(0,b.useQuery)({queryKey:["interceptor-events",e],queryFn:()=>T(e),refetchInterval:3e4,retry:2})}var M=e.i(84982);let q=(0,x.default)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);var O=e.i(15771),D=e.i(77715),R=e.i(66949),Q=e.i(71259);let K=(0,x.default)("radio",[["path",{d:"M16.247 7.761a6 6 0 0 1 0 8.478",key:"1fwjs5"}],["path",{d:"M19.075 4.933a10 10 0 0 1 0 14.134",key:"ehdyv1"}],["path",{d:"M4.925 19.067a10 10 0 0 1 0-14.134",key:"1q22gi"}],["path",{d:"M7.753 16.239a6 6 0 0 1 0-8.478",key:"r2q7qm"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]),U=(0,x.default)("shield-off",[["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M5 5a1 1 0 0 0-1 1v7c0 5 3.5 7.5 7.67 8.94a1 1 0 0 0 .67.01c2.35-.82 4.48-1.97 5.9-3.71",key:"1jlk70"}],["path",{d:"M9.309 3.652A12.252 12.252 0 0 0 11.24 2.28a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1v7a9.784 9.784 0 0 1-.08 1.264",key:"18rp1v"}]]),B=(0,x.default)("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]),V=(0,x.default)("scan",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}]]),H=(0,x.default)("octagon-x",[["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z",key:"2d38gg"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]),W=(0,x.default)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]),J=(0,x.default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);var G=e.i(77744),X=e.i(19711);let Z=g.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001",Y=[{id:1,name:"Block API key patterns",priority:1,condition_type:"regex",condition_value:"sk-[a-zA-Z0-9]{32,}",action:"block",enabled:!0},{id:2,name:"Quarantine code injection",priority:2,condition_type:"regex",condition_value:"eval\\(|Function\\(",action:"quarantine",enabled:!0},{id:3,name:"Allow internal docs",priority:10,condition_type:"source",condition_value:"agent:docs-helper",action:"allow",enabled:!1}],ee=[{id:1,name:"Internal tool abuse",category:"tool_misuse",severity:"high",regex:"execute_tool\\(.*?delete|drop|truncate",description:"Detects attempts to use internal tools for destructive operations.",enabled:!0},{id:2,name:"PII exfiltration",category:"data_leak",severity:"critical",regex:"(SSN|social.security|\\d{3}-\\d{2}-\\d{4})",description:"Catches social security number patterns in agent memory writes.",enabled:!0},{id:3,name:"Prompt override attempt",category:"injection",severity:"medium",regex:"ignore.*(previous|above|prior).*instructions",description:"Detects common prompt injection override phrases.",enabled:!0}],et=[{id:1,name:"Strict Healthcare",description:"Blocks all PII patterns, requires approval for external actions, whitelists only HIPAA-compliant channels.",is_active:!0},{id:2,name:"Dev Sandbox",description:"Permissive mode for development. Allows all channels, logs but does not block. Ideal for testing.",is_active:!1}];function ea(){let e,t,a,{data:r,isLoading:s,isLocked:c}={...e=(0,b.useQuery)({queryKey:["custom-patterns"],queryFn:()=>(0,f.gatedFetch)(`${Z}/api/patterns`).then(e=>{if(!e.ok)throw Error("Failed to fetch custom patterns");return e.json()}),retry:(e,t)=>!(t instanceof f.FeatureLockedError)&&e<2,refetchInterval:3e4}),isLocked:e.error instanceof f.FeatureLockedError},l=(t=(0,j.useQueryClient)(),(0,y.useMutation)({mutationFn:e=>(0,f.gatedFetch)(`${Z}/api/patterns`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}).then(e=>e.ok?e.json():e.json().then(e=>{throw Error(e.error)})),onSuccess:()=>{t.invalidateQueries({queryKey:["custom-patterns"]})}})),o=(a=(0,j.useQueryClient)(),(0,y.useMutation)({mutationFn:e=>(0,f.gatedFetch)(`${Z}/api/patterns/${e}`,{method:"DELETE"}).then(e=>e.ok?e.json():e.json().then(e=>{throw Error(e.error)})),onSuccess:()=>{a.invalidateQueries({queryKey:["custom-patterns"]})}})),d=(0,y.useMutation)({mutationFn:({id:e,text:t})=>(0,f.gatedFetch)(`${Z}/api/patterns/${e}/test`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:t})}).then(e=>e.ok?e.json():e.json().then(e=>{throw Error(e.error)}))}),[x,m]=(0,n.useState)(!1),[u,p]=(0,n.useState)(null),[v,h]=(0,n.useState)({name:"",category:"custom",severity:"medium",regex:"",description:""}),g=r?.patterns??[],N=!0,w="";if(v.regex)try{new RegExp(v.regex)}catch(e){N=!1,w=e.message}return c?(0,i.jsx)(er,{}):(0,i.jsxs)("div",{className:"space-y-3",children:[(0,i.jsxs)("div",{className:"flex items-center justify-between",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsx)(q,{size:16,className:"text-[var(--sc-coral)]"}),(0,i.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Custom Injection Patterns"}),(0,i.jsxs)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:[g.length,"/50"]})]}),(0,i.jsxs)("button",{onClick:()=>m(!x),className:"flex items-center gap-1 px-2 py-1 text-xs bg-[var(--sc-coral)]/20 text-[var(--sc-coral)] rounded hover:bg-[var(--sc-coral)]/30 transition-colors",children:[(0,i.jsx)(J,{size:12})," Add Pattern"]})]}),x&&(0,i.jsxs)("form",{onSubmit:e=>{e.preventDefault(),l.mutate(v,{onSuccess:()=>{m(!1),h({name:"",category:"custom",severity:"medium",regex:"",description:""})}})},className:"p-3 bg-[var(--sc-bg-elevated)] rounded-lg space-y-2",children:[(0,i.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,i.jsx)("input",{value:v.name,onChange:e=>h(t=>({...t,name:e.target.value})),placeholder:"Pattern name",required:!0,className:"px-2 py-1.5 text-xs bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)]"}),(0,i.jsxs)("select",{value:v.severity,onChange:e=>h(t=>({...t,severity:e.target.value})),className:"px-2 py-1.5 text-xs bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded text-[var(--sc-text-primary)]",children:[(0,i.jsx)("option",{value:"critical",children:"Critical"}),(0,i.jsx)("option",{value:"high",children:"High"}),(0,i.jsx)("option",{value:"medium",children:"Medium"}),(0,i.jsx)("option",{value:"low",children:"Low"})]})]}),(0,i.jsxs)("div",{className:"relative",children:[(0,i.jsx)("input",{value:v.regex,onChange:e=>h(t=>({...t,regex:e.target.value})),placeholder:"Regex pattern",required:!0,className:`w-full px-2 py-1.5 text-xs bg-[var(--sc-bg-surface)] border rounded text-[var(--sc-text-primary)] font-mono placeholder:text-[var(--sc-text-muted)] ${N?"border-[var(--sc-border)]":"border-[var(--sc-coral)]"}`}),!N&&(0,i.jsx)("p",{className:"text-[10px] text-[var(--sc-coral)] mt-0.5",children:w})]}),(0,i.jsx)("input",{value:v.description,onChange:e=>h(t=>({...t,description:e.target.value})),placeholder:"Description (optional)",className:"w-full px-2 py-1.5 text-xs bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)]"}),(0,i.jsxs)("div",{className:"flex gap-2",children:[(0,i.jsx)("button",{type:"submit",disabled:l.isPending||!N,className:"px-3 py-1 text-xs bg-[var(--sc-coral)] text-[var(--sc-text-primary)] rounded hover:bg-[var(--sc-coral)] disabled:opacity-50",children:l.isPending?"Creating...":"Create"}),(0,i.jsx)("button",{type:"button",onClick:()=>m(!1),className:"px-3 py-1 text-xs text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)]",children:"Cancel"})]}),l.error&&(0,i.jsx)("p",{className:"text-xs text-[var(--sc-coral)]",children:l.error.message})]}),s?(0,i.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)] py-4 text-center",children:"Loading patterns..."}):0===g.length?(0,i.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)] py-4 text-center",children:'No custom patterns yet. Click "Add Pattern" to create one.'}):(0,i.jsx)("div",{className:"space-y-1",children:g.map(e=>(0,i.jsxs)("div",{className:"px-3 py-2 bg-[var(--sc-bg-elevated)] rounded text-xs space-y-1",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsx)("span",{className:"text-[var(--sc-text-primary)] flex-1 font-medium",children:e.name}),(0,i.jsx)("span",{className:`px-1.5 py-0.5 rounded text-[10px] font-medium ${"critical"===e.severity||"high"===e.severity?"bg-[var(--sc-coral)]/20 text-[var(--sc-coral)]":"medium"===e.severity?"bg-[var(--sc-amber)]/20 text-[var(--sc-amber)]":"bg-[var(--sc-bg-elevated)]/20 text-[var(--sc-text-secondary)]"}`,children:e.severity}),(0,i.jsx)("button",{onClick:()=>p(u?.id===e.id?null:{id:e.id,text:""}),className:"text-[var(--sc-text-muted)] hover:text-[var(--sc-cyan)]",title:"Test pattern",children:(0,i.jsx)(W,{size:12})}),(0,i.jsx)("button",{onClick:()=>o.mutate(e.id),className:"text-[var(--sc-text-muted)] hover:text-[var(--sc-coral)]",children:(0,i.jsx)(G.Trash2,{size:12})})]}),(0,i.jsx)("code",{className:"text-[var(--sc-text-muted)] text-[10px] block truncate",children:e.regex}),u?.id===e.id&&(0,i.jsxs)("div",{className:"flex gap-2 mt-1",children:[(0,i.jsx)("input",{value:u.text,onChange:t=>p({id:e.id,text:t.target.value}),placeholder:"Test text...",className:"flex-1 px-2 py-1 text-[10px] bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)]"}),(0,i.jsx)("button",{onClick:()=>d.mutate({id:e.id,text:u.text}),disabled:!u.text,className:"px-2 py-1 text-[10px] bg-[var(--sc-cyan)]/20 text-[var(--sc-cyan)] rounded hover:bg-[var(--sc-cyan)]/30 disabled:opacity-50",children:"Test"}),d.data&&(0,i.jsxs)("span",{className:"text-[10px] text-[var(--sc-text-secondary)] self-center",children:[d.data.count," matches"]})]})]},e.id))})]})}function er(){return(0,i.jsxs)("div",{className:"space-y-3",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsx)(q,{size:16,className:"text-[var(--sc-coral)]"}),(0,i.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Custom Injection Patterns"}),(0,i.jsx)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:"0/50"})]}),(0,i.jsx)("div",{className:"space-y-1",children:ee.map(e=>(0,i.jsxs)("div",{className:"px-3 py-2 bg-[var(--sc-bg-elevated)] rounded text-xs space-y-1",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsx)("span",{className:"text-[var(--sc-text-primary)] flex-1 font-medium",children:e.name}),(0,i.jsx)("span",{className:`px-1.5 py-0.5 rounded text-[10px] font-medium ${"critical"===e.severity||"high"===e.severity?"bg-[var(--sc-coral)]/20 text-[var(--sc-coral)]":"bg-[var(--sc-amber)]/20 text-[var(--sc-amber)]"}`,children:e.severity})]}),(0,i.jsx)("code",{className:"text-[var(--sc-text-muted)] text-[10px] block truncate",children:e.regex})]},e.id))})]})}function es(){return(0,i.jsx)("div",{className:"bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded-xl p-4",children:(0,i.jsx)(X.ProFeatureGate,{feature:"custom_injection_patterns",label:"Define up to 50 custom regex patterns for detecting domain-specific threats.",children:(0,i.jsx)(ea,{})})})}var ec=e.i(16511);let ei=g.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";function el(){let e,t,a,r,{data:s,isLoading:c,isLocked:l}={...e=(0,b.useQuery)({queryKey:["custom-policies"],queryFn:()=>(0,f.gatedFetch)(`${ei}/api/iron-dome/policies`).then(e=>{if(!e.ok)throw Error("Failed to fetch custom policies");return e.json()}),retry:(e,t)=>!(t instanceof f.FeatureLockedError)&&e<2,refetchInterval:3e4}),isLocked:e.error instanceof f.FeatureLockedError},o=(t=(0,j.useQueryClient)(),(0,y.useMutation)({mutationFn:e=>(0,f.gatedFetch)(`${ei}/api/iron-dome/policies`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}).then(e=>e.ok?e.json():e.json().then(e=>{throw Error(e.error)})),onSuccess:()=>{t.invalidateQueries({queryKey:["custom-policies"]})}})),d=(a=(0,j.useQueryClient)(),(0,y.useMutation)({mutationFn:e=>(0,f.gatedFetch)(`${ei}/api/iron-dome/policies/${e}`,{method:"DELETE"}).then(e=>e.ok?e.json():e.json().then(e=>{throw Error(e.error)})),onSuccess:()=>{a.invalidateQueries({queryKey:["custom-policies"]})}})),x=(r=(0,j.useQueryClient)(),(0,y.useMutation)({mutationFn:e=>(0,f.gatedFetch)(`${ei}/api/iron-dome/policies/${e}/activate`,{method:"PUT"}).then(e=>e.ok?e.json():e.json().then(e=>{throw Error(e.error)})),onSuccess:()=>{r.invalidateQueries({queryKey:["custom-policies"]})}})),[m,p]=(0,n.useState)(!1),[v,h]=(0,n.useState)({name:"",description:""}),g=s?.policies??[];return l?(0,i.jsx)(en,{}):(0,i.jsxs)("div",{className:"space-y-3",children:[(0,i.jsxs)("div",{className:"flex items-center justify-between",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsx)(u.Shield,{size:16,className:"text-[var(--sc-coral)]"}),(0,i.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Custom Iron Dome Policies"}),(0,i.jsxs)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:[g.length,"/10"]})]}),(0,i.jsxs)("button",{onClick:()=>p(!m),className:"flex items-center gap-1 px-2 py-1 text-xs bg-[var(--sc-coral)]/20 text-[var(--sc-coral)] rounded hover:bg-[var(--sc-coral)]/30 transition-colors",children:[(0,i.jsx)(J,{size:12})," Create Policy"]})]}),m&&(0,i.jsxs)("form",{onSubmit:e=>{e.preventDefault(),o.mutate({name:v.name,description:v.description,config:{}},{onSuccess:()=>{p(!1),h({name:"",description:""})}})},className:"p-3 bg-[var(--sc-bg-elevated)]/50 rounded-lg space-y-2",children:[(0,i.jsx)("input",{value:v.name,onChange:e=>h(t=>({...t,name:e.target.value})),placeholder:"Policy name",required:!0,className:"w-full px-2 py-1.5 text-xs bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)]"}),(0,i.jsx)("textarea",{value:v.description,onChange:e=>h(t=>({...t,description:e.target.value})),placeholder:"Description",rows:2,className:"w-full px-2 py-1.5 text-xs bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)] resize-none"}),(0,i.jsxs)("div",{className:"flex gap-2",children:[(0,i.jsx)("button",{type:"submit",disabled:o.isPending,className:"px-3 py-1 text-xs bg-[var(--sc-coral)] text-[var(--sc-text-primary)] rounded hover:bg-[var(--sc-coral)] disabled:opacity-50",children:o.isPending?"Creating...":"Create"}),(0,i.jsx)("button",{type:"button",onClick:()=>p(!1),className:"px-3 py-1 text-xs text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)]",children:"Cancel"})]}),o.error&&(0,i.jsx)("p",{className:"text-xs text-[var(--sc-coral)]",children:o.error.message})]}),c?(0,i.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)] py-4 text-center",children:"Loading policies..."}):0===g.length?(0,i.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)] py-4 text-center",children:'No custom policies yet. Click "Create Policy" to get started.'}):(0,i.jsx)("div",{className:"space-y-1",children:g.map(e=>(0,i.jsxs)("div",{className:"flex items-center gap-3 px-3 py-2 bg-[var(--sc-bg-elevated)]/30 rounded text-xs",children:[(0,i.jsxs)("div",{className:"flex-1",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsx)("span",{className:"text-[var(--sc-text-primary)] font-medium",children:e.name}),1===e.is_active&&(0,i.jsx)("span",{className:"px-1.5 py-0.5 rounded bg-[var(--sc-cyan)]/20 text-[var(--sc-cyan)] text-[10px] font-medium",children:"Active"})]}),e.description&&(0,i.jsx)("p",{className:"text-[var(--sc-text-muted)] text-[10px] mt-0.5",children:e.description})]}),!e.is_active&&(0,i.jsxs)("button",{onClick:()=>x.mutate(e.id),className:"flex items-center gap-1 px-2 py-1 text-[10px] bg-[var(--sc-cyan)]/20 text-[var(--sc-cyan)] rounded hover:bg-[var(--sc-cyan)]/30",title:"Set active",children:[(0,i.jsx)(ec.Check,{size:10})," Activate"]}),(0,i.jsx)("button",{onClick:()=>d.mutate(e.id),className:"text-[var(--sc-text-muted)] hover:text-[var(--sc-coral)]",children:(0,i.jsx)(G.Trash2,{size:12})})]},e.id))})]})}function en(){return(0,i.jsxs)("div",{className:"space-y-3",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsx)(u.Shield,{size:16,className:"text-[var(--sc-coral)]"}),(0,i.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Custom Iron Dome Policies"}),(0,i.jsx)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:"0/10"})]}),(0,i.jsx)("div",{className:"space-y-1",children:et.map(e=>(0,i.jsx)("div",{className:"flex items-center gap-3 px-3 py-2 bg-[var(--sc-bg-elevated)]/30 rounded text-xs",children:(0,i.jsxs)("div",{className:"flex-1",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsx)("span",{className:"text-[var(--sc-text-primary)] font-medium",children:e.name}),e.is_active&&(0,i.jsx)("span",{className:"px-1.5 py-0.5 rounded bg-[var(--sc-cyan)]/20 text-[var(--sc-cyan)] text-[10px] font-medium",children:"Active"})]}),(0,i.jsx)("p",{className:"text-[var(--sc-text-muted)] text-[10px] mt-0.5",children:e.description})]})},e.id))})]})}function eo(){return(0,i.jsx)("div",{className:"bg-[var(--sc-bg-surface)]/50 border border-[var(--sc-border)] rounded-xl p-4",children:(0,i.jsx)(X.ProFeatureGate,{feature:"custom_iron_dome_policies",label:"Create custom Iron Dome policies with tailored action gates and trust levels.",children:(0,i.jsx)(el,{})})})}let ed=[{id:"personal",label:"Personal",description:"Lighter touch for solo use",icon:u.Shield},{id:"enterprise",label:"Enterprise",description:"Financial & data protection",icon:R.Lock},{id:"school",label:"School",description:"GDPR strict, pupil data guarded",icon:B},{id:"paranoid",label:"Paranoid",description:"Everything requires approval",icon:d.AlertTriangle}],ex=[{name:"Injection Scanner",description:"40+ patterns across 8 categories",icon:V},{name:"Instruction Gateway",description:"Trusted channel validation",icon:K},{name:"Action Gate",description:"Approve / block external actions",icon:R.Lock},{name:"PII Guard",description:"Block sensitive data output",icon:Q.Eye},{name:"Kill Switch",description:"Emergency stop phrase",icon:U},{name:"Sub-Agent Control",description:"Restrict spawned agent operations",icon:B}],em={critical:"bg-[var(--sc-coral)]/20 text-[var(--sc-coral)] border-[var(--sc-coral)]/30",high:"bg-[var(--sc-coral)]/20 text-[var(--sc-coral)] border-[var(--sc-coral)]/30",medium:"bg-[var(--sc-amber)]/20 text-[var(--sc-amber)] border-[var(--sc-amber)]/30",low:"bg-[var(--sc-bg-elevated)]/20 text-[var(--sc-text-secondary)] border-[var(--sc-border)]/30"},eu={CRITICAL:"bg-[var(--sc-coral)]/20 text-[var(--sc-coral)]",HIGH:"bg-[var(--sc-coral)]/20 text-[var(--sc-coral)]",MEDIUM:"bg-[var(--sc-amber)]/20 text-[var(--sc-amber)]",LOW:"bg-[var(--sc-bg-elevated)]/20 text-[var(--sc-text-secondary)]",NONE:"bg-[var(--sc-cyan)]/20 text-[var(--sc-cyan)]"};function ep(){let e,t,a,r,s,{data:c,isLoading:l}=$(),{data:o}=(0,b.useQuery)({queryKey:["iron-dome-audit",50],queryFn:()=>P(50),refetchInterval:3e4,retry:2}),d=(e=(0,j.useQueryClient)(),(0,y.useMutation)({mutationFn:e=>k(e),onSuccess:()=>{e.invalidateQueries({queryKey:["iron-dome-status"]}),e.invalidateQueries({queryKey:["iron-dome-audit"]})}})),x=(t=(0,j.useQueryClient)(),(0,y.useMutation)({mutationFn:C,onSuccess:()=>{t.invalidateQueries({queryKey:["iron-dome-status"]})}})),m=(a=(0,j.useQueryClient)(),(0,y.useMutation)({mutationFn:e=>_(e),onSuccess:()=>{a.invalidateQueries({queryKey:["iron-dome-status"]}),a.invalidateQueries({queryKey:["iron-dome-audit"]})}})),p=(0,y.useMutation)({mutationFn:S}),v=(r=(0,j.useQueryClient)(),(0,y.useMutation)({mutationFn:A,onSuccess:()=>{r.invalidateQueries({queryKey:["iron-dome-status"]}),r.invalidateQueries({queryKey:["iron-dome-audit"]}),r.invalidateQueries({queryKey:["control-status"]})}})),h=(s=(0,j.useQueryClient)(),(0,y.useMutation)({mutationFn:e=>E(e),onSuccess:()=>{s.invalidateQueries({queryKey:["control-status"]}),s.invalidateQueries({queryKey:["iron-dome-status"]}),s.invalidateQueries({queryKey:["iron-dome-audit"]})}})),{data:g}=(0,b.useQuery)({queryKey:["control-status"],queryFn:L,refetchInterval:5e3,retry:2}),[f,N]=(0,n.useState)(""),[w,z]=(0,n.useState)(null),[F,T]=(0,n.useState)(""),I=c?.enabled??!1,R=g?.killSwitchActive??!1,Q=g?.killSwitchMeta??null,K=c?.profile,B=c?.config,J=B?.killPhrase??"",[G,X]=(0,n.useState)(J),[Z,Y]=(0,n.useState)(J);J!==Z&&(Y(J),X(J));let ee=o?.logs??[],et=ee.filter(e=>"BLOCK"===e.firewall_result).length,ea=ee.filter(e=>"ALLOW"===e.firewall_result).length,er=!!B&&G.trim()!==(B?.killPhrase??"");return(0,i.jsxs)("div",{className:"space-y-6",children:[(0,i.jsxs)("div",{className:"flex items-center gap-3",children:[l?(0,i.jsx)("span",{className:"text-[10px] text-[var(--sc-text-muted)] animate-pulse",children:"Loading..."}):(0,i.jsx)("span",{className:`text-[10px] font-medium px-2 py-0.5 rounded-full ${I?"bg-[var(--sc-coral)]/20 text-[var(--sc-coral)] border border-[var(--sc-coral)]/30":"bg-[var(--sc-bg-elevated)]/50 text-[var(--sc-text-muted)]"}`,children:I?"ACTIVE":"INACTIVE"}),I&&(0,i.jsxs)("button",{onClick:()=>{x.mutate()},disabled:x.isPending,className:"flex items-center gap-1.5 px-3 py-1.5 bg-[var(--sc-coral)]/10 border border-[var(--sc-coral)]/30 hover:bg-[var(--sc-coral)]/20 disabled:opacity-50 rounded-lg text-xs font-medium text-[var(--sc-coral)] transition-colors",children:[x.isPending?(0,i.jsx)(M.Loader2,{size:12,className:"animate-spin"}):(0,i.jsx)(U,{size:12}),"Deactivate"]})]}),(0,i.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[(0,i.jsxs)("div",{className:"glass-card p-6",children:[(0,i.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)] mb-3",children:"Security Profiles"}),(0,i.jsx)("div",{className:"grid grid-cols-2 gap-2",children:ed.map(({id:e,label:t,description:a,icon:r})=>(0,i.jsxs)("button",{onClick:()=>{d.mutate(e)},disabled:d.isPending,className:`text-left p-3 rounded-lg border transition-colors ${K===e?"border-[var(--sc-coral)]/50 bg-[var(--sc-coral)]/10 text-[var(--sc-coral)]":"border-[var(--sc-border)] bg-[var(--sc-bg-elevated)]/50 text-[var(--sc-text-secondary)] hover:border-[var(--sc-text-muted)]"}`,children:[(0,i.jsxs)("div",{className:"flex items-center gap-1.5 mb-1",children:[(0,i.jsx)(r,{size:12}),(0,i.jsx)("span",{className:"text-xs font-medium",children:t})]}),(0,i.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:a})]},e))})]}),(0,i.jsxs)("div",{className:"glass-card p-6",children:[(0,i.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)] mb-3",children:"Module Status"}),(0,i.jsx)("div",{className:"space-y-2",children:ex.map(({name:e,description:t,icon:a})=>(0,i.jsxs)("div",{className:"flex items-center gap-3 px-3 py-2 rounded-lg bg-[var(--sc-bg-elevated)]/50",children:[(0,i.jsx)(a,{size:14,className:I?"text-[var(--sc-coral)]":"text-[var(--sc-text-muted)]"}),(0,i.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,i.jsx)("div",{className:"text-xs font-medium text-[var(--sc-text-primary)]",children:e}),(0,i.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)] truncate",children:t})]}),(0,i.jsx)("span",{className:`w-2 h-2 rounded-full ${I?"bg-[var(--sc-coral)]":"bg-[var(--sc-text-muted)]"}`})]},e))})]})]}),B&&(0,i.jsxs)("div",{className:"glass-card p-6",children:[(0,i.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)] mb-3",children:"Active Configuration"}),(0,i.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4 text-xs",children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)] uppercase mb-1",children:"Trusted Channels"}),(0,i.jsx)("div",{className:"flex flex-wrap gap-1",children:B.trustedChannels.map(e=>(0,i.jsx)("span",{className:"px-1.5 py-0.5 bg-[var(--sc-bg-elevated)] rounded text-[var(--sc-text-secondary)]",children:e},e))})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)] uppercase mb-1",children:"Requires Approval"}),(0,i.jsx)("div",{className:"flex flex-wrap gap-1",children:B.requireApproval.map(e=>(0,i.jsx)("span",{className:"px-1.5 py-0.5 bg-[var(--sc-coral)]/10 border border-[var(--sc-coral)]/20 rounded text-[var(--sc-coral)]",children:e},e))})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)] uppercase mb-1",children:"Kill Phrase"}),(0,i.jsxs)("div",{className:"space-y-2",children:[(0,i.jsx)("input",{type:"text",value:G,onChange:e=>X(e.target.value),placeholder:"Set emergency stop phrase",className:"w-full bg-[var(--sc-bg-elevated)] border border-[var(--sc-border)] rounded-lg px-3 py-2 text-xs text-[var(--sc-text-primary)] font-mono placeholder:text-[var(--sc-text-muted)] focus:outline-none focus:ring-1 focus:ring-[var(--sc-coral)]"}),(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsx)("button",{onClick:()=>m.mutate({killPhrase:G.trim()}),disabled:m.isPending||!G.trim()||!er,className:"px-3 py-1.5 rounded-lg bg-[var(--sc-coral)] hover:bg-[var(--sc-coral)]/80 disabled:opacity-50 text-[11px] font-medium text-[var(--sc-text-primary)] transition-colors",children:m.isPending?"Saving...":"Save phrase"}),(0,i.jsx)("span",{className:"text-[10px] text-[var(--sc-text-muted)]",children:I?"Say this in a conversation to trigger lockdown.":"This will apply the next time Iron Dome is active."})]})]})]})]})]}),R?(0,i.jsxs)("div",{className:"glass-card-strong p-6 border-2 !border-[var(--sc-coral)]/50 animate-pulse-slow",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,i.jsx)(H,{size:18,className:"text-[var(--sc-coral)]"}),(0,i.jsx)("h3",{className:"text-sm font-bold text-[var(--sc-coral)] uppercase tracking-wide",children:"Kill Switch Active"}),(0,i.jsx)("span",{className:"ml-auto text-[10px] bg-[var(--sc-coral)]/20 text-[var(--sc-coral)] px-2 py-0.5 rounded-full border border-[var(--sc-coral)]/30",children:"LOCKDOWN"})]}),(0,i.jsx)("p",{className:"text-xs text-[var(--sc-coral)]/80 mb-2",children:"All agent operations are blocked. No memory reads, writes, graph queries, or consolidation. Iron Dome remains active and continues protecting."}),Q&&(0,i.jsxs)("div",{className:"bg-[var(--sc-coral)]/10 border border-[var(--sc-coral)]/20 rounded-lg p-3 mb-4 space-y-1",children:[(0,i.jsxs)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:[(0,i.jsx)("span",{className:"text-[var(--sc-coral)] font-medium",children:"Triggered:"})," ",new Date(Q.triggeredAt).toLocaleString()]}),(0,i.jsxs)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:[(0,i.jsx)("span",{className:"text-[var(--sc-coral)] font-medium",children:"Source:"})," ","kill_phrase"===Q.source?`Kill phrase "${Q.phrase}"`:"manual"===Q.source?"Manual (dashboard)":"mcp_tool"===Q.source?"MCP tool":Q.source]}),void 0!==Q.memoryCountAtTrigger&&(0,i.jsxs)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:[(0,i.jsx)("span",{className:"text-[var(--sc-coral)] font-medium",children:"Memories at trigger:"})," ",Q.memoryCountAtTrigger]})]}),(0,i.jsxs)("div",{className:"space-y-2",children:[(0,i.jsx)("input",{type:"text",value:F,onChange:e=>T(e.target.value),placeholder:"Reason for resuming (required)...",className:"w-full bg-[var(--sc-bg-elevated)] border border-[var(--sc-border)] rounded-lg px-3 py-2 text-xs text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)] focus:outline-none focus:ring-1 focus:ring-green-500"}),(0,i.jsxs)("div",{className:"flex items-center gap-3",children:[(0,i.jsxs)("button",{onClick:()=>{F.trim()&&(h.mutate(F.trim()),T(""))},disabled:h.isPending||!F.trim(),className:"flex items-center gap-1.5 px-4 py-2 bg-[var(--sc-cyan)] hover:bg-[var(--sc-cyan-mid)] disabled:opacity-50 rounded-lg text-xs font-medium text-[var(--sc-text-primary)] transition-colors",children:[h.isPending?(0,i.jsx)(M.Loader2,{size:12,className:"animate-spin"}):(0,i.jsx)(W,{size:12}),"Resume Agent"]}),(0,i.jsx)("span",{className:"text-[10px] text-[var(--sc-text-muted)]",children:"Only resume after you've investigated the threat"})]})]})]}):(0,i.jsxs)("div",{className:"glass-card p-6 !border-[var(--sc-coral)]/30",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,i.jsx)(H,{size:14,className:"text-[var(--sc-coral)]"}),(0,i.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-coral)]",children:"Emergency Stop"})]}),(0,i.jsx)("p",{className:"text-xs text-[var(--sc-text-secondary)] mb-3",children:"Immediately halts your agent when you suspect it has been compromised or is acting on poisoned data. Blocks ALL operations — no reads, writes, or modifications. Iron Dome stays active."}),B?.killPhrase&&(0,i.jsxs)("p",{className:"text-[10px] text-[var(--sc-text-muted)] mb-3",children:["Kill phrase: ",(0,i.jsxs)("span",{className:"font-mono text-[var(--sc-text-secondary)]",children:['"',B.killPhrase,'"']})," — say this in conversation for hands-free stop"]}),(0,i.jsxs)("button",{onClick:()=>v.mutate(),disabled:v.isPending,className:"flex items-center gap-1.5 px-4 py-2 bg-[var(--sc-coral)] hover:bg-[var(--sc-coral)]/80 disabled:opacity-50 rounded-lg text-xs font-bold text-[var(--sc-text-primary)] uppercase tracking-wider transition-colors",children:[v.isPending?(0,i.jsx)(M.Loader2,{size:12,className:"animate-spin"}):(0,i.jsx)(H,{size:14}),"Emergency Stop"]})]}),(0,i.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[(0,i.jsxs)("div",{className:"glass-card p-6",children:[(0,i.jsxs)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)] mb-3",children:[(0,i.jsx)(V,{size:14,className:"inline mr-1.5 text-[var(--sc-coral)]"}),"Injection Scanner"]}),(0,i.jsx)("textarea",{value:f,onChange:e=>N(e.target.value),placeholder:"Paste suspicious text to scan for injection patterns...",className:"w-full h-28 bg-[var(--sc-bg-elevated)] border border-[var(--sc-border)] rounded-lg p-3 text-sm text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)] resize-none focus:outline-none focus:ring-1 focus:ring-[var(--sc-coral)] focus:border-[var(--sc-coral)]"}),(0,i.jsxs)("button",{onClick:()=>{f.trim()&&p.mutate(f,{onSuccess:e=>z(e)})},disabled:p.isPending||!f.trim(),className:"mt-2 flex items-center gap-1.5 px-3 py-1.5 bg-[var(--sc-coral)] hover:bg-[var(--sc-coral)]/80 disabled:opacity-50 rounded-lg text-xs font-medium text-[var(--sc-text-primary)] transition-colors",children:[p.isPending?(0,i.jsx)(M.Loader2,{size:12,className:"animate-spin"}):(0,i.jsx)(q,{size:12}),"Scan"]}),w&&(0,i.jsxs)("div",{className:"mt-3 space-y-2",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[w.clean?(0,i.jsx)(O.CheckCircle2,{size:14,className:"text-[var(--sc-cyan)]"}):(0,i.jsx)(D.XCircle,{size:14,className:"text-[var(--sc-coral)]"}),(0,i.jsx)("span",{className:`text-[10px] font-medium px-2 py-0.5 rounded-full ${eu[w.riskLevel]??"bg-[var(--sc-bg-elevated)]/20 text-[var(--sc-text-secondary)]"}`,children:w.riskLevel}),(0,i.jsx)("span",{className:"text-xs text-[var(--sc-text-secondary)]",children:w.summary})]}),w.detections.map((e,t)=>(0,i.jsxs)("div",{className:`border rounded-lg p-3 ${em[e.severity]??"border-[var(--sc-border)]"}`,children:[(0,i.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,i.jsx)("span",{className:"text-[10px] font-medium uppercase",children:e.severity}),(0,i.jsx)("span",{className:"text-xs text-[var(--sc-text-primary)]",children:e.category.replace(/_/g," ")})]}),(0,i.jsx)("p",{className:"text-[11px] text-[var(--sc-text-secondary)] mb-1",children:e.description}),(0,i.jsx)("code",{className:"text-[10px] text-[var(--sc-text-muted)] bg-[var(--sc-bg-elevated)] px-1.5 py-0.5 rounded block truncate",children:e.match})]},t))]})]}),(0,i.jsxs)("div",{className:"glass-card p-6",children:[(0,i.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,i.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Event Feed"}),(0,i.jsxs)("span",{className:"text-[10px] text-[var(--sc-text-muted)]",children:["Last ",ee.length," events"]})]}),(0,i.jsxs)("div",{className:"grid grid-cols-3 gap-2 mb-3",children:[(0,i.jsxs)("div",{className:"bg-[var(--sc-bg-elevated)]/50 rounded-lg p-2 text-center",children:[(0,i.jsx)("div",{className:"text-sm font-bold text-[var(--sc-text-primary)]",children:ee.length}),(0,i.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:"Total"})]}),(0,i.jsxs)("div",{className:"bg-[var(--sc-bg-elevated)]/50 rounded-lg p-2 text-center",children:[(0,i.jsx)("div",{className:"text-sm font-bold text-[var(--sc-coral)]",children:et}),(0,i.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:"Blocked"})]}),(0,i.jsxs)("div",{className:"bg-[var(--sc-bg-elevated)]/50 rounded-lg p-2 text-center",children:[(0,i.jsx)("div",{className:"text-sm font-bold text-[var(--sc-cyan)]",children:ea}),(0,i.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:"Allowed"})]})]}),(0,i.jsx)("div",{className:"space-y-1 max-h-72 overflow-y-auto",children:0===ee.length?(0,i.jsxs)("div",{className:"text-center py-6",children:[(0,i.jsx)(u.Shield,{size:20,className:"text-[var(--sc-text-muted)] mx-auto mb-1.5"}),(0,i.jsx)("p",{className:"text-[10px] text-[var(--sc-text-muted)]",children:"No Iron Dome events yet"})]}):ee.map((e,t)=>(0,i.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1.5 rounded-md bg-[var(--sc-bg-elevated)]/50 text-xs",children:[(0,i.jsx)("span",{className:`w-1.5 h-1.5 rounded-full shrink-0 ${"BLOCK"===e.firewall_result?"bg-[var(--sc-coral)]":"bg-[var(--sc-cyan)]"}`}),(0,i.jsx)("span",{className:"text-[var(--sc-text-secondary)] truncate flex-1",children:(e.reason??"").replace(/^\[iron-dome:\w+\]\s*/,"")}),(0,i.jsx)("span",{className:"text-[10px] text-[var(--sc-text-muted)] shrink-0",children:new Date(e.timestamp).toLocaleTimeString()})]},e.id??t))})]})]}),(0,i.jsx)(es,{}),(0,i.jsx)(eo,{})]})}var ev=e.i(42098);let eh=(0,x.default)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);var eg=e.i(13808);let eb=(0,x.default)("tags",[["path",{d:"M13.172 2a2 2 0 0 1 1.414.586l6.71 6.71a2.4 2.4 0 0 1 0 3.408l-4.592 4.592a2.4 2.4 0 0 1-3.408 0l-6.71-6.71A2 2 0 0 1 6 9.172V3a1 1 0 0 1 1-1z",key:"16rjxf"}],["path",{d:"M2 7v6.172a2 2 0 0 0 .586 1.414l6.71 6.71a2.4 2.4 0 0 0 3.191.193",key:"178nd4"}],["circle",{cx:"10.5",cy:"6.5",r:".5",fill:"currentColor",key:"12ikhr"}]]),ey=(0,x.default)("wand-sparkles",[["path",{d:"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72",key:"ul74o6"}],["path",{d:"m14 7 3 3",key:"1r5n42"}],["path",{d:"M5 6v4",key:"ilb8ba"}],["path",{d:"M19 14v4",key:"blhpug"}],["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M7 8H3",key:"zfb6yr"}],["path",{d:"M21 16h-4",key:"1cnmox"}],["path",{d:"M11 3H9",key:"1obp7u"}]]);var ej=e.i(17278);let ef=(0,x.default)("square-check-big",[["path",{d:"M21 10.656V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.344",key:"2acyp4"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]),eN=(0,x.default)("square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]),ew=(0,x.default)("square-minus",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M8 12h8",key:"1wcyev"}]]);function ek({action:e,item:t,onConfirm:a,onCancel:r}){let[s,c]=(0,n.useState)(""),l="yes"===s.trim().toLowerCase(),o="memory_file"===t.source_type;return(0,i.jsx)("div",{className:"fixed inset-0 bg-black/60 flex items-center justify-center z-50",children:(0,i.jsxs)("div",{className:"bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded-xl p-6 max-w-md w-full mx-4",children:[(0,i.jsxs)("h3",{className:"text-sm font-semibold text-[var(--sc-text-primary)] mb-2",children:["approve"===e?"Approve":"Reject"," quarantined item?"]}),(0,i.jsx)("p",{className:"text-xs text-[var(--sc-text-secondary)] mb-1",children:(0,i.jsx)("strong",{children:t.title||"Untitled"})}),(0,i.jsx)("p",{className:"text-xs text-[var(--sc-text-muted)] mb-4",children:"approve"===e?o?"This will mark the memory-file finding as reviewed. The source file is not modified.":"This will approve the item and promote it into memory.":o?"This will dismiss the memory-file finding. The source file is not deleted or edited.":"This will permanently discard the memory."}),(0,i.jsxs)("div",{className:"mb-4",children:[(0,i.jsxs)("label",{className:"text-xs text-[var(--sc-text-secondary)] block mb-1",children:["Type ",(0,i.jsx)("strong",{className:"text-[var(--sc-text-primary)]",children:"YES"})," to confirm:"]}),(0,i.jsx)("input",{type:"text",value:s,onChange:e=>c(e.target.value),className:"w-full bg-[var(--sc-bg-elevated)] border border-[var(--sc-border)] text-[var(--sc-text-primary)] text-sm rounded-lg px-3 py-2 focus:ring-[var(--sc-cyan)] focus:border-[var(--sc-cyan)]",autoFocus:!0,onKeyDown:e=>{"Enter"===e.key&&l&&a(),"Escape"===e.key&&r()}})]}),(0,i.jsxs)("div",{className:"flex gap-2 justify-end",children:[(0,i.jsx)("button",{onClick:r,className:"px-3 py-1.5 text-xs text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)] transition-colors",children:"Cancel"}),(0,i.jsx)("button",{onClick:a,disabled:!l,className:`px-3 py-1.5 text-xs rounded-lg transition-colors ${l?"approve"===e?"bg-[var(--sc-cyan)] text-[var(--sc-text-primary)] hover:bg-[var(--sc-cyan-mid)]":"bg-[var(--sc-coral)] text-[var(--sc-text-primary)] hover:bg-[var(--sc-coral-mid)]":"bg-[var(--sc-bg-elevated)] text-[var(--sc-text-muted)] cursor-not-allowed"}`,children:"approve"===e&&o?"Mark reviewed":"approve"===e?"Approve":"Reject"})]})]})})}function eC({annotation:e}){var t;return(0,i.jsxs)("div",{className:"mb-3 rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)]/70 p-3",children:[(0,i.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,i.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-[10px] font-semibold uppercase tracking-[0.16em] text-[var(--sc-cyan)]",children:[(0,i.jsx)(eh,{size:12})," Local AI Explainer"]}),(0,i.jsx)("span",{className:"rounded border border-[var(--sc-border)] px-2 py-0.5 text-[10px] uppercase tracking-[0.12em] text-[var(--sc-text-secondary)]",children:e.category.replace(/_/g," ")}),(0,i.jsx)("span",{className:`rounded border px-2 py-0.5 text-[10px] uppercase tracking-[0.12em] ${"approve"===(t=e.suggestedAction)?"text-[var(--sc-cyan)] bg-[var(--sc-cyan)]/10 border-[var(--sc-cyan)]/25":"reject"===t?"text-[var(--sc-coral)] bg-[var(--sc-coral)]/10 border-[var(--sc-coral)]/25":"create_rule"===t?"text-[var(--sc-amber)] bg-[var(--sc-amber)]/10 border-[var(--sc-amber)]/25":"text-[var(--sc-text-secondary)] bg-[var(--sc-surface-interactive)] border-[var(--sc-border)]"}`,children:e.suggestedAction.replace(/_/g," ")}),(0,i.jsxs)("span",{className:"text-[10px] text-[var(--sc-text-muted)]",children:[Math.round(100*e.confidence),"% confidence"]}),e.similarGroupKey&&(0,i.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-[var(--sc-text-muted)]",children:[(0,i.jsx)(eb,{size:11})," ",e.similarGroupKey]})]}),(0,i.jsx)("p",{className:"mt-2 text-xs leading-5 text-[var(--sc-text-primary)]",children:e.summary}),(0,i.jsx)("p",{className:"mt-1 text-[11px] leading-5 text-[var(--sc-text-secondary)]",children:e.reasoning}),e.evidence.length>0&&(0,i.jsx)("div",{className:"mt-2 space-y-1.5",children:e.evidence.map((e,t)=>(0,i.jsxs)("div",{className:"rounded border border-[var(--sc-border)] bg-[var(--sc-bg-surface)] px-2 py-1.5",children:[(0,i.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:e.reason}),(0,i.jsxs)("div",{className:"mt-0.5 text-[11px] text-[var(--sc-text-primary)] break-words",children:['"',e.snippet,'"']})]},`${e.snippet}-${t}`))})]})}function e_(){let{projectFilter:e}=(0,ev.useDashboardStore)(),[t,a]=(0,n.useState)("pending"),{data:r,isLoading:s}=(0,z.useQuarantine)(t,100,e||void 0),{data:c}=(0,z.useReviewCopilotStatus)(),l=(0,z.useApproveQuarantine)(),o=(0,z.useRejectQuarantine)(),x=(0,z.useBulkApproveQuarantine)(),m=(0,z.useBulkRejectQuarantine)(),u=(0,z.useAnnotateQuarantine)(),p=(0,z.useAnnotatePendingQuarantine)(),[v,h]=(0,n.useState)(null),[g,b]=(0,n.useState)(new Set),[y,j]=(0,n.useState)(null),f=l.error?.message||o.error?.message||x.error?.message||m.error?.message||u.error?.message||p.error?.message||null,N=r?.items??[],w=N.filter(e=>"pending"===e.status),k=N.filter(e=>e.annotation),C=w.filter(e=>!e.annotation),_=w.filter(e=>g.has(e.id)).filter(e=>"memory_file"===e.source_type).length,S=(()=>{let e=new Map;for(let t of k){let a=t.annotation?.similarGroupKey;a&&e.set(a,(e.get(a)??0)+1)}return[...e.entries()].sort((e,t)=>t[1]-e[1]).slice(0,3)})(),A=w.length>0&&w.every(e=>g.has(e.id)),E=w.some(e=>g.has(e.id)),L=u.isPending||p.isPending,P=!!(c?.enabled&&c.featureEnabled&&c.modelCached);return(0,i.jsxs)("div",{className:"space-y-6",children:[v&&(0,i.jsx)(ek,{action:v.action,item:v.item,onConfirm:()=>{v&&("approve"===v.action?l.mutate(v.item.id):o.mutate({id:v.item.id}),h(null))},onCancel:()=>h(null)}),y&&(0,i.jsx)("div",{className:"fixed inset-0 bg-black/60 flex items-center justify-center z-50",children:(0,i.jsxs)("div",{className:"bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded-xl p-6 max-w-md w-full mx-4",children:[(0,i.jsxs)("h3",{className:"text-sm font-semibold text-[var(--sc-text-primary)] mb-2",children:["approve"===y?"Approve":"Reject"," ",g.size," item",1!==g.size?"s":"","?"]}),(0,i.jsx)("p",{className:"text-xs text-[var(--sc-text-secondary)] mb-4",children:"approve"===y?_>0?"Memory-file findings will be marked reviewed without editing files. Other selected items will be promoted into memory.":"This will approve all selected items and promote them into memory.":_>0?"Memory-file findings will be dismissed without editing files. Other selected memories will be discarded.":"This will permanently discard all selected memories."}),(0,i.jsxs)("div",{className:"flex gap-2 justify-end",children:[(0,i.jsx)("button",{onClick:()=>j(null),className:"px-3 py-1.5 text-xs text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)] transition-colors",children:"Cancel"}),(0,i.jsxs)("button",{onClick:()=>{if(!y||0===g.size)return;let e=Array.from(g);"approve"===y?x.mutate(e):m.mutate(e),b(new Set),j(null)},className:`px-3 py-1.5 text-xs rounded-lg transition-colors ${"approve"===y?"bg-[var(--sc-cyan)] text-[var(--sc-text-primary)] hover:bg-[var(--sc-cyan-mid)]":"bg-[var(--sc-coral)] text-[var(--sc-text-primary)] hover:bg-[var(--sc-coral-mid)]"}`,children:["approve"===y?"Approve":"Reject"," ",g.size," item",1!==g.size?"s":""]})]})]})}),(0,i.jsx)(X.ProFeatureGate,{feature:"local_ai_explainer",label:"Use a local model to explain and group quarantined items without sending content to the cloud.",children:(0,i.jsx)("div",{className:"glass-card p-5",children:(0,i.jsxs)("div",{className:"flex flex-col gap-4 lg:flex-row lg:items-center lg:justify-between",children:[(0,i.jsxs)("div",{children:[(0,i.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,i.jsxs)("h3",{className:"flex items-center gap-2 text-sm font-semibold text-[var(--sc-text-primary)]",children:[(0,i.jsx)(eg.Sparkles,{size:16,className:"text-[var(--sc-cyan)]"}),"Local AI Explainer"]}),(0,i.jsx)("span",{className:`rounded border px-2 py-0.5 text-[10px] uppercase tracking-[0.12em] ${c?.enabled?"border-[var(--sc-cyan)]/25 bg-[var(--sc-cyan)]/10 text-[var(--sc-cyan)]":"border-[var(--sc-border)] bg-[var(--sc-surface-interactive)] text-[var(--sc-text-muted)]"}`,children:c?.enabled?"enabled":"disabled"}),(0,i.jsx)("span",{className:`rounded border px-2 py-0.5 text-[10px] uppercase tracking-[0.12em] ${c?.modelCached?"border-[var(--sc-cyan)]/25 bg-[var(--sc-cyan)]/10 text-[var(--sc-cyan)]":"border-[var(--sc-border)] bg-[var(--sc-surface-interactive)] text-[var(--sc-text-muted)]"}`,children:c?.modelCached?"model cached":"model not cached"})]}),(0,i.jsx)("div",{className:"mt-2 text-xs leading-5 text-[var(--sc-text-secondary)]",children:c?.enabled?c.modelCached?"Explain unreviewed quarantine items locally; approve and reject decisions stay manual.":"Download the local model first: shieldcortex review-copilot download-model":"Enable from the CLI first: shieldcortex review-copilot enable"}),(0,i.jsxs)("div",{className:"mt-2 flex flex-wrap gap-2 text-[10px] text-[var(--sc-text-muted)]",children:[(0,i.jsxs)("span",{className:C.length>0?"text-[var(--sc-amber)]":"",children:[C.length," need explanation"]}),(0,i.jsxs)("span",{children:[k.length," explained in this view"]}),S.map(([e,t])=>(0,i.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,i.jsx)(eb,{size:11})," ",e,": ",t]},e))]})]}),(0,i.jsx)("div",{className:"flex flex-wrap gap-2",children:(0,i.jsxs)("button",{onClick:()=>{p.mutate({limit:Math.min(Math.max(C.length,1),100),project:e||void 0})},disabled:!P||L||0===C.length,className:"inline-flex items-center gap-1.5 rounded-lg bg-[var(--sc-cyan)]/10 px-3 py-1.5 text-xs font-semibold text-[var(--sc-cyan)] transition-colors hover:bg-[var(--sc-cyan)]/20 disabled:pointer-events-none disabled:opacity-45",children:[p.isPending?(0,i.jsx)(M.Loader2,{size:13,className:"animate-spin"}):(0,i.jsx)(ey,{size:13}),"Explain all"]})})]})})}),(0,i.jsxs)("div",{className:"glass-card p-5",children:[(0,i.jsx)("div",{className:"flex items-center justify-between",children:(0,i.jsx)("div",{className:"flex gap-1 bg-[var(--sc-bg-elevated)] rounded-lg p-0.5",children:["pending","approved","rejected"].map(e=>(0,i.jsx)("button",{onClick:()=>{a(e),b(new Set)},className:`px-3 py-1 text-xs rounded-md transition-colors capitalize ${t===e?"bg-[var(--sc-cyan)] text-[var(--sc-text-primary)]":"text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)]"}`,children:e},e))})}),"pending"===t&&w.length>0&&(0,i.jsxs)("div",{className:"flex items-center gap-3 mt-3",children:[(0,i.jsxs)("button",{onClick:()=>{A?b(new Set):b(new Set(w.map(e=>e.id)))},className:"flex items-center gap-1.5 text-xs text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)] transition-colors",children:[A?(0,i.jsx)(ef,{size:14,className:"text-[var(--sc-cyan)]"}):E?(0,i.jsx)(ew,{size:14,className:"text-[var(--sc-cyan)]"}):(0,i.jsx)(eN,{size:14}),A?"Deselect all":"Select all"]}),E&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:[g.size," selected"]}),(0,i.jsxs)("button",{onClick:()=>j("approve"),className:"flex items-center gap-1 px-2.5 py-1 text-xs bg-[var(--sc-cyan)]/10 text-[var(--sc-cyan)] rounded-lg hover:bg-[var(--sc-cyan)]/20 transition-colors",children:[(0,i.jsx)(ec.Check,{size:12})," Approve"]}),(0,i.jsxs)("button",{onClick:()=>j("reject"),className:"flex items-center gap-1 px-2.5 py-1 text-xs bg-[var(--sc-coral)]/10 text-[var(--sc-coral)] rounded-lg hover:bg-[var(--sc-coral)]/20 transition-colors",children:[(0,i.jsx)(ej.X,{size:12})," Reject"]})]})]})]}),f&&(0,i.jsx)("div",{className:"glass-card p-5 border-[var(--sc-coral)]/30 bg-[var(--sc-coral)]/10 text-sm text-[var(--sc-coral)]",children:f}),(0,i.jsx)("div",{children:s?(0,i.jsx)("div",{className:"glass-card p-5 flex items-center justify-center h-32",children:(0,i.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)] animate-pulse",children:"Loading quarantine items..."})}):0===N.length?(0,i.jsxs)("div",{className:"glass-card p-5 flex flex-col items-center justify-center h-32 text-[var(--sc-text-muted)]",children:[(0,i.jsx)(d.AlertTriangle,{size:24,className:"mb-2 text-[var(--sc-text-muted)]"}),(0,i.jsxs)("span",{className:"text-xs",children:["No ",t," items"]})]}):(0,i.jsx)("div",{className:"space-y-3",children:N.map(e=>{let t=(()=>{try{return JSON.parse(e.threat_indicators)}catch{return[]}})(),a="memory_file"===e.source_type;return(0,i.jsxs)("div",{className:`glass-card p-5 ${g.has(e.id)?"border-[var(--sc-cyan)]/50":"pending"===e.status&&!e.annotation?"border-[var(--sc-amber)]/35":""}`,children:[(0,i.jsxs)("div",{className:"flex items-start justify-between mb-2",children:[(0,i.jsxs)("div",{className:"flex items-start gap-2.5",children:["pending"===e.status&&(0,i.jsx)("button",{onClick:()=>{var t;return t=e.id,void b(e=>{let a=new Set(e);return a.has(t)?a.delete(t):a.add(t),a})},className:"mt-0.5 text-[var(--sc-text-muted)] hover:text-[var(--sc-cyan)] transition-colors shrink-0",children:g.has(e.id)?(0,i.jsx)(ef,{size:14,className:"text-[var(--sc-cyan)]"}):(0,i.jsx)(eN,{size:14})}),(0,i.jsxs)("div",{children:[(0,i.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,i.jsx)("h4",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:e.title||"Untitled"}),"pending"===e.status&&!e.annotation&&(0,i.jsxs)("span",{className:"inline-flex items-center gap-1 rounded border border-[var(--sc-amber)]/25 bg-[var(--sc-amber)]/10 px-2 py-0.5 text-[9px] font-semibold uppercase tracking-[0.12em] text-[var(--sc-amber)]",children:[(0,i.jsx)(eh,{size:10})," Needs explanation"]})]}),(0,i.jsxs)("div",{className:"text-[10px] text-[var(--sc-text-muted)] mt-0.5",children:[e.source_type," · ",new Date(e.created_at).toLocaleString(),e.anomaly_score>0&&(0,i.jsxs)("span",{className:`ml-2 ${e.anomaly_score>.5?"text-[var(--sc-coral)]":"text-[var(--sc-amber)]"}`,children:["Anomaly: ",e.anomaly_score.toFixed(2)]})]}),a&&(0,i.jsx)("div",{className:"mt-1 break-all font-mono text-[10px] text-[var(--sc-text-muted)]",children:e.source_identifier})]})]}),(0,i.jsx)("span",{className:"text-[10px] text-[var(--sc-coral)] bg-[var(--sc-coral)]/10 px-2 py-0.5 rounded",children:e.reason?.slice(0,50)||"Threat detected"})]}),(0,i.jsx)("div",{className:"bg-[var(--sc-bg-elevated)] rounded-lg p-3 mb-3 text-xs text-[var(--sc-text-primary)] whitespace-pre-wrap break-words",children:e.content?.slice(0,500)||"No content"}),t.length>0&&(0,i.jsx)("div",{className:"flex gap-1 mb-3 flex-wrap",children:t.map((e,t)=>(0,i.jsx)("span",{className:"text-[9px] text-[var(--sc-amber)] bg-[var(--sc-amber)]/10 px-1.5 py-0.5 rounded",children:e},t))}),e.annotation&&(0,i.jsx)(eC,{annotation:e.annotation}),"pending"===e.status&&(0,i.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,i.jsxs)("button",{onClick:()=>u.mutate(e.id),disabled:!P||u.isPending||p.isPending,className:"flex items-center gap-1 px-3 py-1.5 text-xs bg-[var(--sc-bg-elevated)] text-[var(--sc-text-secondary)] border border-[var(--sc-border)] rounded-lg hover:text-[var(--sc-cyan)] transition-colors disabled:pointer-events-none disabled:opacity-45",children:[u.isPending?(0,i.jsx)(M.Loader2,{size:12,className:"animate-spin"}):(0,i.jsx)(ey,{size:12}),e.annotation?"Re-explain":"Explain"]}),(0,i.jsxs)("button",{onClick:()=>h({action:"approve",item:e}),disabled:l.isPending||x.isPending,className:"flex items-center gap-1 px-3 py-1.5 text-xs bg-[var(--sc-cyan)]/10 text-[var(--sc-cyan)] rounded-lg hover:bg-[var(--sc-cyan)]/20 transition-colors",children:[(0,i.jsx)(ec.Check,{size:12})," ",a?"Mark reviewed":"Approve"]}),(0,i.jsxs)("button",{onClick:()=>h({action:"reject",item:e}),disabled:o.isPending||m.isPending,className:"flex items-center gap-1 px-3 py-1.5 text-xs bg-[var(--sc-coral)]/10 text-[var(--sc-coral)] rounded-lg hover:bg-[var(--sc-coral)]/20 transition-colors",children:[(0,i.jsx)(ej.X,{size:12})," Reject"]})]}),e.reviewed_at&&(0,i.jsxs)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:["approved"===e.status?"Approved":"Rejected"," by ",e.reviewed_by," at ",new Date(e.reviewed_at).toLocaleString()]})]},e.id)})})})]})}var eS=e.i(16467),eA=e.i(95659);let eE=(0,x.default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]),eL=(0,x.default)("file-braces",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1",key:"1oajmo"}],["path",{d:"M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1",key:"mpwhp6"}]]);var eP=e.i(75025);let e$=g.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";function ez(){let e=(0,y.useMutation)({mutationFn:async({format:e,startTime:t,endTime:a})=>{let r=new URLSearchParams({format:e});t&&r.set("startTime",t),a&&r.set("endTime",a);let s=await (0,f.gatedFetch)(`${e$}/api/audit/export?${r}`);if(!s.ok)throw Error((await s.json().catch(()=>({}))).error||"Export failed");let c=await s.blob(),i=URL.createObjectURL(c),l=document.createElement("a");return l.href=i,l.download=`shieldcortex-audit-${Date.now()}.${"csv"===e?"csv":"json"}`,document.body.appendChild(l),l.click(),document.body.removeChild(l),setTimeout(()=>URL.revokeObjectURL(i),200),{success:!0}}}),[t,a]=(0,n.useState)("json");return(0,i.jsxs)("div",{className:"space-y-3",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsx)(eE,{size:16,className:"text-[var(--sc-cyan)]"}),(0,i.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Export Audit Logs"})]}),(0,i.jsxs)("div",{className:"flex items-center gap-3",children:[(0,i.jsxs)("div",{className:"flex rounded-lg overflow-hidden border border-[var(--sc-border)]",children:[(0,i.jsxs)("button",{onClick:()=>a("json"),className:`flex items-center gap-1.5 px-3 py-1.5 text-xs transition-colors ${"json"===t?"bg-[var(--sc-cyan)]/20 text-[var(--sc-cyan)]":"bg-[var(--sc-bg-elevated)] text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)]"}`,children:[(0,i.jsx)(eL,{size:12})," JSON"]}),(0,i.jsxs)("button",{onClick:()=>a("csv"),className:`flex items-center gap-1.5 px-3 py-1.5 text-xs transition-colors ${"csv"===t?"bg-[var(--sc-cyan)]/20 text-[var(--sc-cyan)]":"bg-[var(--sc-bg-elevated)] text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)]"}`,children:[(0,i.jsx)(eP.FileText,{size:12})," CSV"]})]}),(0,i.jsxs)("button",{onClick:()=>e.mutate({format:t}),disabled:e.isPending,className:"flex items-center gap-1.5 px-4 py-1.5 text-xs bg-[var(--sc-cyan)] text-[var(--sc-text-primary)] rounded-lg hover:bg-[var(--sc-cyan)] disabled:opacity-50 transition-colors",children:[(0,i.jsx)(eE,{size:12}),e.isPending?"Exporting...":"Export"]})]}),e.error&&(0,i.jsx)("p",{className:"text-xs text-[var(--sc-coral)]",children:e.error.message}),e.isSuccess&&(0,i.jsx)("p",{className:"text-xs text-[var(--sc-cyan)]",children:"Export downloaded successfully."})]})}function eF(){return(0,i.jsx)("div",{className:"bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded-xl p-4",children:(0,i.jsx)(X.ProFeatureGate,{feature:"audit_export",label:"Export your full audit trail as JSON or CSV for compliance reporting.",children:(0,i.jsx)(ez,{})})})}var eT=e.i(76490);function eI({className:e,...t}){return(0,i.jsx)("div",{"data-slot":"card",className:(0,eT.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",e),...t})}function eM({className:e,...t}){return(0,i.jsx)("div",{"data-slot":"card-header",className:(0,eT.cn)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",e),...t})}function eq({className:e,...t}){return(0,i.jsx)("div",{"data-slot":"card-content",className:(0,eT.cn)("px-6",e),...t})}function eO(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}var eD=Symbol.for("react.lazy"),eR=n[" use ".trim().toString()];function eQ(e){var t;return null!=e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===eD&&"_payload"in e&&"object"==typeof(t=e._payload)&&null!==t&&"then"in t}var eK=((c=n.forwardRef((e,t)=>{let{children:a,...r}=e;if(eQ(a)&&"function"==typeof eR&&(a=eR(a._payload)),n.isValidElement(a)){var s;let e,c,i=(s=a,(c=(e=Object.getOwnPropertyDescriptor(s.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?s.ref:(c=(e=Object.getOwnPropertyDescriptor(s,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?s.props.ref:s.props.ref||s.ref),l=function(e,t){let a={...t};for(let r in t){let s=e[r],c=t[r];/^on[A-Z]/.test(r)?s&&c?a[r]=(...e)=>{let t=c(...e);return s(...e),t}:s&&(a[r]=s):"style"===r?a[r]={...s,...c}:"className"===r&&(a[r]=[s,c].filter(Boolean).join(" "))}return{...e,...a}}(r,a.props);return a.type!==n.Fragment&&(l.ref=t?function(...e){return t=>{let a=!1,r=e.map(e=>{let r=eO(e,t);return a||"function"!=typeof r||(a=!0),r});if(a)return()=>{for(let t=0;t<r.length;t++){let a=r[t];"function"==typeof a?a():eO(e[t],null)}}}}(t,i):i),n.cloneElement(a,l)}return n.Children.count(a)>1?n.Children.only(null):null})).displayName="Slot.SlotClone",t=c,(a=n.forwardRef((e,a)=>{let{children:r,...s}=e;eQ(r)&&"function"==typeof eR&&(r=eR(r._payload));let c=n.Children.toArray(r),l=c.find(eB);if(l){let e=l.props.children,r=c.map(t=>t!==l?t:n.Children.count(e)>1?n.Children.only(null):n.isValidElement(e)?e.props.children:null);return(0,i.jsx)(t,{...s,ref:a,children:n.isValidElement(e)?n.cloneElement(e,void 0,r):null})}return(0,i.jsx)(t,{...s,ref:a,children:r})})).displayName="Slot.Slot",a),eU=Symbol("radix.slottable");function eB(e){return n.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===eU}var eV=e.i(2941);let eH=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,eW=eV.clsx,eJ=(r="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",s={variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-[var(--sc-text-primary)] hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}},e=>{var t;if((null==s?void 0:s.variants)==null)return eW(r,null==e?void 0:e.class,null==e?void 0:e.className);let{variants:a,defaultVariants:c}=s,i=Object.keys(a).map(t=>{let r=null==e?void 0:e[t],s=null==c?void 0:c[t];if(null===r)return null;let i=eH(r)||eH(s);return a[t][i]}),l=e&&Object.entries(e).reduce((e,t)=>{let[a,r]=t;return void 0===r||(e[a]=r),e},{});return eW(r,i,null==s||null==(t=s.compoundVariants)?void 0:t.reduce((e,t)=>{let{class:a,className:r,...s}=t;return Object.entries(s).every(e=>{let[t,a]=e;return Array.isArray(a)?a.includes({...c,...l}[t]):({...c,...l})[t]===a})?[...e,a,r]:e},[]),null==e?void 0:e.class,null==e?void 0:e.className)});function eG({className:e,variant:t="default",size:a="default",asChild:r=!1,...s}){return(0,i.jsx)(r?eK:"button",{"data-slot":"button","data-variant":t,"data-size":a,className:(0,eT.cn)(eJ({variant:t,size:a,className:e})),...s})}var eX=e.i(76624),eZ=e.i(23457),eY=e.i(44250),e0=e.i(45256);let e1={ALLOW:{color:"#22C55E",bg:"rgba(34, 197, 94, 0.15)",label:"Allowed"},BLOCK:{color:"#EF4444",bg:"rgba(239, 68, 68, 0.15)",label:"Blocked"},QUARANTINE:{color:"#EAB308",bg:"rgba(234, 179, 8, 0.15)",label:"Quarantined"}},e2={PUBLIC:{color:"#94a3b8",bg:"rgba(148, 163, 184, 0.15)"},INTERNAL:{color:"#60a5fa",bg:"rgba(96, 165, 250, 0.15)"},CONFIDENTIAL:{color:"#f59e0b",bg:"rgba(245, 158, 11, 0.15)"},RESTRICTED:{color:"#ef4444",bg:"rgba(239, 68, 68, 0.15)"}},e5={instruction_injection:{color:"#ef4444",bg:"rgba(239, 68, 68, 0.15)"},privilege_escalation:{color:"#ef4444",bg:"rgba(239, 68, 68, 0.15)"},credential_leak:{color:"#ef4444",bg:"rgba(239, 68, 68, 0.15)"},encoding_obfuscation:{color:"#f59e0b",bg:"rgba(245, 158, 11, 0.15)"},fragmented_payload:{color:"#f59e0b",bg:"rgba(245, 158, 11, 0.15)"},external_url:{color:"#f59e0b",bg:"rgba(245, 158, 11, 0.15)"},pipeline_error:{color:"#94a3b8",bg:"rgba(148, 163, 184, 0.15)"}};function e4(e){return e>=.7?"#22C55E":e>=.4?"#EAB308":"#EF4444"}function e3(e){return e>.5?"#EF4444":e>.2?"#EAB308":"#94a3b8"}function e6({entry:e,onClose:t,onViewMemory:a}){let r,[s,c]=(0,n.useState)(!1),l=(0,eZ.useLocalAiExplain)(),o=e1[e.firewall_result]||e1.ALLOW,d=e2[e.sensitivity_level]||e2.PUBLIC,x=function(e){try{let t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}}(e.threat_indicators),m=function(e){try{let t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}}(e.blocked_patterns),u=(0,n.useCallback)(()=>{let t=JSON.stringify(e,null,2);navigator.clipboard.writeText(t).then(()=>{c(!0),setTimeout(()=>c(!1),1500)})},[e]),p=(0,n.useCallback)(()=>{l.mutate({kind:"audit_event",title:`${e.firewall_result} audit event`,content:[`Audit ID: ${e.id}`,`Result: ${e.firewall_result}`,`Source: ${e.source_type}:${e.source_identifier}`,e.project?`Project: ${e.project}`:"",`Trust score: ${e.trust_score}`,`Anomaly score: ${e.anomaly_score}`,`Sensitivity: ${e.sensitivity_level}`,null!==e.fragmentation_score?`Fragmentation score: ${e.fragmentation_score}`:"",x.length?`Threat indicators: ${x.join(", ")}`:"",m.length?`Blocked patterns:
2
- ${m.join("\n")}`:"",e.reason?`Reason:
3
- ${e.reason}`:""].filter(Boolean).join("\n\n"),project:e.project,source:`${e.source_type}:${e.source_identifier}`,signals:[e.firewall_result,e.sensitivity_level,...x],metadata:{auditId:e.id,memoryId:e.memory_id,trustScore:e.trust_score,anomalyScore:e.anomaly_score,pipelineDurationMs:e.pipeline_duration_ms}})},[m,e,l,x]);return(0,i.jsxs)(eI,{className:"bg-[var(--sc-bg-surface)] border-[var(--sc-border)] overflow-hidden",children:[(0,i.jsxs)(eM,{className:"border-b border-[var(--sc-border)] pb-3",children:[(0,i.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,i.jsxs)("div",{className:"flex items-center gap-3",children:[(0,i.jsx)("span",{className:"px-2.5 py-1 rounded-md text-xs font-bold",style:{backgroundColor:o.bg,color:o.color},children:o.label}),(0,i.jsx)("span",{className:"px-2 py-0.5 rounded text-[10px] font-medium",style:{backgroundColor:d.bg,color:d.color},children:e.sensitivity_level})]}),(0,i.jsx)(eG,{variant:"ghost",size:"sm",onClick:t,className:"text-[var(--sc-text-secondary)] hover:text-white -mt-1",children:"✕"})]}),(0,i.jsx)("div",{className:"text-xs text-[var(--sc-text-secondary)] mt-2",children:new Date(e.timestamp).toLocaleString()}),e.project&&(0,i.jsxs)("div",{className:"text-[10px] text-[var(--sc-text-muted)] mt-1",children:["Project: ",e.project]})]}),(0,i.jsxs)(eq,{className:"p-4 space-y-4",children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("h4",{className:"text-xs font-medium text-[var(--sc-text-secondary)] mb-2",children:"Source"}),(0,i.jsxs)("div",{className:"bg-[var(--sc-bg-elevated)] rounded-lg p-3",children:[(0,i.jsx)("div",{className:"flex items-center gap-2 mb-1",children:(0,i.jsx)("span",{className:"px-1.5 py-0.5 rounded text-[10px] font-medium bg-[var(--sc-cyan)]/10 text-[var(--sc-cyan)]",children:e.source_type})}),e.source_identifier&&(0,i.jsx)("div",{className:"text-xs text-[var(--sc-text-primary)] mt-1 font-mono break-all",children:e.source_identifier})]})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)("h4",{className:"text-xs font-medium text-[var(--sc-text-secondary)] mb-2",children:"Scores"}),(0,i.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,i.jsxs)("div",{className:"bg-[var(--sc-bg-elevated)] rounded-lg p-3",children:[(0,i.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:"Trust"}),(0,i.jsxs)("div",{className:"text-lg font-bold",style:{color:e4(e.trust_score)},children:[(100*e.trust_score).toFixed(0),"%"]}),(0,i.jsx)("div",{className:"mt-1 h-1.5 bg-[var(--sc-bg-elevated)] rounded-full overflow-hidden",children:(0,i.jsx)("div",{className:"h-full rounded-full transition-all",style:{width:`${100*e.trust_score}%`,backgroundColor:e4(e.trust_score)}})})]}),(0,i.jsxs)("div",{className:"bg-[var(--sc-bg-elevated)] rounded-lg p-3",children:[(0,i.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:"Anomaly"}),(0,i.jsxs)("div",{className:"text-lg font-bold",style:{color:e3(e.anomaly_score)},children:[(100*e.anomaly_score).toFixed(0),"%"]}),(0,i.jsx)("div",{className:"mt-1 h-1.5 bg-[var(--sc-bg-elevated)] rounded-full overflow-hidden",children:(0,i.jsx)("div",{className:"h-full rounded-full transition-all",style:{width:`${100*e.anomaly_score}%`,backgroundColor:e3(e.anomaly_score)}})})]}),null!==e.fragmentation_score&&(0,i.jsxs)("div",{className:"bg-[var(--sc-bg-elevated)] rounded-lg p-3",children:[(0,i.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:"Fragmentation"}),(0,i.jsxs)("div",{className:"text-lg font-bold text-[var(--sc-text-primary)]",children:[(100*e.fragmentation_score).toFixed(0),"%"]}),(0,i.jsx)("div",{className:"mt-1 h-1.5 bg-[var(--sc-bg-elevated)] rounded-full overflow-hidden",children:(0,i.jsx)("div",{className:"h-full rounded-full bg-purple-500 transition-all",style:{width:`${100*e.fragmentation_score}%`}})})]}),null!==e.pipeline_duration_ms&&(0,i.jsxs)("div",{className:"bg-[var(--sc-bg-elevated)] rounded-lg p-3",children:[(0,i.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:"Pipeline"}),(0,i.jsxs)("div",{className:"text-lg font-bold text-[var(--sc-text-primary)]",children:[e.pipeline_duration_ms,"ms"]})]})]})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)("h4",{className:"text-xs font-medium text-[var(--sc-text-secondary)] mb-2",children:"Threat Indicators"}),x.length>0?(0,i.jsx)("div",{className:"flex flex-wrap gap-1.5",children:x.map((e,t)=>{let a=e5[e]||{color:"#94a3b8",bg:"rgba(148, 163, 184, 0.15)"};return(0,i.jsx)("span",{className:"px-2 py-1 rounded text-[11px] font-medium",style:{backgroundColor:a.bg,color:a.color},children:e.replace(/_/g," ")},t)})}):(0,i.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)]",children:"No threats detected"})]}),m.length>0&&(0,i.jsxs)("div",{children:[(0,i.jsx)("h4",{className:"text-xs font-medium text-[var(--sc-text-secondary)] mb-2",children:"Blocked Patterns"}),(0,i.jsx)("div",{className:"bg-[var(--sc-bg-elevated)] rounded-lg p-3 max-h-32 overflow-y-auto",children:m.map((e,t)=>(0,i.jsx)("div",{className:"text-[11px] text-[var(--sc-text-primary)] font-mono break-all mb-1 last:mb-0",children:e},t))})]}),e.reason&&(0,i.jsxs)("div",{children:[(0,i.jsx)("h4",{className:"text-xs font-medium text-[var(--sc-text-secondary)] mb-2",children:"Reason"}),(0,i.jsx)("div",{className:"bg-[var(--sc-bg-elevated)] rounded-lg p-3",children:(0,i.jsx)("p",{className:"text-xs text-[var(--sc-text-primary)] whitespace-pre-wrap leading-relaxed",children:e.reason})})]}),l.data?.explanation&&(0,i.jsx)(eX.LocalAiExplanationPanel,{explanation:l.data.explanation,actions:(r=function(e){if(!e)return null;let t=e.trim();return t.includes("/")&&/\.[A-Za-z0-9]{1,8}(?::\d+)?$/.test(t)?t:null}(e.source_identifier))?[{key:"open",label:"Open in editor",icon:(0,i.jsx)(e0.ExternalLink,{size:13}),variant:"outline",onClick:()=>{let e=(0,eY.buildEditorUrl)(r.replace(/:\d+$/,""),Number(r.match(/:(\d+)$/)?.[1])||void 0);e&&(window.location.href=e)}}]:[]}),l.error&&(0,i.jsx)("div",{className:"rounded-lg border border-[var(--sc-coral)]/30 bg-[var(--sc-coral)]/10 p-3 text-xs text-[var(--sc-coral)]",children:l.error instanceof Error?l.error.message:"Local explanation failed"}),(0,i.jsxs)("div",{className:"flex gap-2 pt-2",children:[e.memory_id&&a&&(0,i.jsx)(eG,{variant:"default",size:"sm",onClick:()=>a(e.memory_id),className:"flex-1 bg-blue-600 hover:bg-blue-700",children:"View Memory"}),(0,i.jsxs)(eG,{variant:"outline",size:"sm",onClick:p,disabled:l.isPending,className:`flex-1 border-[var(--sc-border)] text-[var(--sc-text-primary)] hover:text-white ${l.isPending?"glow-cyan-pulse":""}`,children:[l.isPending?(0,i.jsx)(M.Loader2,{size:13,className:"mr-1 animate-spin"}):(0,i.jsx)(eg.Sparkles,{size:13,className:"mr-1"}),"Explain"]}),(0,i.jsx)(eG,{variant:"outline",size:"sm",onClick:u,className:`flex-1 border-[var(--sc-border)] transition-all ${s?"bg-[var(--sc-cyan)]/20 text-[var(--sc-cyan)] border-[var(--sc-cyan)]/50":"text-[var(--sc-text-primary)] hover:text-white"}`,children:s?"Copied":"Copy JSON"})]})]})]})}let e8={ALLOW:"safe",BLOCK:"critical",QUARANTINE:"medium"};function e7(){let{projectFilter:e,selectedAuditEntry:t,setSelectedAuditEntry:a}=(0,ev.useDashboardStore)(),[r,s]=(0,n.useState)("24h"),[c,l]=(0,n.useState)(void 0),[o,d]=(0,n.useState)(void 0),x={"24h":24,"7d":168,"30d":720},[m,u]=(0,n.useState)(()=>Date.now());(0,n.useEffect)(()=>{u(Date.now())},[r]);let p=(0,n.useMemo)(()=>new Date(6e4*Math.floor((m-36e5*x[r])/6e4)).toISOString(),[m,r]),{data:v,isLoading:h}=(0,z.useAuditLogs)({startTime:p,source:c,firewallResult:o,project:e||void 0,limit:200}),g=(0,n.useMemo)(()=>v?.logs??[],[v?.logs]),b=g.filter(e=>"BLOCK"===e.firewall_result).length,y=g.filter(e=>"QUARANTINE"===e.firewall_result).length,j=g.filter(e=>"ALLOW"===e.firewall_result).length,f=(0,n.useCallback)(e=>{if(!t||0===g.length)return;let r=g.findIndex(e=>e.id===t.id);"Escape"===e.key?a(null):"ArrowDown"===e.key&&r<g.length-1?(e.preventDefault(),a(g[r+1])):"ArrowUp"===e.key&&r>0&&(e.preventDefault(),a(g[r-1]))},[t,g,a]);return(0,n.useEffect)(()=>(window.addEventListener("keydown",f),()=>window.removeEventListener("keydown",f)),[f]),(0,i.jsxs)("div",{className:"space-y-6",children:[(0,i.jsx)(eS.GlassCard,{title:"audit.filter",statusLine:`window=${r} \xb7 entries=${g.length} \xb7 allow=${j} \xb7 block=${b} \xb7 quarantine=${y}`,children:(0,i.jsxs)("div",{className:"flex flex-wrap items-center gap-3 font-mono text-xs",children:[(0,i.jsx)("span",{className:"text-[var(--term-text-muted)]",children:"range"}),(0,i.jsx)("span",{className:"text-[var(--term-text-muted)]","aria-hidden":!0,children:"="}),(0,i.jsx)("div",{className:"flex gap-1",children:["24h","7d","30d"].map(e=>(0,i.jsxs)("button",{type:"button",onClick:()=>s(e),className:`px-2 py-0.5 transition-colors ${r===e?"text-[var(--term-electric-fg)]":"text-[var(--term-text-muted)] hover:text-[var(--term-text)]"}`,children:["[",e,"]"]},e))}),(0,i.jsx)("span",{className:"text-[var(--term-text-muted)] ml-3",children:"result"}),(0,i.jsx)("span",{className:"text-[var(--term-text-muted)]","aria-hidden":!0,children:"="}),(0,i.jsxs)("select",{"aria-label":"Filter by firewall result",value:o||"",onChange:e=>d(e.target.value||void 0),className:"bg-[var(--term-surface-2)] border border-[var(--term-border)] text-[var(--term-text)] text-xs rounded-sm px-2 py-0.5 font-mono focus:outline-none focus:border-[var(--term-electric)]",children:[(0,i.jsx)("option",{value:"",children:"*"}),(0,i.jsx)("option",{value:"ALLOW",children:"ALLOW"}),(0,i.jsx)("option",{value:"BLOCK",children:"BLOCK"}),(0,i.jsx)("option",{value:"QUARANTINE",children:"QUARANTINE"})]}),(0,i.jsx)("span",{className:"text-[var(--term-text-muted)] ml-3",children:"source"}),(0,i.jsx)("span",{className:"text-[var(--term-text-muted)]","aria-hidden":!0,children:"="}),(0,i.jsxs)("select",{"aria-label":"Filter by source",value:c||"",onChange:e=>l(e.target.value||void 0),className:"bg-[var(--term-surface-2)] border border-[var(--term-border)] text-[var(--term-text)] text-xs rounded-sm px-2 py-0.5 font-mono focus:outline-none focus:border-[var(--term-electric)]",children:[(0,i.jsx)("option",{value:"",children:"*"}),(0,i.jsx)("option",{value:"hook",children:"hook"}),(0,i.jsx)("option",{value:"api",children:"api"}),(0,i.jsx)("option",{value:"agent",children:"agent"}),(0,i.jsx)("option",{value:"user",children:"user"}),(0,i.jsx)("option",{value:"cli",children:"cli"})]}),(0,i.jsx)("button",{type:"button",onClick:()=>a(null),className:"ml-auto text-[var(--term-text-muted)] hover:text-[var(--term-text)]",children:"[clear]"})]})}),(0,i.jsxs)("div",{className:`grid gap-6 ${t?"xl:grid-cols-[minmax(0,1.35fr)_360px]":""}`,children:[(0,i.jsx)(eS.GlassCard,{title:"audit.log",bodyPadding:!1,statusLine:h?"loading…":`${g.length} entr${1===g.length?"y":"ies"}`,children:h?(0,i.jsx)("div",{className:"flex items-center justify-center h-32 font-mono",children:(0,i.jsx)("div",{className:"text-xs text-[var(--term-text-muted)] animate-pulse",children:"$ tail -f audit.log…"})}):0===g.length?(0,i.jsx)("div",{className:"flex items-center justify-center h-32 font-mono",children:(0,i.jsx)("div",{className:"text-xs text-[var(--term-text-muted)]",children:"# no audit entries for this period"})}):(0,i.jsx)("div",{className:"overflow-x-auto font-mono",children:(0,i.jsxs)("table",{className:"w-full text-xs",children:[(0,i.jsx)("thead",{className:"bg-[var(--term-surface-2)] sticky top-0",children:(0,i.jsxs)("tr",{className:"border-b border-[var(--term-border)]",children:[(0,i.jsx)("th",{className:"text-left text-[var(--term-text-muted)] font-normal px-3 py-2 uppercase tracking-wider text-[10px]",children:"timestamp"}),(0,i.jsx)("th",{className:"text-left text-[var(--term-text-muted)] font-normal px-3 py-2 uppercase tracking-wider text-[10px]",children:"result"}),(0,i.jsx)("th",{className:"text-left text-[var(--term-text-muted)] font-normal px-3 py-2 uppercase tracking-wider text-[10px]",children:"source"}),(0,i.jsx)("th",{className:"text-right text-[var(--term-text-muted)] font-normal px-3 py-2 uppercase tracking-wider text-[10px]",children:"trust"}),(0,i.jsx)("th",{className:"text-right text-[var(--term-text-muted)] font-normal px-3 py-2 uppercase tracking-wider text-[10px]",children:"anomaly"}),(0,i.jsx)("th",{className:"text-left text-[var(--term-text-muted)] font-normal px-3 py-2 uppercase tracking-wider text-[10px]",children:"reason"})]})}),(0,i.jsx)("tbody",{children:g.map(e=>{let r=e8[e.firewall_result]??(0,eA.riskVariant)("INFO"),s=t?.id===e.id;return(0,i.jsxs)("tr",{onClick:()=>{a(t?.id===e.id?null:e)},className:`border-b border-[var(--term-border)] cursor-pointer transition-colors ${s?"bg-[var(--term-surface-2)]":"hover:bg-[var(--term-surface-2)]"}`,children:[(0,i.jsx)("td",{className:"px-3 py-1.5 text-[var(--term-text-muted)] whitespace-nowrap tabular-nums",children:new Date(e.timestamp).toISOString().replace("T"," ").replace(/\.\d+Z$/,"Z")}),(0,i.jsx)("td",{className:"px-3 py-1.5 whitespace-nowrap",children:(0,i.jsx)(eA.Badge,{variant:r,children:e.firewall_result})}),(0,i.jsx)("td",{className:"px-3 py-1.5 text-[var(--term-text)]",children:e.source_type}),(0,i.jsx)("td",{className:"px-3 py-1.5 text-right text-[var(--term-text-dim)] tabular-nums",children:e.trust_score.toFixed(1)}),(0,i.jsx)("td",{className:"px-3 py-1.5 text-right tabular-nums",children:(0,i.jsx)("span",{className:e.anomaly_score>.5?"text-[var(--term-danger)]":e.anomaly_score>.2?"text-[var(--term-warn)]":"text-[var(--term-text-muted)]",children:e.anomaly_score.toFixed(2)})}),(0,i.jsx)("td",{className:"px-3 py-1.5 text-[var(--term-text-dim)] max-w-xs truncate",children:e.reason||"—"})]},e.id)})})]})})}),t&&(0,i.jsx)("div",{className:"xl:sticky xl:top-6 self-start",children:(0,i.jsx)(e6,{entry:t,onClose:()=>a(null)})})]}),(0,i.jsxs)("details",{className:"glass-card p-5",children:[(0,i.jsxs)("summary",{className:"cursor-pointer list-none font-mono text-sm text-[var(--term-text)]",children:[(0,i.jsx)("span",{className:"text-[var(--term-electric-fg)]",children:"$"})," shieldcortex audit export"]}),(0,i.jsx)("div",{className:"mt-4",children:(0,i.jsx)(eF,{})})]})]})}let e9={ALLOW:"bg-[var(--sc-cyan)]/10 text-[var(--sc-cyan)]",BLOCK:"bg-[var(--sc-coral)]/10 text-[var(--sc-coral)]",QUARANTINE:"bg-[var(--sc-amber)]/10 text-[var(--sc-amber)]"};function te(){let{projectFilter:e,selectedAuditEntry:t,setSelectedAuditEntry:a}=(0,ev.useDashboardStore)(),[r,s]=(0,n.useState)("24h"),[c,l]=(0,n.useState)(void 0),[o,d]=(0,n.useState)(void 0),x={"24h":24,"7d":168,"30d":720},[m,u]=(0,n.useState)(()=>Date.now());(0,n.useEffect)(()=>{u(Date.now())},[r]);let p=(0,n.useMemo)(()=>new Date(6e4*Math.floor((m-36e5*x[r])/6e4)).toISOString(),[m,r]),{data:v,isLoading:h}=(0,z.useAuditLogs)({startTime:p,source:c,firewallResult:o,project:e||void 0,limit:200}),g=(0,n.useMemo)(()=>v?.logs??[],[v?.logs]),b=g.filter(e=>"BLOCK"===e.firewall_result).length,y=g.filter(e=>"QUARANTINE"===e.firewall_result).length,j=g.filter(e=>"ALLOW"===e.firewall_result).length,f=(0,n.useCallback)(e=>{if(!t||0===g.length)return;let r=g.findIndex(e=>e.id===t.id);"Escape"===e.key?a(null):"ArrowDown"===e.key&&r<g.length-1?(e.preventDefault(),a(g[r+1])):"ArrowUp"===e.key&&r>0&&(e.preventDefault(),a(g[r-1]))},[t,g,a]);return(0,n.useEffect)(()=>(window.addEventListener("keydown",f),()=>window.removeEventListener("keydown",f)),[f]),(0,i.jsxs)("div",{className:"space-y-6",children:[(0,i.jsxs)("div",{className:"glass-card-strong p-5",children:[(0,i.jsx)("div",{className:"flex flex-col gap-4 xl:flex-row xl:items-start xl:justify-between mb-3",children:(0,i.jsx)("div",{className:"flex gap-1 bg-[var(--sc-bg-elevated)] rounded-lg p-0.5 ml-auto",children:["24h","7d","30d"].map(e=>(0,i.jsx)("button",{onClick:()=>s(e),className:`px-3 py-1 text-xs rounded-md transition-colors ${r===e?"bg-[var(--sc-cyan)] text-[var(--sc-text-primary)]":"text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)]"}`,children:e},e))})}),(0,i.jsxs)("div",{className:"mb-4 grid gap-3 md:grid-cols-4",children:[(0,i.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)] p-3",children:[(0,i.jsx)("div",{className:"text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Entries"}),(0,i.jsx)("div",{className:"mt-1 text-xl font-semibold text-[var(--sc-text-primary)]",children:g.length})]}),(0,i.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)] p-3",children:[(0,i.jsx)("div",{className:"text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Allowed"}),(0,i.jsx)("div",{className:"mt-1 text-xl font-semibold text-[var(--sc-cyan)]",children:j})]}),(0,i.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)] p-3",children:[(0,i.jsx)("div",{className:"text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Blocked"}),(0,i.jsx)("div",{className:"mt-1 text-xl font-semibold text-[var(--sc-coral)]",children:b})]}),(0,i.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)] p-3",children:[(0,i.jsx)("div",{className:"text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Quarantined"}),(0,i.jsx)("div",{className:"mt-1 text-xl font-semibold text-[var(--sc-amber)]",children:y})]})]}),(0,i.jsxs)("div",{className:"flex gap-2 flex-wrap",children:[(0,i.jsxs)("select",{value:o||"",onChange:e=>d(e.target.value||void 0),className:"bg-[var(--sc-bg-elevated)] border border-[var(--sc-border)] text-[var(--sc-text-primary)] text-xs rounded-lg px-2 py-1",children:[(0,i.jsx)("option",{value:"",children:"All Results"}),(0,i.jsx)("option",{value:"ALLOW",children:"Allowed"}),(0,i.jsx)("option",{value:"BLOCK",children:"Blocked"}),(0,i.jsx)("option",{value:"QUARANTINE",children:"Quarantined"})]}),(0,i.jsxs)("select",{value:c||"",onChange:e=>l(e.target.value||void 0),className:"bg-[var(--sc-bg-elevated)] border border-[var(--sc-border)] text-[var(--sc-text-primary)] text-xs rounded-lg px-2 py-1",children:[(0,i.jsx)("option",{value:"",children:"All Sources"}),(0,i.jsx)("option",{value:"hook",children:"Hook"}),(0,i.jsx)("option",{value:"api",children:"API"}),(0,i.jsx)("option",{value:"agent",children:"Agent"}),(0,i.jsx)("option",{value:"user",children:"User"}),(0,i.jsx)("option",{value:"cli",children:"CLI"})]}),(0,i.jsx)("button",{onClick:()=>a(null),className:"ml-auto rounded-full border border-[var(--sc-border)] bg-[var(--sc-bg-surface)] px-3 py-1 text-xs text-[var(--sc-text-primary)] transition-colors hover:border-[var(--sc-border)] hover:text-[var(--sc-text-primary)]",children:"Clear selection"})]})]}),(0,i.jsxs)("div",{className:`grid gap-6 ${t?"xl:grid-cols-[minmax(0,1.35fr)_360px]":""}`,children:[(0,i.jsx)("div",{className:"glass-card overflow-hidden",children:h?(0,i.jsx)("div",{className:"flex items-center justify-center h-32",children:(0,i.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)] animate-pulse",children:"Loading audit logs..."})}):0===g.length?(0,i.jsx)("div",{className:"flex items-center justify-center h-32",children:(0,i.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)]",children:"No audit entries for this period"})}):(0,i.jsx)("div",{className:"overflow-x-auto",children:(0,i.jsxs)("table",{className:"w-full text-xs",children:[(0,i.jsx)("thead",{className:"bg-[var(--sc-bg-deep)]",children:(0,i.jsxs)("tr",{className:"border-b border-[var(--sc-border)]",children:[(0,i.jsx)("th",{className:"text-left text-[var(--sc-text-muted)] font-medium px-4 py-2",children:"Time"}),(0,i.jsx)("th",{className:"text-left text-[var(--sc-text-muted)] font-medium px-4 py-2",children:"Source"}),(0,i.jsx)("th",{className:"text-left text-[var(--sc-text-muted)] font-medium px-4 py-2",children:"Result"}),(0,i.jsx)("th",{className:"text-left text-[var(--sc-text-muted)] font-medium px-4 py-2",children:"Trust"}),(0,i.jsx)("th",{className:"text-left text-[var(--sc-text-muted)] font-medium px-4 py-2",children:"Anomaly"}),(0,i.jsx)("th",{className:"text-left text-[var(--sc-text-muted)] font-medium px-4 py-2",children:"Reason"})]})}),(0,i.jsx)("tbody",{children:g.map(e=>(0,i.jsxs)("tr",{onClick:()=>{a(t?.id===e.id?null:e)},className:`border-b border-[var(--sc-border)] cursor-pointer transition-colors ${t?.id===e.id?"bg-[var(--sc-cyan)]/10 hover:bg-[var(--sc-cyan)]/15":"hover:bg-[var(--sc-surface-interactive)]"}`,children:[(0,i.jsx)("td",{className:"px-4 py-2 text-[var(--sc-text-secondary)] whitespace-nowrap",children:new Date(e.timestamp).toLocaleString()}),(0,i.jsx)("td",{className:"px-4 py-2 text-[var(--sc-text-primary)]",children:e.source_type}),(0,i.jsx)("td",{className:"px-4 py-2",children:(0,i.jsx)("span",{className:`px-1.5 py-0.5 rounded text-[10px] font-medium ${e9[e.firewall_result]||"text-[var(--sc-text-secondary)]"}`,children:e.firewall_result})}),(0,i.jsx)("td",{className:"px-4 py-2 text-[var(--sc-text-secondary)]",children:e.trust_score.toFixed(1)}),(0,i.jsx)("td",{className:"px-4 py-2",children:(0,i.jsx)("span",{className:e.anomaly_score>.5?"text-[var(--sc-coral)]":e.anomaly_score>.2?"text-[var(--sc-amber)]":"text-[var(--sc-text-secondary)]",children:e.anomaly_score.toFixed(2)})}),(0,i.jsx)("td",{className:"px-4 py-2 text-[var(--sc-text-secondary)] max-w-xs truncate",children:e.reason||"—"})]},e.id))})]})})}),t&&(0,i.jsx)("div",{className:"xl:sticky xl:top-6 self-start",children:(0,i.jsx)(e6,{entry:t,onClose:()=>a(null)})})]}),(0,i.jsxs)("details",{className:"glass-card p-6",children:[(0,i.jsx)("summary",{className:"cursor-pointer list-none text-sm font-medium text-[var(--sc-text-primary)]",children:"Export audit trail"}),(0,i.jsx)("div",{className:"mt-4",children:(0,i.jsx)(eF,{})})]})]})}function tt(){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("div",{className:"contents theme-glass:hidden",children:(0,i.jsx)(e7,{})}),(0,i.jsx)("div",{className:"hidden theme-glass:contents",children:(0,i.jsx)(te,{})})]})}var ta=e.i(45434),tr=e.i(19331);let ts={critical:"border-[var(--sc-coral)]/30 bg-[var(--sc-coral)]/10 text-[var(--sc-coral)]",high:"border-[var(--sc-coral)]/30 bg-[var(--sc-coral)]/10 text-[var(--sc-coral)]",medium:"border-[var(--sc-amber)]/30 bg-[var(--sc-amber)]/10 text-[var(--sc-amber)]",low:"border-[var(--sc-border)] bg-[var(--sc-bg-elevated)]/80 text-[var(--sc-text-primary)]"},tc={approved:"bg-[var(--sc-cyan)]/10 text-[var(--sc-cyan)]",denied:"bg-[var(--sc-amber)]/10 text-[var(--sc-amber)]",auto_denied:"bg-[var(--sc-coral)]/10 text-[var(--sc-coral)]",warned:"bg-[var(--sc-amber)]/10 text-[var(--sc-amber)]",logged:"bg-[var(--sc-bg-elevated)] text-[var(--sc-text-primary)]",failure_allowed:"bg-[var(--sc-cyan)]/10 text-[var(--sc-cyan)]",failure_denied:"bg-[var(--sc-coral)]/10 text-[var(--sc-coral)]"};function ti(){let[e,t]=(0,n.useState)(""),[a,r]=(0,n.useState)(""),[s,c]=(0,n.useState)(""),{data:l,isLoading:o}=I({limit:100,severity:e||void 0,outcome:a||void 0,tool:s||void 0}),x=l?.entries??[],m=l?.summary,u=(0,n.useMemo)(()=>(m?.topTools??[]).map(e=>e.tool),[m?.topTools]);return(0,i.jsxs)("div",{className:"space-y-6",children:[(0,i.jsxs)("div",{className:"glass-card p-6",children:[(0,i.jsxs)("div",{className:"grid gap-3 md:grid-cols-4",children:[(0,i.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2 text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:[(0,i.jsx)(ta.Activity,{size:12}),"Total"]}),(0,i.jsx)("div",{className:"mt-2 text-xl font-semibold text-[var(--sc-text-primary)]",children:m?.total??0})]}),(0,i.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2 text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:[(0,i.jsx)(O.CheckCircle2,{size:12}),"Approved"]}),(0,i.jsx)("div",{className:"mt-2 text-xl font-semibold text-[var(--sc-cyan)]",children:m?.approved??0})]}),(0,i.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2 text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:[(0,i.jsx)(d.AlertTriangle,{size:12}),"Denied"]}),(0,i.jsx)("div",{className:"mt-2 text-xl font-semibold text-[var(--sc-amber)]",children:m?.denied??0})]}),(0,i.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2 text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:[(0,i.jsx)(p.ShieldAlert,{size:12}),"Failures"]}),(0,i.jsx)("div",{className:"mt-2 text-xl font-semibold text-[var(--sc-coral)]",children:m?.failures??0})]})]}),(0,i.jsxs)("div",{className:"mt-4 flex flex-wrap gap-2",children:[(0,i.jsxs)("select",{value:e,onChange:e=>t(e.target.value),className:"rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] px-3 py-1.5 text-xs text-[var(--sc-text-primary)]",children:[(0,i.jsx)("option",{value:"",children:"All severities"}),(0,i.jsx)("option",{value:"critical",children:"Critical"}),(0,i.jsx)("option",{value:"high",children:"High"}),(0,i.jsx)("option",{value:"medium",children:"Medium"}),(0,i.jsx)("option",{value:"low",children:"Low"})]}),(0,i.jsxs)("select",{value:a,onChange:e=>r(e.target.value),className:"rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] px-3 py-1.5 text-xs text-[var(--sc-text-primary)]",children:[(0,i.jsx)("option",{value:"",children:"All outcomes"}),(0,i.jsx)("option",{value:"approved",children:"Approved"}),(0,i.jsx)("option",{value:"denied",children:"Denied"}),(0,i.jsx)("option",{value:"auto_denied",children:"Auto denied"}),(0,i.jsx)("option",{value:"warned",children:"Warned"}),(0,i.jsx)("option",{value:"logged",children:"Logged"}),(0,i.jsx)("option",{value:"failure_allowed",children:"Failure allowed"}),(0,i.jsx)("option",{value:"failure_denied",children:"Failure denied"})]}),(0,i.jsxs)("select",{value:s,onChange:e=>c(e.target.value),className:"rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] px-3 py-1.5 text-xs text-[var(--sc-text-primary)]",children:[(0,i.jsx)("option",{value:"",children:"Top tools"}),u.map(e=>(0,i.jsx)("option",{value:e,children:e},e))]})]})]}),(0,i.jsx)("div",{className:"glass-card-strong p-5 overflow-hidden",children:o?(0,i.jsx)("div",{className:"flex h-32 items-center justify-center text-sm text-[var(--sc-text-secondary)]",children:"Loading interceptor events…"}):0===x.length?(0,i.jsx)("div",{className:"flex h-32 items-center justify-center text-sm text-[var(--sc-text-secondary)]",children:"No interceptor events found for the current filters."}):(0,i.jsx)("div",{className:"divide-y divide-[var(--sc-border)]",children:x.map((e,t)=>(0,i.jsxs)("div",{className:"grid gap-4 px-5 py-4 lg:grid-cols-[220px_minmax(0,1fr)_220px]",children:[(0,i.jsxs)("div",{className:"space-y-2",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2 text-xs text-[var(--sc-text-muted)]",children:[(0,i.jsx)(tr.Clock3,{size:12}),new Date(e.ts).toLocaleString()]}),(0,i.jsx)("div",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:e.tool}),(0,i.jsx)("div",{className:`inline-flex rounded-full border px-2.5 py-1 text-[11px] ${ts[e.severity]??ts.low}`,children:e.severity.toUpperCase()})]}),(0,i.jsxs)("div",{className:"min-w-0",children:[(0,i.jsx)("div",{className:"text-xs uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Preview"}),(0,i.jsx)("p",{className:"mt-2 line-clamp-4 text-sm leading-6 text-[var(--sc-text-primary)]",children:e.preview||"No preview captured."}),(0,i.jsxs)("div",{className:"mt-3 flex flex-wrap gap-2",children:[(e.threats??[]).map(e=>(0,i.jsx)("span",{className:"rounded-full border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] px-2.5 py-1 text-[11px] text-[var(--sc-text-primary)]",children:e},e)),(!e.threats||0===e.threats.length)&&(0,i.jsx)("span",{className:"rounded-full border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] px-2.5 py-1 text-[11px] text-[var(--sc-text-secondary)]",children:"No explicit threat tags"})]})]}),(0,i.jsxs)("div",{className:"space-y-3",children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{className:"text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Outcome"}),(0,i.jsx)("div",{className:`mt-1 inline-flex rounded-full px-2.5 py-1 text-[11px] ${tc[e.outcome]??tc.logged}`,children:e.outcome.replace(/_/g," ")})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{className:"text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Firewall"}),(0,i.jsx)("div",{className:"mt-1 text-sm text-[var(--sc-text-primary)]",children:e.firewallResult})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{className:"text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Action"}),(0,i.jsx)("div",{className:"mt-1 text-sm text-[var(--sc-text-primary)]",children:e.action})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{className:"text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Anomaly score"}),(0,i.jsx)("div",{className:"mt-1 text-sm text-[var(--sc-text-primary)]",children:e.anomalyScore.toFixed(2)})]})]})]},`${e.ts}-${e.tool}-${t}`))})})]})}let tl=(0,x.default)("toggle-left",[["circle",{cx:"9",cy:"12",r:"3",key:"u3jwor"}],["rect",{width:"20",height:"14",x:"2",y:"5",rx:"7",key:"g7kal2"}]]),tn=(0,x.default)("toggle-right",[["circle",{cx:"15",cy:"12",r:"3",key:"1afu0r"}],["rect",{width:"20",height:"14",x:"2",y:"5",rx:"7",key:"g7kal2"}]]),to=g.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";function td(){let e,t,a,r,{data:s,isLoading:c,isLocked:l}={...e=(0,b.useQuery)({queryKey:["firewall-rules"],queryFn:()=>(0,f.gatedFetch)(`${to}/api/firewall-rules`).then(e=>{if(!e.ok)throw Error("Failed to fetch firewall rules");return e.json()}),retry:(e,t)=>!(t instanceof f.FeatureLockedError)&&e<2,refetchInterval:3e4}),isLocked:e.error instanceof f.FeatureLockedError},o=(t=(0,j.useQueryClient)(),(0,y.useMutation)({mutationFn:e=>(0,f.gatedFetch)(`${to}/api/firewall-rules`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}).then(e=>e.ok?e.json():e.json().then(e=>{throw Error(e.error)})),onSuccess:()=>{t.invalidateQueries({queryKey:["firewall-rules"]})}})),d=(a=(0,j.useQueryClient)(),(0,y.useMutation)({mutationFn:({id:e,...t})=>(0,f.gatedFetch)(`${to}/api/firewall-rules/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}).then(e=>e.ok?e.json():e.json().then(e=>{throw Error(e.error)})),onSuccess:()=>{a.invalidateQueries({queryKey:["firewall-rules"]})}})),x=(r=(0,j.useQueryClient)(),(0,y.useMutation)({mutationFn:e=>(0,f.gatedFetch)(`${to}/api/firewall-rules/${e}`,{method:"DELETE"}).then(e=>e.ok?e.json():e.json().then(e=>{throw Error(e.error)})),onSuccess:()=>{r.invalidateQueries({queryKey:["firewall-rules"]})}})),[m,p]=(0,n.useState)(!1),[v,h]=(0,n.useState)({name:"",priority:100,condition_type:"regex",condition_value:"",action:"block"}),g=s?.rules??[];return l?(0,i.jsx)(tx,{}):(0,i.jsxs)("div",{className:"space-y-3",children:[(0,i.jsxs)("div",{className:"flex items-center justify-between",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsx)(u.Shield,{size:16,className:"text-[var(--sc-cyan)]"}),(0,i.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Custom Firewall Rules"}),(0,i.jsxs)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:[g.length,"/25"]})]}),(0,i.jsxs)("button",{onClick:()=>p(!m),className:"flex items-center gap-1 px-2 py-1 text-xs bg-[var(--sc-cyan)]/20 text-[var(--sc-cyan)] rounded hover:bg-[var(--sc-cyan)]/30 transition-colors",children:[(0,i.jsx)(J,{size:12})," Add Rule"]})]}),m&&(0,i.jsxs)("form",{onSubmit:e=>{e.preventDefault(),o.mutate(v,{onSuccess:()=>{p(!1),h({name:"",priority:100,condition_type:"regex",condition_value:"",action:"block"})}})},className:"p-3 bg-[var(--sc-bg-elevated)]/50 rounded-lg space-y-2",children:[(0,i.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,i.jsx)("input",{value:v.name,onChange:e=>h(t=>({...t,name:e.target.value})),placeholder:"Rule name",required:!0,className:"px-2 py-1.5 text-xs bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)]"}),(0,i.jsx)("input",{value:v.priority,onChange:e=>h(t=>({...t,priority:Number(e.target.value)})),type:"number",placeholder:"Priority",className:"px-2 py-1.5 text-xs bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded text-[var(--sc-text-primary)]"})]}),(0,i.jsxs)("div",{className:"grid grid-cols-3 gap-2",children:[(0,i.jsxs)("select",{value:v.condition_type,onChange:e=>h(t=>({...t,condition_type:e.target.value})),className:"px-2 py-1.5 text-xs bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded text-[var(--sc-text-primary)]",children:[(0,i.jsx)("option",{value:"regex",children:"Regex"}),(0,i.jsx)("option",{value:"source",children:"Source"}),(0,i.jsx)("option",{value:"keyword",children:"Keyword"})]}),(0,i.jsx)("input",{value:v.condition_value,onChange:e=>h(t=>({...t,condition_value:e.target.value})),placeholder:"Condition value",required:!0,className:"px-2 py-1.5 text-xs bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)]"}),(0,i.jsxs)("select",{value:v.action,onChange:e=>h(t=>({...t,action:e.target.value})),className:"px-2 py-1.5 text-xs bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded text-[var(--sc-text-primary)]",children:[(0,i.jsx)("option",{value:"block",children:"Block"}),(0,i.jsx)("option",{value:"quarantine",children:"Quarantine"}),(0,i.jsx)("option",{value:"allow",children:"Allow"})]})]}),(0,i.jsxs)("div",{className:"flex gap-2",children:[(0,i.jsx)("button",{type:"submit",disabled:o.isPending,className:"px-3 py-1 text-xs bg-[var(--sc-cyan)] text-[var(--sc-text-primary)] rounded hover:bg-[var(--sc-cyan)]/80 disabled:opacity-50",children:o.isPending?"Creating...":"Create"}),(0,i.jsx)("button",{type:"button",onClick:()=>p(!1),className:"px-3 py-1 text-xs text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)]",children:"Cancel"})]}),o.error&&(0,i.jsx)("p",{className:"text-xs text-[var(--sc-coral)]",children:o.error.message})]}),c?(0,i.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)] py-4 text-center",children:"Loading rules..."}):0===g.length?(0,i.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)] py-4 text-center",children:'No custom rules yet. Click "Add Rule" to create one.'}):(0,i.jsx)("div",{className:"space-y-1",children:g.map(e=>(0,i.jsxs)("div",{className:"flex items-center gap-3 px-3 py-2 bg-[var(--sc-bg-elevated)]/30 rounded text-xs",children:[(0,i.jsx)("span",{className:"text-[var(--sc-text-secondary)] w-6 text-right",children:e.priority}),(0,i.jsx)("span",{className:"text-[var(--sc-text-primary)] flex-1",children:e.name}),(0,i.jsx)("code",{className:"text-[var(--sc-text-muted)] text-[10px] max-w-[120px] truncate",children:e.condition_value}),(0,i.jsx)("span",{className:`px-1.5 py-0.5 rounded text-[10px] font-medium ${"block"===e.action?"bg-[var(--sc-coral)]/20 text-[var(--sc-coral)]":"quarantine"===e.action?"bg-[var(--sc-amber)]/20 text-[var(--sc-amber)]":"bg-[var(--sc-cyan)]/20 text-[var(--sc-cyan)]"}`,children:e.action}),(0,i.jsx)("button",{onClick:()=>d.mutate({id:e.id,enabled:+!e.enabled}),className:"text-[var(--sc-text-muted)] hover:text-[var(--sc-text-primary)]",title:e.enabled?"Disable":"Enable",children:e.enabled?(0,i.jsx)(tn,{size:14,className:"text-[var(--sc-cyan)]"}):(0,i.jsx)(tl,{size:14})}),(0,i.jsx)("button",{onClick:()=>x.mutate(e.id),className:"text-[var(--sc-text-muted)] hover:text-[var(--sc-coral)]",children:(0,i.jsx)(G.Trash2,{size:12})})]},e.id))})]})}function tx(){return(0,i.jsxs)("div",{className:"space-y-3",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsx)(u.Shield,{size:16,className:"text-[var(--sc-cyan)]"}),(0,i.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Custom Firewall Rules"}),(0,i.jsx)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:"0/25"})]}),(0,i.jsx)("div",{className:"space-y-1",children:Y.map(e=>(0,i.jsxs)("div",{className:"flex items-center gap-3 px-3 py-2 bg-[var(--sc-bg-elevated)]/30 rounded text-xs",children:[(0,i.jsx)("span",{className:"text-[var(--sc-text-secondary)] w-6 text-right",children:e.priority}),(0,i.jsx)("span",{className:"text-[var(--sc-text-primary)] flex-1",children:e.name}),(0,i.jsx)("code",{className:"text-[var(--sc-text-muted)] text-[10px] max-w-[120px] truncate",children:e.condition_value}),(0,i.jsx)("span",{className:`px-1.5 py-0.5 rounded text-[10px] font-medium ${"block"===e.action?"bg-[var(--sc-coral)]/20 text-[var(--sc-coral)]":"quarantine"===e.action?"bg-[var(--sc-amber)]/20 text-[var(--sc-amber)]":"bg-[var(--sc-cyan)]/20 text-[var(--sc-cyan)]"}`,children:e.action})]},e.id))})]})}function tm(){return(0,i.jsx)("div",{className:"bg-[var(--sc-bg-surface)]/50 border border-[var(--sc-border)] rounded-xl p-4",children:(0,i.jsx)(X.ProFeatureGate,{feature:"custom_firewall_rules",label:"Add custom rules to control what gets blocked, allowed, or quarantined.",children:(0,i.jsx)(td,{})})})}function tu(){return(0,i.jsx)("div",{className:"h-full overflow-y-auto bg-[var(--sc-bg-deep)]",children:(0,i.jsxs)("div",{className:"mx-auto max-w-7xl space-y-6 p-6",children:[(0,i.jsxs)("section",{className:"rounded-2xl border border-[var(--sc-border)] bg-[var(--sc-bg-surface)]/70 p-6",children:[(0,i.jsx)("div",{className:"text-[11px] uppercase tracking-[0.2em] text-[var(--sc-cyan)]",children:"Protection / Policies"}),(0,i.jsx)("h2",{className:"mt-3 text-3xl font-semibold text-[var(--sc-text-primary)]",children:"Policy management"}),(0,i.jsx)("p",{className:"mt-2 max-w-3xl text-sm text-[var(--sc-text-secondary)]",children:"Keep operator-tuned controls in one place. Firewall rules and Iron Dome policies should not be buried inside larger screens when they directly shape blocking, quarantine, and approval behavior."})]}),(0,i.jsxs)("div",{className:"grid gap-6 xl:grid-cols-2",children:[(0,i.jsx)(tm,{}),(0,i.jsx)(eo,{})]})]})})}function tp(){let e=(0,l.useSearchParams)().get("tab"),t=e&&["dome","quarantine","audit","intercepts","policies"].includes(e)?e:null,[a,r]=(0,n.useState)("dome"),s=t??a,{data:c}=$(),{data:o}=(0,z.useAuditStats)("24h"),{data:x}=(0,z.useQuarantine)("pending",10),{data:g}=I({limit:25}),b=[{id:"dome",label:"Iron Dome",icon:(0,i.jsx)(p.ShieldAlert,{size:14})},{id:"quarantine",label:"Quarantine",count:x?.total??0},{id:"audit",label:"Audit"},{id:"intercepts",label:"Intercepts",count:g?.summary?.total??0},{id:"policies",label:"Policies",locked:!1}];return(0,i.jsx)("div",{className:"h-full overflow-y-auto",children:(0,i.jsxs)("div",{className:"mx-auto max-w-7xl space-y-6 p-6",children:[(0,i.jsx)(h.PageHeader,{eyebrow:"Defence",title:"Protection",subtitle:"Active controls, review queues, and operator policy tuning.",tabs:b,activeTab:s,onTabChange:e=>r(e)}),(0,i.jsxs)("div",{className:"grid grid-cols-2 gap-4 lg:grid-cols-4",children:[(0,i.jsx)(v.StatCard,{label:"Iron Dome",value:c?.enabled?"Active":"Inactive",icon:u.Shield,accent:c?.enabled?"cyan":"muted"}),(0,i.jsx)(v.StatCard,{label:"Blocked (24h)",value:o?.blockedCount??0,icon:p.ShieldAlert,accent:o?.blockedCount?"coral":"muted"}),(0,i.jsx)(v.StatCard,{label:"Quarantine",value:x?.total??0,icon:d.AlertTriangle,accent:x?.total?"amber":"muted"}),(0,i.jsx)(v.StatCard,{label:"Intercepts",value:g?.summary?.total??0,icon:m,accent:"cyan"})]}),(0,i.jsxs)("div",{children:["dome"===s&&(0,i.jsx)(ep,{}),"quarantine"===s&&(0,i.jsx)(e_,{}),"audit"===s&&(0,i.jsx)(tt,{}),"intercepts"===s&&(0,i.jsx)(ti,{}),"policies"===s&&(0,i.jsx)(tu,{})]})]})})}function tv(){return(0,i.jsx)(n.Suspense,{fallback:(0,i.jsx)(o.PageSkeleton,{}),children:(0,i.jsx)(tp,{})})}e.s(["ProtectionOverview",()=>tv],27241)}]);