shieldcortex 4.17.0 → 4.18.1

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 (405) 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/2d55e8cb58d80df0.js +1 -0
  349. package/dashboard/.next/standalone/dashboard/.next/static/chunks/349dace3a1c9af01.js +1 -0
  350. package/dashboard/.next/standalone/dashboard/.next/static/chunks/3505433bf7977a34.js +1 -0
  351. package/dashboard/.next/standalone/dashboard/.next/static/chunks/4d0b86f6afedd8b5.js +3 -0
  352. package/dashboard/.next/standalone/dashboard/.next/static/chunks/a7d5d0791c8c6223.css +2 -0
  353. package/dashboard/.next/standalone/dashboard/.next/static/chunks/b2a6e883eaa58507.js +1 -0
  354. package/dashboard/.next/standalone/dashboard/.next/static/chunks/bcfaf98940462e7d.js +1 -0
  355. package/dashboard/.next/standalone/dashboard/.next/static/chunks/d52895fa7c120f49.css +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.js +128 -6
  370. package/dist/cli/import-jsonl.js +3 -8
  371. package/dist/sessions/glob.d.ts +38 -0
  372. package/dist/sessions/glob.js +183 -0
  373. package/dist/sessions/import-jsonl.d.ts +9 -5
  374. package/dist/sessions/import-jsonl.js +89 -35
  375. package/package.json +1 -1
  376. package/plugins/openclaw/dist/openclaw.plugin.json +1 -1
  377. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__521be65c._.js +0 -3
  378. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__52bd7a9f._.js +0 -3
  379. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__6f881a23._.js +0 -3
  380. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_1c5148b9._.js +0 -3
  381. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_204d1c9e._.js +0 -3
  382. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_415e5b1b._.js +0 -3
  383. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_442a0173._.js +0 -3
  384. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_64f63df9._.js +0 -3
  385. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_7cb6f257._.js +0 -3
  386. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_9b8695d8._.js +0 -3
  387. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_c343baff._.js +0 -3
  388. package/dashboard/.next/standalone/dashboard/.next/static/chunks/2473c16c0c2f6b5f.css +0 -2
  389. package/dashboard/.next/standalone/dashboard/.next/static/chunks/5f18f98891076bc5.js +0 -1
  390. package/dashboard/.next/standalone/dashboard/.next/static/chunks/b053d5f11418d645.js +0 -3
  391. package/dashboard/.next/standalone/dashboard/.next/static/chunks/bf725d638cce46d4.css +0 -1
  392. package/dashboard/.next/standalone/dashboard/.next/static/chunks/d05e311dfccb5729.js +0 -1
  393. package/dashboard/.next/standalone/dashboard/.next/static/chunks/d9ad4c35fc865415.js +0 -1
  394. package/dashboard/.next/standalone/dashboard/.next/static/chunks/e804a1fda2839550.js +0 -1
  395. package/dashboard/.next/standalone/dashboard/.next/static/chunks/e9f4b8da354f1005.js +0 -1
  396. package/dashboard/.next/standalone/dashboard/.next/static/chunks/fe6075d947234b5d.js +0 -1
  397. package/dashboard/.next/standalone/dashboard/.next/static/media/4fa387ec64143e14-s.c1fdd6c2.woff2 +0 -0
  398. package/dashboard/.next/standalone/dashboard/.next/static/media/7178b3e590c64307-s.b97b3418.woff2 +0 -0
  399. package/dashboard/.next/standalone/dashboard/.next/static/media/797e433ab948586e-s.p.dbea232f.woff2 +0 -0
  400. package/dashboard/.next/standalone/dashboard/.next/static/media/8a480f0b521d4e75-s.8e0177b5.woff2 +0 -0
  401. package/dashboard/.next/standalone/dashboard/.next/static/media/bbc41e54d2fcbd21-s.799d8ef8.woff2 +0 -0
  402. package/dashboard/.next/standalone/dashboard/.next/static/media/caa3a2e1cccd8315-s.p.853070df.woff2 +0 -0
  403. /package/dashboard/.next/standalone/dashboard/.next/static/{9C0MR5ahRDqnfBA64wKCY → rBhx3Fsm2AhFxbr_xAimw}/_buildManifest.js +0 -0
  404. /package/dashboard/.next/standalone/dashboard/.next/static/{9C0MR5ahRDqnfBA64wKCY → rBhx3Fsm2AhFxbr_xAimw}/_clientMiddlewareManifest.json +0 -0
  405. /package/dashboard/.next/standalone/dashboard/.next/static/{9C0MR5ahRDqnfBA64wKCY → rBhx3Fsm2AhFxbr_xAimw}/_ssgManifest.js +0 -0
