shieldcortex 4.42.0 → 4.42.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (269) 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/server/app/(dashboard)/admin/page.js.nft.json +1 -1
  4. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/admin/page_client-reference-manifest.js +1 -1
  5. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/cloud/page.js.nft.json +1 -1
  6. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/cloud/page_client-reference-manifest.js +1 -1
  7. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/capture/page.js.nft.json +1 -1
  8. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/capture/page_client-reference-manifest.js +1 -1
  9. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/graph/page.js.nft.json +1 -1
  10. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/graph/page_client-reference-manifest.js +1 -1
  11. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/page.js.nft.json +1 -1
  12. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/page_client-reference-manifest.js +1 -1
  13. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/recall/page.js.nft.json +1 -1
  14. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/recall/page_client-reference-manifest.js +1 -1
  15. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/replay/page.js.nft.json +1 -1
  16. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/replay/page_client-reference-manifest.js +1 -1
  17. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page.js.nft.json +1 -1
  18. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page_client-reference-manifest.js +1 -1
  19. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/timeline/page.js.nft.json +1 -1
  20. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/timeline/page_client-reference-manifest.js +1 -1
  21. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/overview/page.js.nft.json +1 -1
  22. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/overview/page_client-reference-manifest.js +1 -1
  23. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/audit/page.js.nft.json +1 -1
  24. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/audit/page_client-reference-manifest.js +1 -1
  25. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/intercepts/page.js.nft.json +1 -1
  26. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/intercepts/page_client-reference-manifest.js +1 -1
  27. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/iron-dome/page.js.nft.json +1 -1
  28. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/iron-dome/page_client-reference-manifest.js +1 -1
  29. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/page.js.nft.json +1 -1
  30. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/page_client-reference-manifest.js +1 -1
  31. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/policies/page.js.nft.json +1 -1
  32. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/policies/page_client-reference-manifest.js +1 -1
  33. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/quarantine/page.js.nft.json +1 -1
  34. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/quarantine/page_client-reference-manifest.js +1 -1
  35. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  36. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  37. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/page.js.nft.json +1 -1
  38. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/page_client-reference-manifest.js +1 -1
  39. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/xray/page.js.nft.json +1 -1
  40. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/xray/page_client-reference-manifest.js +1 -1
  41. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page.js.nft.json +1 -1
  42. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page_client-reference-manifest.js +1 -1
  43. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.html +2 -2
  44. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.rsc +1 -1
  45. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  46. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  47. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  48. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  49. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +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 +1 -1
  52. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  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 +1 -1
  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 +1 -1
  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 +6 -6
  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 +1 -1
  66. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_tree.segment.rsc +1 -1
  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 +6 -6
  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 +1 -1
  75. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_tree.segment.rsc +1 -1
  76. package/dashboard/.next/standalone/dashboard/.next/server/app/index.html +1 -1
  77. package/dashboard/.next/standalone/dashboard/.next/server/app/index.rsc +1 -1
  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 +1 -1
  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 +1 -1
  82. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  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.rsc +6 -6
  85. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory/capture/__PAGE__.segment.rsc +1 -1
  86. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory/capture.segment.rsc +1 -1
  87. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  88. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -6
  89. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_full.segment.rsc +6 -6
  90. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_head.segment.rsc +1 -1
  91. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_index.segment.rsc +1 -1
  92. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_tree.segment.rsc +1 -1
  93. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.html +1 -1
  94. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.rsc +6 -6
  95. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory/graph/__PAGE__.segment.rsc +1 -1
  96. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory/graph.segment.rsc +1 -1
  97. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  98. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -6
  99. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_full.segment.rsc +6 -6
  100. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_head.segment.rsc +1 -1
  101. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_index.segment.rsc +1 -1
  102. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_tree.segment.rsc +1 -1
  103. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.html +1 -1
  104. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.rsc +6 -6
  105. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory/recall/__PAGE__.segment.rsc +1 -1
  106. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory/recall.segment.rsc +1 -1
  107. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  108. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -6
  109. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_full.segment.rsc +6 -6
  110. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_head.segment.rsc +1 -1
  111. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_index.segment.rsc +1 -1
  112. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_tree.segment.rsc +1 -1
  113. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.html +1 -1
  114. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.rsc +7 -7
  115. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/!KGRhc2hib2FyZCk/memory/replay/__PAGE__.segment.rsc +2 -2
  116. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/!KGRhc2hib2FyZCk/memory/replay.segment.rsc +1 -1
  117. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  118. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -6
  119. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/_full.segment.rsc +7 -7
  120. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/_head.segment.rsc +1 -1
  121. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/_index.segment.rsc +1 -1
  122. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/_tree.segment.rsc +1 -1
  123. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.html +1 -1
  124. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.rsc +6 -6
  125. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory/review/__PAGE__.segment.rsc +1 -1
  126. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory/review.segment.rsc +1 -1
  127. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  128. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -6
  129. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_full.segment.rsc +6 -6
  130. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_head.segment.rsc +1 -1
  131. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_index.segment.rsc +1 -1
  132. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_tree.segment.rsc +1 -1
  133. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.html +1 -1
  134. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.rsc +6 -6
  135. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory/timeline/__PAGE__.segment.rsc +1 -1
  136. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory/timeline.segment.rsc +1 -1
  137. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  138. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -6
  139. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_full.segment.rsc +6 -6
  140. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_head.segment.rsc +1 -1
  141. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_index.segment.rsc +1 -1
  142. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_tree.segment.rsc +1 -1
  143. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.html +1 -1
  144. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.rsc +7 -7
  145. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk/memory/__PAGE__.segment.rsc +2 -2
  146. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  147. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -6
  148. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_full.segment.rsc +7 -7
  149. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_head.segment.rsc +1 -1
  150. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_index.segment.rsc +1 -1
  151. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_tree.segment.rsc +1 -1
  152. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.html +1 -1
  153. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.rsc +7 -7
  154. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk/overview/__PAGE__.segment.rsc +2 -2
  155. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk/overview.segment.rsc +1 -1
  156. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -6
  157. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_full.segment.rsc +7 -7
  158. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_head.segment.rsc +1 -1
  159. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_index.segment.rsc +1 -1
  160. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_tree.segment.rsc +1 -1
  161. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.html +1 -1
  162. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.rsc +6 -6
  163. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection/audit/__PAGE__.segment.rsc +1 -1
  164. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection/audit.segment.rsc +1 -1
  165. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  166. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -6
  167. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_full.segment.rsc +6 -6
  168. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_head.segment.rsc +1 -1
  169. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_index.segment.rsc +1 -1
  170. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_tree.segment.rsc +1 -1
  171. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.html +1 -1
  172. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.rsc +6 -6
  173. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection/intercepts/__PAGE__.segment.rsc +1 -1
  174. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection/intercepts.segment.rsc +1 -1
  175. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  176. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -6
  177. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_full.segment.rsc +6 -6
  178. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_head.segment.rsc +1 -1
  179. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_index.segment.rsc +1 -1
  180. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_tree.segment.rsc +1 -1
  181. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.html +1 -1
  182. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.rsc +6 -6
  183. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection/iron-dome/__PAGE__.segment.rsc +1 -1
  184. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection/iron-dome.segment.rsc +1 -1
  185. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  186. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -6
  187. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_full.segment.rsc +6 -6
  188. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_head.segment.rsc +1 -1
  189. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_index.segment.rsc +1 -1
  190. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_tree.segment.rsc +1 -1
  191. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.html +1 -1
  192. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.rsc +6 -6
  193. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection/policies/__PAGE__.segment.rsc +1 -1
  194. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection/policies.segment.rsc +1 -1
  195. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  196. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -6
  197. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_full.segment.rsc +6 -6
  198. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_head.segment.rsc +1 -1
  199. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_index.segment.rsc +1 -1
  200. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_tree.segment.rsc +1 -1
  201. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.html +1 -1
  202. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.rsc +6 -6
  203. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection/quarantine/__PAGE__.segment.rsc +1 -1
  204. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection/quarantine.segment.rsc +1 -1
  205. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  206. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -6
  207. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_full.segment.rsc +6 -6
  208. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_head.segment.rsc +1 -1
  209. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_index.segment.rsc +1 -1
  210. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_tree.segment.rsc +1 -1
  211. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.html +1 -1
  212. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.rsc +7 -7
  213. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk/protection/__PAGE__.segment.rsc +2 -2
  214. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  215. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -6
  216. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_full.segment.rsc +7 -7
  217. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_head.segment.rsc +1 -1
  218. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_index.segment.rsc +1 -1
  219. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_tree.segment.rsc +1 -1
  220. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.html +1 -1
  221. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.rsc +7 -7
  222. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings/__PAGE__.segment.rsc +2 -2
  223. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings.segment.rsc +1 -1
  224. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -6
  225. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_full.segment.rsc +7 -7
  226. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  227. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_index.segment.rsc +1 -1
  228. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  229. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.html +1 -1
  230. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.rsc +6 -6
  231. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain/xray/__PAGE__.segment.rsc +1 -1
  232. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain/xray.segment.rsc +1 -1
  233. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain.segment.rsc +1 -1
  234. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -6
  235. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_full.segment.rsc +6 -6
  236. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_head.segment.rsc +1 -1
  237. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_index.segment.rsc +1 -1
  238. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_tree.segment.rsc +1 -1
  239. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.html +1 -1
  240. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.rsc +6 -6
  241. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk/supply-chain/__PAGE__.segment.rsc +1 -1
  242. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk/supply-chain.segment.rsc +1 -1
  243. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -6
  244. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_full.segment.rsc +6 -6
  245. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_head.segment.rsc +1 -1
  246. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_index.segment.rsc +1 -1
  247. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_tree.segment.rsc +1 -1
  248. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.html +1 -1
  249. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.rsc +7 -7
  250. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk/xray/__PAGE__.segment.rsc +2 -2
  251. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk/xray.segment.rsc +1 -1
  252. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -6
  253. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_full.segment.rsc +7 -7
  254. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_head.segment.rsc +1 -1
  255. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_index.segment.rsc +1 -1
  256. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_tree.segment.rsc +1 -1
  257. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/{9f1d4_next_dist_d7bbb1c6._.js → 9f1d4_3dabb53c._.js} +2 -2
  258. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_48aa48e3._.js +1 -1
  259. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_overview_page_tsx_8c105626._.js +1 -1
  260. package/dashboard/.next/standalone/dashboard/.next/server/pages/404.html +1 -1
  261. package/dashboard/.next/standalone/dashboard/.next/server/pages/500.html +2 -2
  262. package/dashboard/.next/standalone/dashboard/.next/static/chunks/{41c550a60ee25280.js → aa7e96b7a8fcbb82.js} +1 -1
  263. package/dashboard/.next/standalone/dashboard/.next/static/chunks/{dcfd5a3eb20885c2.js → ae03115f7a98fde3.js} +1 -1
  264. package/dashboard/.next/standalone/dashboard/.next/static/chunks/c00e197999ffa776.js +1 -0
  265. package/package.json +1 -1
  266. package/dashboard/.next/standalone/dashboard/.next/static/chunks/9dd510e6693ca6ac.js +0 -1
  267. /package/dashboard/.next/standalone/dashboard/.next/static/{4z2JAhKnao1A-q8Eo4wzd → -sAajjiQVAvyJHnh4r2f4}/_buildManifest.js +0 -0
  268. /package/dashboard/.next/standalone/dashboard/.next/static/{4z2JAhKnao1A-q8Eo4wzd → -sAajjiQVAvyJHnh4r2f4}/_clientMiddlewareManifest.json +0 -0
  269. /package/dashboard/.next/standalone/dashboard/.next/static/{4z2JAhKnao1A-q8Eo4wzd → -sAajjiQVAvyJHnh4r2f4}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,90976,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},53655,e=>{"use strict";function t(e){let t=e.toLowerCase();return["error","threat","defence","security","block","credential"].some(e=>t.includes(e))?"defence":["quarantine","pending","suppressed","review"].some(e=>t.includes(e))?"quarantine":["pattern","architecture","relationship","link","concept","tool","service"].some(e=>t.includes(e))?"integrity":"memory"}e.s(["REGIONS",0,{memory:{token:"--cic-cyan",hex:"#00e5cc",glow:"rgba(0, 229, 204, 0.35)",label:"MEMORY",meaning:"vault · recall · the living graph"},defence:{token:"--cic-coral",hex:"#ff4d4d",glow:"rgba(255, 77, 77, 0.35)",label:"DEFENCE",meaning:"shield · interception · the 6 layers"},quarantine:{token:"--cic-amber",hex:"#f5a623",glow:"rgba(245, 166, 35, 0.32)",label:"QUARANTINE",meaning:"isolation hold · pending review"},integrity:{token:"--cic-violet",hex:"#a78bfa",glow:"rgba(167, 139, 250, 0.32)",label:"INTEGRITY",meaning:"consolidation · links · contradictions"}},"regionForCluster",()=>t])},88069,e=>{"use strict";var t=e.i(22534),r=e.i(45688),n=e.i(71921),i=e.i(1235),a=e.i(88969),s=e.i(23147),u=e.i(35372);let o=t.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function c(e){let t=new URLSearchParams;e?.project&&t.set("project",e.project),e?.type&&t.set("type",e.type),e?.category&&t.set("category",e.category),e?.limit&&t.set("limit",e.limit.toString()),e?.offset&&t.set("offset",e.offset.toString()),e?.mode&&t.set("mode",e.mode),e?.query&&t.set("query",e.query);let r=await (0,a.authFetch)(`${o}/api/memories?${t}`);if(!r.ok)throw Error("Failed to fetch memories");return r.json()}async function l(e){let t=e?`?project=${e}`:"",r=await (0,a.authFetch)(`${o}/api/stats${t}`);if(!r.ok)throw Error("Failed to fetch stats");return r.json()}async function y(){let e=await (0,a.authFetch)(`${o}/api/projects`);if(!e.ok)throw Error("Failed to fetch projects");return e.json()}async function d(){let e=await (0,a.authFetch)(`${o}/api/capture/openclaw/sessions`);if(!e.ok)throw Error("Failed to fetch OpenClaw sessions");return e.json()}async function h(e){let t=await (0,a.authFetch)(`${o}/api/memories/${e}/access`,{method:"POST"});if(!t.ok)throw Error("Failed to access memory");return t.json()}async function f(){let e=await (0,a.authFetch)(`${o}/api/consolidate`,{method:"POST"});if(!e.ok)throw Error("Failed to consolidate");return e.json()}function p(e){let{isConnected:t}=(0,u.useWebSocketStatus)();return(0,r.useQuery)({queryKey:["stats",e],queryFn:()=>l(e),refetchInterval:(0,s.wsGatedInterval)(t,3e4)})}function m(){return(0,r.useQuery)({queryKey:["projects"],queryFn:y,refetchInterval:6e4})}function v(){return(0,r.useQuery)({queryKey:["openclaw-sessions"],queryFn:d,staleTime:3e4})}function w(e){let t=(0,u.useMemoryWebSocketContext)();return{...function(e){let{isConnected:t}=(0,u.useWebSocketStatus)(),n=(0,r.useQuery)({queryKey:["memories",e],queryFn:()=>c(e),refetchInterval:(0,s.wsGatedInterval)(t,3e4)});return{...n,data:n.data?.memories,pagination:n.data?.pagination}}(e),isConnected:t.isConnected,lastEvent:t.lastEvent}}function g(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:h,onSuccess:()=>{e.invalidateQueries({queryKey:["memories"]}),e.invalidateQueries({queryKey:["stats"]})}})}function b(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:f,onSuccess:()=>{e.invalidateQueries({queryKey:["memories"]}),e.invalidateQueries({queryKey:["stats"]})}})}async function S(){let e=await (0,a.authFetch)(`${o}/api/version`);if(!e.ok)throw Error("Failed to fetch version");return e.json()}function k(){return(0,r.useQuery)({queryKey:["version"],queryFn:S,refetchInterval:6e4,staleTime:3e4})}async function q(e){let t=e?`?project=${e}`:"",r=await (0,a.authFetch)(`${o}/api/memories/quality${t}`);if(!r.ok)throw Error("Failed to fetch quality");return r.json()}function E(e){return(0,r.useQuery)({queryKey:["quality",e],queryFn:()=>q(e),staleTime:3e5})}async function F(e){let t=e?`?project=${e}`:"",r=await (0,a.authFetch)(`${o}/api/contradictions${t}`);if(!r.ok)throw Error("Failed to fetch contradictions");return r.json()}function Q(e){return(0,r.useQuery)({queryKey:["contradictions",e],queryFn:()=>F(e),staleTime:3e5})}async function j(e){let t=await (0,a.authFetch)(`${o}/api/memories/${e}/promote`,{method:"POST"});if(!t.ok)throw Error("Failed to promote memory");return t.json()}async function C(e){let t=await (0,a.authFetch)(`${o}/api/memories/${e}`,{method:"DELETE"});if(!t.ok)throw Error("Failed to delete memory");return t.json()}async function K(e,t){let r=await (0,a.authFetch)(`${o}/api/memories/${e}/quarantine`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reason:t})});if(!r.ok)throw Error("Failed to quarantine memory");return r.json()}function O(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:j,onSuccess:()=>{e.invalidateQueries({queryKey:["memories"]}),e.invalidateQueries({queryKey:["stats"]})}})}function P(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:C,onSuccess:()=>{e.invalidateQueries({queryKey:["memories"]}),e.invalidateQueries({queryKey:["stats"]}),e.invalidateQueries({queryKey:["links"]})}})}function M(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:({id:e,reason:t})=>K(e,t),onSuccess:()=>{e.invalidateQueries({queryKey:["memories"]}),e.invalidateQueries({queryKey:["stats"]})}})}e.s(["useAccessMemory",()=>g,"useConsolidate",()=>b,"useContradictions",()=>Q,"useDeleteMemory",()=>P,"useMemoriesWithRealtime",()=>w,"useOpenClawSessions",()=>v,"useProjects",()=>m,"usePromoteMemory",()=>O,"useQuality",()=>E,"useQuarantineMemory",()=>M,"useStats",()=>p,"useVersion",()=>k])},17278,e=>{"use strict";let t=(0,e.i(24929).default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);e.s(["X",()=>t],17278)},16871,(e,t,r)=>{t.exports=e.r(57234)},42098,e=>{"use strict";let t;var r=e.i(4);let n=e=>{let t,r=new Set,n=(e,n)=>{let i="function"==typeof e?e(t):e;if(!Object.is(i,t)){let e=t;t=(null!=n?n:"object"!=typeof i||null===i)?i:Object.assign({},t,i),r.forEach(r=>r(t,e))}},i=()=>t,a={setState:n,getState:i,getInitialState:()=>s,subscribe:e=>(r.add(e),()=>r.delete(e))},s=t=e(n,i,a);return a},i=e=>{let t=e?n(e):n,i=e=>(function(e,t=e=>e){let n=r.default.useSyncExternalStore(e.subscribe,r.default.useCallback(()=>t(e.getState()),[e,t]),r.default.useCallback(()=>t(e.getInitialState()),[e,t]));return r.default.useDebugValue(n),n})(t,e);return Object.assign(i,t),i},a=(t=e=>({selectedMemory:null,setSelectedMemory:t=>e({selectedMemory:t}),selectedAuditEntry:null,setSelectedAuditEntry:t=>e({selectedAuditEntry:t}),viewMode:"overview",setViewMode:t=>e({viewMode:t}),typeFilter:null,categoryFilter:null,projectFilter:null,setTypeFilter:t=>e({typeFilter:t}),setCategoryFilter:t=>e({categoryFilter:t}),setProjectFilter:t=>e({projectFilter:t}),reviewFocus:null,setReviewFocus:t=>e({reviewFocus:t}),recentEvents:[],addEvent:t=>e(e=>({recentEvents:[t,...e.recentEvents].slice(0,50)})),clearEvents:()=>e({recentEvents:[]}),cameraPosition:[0,0,12],setCameraPosition:t=>e({cameraPosition:t}),showLeftSidebar:!0,showRightSidebar:!0,toggleLeftSidebar:()=>e(e=>({showLeftSidebar:!e.showLeftSidebar})),toggleRightSidebar:()=>e(e=>({showRightSidebar:!e.showRightSidebar})),searchQuery:"",setSearchQuery:t=>e({searchQuery:t}),sidebarPinned:!1,toggleSidebarPinned:()=>e(e=>({sidebarPinned:!e.sidebarPinned})),activeTab:{},setActiveTab:(t,r)=>e(e=>({activeTab:{...e.activeTab,[t]:r}}))}))?i(t):i;e.s(["useDashboardStore",0,a],42098)},80039,e=>{"use strict";let t=(0,e.i(24929).default)("pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]);e.s(["Pin",()=>t],80039)},45434,e=>{"use strict";let t=(0,e.i(24929).default)("activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);e.s(["Activity",()=>t],45434)},27528,e=>{"use strict";let t=(0,e.i(24929).default)("shield",[["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"}]]);e.s(["Shield",()=>t],27528)},24929,e=>{"use strict";var t=e.i(4);let r=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)},n=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim();var i={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let a=(0,t.forwardRef)(({color:e="currentColor",size:r=24,strokeWidth:a=2,absoluteStrokeWidth:s,className:u="",children:o,iconNode:c,...l},y)=>(0,t.createElement)("svg",{ref:y,...i,width:r,height:r,stroke:e,strokeWidth:s?24*Number(a)/Number(r):a,className:n("lucide",u),...!o&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0})(l)&&{"aria-hidden":"true"},...l},[...c.map(([e,r])=>(0,t.createElement)(e,r)),...Array.isArray(o)?o:[o]])),s=(e,i)=>{let s=(0,t.forwardRef)(({className:s,...u},o)=>(0,t.createElement)(a,{ref:o,iconNode:i,className:n(`lucide-${r(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,s),...u}));return s.displayName=r(e),s};e.s(["default",()=>s],24929)},71921,e=>{"use strict";var t=e.i(4),r=e.i(21230),n=e.i(79736),i=e.i(70207),a=e.i(60904),s=class extends i.Subscribable{#e;#t=void 0;#r;#n;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#i()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),(0,a.shallowEqualObjects)(this.options,t)||this.#e.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#r,observer:this}),t?.mutationKey&&this.options.mutationKey&&(0,a.hashKey)(t.mutationKey)!==(0,a.hashKey)(this.options.mutationKey)?this.reset():this.#r?.state.status==="pending"&&this.#r.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#r?.removeObserver(this)}onMutationUpdate(e){this.#i(),this.#a(e)}getCurrentResult(){return this.#t}reset(){this.#r?.removeObserver(this),this.#r=void 0,this.#i(),this.#a()}mutate(e,t){return this.#n=t,this.#r?.removeObserver(this),this.#r=this.#e.getMutationCache().build(this.#e,this.options),this.#r.addObserver(this),this.#r.execute(e)}#i(){let e=this.#r?.state??(0,r.getDefaultState)();this.#t={...e,isPending:"pending"===e.status,isSuccess:"success"===e.status,isError:"error"===e.status,isIdle:"idle"===e.status,mutate:this.mutate,reset:this.reset}}#a(e){n.notifyManager.batch(()=>{if(this.#n&&this.hasListeners()){let t=this.#t.variables,r=this.#t.context,n={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type==="success"){try{this.#n.onSuccess?.(e.data,t,r,n)}catch(e){Promise.reject(e)}try{this.#n.onSettled?.(e.data,null,t,r,n)}catch(e){Promise.reject(e)}}else if(e?.type==="error"){try{this.#n.onError?.(e.error,t,r,n)}catch(e){Promise.reject(e)}try{this.#n.onSettled?.(void 0,e.error,t,r,n)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#t)})})}},u=e.i(1235);function o(e,r){let i=(0,u.useQueryClient)(r),[o]=t.useState(()=>new s(i,e));t.useEffect(()=>{o.setOptions(e)},[o,e]);let c=t.useSyncExternalStore(t.useCallback(e=>o.subscribe(n.notifyManager.batchCalls(e)),[o]),()=>o.getCurrentResult(),()=>o.getCurrentResult()),l=t.useCallback((e,t)=>{o.mutate(e,t).catch(a.noop)},[o]);if(c.error&&(0,a.shouldThrowError)(o.options.throwOnError,[c.error]))throw c.error;return{...c,mutate:l,mutateAsync:c.mutate}}e.s(["useMutation",()=>o],71921)},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)},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)},35372,23147,e=>{"use strict";var t=e.i(27493),r=e.i(4),n=e.i(22534),i=e.i(1235),a=e.i(88969);let s=new Set([1008,4001,4003,4401]);function u(e){return s.has(e)}function o(e,t){return!e&&t}e.s(["shouldInvalidateTokenOnClose",()=>u,"wsGatedInterval",()=>o],23147);let c=n.default.env.NEXT_PUBLIC_WS_URL||"ws://localhost:3001/ws/events",l=()=>{},y=(0,r.createContext)({subscribe:()=>l,isConnected:!1,connectionFailed:!1,lastEvent:null,reconnect:l});function d({children:e}){let n=(0,r.useRef)(new Set),{isConnected:s,connectionFailed:o,lastEvent:l,reconnect:d}=function(e={}){let{enabled:t=!0,onMessage:n}=e,s=(0,i.useQueryClient)(),o=(0,r.useRef)(null),l=(0,r.useRef)(null),y=(0,r.useRef)(0),d=(0,r.useRef)(1e3),h=(0,r.useRef)(()=>{}),f=(0,r.useRef)(0),[p,m]=(0,r.useState)(!1),[v,w]=(0,r.useState)(!1),[g,b]=(0,r.useState)(null),S=(0,r.useRef)(n);(0,r.useEffect)(()=>{S.current=n},[n]);let k=(0,r.useCallback)(async()=>{if(!t||o.current?.readyState===WebSocket.OPEN)return;let e=f.current;l.current&&(clearTimeout(l.current),l.current=null);try{let r=await (0,a.getApiToken)();if(e!==f.current)return;let n=`${c}?token=${encodeURIComponent(r)}`,i=new WebSocket(n);if(e!==f.current)return void i.close();o.current=i,i.onopen=()=>{m(!0),y.current=0,d.current=1e3,console.log("[WebSocket] Connected to memory server")},i.onmessage=e=>{try{let t=JSON.parse(e.data);switch(b({type:t.type,data:t.data,timestamp:t.timestamp||new Date().toISOString()}),S.current?.(t),t.type){case"initial_state":case"consolidation_complete":case"predictive_consolidation":s.invalidateQueries({queryKey:["memories"]}),s.invalidateQueries({queryKey:["stats"]}),s.invalidateQueries({queryKey:["links"]});break;case"memory_created":case"memory_updated":case"memory_deleted":s.invalidateQueries({queryKey:["memories"]}),s.invalidateQueries({queryKey:["stats"]});break;case"decay_tick":case"worker_light_tick":case"worker_medium_tick":break;case"link_discovered":s.invalidateQueries({queryKey:["links"]});break;case"defence_event":s.invalidateQueries({queryKey:["agents"]}),s.invalidateQueries({queryKey:["agent-timeline"]}),s.invalidateQueries({queryKey:["agent-operations"]}),s.invalidateQueries({queryKey:["audit-logs"]}),s.invalidateQueries({queryKey:["audit-stats"]}),s.invalidateQueries({queryKey:["quarantine"]});break;case"kill_switch_activated":case"kill_switch_deactivated":s.invalidateQueries({queryKey:["control-status"]}),s.invalidateQueries({queryKey:["iron-dome-status"]}),s.invalidateQueries({queryKey:["iron-dome-audit"]});break;case"update_started":case"update_complete":case"update_failed":"update_complete"===t.type&&(s.invalidateQueries({queryKey:["version"]}),s.invalidateQueries({queryKey:["version-check"]}));break;case"server_restarting":console.log("[WebSocket] Server restarting, will reconnect shortly...");break;case"xray_detection":s.invalidateQueries({queryKey:["xray-activity"]}),s.invalidateQueries({queryKey:["xray-watch-sessions"]}),s.invalidateQueries({queryKey:["xray-findings"]}),s.invalidateQueries({queryKey:["xray-status"]})}}catch(e){console.error("[WebSocket] Failed to parse message:",e)}},i.onerror=()=>{console.warn("[WebSocket] Connection failed - is the API server running?")},i.onclose=e=>{if(m(!1),console.log("[WebSocket] Disconnected",e.code),u(e.code)&&(0,a.invalidateApiToken)(),t&&y.current<10){let e=d.current;y.current++,d.current=Math.min(2*d.current,3e4),console.log(`[WebSocket] Reconnecting in ${e}ms (attempt ${y.current}/10)...`),l.current=setTimeout(()=>{h.current()},e)}else y.current>=10&&(w(!0),console.error("[WebSocket] Max reconnection attempts reached. Use reconnect() to try again."))}}catch(e){console.error("[WebSocket] Failed to connect:",e)}},[t,s]);return(0,r.useEffect)(()=>{h.current=k}),(0,r.useEffect)(()=>(t&&k(),()=>{f.current++,l.current&&clearTimeout(l.current),o.current&&(o.current.close(),o.current=null)}),[t,k]),{isConnected:p,connectionFailed:v,lastEvent:g,reconnect:(0,r.useCallback)(()=>{y.current=0,d.current=1e3,w(!1),k()},[k])}}({onMessage:(0,r.useCallback)(e=>{for(let t of Array.from(n.current))try{t(e)}catch{}},[])}),h=(0,r.useCallback)(e=>(n.current.add(e),()=>{n.current.delete(e)}),[]),f=(0,r.useMemo)(()=>({subscribe:h,isConnected:s,connectionFailed:o,lastEvent:l,reconnect:d}),[h,s,o,l,d]);return(0,t.jsx)(y.Provider,{value:f,children:e})}function h(){return(0,r.useContext)(y)}function f(){let{isConnected:e,connectionFailed:t,reconnect:r}=h();return{isConnected:e,connectionFailed:t,reconnect:r}}function p(e){let{subscribe:t}=h(),n=(0,r.useRef)(e);(0,r.useEffect)(()=>{n.current=e}),(0,r.useEffect)(()=>t(e=>n.current(e)),[t])}e.s(["MemoryWebSocketProvider",()=>d,"useMemoryWebSocketContext",()=>h,"useWebSocketEvent",()=>p,"useWebSocketStatus",()=>f],35372)},76344,31309,e=>{"use strict";let t=(0,e.i(24929).default)("scan-search",[["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"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["path",{d:"m16 16-1.9-1.9",key:"1dq9hf"}]]);e.s(["ScanSearch",()=>t],76344);var r=e.i(22534),n=e.i(71921),i=e.i(45688),a=e.i(1235),s=e.i(88969);let u=r.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function o(e,t){let r=await (0,s.gatedFetch)(`${u}${e}`);if(!r.ok)throw Error(await (0,s.readApiError)(r,t));return r.json()}async function c(e){let t=await (0,s.gatedFetch)(`${u}/api/xray/scan`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error(await (0,s.readApiError)(t,"Failed to run X-Ray scan"));return t.json()}async function l(e){let t=await (0,s.gatedFetch)(`${u}/api/xray/pick-target`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({kind:e})});if(!t.ok)throw Error(await (0,s.readApiError)(t,`Failed to open ${e} picker`));return t.json()}function y(e,t){return!(t instanceof s.FeatureLockedError)&&e<2}function d(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))n&&"all"!==n&&"ALL"!==n&&t.set(r,n);let r=t.toString();return r?`?${r}`:""}function h(){return(0,i.useQuery)({queryKey:["xray-status"],queryFn:()=>o("/api/xray/status","Failed to fetch X-Ray status"),refetchInterval:3e4,retry:y})}function f(e={}){return(0,i.useQuery)({queryKey:["xray-history",e],queryFn:()=>o(`/api/xray/history${d({risk:e.risk,targetType:e.targetType,deep:e.deep,search:e.search?.trim()||void 0})}`,"Failed to fetch X-Ray history"),refetchInterval:3e4,retry:y})}function p(e){return(0,i.useQuery)({queryKey:["xray-history-entry",e],queryFn:()=>o(`/api/xray/history/${e}`,"Failed to fetch X-Ray scan detail"),enabled:!!e,retry:y})}function m(e=25,t={}){return(0,i.useQuery)({queryKey:["xray-activity",e,t],queryFn:()=>o(`/api/xray/activity${d({limit:String(e),kind:t.kind,status:t.status,risk:t.risk,targetType:t.targetType,search:t.search?.trim()||void 0})}`,"Failed to fetch X-Ray activity"),refetchInterval:15e3,retry:y})}function v(e=20,t={}){return(0,i.useQuery)({queryKey:["xray-watch-sessions",e,t],queryFn:()=>o(`/api/xray/watch-sessions${d({limit:String(e),state:t.state,deep:t.deep,search:t.search?.trim()||void 0})}`,"Failed to fetch X-Ray watch sessions"),refetchInterval:15e3,retry:y})}function w(){let e=(0,a.useQueryClient)();return(0,n.useMutation)({mutationFn:c,onSuccess:()=>{e.invalidateQueries({queryKey:["xray-history"]}),e.invalidateQueries({queryKey:["xray-activity"]}),e.invalidateQueries({queryKey:["xray-watch-sessions"]}),e.invalidateQueries({queryKey:["xray-status"]})}})}function g(){return(0,n.useMutation)({mutationFn:e=>l(e)})}async function b(e){let t=await (0,s.gatedFetch)(`${u}/api/xray/watch/start`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error(await (0,s.readApiError)(t,"Failed to start watch"));return t.json()}async function S(e){let t=await (0,s.gatedFetch)(`${u}/api/xray/watch/stop`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({target:e})});if(!t.ok)throw Error(await (0,s.readApiError)(t,"Failed to stop watch"));return t.json()}function k(){return(0,i.useQuery)({queryKey:["xray-active-watchers"],queryFn:()=>o("/api/xray/watch/active","Failed to fetch active watchers"),refetchInterval:1e4})}function q(){let e=(0,a.useQueryClient)();return(0,n.useMutation)({mutationFn:b,onSuccess:()=>{e.invalidateQueries({queryKey:["xray-watch-sessions"]}),e.invalidateQueries({queryKey:["xray-active-watchers"]}),e.invalidateQueries({queryKey:["xray-status"]})}})}function E(){let e=(0,a.useQueryClient)();return(0,n.useMutation)({mutationFn:S,onSuccess:()=>{e.invalidateQueries({queryKey:["xray-watch-sessions"]}),e.invalidateQueries({queryKey:["xray-active-watchers"]}),e.invalidateQueries({queryKey:["xray-status"]})}})}e.s(["useActiveWatchers",()=>k,"usePickXRayTarget",()=>g,"useStartWatch",()=>q,"useStopWatch",()=>E,"useXRayActivity",()=>m,"useXRayHistory",()=>f,"useXRayHistoryEntry",()=>p,"useXRayScan",()=>w,"useXRayStatus",()=>h,"useXRayWatchSessions",()=>v],31309)},44758,e=>{"use strict";let t=(0,e.i(24929).default)("shield-check",[["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:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["ShieldCheck",()=>t],44758)},87353,e=>{"use strict";var t=e.i(22534),r=e.i(45688),n=e.i(71921),i=e.i(1235),a=e.i(88969),s=e.i(23147),u=e.i(35372);let o=t.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function c(e){let t=new URLSearchParams;e?.startTime&&t.set("startTime",e.startTime),e?.endTime&&t.set("endTime",e.endTime),e?.source&&t.set("source",e.source),e?.firewallResult&&t.set("firewallResult",e.firewallResult),e?.project&&t.set("project",e.project),e?.limit&&t.set("limit",e.limit.toString());let r=await (0,a.authFetch)(`${o}/api/v1/audit?${t}`);if(!r.ok)throw Error(await (0,a.readApiError)(r,"Failed to fetch audit logs"));return r.json()}async function l(e,t){let r=new URLSearchParams({timeRange:e});t&&r.set("project",t);let n=await (0,a.authFetch)(`${o}/api/v1/audit/stats?${r}`);if(!n.ok)throw Error(await (0,a.readApiError)(n,"Failed to fetch audit stats"));return n.json()}async function y(e="pending",t=50,r,n){let i=new URLSearchParams({status:e,limit:t.toString()});r&&i.set("project",r),n&&i.set("sourceType",n);let s=await (0,a.authFetch)(`${o}/api/v1/quarantine?${i}`);if(!s.ok)throw Error(await (0,a.readApiError)(s,"Failed to fetch quarantine"));return s.json()}async function d(e){let t=await (0,a.authFetch)(`${o}/api/v1/quarantine/${e}/approve`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reviewedBy:"dashboard"})});if(!t.ok)throw Error(await (0,a.readApiError)(t,"Failed to approve quarantined item"));return t.json()}async function h(e,t){let r=await (0,a.authFetch)(`${o}/api/v1/quarantine/${e}/reject`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reviewedBy:"dashboard",notes:t})});if(!r.ok)throw Error(await (0,a.readApiError)(r,"Failed to reject quarantined item"));return r.json()}async function f(e){let t=await (0,a.authFetch)(`${o}/api/v1/quarantine/bulk-approve`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:e,reviewedBy:"dashboard"})});if(!t.ok)throw Error(await (0,a.readApiError)(t,"Failed to bulk approve quarantined items"));return t.json()}async function p(e){let t=await (0,a.authFetch)(`${o}/api/v1/quarantine/bulk-reject`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:e,reviewedBy:"dashboard"})});if(!t.ok)throw Error(await (0,a.readApiError)(t,"Failed to bulk reject quarantined items"));return t.json()}async function m(){let e=await (0,a.authFetch)(`${o}/api/v1/review-copilot/status`);if(!e.ok)throw Error(await (0,a.readApiError)(e,"Failed to fetch Local AI status"));return e.json()}async function v(e){let t=await (0,a.authFetch)(`${o}/api/v1/quarantine/${e}/annotate`,{method:"POST",headers:{"Content-Type":"application/json"}});if(!t.ok)throw Error(await (0,a.readApiError)(t,"Failed to explain quarantined item"));return t.json()}async function w(e){let t=await (0,a.authFetch)(`${o}/api/v1/quarantine/annotate-pending`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error(await (0,a.readApiError)(t,"Failed to explain pending quarantine"));return t.json()}function g(e){let{isConnected:t}=(0,u.useWebSocketStatus)();return(0,r.useQuery)({queryKey:["audit-logs",e],queryFn:()=>c(e),refetchInterval:(0,s.wsGatedInterval)(t,3e4),retry:2})}function b(e="24h",t){let{isConnected:n}=(0,u.useWebSocketStatus)();return(0,r.useQuery)({queryKey:["audit-stats",e,t],queryFn:()=>l(e,t),refetchInterval:(0,s.wsGatedInterval)(n,3e4),retry:2})}function S(e="pending",t=50,n,i){let{isConnected:a}=(0,u.useWebSocketStatus)();return(0,r.useQuery)({queryKey:["quarantine",e,t,n,i],queryFn:()=>y(e,t,n,i),refetchInterval:(0,s.wsGatedInterval)(a,3e4),retry:2})}function k(){return(0,r.useQuery)({queryKey:["review-copilot-status"],queryFn:m,refetchInterval:3e4,retry:2})}function q(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:d,onSuccess:()=>{e.invalidateQueries({queryKey:["quarantine"]}),e.invalidateQueries({queryKey:["audit-stats"]}),e.invalidateQueries({queryKey:["memories"]}),e.invalidateQueries({queryKey:["stats"]}),e.invalidateQueries({queryKey:["review-queue"]}),e.invalidateQueries({queryKey:["openclaw-sessions"]}),e.invalidateQueries({queryKey:["quality"]})}})}function E(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:({id:e,notes:t})=>h(e,t),onSuccess:()=>{e.invalidateQueries({queryKey:["quarantine"]}),e.invalidateQueries({queryKey:["audit-stats"]}),e.invalidateQueries({queryKey:["review-queue"]})}})}function F(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:f,onSuccess:()=>{e.invalidateQueries({queryKey:["quarantine"]}),e.invalidateQueries({queryKey:["audit-stats"]}),e.invalidateQueries({queryKey:["memories"]}),e.invalidateQueries({queryKey:["stats"]}),e.invalidateQueries({queryKey:["review-queue"]}),e.invalidateQueries({queryKey:["openclaw-sessions"]}),e.invalidateQueries({queryKey:["quality"]})}})}function Q(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:p,onSuccess:()=>{e.invalidateQueries({queryKey:["quarantine"]}),e.invalidateQueries({queryKey:["audit-stats"]}),e.invalidateQueries({queryKey:["review-queue"]})}})}function j(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:v,onSuccess:()=>{e.invalidateQueries({queryKey:["quarantine"]}),e.invalidateQueries({queryKey:["review-copilot-status"]})}})}function C(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:w,onSuccess:()=>{e.invalidateQueries({queryKey:["quarantine"]}),e.invalidateQueries({queryKey:["review-copilot-status"]})}})}e.s(["useAnnotatePendingQuarantine",()=>C,"useAnnotateQuarantine",()=>j,"useApproveQuarantine",()=>q,"useAuditLogs",()=>g,"useAuditStats",()=>b,"useBulkApproveQuarantine",()=>F,"useBulkRejectQuarantine",()=>Q,"useQuarantine",()=>S,"useRejectQuarantine",()=>E,"useReviewCopilotStatus",()=>k])},21475,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return o},searchParamsToUrlQuery:function(){return a},urlQueryToSearchParams:function(){return u}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});function a(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function s(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function u(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,s(e));else t.set(r,s(n));return t}function o(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},78559,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return u},formatWithValidation:function(){return c},urlObjectKeys:function(){return o}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let a=e.r(87533)._(e.r(21475)),s=/https?|ftp|gopher|file/;function u(e){let{auth:t,hostname:r}=e,n=e.protocol||"",i=e.pathname||"",u=e.hash||"",o=e.query||"",c=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?c=t+e.host:r&&(c=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(c+=":"+e.port)),o&&"object"==typeof o&&(o=String(a.urlQueryToSearchParams(o)));let l=e.search||o&&`?${o}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||s.test(n))&&!1!==c?(c="//"+(c||""),i&&"/"!==i[0]&&(i="/"+i)):c||(c=""),u&&"#"!==u[0]&&(u="#"+u),l&&"?"!==l[0]&&(l="?"+l),i=i.replace(/[?#]/g,encodeURIComponent),l=l.replace("#","%23"),`${n}${c}${i}${l}${u}`}let o=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function c(e){return u(e)}},65445,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return i}});let n=e.r(4);function i(e,t){let r=(0,n.useRef)(null),i=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=i.current;t&&(i.current=null,t())}else e&&(r.current=a(e,n)),t&&(i.current=a(t,n))},[e,t])}function a(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},45212,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DecodeError:function(){return v},MiddlewareNotFoundError:function(){return S},MissingStaticPage:function(){return b},NormalizeError:function(){return w},PageNotFoundError:function(){return g},SP:function(){return p},ST:function(){return m},WEB_VITALS:function(){return a},execOnce:function(){return s},getDisplayName:function(){return y},getLocationOrigin:function(){return c},getURL:function(){return l},isAbsoluteUrl:function(){return o},isResSent:function(){return d},loadGetInitialProps:function(){return f},normalizeRepeatedSlashes:function(){return h},stringifyError:function(){return k}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let a=["CLS","FCP","FID","INP","LCP","TTFB"];function s(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let u=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,o=e=>u.test(e);function c(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function l(){let{href:e}=window.location,t=c();return e.substring(t.length)}function y(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function d(e){return e.finished||e.headersSent}function h(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function f(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await f(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&d(r))return n;if(!n)throw Object.defineProperty(Error(`"${y(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n}let p="u">typeof performance,m=p&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class v extends Error{}class w extends Error{}class g extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class b extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class S extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function k(e){return JSON.stringify({message:e.message,stack:e.stack})}},81412,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return a}});let n=e.r(45212),i=e.r(35814);function a(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,i.hasBasePath)(r.pathname)}catch(e){return!1}}},44083,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},56640,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return v},useLinkStatus:function(){return g}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let a=e.r(87533),s=e.r(27493),u=a._(e.r(4)),o=e.r(78559),c=e.r(94132),l=e.r(65445),y=e.r(45212),d=e.r(43612);e.r(90976);let h=e.r(39271),f=e.r(81412),p=e.r(68714);function m(e){return"string"==typeof e?e:(0,o.formatUrl)(e)}function v(t){var r;let n,i,a,[o,v]=(0,u.useOptimistic)(h.IDLE_LINK_STATUS),g=(0,u.useRef)(null),{href:b,as:S,children:k,prefetch:q=null,passHref:E,replace:F,shallow:Q,scroll:j,onClick:C,onMouseEnter:K,onTouchStart:O,legacyBehavior:P=!1,onNavigate:M,ref:T,unstable_dynamicOnHover:R,...$}=t;n=k,P&&("string"==typeof n||"number"==typeof n)&&(n=(0,s.jsx)("a",{children:n}));let _=u.default.useContext(c.AppRouterContext),x=!1!==q,A=!1!==q?null===(r=q)||"auto"===r?p.FetchStrategy.PPR:p.FetchStrategy.Full:p.FetchStrategy.PPR,{href:I,as:L}=u.default.useMemo(()=>{let e=m(b);return{href:e,as:S?m(S):e}},[b,S]);if(P){if(n?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});i=u.default.Children.only(n)}let N=P?i&&"object"==typeof i&&i.ref:T,U=u.default.useCallback(e=>(null!==_&&(g.current=(0,h.mountLinkInstance)(e,I,_,A,x,v)),()=>{g.current&&((0,h.unmountLinkForCurrentNavigation)(g.current),g.current=null),(0,h.unmountPrefetchableInstance)(e)}),[x,I,_,A,v]),W={ref:(0,l.useMergedRef)(U,N),onClick(t){P||"function"!=typeof C||C(t),P&&i.props&&"function"==typeof i.props.onClick&&i.props.onClick(t),!_||t.defaultPrevented||function(t,r,n,i,a,s,o){if("u">typeof window){let c,{nodeName:l}=t.currentTarget;if("A"===l.toUpperCase()&&((c=t.currentTarget.getAttribute("target"))&&"_self"!==c||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,f.isLocalURL)(r)){a&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),o){let e=!1;if(o({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:y}=e.r(87046);u.default.startTransition(()=>{y(n||r,a?"replace":"push",s??!0,i.current)})}}(t,I,L,g,F,j,M)},onMouseEnter(e){P||"function"!=typeof K||K(e),P&&i.props&&"function"==typeof i.props.onMouseEnter&&i.props.onMouseEnter(e),_&&x&&(0,h.onNavigationIntent)(e.currentTarget,!0===R)},onTouchStart:function(e){P||"function"!=typeof O||O(e),P&&i.props&&"function"==typeof i.props.onTouchStart&&i.props.onTouchStart(e),_&&x&&(0,h.onNavigationIntent)(e.currentTarget,!0===R)}};return(0,y.isAbsoluteUrl)(L)?W.href=L:P&&!E&&("a"!==i.type||"href"in i.props)||(W.href=(0,d.addBasePath)(L)),a=P?u.default.cloneElement(i,W):(0,s.jsx)("a",{...$,...W,children:n}),(0,s.jsx)(w.Provider,{value:o,children:a})}e.r(44083);let w=(0,u.createContext)(h.IDLE_LINK_STATUS),g=()=>(0,u.useContext)(w);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,90976,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},53655,e=>{"use strict";function t(e){let t=e.toLowerCase();return["error","threat","defence","security","block","credential"].some(e=>t.includes(e))?"defence":["quarantine","pending","suppressed","review"].some(e=>t.includes(e))?"quarantine":["pattern","architecture","relationship","link","concept","tool","service"].some(e=>t.includes(e))?"integrity":"memory"}e.s(["REGIONS",0,{memory:{token:"--cic-cyan",hex:"#00e5cc",glow:"rgba(0, 229, 204, 0.35)",label:"MEMORY",meaning:"vault · recall · the living graph"},defence:{token:"--cic-coral",hex:"#ff4d4d",glow:"rgba(255, 77, 77, 0.35)",label:"DEFENCE",meaning:"shield · interception · the 6 layers"},quarantine:{token:"--cic-amber",hex:"#f5a623",glow:"rgba(245, 166, 35, 0.32)",label:"QUARANTINE",meaning:"isolation hold · pending review"},integrity:{token:"--cic-violet",hex:"#a78bfa",glow:"rgba(167, 139, 250, 0.32)",label:"INTEGRITY",meaning:"consolidation · links · contradictions"}},"regionForCluster",()=>t])},88069,e=>{"use strict";var t=e.i(22534),r=e.i(45688),n=e.i(71921),i=e.i(1235),a=e.i(88969),s=e.i(23147),u=e.i(35372);let o=t.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function c(e){let t=new URLSearchParams;e?.project&&t.set("project",e.project),e?.type&&t.set("type",e.type),e?.category&&t.set("category",e.category),e?.limit&&t.set("limit",e.limit.toString()),e?.offset&&t.set("offset",e.offset.toString()),e?.mode&&t.set("mode",e.mode),e?.query&&t.set("query",e.query);let r=await (0,a.authFetch)(`${o}/api/memories?${t}`);if(!r.ok)throw Error("Failed to fetch memories");return r.json()}async function l(e){let t=e?`?project=${e}`:"",r=await (0,a.authFetch)(`${o}/api/stats${t}`);if(!r.ok)throw Error("Failed to fetch stats");return r.json()}async function y(){let e=await (0,a.authFetch)(`${o}/api/projects`);if(!e.ok)throw Error("Failed to fetch projects");return e.json()}async function d(){let e=await (0,a.authFetch)(`${o}/api/capture/openclaw/sessions`);if(!e.ok)throw Error("Failed to fetch OpenClaw sessions");return e.json()}async function h(e){let t=await (0,a.authFetch)(`${o}/api/memories/${e}/access`,{method:"POST"});if(!t.ok)throw Error("Failed to access memory");return t.json()}async function f(){let e=await (0,a.authFetch)(`${o}/api/consolidate`,{method:"POST"});if(!e.ok)throw Error("Failed to consolidate");return e.json()}function p(e){let{isConnected:t}=(0,u.useWebSocketStatus)();return(0,r.useQuery)({queryKey:["stats",e],queryFn:()=>l(e),refetchInterval:(0,s.wsGatedInterval)(t,3e4)})}function m(){return(0,r.useQuery)({queryKey:["projects"],queryFn:y,refetchInterval:6e4})}function v(){return(0,r.useQuery)({queryKey:["openclaw-sessions"],queryFn:d,staleTime:3e4})}function w(e){let t=(0,u.useMemoryWebSocketContext)();return{...function(e){let{isConnected:t}=(0,u.useWebSocketStatus)(),n=(0,r.useQuery)({queryKey:["memories",e],queryFn:()=>c(e),refetchInterval:(0,s.wsGatedInterval)(t,3e4)});return{...n,data:n.data?.memories,pagination:n.data?.pagination}}(e),isConnected:t.isConnected,lastEvent:t.lastEvent}}function g(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:h,onSuccess:()=>{e.invalidateQueries({queryKey:["memories"]}),e.invalidateQueries({queryKey:["stats"]})}})}function b(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:f,onSuccess:()=>{e.invalidateQueries({queryKey:["memories"]}),e.invalidateQueries({queryKey:["stats"]})}})}async function S(){let e=await (0,a.authFetch)(`${o}/api/version`);if(!e.ok)throw Error("Failed to fetch version");return e.json()}function k(){return(0,r.useQuery)({queryKey:["version"],queryFn:S,refetchInterval:6e4,staleTime:3e4})}async function q(e){let t=e?`?project=${e}`:"",r=await (0,a.authFetch)(`${o}/api/memories/quality${t}`);if(!r.ok)throw Error("Failed to fetch quality");return r.json()}function E(e){return(0,r.useQuery)({queryKey:["quality",e],queryFn:()=>q(e),staleTime:3e5})}async function F(e){let t=e?`?project=${e}`:"",r=await (0,a.authFetch)(`${o}/api/contradictions${t}`);if(!r.ok)throw Error("Failed to fetch contradictions");return r.json()}function Q(e){return(0,r.useQuery)({queryKey:["contradictions",e],queryFn:()=>F(e),staleTime:3e5})}async function j(e){let t=await (0,a.authFetch)(`${o}/api/memories/${e}/promote`,{method:"POST"});if(!t.ok)throw Error("Failed to promote memory");return t.json()}async function C(e){let t=await (0,a.authFetch)(`${o}/api/memories/${e}`,{method:"DELETE"});if(!t.ok)throw Error("Failed to delete memory");return t.json()}async function K(e,t){let r=await (0,a.authFetch)(`${o}/api/memories/${e}/quarantine`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reason:t})});if(!r.ok)throw Error("Failed to quarantine memory");return r.json()}function O(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:j,onSuccess:()=>{e.invalidateQueries({queryKey:["memories"]}),e.invalidateQueries({queryKey:["stats"]})}})}function P(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:C,onSuccess:()=>{e.invalidateQueries({queryKey:["memories"]}),e.invalidateQueries({queryKey:["stats"]}),e.invalidateQueries({queryKey:["links"]})}})}function M(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:({id:e,reason:t})=>K(e,t),onSuccess:()=>{e.invalidateQueries({queryKey:["memories"]}),e.invalidateQueries({queryKey:["stats"]})}})}e.s(["useAccessMemory",()=>g,"useConsolidate",()=>b,"useContradictions",()=>Q,"useDeleteMemory",()=>P,"useMemoriesWithRealtime",()=>w,"useOpenClawSessions",()=>v,"useProjects",()=>m,"usePromoteMemory",()=>O,"useQuality",()=>E,"useQuarantineMemory",()=>M,"useStats",()=>p,"useVersion",()=>k])},17278,e=>{"use strict";let t=(0,e.i(24929).default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);e.s(["X",()=>t],17278)},16871,(e,t,r)=>{t.exports=e.r(57234)},42098,e=>{"use strict";let t;var r=e.i(4);let n=e=>{let t,r=new Set,n=(e,n)=>{let i="function"==typeof e?e(t):e;if(!Object.is(i,t)){let e=t;t=(null!=n?n:"object"!=typeof i||null===i)?i:Object.assign({},t,i),r.forEach(r=>r(t,e))}},i=()=>t,a={setState:n,getState:i,getInitialState:()=>s,subscribe:e=>(r.add(e),()=>r.delete(e))},s=t=e(n,i,a);return a},i=e=>{let t=e?n(e):n,i=e=>(function(e,t=e=>e){let n=r.default.useSyncExternalStore(e.subscribe,r.default.useCallback(()=>t(e.getState()),[e,t]),r.default.useCallback(()=>t(e.getInitialState()),[e,t]));return r.default.useDebugValue(n),n})(t,e);return Object.assign(i,t),i},a=(t=e=>({selectedMemory:null,setSelectedMemory:t=>e({selectedMemory:t}),selectedAuditEntry:null,setSelectedAuditEntry:t=>e({selectedAuditEntry:t}),viewMode:"overview",setViewMode:t=>e({viewMode:t}),typeFilter:null,categoryFilter:null,projectFilter:null,setTypeFilter:t=>e({typeFilter:t}),setCategoryFilter:t=>e({categoryFilter:t}),setProjectFilter:t=>e({projectFilter:t}),reviewFocus:null,setReviewFocus:t=>e({reviewFocus:t}),recentEvents:[],addEvent:t=>e(e=>({recentEvents:[t,...e.recentEvents].slice(0,50)})),clearEvents:()=>e({recentEvents:[]}),cameraPosition:[0,0,12],setCameraPosition:t=>e({cameraPosition:t}),showLeftSidebar:!0,showRightSidebar:!0,toggleLeftSidebar:()=>e(e=>({showLeftSidebar:!e.showLeftSidebar})),toggleRightSidebar:()=>e(e=>({showRightSidebar:!e.showRightSidebar})),searchQuery:"",setSearchQuery:t=>e({searchQuery:t}),sidebarPinned:!1,toggleSidebarPinned:()=>e(e=>({sidebarPinned:!e.sidebarPinned})),activeTab:{},setActiveTab:(t,r)=>e(e=>({activeTab:{...e.activeTab,[t]:r}}))}))?i(t):i;e.s(["useDashboardStore",0,a],42098)},80039,e=>{"use strict";let t=(0,e.i(24929).default)("pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]);e.s(["Pin",()=>t],80039)},45434,e=>{"use strict";let t=(0,e.i(24929).default)("activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);e.s(["Activity",()=>t],45434)},27528,e=>{"use strict";let t=(0,e.i(24929).default)("shield",[["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"}]]);e.s(["Shield",()=>t],27528)},24929,e=>{"use strict";var t=e.i(4);let r=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)},n=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim();var i={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let a=(0,t.forwardRef)(({color:e="currentColor",size:r=24,strokeWidth:a=2,absoluteStrokeWidth:s,className:u="",children:o,iconNode:c,...l},y)=>(0,t.createElement)("svg",{ref:y,...i,width:r,height:r,stroke:e,strokeWidth:s?24*Number(a)/Number(r):a,className:n("lucide",u),...!o&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0})(l)&&{"aria-hidden":"true"},...l},[...c.map(([e,r])=>(0,t.createElement)(e,r)),...Array.isArray(o)?o:[o]])),s=(e,i)=>{let s=(0,t.forwardRef)(({className:s,...u},o)=>(0,t.createElement)(a,{ref:o,iconNode:i,className:n(`lucide-${r(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,s),...u}));return s.displayName=r(e),s};e.s(["default",()=>s],24929)},71921,e=>{"use strict";var t=e.i(4),r=e.i(21230),n=e.i(79736),i=e.i(70207),a=e.i(60904),s=class extends i.Subscribable{#e;#t=void 0;#r;#n;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#i()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),(0,a.shallowEqualObjects)(this.options,t)||this.#e.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#r,observer:this}),t?.mutationKey&&this.options.mutationKey&&(0,a.hashKey)(t.mutationKey)!==(0,a.hashKey)(this.options.mutationKey)?this.reset():this.#r?.state.status==="pending"&&this.#r.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#r?.removeObserver(this)}onMutationUpdate(e){this.#i(),this.#a(e)}getCurrentResult(){return this.#t}reset(){this.#r?.removeObserver(this),this.#r=void 0,this.#i(),this.#a()}mutate(e,t){return this.#n=t,this.#r?.removeObserver(this),this.#r=this.#e.getMutationCache().build(this.#e,this.options),this.#r.addObserver(this),this.#r.execute(e)}#i(){let e=this.#r?.state??(0,r.getDefaultState)();this.#t={...e,isPending:"pending"===e.status,isSuccess:"success"===e.status,isError:"error"===e.status,isIdle:"idle"===e.status,mutate:this.mutate,reset:this.reset}}#a(e){n.notifyManager.batch(()=>{if(this.#n&&this.hasListeners()){let t=this.#t.variables,r=this.#t.context,n={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type==="success"){try{this.#n.onSuccess?.(e.data,t,r,n)}catch(e){Promise.reject(e)}try{this.#n.onSettled?.(e.data,null,t,r,n)}catch(e){Promise.reject(e)}}else if(e?.type==="error"){try{this.#n.onError?.(e.error,t,r,n)}catch(e){Promise.reject(e)}try{this.#n.onSettled?.(void 0,e.error,t,r,n)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#t)})})}},u=e.i(1235);function o(e,r){let i=(0,u.useQueryClient)(r),[o]=t.useState(()=>new s(i,e));t.useEffect(()=>{o.setOptions(e)},[o,e]);let c=t.useSyncExternalStore(t.useCallback(e=>o.subscribe(n.notifyManager.batchCalls(e)),[o]),()=>o.getCurrentResult(),()=>o.getCurrentResult()),l=t.useCallback((e,t)=>{o.mutate(e,t).catch(a.noop)},[o]);if(c.error&&(0,a.shouldThrowError)(o.options.throwOnError,[c.error]))throw c.error;return{...c,mutate:l,mutateAsync:c.mutate}}e.s(["useMutation",()=>o],71921)},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)},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)},35372,23147,e=>{"use strict";var t=e.i(27493),r=e.i(4),n=e.i(22534),i=e.i(1235),a=e.i(88969);let s=new Set([1008,4001,4003,4401]);function u(e){return s.has(e)}function o(e,t){return!e&&t}e.s(["shouldInvalidateTokenOnClose",()=>u,"wsGatedInterval",()=>o],23147);let c=n.default.env.NEXT_PUBLIC_WS_URL||"ws://localhost:3001/ws/events",l=()=>{},y=(0,r.createContext)({subscribe:()=>l,isConnected:!1,connectionFailed:!1,lastEvent:null,reconnect:l});function d({children:e}){let n=(0,r.useRef)(new Set),{isConnected:s,connectionFailed:o,lastEvent:l,reconnect:d}=function(e={}){let{enabled:t=!0,onMessage:n}=e,s=(0,i.useQueryClient)(),o=(0,r.useRef)(null),l=(0,r.useRef)(null),y=(0,r.useRef)(0),d=(0,r.useRef)(1e3),h=(0,r.useRef)(()=>{}),f=(0,r.useRef)(0),[p,m]=(0,r.useState)(!1),[v,w]=(0,r.useState)(!1),[g,b]=(0,r.useState)(null),S=(0,r.useRef)(n);(0,r.useEffect)(()=>{S.current=n},[n]);let k=(0,r.useCallback)(async()=>{if(!t||o.current?.readyState===WebSocket.OPEN)return;let e=f.current;l.current&&(clearTimeout(l.current),l.current=null);try{let r=await (0,a.getApiToken)();if(e!==f.current)return;let n=`${c}?token=${encodeURIComponent(r)}`,i=new WebSocket(n);if(e!==f.current)return void i.close();o.current=i,i.onopen=()=>{m(!0),y.current=0,d.current=1e3,console.log("[WebSocket] Connected to memory server")},i.onmessage=e=>{try{let t=JSON.parse(e.data);switch(b({type:t.type,data:t.data,timestamp:t.timestamp||new Date().toISOString()}),S.current?.(t),t.type){case"initial_state":case"consolidation_complete":case"predictive_consolidation":s.invalidateQueries({queryKey:["memories"]}),s.invalidateQueries({queryKey:["stats"]}),s.invalidateQueries({queryKey:["links"]});break;case"memory_created":case"memory_updated":case"memory_deleted":s.invalidateQueries({queryKey:["memories"]}),s.invalidateQueries({queryKey:["stats"]});break;case"decay_tick":case"worker_light_tick":case"worker_medium_tick":break;case"link_discovered":s.invalidateQueries({queryKey:["links"]});break;case"defence_event":s.invalidateQueries({queryKey:["agents"]}),s.invalidateQueries({queryKey:["agent-timeline"]}),s.invalidateQueries({queryKey:["agent-operations"]}),s.invalidateQueries({queryKey:["audit-logs"]}),s.invalidateQueries({queryKey:["audit-stats"]}),s.invalidateQueries({queryKey:["quarantine"]});break;case"kill_switch_activated":case"kill_switch_deactivated":s.invalidateQueries({queryKey:["control-status"]}),s.invalidateQueries({queryKey:["iron-dome-status"]}),s.invalidateQueries({queryKey:["iron-dome-audit"]});break;case"update_started":case"update_complete":case"update_failed":"update_complete"===t.type&&(s.invalidateQueries({queryKey:["version"]}),s.invalidateQueries({queryKey:["version-check"]}));break;case"server_restarting":console.log("[WebSocket] Server restarting, will reconnect shortly...");break;case"xray_detection":s.invalidateQueries({queryKey:["xray-activity"]}),s.invalidateQueries({queryKey:["xray-watch-sessions"]}),s.invalidateQueries({queryKey:["xray-findings"]}),s.invalidateQueries({queryKey:["xray-status"]})}}catch(e){console.error("[WebSocket] Failed to parse message:",e)}},i.onerror=()=>{console.warn("[WebSocket] Connection failed - is the API server running?")},i.onclose=e=>{if(m(!1),console.log("[WebSocket] Disconnected",e.code),u(e.code)&&(0,a.invalidateApiToken)(),t&&y.current<10){let e=d.current;y.current++,d.current=Math.min(2*d.current,3e4),console.log(`[WebSocket] Reconnecting in ${e}ms (attempt ${y.current}/10)...`),l.current=setTimeout(()=>{h.current()},e)}else y.current>=10&&(w(!0),console.error("[WebSocket] Max reconnection attempts reached. Use reconnect() to try again."))}}catch(e){console.error("[WebSocket] Failed to connect:",e)}},[t,s]);return(0,r.useEffect)(()=>{h.current=k}),(0,r.useEffect)(()=>(t&&k(),()=>{f.current++,l.current&&clearTimeout(l.current),o.current&&(o.current.close(),o.current=null)}),[t,k]),{isConnected:p,connectionFailed:v,lastEvent:g,reconnect:(0,r.useCallback)(()=>{y.current=0,d.current=1e3,w(!1),k()},[k])}}({onMessage:(0,r.useCallback)(e=>{for(let t of Array.from(n.current))try{t(e)}catch{}},[])}),h=(0,r.useCallback)(e=>(n.current.add(e),()=>{n.current.delete(e)}),[]),f=(0,r.useMemo)(()=>({subscribe:h,isConnected:s,connectionFailed:o,lastEvent:l,reconnect:d}),[h,s,o,l,d]);return(0,t.jsx)(y.Provider,{value:f,children:e})}function h(){return(0,r.useContext)(y)}function f(){let{isConnected:e,connectionFailed:t,reconnect:r}=h();return{isConnected:e,connectionFailed:t,reconnect:r}}function p(e){let{subscribe:t}=h(),n=(0,r.useRef)(e);(0,r.useEffect)(()=>{n.current=e}),(0,r.useEffect)(()=>t(e=>n.current(e)),[t])}e.s(["MemoryWebSocketProvider",()=>d,"useMemoryWebSocketContext",()=>h,"useWebSocketEvent",()=>p,"useWebSocketStatus",()=>f],35372)},76344,31309,e=>{"use strict";let t=(0,e.i(24929).default)("scan-search",[["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"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["path",{d:"m16 16-1.9-1.9",key:"1dq9hf"}]]);e.s(["ScanSearch",()=>t],76344);var r=e.i(22534),n=e.i(71921),i=e.i(45688),a=e.i(1235),s=e.i(88969);let u=r.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function o(e,t){let r=await (0,s.gatedFetch)(`${u}${e}`);if(!r.ok)throw Error(await (0,s.readApiError)(r,t));return r.json()}async function c(e){let t=await (0,s.gatedFetch)(`${u}/api/xray/scan`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error(await (0,s.readApiError)(t,"Failed to run X-Ray scan"));return t.json()}async function l(e){let t=await (0,s.gatedFetch)(`${u}/api/xray/pick-target`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({kind:e})});if(!t.ok)throw Error(await (0,s.readApiError)(t,`Failed to open ${e} picker`));return t.json()}function y(e,t){return!(t instanceof s.FeatureLockedError)&&e<2}function d(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))n&&"all"!==n&&"ALL"!==n&&t.set(r,n);let r=t.toString();return r?`?${r}`:""}function h(){return(0,i.useQuery)({queryKey:["xray-status"],queryFn:()=>o("/api/xray/status","Failed to fetch X-Ray status"),refetchInterval:3e4,retry:y})}function f(e={}){return(0,i.useQuery)({queryKey:["xray-history",e],queryFn:()=>o(`/api/xray/history${d({risk:e.risk,targetType:e.targetType,deep:e.deep,search:e.search?.trim()||void 0})}`,"Failed to fetch X-Ray history"),refetchInterval:3e4,retry:y})}function p(e){return(0,i.useQuery)({queryKey:["xray-history-entry",e],queryFn:()=>o(`/api/xray/history/${e}`,"Failed to fetch X-Ray scan detail"),enabled:!!e,retry:y})}function m(e=25,t={}){return(0,i.useQuery)({queryKey:["xray-activity",e,t],queryFn:()=>o(`/api/xray/activity${d({limit:String(e),kind:t.kind,status:t.status,risk:t.risk,targetType:t.targetType,search:t.search?.trim()||void 0})}`,"Failed to fetch X-Ray activity"),refetchInterval:15e3,retry:y})}function v(e=20,t={}){return(0,i.useQuery)({queryKey:["xray-watch-sessions",e,t],queryFn:()=>o(`/api/xray/watch-sessions${d({limit:String(e),state:t.state,deep:t.deep,search:t.search?.trim()||void 0})}`,"Failed to fetch X-Ray watch sessions"),refetchInterval:15e3,retry:y})}function w(){let e=(0,a.useQueryClient)();return(0,n.useMutation)({mutationFn:c,onSuccess:()=>{e.invalidateQueries({queryKey:["xray-history"]}),e.invalidateQueries({queryKey:["xray-activity"]}),e.invalidateQueries({queryKey:["xray-watch-sessions"]}),e.invalidateQueries({queryKey:["xray-status"]})}})}function g(){return(0,n.useMutation)({mutationFn:e=>l(e)})}async function b(e){let t=await (0,s.gatedFetch)(`${u}/api/xray/watch/start`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error(await (0,s.readApiError)(t,"Failed to start watch"));return t.json()}async function S(e){let t=await (0,s.gatedFetch)(`${u}/api/xray/watch/stop`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({target:e})});if(!t.ok)throw Error(await (0,s.readApiError)(t,"Failed to stop watch"));return t.json()}function k(){return(0,i.useQuery)({queryKey:["xray-active-watchers"],queryFn:()=>o("/api/xray/watch/active","Failed to fetch active watchers"),refetchInterval:1e4})}function q(){let e=(0,a.useQueryClient)();return(0,n.useMutation)({mutationFn:b,onSuccess:()=>{e.invalidateQueries({queryKey:["xray-watch-sessions"]}),e.invalidateQueries({queryKey:["xray-active-watchers"]}),e.invalidateQueries({queryKey:["xray-status"]})}})}function E(){let e=(0,a.useQueryClient)();return(0,n.useMutation)({mutationFn:S,onSuccess:()=>{e.invalidateQueries({queryKey:["xray-watch-sessions"]}),e.invalidateQueries({queryKey:["xray-active-watchers"]}),e.invalidateQueries({queryKey:["xray-status"]})}})}e.s(["useActiveWatchers",()=>k,"usePickXRayTarget",()=>g,"useStartWatch",()=>q,"useStopWatch",()=>E,"useXRayActivity",()=>m,"useXRayHistory",()=>f,"useXRayHistoryEntry",()=>p,"useXRayScan",()=>w,"useXRayStatus",()=>h,"useXRayWatchSessions",()=>v],31309)},44758,e=>{"use strict";let t=(0,e.i(24929).default)("shield-check",[["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:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["ShieldCheck",()=>t],44758)},87353,e=>{"use strict";var t=e.i(22534),r=e.i(45688),n=e.i(71921),i=e.i(1235),a=e.i(88969),s=e.i(23147),u=e.i(35372);let o=t.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function c(e){let t=new URLSearchParams;e?.startTime&&t.set("startTime",e.startTime),e?.endTime&&t.set("endTime",e.endTime),e?.source&&t.set("source",e.source),e?.firewallResult&&t.set("firewallResult",e.firewallResult),e?.project&&t.set("project",e.project),e?.limit&&t.set("limit",e.limit.toString());let r=await (0,a.authFetch)(`${o}/api/v1/audit?${t}`);if(!r.ok)throw Error(await (0,a.readApiError)(r,"Failed to fetch audit logs"));return r.json()}async function l(e,t){let r=new URLSearchParams({timeRange:e});t&&r.set("project",t);let n=await (0,a.authFetch)(`${o}/api/v1/audit/stats?${r}`);if(!n.ok)throw Error(await (0,a.readApiError)(n,"Failed to fetch audit stats"));return n.json()}async function y(e="pending",t=50,r,n){let i=new URLSearchParams({status:e,limit:t.toString()});r&&i.set("project",r),n&&i.set("sourceType",n);let s=await (0,a.authFetch)(`${o}/api/v1/quarantine?${i}`);if(!s.ok)throw Error(await (0,a.readApiError)(s,"Failed to fetch quarantine"));return s.json()}async function d(e){let t=await (0,a.authFetch)(`${o}/api/v1/quarantine/${e}/approve`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reviewedBy:"dashboard"})});if(!t.ok)throw Error(await (0,a.readApiError)(t,"Failed to approve quarantined item"));return t.json()}async function h(e,t){let r=await (0,a.authFetch)(`${o}/api/v1/quarantine/${e}/reject`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reviewedBy:"dashboard",notes:t})});if(!r.ok)throw Error(await (0,a.readApiError)(r,"Failed to reject quarantined item"));return r.json()}async function f(e){let t=await (0,a.authFetch)(`${o}/api/v1/quarantine/bulk-approve`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:e,reviewedBy:"dashboard"})});if(!t.ok)throw Error(await (0,a.readApiError)(t,"Failed to bulk approve quarantined items"));return t.json()}async function p(e){let t=await (0,a.authFetch)(`${o}/api/v1/quarantine/bulk-reject`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:e,reviewedBy:"dashboard"})});if(!t.ok)throw Error(await (0,a.readApiError)(t,"Failed to bulk reject quarantined items"));return t.json()}async function m(){let e=await (0,a.authFetch)(`${o}/api/v1/review-copilot/status`);if(!e.ok)throw Error(await (0,a.readApiError)(e,"Failed to fetch Local AI status"));return e.json()}async function v(e){let t=await (0,a.authFetch)(`${o}/api/v1/quarantine/${e}/annotate`,{method:"POST",headers:{"Content-Type":"application/json"}});if(!t.ok)throw Error(await (0,a.readApiError)(t,"Failed to explain quarantined item"));return t.json()}async function w(e){let t=await (0,a.authFetch)(`${o}/api/v1/quarantine/annotate-pending`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error(await (0,a.readApiError)(t,"Failed to explain pending quarantine"));return t.json()}function g(e){let{isConnected:t}=(0,u.useWebSocketStatus)();return(0,r.useQuery)({queryKey:["audit-logs",e],queryFn:()=>c(e),refetchInterval:(0,s.wsGatedInterval)(t,3e4),retry:2})}function b(e="24h",t){let{isConnected:n}=(0,u.useWebSocketStatus)();return(0,r.useQuery)({queryKey:["audit-stats",e,t],queryFn:()=>l(e,t),refetchInterval:(0,s.wsGatedInterval)(n,3e4),retry:2})}function S(e="pending",t=50,n,i){let{isConnected:a}=(0,u.useWebSocketStatus)();return(0,r.useQuery)({queryKey:["quarantine",e,t,n,i],queryFn:()=>y(e,t,n,i),refetchInterval:(0,s.wsGatedInterval)(a,3e4),retry:2})}function k(){return(0,r.useQuery)({queryKey:["review-copilot-status"],queryFn:m,refetchInterval:3e4,retry:2})}function q(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:d,onSuccess:()=>{e.invalidateQueries({queryKey:["quarantine"]}),e.invalidateQueries({queryKey:["audit-stats"]}),e.invalidateQueries({queryKey:["memories"]}),e.invalidateQueries({queryKey:["stats"]}),e.invalidateQueries({queryKey:["review-queue"]}),e.invalidateQueries({queryKey:["openclaw-sessions"]}),e.invalidateQueries({queryKey:["quality"]})}})}function E(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:({id:e,notes:t})=>h(e,t),onSuccess:()=>{e.invalidateQueries({queryKey:["quarantine"]}),e.invalidateQueries({queryKey:["audit-stats"]}),e.invalidateQueries({queryKey:["review-queue"]})}})}function F(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:f,onSuccess:()=>{e.invalidateQueries({queryKey:["quarantine"]}),e.invalidateQueries({queryKey:["audit-stats"]}),e.invalidateQueries({queryKey:["memories"]}),e.invalidateQueries({queryKey:["stats"]}),e.invalidateQueries({queryKey:["review-queue"]}),e.invalidateQueries({queryKey:["openclaw-sessions"]}),e.invalidateQueries({queryKey:["quality"]})}})}function Q(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:p,onSuccess:()=>{e.invalidateQueries({queryKey:["quarantine"]}),e.invalidateQueries({queryKey:["audit-stats"]}),e.invalidateQueries({queryKey:["review-queue"]})}})}function j(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:v,onSuccess:()=>{e.invalidateQueries({queryKey:["quarantine"]}),e.invalidateQueries({queryKey:["review-copilot-status"]})}})}function C(){let e=(0,i.useQueryClient)();return(0,n.useMutation)({mutationFn:w,onSuccess:()=>{e.invalidateQueries({queryKey:["quarantine"]}),e.invalidateQueries({queryKey:["review-copilot-status"]})}})}e.s(["useAnnotatePendingQuarantine",()=>C,"useAnnotateQuarantine",()=>j,"useApproveQuarantine",()=>q,"useAuditLogs",()=>g,"useAuditStats",()=>b,"useBulkApproveQuarantine",()=>F,"useBulkRejectQuarantine",()=>Q,"useQuarantine",()=>S,"useRejectQuarantine",()=>E,"useReviewCopilotStatus",()=>k])},21475,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return o},searchParamsToUrlQuery:function(){return a},urlQueryToSearchParams:function(){return u}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});function a(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function s(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function u(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,s(e));else t.set(r,s(n));return t}function o(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},78559,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return u},formatWithValidation:function(){return c},urlObjectKeys:function(){return o}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let a=e.r(87533)._(e.r(21475)),s=/https?|ftp|gopher|file/;function u(e){let{auth:t,hostname:r}=e,n=e.protocol||"",i=e.pathname||"",u=e.hash||"",o=e.query||"",c=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?c=t+e.host:r&&(c=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(c+=":"+e.port)),o&&"object"==typeof o&&(o=String(a.urlQueryToSearchParams(o)));let l=e.search||o&&`?${o}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||s.test(n))&&!1!==c?(c="//"+(c||""),i&&"/"!==i[0]&&(i="/"+i)):c||(c=""),u&&"#"!==u[0]&&(u="#"+u),l&&"?"!==l[0]&&(l="?"+l),i=i.replace(/[?#]/g,encodeURIComponent),l=l.replace("#","%23"),`${n}${c}${i}${l}${u}`}let o=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function c(e){return u(e)}},65445,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return i}});let n=e.r(4);function i(e,t){let r=(0,n.useRef)(null),i=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=i.current;t&&(i.current=null,t())}else e&&(r.current=a(e,n)),t&&(i.current=a(t,n))},[e,t])}function a(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},45212,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DecodeError:function(){return v},MiddlewareNotFoundError:function(){return S},MissingStaticPage:function(){return b},NormalizeError:function(){return w},PageNotFoundError:function(){return g},SP:function(){return p},ST:function(){return m},WEB_VITALS:function(){return a},execOnce:function(){return s},getDisplayName:function(){return y},getLocationOrigin:function(){return c},getURL:function(){return l},isAbsoluteUrl:function(){return o},isResSent:function(){return d},loadGetInitialProps:function(){return f},normalizeRepeatedSlashes:function(){return h},stringifyError:function(){return k}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let a=["CLS","FCP","FID","INP","LCP","TTFB"];function s(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let u=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,o=e=>u.test(e);function c(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function l(){let{href:e}=window.location,t=c();return e.substring(t.length)}function y(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function d(e){return e.finished||e.headersSent}function h(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function f(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await f(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&d(r))return n;if(!n)throw Object.defineProperty(Error(`"${y(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n}let p="u">typeof performance,m=p&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class v extends Error{}class w extends Error{}class g extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class b extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class S extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function k(e){return JSON.stringify({message:e.message,stack:e.stack})}},81412,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return a}});let n=e.r(45212),i=e.r(35814);function a(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,i.hasBasePath)(r.pathname)}catch(e){return!1}}},44083,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},56640,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return v},useLinkStatus:function(){return g}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let a=e.r(87533),s=e.r(27493),u=a._(e.r(4)),o=e.r(78559),c=e.r(94132),l=e.r(65445),y=e.r(45212),d=e.r(43612);e.r(90976);let h=e.r(39271),f=e.r(81412),p=e.r(68714);function m(e){return"string"==typeof e?e:(0,o.formatUrl)(e)}function v(t){var r;let n,i,a,[o,v]=(0,u.useOptimistic)(h.IDLE_LINK_STATUS),g=(0,u.useRef)(null),{href:b,as:S,children:k,prefetch:q=null,passHref:E,replace:F,shallow:Q,scroll:j,onClick:C,onMouseEnter:K,onTouchStart:O,legacyBehavior:P=!1,onNavigate:M,ref:T,unstable_dynamicOnHover:R,...x}=t;n=k,P&&("string"==typeof n||"number"==typeof n)&&(n=(0,s.jsx)("a",{children:n}));let $=u.default.useContext(c.AppRouterContext),_=!1!==q,A=!1!==q?null===(r=q)||"auto"===r?p.FetchStrategy.PPR:p.FetchStrategy.Full:p.FetchStrategy.PPR,{href:I,as:L}=u.default.useMemo(()=>{let e=m(b);return{href:e,as:S?m(S):e}},[b,S]);if(P){if(n?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});i=u.default.Children.only(n)}let N=P?i&&"object"==typeof i&&i.ref:T,U=u.default.useCallback(e=>(null!==$&&(g.current=(0,h.mountLinkInstance)(e,I,$,A,_,v)),()=>{g.current&&((0,h.unmountLinkForCurrentNavigation)(g.current),g.current=null),(0,h.unmountPrefetchableInstance)(e)}),[_,I,$,A,v]),W={ref:(0,l.useMergedRef)(U,N),onClick(t){P||"function"!=typeof C||C(t),P&&i.props&&"function"==typeof i.props.onClick&&i.props.onClick(t),!$||t.defaultPrevented||function(t,r,n,i,a,s,o){if("u">typeof window){let c,{nodeName:l}=t.currentTarget;if("A"===l.toUpperCase()&&((c=t.currentTarget.getAttribute("target"))&&"_self"!==c||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,f.isLocalURL)(r)){a&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),o){let e=!1;if(o({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:y}=e.r(87046);u.default.startTransition(()=>{y(n||r,a?"replace":"push",s??!0,i.current)})}}(t,I,L,g,F,j,M)},onMouseEnter(e){P||"function"!=typeof K||K(e),P&&i.props&&"function"==typeof i.props.onMouseEnter&&i.props.onMouseEnter(e),$&&_&&(0,h.onNavigationIntent)(e.currentTarget,!0===R)},onTouchStart:function(e){P||"function"!=typeof O||O(e),P&&i.props&&"function"==typeof i.props.onTouchStart&&i.props.onTouchStart(e),$&&_&&(0,h.onNavigationIntent)(e.currentTarget,!0===R)}};return(0,y.isAbsoluteUrl)(L)?W.href=L:P&&!E&&("a"!==i.type||"href"in i.props)||(W.href=(0,d.addBasePath)(L)),a=P?u.default.cloneElement(i,W):(0,s.jsx)("a",{...x,...W,children:n}),(0,s.jsx)(w.Provider,{value:o,children:a})}e.r(44083);let w=(0,u.createContext)(h.IDLE_LINK_STATUS),g=()=>(0,u.useContext)(w);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},71010,e=>{"use strict";let t=(0,e.i(24929).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);e.s(["Terminal",()=>t],71010)}]);
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,16467,e=>{"use strict";var t=e.i(27493),s=e.i(76490);let a={critical:"severity-critical",high:"severity-high",medium:"severity-medium",low:"severity-low",safe:"severity-safe",info:"severity-info"};function r({children:e,className:r,hover:c=!1,hoverCyan:i=!1,strong:l=!1,severity:n,onClick:d,selected:m=!1,title:o,statusLine:x,bodyPadding:h=!0}){let v=d?e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),d())}:void 0;return(0,t.jsxs)("div",{className:(0,s.cn)("glass-card overflow-hidden",c&&"glass-card-hover cursor-pointer",i&&"glass-card-hover-cyan cursor-pointer",d&&!c&&!i&&"cursor-pointer",n&&a[n],m&&"border-[var(--term-electric)]",r),onClick:d,onKeyDown:v,role:d?"button":void 0,tabIndex:d?0:void 0,children:[void 0!==o&&(0,t.jsxs)("div",{className:"flex items-center gap-2 border-b border-[var(--term-border)] bg-[var(--term-surface-2)]/50 px-4 py-1.5 theme-glass:hidden",children:[(0,t.jsx)("span",{"aria-hidden":!0,className:"cic-bloom text-[var(--cic-cyan)]",children:"▸"}),(0,t.jsx)("span",{className:"cic-bloom select-none truncate text-xs font-semibold uppercase tracking-[0.14em] text-[var(--cic-cyan)]",children:o}),(0,t.jsx)("span",{"aria-hidden":!0,className:"ml-auto h-1.5 w-1.5 shrink-0 rounded-full bg-[var(--cic-cyan)]/60"})]}),(0,t.jsx)("div",{className:(0,s.cn)(h?"p-5":""),children:e}),void 0!==x&&(0,t.jsx)("div",{className:"px-4 py-2 text-xs border-t border-[var(--term-border)] bg-[var(--term-surface-2)] text-[var(--term-text-muted)] theme-glass:hidden",children:x})]})}e.s(["GlassCard",()=>r])},19331,e=>{"use strict";let t=(0,e.i(24929).default)("clock-3",[["path",{d:"M12 6v6h4",key:"135r8i"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);e.s(["Clock3",()=>t],19331)},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)},46194,e=>{"use strict";var t=e.i(27493),s=e.i(76490);let a={coral:"text-[var(--term-electric-fg)]",cyan:"text-[var(--term-neon-fg)]",amber:"text-[var(--term-warn)]",muted:"text-[var(--term-text)]"},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 c({label:e,value:c,icon:i,trend:l,accent:n="cyan",className:d}){let m=r[n];return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:(0,s.cn)("theme-glass:hidden flex items-center justify-between gap-3 px-4 py-2 border-b border-[var(--term-border)] last:border-0",d),children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 min-w-0",children:[(0,t.jsx)(i,{size:14,className:"text-[var(--term-text-muted)] shrink-0","aria-hidden":!0}),(0,t.jsx)("span",{className:"text-xs uppercase tracking-wider text-[var(--term-text-muted)] truncate",children:e})]}),(0,t.jsxs)("div",{className:"flex items-baseline gap-2 shrink-0",children:[(0,t.jsx)("span",{className:(0,s.cn)("text-base tabular-nums",a[n]),children:c}),l&&(0,t.jsxs)("span",{className:(0,s.cn)("text-xs tabular-nums",l.value>=0?"text-[var(--term-neon-fg)]":"text-[var(--term-danger)]"),children:[l.value>=0?"+":"",l.value,"%"]})]})]}),(0,t.jsx)("div",{className:(0,s.cn)("hidden theme-glass:block glass-card p-5",d),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:c}),l&&(0,t.jsxs)("p",{className:(0,s.cn)("mt-1 text-xs",l.value>=0?m.trendUp:m.trendDown),children:[l.value>=0?"+":"",l.value,"% ",l.label]})]}),(0,t.jsx)("div",{className:(0,s.cn)("rounded-xl p-2.5",m.iconBg),children:(0,t.jsx)(i,{size:20,className:m.icon})})]})})]})}e.s(["StatCard",()=>c])},15771,63312,50279,e=>{"use strict";let t=(0,e.i(24929).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["CheckCircle2",()=>t],15771);var s=e.i(22534),a=e.i(45688),r=e.i(71921),c=e.i(1235),i=e.i(88969);let l=s.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function n(){let e=await (0,i.authFetch)(`${l}/api/license/status`);if(!e.ok)throw Error("Failed to fetch license status");return e.json()}async function d(e){let t=await (0,i.authFetch)(`${l}/api/license/activate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:e})});if(!t.ok)throw Error((await t.json().catch(()=>({error:"Activation failed"}))).error||"Activation failed");return t.json()}async function m(){let e=await (0,i.authFetch)(`${l}/api/license/deactivate`,{method:"POST"});if(!e.ok)throw Error("Failed to deactivate license");return e.json()}function o(){return(0,a.useQuery)({queryKey:["license-status"],queryFn:n,refetchInterval:6e4,retry:2})}function x(){let e=(0,c.useQueryClient)();return(0,r.useMutation)({mutationFn:e=>d(e),onSuccess:()=>{e.invalidateQueries({queryKey:["license-status"]})}})}function h(){let e=(0,c.useQueryClient)();return(0,r.useMutation)({mutationFn:m,onSuccess:()=>{e.invalidateQueries({queryKey:["license-status"]})}})}e.s(["useActivateLicense",()=>x,"useDeactivateLicense",()=>h,"useLicenseStatus",()=>o],63312),e.s(["PLAN_PRICING",0,{pro:{label:"Pro",price:"£29/mo"},team:{label:"Team",price:"£99/mo"}},"TIER_BG",0,{free:"bg-[var(--sc-surface-interactive)]",pro:"bg-[var(--sc-cyan)]/10",team:"bg-[var(--sc-coral)]/10",enterprise:"bg-[var(--sc-amber)]/10"},"TIER_COLOURS",0,{free:"text-[var(--sc-text-muted)]",pro:"text-[var(--sc-cyan)]",team:"text-[var(--sc-coral)]",enterprise:"text-[var(--sc-amber)]"},"TIER_LABELS",0,{free:"Free",pro:"Pro",team:"Team",enterprise:"Enterprise"}],50279)},18509,e=>{"use strict";let t=(0,e.i(24929).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);e.s(["AlertTriangle",()=>t],18509)},95659,e=>{"use strict";var t=e.i(27493),s=e.i(76490);let a={critical:"text-[var(--term-danger)]",high:"text-[var(--term-danger)]",medium:"text-[var(--term-warn)]",low:"text-[var(--term-electric-fg)]",safe:"text-[var(--term-neon-fg)]",info:"text-[var(--term-text-muted)]",coral:"text-[var(--term-electric-fg)]",cyan:"text-[var(--term-neon-fg)]",amber:"text-[var(--term-warn)]",muted:"text-[var(--term-text-muted)]"},r={critical:"bg-[var(--term-danger)]",high:"bg-[var(--term-danger)]",medium:"bg-[var(--term-warn)]",low:"bg-[var(--term-electric)]",safe:"bg-[var(--term-neon)]",info:"bg-[var(--term-text-muted)]",coral:"bg-[var(--term-electric)]",cyan:"bg-[var(--term-neon)]",amber:"bg-[var(--term-warn)]",muted:"bg-[var(--term-text-muted)]"},c={critical:"theme-glass:bg-[var(--sc-coral)]/15 theme-glass:border-[var(--sc-coral)]/30",high:"theme-glass:bg-[var(--sc-coral-mid)]/15 theme-glass:border-[var(--sc-coral-mid)]/30",medium:"theme-glass:bg-[var(--sc-amber)]/15 theme-glass:border-[var(--sc-amber)]/30",low:"theme-glass:bg-[var(--sc-cyan-mid)]/15 theme-glass:border-[var(--sc-cyan-mid)]/30",safe:"theme-glass:bg-[var(--sc-cyan)]/15 theme-glass:border-[var(--sc-cyan)]/30",info:"theme-glass:bg-[var(--sc-text-muted)]/15 theme-glass:border-[var(--sc-text-muted)]/30",coral:"theme-glass:bg-[var(--sc-coral)]/15 theme-glass:border-[var(--sc-coral)]/30",cyan:"theme-glass:bg-[var(--sc-cyan)]/15 theme-glass:border-[var(--sc-cyan)]/30",amber:"theme-glass:bg-[var(--sc-amber)]/15 theme-glass:border-[var(--sc-amber)]/30",muted:"theme-glass:bg-[var(--sc-surface-interactive)] theme-glass:border-[var(--sc-border)]"};function i({children:e,variant:i="muted",className:l,dot:n=!1,pulse:d=!1}){return(0,t.jsxs)("span",{className:(0,s.cn)("inline-flex items-center gap-1.5 px-1 text-[11px] font-semibold uppercase tracking-wider whitespace-nowrap",a[i],"theme-glass:rounded-full theme-glass:border theme-glass:px-2.5 theme-glass:py-0.5",c[i],l),children:[n&&(0,t.jsx)("span",{className:(0,s.cn)("h-1.5 w-1.5 rounded-full",r[i],d&&"animate-pulse"),"aria-hidden":!0}),(0,t.jsx)("span",{"aria-hidden":!0,className:"text-[var(--term-text-muted)] theme-glass:hidden",children:"["}),(0,t.jsx)("span",{children:e}),(0,t.jsx)("span",{"aria-hidden":!0,className:"text-[var(--term-text-muted)] theme-glass:hidden",children:"]"})]})}function l(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",()=>i,"riskVariant",()=>l])},81523,e=>{"use strict";var t=e.i(27493),s=e.i(76490),a=e.i(4);let r={coral:"border border-[var(--term-electric)] text-[var(--term-electric-fg)] bg-transparent hover:bg-[var(--term-electric)]/10",cyan:"border border-[var(--term-neon)] text-[var(--term-neon-fg)] bg-transparent hover:bg-[var(--term-neon)]/10",ghost:"border border-transparent text-[var(--term-text-muted)] bg-transparent hover:text-[var(--term-text)] hover:border-[var(--term-border)]",outline:"border border-[var(--term-border)] text-[var(--term-text-dim)] bg-transparent hover:border-[var(--term-text-muted)] hover:text-[var(--term-text)]"},c={sm:"px-2 py-1 text-xs",md:"px-3 py-1.5 text-sm",lg:"px-4 py-2 text-sm"},i={coral:"theme-glass:border-0 theme-glass:bg-gradient-to-br theme-glass:from-[var(--sc-coral)] theme-glass:to-[var(--sc-coral-dark)] theme-glass:text-white theme-glass:hover:shadow-[0_8px_30px_var(--sc-glow-coral-mid)]",cyan:"theme-glass:border-0 theme-glass:bg-[var(--sc-cyan)] theme-glass:text-[var(--sc-bg-deep)] theme-glass:hover:bg-[var(--sc-cyan-mid)]",ghost:"theme-glass:bg-transparent theme-glass:text-[var(--sc-text-secondary)] theme-glass:hover:bg-[var(--sc-surface-interactive)]",outline:"theme-glass:bg-transparent theme-glass:border theme-glass:border-[var(--sc-border)] theme-glass:text-[var(--sc-text-secondary)]"},l={sm:"theme-glass:px-3 theme-glass:py-1.5 theme-glass:text-xs theme-glass:rounded-lg",md:"theme-glass:px-4 theme-glass:py-2 theme-glass:text-sm theme-glass:rounded-xl",lg:"theme-glass:px-6 theme-glass:py-3 theme-glass:text-sm theme-glass:rounded-xl"},n=(0,a.forwardRef)(({variant:e="coral",size:a="md",glow:n=!1,pulse:d=!1,className:m,children:o,...x},h)=>(0,t.jsxs)("button",{ref:h,className:(0,s.cn)("inline-flex items-center justify-center gap-2 rounded-md font-mono transition-colors","focus-visible:outline-1 focus-visible:outline-offset-2 focus-visible:outline-[var(--term-electric)]",d?"disabled:pointer-events-none":"disabled:pointer-events-none disabled:opacity-50",r[e],c[a],"theme-glass:font-semibold theme-glass:transition-all theme-glass:hover:-translate-y-0.5",i[e],l[a],n&&"coral"===e&&"theme-glass:glow-coral-subtle",n&&"cyan"===e&&"theme-glass:glow-cyan-subtle",d&&"theme-glass:glow-cyan-pulse",m),type:"button",...x,children:[(0,t.jsxs)("span",{className:"inline-flex items-center gap-2 theme-glass:hidden",children:[d&&(0,t.jsx)("span",{className:"cli-cursor","aria-hidden":!0}),(0,t.jsx)("span",{className:"text-[var(--term-text-muted)]","aria-hidden":!0,children:"["}),(0,t.jsx)("span",{className:"leading-none",children:o}),(0,t.jsx)("span",{className:"text-[var(--term-text-muted)]","aria-hidden":!0,children:"]"})]}),(0,t.jsx)("span",{className:"hidden theme-glass:inline-flex items-center gap-2",children:o})]}));n.displayName="Button",e.s(["Button",0,n])},66949,e=>{"use strict";let t=(0,e.i(24929).default)("lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);e.s(["Lock",()=>t],66949)},40950,e=>{"use strict";var t=e.i(27493),s=e.i(76490),a=e.i(66949);function r({tabs:e,activeTab:r,onChange:c,className:i}){return(0,t.jsx)("div",{className:(0,s.cn)("flex items-center gap-4 overflow-x-auto border-b border-[var(--term-border)] px-1 scrollbar-hide","theme-glass:gap-1 theme-glass:rounded-xl theme-glass:border-0 theme-glass:bg-[var(--sc-bg-surface)] theme-glass:p-1",i),role:"tablist",children:e.map(e=>{let i=e.id===r;return(0,t.jsxs)("button",{type:"button",role:"tab","aria-selected":i?"true":"false",onClick:()=>c(e.id),className:(0,s.cn)("relative flex shrink-0 items-center gap-2 px-1 py-2 text-xs font-mono transition-colors","focus-visible:outline-1 focus-visible:outline-offset-2 focus-visible:outline-[var(--term-electric)]",i?"text-[var(--term-electric-fg)]":"text-[var(--term-text-muted)] hover:text-[var(--term-text)]","theme-glass:font-medium theme-glass:font-sans theme-glass:rounded-lg theme-glass:px-3 theme-glass:py-2 sm:theme-glass:px-4 sm:theme-glass:text-sm",i&&"theme-glass:bg-[var(--sc-bg-elevated)] theme-glass:text-[var(--sc-text-primary)]",!i&&"theme-glass:hover:text-[var(--sc-text-secondary)]"),children:[e.icon,(0,t.jsx)("span",{children:e.label}),e.locked&&(0,t.jsx)(a.Lock,{size:11,className:"text-[var(--term-warn)] theme-glass:text-[var(--sc-coral)]"}),void 0!==e.count&&e.count>0&&(0,t.jsxs)("span",{className:"text-[var(--term-text-muted)] theme-glass:ml-0.5 theme-glass:rounded-full theme-glass:bg-[var(--sc-coral)]/15 theme-glass:px-1.5 theme-glass:py-0.5 theme-glass:text-[10px] theme-glass:font-bold theme-glass:text-[var(--sc-coral)]",children:[(0,t.jsxs)("span",{className:"theme-glass:hidden",children:["(",e.count,")"]}),(0,t.jsx)("span",{className:"hidden theme-glass:inline",children:e.count})]}),i&&(0,t.jsx)("span",{"aria-hidden":!0,className:"absolute -bottom-px left-0 right-0 h-px bg-[var(--term-electric)] theme-glass:hidden"})]},e.id)})})}function c({eyebrow:e,title:a,subtitle:c,actions:i,tabs:l,activeTab:n,onTabChange:d,className:m}){return(0,t.jsxs)("div",{className:(0,s.cn)("space-y-3 theme-glass:space-y-4",m),children:[(0,t.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between sm:gap-4 theme-glass:gap-3",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsxs)("div",{className:"theme-glass:hidden",children:[e&&(0,t.jsxs)("p",{className:"text-[11px] uppercase tracking-wider text-[var(--term-text-muted)]",children:[(0,t.jsx)("span",{className:"text-[var(--cic-cyan)]",children:"›"})," ",e]}),(0,t.jsxs)("h1",{className:"mt-1 flex items-baseline flex-wrap gap-2 text-base font-mono text-[var(--term-text)] sm:text-lg",children:[(0,t.jsx)("span",{className:"text-[var(--cic-cyan)]","aria-hidden":!0,children:"$"}),(0,t.jsx)("span",{children:"shieldcortex"}),(0,t.jsx)("span",{className:"text-[var(--term-text-dim)]",children:a.toLowerCase()}),(0,t.jsx)("span",{className:"cli-cursor text-[var(--cic-cyan)]","aria-hidden":!0})]}),c&&(0,t.jsxs)("p",{className:"mt-1 text-xs text-[var(--term-text-muted)]",children:[(0,t.jsx)("span",{"aria-hidden":!0,children:"#"})," ",c]})]}),(0,t.jsxs)("div",{className:"hidden theme-glass:block",children:[e&&(0,t.jsx)("p",{className:"text-[10px] font-semibold uppercase tracking-[0.2em] text-[var(--sc-coral)] sm:text-[11px]",children:e}),(0,t.jsx)("h1",{className:"mt-1 text-xl font-bold text-[var(--sc-text-primary)] sm:text-2xl",children:a}),c&&(0,t.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-secondary)] sm:text-sm",children:c})]})]}),i&&(0,t.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:i})]}),l&&n&&d&&(0,t.jsx)(r,{tabs:l,activeTab:n,onChange:d})]})}e.s(["PageHeader",()=>c],40950)},36062,e=>{"use strict";let t=(0,e.i(24929).default)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);e.s(["ArrowRight",()=>t],36062)},14612,e=>{"use strict";var t=e.i(27493),s=e.i(4),a=e.i(56640),r=e.i(18509),c=e.i(36062),i=e.i(15771),l=e.i(19331),n=e.i(7571),d=e.i(75025),m=e.i(76344),o=e.i(27528),x=e.i(51069),h=e.i(16467),v=e.i(46194),u=e.i(95659),g=e.i(81523),p=e.i(40950),b=e.i(13808);let f=(0,e.i(24929).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);function y({ready:e,memoryCount:s,scanCount:a,blockedCount:r}){return!e||s>0||a>0||r>0?null:(0,t.jsxs)(h.GlassCard,{strong:!0,className:"p-6",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(b.Sparkles,{size:16,className:"text-[var(--sc-cyan)]"}),(0,t.jsx)("h3",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Welcome to ShieldCortex"})]}),(0,t.jsxs)("p",{className:"mt-2 max-w-2xl text-sm text-[var(--sc-text-secondary)]",children:["Nothing here yet. The dashboard is for ",(0,t.jsx)("strong",{className:"text-[var(--sc-text-primary)]",children:"visual review and bulk decisions"}),"; the ",(0,t.jsx)("code",{className:"font-mono",children:"shieldcortex"})," CLI and the agent hooks are for ",(0,t.jsx)("strong",{className:"text-[var(--sc-text-primary)]",children:"automation"}),". It fills in as your agents capture memories and the defence pipeline runs."]}),(0,t.jsxs)("div",{className:"mt-5 grid gap-3 sm:grid-cols-3",children:[(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] p-4",children:[(0,t.jsx)(n.Database,{size:16,className:"text-[var(--sc-cyan)]"}),(0,t.jsx)("p",{className:"mt-2 text-sm font-medium text-[var(--sc-text-primary)]",children:"Capture memories"}),(0,t.jsxs)("p",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:["Captured automatically as you work (Claude Code / OpenClaw hooks), or via the"," ",(0,t.jsx)("code",{className:"font-mono",children:"remember"})," MCP tool."]})]}),(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] p-4",children:[(0,t.jsx)(f,{size:16,className:"text-[var(--sc-cyan)]"}),(0,t.jsx)("p",{className:"mt-2 text-sm font-medium text-[var(--sc-text-primary)]",children:"Generate audit data"}),(0,t.jsxs)("p",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:["Run ",(0,t.jsx)("code",{className:"font-mono",children:"shieldcortex scan <file>"})," to push content through the defence pipeline and populate the audit log."]})]}),(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] p-4",children:[(0,t.jsx)(m.ScanSearch,{size:16,className:"text-[var(--sc-cyan)]"}),(0,t.jsx)("p",{className:"mt-2 text-sm font-medium text-[var(--sc-text-primary)]",children:"Scan supply chain"}),(0,t.jsxs)("p",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:["Run an X-Ray scan from the X-Ray page, or"," ",(0,t.jsx)("code",{className:"font-mono",children:"shieldcortex xray <path>"})," from the CLI."]})]})]})]})}var j=e.i(88069),N=e.i(87353),w=e.i(63312),k=e.i(31309),C=e.i(50279);function S(){let{data:e}=(0,j.useStats)(),{data:b}=(0,N.useAuditStats)("24h"),{data:f}=(0,N.useQuarantine)("pending",10),{data:S}=(0,N.useQuarantine)("pending",1,void 0,"memory_file"),{data:R}=(0,j.useQuality)(),{data:T}=(0,j.useContradictions)(),{data:M}=(0,w.useLicenseStatus)(),{data:A}=(0,k.useXRayStatus)(),L=e?.total??0,$=e?.decayDistribution?.healthy??0,z=e?.decayDistribution?.fading??0,D=e?.decayDistribution?.critical??0,B=e?.decayDistribution?Math.round($/Math.max(1,L)*100):0,I=T?.count??T?.contradictions?.length??0,F=f?.total??0,U=S?.total??0,E=Math.max(0,F-U),P=b?.blockedCount??0,G=R?.duplicates?.count??0,_=R?.stale?.count??0,q=R?.neverAccessed?.count??0,H=A?.summary?.scans??0,Q=(0,s.useMemo)(()=>{let e=[];return U>0&&e.push({title:`${U} memory file finding${1===U?"":"s"} need review`,detail:"These are scanned agent memory files, not stored ShieldCortex memories. Review or dismiss them without editing files.",severity:U>10?"critical":"medium",href:"/protection?tab=quarantine",cta:"Review files"}),E>0&&e.push({title:`${E} memory write${1===E?"":"s"} in quarantine`,detail:"Review blocked writes before they become silent operator debt.",severity:E>10?"critical":"medium",href:"/protection?tab=quarantine",cta:"Review writes"}),I>0&&e.push({title:`${I} contradiction${1===I?"":"s"} detected`,detail:"Conflicting facts reduce recall trust.",severity:I>5?"high":"medium",href:"/memory?tab=review",cta:"Resolve"}),P>0&&e.push({title:`${P} blocked operation${1===P?"":"s"} (24h)`,detail:"Defence pipeline blocked suspicious writes.",severity:"high",href:"/protection?tab=audit",cta:"View audit"}),_+G>0&&e.push({title:"Memory cleanup available",detail:`${_} stale, ${G} duplicate, ${q} unused memories.`,severity:"low",href:"/memory?tab=review",cta:"Clean up"}),e.slice(0,4)},[U,E,I,P,_,G,q]),O=U>0&&E>0?`${U} file finding${1===U?"":"s"}, ${E} write${1===E?"":"s"} pending.`:U>0?`${U} memory-file finding${1===U?"":"s"} pending.`:`${F} item${1===F?"":"s"} pending review.`;return(0,t.jsx)("div",{className:"h-full overflow-y-auto",children:(0,t.jsxs)("div",{className:"mx-auto max-w-7xl space-y-6 p-6",children:[(0,t.jsx)(p.PageHeader,{eyebrow:"ShieldCortex",title:"Command Centre",subtitle:"Stored-memory health, memory-file findings, threat pressure, and operational status at a glance."}),(0,t.jsx)(y,{ready:void 0!==e,memoryCount:L,scanCount:H,blockedCount:P}),(0,t.jsx)(h.GlassCard,{title:"SYSTEM STATUS",bodyPadding:!1,children:(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4 p-4 lg:grid-cols-5",children:[(0,t.jsx)(v.StatCard,{label:"Stored Memories",value:L.toLocaleString(),icon:n.Database,accent:"cyan",trend:B>0?{value:B,label:"healthy"}:void 0}),(0,t.jsx)(v.StatCard,{label:"Memory Files Flagged",value:U.toLocaleString(),icon:d.FileText,accent:U>0?"amber":"muted"}),(0,t.jsx)(v.StatCard,{label:"Threats Blocked",value:P.toLocaleString(),icon:x.ShieldAlert,accent:P>0?"coral":"muted"}),(0,t.jsx)(v.StatCard,{label:"X-Ray Scans",value:H.toLocaleString(),icon:m.ScanSearch,accent:"cyan"}),(0,t.jsx)(v.StatCard,{label:"Health Score",value:`${B}%`,icon:o.Shield,accent:B>=80?"cyan":B>=50?"amber":"coral"})]})}),(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-6 lg:grid-cols-[1fr_1fr]",children:[(0,t.jsxs)(h.GlassCard,{className:"p-6",children:[(0,t.jsx)("h3",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Stored Memory Health"}),(0,t.jsx)("p",{className:"mt-1 text-sm text-[var(--sc-text-muted)]",children:"Decay distribution across ShieldCortex stored memories."}),(0,t.jsx)("div",{className:"mt-6 flex items-center justify-center",children:(0,t.jsxs)("div",{className:"relative h-40 w-40",children:[(0,t.jsxs)("svg",{viewBox:"0 0 100 100",className:"h-full w-full -rotate-90",children:[(0,t.jsx)("circle",{cx:"50",cy:"50",r:"42",fill:"none",stroke:"var(--sc-bg-elevated)",strokeWidth:"8"}),(0,t.jsx)("circle",{cx:"50",cy:"50",r:"42",fill:"none",stroke:"var(--sc-cyan)",strokeWidth:"8",strokeDasharray:`${2.64*B} 264`,strokeLinecap:"round",className:"transition-all duration-1000"})]}),(0,t.jsxs)("div",{className:"absolute inset-0 flex flex-col items-center justify-center",children:[(0,t.jsxs)("span",{className:"text-3xl font-bold text-[var(--sc-text-primary)]",children:[B,"%"]}),(0,t.jsx)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:"healthy"})]})]})}),(0,t.jsxs)("div",{className:"mt-6 grid grid-cols-3 gap-3 text-center",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-lg font-semibold text-[var(--sc-cyan)]",children:$}),(0,t.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)]",children:"Healthy"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-lg font-semibold text-[var(--sc-amber)]",children:z}),(0,t.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)]",children:"Fading"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-lg font-semibold text-[var(--sc-coral)]",children:D}),(0,t.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)]",children:"Critical"})]})]})]}),(0,t.jsxs)(h.GlassCard,{className:"p-6",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("h3",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Urgent Actions"}),Q.length>0&&(0,t.jsxs)(u.Badge,{variant:"coral",dot:!0,pulse:!0,children:[Q.length," active"]})]}),(0,t.jsx)("p",{className:"mt-1 text-sm text-[var(--sc-text-muted)]",children:"Quickest wins for trust, safety, and recall quality."}),(0,t.jsx)("div",{className:"mt-4 space-y-3",children:0===Q.length?(0,t.jsxs)("div",{className:"flex items-center gap-3 rounded-xl bg-[var(--sc-bg-elevated)] p-4",children:[(0,t.jsx)(i.CheckCircle2,{size:18,className:"shrink-0 text-[var(--sc-cyan)]"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"All clear"}),(0,t.jsx)("p",{className:"text-xs text-[var(--sc-text-muted)]",children:"No urgent issues right now. Memory health looks stable."})]})]}):Q.map(e=>(0,t.jsxs)(a.default,{href:e.href,className:"group flex items-start gap-3 rounded-xl bg-[var(--sc-bg-elevated)] p-4 transition-all hover:bg-[var(--sc-surface-interactive-hover)]",children:["critical"===e.severity||"high"===e.severity?(0,t.jsx)(r.AlertTriangle,{size:16,className:"mt-0.5 shrink-0 text-[var(--sc-coral)]"}):"medium"===e.severity?(0,t.jsx)(l.Clock3,{size:16,className:"mt-0.5 shrink-0 text-[var(--sc-amber)]"}):(0,t.jsx)(i.CheckCircle2,{size:16,className:"mt-0.5 shrink-0 text-[var(--sc-cyan)]"}),(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)("p",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:e.title}),(0,t.jsx)("p",{className:"mt-0.5 text-xs text-[var(--sc-text-muted)]",children:e.detail})]}),(0,t.jsxs)("span",{className:"flex shrink-0 items-center gap-1 text-xs font-medium text-[var(--sc-cyan)] opacity-0 transition-opacity group-hover:opacity-100",children:[e.cta," ",(0,t.jsx)(c.ArrowRight,{size:12})]})]},e.title))})]})]}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4 lg:grid-cols-4",children:[(0,t.jsx)(a.default,{href:"/xray",children:(0,t.jsxs)(h.GlassCard,{hover:!0,className:"p-5",children:[(0,t.jsx)(m.ScanSearch,{size:20,className:"text-[var(--sc-cyan)]"}),(0,t.jsx)("p",{className:"mt-3 text-sm font-semibold text-[var(--sc-text-primary)]",children:"Run X-Ray Scan"}),(0,t.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:"Inspect packages and files for hidden risk."})]})}),(0,t.jsx)(a.default,{href:"/protection?tab=quarantine",children:(0,t.jsxs)(h.GlassCard,{hover:!0,className:"p-5",children:[(0,t.jsx)(r.AlertTriangle,{size:20,className:"text-[var(--sc-amber)]"}),(0,t.jsx)("p",{className:"mt-3 text-sm font-semibold text-[var(--sc-text-primary)]",children:"Review Quarantine"}),(0,t.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:O})]})}),(0,t.jsx)(a.default,{href:"/memory?tab=recall",children:(0,t.jsxs)(h.GlassCard,{hover:!0,className:"p-5",children:[(0,t.jsx)(n.Database,{size:20,className:"text-[var(--sc-cyan)]"}),(0,t.jsx)("p",{className:"mt-3 text-sm font-semibold text-[var(--sc-text-primary)]",children:"Debug Recall"}),(0,t.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:"Test queries and inspect ranking factors."})]})}),(0,t.jsx)(a.default,{href:"/protection?tab=dome",children:(0,t.jsxs)(h.GlassCard,{hover:!0,className:"p-5",children:[(0,t.jsx)(x.ShieldAlert,{size:20,className:"text-[var(--sc-coral)]"}),(0,t.jsx)("p",{className:"mt-3 text-sm font-semibold text-[var(--sc-text-primary)]",children:"Iron Dome"}),(0,t.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:"Kill switch and behaviour gates."})]})})]}),(0,t.jsxs)(h.GlassCard,{className:"p-6",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Licence"}),(0,t.jsx)("p",{className:"mt-1 text-sm text-[var(--sc-text-muted)]",children:"Current tier and feature access."})]}),(0,t.jsx)(u.Badge,{variant:M?.tier==="pro"?"cyan":M?.tier==="team"?"coral":"muted",children:C.TIER_LABELS[M?.tier??"free"]})]}),M?.tier==="free"&&(0,t.jsxs)("div",{className:"mt-4 flex items-center gap-4 rounded-xl bg-gradient-to-r from-[var(--sc-coral)]/5 to-[var(--sc-cyan)]/5 p-4",children:[(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)("p",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Unlock deep scanning, custom policies, and audit exports"}),(0,t.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:"Pro starts at £29/mo with 10K cloud scans and 90-day retention."})]}),(0,t.jsx)("a",{href:"https://shieldcortex.ai/pricing",target:"_blank",rel:"noopener noreferrer",children:(0,t.jsx)(g.Button,{variant:"coral",size:"sm",glow:!0,children:"Upgrade"})})]})]})]})})}function R(){return(0,t.jsx)(S,{})}e.s(["default",()=>R],14612)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,16467,e=>{"use strict";var t=e.i(27493),s=e.i(76490);let a={critical:"severity-critical",high:"severity-high",medium:"severity-medium",low:"severity-low",safe:"severity-safe",info:"severity-info"};function r({children:e,className:r,hover:c=!1,hoverCyan:i=!1,strong:l=!1,severity:n,onClick:d,selected:m=!1,title:o,statusLine:x,bodyPadding:h=!0}){let v=d?e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),d())}:void 0;return(0,t.jsxs)("div",{className:(0,s.cn)("glass-card overflow-hidden",c&&"glass-card-hover cursor-pointer",i&&"glass-card-hover-cyan cursor-pointer",d&&!c&&!i&&"cursor-pointer",n&&a[n],m&&"border-[var(--term-electric)]",r),onClick:d,onKeyDown:v,role:d?"button":void 0,tabIndex:d?0:void 0,children:[void 0!==o&&(0,t.jsxs)("div",{className:"flex items-center gap-2 border-b border-[var(--term-border)] bg-[var(--term-surface-2)]/50 px-4 py-1.5 theme-glass:hidden",children:[(0,t.jsx)("span",{"aria-hidden":!0,className:"cic-bloom text-[var(--cic-cyan)]",children:"▸"}),(0,t.jsx)("span",{className:"cic-bloom select-none truncate text-xs font-semibold uppercase tracking-[0.14em] text-[var(--cic-cyan)]",children:o}),(0,t.jsx)("span",{"aria-hidden":!0,className:"ml-auto h-1.5 w-1.5 shrink-0 rounded-full bg-[var(--cic-cyan)]/60"})]}),(0,t.jsx)("div",{className:(0,s.cn)(h?"p-5":""),children:e}),void 0!==x&&(0,t.jsx)("div",{className:"px-4 py-2 text-xs border-t border-[var(--term-border)] bg-[var(--term-surface-2)] text-[var(--term-text-muted)] theme-glass:hidden",children:x})]})}e.s(["GlassCard",()=>r])},19331,e=>{"use strict";let t=(0,e.i(24929).default)("clock-3",[["path",{d:"M12 6v6h4",key:"135r8i"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);e.s(["Clock3",()=>t],19331)},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)},46194,e=>{"use strict";var t=e.i(27493),s=e.i(76490);let a={coral:"text-[var(--term-electric-fg)]",cyan:"text-[var(--term-neon-fg)]",amber:"text-[var(--term-warn)]",muted:"text-[var(--term-text)]"},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 c({label:e,value:c,icon:i,trend:l,accent:n="cyan",className:d}){let m=r[n];return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:(0,s.cn)("theme-glass:hidden flex items-center justify-between gap-3 px-4 py-2 border-b border-[var(--term-border)] last:border-0",d),children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 min-w-0",children:[(0,t.jsx)(i,{size:14,className:"text-[var(--term-text-muted)] shrink-0","aria-hidden":!0}),(0,t.jsx)("span",{className:"text-xs uppercase tracking-wider text-[var(--term-text-muted)] truncate",children:e})]}),(0,t.jsxs)("div",{className:"flex items-baseline gap-2 shrink-0",children:[(0,t.jsx)("span",{className:(0,s.cn)("text-base tabular-nums",a[n]),children:c}),l&&(0,t.jsxs)("span",{className:(0,s.cn)("text-xs tabular-nums",l.value>=0?"text-[var(--term-neon-fg)]":"text-[var(--term-danger)]"),children:[l.value>=0?"+":"",l.value,"%"]})]})]}),(0,t.jsx)("div",{className:(0,s.cn)("hidden theme-glass:block glass-card p-5",d),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:c}),l&&(0,t.jsxs)("p",{className:(0,s.cn)("mt-1 text-xs",l.value>=0?m.trendUp:m.trendDown),children:[l.value>=0?"+":"",l.value,"% ",l.label]})]}),(0,t.jsx)("div",{className:(0,s.cn)("rounded-xl p-2.5",m.iconBg),children:(0,t.jsx)(i,{size:20,className:m.icon})})]})})]})}e.s(["StatCard",()=>c])},15771,63312,50279,e=>{"use strict";let t=(0,e.i(24929).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["CheckCircle2",()=>t],15771);var s=e.i(22534),a=e.i(45688),r=e.i(71921),c=e.i(1235),i=e.i(88969);let l=s.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function n(){let e=await (0,i.authFetch)(`${l}/api/license/status`);if(!e.ok)throw Error("Failed to fetch license status");return e.json()}async function d(e){let t=await (0,i.authFetch)(`${l}/api/license/activate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:e})});if(!t.ok)throw Error((await t.json().catch(()=>({error:"Activation failed"}))).error||"Activation failed");return t.json()}async function m(){let e=await (0,i.authFetch)(`${l}/api/license/deactivate`,{method:"POST"});if(!e.ok)throw Error("Failed to deactivate license");return e.json()}function o(){return(0,a.useQuery)({queryKey:["license-status"],queryFn:n,refetchInterval:6e4,retry:2})}function x(){let e=(0,c.useQueryClient)();return(0,r.useMutation)({mutationFn:e=>d(e),onSuccess:()=>{e.invalidateQueries({queryKey:["license-status"]})}})}function h(){let e=(0,c.useQueryClient)();return(0,r.useMutation)({mutationFn:m,onSuccess:()=>{e.invalidateQueries({queryKey:["license-status"]})}})}e.s(["useActivateLicense",()=>x,"useDeactivateLicense",()=>h,"useLicenseStatus",()=>o],63312),e.s(["PLAN_PRICING",0,{pro:{label:"Pro",price:"£29/mo"},team:{label:"Team",price:"£99/mo"}},"TIER_BG",0,{free:"bg-[var(--sc-surface-interactive)]",pro:"bg-[var(--sc-cyan)]/10",team:"bg-[var(--sc-coral)]/10",enterprise:"bg-[var(--sc-amber)]/10"},"TIER_COLOURS",0,{free:"text-[var(--sc-text-muted)]",pro:"text-[var(--sc-cyan)]",team:"text-[var(--sc-coral)]",enterprise:"text-[var(--sc-amber)]"},"TIER_LABELS",0,{free:"Free",pro:"Pro",team:"Team",enterprise:"Enterprise"}],50279)},18509,e=>{"use strict";let t=(0,e.i(24929).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);e.s(["AlertTriangle",()=>t],18509)},95659,e=>{"use strict";var t=e.i(27493),s=e.i(76490);let a={critical:"text-[var(--term-danger)]",high:"text-[var(--term-danger)]",medium:"text-[var(--term-warn)]",low:"text-[var(--term-electric-fg)]",safe:"text-[var(--term-neon-fg)]",info:"text-[var(--term-text-muted)]",coral:"text-[var(--term-electric-fg)]",cyan:"text-[var(--term-neon-fg)]",amber:"text-[var(--term-warn)]",muted:"text-[var(--term-text-muted)]"},r={critical:"bg-[var(--term-danger)]",high:"bg-[var(--term-danger)]",medium:"bg-[var(--term-warn)]",low:"bg-[var(--term-electric)]",safe:"bg-[var(--term-neon)]",info:"bg-[var(--term-text-muted)]",coral:"bg-[var(--term-electric)]",cyan:"bg-[var(--term-neon)]",amber:"bg-[var(--term-warn)]",muted:"bg-[var(--term-text-muted)]"},c={critical:"theme-glass:bg-[var(--sc-coral)]/15 theme-glass:border-[var(--sc-coral)]/30",high:"theme-glass:bg-[var(--sc-coral-mid)]/15 theme-glass:border-[var(--sc-coral-mid)]/30",medium:"theme-glass:bg-[var(--sc-amber)]/15 theme-glass:border-[var(--sc-amber)]/30",low:"theme-glass:bg-[var(--sc-cyan-mid)]/15 theme-glass:border-[var(--sc-cyan-mid)]/30",safe:"theme-glass:bg-[var(--sc-cyan)]/15 theme-glass:border-[var(--sc-cyan)]/30",info:"theme-glass:bg-[var(--sc-text-muted)]/15 theme-glass:border-[var(--sc-text-muted)]/30",coral:"theme-glass:bg-[var(--sc-coral)]/15 theme-glass:border-[var(--sc-coral)]/30",cyan:"theme-glass:bg-[var(--sc-cyan)]/15 theme-glass:border-[var(--sc-cyan)]/30",amber:"theme-glass:bg-[var(--sc-amber)]/15 theme-glass:border-[var(--sc-amber)]/30",muted:"theme-glass:bg-[var(--sc-surface-interactive)] theme-glass:border-[var(--sc-border)]"};function i({children:e,variant:i="muted",className:l,dot:n=!1,pulse:d=!1}){return(0,t.jsxs)("span",{className:(0,s.cn)("inline-flex items-center gap-1.5 px-1 text-[11px] font-semibold uppercase tracking-wider whitespace-nowrap",a[i],"theme-glass:rounded-full theme-glass:border theme-glass:px-2.5 theme-glass:py-0.5",c[i],l),children:[n&&(0,t.jsx)("span",{className:(0,s.cn)("h-1.5 w-1.5 rounded-full",r[i],d&&"animate-pulse"),"aria-hidden":!0}),(0,t.jsx)("span",{"aria-hidden":!0,className:"text-[var(--term-text-muted)] theme-glass:hidden",children:"["}),(0,t.jsx)("span",{children:e}),(0,t.jsx)("span",{"aria-hidden":!0,className:"text-[var(--term-text-muted)] theme-glass:hidden",children:"]"})]})}function l(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",()=>i,"riskVariant",()=>l])},81523,e=>{"use strict";var t=e.i(27493),s=e.i(76490),a=e.i(4);let r={coral:"border border-[var(--term-electric)] text-[var(--term-electric-fg)] bg-transparent hover:bg-[var(--term-electric)]/10",cyan:"border border-[var(--term-neon)] text-[var(--term-neon-fg)] bg-transparent hover:bg-[var(--term-neon)]/10",ghost:"border border-transparent text-[var(--term-text-muted)] bg-transparent hover:text-[var(--term-text)] hover:border-[var(--term-border)]",outline:"border border-[var(--term-border)] text-[var(--term-text-dim)] bg-transparent hover:border-[var(--term-text-muted)] hover:text-[var(--term-text)]"},c={sm:"px-2 py-1 text-xs",md:"px-3 py-1.5 text-sm",lg:"px-4 py-2 text-sm"},i={coral:"theme-glass:border-0 theme-glass:bg-gradient-to-br theme-glass:from-[var(--sc-coral)] theme-glass:to-[var(--sc-coral-dark)] theme-glass:text-white theme-glass:hover:shadow-[0_8px_30px_var(--sc-glow-coral-mid)]",cyan:"theme-glass:border-0 theme-glass:bg-[var(--sc-cyan)] theme-glass:text-[var(--sc-bg-deep)] theme-glass:hover:bg-[var(--sc-cyan-mid)]",ghost:"theme-glass:bg-transparent theme-glass:text-[var(--sc-text-secondary)] theme-glass:hover:bg-[var(--sc-surface-interactive)]",outline:"theme-glass:bg-transparent theme-glass:border theme-glass:border-[var(--sc-border)] theme-glass:text-[var(--sc-text-secondary)]"},l={sm:"theme-glass:px-3 theme-glass:py-1.5 theme-glass:text-xs theme-glass:rounded-lg",md:"theme-glass:px-4 theme-glass:py-2 theme-glass:text-sm theme-glass:rounded-xl",lg:"theme-glass:px-6 theme-glass:py-3 theme-glass:text-sm theme-glass:rounded-xl"},n=(0,a.forwardRef)(({variant:e="coral",size:a="md",glow:n=!1,pulse:d=!1,className:m,children:o,...x},h)=>(0,t.jsxs)("button",{ref:h,className:(0,s.cn)("inline-flex items-center justify-center gap-2 rounded-md font-mono transition-colors","focus-visible:outline-1 focus-visible:outline-offset-2 focus-visible:outline-[var(--term-electric)]",d?"disabled:pointer-events-none":"disabled:pointer-events-none disabled:opacity-50",r[e],c[a],"theme-glass:font-semibold theme-glass:transition-all theme-glass:hover:-translate-y-0.5",i[e],l[a],n&&"coral"===e&&"theme-glass:glow-coral-subtle",n&&"cyan"===e&&"theme-glass:glow-cyan-subtle",d&&"theme-glass:glow-cyan-pulse",m),type:"button",...x,children:[(0,t.jsxs)("span",{className:"inline-flex items-center gap-2 theme-glass:hidden",children:[d&&(0,t.jsx)("span",{className:"cli-cursor","aria-hidden":!0}),(0,t.jsx)("span",{className:"text-[var(--term-text-muted)]","aria-hidden":!0,children:"["}),(0,t.jsx)("span",{className:"leading-none",children:o}),(0,t.jsx)("span",{className:"text-[var(--term-text-muted)]","aria-hidden":!0,children:"]"})]}),(0,t.jsx)("span",{className:"hidden theme-glass:inline-flex items-center gap-2",children:o})]}));n.displayName="Button",e.s(["Button",0,n])},66949,e=>{"use strict";let t=(0,e.i(24929).default)("lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);e.s(["Lock",()=>t],66949)},40950,e=>{"use strict";var t=e.i(27493),s=e.i(76490),a=e.i(66949);function r({tabs:e,activeTab:r,onChange:c,className:i}){return(0,t.jsx)("div",{className:(0,s.cn)("flex items-center gap-4 overflow-x-auto border-b border-[var(--term-border)] px-1 scrollbar-hide","theme-glass:gap-1 theme-glass:rounded-xl theme-glass:border-0 theme-glass:bg-[var(--sc-bg-surface)] theme-glass:p-1",i),role:"tablist",children:e.map(e=>{let i=e.id===r;return(0,t.jsxs)("button",{type:"button",role:"tab","aria-selected":i?"true":"false",onClick:()=>c(e.id),className:(0,s.cn)("relative flex shrink-0 items-center gap-2 px-1 py-2 text-xs font-mono transition-colors","focus-visible:outline-1 focus-visible:outline-offset-2 focus-visible:outline-[var(--term-electric)]",i?"text-[var(--term-electric-fg)]":"text-[var(--term-text-muted)] hover:text-[var(--term-text)]","theme-glass:font-medium theme-glass:font-sans theme-glass:rounded-lg theme-glass:px-3 theme-glass:py-2 sm:theme-glass:px-4 sm:theme-glass:text-sm",i&&"theme-glass:bg-[var(--sc-bg-elevated)] theme-glass:text-[var(--sc-text-primary)]",!i&&"theme-glass:hover:text-[var(--sc-text-secondary)]"),children:[e.icon,(0,t.jsx)("span",{children:e.label}),e.locked&&(0,t.jsx)(a.Lock,{size:11,className:"text-[var(--term-warn)] theme-glass:text-[var(--sc-coral)]"}),void 0!==e.count&&e.count>0&&(0,t.jsxs)("span",{className:"text-[var(--term-text-muted)] theme-glass:ml-0.5 theme-glass:rounded-full theme-glass:bg-[var(--sc-coral)]/15 theme-glass:px-1.5 theme-glass:py-0.5 theme-glass:text-[10px] theme-glass:font-bold theme-glass:text-[var(--sc-coral)]",children:[(0,t.jsxs)("span",{className:"theme-glass:hidden",children:["(",e.count,")"]}),(0,t.jsx)("span",{className:"hidden theme-glass:inline",children:e.count})]}),i&&(0,t.jsx)("span",{"aria-hidden":!0,className:"absolute -bottom-px left-0 right-0 h-px bg-[var(--term-electric)] theme-glass:hidden"})]},e.id)})})}function c({eyebrow:e,title:a,subtitle:c,actions:i,tabs:l,activeTab:n,onTabChange:d,className:m}){return(0,t.jsxs)("div",{className:(0,s.cn)("space-y-3 theme-glass:space-y-4",m),children:[(0,t.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between sm:gap-4 theme-glass:gap-3",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsxs)("div",{className:"theme-glass:hidden",children:[e&&(0,t.jsxs)("p",{className:"text-[11px] uppercase tracking-wider text-[var(--term-text-muted)]",children:[(0,t.jsx)("span",{className:"text-[var(--cic-cyan)]",children:"›"})," ",e]}),(0,t.jsxs)("h1",{className:"mt-1 flex items-baseline flex-wrap gap-2 text-base font-mono text-[var(--term-text)] sm:text-lg",children:[(0,t.jsx)("span",{className:"text-[var(--cic-cyan)]","aria-hidden":!0,children:"$"}),(0,t.jsx)("span",{children:"shieldcortex"}),(0,t.jsx)("span",{className:"text-[var(--term-text-dim)]",children:a.toLowerCase()}),(0,t.jsx)("span",{className:"cli-cursor text-[var(--cic-cyan)]","aria-hidden":!0})]}),c&&(0,t.jsxs)("p",{className:"mt-1 text-xs text-[var(--term-text-muted)]",children:[(0,t.jsx)("span",{"aria-hidden":!0,children:"#"})," ",c]})]}),(0,t.jsxs)("div",{className:"hidden theme-glass:block",children:[e&&(0,t.jsx)("p",{className:"text-[10px] font-semibold uppercase tracking-[0.2em] text-[var(--sc-coral)] sm:text-[11px]",children:e}),(0,t.jsx)("h1",{className:"mt-1 text-xl font-bold text-[var(--sc-text-primary)] sm:text-2xl",children:a}),c&&(0,t.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-secondary)] sm:text-sm",children:c})]})]}),i&&(0,t.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:i})]}),l&&n&&d&&(0,t.jsx)(r,{tabs:l,activeTab:n,onChange:d})]})}e.s(["PageHeader",()=>c],40950)},36062,e=>{"use strict";let t=(0,e.i(24929).default)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);e.s(["ArrowRight",()=>t],36062)},14612,e=>{"use strict";var t=e.i(27493),s=e.i(4),a=e.i(56640),r=e.i(18509),c=e.i(36062),i=e.i(15771),l=e.i(19331),n=e.i(7571),d=e.i(75025),m=e.i(76344),o=e.i(27528),x=e.i(51069),h=e.i(16467),v=e.i(46194),u=e.i(95659),g=e.i(81523),p=e.i(40950),b=e.i(13808),f=e.i(71010);function y({ready:e,memoryCount:s,scanCount:a,blockedCount:r}){return!e||s>0||a>0||r>0?null:(0,t.jsxs)(h.GlassCard,{strong:!0,className:"p-6",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(b.Sparkles,{size:16,className:"text-[var(--sc-cyan)]"}),(0,t.jsx)("h3",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Welcome to ShieldCortex"})]}),(0,t.jsxs)("p",{className:"mt-2 max-w-2xl text-sm text-[var(--sc-text-secondary)]",children:["Nothing here yet. The dashboard is for ",(0,t.jsx)("strong",{className:"text-[var(--sc-text-primary)]",children:"visual review and bulk decisions"}),"; the ",(0,t.jsx)("code",{className:"font-mono",children:"shieldcortex"})," CLI and the agent hooks are for ",(0,t.jsx)("strong",{className:"text-[var(--sc-text-primary)]",children:"automation"}),". It fills in as your agents capture memories and the defence pipeline runs."]}),(0,t.jsxs)("div",{className:"mt-5 grid gap-3 sm:grid-cols-3",children:[(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] p-4",children:[(0,t.jsx)(n.Database,{size:16,className:"text-[var(--sc-cyan)]"}),(0,t.jsx)("p",{className:"mt-2 text-sm font-medium text-[var(--sc-text-primary)]",children:"Capture memories"}),(0,t.jsxs)("p",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:["Captured automatically as you work (Claude Code / OpenClaw hooks), or via the"," ",(0,t.jsx)("code",{className:"font-mono",children:"remember"})," MCP tool."]})]}),(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] p-4",children:[(0,t.jsx)(f.Terminal,{size:16,className:"text-[var(--sc-cyan)]"}),(0,t.jsx)("p",{className:"mt-2 text-sm font-medium text-[var(--sc-text-primary)]",children:"Generate audit data"}),(0,t.jsxs)("p",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:["Run ",(0,t.jsx)("code",{className:"font-mono",children:"shieldcortex scan <file>"})," to push content through the defence pipeline and populate the audit log."]})]}),(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] p-4",children:[(0,t.jsx)(m.ScanSearch,{size:16,className:"text-[var(--sc-cyan)]"}),(0,t.jsx)("p",{className:"mt-2 text-sm font-medium text-[var(--sc-text-primary)]",children:"Scan supply chain"}),(0,t.jsxs)("p",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:["Run an X-Ray scan from the X-Ray page, or"," ",(0,t.jsx)("code",{className:"font-mono",children:"shieldcortex xray <path>"})," from the CLI."]})]})]})]})}var j=e.i(88069),N=e.i(87353),w=e.i(63312),k=e.i(31309),C=e.i(50279);function S(){let{data:e}=(0,j.useStats)(),{data:b}=(0,N.useAuditStats)("24h"),{data:f}=(0,N.useQuarantine)("pending",10),{data:S}=(0,N.useQuarantine)("pending",1,void 0,"memory_file"),{data:T}=(0,j.useQuality)(),{data:R}=(0,j.useContradictions)(),{data:A}=(0,w.useLicenseStatus)(),{data:L}=(0,k.useXRayStatus)(),M=e?.total??0,$=e?.decayDistribution?.healthy??0,z=e?.decayDistribution?.fading??0,D=e?.decayDistribution?.critical??0,B=e?.decayDistribution?Math.round($/Math.max(1,M)*100):0,I=R?.count??R?.contradictions?.length??0,F=f?.total??0,U=S?.total??0,E=Math.max(0,F-U),P=b?.blockedCount??0,G=T?.duplicates?.count??0,_=T?.stale?.count??0,q=T?.neverAccessed?.count??0,H=L?.summary?.scans??0,Q=(0,s.useMemo)(()=>{let e=[];return U>0&&e.push({title:`${U} memory file finding${1===U?"":"s"} need review`,detail:"These are scanned agent memory files, not stored ShieldCortex memories. Review or dismiss them without editing files.",severity:U>10?"critical":"medium",href:"/protection?tab=quarantine",cta:"Review files"}),E>0&&e.push({title:`${E} memory write${1===E?"":"s"} in quarantine`,detail:"Review blocked writes before they become silent operator debt.",severity:E>10?"critical":"medium",href:"/protection?tab=quarantine",cta:"Review writes"}),I>0&&e.push({title:`${I} contradiction${1===I?"":"s"} detected`,detail:"Conflicting facts reduce recall trust.",severity:I>5?"high":"medium",href:"/memory?tab=review",cta:"Resolve"}),P>0&&e.push({title:`${P} blocked operation${1===P?"":"s"} (24h)`,detail:"Defence pipeline blocked suspicious writes.",severity:"high",href:"/protection?tab=audit",cta:"View audit"}),_+G>0&&e.push({title:"Memory cleanup available",detail:`${_} stale, ${G} duplicate, ${q} unused memories.`,severity:"low",href:"/memory?tab=review",cta:"Clean up"}),e.slice(0,4)},[U,E,I,P,_,G,q]),O=U>0&&E>0?`${U} file finding${1===U?"":"s"}, ${E} write${1===E?"":"s"} pending.`:U>0?`${U} memory-file finding${1===U?"":"s"} pending.`:`${F} item${1===F?"":"s"} pending review.`;return(0,t.jsx)("div",{className:"h-full overflow-y-auto",children:(0,t.jsxs)("div",{className:"mx-auto max-w-7xl space-y-6 p-6",children:[(0,t.jsx)(p.PageHeader,{eyebrow:"ShieldCortex",title:"Command Centre",subtitle:"Stored-memory health, memory-file findings, threat pressure, and operational status at a glance."}),(0,t.jsx)(y,{ready:void 0!==e,memoryCount:M,scanCount:H,blockedCount:P}),(0,t.jsx)(h.GlassCard,{title:"SYSTEM STATUS",bodyPadding:!1,children:(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4 p-4 lg:grid-cols-5",children:[(0,t.jsx)(v.StatCard,{label:"Stored Memories",value:M.toLocaleString(),icon:n.Database,accent:"cyan",trend:B>0?{value:B,label:"healthy"}:void 0}),(0,t.jsx)(v.StatCard,{label:"Memory Files Flagged",value:U.toLocaleString(),icon:d.FileText,accent:U>0?"amber":"muted"}),(0,t.jsx)(v.StatCard,{label:"Threats Blocked",value:P.toLocaleString(),icon:x.ShieldAlert,accent:P>0?"coral":"muted"}),(0,t.jsx)(v.StatCard,{label:"X-Ray Scans",value:H.toLocaleString(),icon:m.ScanSearch,accent:"cyan"}),(0,t.jsx)(v.StatCard,{label:"Health Score",value:`${B}%`,icon:o.Shield,accent:B>=80?"cyan":B>=50?"amber":"coral"})]})}),(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-6 lg:grid-cols-[1fr_1fr]",children:[(0,t.jsxs)(h.GlassCard,{className:"p-6",children:[(0,t.jsx)("h3",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Stored Memory Health"}),(0,t.jsx)("p",{className:"mt-1 text-sm text-[var(--sc-text-muted)]",children:"Decay distribution across ShieldCortex stored memories."}),(0,t.jsx)("div",{className:"mt-6 flex items-center justify-center",children:(0,t.jsxs)("div",{className:"relative h-40 w-40",children:[(0,t.jsxs)("svg",{viewBox:"0 0 100 100",className:"h-full w-full -rotate-90",children:[(0,t.jsx)("circle",{cx:"50",cy:"50",r:"42",fill:"none",stroke:"var(--sc-bg-elevated)",strokeWidth:"8"}),(0,t.jsx)("circle",{cx:"50",cy:"50",r:"42",fill:"none",stroke:"var(--sc-cyan)",strokeWidth:"8",strokeDasharray:`${2.64*B} 264`,strokeLinecap:"round",className:"transition-all duration-1000"})]}),(0,t.jsxs)("div",{className:"absolute inset-0 flex flex-col items-center justify-center",children:[(0,t.jsxs)("span",{className:"text-3xl font-bold text-[var(--sc-text-primary)]",children:[B,"%"]}),(0,t.jsx)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:"healthy"})]})]})}),(0,t.jsxs)("div",{className:"mt-6 grid grid-cols-3 gap-3 text-center",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-lg font-semibold text-[var(--sc-cyan)]",children:$}),(0,t.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)]",children:"Healthy"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-lg font-semibold text-[var(--sc-amber)]",children:z}),(0,t.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)]",children:"Fading"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-lg font-semibold text-[var(--sc-coral)]",children:D}),(0,t.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)]",children:"Critical"})]})]})]}),(0,t.jsxs)(h.GlassCard,{className:"p-6",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("h3",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Urgent Actions"}),Q.length>0&&(0,t.jsxs)(u.Badge,{variant:"coral",dot:!0,pulse:!0,children:[Q.length," active"]})]}),(0,t.jsx)("p",{className:"mt-1 text-sm text-[var(--sc-text-muted)]",children:"Quickest wins for trust, safety, and recall quality."}),(0,t.jsx)("div",{className:"mt-4 space-y-3",children:0===Q.length?(0,t.jsxs)("div",{className:"flex items-center gap-3 rounded-xl bg-[var(--sc-bg-elevated)] p-4",children:[(0,t.jsx)(i.CheckCircle2,{size:18,className:"shrink-0 text-[var(--sc-cyan)]"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"All clear"}),(0,t.jsx)("p",{className:"text-xs text-[var(--sc-text-muted)]",children:"No urgent issues right now. Memory health looks stable."})]})]}):Q.map(e=>(0,t.jsxs)(a.default,{href:e.href,className:"group flex items-start gap-3 rounded-xl bg-[var(--sc-bg-elevated)] p-4 transition-all hover:bg-[var(--sc-surface-interactive-hover)]",children:["critical"===e.severity||"high"===e.severity?(0,t.jsx)(r.AlertTriangle,{size:16,className:"mt-0.5 shrink-0 text-[var(--sc-coral)]"}):"medium"===e.severity?(0,t.jsx)(l.Clock3,{size:16,className:"mt-0.5 shrink-0 text-[var(--sc-amber)]"}):(0,t.jsx)(i.CheckCircle2,{size:16,className:"mt-0.5 shrink-0 text-[var(--sc-cyan)]"}),(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)("p",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:e.title}),(0,t.jsx)("p",{className:"mt-0.5 text-xs text-[var(--sc-text-muted)]",children:e.detail})]}),(0,t.jsxs)("span",{className:"flex shrink-0 items-center gap-1 text-xs font-medium text-[var(--sc-cyan)] opacity-0 transition-opacity group-hover:opacity-100",children:[e.cta," ",(0,t.jsx)(c.ArrowRight,{size:12})]})]},e.title))})]})]}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4 lg:grid-cols-4",children:[(0,t.jsx)(a.default,{href:"/xray",children:(0,t.jsxs)(h.GlassCard,{hover:!0,className:"p-5",children:[(0,t.jsx)(m.ScanSearch,{size:20,className:"text-[var(--sc-cyan)]"}),(0,t.jsx)("p",{className:"mt-3 text-sm font-semibold text-[var(--sc-text-primary)]",children:"Run X-Ray Scan"}),(0,t.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:"Inspect packages and files for hidden risk."})]})}),(0,t.jsx)(a.default,{href:"/protection?tab=quarantine",children:(0,t.jsxs)(h.GlassCard,{hover:!0,className:"p-5",children:[(0,t.jsx)(r.AlertTriangle,{size:20,className:"text-[var(--sc-amber)]"}),(0,t.jsx)("p",{className:"mt-3 text-sm font-semibold text-[var(--sc-text-primary)]",children:"Review Quarantine"}),(0,t.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:O})]})}),(0,t.jsx)(a.default,{href:"/memory?tab=recall",children:(0,t.jsxs)(h.GlassCard,{hover:!0,className:"p-5",children:[(0,t.jsx)(n.Database,{size:20,className:"text-[var(--sc-cyan)]"}),(0,t.jsx)("p",{className:"mt-3 text-sm font-semibold text-[var(--sc-text-primary)]",children:"Debug Recall"}),(0,t.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:"Test queries and inspect ranking factors."})]})}),(0,t.jsx)(a.default,{href:"/protection?tab=dome",children:(0,t.jsxs)(h.GlassCard,{hover:!0,className:"p-5",children:[(0,t.jsx)(x.ShieldAlert,{size:20,className:"text-[var(--sc-coral)]"}),(0,t.jsx)("p",{className:"mt-3 text-sm font-semibold text-[var(--sc-text-primary)]",children:"Iron Dome"}),(0,t.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:"Kill switch and behaviour gates."})]})})]}),(0,t.jsxs)(h.GlassCard,{className:"p-6",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Licence"}),(0,t.jsx)("p",{className:"mt-1 text-sm text-[var(--sc-text-muted)]",children:"Current tier and feature access."})]}),(0,t.jsx)(u.Badge,{variant:A?.tier==="pro"?"cyan":A?.tier==="team"?"coral":"muted",children:C.TIER_LABELS[A?.tier??"free"]})]}),A?.tier==="free"&&(0,t.jsxs)("div",{className:"mt-4 flex items-center gap-4 rounded-xl bg-gradient-to-r from-[var(--sc-coral)]/5 to-[var(--sc-cyan)]/5 p-4",children:[(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)("p",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Unlock deep scanning, custom policies, and audit exports"}),(0,t.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:"Pro starts at £29/mo with 10K cloud scans and 90-day retention."})]}),(0,t.jsx)("a",{href:"https://shieldcortex.ai/pricing",target:"_blank",rel:"noopener noreferrer",children:(0,t.jsx)(g.Button,{variant:"coral",size:"sm",glow:!0,children:"Upgrade"})})]})]})]})})}function T(){return(0,t.jsx)(S,{})}e.s(["default",()=>T],14612)}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,24590,e=>{"use strict";var t=e.i(4);let a="terminal";function r(){return"u"<typeof document?a:"glass"===document.documentElement.getAttribute("data-theme")?"glass":"terminal"}function s(e){return window.addEventListener("sc-theme-change",e),window.addEventListener("storage",e),()=>{window.removeEventListener("sc-theme-change",e),window.removeEventListener("storage",e)}}function n(){return[(0,t.useSyncExternalStore)(s,r,()=>a),e=>{if("u">typeof document){try{window.localStorage.setItem("sc-theme",e)}catch{}document.documentElement.setAttribute("data-theme",e),window.dispatchEvent(new Event("sc-theme-change"))}}]}e.s(["useTheme",()=>n])},51195,e=>{"use strict";var t=e.i(27493),a=e.i(4),r=e.i(24590),s=e.i(56640),n=e.i(16871),i=e.i(24929);let l=(0,i.default)("menu",[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]]);var c=e.i(80039);let o=(0,i.default)("pin-off",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89",key:"znwnzq"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11",key:"c9qhm2"}]]);var d=e.i(27528),m=e.i(17278),u=e.i(76490),x=e.i(7571);let p=(0,i.default)("house",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]]),h=(0,i.default)("circle-play",[["path",{d:"M9 9.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997A1 1 0 0 1 9 14.996z",key:"kmsa83"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);var v=e.i(76344),f=e.i(54130);let g=[{href:"/overview",label:"Overview",icon:p},{href:"/memory",label:"Memory",icon:x.Database},{href:"/memory/replay",label:"Replay",icon:h},{href:"/protection",label:"Protection",icon:d.Shield},{href:"/xray",label:"X-Ray",icon:v.ScanSearch},{href:"/settings",label:"Settings",icon:f.Settings}];var y=e.i(42098),b=e.i(88069),j=e.i(35372);function w(){let e=(0,n.usePathname)(),{sidebarPinned:r,toggleSidebarPinned:i}=(0,y.useDashboardStore)(),[x,p]=(0,a.useState)(!1),[h,v]=(0,a.useState)(null),f=h===e,{isConnected:w}=(0,j.useWebSocketStatus)(),{data:k}=(0,b.useVersion)(),N=r||x||f;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("button",{onClick:()=>v(e),className:"fixed left-3 top-3 z-50 flex h-10 w-10 items-center justify-center rounded-xl bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] text-[var(--sc-text-secondary)] md:hidden","aria-label":"Open navigation",children:(0,t.jsx)(l,{size:18})}),f&&(0,t.jsx)("div",{className:"fixed inset-0 z-40 bg-black/50 backdrop-blur-sm md:hidden",onClick:()=>v(null)}),(0,t.jsxs)("aside",{className:(0,u.cn)("z-50 flex shrink-0 flex-col border-r border-[var(--sc-border)] bg-[var(--sc-bg-deep)] transition-all duration-300","fixed inset-y-0 left-0 md:relative",f?"translate-x-0":"-translate-x-full md:translate-x-0",N?"w-60":"w-16"),onMouseEnter:()=>p(!0),onMouseLeave:()=>p(!1),children:[(0,t.jsxs)("div",{className:"flex h-16 items-center gap-3 border-b border-[var(--sc-border)] px-4",children:[(0,t.jsx)("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-gradient-to-br from-[var(--sc-coral)] to-[var(--sc-coral-dark)]",children:(0,t.jsx)(d.Shield,{size:16,className:"text-white"})}),(0,t.jsxs)("div",{className:(0,u.cn)("overflow-hidden whitespace-nowrap transition-all duration-300",N?"w-auto opacity-100":"w-0 opacity-0"),children:[(0,t.jsx)("div",{className:"text-[11px] font-semibold uppercase tracking-[0.2em] text-[var(--sc-coral)]",children:"ShieldCortex"}),(0,t.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)]",children:"Dashboard"})]}),f&&(0,t.jsx)("button",{onClick:()=>v(null),className:"ml-auto text-[var(--sc-text-muted)] hover:text-[var(--sc-text-secondary)] md:hidden","aria-label":"Close navigation",children:(0,t.jsx)(m.X,{size:18})})]}),(0,t.jsx)("nav",{className:"flex-1 space-y-1 px-2 py-4",role:"navigation","aria-label":"Main navigation",children:g.map(a=>{var r;let n=a.icon,i="/overview"===(r=a.href)?"/overview"===e||"/"===e:e===r||e.startsWith(`${r}/`);return(0,t.jsxs)(s.default,{href:a.href,"aria-current":i?"page":void 0,className:(0,u.cn)("relative flex items-center gap-3 rounded-xl px-3 py-2.5 transition-all duration-200 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--sc-cyan)]",i?"bg-[var(--sc-surface-interactive)] text-[var(--sc-text-primary)]":"text-[var(--sc-text-muted)] hover:bg-[var(--sc-surface-interactive)] hover:text-[var(--sc-text-secondary)]"),children:[i&&(0,t.jsx)("div",{className:"absolute left-0 top-1/2 h-5 w-0.5 -translate-y-1/2 rounded-r bg-[var(--sc-coral)]"}),(0,t.jsx)(n,{size:18,className:(0,u.cn)("shrink-0",i&&"text-[var(--sc-coral)]")}),(0,t.jsx)("span",{className:(0,u.cn)("overflow-hidden whitespace-nowrap text-sm font-medium transition-all duration-300",N?"w-auto opacity-100":"w-0 opacity-0"),children:a.label})]},a.href)})}),(0,t.jsxs)("div",{className:"space-y-2 border-t border-[var(--sc-border)] px-2 py-3",children:[N&&(0,t.jsxs)("button",{onClick:i,className:"hidden w-full items-center gap-3 rounded-xl px-3 py-2 text-[var(--sc-text-muted)] transition-colors hover:bg-[var(--sc-surface-interactive)] hover:text-[var(--sc-text-secondary)] md:flex","aria-label":r?"Unpin sidebar":"Pin sidebar",children:[r?(0,t.jsx)(o,{size:16}):(0,t.jsx)(c.Pin,{size:16}),(0,t.jsx)("span",{className:"text-xs",children:r?"Unpin":"Pin sidebar"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-3 px-3 py-1",children:[(0,t.jsx)("span",{className:(0,u.cn)("h-2 w-2 shrink-0 rounded-full",w?"bg-[var(--sc-cyan)] pulse-cyan":"bg-[var(--sc-coral)] pulse-coral"),"aria-label":w?"Real-time connected":"Real-time disconnected"}),(0,t.jsx)("span",{className:(0,u.cn)("overflow-hidden whitespace-nowrap text-[11px] text-[var(--sc-text-muted)] transition-all duration-300",N?"w-auto opacity-100":"w-0 opacity-0"),children:w?"Connected":"Disconnected"})]}),(0,t.jsxs)("div",{className:(0,u.cn)("overflow-hidden whitespace-nowrap px-3 font-mono text-[10px] text-[var(--sc-text-muted)] transition-all duration-300",N?"opacity-100":"h-0 opacity-0"),children:["v",k?.version??"..."]})]})]})]})}function k(){return(0,t.jsx)(w,{})}var N=e.i(45434);let S=(0,i.default)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]),$=(0,i.default)("arrow-up",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);var C=e.i(61737);let E=(0,i.default)("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);var A=e.i(51069),L=e.i(44758),T=e.i(13808),M=e.i(22534),R=e.i(45688),q=e.i(88969);let D=M.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001",z=(0,i.default)("monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]);var F=e.i(71010);function P({className:e=""}){let[a,s]=(0,r.useTheme)(),n="terminal"===a?"glass":"terminal";return(0,t.jsxs)("button",{type:"button",onClick:()=>s(n),"aria-label":`Switch to ${n} theme`,title:`Theme: ${a} — click to switch to ${n}`,className:`inline-flex items-center gap-1.5 px-1.5 py-0.5 text-[11px] font-mono text-[var(--sc-text-muted)] hover:text-[var(--sc-text-primary)] transition-colors ${e}`,children:["terminal"===a?(0,t.jsx)(F.Terminal,{size:12}):(0,t.jsx)(z,{size:12}),(0,t.jsx)("span",{children:"terminal"===a?"TERM":"GLASS"})]})}let I=[{id:"24h",label:"24h"},{id:"7d",label:"7d"},{id:"30d",label:"30d"}];function _({value:e}){if(void 0===e)return null;if(0===e)return(0,t.jsxs)("span",{className:"inline-flex items-center gap-0.5 text-[10px] text-[var(--sc-text-muted)]",children:[(0,t.jsx)(E,{size:9})," 0"]});let a=e>0;return(0,t.jsxs)("span",{className:`inline-flex items-center gap-0.5 text-[10px] ${a?"text-[var(--sc-cyan)]":"text-[var(--sc-text-muted)]"}`,children:[(0,t.jsx)(a?$:S,{size:9}),a?"+":"",e]})}function O({icon:e,label:a,value:r,delta:s,tone:n}){let i="coral"===n?"text-[var(--sc-coral)]":"cyan"===n?"text-[var(--sc-cyan)]":"text-[var(--sc-text-primary)]";return(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:i,children:e}),(0,t.jsx)("span",{className:"text-[10px] uppercase tracking-[0.12em] text-[var(--sc-text-muted)]",children:a}),(0,t.jsx)("span",{className:`font-mono text-sm font-semibold ${i}`,children:r.toLocaleString()}),(0,t.jsx)(_,{value:s})]})}function U({moment:e}){let a="block"===e.kind||"quarantine"===e.kind?A.ShieldAlert:"capture"===e.kind?T.Sparkles:C.Brain,r="block"===e.kind?"text-[var(--sc-coral)]":"quarantine"===e.kind?"text-[var(--sc-amber)]":"capture"===e.kind?"text-[var(--sc-cyan)]":"text-[var(--sc-text-secondary)]";return(0,t.jsxs)("li",{className:"flex items-start gap-2 rounded border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/40 p-2",children:[(0,t.jsx)(a,{size:14,className:`mt-0.5 ${r}`}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("div",{className:"text-xs font-medium text-[var(--sc-text-primary)] truncate",children:e.title}),(0,t.jsx)("div",{className:"mt-0.5 text-[10px] text-[var(--sc-text-muted)] truncate",children:e.detail})]}),(0,t.jsx)("span",{className:"shrink-0 text-[10px] text-[var(--sc-text-muted)]",children:new Date(e.timestamp).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})})]})}function B(){let[e,r]=(0,a.useState)("24h"),[s,n]=(0,a.useState)(!1),{projectFilter:i}=(0,y.useDashboardStore)(),{data:l,isLoading:c}=function(e="24h",t){return(0,R.useQuery)({queryKey:["digest",e,t??null],queryFn:async()=>{let a=new URLSearchParams({window:e});t&&a.set("project",t);let r=await (0,q.gatedFetch)(`${D}/api/digest?${a.toString()}`);if(!r.ok)throw Error(await (0,q.readApiError)(r,"Failed to load digest"));return r.json()},refetchInterval:6e4,staleTime:3e4})}(e,i);if(c||!l)return(0,t.jsxs)("div",{className:"flex items-center gap-3 border-b border-[var(--sc-border)] bg-[var(--sc-bg-surface)]/30 px-4 py-2 text-[11px] text-[var(--sc-text-muted)]",children:[(0,t.jsx)(N.Activity,{size:12,className:"animate-pulse"})," Loading activity…"]});let o=l.current,d=l.delta,m=0===o.scanned&&0===o.memoriesCaptured&&0===o.memoriesRecalled;return(0,t.jsxs)("div",{className:"border-b border-[var(--term-border)] bg-[var(--term-surface)] font-mono",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-x-5 gap-y-2 px-4 py-2 cursor-pointer hover:bg-[var(--term-surface-2)] transition-colors",onClick:()=>n(e=>!e),role:"button",tabIndex:0,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&n(e=>!e)},"aria-expanded":s,"aria-label":`${l.windowLabel} ShieldCortex activity. Click to ${s?"collapse":"expand"} top moments.`,children:[(0,t.jsx)("span",{className:"text-[10px] uppercase tracking-[0.14em] text-[var(--sc-text-muted)]",children:l.windowLabel}),m?(0,t.jsx)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:"No activity yet — ShieldCortex captures and protects in the background."}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(O,{icon:(0,t.jsx)(L.ShieldCheck,{size:13}),label:"Scanned",value:o.scanned,delta:d.scanned}),(0,t.jsx)(O,{icon:(0,t.jsx)(A.ShieldAlert,{size:13}),label:"Blocked",value:o.blocked+o.quarantined,delta:(d.blocked??0)+(d.quarantined??0),tone:"coral"}),(0,t.jsx)(O,{icon:(0,t.jsx)(T.Sparkles,{size:13}),label:"Captured",value:o.memoriesCaptured,delta:d.memoriesCaptured,tone:"cyan"}),(0,t.jsx)(O,{icon:(0,t.jsx)(C.Brain,{size:13}),label:"Recalled",value:o.memoriesRecalled,delta:d.memoriesRecalled})]}),(0,t.jsxs)("div",{className:"ml-auto flex items-center gap-3",children:[(0,t.jsx)("div",{onClick:e=>e.stopPropagation(),children:(0,t.jsx)(P,{})}),(0,t.jsx)("div",{className:"flex items-center gap-1",onClick:e=>e.stopPropagation(),children:I.map(a=>(0,t.jsxs)("button",{type:"button",onClick:e=>{e.stopPropagation(),r(a.id)},className:`px-1.5 py-0.5 text-[11px] font-mono transition-colors theme-glass:rounded theme-glass:uppercase theme-glass:tracking-[0.12em] ${a.id===e?"text-[var(--term-electric-fg)] theme-glass:bg-[var(--sc-cyan)]/20 theme-glass:text-[var(--sc-cyan)]":"text-[var(--term-text-muted)] hover:text-[var(--term-text)] theme-glass:hover:text-[var(--sc-text-primary)]"}`,children:[(0,t.jsxs)("span",{className:"theme-glass:hidden",children:["[",a.label,"]"]}),(0,t.jsx)("span",{className:"hidden theme-glass:inline",children:a.label})]},a.id))})]})]}),s&&!m&&(0,t.jsx)("div",{className:"border-t border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/50 px-4 py-3",children:(0,t.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"mb-2 text-[10px] uppercase tracking-[0.14em] text-[var(--sc-text-muted)]",children:"Top moments"}),0===l.topMoments.length?(0,t.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)]",children:"Nothing notable to surface in this window."}):(0,t.jsx)("ul",{className:"space-y-1.5",children:l.topMoments.map((e,a)=>(0,t.jsx)(U,{moment:e},`${e.kind}-${a}-${e.timestamp}`))})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"mb-2 text-[10px] uppercase tracking-[0.14em] text-[var(--sc-text-muted)]",children:"Top threat patterns"}),0===l.topThreatPatterns.length?(0,t.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)]",children:"No threat patterns triggered."}):(0,t.jsx)("ul",{className:"space-y-1",children:l.topThreatPatterns.map(e=>(0,t.jsxs)("li",{className:"flex items-center justify-between rounded border border-[var(--sc-border)] bg-[var(--sc-bg-surface)]/50 px-2 py-1 text-xs",children:[(0,t.jsx)("span",{className:"font-mono text-[var(--sc-text-primary)] truncate",children:e.pattern}),(0,t.jsxs)("span",{className:"font-mono text-[var(--sc-text-muted)]",children:[e.count,"×"]})]},e.pattern))})]})]})})]})}let K=(0,i.default)("funnel",[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]]);function W(){let{data:e}=(0,b.useProjects)(),{projectFilter:a,setProjectFilter:r}=(0,y.useDashboardStore)(),s=Array.isArray(e)?e:Array.isArray(e?.projects)?e.projects:[],n=s.filter(e=>"string"==typeof e.project&&e.project.length>0),i=s.find(e=>null===e.project)?.memory_count??n.reduce((e,t)=>e+(t.memory_count??0),0),l=n.slice().sort((e,t)=>(t.memory_count??0)-(e.memory_count??0)||e.project.localeCompare(t.project));return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"theme-glass:hidden flex items-center gap-3 border-b border-[var(--term-border)] bg-[var(--term-surface)] px-4 py-1.5 font-mono text-xs",children:[(0,t.jsx)("span",{className:"text-[var(--term-text-muted)]",children:"project"}),(0,t.jsx)("span",{className:"text-[var(--term-text-muted)]","aria-hidden":!0,children:"="}),(0,t.jsxs)("select",{id:"project-filter",value:a??"",onChange:e=>r(""===e.target.value?null:e.target.value),className:"rounded-sm border border-[var(--term-border)] bg-[var(--term-surface-2)] px-2 py-0.5 text-xs text-[var(--term-text)] font-mono focus:outline-none focus:border-[var(--term-electric)]","aria-label":"Filter dashboard by project",children:[(0,t.jsxs)("option",{value:"",children:["*",i?` (${i})`:""]}),l.map(e=>(0,t.jsxs)("option",{value:e.project,children:[e.project,"number"==typeof e.memory_count?` (${e.memory_count})`:""]},e.project))]}),a&&(0,t.jsx)("button",{type:"button",onClick:()=>r(null),className:"text-[var(--term-text-muted)] hover:text-[var(--term-text)] underline",children:"clear"})]}),(0,t.jsxs)("div",{className:"hidden theme-glass:flex items-center gap-2 border-b border-[var(--sc-border)] bg-[var(--sc-bg-surface)]/40 px-4 py-2 backdrop-blur-sm",children:[(0,t.jsx)(K,{size:13,className:"text-[var(--sc-text-muted)]"}),(0,t.jsx)("label",{htmlFor:"project-filter-glass",className:"text-xs uppercase tracking-[0.14em] text-[var(--sc-text-muted)]",children:"Project"}),(0,t.jsxs)("select",{id:"project-filter-glass",value:a??"",onChange:e=>r(""===e.target.value?null:e.target.value),className:"rounded-md border border-[var(--sc-border)] bg-[var(--sc-bg-deep)] px-2 py-1 text-xs text-[var(--sc-text-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--sc-cyan)]","aria-label":"Filter dashboard by project (glass)",children:[(0,t.jsxs)("option",{value:"",children:["All projects",i?` (${i})`:""]}),l.map(e=>(0,t.jsxs)("option",{value:e.project,children:[e.project,"number"==typeof e.memory_count?` (${e.memory_count})`:""]},e.project))]}),a&&(0,t.jsx)("button",{type:"button",onClick:()=>r(null),className:"text-[11px] text-[var(--sc-text-muted)] hover:text-[var(--sc-text-primary)] underline",children:"Clear"})]})]})}var X=e.i(87353);function H({sources:e=[],max:a=4}){let r=e.slice(0,a),s=e.length-r.length;return(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,t.jsx)("span",{className:"shrink-0 text-[var(--cic-text-faint)]",children:"ECOSYSTEM ▸"}),0===r.length?(0,t.jsx)("span",{className:"text-[var(--cic-text-faint)]",children:"no signals"}):r.map(e=>(0,t.jsxs)("span",{className:"flex shrink-0 items-center gap-1",title:`${e.source} \xb7 ${e.count} ops`,children:[(0,t.jsx)("span",{className:"cic-bloom text-[var(--cic-cyan)]","aria-hidden":!0,children:"◉"}),(0,t.jsx)("span",{className:"text-[var(--cic-text-dim)]",children:function(e){if(!e)return"unknown";let[t,a]=e.split(":");return"agent"===t&&a?a.replace(/-plugin.*/,""):"cli"===t?a?`cli:${a}`:"cli":"hook"===t?"hook":"api"===t?a?`api:${a}`:"api":"user"===t?"you":t||e}(e.source)})]},e.source)),s>0&&(0,t.jsxs)("span",{className:"shrink-0 text-[var(--cic-text-faint)]",children:["+",s]})]})}let Q=["input","pattern","semantic","structural","behaviour","credential"];function V({blocked:e=0}){let a=e>0,r=a?"var(--cic-coral)":"var(--cic-cyan)";return(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-2",title:`Shield: 6 layers armed \xb7 ${e} blocked`,children:[(0,t.jsx)("span",{className:"text-[var(--cic-text-faint)]",children:"SHIELD"}),(0,t.jsx)("span",{className:"flex gap-0.5",children:Q.map(e=>(0,t.jsx)("span",{className:a?"cic-bloom":"",style:{color:r},"aria-hidden":!0,children:"▣"},e))})]})}function G({label:e,value:a,colour:r}){return(0,t.jsxs)("span",{className:"flex items-center gap-1",title:e,children:[(0,t.jsx)("span",{className:"text-[var(--cic-text-faint)]",children:e}),(0,t.jsx)("span",{className:"cic-bloom tabular-nums",style:{color:r},children:a.toLocaleString()})]})}function J(){let e=(0,X.useAuditStats)("24h"),r=(0,b.useStats)(),{isConnected:s}=(0,j.useWebSocketStatus)(),[n,i]=(0,a.useState)("");(0,a.useEffect)(()=>{let e=()=>i(new Date().toTimeString().slice(0,8));e();let t=setInterval(e,1e3);return()=>clearInterval(t)},[]);let l=e.data,c=l?.topSources??[];return(0,t.jsxs)("header",{className:"flex items-center gap-5 overflow-x-auto border-b border-[var(--cic-border)] bg-[var(--cic-surface)]/80 px-4 py-2 font-mono text-xs whitespace-nowrap",children:[(0,t.jsx)("span",{className:"cic-bloom shrink-0 font-semibold tracking-[0.18em] text-[var(--cic-cyan)]",children:"◢ SHIELDCORTEX·CIC ◤"}),(0,t.jsx)(H,{sources:c}),(0,t.jsx)(V,{blocked:l?.blockedCount??0}),(0,t.jsxs)("span",{className:"ml-auto flex shrink-0 items-center gap-4",children:[(0,t.jsx)(G,{label:"SCANNED",value:l?.totalOperations??0,colour:"var(--cic-text-dim)"}),(0,t.jsx)(G,{label:"BLOCKED",value:l?.blockedCount??0,colour:"var(--cic-coral)"}),(0,t.jsx)(G,{label:"QUAR",value:l?.quarantinedCount??0,colour:"var(--cic-amber)"}),(0,t.jsx)(G,{label:"MEMORIES",value:r.data?.total??0,colour:"var(--cic-cyan)"}),(0,t.jsxs)("span",{className:"flex items-center gap-1.5",title:s?"live link up":"link down",children:[(0,t.jsx)("span",{className:s?"pulse-cyan":"pulse-coral",style:{color:s?"var(--cic-cyan)":"var(--cic-coral)"},"aria-hidden":!0,children:"◉"}),(0,t.jsx)("span",{className:"text-[var(--cic-text-faint)]",children:s?"LINK":"DOWN"})]}),(0,t.jsx)("span",{className:"tabular-nums text-[var(--cic-text-muted)]",suppressHydrationWarning:!0,children:n}),(0,t.jsx)(P,{})]})]})}var Y=e.i(53655);let Z={"/overview":"memory","/memory":"memory","/memory/replay":"integrity","/protection":"defence","/xray":"defence","/settings":"integrity"};function ee(){let e=(0,n.usePathname)(),{isConnected:r}=(0,j.useWebSocketStatus)(),[i,l]=(0,a.useState)(!1);return(0,t.jsxs)("aside",{className:`flex shrink-0 flex-col border-r border-[var(--cic-border)] bg-[var(--cic-surface)]/60 font-mono transition-[width] duration-200 ${i?"w-14":"w-56"}`,children:[(0,t.jsxs)("button",{type:"button",onClick:()=>l(e=>!e),className:"flex h-11 items-center gap-2 px-4 text-left text-[var(--cic-text-muted)] hover:text-[var(--cic-text)]","aria-label":i?"expand navigation":"collapse navigation",children:[(0,t.jsx)("span",{className:"cic-bloom text-[var(--cic-cyan)]",children:"$"}),!i&&(0,t.jsx)("span",{className:"text-sm text-[var(--cic-text-dim)]",children:"shieldcortex"})]}),(0,t.jsx)("nav",{className:"flex flex-1 flex-col gap-0.5 px-2 py-2",children:g.map(a=>{let r=e===a.href||"/overview"!==a.href&&e.startsWith(a.href),n=Y.REGIONS[Z[a.href]??"memory"],l=a.icon;return(0,t.jsxs)(s.default,{href:a.href,title:a.label,className:`flex items-center gap-2 rounded px-2 py-1.5 text-sm transition-colors ${r?"bg-[var(--cic-surface-2)] text-[var(--cic-text)]":"text-[var(--cic-text-muted)] hover:text-[var(--cic-text)]"}`,style:r?{color:`var(${n.token})`}:void 0,children:[(0,t.jsx)("span",{className:"w-2 shrink-0",style:r?{color:`var(${n.token})`}:void 0,children:r?"▸":""}),l?(0,t.jsx)(l,{size:14,className:"shrink-0"}):null,!i&&(0,t.jsx)("span",{className:"truncate",children:a.label})]},a.href)})}),(0,t.jsxs)("div",{className:"flex items-center gap-2 border-t border-[var(--cic-border)] px-4 py-2 text-xs",children:[(0,t.jsx)("span",{className:r?"pulse-cyan":"pulse-coral",style:{color:r?"var(--cic-cyan)":"var(--cic-coral)"},"aria-hidden":!0,children:"◉"}),!i&&(0,t.jsx)("span",{className:"text-[var(--cic-text-faint)]",children:r?"link.up":"link.down"})]})]})}let et=e=>({ok:!0,lines:e}),ea=e=>({ok:!1,lines:e}),er={recall:{name:"recall",usage:'recall "<query>" [--project <p>]',summary:"search the memory cortex",run:async(e,{args:t,flags:a})=>{let r=t.join(" ").trim();if(!r)return ea(['recall: give a query, e.g. recall "auth bug"']);let s="string"==typeof a.project?a.project:void 0,n=await e.recall(r,s);return 0===n.length?et([`recall "${r}" → no memories`]):et([`recall "${r}" → ${n.length}`,...n.slice(0,10).map(e=>` #${e.id} ${e.title}`)])}},scan:{name:"scan",usage:"scan <path> [--deep]",summary:"X-Ray a file, folder, or package",run:async(e,{args:t,flags:a})=>{let r=t[0];if(!r)return ea(["scan: give a path or package"]);let s=await e.scan(r,!0===a.deep);return et([`scan ${s.target} → ${s.riskLevel} \xb7 trust ${s.trustScore} \xb7 ${s.filesScanned} files \xb7 ${s.findingsCount} findings`])}},forget:{name:"forget",usage:"forget <id>",summary:"delete a memory by id",run:async(e,{args:t})=>{let a=Number(t[0]);return Number.isInteger(a)?(await e.forget(a),et([`▸ forgot #${a}`])):ea(["forget: give a numeric memory id"])}},consolidate:{name:"consolidate",usage:"consolidate",summary:"run a consolidation pass (STM→LTM, decay, cleanup)",run:async e=>{let t=await e.consolidate();return et([`▸ consolidated ${t.consolidated} \xb7 decayed ${t.decayed} \xb7 deleted ${t.deleted}`])}},quarantine:{name:"quarantine",usage:"quarantine [approve <id> | reject <id>]",summary:"list pending quarantine, or approve/reject by id",run:async(e,{args:t})=>{let a=t[0]?.toLowerCase();if(!a||"list"===a){let t=await e.quarantineList();return 0===t.length?et(["quarantine: nothing pending"]):et([`quarantine pending → ${t.length}`,...t.slice(0,10).map(e=>` #${e.id} ${e.title}`)])}if("approve"===a||"reject"===a){let r=Number(t[1]);return Number.isInteger(r)?(await e.quarantineReview(r,a),et([`▸ ${"approve"===a?"approved":"rejected"} #${r}`])):ea([`quarantine ${a}: give a numeric id`])}return ea(["quarantine: use list | approve <id> | reject <id>"])}},irondome:{name:"irondome",usage:"irondome <on|off|status>",summary:"arm/disarm the Iron Dome, or report its state",run:async(e,{args:t})=>{let a=t[0]?.toLowerCase();return"on"!==a&&"off"!==a&&"status"!==a?ea(["irondome: use on | off | status"]):et([await e.ironDome(a)])}},remember:{name:"remember",usage:'remember "<text>"',summary:"store a new memory",run:async(e,{args:t})=>{let a=t.join(" ").trim();if(!a)return ea(['remember: give the text to store, e.g. remember "the fix was X"']);let r=await e.remember(a);return et([`▸ remembered #${r.id}`])}},go:{name:"go",usage:"go <view>",summary:"navigate to a console view",run:(e,{args:t})=>{let a=t[0]?.toLowerCase();if(!a)return ea(["go: which view? "+e.routes.map(e=>e.label).join(" · ")]);let r=e.routes.find(e=>e.label.toLowerCase().includes(a)||e.href.toLowerCase().includes(a));return r?(e.navigate(r.href),et([`▸ ${r.label}`])):ea([`go: unknown view '${a}'. options: ${e.routes.map(e=>e.label).join(" · ")}`])}},theme:{name:"theme",usage:"theme <terminal|glass>",summary:"switch the dashboard theme",run:(e,{args:t})=>{let a=t[0]?.toLowerCase();return"terminal"!==a&&"glass"!==a?ea(["theme: choose 'terminal' or 'glass'"]):(e.setTheme(a),et([`▸ theme → ${a}`]))}},help:{name:"help",usage:"help",summary:"list commands",run:()=>et(["commands:",...Object.values(er).map(e=>` ${e.usage.padEnd(34)} ${e.summary}`)])}};async function es(e,t){let a=function(e){let t=e.trim();if(!t)return null;let a=function(e){let t,a=[],r=/"([^"]*)"|(\S+)/g;for(;null!==(t=r.exec(e));)a.push(void 0!==t[1]?t[1]:t[2]);return a}(t),r=a[0].toLowerCase(),s=[],n={};for(let e=1;e<a.length;e+=1){let t=a[e];if(t.startsWith("--")){let r=t.slice(2),s=a[e+1];void 0===s||s.startsWith("--")?n[r]=!0:(n[r]=s,e+=1)}else s.push(t)}return{name:r,args:s,flags:n}}(e);if(!a)return ea([]);let r=er[a.name];if(!r)return ea([`unknown command: ${a.name} — try 'help'`]);try{return await r.run(t,a)}catch(e){return ea([`error: ${e instanceof Error?e.message:String(e)}`])}}var en=e.i(31309);let ei=M.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001",el={in:"text-[var(--cic-text-dim)]",out:"text-[var(--cic-text)]",err:"text-[var(--cic-coral)]"};function ec(){let e=function(){let e=(0,n.useRouter)(),[,t]=(0,r.useTheme)(),s=(0,en.useXRayScan)(),i=(0,b.useDeleteMemory)(),l=(0,b.useConsolidate)(),c=(0,X.useApproveQuarantine)(),o=(0,X.useRejectQuarantine)();return(0,a.useMemo)(()=>({navigate:t=>e.push(t),setTheme:t,recall:async(e,t)=>{let a=new URLSearchParams({mode:"search",query:e,limit:"10"});t&&a.set("project",t);let r=await (0,q.authFetch)(`${ei}/api/memories?${a.toString()}`);if(!r.ok)throw Error(await (0,q.readApiError)(r,"recall failed"));return((await r.json()).memories??[]).map(e=>({id:e.id,title:e.title}))},scan:async(e,t)=>{let{result:a}=await s.mutateAsync({target:e,deep:t});return{target:a.target,riskLevel:a.riskLevel,trustScore:a.trustScore,filesScanned:a.filesScanned,findingsCount:a.findings.length}},forget:async e=>{await i.mutateAsync(e)},consolidate:async()=>{let e=await l.mutateAsync();return{consolidated:e.consolidated,decayed:e.decayed,deleted:e.deleted}},quarantineList:async()=>{let e=await (0,q.authFetch)(`${ei}/api/v1/quarantine?status=pending&limit=20`);if(!e.ok)throw Error(await (0,q.readApiError)(e,"quarantine list failed"));return((await e.json()).items??[]).map(e=>({id:e.id,title:e.original_title??e.title??`item ${e.id}`}))},quarantineReview:async(e,t)=>{"approve"===t?await c.mutateAsync(e):await o.mutateAsync({id:e})},ironDome:async e=>{if("status"===e){let e=await (0,q.authFetch)(`${ei}/api/iron-dome/status`);if(!e.ok)throw Error(await (0,q.readApiError)(e,"iron dome status failed"));let t=await e.json();return`iron dome: ${t.enabled?"ACTIVE":"inactive"}`}let t=await (0,q.authFetch)(`${ei}/api/iron-dome/${"on"===e?"activate":"deactivate"}`,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"});if(!t.ok)throw Error(await (0,q.readApiError)(t,`iron dome ${e} failed`));return`▸ iron dome ${"on"===e?"ACTIVE":"disabled"}`},remember:async e=>{let t=await (0,q.authFetch)(`${ei}/api/memories`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:e.slice(0,80),content:e})});if(!t.ok)throw Error(await (0,q.readApiError)(t,"remember failed"));return{id:(await t.json()).id??0}},routes:g.map(e=>({label:e.label,href:e.href}))}),[e,t,s,i,l,c,o])}(),[s,i]=(0,a.useState)(""),[l,c]=(0,a.useState)([]),[o,d]=(0,a.useState)([]),[m,u]=(0,a.useState)(-1),[x,p]=(0,a.useState)(!1),h=(0,a.useRef)(null),v=(0,a.useRef)(null);(0,a.useEffect)(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&"k"===e.key.toLowerCase()&&(e.preventDefault(),h.current?.focus())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[]),(0,a.useEffect)(()=>{let e=v.current;e&&"function"==typeof e.scrollTo&&e.scrollTo({top:e.scrollHeight})},[l]);let f=(0,a.useCallback)(async()=>{let t=s.trim();if(!t||x)return;c(e=>[...e,{kind:"in",text:t}]),d(e=>[...e,t]),u(-1),i(""),p(!0);let a=await es(t,e);c(e=>[...e,...a.lines.map(e=>({kind:a.ok?"out":"err",text:e}))]),p(!1)},[s,x,e]);return(0,t.jsxs)("div",{className:"border-t border-[var(--cic-border)] bg-[var(--cic-surface)]/80 font-mono text-sm",children:[l.length>0&&(0,t.jsx)("div",{ref:v,className:"max-h-40 overflow-y-auto px-4 py-2 leading-relaxed",children:l.map((e,a)=>(0,t.jsx)("div",{className:`whitespace-pre-wrap ${el[e.kind]}`,children:"in"===e.kind?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-[var(--cic-cyan)]",children:"sc ▸ "}),e.text]}):e.text},a))}),(0,t.jsxs)("div",{className:"flex items-center gap-2 px-4 py-2.5",children:[(0,t.jsx)("span",{className:"cic-bloom shrink-0 text-[var(--cic-cyan)]",children:"sc ▸"}),(0,t.jsx)("input",{ref:h,value:s,onChange:e=>i(e.target.value),onKeyDown:e=>{if("Enter"===e.key)e.preventDefault(),f();else if("ArrowUp"===e.key){if(e.preventDefault(),0===o.length)return;let t=-1===m?o.length-1:Math.max(0,m-1);u(t),i(o[t])}else if("ArrowDown"===e.key){if(e.preventDefault(),-1===m)return;let t=m+1;t>=o.length?(u(-1),i("")):(u(t),i(o[t]))}},spellCheck:!1,autoComplete:"off","aria-label":"command line",placeholder:"recall · scan · forget · consolidate · go · theme · help",className:"flex-1 bg-transparent text-[var(--cic-text)] outline-none placeholder:text-[var(--cic-text-faint)]"}),!s&&(0,t.jsx)("span",{className:"cli-cursor text-[var(--cic-cyan)]"}),(0,t.jsx)("kbd",{className:"shrink-0 rounded border border-[var(--cic-border)] px-1.5 text-xs text-[var(--cic-text-faint)]",children:"⌘K"})]})]})}let eo=M.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001",ed=["▁","▂","▃","▄","▅","▆","▇","█"];function em(e){if(0===e.length)return"";let t=Math.max(...e);return t<=0?ed[0].repeat(e.length):e.map(e=>ed[Math.round(Math.max(0,e)/t*(ed.length-1))]).join("")}function eu(){let{memoryTrend:e,threatTrend:a}=function(){let{data:e}=(0,R.useQuery)({queryKey:["activity-trend"],queryFn:async()=>{let e=await (0,q.authFetch)(`${eo}/api/memories/activity`);if(!e.ok)throw Error("Failed to fetch activity");return e.json()},staleTime:3e5,refetchInterval:3e5}),t=new Date;t.setDate(t.getDate()-7);let a=t.toISOString(),{data:r}=(0,R.useQuery)({queryKey:["threat-trend"],queryFn:async()=>{let e=new URLSearchParams({firewallResult:"BLOCK",startTime:a,limit:"500"}),t=await (0,q.authFetch)(`${eo}/api/v1/audit?${e}`);if(!t.ok)throw Error("Failed to fetch audit logs");return t.json()},staleTime:3e5,refetchInterval:3e5}),s=[];for(let e=6;e>=0;e--){let t=new Date;t.setDate(t.getDate()-e),s.push(t.toISOString().slice(0,10))}let n=new Map;if(e?.activity)for(let t of e.activity)n.set(t.date,t.count);let i=s.map(e=>n.get(e)??0),l=new Map;if(r?.logs)for(let e of r.logs){let t=e.timestamp.slice(0,10);l.set(t,(l.get(t)??0)+1)}return{memoryTrend:i,threatTrend:s.map(e=>l.get(e)??0)}}();return(0,t.jsxs)("div",{className:"flex items-center gap-6 border-t border-[var(--cic-border)] bg-[var(--cic-surface)]/40 px-4 py-1 font-mono text-[11px] text-[var(--cic-text-faint)]",children:[(0,t.jsxs)("span",{className:"flex items-center gap-2",title:"memories created per day, last 7 days",children:[(0,t.jsx)("span",{children:"MEMORY·7d"}),(0,t.jsx)("span",{className:"cic-bloom tracking-tight text-[var(--cic-cyan)]",children:em(e)||"·······"})]}),(0,t.jsxs)("span",{className:"flex items-center gap-2",title:"threats blocked per day, last 7 days",children:[(0,t.jsx)("span",{children:"THREAT·7d"}),(0,t.jsx)("span",{className:"cic-bloom tracking-tight text-[var(--cic-coral)]",children:em(a)||"·······"})]})]})}function ex({children:e}){return(0,t.jsxs)("div",{className:"flex h-dvh w-full flex-col overflow-hidden bg-[var(--cic-void)] text-[var(--cic-text)]",children:[(0,t.jsx)(J,{}),(0,t.jsxs)("div",{className:"flex min-h-0 flex-1",children:[(0,t.jsx)(ee,{}),(0,t.jsx)("main",{className:"min-w-0 flex-1 overflow-auto",children:e})]}),(0,t.jsx)(eu,{}),(0,t.jsx)(ec,{})]})}function ep({children:e}){let[s,n]=(0,a.useState)(!1);(0,a.useEffect)(()=>n(!0),[]);let[i]=(0,r.useTheme)();return"terminal"===(s?i:"terminal")?(0,t.jsx)(ex,{children:e}):(0,t.jsxs)("div",{className:"flex h-dvh w-full overflow-hidden bg-[var(--sc-bg-deep)] text-[var(--sc-text-primary)]",children:[(0,t.jsx)(k,{}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,t.jsx)(B,{}),(0,t.jsx)(W,{}),(0,t.jsx)("main",{className:"min-w-0 flex-1 overflow-auto",children:e})]})]})}e.s(["ShellSwitch",()=>ep],51195)},24478,e=>{"use strict";var t=e.i(27493),a=e.i(48615),r=e.i(24590);function s(){let[e]=(0,r.useTheme)();return(0,t.jsx)(a.Toaster,{position:"bottom-right",toastOptions:{style:"glass"===e?{background:"var(--sc-bg-surface)",border:"1px solid var(--sc-border)",color:"var(--sc-text-primary)",fontFamily:"system-ui, sans-serif"}:{background:"var(--term-surface)",border:"1px solid var(--term-border)",color:"var(--term-text)",fontFamily:"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace",fontSize:"13px",borderRadius:"6px"}},theme:"dark"})}e.s(["ToastProvider",()=>s])},4167,e=>{"use strict";var t=e.i(4),a=e.i(48615),r=e.i(35372);let s=new Map;function n(){let e=(0,t.useCallback)(e=>{let t;if("defence_event"!==e.type)return;let r=e.data;if(!r||"ALLOW"===r.firewall_result)return;let n="BLOCK"===r.firewall_result,i=r.source_identifier||r.source_type||"unknown source",l=(t=function(e){if(Array.isArray(e))return e.filter(e=>"string"==typeof e);if("string"!=typeof e||!e.trim())return[];try{let t=JSON.parse(e);if(Array.isArray(t))return t.filter(e=>"string"==typeof e)}catch{return[e]}return[]}(r.threat_indicators)).length?t.slice(0,3).map(e=>e.replace(/_/g," ")).join(", "):"",c=r.reason?.trim()||(l?`Threats: ${l}`:"See audit log for details");if(function(e){let t=Date.now(),a=s.get(e);if(a&&t-a<2e3)return!0;if(s.set(e,t),s.size>50){let e=t-2e3;for(let[t,a]of s)a<e&&s.delete(t)}return!1}(`${r.firewall_result}:${i}:${(r.reason||"").slice(0,80)}`))return;let o=n?`\u{1F6E1} Blocked attack from ${i}`:`\u{26A0}\u{FE0F} Quarantined input from ${i}`,d={description:c,duration:n?8e3:5e3};n?a.toast.error(o,d):a.toast.warning(o,d)},[]);return(0,r.useWebSocketEvent)(e),null}e.s(["BlockToastBridge",()=>n])}]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shieldcortex",
3
- "version": "4.42.0",
3
+ "version": "4.42.1",
4
4
  "description": "Trustworthy memory and security for AI agents. Recall debugging, review queue, OpenClaw session capture, and memory poisoning defence for Claude Code, Codex, OpenClaw, LangChain, and MCP agents.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,24590,e=>{"use strict";var t=e.i(4);let a="terminal";function r(){return"u"<typeof document?a:"glass"===document.documentElement.getAttribute("data-theme")?"glass":"terminal"}function s(e){return window.addEventListener("sc-theme-change",e),window.addEventListener("storage",e),()=>{window.removeEventListener("sc-theme-change",e),window.removeEventListener("storage",e)}}function n(){return[(0,t.useSyncExternalStore)(s,r,()=>a),e=>{if("u">typeof document){try{window.localStorage.setItem("sc-theme",e)}catch{}document.documentElement.setAttribute("data-theme",e),window.dispatchEvent(new Event("sc-theme-change"))}}]}e.s(["useTheme",()=>n])},51195,e=>{"use strict";var t=e.i(27493),a=e.i(4),r=e.i(24590),s=e.i(56640),n=e.i(16871),i=e.i(24929);let l=(0,i.default)("menu",[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]]);var c=e.i(80039);let o=(0,i.default)("pin-off",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89",key:"znwnzq"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11",key:"c9qhm2"}]]);var d=e.i(27528),u=e.i(17278),m=e.i(76490),x=e.i(7571);let p=(0,i.default)("house",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]]),h=(0,i.default)("circle-play",[["path",{d:"M9 9.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997A1 1 0 0 1 9 14.996z",key:"kmsa83"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);var v=e.i(76344),f=e.i(54130);let g=[{href:"/overview",label:"Overview",icon:p},{href:"/memory",label:"Memory",icon:x.Database},{href:"/memory/replay",label:"Replay",icon:h},{href:"/protection",label:"Protection",icon:d.Shield},{href:"/xray",label:"X-Ray",icon:v.ScanSearch},{href:"/settings",label:"Settings",icon:f.Settings}];var y=e.i(42098),b=e.i(88069),j=e.i(35372);function w(){let e=(0,n.usePathname)(),{sidebarPinned:r,toggleSidebarPinned:i}=(0,y.useDashboardStore)(),[x,p]=(0,a.useState)(!1),[h,v]=(0,a.useState)(null),f=h===e,{isConnected:w}=(0,j.useWebSocketStatus)(),{data:k}=(0,b.useVersion)(),N=r||x||f;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("button",{onClick:()=>v(e),className:"fixed left-3 top-3 z-50 flex h-10 w-10 items-center justify-center rounded-xl bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] text-[var(--sc-text-secondary)] md:hidden","aria-label":"Open navigation",children:(0,t.jsx)(l,{size:18})}),f&&(0,t.jsx)("div",{className:"fixed inset-0 z-40 bg-black/50 backdrop-blur-sm md:hidden",onClick:()=>v(null)}),(0,t.jsxs)("aside",{className:(0,m.cn)("z-50 flex shrink-0 flex-col border-r border-[var(--sc-border)] bg-[var(--sc-bg-deep)] transition-all duration-300","fixed inset-y-0 left-0 md:relative",f?"translate-x-0":"-translate-x-full md:translate-x-0",N?"w-60":"w-16"),onMouseEnter:()=>p(!0),onMouseLeave:()=>p(!1),children:[(0,t.jsxs)("div",{className:"flex h-16 items-center gap-3 border-b border-[var(--sc-border)] px-4",children:[(0,t.jsx)("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-gradient-to-br from-[var(--sc-coral)] to-[var(--sc-coral-dark)]",children:(0,t.jsx)(d.Shield,{size:16,className:"text-white"})}),(0,t.jsxs)("div",{className:(0,m.cn)("overflow-hidden whitespace-nowrap transition-all duration-300",N?"w-auto opacity-100":"w-0 opacity-0"),children:[(0,t.jsx)("div",{className:"text-[11px] font-semibold uppercase tracking-[0.2em] text-[var(--sc-coral)]",children:"ShieldCortex"}),(0,t.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)]",children:"Dashboard"})]}),f&&(0,t.jsx)("button",{onClick:()=>v(null),className:"ml-auto text-[var(--sc-text-muted)] hover:text-[var(--sc-text-secondary)] md:hidden","aria-label":"Close navigation",children:(0,t.jsx)(u.X,{size:18})})]}),(0,t.jsx)("nav",{className:"flex-1 space-y-1 px-2 py-4",role:"navigation","aria-label":"Main navigation",children:g.map(a=>{var r;let n=a.icon,i="/overview"===(r=a.href)?"/overview"===e||"/"===e:e===r||e.startsWith(`${r}/`);return(0,t.jsxs)(s.default,{href:a.href,"aria-current":i?"page":void 0,className:(0,m.cn)("relative flex items-center gap-3 rounded-xl px-3 py-2.5 transition-all duration-200 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--sc-cyan)]",i?"bg-[var(--sc-surface-interactive)] text-[var(--sc-text-primary)]":"text-[var(--sc-text-muted)] hover:bg-[var(--sc-surface-interactive)] hover:text-[var(--sc-text-secondary)]"),children:[i&&(0,t.jsx)("div",{className:"absolute left-0 top-1/2 h-5 w-0.5 -translate-y-1/2 rounded-r bg-[var(--sc-coral)]"}),(0,t.jsx)(n,{size:18,className:(0,m.cn)("shrink-0",i&&"text-[var(--sc-coral)]")}),(0,t.jsx)("span",{className:(0,m.cn)("overflow-hidden whitespace-nowrap text-sm font-medium transition-all duration-300",N?"w-auto opacity-100":"w-0 opacity-0"),children:a.label})]},a.href)})}),(0,t.jsxs)("div",{className:"space-y-2 border-t border-[var(--sc-border)] px-2 py-3",children:[N&&(0,t.jsxs)("button",{onClick:i,className:"hidden w-full items-center gap-3 rounded-xl px-3 py-2 text-[var(--sc-text-muted)] transition-colors hover:bg-[var(--sc-surface-interactive)] hover:text-[var(--sc-text-secondary)] md:flex","aria-label":r?"Unpin sidebar":"Pin sidebar",children:[r?(0,t.jsx)(o,{size:16}):(0,t.jsx)(c.Pin,{size:16}),(0,t.jsx)("span",{className:"text-xs",children:r?"Unpin":"Pin sidebar"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-3 px-3 py-1",children:[(0,t.jsx)("span",{className:(0,m.cn)("h-2 w-2 shrink-0 rounded-full",w?"bg-[var(--sc-cyan)] pulse-cyan":"bg-[var(--sc-coral)] pulse-coral"),"aria-label":w?"Real-time connected":"Real-time disconnected"}),(0,t.jsx)("span",{className:(0,m.cn)("overflow-hidden whitespace-nowrap text-[11px] text-[var(--sc-text-muted)] transition-all duration-300",N?"w-auto opacity-100":"w-0 opacity-0"),children:w?"Connected":"Disconnected"})]}),(0,t.jsxs)("div",{className:(0,m.cn)("overflow-hidden whitespace-nowrap px-3 font-mono text-[10px] text-[var(--sc-text-muted)] transition-all duration-300",N?"opacity-100":"h-0 opacity-0"),children:["v",k?.version??"..."]})]})]})]})}function k(){return(0,t.jsx)(w,{})}var N=e.i(45434);let S=(0,i.default)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]),$=(0,i.default)("arrow-up",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);var C=e.i(61737);let E=(0,i.default)("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);var A=e.i(51069),L=e.i(44758),T=e.i(13808),M=e.i(22534),R=e.i(45688),q=e.i(88969);let D=M.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001",F=[{id:"24h",label:"24h"},{id:"7d",label:"7d"},{id:"30d",label:"30d"}];function z({value:e}){if(void 0===e)return null;if(0===e)return(0,t.jsxs)("span",{className:"inline-flex items-center gap-0.5 text-[10px] text-[var(--sc-text-muted)]",children:[(0,t.jsx)(E,{size:9})," 0"]});let a=e>0;return(0,t.jsxs)("span",{className:`inline-flex items-center gap-0.5 text-[10px] ${a?"text-[var(--sc-cyan)]":"text-[var(--sc-text-muted)]"}`,children:[(0,t.jsx)(a?$:S,{size:9}),a?"+":"",e]})}function I({icon:e,label:a,value:r,delta:s,tone:n}){let i="coral"===n?"text-[var(--sc-coral)]":"cyan"===n?"text-[var(--sc-cyan)]":"text-[var(--sc-text-primary)]";return(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:i,children:e}),(0,t.jsx)("span",{className:"text-[10px] uppercase tracking-[0.12em] text-[var(--sc-text-muted)]",children:a}),(0,t.jsx)("span",{className:`font-mono text-sm font-semibold ${i}`,children:r.toLocaleString()}),(0,t.jsx)(z,{value:s})]})}function P({moment:e}){let a="block"===e.kind||"quarantine"===e.kind?A.ShieldAlert:"capture"===e.kind?T.Sparkles:C.Brain,r="block"===e.kind?"text-[var(--sc-coral)]":"quarantine"===e.kind?"text-[var(--sc-amber)]":"capture"===e.kind?"text-[var(--sc-cyan)]":"text-[var(--sc-text-secondary)]";return(0,t.jsxs)("li",{className:"flex items-start gap-2 rounded border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/40 p-2",children:[(0,t.jsx)(a,{size:14,className:`mt-0.5 ${r}`}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("div",{className:"text-xs font-medium text-[var(--sc-text-primary)] truncate",children:e.title}),(0,t.jsx)("div",{className:"mt-0.5 text-[10px] text-[var(--sc-text-muted)] truncate",children:e.detail})]}),(0,t.jsx)("span",{className:"shrink-0 text-[10px] text-[var(--sc-text-muted)]",children:new Date(e.timestamp).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})})]})}function _(){let[e,r]=(0,a.useState)("24h"),[s,n]=(0,a.useState)(!1),{projectFilter:i}=(0,y.useDashboardStore)(),{data:l,isLoading:c}=function(e="24h",t){return(0,R.useQuery)({queryKey:["digest",e,t??null],queryFn:async()=>{let a=new URLSearchParams({window:e});t&&a.set("project",t);let r=await (0,q.gatedFetch)(`${D}/api/digest?${a.toString()}`);if(!r.ok)throw Error(await (0,q.readApiError)(r,"Failed to load digest"));return r.json()},refetchInterval:6e4,staleTime:3e4})}(e,i);if(c||!l)return(0,t.jsxs)("div",{className:"flex items-center gap-3 border-b border-[var(--sc-border)] bg-[var(--sc-bg-surface)]/30 px-4 py-2 text-[11px] text-[var(--sc-text-muted)]",children:[(0,t.jsx)(N.Activity,{size:12,className:"animate-pulse"})," Loading activity…"]});let o=l.current,d=l.delta,u=0===o.scanned&&0===o.memoriesCaptured&&0===o.memoriesRecalled;return(0,t.jsxs)("div",{className:"border-b border-[var(--term-border)] bg-[var(--term-surface)] font-mono",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-x-5 gap-y-2 px-4 py-2 cursor-pointer hover:bg-[var(--term-surface-2)] transition-colors",onClick:()=>n(e=>!e),role:"button",tabIndex:0,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&n(e=>!e)},"aria-expanded":s,"aria-label":`${l.windowLabel} ShieldCortex activity. Click to ${s?"collapse":"expand"} top moments.`,children:[(0,t.jsx)("span",{className:"text-[10px] uppercase tracking-[0.14em] text-[var(--sc-text-muted)]",children:l.windowLabel}),u?(0,t.jsx)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:"No activity yet — ShieldCortex captures and protects in the background."}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(I,{icon:(0,t.jsx)(L.ShieldCheck,{size:13}),label:"Scanned",value:o.scanned,delta:d.scanned}),(0,t.jsx)(I,{icon:(0,t.jsx)(A.ShieldAlert,{size:13}),label:"Blocked",value:o.blocked+o.quarantined,delta:(d.blocked??0)+(d.quarantined??0),tone:"coral"}),(0,t.jsx)(I,{icon:(0,t.jsx)(T.Sparkles,{size:13}),label:"Captured",value:o.memoriesCaptured,delta:d.memoriesCaptured,tone:"cyan"}),(0,t.jsx)(I,{icon:(0,t.jsx)(C.Brain,{size:13}),label:"Recalled",value:o.memoriesRecalled,delta:d.memoriesRecalled})]}),(0,t.jsx)("div",{className:"ml-auto flex items-center gap-3",children:(0,t.jsx)("div",{className:"flex items-center gap-1",onClick:e=>e.stopPropagation(),children:F.map(a=>(0,t.jsxs)("button",{type:"button",onClick:e=>{e.stopPropagation(),r(a.id)},className:`px-1.5 py-0.5 text-[11px] font-mono transition-colors theme-glass:rounded theme-glass:uppercase theme-glass:tracking-[0.12em] ${a.id===e?"text-[var(--term-electric-fg)] theme-glass:bg-[var(--sc-cyan)]/20 theme-glass:text-[var(--sc-cyan)]":"text-[var(--term-text-muted)] hover:text-[var(--term-text)] theme-glass:hover:text-[var(--sc-text-primary)]"}`,children:[(0,t.jsxs)("span",{className:"theme-glass:hidden",children:["[",a.label,"]"]}),(0,t.jsx)("span",{className:"hidden theme-glass:inline",children:a.label})]},a.id))})})]}),s&&!u&&(0,t.jsx)("div",{className:"border-t border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/50 px-4 py-3",children:(0,t.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"mb-2 text-[10px] uppercase tracking-[0.14em] text-[var(--sc-text-muted)]",children:"Top moments"}),0===l.topMoments.length?(0,t.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)]",children:"Nothing notable to surface in this window."}):(0,t.jsx)("ul",{className:"space-y-1.5",children:l.topMoments.map((e,a)=>(0,t.jsx)(P,{moment:e},`${e.kind}-${a}-${e.timestamp}`))})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"mb-2 text-[10px] uppercase tracking-[0.14em] text-[var(--sc-text-muted)]",children:"Top threat patterns"}),0===l.topThreatPatterns.length?(0,t.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)]",children:"No threat patterns triggered."}):(0,t.jsx)("ul",{className:"space-y-1",children:l.topThreatPatterns.map(e=>(0,t.jsxs)("li",{className:"flex items-center justify-between rounded border border-[var(--sc-border)] bg-[var(--sc-bg-surface)]/50 px-2 py-1 text-xs",children:[(0,t.jsx)("span",{className:"font-mono text-[var(--sc-text-primary)] truncate",children:e.pattern}),(0,t.jsxs)("span",{className:"font-mono text-[var(--sc-text-muted)]",children:[e.count,"×"]})]},e.pattern))})]})]})})]})}let O=(0,i.default)("funnel",[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]]);function U(){let{data:e}=(0,b.useProjects)(),{projectFilter:a,setProjectFilter:r}=(0,y.useDashboardStore)(),s=Array.isArray(e)?e:Array.isArray(e?.projects)?e.projects:[],n=s.filter(e=>"string"==typeof e.project&&e.project.length>0),i=s.find(e=>null===e.project)?.memory_count??n.reduce((e,t)=>e+(t.memory_count??0),0),l=n.slice().sort((e,t)=>(t.memory_count??0)-(e.memory_count??0)||e.project.localeCompare(t.project));return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"theme-glass:hidden flex items-center gap-3 border-b border-[var(--term-border)] bg-[var(--term-surface)] px-4 py-1.5 font-mono text-xs",children:[(0,t.jsx)("span",{className:"text-[var(--term-text-muted)]",children:"project"}),(0,t.jsx)("span",{className:"text-[var(--term-text-muted)]","aria-hidden":!0,children:"="}),(0,t.jsxs)("select",{id:"project-filter",value:a??"",onChange:e=>r(""===e.target.value?null:e.target.value),className:"rounded-sm border border-[var(--term-border)] bg-[var(--term-surface-2)] px-2 py-0.5 text-xs text-[var(--term-text)] font-mono focus:outline-none focus:border-[var(--term-electric)]","aria-label":"Filter dashboard by project",children:[(0,t.jsxs)("option",{value:"",children:["*",i?` (${i})`:""]}),l.map(e=>(0,t.jsxs)("option",{value:e.project,children:[e.project,"number"==typeof e.memory_count?` (${e.memory_count})`:""]},e.project))]}),a&&(0,t.jsx)("button",{type:"button",onClick:()=>r(null),className:"text-[var(--term-text-muted)] hover:text-[var(--term-text)] underline",children:"clear"})]}),(0,t.jsxs)("div",{className:"hidden theme-glass:flex items-center gap-2 border-b border-[var(--sc-border)] bg-[var(--sc-bg-surface)]/40 px-4 py-2 backdrop-blur-sm",children:[(0,t.jsx)(O,{size:13,className:"text-[var(--sc-text-muted)]"}),(0,t.jsx)("label",{htmlFor:"project-filter-glass",className:"text-xs uppercase tracking-[0.14em] text-[var(--sc-text-muted)]",children:"Project"}),(0,t.jsxs)("select",{id:"project-filter-glass",value:a??"",onChange:e=>r(""===e.target.value?null:e.target.value),className:"rounded-md border border-[var(--sc-border)] bg-[var(--sc-bg-deep)] px-2 py-1 text-xs text-[var(--sc-text-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--sc-cyan)]","aria-label":"Filter dashboard by project (glass)",children:[(0,t.jsxs)("option",{value:"",children:["All projects",i?` (${i})`:""]}),l.map(e=>(0,t.jsxs)("option",{value:e.project,children:[e.project,"number"==typeof e.memory_count?` (${e.memory_count})`:""]},e.project))]}),a&&(0,t.jsx)("button",{type:"button",onClick:()=>r(null),className:"text-[11px] text-[var(--sc-text-muted)] hover:text-[var(--sc-text-primary)] underline",children:"Clear"})]})]})}var B=e.i(87353);function K({sources:e=[],max:a=4}){let r=e.slice(0,a),s=e.length-r.length;return(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,t.jsx)("span",{className:"shrink-0 text-[var(--cic-text-faint)]",children:"ECOSYSTEM ▸"}),0===r.length?(0,t.jsx)("span",{className:"text-[var(--cic-text-faint)]",children:"no signals"}):r.map(e=>(0,t.jsxs)("span",{className:"flex shrink-0 items-center gap-1",title:`${e.source} \xb7 ${e.count} ops`,children:[(0,t.jsx)("span",{className:"cic-bloom text-[var(--cic-cyan)]","aria-hidden":!0,children:"◉"}),(0,t.jsx)("span",{className:"text-[var(--cic-text-dim)]",children:function(e){if(!e)return"unknown";let[t,a]=e.split(":");return"agent"===t&&a?a.replace(/-plugin.*/,""):"cli"===t?a?`cli:${a}`:"cli":"hook"===t?"hook":"api"===t?a?`api:${a}`:"api":"user"===t?"you":t||e}(e.source)})]},e.source)),s>0&&(0,t.jsxs)("span",{className:"shrink-0 text-[var(--cic-text-faint)]",children:["+",s]})]})}let W=["input","pattern","semantic","structural","behaviour","credential"];function X({blocked:e=0}){let a=e>0,r=a?"var(--cic-coral)":"var(--cic-cyan)";return(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-2",title:`Shield: 6 layers armed \xb7 ${e} blocked`,children:[(0,t.jsx)("span",{className:"text-[var(--cic-text-faint)]",children:"SHIELD"}),(0,t.jsx)("span",{className:"flex gap-0.5",children:W.map(e=>(0,t.jsx)("span",{className:a?"cic-bloom":"",style:{color:r},"aria-hidden":!0,children:"▣"},e))})]})}function H({label:e,value:a,colour:r}){return(0,t.jsxs)("span",{className:"flex items-center gap-1",title:e,children:[(0,t.jsx)("span",{className:"text-[var(--cic-text-faint)]",children:e}),(0,t.jsx)("span",{className:"cic-bloom tabular-nums",style:{color:r},children:a.toLocaleString()})]})}function Q(){let e=(0,B.useAuditStats)("24h"),r=(0,b.useStats)(),{isConnected:s}=(0,j.useWebSocketStatus)(),[n,i]=(0,a.useState)("");(0,a.useEffect)(()=>{let e=()=>i(new Date().toTimeString().slice(0,8));e();let t=setInterval(e,1e3);return()=>clearInterval(t)},[]);let l=e.data,c=l?.topSources??[];return(0,t.jsxs)("header",{className:"flex items-center gap-5 overflow-x-auto border-b border-[var(--cic-border)] bg-[var(--cic-surface)]/80 px-4 py-2 font-mono text-xs whitespace-nowrap",children:[(0,t.jsx)("span",{className:"cic-bloom shrink-0 font-semibold tracking-[0.18em] text-[var(--cic-cyan)]",children:"◢ SHIELDCORTEX·CIC ◤"}),(0,t.jsx)(K,{sources:c}),(0,t.jsx)(X,{blocked:l?.blockedCount??0}),(0,t.jsxs)("span",{className:"ml-auto flex shrink-0 items-center gap-4",children:[(0,t.jsx)(H,{label:"SCANNED",value:l?.totalOperations??0,colour:"var(--cic-text-dim)"}),(0,t.jsx)(H,{label:"BLOCKED",value:l?.blockedCount??0,colour:"var(--cic-coral)"}),(0,t.jsx)(H,{label:"QUAR",value:l?.quarantinedCount??0,colour:"var(--cic-amber)"}),(0,t.jsx)(H,{label:"MEMORIES",value:r.data?.total??0,colour:"var(--cic-cyan)"}),(0,t.jsxs)("span",{className:"flex items-center gap-1.5",title:s?"live link up":"link down",children:[(0,t.jsx)("span",{className:s?"pulse-cyan":"pulse-coral",style:{color:s?"var(--cic-cyan)":"var(--cic-coral)"},"aria-hidden":!0,children:"◉"}),(0,t.jsx)("span",{className:"text-[var(--cic-text-faint)]",children:s?"LINK":"DOWN"})]}),(0,t.jsx)("span",{className:"tabular-nums text-[var(--cic-text-muted)]",suppressHydrationWarning:!0,children:n})]})]})}var V=e.i(53655);let J={"/overview":"memory","/memory":"memory","/memory/replay":"integrity","/protection":"defence","/xray":"defence","/settings":"integrity"};function Y(){let e=(0,n.usePathname)(),{isConnected:r}=(0,j.useWebSocketStatus)(),[i,l]=(0,a.useState)(!1);return(0,t.jsxs)("aside",{className:`flex shrink-0 flex-col border-r border-[var(--cic-border)] bg-[var(--cic-surface)]/60 font-mono transition-[width] duration-200 ${i?"w-14":"w-56"}`,children:[(0,t.jsxs)("button",{type:"button",onClick:()=>l(e=>!e),className:"flex h-11 items-center gap-2 px-4 text-left text-[var(--cic-text-muted)] hover:text-[var(--cic-text)]","aria-label":i?"expand navigation":"collapse navigation",children:[(0,t.jsx)("span",{className:"cic-bloom text-[var(--cic-cyan)]",children:"$"}),!i&&(0,t.jsx)("span",{className:"text-sm text-[var(--cic-text-dim)]",children:"shieldcortex"})]}),(0,t.jsx)("nav",{className:"flex flex-1 flex-col gap-0.5 px-2 py-2",children:g.map(a=>{let r=e===a.href||"/overview"!==a.href&&e.startsWith(a.href),n=V.REGIONS[J[a.href]??"memory"],l=a.icon;return(0,t.jsxs)(s.default,{href:a.href,title:a.label,className:`flex items-center gap-2 rounded px-2 py-1.5 text-sm transition-colors ${r?"bg-[var(--cic-surface-2)] text-[var(--cic-text)]":"text-[var(--cic-text-muted)] hover:text-[var(--cic-text)]"}`,style:r?{color:`var(${n.token})`}:void 0,children:[(0,t.jsx)("span",{className:"w-2 shrink-0",style:r?{color:`var(${n.token})`}:void 0,children:r?"▸":""}),l?(0,t.jsx)(l,{size:14,className:"shrink-0"}):null,!i&&(0,t.jsx)("span",{className:"truncate",children:a.label})]},a.href)})}),(0,t.jsxs)("div",{className:"flex items-center gap-2 border-t border-[var(--cic-border)] px-4 py-2 text-xs",children:[(0,t.jsx)("span",{className:r?"pulse-cyan":"pulse-coral",style:{color:r?"var(--cic-cyan)":"var(--cic-coral)"},"aria-hidden":!0,children:"◉"}),!i&&(0,t.jsx)("span",{className:"text-[var(--cic-text-faint)]",children:r?"link.up":"link.down"})]})]})}let G=e=>({ok:!0,lines:e}),Z=e=>({ok:!1,lines:e}),ee={recall:{name:"recall",usage:'recall "<query>" [--project <p>]',summary:"search the memory cortex",run:async(e,{args:t,flags:a})=>{let r=t.join(" ").trim();if(!r)return Z(['recall: give a query, e.g. recall "auth bug"']);let s="string"==typeof a.project?a.project:void 0,n=await e.recall(r,s);return 0===n.length?G([`recall "${r}" → no memories`]):G([`recall "${r}" → ${n.length}`,...n.slice(0,10).map(e=>` #${e.id} ${e.title}`)])}},scan:{name:"scan",usage:"scan <path> [--deep]",summary:"X-Ray a file, folder, or package",run:async(e,{args:t,flags:a})=>{let r=t[0];if(!r)return Z(["scan: give a path or package"]);let s=await e.scan(r,!0===a.deep);return G([`scan ${s.target} → ${s.riskLevel} \xb7 trust ${s.trustScore} \xb7 ${s.filesScanned} files \xb7 ${s.findingsCount} findings`])}},forget:{name:"forget",usage:"forget <id>",summary:"delete a memory by id",run:async(e,{args:t})=>{let a=Number(t[0]);return Number.isInteger(a)?(await e.forget(a),G([`▸ forgot #${a}`])):Z(["forget: give a numeric memory id"])}},consolidate:{name:"consolidate",usage:"consolidate",summary:"run a consolidation pass (STM→LTM, decay, cleanup)",run:async e=>{let t=await e.consolidate();return G([`▸ consolidated ${t.consolidated} \xb7 decayed ${t.decayed} \xb7 deleted ${t.deleted}`])}},quarantine:{name:"quarantine",usage:"quarantine [approve <id> | reject <id>]",summary:"list pending quarantine, or approve/reject by id",run:async(e,{args:t})=>{let a=t[0]?.toLowerCase();if(!a||"list"===a){let t=await e.quarantineList();return 0===t.length?G(["quarantine: nothing pending"]):G([`quarantine pending → ${t.length}`,...t.slice(0,10).map(e=>` #${e.id} ${e.title}`)])}if("approve"===a||"reject"===a){let r=Number(t[1]);return Number.isInteger(r)?(await e.quarantineReview(r,a),G([`▸ ${"approve"===a?"approved":"rejected"} #${r}`])):Z([`quarantine ${a}: give a numeric id`])}return Z(["quarantine: use list | approve <id> | reject <id>"])}},irondome:{name:"irondome",usage:"irondome <on|off|status>",summary:"arm/disarm the Iron Dome, or report its state",run:async(e,{args:t})=>{let a=t[0]?.toLowerCase();return"on"!==a&&"off"!==a&&"status"!==a?Z(["irondome: use on | off | status"]):G([await e.ironDome(a)])}},remember:{name:"remember",usage:'remember "<text>"',summary:"store a new memory",run:async(e,{args:t})=>{let a=t.join(" ").trim();if(!a)return Z(['remember: give the text to store, e.g. remember "the fix was X"']);let r=await e.remember(a);return G([`▸ remembered #${r.id}`])}},go:{name:"go",usage:"go <view>",summary:"navigate to a console view",run:(e,{args:t})=>{let a=t[0]?.toLowerCase();if(!a)return Z(["go: which view? "+e.routes.map(e=>e.label).join(" · ")]);let r=e.routes.find(e=>e.label.toLowerCase().includes(a)||e.href.toLowerCase().includes(a));return r?(e.navigate(r.href),G([`▸ ${r.label}`])):Z([`go: unknown view '${a}'. options: ${e.routes.map(e=>e.label).join(" · ")}`])}},theme:{name:"theme",usage:"theme <terminal|glass>",summary:"switch the dashboard theme",run:(e,{args:t})=>{let a=t[0]?.toLowerCase();return"terminal"!==a&&"glass"!==a?Z(["theme: choose 'terminal' or 'glass'"]):(e.setTheme(a),G([`▸ theme → ${a}`]))}},help:{name:"help",usage:"help",summary:"list commands",run:()=>G(["commands:",...Object.values(ee).map(e=>` ${e.usage.padEnd(34)} ${e.summary}`)])}};async function et(e,t){let a=function(e){let t=e.trim();if(!t)return null;let a=function(e){let t,a=[],r=/"([^"]*)"|(\S+)/g;for(;null!==(t=r.exec(e));)a.push(void 0!==t[1]?t[1]:t[2]);return a}(t),r=a[0].toLowerCase(),s=[],n={};for(let e=1;e<a.length;e+=1){let t=a[e];if(t.startsWith("--")){let r=t.slice(2),s=a[e+1];void 0===s||s.startsWith("--")?n[r]=!0:(n[r]=s,e+=1)}else s.push(t)}return{name:r,args:s,flags:n}}(e);if(!a)return Z([]);let r=ee[a.name];if(!r)return Z([`unknown command: ${a.name} — try 'help'`]);try{return await r.run(t,a)}catch(e){return Z([`error: ${e instanceof Error?e.message:String(e)}`])}}var ea=e.i(31309);let er=M.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001",es={in:"text-[var(--cic-text-dim)]",out:"text-[var(--cic-text)]",err:"text-[var(--cic-coral)]"};function en(){let e=function(){let e=(0,n.useRouter)(),[,t]=(0,r.useTheme)(),s=(0,ea.useXRayScan)(),i=(0,b.useDeleteMemory)(),l=(0,b.useConsolidate)(),c=(0,B.useApproveQuarantine)(),o=(0,B.useRejectQuarantine)();return(0,a.useMemo)(()=>({navigate:t=>e.push(t),setTheme:t,recall:async(e,t)=>{let a=new URLSearchParams({mode:"search",query:e,limit:"10"});t&&a.set("project",t);let r=await (0,q.authFetch)(`${er}/api/memories?${a.toString()}`);if(!r.ok)throw Error(await (0,q.readApiError)(r,"recall failed"));return((await r.json()).memories??[]).map(e=>({id:e.id,title:e.title}))},scan:async(e,t)=>{let{result:a}=await s.mutateAsync({target:e,deep:t});return{target:a.target,riskLevel:a.riskLevel,trustScore:a.trustScore,filesScanned:a.filesScanned,findingsCount:a.findings.length}},forget:async e=>{await i.mutateAsync(e)},consolidate:async()=>{let e=await l.mutateAsync();return{consolidated:e.consolidated,decayed:e.decayed,deleted:e.deleted}},quarantineList:async()=>{let e=await (0,q.authFetch)(`${er}/api/v1/quarantine?status=pending&limit=20`);if(!e.ok)throw Error(await (0,q.readApiError)(e,"quarantine list failed"));return((await e.json()).items??[]).map(e=>({id:e.id,title:e.original_title??e.title??`item ${e.id}`}))},quarantineReview:async(e,t)=>{"approve"===t?await c.mutateAsync(e):await o.mutateAsync({id:e})},ironDome:async e=>{if("status"===e){let e=await (0,q.authFetch)(`${er}/api/iron-dome/status`);if(!e.ok)throw Error(await (0,q.readApiError)(e,"iron dome status failed"));let t=await e.json();return`iron dome: ${t.enabled?"ACTIVE":"inactive"}`}let t=await (0,q.authFetch)(`${er}/api/iron-dome/${"on"===e?"activate":"deactivate"}`,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"});if(!t.ok)throw Error(await (0,q.readApiError)(t,`iron dome ${e} failed`));return`▸ iron dome ${"on"===e?"ACTIVE":"disabled"}`},remember:async e=>{let t=await (0,q.authFetch)(`${er}/api/memories`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:e.slice(0,80),content:e})});if(!t.ok)throw Error(await (0,q.readApiError)(t,"remember failed"));return{id:(await t.json()).id??0}},routes:g.map(e=>({label:e.label,href:e.href}))}),[e,t,s,i,l,c,o])}(),[s,i]=(0,a.useState)(""),[l,c]=(0,a.useState)([]),[o,d]=(0,a.useState)([]),[u,m]=(0,a.useState)(-1),[x,p]=(0,a.useState)(!1),h=(0,a.useRef)(null),v=(0,a.useRef)(null);(0,a.useEffect)(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&"k"===e.key.toLowerCase()&&(e.preventDefault(),h.current?.focus())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[]),(0,a.useEffect)(()=>{let e=v.current;e&&"function"==typeof e.scrollTo&&e.scrollTo({top:e.scrollHeight})},[l]);let f=(0,a.useCallback)(async()=>{let t=s.trim();if(!t||x)return;c(e=>[...e,{kind:"in",text:t}]),d(e=>[...e,t]),m(-1),i(""),p(!0);let a=await et(t,e);c(e=>[...e,...a.lines.map(e=>({kind:a.ok?"out":"err",text:e}))]),p(!1)},[s,x,e]);return(0,t.jsxs)("div",{className:"border-t border-[var(--cic-border)] bg-[var(--cic-surface)]/80 font-mono text-sm",children:[l.length>0&&(0,t.jsx)("div",{ref:v,className:"max-h-40 overflow-y-auto px-4 py-2 leading-relaxed",children:l.map((e,a)=>(0,t.jsx)("div",{className:`whitespace-pre-wrap ${es[e.kind]}`,children:"in"===e.kind?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-[var(--cic-cyan)]",children:"sc ▸ "}),e.text]}):e.text},a))}),(0,t.jsxs)("div",{className:"flex items-center gap-2 px-4 py-2.5",children:[(0,t.jsx)("span",{className:"cic-bloom shrink-0 text-[var(--cic-cyan)]",children:"sc ▸"}),(0,t.jsx)("input",{ref:h,value:s,onChange:e=>i(e.target.value),onKeyDown:e=>{if("Enter"===e.key)e.preventDefault(),f();else if("ArrowUp"===e.key){if(e.preventDefault(),0===o.length)return;let t=-1===u?o.length-1:Math.max(0,u-1);m(t),i(o[t])}else if("ArrowDown"===e.key){if(e.preventDefault(),-1===u)return;let t=u+1;t>=o.length?(m(-1),i("")):(m(t),i(o[t]))}},spellCheck:!1,autoComplete:"off","aria-label":"command line",placeholder:"recall · scan · forget · consolidate · go · theme · help",className:"flex-1 bg-transparent text-[var(--cic-text)] outline-none placeholder:text-[var(--cic-text-faint)]"}),!s&&(0,t.jsx)("span",{className:"cli-cursor text-[var(--cic-cyan)]"}),(0,t.jsx)("kbd",{className:"shrink-0 rounded border border-[var(--cic-border)] px-1.5 text-xs text-[var(--cic-text-faint)]",children:"⌘K"})]})]})}let ei=M.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001",el=["▁","▂","▃","▄","▅","▆","▇","█"];function ec(e){if(0===e.length)return"";let t=Math.max(...e);return t<=0?el[0].repeat(e.length):e.map(e=>el[Math.round(Math.max(0,e)/t*(el.length-1))]).join("")}function eo(){let{memoryTrend:e,threatTrend:a}=function(){let{data:e}=(0,R.useQuery)({queryKey:["activity-trend"],queryFn:async()=>{let e=await (0,q.authFetch)(`${ei}/api/memories/activity`);if(!e.ok)throw Error("Failed to fetch activity");return e.json()},staleTime:3e5,refetchInterval:3e5}),t=new Date;t.setDate(t.getDate()-7);let a=t.toISOString(),{data:r}=(0,R.useQuery)({queryKey:["threat-trend"],queryFn:async()=>{let e=new URLSearchParams({firewallResult:"BLOCK",startTime:a,limit:"500"}),t=await (0,q.authFetch)(`${ei}/api/v1/audit?${e}`);if(!t.ok)throw Error("Failed to fetch audit logs");return t.json()},staleTime:3e5,refetchInterval:3e5}),s=[];for(let e=6;e>=0;e--){let t=new Date;t.setDate(t.getDate()-e),s.push(t.toISOString().slice(0,10))}let n=new Map;if(e?.activity)for(let t of e.activity)n.set(t.date,t.count);let i=s.map(e=>n.get(e)??0),l=new Map;if(r?.logs)for(let e of r.logs){let t=e.timestamp.slice(0,10);l.set(t,(l.get(t)??0)+1)}return{memoryTrend:i,threatTrend:s.map(e=>l.get(e)??0)}}();return(0,t.jsxs)("div",{className:"flex items-center gap-6 border-t border-[var(--cic-border)] bg-[var(--cic-surface)]/40 px-4 py-1 font-mono text-[11px] text-[var(--cic-text-faint)]",children:[(0,t.jsxs)("span",{className:"flex items-center gap-2",title:"memories created per day, last 7 days",children:[(0,t.jsx)("span",{children:"MEMORY·7d"}),(0,t.jsx)("span",{className:"cic-bloom tracking-tight text-[var(--cic-cyan)]",children:ec(e)||"·······"})]}),(0,t.jsxs)("span",{className:"flex items-center gap-2",title:"threats blocked per day, last 7 days",children:[(0,t.jsx)("span",{children:"THREAT·7d"}),(0,t.jsx)("span",{className:"cic-bloom tracking-tight text-[var(--cic-coral)]",children:ec(a)||"·······"})]})]})}function ed({children:e}){return(0,t.jsxs)("div",{className:"flex h-dvh w-full flex-col overflow-hidden bg-[var(--cic-void)] text-[var(--cic-text)]",children:[(0,t.jsx)(Q,{}),(0,t.jsxs)("div",{className:"flex min-h-0 flex-1",children:[(0,t.jsx)(Y,{}),(0,t.jsx)("main",{className:"min-w-0 flex-1 overflow-auto",children:e})]}),(0,t.jsx)(eo,{}),(0,t.jsx)(en,{})]})}function eu({children:e}){let[s,n]=(0,a.useState)(!1);(0,a.useEffect)(()=>n(!0),[]);let[i]=(0,r.useTheme)();return"terminal"===(s?i:"terminal")?(0,t.jsx)(ed,{children:e}):(0,t.jsxs)("div",{className:"flex h-dvh w-full overflow-hidden bg-[var(--sc-bg-deep)] text-[var(--sc-text-primary)]",children:[(0,t.jsx)(k,{}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,t.jsx)(_,{}),(0,t.jsx)(U,{}),(0,t.jsx)("main",{className:"min-w-0 flex-1 overflow-auto",children:e})]})]})}e.s(["ShellSwitch",()=>eu],51195)},24478,e=>{"use strict";var t=e.i(27493),a=e.i(48615),r=e.i(24590);function s(){let[e]=(0,r.useTheme)();return(0,t.jsx)(a.Toaster,{position:"bottom-right",toastOptions:{style:"glass"===e?{background:"var(--sc-bg-surface)",border:"1px solid var(--sc-border)",color:"var(--sc-text-primary)",fontFamily:"system-ui, sans-serif"}:{background:"var(--term-surface)",border:"1px solid var(--term-border)",color:"var(--term-text)",fontFamily:"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace",fontSize:"13px",borderRadius:"6px"}},theme:"dark"})}e.s(["ToastProvider",()=>s])},4167,e=>{"use strict";var t=e.i(4),a=e.i(48615),r=e.i(35372);let s=new Map;function n(){let e=(0,t.useCallback)(e=>{let t;if("defence_event"!==e.type)return;let r=e.data;if(!r||"ALLOW"===r.firewall_result)return;let n="BLOCK"===r.firewall_result,i=r.source_identifier||r.source_type||"unknown source",l=(t=function(e){if(Array.isArray(e))return e.filter(e=>"string"==typeof e);if("string"!=typeof e||!e.trim())return[];try{let t=JSON.parse(e);if(Array.isArray(t))return t.filter(e=>"string"==typeof e)}catch{return[e]}return[]}(r.threat_indicators)).length?t.slice(0,3).map(e=>e.replace(/_/g," ")).join(", "):"",c=r.reason?.trim()||(l?`Threats: ${l}`:"See audit log for details");if(function(e){let t=Date.now(),a=s.get(e);if(a&&t-a<2e3)return!0;if(s.set(e,t),s.size>50){let e=t-2e3;for(let[t,a]of s)a<e&&s.delete(t)}return!1}(`${r.firewall_result}:${i}:${(r.reason||"").slice(0,80)}`))return;let o=n?`\u{1F6E1} Blocked attack from ${i}`:`\u{26A0}\u{FE0F} Quarantined input from ${i}`,d={description:c,duration:n?8e3:5e3};n?a.toast.error(o,d):a.toast.warning(o,d)},[]);return(0,r.useWebSocketEvent)(e),null}e.s(["BlockToastBridge",()=>n])}]);