shieldcortex 4.12.11 → 4.12.12

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 (353) hide show
  1. package/dashboard/.next/standalone/dashboard/.next/BUILD_ID +1 -1
  2. package/dashboard/.next/standalone/dashboard/.next/build-manifest.json +2 -2
  3. package/dashboard/.next/standalone/dashboard/.next/prerender-manifest.json +3 -3
  4. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/admin/page.js.nft.json +1 -1
  5. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/admin/page_client-reference-manifest.js +1 -1
  6. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/cloud/page.js.nft.json +1 -1
  7. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/cloud/page_client-reference-manifest.js +1 -1
  8. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/capture/page.js.nft.json +1 -1
  9. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/capture/page_client-reference-manifest.js +1 -1
  10. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/graph/page.js.nft.json +1 -1
  11. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/graph/page_client-reference-manifest.js +1 -1
  12. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/page.js.nft.json +1 -1
  13. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/page_client-reference-manifest.js +1 -1
  14. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/recall/page.js.nft.json +1 -1
  15. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/recall/page_client-reference-manifest.js +1 -1
  16. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page.js.nft.json +1 -1
  17. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page_client-reference-manifest.js +1 -1
  18. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/timeline/page.js.nft.json +1 -1
  19. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/timeline/page_client-reference-manifest.js +1 -1
  20. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/overview/page.js.nft.json +1 -1
  21. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/overview/page_client-reference-manifest.js +1 -1
  22. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/audit/page.js.nft.json +1 -1
  23. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/audit/page_client-reference-manifest.js +1 -1
  24. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/intercepts/page.js.nft.json +1 -1
  25. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/intercepts/page_client-reference-manifest.js +1 -1
  26. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/iron-dome/page.js.nft.json +1 -1
  27. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/iron-dome/page_client-reference-manifest.js +1 -1
  28. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/page.js.nft.json +1 -1
  29. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/page_client-reference-manifest.js +1 -1
  30. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/policies/page.js.nft.json +1 -1
  31. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/policies/page_client-reference-manifest.js +1 -1
  32. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/quarantine/page.js.nft.json +1 -1
  33. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/quarantine/page_client-reference-manifest.js +1 -1
  34. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  35. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  36. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/page.js.nft.json +1 -1
  37. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/page_client-reference-manifest.js +1 -1
  38. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/xray/page.js.nft.json +1 -1
  39. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/xray/page_client-reference-manifest.js +1 -1
  40. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page.js.nft.json +1 -1
  41. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page_client-reference-manifest.js +1 -1
  42. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.html +2 -2
  43. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.rsc +1 -1
  44. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  45. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  46. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  47. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  48. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  49. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  50. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.html +1 -1
  51. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.rsc +2 -2
  52. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  53. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  54. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  55. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  56. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  57. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  58. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.html +1 -1
  59. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.rsc +6 -6
  60. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/!KGRhc2hib2FyZCk/admin/__PAGE__.segment.rsc +1 -1
  61. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/!KGRhc2hib2FyZCk/admin.segment.rsc +1 -1
  62. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  63. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_full.segment.rsc +6 -6
  64. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_head.segment.rsc +1 -1
  65. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_index.segment.rsc +2 -2
  66. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_tree.segment.rsc +2 -2
  67. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.html +1 -1
  68. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.rsc +6 -6
  69. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/!KGRhc2hib2FyZCk/cloud/__PAGE__.segment.rsc +1 -1
  70. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/!KGRhc2hib2FyZCk/cloud.segment.rsc +1 -1
  71. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  72. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_full.segment.rsc +6 -6
  73. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_head.segment.rsc +1 -1
  74. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_index.segment.rsc +2 -2
  75. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_tree.segment.rsc +2 -2
  76. package/dashboard/.next/standalone/dashboard/.next/server/app/index.html +1 -1
  77. package/dashboard/.next/standalone/dashboard/.next/server/app/index.rsc +2 -2
  78. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  79. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_full.segment.rsc +2 -2
  80. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_head.segment.rsc +1 -1
  81. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_index.segment.rsc +2 -2
  82. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  83. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.html +1 -1
  84. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.meta +1 -1
  85. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.rsc +7 -7
  86. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory/capture/__PAGE__.segment.rsc +2 -2
  87. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory/capture.segment.rsc +1 -1
  88. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  89. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  90. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_full.segment.rsc +7 -7
  91. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_head.segment.rsc +1 -1
  92. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_index.segment.rsc +2 -2
  93. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_tree.segment.rsc +2 -2
  94. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.html +1 -1
  95. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.rsc +6 -6
  96. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory/graph/__PAGE__.segment.rsc +1 -1
  97. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory/graph.segment.rsc +1 -1
  98. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  99. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  100. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_full.segment.rsc +6 -6
  101. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_head.segment.rsc +1 -1
  102. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_index.segment.rsc +2 -2
  103. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_tree.segment.rsc +2 -2
  104. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.html +1 -1
  105. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.rsc +6 -6
  106. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory/recall/__PAGE__.segment.rsc +1 -1
  107. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory/recall.segment.rsc +1 -1
  108. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  109. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  110. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_full.segment.rsc +6 -6
  111. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_head.segment.rsc +1 -1
  112. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_index.segment.rsc +2 -2
  113. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_tree.segment.rsc +2 -2
  114. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.html +1 -1
  115. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.rsc +6 -6
  116. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory/review/__PAGE__.segment.rsc +1 -1
  117. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory/review.segment.rsc +1 -1
  118. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  119. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  120. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_full.segment.rsc +6 -6
  121. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_head.segment.rsc +1 -1
  122. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_index.segment.rsc +2 -2
  123. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_tree.segment.rsc +2 -2
  124. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.html +1 -1
  125. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.rsc +6 -6
  126. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory/timeline/__PAGE__.segment.rsc +1 -1
  127. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory/timeline.segment.rsc +1 -1
  128. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  129. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  130. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_full.segment.rsc +6 -6
  131. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_head.segment.rsc +1 -1
  132. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_index.segment.rsc +2 -2
  133. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_tree.segment.rsc +2 -2
  134. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.html +1 -1
  135. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.rsc +7 -7
  136. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk/memory/__PAGE__.segment.rsc +2 -2
  137. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  138. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  139. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_full.segment.rsc +7 -7
  140. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_head.segment.rsc +1 -1
  141. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_index.segment.rsc +2 -2
  142. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_tree.segment.rsc +2 -2
  143. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.html +1 -1
  144. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.rsc +7 -7
  145. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk/overview/__PAGE__.segment.rsc +2 -2
  146. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk/overview.segment.rsc +1 -1
  147. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  148. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_full.segment.rsc +7 -7
  149. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_head.segment.rsc +1 -1
  150. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_index.segment.rsc +2 -2
  151. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_tree.segment.rsc +2 -2
  152. package/dashboard/.next/standalone/dashboard/.next/server/app/page_client-reference-manifest.js +1 -1
  153. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.html +1 -1
  154. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.rsc +6 -6
  155. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection/audit/__PAGE__.segment.rsc +1 -1
  156. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection/audit.segment.rsc +1 -1
  157. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  158. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  159. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_full.segment.rsc +6 -6
  160. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_head.segment.rsc +1 -1
  161. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_index.segment.rsc +2 -2
  162. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_tree.segment.rsc +2 -2
  163. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.html +1 -1
  164. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.rsc +6 -6
  165. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection/intercepts/__PAGE__.segment.rsc +1 -1
  166. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection/intercepts.segment.rsc +1 -1
  167. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  168. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  169. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_full.segment.rsc +6 -6
  170. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_head.segment.rsc +1 -1
  171. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_index.segment.rsc +2 -2
  172. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_tree.segment.rsc +2 -2
  173. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.html +1 -1
  174. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.rsc +6 -6
  175. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection/iron-dome/__PAGE__.segment.rsc +1 -1
  176. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection/iron-dome.segment.rsc +1 -1
  177. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  178. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  179. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_full.segment.rsc +6 -6
  180. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_head.segment.rsc +1 -1
  181. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_index.segment.rsc +2 -2
  182. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_tree.segment.rsc +2 -2
  183. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.html +1 -1
  184. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.rsc +6 -6
  185. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection/policies/__PAGE__.segment.rsc +1 -1
  186. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection/policies.segment.rsc +1 -1
  187. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  188. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  189. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_full.segment.rsc +6 -6
  190. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_head.segment.rsc +1 -1
  191. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_index.segment.rsc +2 -2
  192. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_tree.segment.rsc +2 -2
  193. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.html +1 -1
  194. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.rsc +6 -6
  195. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection/quarantine/__PAGE__.segment.rsc +1 -1
  196. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection/quarantine.segment.rsc +1 -1
  197. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  198. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  199. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_full.segment.rsc +6 -6
  200. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_head.segment.rsc +1 -1
  201. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_index.segment.rsc +2 -2
  202. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_tree.segment.rsc +2 -2
  203. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.html +1 -1
  204. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.rsc +7 -7
  205. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk/protection/__PAGE__.segment.rsc +2 -2
  206. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  207. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  208. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_full.segment.rsc +7 -7
  209. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_head.segment.rsc +1 -1
  210. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_index.segment.rsc +2 -2
  211. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_tree.segment.rsc +2 -2
  212. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.html +1 -1
  213. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.rsc +7 -7
  214. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings/__PAGE__.segment.rsc +2 -2
  215. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings.segment.rsc +1 -1
  216. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  217. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_full.segment.rsc +7 -7
  218. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  219. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  220. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  221. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.html +1 -1
  222. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.rsc +6 -6
  223. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain/xray/__PAGE__.segment.rsc +1 -1
  224. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain/xray.segment.rsc +1 -1
  225. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain.segment.rsc +1 -1
  226. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  227. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_full.segment.rsc +6 -6
  228. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_head.segment.rsc +1 -1
  229. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_index.segment.rsc +2 -2
  230. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_tree.segment.rsc +2 -2
  231. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.html +1 -1
  232. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.rsc +6 -6
  233. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk/supply-chain/__PAGE__.segment.rsc +1 -1
  234. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk/supply-chain.segment.rsc +1 -1
  235. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  236. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_full.segment.rsc +6 -6
  237. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_head.segment.rsc +1 -1
  238. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_index.segment.rsc +2 -2
  239. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_tree.segment.rsc +2 -2
  240. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.html +1 -1
  241. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.rsc +7 -7
  242. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk/xray/__PAGE__.segment.rsc +2 -2
  243. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk/xray.segment.rsc +1 -1
  244. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  245. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_full.segment.rsc +7 -7
  246. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_head.segment.rsc +1 -1
  247. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_index.segment.rsc +2 -2
  248. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_tree.segment.rsc +2 -2
  249. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__c2b92077._.js +3 -0
  250. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_01f6ceb0._.js +3 -0
  251. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_11878109._.js +3 -0
  252. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_1bfd1423._.js +1 -1
  253. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_35a9932a._.js +3 -0
  254. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_35c9f22e._.js +3 -0
  255. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_37f17371._.js +3 -0
  256. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_836b4a04._.js +3 -0
  257. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_9770c429._.js +3 -0
  258. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_9dd626ed._.js +3 -0
  259. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_c219bf07._.js +8 -2
  260. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_e94d2da2._.js +3 -0
  261. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/{dashboard_d5fc66fc._.js → dashboard_fefd3b85._.js} +2 -2
  262. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_components_protection_ProtectionOverview_tsx_54554a97._.js +3 -1
  263. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_components_xray_XRayOverview_tsx_ceba698e._.js +1 -1
  264. package/dashboard/.next/standalone/dashboard/.next/server/pages/404.html +1 -1
  265. package/dashboard/.next/standalone/dashboard/.next/server/pages/500.html +2 -2
  266. package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.js +1 -1
  267. package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.json +1 -1
  268. package/dashboard/.next/standalone/dashboard/.next/static/chunks/079a5be036130e37.js +1 -0
  269. package/dashboard/.next/standalone/dashboard/.next/static/chunks/1770a8ce7abb2437.js +1 -0
  270. package/dashboard/.next/standalone/dashboard/.next/static/chunks/1a074f8ddc7cd385.js +1 -0
  271. package/dashboard/.next/standalone/dashboard/.next/static/chunks/24da99d1341bd573.css +3 -0
  272. package/dashboard/.next/standalone/dashboard/.next/static/chunks/2aa8afb655c1c2e5.js +1 -0
  273. package/dashboard/.next/standalone/dashboard/.next/static/chunks/385ec610bad1acc5.js +1 -0
  274. package/dashboard/.next/standalone/dashboard/.next/static/chunks/3d53807a9a943ce7.js +15 -0
  275. package/dashboard/.next/standalone/dashboard/.next/static/chunks/4f57582c2d186438.js +1 -0
  276. package/dashboard/.next/standalone/dashboard/.next/static/chunks/7fca141efba9d353.js +1 -0
  277. package/dashboard/.next/standalone/dashboard/.next/static/chunks/8593e1796c9d043d.js +1 -0
  278. package/dashboard/.next/standalone/dashboard/.next/static/chunks/c288964c4c00982a.js +3 -0
  279. package/dist/api/routes/admin.js +295 -8
  280. package/dist/api/visualization-server.js +5 -0
  281. package/dist/audit/index.d.ts +2 -1
  282. package/dist/audit/index.js +1 -1
  283. package/dist/audit/memory-scanner.d.ts +66 -1
  284. package/dist/audit/memory-scanner.js +441 -28
  285. package/dist/cli/review-copilot.d.ts +1 -0
  286. package/dist/cli/review-copilot.js +197 -0
  287. package/dist/cloud/cli.js +3 -1
  288. package/dist/cloud/config.d.ts +17 -0
  289. package/dist/cloud/config.js +110 -25
  290. package/dist/database/init.js +37 -0
  291. package/dist/database/schema.sql +20 -0
  292. package/dist/defence/explainer/index.d.ts +5 -0
  293. package/dist/defence/explainer/index.js +28 -0
  294. package/dist/defence/explainer/prompt.d.ts +2 -0
  295. package/dist/defence/explainer/prompt.js +49 -0
  296. package/dist/defence/explainer/schema.d.ts +3 -0
  297. package/dist/defence/explainer/schema.js +204 -0
  298. package/dist/defence/explainer/types.d.ts +26 -0
  299. package/dist/defence/explainer/types.js +1 -0
  300. package/dist/defence/judge/annotate.d.ts +8 -0
  301. package/dist/defence/judge/annotate.js +107 -0
  302. package/dist/defence/judge/annotations-store.d.ts +4 -0
  303. package/dist/defence/judge/annotations-store.js +67 -0
  304. package/dist/defence/judge/decision.d.ts +10 -0
  305. package/dist/defence/judge/decision.js +165 -0
  306. package/dist/defence/judge/fallback.d.ts +4 -0
  307. package/dist/defence/judge/fallback.js +19 -0
  308. package/dist/defence/judge/grouping.d.ts +4 -0
  309. package/dist/defence/judge/grouping.js +52 -0
  310. package/dist/defence/judge/index.d.ts +9 -0
  311. package/dist/defence/judge/index.js +34 -0
  312. package/dist/defence/judge/prompt.d.ts +3 -0
  313. package/dist/defence/judge/prompt.js +49 -0
  314. package/dist/defence/judge/runner.d.ts +3 -0
  315. package/dist/defence/judge/runner.js +160 -0
  316. package/dist/defence/judge/schema.d.ts +15 -0
  317. package/dist/defence/judge/schema.js +118 -0
  318. package/dist/defence/judge/telemetry.d.ts +28 -0
  319. package/dist/defence/judge/telemetry.js +43 -0
  320. package/dist/defence/judge/types.d.ts +67 -0
  321. package/dist/defence/judge/types.js +1 -0
  322. package/dist/defence/judge/worker.d.ts +1 -0
  323. package/dist/defence/judge/worker.js +106 -0
  324. package/dist/defence/quarantine/review.js +16 -7
  325. package/dist/index.d.ts +1 -0
  326. package/dist/index.js +10 -1
  327. package/dist/lib.d.ts +9 -1
  328. package/dist/lib.js +7 -1
  329. package/dist/license/gate.d.ts +1 -1
  330. package/dist/license/gate.js +6 -0
  331. package/package.json +4 -1
  332. package/plugins/openclaw/dist/openclaw.plugin.json +1 -1
  333. package/scripts/ensure-bin-executable.mjs +17 -0
  334. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__4a575c8d._.js +0 -3
  335. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_0734b815._.js +0 -3
  336. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_21edaee1._.js +0 -3
  337. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_354daf70._.js +0 -3
  338. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_8481163e._.js +0 -3
  339. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_a3053031._.js +0 -3
  340. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_a38f5767._.js +0 -3
  341. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_f6813b70._.js +0 -3
  342. package/dashboard/.next/standalone/dashboard/.next/static/chunks/1482af194911d5e7.js +0 -1
  343. package/dashboard/.next/standalone/dashboard/.next/static/chunks/2c2a280eeaed7ed2.js +0 -1
  344. package/dashboard/.next/standalone/dashboard/.next/static/chunks/2f92786ac35bbdb9.js +0 -1
  345. package/dashboard/.next/standalone/dashboard/.next/static/chunks/90f35860c69b2f0b.js +0 -9
  346. package/dashboard/.next/standalone/dashboard/.next/static/chunks/915d5a8cf2d0807e.css +0 -3
  347. package/dashboard/.next/standalone/dashboard/.next/static/chunks/927fe0465516b94a.js +0 -1
  348. package/dashboard/.next/standalone/dashboard/.next/static/chunks/99a618b860658c5c.js +0 -1
  349. package/dashboard/.next/standalone/dashboard/.next/static/chunks/b31e08a78b0cb6fb.js +0 -1
  350. package/dashboard/.next/standalone/dashboard/.next/static/chunks/c2ccb1c0ed7b2af2.js +0 -1
  351. /package/dashboard/.next/standalone/dashboard/.next/static/{Azzglh6qPGDH5Kl8B76tx → 5HSptYF0HaABlloA3Hir3}/_buildManifest.js +0 -0
  352. /package/dashboard/.next/standalone/dashboard/.next/static/{Azzglh6qPGDH5Kl8B76tx → 5HSptYF0HaABlloA3Hir3}/_clientMiddlewareManifest.json +0 -0
  353. /package/dashboard/.next/standalone/dashboard/.next/static/{Azzglh6qPGDH5Kl8B76tx → 5HSptYF0HaABlloA3Hir3}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,27918,e=>{"use strict";var a=e.i(27493),t=e.i(4),s=e.i(45434),r=e.i(36062),i=e.i(71259),n=e.i(24929);let c=(0,n.default)("file-search",[["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"}],["circle",{cx:"11.5",cy:"14.5",r:"2.5",key:"1bq0ko"}],["path",{d:"M13.3 16.3 15 18",key:"2quom7"}]]),l=(0,n.default)("folder-search",[["path",{d:"M10.7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v4.1",key:"1bw5m7"}],["path",{d:"m21 21-1.9-1.9",key:"1g2n9r"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}]]);var d=e.i(66949);let o=(0,n.default)("radar",[["path",{d:"M19.07 4.93A10 10 0 0 0 6.99 3.34",key:"z3du51"}],["path",{d:"M4 6h.01",key:"oypzma"}],["path",{d:"M2.29 9.62A10 10 0 1 0 21.31 8.35",key:"qzzz0"}],["path",{d:"M16.24 7.76A6 6 0 1 0 8.23 16.67",key:"1yjesh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M17.99 11.66A6 6 0 0 1 15.77 16.67",key:"1u2y91"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"m13.41 10.59 5.66-5.66",key:"mhq4k0"}]]);var x=e.i(76344),m=e.i(48615),v=e.i(88969),h=e.i(94156),u=e.i(16467),p=e.i(95659),g=e.i(81523),y=e.i(40950),f=e.i(46194);function j({score:e,size:t=160,label:s}){let r=2*Math.PI*42,i=e/100*r,n=e<=50?"var(--sc-coral)":e<=75?"var(--sc-amber)":"var(--sc-cyan)",c=e<=50?"var(--sc-glow-coral)":e<=75?"rgba(245, 158, 11, 0.15)":"var(--sc-glow-cyan)";return(0,a.jsxs)("div",{className:"flex flex-col items-center gap-2",children:[(0,a.jsxs)("div",{className:"relative",style:{width:t,height:t},children:[(0,a.jsxs)("svg",{viewBox:"0 0 100 100",className:"h-full w-full -rotate-90",style:{filter:`drop-shadow(0 0 12px ${c})`},children:[(0,a.jsx)("circle",{cx:"50",cy:"50",r:42,fill:"none",stroke:"var(--sc-bg-elevated)",strokeWidth:"7"}),(0,a.jsx)("circle",{cx:"50",cy:"50",r:42,fill:"none",stroke:n,strokeWidth:"7",strokeDasharray:`${i} ${r}`,strokeLinecap:"round",className:"transition-all duration-1000 ease-out"})]}),(0,a.jsxs)("div",{className:"absolute inset-0 flex flex-col items-center justify-center",children:[(0,a.jsx)("span",{className:"text-3xl font-bold",style:{color:n},children:e}),(0,a.jsx)("span",{className:"text-[11px] text-[var(--sc-text-muted)]",children:"trust"})]})]}),s&&(0,a.jsx)("span",{className:"text-xs font-medium text-[var(--sc-text-secondary)]",children:s})]})}var b=e.i(16511);let N=(0,n.default)("eye-off",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);var k=e.i(27528),w=e.i(77744),S=e.i(22534),C=e.i(45688),B=e.i(71921),F=e.i(1235);let E=S.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";function $({findingId:e,status:s,hasFile:r,compact:n=!1}){let c,l,d,[o,x]=(0,t.useState)(!1),[h,u]=(0,t.useState)(""),[p,y]=(0,t.useState)(!1),f=(c=(0,F.useQueryClient)(),(0,B.useMutation)({mutationFn:async({id:e,status:a,note:t})=>{let s=await (0,v.gatedFetch)(`${E}/api/xray/findings/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:a,note:t})});if(!s.ok)throw Error(await (0,v.readApiError)(s,"Failed to update finding"));return s.json()},onSuccess:()=>{c.invalidateQueries({queryKey:["xray-findings"]}),c.invalidateQueries({queryKey:["xray-findings-stats"]})}})),j=(l=(0,F.useQueryClient)(),(0,B.useMutation)({mutationFn:async({id:e,note:a})=>{let t=await (0,v.gatedFetch)(`${E}/api/xray/findings/${e}/quarantine`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({note:a})});if(!t.ok)throw Error(await (0,v.readApiError)(t,"Failed to quarantine file"));return t.json()},onSuccess:()=>{l.invalidateQueries({queryKey:["xray-findings"]}),l.invalidateQueries({queryKey:["xray-findings-stats"]})}})),S=(d=(0,F.useQueryClient)(),(0,B.useMutation)({mutationFn:async e=>{let a=await (0,v.gatedFetch)(`${E}/api/xray/findings/${e}`,{method:"DELETE"});if(!a.ok)throw Error(await (0,v.readApiError)(a,"Failed to delete finding"));return a.json()},onSuccess:()=>{d.invalidateQueries({queryKey:["xray-findings"]}),d.invalidateQueries({queryKey:["xray-findings-stats"]})}})),C=a=>{switch(a){case"reviewed":f.mutate({id:e,status:"reviewed"},{onSuccess:()=>m.toast.success("Marked as reviewed"),onError:e=>m.toast.error(`Failed to update: ${e.message}`)});break;case"ignored":f.mutate({id:e,status:"ignored",note:h},{onSuccess:()=>{m.toast.info("Finding ignored — removed from active list"),x(!1),u(""),y(!0)},onError:e=>m.toast.error(`Failed to ignore: ${e.message}`)});break;case"resolved":f.mutate({id:e,status:"resolved",note:h},{onSuccess:()=>{m.toast.success("Finding resolved — removed from active list"),x(!1),u(""),y(!0)},onError:e=>m.toast.error(`Failed to resolve: ${e.message}`)});break;case"quarantine":j.mutate({id:e,note:h},{onSuccess:e=>{m.toast.warning(e.moved?"File quarantined and moved":"Marked quarantined (file not found)"),y(!0)},onError:e=>m.toast.error(`Quarantine failed: ${e.message}`)});break;case"delete":S.mutate(e,{onSuccess:()=>{m.toast.success("Finding deleted"),y(!0)},onError:e=>m.toast.error(`Failed to delete: ${e.message}`)})}};if(p)return(0,a.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs text-[var(--sc-cyan)] italic animate-pulse",children:[(0,a.jsx)(b.Check,{size:12})," Done — removing from list..."]});if("resolved"===s)return(0,a.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs text-[var(--sc-cyan)]",children:[(0,a.jsx)(b.Check,{size:12})," Resolved"]});if("quarantined"===s)return(0,a.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs text-[var(--sc-amber)]",children:[(0,a.jsx)(k.Shield,{size:12})," Quarantined"]});if("ignored"===s)return(0,a.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs text-[var(--sc-text-muted)]",children:[(0,a.jsx)(N,{size:12})," Ignored"]});let $=n?"sm":"md",A=f.isPending||j.isPending||S.isPending;return(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:["new"===s&&(0,a.jsxs)(g.Button,{variant:"ghost",size:$,onClick:()=>C("reviewed"),disabled:A,children:[(0,a.jsx)(i.Eye,{size:12})," Mark reviewed"]}),(0,a.jsxs)(g.Button,{variant:"cyan",size:$,onClick:()=>x(!o),disabled:A,children:[(0,a.jsx)(b.Check,{size:12})," Resolve"]}),(0,a.jsxs)(g.Button,{variant:"ghost",size:$,onClick:()=>C("ignored"),disabled:A,children:[(0,a.jsx)(N,{size:12})," Safe to ignore"]}),r&&(0,a.jsxs)(g.Button,{variant:"coral",size:$,onClick:()=>C("quarantine"),disabled:A,children:[(0,a.jsx)(k.Shield,{size:12})," Quarantine file"]}),(0,a.jsx)(g.Button,{variant:"ghost",size:$,onClick:()=>C("delete"),disabled:A,children:(0,a.jsx)(w.Trash2,{size:12})})]}),o&&(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)("input",{value:h,onChange:e=>u(e.target.value),placeholder:"What did you do about it? (optional)",className:"flex-1 rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] px-3 py-1.5 text-xs text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)] focus-ring-cyan","aria-label":"Resolution note",onKeyDown:e=>{"Enter"===e.key&&C("resolved")}}),(0,a.jsx)(g.Button,{variant:"cyan",size:"sm",onClick:()=>C("resolved"),disabled:A,children:"Done"})]})]})}var A=e.i(13808),z=e.i(76624),R=e.i(23457);function M({finding:e}){let t=(0,R.useLocalAiExplain)();return(0,a.jsxs)("div",{className:"mt-3 space-y-3",children:[(0,a.jsxs)(g.Button,{variant:"outline",size:"sm",onClick:()=>{t.mutate({kind:"xray_finding",title:e.title,content:[`Title: ${e.title}`,`Description: ${e.description}`,e.file?`File: ${e.line?`${e.file}:${e.line}`:e.file}`:"",e.evidence?`Evidence: ${e.evidence}`:"",e.guidance?.whatItMeans?`Scanner meaning: ${e.guidance.whatItMeans}`:"",e.guidance?.whatToDo?`Scanner guidance: ${e.guidance.whatToDo}`:"",e.guidance?.falsePositiveNote?`False positive note: ${e.guidance.falsePositiveNote}`:""].filter(Boolean).join("\n"),source:e.file?`xray:${e.file}`:"xray",signals:[e.severity,e.category,e.status??"",e.guidance?.urgency??"",e.systemFile?"system-file":""].filter(Boolean),metadata:{id:e.id,file:e.file,line:e.line,severity:e.severity,category:e.category,status:e.status,detectedAt:e.detectedAt,systemFile:e.systemFile,guidance:e.guidance}},{onSuccess:e=>{m.toast.success(e.explanation.synthetic?"Fallback explanation generated":"Local explanation generated")},onError:e=>m.toast.error(e instanceof Error?e.message:"Local explanation failed")})},disabled:t.isPending,children:[(0,a.jsx)(A.Sparkles,{size:13}),t.isPending?"Explaining":"Explain"]}),t.data?.explanation&&(0,a.jsx)(z.LocalAiExplanationPanel,{explanation:t.data.explanation}),t.error&&(0,a.jsx)("div",{className:"rounded-lg border border-[var(--sc-coral)]/30 bg-[var(--sc-coral)]/10 p-3 text-sm text-[var(--sc-coral)]",children:t.error instanceof Error?t.error.message:"Local explanation failed"})]})}var L=e.i(31309);function P(e){return e?new Date(e).toLocaleString():"—"}function D(){var e;let[n,b]=(0,t.useState)("scanner"),[N,k]=(0,t.useState)(""),[w,S]=(0,t.useState)(!1),[B,F]=(0,t.useState)(null),[A,z]=(0,t.useState)("ALL"),[R,D]=(0,t.useState)("all"),[W,q]=(0,t.useState)("all"),[T,G]=(0,t.useState)(""),[I,Q]=(0,t.useState)("all"),[H,X]=(0,t.useState)("all"),[K,O]=(0,t.useState)(""),[V,_]=(0,t.useState)(!1),[U,J]=(0,t.useState)("new"),{data:Y}=(0,L.useXRayHistory)({risk:A,targetType:R,deep:W,search:T}),{data:Z}=(0,L.useXRayActivity)(8,{kind:I}),{data:ee}=(0,L.useXRayWatchSessions)(8,{state:H}),{data:ea}=(0,L.useXRayStatus)(),{data:et}=(0,C.useQuery)({queryKey:["xray-findings-stats"],queryFn:async()=>{let e=await (0,v.gatedFetch)(`${E}/api/xray/findings/stats`);if(!e.ok)throw Error(await (0,v.readApiError)(e,"Failed to fetch finding stats"));return e.json()},refetchInterval:15e3}),{data:es}=(e={status:"all"===U?void 0:U},(0,C.useQuery)({queryKey:["xray-findings",e],queryFn:async()=>{let a=new URLSearchParams;e?.status&&a.set("status",e.status),e?.severity&&a.set("severity",e.severity),e?.limit&&a.set("limit",String(e.limit));let t=a.toString()?`?${a}`:"",s=await (0,v.gatedFetch)(`${E}/api/xray/findings${t}`);if(!s.ok)throw Error(await (0,v.readApiError)(s,"Failed to fetch findings"));return s.json()},refetchInterval:15e3})),er=(0,t.useMemo)(()=>Y?.entries??[],[Y?.entries]),ei=Z?.entries??[],en=ee?.entries??[],ec=(0,L.useXRayScan)(),el=(0,L.usePickXRayTarget)(),ed=B??(er.length>0?er[0].id:null),eo=(0,L.useXRayHistoryEntry)(ed),{data:ex}=(0,L.useActiveWatchers)(),em=(0,L.useStartWatch)(),ev=(0,L.useStopWatch)(),eh=ex?.watchers??[],eu=ec.data?.result,ep=ec.data?.persistedFindings??[],eg=ec.error,ey=eg instanceof v.FeatureLockedError;(0,h.useMemoryWebSocket)({onMessage:e=>{if("xray_detection"===e.type){let a=e.data;m.toast.warning(a.summary||"X-Ray detection",{description:`Risk: ${a.riskLevel||"unknown"}`,duration:8e3})}}});let ef=eo.data?.entry??er.find(e=>e.id===ed)??null,ej=eu??ef?.result??null,eb=(0,t.useMemo)(()=>({total:er.length,avgScore:er.length?Math.round(er.reduce((e,a)=>e+a.trustScore,0)/er.length):null}),[er]),eN=ea?.capabilities,ek=ea?.summary,ew=[{id:"scanner",label:"Scanner",icon:(0,a.jsx)(x.ScanSearch,{size:14})},{id:"history",label:"History",count:eb.total},{id:"watch",label:"Watch",count:ek?.activeWatchRoots??0},{id:"activity",label:"Activity"},{id:"findings",label:"Findings",count:et?.new??0}];return(0,a.jsx)("div",{className:"h-full overflow-y-auto",children:(0,a.jsxs)("div",{className:"mx-auto max-w-7xl space-y-6 p-6",children:[(0,a.jsx)(y.PageHeader,{eyebrow:"Supply Chain Security",title:"X-Ray Scanner",subtitle:"Scan packages, files, and directories for hidden risk signals.",tabs:ew,activeTab:n,onTabChange:e=>b(e),actions:(0,a.jsx)("div",{className:"flex items-center gap-3",children:(0,a.jsxs)(p.Badge,{variant:eN?.deepScan?"cyan":"muted",dot:!0,children:["Deep scan ",eN?.deepScan?"enabled":"gated"]})})}),(0,a.jsxs)("div",{className:"grid grid-cols-2 gap-4 lg:grid-cols-4",children:[(0,a.jsx)(f.StatCard,{label:"Total Scans",value:ek?.scans??0,icon:x.ScanSearch,accent:"cyan"}),(0,a.jsx)(f.StatCard,{label:"High Risk",value:ek?.highRiskScans??0,icon:s.Activity,accent:"coral"}),(0,a.jsx)(f.StatCard,{label:"Watch Roots",value:ek?.activeWatchRoots??0,icon:i.Eye,accent:"cyan"}),(0,a.jsx)(f.StatCard,{label:"Avg Trust",value:eb.avgScore??"—",icon:c,accent:eb.avgScore&&eb.avgScore>=70?"cyan":"amber"})]}),"scanner"===n&&(0,a.jsxs)("div",{className:"grid gap-6 xl:grid-cols-[1.2fr_0.8fr]",children:[(0,a.jsxs)("div",{className:"space-y-6",children:[(0,a.jsxs)(u.GlassCard,{strong:!0,className:"p-6",children:[(0,a.jsxs)("form",{onSubmit:e=>{e.preventDefault(),N.trim()&&ec.mutate({target:N.trim(),deep:w})},children:[(0,a.jsx)("label",{className:"text-sm font-semibold text-[var(--sc-text-primary)]",children:"What do you want to scan?"}),(0,a.jsx)("input",{value:N,onChange:e=>k(e.target.value),placeholder:"Package name, file path, or directory...",className:"mt-3 w-full rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] px-4 py-3 text-sm text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)] focus-ring-cyan"}),(0,a.jsxs)("div",{className:"mt-4 flex flex-wrap items-center gap-3",children:[(0,a.jsxs)("button",{type:"button",onClick:()=>el.mutate("file",{onSuccess:e=>{e.path&&k(e.path)}}),className:"inline-flex items-center gap-2 rounded-xl border border-[var(--sc-border)] bg-[var(--sc-surface-interactive)] px-4 py-2.5 text-sm font-medium text-[var(--sc-text-secondary)] transition-all hover:bg-[var(--sc-surface-interactive-hover)] hover:text-[var(--sc-text-primary)]",children:[(0,a.jsx)(c,{size:14})," Browse file"]}),(0,a.jsxs)("button",{type:"button",onClick:()=>el.mutate("folder",{onSuccess:e=>{e.path&&k(e.path)}}),className:"inline-flex items-center gap-2 rounded-xl border border-[var(--sc-border)] bg-[var(--sc-surface-interactive)] px-4 py-2.5 text-sm font-medium text-[var(--sc-text-secondary)] transition-all hover:bg-[var(--sc-surface-interactive-hover)] hover:text-[var(--sc-text-primary)]",children:[(0,a.jsx)(l,{size:14})," Browse folder"]}),(0,a.jsxs)("label",{className:"inline-flex items-center gap-2 rounded-xl border border-[var(--sc-border)] bg-[var(--sc-surface-interactive)] px-3 py-2.5 text-sm text-[var(--sc-text-secondary)]",children:[(0,a.jsx)("input",{type:"checkbox",checked:w,onChange:e=>S(e.target.checked),className:"h-4 w-4 rounded border-[var(--sc-border)] accent-[var(--sc-cyan)]"}),"Deep scan",!eN?.deepScan&&(0,a.jsx)(d.Lock,{size:12,className:"text-[var(--sc-coral)]"})]}),(0,a.jsxs)(g.Button,{type:"submit",variant:"coral",glow:!0,disabled:ec.isPending||!N.trim(),children:[ec.isPending?"Scanning…":"Run Scan",(0,a.jsx)(r.ArrowRight,{size:14})]})]}),(0,a.jsx)("p",{className:"mt-3 text-xs text-[var(--sc-text-muted)]",children:"Native macOS picker via local API, or paste a path / package name directly."})]}),el.isError&&(0,a.jsx)("div",{className:"mt-3 rounded-xl border border-[var(--sc-coral)]/20 bg-[var(--sc-coral)]/5 px-4 py-3 text-sm text-[var(--sc-coral)]",children:el.error instanceof Error?el.error.message:"Failed to open native picker"}),eg&&(0,a.jsx)("div",{className:`mt-4 rounded-xl px-4 py-3 text-sm ${ey?"border border-[var(--sc-amber)]/20 bg-[var(--sc-amber)]/5 text-[var(--sc-amber)]":"border border-[var(--sc-coral)]/20 bg-[var(--sc-coral)]/5 text-[var(--sc-coral)]"}`,children:eg.message})]}),(0,a.jsxs)(u.GlassCard,{className:`p-6 ${ec.isPending?"scan-sweep":""}`,children:[(0,a.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,a.jsx)("h3",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Scan Result"}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsxs)(p.Badge,{variant:"muted",children:[eb.total," scans"]}),(0,a.jsxs)(p.Badge,{variant:"muted",children:["Avg ",eb.avgScore??"—"]})]})]}),ej?(0,a.jsxs)("div",{className:"mt-5 space-y-4",children:[(0,a.jsxs)("div",{className:"flex items-start gap-6",children:[(0,a.jsx)(j,{score:ej.trustScore,size:120}),(0,a.jsxs)("div",{className:"flex-1",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,a.jsx)("h4",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:ej.target}),(0,a.jsx)(p.Badge,{variant:(0,p.riskVariant)(ej.riskLevel),children:ej.riskLevel})]}),(0,a.jsxs)("div",{className:"mt-2 flex flex-wrap gap-2",children:[(0,a.jsxs)(p.Badge,{variant:"muted",children:[ej.filesScanned," files"]}),(0,a.jsx)(p.Badge,{variant:"muted",children:ej.deepScan?"Deep":"Standard"}),(0,a.jsx)(p.Badge,{variant:"muted",children:P(ej.scannedAt)})]})]})]}),(0,a.jsx)("div",{className:"space-y-3",children:0===ej.findings.length?(0,a.jsx)("div",{className:"rounded-xl border border-[var(--sc-cyan)]/20 bg-[var(--sc-cyan)]/5 px-4 py-4 text-sm text-[var(--sc-cyan)]",children:"No findings detected. This target looks clean."}):ej.findings.map((e,t)=>(0,a.jsxs)(u.GlassCard,{severity:e.severity,className:"p-4",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsx)(p.Badge,{variant:(0,p.riskVariant)(e.severity),children:e.severity}),(0,a.jsx)(p.Badge,{variant:"muted",children:e.category})]}),(0,a.jsx)("p",{className:"mt-2 text-sm font-semibold text-[var(--sc-text-primary)]",children:e.title}),(0,a.jsx)("p",{className:"mt-1 text-sm text-[var(--sc-text-secondary)]",children:e.description}),(e.file||e.evidence)&&(0,a.jsxs)("div",{className:"mt-2 space-y-0.5 font-mono text-xs text-[var(--sc-text-muted)]",children:[e.file&&(0,a.jsxs)("div",{children:["File: ",e.line?`${e.file}:${e.line}`:e.file]}),e.evidence&&(0,a.jsxs)("div",{children:["Evidence: ",e.evidence]})]}),(0,a.jsx)(M,{finding:{...e,id:ep[t]?.id,status:ep[t]?.status}}),ep[t]&&(0,a.jsx)("div",{className:"mt-3 border-t border-[var(--sc-border)] pt-3",children:(0,a.jsx)($,{findingId:ep[t].id,status:ep[t].status,hasFile:!!e.file,compact:!0})})]},`${e.title}-${t}`))})]}):(0,a.jsx)("div",{className:"mt-5 rounded-xl bg-[var(--sc-bg-elevated)] px-5 py-8 text-center text-sm text-[var(--sc-text-muted)]",children:"Run a scan or select one from history to see results here."})]})]}),(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)(u.GlassCard,{strong:!0,className:"p-5",children:[(0,a.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Capabilities"}),(0,a.jsx)("div",{className:"mt-4 space-y-3",children:[{label:"Local scan",enabled:eN?.localScan??!0},{label:"Watch mode",enabled:eN?.watchMode??!0},{label:"Preinstall hook",enabled:eN?.preinstallHook??!1},{label:"npm inspection",enabled:eN?.npmInspection??!1},{label:"Deep scan",enabled:eN?.deepScan??!1}].map(e=>(0,a.jsxs)("div",{className:"flex items-center justify-between rounded-lg bg-[var(--sc-bg-elevated)] px-3 py-2",children:[(0,a.jsx)("span",{className:"text-sm text-[var(--sc-text-secondary)]",children:e.label}),(0,a.jsx)(p.Badge,{variant:e.enabled?"cyan":"muted",dot:!0,children:e.enabled?"On":"Off"})]},e.label))})]}),(0,a.jsxs)(u.GlassCard,{strong:!0,className:"p-5",children:[(0,a.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Quick stats"}),(0,a.jsxs)("div",{className:"mt-4 space-y-3",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between rounded-lg bg-[var(--sc-bg-elevated)] px-3 py-2",children:[(0,a.jsx)("span",{className:"text-sm text-[var(--sc-text-secondary)]",children:"Watch roots"}),(0,a.jsxs)("span",{className:"text-sm font-semibold text-[var(--sc-text-primary)]",children:[ek?.activeWatchRoots??0," active"]})]}),(0,a.jsxs)("div",{className:"flex items-center justify-between rounded-lg bg-[var(--sc-bg-elevated)] px-3 py-2",children:[(0,a.jsx)("span",{className:"text-sm text-[var(--sc-text-secondary)]",children:"Stale roots"}),(0,a.jsx)("span",{className:"text-sm font-semibold text-[var(--sc-amber)]",children:ek?.staleWatchRoots??0})]}),(0,a.jsxs)("div",{className:"flex items-center justify-between rounded-lg bg-[var(--sc-bg-elevated)] px-3 py-2",children:[(0,a.jsx)("span",{className:"text-sm text-[var(--sc-text-secondary)]",children:"Blocked events"}),(0,a.jsx)("span",{className:"text-sm font-semibold text-[var(--sc-coral)]",children:ek?.blockedEvents??0})]})]})]})]})]}),"history"===n&&(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)(u.GlassCard,{className:"p-4",children:[(0,a.jsxs)("div",{className:"grid gap-3 lg:grid-cols-[1fr_auto_auto]",children:[(0,a.jsx)("input",{value:T,onChange:e=>G(e.target.value),placeholder:"Filter by file, folder, or package...",className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] px-4 py-2.5 text-sm text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)] focus-ring-cyan"}),(0,a.jsxs)("select",{value:A,onChange:e=>z(e.target.value),className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] px-4 py-2.5 text-sm text-[var(--sc-text-primary)]",children:[(0,a.jsx)("option",{value:"ALL",children:"All risk"}),(0,a.jsx)("option",{value:"CRITICAL",children:"Critical"}),(0,a.jsx)("option",{value:"HIGH",children:"High"}),(0,a.jsx)("option",{value:"MEDIUM",children:"Medium"}),(0,a.jsx)("option",{value:"LOW",children:"Low"}),(0,a.jsx)("option",{value:"SAFE",children:"Safe"})]}),(0,a.jsxs)("select",{value:R,onChange:e=>D(e.target.value),className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] px-4 py-2.5 text-sm text-[var(--sc-text-primary)]",children:[(0,a.jsx)("option",{value:"all",children:"All targets"}),(0,a.jsx)("option",{value:"file",children:"Files"}),(0,a.jsx)("option",{value:"dir",children:"Directories"}),(0,a.jsx)("option",{value:"npm",children:"Packages"})]})]}),(0,a.jsx)("div",{className:"mt-3 flex gap-2",children:["all","true","false"].map(e=>(0,a.jsx)("button",{onClick:()=>q(e),className:`rounded-lg px-3 py-1.5 text-xs font-medium transition-all ${W===e?"bg-[var(--sc-coral)] text-white":"bg-[var(--sc-surface-interactive)] text-[var(--sc-text-muted)] hover:text-[var(--sc-text-secondary)]"}`,children:"all"===e?"All scans":"true"===e?"Deep only":"Standard only"},e))})]}),(0,a.jsxs)("div",{className:"grid gap-6 xl:grid-cols-[0.45fr_0.55fr]",children:[(0,a.jsx)("div",{className:"space-y-3",children:0===er.length?(0,a.jsx)(u.GlassCard,{className:"p-5 text-center text-sm text-[var(--sc-text-muted)]",children:"No matching scan history yet."}):er.map(e=>(0,a.jsxs)(u.GlassCard,{hover:!0,selected:ed===e.id,onClick:()=>{F(e.id),k(e.target),S(e.deepScan)},className:"p-4",children:[(0,a.jsx)("div",{className:"truncate text-sm font-semibold text-[var(--sc-text-primary)]",children:e.target}),(0,a.jsx)("div",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:P(e.scannedAt)}),(0,a.jsxs)("div",{className:"mt-2 flex flex-wrap gap-2",children:[(0,a.jsx)(p.Badge,{variant:(0,p.riskVariant)(e.riskLevel),children:e.riskLevel}),(0,a.jsxs)(p.Badge,{variant:"muted",children:["Score ",e.trustScore]}),(0,a.jsxs)(p.Badge,{variant:"muted",children:[e.findingCount," findings"]})]})]},e.id))}),ej?(0,a.jsxs)(u.GlassCard,{strong:!0,className:"p-6",children:[(0,a.jsxs)("div",{className:"flex items-start gap-5",children:[(0,a.jsx)(j,{score:ej.trustScore,size:100}),(0,a.jsxs)("div",{className:"flex-1",children:[(0,a.jsx)("h4",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:ej.target}),(0,a.jsxs)("div",{className:"mt-2 flex flex-wrap gap-2",children:[(0,a.jsx)(p.Badge,{variant:(0,p.riskVariant)(ej.riskLevel),children:ej.riskLevel}),(0,a.jsxs)(p.Badge,{variant:"muted",children:[ej.filesScanned," files"]}),(0,a.jsx)(p.Badge,{variant:"muted",children:ej.deepScan?"Deep":"Standard"})]})]})]}),(0,a.jsx)("div",{className:"mt-5 space-y-3",children:0===ej.findings.length?(0,a.jsx)("div",{className:"rounded-xl border border-[var(--sc-cyan)]/20 bg-[var(--sc-cyan)]/5 px-4 py-3 text-sm text-[var(--sc-cyan)]",children:"Clean — no findings."}):ej.findings.map((e,t)=>(0,a.jsxs)(u.GlassCard,{severity:e.severity,className:"p-3",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(p.Badge,{variant:(0,p.riskVariant)(e.severity),children:e.severity}),(0,a.jsx)("span",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:e.title})]}),(0,a.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-secondary)]",children:e.description}),(0,a.jsx)(M,{finding:e})]},`${e.title}-${t}`))})]}):(0,a.jsx)(u.GlassCard,{className:"flex items-center justify-center p-8 text-sm text-[var(--sc-text-muted)]",children:"Select a scan from the list to view details."})]})]}),"watch"===n&&(0,a.jsxs)("div",{className:"space-y-6",children:[(0,a.jsxs)(u.GlassCard,{strong:!0,className:"p-6",children:[(0,a.jsx)("h3",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Start Watching"}),(0,a.jsx)("p",{className:"mt-1 text-sm text-[var(--sc-text-muted)]",children:"Monitor a directory for file changes and automatically scan for threats in real-time."}),(0,a.jsxs)("form",{className:"mt-4 flex flex-wrap items-end gap-3",onSubmit:e=>{e.preventDefault(),K.trim()&&em.mutate({target:K.trim(),deep:V})},children:[(0,a.jsx)("div",{className:"flex-1",children:(0,a.jsx)("input",{value:K,onChange:e=>O(e.target.value),placeholder:"Directory path, e.g. /Users/michael/Development/project",className:"w-full rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] px-4 py-3 text-sm text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)] focus-ring-cyan"})}),(0,a.jsxs)("button",{type:"button",onClick:()=>el.mutate("folder",{onSuccess:e=>{e.path&&O(e.path)}}),className:"inline-flex items-center gap-2 rounded-xl border border-[var(--sc-border)] bg-[var(--sc-surface-interactive)] px-4 py-3 text-sm font-medium text-[var(--sc-text-secondary)] transition-all hover:bg-[var(--sc-surface-interactive-hover)] hover:text-[var(--sc-text-primary)]",children:[(0,a.jsx)(l,{size:14})," Browse"]}),(0,a.jsxs)("label",{className:"inline-flex items-center gap-2 rounded-xl border border-[var(--sc-border)] bg-[var(--sc-surface-interactive)] px-3 py-3 text-sm text-[var(--sc-text-secondary)]",children:[(0,a.jsx)("input",{type:"checkbox",checked:V,onChange:e=>_(e.target.checked),className:"h-4 w-4 rounded accent-[var(--sc-cyan)]"}),"Deep"]}),(0,a.jsxs)(g.Button,{type:"submit",variant:"cyan",disabled:em.isPending||!K.trim(),children:[em.isPending?"Starting…":"Start Watch",(0,a.jsx)(i.Eye,{size:14})]})]}),em.isSuccess&&(0,a.jsxs)("p",{className:"mt-3 text-sm text-[var(--sc-cyan)]",children:["Watching ",em.data.root]}),em.isError&&(0,a.jsx)("p",{className:"mt-3 text-sm text-[var(--sc-coral)]",children:em.error instanceof Error?em.error.message:"Failed to start watch"})]}),eh.length>0&&(0,a.jsxs)("div",{children:[(0,a.jsx)("h4",{className:"mb-3 text-sm font-semibold uppercase tracking-wider text-[var(--sc-text-muted)]",children:"Active Watchers (This Session)"}),(0,a.jsx)("div",{className:"grid gap-3 lg:grid-cols-2",children:eh.map(e=>(0,a.jsxs)(u.GlassCard,{className:"flex items-center justify-between p-4",children:[(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsx)("p",{className:"truncate text-sm font-semibold text-[var(--sc-text-primary)]",children:e.root}),(0,a.jsxs)("p",{className:"text-xs text-[var(--sc-text-muted)]",children:["PID ",e.pid]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(p.Badge,{variant:"cyan",dot:!0,pulse:!0,children:"Watching"}),(0,a.jsx)(g.Button,{variant:"outline",size:"sm",onClick:()=>ev.mutate(e.root),disabled:ev.isPending,children:"Stop"})]})]},e.root))})]}),(0,a.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,a.jsx)("h4",{className:"text-sm font-semibold uppercase tracking-wider text-[var(--sc-text-muted)]",children:"Session History"}),(0,a.jsx)("div",{className:"flex gap-2",children:["all","active","stale","ended"].map(e=>(0,a.jsx)("button",{onClick:()=>X(e),className:`rounded-lg px-3 py-1.5 text-xs font-medium capitalize transition-all ${H===e?"bg-[var(--sc-coral)] text-white":"bg-[var(--sc-surface-interactive)] text-[var(--sc-text-muted)] hover:text-[var(--sc-text-secondary)]"}`,children:e},e))})]}),0===en.length?(0,a.jsxs)(u.GlassCard,{className:"p-8 text-center text-sm text-[var(--sc-text-muted)]",children:["No watch sessions recorded yet. Start a watcher above or use ",(0,a.jsx)("code",{className:"font-mono text-[var(--sc-cyan)]",children:"shieldcortex xray --watch ./src"})," from the CLI."]}):(0,a.jsx)("div",{className:"grid gap-4 lg:grid-cols-2",children:en.map(e=>(0,a.jsxs)(u.GlassCard,{className:"p-5",children:[(0,a.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsx)("p",{className:"truncate text-sm font-semibold text-[var(--sc-text-primary)]",children:e.root}),(0,a.jsxs)("p",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:["Started ",P(e.startedAt)]})]}),(0,a.jsx)(p.Badge,{variant:"active"===e.state?"cyan":"stale"===e.state?"amber":"muted",dot:!0,pulse:"active"===e.state,children:e.state})]}),(0,a.jsx)("p",{className:"mt-2 text-sm text-[var(--sc-text-secondary)]",children:e.lastEventSummary??"No detections yet"}),(0,a.jsxs)("div",{className:"mt-3 flex flex-wrap gap-2",children:[(0,a.jsxs)(p.Badge,{variant:"muted",children:[e.changesDetected," changes"]}),(0,a.jsxs)(p.Badge,{variant:"muted",children:[e.findingsDetected," findings"]}),(0,a.jsx)(p.Badge,{variant:(0,p.riskVariant)(e.highestRiskLevel),children:e.highestRiskLevel})]})]},e.id))})]}),"activity"===n&&(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsx)("div",{className:"flex gap-2",children:["all","scan","watch","preinstall"].map(e=>(0,a.jsx)("button",{onClick:()=>Q(e),className:`rounded-lg px-3 py-1.5 text-xs font-medium capitalize transition-all ${I===e?"bg-[var(--sc-coral)] text-white":"bg-[var(--sc-surface-interactive)] text-[var(--sc-text-muted)] hover:text-[var(--sc-text-secondary)]"}`,children:"all"===e?"All activity":e},e))}),0===ei.length?(0,a.jsx)(u.GlassCard,{className:"p-8 text-center text-sm text-[var(--sc-text-muted)]",children:"No matching automatic events yet."}):(0,a.jsx)("div",{className:"space-y-3",children:ei.map(e=>(0,a.jsx)(u.GlassCard,{className:"p-4",children:(0,a.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(o,{size:14,className:"shrink-0 text-[var(--sc-coral)]"}),(0,a.jsx)("span",{className:"text-sm font-semibold capitalize text-[var(--sc-text-primary)]",children:e.kind})]}),(0,a.jsx)("p",{className:"mt-1 truncate text-sm text-[var(--sc-text-secondary)]",children:e.target}),(0,a.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:e.summary})]}),(0,a.jsx)(p.Badge,{variant:"pass"===e.status?"safe":"blocked"===e.status?"critical":"warn"===e.status?"medium":"amber",children:e.status})]})},e.id))})]}),"findings"===n&&(0,a.jsxs)("div",{className:"space-y-4",children:[et&&(0,a.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,a.jsxs)(p.Badge,{variant:"coral",children:[et.new," new"]}),(0,a.jsxs)(p.Badge,{variant:"muted",children:[et.reviewed," reviewed"]}),(0,a.jsxs)(p.Badge,{variant:"cyan",children:[et.resolved," resolved"]}),(0,a.jsxs)(p.Badge,{variant:"amber",children:[et.quarantined," quarantined"]}),(0,a.jsxs)(p.Badge,{variant:"muted",children:[et.ignored," ignored"]}),(0,a.jsxs)(p.Badge,{variant:"muted",children:[et.total," total"]})]}),(0,a.jsx)("div",{className:"flex flex-wrap gap-2",children:[{key:"new",label:"Needs attention",accent:!0},{key:"reviewed",label:"Reviewed",accent:!1},{key:"resolved",label:"Resolved",accent:!1},{key:"ignored",label:"Ignored",accent:!1},{key:"quarantined",label:"Quarantined",accent:!1},{key:"all",label:"Everything",accent:!1}].map(({key:e,label:t,accent:s})=>(0,a.jsxs)("button",{onClick:()=>J(e),className:`rounded-lg px-3 py-1.5 text-xs font-medium transition-all ${U===e?s?"bg-[var(--sc-coral)] text-white":"bg-[var(--sc-cyan)] text-[var(--sc-bg-deep)]":"bg-[var(--sc-surface-interactive)] text-[var(--sc-text-muted)] hover:text-[var(--sc-text-secondary)]"}`,children:[t,"new"===e&&et&&et.new>0&&(0,a.jsx)("span",{className:"ml-1.5 rounded-full bg-white/20 px-1.5 py-0.5 text-[10px] font-bold",children:et.new})]},e))}),es?.findings&&0!==es.findings.length?(0,a.jsx)("div",{className:"space-y-3",children:es.findings.map(e=>(0,a.jsxs)(u.GlassCard,{severity:e.severity,className:"p-5",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsx)(p.Badge,{variant:(0,p.riskVariant)(e.severity),children:e.severity}),(0,a.jsx)(p.Badge,{variant:"muted",children:e.category}),e.systemFile&&(0,a.jsx)(p.Badge,{variant:"muted",children:"System file — likely safe"}),e.guidance?.urgency==="usually-safe"&&!e.systemFile&&(0,a.jsx)(p.Badge,{variant:"cyan",children:"Usually safe"}),e.guidance?.urgency==="act-now"&&(0,a.jsx)(p.Badge,{variant:"critical",dot:!0,pulse:!0,children:"Act now"})]}),(0,a.jsx)("p",{className:"mt-3 text-sm font-semibold text-[var(--sc-text-primary)]",children:e.title}),e.guidance&&(0,a.jsxs)("div",{className:"mt-3 space-y-3 rounded-xl bg-[var(--sc-bg-elevated)] p-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-[var(--sc-text-muted)]",children:"What this means"}),(0,a.jsx)("p",{className:"mt-1 text-sm leading-relaxed text-[var(--sc-text-secondary)]",children:e.guidance.whatItMeans})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-[var(--sc-cyan)]",children:"What to do"}),(0,a.jsx)("p",{className:"mt-1 text-sm leading-relaxed text-[var(--sc-text-secondary)]",children:e.guidance.whatToDo})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-[var(--sc-text-muted)]",children:"False positive?"}),(0,a.jsx)("p",{className:"mt-1 text-xs leading-relaxed text-[var(--sc-text-muted)]",children:e.guidance.falsePositiveNote})]})]}),(e.file||e.evidence)&&(0,a.jsxs)("div",{className:"mt-3 space-y-0.5 font-mono text-xs text-[var(--sc-text-muted)]",children:[e.file&&(0,a.jsxs)("div",{children:["File: ",e.line?`${e.file}:${e.line}`:e.file]}),e.evidence&&(0,a.jsxs)("div",{children:["Evidence: ",e.evidence]})]}),(0,a.jsx)(M,{finding:e}),(0,a.jsx)("div",{className:"mt-2 text-xs text-[var(--sc-text-muted)]",children:P(e.detectedAt)}),(0,a.jsx)("div",{className:"mt-3 border-t border-[var(--sc-border)] pt-3",children:(0,a.jsx)($,{findingId:e.id,status:e.status,hasFile:!!e.file,compact:!0})})]},e.id))}):(0,a.jsxs)(u.GlassCard,{className:"p-8 text-center",children:[(0,a.jsx)("p",{className:"text-sm text-[var(--sc-text-primary)]",children:"new"===U?"All clear — no findings need attention":`No ${"all"===U?"":U+" "}findings`}),(0,a.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:"new"===U?"Run an X-Ray scan or start a watcher to monitor for threats.":"Findings move here when you take action on them."})]})]})]})})}e.s(["XRayOverview",()=>D],27918)}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,95659,e=>{"use strict";var t=e.i(27493),a=e.i(76490);let r={critical:"bg-[var(--sc-coral)]/15 text-[var(--sc-coral)] border-[var(--sc-coral)]/30",high:"bg-[var(--sc-coral-mid)]/15 text-[var(--sc-coral-mid)] border-[var(--sc-coral-mid)]/30",medium:"bg-[var(--sc-amber)]/15 text-[var(--sc-amber)] border-[var(--sc-amber)]/30",low:"bg-[var(--sc-cyan-mid)]/15 text-[var(--sc-cyan-mid)] border-[var(--sc-cyan-mid)]/30",safe:"bg-[var(--sc-cyan)]/15 text-[var(--sc-cyan)] border-[var(--sc-cyan)]/30",info:"bg-[var(--sc-text-muted)]/15 text-[var(--sc-text-secondary)] border-[var(--sc-text-muted)]/30",coral:"bg-[var(--sc-coral)]/15 text-[var(--sc-coral)] border-[var(--sc-coral)]/30",cyan:"bg-[var(--sc-cyan)]/15 text-[var(--sc-cyan)] border-[var(--sc-cyan)]/30",amber:"bg-[var(--sc-amber)]/15 text-[var(--sc-amber)] border-[var(--sc-amber)]/30",muted:"bg-[var(--sc-surface-interactive)] text-[var(--sc-text-secondary)] border-[var(--sc-border)]"},s={critical:"bg-[var(--sc-coral)]",high:"bg-[var(--sc-coral-mid)]",medium:"bg-[var(--sc-amber)]",low:"bg-[var(--sc-cyan-mid)]",safe:"bg-[var(--sc-cyan)]",info:"bg-[var(--sc-text-muted)]",coral:"bg-[var(--sc-coral)]",cyan:"bg-[var(--sc-cyan)]",amber:"bg-[var(--sc-amber)]",muted:"bg-[var(--sc-text-muted)]"};function c({children:e,variant:c="muted",className:n,dot:i=!1,pulse:l=!1}){return(0,t.jsxs)("span",{className:(0,a.cn)("inline-flex items-center gap-1.5 rounded-full border px-2.5 py-0.5 text-[11px] font-semibold uppercase tracking-wider",r[c],n),children:[i&&(0,t.jsx)("span",{className:(0,a.cn)("h-1.5 w-1.5 rounded-full",s[c],l&&"animate-pulse")}),e]})}function n(e){let t=e.toUpperCase();return"CRITICAL"===t?"critical":"HIGH"===t?"high":"MEDIUM"===t?"medium":"LOW"===t?"low":"SAFE"===t?"safe":"info"}e.s(["Badge",()=>c,"riskVariant",()=>n])},16467,e=>{"use strict";var t=e.i(27493),a=e.i(76490);let r={critical:"severity-critical",high:"severity-high",medium:"severity-medium",low:"severity-low",safe:"severity-safe",info:"severity-info"};function s({children:e,className:s,hover:c=!1,hoverCyan:n=!1,strong:i=!1,severity:l,onClick:o,selected:d=!1}){return(0,t.jsx)("div",{className:(0,a.cn)(i?"glass-card-strong":"glass-card",c&&"glass-card-hover cursor-pointer",n&&"glass-card-hover-cyan cursor-pointer",o&&!c&&!n&&"cursor-pointer",l&&r[l],d&&"border-[var(--sc-cyan)] shadow-[0_0_20px_var(--sc-glow-cyan)]",s),onClick:o,onKeyDown:o?e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),o())}:void 0,role:o?"button":void 0,tabIndex:o?0:void 0,children:e})}e.s(["GlassCard",()=>s])},53615,84982,e=>{"use strict";var t=e.i(27493),a=e.i(76490);function r({className:e}){return(0,t.jsx)("div",{className:(0,a.cn)("animate-pulse rounded-xl bg-[var(--sc-surface-interactive)]",e)})}function s(){return(0,t.jsxs)("div",{className:"mx-auto max-w-7xl space-y-6 p-6",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(r,{className:"h-3 w-24"}),(0,t.jsx)(r,{className:"h-7 w-56"}),(0,t.jsx)(r,{className:"h-4 w-80"})]}),(0,t.jsx)(r,{className:"h-10 w-96"}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4 lg:grid-cols-4",children:[(0,t.jsx)(r,{className:"h-24"}),(0,t.jsx)(r,{className:"h-24"}),(0,t.jsx)(r,{className:"h-24"}),(0,t.jsx)(r,{className:"h-24"})]}),(0,t.jsxs)("div",{className:"grid gap-6 lg:grid-cols-2",children:[(0,t.jsx)(r,{className:"h-64"}),(0,t.jsx)(r,{className:"h-64"})]})]})}e.s(["PageSkeleton",()=>s],53615);let c=(0,e.i(24929).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["Loader2",()=>c],84982)},84012,e=>{"use strict";let t=(0,e.i(24929).default)("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);e.s(["GitBranch",()=>t],84012)},25903,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"BailoutToCSR",{enumerable:!0,get:function(){return s}});let r=e.r(40909);function s({reason:e,children:t}){if("u"<typeof window)throw Object.defineProperty(new r.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t}},27601,(e,t,a)=>{"use strict";function r(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"encodeURIPath",{enumerable:!0,get:function(){return r}})},54220,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"PreloadChunks",{enumerable:!0,get:function(){return l}});let r=e.r(27493),s=e.r(9854),c=e.r(13595),n=e.r(27601),i=e.r(54218);function l({moduleIds:e}){if("u">typeof window)return null;let t=c.workAsyncStorage.getStore();if(void 0===t)return null;let a=[];if(t.reactLoadableManifest&&e){let r=t.reactLoadableManifest;for(let t of e){if(!r[t])continue;let e=r[t].files;a.push(...e)}}if(0===a.length)return null;let l=(0,i.getDeploymentIdQueryOrEmptyString)();return(0,r.jsx)(r.Fragment,{children:a.map(e=>{let a=`${t.assetPrefix}/_next/${(0,n.encodeURIPath)(e)}${l}`;return e.endsWith(".css")?(0,r.jsx)("link",{precedence:"dynamic",href:a,rel:"stylesheet",as:"style",nonce:t.nonce},e):((0,s.preload)(a,{as:"script",fetchPriority:"low",nonce:t.nonce}),null)})})}},73735,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"default",{enumerable:!0,get:function(){return o}});let r=e.r(27493),s=e.r(4),c=e.r(25903),n=e.r(54220);function i(e){return{default:e&&"default"in e?e.default:e}}let l={loader:()=>Promise.resolve(i(()=>null)),loading:null,ssr:!0},o=function(e){let t={...l,...e},a=(0,s.lazy)(()=>t.loader().then(i)),o=t.loading;function d(e){let i=o?(0,r.jsx)(o,{isLoading:!0,pastDelay:!0,error:null}):null,l=!t.ssr||!!t.loading,d=l?s.Suspense:s.Fragment,u=t.ssr?(0,r.jsxs)(r.Fragment,{children:["u"<typeof window?(0,r.jsx)(n.PreloadChunks,{moduleIds:t.modules}):null,(0,r.jsx)(a,{...e})]}):(0,r.jsx)(c.BailoutToCSR,{reason:"next/dynamic",children:(0,r.jsx)(a,{...e})});return(0,r.jsx)(d,{...l?{fallback:i}:{},children:u})}return d.displayName="LoadableComponent",d}},74133,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"default",{enumerable:!0,get:function(){return s}});let r=e.r(77637)._(e.r(73735));function s(e,t){let a={};"function"==typeof e&&(a.loader=e);let s={...a,...t};return(0,r.default)({...s,modules:s.loadableGenerated?.modules})}("function"==typeof a.default||"object"==typeof a.default&&null!==a.default)&&void 0===a.default.__esModule&&(Object.defineProperty(a.default,"__esModule",{value:!0}),Object.assign(a.default,a),t.exports=a.default)},6847,e=>{"use strict";let t=(0,e.i(24929).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);e.s(["Search",()=>t],6847)},13808,e=>{"use strict";let t=(0,e.i(24929).default)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]);e.s(["Sparkles",()=>t],13808)},46194,e=>{"use strict";var t=e.i(27493),a=e.i(76490);let r={coral:{icon:"text-[var(--sc-coral)]",iconBg:"bg-[var(--sc-coral)]/10",trendUp:"text-[var(--sc-coral)]",trendDown:"text-[var(--sc-cyan)]"},cyan:{icon:"text-[var(--sc-cyan)]",iconBg:"bg-[var(--sc-cyan)]/10",trendUp:"text-[var(--sc-cyan)]",trendDown:"text-[var(--sc-coral)]"},amber:{icon:"text-[var(--sc-amber)]",iconBg:"bg-[var(--sc-amber)]/10",trendUp:"text-[var(--sc-amber)]",trendDown:"text-[var(--sc-text-muted)]"},muted:{icon:"text-[var(--sc-text-secondary)]",iconBg:"bg-[var(--sc-surface-interactive)]",trendUp:"text-[var(--sc-cyan)]",trendDown:"text-[var(--sc-coral)]"}};function s({label:e,value:s,icon:c,trend:n,accent:i="cyan",className:l}){let o=r[i];return(0,t.jsx)("div",{className:(0,a.cn)("glass-card p-5",l),children:(0,t.jsxs)("div",{className:"flex items-start justify-between",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("p",{className:"text-xs font-medium uppercase tracking-wider text-[var(--sc-text-muted)]",children:e}),(0,t.jsx)("p",{className:"mt-2 text-2xl font-bold text-[var(--sc-text-primary)]",children:s}),n&&(0,t.jsxs)("p",{className:(0,a.cn)("mt-1 text-xs",n.value>=0?o.trendUp:o.trendDown),children:[n.value>=0?"+":"",n.value,"% ",n.label]})]}),(0,t.jsx)("div",{className:(0,a.cn)("rounded-xl p-2.5",o.iconBg),children:(0,t.jsx)(c,{size:20,className:o.icon})})]})})}e.s(["StatCard",()=>s])},77744,76624,23457,e=>{"use strict";let t=(0,e.i(24929).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",()=>t],77744);var a=e.i(27493),r=e.i(95659);function s({explanation:e}){return(0,a.jsxs)("div",{className:"rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/70 p-3",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsx)(r.Badge,{variant:e.synthetic?"amber":"cyan",children:e.synthetic?"Fallback":"Local AI"}),(0,a.jsxs)(r.Badge,{variant:"muted",children:[Math.round(100*e.confidence),"% confidence"]})]}),(0,a.jsx)("p",{className:"mt-3 text-sm font-semibold text-[var(--sc-text-primary)]",children:e.summary}),(0,a.jsx)("p",{className:"mt-1 text-sm leading-6 text-[var(--sc-text-secondary)]",children:e.whyItMatters}),e.riskSignals.length>0&&(0,a.jsx)("div",{className:"mt-3 flex flex-wrap gap-1.5",children:e.riskSignals.map(e=>(0,a.jsx)("span",{className:"rounded bg-[var(--sc-bg-elevated)] px-2 py-1 text-[11px] text-[var(--sc-text-secondary)]",children:e},e))}),e.evidence.length>0&&(0,a.jsx)("div",{className:"mt-3 space-y-2",children:e.evidence.map((e,t)=>(0,a.jsxs)("div",{className:"rounded border border-[var(--sc-border)] bg-[var(--sc-bg-surface)] px-2 py-1.5",children:[(0,a.jsx)("div",{className:"text-[10px] uppercase tracking-[0.14em] text-[var(--sc-text-muted)]",children:e.reason}),(0,a.jsxs)("div",{className:"mt-1 break-words text-xs text-[var(--sc-text-primary)]",children:['"',e.snippet,'"']})]},`${e.snippet}-${t}`))}),e.nextSteps.length>0&&(0,a.jsxs)("div",{className:"mt-3 border-t border-[var(--sc-border)] pt-3",children:[(0,a.jsx)("div",{className:"text-[10px] font-semibold uppercase tracking-[0.16em] text-[var(--sc-text-muted)]",children:"Next steps"}),(0,a.jsx)("div",{className:"mt-2 space-y-1",children:e.nextSteps.map(e=>(0,a.jsx)("div",{className:"text-xs leading-5 text-[var(--sc-text-secondary)]",children:e},e))})]})]})}e.s(["LocalAiExplanationPanel",()=>s],76624);var c=e.i(22534),n=e.i(71921),i=e.i(88969);let l=c.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function o(e){let t=await (0,i.gatedFetch)(`${l}/api/v1/local-ai/explain`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error(await (0,i.readApiError)(t,"Failed to generate local explanation"));return t.json()}function d(){return(0,n.useMutation)({mutationFn:o})}e.s(["useLocalAiExplain",()=>d],23457)},18509,e=>{"use strict";let t=(0,e.i(24929).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);e.s(["AlertTriangle",()=>t],18509)},15771,e=>{"use strict";let t=(0,e.i(24929).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["CheckCircle2",()=>t],15771)},51069,e=>{"use strict";let t=(0,e.i(24929).default)("shield-alert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);e.s(["ShieldAlert",()=>t],51069)},63312,50279,e=>{"use strict";var t=e.i(22534),a=e.i(45688),r=e.i(71921),s=e.i(1235),c=e.i(88969);let n=t.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function i(){let e=await (0,c.authFetch)(`${n}/api/license/status`);if(!e.ok)throw Error("Failed to fetch license status");return e.json()}async function l(e){let t=await (0,c.authFetch)(`${n}/api/license/activate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:e})});if(!t.ok)throw Error((await t.json().catch(()=>({error:"Activation failed"}))).error||"Activation failed");return t.json()}async function o(){let e=await (0,c.authFetch)(`${n}/api/license/deactivate`,{method:"POST"});if(!e.ok)throw Error("Failed to deactivate license");return e.json()}function d(){return(0,a.useQuery)({queryKey:["license-status"],queryFn:i,refetchInterval:6e4,retry:2})}function u(){let e=(0,s.useQueryClient)();return(0,r.useMutation)({mutationFn:e=>l(e),onSuccess:()=>{e.invalidateQueries({queryKey:["license-status"]})}})}function m(){let e=(0,s.useQueryClient)();return(0,r.useMutation)({mutationFn:o,onSuccess:()=>{e.invalidateQueries({queryKey:["license-status"]})}})}e.s(["useActivateLicense",()=>u,"useDeactivateLicense",()=>m,"useLicenseStatus",()=>d],63312),e.s(["PLAN_PRICING",0,{pro:{label:"Pro",price:"£29/mo"},team:{label:"Team",price:"£99/mo"}},"TIER_BG",0,{free:"bg-[var(--sc-surface-interactive)]",pro:"bg-[var(--sc-cyan)]/10",team:"bg-[var(--sc-coral)]/10",enterprise:"bg-[var(--sc-amber)]/10"},"TIER_COLOURS",0,{free:"text-[var(--sc-text-muted)]",pro:"text-[var(--sc-cyan)]",team:"text-[var(--sc-coral)]",enterprise:"text-[var(--sc-amber)]"},"TIER_LABELS",0,{free:"Free",pro:"Pro",team:"Team",enterprise:"Enterprise"}],50279)},75025,e=>{"use strict";let t=(0,e.i(24929).default)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);e.s(["FileText",()=>t],75025)},19711,e=>{"use strict";var t=e.i(27493),a=e.i(66949);let r=(0,e.i(24929).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);var s=e.i(63312),c=e.i(50279),n=e.i(81523);function i({feature:e,children:i,label:l}){let{data:o}=(0,s.useLicenseStatus)();if(!o)return(0,t.jsx)(t.Fragment,{children:i});let d=o.features.find(t=>t.feature===e);if(!d||d.enabled)return(0,t.jsx)(t.Fragment,{children:i});let u=d.requiredTier;return(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("div",{className:"pointer-events-none select-none opacity-20 blur-[3px]",children:i}),(0,t.jsxs)("div",{className:"absolute inset-0 flex flex-col items-center justify-center rounded-2xl bg-[var(--sc-card-bg-strong)] backdrop-blur-sm",children:[(0,t.jsx)("div",{className:"rounded-xl bg-[var(--sc-coral)]/10 p-3",children:(0,t.jsx)(a.Lock,{size:24,className:"text-[var(--sc-coral)]"})}),(0,t.jsxs)("p",{className:"mt-3 text-sm font-semibold text-[var(--sc-text-primary)]",children:[c.TIER_LABELS[u]," Feature"]}),l&&(0,t.jsx)("p",{className:"mt-1 max-w-xs text-center text-xs text-[var(--sc-text-muted)]",children:l}),(0,t.jsx)("a",{href:"https://shieldcortex.ai/pricing",target:"_blank",rel:"noopener noreferrer",className:"mt-4",children:(0,t.jsxs)(n.Button,{variant:"coral",size:"sm",glow:!0,children:["Upgrade to ",c.TIER_LABELS[u],(0,t.jsx)(r,{size:12})]})})]})]})}e.s(["ProFeatureGate",()=>i],19711)},9070,e=>{e.v(t=>Promise.all(["static/chunks/5274a6127d41c42c.js"].map(t=>e.l(t))).then(()=>t(13213)))}]);
@@ -0,0 +1,3 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,27241,e=>{"use strict";let t,a,r,s,c;var i=e.i(27493),l=e.i(16871),n=e.i(4),o=e.i(53615),d=e.i(18509),x=e.i(24929);let m=(0,x.default)("radio-tower",[["path",{d:"M4.9 16.1C1 12.2 1 5.8 4.9 1.9",key:"s0qx1y"}],["path",{d:"M7.8 4.7a6.14 6.14 0 0 0-.8 7.5",key:"1idnkw"}],["circle",{cx:"12",cy:"9",r:"2",key:"1092wv"}],["path",{d:"M16.2 4.8c2 2 2.26 5.11.8 7.47",key:"ojru2q"}],["path",{d:"M19.1 1.9a9.96 9.96 0 0 1 0 14.1",key:"rhi7fg"}],["path",{d:"M9.5 18h5",key:"mfy3pd"}],["path",{d:"m8 22 4-11 4 11",key:"25yftu"}]]);var p=e.i(27528),u=e.i(51069),v=e.i(46194),h=e.i(40950),g=e.i(22534),b=e.i(45688),y=e.i(71921),j=e.i(1235),f=e.i(88969);let N=g.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function w(){let e=await (0,f.authFetch)(`${N}/api/iron-dome/status`);if(!e.ok)throw Error(await (0,f.readApiError)(e,"Failed to fetch Iron Dome status"));return e.json()}async function k(e){let t=await (0,f.authFetch)(`${N}/api/iron-dome/activate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({profile:e})});if(!t.ok)throw Error(await (0,f.readApiError)(t,"Failed to activate Iron Dome"));return t.json()}async function C(){let e=await (0,f.authFetch)(`${N}/api/iron-dome/deactivate`,{method:"POST"});if(!e.ok)throw Error(await (0,f.readApiError)(e,"Failed to deactivate Iron Dome"));return e.json()}async function S(e){let t=await (0,f.authFetch)(`${N}/api/iron-dome/config`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error(await (0,f.readApiError)(t,"Failed to update Iron Dome configuration"));return t.json()}async function _(e){let t=await (0,f.authFetch)(`${N}/api/iron-dome/scan`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:e})});if(!t.ok)throw Error(await (0,f.readApiError)(t,"Failed to scan text"));return t.json()}async function A(){let e=await (0,f.authFetch)(`${N}/api/iron-dome/emergency-stop`,{method:"POST"});if(!e.ok)throw Error(await (0,f.readApiError)(e,"Failed to trigger emergency stop"));return e.json()}async function E(e){let t=await (0,f.authFetch)(`${N}/api/iron-dome/resume`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reason:e||"Resumed via dashboard"})});if(!t.ok)throw Error(await (0,f.readApiError)(t,"Failed to resume operations"));return t.json()}async function P(){let e=await (0,f.authFetch)(`${N}/api/control/status`);if(!e.ok)throw Error(await (0,f.readApiError)(e,"Failed to fetch control status"));return e.json()}async function L(e){let t=new URLSearchParams;e&&t.set("limit",e.toString());let a=await (0,f.authFetch)(`${N}/api/iron-dome/audit?${t}`);if(!a.ok)throw Error(await (0,f.readApiError)(a,"Failed to fetch Iron Dome audit"));return a.json()}function z(){return(0,b.useQuery)({queryKey:["iron-dome-status"],queryFn:w,refetchInterval:3e4,retry:2})}var F=e.i(87353);let T=g.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function $(e){let t=new URLSearchParams;e?.limit&&t.set("limit",String(e.limit)),e?.severity&&t.set("severity",e.severity),e?.outcome&&t.set("outcome",e.outcome),e?.tool&&t.set("tool",e.tool);let a=await (0,f.authFetch)(`${T}/api/v1/intercepts?${t}`);if(!a.ok)throw Error(await (0,f.readApiError)(a,"Failed to fetch interceptor events"));return a.json()}function I(e){return(0,b.useQuery)({queryKey:["interceptor-events",e],queryFn:()=>$(e),refetchInterval:3e4,retry:2})}var M=e.i(84982);let q=(0,x.default)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);var R=e.i(15771),D=e.i(77715),O=e.i(66949),Q=e.i(71259);let K=(0,x.default)("radio",[["path",{d:"M16.247 7.761a6 6 0 0 1 0 8.478",key:"1fwjs5"}],["path",{d:"M19.075 4.933a10 10 0 0 1 0 14.134",key:"ehdyv1"}],["path",{d:"M4.925 19.067a10 10 0 0 1 0-14.134",key:"1q22gi"}],["path",{d:"M7.753 16.239a6 6 0 0 1 0-8.478",key:"r2q7qm"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]),B=(0,x.default)("shield-off",[["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M5 5a1 1 0 0 0-1 1v7c0 5 3.5 7.5 7.67 8.94a1 1 0 0 0 .67.01c2.35-.82 4.48-1.97 5.9-3.71",key:"1jlk70"}],["path",{d:"M9.309 3.652A12.252 12.252 0 0 0 11.24 2.28a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1v7a9.784 9.784 0 0 1-.08 1.264",key:"18rp1v"}]]),U=(0,x.default)("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]),V=(0,x.default)("scan",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}]]),H=(0,x.default)("octagon-x",[["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z",key:"2d38gg"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]),J=(0,x.default)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]),G=(0,x.default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);var W=e.i(77744),X=e.i(19711);let Z=g.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001",Y=[{id:1,name:"Block API key patterns",priority:1,condition_type:"regex",condition_value:"sk-[a-zA-Z0-9]{32,}",action:"block",enabled:!0},{id:2,name:"Quarantine code injection",priority:2,condition_type:"regex",condition_value:"eval\\(|Function\\(",action:"quarantine",enabled:!0},{id:3,name:"Allow internal docs",priority:10,condition_type:"source",condition_value:"agent:docs-helper",action:"allow",enabled:!1}],ee=[{id:1,name:"Internal tool abuse",category:"tool_misuse",severity:"high",regex:"execute_tool\\(.*?delete|drop|truncate",description:"Detects attempts to use internal tools for destructive operations.",enabled:!0},{id:2,name:"PII exfiltration",category:"data_leak",severity:"critical",regex:"(SSN|social.security|\\d{3}-\\d{2}-\\d{4})",description:"Catches social security number patterns in agent memory writes.",enabled:!0},{id:3,name:"Prompt override attempt",category:"injection",severity:"medium",regex:"ignore.*(previous|above|prior).*instructions",description:"Detects common prompt injection override phrases.",enabled:!0}],et=[{id:1,name:"Strict Healthcare",description:"Blocks all PII patterns, requires approval for external actions, whitelists only HIPAA-compliant channels.",is_active:!0},{id:2,name:"Dev Sandbox",description:"Permissive mode for development. Allows all channels, logs but does not block. Ideal for testing.",is_active:!1}];function ea(){let e,t,a,{data:r,isLoading:s,isLocked:c}={...e=(0,b.useQuery)({queryKey:["custom-patterns"],queryFn:()=>(0,f.gatedFetch)(`${Z}/api/patterns`).then(e=>{if(!e.ok)throw Error("Failed to fetch custom patterns");return e.json()}),retry:(e,t)=>!(t instanceof f.FeatureLockedError)&&e<2,refetchInterval:3e4}),isLocked:e.error instanceof f.FeatureLockedError},l=(t=(0,j.useQueryClient)(),(0,y.useMutation)({mutationFn:e=>(0,f.gatedFetch)(`${Z}/api/patterns`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}).then(e=>e.ok?e.json():e.json().then(e=>{throw Error(e.error)})),onSuccess:()=>{t.invalidateQueries({queryKey:["custom-patterns"]})}})),o=(a=(0,j.useQueryClient)(),(0,y.useMutation)({mutationFn:e=>(0,f.gatedFetch)(`${Z}/api/patterns/${e}`,{method:"DELETE"}).then(e=>e.ok?e.json():e.json().then(e=>{throw Error(e.error)})),onSuccess:()=>{a.invalidateQueries({queryKey:["custom-patterns"]})}})),d=(0,y.useMutation)({mutationFn:({id:e,text:t})=>(0,f.gatedFetch)(`${Z}/api/patterns/${e}/test`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:t})}).then(e=>e.ok?e.json():e.json().then(e=>{throw Error(e.error)}))}),[x,m]=(0,n.useState)(!1),[p,u]=(0,n.useState)(null),[v,h]=(0,n.useState)({name:"",category:"custom",severity:"medium",regex:"",description:""}),g=r?.patterns??[],N=!0,w="";if(v.regex)try{new RegExp(v.regex)}catch(e){N=!1,w=e.message}return c?(0,i.jsx)(er,{}):(0,i.jsxs)("div",{className:"space-y-3",children:[(0,i.jsxs)("div",{className:"flex items-center justify-between",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsx)(q,{size:16,className:"text-[var(--sc-coral)]"}),(0,i.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Custom Injection Patterns"}),(0,i.jsxs)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:[g.length,"/50"]})]}),(0,i.jsxs)("button",{onClick:()=>m(!x),className:"flex items-center gap-1 px-2 py-1 text-xs bg-[var(--sc-coral)]/20 text-[var(--sc-coral)] rounded hover:bg-[var(--sc-coral)]/30 transition-colors",children:[(0,i.jsx)(G,{size:12})," Add Pattern"]})]}),x&&(0,i.jsxs)("form",{onSubmit:e=>{e.preventDefault(),l.mutate(v,{onSuccess:()=>{m(!1),h({name:"",category:"custom",severity:"medium",regex:"",description:""})}})},className:"p-3 bg-[var(--sc-bg-elevated)] rounded-lg space-y-2",children:[(0,i.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,i.jsx)("input",{value:v.name,onChange:e=>h(t=>({...t,name:e.target.value})),placeholder:"Pattern name",required:!0,className:"px-2 py-1.5 text-xs bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)]"}),(0,i.jsxs)("select",{value:v.severity,onChange:e=>h(t=>({...t,severity:e.target.value})),className:"px-2 py-1.5 text-xs bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded text-[var(--sc-text-primary)]",children:[(0,i.jsx)("option",{value:"critical",children:"Critical"}),(0,i.jsx)("option",{value:"high",children:"High"}),(0,i.jsx)("option",{value:"medium",children:"Medium"}),(0,i.jsx)("option",{value:"low",children:"Low"})]})]}),(0,i.jsxs)("div",{className:"relative",children:[(0,i.jsx)("input",{value:v.regex,onChange:e=>h(t=>({...t,regex:e.target.value})),placeholder:"Regex pattern",required:!0,className:`w-full px-2 py-1.5 text-xs bg-[var(--sc-bg-surface)] border rounded text-[var(--sc-text-primary)] font-mono placeholder:text-[var(--sc-text-muted)] ${N?"border-[var(--sc-border)]":"border-[var(--sc-coral)]"}`}),!N&&(0,i.jsx)("p",{className:"text-[10px] text-[var(--sc-coral)] mt-0.5",children:w})]}),(0,i.jsx)("input",{value:v.description,onChange:e=>h(t=>({...t,description:e.target.value})),placeholder:"Description (optional)",className:"w-full px-2 py-1.5 text-xs bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)]"}),(0,i.jsxs)("div",{className:"flex gap-2",children:[(0,i.jsx)("button",{type:"submit",disabled:l.isPending||!N,className:"px-3 py-1 text-xs bg-[var(--sc-coral)] text-[var(--sc-text-primary)] rounded hover:bg-[var(--sc-coral)] disabled:opacity-50",children:l.isPending?"Creating...":"Create"}),(0,i.jsx)("button",{type:"button",onClick:()=>m(!1),className:"px-3 py-1 text-xs text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)]",children:"Cancel"})]}),l.error&&(0,i.jsx)("p",{className:"text-xs text-[var(--sc-coral)]",children:l.error.message})]}),s?(0,i.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)] py-4 text-center",children:"Loading patterns..."}):0===g.length?(0,i.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)] py-4 text-center",children:'No custom patterns yet. Click "Add Pattern" to create one.'}):(0,i.jsx)("div",{className:"space-y-1",children:g.map(e=>(0,i.jsxs)("div",{className:"px-3 py-2 bg-[var(--sc-bg-elevated)] rounded text-xs space-y-1",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsx)("span",{className:"text-[var(--sc-text-primary)] flex-1 font-medium",children:e.name}),(0,i.jsx)("span",{className:`px-1.5 py-0.5 rounded text-[10px] font-medium ${"critical"===e.severity||"high"===e.severity?"bg-[var(--sc-coral)]/20 text-[var(--sc-coral)]":"medium"===e.severity?"bg-[var(--sc-amber)]/20 text-[var(--sc-amber)]":"bg-[var(--sc-bg-elevated)]/20 text-[var(--sc-text-secondary)]"}`,children:e.severity}),(0,i.jsx)("button",{onClick:()=>u(p?.id===e.id?null:{id:e.id,text:""}),className:"text-[var(--sc-text-muted)] hover:text-[var(--sc-cyan)]",title:"Test pattern",children:(0,i.jsx)(J,{size:12})}),(0,i.jsx)("button",{onClick:()=>o.mutate(e.id),className:"text-[var(--sc-text-muted)] hover:text-[var(--sc-coral)]",children:(0,i.jsx)(W.Trash2,{size:12})})]}),(0,i.jsx)("code",{className:"text-[var(--sc-text-muted)] text-[10px] block truncate",children:e.regex}),p?.id===e.id&&(0,i.jsxs)("div",{className:"flex gap-2 mt-1",children:[(0,i.jsx)("input",{value:p.text,onChange:t=>u({id:e.id,text:t.target.value}),placeholder:"Test text...",className:"flex-1 px-2 py-1 text-[10px] bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)]"}),(0,i.jsx)("button",{onClick:()=>d.mutate({id:e.id,text:p.text}),disabled:!p.text,className:"px-2 py-1 text-[10px] bg-[var(--sc-cyan)]/20 text-[var(--sc-cyan)] rounded hover:bg-[var(--sc-cyan)]/30 disabled:opacity-50",children:"Test"}),d.data&&(0,i.jsxs)("span",{className:"text-[10px] text-[var(--sc-text-secondary)] self-center",children:[d.data.count," matches"]})]})]},e.id))})]})}function er(){return(0,i.jsxs)("div",{className:"space-y-3",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsx)(q,{size:16,className:"text-[var(--sc-coral)]"}),(0,i.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Custom Injection Patterns"}),(0,i.jsx)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:"0/50"})]}),(0,i.jsx)("div",{className:"space-y-1",children:ee.map(e=>(0,i.jsxs)("div",{className:"px-3 py-2 bg-[var(--sc-bg-elevated)] rounded text-xs space-y-1",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsx)("span",{className:"text-[var(--sc-text-primary)] flex-1 font-medium",children:e.name}),(0,i.jsx)("span",{className:`px-1.5 py-0.5 rounded text-[10px] font-medium ${"critical"===e.severity||"high"===e.severity?"bg-[var(--sc-coral)]/20 text-[var(--sc-coral)]":"bg-[var(--sc-amber)]/20 text-[var(--sc-amber)]"}`,children:e.severity})]}),(0,i.jsx)("code",{className:"text-[var(--sc-text-muted)] text-[10px] block truncate",children:e.regex})]},e.id))})]})}function es(){return(0,i.jsx)("div",{className:"bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded-xl p-4",children:(0,i.jsx)(X.ProFeatureGate,{feature:"custom_injection_patterns",label:"Define up to 50 custom regex patterns for detecting domain-specific threats.",children:(0,i.jsx)(ea,{})})})}var ec=e.i(16511);let ei=g.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";function el(){let e,t,a,r,{data:s,isLoading:c,isLocked:l}={...e=(0,b.useQuery)({queryKey:["custom-policies"],queryFn:()=>(0,f.gatedFetch)(`${ei}/api/iron-dome/policies`).then(e=>{if(!e.ok)throw Error("Failed to fetch custom policies");return e.json()}),retry:(e,t)=>!(t instanceof f.FeatureLockedError)&&e<2,refetchInterval:3e4}),isLocked:e.error instanceof f.FeatureLockedError},o=(t=(0,j.useQueryClient)(),(0,y.useMutation)({mutationFn:e=>(0,f.gatedFetch)(`${ei}/api/iron-dome/policies`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}).then(e=>e.ok?e.json():e.json().then(e=>{throw Error(e.error)})),onSuccess:()=>{t.invalidateQueries({queryKey:["custom-policies"]})}})),d=(a=(0,j.useQueryClient)(),(0,y.useMutation)({mutationFn:e=>(0,f.gatedFetch)(`${ei}/api/iron-dome/policies/${e}`,{method:"DELETE"}).then(e=>e.ok?e.json():e.json().then(e=>{throw Error(e.error)})),onSuccess:()=>{a.invalidateQueries({queryKey:["custom-policies"]})}})),x=(r=(0,j.useQueryClient)(),(0,y.useMutation)({mutationFn:e=>(0,f.gatedFetch)(`${ei}/api/iron-dome/policies/${e}/activate`,{method:"PUT"}).then(e=>e.ok?e.json():e.json().then(e=>{throw Error(e.error)})),onSuccess:()=>{r.invalidateQueries({queryKey:["custom-policies"]})}})),[m,u]=(0,n.useState)(!1),[v,h]=(0,n.useState)({name:"",description:""}),g=s?.policies??[];return l?(0,i.jsx)(en,{}):(0,i.jsxs)("div",{className:"space-y-3",children:[(0,i.jsxs)("div",{className:"flex items-center justify-between",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsx)(p.Shield,{size:16,className:"text-[var(--sc-coral)]"}),(0,i.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Custom Iron Dome Policies"}),(0,i.jsxs)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:[g.length,"/10"]})]}),(0,i.jsxs)("button",{onClick:()=>u(!m),className:"flex items-center gap-1 px-2 py-1 text-xs bg-[var(--sc-coral)]/20 text-[var(--sc-coral)] rounded hover:bg-[var(--sc-coral)]/30 transition-colors",children:[(0,i.jsx)(G,{size:12})," Create Policy"]})]}),m&&(0,i.jsxs)("form",{onSubmit:e=>{e.preventDefault(),o.mutate({name:v.name,description:v.description,config:{}},{onSuccess:()=>{u(!1),h({name:"",description:""})}})},className:"p-3 bg-[var(--sc-bg-elevated)]/50 rounded-lg space-y-2",children:[(0,i.jsx)("input",{value:v.name,onChange:e=>h(t=>({...t,name:e.target.value})),placeholder:"Policy name",required:!0,className:"w-full px-2 py-1.5 text-xs bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)]"}),(0,i.jsx)("textarea",{value:v.description,onChange:e=>h(t=>({...t,description:e.target.value})),placeholder:"Description",rows:2,className:"w-full px-2 py-1.5 text-xs bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)] resize-none"}),(0,i.jsxs)("div",{className:"flex gap-2",children:[(0,i.jsx)("button",{type:"submit",disabled:o.isPending,className:"px-3 py-1 text-xs bg-[var(--sc-coral)] text-[var(--sc-text-primary)] rounded hover:bg-[var(--sc-coral)] disabled:opacity-50",children:o.isPending?"Creating...":"Create"}),(0,i.jsx)("button",{type:"button",onClick:()=>u(!1),className:"px-3 py-1 text-xs text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)]",children:"Cancel"})]}),o.error&&(0,i.jsx)("p",{className:"text-xs text-[var(--sc-coral)]",children:o.error.message})]}),c?(0,i.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)] py-4 text-center",children:"Loading policies..."}):0===g.length?(0,i.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)] py-4 text-center",children:'No custom policies yet. Click "Create Policy" to get started.'}):(0,i.jsx)("div",{className:"space-y-1",children:g.map(e=>(0,i.jsxs)("div",{className:"flex items-center gap-3 px-3 py-2 bg-[var(--sc-bg-elevated)]/30 rounded text-xs",children:[(0,i.jsxs)("div",{className:"flex-1",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsx)("span",{className:"text-[var(--sc-text-primary)] font-medium",children:e.name}),1===e.is_active&&(0,i.jsx)("span",{className:"px-1.5 py-0.5 rounded bg-[var(--sc-cyan)]/20 text-[var(--sc-cyan)] text-[10px] font-medium",children:"Active"})]}),e.description&&(0,i.jsx)("p",{className:"text-[var(--sc-text-muted)] text-[10px] mt-0.5",children:e.description})]}),!e.is_active&&(0,i.jsxs)("button",{onClick:()=>x.mutate(e.id),className:"flex items-center gap-1 px-2 py-1 text-[10px] bg-[var(--sc-cyan)]/20 text-[var(--sc-cyan)] rounded hover:bg-[var(--sc-cyan)]/30",title:"Set active",children:[(0,i.jsx)(ec.Check,{size:10})," Activate"]}),(0,i.jsx)("button",{onClick:()=>d.mutate(e.id),className:"text-[var(--sc-text-muted)] hover:text-[var(--sc-coral)]",children:(0,i.jsx)(W.Trash2,{size:12})})]},e.id))})]})}function en(){return(0,i.jsxs)("div",{className:"space-y-3",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsx)(p.Shield,{size:16,className:"text-[var(--sc-coral)]"}),(0,i.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Custom Iron Dome Policies"}),(0,i.jsx)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:"0/10"})]}),(0,i.jsx)("div",{className:"space-y-1",children:et.map(e=>(0,i.jsx)("div",{className:"flex items-center gap-3 px-3 py-2 bg-[var(--sc-bg-elevated)]/30 rounded text-xs",children:(0,i.jsxs)("div",{className:"flex-1",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsx)("span",{className:"text-[var(--sc-text-primary)] font-medium",children:e.name}),e.is_active&&(0,i.jsx)("span",{className:"px-1.5 py-0.5 rounded bg-[var(--sc-cyan)]/20 text-[var(--sc-cyan)] text-[10px] font-medium",children:"Active"})]}),(0,i.jsx)("p",{className:"text-[var(--sc-text-muted)] text-[10px] mt-0.5",children:e.description})]})},e.id))})]})}function eo(){return(0,i.jsx)("div",{className:"bg-[var(--sc-bg-surface)]/50 border border-[var(--sc-border)] rounded-xl p-4",children:(0,i.jsx)(X.ProFeatureGate,{feature:"custom_iron_dome_policies",label:"Create custom Iron Dome policies with tailored action gates and trust levels.",children:(0,i.jsx)(el,{})})})}let ed=[{id:"personal",label:"Personal",description:"Lighter touch for solo use",icon:p.Shield},{id:"enterprise",label:"Enterprise",description:"Financial & data protection",icon:O.Lock},{id:"school",label:"School",description:"GDPR strict, pupil data guarded",icon:U},{id:"paranoid",label:"Paranoid",description:"Everything requires approval",icon:d.AlertTriangle}],ex=[{name:"Injection Scanner",description:"40+ patterns across 8 categories",icon:V},{name:"Instruction Gateway",description:"Trusted channel validation",icon:K},{name:"Action Gate",description:"Approve / block external actions",icon:O.Lock},{name:"PII Guard",description:"Block sensitive data output",icon:Q.Eye},{name:"Kill Switch",description:"Emergency stop phrase",icon:B},{name:"Sub-Agent Control",description:"Restrict spawned agent operations",icon:U}],em={critical:"bg-[var(--sc-coral)]/20 text-[var(--sc-coral)] border-[var(--sc-coral)]/30",high:"bg-[var(--sc-coral)]/20 text-[var(--sc-coral)] border-[var(--sc-coral)]/30",medium:"bg-[var(--sc-amber)]/20 text-[var(--sc-amber)] border-[var(--sc-amber)]/30",low:"bg-[var(--sc-bg-elevated)]/20 text-[var(--sc-text-secondary)] border-[var(--sc-border)]/30"},ep={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 eu(){let e,t,a,r,s,{data:c,isLoading:l}=z(),{data:o}=(0,b.useQuery)({queryKey:["iron-dome-audit",50],queryFn:()=>L(50),refetchInterval:3e4,retry:2}),d=(e=(0,j.useQueryClient)(),(0,y.useMutation)({mutationFn:e=>k(e),onSuccess:()=>{e.invalidateQueries({queryKey:["iron-dome-status"]}),e.invalidateQueries({queryKey:["iron-dome-audit"]})}})),x=(t=(0,j.useQueryClient)(),(0,y.useMutation)({mutationFn:C,onSuccess:()=>{t.invalidateQueries({queryKey:["iron-dome-status"]})}})),m=(a=(0,j.useQueryClient)(),(0,y.useMutation)({mutationFn:e=>S(e),onSuccess:()=>{a.invalidateQueries({queryKey:["iron-dome-status"]}),a.invalidateQueries({queryKey:["iron-dome-audit"]})}})),u=(0,y.useMutation)({mutationFn:_}),v=(r=(0,j.useQueryClient)(),(0,y.useMutation)({mutationFn:A,onSuccess:()=>{r.invalidateQueries({queryKey:["iron-dome-status"]}),r.invalidateQueries({queryKey:["iron-dome-audit"]}),r.invalidateQueries({queryKey:["control-status"]})}})),h=(s=(0,j.useQueryClient)(),(0,y.useMutation)({mutationFn:e=>E(e),onSuccess:()=>{s.invalidateQueries({queryKey:["control-status"]}),s.invalidateQueries({queryKey:["iron-dome-status"]}),s.invalidateQueries({queryKey:["iron-dome-audit"]})}})),{data:g}=(0,b.useQuery)({queryKey:["control-status"],queryFn:P,refetchInterval:5e3,retry:2}),[f,N]=(0,n.useState)(""),[w,F]=(0,n.useState)(null),[T,$]=(0,n.useState)(""),I=c?.enabled??!1,O=g?.killSwitchActive??!1,Q=g?.killSwitchMeta??null,K=c?.profile,U=c?.config,G=U?.killPhrase??"",[W,X]=(0,n.useState)(G),[Z,Y]=(0,n.useState)(G);G!==Z&&(Y(G),X(G));let ee=o?.logs??[],et=ee.filter(e=>"BLOCK"===e.firewall_result).length,ea=ee.filter(e=>"ALLOW"===e.firewall_result).length,er=!!U&&W.trim()!==(U?.killPhrase??"");return(0,i.jsxs)("div",{className:"space-y-6",children:[(0,i.jsxs)("div",{className:"flex items-center gap-3",children:[l?(0,i.jsx)("span",{className:"text-[10px] text-[var(--sc-text-muted)] animate-pulse",children:"Loading..."}):(0,i.jsx)("span",{className:`text-[10px] font-medium px-2 py-0.5 rounded-full ${I?"bg-[var(--sc-coral)]/20 text-[var(--sc-coral)] border border-[var(--sc-coral)]/30":"bg-[var(--sc-bg-elevated)]/50 text-[var(--sc-text-muted)]"}`,children:I?"ACTIVE":"INACTIVE"}),I&&(0,i.jsxs)("button",{onClick:()=>{x.mutate()},disabled:x.isPending,className:"flex items-center gap-1.5 px-3 py-1.5 bg-[var(--sc-coral)]/10 border border-[var(--sc-coral)]/30 hover:bg-[var(--sc-coral)]/20 disabled:opacity-50 rounded-lg text-xs font-medium text-[var(--sc-coral)] transition-colors",children:[x.isPending?(0,i.jsx)(M.Loader2,{size:12,className:"animate-spin"}):(0,i.jsx)(B,{size:12}),"Deactivate"]})]}),(0,i.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[(0,i.jsxs)("div",{className:"glass-card p-6",children:[(0,i.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)] mb-3",children:"Security Profiles"}),(0,i.jsx)("div",{className:"grid grid-cols-2 gap-2",children:ed.map(({id:e,label:t,description:a,icon:r})=>(0,i.jsxs)("button",{onClick:()=>{d.mutate(e)},disabled:d.isPending,className:`text-left p-3 rounded-lg border transition-colors ${K===e?"border-[var(--sc-coral)]/50 bg-[var(--sc-coral)]/10 text-[var(--sc-coral)]":"border-[var(--sc-border)] bg-[var(--sc-bg-elevated)]/50 text-[var(--sc-text-secondary)] hover:border-[var(--sc-text-muted)]"}`,children:[(0,i.jsxs)("div",{className:"flex items-center gap-1.5 mb-1",children:[(0,i.jsx)(r,{size:12}),(0,i.jsx)("span",{className:"text-xs font-medium",children:t})]}),(0,i.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:a})]},e))})]}),(0,i.jsxs)("div",{className:"glass-card p-6",children:[(0,i.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)] mb-3",children:"Module Status"}),(0,i.jsx)("div",{className:"space-y-2",children:ex.map(({name:e,description:t,icon:a})=>(0,i.jsxs)("div",{className:"flex items-center gap-3 px-3 py-2 rounded-lg bg-[var(--sc-bg-elevated)]/50",children:[(0,i.jsx)(a,{size:14,className:I?"text-[var(--sc-coral)]":"text-[var(--sc-text-muted)]"}),(0,i.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,i.jsx)("div",{className:"text-xs font-medium text-[var(--sc-text-primary)]",children:e}),(0,i.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)] truncate",children:t})]}),(0,i.jsx)("span",{className:`w-2 h-2 rounded-full ${I?"bg-[var(--sc-coral)]":"bg-[var(--sc-text-muted)]"}`})]},e))})]})]}),U&&(0,i.jsxs)("div",{className:"glass-card p-6",children:[(0,i.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)] mb-3",children:"Active Configuration"}),(0,i.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4 text-xs",children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)] uppercase mb-1",children:"Trusted Channels"}),(0,i.jsx)("div",{className:"flex flex-wrap gap-1",children:U.trustedChannels.map(e=>(0,i.jsx)("span",{className:"px-1.5 py-0.5 bg-[var(--sc-bg-elevated)] rounded text-[var(--sc-text-secondary)]",children:e},e))})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)] uppercase mb-1",children:"Requires Approval"}),(0,i.jsx)("div",{className:"flex flex-wrap gap-1",children:U.requireApproval.map(e=>(0,i.jsx)("span",{className:"px-1.5 py-0.5 bg-[var(--sc-coral)]/10 border border-[var(--sc-coral)]/20 rounded text-[var(--sc-coral)]",children:e},e))})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)] uppercase mb-1",children:"Kill Phrase"}),(0,i.jsxs)("div",{className:"space-y-2",children:[(0,i.jsx)("input",{type:"text",value:W,onChange:e=>X(e.target.value),placeholder:"Set emergency stop phrase",className:"w-full bg-[var(--sc-bg-elevated)] border border-[var(--sc-border)] rounded-lg px-3 py-2 text-xs text-[var(--sc-text-primary)] font-mono placeholder:text-[var(--sc-text-muted)] focus:outline-none focus:ring-1 focus:ring-[var(--sc-coral)]"}),(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsx)("button",{onClick:()=>m.mutate({killPhrase:W.trim()}),disabled:m.isPending||!W.trim()||!er,className:"px-3 py-1.5 rounded-lg bg-[var(--sc-coral)] hover:bg-[var(--sc-coral)]/80 disabled:opacity-50 text-[11px] font-medium text-[var(--sc-text-primary)] transition-colors",children:m.isPending?"Saving...":"Save phrase"}),(0,i.jsx)("span",{className:"text-[10px] text-[var(--sc-text-muted)]",children:I?"Say this in a conversation to trigger lockdown.":"This will apply the next time Iron Dome is active."})]})]})]})]})]}),O?(0,i.jsxs)("div",{className:"glass-card-strong p-6 border-2 !border-[var(--sc-coral)]/50 animate-pulse-slow",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,i.jsx)(H,{size:18,className:"text-[var(--sc-coral)]"}),(0,i.jsx)("h3",{className:"text-sm font-bold text-[var(--sc-coral)] uppercase tracking-wide",children:"Kill Switch Active"}),(0,i.jsx)("span",{className:"ml-auto text-[10px] bg-[var(--sc-coral)]/20 text-[var(--sc-coral)] px-2 py-0.5 rounded-full border border-[var(--sc-coral)]/30",children:"LOCKDOWN"})]}),(0,i.jsx)("p",{className:"text-xs text-[var(--sc-coral)]/80 mb-2",children:"All agent operations are blocked. No memory reads, writes, graph queries, or consolidation. Iron Dome remains active and continues protecting."}),Q&&(0,i.jsxs)("div",{className:"bg-[var(--sc-coral)]/10 border border-[var(--sc-coral)]/20 rounded-lg p-3 mb-4 space-y-1",children:[(0,i.jsxs)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:[(0,i.jsx)("span",{className:"text-[var(--sc-coral)] font-medium",children:"Triggered:"})," ",new Date(Q.triggeredAt).toLocaleString()]}),(0,i.jsxs)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:[(0,i.jsx)("span",{className:"text-[var(--sc-coral)] font-medium",children:"Source:"})," ","kill_phrase"===Q.source?`Kill phrase "${Q.phrase}"`:"manual"===Q.source?"Manual (dashboard)":"mcp_tool"===Q.source?"MCP tool":Q.source]}),void 0!==Q.memoryCountAtTrigger&&(0,i.jsxs)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:[(0,i.jsx)("span",{className:"text-[var(--sc-coral)] font-medium",children:"Memories at trigger:"})," ",Q.memoryCountAtTrigger]})]}),(0,i.jsxs)("div",{className:"space-y-2",children:[(0,i.jsx)("input",{type:"text",value:T,onChange:e=>$(e.target.value),placeholder:"Reason for resuming (required)...",className:"w-full bg-[var(--sc-bg-elevated)] border border-[var(--sc-border)] rounded-lg px-3 py-2 text-xs text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)] focus:outline-none focus:ring-1 focus:ring-green-500"}),(0,i.jsxs)("div",{className:"flex items-center gap-3",children:[(0,i.jsxs)("button",{onClick:()=>{T.trim()&&(h.mutate(T.trim()),$(""))},disabled:h.isPending||!T.trim(),className:"flex items-center gap-1.5 px-4 py-2 bg-[var(--sc-cyan)] hover:bg-[var(--sc-cyan-mid)] disabled:opacity-50 rounded-lg text-xs font-medium text-[var(--sc-text-primary)] transition-colors",children:[h.isPending?(0,i.jsx)(M.Loader2,{size:12,className:"animate-spin"}):(0,i.jsx)(J,{size:12}),"Resume Agent"]}),(0,i.jsx)("span",{className:"text-[10px] text-[var(--sc-text-muted)]",children:"Only resume after you've investigated the threat"})]})]})]}):(0,i.jsxs)("div",{className:"glass-card p-6 !border-[var(--sc-coral)]/30",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,i.jsx)(H,{size:14,className:"text-[var(--sc-coral)]"}),(0,i.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-coral)]",children:"Emergency Stop"})]}),(0,i.jsx)("p",{className:"text-xs text-[var(--sc-text-secondary)] mb-3",children:"Immediately halts your agent when you suspect it has been compromised or is acting on poisoned data. Blocks ALL operations — no reads, writes, or modifications. Iron Dome stays active."}),U?.killPhrase&&(0,i.jsxs)("p",{className:"text-[10px] text-[var(--sc-text-muted)] mb-3",children:["Kill phrase: ",(0,i.jsxs)("span",{className:"font-mono text-[var(--sc-text-secondary)]",children:['"',U.killPhrase,'"']})," — say this in conversation for hands-free stop"]}),(0,i.jsxs)("button",{onClick:()=>v.mutate(),disabled:v.isPending,className:"flex items-center gap-1.5 px-4 py-2 bg-[var(--sc-coral)] hover:bg-[var(--sc-coral)]/80 disabled:opacity-50 rounded-lg text-xs font-bold text-[var(--sc-text-primary)] uppercase tracking-wider transition-colors",children:[v.isPending?(0,i.jsx)(M.Loader2,{size:12,className:"animate-spin"}):(0,i.jsx)(H,{size:14}),"Emergency Stop"]})]}),(0,i.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[(0,i.jsxs)("div",{className:"glass-card p-6",children:[(0,i.jsxs)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)] mb-3",children:[(0,i.jsx)(V,{size:14,className:"inline mr-1.5 text-[var(--sc-coral)]"}),"Injection Scanner"]}),(0,i.jsx)("textarea",{value:f,onChange:e=>N(e.target.value),placeholder:"Paste suspicious text to scan for injection patterns...",className:"w-full h-28 bg-[var(--sc-bg-elevated)] border border-[var(--sc-border)] rounded-lg p-3 text-sm text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)] resize-none focus:outline-none focus:ring-1 focus:ring-[var(--sc-coral)] focus:border-[var(--sc-coral)]"}),(0,i.jsxs)("button",{onClick:()=>{f.trim()&&u.mutate(f,{onSuccess:e=>F(e)})},disabled:u.isPending||!f.trim(),className:"mt-2 flex items-center gap-1.5 px-3 py-1.5 bg-[var(--sc-coral)] hover:bg-[var(--sc-coral)]/80 disabled:opacity-50 rounded-lg text-xs font-medium text-[var(--sc-text-primary)] transition-colors",children:[u.isPending?(0,i.jsx)(M.Loader2,{size:12,className:"animate-spin"}):(0,i.jsx)(q,{size:12}),"Scan"]}),w&&(0,i.jsxs)("div",{className:"mt-3 space-y-2",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[w.clean?(0,i.jsx)(R.CheckCircle2,{size:14,className:"text-[var(--sc-cyan)]"}):(0,i.jsx)(D.XCircle,{size:14,className:"text-[var(--sc-coral)]"}),(0,i.jsx)("span",{className:`text-[10px] font-medium px-2 py-0.5 rounded-full ${ep[w.riskLevel]??"bg-[var(--sc-bg-elevated)]/20 text-[var(--sc-text-secondary)]"}`,children:w.riskLevel}),(0,i.jsx)("span",{className:"text-xs text-[var(--sc-text-secondary)]",children:w.summary})]}),w.detections.map((e,t)=>(0,i.jsxs)("div",{className:`border rounded-lg p-3 ${em[e.severity]??"border-[var(--sc-border)]"}`,children:[(0,i.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,i.jsx)("span",{className:"text-[10px] font-medium uppercase",children:e.severity}),(0,i.jsx)("span",{className:"text-xs text-[var(--sc-text-primary)]",children:e.category.replace(/_/g," ")})]}),(0,i.jsx)("p",{className:"text-[11px] text-[var(--sc-text-secondary)] mb-1",children:e.description}),(0,i.jsx)("code",{className:"text-[10px] text-[var(--sc-text-muted)] bg-[var(--sc-bg-elevated)] px-1.5 py-0.5 rounded block truncate",children:e.match})]},t))]})]}),(0,i.jsxs)("div",{className:"glass-card p-6",children:[(0,i.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,i.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Event Feed"}),(0,i.jsxs)("span",{className:"text-[10px] text-[var(--sc-text-muted)]",children:["Last ",ee.length," events"]})]}),(0,i.jsxs)("div",{className:"grid grid-cols-3 gap-2 mb-3",children:[(0,i.jsxs)("div",{className:"bg-[var(--sc-bg-elevated)]/50 rounded-lg p-2 text-center",children:[(0,i.jsx)("div",{className:"text-sm font-bold text-[var(--sc-text-primary)]",children:ee.length}),(0,i.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:"Total"})]}),(0,i.jsxs)("div",{className:"bg-[var(--sc-bg-elevated)]/50 rounded-lg p-2 text-center",children:[(0,i.jsx)("div",{className:"text-sm font-bold text-[var(--sc-coral)]",children:et}),(0,i.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:"Blocked"})]}),(0,i.jsxs)("div",{className:"bg-[var(--sc-bg-elevated)]/50 rounded-lg p-2 text-center",children:[(0,i.jsx)("div",{className:"text-sm font-bold text-[var(--sc-cyan)]",children:ea}),(0,i.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:"Allowed"})]})]}),(0,i.jsx)("div",{className:"space-y-1 max-h-72 overflow-y-auto",children:0===ee.length?(0,i.jsxs)("div",{className:"text-center py-6",children:[(0,i.jsx)(p.Shield,{size:20,className:"text-[var(--sc-text-muted)] mx-auto mb-1.5"}),(0,i.jsx)("p",{className:"text-[10px] text-[var(--sc-text-muted)]",children:"No Iron Dome events yet"})]}):ee.map((e,t)=>(0,i.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1.5 rounded-md bg-[var(--sc-bg-elevated)]/50 text-xs",children:[(0,i.jsx)("span",{className:`w-1.5 h-1.5 rounded-full shrink-0 ${"BLOCK"===e.firewall_result?"bg-[var(--sc-coral)]":"bg-[var(--sc-cyan)]"}`}),(0,i.jsx)("span",{className:"text-[var(--sc-text-secondary)] truncate flex-1",children:(e.reason??"").replace(/^\[iron-dome:\w+\]\s*/,"")}),(0,i.jsx)("span",{className:"text-[10px] text-[var(--sc-text-muted)] shrink-0",children:new Date(e.timestamp).toLocaleTimeString()})]},e.id??t))})]})]}),(0,i.jsx)(es,{}),(0,i.jsx)(eo,{})]})}var ev=e.i(42098);let eh=(0,x.default)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);var eg=e.i(13808);let eb=(0,x.default)("tags",[["path",{d:"M13.172 2a2 2 0 0 1 1.414.586l6.71 6.71a2.4 2.4 0 0 1 0 3.408l-4.592 4.592a2.4 2.4 0 0 1-3.408 0l-6.71-6.71A2 2 0 0 1 6 9.172V3a1 1 0 0 1 1-1z",key:"16rjxf"}],["path",{d:"M2 7v6.172a2 2 0 0 0 .586 1.414l6.71 6.71a2.4 2.4 0 0 0 3.191.193",key:"178nd4"}],["circle",{cx:"10.5",cy:"6.5",r:".5",fill:"currentColor",key:"12ikhr"}]]),ey=(0,x.default)("wand-sparkles",[["path",{d:"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72",key:"ul74o6"}],["path",{d:"m14 7 3 3",key:"1r5n42"}],["path",{d:"M5 6v4",key:"ilb8ba"}],["path",{d:"M19 14v4",key:"blhpug"}],["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M7 8H3",key:"zfb6yr"}],["path",{d:"M21 16h-4",key:"1cnmox"}],["path",{d:"M11 3H9",key:"1obp7u"}]]);var ej=e.i(17278);let ef=(0,x.default)("square-check-big",[["path",{d:"M21 10.656V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.344",key:"2acyp4"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]),eN=(0,x.default)("square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]),ew=(0,x.default)("square-minus",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M8 12h8",key:"1wcyev"}]]);function ek({action:e,item:t,onConfirm:a,onCancel:r}){let[s,c]=(0,n.useState)(""),l="yes"===s.trim().toLowerCase(),o="memory_file"===t.source_type;return(0,i.jsx)("div",{className:"fixed inset-0 bg-black/60 flex items-center justify-center z-50",children:(0,i.jsxs)("div",{className:"bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded-xl p-6 max-w-md w-full mx-4",children:[(0,i.jsxs)("h3",{className:"text-sm font-semibold text-[var(--sc-text-primary)] mb-2",children:["approve"===e?"Approve":"Reject"," quarantined item?"]}),(0,i.jsx)("p",{className:"text-xs text-[var(--sc-text-secondary)] mb-1",children:(0,i.jsx)("strong",{children:t.title||"Untitled"})}),(0,i.jsx)("p",{className:"text-xs text-[var(--sc-text-muted)] mb-4",children:"approve"===e?o?"This will mark the memory-file finding as reviewed. The source file is not modified.":"This will approve the item and promote it into memory.":o?"This will dismiss the memory-file finding. The source file is not deleted or edited.":"This will permanently discard the memory."}),(0,i.jsxs)("div",{className:"mb-4",children:[(0,i.jsxs)("label",{className:"text-xs text-[var(--sc-text-secondary)] block mb-1",children:["Type ",(0,i.jsx)("strong",{className:"text-[var(--sc-text-primary)]",children:"YES"})," to confirm:"]}),(0,i.jsx)("input",{type:"text",value:s,onChange:e=>c(e.target.value),className:"w-full bg-[var(--sc-bg-elevated)] border border-[var(--sc-border)] text-[var(--sc-text-primary)] text-sm rounded-lg px-3 py-2 focus:ring-[var(--sc-cyan)] focus:border-[var(--sc-cyan)]",autoFocus:!0,onKeyDown:e=>{"Enter"===e.key&&l&&a(),"Escape"===e.key&&r()}})]}),(0,i.jsxs)("div",{className:"flex gap-2 justify-end",children:[(0,i.jsx)("button",{onClick:r,className:"px-3 py-1.5 text-xs text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)] transition-colors",children:"Cancel"}),(0,i.jsx)("button",{onClick:a,disabled:!l,className:`px-3 py-1.5 text-xs rounded-lg transition-colors ${l?"approve"===e?"bg-[var(--sc-cyan)] text-[var(--sc-text-primary)] hover:bg-[var(--sc-cyan-mid)]":"bg-[var(--sc-coral)] text-[var(--sc-text-primary)] hover:bg-[var(--sc-coral-mid)]":"bg-[var(--sc-bg-elevated)] text-[var(--sc-text-muted)] cursor-not-allowed"}`,children:"approve"===e&&o?"Mark reviewed":"approve"===e?"Approve":"Reject"})]})]})})}function eC({annotation:e}){var t;return(0,i.jsxs)("div",{className:"mb-3 rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)]/70 p-3",children:[(0,i.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,i.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-[10px] font-semibold uppercase tracking-[0.16em] text-[var(--sc-cyan)]",children:[(0,i.jsx)(eh,{size:12})," Local AI Explainer"]}),(0,i.jsx)("span",{className:"rounded border border-[var(--sc-border)] px-2 py-0.5 text-[10px] uppercase tracking-[0.12em] text-[var(--sc-text-secondary)]",children:e.category.replace(/_/g," ")}),(0,i.jsx)("span",{className:`rounded border px-2 py-0.5 text-[10px] uppercase tracking-[0.12em] ${"approve"===(t=e.suggestedAction)?"text-[var(--sc-cyan)] bg-[var(--sc-cyan)]/10 border-[var(--sc-cyan)]/25":"reject"===t?"text-[var(--sc-coral)] bg-[var(--sc-coral)]/10 border-[var(--sc-coral)]/25":"create_rule"===t?"text-[var(--sc-amber)] bg-[var(--sc-amber)]/10 border-[var(--sc-amber)]/25":"text-[var(--sc-text-secondary)] bg-[var(--sc-surface-interactive)] border-[var(--sc-border)]"}`,children:e.suggestedAction.replace(/_/g," ")}),(0,i.jsxs)("span",{className:"text-[10px] text-[var(--sc-text-muted)]",children:[Math.round(100*e.confidence),"% confidence"]}),e.similarGroupKey&&(0,i.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-[var(--sc-text-muted)]",children:[(0,i.jsx)(eb,{size:11})," ",e.similarGroupKey]})]}),(0,i.jsx)("p",{className:"mt-2 text-xs leading-5 text-[var(--sc-text-primary)]",children:e.summary}),(0,i.jsx)("p",{className:"mt-1 text-[11px] leading-5 text-[var(--sc-text-secondary)]",children:e.reasoning}),e.evidence.length>0&&(0,i.jsx)("div",{className:"mt-2 space-y-1.5",children:e.evidence.map((e,t)=>(0,i.jsxs)("div",{className:"rounded border border-[var(--sc-border)] bg-[var(--sc-bg-surface)] px-2 py-1.5",children:[(0,i.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:e.reason}),(0,i.jsxs)("div",{className:"mt-0.5 text-[11px] text-[var(--sc-text-primary)] break-words",children:['"',e.snippet,'"']})]},`${e.snippet}-${t}`))})]})}function eS(){let{projectFilter:e}=(0,ev.useDashboardStore)(),[t,a]=(0,n.useState)("pending"),{data:r,isLoading:s}=(0,F.useQuarantine)(t,100,e||void 0),{data:c}=(0,F.useReviewCopilotStatus)(),l=(0,F.useApproveQuarantine)(),o=(0,F.useRejectQuarantine)(),x=(0,F.useBulkApproveQuarantine)(),m=(0,F.useBulkRejectQuarantine)(),p=(0,F.useAnnotateQuarantine)(),u=(0,F.useAnnotatePendingQuarantine)(),[v,h]=(0,n.useState)(null),[g,b]=(0,n.useState)(new Set),[y,j]=(0,n.useState)(null),f=l.error?.message||o.error?.message||x.error?.message||m.error?.message||p.error?.message||u.error?.message||null,N=r?.items??[],w=N.filter(e=>"pending"===e.status),k=N.filter(e=>e.annotation),C=w.filter(e=>!e.annotation),S=w.filter(e=>g.has(e.id)).filter(e=>"memory_file"===e.source_type).length,_=(()=>{let e=new Map;for(let t of k){let a=t.annotation?.similarGroupKey;a&&e.set(a,(e.get(a)??0)+1)}return[...e.entries()].sort((e,t)=>t[1]-e[1]).slice(0,3)})(),A=w.length>0&&w.every(e=>g.has(e.id)),E=w.some(e=>g.has(e.id)),P=p.isPending||u.isPending,L=!!(c?.enabled&&c.featureEnabled&&c.modelCached);return(0,i.jsxs)("div",{className:"space-y-6",children:[v&&(0,i.jsx)(ek,{action:v.action,item:v.item,onConfirm:()=>{v&&("approve"===v.action?l.mutate(v.item.id):o.mutate({id:v.item.id}),h(null))},onCancel:()=>h(null)}),y&&(0,i.jsx)("div",{className:"fixed inset-0 bg-black/60 flex items-center justify-center z-50",children:(0,i.jsxs)("div",{className:"bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded-xl p-6 max-w-md w-full mx-4",children:[(0,i.jsxs)("h3",{className:"text-sm font-semibold text-[var(--sc-text-primary)] mb-2",children:["approve"===y?"Approve":"Reject"," ",g.size," item",1!==g.size?"s":"","?"]}),(0,i.jsx)("p",{className:"text-xs text-[var(--sc-text-secondary)] mb-4",children:"approve"===y?S>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.":S>0?"Memory-file findings will be dismissed without editing files. Other selected memories will be discarded.":"This will permanently discard all selected memories."}),(0,i.jsxs)("div",{className:"flex gap-2 justify-end",children:[(0,i.jsx)("button",{onClick:()=>j(null),className:"px-3 py-1.5 text-xs text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)] transition-colors",children:"Cancel"}),(0,i.jsxs)("button",{onClick:()=>{if(!y||0===g.size)return;let e=Array.from(g);"approve"===y?x.mutate(e):m.mutate(e),b(new Set),j(null)},className:`px-3 py-1.5 text-xs rounded-lg transition-colors ${"approve"===y?"bg-[var(--sc-cyan)] text-[var(--sc-text-primary)] hover:bg-[var(--sc-cyan-mid)]":"bg-[var(--sc-coral)] text-[var(--sc-text-primary)] hover:bg-[var(--sc-coral-mid)]"}`,children:["approve"===y?"Approve":"Reject"," ",g.size," item",1!==g.size?"s":""]})]})]})}),(0,i.jsx)(X.ProFeatureGate,{feature:"local_ai_explainer",label:"Use a local model to explain and group quarantined items without sending content to the cloud.",children:(0,i.jsx)("div",{className:"glass-card p-5",children:(0,i.jsxs)("div",{className:"flex flex-col gap-4 lg:flex-row lg:items-center lg:justify-between",children:[(0,i.jsxs)("div",{children:[(0,i.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,i.jsxs)("h3",{className:"flex items-center gap-2 text-sm font-semibold text-[var(--sc-text-primary)]",children:[(0,i.jsx)(eg.Sparkles,{size:16,className:"text-[var(--sc-cyan)]"}),"Local AI Explainer"]}),(0,i.jsx)("span",{className:`rounded border px-2 py-0.5 text-[10px] uppercase tracking-[0.12em] ${c?.enabled?"border-[var(--sc-cyan)]/25 bg-[var(--sc-cyan)]/10 text-[var(--sc-cyan)]":"border-[var(--sc-border)] bg-[var(--sc-surface-interactive)] text-[var(--sc-text-muted)]"}`,children:c?.enabled?"enabled":"disabled"}),(0,i.jsx)("span",{className:`rounded border px-2 py-0.5 text-[10px] uppercase tracking-[0.12em] ${c?.modelCached?"border-[var(--sc-cyan)]/25 bg-[var(--sc-cyan)]/10 text-[var(--sc-cyan)]":"border-[var(--sc-border)] bg-[var(--sc-surface-interactive)] text-[var(--sc-text-muted)]"}`,children:c?.modelCached?"model cached":"model not cached"})]}),(0,i.jsx)("div",{className:"mt-2 text-xs leading-5 text-[var(--sc-text-secondary)]",children:c?.enabled?c.modelCached?"Explain unreviewed quarantine items locally; approve and reject decisions stay manual.":"Download the local model first: shieldcortex review-copilot download-model":"Enable from the CLI first: shieldcortex review-copilot enable"}),(0,i.jsxs)("div",{className:"mt-2 flex flex-wrap gap-2 text-[10px] text-[var(--sc-text-muted)]",children:[(0,i.jsxs)("span",{className:C.length>0?"text-[var(--sc-amber)]":"",children:[C.length," need explanation"]}),(0,i.jsxs)("span",{children:[k.length," explained in this view"]}),_.map(([e,t])=>(0,i.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,i.jsx)(eb,{size:11})," ",e,": ",t]},e))]})]}),(0,i.jsx)("div",{className:"flex flex-wrap gap-2",children:(0,i.jsxs)("button",{onClick:()=>{u.mutate({limit:Math.min(Math.max(C.length,1),100),project:e||void 0})},disabled:!L||P||0===C.length,className:"inline-flex items-center gap-1.5 rounded-lg bg-[var(--sc-cyan)]/10 px-3 py-1.5 text-xs font-semibold text-[var(--sc-cyan)] transition-colors hover:bg-[var(--sc-cyan)]/20 disabled:pointer-events-none disabled:opacity-45",children:[u.isPending?(0,i.jsx)(M.Loader2,{size:13,className:"animate-spin"}):(0,i.jsx)(ey,{size:13}),"Explain all"]})})]})})}),(0,i.jsxs)("div",{className:"glass-card p-5",children:[(0,i.jsx)("div",{className:"flex items-center justify-between",children:(0,i.jsx)("div",{className:"flex gap-1 bg-[var(--sc-bg-elevated)] rounded-lg p-0.5",children:["pending","approved","rejected"].map(e=>(0,i.jsx)("button",{onClick:()=>{a(e),b(new Set)},className:`px-3 py-1 text-xs rounded-md transition-colors capitalize ${t===e?"bg-[var(--sc-cyan)] text-[var(--sc-text-primary)]":"text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)]"}`,children:e},e))})}),"pending"===t&&w.length>0&&(0,i.jsxs)("div",{className:"flex items-center gap-3 mt-3",children:[(0,i.jsxs)("button",{onClick:()=>{A?b(new Set):b(new Set(w.map(e=>e.id)))},className:"flex items-center gap-1.5 text-xs text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)] transition-colors",children:[A?(0,i.jsx)(ef,{size:14,className:"text-[var(--sc-cyan)]"}):E?(0,i.jsx)(ew,{size:14,className:"text-[var(--sc-cyan)]"}):(0,i.jsx)(eN,{size:14}),A?"Deselect all":"Select all"]}),E&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:[g.size," selected"]}),(0,i.jsxs)("button",{onClick:()=>j("approve"),className:"flex items-center gap-1 px-2.5 py-1 text-xs bg-[var(--sc-cyan)]/10 text-[var(--sc-cyan)] rounded-lg hover:bg-[var(--sc-cyan)]/20 transition-colors",children:[(0,i.jsx)(ec.Check,{size:12})," Approve"]}),(0,i.jsxs)("button",{onClick:()=>j("reject"),className:"flex items-center gap-1 px-2.5 py-1 text-xs bg-[var(--sc-coral)]/10 text-[var(--sc-coral)] rounded-lg hover:bg-[var(--sc-coral)]/20 transition-colors",children:[(0,i.jsx)(ej.X,{size:12})," Reject"]})]})]})]}),f&&(0,i.jsx)("div",{className:"glass-card p-5 border-[var(--sc-coral)]/30 bg-[var(--sc-coral)]/10 text-sm text-[var(--sc-coral)]",children:f}),(0,i.jsx)("div",{children:s?(0,i.jsx)("div",{className:"glass-card p-5 flex items-center justify-center h-32",children:(0,i.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)] animate-pulse",children:"Loading quarantine items..."})}):0===N.length?(0,i.jsxs)("div",{className:"glass-card p-5 flex flex-col items-center justify-center h-32 text-[var(--sc-text-muted)]",children:[(0,i.jsx)(d.AlertTriangle,{size:24,className:"mb-2 text-[var(--sc-text-muted)]"}),(0,i.jsxs)("span",{className:"text-xs",children:["No ",t," items"]})]}):(0,i.jsx)("div",{className:"space-y-3",children:N.map(e=>{let t=(()=>{try{return JSON.parse(e.threat_indicators)}catch{return[]}})(),a="memory_file"===e.source_type;return(0,i.jsxs)("div",{className:`glass-card p-5 ${g.has(e.id)?"border-[var(--sc-cyan)]/50":"pending"===e.status&&!e.annotation?"border-[var(--sc-amber)]/35":""}`,children:[(0,i.jsxs)("div",{className:"flex items-start justify-between mb-2",children:[(0,i.jsxs)("div",{className:"flex items-start gap-2.5",children:["pending"===e.status&&(0,i.jsx)("button",{onClick:()=>{var t;return t=e.id,void b(e=>{let a=new Set(e);return a.has(t)?a.delete(t):a.add(t),a})},className:"mt-0.5 text-[var(--sc-text-muted)] hover:text-[var(--sc-cyan)] transition-colors shrink-0",children:g.has(e.id)?(0,i.jsx)(ef,{size:14,className:"text-[var(--sc-cyan)]"}):(0,i.jsx)(eN,{size:14})}),(0,i.jsxs)("div",{children:[(0,i.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,i.jsx)("h4",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:e.title||"Untitled"}),"pending"===e.status&&!e.annotation&&(0,i.jsxs)("span",{className:"inline-flex items-center gap-1 rounded border border-[var(--sc-amber)]/25 bg-[var(--sc-amber)]/10 px-2 py-0.5 text-[9px] font-semibold uppercase tracking-[0.12em] text-[var(--sc-amber)]",children:[(0,i.jsx)(eh,{size:10})," Needs explanation"]})]}),(0,i.jsxs)("div",{className:"text-[10px] text-[var(--sc-text-muted)] mt-0.5",children:[e.source_type," · ",new Date(e.created_at).toLocaleString(),e.anomaly_score>0&&(0,i.jsxs)("span",{className:`ml-2 ${e.anomaly_score>.5?"text-[var(--sc-coral)]":"text-[var(--sc-amber)]"}`,children:["Anomaly: ",e.anomaly_score.toFixed(2)]})]}),a&&(0,i.jsx)("div",{className:"mt-1 break-all font-mono text-[10px] text-[var(--sc-text-muted)]",children:e.source_identifier})]})]}),(0,i.jsx)("span",{className:"text-[10px] text-[var(--sc-coral)] bg-[var(--sc-coral)]/10 px-2 py-0.5 rounded",children:e.reason?.slice(0,50)||"Threat detected"})]}),(0,i.jsx)("div",{className:"bg-[var(--sc-bg-elevated)] rounded-lg p-3 mb-3 text-xs text-[var(--sc-text-primary)] whitespace-pre-wrap break-words",children:e.content?.slice(0,500)||"No content"}),t.length>0&&(0,i.jsx)("div",{className:"flex gap-1 mb-3 flex-wrap",children:t.map((e,t)=>(0,i.jsx)("span",{className:"text-[9px] text-[var(--sc-amber)] bg-[var(--sc-amber)]/10 px-1.5 py-0.5 rounded",children:e},t))}),e.annotation&&(0,i.jsx)(eC,{annotation:e.annotation}),"pending"===e.status&&(0,i.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,i.jsxs)("button",{onClick:()=>p.mutate(e.id),disabled:!L||p.isPending||u.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:[p.isPending?(0,i.jsx)(M.Loader2,{size:12,className:"animate-spin"}):(0,i.jsx)(ey,{size:12}),e.annotation?"Re-explain":"Explain"]}),(0,i.jsxs)("button",{onClick:()=>h({action:"approve",item:e}),disabled:l.isPending||x.isPending,className:"flex items-center gap-1 px-3 py-1.5 text-xs bg-[var(--sc-cyan)]/10 text-[var(--sc-cyan)] rounded-lg hover:bg-[var(--sc-cyan)]/20 transition-colors",children:[(0,i.jsx)(ec.Check,{size:12})," ",a?"Mark reviewed":"Approve"]}),(0,i.jsxs)("button",{onClick:()=>h({action:"reject",item:e}),disabled:o.isPending||m.isPending,className:"flex items-center gap-1 px-3 py-1.5 text-xs bg-[var(--sc-coral)]/10 text-[var(--sc-coral)] rounded-lg hover:bg-[var(--sc-coral)]/20 transition-colors",children:[(0,i.jsx)(ej.X,{size:12})," Reject"]})]}),e.reviewed_at&&(0,i.jsxs)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:["approved"===e.status?"Approved":"Rejected"," by ",e.reviewed_by," at ",new Date(e.reviewed_at).toLocaleString()]})]},e.id)})})})]})}let e_=(0,x.default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]),eA=(0,x.default)("file-braces",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1",key:"1oajmo"}],["path",{d:"M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1",key:"mpwhp6"}]]);var eE=e.i(75025);let eP=g.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";function eL(){let e=(0,y.useMutation)({mutationFn:async({format:e,startTime:t,endTime:a})=>{let r=new URLSearchParams({format:e});t&&r.set("startTime",t),a&&r.set("endTime",a);let s=await (0,f.gatedFetch)(`${eP}/api/audit/export?${r}`);if(!s.ok)throw Error((await s.json().catch(()=>({}))).error||"Export failed");let c=await s.blob(),i=URL.createObjectURL(c),l=document.createElement("a");return l.href=i,l.download=`shieldcortex-audit-${Date.now()}.${"csv"===e?"csv":"json"}`,document.body.appendChild(l),l.click(),document.body.removeChild(l),setTimeout(()=>URL.revokeObjectURL(i),200),{success:!0}}}),[t,a]=(0,n.useState)("json");return(0,i.jsxs)("div",{className:"space-y-3",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsx)(e_,{size:16,className:"text-[var(--sc-cyan)]"}),(0,i.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Export Audit Logs"})]}),(0,i.jsxs)("div",{className:"flex items-center gap-3",children:[(0,i.jsxs)("div",{className:"flex rounded-lg overflow-hidden border border-[var(--sc-border)]",children:[(0,i.jsxs)("button",{onClick:()=>a("json"),className:`flex items-center gap-1.5 px-3 py-1.5 text-xs transition-colors ${"json"===t?"bg-[var(--sc-cyan)]/20 text-[var(--sc-cyan)]":"bg-[var(--sc-bg-elevated)] text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)]"}`,children:[(0,i.jsx)(eA,{size:12})," JSON"]}),(0,i.jsxs)("button",{onClick:()=>a("csv"),className:`flex items-center gap-1.5 px-3 py-1.5 text-xs transition-colors ${"csv"===t?"bg-[var(--sc-cyan)]/20 text-[var(--sc-cyan)]":"bg-[var(--sc-bg-elevated)] text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)]"}`,children:[(0,i.jsx)(eE.FileText,{size:12})," CSV"]})]}),(0,i.jsxs)("button",{onClick:()=>e.mutate({format:t}),disabled:e.isPending,className:"flex items-center gap-1.5 px-4 py-1.5 text-xs bg-[var(--sc-cyan)] text-[var(--sc-text-primary)] rounded-lg hover:bg-[var(--sc-cyan)] disabled:opacity-50 transition-colors",children:[(0,i.jsx)(e_,{size:12}),e.isPending?"Exporting...":"Export"]})]}),e.error&&(0,i.jsx)("p",{className:"text-xs text-[var(--sc-coral)]",children:e.error.message}),e.isSuccess&&(0,i.jsx)("p",{className:"text-xs text-[var(--sc-cyan)]",children:"Export downloaded successfully."})]})}function ez(){return(0,i.jsx)("div",{className:"bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded-xl p-4",children:(0,i.jsx)(X.ProFeatureGate,{feature:"audit_export",label:"Export your full audit trail as JSON or CSV for compliance reporting.",children:(0,i.jsx)(eL,{})})})}var eF=e.i(76490);function eT({className:e,...t}){return(0,i.jsx)("div",{"data-slot":"card",className:(0,eF.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",e),...t})}function e$({className:e,...t}){return(0,i.jsx)("div",{"data-slot":"card-header",className:(0,eF.cn)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",e),...t})}function eI({className:e,...t}){return(0,i.jsx)("div",{"data-slot":"card-content",className:(0,eF.cn)("px-6",e),...t})}function eM(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}var eq=Symbol.for("react.lazy"),eR=n[" use ".trim().toString()];function eD(e){var t;return null!=e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===eq&&"_payload"in e&&"object"==typeof(t=e._payload)&&null!==t&&"then"in t}var eO=((c=n.forwardRef((e,t)=>{let{children:a,...r}=e;if(eD(a)&&"function"==typeof eR&&(a=eR(a._payload)),n.isValidElement(a)){var s;let e,c,i=(s=a,(c=(e=Object.getOwnPropertyDescriptor(s.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?s.ref:(c=(e=Object.getOwnPropertyDescriptor(s,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?s.props.ref:s.props.ref||s.ref),l=function(e,t){let a={...t};for(let r in t){let s=e[r],c=t[r];/^on[A-Z]/.test(r)?s&&c?a[r]=(...e)=>{let t=c(...e);return s(...e),t}:s&&(a[r]=s):"style"===r?a[r]={...s,...c}:"className"===r&&(a[r]=[s,c].filter(Boolean).join(" "))}return{...e,...a}}(r,a.props);return a.type!==n.Fragment&&(l.ref=t?function(...e){return t=>{let a=!1,r=e.map(e=>{let r=eM(e,t);return a||"function"!=typeof r||(a=!0),r});if(a)return()=>{for(let t=0;t<r.length;t++){let a=r[t];"function"==typeof a?a():eM(e[t],null)}}}}(t,i):i),n.cloneElement(a,l)}return n.Children.count(a)>1?n.Children.only(null):null})).displayName="Slot.SlotClone",t=c,(a=n.forwardRef((e,a)=>{let{children:r,...s}=e;eD(r)&&"function"==typeof eR&&(r=eR(r._payload));let c=n.Children.toArray(r),l=c.find(eK);if(l){let e=l.props.children,r=c.map(t=>t!==l?t:n.Children.count(e)>1?n.Children.only(null):n.isValidElement(e)?e.props.children:null);return(0,i.jsx)(t,{...s,ref:a,children:n.isValidElement(e)?n.cloneElement(e,void 0,r):null})}return(0,i.jsx)(t,{...s,ref:a,children:r})})).displayName="Slot.Slot",a),eQ=Symbol("radix.slottable");function eK(e){return n.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===eQ}var eB=e.i(2941);let eU=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,eV=eB.clsx,eH=(r="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",s={variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-[var(--sc-text-primary)] hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}},e=>{var t;if((null==s?void 0:s.variants)==null)return eV(r,null==e?void 0:e.class,null==e?void 0:e.className);let{variants:a,defaultVariants:c}=s,i=Object.keys(a).map(t=>{let r=null==e?void 0:e[t],s=null==c?void 0:c[t];if(null===r)return null;let i=eU(r)||eU(s);return a[t][i]}),l=e&&Object.entries(e).reduce((e,t)=>{let[a,r]=t;return void 0===r||(e[a]=r),e},{});return eV(r,i,null==s||null==(t=s.compoundVariants)?void 0:t.reduce((e,t)=>{let{class:a,className:r,...s}=t;return Object.entries(s).every(e=>{let[t,a]=e;return Array.isArray(a)?a.includes({...c,...l}[t]):({...c,...l})[t]===a})?[...e,a,r]:e},[]),null==e?void 0:e.class,null==e?void 0:e.className)});function eJ({className:e,variant:t="default",size:a="default",asChild:r=!1,...s}){return(0,i.jsx)(r?eO:"button",{"data-slot":"button","data-variant":t,"data-size":a,className:(0,eF.cn)(eH({variant:t,size:a,className:e})),...s})}var eG=e.i(76624),eW=e.i(23457);let eX={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"}},eZ={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)"}},eY={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 e0(e){return e>=.7?"#22C55E":e>=.4?"#EAB308":"#EF4444"}function e1(e){return e>.5?"#EF4444":e>.2?"#EAB308":"#94a3b8"}function e2({entry:e,onClose:t,onViewMemory:a}){let[r,s]=(0,n.useState)(!1),c=(0,eW.useLocalAiExplain)(),l=eX[e.firewall_result]||eX.ALLOW,o=eZ[e.sensitivity_level]||eZ.PUBLIC,d=function(e){try{let t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}}(e.threat_indicators),x=function(e){try{let t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}}(e.blocked_patterns),m=(0,n.useCallback)(()=>{let t=JSON.stringify(e,null,2);navigator.clipboard.writeText(t).then(()=>{s(!0),setTimeout(()=>s(!1),1500)})},[e]),p=(0,n.useCallback)(()=>{c.mutate({kind:"audit_event",title:`${e.firewall_result} audit event`,content:[`Audit ID: ${e.id}`,`Result: ${e.firewall_result}`,`Source: ${e.source_type}:${e.source_identifier}`,e.project?`Project: ${e.project}`:"",`Trust score: ${e.trust_score}`,`Anomaly score: ${e.anomaly_score}`,`Sensitivity: ${e.sensitivity_level}`,null!==e.fragmentation_score?`Fragmentation score: ${e.fragmentation_score}`:"",d.length?`Threat indicators: ${d.join(", ")}`:"",x.length?`Blocked patterns:
2
+ ${x.join("\n")}`:"",e.reason?`Reason:
3
+ ${e.reason}`:""].filter(Boolean).join("\n\n"),project:e.project,source:`${e.source_type}:${e.source_identifier}`,signals:[e.firewall_result,e.sensitivity_level,...d],metadata:{auditId:e.id,memoryId:e.memory_id,trustScore:e.trust_score,anomalyScore:e.anomaly_score,pipelineDurationMs:e.pipeline_duration_ms}})},[x,e,c,d]);return(0,i.jsxs)(eT,{className:"bg-[var(--sc-bg-surface)] border-[var(--sc-border)] overflow-hidden",children:[(0,i.jsxs)(e$,{className:"border-b border-[var(--sc-border)] pb-3",children:[(0,i.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,i.jsxs)("div",{className:"flex items-center gap-3",children:[(0,i.jsx)("span",{className:"px-2.5 py-1 rounded-md text-xs font-bold",style:{backgroundColor:l.bg,color:l.color},children:l.label}),(0,i.jsx)("span",{className:"px-2 py-0.5 rounded text-[10px] font-medium",style:{backgroundColor:o.bg,color:o.color},children:e.sensitivity_level})]}),(0,i.jsx)(eJ,{variant:"ghost",size:"sm",onClick:t,className:"text-[var(--sc-text-secondary)] hover:text-white -mt-1",children:"✕"})]}),(0,i.jsx)("div",{className:"text-xs text-[var(--sc-text-secondary)] mt-2",children:new Date(e.timestamp).toLocaleString()}),e.project&&(0,i.jsxs)("div",{className:"text-[10px] text-[var(--sc-text-muted)] mt-1",children:["Project: ",e.project]})]}),(0,i.jsxs)(eI,{className:"p-4 space-y-4",children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("h4",{className:"text-xs font-medium text-[var(--sc-text-secondary)] mb-2",children:"Source"}),(0,i.jsxs)("div",{className:"bg-[var(--sc-bg-elevated)] rounded-lg p-3",children:[(0,i.jsx)("div",{className:"flex items-center gap-2 mb-1",children:(0,i.jsx)("span",{className:"px-1.5 py-0.5 rounded text-[10px] font-medium bg-[var(--sc-cyan)]/10 text-[var(--sc-cyan)]",children:e.source_type})}),e.source_identifier&&(0,i.jsx)("div",{className:"text-xs text-[var(--sc-text-primary)] mt-1 font-mono break-all",children:e.source_identifier})]})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)("h4",{className:"text-xs font-medium text-[var(--sc-text-secondary)] mb-2",children:"Scores"}),(0,i.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,i.jsxs)("div",{className:"bg-[var(--sc-bg-elevated)] rounded-lg p-3",children:[(0,i.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:"Trust"}),(0,i.jsxs)("div",{className:"text-lg font-bold",style:{color:e0(e.trust_score)},children:[(100*e.trust_score).toFixed(0),"%"]}),(0,i.jsx)("div",{className:"mt-1 h-1.5 bg-[var(--sc-bg-elevated)] rounded-full overflow-hidden",children:(0,i.jsx)("div",{className:"h-full rounded-full transition-all",style:{width:`${100*e.trust_score}%`,backgroundColor:e0(e.trust_score)}})})]}),(0,i.jsxs)("div",{className:"bg-[var(--sc-bg-elevated)] rounded-lg p-3",children:[(0,i.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:"Anomaly"}),(0,i.jsxs)("div",{className:"text-lg font-bold",style:{color:e1(e.anomaly_score)},children:[(100*e.anomaly_score).toFixed(0),"%"]}),(0,i.jsx)("div",{className:"mt-1 h-1.5 bg-[var(--sc-bg-elevated)] rounded-full overflow-hidden",children:(0,i.jsx)("div",{className:"h-full rounded-full transition-all",style:{width:`${100*e.anomaly_score}%`,backgroundColor:e1(e.anomaly_score)}})})]}),null!==e.fragmentation_score&&(0,i.jsxs)("div",{className:"bg-[var(--sc-bg-elevated)] rounded-lg p-3",children:[(0,i.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:"Fragmentation"}),(0,i.jsxs)("div",{className:"text-lg font-bold text-[var(--sc-text-primary)]",children:[(100*e.fragmentation_score).toFixed(0),"%"]}),(0,i.jsx)("div",{className:"mt-1 h-1.5 bg-[var(--sc-bg-elevated)] rounded-full overflow-hidden",children:(0,i.jsx)("div",{className:"h-full rounded-full bg-purple-500 transition-all",style:{width:`${100*e.fragmentation_score}%`}})})]}),null!==e.pipeline_duration_ms&&(0,i.jsxs)("div",{className:"bg-[var(--sc-bg-elevated)] rounded-lg p-3",children:[(0,i.jsx)("div",{className:"text-[10px] text-[var(--sc-text-muted)]",children:"Pipeline"}),(0,i.jsxs)("div",{className:"text-lg font-bold text-[var(--sc-text-primary)]",children:[e.pipeline_duration_ms,"ms"]})]})]})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)("h4",{className:"text-xs font-medium text-[var(--sc-text-secondary)] mb-2",children:"Threat Indicators"}),d.length>0?(0,i.jsx)("div",{className:"flex flex-wrap gap-1.5",children:d.map((e,t)=>{let a=eY[e]||{color:"#94a3b8",bg:"rgba(148, 163, 184, 0.15)"};return(0,i.jsx)("span",{className:"px-2 py-1 rounded text-[11px] font-medium",style:{backgroundColor:a.bg,color:a.color},children:e.replace(/_/g," ")},t)})}):(0,i.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)]",children:"No threats detected"})]}),x.length>0&&(0,i.jsxs)("div",{children:[(0,i.jsx)("h4",{className:"text-xs font-medium text-[var(--sc-text-secondary)] mb-2",children:"Blocked Patterns"}),(0,i.jsx)("div",{className:"bg-[var(--sc-bg-elevated)] rounded-lg p-3 max-h-32 overflow-y-auto",children:x.map((e,t)=>(0,i.jsx)("div",{className:"text-[11px] text-[var(--sc-text-primary)] font-mono break-all mb-1 last:mb-0",children:e},t))})]}),e.reason&&(0,i.jsxs)("div",{children:[(0,i.jsx)("h4",{className:"text-xs font-medium text-[var(--sc-text-secondary)] mb-2",children:"Reason"}),(0,i.jsx)("div",{className:"bg-[var(--sc-bg-elevated)] rounded-lg p-3",children:(0,i.jsx)("p",{className:"text-xs text-[var(--sc-text-primary)] whitespace-pre-wrap leading-relaxed",children:e.reason})})]}),c.data?.explanation&&(0,i.jsx)(eG.LocalAiExplanationPanel,{explanation:c.data.explanation}),c.error&&(0,i.jsx)("div",{className:"rounded-lg border border-[var(--sc-coral)]/30 bg-[var(--sc-coral)]/10 p-3 text-xs text-[var(--sc-coral)]",children:c.error instanceof Error?c.error.message:"Local explanation failed"}),(0,i.jsxs)("div",{className:"flex gap-2 pt-2",children:[e.memory_id&&a&&(0,i.jsx)(eJ,{variant:"default",size:"sm",onClick:()=>a(e.memory_id),className:"flex-1 bg-blue-600 hover:bg-blue-700",children:"View Memory"}),(0,i.jsxs)(eJ,{variant:"outline",size:"sm",onClick:p,disabled:c.isPending,className:"flex-1 border-[var(--sc-border)] text-[var(--sc-text-primary)] hover:text-white",children:[c.isPending?(0,i.jsx)(M.Loader2,{size:13,className:"mr-1 animate-spin"}):(0,i.jsx)(eg.Sparkles,{size:13,className:"mr-1"}),"Explain"]}),(0,i.jsx)(eJ,{variant:"outline",size:"sm",onClick:m,className:`flex-1 border-[var(--sc-border)] transition-all ${r?"bg-[var(--sc-cyan)]/20 text-[var(--sc-cyan)] border-[var(--sc-cyan)]/50":"text-[var(--sc-text-primary)] hover:text-white"}`,children:r?"Copied":"Copy JSON"})]})]})]})}let e5={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 e4(){let{projectFilter:e,selectedAuditEntry:t,setSelectedAuditEntry:a}=(0,ev.useDashboardStore)(),[r,s]=(0,n.useState)("24h"),[c,l]=(0,n.useState)(void 0),[o,d]=(0,n.useState)(void 0),x={"24h":24,"7d":168,"30d":720},[m,p]=(0,n.useState)(()=>Date.now());(0,n.useEffect)(()=>{p(Date.now())},[r]);let u=(0,n.useMemo)(()=>new Date(6e4*Math.floor((m-36e5*x[r])/6e4)).toISOString(),[m,r]),{data:v,isLoading:h}=(0,F.useAuditLogs)({startTime:u,source:c,firewallResult:o,project:e||void 0,limit:200}),g=(0,n.useMemo)(()=>v?.logs??[],[v?.logs]),b=g.filter(e=>"BLOCK"===e.firewall_result).length,y=g.filter(e=>"QUARANTINE"===e.firewall_result).length,j=g.filter(e=>"ALLOW"===e.firewall_result).length,f=(0,n.useCallback)(e=>{if(!t||0===g.length)return;let r=g.findIndex(e=>e.id===t.id);"Escape"===e.key?a(null):"ArrowDown"===e.key&&r<g.length-1?(e.preventDefault(),a(g[r+1])):"ArrowUp"===e.key&&r>0&&(e.preventDefault(),a(g[r-1]))},[t,g,a]);return(0,n.useEffect)(()=>(window.addEventListener("keydown",f),()=>window.removeEventListener("keydown",f)),[f]),(0,i.jsxs)("div",{className:"space-y-6",children:[(0,i.jsxs)("div",{className:"glass-card-strong p-5",children:[(0,i.jsx)("div",{className:"flex flex-col gap-4 xl:flex-row xl:items-start xl:justify-between mb-3",children:(0,i.jsx)("div",{className:"flex gap-1 bg-[var(--sc-bg-elevated)] rounded-lg p-0.5 ml-auto",children:["24h","7d","30d"].map(e=>(0,i.jsx)("button",{onClick:()=>s(e),className:`px-3 py-1 text-xs rounded-md transition-colors ${r===e?"bg-[var(--sc-cyan)] text-[var(--sc-text-primary)]":"text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)]"}`,children:e},e))})}),(0,i.jsxs)("div",{className:"mb-4 grid gap-3 md:grid-cols-4",children:[(0,i.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)] p-3",children:[(0,i.jsx)("div",{className:"text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Entries"}),(0,i.jsx)("div",{className:"mt-1 text-xl font-semibold text-[var(--sc-text-primary)]",children:g.length})]}),(0,i.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)] p-3",children:[(0,i.jsx)("div",{className:"text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Allowed"}),(0,i.jsx)("div",{className:"mt-1 text-xl font-semibold text-[var(--sc-cyan)]",children:j})]}),(0,i.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)] p-3",children:[(0,i.jsx)("div",{className:"text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Blocked"}),(0,i.jsx)("div",{className:"mt-1 text-xl font-semibold text-[var(--sc-coral)]",children:b})]}),(0,i.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)] p-3",children:[(0,i.jsx)("div",{className:"text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Quarantined"}),(0,i.jsx)("div",{className:"mt-1 text-xl font-semibold text-[var(--sc-amber)]",children:y})]})]}),(0,i.jsxs)("div",{className:"flex gap-2 flex-wrap",children:[(0,i.jsxs)("select",{value:o||"",onChange:e=>d(e.target.value||void 0),className:"bg-[var(--sc-bg-elevated)] border border-[var(--sc-border)] text-[var(--sc-text-primary)] text-xs rounded-lg px-2 py-1",children:[(0,i.jsx)("option",{value:"",children:"All Results"}),(0,i.jsx)("option",{value:"ALLOW",children:"Allowed"}),(0,i.jsx)("option",{value:"BLOCK",children:"Blocked"}),(0,i.jsx)("option",{value:"QUARANTINE",children:"Quarantined"})]}),(0,i.jsxs)("select",{value:c||"",onChange:e=>l(e.target.value||void 0),className:"bg-[var(--sc-bg-elevated)] border border-[var(--sc-border)] text-[var(--sc-text-primary)] text-xs rounded-lg px-2 py-1",children:[(0,i.jsx)("option",{value:"",children:"All Sources"}),(0,i.jsx)("option",{value:"hook",children:"Hook"}),(0,i.jsx)("option",{value:"api",children:"API"}),(0,i.jsx)("option",{value:"agent",children:"Agent"}),(0,i.jsx)("option",{value:"user",children:"User"}),(0,i.jsx)("option",{value:"cli",children:"CLI"})]}),(0,i.jsx)("button",{onClick:()=>a(null),className:"ml-auto rounded-full border border-[var(--sc-border)] bg-[var(--sc-bg-surface)] px-3 py-1 text-xs text-[var(--sc-text-primary)] transition-colors hover:border-[var(--sc-border)] hover:text-[var(--sc-text-primary)]",children:"Clear selection"})]})]}),(0,i.jsxs)("div",{className:`grid gap-6 ${t?"xl:grid-cols-[minmax(0,1.35fr)_360px]":""}`,children:[(0,i.jsx)("div",{className:"glass-card overflow-hidden",children:h?(0,i.jsx)("div",{className:"flex items-center justify-center h-32",children:(0,i.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)] animate-pulse",children:"Loading audit logs..."})}):0===g.length?(0,i.jsx)("div",{className:"flex items-center justify-center h-32",children:(0,i.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)]",children:"No audit entries for this period"})}):(0,i.jsx)("div",{className:"overflow-x-auto",children:(0,i.jsxs)("table",{className:"w-full text-xs",children:[(0,i.jsx)("thead",{className:"bg-[var(--sc-bg-deep)]",children:(0,i.jsxs)("tr",{className:"border-b border-[var(--sc-border)]",children:[(0,i.jsx)("th",{className:"text-left text-[var(--sc-text-muted)] font-medium px-4 py-2",children:"Time"}),(0,i.jsx)("th",{className:"text-left text-[var(--sc-text-muted)] font-medium px-4 py-2",children:"Source"}),(0,i.jsx)("th",{className:"text-left text-[var(--sc-text-muted)] font-medium px-4 py-2",children:"Result"}),(0,i.jsx)("th",{className:"text-left text-[var(--sc-text-muted)] font-medium px-4 py-2",children:"Trust"}),(0,i.jsx)("th",{className:"text-left text-[var(--sc-text-muted)] font-medium px-4 py-2",children:"Anomaly"}),(0,i.jsx)("th",{className:"text-left text-[var(--sc-text-muted)] font-medium px-4 py-2",children:"Reason"})]})}),(0,i.jsx)("tbody",{children:g.map(e=>(0,i.jsxs)("tr",{onClick:()=>{a(t?.id===e.id?null:e)},className:`border-b border-[var(--sc-border)] cursor-pointer transition-colors ${t?.id===e.id?"bg-[var(--sc-cyan)]/10 hover:bg-[var(--sc-cyan)]/15":"hover:bg-[var(--sc-surface-interactive)]"}`,children:[(0,i.jsx)("td",{className:"px-4 py-2 text-[var(--sc-text-secondary)] whitespace-nowrap",children:new Date(e.timestamp).toLocaleString()}),(0,i.jsx)("td",{className:"px-4 py-2 text-[var(--sc-text-primary)]",children:e.source_type}),(0,i.jsx)("td",{className:"px-4 py-2",children:(0,i.jsx)("span",{className:`px-1.5 py-0.5 rounded text-[10px] font-medium ${e5[e.firewall_result]||"text-[var(--sc-text-secondary)]"}`,children:e.firewall_result})}),(0,i.jsx)("td",{className:"px-4 py-2 text-[var(--sc-text-secondary)]",children:e.trust_score.toFixed(1)}),(0,i.jsx)("td",{className:"px-4 py-2",children:(0,i.jsx)("span",{className:e.anomaly_score>.5?"text-[var(--sc-coral)]":e.anomaly_score>.2?"text-[var(--sc-amber)]":"text-[var(--sc-text-secondary)]",children:e.anomaly_score.toFixed(2)})}),(0,i.jsx)("td",{className:"px-4 py-2 text-[var(--sc-text-secondary)] max-w-xs truncate",children:e.reason||"—"})]},e.id))})]})})}),t&&(0,i.jsx)("div",{className:"xl:sticky xl:top-6 self-start",children:(0,i.jsx)(e2,{entry:t,onClose:()=>a(null)})})]}),(0,i.jsxs)("details",{className:"glass-card p-6",children:[(0,i.jsx)("summary",{className:"cursor-pointer list-none text-sm font-medium text-[var(--sc-text-primary)]",children:"Export audit trail"}),(0,i.jsx)("div",{className:"mt-4",children:(0,i.jsx)(ez,{})})]})]})}var e3=e.i(45434),e6=e.i(19331);let e8={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)]"},e7={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 e9(){let[e,t]=(0,n.useState)(""),[a,r]=(0,n.useState)(""),[s,c]=(0,n.useState)(""),{data:l,isLoading:o}=I({limit:100,severity:e||void 0,outcome:a||void 0,tool:s||void 0}),x=l?.entries??[],m=l?.summary,p=(0,n.useMemo)(()=>(m?.topTools??[]).map(e=>e.tool),[m?.topTools]);return(0,i.jsxs)("div",{className:"space-y-6",children:[(0,i.jsxs)("div",{className:"glass-card p-6",children:[(0,i.jsxs)("div",{className:"grid gap-3 md:grid-cols-4",children:[(0,i.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2 text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:[(0,i.jsx)(e3.Activity,{size:12}),"Total"]}),(0,i.jsx)("div",{className:"mt-2 text-xl font-semibold text-[var(--sc-text-primary)]",children:m?.total??0})]}),(0,i.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2 text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:[(0,i.jsx)(R.CheckCircle2,{size:12}),"Approved"]}),(0,i.jsx)("div",{className:"mt-2 text-xl font-semibold text-[var(--sc-cyan)]",children:m?.approved??0})]}),(0,i.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2 text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:[(0,i.jsx)(d.AlertTriangle,{size:12}),"Denied"]}),(0,i.jsx)("div",{className:"mt-2 text-xl font-semibold text-[var(--sc-amber)]",children:m?.denied??0})]}),(0,i.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2 text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:[(0,i.jsx)(u.ShieldAlert,{size:12}),"Failures"]}),(0,i.jsx)("div",{className:"mt-2 text-xl font-semibold text-[var(--sc-coral)]",children:m?.failures??0})]})]}),(0,i.jsxs)("div",{className:"mt-4 flex flex-wrap gap-2",children:[(0,i.jsxs)("select",{value:e,onChange:e=>t(e.target.value),className:"rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] px-3 py-1.5 text-xs text-[var(--sc-text-primary)]",children:[(0,i.jsx)("option",{value:"",children:"All severities"}),(0,i.jsx)("option",{value:"critical",children:"Critical"}),(0,i.jsx)("option",{value:"high",children:"High"}),(0,i.jsx)("option",{value:"medium",children:"Medium"}),(0,i.jsx)("option",{value:"low",children:"Low"})]}),(0,i.jsxs)("select",{value:a,onChange:e=>r(e.target.value),className:"rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] px-3 py-1.5 text-xs text-[var(--sc-text-primary)]",children:[(0,i.jsx)("option",{value:"",children:"All outcomes"}),(0,i.jsx)("option",{value:"approved",children:"Approved"}),(0,i.jsx)("option",{value:"denied",children:"Denied"}),(0,i.jsx)("option",{value:"auto_denied",children:"Auto denied"}),(0,i.jsx)("option",{value:"warned",children:"Warned"}),(0,i.jsx)("option",{value:"logged",children:"Logged"}),(0,i.jsx)("option",{value:"failure_allowed",children:"Failure allowed"}),(0,i.jsx)("option",{value:"failure_denied",children:"Failure denied"})]}),(0,i.jsxs)("select",{value:s,onChange:e=>c(e.target.value),className:"rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] px-3 py-1.5 text-xs text-[var(--sc-text-primary)]",children:[(0,i.jsx)("option",{value:"",children:"Top tools"}),p.map(e=>(0,i.jsx)("option",{value:e,children:e},e))]})]})]}),(0,i.jsx)("div",{className:"glass-card-strong p-5 overflow-hidden",children:o?(0,i.jsx)("div",{className:"flex h-32 items-center justify-center text-sm text-[var(--sc-text-secondary)]",children:"Loading interceptor events…"}):0===x.length?(0,i.jsx)("div",{className:"flex h-32 items-center justify-center text-sm text-[var(--sc-text-secondary)]",children:"No interceptor events found for the current filters."}):(0,i.jsx)("div",{className:"divide-y divide-[var(--sc-border)]",children:x.map((e,t)=>(0,i.jsxs)("div",{className:"grid gap-4 px-5 py-4 lg:grid-cols-[220px_minmax(0,1fr)_220px]",children:[(0,i.jsxs)("div",{className:"space-y-2",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2 text-xs text-[var(--sc-text-muted)]",children:[(0,i.jsx)(e6.Clock3,{size:12}),new Date(e.ts).toLocaleString()]}),(0,i.jsx)("div",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:e.tool}),(0,i.jsx)("div",{className:`inline-flex rounded-full border px-2.5 py-1 text-[11px] ${e8[e.severity]??e8.low}`,children:e.severity.toUpperCase()})]}),(0,i.jsxs)("div",{className:"min-w-0",children:[(0,i.jsx)("div",{className:"text-xs uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Preview"}),(0,i.jsx)("p",{className:"mt-2 line-clamp-4 text-sm leading-6 text-[var(--sc-text-primary)]",children:e.preview||"No preview captured."}),(0,i.jsxs)("div",{className:"mt-3 flex flex-wrap gap-2",children:[(e.threats??[]).map(e=>(0,i.jsx)("span",{className:"rounded-full border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] px-2.5 py-1 text-[11px] text-[var(--sc-text-primary)]",children:e},e)),(!e.threats||0===e.threats.length)&&(0,i.jsx)("span",{className:"rounded-full border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] px-2.5 py-1 text-[11px] text-[var(--sc-text-secondary)]",children:"No explicit threat tags"})]})]}),(0,i.jsxs)("div",{className:"space-y-3",children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{className:"text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Outcome"}),(0,i.jsx)("div",{className:`mt-1 inline-flex rounded-full px-2.5 py-1 text-[11px] ${e7[e.outcome]??e7.logged}`,children:e.outcome.replace(/_/g," ")})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{className:"text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Firewall"}),(0,i.jsx)("div",{className:"mt-1 text-sm text-[var(--sc-text-primary)]",children:e.firewallResult})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{className:"text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Action"}),(0,i.jsx)("div",{className:"mt-1 text-sm text-[var(--sc-text-primary)]",children:e.action})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{className:"text-[10px] uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Anomaly score"}),(0,i.jsx)("div",{className:"mt-1 text-sm text-[var(--sc-text-primary)]",children:e.anomalyScore.toFixed(2)})]})]})]},`${e.ts}-${e.tool}-${t}`))})})]})}let te=(0,x.default)("toggle-left",[["circle",{cx:"9",cy:"12",r:"3",key:"u3jwor"}],["rect",{width:"20",height:"14",x:"2",y:"5",rx:"7",key:"g7kal2"}]]),tt=(0,x.default)("toggle-right",[["circle",{cx:"15",cy:"12",r:"3",key:"1afu0r"}],["rect",{width:"20",height:"14",x:"2",y:"5",rx:"7",key:"g7kal2"}]]),ta=g.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";function tr(){let e,t,a,r,{data:s,isLoading:c,isLocked:l}={...e=(0,b.useQuery)({queryKey:["firewall-rules"],queryFn:()=>(0,f.gatedFetch)(`${ta}/api/firewall-rules`).then(e=>{if(!e.ok)throw Error("Failed to fetch firewall rules");return e.json()}),retry:(e,t)=>!(t instanceof f.FeatureLockedError)&&e<2,refetchInterval:3e4}),isLocked:e.error instanceof f.FeatureLockedError},o=(t=(0,j.useQueryClient)(),(0,y.useMutation)({mutationFn:e=>(0,f.gatedFetch)(`${ta}/api/firewall-rules`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}).then(e=>e.ok?e.json():e.json().then(e=>{throw Error(e.error)})),onSuccess:()=>{t.invalidateQueries({queryKey:["firewall-rules"]})}})),d=(a=(0,j.useQueryClient)(),(0,y.useMutation)({mutationFn:({id:e,...t})=>(0,f.gatedFetch)(`${ta}/api/firewall-rules/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}).then(e=>e.ok?e.json():e.json().then(e=>{throw Error(e.error)})),onSuccess:()=>{a.invalidateQueries({queryKey:["firewall-rules"]})}})),x=(r=(0,j.useQueryClient)(),(0,y.useMutation)({mutationFn:e=>(0,f.gatedFetch)(`${ta}/api/firewall-rules/${e}`,{method:"DELETE"}).then(e=>e.ok?e.json():e.json().then(e=>{throw Error(e.error)})),onSuccess:()=>{r.invalidateQueries({queryKey:["firewall-rules"]})}})),[m,u]=(0,n.useState)(!1),[v,h]=(0,n.useState)({name:"",priority:100,condition_type:"regex",condition_value:"",action:"block"}),g=s?.rules??[];return l?(0,i.jsx)(ts,{}):(0,i.jsxs)("div",{className:"space-y-3",children:[(0,i.jsxs)("div",{className:"flex items-center justify-between",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsx)(p.Shield,{size:16,className:"text-[var(--sc-cyan)]"}),(0,i.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Custom Firewall Rules"}),(0,i.jsxs)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:[g.length,"/25"]})]}),(0,i.jsxs)("button",{onClick:()=>u(!m),className:"flex items-center gap-1 px-2 py-1 text-xs bg-[var(--sc-cyan)]/20 text-[var(--sc-cyan)] rounded hover:bg-[var(--sc-cyan)]/30 transition-colors",children:[(0,i.jsx)(G,{size:12})," Add Rule"]})]}),m&&(0,i.jsxs)("form",{onSubmit:e=>{e.preventDefault(),o.mutate(v,{onSuccess:()=>{u(!1),h({name:"",priority:100,condition_type:"regex",condition_value:"",action:"block"})}})},className:"p-3 bg-[var(--sc-bg-elevated)]/50 rounded-lg space-y-2",children:[(0,i.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,i.jsx)("input",{value:v.name,onChange:e=>h(t=>({...t,name:e.target.value})),placeholder:"Rule name",required:!0,className:"px-2 py-1.5 text-xs bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)]"}),(0,i.jsx)("input",{value:v.priority,onChange:e=>h(t=>({...t,priority:Number(e.target.value)})),type:"number",placeholder:"Priority",className:"px-2 py-1.5 text-xs bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded text-[var(--sc-text-primary)]"})]}),(0,i.jsxs)("div",{className:"grid grid-cols-3 gap-2",children:[(0,i.jsxs)("select",{value:v.condition_type,onChange:e=>h(t=>({...t,condition_type:e.target.value})),className:"px-2 py-1.5 text-xs bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded text-[var(--sc-text-primary)]",children:[(0,i.jsx)("option",{value:"regex",children:"Regex"}),(0,i.jsx)("option",{value:"source",children:"Source"}),(0,i.jsx)("option",{value:"keyword",children:"Keyword"})]}),(0,i.jsx)("input",{value:v.condition_value,onChange:e=>h(t=>({...t,condition_value:e.target.value})),placeholder:"Condition value",required:!0,className:"px-2 py-1.5 text-xs bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)]"}),(0,i.jsxs)("select",{value:v.action,onChange:e=>h(t=>({...t,action:e.target.value})),className:"px-2 py-1.5 text-xs bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded text-[var(--sc-text-primary)]",children:[(0,i.jsx)("option",{value:"block",children:"Block"}),(0,i.jsx)("option",{value:"quarantine",children:"Quarantine"}),(0,i.jsx)("option",{value:"allow",children:"Allow"})]})]}),(0,i.jsxs)("div",{className:"flex gap-2",children:[(0,i.jsx)("button",{type:"submit",disabled:o.isPending,className:"px-3 py-1 text-xs bg-[var(--sc-cyan)] text-[var(--sc-text-primary)] rounded hover:bg-[var(--sc-cyan)]/80 disabled:opacity-50",children:o.isPending?"Creating...":"Create"}),(0,i.jsx)("button",{type:"button",onClick:()=>u(!1),className:"px-3 py-1 text-xs text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)]",children:"Cancel"})]}),o.error&&(0,i.jsx)("p",{className:"text-xs text-[var(--sc-coral)]",children:o.error.message})]}),c?(0,i.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)] py-4 text-center",children:"Loading rules..."}):0===g.length?(0,i.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)] py-4 text-center",children:'No custom rules yet. Click "Add Rule" to create one.'}):(0,i.jsx)("div",{className:"space-y-1",children:g.map(e=>(0,i.jsxs)("div",{className:"flex items-center gap-3 px-3 py-2 bg-[var(--sc-bg-elevated)]/30 rounded text-xs",children:[(0,i.jsx)("span",{className:"text-[var(--sc-text-secondary)] w-6 text-right",children:e.priority}),(0,i.jsx)("span",{className:"text-[var(--sc-text-primary)] flex-1",children:e.name}),(0,i.jsx)("code",{className:"text-[var(--sc-text-muted)] text-[10px] max-w-[120px] truncate",children:e.condition_value}),(0,i.jsx)("span",{className:`px-1.5 py-0.5 rounded text-[10px] font-medium ${"block"===e.action?"bg-[var(--sc-coral)]/20 text-[var(--sc-coral)]":"quarantine"===e.action?"bg-[var(--sc-amber)]/20 text-[var(--sc-amber)]":"bg-[var(--sc-cyan)]/20 text-[var(--sc-cyan)]"}`,children:e.action}),(0,i.jsx)("button",{onClick:()=>d.mutate({id:e.id,enabled:+!e.enabled}),className:"text-[var(--sc-text-muted)] hover:text-[var(--sc-text-primary)]",title:e.enabled?"Disable":"Enable",children:e.enabled?(0,i.jsx)(tt,{size:14,className:"text-[var(--sc-cyan)]"}):(0,i.jsx)(te,{size:14})}),(0,i.jsx)("button",{onClick:()=>x.mutate(e.id),className:"text-[var(--sc-text-muted)] hover:text-[var(--sc-coral)]",children:(0,i.jsx)(W.Trash2,{size:12})})]},e.id))})]})}function ts(){return(0,i.jsxs)("div",{className:"space-y-3",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsx)(p.Shield,{size:16,className:"text-[var(--sc-cyan)]"}),(0,i.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Custom Firewall Rules"}),(0,i.jsx)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:"0/25"})]}),(0,i.jsx)("div",{className:"space-y-1",children:Y.map(e=>(0,i.jsxs)("div",{className:"flex items-center gap-3 px-3 py-2 bg-[var(--sc-bg-elevated)]/30 rounded text-xs",children:[(0,i.jsx)("span",{className:"text-[var(--sc-text-secondary)] w-6 text-right",children:e.priority}),(0,i.jsx)("span",{className:"text-[var(--sc-text-primary)] flex-1",children:e.name}),(0,i.jsx)("code",{className:"text-[var(--sc-text-muted)] text-[10px] max-w-[120px] truncate",children:e.condition_value}),(0,i.jsx)("span",{className:`px-1.5 py-0.5 rounded text-[10px] font-medium ${"block"===e.action?"bg-[var(--sc-coral)]/20 text-[var(--sc-coral)]":"quarantine"===e.action?"bg-[var(--sc-amber)]/20 text-[var(--sc-amber)]":"bg-[var(--sc-cyan)]/20 text-[var(--sc-cyan)]"}`,children:e.action})]},e.id))})]})}function tc(){return(0,i.jsx)("div",{className:"bg-[var(--sc-bg-surface)]/50 border border-[var(--sc-border)] rounded-xl p-4",children:(0,i.jsx)(X.ProFeatureGate,{feature:"custom_firewall_rules",label:"Add custom rules to control what gets blocked, allowed, or quarantined.",children:(0,i.jsx)(tr,{})})})}function ti(){return(0,i.jsx)("div",{className:"h-full overflow-y-auto bg-[var(--sc-bg-deep)]",children:(0,i.jsxs)("div",{className:"mx-auto max-w-7xl space-y-6 p-6",children:[(0,i.jsxs)("section",{className:"rounded-2xl border border-[var(--sc-border)] bg-[var(--sc-bg-surface)]/70 p-6",children:[(0,i.jsx)("div",{className:"text-[11px] uppercase tracking-[0.2em] text-[var(--sc-cyan)]",children:"Protection / Policies"}),(0,i.jsx)("h2",{className:"mt-3 text-3xl font-semibold text-[var(--sc-text-primary)]",children:"Policy management"}),(0,i.jsx)("p",{className:"mt-2 max-w-3xl text-sm text-[var(--sc-text-secondary)]",children:"Keep operator-tuned controls in one place. Firewall rules and Iron Dome policies should not be buried inside larger screens when they directly shape blocking, quarantine, and approval behavior."})]}),(0,i.jsxs)("div",{className:"grid gap-6 xl:grid-cols-2",children:[(0,i.jsx)(tc,{}),(0,i.jsx)(eo,{})]})]})})}function tl(){let e=(0,l.useSearchParams)().get("tab"),t=e&&["dome","quarantine","audit","intercepts","policies"].includes(e)?e:null,[a,r]=(0,n.useState)("dome"),s=t??a,{data:c}=z(),{data:o}=(0,F.useAuditStats)("24h"),{data:x}=(0,F.useQuarantine)("pending",10),{data:g}=I({limit:25}),b=[{id:"dome",label:"Iron Dome",icon:(0,i.jsx)(u.ShieldAlert,{size:14})},{id:"quarantine",label:"Quarantine",count:x?.total??0},{id:"audit",label:"Audit"},{id:"intercepts",label:"Intercepts",count:g?.summary?.total??0},{id:"policies",label:"Policies",locked:!1}];return(0,i.jsx)("div",{className:"h-full overflow-y-auto",children:(0,i.jsxs)("div",{className:"mx-auto max-w-7xl space-y-6 p-6",children:[(0,i.jsx)(h.PageHeader,{eyebrow:"Defence",title:"Protection",subtitle:"Active controls, review queues, and operator policy tuning.",tabs:b,activeTab:s,onTabChange:e=>r(e)}),(0,i.jsxs)("div",{className:"grid grid-cols-2 gap-4 lg:grid-cols-4",children:[(0,i.jsx)(v.StatCard,{label:"Iron Dome",value:c?.enabled?"Active":"Inactive",icon:p.Shield,accent:c?.enabled?"cyan":"muted"}),(0,i.jsx)(v.StatCard,{label:"Blocked (24h)",value:o?.blockedCount??0,icon:u.ShieldAlert,accent:o?.blockedCount?"coral":"muted"}),(0,i.jsx)(v.StatCard,{label:"Quarantine",value:x?.total??0,icon:d.AlertTriangle,accent:x?.total?"amber":"muted"}),(0,i.jsx)(v.StatCard,{label:"Intercepts",value:g?.summary?.total??0,icon:m,accent:"cyan"})]}),(0,i.jsxs)("div",{children:["dome"===s&&(0,i.jsx)(eu,{}),"quarantine"===s&&(0,i.jsx)(eS,{}),"audit"===s&&(0,i.jsx)(e4,{}),"intercepts"===s&&(0,i.jsx)(e9,{}),"policies"===s&&(0,i.jsx)(ti,{})]})]})})}function tn(){return(0,i.jsx)(n.Suspense,{fallback:(0,i.jsx)(o.PageSkeleton,{}),children:(0,i.jsx)(tl,{})})}e.s(["ProtectionOverview",()=>tn],27241)}]);