@@ -0,0 +1,3 @@
1
+ module.exports=[42209,a=>{a.n(a.i(82726))},20994,a=>{a.n(a.i(86802))},73101,a=>{a.n(a.i(83099))},85571,a=>{a.n(a.i(23067))},1515,a=>{a.n(a.i(66051))},38965,a=>{a.n(a.i(68763))},491,a=>{a.n(a.i(55244))},14603,a=>{a.n(a.i(51450))},7702,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(13358).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/dashboard/src/app/(dashboard)/memory/replay/page.tsx <module evaluation> from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/dashboard/src/app/(dashboard)/memory/replay/page.tsx <module evaluation>","default")},17762,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(13358).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/dashboard/src/app/(dashboard)/memory/replay/page.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/dashboard/src/app/(dashboard)/memory/replay/page.tsx","default")},98176,a=>{"use strict";a.i(7702);var b=a.i(17762);a.n(b)}];
2
+
3
+ //# sourceMappingURL=dashboard_fac483f8._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[81954,a=>{"use strict";var b=a.i(16306),c=a.i(98419),d=a.i(52181),e=a.i(79151),f=a.i(13106),g=a.i(23808),h=a.i(64565);function i({sessions:a,selectedSessionId:d,onSelect:e,loading:f,error:g,onRetry:i}){let[j,k]=(0,c.useState)("recency"),l=(0,c.useMemo)(()=>{let b=[...a];return"recency"===j?b.sort((a,b)=>Date.parse(b.last_ts)-Date.parse(a.last_ts)):b.sort((a,b)=>b.event_count-a.event_count),b},[a,j]);return(0,b.jsxs)("div",{className:"flex h-full flex-col",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between border-b border-[var(--term-border)] px-3 py-2 theme-glass:border-[var(--sc-border)]",children:[(0,b.jsxs)("span",{className:"text-xs font-mono uppercase tracking-wider text-[var(--term-text-muted)] theme-glass:text-[var(--sc-text-secondary)]",children:["Sessions ",(0,b.jsxs)("span",{className:"text-[var(--term-text-dim)]",children:["(",a.length,")"]})]}),(0,b.jsx)("div",{className:"flex gap-1",children:["recency","events"].map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>k(a),className:(0,h.cn)("rounded px-2 py-0.5 text-[10px] font-mono uppercase tracking-wider transition-colors",j===a?"text-[var(--term-neon-fg)] bg-[var(--term-neon)]/10 theme-glass:bg-[var(--sc-cyan)]/15 theme-glass:text-[var(--sc-cyan)]":"text-[var(--term-text-dim)] hover:text-[var(--term-text)] theme-glass:text-[var(--sc-text-secondary)]"),children:"recency"===a?"recent":"events"},a))})]}),(0,b.jsx)("div",{className:"flex-1 overflow-y-auto",children:g&&0===a.length?(0,b.jsxs)("div",{className:"p-4 text-xs font-mono",children:[(0,b.jsx)("div",{className:"text-[var(--term-danger)] theme-glass:text-[var(--sc-coral)]",children:"API unreachable."}),(0,b.jsx)("div",{className:"mt-1 text-[var(--term-text-dim)] theme-glass:text-[var(--sc-text-secondary)] break-words",children:g.message||"Failed to load sessions."}),(0,b.jsxs)("div",{className:"mt-2 text-[var(--term-text-dim)] theme-glass:text-[var(--sc-text-secondary)]",children:["Is ",(0,b.jsx)("code",{className:"text-[var(--term-neon-fg)] theme-glass:text-[var(--sc-cyan)]",children:"npm run dev:api"})," running on :3001?"]}),i&&(0,b.jsx)("button",{type:"button",onClick:i,className:"mt-3 rounded border border-[var(--term-border)] px-2 py-1 text-[10px] uppercase tracking-wider text-[var(--term-text-muted)] hover:text-[var(--term-text)] theme-glass:border-[var(--sc-border)] theme-glass:text-[var(--sc-text-secondary)]",children:"Retry"})]}):f&&0===a.length?(0,b.jsx)("div",{className:"p-4 text-xs font-mono text-[var(--term-text-muted)] theme-glass:text-[var(--sc-text-secondary)]",children:"Loading…"}):0===l.length?(0,b.jsxs)("div",{className:"p-4 text-xs font-mono text-[var(--term-text-muted)] theme-glass:text-[var(--sc-text-secondary)]",children:[(0,b.jsx)("div",{children:"No sessions yet."}),(0,b.jsxs)("div",{className:"mt-1 text-[var(--term-text-dim)] theme-glass:text-[var(--sc-text-secondary)]",children:["Click ",(0,b.jsx)("span",{className:"text-[var(--term-neon-fg)] theme-glass:text-[var(--sc-cyan)]",children:"Import JSONL"})," above to ingest your existing Claude Code transcripts, or run"," ",(0,b.jsx)("code",{className:"text-[var(--term-neon-fg)] theme-glass:text-[var(--sc-cyan)]",children:"shieldcortex import-jsonl"})," from the CLI."]})]}):(0,b.jsx)("ul",{className:"divide-y divide-[var(--term-border)] theme-glass:divide-[var(--sc-border)]",children:l.map(a=>{var c;return(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",onClick:()=>e(a.session_id),className:(0,h.cn)("block w-full text-left px-3 py-2 transition-colors","hover:bg-[var(--term-electric)]/5 theme-glass:hover:bg-[var(--sc-surface-interactive)]",d===a.session_id&&"bg-[var(--term-electric)]/10 theme-glass:bg-[var(--sc-cyan)]/10"),children:[(0,b.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,b.jsx)("code",{className:"text-[11px] font-mono text-[var(--term-text)] theme-glass:text-[var(--sc-text-primary)] truncate",children:(c=a.session_id,/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(c)?`${c.slice(0,8)}…${c.slice(-4)}`:c.length>22?`${c.slice(0,20)}…`:c)}),(0,b.jsx)("span",{className:"text-[10px] font-mono text-[var(--term-text-muted)] theme-glass:text-[var(--sc-text-secondary)] tabular-nums",children:a.event_count})]}),(0,b.jsxs)("div",{className:"mt-0.5 flex items-baseline justify-between gap-2",children:[(0,b.jsx)("span",{className:"text-[10px] font-mono text-[var(--term-text-dim)] truncate",children:a.project??"(no project)"}),(0,b.jsx)("span",{className:"text-[10px] font-mono text-[var(--term-text-dim)] tabular-nums",children:function(a){let b=Date.parse(a);if(!Number.isFinite(b))return"";let c=Math.floor((Date.now()-b)/1e3);if(c<60)return`${c}s`;let d=Math.floor(c/60);if(d<60)return`${d}m`;let e=Math.floor(d/60);if(e<24)return`${e}h`;let f=Math.floor(e/24);if(f<30)return`${f}d`;let g=Math.floor(f/30);return g<12?`${g}mo`:`${Math.floor(g/12)}y`}(a.last_ts)})]})]})},a.session_id)})})})]})}let j={prompt:"var(--term-electric)",response:"var(--term-neon)",tool_call:"var(--term-warn)",tool_result:"var(--term-neon-fg)",tool_error:"var(--term-danger)",hook_fire:"var(--term-text-muted)"},k={prompt:"Prompt",response:"Response",tool_call:"Tool call",tool_result:"Tool result",tool_error:"Tool error",hook_fire:"Hook"};function l({events:a,currentIndex:d,onSeek:e,playing:f}){let g=(0,c.useRef)(null),i=(0,c.useRef)(!1),[l,n]=(0,c.useState)(800),o=a.length,p=(0,c.useMemo)(()=>{let b={};for(let c of a)b[c.kind]=(b[c.kind]??0)+1;return b},[a]);(0,c.useEffect)(()=>{let a=g.current;if(!a)return;let b=()=>{let b=a.getBoundingClientRect().width;b>0&&n(b)};b();let c=new ResizeObserver(b);return c.observe(a),()=>c.disconnect()},[]);let q=(0,c.useCallback)(a=>{let b=g.current;if(!b||0===o)return 0;let c=b.getBoundingClientRect(),d=c.width-24;return d<=0?0:Math.round(Math.max(0,Math.min(d,a-c.left-12))/d*(o-1))},[o]),r=a=>{i.current=!1,a.target.releasePointerCapture?.(a.pointerId)};if(0===o)return(0,b.jsx)("div",{className:"rounded border border-[var(--term-border)] theme-glass:border-[var(--sc-border)] p-4",children:(0,b.jsx)("div",{className:"text-xs font-mono text-[var(--term-text-muted)]",children:"No events to scrub. Pick a session on the left."})});let s=m(d,o,l);return(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("div",{ref:g,className:(0,h.cn)("rounded border border-[var(--term-border)] theme-glass:border-[var(--sc-border)] theme-glass:bg-[var(--sc-surface-glass)] overflow-hidden"),children:(0,b.jsxs)("svg",{role:"slider","aria-label":"Replay scrubber","aria-valuemin":0,"aria-valuemax":Math.max(0,o-1),"aria-valuenow":Math.max(0,Math.min(d,o-1)),"aria-valuetext":`Event ${d+1} of ${o}`,width:"100%",height:36,viewBox:`0 0 ${Math.max(l,1)} 36`,preserveAspectRatio:"none",onPointerDown:a=>{i.current=!0,a.target.setPointerCapture?.(a.pointerId),e(q(a.clientX))},onPointerMove:a=>{i.current&&e(q(a.clientX))},onPointerUp:r,onPointerCancel:r,className:"block w-full select-none cursor-ew-resize",children:[(0,b.jsx)("line",{x1:12,y1:18,x2:Math.max(l,24)-12,y2:18,stroke:"var(--term-border)",strokeWidth:"1"}),a.map((a,c)=>{let e=m(c,o,l),f=c===d;return(0,b.jsx)("line",{x1:e,y1:7,x2:e,y2:29,stroke:j[a.kind],strokeWidth:f?2.5:1.5,opacity:f?1:.7},a.id)}),(0,b.jsxs)("g",{pointerEvents:"none",children:[(0,b.jsx)("line",{x1:s,y1:3,x2:s,y2:33,stroke:"var(--term-electric)",strokeWidth:2,className:f?"animate-pulse":""}),(0,b.jsx)("circle",{cx:s,cy:18,r:4,fill:"var(--term-electric)",stroke:"var(--term-bg)",strokeWidth:1.5})]})]})}),(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1 text-[10px] font-mono",children:Object.keys(k).map(a=>{let c=p[a];return c?(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-[var(--term-text-muted)]",children:[(0,b.jsx)("span",{"aria-hidden":!0,className:"inline-block h-2 w-2",style:{backgroundColor:j[a]}}),k[a]," ",(0,b.jsxs)("span",{className:"text-[var(--term-text-dim)] tabular-nums",children:["(",c,")"]})]},a):null})})]})}function m(a,b,c){return b<=1||c<=0?12:12+a/(b-1)*(c-24)}let n={prompt:"bg-[var(--term-electric)]/15 text-[var(--term-electric-fg)] theme-glass:bg-[var(--sc-coral)]/15 theme-glass:text-[var(--sc-coral)]",response:"bg-[var(--term-neon)]/15 text-[var(--term-neon-fg)] theme-glass:bg-[var(--sc-cyan)]/15 theme-glass:text-[var(--sc-cyan)]",tool_call:"bg-[var(--term-warn)]/15 text-[var(--term-warn)] theme-glass:bg-amber-500/15 theme-glass:text-amber-400",tool_result:"bg-[var(--term-neon)]/10 text-[var(--term-neon-fg)] theme-glass:bg-[var(--sc-cyan)]/10 theme-glass:text-[var(--sc-cyan)]",tool_error:"bg-[var(--term-danger)]/15 text-[var(--term-danger)] theme-glass:bg-rose-500/15 theme-glass:text-rose-400",hook_fire:"bg-[var(--term-border)] text-[var(--term-text-muted)] theme-glass:bg-[var(--sc-border)] theme-glass:text-[var(--sc-text-secondary)]"};function o({event:a,indexLabel:c,loading:d}){var e;let f;if(d)return(0,b.jsxs)("div",{className:"flex h-full flex-col",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2 border-b border-[var(--term-border)] theme-glass:border-[var(--sc-border)] px-3 py-2",children:[(0,b.jsx)("div",{className:"h-4 w-20 animate-pulse rounded bg-[var(--term-border)]/60"}),(0,b.jsx)("div",{className:"h-3 w-16 animate-pulse rounded bg-[var(--term-border)]/40"})]}),(0,b.jsxs)("div",{className:"flex-1 space-y-2 p-3",children:[(0,b.jsx)("div",{className:"h-3 w-3/4 animate-pulse rounded bg-[var(--term-border)]/40"}),(0,b.jsx)("div",{className:"h-3 w-1/2 animate-pulse rounded bg-[var(--term-border)]/40"}),(0,b.jsx)("div",{className:"h-3 w-5/6 animate-pulse rounded bg-[var(--term-border)]/40"})]})]});if(!a)return(0,b.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,b.jsxs)("div",{className:"max-w-xs space-y-2 px-6 text-center",children:[(0,b.jsx)("div",{className:"text-xs font-mono uppercase tracking-wider text-[var(--term-text-muted)]",children:"No event selected"}),(0,b.jsxs)("div",{className:"text-[11px] font-mono text-[var(--term-text-dim)]",children:["Click a tick on the scrubber, or press ",(0,b.jsx)("kbd",{className:"rounded border border-[var(--term-border)] px-1",children:"space"})," to play."]})]})});let g=a.payload,i="object"==typeof g&&g&&"string"==typeof g.text?g.text:null;return(0,b.jsxs)("div",{className:"flex h-full flex-col",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2 border-b border-[var(--term-border)] theme-glass:border-[var(--sc-border)] px-3 py-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,b.jsx)("span",{className:(0,h.cn)("rounded px-1.5 py-0.5 text-[10px] font-mono uppercase tracking-wider",n[a.kind]),children:a.kind}),c&&(0,b.jsx)("span",{className:"text-[10px] font-mono uppercase tracking-wider text-[var(--term-text-muted)]",children:c})]}),(0,b.jsx)("div",{className:"text-[10px] font-mono text-[var(--term-text-dim)] tabular-nums",children:Number.isNaN((f=new Date(e=a.ts)).getTime())?e:f.toLocaleString(void 0,{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit",fractionalSecondDigits:3})})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1 border-b border-[var(--term-border)] theme-glass:border-[var(--sc-border)] px-3 py-1.5 text-[10px] font-mono",children:[a.actor&&(0,b.jsxs)("span",{className:"text-[var(--term-text-muted)]",children:["actor: ",(0,b.jsx)("span",{className:"text-[var(--term-text)]",children:a.actor})]}),null!==a.duration_ms&&(0,b.jsxs)("span",{className:"text-[var(--term-text-muted)]",children:["duration: ",(0,b.jsxs)("span",{className:"text-[var(--term-text)] tabular-nums",children:[a.duration_ms,"ms"]})]}),a.project&&(0,b.jsxs)("span",{className:"text-[var(--term-text-muted)]",children:["project: ",(0,b.jsx)("span",{className:"text-[var(--term-text)]",children:a.project})]}),null!==a.audit_id&&(0,b.jsxs)("span",{className:"text-[var(--term-danger)]",children:["audit: ",(0,b.jsxs)("span",{className:"tabular-nums",children:["#",a.audit_id]}),(0,b.jsx)("span",{className:"ml-1 text-[var(--term-text-dim)]",children:"(scanned)"})]})]}),(0,b.jsx)("div",{className:"flex-1 overflow-y-auto p-3 text-xs font-mono",children:function(a,c){let d=a.payload;if("tool_call"===a.kind&&d&&"object"==typeof d){let a="string"==typeof d.name?d.name:"unknown",c="string"==typeof d.tool_use_id?d.tool_use_id:null;return(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("span",{className:"text-[var(--term-text-muted)]",children:"tool: "}),(0,b.jsx)("span",{className:"text-[var(--term-warn)]",children:a}),c&&(0,b.jsx)("span",{className:"ml-2 text-[var(--term-text-dim)]",children:c})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-[var(--term-text-muted)] mb-1",children:"input"}),(0,b.jsx)("pre",{className:"whitespace-pre-wrap break-words text-[var(--term-text)] theme-glass:text-[var(--sc-text-primary)]",children:p(d.input)})]})]})}if("tool_result"===a.kind&&d&&"object"==typeof d){let a="string"==typeof d.tool_use_id?d.tool_use_id:null,c=d.content;return(0,b.jsxs)("div",{className:"space-y-2",children:[a&&(0,b.jsxs)("div",{className:"text-[var(--term-text-dim)] text-[10px]",children:["↳ ",a]}),(0,b.jsx)("pre",{className:"whitespace-pre-wrap break-words text-[var(--term-text)] theme-glass:text-[var(--sc-text-primary)]",children:"string"==typeof c?c:p(c)})]})}return c?(0,b.jsx)("pre",{className:"whitespace-pre-wrap break-words text-[var(--term-text)] theme-glass:text-[var(--sc-text-primary)]",children:c}):(0,b.jsx)("pre",{className:"whitespace-pre-wrap break-words text-[var(--term-text)] theme-glass:text-[var(--sc-text-primary)]",children:p(d)})}(a,i)})]})}function p(a){if(null==a)return"null";if("string"==typeof a)return a;try{return JSON.stringify(a,null,2)}catch{return String(a)}}var q=a.i(70694);let r=(0,q.default)("pause",[["rect",{x:"14",y:"3",width:"5",height:"18",rx:"1",key:"kaeet6"}],["rect",{x:"5",y:"3",width:"5",height:"18",rx:"1",key:"1wsw3u"}]]);var s=a.i(78489);let t=(0,q.default)("skip-back",[["path",{d:"M17.971 4.285A2 2 0 0 1 21 6v12a2 2 0 0 1-3.029 1.715l-9.997-5.998a2 2 0 0 1-.003-3.432z",key:"15892j"}],["path",{d:"M3 20V4",key:"1ptbpl"}]]),u=(0,q.default)("skip-forward",[["path",{d:"M21 4v16",key:"7j8fe9"}],["path",{d:"M6.029 4.285A2 2 0 0 0 3 6v12a2 2 0 0 0 3.029 1.715l9.997-5.998a2 2 0 0 0 .003-3.432z",key:"zs4d6"}]]),v=(0,q.default)("chevron-first",[["path",{d:"m17 18-6-6 6-6",key:"1yerx2"}],["path",{d:"M7 6v12",key:"1p53r6"}]]),w=(0,q.default)("chevron-last",[["path",{d:"m7 18 6-6-6-6",key:"lwmzdw"}],["path",{d:"M17 6v12",key:"1o0aio"}]]);var x=a.i(40458),y=a.i(86044);let z=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001",A=[.5,1,2,4];function B({playback:a,totalOverride:d}){let{playing:e,speed:f,currentIndex:g,events:i,toggle:j,stepBack:k,stepForward:l,setSpeed:m,cycleSpeed:n,jumpToStart:o,jumpToEnd:p}=a,q=d??i.length,x=g<=0,y=g>=i.length-1;return(0,c.useEffect)(()=>{let a=a=>{let b=a.target;if(b){let a=b.tagName;if("INPUT"===a||"TEXTAREA"===a||b.isContentEditable)return}switch(a.key){case" ":a.preventDefault(),j();break;case"ArrowLeft":a.preventDefault(),a.shiftKey?o():k();break;case"ArrowRight":a.preventDefault(),a.shiftKey?p():l();break;case"[":a.preventDefault(),n(-1);break;case"]":a.preventDefault(),n(1)}};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[j,k,l,o,p,n]),(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3 rounded border border-[var(--term-border)] theme-glass:border-[var(--sc-border)] theme-glass:bg-[var(--sc-surface-glass)] px-3 py-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsx)(C,{ariaLabel:"Jump to start (Shift+←)",disabled:x,onClick:o,children:(0,b.jsx)(v,{className:"h-3.5 w-3.5","aria-hidden":!0})}),(0,b.jsx)(C,{ariaLabel:"Step back (←)",disabled:x,onClick:k,children:(0,b.jsx)(t,{className:"h-3.5 w-3.5","aria-hidden":!0})}),(0,b.jsxs)(C,{ariaLabel:e?"Pause (space)":"Play (space)",onClick:j,primary:!0,disabled:0===i.length,children:[e?(0,b.jsx)(r,{className:"h-4 w-4","aria-hidden":!0}):(0,b.jsx)(s.Play,{className:"h-4 w-4","aria-hidden":!0}),(0,b.jsx)("span",{className:"ml-1.5 text-[10px] uppercase tracking-wider",children:e?"Pause":"Play"})]}),(0,b.jsx)(C,{ariaLabel:"Step forward (→)",disabled:y,onClick:l,children:(0,b.jsx)(u,{className:"h-3.5 w-3.5","aria-hidden":!0})}),(0,b.jsx)(C,{ariaLabel:"Jump to end (Shift+→)",disabled:y,onClick:p,children:(0,b.jsx)(w,{className:"h-3.5 w-3.5","aria-hidden":!0})})]}),(0,b.jsxs)("div",{className:"text-[11px] font-mono text-[var(--term-text-muted)] tabular-nums",children:[(0,b.jsx)("span",{className:"text-[var(--term-text)]",children:Math.min(g+1,q)}),(0,b.jsx)("span",{className:"text-[var(--term-text-dim)]",children:" / "}),(0,b.jsx)("span",{children:q})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsx)("span",{className:"text-[10px] font-mono uppercase tracking-wider text-[var(--term-text-muted)]",children:"speed"}),(0,b.jsx)("div",{className:"flex overflow-hidden rounded border border-[var(--term-border)] theme-glass:border-[var(--sc-border)]",children:A.map(a=>(0,b.jsxs)("button",{type:"button",onClick:()=>m(a),className:(0,h.cn)("px-2 py-0.5 text-[10px] font-mono tabular-nums transition-colors",a===f?"bg-[var(--term-neon)]/15 text-[var(--term-neon-fg)] theme-glass:bg-[var(--sc-cyan)]/15 theme-glass:text-[var(--sc-cyan)]":"text-[var(--term-text-dim)] hover:text-[var(--term-text)] theme-glass:text-[var(--sc-text-secondary)]"),"aria-pressed":a===f,"aria-label":`${a}\xd7 speed`,children:[a,"×"]},a))})]})]})}function C({ariaLabel:a,onClick:c,children:d,primary:e,disabled:f}){return(0,b.jsx)("button",{type:"button","aria-label":a,title:a,onClick:c,disabled:f,className:(0,h.cn)("inline-flex items-center rounded px-2 py-1 text-xs font-mono transition-colors","disabled:opacity-40 disabled:cursor-not-allowed",e?"border border-[var(--term-electric)] text-[var(--term-electric-fg)] hover:bg-[var(--term-electric)]/10 theme-glass:bg-[var(--sc-cyan)] theme-glass:text-[var(--sc-bg-deep)] theme-glass:border-0 theme-glass:hover:bg-[var(--sc-cyan-mid)]":"border border-[var(--term-border)] text-[var(--term-text-dim)] hover:text-[var(--term-text)] hover:border-[var(--term-text-muted)] theme-glass:border-[var(--sc-border)]"),children:d})}let D=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";function E(){let a=(0,d.useRouter)(),f=(0,d.useSearchParams)(),h=f.get("session"),[j,k]=(0,c.useState)(null),[m,n]=(0,c.useState)(!1),p=(0,x.useQuery)({queryKey:["replay-sessions",(void 0)??null],queryFn:async()=>{let a=await (0,y.authFetch)(`${z}/api/sessions?limit=200`);if(!a.ok)throw Error(await (0,y.readApiError)(a,"Failed to fetch sessions"));return a.json()},refetchInterval:15e3}),q=(0,x.useQuery)({queryKey:["replay-events",h],enabled:!!h,queryFn:async()=>{let a=await (0,y.authFetch)(`${z}/api/sessions/${encodeURIComponent(h)}/events?limit=500`);if(!a.ok)throw Error(await (0,y.readApiError)(a,"Failed to fetch events"));return a.json()}}),r=(0,c.useMemo)(()=>q.data?.events??[],[q.data]),s=function(a){let[b,d]=(0,c.useState)(0),[e,f]=(0,c.useState)(!1),[g,h]=(0,c.useState)(1),[i,j]=(0,c.useState)(a);i!==a&&(j(a),d(0),f(!1));let k=(0,c.useMemo)(()=>a.map(a=>Date.parse(a.ts)),[a]),l=b>=a.length-1;(0,c.useEffect)(()=>{if(!e||l)return;let c=Math.max(50,Math.min(5e3,k[b+1]-k[b]))/g,h=window.setTimeout(()=>{d(b=>{let c=Math.min(b+1,a.length-1);return c>=a.length-1&&f(!1),c})},c);return()=>window.clearTimeout(h)},[e,l,b,g,a.length,k]);let m=(0,c.useCallback)(()=>{0!==a.length&&(b>=a.length-1&&d(0),f(!0))},[a.length,b]),n=(0,c.useCallback)(()=>f(!1),[]),o=(0,c.useCallback)(()=>f(a=>!a),[]),p=(0,c.useCallback)(a=>h(a),[]),q=(0,c.useCallback)(a=>{h(b=>{let c=(A.indexOf(b)+a+A.length)%A.length;return A[c]})},[]),r=(0,c.useCallback)(b=>{0===a.length||d(Math.max(0,Math.min(b,a.length-1)))},[a.length]),s=(0,c.useCallback)(()=>r(b+1),[b,r]),t=(0,c.useCallback)(()=>r(b-1),[b,r]),u=(0,c.useCallback)(()=>r(0),[r]),v=(0,c.useCallback)(()=>r(a.length-1),[r,a.length]),w=a.length>0?a[Math.min(b,a.length-1)]:null,x=a.length>1?b/(a.length-1):0;return{events:a,currentIndex:b,playing:e,speed:g,current:w,progress:x,timestamps:k,play:m,pause:n,toggle:o,setSpeed:p,cycleSpeed:q,setIndex:r,stepForward:s,stepBack:t,jumpToStart:u,jumpToEnd:v}}(r);(0,c.useEffect)(()=>{if(h)return;let b=p.data?.sessions;if(b&&b.length>0){let c=new URLSearchParams(f.toString());c.set("session",b[0].session_id),a.replace(`/memory/replay?${c.toString()}`)}},[p.data,h,a,f]);let t=async()=>{n(!0),k(null);try{let a=await (0,y.authFetch)(`${D}/api/sessions/import-jsonl`,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"});if(!a.ok)throw Error(await (0,y.readApiError)(a,"Import failed"));let b=await a.json(),c=[];"number"==typeof b.filesImported&&"number"==typeof b.filesMatched&&c.push(`${b.filesImported}/${b.filesMatched} file${1===b.filesMatched?"":"s"}`),"number"==typeof b.eventCount&&c.push(`${b.eventCount} event${1===b.eventCount?"":"s"}`),b.filesFailed&&c.push(`${b.filesFailed} failed`),k(c.length>0?`Imported: ${c.join(", ")}`:"Import complete"),await p.refetch()}catch(a){k(`Import failed: ${a.message}`)}finally{n(!1)}},u=p.data?.sessions??[];return(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)(e.PageHeader,{eyebrow:"Memory",title:"Replay",subtitle:"Scrubbable timeline of prompts, tool calls, and responses captured across sessions.",actions:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(g.Button,{variant:"outline",size:"sm",onClick:()=>p.refetch(),children:"Refresh"}),(0,b.jsx)(g.Button,{variant:"cyan",size:"sm",onClick:t,disabled:m,children:m?"Importing…":"Import JSONL"})]})}),j&&(0,b.jsx)("div",{className:"rounded border border-[var(--term-border)] theme-glass:border-[var(--sc-border)] px-3 py-2 text-xs font-mono text-[var(--term-text-muted)]",children:j}),(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-4 lg:grid-cols-[260px_minmax(0,1fr)_minmax(0,360px)]",children:[(0,b.jsx)("div",{className:"rounded border border-[var(--term-border)] theme-glass:border-[var(--sc-border)] theme-glass:bg-[var(--sc-surface-glass)] h-[640px] overflow-hidden",children:(0,b.jsx)(i,{sessions:u,selectedSessionId:h,onSelect:b=>{let c=new URLSearchParams(f.toString());c.set("session",b),a.replace(`/memory/replay?${c.toString()}`)},loading:p.isLoading,error:p.error,onRetry:()=>p.refetch()})}),(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)(l,{events:r,currentIndex:s.currentIndex,onSeek:s.setIndex,playing:s.playing}),(0,b.jsx)(B,{playback:s}),q.isError&&(0,b.jsx)("div",{className:"rounded border border-[var(--term-danger)]/40 bg-[var(--term-danger)]/10 px-3 py-2 text-xs font-mono text-[var(--term-danger)]",children:q.error.message}),!h&&(0,b.jsx)("div",{className:"rounded border border-[var(--term-border)] theme-glass:border-[var(--sc-border)] p-6 text-center text-xs font-mono text-[var(--term-text-muted)]",children:"Pick a session from the list on the left to start replaying."})]}),(0,b.jsx)("div",{className:"rounded border border-[var(--term-border)] theme-glass:border-[var(--sc-border)] theme-glass:bg-[var(--sc-surface-glass)] h-[640px] overflow-hidden",children:(0,b.jsx)(o,{event:s.current,indexLabel:s.events.length>0?`${s.currentIndex+1} / ${s.events.length}`:void 0,loading:!!h&&q.isFetching&&0===r.length})})]}),(0,b.jsxs)("div",{className:"text-[10px] font-mono text-[var(--term-text-dim)]",children:["Shortcuts:",(0,b.jsx)("kbd",{className:"mx-1 rounded border border-[var(--term-border)] px-1",children:"space"}),"play/pause ·",(0,b.jsx)("kbd",{className:"mx-1 rounded border border-[var(--term-border)] px-1",children:"←"}),(0,b.jsx)("kbd",{className:"rounded border border-[var(--term-border)] px-1",children:"→"}),"step ·",(0,b.jsx)("kbd",{className:"mx-1 rounded border border-[var(--term-border)] px-1",children:"shift"}),"+arrows jump ·",(0,b.jsx)("kbd",{className:"mx-1 rounded border border-[var(--term-border)] px-1",children:"["}),(0,b.jsx)("kbd",{className:"rounded border border-[var(--term-border)] px-1",children:"]"}),"speed"]})]})}function F(){return(0,b.jsx)(c.Suspense,{fallback:(0,b.jsx)(f.PageSkeleton,{}),children:(0,b.jsx)(E,{})})}a.s(["default",()=>F],81954)}];
2
+
3
+ //# sourceMappingURL=dashboard_src_app_%28dashboard%29_memory_replay_page_tsx_d2b20535._.js.map
@@ -1,4 +1,4 @@
1
- module.exports=[11221,a=>{"use strict";let b,c,d,e,f;var g=a.i(16306),h=a.i(52181),i=a.i(98419),j=a.i(13106),k=a.i(47520),l=a.i(70694);let m=(0,l.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 n=a.i(98472),o=a.i(79155),p=a.i(48195),q=a.i(79151),r=a.i(40458),s=a.i(66807),t=a.i(14220),u=a.i(86044);let v=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function w(){let a=await (0,u.authFetch)(`${v}/api/iron-dome/status`);if(!a.ok)throw Error(await (0,u.readApiError)(a,"Failed to fetch Iron Dome status"));return a.json()}async function x(a){let b=await (0,u.authFetch)(`${v}/api/iron-dome/activate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({profile:a})});if(!b.ok)throw Error(await (0,u.readApiError)(b,"Failed to activate Iron Dome"));return b.json()}async function y(){let a=await (0,u.authFetch)(`${v}/api/iron-dome/deactivate`,{method:"POST"});if(!a.ok)throw Error(await (0,u.readApiError)(a,"Failed to deactivate Iron Dome"));return a.json()}async function z(a){let b=await (0,u.authFetch)(`${v}/api/iron-dome/config`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error(await (0,u.readApiError)(b,"Failed to update Iron Dome configuration"));return b.json()}async function A(a){let b=await (0,u.authFetch)(`${v}/api/iron-dome/scan`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:a})});if(!b.ok)throw Error(await (0,u.readApiError)(b,"Failed to scan text"));return b.json()}async function B(){let a=await (0,u.authFetch)(`${v}/api/iron-dome/emergency-stop`,{method:"POST"});if(!a.ok)throw Error(await (0,u.readApiError)(a,"Failed to trigger emergency stop"));return a.json()}async function C(a){let b=await (0,u.authFetch)(`${v}/api/iron-dome/resume`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reason:a||"Resumed via dashboard"})});if(!b.ok)throw Error(await (0,u.readApiError)(b,"Failed to resume operations"));return b.json()}async function D(){let a=await (0,u.authFetch)(`${v}/api/control/status`);if(!a.ok)throw Error(await (0,u.readApiError)(a,"Failed to fetch control status"));return a.json()}async function E(a){let b=new URLSearchParams;a&&b.set("limit",a.toString());let c=await (0,u.authFetch)(`${v}/api/iron-dome/audit?${b}`);if(!c.ok)throw Error(await (0,u.readApiError)(c,"Failed to fetch Iron Dome audit"));return c.json()}function F(){return(0,r.useQuery)({queryKey:["iron-dome-status"],queryFn:w,refetchInterval:3e4,retry:2})}var G=a.i(38883);let H=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function I(a){let b=new URLSearchParams;a?.limit&&b.set("limit",String(a.limit)),a?.severity&&b.set("severity",a.severity),a?.outcome&&b.set("outcome",a.outcome),a?.tool&&b.set("tool",a.tool);let c=await (0,u.authFetch)(`${H}/api/v1/intercepts?${b}`);if(!c.ok)throw Error(await (0,u.readApiError)(c,"Failed to fetch interceptor events"));return c.json()}function J(a){return(0,r.useQuery)({queryKey:["interceptor-events",a],queryFn:()=>I(a),refetchInterval:3e4,retry:2})}var K=a.i(84692);let L=(0,l.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 M=a.i(74150),N=a.i(48036),O=a.i(32322),P=a.i(94992);let Q=(0,l.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"}]]),R=(0,l.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"}]]),S=(0,l.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"}]]),T=(0,l.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"}]]),U=(0,l.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"}]]),V=(0,l.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"}]]),W=(0,l.default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);var X=a.i(6321),Y=a.i(73038);let Z=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001",$=[{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}],_=[{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}],aa=[{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 ab(){let a,b,c,{data:d,isLoading:e,isLocked:f}={...a=(0,r.useQuery)({queryKey:["custom-patterns"],queryFn:()=>(0,u.gatedFetch)(`${Z}/api/patterns`).then(a=>{if(!a.ok)throw Error("Failed to fetch custom patterns");return a.json()}),retry:(a,b)=>!(b instanceof u.FeatureLockedError)&&a<2,refetchInterval:3e4}),isLocked:a.error instanceof u.FeatureLockedError},h=(b=(0,t.useQueryClient)(),(0,s.useMutation)({mutationFn:a=>(0,u.gatedFetch)(`${Z}/api/patterns`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}).then(a=>a.ok?a.json():a.json().then(a=>{throw Error(a.error)})),onSuccess:()=>{b.invalidateQueries({queryKey:["custom-patterns"]})}})),j=(c=(0,t.useQueryClient)(),(0,s.useMutation)({mutationFn:a=>(0,u.gatedFetch)(`${Z}/api/patterns/${a}`,{method:"DELETE"}).then(a=>a.ok?a.json():a.json().then(a=>{throw Error(a.error)})),onSuccess:()=>{c.invalidateQueries({queryKey:["custom-patterns"]})}})),k=(0,s.useMutation)({mutationFn:({id:a,text:b})=>(0,u.gatedFetch)(`${Z}/api/patterns/${a}/test`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:b})}).then(a=>a.ok?a.json():a.json().then(a=>{throw Error(a.error)}))}),[l,m]=(0,i.useState)(!1),[n,o]=(0,i.useState)(null),[p,q]=(0,i.useState)({name:"",category:"custom",severity:"medium",regex:"",description:""}),v=d?.patterns??[],w=!0,x="";if(p.regex)try{new RegExp(p.regex)}catch(a){w=!1,x=a.message}return f?(0,g.jsx)(ac,{}):(0,g.jsxs)("div",{className:"space-y-3",children:[(0,g.jsxs)("div",{className:"flex items-center justify-between",children:[(0,g.jsxs)("div",{className:"flex items-center gap-2",children:[(0,g.jsx)(L,{size:16,className:"text-[var(--sc-coral)]"}),(0,g.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Custom Injection Patterns"}),(0,g.jsxs)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:[v.length,"/50"]})]}),(0,g.jsxs)("button",{onClick:()=>m(!l),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,g.jsx)(W,{size:12})," Add Pattern"]})]}),l&&(0,g.jsxs)("form",{onSubmit:a=>{a.preventDefault(),h.mutate(p,{onSuccess:()=>{m(!1),q({name:"",category:"custom",severity:"medium",regex:"",description:""})}})},className:"p-3 bg-[var(--sc-bg-elevated)] rounded-lg space-y-2",children:[(0,g.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,g.jsx)("input",{value:p.name,onChange:a=>q(b=>({...b,name:a.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,g.jsxs)("select",{value:p.severity,onChange:a=>q(b=>({...b,severity:a.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,g.jsx)("option",{value:"critical",children:"Critical"}),(0,g.jsx)("option",{value:"high",children:"High"}),(0,g.jsx)("option",{value:"medium",children:"Medium"}),(0,g.jsx)("option",{value:"low",children:"Low"})]})]}),(0,g.jsxs)("div",{className:"relative",children:[(0,g.jsx)("input",{value:p.regex,onChange:a=>q(b=>({...b,regex:a.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)] ${w?"border-[var(--sc-border)]":"border-[var(--sc-coral)]"}`}),!w&&(0,g.jsx)("p",{className:"text-[10px] text-[var(--sc-coral)] mt-0.5",children:x})]}),(0,g.jsx)("input",{value:p.description,onChange:a=>q(b=>({...b,description:a.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,g.jsxs)("div",{className:"flex gap-2",children:[(0,g.jsx)("button",{type:"submit",disabled:h.isPending||!w,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:h.isPending?"Creating...":"Create"}),(0,g.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"})]}),h.error&&(0,g.jsx)("p",{className:"text-xs text-[var(--sc-coral)]",children:h.error.message})]}),e?(0,g.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)] py-4 text-center",children:"Loading patterns..."}):0===v.length?(0,g.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,g.jsx)("div",{className:"space-y-1",children:v.map(a=>(0,g.jsxs)("div",{className:"px-3 py-2 bg-[var(--sc-bg-elevated)] rounded text-xs space-y-1",children:[(0,g.jsxs)("div",{className:"flex items-center gap-2",children:[(0,g.jsx)("span",{className:"text-[var(--sc-text-primary)] flex-1 font-medium",children:a.name}),(0,g.jsx)("span",{className:`px-1.5 py-0.5 rounded text-[10px] font-medium ${"critical"===a.severity||"high"===a.severity?"bg-[var(--sc-coral)]/20 text-[var(--sc-coral)]":"medium"===a.severity?"bg-[var(--sc-amber)]/20 text-[var(--sc-amber)]":"bg-[var(--sc-bg-elevated)]/20 text-[var(--sc-text-secondary)]"}`,children:a.severity}),(0,g.jsx)("button",{onClick:()=>o(n?.id===a.id?null:{id:a.id,text:""}),className:"text-[var(--sc-text-muted)] hover:text-[var(--sc-cyan)]",title:"Test pattern",children:(0,g.jsx)(V,{size:12})}),(0,g.jsx)("button",{onClick:()=>j.mutate(a.id),className:"text-[var(--sc-text-muted)] hover:text-[var(--sc-coral)]",children:(0,g.jsx)(X.Trash2,{size:12})})]}),(0,g.jsx)("code",{className:"text-[var(--sc-text-muted)] text-[10px] block truncate",children:a.regex}),n?.id===a.id&&(0,g.jsxs)("div",{className:"flex gap-2 mt-1",children:[(0,g.jsx)("input",{value:n.text,onChange:b=>o({id:a.id,text:b.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,g.jsx)("button",{onClick:()=>k.mutate({id:a.id,text:n.text}),disabled:!n.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"}),k.data&&(0,g.jsxs)("span",{className:"text-[10px] text-[var(--sc-text-secondary)] self-center",children:[k.data.count," matches"]})]})]},a.id))})]})}function ac(){return(0,g.jsxs)("div",{className:"space-y-3",children:[(0,g.jsxs)("div",{className:"flex items-center gap-2",children:[(0,g.jsx)(L,{size:16,className:"text-[var(--sc-coral)]"}),(0,g.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Custom Injection Patterns"}),(0,g.jsx)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:"0/50"})]}),(0,g.jsx)("div",{className:"space-y-1",children:_.map(a=>(0,g.jsxs)("div",{className:"px-3 py-2 bg-[var(--sc-bg-elevated)] rounded text-xs space-y-1",children:[(0,g.jsxs)("div",{className:"flex items-center gap-2",children:[(0,g.jsx)("span",{className:"text-[var(--sc-text-primary)] flex-1 font-medium",children:a.name}),(0,g.jsx)("span",{className:`px-1.5 py-0.5 rounded text-[10px] font-medium ${"critical"===a.severity||"high"===a.severity?"bg-[var(--sc-coral)]/20 text-[var(--sc-coral)]":"bg-[var(--sc-amber)]/20 text-[var(--sc-amber)]"}`,children:a.severity})]}),(0,g.jsx)("code",{className:"text-[var(--sc-text-muted)] text-[10px] block truncate",children:a.regex})]},a.id))})]})}function ad(){return(0,g.jsx)("div",{className:"bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded-xl p-4",children:(0,g.jsx)(Y.ProFeatureGate,{feature:"custom_injection_patterns",label:"Define up to 50 custom regex patterns for detecting domain-specific threats.",children:(0,g.jsx)(ab,{})})})}var ae=a.i(62606);let af=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";function ag(){let a,b,c,d,{data:e,isLoading:f,isLocked:h}={...a=(0,r.useQuery)({queryKey:["custom-policies"],queryFn:()=>(0,u.gatedFetch)(`${af}/api/iron-dome/policies`).then(a=>{if(!a.ok)throw Error("Failed to fetch custom policies");return a.json()}),retry:(a,b)=>!(b instanceof u.FeatureLockedError)&&a<2,refetchInterval:3e4}),isLocked:a.error instanceof u.FeatureLockedError},j=(b=(0,t.useQueryClient)(),(0,s.useMutation)({mutationFn:a=>(0,u.gatedFetch)(`${af}/api/iron-dome/policies`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}).then(a=>a.ok?a.json():a.json().then(a=>{throw Error(a.error)})),onSuccess:()=>{b.invalidateQueries({queryKey:["custom-policies"]})}})),k=(c=(0,t.useQueryClient)(),(0,s.useMutation)({mutationFn:a=>(0,u.gatedFetch)(`${af}/api/iron-dome/policies/${a}`,{method:"DELETE"}).then(a=>a.ok?a.json():a.json().then(a=>{throw Error(a.error)})),onSuccess:()=>{c.invalidateQueries({queryKey:["custom-policies"]})}})),l=(d=(0,t.useQueryClient)(),(0,s.useMutation)({mutationFn:a=>(0,u.gatedFetch)(`${af}/api/iron-dome/policies/${a}/activate`,{method:"PUT"}).then(a=>a.ok?a.json():a.json().then(a=>{throw Error(a.error)})),onSuccess:()=>{d.invalidateQueries({queryKey:["custom-policies"]})}})),[m,o]=(0,i.useState)(!1),[p,q]=(0,i.useState)({name:"",description:""}),v=e?.policies??[];return h?(0,g.jsx)(ah,{}):(0,g.jsxs)("div",{className:"space-y-3",children:[(0,g.jsxs)("div",{className:"flex items-center justify-between",children:[(0,g.jsxs)("div",{className:"flex items-center gap-2",children:[(0,g.jsx)(n.Shield,{size:16,className:"text-[var(--sc-coral)]"}),(0,g.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Custom Iron Dome Policies"}),(0,g.jsxs)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:[v.length,"/10"]})]}),(0,g.jsxs)("button",{onClick:()=>o(!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,g.jsx)(W,{size:12})," Create Policy"]})]}),m&&(0,g.jsxs)("form",{onSubmit:a=>{a.preventDefault(),j.mutate({name:p.name,description:p.description,config:{}},{onSuccess:()=>{o(!1),q({name:"",description:""})}})},className:"p-3 bg-[var(--sc-bg-elevated)]/50 rounded-lg space-y-2",children:[(0,g.jsx)("input",{value:p.name,onChange:a=>q(b=>({...b,name:a.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,g.jsx)("textarea",{value:p.description,onChange:a=>q(b=>({...b,description:a.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,g.jsxs)("div",{className:"flex gap-2",children:[(0,g.jsx)("button",{type:"submit",disabled:j.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:j.isPending?"Creating...":"Create"}),(0,g.jsx)("button",{type:"button",onClick:()=>o(!1),className:"px-3 py-1 text-xs text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)]",children:"Cancel"})]}),j.error&&(0,g.jsx)("p",{className:"text-xs text-[var(--sc-coral)]",children:j.error.message})]}),f?(0,g.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)] py-4 text-center",children:"Loading policies..."}):0===v.length?(0,g.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,g.jsx)("div",{className:"space-y-1",children:v.map(a=>(0,g.jsxs)("div",{className:"flex items-center gap-3 px-3 py-2 bg-[var(--sc-bg-elevated)]/30 rounded text-xs",children:[(0,g.jsxs)("div",{className:"flex-1",children:[(0,g.jsxs)("div",{className:"flex items-center gap-2",children:[(0,g.jsx)("span",{className:"text-[var(--sc-text-primary)] font-medium",children:a.name}),1===a.is_active&&(0,g.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"})]}),a.description&&(0,g.jsx)("p",{className:"text-[var(--sc-text-muted)] text-[10px] mt-0.5",children:a.description})]}),!a.is_active&&(0,g.jsxs)("button",{onClick:()=>l.mutate(a.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,g.jsx)(ae.Check,{size:10})," Activate"]}),(0,g.jsx)("button",{onClick:()=>k.mutate(a.id),className:"text-[var(--sc-text-muted)] hover:text-[var(--sc-coral)]",children:(0,g.jsx)(X.Trash2,{size:12})})]},a.id))})]})}function ah(){return(0,g.jsxs)("div",{className:"space-y-3",children:[(0,g.jsxs)("div",{className:"flex items-center gap-2",children:[(0,g.jsx)(n.Shield,{size:16,className:"text-[var(--sc-coral)]"}),(0,g.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Custom Iron Dome Policies"}),(0,g.jsx)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:"0/10"})]}),(0,g.jsx)("div",{className:"space-y-1",children:aa.map(a=>(0,g.jsx)("div",{className:"flex items-center gap-3 px-3 py-2 bg-[var(--sc-bg-elevated)]/30 rounded text-xs",children:(0,g.jsxs)("div",{className:"flex-1",children:[(0,g.jsxs)("div",{className:"flex items-center gap-2",children:[(0,g.jsx)("span",{className:"text-[var(--sc-text-primary)] font-medium",children:a.name}),a.is_active&&(0,g.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,g.jsx)("p",{className:"text-[var(--sc-text-muted)] text-[10px] mt-0.5",children:a.description})]})},a.id))})]})}function ai(){return(0,g.jsx)("div",{className:"bg-[var(--sc-bg-surface)]/50 border border-[var(--sc-border)] rounded-xl p-4",children:(0,g.jsx)(Y.ProFeatureGate,{feature:"custom_iron_dome_policies",label:"Create custom Iron Dome policies with tailored action gates and trust levels.",children:(0,g.jsx)(ag,{})})})}let aj=[{id:"personal",label:"Personal",description:"Lighter touch for solo use",icon:n.Shield},{id:"enterprise",label:"Enterprise",description:"Financial & data protection",icon:O.Lock},{id:"school",label:"School",description:"GDPR strict, pupil data guarded",icon:S},{id:"paranoid",label:"Paranoid",description:"Everything requires approval",icon:k.AlertTriangle}],ak=[{name:"Injection Scanner",description:"40+ patterns across 8 categories",icon:T},{name:"Instruction Gateway",description:"Trusted channel validation",icon:Q},{name:"Action Gate",description:"Approve / block external actions",icon:O.Lock},{name:"PII Guard",description:"Block sensitive data output",icon:P.Eye},{name:"Kill Switch",description:"Emergency stop phrase",icon:R},{name:"Sub-Agent Control",description:"Restrict spawned agent operations",icon:S}],al={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"},am={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 an(){let a,b,c,d,e,{data:f,isLoading:h}=F(),{data:j}=(0,r.useQuery)({queryKey:["iron-dome-audit",50],queryFn:()=>E(50),refetchInterval:3e4,retry:2}),k=(a=(0,t.useQueryClient)(),(0,s.useMutation)({mutationFn:a=>x(a),onSuccess:()=>{a.invalidateQueries({queryKey:["iron-dome-status"]}),a.invalidateQueries({queryKey:["iron-dome-audit"]})}})),l=(b=(0,t.useQueryClient)(),(0,s.useMutation)({mutationFn:y,onSuccess:()=>{b.invalidateQueries({queryKey:["iron-dome-status"]})}})),m=(c=(0,t.useQueryClient)(),(0,s.useMutation)({mutationFn:a=>z(a),onSuccess:()=>{c.invalidateQueries({queryKey:["iron-dome-status"]}),c.invalidateQueries({queryKey:["iron-dome-audit"]})}})),o=(0,s.useMutation)({mutationFn:A}),p=(d=(0,t.useQueryClient)(),(0,s.useMutation)({mutationFn:B,onSuccess:()=>{d.invalidateQueries({queryKey:["iron-dome-status"]}),d.invalidateQueries({queryKey:["iron-dome-audit"]}),d.invalidateQueries({queryKey:["control-status"]})}})),q=(e=(0,t.useQueryClient)(),(0,s.useMutation)({mutationFn:a=>C(a),onSuccess:()=>{e.invalidateQueries({queryKey:["control-status"]}),e.invalidateQueries({queryKey:["iron-dome-status"]}),e.invalidateQueries({queryKey:["iron-dome-audit"]})}})),{data:u}=(0,r.useQuery)({queryKey:["control-status"],queryFn:D,refetchInterval:5e3,retry:2}),[v,w]=(0,i.useState)(""),[G,H]=(0,i.useState)(null),[I,J]=(0,i.useState)(""),O=f?.enabled??!1,P=u?.killSwitchActive??!1,Q=u?.killSwitchMeta??null,S=f?.profile,W=f?.config,X=W?.killPhrase??"",[Y,Z]=(0,i.useState)(X),[$,_]=(0,i.useState)(X);X!==$&&(_(X),Z(X));let aa=j?.logs??[],ab=aa.filter(a=>"BLOCK"===a.firewall_result).length,ac=aa.filter(a=>"ALLOW"===a.firewall_result).length,ae=!!W&&Y.trim()!==(W?.killPhrase??"");return(0,g.jsxs)("div",{className:"space-y-6",children:[(0,g.jsxs)("div",{className:"flex items-center gap-3",children:[h?(0,g.jsx)("span",{className:"text-[10px] text-[var(--sc-text-muted)] animate-pulse",children:"Loading..."}):(0,g.jsx)("span",{className:`text-[10px] font-medium px-2 py-0.5 rounded-full ${O?"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:O?"ACTIVE":"INACTIVE"}),O&&(0,g.jsxs)("button",{onClick:()=>{l.mutate()},disabled:l.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:[l.isPending?(0,g.jsx)(K.Loader2,{size:12,className:"animate-spin"}):(0,g.jsx)(R,{size:12}),"Deactivate"]})]}),(0,g.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[(0,g.jsxs)("div",{className:"glass-card p-6",children:[(0,g.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)] mb-3",children:"Security Profiles"}),(0,g.jsx)("div",{className:"grid grid-cols-2 gap-2",children:aj.map(({id:a,label:b,description:c,icon:d})=>(0,g.jsxs)("button",{onClick:()=>{k.mutate(a)},disabled:k.isPending,className:`text-left p-3 rounded-lg border transition-colors ${S===a?"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,g.jsxs)("div",{className:"flex items-center gap-1.5 mb-1",children:[(0,g.jsx)(d,{size:12}),(0,g.jsx)("span",{className:"text-xs font-medium",children:b})]}),(0,g.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:c})]},a))})]}),(0,g.jsxs)("div",{className:"glass-card p-6",children:[(0,g.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)] mb-3",children:"Module Status"}),(0,g.jsx)("div",{className:"space-y-2",children:ak.map(({name:a,description:b,icon:c})=>(0,g.jsxs)("div",{className:"flex items-center gap-3 px-3 py-2 rounded-lg bg-[var(--sc-bg-elevated)]/50",children:[(0,g.jsx)(c,{size:14,className:O?"text-[var(--sc-coral)]":"text-[var(--sc-text-muted)]"}),(0,g.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,g.jsx)("div",{className:"text-xs font-medium text-[var(--sc-text-primary)]",children:a}),(0,g.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)] truncate",children:b})]}),(0,g.jsx)("span",{className:`w-2 h-2 rounded-full ${O?"bg-[var(--sc-coral)]":"bg-[var(--sc-text-muted)]"}`})]},a))})]})]}),W&&(0,g.jsxs)("div",{className:"glass-card p-6",children:[(0,g.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)] mb-3",children:"Active Configuration"}),(0,g.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4 text-xs",children:[(0,g.jsxs)("div",{children:[(0,g.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)] uppercase mb-1",children:"Trusted Channels"}),(0,g.jsx)("div",{className:"flex flex-wrap gap-1",children:W.trustedChannels.map(a=>(0,g.jsx)("span",{className:"px-1.5 py-0.5 bg-[var(--sc-bg-elevated)] rounded text-[var(--sc-text-secondary)]",children:a},a))})]}),(0,g.jsxs)("div",{children:[(0,g.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)] uppercase mb-1",children:"Requires Approval"}),(0,g.jsx)("div",{className:"flex flex-wrap gap-1",children:W.requireApproval.map(a=>(0,g.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:a},a))})]}),(0,g.jsxs)("div",{children:[(0,g.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)] uppercase mb-1",children:"Kill Phrase"}),(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsx)("input",{type:"text",value:Y,onChange:a=>Z(a.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,g.jsxs)("div",{className:"flex items-center gap-2",children:[(0,g.jsx)("button",{onClick:()=>m.mutate({killPhrase:Y.trim()}),disabled:m.isPending||!Y.trim()||!ae,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,g.jsx)("span",{className:"text-[10px] text-[var(--sc-text-muted)]",children:O?"Say this in a conversation to trigger lockdown.":"This will apply the next time Iron Dome is active."})]})]})]})]})]}),P?(0,g.jsxs)("div",{className:"glass-card-strong p-6 border-2 !border-[var(--sc-coral)]/50 animate-pulse-slow",children:[(0,g.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,g.jsx)(U,{size:18,className:"text-[var(--sc-coral)]"}),(0,g.jsx)("h3",{className:"text-sm font-bold text-[var(--sc-coral)] uppercase tracking-wide",children:"Kill Switch Active"}),(0,g.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,g.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,g.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,g.jsxs)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:[(0,g.jsx)("span",{className:"text-[var(--sc-coral)] font-medium",children:"Triggered:"})," ",new Date(Q.triggeredAt).toLocaleString()]}),(0,g.jsxs)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:[(0,g.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,g.jsxs)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:[(0,g.jsx)("span",{className:"text-[var(--sc-coral)] font-medium",children:"Memories at trigger:"})," ",Q.memoryCountAtTrigger]})]}),(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsx)("input",{type:"text",value:I,onChange:a=>J(a.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,g.jsxs)("div",{className:"flex items-center gap-3",children:[(0,g.jsxs)("button",{onClick:()=>{I.trim()&&(q.mutate(I.trim()),J(""))},disabled:q.isPending||!I.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:[q.isPending?(0,g.jsx)(K.Loader2,{size:12,className:"animate-spin"}):(0,g.jsx)(V,{size:12}),"Resume Agent"]}),(0,g.jsx)("span",{className:"text-[10px] text-[var(--sc-text-muted)]",children:"Only resume after you've investigated the threat"})]})]})]}):(0,g.jsxs)("div",{className:"glass-card p-6 !border-[var(--sc-coral)]/30",children:[(0,g.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,g.jsx)(U,{size:14,className:"text-[var(--sc-coral)]"}),(0,g.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-coral)]",children:"Emergency Stop"})]}),(0,g.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."}),W?.killPhrase&&(0,g.jsxs)("p",{className:"text-[10px] text-[var(--sc-text-muted)] mb-3",children:["Kill phrase: ",(0,g.jsxs)("span",{className:"font-mono text-[var(--sc-text-secondary)]",children:['"',W.killPhrase,'"']})," — say this in conversation for hands-free stop"]}),(0,g.jsxs)("button",{onClick:()=>p.mutate(),disabled:p.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:[p.isPending?(0,g.jsx)(K.Loader2,{size:12,className:"animate-spin"}):(0,g.jsx)(U,{size:14}),"Emergency Stop"]})]}),(0,g.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[(0,g.jsxs)("div",{className:"glass-card p-6",children:[(0,g.jsxs)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)] mb-3",children:[(0,g.jsx)(T,{size:14,className:"inline mr-1.5 text-[var(--sc-coral)]"}),"Injection Scanner"]}),(0,g.jsx)("textarea",{value:v,onChange:a=>w(a.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,g.jsxs)("button",{onClick:()=>{v.trim()&&o.mutate(v,{onSuccess:a=>H(a)})},disabled:o.isPending||!v.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:[o.isPending?(0,g.jsx)(K.Loader2,{size:12,className:"animate-spin"}):(0,g.jsx)(L,{size:12}),"Scan"]}),G&&(0,g.jsxs)("div",{className:"mt-3 space-y-2",children:[(0,g.jsxs)("div",{className:"flex items-center gap-2",children:[G.clean?(0,g.jsx)(M.CheckCircle2,{size:14,className:"text-[var(--sc-cyan)]"}):(0,g.jsx)(N.XCircle,{size:14,className:"text-[var(--sc-coral)]"}),(0,g.jsx)("span",{className:`text-[10px] font-medium px-2 py-0.5 rounded-full ${am[G.riskLevel]??"bg-[var(--sc-bg-elevated)]/20 text-[var(--sc-text-secondary)]"}`,children:G.riskLevel}),(0,g.jsx)("span",{className:"text-xs text-[var(--sc-text-secondary)]",children:G.summary})]}),G.detections.map((a,b)=>(0,g.jsxs)("div",{className:`border rounded-lg p-3 ${al[a.severity]??"border-[var(--sc-border)]"}`,children:[(0,g.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,g.jsx)("span",{className:"text-[10px] font-medium uppercase",children:a.severity}),(0,g.jsx)("span",{className:"text-xs text-[var(--sc-text-primary)]",children:a.category.replace(/_/g," ")})]}),(0,g.jsx)("p",{className:"text-[11px] text-[var(--sc-text-secondary)] mb-1",children:a.description}),(0,g.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:a.match})]},b))]})]}),(0,g.jsxs)("div",{className:"glass-card p-6",children:[(0,g.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,g.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Event Feed"}),(0,g.jsxs)("span",{className:"text-[10px] text-[var(--sc-text-muted)]",children:["Last ",aa.length," events"]})]}),(0,g.jsxs)("div",{className:"grid grid-cols-3 gap-2 mb-3",children:[(0,g.jsxs)("div",{className:"bg-[var(--sc-bg-elevated)]/50 rounded-lg p-2 text-center",children:[(0,g.jsx)("div",{className:"text-sm font-bold text-[var(--sc-text-primary)]",children:aa.length}),(0,g.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:"Total"})]}),(0,g.jsxs)("div",{className:"bg-[var(--sc-bg-elevated)]/50 rounded-lg p-2 text-center",children:[(0,g.jsx)("div",{className:"text-sm font-bold text-[var(--sc-coral)]",children:ab}),(0,g.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:"Blocked"})]}),(0,g.jsxs)("div",{className:"bg-[var(--sc-bg-elevated)]/50 rounded-lg p-2 text-center",children:[(0,g.jsx)("div",{className:"text-sm font-bold text-[var(--sc-cyan)]",children:ac}),(0,g.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:"Allowed"})]})]}),(0,g.jsx)("div",{className:"space-y-1 max-h-72 overflow-y-auto",children:0===aa.length?(0,g.jsxs)("div",{className:"text-center py-6",children:[(0,g.jsx)(n.Shield,{size:20,className:"text-[var(--sc-text-muted)] mx-auto mb-1.5"}),(0,g.jsx)("p",{className:"text-[10px] text-[var(--sc-text-muted)]",children:"No Iron Dome events yet"})]}):aa.map((a,b)=>(0,g.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,g.jsx)("span",{className:`w-1.5 h-1.5 rounded-full shrink-0 ${"BLOCK"===a.firewall_result?"bg-[var(--sc-coral)]":"bg-[var(--sc-cyan)]"}`}),(0,g.jsx)("span",{className:"text-[var(--sc-text-secondary)] truncate flex-1",children:(a.reason??"").replace(/^\[iron-dome:\w+\]\s*/,"")}),(0,g.jsx)("span",{className:"text-[10px] text-[var(--sc-text-muted)] shrink-0",children:new Date(a.timestamp).toLocaleTimeString()})]},a.id??b))})]})]}),(0,g.jsx)(ad,{}),(0,g.jsx)(ai,{})]})}var ao=a.i(68839);let ap=(0,l.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 aq=a.i(14126);let ar=(0,l.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"}]]),as=(0,l.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 at=a.i(95480);let au=(0,l.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"}]]),av=(0,l.default)("square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]),aw=(0,l.default)("square-minus",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M8 12h8",key:"1wcyev"}]]);function ax({action:a,item:b,onConfirm:c,onCancel:d}){let[e,f]=(0,i.useState)(""),h="yes"===e.trim().toLowerCase(),j="memory_file"===b.source_type;return(0,g.jsx)("div",{className:"fixed inset-0 bg-black/60 flex items-center justify-center z-50",children:(0,g.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,g.jsxs)("h3",{className:"text-sm font-semibold text-[var(--sc-text-primary)] mb-2",children:["approve"===a?"Approve":"Reject"," quarantined item?"]}),(0,g.jsx)("p",{className:"text-xs text-[var(--sc-text-secondary)] mb-1",children:(0,g.jsx)("strong",{children:b.title||"Untitled"})}),(0,g.jsx)("p",{className:"text-xs text-[var(--sc-text-muted)] mb-4",children:"approve"===a?j?"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.":j?"This will dismiss the memory-file finding. The source file is not deleted or edited.":"This will permanently discard the memory."}),(0,g.jsxs)("div",{className:"mb-4",children:[(0,g.jsxs)("label",{className:"text-xs text-[var(--sc-text-secondary)] block mb-1",children:["Type ",(0,g.jsx)("strong",{className:"text-[var(--sc-text-primary)]",children:"YES"})," to confirm:"]}),(0,g.jsx)("input",{type:"text",value:e,onChange:a=>f(a.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:a=>{"Enter"===a.key&&h&&c(),"Escape"===a.key&&d()}})]}),(0,g.jsxs)("div",{className:"flex gap-2 justify-end",children:[(0,g.jsx)("button",{onClick:d,className:"px-3 py-1.5 text-xs text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)] transition-colors",children:"Cancel"}),(0,g.jsx)("button",{onClick:c,disabled:!h,className:`px-3 py-1.5 text-xs rounded-lg transition-colors ${h?"approve"===a?"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"===a&&j?"Mark reviewed":"approve"===a?"Approve":"Reject"})]})]})})}function ay({annotation:a}){var b;return(0,g.jsxs)("div",{className:"mb-3 rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)]/70 p-3",children:[(0,g.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,g.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-[10px] font-semibold uppercase tracking-[0.16em] text-[var(--sc-cyan)]",children:[(0,g.jsx)(ap,{size:12})," Local AI Explainer"]}),(0,g.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:a.category.replace(/_/g," ")}),(0,g.jsx)("span",{className:`rounded border px-2 py-0.5 text-[10px] uppercase tracking-[0.12em] ${"approve"===(b=a.suggestedAction)?"text-[var(--sc-cyan)] bg-[var(--sc-cyan)]/10 border-[var(--sc-cyan)]/25":"reject"===b?"text-[var(--sc-coral)] bg-[var(--sc-coral)]/10 border-[var(--sc-coral)]/25":"create_rule"===b?"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:a.suggestedAction.replace(/_/g," ")}),(0,g.jsxs)("span",{className:"text-[10px] text-[var(--sc-text-muted)]",children:[Math.round(100*a.confidence),"% confidence"]}),a.similarGroupKey&&(0,g.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-[var(--sc-text-muted)]",children:[(0,g.jsx)(ar,{size:11})," ",a.similarGroupKey]})]}),(0,g.jsx)("p",{className:"mt-2 text-xs leading-5 text-[var(--sc-text-primary)]",children:a.summary}),(0,g.jsx)("p",{className:"mt-1 text-[11px] leading-5 text-[var(--sc-text-secondary)]",children:a.reasoning}),a.evidence.length>0&&(0,g.jsx)("div",{className:"mt-2 space-y-1.5",children:a.evidence.map((a,b)=>(0,g.jsxs)("div",{className:"rounded border border-[var(--sc-border)] bg-[var(--sc-bg-surface)] px-2 py-1.5",children:[(0,g.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:a.reason}),(0,g.jsxs)("div",{className:"mt-0.5 text-[11px] text-[var(--sc-text-primary)] break-words",children:['"',a.snippet,'"']})]},`${a.snippet}-${b}`))})]})}function az(){let{projectFilter:a}=(0,ao.useDashboardStore)(),[b,c]=(0,i.useState)("pending"),{data:d,isLoading:e}=(0,G.useQuarantine)(b,100,a||void 0),{data:f}=(0,G.useReviewCopilotStatus)(),h=(0,G.useApproveQuarantine)(),j=(0,G.useRejectQuarantine)(),l=(0,G.useBulkApproveQuarantine)(),m=(0,G.useBulkRejectQuarantine)(),n=(0,G.useAnnotateQuarantine)(),o=(0,G.useAnnotatePendingQuarantine)(),[p,q]=(0,i.useState)(null),[r,s]=(0,i.useState)(new Set),[t,u]=(0,i.useState)(null),v=h.error?.message||j.error?.message||l.error?.message||m.error?.message||n.error?.message||o.error?.message||null,w=d?.items??[],x=w.filter(a=>"pending"===a.status),y=w.filter(a=>a.annotation),z=x.filter(a=>!a.annotation),A=x.filter(a=>r.has(a.id)).filter(a=>"memory_file"===a.source_type).length,B=(()=>{let a=new Map;for(let b of y){let c=b.annotation?.similarGroupKey;c&&a.set(c,(a.get(c)??0)+1)}return[...a.entries()].sort((a,b)=>b[1]-a[1]).slice(0,3)})(),C=x.length>0&&x.every(a=>r.has(a.id)),D=x.some(a=>r.has(a.id)),E=n.isPending||o.isPending,F=!!(f?.enabled&&f.featureEnabled&&f.modelCached);return(0,g.jsxs)("div",{className:"space-y-6",children:[p&&(0,g.jsx)(ax,{action:p.action,item:p.item,onConfirm:()=>{p&&("approve"===p.action?h.mutate(p.item.id):j.mutate({id:p.item.id}),q(null))},onCancel:()=>q(null)}),t&&(0,g.jsx)("div",{className:"fixed inset-0 bg-black/60 flex items-center justify-center z-50",children:(0,g.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,g.jsxs)("h3",{className:"text-sm font-semibold text-[var(--sc-text-primary)] mb-2",children:["approve"===t?"Approve":"Reject"," ",r.size," item",1!==r.size?"s":"","?"]}),(0,g.jsx)("p",{className:"text-xs text-[var(--sc-text-secondary)] mb-4",children:"approve"===t?A>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.":A>0?"Memory-file findings will be dismissed without editing files. Other selected memories will be discarded.":"This will permanently discard all selected memories."}),(0,g.jsxs)("div",{className:"flex gap-2 justify-end",children:[(0,g.jsx)("button",{onClick:()=>u(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,g.jsxs)("button",{onClick:()=>{if(!t||0===r.size)return;let a=Array.from(r);"approve"===t?l.mutate(a):m.mutate(a),s(new Set),u(null)},className:`px-3 py-1.5 text-xs rounded-lg transition-colors ${"approve"===t?"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"===t?"Approve":"Reject"," ",r.size," item",1!==r.size?"s":""]})]})]})}),(0,g.jsx)(Y.ProFeatureGate,{feature:"local_ai_explainer",label:"Use a local model to explain and group quarantined items without sending content to the cloud.",children:(0,g.jsx)("div",{className:"glass-card p-5",children:(0,g.jsxs)("div",{className:"flex flex-col gap-4 lg:flex-row lg:items-center lg:justify-between",children:[(0,g.jsxs)("div",{children:[(0,g.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,g.jsxs)("h3",{className:"flex items-center gap-2 text-sm font-semibold text-[var(--sc-text-primary)]",children:[(0,g.jsx)(aq.Sparkles,{size:16,className:"text-[var(--sc-cyan)]"}),"Local AI Explainer"]}),(0,g.jsx)("span",{className:`rounded border px-2 py-0.5 text-[10px] uppercase tracking-[0.12em] ${f?.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:f?.enabled?"enabled":"disabled"}),(0,g.jsx)("span",{className:`rounded border px-2 py-0.5 text-[10px] uppercase tracking-[0.12em] ${f?.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:f?.modelCached?"model cached":"model not cached"})]}),(0,g.jsx)("div",{className:"mt-2 text-xs leading-5 text-[var(--sc-text-secondary)]",children:f?.enabled?f.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,g.jsxs)("div",{className:"mt-2 flex flex-wrap gap-2 text-[10px] text-[var(--sc-text-muted)]",children:[(0,g.jsxs)("span",{className:z.length>0?"text-[var(--sc-amber)]":"",children:[z.length," need explanation"]}),(0,g.jsxs)("span",{children:[y.length," explained in this view"]}),B.map(([a,b])=>(0,g.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,g.jsx)(ar,{size:11})," ",a,": ",b]},a))]})]}),(0,g.jsx)("div",{className:"flex flex-wrap gap-2",children:(0,g.jsxs)("button",{onClick:()=>{o.mutate({limit:Math.min(Math.max(z.length,1),100),project:a||void 0})},disabled:!F||E||0===z.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:[o.isPending?(0,g.jsx)(K.Loader2,{size:13,className:"animate-spin"}):(0,g.jsx)(as,{size:13}),"Explain all"]})})]})})}),(0,g.jsxs)("div",{className:"glass-card p-5",children:[(0,g.jsx)("div",{className:"flex items-center justify-between",children:(0,g.jsx)("div",{className:"flex gap-1 bg-[var(--sc-bg-elevated)] rounded-lg p-0.5",children:["pending","approved","rejected"].map(a=>(0,g.jsx)("button",{onClick:()=>{c(a),s(new Set)},className:`px-3 py-1 text-xs rounded-md transition-colors capitalize ${b===a?"bg-[var(--sc-cyan)] text-[var(--sc-text-primary)]":"text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)]"}`,children:a},a))})}),"pending"===b&&x.length>0&&(0,g.jsxs)("div",{className:"flex items-center gap-3 mt-3",children:[(0,g.jsxs)("button",{onClick:()=>{C?s(new Set):s(new Set(x.map(a=>a.id)))},className:"flex items-center gap-1.5 text-xs text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)] transition-colors",children:[C?(0,g.jsx)(au,{size:14,className:"text-[var(--sc-cyan)]"}):D?(0,g.jsx)(aw,{size:14,className:"text-[var(--sc-cyan)]"}):(0,g.jsx)(av,{size:14}),C?"Deselect all":"Select all"]}),D&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsxs)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:[r.size," selected"]}),(0,g.jsxs)("button",{onClick:()=>u("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,g.jsx)(ae.Check,{size:12})," Approve"]}),(0,g.jsxs)("button",{onClick:()=>u("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,g.jsx)(at.X,{size:12})," Reject"]})]})]})]}),v&&(0,g.jsx)("div",{className:"glass-card p-5 border-[var(--sc-coral)]/30 bg-[var(--sc-coral)]/10 text-sm text-[var(--sc-coral)]",children:v}),(0,g.jsx)("div",{children:e?(0,g.jsx)("div",{className:"glass-card p-5 flex items-center justify-center h-32",children:(0,g.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)] animate-pulse",children:"Loading quarantine items..."})}):0===w.length?(0,g.jsxs)("div",{className:"glass-card p-5 flex flex-col items-center justify-center h-32 text-[var(--sc-text-muted)]",children:[(0,g.jsx)(k.AlertTriangle,{size:24,className:"mb-2 text-[var(--sc-text-muted)]"}),(0,g.jsxs)("span",{className:"text-xs",children:["No ",b," items"]})]}):(0,g.jsx)("div",{className:"space-y-3",children:w.map(a=>{let b=(()=>{try{return JSON.parse(a.threat_indicators)}catch{return[]}})(),c="memory_file"===a.source_type;return(0,g.jsxs)("div",{className:`glass-card p-5 ${r.has(a.id)?"border-[var(--sc-cyan)]/50":"pending"===a.status&&!a.annotation?"border-[var(--sc-amber)]/35":""}`,children:[(0,g.jsxs)("div",{className:"flex items-start justify-between mb-2",children:[(0,g.jsxs)("div",{className:"flex items-start gap-2.5",children:["pending"===a.status&&(0,g.jsx)("button",{onClick:()=>{var b;return b=a.id,void s(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c})},className:"mt-0.5 text-[var(--sc-text-muted)] hover:text-[var(--sc-cyan)] transition-colors shrink-0",children:r.has(a.id)?(0,g.jsx)(au,{size:14,className:"text-[var(--sc-cyan)]"}):(0,g.jsx)(av,{size:14})}),(0,g.jsxs)("div",{children:[(0,g.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,g.jsx)("h4",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:a.title||"Untitled"}),"pending"===a.status&&!a.annotation&&(0,g.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,g.jsx)(ap,{size:10})," Needs explanation"]})]}),(0,g.jsxs)("div",{className:"text-[10px] text-[var(--sc-text-muted)] mt-0.5",children:[a.source_type," · ",new Date(a.created_at).toLocaleString(),a.anomaly_score>0&&(0,g.jsxs)("span",{className:`ml-2 ${a.anomaly_score>.5?"text-[var(--sc-coral)]":"text-[var(--sc-amber)]"}`,children:["Anomaly: ",a.anomaly_score.toFixed(2)]})]}),c&&(0,g.jsx)("div",{className:"mt-1 break-all font-mono text-[10px] text-[var(--sc-text-muted)]",children:a.source_identifier})]})]}),(0,g.jsx)("span",{className:"text-[10px] text-[var(--sc-coral)] bg-[var(--sc-coral)]/10 px-2 py-0.5 rounded",children:a.reason?.slice(0,50)||"Threat detected"})]}),(0,g.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:a.content?.slice(0,500)||"No content"}),b.length>0&&(0,g.jsx)("div",{className:"flex gap-1 mb-3 flex-wrap",children:b.map((a,b)=>(0,g.jsx)("span",{className:"text-[9px] text-[var(--sc-amber)] bg-[var(--sc-amber)]/10 px-1.5 py-0.5 rounded",children:a},b))}),a.annotation&&(0,g.jsx)(ay,{annotation:a.annotation}),"pending"===a.status&&(0,g.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,g.jsxs)("button",{onClick:()=>n.mutate(a.id),disabled:!F||n.isPending||o.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:[n.isPending?(0,g.jsx)(K.Loader2,{size:12,className:"animate-spin"}):(0,g.jsx)(as,{size:12}),a.annotation?"Re-explain":"Explain"]}),(0,g.jsxs)("button",{onClick:()=>q({action:"approve",item:a}),disabled:h.isPending||l.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,g.jsx)(ae.Check,{size:12})," ",c?"Mark reviewed":"Approve"]}),(0,g.jsxs)("button",{onClick:()=>q({action:"reject",item:a}),disabled:j.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,g.jsx)(at.X,{size:12})," Reject"]})]}),a.reviewed_at&&(0,g.jsxs)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:["approved"===a.status?"Approved":"Rejected"," by ",a.reviewed_by," at ",new Date(a.reviewed_at).toLocaleString()]})]},a.id)})})})]})}var aA=a.i(54100),aB=a.i(60210);let aC=(0,l.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"}]]),aD=(0,l.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 aE=a.i(6750);let aF=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";function aG(){let a=(0,s.useMutation)({mutationFn:async({format:a,startTime:b,endTime:c})=>{let d=new URLSearchParams({format:a});b&&d.set("startTime",b),c&&d.set("endTime",c);let e=await (0,u.gatedFetch)(`${aF}/api/audit/export?${d}`);if(!e.ok)throw Error((await e.json().catch(()=>({}))).error||"Export failed");let f=await e.blob(),g=URL.createObjectURL(f),h=document.createElement("a");return h.href=g,h.download=`shieldcortex-audit-${Date.now()}.${"csv"===a?"csv":"json"}`,document.body.appendChild(h),h.click(),document.body.removeChild(h),setTimeout(()=>URL.revokeObjectURL(g),200),{success:!0}}}),[b,c]=(0,i.useState)("json");return(0,g.jsxs)("div",{className:"space-y-3",children:[(0,g.jsxs)("div",{className:"flex items-center gap-2",children:[(0,g.jsx)(aC,{size:16,className:"text-[var(--sc-cyan)]"}),(0,g.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Export Audit Logs"})]}),(0,g.jsxs)("div",{className:"flex items-center gap-3",children:[(0,g.jsxs)("div",{className:"flex rounded-lg overflow-hidden border border-[var(--sc-border)]",children:[(0,g.jsxs)("button",{onClick:()=>c("json"),className:`flex items-center gap-1.5 px-3 py-1.5 text-xs transition-colors ${"json"===b?"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,g.jsx)(aD,{size:12})," JSON"]}),(0,g.jsxs)("button",{onClick:()=>c("csv"),className:`flex items-center gap-1.5 px-3 py-1.5 text-xs transition-colors ${"csv"===b?"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,g.jsx)(aE.FileText,{size:12})," CSV"]})]}),(0,g.jsxs)("button",{onClick:()=>a.mutate({format:b}),disabled:a.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,g.jsx)(aC,{size:12}),a.isPending?"Exporting...":"Export"]})]}),a.error&&(0,g.jsx)("p",{className:"text-xs text-[var(--sc-coral)]",children:a.error.message}),a.isSuccess&&(0,g.jsx)("p",{className:"text-xs text-[var(--sc-cyan)]",children:"Export downloaded successfully."})]})}function aH(){return(0,g.jsx)("div",{className:"bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded-xl p-4",children:(0,g.jsx)(Y.ProFeatureGate,{feature:"audit_export",label:"Export your full audit trail as JSON or CSV for compliance reporting.",children:(0,g.jsx)(aG,{})})})}var aI=a.i(64565);function aJ({className:a,...b}){return(0,g.jsx)("div",{"data-slot":"card",className:(0,aI.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",a),...b})}function aK({className:a,...b}){return(0,g.jsx)("div",{"data-slot":"card-header",className:(0,aI.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",a),...b})}function aL({className:a,...b}){return(0,g.jsx)("div",{"data-slot":"card-content",className:(0,aI.cn)("px-6",a),...b})}function aM(a,b){if("function"==typeof a)return a(b);null!=a&&(a.current=b)}var aN=Symbol.for("react.lazy"),aO=i[" use ".trim().toString()];function aP(a){var b;return null!=a&&"object"==typeof a&&"$$typeof"in a&&a.$$typeof===aN&&"_payload"in a&&"object"==typeof(b=a._payload)&&null!==b&&"then"in b}var aQ=((f=i.forwardRef((a,b)=>{let{children:c,...d}=a;if(aP(c)&&"function"==typeof aO&&(c=aO(c._payload)),i.isValidElement(c)){var e;let a,f,g=(e=c,(f=(a=Object.getOwnPropertyDescriptor(e.props,"ref")?.get)&&"isReactWarning"in a&&a.isReactWarning)?e.ref:(f=(a=Object.getOwnPropertyDescriptor(e,"ref")?.get)&&"isReactWarning"in a&&a.isReactWarning)?e.props.ref:e.props.ref||e.ref),h=function(a,b){let c={...b};for(let d in b){let e=a[d],f=b[d];/^on[A-Z]/.test(d)?e&&f?c[d]=(...a)=>{let b=f(...a);return e(...a),b}:e&&(c[d]=e):"style"===d?c[d]={...e,...f}:"className"===d&&(c[d]=[e,f].filter(Boolean).join(" "))}return{...a,...c}}(d,c.props);return c.type!==i.Fragment&&(h.ref=b?function(...a){return b=>{let c=!1,d=a.map(a=>{let d=aM(a,b);return c||"function"!=typeof d||(c=!0),d});if(c)return()=>{for(let b=0;b<d.length;b++){let c=d[b];"function"==typeof c?c():aM(a[b],null)}}}}(b,g):g),i.cloneElement(c,h)}return i.Children.count(c)>1?i.Children.only(null):null})).displayName="Slot.SlotClone",b=f,(c=i.forwardRef((a,c)=>{let{children:d,...e}=a;aP(d)&&"function"==typeof aO&&(d=aO(d._payload));let f=i.Children.toArray(d),h=f.find(aS);if(h){let a=h.props.children,d=f.map(b=>b!==h?b:i.Children.count(a)>1?i.Children.only(null):i.isValidElement(a)?a.props.children:null);return(0,g.jsx)(b,{...e,ref:c,children:i.isValidElement(a)?i.cloneElement(a,void 0,d):null})}return(0,g.jsx)(b,{...e,ref:c,children:d})})).displayName="Slot.Slot",c),aR=Symbol("radix.slottable");function aS(a){return i.isValidElement(a)&&"function"==typeof a.type&&"__radixId"in a.type&&a.type.__radixId===aR}var aT=a.i(52814);let aU=a=>"boolean"==typeof a?`${a}`:0===a?"0":a,aV=aT.clsx,aW=(d="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",e={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"}},a=>{var b;if((null==e?void 0:e.variants)==null)return aV(d,null==a?void 0:a.class,null==a?void 0:a.className);let{variants:c,defaultVariants:f}=e,g=Object.keys(c).map(b=>{let d=null==a?void 0:a[b],e=null==f?void 0:f[b];if(null===d)return null;let g=aU(d)||aU(e);return c[b][g]}),h=a&&Object.entries(a).reduce((a,b)=>{let[c,d]=b;return void 0===d||(a[c]=d),a},{});return aV(d,g,null==e||null==(b=e.compoundVariants)?void 0:b.reduce((a,b)=>{let{class:c,className:d,...e}=b;return Object.entries(e).every(a=>{let[b,c]=a;return Array.isArray(c)?c.includes({...f,...h}[b]):({...f,...h})[b]===c})?[...a,c,d]:a},[]),null==a?void 0:a.class,null==a?void 0:a.className)});function aX({className:a,variant:b="default",size:c="default",asChild:d=!1,...e}){return(0,g.jsx)(d?aQ:"button",{"data-slot":"button","data-variant":b,"data-size":c,className:(0,aI.cn)(aW({variant:b,size:c,className:a})),...e})}var aY=a.i(49948),aZ=a.i(91321),a$=a.i(68760),a_=a.i(25605);let a0={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"}},a1={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)"}},a2={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 a3(a){return a>=.7?"#22C55E":a>=.4?"#EAB308":"#EF4444"}function a4(a){return a>.5?"#EF4444":a>.2?"#EAB308":"#94a3b8"}function a5({entry:a,onClose:b,onViewMemory:c}){let d,[e,f]=(0,i.useState)(!1),h=(0,aZ.useLocalAiExplain)(),j=a0[a.firewall_result]||a0.ALLOW,k=a1[a.sensitivity_level]||a1.PUBLIC,l=function(a){try{let b=JSON.parse(a);return Array.isArray(b)?b:[]}catch{return[]}}(a.threat_indicators),m=function(a){try{let b=JSON.parse(a);return Array.isArray(b)?b:[]}catch{return[]}}(a.blocked_patterns),n=(0,i.useCallback)(()=>{let b=JSON.stringify(a,null,2);navigator.clipboard.writeText(b).then(()=>{f(!0),setTimeout(()=>f(!1),1500)})},[a]),o=(0,i.useCallback)(()=>{h.mutate({kind:"audit_event",title:`${a.firewall_result} audit event`,content:[`Audit ID: ${a.id}`,`Result: ${a.firewall_result}`,`Source: ${a.source_type}:${a.source_identifier}`,a.project?`Project: ${a.project}`:"",`Trust score: ${a.trust_score}`,`Anomaly score: ${a.anomaly_score}`,`Sensitivity: ${a.sensitivity_level}`,null!==a.fragmentation_score?`Fragmentation score: ${a.fragmentation_score}`:"",l.length?`Threat indicators: ${l.join(", ")}`:"",m.length?`Blocked patterns:
1
+ module.exports=[11221,a=>{"use strict";let b,c,d,e,f;var g=a.i(16306),h=a.i(52181),i=a.i(98419),j=a.i(13106),k=a.i(47520),l=a.i(70694);let m=(0,l.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 n=a.i(98472),o=a.i(79155),p=a.i(48195),q=a.i(79151),r=a.i(40458),s=a.i(66807),t=a.i(14220),u=a.i(86044);let v=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function w(){let a=await (0,u.authFetch)(`${v}/api/iron-dome/status`);if(!a.ok)throw Error(await (0,u.readApiError)(a,"Failed to fetch Iron Dome status"));return a.json()}async function x(a){let b=await (0,u.authFetch)(`${v}/api/iron-dome/activate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({profile:a})});if(!b.ok)throw Error(await (0,u.readApiError)(b,"Failed to activate Iron Dome"));return b.json()}async function y(){let a=await (0,u.authFetch)(`${v}/api/iron-dome/deactivate`,{method:"POST"});if(!a.ok)throw Error(await (0,u.readApiError)(a,"Failed to deactivate Iron Dome"));return a.json()}async function z(a){let b=await (0,u.authFetch)(`${v}/api/iron-dome/config`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error(await (0,u.readApiError)(b,"Failed to update Iron Dome configuration"));return b.json()}async function A(a){let b=await (0,u.authFetch)(`${v}/api/iron-dome/scan`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:a})});if(!b.ok)throw Error(await (0,u.readApiError)(b,"Failed to scan text"));return b.json()}async function B(){let a=await (0,u.authFetch)(`${v}/api/iron-dome/emergency-stop`,{method:"POST"});if(!a.ok)throw Error(await (0,u.readApiError)(a,"Failed to trigger emergency stop"));return a.json()}async function C(a){let b=await (0,u.authFetch)(`${v}/api/iron-dome/resume`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reason:a||"Resumed via dashboard"})});if(!b.ok)throw Error(await (0,u.readApiError)(b,"Failed to resume operations"));return b.json()}async function D(){let a=await (0,u.authFetch)(`${v}/api/control/status`);if(!a.ok)throw Error(await (0,u.readApiError)(a,"Failed to fetch control status"));return a.json()}async function E(a){let b=new URLSearchParams;a&&b.set("limit",a.toString());let c=await (0,u.authFetch)(`${v}/api/iron-dome/audit?${b}`);if(!c.ok)throw Error(await (0,u.readApiError)(c,"Failed to fetch Iron Dome audit"));return c.json()}function F(){return(0,r.useQuery)({queryKey:["iron-dome-status"],queryFn:w,refetchInterval:3e4,retry:2})}var G=a.i(38883);let H=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function I(a){let b=new URLSearchParams;a?.limit&&b.set("limit",String(a.limit)),a?.severity&&b.set("severity",a.severity),a?.outcome&&b.set("outcome",a.outcome),a?.tool&&b.set("tool",a.tool);let c=await (0,u.authFetch)(`${H}/api/v1/intercepts?${b}`);if(!c.ok)throw Error(await (0,u.readApiError)(c,"Failed to fetch interceptor events"));return c.json()}function J(a){return(0,r.useQuery)({queryKey:["interceptor-events",a],queryFn:()=>I(a),refetchInterval:3e4,retry:2})}var K=a.i(84692);let L=(0,l.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 M=a.i(74150),N=a.i(48036),O=a.i(32322),P=a.i(94992);let Q=(0,l.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"}]]),R=(0,l.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"}]]),S=(0,l.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"}]]),T=(0,l.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"}]]),U=(0,l.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"}]]);var V=a.i(78489);let W=(0,l.default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);var X=a.i(6321),Y=a.i(73038);let Z=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001",$=[{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}],_=[{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}],aa=[{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 ab(){let a,b,c,{data:d,isLoading:e,isLocked:f}={...a=(0,r.useQuery)({queryKey:["custom-patterns"],queryFn:()=>(0,u.gatedFetch)(`${Z}/api/patterns`).then(a=>{if(!a.ok)throw Error("Failed to fetch custom patterns");return a.json()}),retry:(a,b)=>!(b instanceof u.FeatureLockedError)&&a<2,refetchInterval:3e4}),isLocked:a.error instanceof u.FeatureLockedError},h=(b=(0,t.useQueryClient)(),(0,s.useMutation)({mutationFn:a=>(0,u.gatedFetch)(`${Z}/api/patterns`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}).then(a=>a.ok?a.json():a.json().then(a=>{throw Error(a.error)})),onSuccess:()=>{b.invalidateQueries({queryKey:["custom-patterns"]})}})),j=(c=(0,t.useQueryClient)(),(0,s.useMutation)({mutationFn:a=>(0,u.gatedFetch)(`${Z}/api/patterns/${a}`,{method:"DELETE"}).then(a=>a.ok?a.json():a.json().then(a=>{throw Error(a.error)})),onSuccess:()=>{c.invalidateQueries({queryKey:["custom-patterns"]})}})),k=(0,s.useMutation)({mutationFn:({id:a,text:b})=>(0,u.gatedFetch)(`${Z}/api/patterns/${a}/test`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:b})}).then(a=>a.ok?a.json():a.json().then(a=>{throw Error(a.error)}))}),[l,m]=(0,i.useState)(!1),[n,o]=(0,i.useState)(null),[p,q]=(0,i.useState)({name:"",category:"custom",severity:"medium",regex:"",description:""}),v=d?.patterns??[],w=!0,x="";if(p.regex)try{new RegExp(p.regex)}catch(a){w=!1,x=a.message}return f?(0,g.jsx)(ac,{}):(0,g.jsxs)("div",{className:"space-y-3",children:[(0,g.jsxs)("div",{className:"flex items-center justify-between",children:[(0,g.jsxs)("div",{className:"flex items-center gap-2",children:[(0,g.jsx)(L,{size:16,className:"text-[var(--sc-coral)]"}),(0,g.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Custom Injection Patterns"}),(0,g.jsxs)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:[v.length,"/50"]})]}),(0,g.jsxs)("button",{onClick:()=>m(!l),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,g.jsx)(W,{size:12})," Add Pattern"]})]}),l&&(0,g.jsxs)("form",{onSubmit:a=>{a.preventDefault(),h.mutate(p,{onSuccess:()=>{m(!1),q({name:"",category:"custom",severity:"medium",regex:"",description:""})}})},className:"p-3 bg-[var(--sc-bg-elevated)] rounded-lg space-y-2",children:[(0,g.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,g.jsx)("input",{value:p.name,onChange:a=>q(b=>({...b,name:a.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,g.jsxs)("select",{value:p.severity,onChange:a=>q(b=>({...b,severity:a.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,g.jsx)("option",{value:"critical",children:"Critical"}),(0,g.jsx)("option",{value:"high",children:"High"}),(0,g.jsx)("option",{value:"medium",children:"Medium"}),(0,g.jsx)("option",{value:"low",children:"Low"})]})]}),(0,g.jsxs)("div",{className:"relative",children:[(0,g.jsx)("input",{value:p.regex,onChange:a=>q(b=>({...b,regex:a.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)] ${w?"border-[var(--sc-border)]":"border-[var(--sc-coral)]"}`}),!w&&(0,g.jsx)("p",{className:"text-[10px] text-[var(--sc-coral)] mt-0.5",children:x})]}),(0,g.jsx)("input",{value:p.description,onChange:a=>q(b=>({...b,description:a.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,g.jsxs)("div",{className:"flex gap-2",children:[(0,g.jsx)("button",{type:"submit",disabled:h.isPending||!w,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:h.isPending?"Creating...":"Create"}),(0,g.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"})]}),h.error&&(0,g.jsx)("p",{className:"text-xs text-[var(--sc-coral)]",children:h.error.message})]}),e?(0,g.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)] py-4 text-center",children:"Loading patterns..."}):0===v.length?(0,g.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,g.jsx)("div",{className:"space-y-1",children:v.map(a=>(0,g.jsxs)("div",{className:"px-3 py-2 bg-[var(--sc-bg-elevated)] rounded text-xs space-y-1",children:[(0,g.jsxs)("div",{className:"flex items-center gap-2",children:[(0,g.jsx)("span",{className:"text-[var(--sc-text-primary)] flex-1 font-medium",children:a.name}),(0,g.jsx)("span",{className:`px-1.5 py-0.5 rounded text-[10px] font-medium ${"critical"===a.severity||"high"===a.severity?"bg-[var(--sc-coral)]/20 text-[var(--sc-coral)]":"medium"===a.severity?"bg-[var(--sc-amber)]/20 text-[var(--sc-amber)]":"bg-[var(--sc-bg-elevated)]/20 text-[var(--sc-text-secondary)]"}`,children:a.severity}),(0,g.jsx)("button",{onClick:()=>o(n?.id===a.id?null:{id:a.id,text:""}),className:"text-[var(--sc-text-muted)] hover:text-[var(--sc-cyan)]",title:"Test pattern",children:(0,g.jsx)(V.Play,{size:12})}),(0,g.jsx)("button",{onClick:()=>j.mutate(a.id),className:"text-[var(--sc-text-muted)] hover:text-[var(--sc-coral)]",children:(0,g.jsx)(X.Trash2,{size:12})})]}),(0,g.jsx)("code",{className:"text-[var(--sc-text-muted)] text-[10px] block truncate",children:a.regex}),n?.id===a.id&&(0,g.jsxs)("div",{className:"flex gap-2 mt-1",children:[(0,g.jsx)("input",{value:n.text,onChange:b=>o({id:a.id,text:b.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,g.jsx)("button",{onClick:()=>k.mutate({id:a.id,text:n.text}),disabled:!n.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"}),k.data&&(0,g.jsxs)("span",{className:"text-[10px] text-[var(--sc-text-secondary)] self-center",children:[k.data.count," matches"]})]})]},a.id))})]})}function ac(){return(0,g.jsxs)("div",{className:"space-y-3",children:[(0,g.jsxs)("div",{className:"flex items-center gap-2",children:[(0,g.jsx)(L,{size:16,className:"text-[var(--sc-coral)]"}),(0,g.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Custom Injection Patterns"}),(0,g.jsx)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:"0/50"})]}),(0,g.jsx)("div",{className:"space-y-1",children:_.map(a=>(0,g.jsxs)("div",{className:"px-3 py-2 bg-[var(--sc-bg-elevated)] rounded text-xs space-y-1",children:[(0,g.jsxs)("div",{className:"flex items-center gap-2",children:[(0,g.jsx)("span",{className:"text-[var(--sc-text-primary)] flex-1 font-medium",children:a.name}),(0,g.jsx)("span",{className:`px-1.5 py-0.5 rounded text-[10px] font-medium ${"critical"===a.severity||"high"===a.severity?"bg-[var(--sc-coral)]/20 text-[var(--sc-coral)]":"bg-[var(--sc-amber)]/20 text-[var(--sc-amber)]"}`,children:a.severity})]}),(0,g.jsx)("code",{className:"text-[var(--sc-text-muted)] text-[10px] block truncate",children:a.regex})]},a.id))})]})}function ad(){return(0,g.jsx)("div",{className:"bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded-xl p-4",children:(0,g.jsx)(Y.ProFeatureGate,{feature:"custom_injection_patterns",label:"Define up to 50 custom regex patterns for detecting domain-specific threats.",children:(0,g.jsx)(ab,{})})})}var ae=a.i(62606);let af=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";function ag(){let a,b,c,d,{data:e,isLoading:f,isLocked:h}={...a=(0,r.useQuery)({queryKey:["custom-policies"],queryFn:()=>(0,u.gatedFetch)(`${af}/api/iron-dome/policies`).then(a=>{if(!a.ok)throw Error("Failed to fetch custom policies");return a.json()}),retry:(a,b)=>!(b instanceof u.FeatureLockedError)&&a<2,refetchInterval:3e4}),isLocked:a.error instanceof u.FeatureLockedError},j=(b=(0,t.useQueryClient)(),(0,s.useMutation)({mutationFn:a=>(0,u.gatedFetch)(`${af}/api/iron-dome/policies`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}).then(a=>a.ok?a.json():a.json().then(a=>{throw Error(a.error)})),onSuccess:()=>{b.invalidateQueries({queryKey:["custom-policies"]})}})),k=(c=(0,t.useQueryClient)(),(0,s.useMutation)({mutationFn:a=>(0,u.gatedFetch)(`${af}/api/iron-dome/policies/${a}`,{method:"DELETE"}).then(a=>a.ok?a.json():a.json().then(a=>{throw Error(a.error)})),onSuccess:()=>{c.invalidateQueries({queryKey:["custom-policies"]})}})),l=(d=(0,t.useQueryClient)(),(0,s.useMutation)({mutationFn:a=>(0,u.gatedFetch)(`${af}/api/iron-dome/policies/${a}/activate`,{method:"PUT"}).then(a=>a.ok?a.json():a.json().then(a=>{throw Error(a.error)})),onSuccess:()=>{d.invalidateQueries({queryKey:["custom-policies"]})}})),[m,o]=(0,i.useState)(!1),[p,q]=(0,i.useState)({name:"",description:""}),v=e?.policies??[];return h?(0,g.jsx)(ah,{}):(0,g.jsxs)("div",{className:"space-y-3",children:[(0,g.jsxs)("div",{className:"flex items-center justify-between",children:[(0,g.jsxs)("div",{className:"flex items-center gap-2",children:[(0,g.jsx)(n.Shield,{size:16,className:"text-[var(--sc-coral)]"}),(0,g.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Custom Iron Dome Policies"}),(0,g.jsxs)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:[v.length,"/10"]})]}),(0,g.jsxs)("button",{onClick:()=>o(!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,g.jsx)(W,{size:12})," Create Policy"]})]}),m&&(0,g.jsxs)("form",{onSubmit:a=>{a.preventDefault(),j.mutate({name:p.name,description:p.description,config:{}},{onSuccess:()=>{o(!1),q({name:"",description:""})}})},className:"p-3 bg-[var(--sc-bg-elevated)]/50 rounded-lg space-y-2",children:[(0,g.jsx)("input",{value:p.name,onChange:a=>q(b=>({...b,name:a.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,g.jsx)("textarea",{value:p.description,onChange:a=>q(b=>({...b,description:a.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,g.jsxs)("div",{className:"flex gap-2",children:[(0,g.jsx)("button",{type:"submit",disabled:j.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:j.isPending?"Creating...":"Create"}),(0,g.jsx)("button",{type:"button",onClick:()=>o(!1),className:"px-3 py-1 text-xs text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)]",children:"Cancel"})]}),j.error&&(0,g.jsx)("p",{className:"text-xs text-[var(--sc-coral)]",children:j.error.message})]}),f?(0,g.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)] py-4 text-center",children:"Loading policies..."}):0===v.length?(0,g.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,g.jsx)("div",{className:"space-y-1",children:v.map(a=>(0,g.jsxs)("div",{className:"flex items-center gap-3 px-3 py-2 bg-[var(--sc-bg-elevated)]/30 rounded text-xs",children:[(0,g.jsxs)("div",{className:"flex-1",children:[(0,g.jsxs)("div",{className:"flex items-center gap-2",children:[(0,g.jsx)("span",{className:"text-[var(--sc-text-primary)] font-medium",children:a.name}),1===a.is_active&&(0,g.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"})]}),a.description&&(0,g.jsx)("p",{className:"text-[var(--sc-text-muted)] text-[10px] mt-0.5",children:a.description})]}),!a.is_active&&(0,g.jsxs)("button",{onClick:()=>l.mutate(a.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,g.jsx)(ae.Check,{size:10})," Activate"]}),(0,g.jsx)("button",{onClick:()=>k.mutate(a.id),className:"text-[var(--sc-text-muted)] hover:text-[var(--sc-coral)]",children:(0,g.jsx)(X.Trash2,{size:12})})]},a.id))})]})}function ah(){return(0,g.jsxs)("div",{className:"space-y-3",children:[(0,g.jsxs)("div",{className:"flex items-center gap-2",children:[(0,g.jsx)(n.Shield,{size:16,className:"text-[var(--sc-coral)]"}),(0,g.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Custom Iron Dome Policies"}),(0,g.jsx)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:"0/10"})]}),(0,g.jsx)("div",{className:"space-y-1",children:aa.map(a=>(0,g.jsx)("div",{className:"flex items-center gap-3 px-3 py-2 bg-[var(--sc-bg-elevated)]/30 rounded text-xs",children:(0,g.jsxs)("div",{className:"flex-1",children:[(0,g.jsxs)("div",{className:"flex items-center gap-2",children:[(0,g.jsx)("span",{className:"text-[var(--sc-text-primary)] font-medium",children:a.name}),a.is_active&&(0,g.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,g.jsx)("p",{className:"text-[var(--sc-text-muted)] text-[10px] mt-0.5",children:a.description})]})},a.id))})]})}function ai(){return(0,g.jsx)("div",{className:"bg-[var(--sc-bg-surface)]/50 border border-[var(--sc-border)] rounded-xl p-4",children:(0,g.jsx)(Y.ProFeatureGate,{feature:"custom_iron_dome_policies",label:"Create custom Iron Dome policies with tailored action gates and trust levels.",children:(0,g.jsx)(ag,{})})})}let aj=[{id:"personal",label:"Personal",description:"Lighter touch for solo use",icon:n.Shield},{id:"enterprise",label:"Enterprise",description:"Financial & data protection",icon:O.Lock},{id:"school",label:"School",description:"GDPR strict, pupil data guarded",icon:S},{id:"paranoid",label:"Paranoid",description:"Everything requires approval",icon:k.AlertTriangle}],ak=[{name:"Injection Scanner",description:"40+ patterns across 8 categories",icon:T},{name:"Instruction Gateway",description:"Trusted channel validation",icon:Q},{name:"Action Gate",description:"Approve / block external actions",icon:O.Lock},{name:"PII Guard",description:"Block sensitive data output",icon:P.Eye},{name:"Kill Switch",description:"Emergency stop phrase",icon:R},{name:"Sub-Agent Control",description:"Restrict spawned agent operations",icon:S}],al={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"},am={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 an(){let a,b,c,d,e,{data:f,isLoading:h}=F(),{data:j}=(0,r.useQuery)({queryKey:["iron-dome-audit",50],queryFn:()=>E(50),refetchInterval:3e4,retry:2}),k=(a=(0,t.useQueryClient)(),(0,s.useMutation)({mutationFn:a=>x(a),onSuccess:()=>{a.invalidateQueries({queryKey:["iron-dome-status"]}),a.invalidateQueries({queryKey:["iron-dome-audit"]})}})),l=(b=(0,t.useQueryClient)(),(0,s.useMutation)({mutationFn:y,onSuccess:()=>{b.invalidateQueries({queryKey:["iron-dome-status"]})}})),m=(c=(0,t.useQueryClient)(),(0,s.useMutation)({mutationFn:a=>z(a),onSuccess:()=>{c.invalidateQueries({queryKey:["iron-dome-status"]}),c.invalidateQueries({queryKey:["iron-dome-audit"]})}})),o=(0,s.useMutation)({mutationFn:A}),p=(d=(0,t.useQueryClient)(),(0,s.useMutation)({mutationFn:B,onSuccess:()=>{d.invalidateQueries({queryKey:["iron-dome-status"]}),d.invalidateQueries({queryKey:["iron-dome-audit"]}),d.invalidateQueries({queryKey:["control-status"]})}})),q=(e=(0,t.useQueryClient)(),(0,s.useMutation)({mutationFn:a=>C(a),onSuccess:()=>{e.invalidateQueries({queryKey:["control-status"]}),e.invalidateQueries({queryKey:["iron-dome-status"]}),e.invalidateQueries({queryKey:["iron-dome-audit"]})}})),{data:u}=(0,r.useQuery)({queryKey:["control-status"],queryFn:D,refetchInterval:5e3,retry:2}),[v,w]=(0,i.useState)(""),[G,H]=(0,i.useState)(null),[I,J]=(0,i.useState)(""),O=f?.enabled??!1,P=u?.killSwitchActive??!1,Q=u?.killSwitchMeta??null,S=f?.profile,W=f?.config,X=W?.killPhrase??"",[Y,Z]=(0,i.useState)(X),[$,_]=(0,i.useState)(X);X!==$&&(_(X),Z(X));let aa=j?.logs??[],ab=aa.filter(a=>"BLOCK"===a.firewall_result).length,ac=aa.filter(a=>"ALLOW"===a.firewall_result).length,ae=!!W&&Y.trim()!==(W?.killPhrase??"");return(0,g.jsxs)("div",{className:"space-y-6",children:[(0,g.jsxs)("div",{className:"flex items-center gap-3",children:[h?(0,g.jsx)("span",{className:"text-[10px] text-[var(--sc-text-muted)] animate-pulse",children:"Loading..."}):(0,g.jsx)("span",{className:`text-[10px] font-medium px-2 py-0.5 rounded-full ${O?"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:O?"ACTIVE":"INACTIVE"}),O&&(0,g.jsxs)("button",{onClick:()=>{l.mutate()},disabled:l.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:[l.isPending?(0,g.jsx)(K.Loader2,{size:12,className:"animate-spin"}):(0,g.jsx)(R,{size:12}),"Deactivate"]})]}),(0,g.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[(0,g.jsxs)("div",{className:"glass-card p-6",children:[(0,g.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)] mb-3",children:"Security Profiles"}),(0,g.jsx)("div",{className:"grid grid-cols-2 gap-2",children:aj.map(({id:a,label:b,description:c,icon:d})=>(0,g.jsxs)("button",{onClick:()=>{k.mutate(a)},disabled:k.isPending,className:`text-left p-3 rounded-lg border transition-colors ${S===a?"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,g.jsxs)("div",{className:"flex items-center gap-1.5 mb-1",children:[(0,g.jsx)(d,{size:12}),(0,g.jsx)("span",{className:"text-xs font-medium",children:b})]}),(0,g.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:c})]},a))})]}),(0,g.jsxs)("div",{className:"glass-card p-6",children:[(0,g.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)] mb-3",children:"Module Status"}),(0,g.jsx)("div",{className:"space-y-2",children:ak.map(({name:a,description:b,icon:c})=>(0,g.jsxs)("div",{className:"flex items-center gap-3 px-3 py-2 rounded-lg bg-[var(--sc-bg-elevated)]/50",children:[(0,g.jsx)(c,{size:14,className:O?"text-[var(--sc-coral)]":"text-[var(--sc-text-muted)]"}),(0,g.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,g.jsx)("div",{className:"text-xs font-medium text-[var(--sc-text-primary)]",children:a}),(0,g.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)] truncate",children:b})]}),(0,g.jsx)("span",{className:`w-2 h-2 rounded-full ${O?"bg-[var(--sc-coral)]":"bg-[var(--sc-text-muted)]"}`})]},a))})]})]}),W&&(0,g.jsxs)("div",{className:"glass-card p-6",children:[(0,g.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)] mb-3",children:"Active Configuration"}),(0,g.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4 text-xs",children:[(0,g.jsxs)("div",{children:[(0,g.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)] uppercase mb-1",children:"Trusted Channels"}),(0,g.jsx)("div",{className:"flex flex-wrap gap-1",children:W.trustedChannels.map(a=>(0,g.jsx)("span",{className:"px-1.5 py-0.5 bg-[var(--sc-bg-elevated)] rounded text-[var(--sc-text-secondary)]",children:a},a))})]}),(0,g.jsxs)("div",{children:[(0,g.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)] uppercase mb-1",children:"Requires Approval"}),(0,g.jsx)("div",{className:"flex flex-wrap gap-1",children:W.requireApproval.map(a=>(0,g.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:a},a))})]}),(0,g.jsxs)("div",{children:[(0,g.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)] uppercase mb-1",children:"Kill Phrase"}),(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsx)("input",{type:"text",value:Y,onChange:a=>Z(a.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,g.jsxs)("div",{className:"flex items-center gap-2",children:[(0,g.jsx)("button",{onClick:()=>m.mutate({killPhrase:Y.trim()}),disabled:m.isPending||!Y.trim()||!ae,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,g.jsx)("span",{className:"text-[10px] text-[var(--sc-text-muted)]",children:O?"Say this in a conversation to trigger lockdown.":"This will apply the next time Iron Dome is active."})]})]})]})]})]}),P?(0,g.jsxs)("div",{className:"glass-card-strong p-6 border-2 !border-[var(--sc-coral)]/50 animate-pulse-slow",children:[(0,g.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,g.jsx)(U,{size:18,className:"text-[var(--sc-coral)]"}),(0,g.jsx)("h3",{className:"text-sm font-bold text-[var(--sc-coral)] uppercase tracking-wide",children:"Kill Switch Active"}),(0,g.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,g.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,g.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,g.jsxs)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:[(0,g.jsx)("span",{className:"text-[var(--sc-coral)] font-medium",children:"Triggered:"})," ",new Date(Q.triggeredAt).toLocaleString()]}),(0,g.jsxs)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:[(0,g.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,g.jsxs)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:[(0,g.jsx)("span",{className:"text-[var(--sc-coral)] font-medium",children:"Memories at trigger:"})," ",Q.memoryCountAtTrigger]})]}),(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsx)("input",{type:"text",value:I,onChange:a=>J(a.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,g.jsxs)("div",{className:"flex items-center gap-3",children:[(0,g.jsxs)("button",{onClick:()=>{I.trim()&&(q.mutate(I.trim()),J(""))},disabled:q.isPending||!I.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:[q.isPending?(0,g.jsx)(K.Loader2,{size:12,className:"animate-spin"}):(0,g.jsx)(V.Play,{size:12}),"Resume Agent"]}),(0,g.jsx)("span",{className:"text-[10px] text-[var(--sc-text-muted)]",children:"Only resume after you've investigated the threat"})]})]})]}):(0,g.jsxs)("div",{className:"glass-card p-6 !border-[var(--sc-coral)]/30",children:[(0,g.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,g.jsx)(U,{size:14,className:"text-[var(--sc-coral)]"}),(0,g.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-coral)]",children:"Emergency Stop"})]}),(0,g.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."}),W?.killPhrase&&(0,g.jsxs)("p",{className:"text-[10px] text-[var(--sc-text-muted)] mb-3",children:["Kill phrase: ",(0,g.jsxs)("span",{className:"font-mono text-[var(--sc-text-secondary)]",children:['"',W.killPhrase,'"']})," — say this in conversation for hands-free stop"]}),(0,g.jsxs)("button",{onClick:()=>p.mutate(),disabled:p.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:[p.isPending?(0,g.jsx)(K.Loader2,{size:12,className:"animate-spin"}):(0,g.jsx)(U,{size:14}),"Emergency Stop"]})]}),(0,g.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[(0,g.jsxs)("div",{className:"glass-card p-6",children:[(0,g.jsxs)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)] mb-3",children:[(0,g.jsx)(T,{size:14,className:"inline mr-1.5 text-[var(--sc-coral)]"}),"Injection Scanner"]}),(0,g.jsx)("textarea",{value:v,onChange:a=>w(a.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,g.jsxs)("button",{onClick:()=>{v.trim()&&o.mutate(v,{onSuccess:a=>H(a)})},disabled:o.isPending||!v.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:[o.isPending?(0,g.jsx)(K.Loader2,{size:12,className:"animate-spin"}):(0,g.jsx)(L,{size:12}),"Scan"]}),G&&(0,g.jsxs)("div",{className:"mt-3 space-y-2",children:[(0,g.jsxs)("div",{className:"flex items-center gap-2",children:[G.clean?(0,g.jsx)(M.CheckCircle2,{size:14,className:"text-[var(--sc-cyan)]"}):(0,g.jsx)(N.XCircle,{size:14,className:"text-[var(--sc-coral)]"}),(0,g.jsx)("span",{className:`text-[10px] font-medium px-2 py-0.5 rounded-full ${am[G.riskLevel]??"bg-[var(--sc-bg-elevated)]/20 text-[var(--sc-text-secondary)]"}`,children:G.riskLevel}),(0,g.jsx)("span",{className:"text-xs text-[var(--sc-text-secondary)]",children:G.summary})]}),G.detections.map((a,b)=>(0,g.jsxs)("div",{className:`border rounded-lg p-3 ${al[a.severity]??"border-[var(--sc-border)]"}`,children:[(0,g.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,g.jsx)("span",{className:"text-[10px] font-medium uppercase",children:a.severity}),(0,g.jsx)("span",{className:"text-xs text-[var(--sc-text-primary)]",children:a.category.replace(/_/g," ")})]}),(0,g.jsx)("p",{className:"text-[11px] text-[var(--sc-text-secondary)] mb-1",children:a.description}),(0,g.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:a.match})]},b))]})]}),(0,g.jsxs)("div",{className:"glass-card p-6",children:[(0,g.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,g.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Event Feed"}),(0,g.jsxs)("span",{className:"text-[10px] text-[var(--sc-text-muted)]",children:["Last ",aa.length," events"]})]}),(0,g.jsxs)("div",{className:"grid grid-cols-3 gap-2 mb-3",children:[(0,g.jsxs)("div",{className:"bg-[var(--sc-bg-elevated)]/50 rounded-lg p-2 text-center",children:[(0,g.jsx)("div",{className:"text-sm font-bold text-[var(--sc-text-primary)]",children:aa.length}),(0,g.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:"Total"})]}),(0,g.jsxs)("div",{className:"bg-[var(--sc-bg-elevated)]/50 rounded-lg p-2 text-center",children:[(0,g.jsx)("div",{className:"text-sm font-bold text-[var(--sc-coral)]",children:ab}),(0,g.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:"Blocked"})]}),(0,g.jsxs)("div",{className:"bg-[var(--sc-bg-elevated)]/50 rounded-lg p-2 text-center",children:[(0,g.jsx)("div",{className:"text-sm font-bold text-[var(--sc-cyan)]",children:ac}),(0,g.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:"Allowed"})]})]}),(0,g.jsx)("div",{className:"space-y-1 max-h-72 overflow-y-auto",children:0===aa.length?(0,g.jsxs)("div",{className:"text-center py-6",children:[(0,g.jsx)(n.Shield,{size:20,className:"text-[var(--sc-text-muted)] mx-auto mb-1.5"}),(0,g.jsx)("p",{className:"text-[10px] text-[var(--sc-text-muted)]",children:"No Iron Dome events yet"})]}):aa.map((a,b)=>(0,g.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,g.jsx)("span",{className:`w-1.5 h-1.5 rounded-full shrink-0 ${"BLOCK"===a.firewall_result?"bg-[var(--sc-coral)]":"bg-[var(--sc-cyan)]"}`}),(0,g.jsx)("span",{className:"text-[var(--sc-text-secondary)] truncate flex-1",children:(a.reason??"").replace(/^\[iron-dome:\w+\]\s*/,"")}),(0,g.jsx)("span",{className:"text-[10px] text-[var(--sc-text-muted)] shrink-0",children:new Date(a.timestamp).toLocaleTimeString()})]},a.id??b))})]})]}),(0,g.jsx)(ad,{}),(0,g.jsx)(ai,{})]})}var ao=a.i(68839);let ap=(0,l.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 aq=a.i(14126);let ar=(0,l.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"}]]),as=(0,l.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 at=a.i(95480);let au=(0,l.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"}]]),av=(0,l.default)("square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]),aw=(0,l.default)("square-minus",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M8 12h8",key:"1wcyev"}]]);function ax({action:a,item:b,onConfirm:c,onCancel:d}){let[e,f]=(0,i.useState)(""),h="yes"===e.trim().toLowerCase(),j="memory_file"===b.source_type;return(0,g.jsx)("div",{className:"fixed inset-0 bg-black/60 flex items-center justify-center z-50",children:(0,g.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,g.jsxs)("h3",{className:"text-sm font-semibold text-[var(--sc-text-primary)] mb-2",children:["approve"===a?"Approve":"Reject"," quarantined item?"]}),(0,g.jsx)("p",{className:"text-xs text-[var(--sc-text-secondary)] mb-1",children:(0,g.jsx)("strong",{children:b.title||"Untitled"})}),(0,g.jsx)("p",{className:"text-xs text-[var(--sc-text-muted)] mb-4",children:"approve"===a?j?"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.":j?"This will dismiss the memory-file finding. The source file is not deleted or edited.":"This will permanently discard the memory."}),(0,g.jsxs)("div",{className:"mb-4",children:[(0,g.jsxs)("label",{className:"text-xs text-[var(--sc-text-secondary)] block mb-1",children:["Type ",(0,g.jsx)("strong",{className:"text-[var(--sc-text-primary)]",children:"YES"})," to confirm:"]}),(0,g.jsx)("input",{type:"text",value:e,onChange:a=>f(a.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:a=>{"Enter"===a.key&&h&&c(),"Escape"===a.key&&d()}})]}),(0,g.jsxs)("div",{className:"flex gap-2 justify-end",children:[(0,g.jsx)("button",{onClick:d,className:"px-3 py-1.5 text-xs text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)] transition-colors",children:"Cancel"}),(0,g.jsx)("button",{onClick:c,disabled:!h,className:`px-3 py-1.5 text-xs rounded-lg transition-colors ${h?"approve"===a?"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"===a&&j?"Mark reviewed":"approve"===a?"Approve":"Reject"})]})]})})}function ay({annotation:a}){var b;return(0,g.jsxs)("div",{className:"mb-3 rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)]/70 p-3",children:[(0,g.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,g.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-[10px] font-semibold uppercase tracking-[0.16em] text-[var(--sc-cyan)]",children:[(0,g.jsx)(ap,{size:12})," Local AI Explainer"]}),(0,g.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:a.category.replace(/_/g," ")}),(0,g.jsx)("span",{className:`rounded border px-2 py-0.5 text-[10px] uppercase tracking-[0.12em] ${"approve"===(b=a.suggestedAction)?"text-[var(--sc-cyan)] bg-[var(--sc-cyan)]/10 border-[var(--sc-cyan)]/25":"reject"===b?"text-[var(--sc-coral)] bg-[var(--sc-coral)]/10 border-[var(--sc-coral)]/25":"create_rule"===b?"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:a.suggestedAction.replace(/_/g," ")}),(0,g.jsxs)("span",{className:"text-[10px] text-[var(--sc-text-muted)]",children:[Math.round(100*a.confidence),"% confidence"]}),a.similarGroupKey&&(0,g.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-[var(--sc-text-muted)]",children:[(0,g.jsx)(ar,{size:11})," ",a.similarGroupKey]})]}),(0,g.jsx)("p",{className:"mt-2 text-xs leading-5 text-[var(--sc-text-primary)]",children:a.summary}),(0,g.jsx)("p",{className:"mt-1 text-[11px] leading-5 text-[var(--sc-text-secondary)]",children:a.reasoning}),a.evidence.length>0&&(0,g.jsx)("div",{className:"mt-2 space-y-1.5",children:a.evidence.map((a,b)=>(0,g.jsxs)("div",{className:"rounded border border-[var(--sc-border)] bg-[var(--sc-bg-surface)] px-2 py-1.5",children:[(0,g.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:a.reason}),(0,g.jsxs)("div",{className:"mt-0.5 text-[11px] text-[var(--sc-text-primary)] break-words",children:['"',a.snippet,'"']})]},`${a.snippet}-${b}`))})]})}function az(){let{projectFilter:a}=(0,ao.useDashboardStore)(),[b,c]=(0,i.useState)("pending"),{data:d,isLoading:e}=(0,G.useQuarantine)(b,100,a||void 0),{data:f}=(0,G.useReviewCopilotStatus)(),h=(0,G.useApproveQuarantine)(),j=(0,G.useRejectQuarantine)(),l=(0,G.useBulkApproveQuarantine)(),m=(0,G.useBulkRejectQuarantine)(),n=(0,G.useAnnotateQuarantine)(),o=(0,G.useAnnotatePendingQuarantine)(),[p,q]=(0,i.useState)(null),[r,s]=(0,i.useState)(new Set),[t,u]=(0,i.useState)(null),v=h.error?.message||j.error?.message||l.error?.message||m.error?.message||n.error?.message||o.error?.message||null,w=d?.items??[],x=w.filter(a=>"pending"===a.status),y=w.filter(a=>a.annotation),z=x.filter(a=>!a.annotation),A=x.filter(a=>r.has(a.id)).filter(a=>"memory_file"===a.source_type).length,B=(()=>{let a=new Map;for(let b of y){let c=b.annotation?.similarGroupKey;c&&a.set(c,(a.get(c)??0)+1)}return[...a.entries()].sort((a,b)=>b[1]-a[1]).slice(0,3)})(),C=x.length>0&&x.every(a=>r.has(a.id)),D=x.some(a=>r.has(a.id)),E=n.isPending||o.isPending,F=!!(f?.enabled&&f.featureEnabled&&f.modelCached);return(0,g.jsxs)("div",{className:"space-y-6",children:[p&&(0,g.jsx)(ax,{action:p.action,item:p.item,onConfirm:()=>{p&&("approve"===p.action?h.mutate(p.item.id):j.mutate({id:p.item.id}),q(null))},onCancel:()=>q(null)}),t&&(0,g.jsx)("div",{className:"fixed inset-0 bg-black/60 flex items-center justify-center z-50",children:(0,g.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,g.jsxs)("h3",{className:"text-sm font-semibold text-[var(--sc-text-primary)] mb-2",children:["approve"===t?"Approve":"Reject"," ",r.size," item",1!==r.size?"s":"","?"]}),(0,g.jsx)("p",{className:"text-xs text-[var(--sc-text-secondary)] mb-4",children:"approve"===t?A>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.":A>0?"Memory-file findings will be dismissed without editing files. Other selected memories will be discarded.":"This will permanently discard all selected memories."}),(0,g.jsxs)("div",{className:"flex gap-2 justify-end",children:[(0,g.jsx)("button",{onClick:()=>u(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,g.jsxs)("button",{onClick:()=>{if(!t||0===r.size)return;let a=Array.from(r);"approve"===t?l.mutate(a):m.mutate(a),s(new Set),u(null)},className:`px-3 py-1.5 text-xs rounded-lg transition-colors ${"approve"===t?"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"===t?"Approve":"Reject"," ",r.size," item",1!==r.size?"s":""]})]})]})}),(0,g.jsx)(Y.ProFeatureGate,{feature:"local_ai_explainer",label:"Use a local model to explain and group quarantined items without sending content to the cloud.",children:(0,g.jsx)("div",{className:"glass-card p-5",children:(0,g.jsxs)("div",{className:"flex flex-col gap-4 lg:flex-row lg:items-center lg:justify-between",children:[(0,g.jsxs)("div",{children:[(0,g.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,g.jsxs)("h3",{className:"flex items-center gap-2 text-sm font-semibold text-[var(--sc-text-primary)]",children:[(0,g.jsx)(aq.Sparkles,{size:16,className:"text-[var(--sc-cyan)]"}),"Local AI Explainer"]}),(0,g.jsx)("span",{className:`rounded border px-2 py-0.5 text-[10px] uppercase tracking-[0.12em] ${f?.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:f?.enabled?"enabled":"disabled"}),(0,g.jsx)("span",{className:`rounded border px-2 py-0.5 text-[10px] uppercase tracking-[0.12em] ${f?.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:f?.modelCached?"model cached":"model not cached"})]}),(0,g.jsx)("div",{className:"mt-2 text-xs leading-5 text-[var(--sc-text-secondary)]",children:f?.enabled?f.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,g.jsxs)("div",{className:"mt-2 flex flex-wrap gap-2 text-[10px] text-[var(--sc-text-muted)]",children:[(0,g.jsxs)("span",{className:z.length>0?"text-[var(--sc-amber)]":"",children:[z.length," need explanation"]}),(0,g.jsxs)("span",{children:[y.length," explained in this view"]}),B.map(([a,b])=>(0,g.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,g.jsx)(ar,{size:11})," ",a,": ",b]},a))]})]}),(0,g.jsx)("div",{className:"flex flex-wrap gap-2",children:(0,g.jsxs)("button",{onClick:()=>{o.mutate({limit:Math.min(Math.max(z.length,1),100),project:a||void 0})},disabled:!F||E||0===z.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:[o.isPending?(0,g.jsx)(K.Loader2,{size:13,className:"animate-spin"}):(0,g.jsx)(as,{size:13}),"Explain all"]})})]})})}),(0,g.jsxs)("div",{className:"glass-card p-5",children:[(0,g.jsx)("div",{className:"flex items-center justify-between",children:(0,g.jsx)("div",{className:"flex gap-1 bg-[var(--sc-bg-elevated)] rounded-lg p-0.5",children:["pending","approved","rejected"].map(a=>(0,g.jsx)("button",{onClick:()=>{c(a),s(new Set)},className:`px-3 py-1 text-xs rounded-md transition-colors capitalize ${b===a?"bg-[var(--sc-cyan)] text-[var(--sc-text-primary)]":"text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)]"}`,children:a},a))})}),"pending"===b&&x.length>0&&(0,g.jsxs)("div",{className:"flex items-center gap-3 mt-3",children:[(0,g.jsxs)("button",{onClick:()=>{C?s(new Set):s(new Set(x.map(a=>a.id)))},className:"flex items-center gap-1.5 text-xs text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)] transition-colors",children:[C?(0,g.jsx)(au,{size:14,className:"text-[var(--sc-cyan)]"}):D?(0,g.jsx)(aw,{size:14,className:"text-[var(--sc-cyan)]"}):(0,g.jsx)(av,{size:14}),C?"Deselect all":"Select all"]}),D&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsxs)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:[r.size," selected"]}),(0,g.jsxs)("button",{onClick:()=>u("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,g.jsx)(ae.Check,{size:12})," Approve"]}),(0,g.jsxs)("button",{onClick:()=>u("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,g.jsx)(at.X,{size:12})," Reject"]})]})]})]}),v&&(0,g.jsx)("div",{className:"glass-card p-5 border-[var(--sc-coral)]/30 bg-[var(--sc-coral)]/10 text-sm text-[var(--sc-coral)]",children:v}),(0,g.jsx)("div",{children:e?(0,g.jsx)("div",{className:"glass-card p-5 flex items-center justify-center h-32",children:(0,g.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)] animate-pulse",children:"Loading quarantine items..."})}):0===w.length?(0,g.jsxs)("div",{className:"glass-card p-5 flex flex-col items-center justify-center h-32 text-[var(--sc-text-muted)]",children:[(0,g.jsx)(k.AlertTriangle,{size:24,className:"mb-2 text-[var(--sc-text-muted)]"}),(0,g.jsxs)("span",{className:"text-xs",children:["No ",b," items"]})]}):(0,g.jsx)("div",{className:"space-y-3",children:w.map(a=>{let b=(()=>{try{return JSON.parse(a.threat_indicators)}catch{return[]}})(),c="memory_file"===a.source_type;return(0,g.jsxs)("div",{className:`glass-card p-5 ${r.has(a.id)?"border-[var(--sc-cyan)]/50":"pending"===a.status&&!a.annotation?"border-[var(--sc-amber)]/35":""}`,children:[(0,g.jsxs)("div",{className:"flex items-start justify-between mb-2",children:[(0,g.jsxs)("div",{className:"flex items-start gap-2.5",children:["pending"===a.status&&(0,g.jsx)("button",{onClick:()=>{var b;return b=a.id,void s(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c})},className:"mt-0.5 text-[var(--sc-text-muted)] hover:text-[var(--sc-cyan)] transition-colors shrink-0",children:r.has(a.id)?(0,g.jsx)(au,{size:14,className:"text-[var(--sc-cyan)]"}):(0,g.jsx)(av,{size:14})}),(0,g.jsxs)("div",{children:[(0,g.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,g.jsx)("h4",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:a.title||"Untitled"}),"pending"===a.status&&!a.annotation&&(0,g.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,g.jsx)(ap,{size:10})," Needs explanation"]})]}),(0,g.jsxs)("div",{className:"text-[10px] text-[var(--sc-text-muted)] mt-0.5",children:[a.source_type," · ",new Date(a.created_at).toLocaleString(),a.anomaly_score>0&&(0,g.jsxs)("span",{className:`ml-2 ${a.anomaly_score>.5?"text-[var(--sc-coral)]":"text-[var(--sc-amber)]"}`,children:["Anomaly: ",a.anomaly_score.toFixed(2)]})]}),c&&(0,g.jsx)("div",{className:"mt-1 break-all font-mono text-[10px] text-[var(--sc-text-muted)]",children:a.source_identifier})]})]}),(0,g.jsx)("span",{className:"text-[10px] text-[var(--sc-coral)] bg-[var(--sc-coral)]/10 px-2 py-0.5 rounded",children:a.reason?.slice(0,50)||"Threat detected"})]}),(0,g.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:a.content?.slice(0,500)||"No content"}),b.length>0&&(0,g.jsx)("div",{className:"flex gap-1 mb-3 flex-wrap",children:b.map((a,b)=>(0,g.jsx)("span",{className:"text-[9px] text-[var(--sc-amber)] bg-[var(--sc-amber)]/10 px-1.5 py-0.5 rounded",children:a},b))}),a.annotation&&(0,g.jsx)(ay,{annotation:a.annotation}),"pending"===a.status&&(0,g.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,g.jsxs)("button",{onClick:()=>n.mutate(a.id),disabled:!F||n.isPending||o.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:[n.isPending?(0,g.jsx)(K.Loader2,{size:12,className:"animate-spin"}):(0,g.jsx)(as,{size:12}),a.annotation?"Re-explain":"Explain"]}),(0,g.jsxs)("button",{onClick:()=>q({action:"approve",item:a}),disabled:h.isPending||l.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,g.jsx)(ae.Check,{size:12})," ",c?"Mark reviewed":"Approve"]}),(0,g.jsxs)("button",{onClick:()=>q({action:"reject",item:a}),disabled:j.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,g.jsx)(at.X,{size:12})," Reject"]})]}),a.reviewed_at&&(0,g.jsxs)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:["approved"===a.status?"Approved":"Rejected"," by ",a.reviewed_by," at ",new Date(a.reviewed_at).toLocaleString()]})]},a.id)})})})]})}var aA=a.i(54100),aB=a.i(60210);let aC=(0,l.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"}]]),aD=(0,l.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 aE=a.i(6750);let aF=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";function aG(){let a=(0,s.useMutation)({mutationFn:async({format:a,startTime:b,endTime:c})=>{let d=new URLSearchParams({format:a});b&&d.set("startTime",b),c&&d.set("endTime",c);let e=await (0,u.gatedFetch)(`${aF}/api/audit/export?${d}`);if(!e.ok)throw Error((await e.json().catch(()=>({}))).error||"Export failed");let f=await e.blob(),g=URL.createObjectURL(f),h=document.createElement("a");return h.href=g,h.download=`shieldcortex-audit-${Date.now()}.${"csv"===a?"csv":"json"}`,document.body.appendChild(h),h.click(),document.body.removeChild(h),setTimeout(()=>URL.revokeObjectURL(g),200),{success:!0}}}),[b,c]=(0,i.useState)("json");return(0,g.jsxs)("div",{className:"space-y-3",children:[(0,g.jsxs)("div",{className:"flex items-center gap-2",children:[(0,g.jsx)(aC,{size:16,className:"text-[var(--sc-cyan)]"}),(0,g.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Export Audit Logs"})]}),(0,g.jsxs)("div",{className:"flex items-center gap-3",children:[(0,g.jsxs)("div",{className:"flex rounded-lg overflow-hidden border border-[var(--sc-border)]",children:[(0,g.jsxs)("button",{onClick:()=>c("json"),className:`flex items-center gap-1.5 px-3 py-1.5 text-xs transition-colors ${"json"===b?"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,g.jsx)(aD,{size:12})," JSON"]}),(0,g.jsxs)("button",{onClick:()=>c("csv"),className:`flex items-center gap-1.5 px-3 py-1.5 text-xs transition-colors ${"csv"===b?"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,g.jsx)(aE.FileText,{size:12})," CSV"]})]}),(0,g.jsxs)("button",{onClick:()=>a.mutate({format:b}),disabled:a.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,g.jsx)(aC,{size:12}),a.isPending?"Exporting...":"Export"]})]}),a.error&&(0,g.jsx)("p",{className:"text-xs text-[var(--sc-coral)]",children:a.error.message}),a.isSuccess&&(0,g.jsx)("p",{className:"text-xs text-[var(--sc-cyan)]",children:"Export downloaded successfully."})]})}function aH(){return(0,g.jsx)("div",{className:"bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded-xl p-4",children:(0,g.jsx)(Y.ProFeatureGate,{feature:"audit_export",label:"Export your full audit trail as JSON or CSV for compliance reporting.",children:(0,g.jsx)(aG,{})})})}var aI=a.i(64565);function aJ({className:a,...b}){return(0,g.jsx)("div",{"data-slot":"card",className:(0,aI.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",a),...b})}function aK({className:a,...b}){return(0,g.jsx)("div",{"data-slot":"card-header",className:(0,aI.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",a),...b})}function aL({className:a,...b}){return(0,g.jsx)("div",{"data-slot":"card-content",className:(0,aI.cn)("px-6",a),...b})}function aM(a,b){if("function"==typeof a)return a(b);null!=a&&(a.current=b)}var aN=Symbol.for("react.lazy"),aO=i[" use ".trim().toString()];function aP(a){var b;return null!=a&&"object"==typeof a&&"$$typeof"in a&&a.$$typeof===aN&&"_payload"in a&&"object"==typeof(b=a._payload)&&null!==b&&"then"in b}var aQ=((f=i.forwardRef((a,b)=>{let{children:c,...d}=a;if(aP(c)&&"function"==typeof aO&&(c=aO(c._payload)),i.isValidElement(c)){var e;let a,f,g=(e=c,(f=(a=Object.getOwnPropertyDescriptor(e.props,"ref")?.get)&&"isReactWarning"in a&&a.isReactWarning)?e.ref:(f=(a=Object.getOwnPropertyDescriptor(e,"ref")?.get)&&"isReactWarning"in a&&a.isReactWarning)?e.props.ref:e.props.ref||e.ref),h=function(a,b){let c={...b};for(let d in b){let e=a[d],f=b[d];/^on[A-Z]/.test(d)?e&&f?c[d]=(...a)=>{let b=f(...a);return e(...a),b}:e&&(c[d]=e):"style"===d?c[d]={...e,...f}:"className"===d&&(c[d]=[e,f].filter(Boolean).join(" "))}return{...a,...c}}(d,c.props);return c.type!==i.Fragment&&(h.ref=b?function(...a){return b=>{let c=!1,d=a.map(a=>{let d=aM(a,b);return c||"function"!=typeof d||(c=!0),d});if(c)return()=>{for(let b=0;b<d.length;b++){let c=d[b];"function"==typeof c?c():aM(a[b],null)}}}}(b,g):g),i.cloneElement(c,h)}return i.Children.count(c)>1?i.Children.only(null):null})).displayName="Slot.SlotClone",b=f,(c=i.forwardRef((a,c)=>{let{children:d,...e}=a;aP(d)&&"function"==typeof aO&&(d=aO(d._payload));let f=i.Children.toArray(d),h=f.find(aS);if(h){let a=h.props.children,d=f.map(b=>b!==h?b:i.Children.count(a)>1?i.Children.only(null):i.isValidElement(a)?a.props.children:null);return(0,g.jsx)(b,{...e,ref:c,children:i.isValidElement(a)?i.cloneElement(a,void 0,d):null})}return(0,g.jsx)(b,{...e,ref:c,children:d})})).displayName="Slot.Slot",c),aR=Symbol("radix.slottable");function aS(a){return i.isValidElement(a)&&"function"==typeof a.type&&"__radixId"in a.type&&a.type.__radixId===aR}var aT=a.i(52814);let aU=a=>"boolean"==typeof a?`${a}`:0===a?"0":a,aV=aT.clsx,aW=(d="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",e={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"}},a=>{var b;if((null==e?void 0:e.variants)==null)return aV(d,null==a?void 0:a.class,null==a?void 0:a.className);let{variants:c,defaultVariants:f}=e,g=Object.keys(c).map(b=>{let d=null==a?void 0:a[b],e=null==f?void 0:f[b];if(null===d)return null;let g=aU(d)||aU(e);return c[b][g]}),h=a&&Object.entries(a).reduce((a,b)=>{let[c,d]=b;return void 0===d||(a[c]=d),a},{});return aV(d,g,null==e||null==(b=e.compoundVariants)?void 0:b.reduce((a,b)=>{let{class:c,className:d,...e}=b;return Object.entries(e).every(a=>{let[b,c]=a;return Array.isArray(c)?c.includes({...f,...h}[b]):({...f,...h})[b]===c})?[...a,c,d]:a},[]),null==a?void 0:a.class,null==a?void 0:a.className)});function aX({className:a,variant:b="default",size:c="default",asChild:d=!1,...e}){return(0,g.jsx)(d?aQ:"button",{"data-slot":"button","data-variant":b,"data-size":c,className:(0,aI.cn)(aW({variant:b,size:c,className:a})),...e})}var aY=a.i(49948),aZ=a.i(91321),a$=a.i(68760),a_=a.i(25605);let a0={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"}},a1={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)"}},a2={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 a3(a){return a>=.7?"#22C55E":a>=.4?"#EAB308":"#EF4444"}function a4(a){return a>.5?"#EF4444":a>.2?"#EAB308":"#94a3b8"}function a5({entry:a,onClose:b,onViewMemory:c}){let d,[e,f]=(0,i.useState)(!1),h=(0,aZ.useLocalAiExplain)(),j=a0[a.firewall_result]||a0.ALLOW,k=a1[a.sensitivity_level]||a1.PUBLIC,l=function(a){try{let b=JSON.parse(a);return Array.isArray(b)?b:[]}catch{return[]}}(a.threat_indicators),m=function(a){try{let b=JSON.parse(a);return Array.isArray(b)?b:[]}catch{return[]}}(a.blocked_patterns),n=(0,i.useCallback)(()=>{let b=JSON.stringify(a,null,2);navigator.clipboard.writeText(b).then(()=>{f(!0),setTimeout(()=>f(!1),1500)})},[a]),o=(0,i.useCallback)(()=>{h.mutate({kind:"audit_event",title:`${a.firewall_result} audit event`,content:[`Audit ID: ${a.id}`,`Result: ${a.firewall_result}`,`Source: ${a.source_type}:${a.source_identifier}`,a.project?`Project: ${a.project}`:"",`Trust score: ${a.trust_score}`,`Anomaly score: ${a.anomaly_score}`,`Sensitivity: ${a.sensitivity_level}`,null!==a.fragmentation_score?`Fragmentation score: ${a.fragmentation_score}`:"",l.length?`Threat indicators: ${l.join(", ")}`:"",m.length?`Blocked patterns:
2
2
  ${m.join("\n")}`:"",a.reason?`Reason:
3
3
  ${a.reason}`:""].filter(Boolean).join("\n\n"),project:a.project,source:`${a.source_type}:${a.source_identifier}`,signals:[a.firewall_result,a.sensitivity_level,...l],metadata:{auditId:a.id,memoryId:a.memory_id,trustScore:a.trust_score,anomalyScore:a.anomaly_score,pipelineDurationMs:a.pipeline_duration_ms}})},[m,a,h,l]);return(0,g.jsxs)(aJ,{className:"bg-[var(--sc-bg-surface)] border-[var(--sc-border)] overflow-hidden",children:[(0,g.jsxs)(aK,{className:"border-b border-[var(--sc-border)] pb-3",children:[(0,g.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,g.jsxs)("div",{className:"flex items-center gap-3",children:[(0,g.jsx)("span",{className:"px-2.5 py-1 rounded-md text-xs font-bold",style:{backgroundColor:j.bg,color:j.color},children:j.label}),(0,g.jsx)("span",{className:"px-2 py-0.5 rounded text-[10px] font-medium",style:{backgroundColor:k.bg,color:k.color},children:a.sensitivity_level})]}),(0,g.jsx)(aX,{variant:"ghost",size:"sm",onClick:b,className:"text-[var(--sc-text-secondary)] hover:text-white -mt-1",children:"✕"})]}),(0,g.jsx)("div",{className:"text-xs text-[var(--sc-text-secondary)] mt-2",children:new Date(a.timestamp).toLocaleString()}),a.project&&(0,g.jsxs)("div",{className:"text-[10px] text-[var(--sc-text-muted)] mt-1",children:["Project: ",a.project]})]}),(0,g.jsxs)(aL,{className:"p-4 space-y-4",children:[(0,g.jsxs)("div",{children:[(0,g.jsx)("h4",{className:"text-xs font-medium text-[var(--sc-text-secondary)] mb-2",children:"Source"}),(0,g.jsxs)("div",{className:"bg-[var(--sc-bg-elevated)] rounded-lg p-3",children:[(0,g.jsx)("div",{className:"flex items-center gap-2 mb-1",children:(0,g.jsx)("span",{className:"px-1.5 py-0.5 rounded text-[10px] font-medium bg-[var(--sc-cyan)]/10 text-[var(--sc-cyan)]",children:a.source_type})}),a.source_identifier&&(0,g.jsx)("div",{className:"text-xs text-[var(--sc-text-primary)] mt-1 font-mono break-all",children:a.source_identifier})]})]}),(0,g.jsxs)("div",{children:[(0,g.jsx)("h4",{className:"text-xs font-medium text-[var(--sc-text-secondary)] mb-2",children:"Scores"}),(0,g.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,g.jsxs)("div",{className:"bg-[var(--sc-bg-elevated)] rounded-lg p-3",children:[(0,g.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:"Trust"}),(0,g.jsxs)("div",{className:"text-lg font-bold",style:{color:a3(a.trust_score)},children:[(100*a.trust_score).toFixed(0),"%"]}),(0,g.jsx)("div",{className:"mt-1 h-1.5 bg-[var(--sc-bg-elevated)] rounded-full overflow-hidden",children:(0,g.jsx)("div",{className:"h-full rounded-full transition-all",style:{width:`${100*a.trust_score}%`,backgroundColor:a3(a.trust_score)}})})]}),(0,g.jsxs)("div",{className:"bg-[var(--sc-bg-elevated)] rounded-lg p-3",children:[(0,g.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:"Anomaly"}),(0,g.jsxs)("div",{className:"text-lg font-bold",style:{color:a4(a.anomaly_score)},children:[(100*a.anomaly_score).toFixed(0),"%"]}),(0,g.jsx)("div",{className:"mt-1 h-1.5 bg-[var(--sc-bg-elevated)] rounded-full overflow-hidden",children:(0,g.jsx)("div",{className:"h-full rounded-full transition-all",style:{width:`${100*a.anomaly_score}%`,backgroundColor:a4(a.anomaly_score)}})})]}),null!==a.fragmentation_score&&(0,g.jsxs)("div",{className:"bg-[var(--sc-bg-elevated)] rounded-lg p-3",children:[(0,g.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:"Fragmentation"}),(0,g.jsxs)("div",{className:"text-lg font-bold text-[var(--sc-text-primary)]",children:[(100*a.fragmentation_score).toFixed(0),"%"]}),(0,g.jsx)("div",{className:"mt-1 h-1.5 bg-[var(--sc-bg-elevated)] rounded-full overflow-hidden",children:(0,g.jsx)("div",{className:"h-full rounded-full bg-purple-500 transition-all",style:{width:`${100*a.fragmentation_score}%`}})})]}),null!==a.pipeline_duration_ms&&(0,g.jsxs)("div",{className:"bg-[var(--sc-bg-elevated)] rounded-lg p-3",children:[(0,g.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:"Pipeline"}),(0,g.jsxs)("div",{className:"text-lg font-bold text-[var(--sc-text-primary)]",children:[a.pipeline_duration_ms,"ms"]})]})]})]}),(0,g.jsxs)("div",{children:[(0,g.jsx)("h4",{className:"text-xs font-medium text-[var(--sc-text-secondary)] mb-2",children:"Threat Indicators"}),l.length>0?(0,g.jsx)("div",{className:"flex flex-wrap gap-1.5",children:l.map((a,b)=>{let c=a2[a]||{color:"#94a3b8",bg:"rgba(148, 163, 184, 0.15)"};return(0,g.jsx)("span",{className:"px-2 py-1 rounded text-[11px] font-medium",style:{backgroundColor:c.bg,color:c.color},children:a.replace(/_/g," ")},b)})}):(0,g.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)]",children:"No threats detected"})]}),m.length>0&&(0,g.jsxs)("div",{children:[(0,g.jsx)("h4",{className:"text-xs font-medium text-[var(--sc-text-secondary)] mb-2",children:"Blocked Patterns"}),(0,g.jsx)("div",{className:"bg-[var(--sc-bg-elevated)] rounded-lg p-3 max-h-32 overflow-y-auto",children:m.map((a,b)=>(0,g.jsx)("div",{className:"text-[11px] text-[var(--sc-text-primary)] font-mono break-all mb-1 last:mb-0",children:a},b))})]}),a.reason&&(0,g.jsxs)("div",{children:[(0,g.jsx)("h4",{className:"text-xs font-medium text-[var(--sc-text-secondary)] mb-2",children:"Reason"}),(0,g.jsx)("div",{className:"bg-[var(--sc-bg-elevated)] rounded-lg p-3",children:(0,g.jsx)("p",{className:"text-xs text-[var(--sc-text-primary)] whitespace-pre-wrap leading-relaxed",children:a.reason})})]}),h.data?.explanation&&(0,g.jsx)(aY.LocalAiExplanationPanel,{explanation:h.data.explanation,actions:(d=function(a){if(!a)return null;let b=a.trim();return b.includes("/")&&/\.[A-Za-z0-9]{1,8}(?::\d+)?$/.test(b)?b:null}(a.source_identifier))?[{key:"open",label:"Open in editor",icon:(0,g.jsx)(a_.ExternalLink,{size:13}),variant:"outline",onClick:()=>{let a=(0,a$.buildEditorUrl)(d.replace(/:\d+$/,""),Number(d.match(/:(\d+)$/)?.[1])||void 0);a&&(window.location.href=a)}}]:[]}),h.error&&(0,g.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:h.error instanceof Error?h.error.message:"Local explanation failed"}),(0,g.jsxs)("div",{className:"flex gap-2 pt-2",children:[a.memory_id&&c&&(0,g.jsx)(aX,{variant:"default",size:"sm",onClick:()=>c(a.memory_id),className:"flex-1 bg-blue-600 hover:bg-blue-700",children:"View Memory"}),(0,g.jsxs)(aX,{variant:"outline",size:"sm",onClick:o,disabled:h.isPending,className:`flex-1 border-[var(--sc-border)] text-[var(--sc-text-primary)] hover:text-white ${h.isPending?"glow-cyan-pulse":""}`,children:[h.isPending?(0,g.jsx)(K.Loader2,{size:13,className:"mr-1 animate-spin"}):(0,g.jsx)(aq.Sparkles,{size:13,className:"mr-1"}),"Explain"]}),(0,g.jsx)(aX,{variant:"outline",size:"sm",onClick:n,className:`flex-1 border-[var(--sc-border)] transition-all ${e?"bg-[var(--sc-cyan)]/20 text-[var(--sc-cyan)] border-[var(--sc-cyan)]/50":"text-[var(--sc-text-primary)] hover:text-white"}`,children:e?"Copied":"Copy JSON"})]})]})]})}let a6={ALLOW:"safe",BLOCK:"critical",QUARANTINE:"medium"};function a7(){let{projectFilter:a,selectedAuditEntry:b,setSelectedAuditEntry:c}=(0,ao.useDashboardStore)(),[d,e]=(0,i.useState)("24h"),[f,h]=(0,i.useState)(void 0),[j,k]=(0,i.useState)(void 0),l={"24h":24,"7d":168,"30d":720},[m,n]=(0,i.useState)(()=>Date.now());(0,i.useEffect)(()=>{n(Date.now())},[d]);let o=(0,i.useMemo)(()=>new Date(6e4*Math.floor((m-36e5*l[d])/6e4)).toISOString(),[m,d]),{data:p,isLoading:q}=(0,G.useAuditLogs)({startTime:o,source:f,firewallResult:j,project:a||void 0,limit:200}),r=(0,i.useMemo)(()=>p?.logs??[],[p?.logs]),s=r.filter(a=>"BLOCK"===a.firewall_result).length,t=r.filter(a=>"QUARANTINE"===a.firewall_result).length,u=r.filter(a=>"ALLOW"===a.firewall_result).length,v=(0,i.useCallback)(a=>{if(!b||0===r.length)return;let d=r.findIndex(a=>a.id===b.id);"Escape"===a.key?c(null):"ArrowDown"===a.key&&d<r.length-1?(a.preventDefault(),c(r[d+1])):"ArrowUp"===a.key&&d>0&&(a.preventDefault(),c(r[d-1]))},[b,r,c]);return(0,i.useEffect)(()=>(window.addEventListener("keydown",v),()=>window.removeEventListener("keydown",v)),[v]),(0,g.jsxs)("div",{className:"space-y-6",children:[(0,g.jsx)(aA.GlassCard,{title:"audit.filter",statusLine:`window=${d} \xb7 entries=${r.length} \xb7 allow=${u} \xb7 block=${s} \xb7 quarantine=${t}`,children:(0,g.jsxs)("div",{className:"flex flex-wrap items-center gap-3 font-mono text-xs",children:[(0,g.jsx)("span",{className:"text-[var(--term-text-muted)]",children:"range"}),(0,g.jsx)("span",{className:"text-[var(--term-text-muted)]","aria-hidden":!0,children:"="}),(0,g.jsx)("div",{className:"flex gap-1",children:["24h","7d","30d"].map(a=>(0,g.jsxs)("button",{type:"button",onClick:()=>e(a),className:`px-2 py-0.5 transition-colors ${d===a?"text-[var(--term-electric-fg)]":"text-[var(--term-text-muted)] hover:text-[var(--term-text)]"}`,children:["[",a,"]"]},a))}),(0,g.jsx)("span",{className:"text-[var(--term-text-muted)] ml-3",children:"result"}),(0,g.jsx)("span",{className:"text-[var(--term-text-muted)]","aria-hidden":!0,children:"="}),(0,g.jsxs)("select",{"aria-label":"Filter by firewall result",value:j||"",onChange:a=>k(a.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,g.jsx)("option",{value:"",children:"*"}),(0,g.jsx)("option",{value:"ALLOW",children:"ALLOW"}),(0,g.jsx)("option",{value:"BLOCK",children:"BLOCK"}),(0,g.jsx)("option",{value:"QUARANTINE",children:"QUARANTINE"})]}),(0,g.jsx)("span",{className:"text-[var(--term-text-muted)] ml-3",children:"source"}),(0,g.jsx)("span",{className:"text-[var(--term-text-muted)]","aria-hidden":!0,children:"="}),(0,g.jsxs)("select",{"aria-label":"Filter by source",value:f||"",onChange:a=>h(a.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,g.jsx)("option",{value:"",children:"*"}),(0,g.jsx)("option",{value:"hook",children:"hook"}),(0,g.jsx)("option",{value:"api",children:"api"}),(0,g.jsx)("option",{value:"agent",children:"agent"}),(0,g.jsx)("option",{value:"user",children:"user"}),(0,g.jsx)("option",{value:"cli",children:"cli"})]}),(0,g.jsx)("button",{type:"button",onClick:()=>c(null),className:"ml-auto text-[var(--term-text-muted)] hover:text-[var(--term-text)]",children:"[clear]"})]})}),(0,g.jsxs)("div",{className:`grid gap-6 ${b?"xl:grid-cols-[minmax(0,1.35fr)_360px]":""}`,children:[(0,g.jsx)(aA.GlassCard,{title:"audit.log",bodyPadding:!1,statusLine:q?"loading…":`${r.length} entr${1===r.length?"y":"ies"}`,children:q?(0,g.jsx)("div",{className:"flex items-center justify-center h-32 font-mono",children:(0,g.jsx)("div",{className:"text-xs text-[var(--term-text-muted)] animate-pulse",children:"$ tail -f audit.log…"})}):0===r.length?(0,g.jsx)("div",{className:"flex items-center justify-center h-32 font-mono",children:(0,g.jsx)("div",{className:"text-xs text-[var(--term-text-muted)]",children:"# no audit entries for this period"})}):(0,g.jsx)("div",{className:"overflow-x-auto font-mono",children:(0,g.jsxs)("table",{className:"w-full text-xs",children:[(0,g.jsx)("thead",{className:"bg-[var(--term-surface-2)] sticky top-0",children:(0,g.jsxs)("tr",{className:"border-b border-[var(--term-border)]",children:[(0,g.jsx)("th",{className:"text-left text-[var(--term-text-muted)] font-normal px-3 py-2 uppercase tracking-wider text-[10px]",children:"timestamp"}),(0,g.jsx)("th",{className:"text-left text-[var(--term-text-muted)] font-normal px-3 py-2 uppercase tracking-wider text-[10px]",children:"result"}),(0,g.jsx)("th",{className:"text-left text-[var(--term-text-muted)] font-normal px-3 py-2 uppercase tracking-wider text-[10px]",children:"source"}),(0,g.jsx)("th",{className:"text-right text-[var(--term-text-muted)] font-normal px-3 py-2 uppercase tracking-wider text-[10px]",children:"trust"}),(0,g.jsx)("th",{className:"text-right text-[var(--term-text-muted)] font-normal px-3 py-2 uppercase tracking-wider text-[10px]",children:"anomaly"}),(0,g.jsx)("th",{className:"text-left text-[var(--term-text-muted)] font-normal px-3 py-2 uppercase tracking-wider text-[10px]",children:"reason"})]})}),(0,g.jsx)("tbody",{children:r.map(a=>{let d=a6[a.firewall_result]??(0,aB.riskVariant)("INFO"),e=b?.id===a.id;return(0,g.jsxs)("tr",{onClick:()=>{c(b?.id===a.id?null:a)},className:`border-b border-[var(--term-border)] cursor-pointer transition-colors ${e?"bg-[var(--term-surface-2)]":"hover:bg-[var(--term-surface-2)]"}`,children:[(0,g.jsx)("td",{className:"px-3 py-1.5 text-[var(--term-text-muted)] whitespace-nowrap tabular-nums",children:new Date(a.timestamp).toISOString().replace("T"," ").replace(/\.\d+Z$/,"Z")}),(0,g.jsx)("td",{className:"px-3 py-1.5 whitespace-nowrap",children:(0,g.jsx)(aB.Badge,{variant:d,children:a.firewall_result})}),(0,g.jsx)("td",{className:"px-3 py-1.5 text-[var(--term-text)]",children:a.source_type}),(0,g.jsx)("td",{className:"px-3 py-1.5 text-right text-[var(--term-text-dim)] tabular-nums",children:a.trust_score.toFixed(1)}),(0,g.jsx)("td",{className:"px-3 py-1.5 text-right tabular-nums",children:(0,g.jsx)("span",{className:a.anomaly_score>.5?"text-[var(--term-danger)]":a.anomaly_score>.2?"text-[var(--term-warn)]":"text-[var(--term-text-muted)]",children:a.anomaly_score.toFixed(2)})}),(0,g.jsx)("td",{className:"px-3 py-1.5 text-[var(--term-text-dim)] max-w-xs truncate",children:a.reason||"—"})]},a.id)})})]})})}),b&&(0,g.jsx)("div",{className:"xl:sticky xl:top-6 self-start",children:(0,g.jsx)(a5,{entry:b,onClose:()=>c(null)})})]}),(0,g.jsxs)("details",{className:"glass-card p-5",children:[(0,g.jsxs)("summary",{className:"cursor-pointer list-none font-mono text-sm text-[var(--term-text)]",children:[(0,g.jsx)("span",{className:"text-[var(--term-electric-fg)]",children:"$"})," shieldcortex audit export"]}),(0,g.jsx)("div",{className:"mt-4",children:(0,g.jsx)(aH,{})})]})]})}let a8={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 a9(){let{projectFilter:a,selectedAuditEntry:b,setSelectedAuditEntry:c}=(0,ao.useDashboardStore)(),[d,e]=(0,i.useState)("24h"),[f,h]=(0,i.useState)(void 0),[j,k]=(0,i.useState)(void 0),l={"24h":24,"7d":168,"30d":720},[m,n]=(0,i.useState)(()=>Date.now());(0,i.useEffect)(()=>{n(Date.now())},[d]);let o=(0,i.useMemo)(()=>new Date(6e4*Math.floor((m-36e5*l[d])/6e4)).toISOString(),[m,d]),{data:p,isLoading:q}=(0,G.useAuditLogs)({startTime:o,source:f,firewallResult:j,project:a||void 0,limit:200}),r=(0,i.useMemo)(()=>p?.logs??[],[p?.logs]),s=r.filter(a=>"BLOCK"===a.firewall_result).length,t=r.filter(a=>"QUARANTINE"===a.firewall_result).length,u=r.filter(a=>"ALLOW"===a.firewall_result).length,v=(0,i.useCallback)(a=>{if(!b||0===r.length)return;let d=r.findIndex(a=>a.id===b.id);"Escape"===a.key?c(null):"ArrowDown"===a.key&&d<r.length-1?(a.preventDefault(),c(r[d+1])):"ArrowUp"===a.key&&d>0&&(a.preventDefault(),c(r[d-1]))},[b,r,c]);return(0,i.useEffect)(()=>(window.addEventListener("keydown",v),()=>window.removeEventListener("keydown",v)),[v]),(0,g.jsxs)("div",{className:"space-y-6",children:[(0,g.jsxs)("div",{className:"glass-card-strong p-5",children:[(0,g.jsx)("div",{className:"flex flex-col gap-4 xl:flex-row xl:items-start xl:justify-between mb-3",children:(0,g.jsx)("div",{className:"flex gap-1 bg-[var(--sc-bg-elevated)] rounded-lg p-0.5 ml-auto",children:["24h","7d","30d"].map(a=>(0,g.jsx)("button",{onClick:()=>e(a),className:`px-3 py-1 text-xs rounded-md transition-colors ${d===a?"bg-[var(--sc-cyan)] text-[var(--sc-text-primary)]":"text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)]"}`,children:a},a))})}),(0,g.jsxs)("div",{className:"mb-4 grid gap-3 md:grid-cols-4",children:[(0,g.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)] p-3",children:[(0,g.jsx)("div",{className:"text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Entries"}),(0,g.jsx)("div",{className:"mt-1 text-xl font-semibold text-[var(--sc-text-primary)]",children:r.length})]}),(0,g.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)] p-3",children:[(0,g.jsx)("div",{className:"text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Allowed"}),(0,g.jsx)("div",{className:"mt-1 text-xl font-semibold text-[var(--sc-cyan)]",children:u})]}),(0,g.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)] p-3",children:[(0,g.jsx)("div",{className:"text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Blocked"}),(0,g.jsx)("div",{className:"mt-1 text-xl font-semibold text-[var(--sc-coral)]",children:s})]}),(0,g.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)] p-3",children:[(0,g.jsx)("div",{className:"text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Quarantined"}),(0,g.jsx)("div",{className:"mt-1 text-xl font-semibold text-[var(--sc-amber)]",children:t})]})]}),(0,g.jsxs)("div",{className:"flex gap-2 flex-wrap",children:[(0,g.jsxs)("select",{value:j||"",onChange:a=>k(a.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,g.jsx)("option",{value:"",children:"All Results"}),(0,g.jsx)("option",{value:"ALLOW",children:"Allowed"}),(0,g.jsx)("option",{value:"BLOCK",children:"Blocked"}),(0,g.jsx)("option",{value:"QUARANTINE",children:"Quarantined"})]}),(0,g.jsxs)("select",{value:f||"",onChange:a=>h(a.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,g.jsx)("option",{value:"",children:"All Sources"}),(0,g.jsx)("option",{value:"hook",children:"Hook"}),(0,g.jsx)("option",{value:"api",children:"API"}),(0,g.jsx)("option",{value:"agent",children:"Agent"}),(0,g.jsx)("option",{value:"user",children:"User"}),(0,g.jsx)("option",{value:"cli",children:"CLI"})]}),(0,g.jsx)("button",{onClick:()=>c(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,g.jsxs)("div",{className:`grid gap-6 ${b?"xl:grid-cols-[minmax(0,1.35fr)_360px]":""}`,children:[(0,g.jsx)("div",{className:"glass-card overflow-hidden",children:q?(0,g.jsx)("div",{className:"flex items-center justify-center h-32",children:(0,g.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)] animate-pulse",children:"Loading audit logs..."})}):0===r.length?(0,g.jsx)("div",{className:"flex items-center justify-center h-32",children:(0,g.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)]",children:"No audit entries for this period"})}):(0,g.jsx)("div",{className:"overflow-x-auto",children:(0,g.jsxs)("table",{className:"w-full text-xs",children:[(0,g.jsx)("thead",{className:"bg-[var(--sc-bg-deep)]",children:(0,g.jsxs)("tr",{className:"border-b border-[var(--sc-border)]",children:[(0,g.jsx)("th",{className:"text-left text-[var(--sc-text-muted)] font-medium px-4 py-2",children:"Time"}),(0,g.jsx)("th",{className:"text-left text-[var(--sc-text-muted)] font-medium px-4 py-2",children:"Source"}),(0,g.jsx)("th",{className:"text-left text-[var(--sc-text-muted)] font-medium px-4 py-2",children:"Result"}),(0,g.jsx)("th",{className:"text-left text-[var(--sc-text-muted)] font-medium px-4 py-2",children:"Trust"}),(0,g.jsx)("th",{className:"text-left text-[var(--sc-text-muted)] font-medium px-4 py-2",children:"Anomaly"}),(0,g.jsx)("th",{className:"text-left text-[var(--sc-text-muted)] font-medium px-4 py-2",children:"Reason"})]})}),(0,g.jsx)("tbody",{children:r.map(a=>(0,g.jsxs)("tr",{onClick:()=>{c(b?.id===a.id?null:a)},className:`border-b border-[var(--sc-border)] cursor-pointer transition-colors ${b?.id===a.id?"bg-[var(--sc-cyan)]/10 hover:bg-[var(--sc-cyan)]/15":"hover:bg-[var(--sc-surface-interactive)]"}`,children:[(0,g.jsx)("td",{className:"px-4 py-2 text-[var(--sc-text-secondary)] whitespace-nowrap",children:new Date(a.timestamp).toLocaleString()}),(0,g.jsx)("td",{className:"px-4 py-2 text-[var(--sc-text-primary)]",children:a.source_type}),(0,g.jsx)("td",{className:"px-4 py-2",children:(0,g.jsx)("span",{className:`px-1.5 py-0.5 rounded text-[10px] font-medium ${a8[a.firewall_result]||"text-[var(--sc-text-secondary)]"}`,children:a.firewall_result})}),(0,g.jsx)("td",{className:"px-4 py-2 text-[var(--sc-text-secondary)]",children:a.trust_score.toFixed(1)}),(0,g.jsx)("td",{className:"px-4 py-2",children:(0,g.jsx)("span",{className:a.anomaly_score>.5?"text-[var(--sc-coral)]":a.anomaly_score>.2?"text-[var(--sc-amber)]":"text-[var(--sc-text-secondary)]",children:a.anomaly_score.toFixed(2)})}),(0,g.jsx)("td",{className:"px-4 py-2 text-[var(--sc-text-secondary)] max-w-xs truncate",children:a.reason||"—"})]},a.id))})]})})}),b&&(0,g.jsx)("div",{className:"xl:sticky xl:top-6 self-start",children:(0,g.jsx)(a5,{entry:b,onClose:()=>c(null)})})]}),(0,g.jsxs)("details",{className:"glass-card p-6",children:[(0,g.jsx)("summary",{className:"cursor-pointer list-none text-sm font-medium text-[var(--sc-text-primary)]",children:"Export audit trail"}),(0,g.jsx)("div",{className:"mt-4",children:(0,g.jsx)(aH,{})})]})]})}function ba(){return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)("div",{className:"contents theme-glass:hidden",children:(0,g.jsx)(a7,{})}),(0,g.jsx)("div",{className:"hidden theme-glass:contents",children:(0,g.jsx)(a9,{})})]})}var bb=a.i(88904),bc=a.i(77115);let bd={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)]"},be={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 bf(){let[a,b]=(0,i.useState)(""),[c,d]=(0,i.useState)(""),[e,f]=(0,i.useState)(""),{data:h,isLoading:j}=J({limit:100,severity:a||void 0,outcome:c||void 0,tool:e||void 0}),l=h?.entries??[],m=h?.summary,n=(0,i.useMemo)(()=>(m?.topTools??[]).map(a=>a.tool),[m?.topTools]);return(0,g.jsxs)("div",{className:"space-y-6",children:[(0,g.jsxs)("div",{className:"glass-card p-6",children:[(0,g.jsxs)("div",{className:"grid gap-3 md:grid-cols-4",children:[(0,g.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4",children:[(0,g.jsxs)("div",{className:"flex items-center gap-2 text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:[(0,g.jsx)(bb.Activity,{size:12}),"Total"]}),(0,g.jsx)("div",{className:"mt-2 text-xl font-semibold text-[var(--sc-text-primary)]",children:m?.total??0})]}),(0,g.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4",children:[(0,g.jsxs)("div",{className:"flex items-center gap-2 text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:[(0,g.jsx)(M.CheckCircle2,{size:12}),"Approved"]}),(0,g.jsx)("div",{className:"mt-2 text-xl font-semibold text-[var(--sc-cyan)]",children:m?.approved??0})]}),(0,g.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4",children:[(0,g.jsxs)("div",{className:"flex items-center gap-2 text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:[(0,g.jsx)(k.AlertTriangle,{size:12}),"Denied"]}),(0,g.jsx)("div",{className:"mt-2 text-xl font-semibold text-[var(--sc-amber)]",children:m?.denied??0})]}),(0,g.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4",children:[(0,g.jsxs)("div",{className:"flex items-center gap-2 text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:[(0,g.jsx)(o.ShieldAlert,{size:12}),"Failures"]}),(0,g.jsx)("div",{className:"mt-2 text-xl font-semibold text-[var(--sc-coral)]",children:m?.failures??0})]})]}),(0,g.jsxs)("div",{className:"mt-4 flex flex-wrap gap-2",children:[(0,g.jsxs)("select",{value:a,onChange:a=>b(a.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,g.jsx)("option",{value:"",children:"All severities"}),(0,g.jsx)("option",{value:"critical",children:"Critical"}),(0,g.jsx)("option",{value:"high",children:"High"}),(0,g.jsx)("option",{value:"medium",children:"Medium"}),(0,g.jsx)("option",{value:"low",children:"Low"})]}),(0,g.jsxs)("select",{value:c,onChange:a=>d(a.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,g.jsx)("option",{value:"",children:"All outcomes"}),(0,g.jsx)("option",{value:"approved",children:"Approved"}),(0,g.jsx)("option",{value:"denied",children:"Denied"}),(0,g.jsx)("option",{value:"auto_denied",children:"Auto denied"}),(0,g.jsx)("option",{value:"warned",children:"Warned"}),(0,g.jsx)("option",{value:"logged",children:"Logged"}),(0,g.jsx)("option",{value:"failure_allowed",children:"Failure allowed"}),(0,g.jsx)("option",{value:"failure_denied",children:"Failure denied"})]}),(0,g.jsxs)("select",{value:e,onChange:a=>f(a.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,g.jsx)("option",{value:"",children:"Top tools"}),n.map(a=>(0,g.jsx)("option",{value:a,children:a},a))]})]})]}),(0,g.jsx)("div",{className:"glass-card-strong p-5 overflow-hidden",children:j?(0,g.jsx)("div",{className:"flex h-32 items-center justify-center text-sm text-[var(--sc-text-secondary)]",children:"Loading interceptor events…"}):0===l.length?(0,g.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,g.jsx)("div",{className:"divide-y divide-[var(--sc-border)]",children:l.map((a,b)=>(0,g.jsxs)("div",{className:"grid gap-4 px-5 py-4 lg:grid-cols-[220px_minmax(0,1fr)_220px]",children:[(0,g.jsxs)("div",{className:"space-y-2",children:[(0,g.jsxs)("div",{className:"flex items-center gap-2 text-xs text-[var(--sc-text-muted)]",children:[(0,g.jsx)(bc.Clock3,{size:12}),new Date(a.ts).toLocaleString()]}),(0,g.jsx)("div",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:a.tool}),(0,g.jsx)("div",{className:`inline-flex rounded-full border px-2.5 py-1 text-[11px] ${bd[a.severity]??bd.low}`,children:a.severity.toUpperCase()})]}),(0,g.jsxs)("div",{className:"min-w-0",children:[(0,g.jsx)("div",{className:"text-xs uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Preview"}),(0,g.jsx)("p",{className:"mt-2 line-clamp-4 text-sm leading-6 text-[var(--sc-text-primary)]",children:a.preview||"No preview captured."}),(0,g.jsxs)("div",{className:"mt-3 flex flex-wrap gap-2",children:[(a.threats??[]).map(a=>(0,g.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:a},a)),(!a.threats||0===a.threats.length)&&(0,g.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,g.jsxs)("div",{className:"space-y-3",children:[(0,g.jsxs)("div",{children:[(0,g.jsx)("div",{className:"text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Outcome"}),(0,g.jsx)("div",{className:`mt-1 inline-flex rounded-full px-2.5 py-1 text-[11px] ${be[a.outcome]??be.logged}`,children:a.outcome.replace(/_/g," ")})]}),(0,g.jsxs)("div",{children:[(0,g.jsx)("div",{className:"text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Firewall"}),(0,g.jsx)("div",{className:"mt-1 text-sm text-[var(--sc-text-primary)]",children:a.firewallResult})]}),(0,g.jsxs)("div",{children:[(0,g.jsx)("div",{className:"text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Action"}),(0,g.jsx)("div",{className:"mt-1 text-sm text-[var(--sc-text-primary)]",children:a.action})]}),(0,g.jsxs)("div",{children:[(0,g.jsx)("div",{className:"text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Anomaly score"}),(0,g.jsx)("div",{className:"mt-1 text-sm text-[var(--sc-text-primary)]",children:a.anomalyScore.toFixed(2)})]})]})]},`${a.ts}-${a.tool}-${b}`))})})]})}let bg=(0,l.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"}]]),bh=(0,l.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"}]]),bi=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";function bj(){let a,b,c,d,{data:e,isLoading:f,isLocked:h}={...a=(0,r.useQuery)({queryKey:["firewall-rules"],queryFn:()=>(0,u.gatedFetch)(`${bi}/api/firewall-rules`).then(a=>{if(!a.ok)throw Error("Failed to fetch firewall rules");return a.json()}),retry:(a,b)=>!(b instanceof u.FeatureLockedError)&&a<2,refetchInterval:3e4}),isLocked:a.error instanceof u.FeatureLockedError},j=(b=(0,t.useQueryClient)(),(0,s.useMutation)({mutationFn:a=>(0,u.gatedFetch)(`${bi}/api/firewall-rules`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}).then(a=>a.ok?a.json():a.json().then(a=>{throw Error(a.error)})),onSuccess:()=>{b.invalidateQueries({queryKey:["firewall-rules"]})}})),k=(c=(0,t.useQueryClient)(),(0,s.useMutation)({mutationFn:({id:a,...b})=>(0,u.gatedFetch)(`${bi}/api/firewall-rules/${a}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)}).then(a=>a.ok?a.json():a.json().then(a=>{throw Error(a.error)})),onSuccess:()=>{c.invalidateQueries({queryKey:["firewall-rules"]})}})),l=(d=(0,t.useQueryClient)(),(0,s.useMutation)({mutationFn:a=>(0,u.gatedFetch)(`${bi}/api/firewall-rules/${a}`,{method:"DELETE"}).then(a=>a.ok?a.json():a.json().then(a=>{throw Error(a.error)})),onSuccess:()=>{d.invalidateQueries({queryKey:["firewall-rules"]})}})),[m,o]=(0,i.useState)(!1),[p,q]=(0,i.useState)({name:"",priority:100,condition_type:"regex",condition_value:"",action:"block"}),v=e?.rules??[];return h?(0,g.jsx)(bk,{}):(0,g.jsxs)("div",{className:"space-y-3",children:[(0,g.jsxs)("div",{className:"flex items-center justify-between",children:[(0,g.jsxs)("div",{className:"flex items-center gap-2",children:[(0,g.jsx)(n.Shield,{size:16,className:"text-[var(--sc-cyan)]"}),(0,g.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Custom Firewall Rules"}),(0,g.jsxs)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:[v.length,"/25"]})]}),(0,g.jsxs)("button",{onClick:()=>o(!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,g.jsx)(W,{size:12})," Add Rule"]})]}),m&&(0,g.jsxs)("form",{onSubmit:a=>{a.preventDefault(),j.mutate(p,{onSuccess:()=>{o(!1),q({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,g.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,g.jsx)("input",{value:p.name,onChange:a=>q(b=>({...b,name:a.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,g.jsx)("input",{value:p.priority,onChange:a=>q(b=>({...b,priority:Number(a.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,g.jsxs)("div",{className:"grid grid-cols-3 gap-2",children:[(0,g.jsxs)("select",{value:p.condition_type,onChange:a=>q(b=>({...b,condition_type:a.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,g.jsx)("option",{value:"regex",children:"Regex"}),(0,g.jsx)("option",{value:"source",children:"Source"}),(0,g.jsx)("option",{value:"keyword",children:"Keyword"})]}),(0,g.jsx)("input",{value:p.condition_value,onChange:a=>q(b=>({...b,condition_value:a.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,g.jsxs)("select",{value:p.action,onChange:a=>q(b=>({...b,action:a.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,g.jsx)("option",{value:"block",children:"Block"}),(0,g.jsx)("option",{value:"quarantine",children:"Quarantine"}),(0,g.jsx)("option",{value:"allow",children:"Allow"})]})]}),(0,g.jsxs)("div",{className:"flex gap-2",children:[(0,g.jsx)("button",{type:"submit",disabled:j.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:j.isPending?"Creating...":"Create"}),(0,g.jsx)("button",{type:"button",onClick:()=>o(!1),className:"px-3 py-1 text-xs text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)]",children:"Cancel"})]}),j.error&&(0,g.jsx)("p",{className:"text-xs text-[var(--sc-coral)]",children:j.error.message})]}),f?(0,g.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)] py-4 text-center",children:"Loading rules..."}):0===v.length?(0,g.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,g.jsx)("div",{className:"space-y-1",children:v.map(a=>(0,g.jsxs)("div",{className:"flex items-center gap-3 px-3 py-2 bg-[var(--sc-bg-elevated)]/30 rounded text-xs",children:[(0,g.jsx)("span",{className:"text-[var(--sc-text-secondary)] w-6 text-right",children:a.priority}),(0,g.jsx)("span",{className:"text-[var(--sc-text-primary)] flex-1",children:a.name}),(0,g.jsx)("code",{className:"text-[var(--sc-text-muted)] text-[10px] max-w-[120px] truncate",children:a.condition_value}),(0,g.jsx)("span",{className:`px-1.5 py-0.5 rounded text-[10px] font-medium ${"block"===a.action?"bg-[var(--sc-coral)]/20 text-[var(--sc-coral)]":"quarantine"===a.action?"bg-[var(--sc-amber)]/20 text-[var(--sc-amber)]":"bg-[var(--sc-cyan)]/20 text-[var(--sc-cyan)]"}`,children:a.action}),(0,g.jsx)("button",{onClick:()=>k.mutate({id:a.id,enabled:+!a.enabled}),className:"text-[var(--sc-text-muted)] hover:text-[var(--sc-text-primary)]",title:a.enabled?"Disable":"Enable",children:a.enabled?(0,g.jsx)(bh,{size:14,className:"text-[var(--sc-cyan)]"}):(0,g.jsx)(bg,{size:14})}),(0,g.jsx)("button",{onClick:()=>l.mutate(a.id),className:"text-[var(--sc-text-muted)] hover:text-[var(--sc-coral)]",children:(0,g.jsx)(X.Trash2,{size:12})})]},a.id))})]})}function bk(){return(0,g.jsxs)("div",{className:"space-y-3",children:[(0,g.jsxs)("div",{className:"flex items-center gap-2",children:[(0,g.jsx)(n.Shield,{size:16,className:"text-[var(--sc-cyan)]"}),(0,g.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Custom Firewall Rules"}),(0,g.jsx)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:"0/25"})]}),(0,g.jsx)("div",{className:"space-y-1",children:$.map(a=>(0,g.jsxs)("div",{className:"flex items-center gap-3 px-3 py-2 bg-[var(--sc-bg-elevated)]/30 rounded text-xs",children:[(0,g.jsx)("span",{className:"text-[var(--sc-text-secondary)] w-6 text-right",children:a.priority}),(0,g.jsx)("span",{className:"text-[var(--sc-text-primary)] flex-1",children:a.name}),(0,g.jsx)("code",{className:"text-[var(--sc-text-muted)] text-[10px] max-w-[120px] truncate",children:a.condition_value}),(0,g.jsx)("span",{className:`px-1.5 py-0.5 rounded text-[10px] font-medium ${"block"===a.action?"bg-[var(--sc-coral)]/20 text-[var(--sc-coral)]":"quarantine"===a.action?"bg-[var(--sc-amber)]/20 text-[var(--sc-amber)]":"bg-[var(--sc-cyan)]/20 text-[var(--sc-cyan)]"}`,children:a.action})]},a.id))})]})}function bl(){return(0,g.jsx)("div",{className:"bg-[var(--sc-bg-surface)]/50 border border-[var(--sc-border)] rounded-xl p-4",children:(0,g.jsx)(Y.ProFeatureGate,{feature:"custom_firewall_rules",label:"Add custom rules to control what gets blocked, allowed, or quarantined.",children:(0,g.jsx)(bj,{})})})}function bm(){return(0,g.jsx)("div",{className:"h-full overflow-y-auto bg-[var(--sc-bg-deep)]",children:(0,g.jsxs)("div",{className:"mx-auto max-w-7xl space-y-6 p-6",children:[(0,g.jsxs)("section",{className:"rounded-2xl border border-[var(--sc-border)] bg-[var(--sc-bg-surface)]/70 p-6",children:[(0,g.jsx)("div",{className:"text-[11px] uppercase tracking-[0.2em] text-[var(--sc-cyan)]",children:"Protection / Policies"}),(0,g.jsx)("h2",{className:"mt-3 text-3xl font-semibold text-[var(--sc-text-primary)]",children:"Policy management"}),(0,g.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,g.jsxs)("div",{className:"grid gap-6 xl:grid-cols-2",children:[(0,g.jsx)(bl,{}),(0,g.jsx)(ai,{})]})]})})}function bn(){let a=(0,h.useSearchParams)().get("tab"),b=a&&["dome","quarantine","audit","intercepts","policies"].includes(a)?a:null,[c,d]=(0,i.useState)("dome"),e=b??c,{data:f}=F(),{data:j}=(0,G.useAuditStats)("24h"),{data:l}=(0,G.useQuarantine)("pending",10),{data:r}=J({limit:25}),s=[{id:"dome",label:"Iron Dome",icon:(0,g.jsx)(o.ShieldAlert,{size:14})},{id:"quarantine",label:"Quarantine",count:l?.total??0},{id:"audit",label:"Audit"},{id:"intercepts",label:"Intercepts",count:r?.summary?.total??0},{id:"policies",label:"Policies",locked:!1}];return(0,g.jsx)("div",{className:"h-full overflow-y-auto",children:(0,g.jsxs)("div",{className:"mx-auto max-w-7xl space-y-6 p-6",children:[(0,g.jsx)(q.PageHeader,{eyebrow:"Defence",title:"Protection",subtitle:"Active controls, review queues, and operator policy tuning.",tabs:s,activeTab:e,onTabChange:a=>d(a)}),(0,g.jsxs)("div",{className:"grid grid-cols-2 gap-4 lg:grid-cols-4",children:[(0,g.jsx)(p.StatCard,{label:"Iron Dome",value:f?.enabled?"Active":"Inactive",icon:n.Shield,accent:f?.enabled?"cyan":"muted"}),(0,g.jsx)(p.StatCard,{label:"Blocked (24h)",value:j?.blockedCount??0,icon:o.ShieldAlert,accent:j?.blockedCount?"coral":"muted"}),(0,g.jsx)(p.StatCard,{label:"Quarantine",value:l?.total??0,icon:k.AlertTriangle,accent:l?.total?"amber":"muted"}),(0,g.jsx)(p.StatCard,{label:"Intercepts",value:r?.summary?.total??0,icon:m,accent:"cyan"})]}),(0,g.jsxs)("div",{children:["dome"===e&&(0,g.jsx)(an,{}),"quarantine"===e&&(0,g.jsx)(az,{}),"audit"===e&&(0,g.jsx)(ba,{}),"intercepts"===e&&(0,g.jsx)(bf,{}),"policies"===e&&(0,g.jsx)(bm,{})]})]})})}function bo(){return(0,g.jsx)(i.Suspense,{fallback:(0,g.jsx)(j.PageSkeleton,{}),children:(0,g.jsx)(bn,{})})}a.s(["ProtectionOverview",()=>bo],11221)}];
4
4