shieldcortex 4.12.14 → 4.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (386) hide show
  1. package/dashboard/.next/standalone/dashboard/.next/BUILD_ID +1 -1
  2. package/dashboard/.next/standalone/dashboard/.next/build-manifest.json +2 -2
  3. package/dashboard/.next/standalone/dashboard/.next/prerender-manifest.json +3 -3
  4. package/dashboard/.next/standalone/dashboard/.next/required-server-files.json +4 -4
  5. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/admin/page.js +1 -1
  6. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/admin/page.js.nft.json +1 -1
  7. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/admin/page_client-reference-manifest.js +1 -1
  8. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/cloud/page.js +1 -1
  9. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/cloud/page.js.nft.json +1 -1
  10. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/cloud/page_client-reference-manifest.js +1 -1
  11. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/capture/page.js +1 -1
  12. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/capture/page.js.nft.json +1 -1
  13. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/capture/page_client-reference-manifest.js +1 -1
  14. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/graph/page.js +1 -1
  15. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/graph/page.js.nft.json +1 -1
  16. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/graph/page_client-reference-manifest.js +1 -1
  17. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/page.js +1 -1
  18. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/page.js.nft.json +1 -1
  19. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/page_client-reference-manifest.js +1 -1
  20. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/recall/page.js +1 -1
  21. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/recall/page.js.nft.json +1 -1
  22. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/recall/page_client-reference-manifest.js +1 -1
  23. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page.js +1 -1
  24. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page.js.nft.json +1 -1
  25. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page_client-reference-manifest.js +1 -1
  26. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/timeline/page.js +1 -1
  27. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/timeline/page.js.nft.json +1 -1
  28. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/timeline/page_client-reference-manifest.js +1 -1
  29. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/overview/page.js +1 -1
  30. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/overview/page.js.nft.json +1 -1
  31. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/overview/page_client-reference-manifest.js +1 -1
  32. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/audit/page.js +1 -1
  33. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/audit/page.js.nft.json +1 -1
  34. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/audit/page_client-reference-manifest.js +1 -1
  35. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/intercepts/page.js +1 -1
  36. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/intercepts/page.js.nft.json +1 -1
  37. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/intercepts/page_client-reference-manifest.js +1 -1
  38. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/iron-dome/page.js +1 -1
  39. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/iron-dome/page.js.nft.json +1 -1
  40. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/iron-dome/page_client-reference-manifest.js +1 -1
  41. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/page.js +1 -1
  42. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/page.js.nft.json +1 -1
  43. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/page_client-reference-manifest.js +1 -1
  44. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/policies/page.js +1 -1
  45. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/policies/page.js.nft.json +1 -1
  46. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/policies/page_client-reference-manifest.js +1 -1
  47. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/quarantine/page.js +1 -1
  48. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/quarantine/page.js.nft.json +1 -1
  49. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/quarantine/page_client-reference-manifest.js +1 -1
  50. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/settings/page.js +1 -1
  51. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  52. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  53. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/page.js +1 -1
  54. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/page.js.nft.json +1 -1
  55. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/page_client-reference-manifest.js +1 -1
  56. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/xray/page.js +1 -1
  57. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/xray/page.js.nft.json +1 -1
  58. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/xray/page_client-reference-manifest.js +1 -1
  59. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page.js +1 -1
  60. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page.js.nft.json +1 -1
  61. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page_client-reference-manifest.js +1 -1
  62. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error/page.js.nft.json +1 -1
  63. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  64. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.html +2 -2
  65. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.rsc +1 -1
  66. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  67. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  68. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  69. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  70. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  71. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found/page.js.nft.json +1 -1
  72. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  73. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.html +1 -1
  74. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.rsc +2 -2
  75. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  76. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  77. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  78. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  79. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  80. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  81. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.html +1 -1
  82. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.rsc +17 -15
  83. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/!KGRhc2hib2FyZCk/admin/__PAGE__.segment.rsc +1 -1
  84. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/!KGRhc2hib2FyZCk/admin.segment.rsc +1 -1
  85. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  86. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_full.segment.rsc +17 -15
  87. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_head.segment.rsc +1 -1
  88. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_index.segment.rsc +2 -2
  89. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_tree.segment.rsc +2 -2
  90. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.html +1 -1
  91. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.rsc +17 -15
  92. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/!KGRhc2hib2FyZCk/cloud/__PAGE__.segment.rsc +1 -1
  93. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/!KGRhc2hib2FyZCk/cloud.segment.rsc +1 -1
  94. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  95. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_full.segment.rsc +17 -15
  96. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_head.segment.rsc +1 -1
  97. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_index.segment.rsc +2 -2
  98. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_tree.segment.rsc +2 -2
  99. package/dashboard/.next/standalone/dashboard/.next/server/app/index.html +1 -1
  100. package/dashboard/.next/standalone/dashboard/.next/server/app/index.rsc +2 -2
  101. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  102. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_full.segment.rsc +2 -2
  103. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_head.segment.rsc +1 -1
  104. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_index.segment.rsc +2 -2
  105. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  106. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.html +1 -1
  107. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.rsc +17 -15
  108. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory/capture/__PAGE__.segment.rsc +1 -1
  109. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory/capture.segment.rsc +1 -1
  110. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  111. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  112. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_full.segment.rsc +17 -15
  113. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_head.segment.rsc +1 -1
  114. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_index.segment.rsc +2 -2
  115. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_tree.segment.rsc +2 -2
  116. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.html +1 -1
  117. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.rsc +17 -15
  118. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory/graph/__PAGE__.segment.rsc +1 -1
  119. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory/graph.segment.rsc +1 -1
  120. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  121. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  122. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_full.segment.rsc +17 -15
  123. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_head.segment.rsc +1 -1
  124. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_index.segment.rsc +2 -2
  125. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_tree.segment.rsc +2 -2
  126. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.html +1 -1
  127. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.rsc +17 -15
  128. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory/recall/__PAGE__.segment.rsc +1 -1
  129. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory/recall.segment.rsc +1 -1
  130. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  131. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  132. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_full.segment.rsc +17 -15
  133. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_head.segment.rsc +1 -1
  134. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_index.segment.rsc +2 -2
  135. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_tree.segment.rsc +2 -2
  136. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.html +1 -1
  137. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.rsc +17 -15
  138. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory/review/__PAGE__.segment.rsc +1 -1
  139. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory/review.segment.rsc +1 -1
  140. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  141. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  142. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_full.segment.rsc +17 -15
  143. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_head.segment.rsc +1 -1
  144. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_index.segment.rsc +2 -2
  145. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_tree.segment.rsc +2 -2
  146. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.html +1 -1
  147. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.rsc +17 -15
  148. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory/timeline/__PAGE__.segment.rsc +1 -1
  149. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory/timeline.segment.rsc +1 -1
  150. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  151. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  152. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_full.segment.rsc +17 -15
  153. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_head.segment.rsc +1 -1
  154. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_index.segment.rsc +2 -2
  155. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_tree.segment.rsc +2 -2
  156. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.html +1 -1
  157. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.rsc +21 -18
  158. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk/memory/__PAGE__.segment.rsc +2 -2
  159. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  160. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  161. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_full.segment.rsc +21 -18
  162. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_head.segment.rsc +1 -1
  163. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_index.segment.rsc +2 -2
  164. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_tree.segment.rsc +2 -2
  165. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.html +1 -1
  166. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.rsc +20 -18
  167. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk/overview/__PAGE__.segment.rsc +2 -2
  168. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk/overview.segment.rsc +1 -1
  169. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  170. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_full.segment.rsc +20 -18
  171. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_head.segment.rsc +1 -1
  172. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_index.segment.rsc +2 -2
  173. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_tree.segment.rsc +2 -2
  174. package/dashboard/.next/standalone/dashboard/.next/server/app/page.js.nft.json +1 -1
  175. package/dashboard/.next/standalone/dashboard/.next/server/app/page_client-reference-manifest.js +1 -1
  176. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.html +1 -1
  177. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.rsc +17 -15
  178. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection/audit/__PAGE__.segment.rsc +1 -1
  179. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection/audit.segment.rsc +1 -1
  180. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  181. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  182. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_full.segment.rsc +17 -15
  183. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_head.segment.rsc +1 -1
  184. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_index.segment.rsc +2 -2
  185. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_tree.segment.rsc +2 -2
  186. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.html +1 -1
  187. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.rsc +17 -15
  188. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection/intercepts/__PAGE__.segment.rsc +1 -1
  189. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection/intercepts.segment.rsc +1 -1
  190. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  191. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  192. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_full.segment.rsc +17 -15
  193. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_head.segment.rsc +1 -1
  194. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_index.segment.rsc +2 -2
  195. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_tree.segment.rsc +2 -2
  196. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.html +1 -1
  197. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.rsc +17 -15
  198. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection/iron-dome/__PAGE__.segment.rsc +1 -1
  199. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection/iron-dome.segment.rsc +1 -1
  200. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  201. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  202. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_full.segment.rsc +17 -15
  203. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_head.segment.rsc +1 -1
  204. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_index.segment.rsc +2 -2
  205. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_tree.segment.rsc +2 -2
  206. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.html +1 -1
  207. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.rsc +17 -15
  208. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection/policies/__PAGE__.segment.rsc +1 -1
  209. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection/policies.segment.rsc +1 -1
  210. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  211. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  212. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_full.segment.rsc +17 -15
  213. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_head.segment.rsc +1 -1
  214. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_index.segment.rsc +2 -2
  215. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_tree.segment.rsc +2 -2
  216. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.html +1 -1
  217. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.rsc +17 -15
  218. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection/quarantine/__PAGE__.segment.rsc +1 -1
  219. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection/quarantine.segment.rsc +1 -1
  220. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  221. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  222. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_full.segment.rsc +17 -15
  223. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_head.segment.rsc +1 -1
  224. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_index.segment.rsc +2 -2
  225. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_tree.segment.rsc +2 -2
  226. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.html +1 -1
  227. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.rsc +17 -15
  228. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk/protection/__PAGE__.segment.rsc +2 -2
  229. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  230. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  231. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_full.segment.rsc +17 -15
  232. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_head.segment.rsc +1 -1
  233. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_index.segment.rsc +2 -2
  234. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_tree.segment.rsc +2 -2
  235. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.html +1 -1
  236. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.rsc +17 -15
  237. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings/__PAGE__.segment.rsc +2 -2
  238. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings.segment.rsc +1 -1
  239. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  240. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_full.segment.rsc +17 -15
  241. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  242. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  243. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  244. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.html +1 -1
  245. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.rsc +17 -15
  246. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain/xray/__PAGE__.segment.rsc +1 -1
  247. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain/xray.segment.rsc +1 -1
  248. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain.segment.rsc +1 -1
  249. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  250. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_full.segment.rsc +17 -15
  251. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_head.segment.rsc +1 -1
  252. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_index.segment.rsc +2 -2
  253. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_tree.segment.rsc +2 -2
  254. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.html +1 -1
  255. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.rsc +17 -15
  256. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk/supply-chain/__PAGE__.segment.rsc +1 -1
  257. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk/supply-chain.segment.rsc +1 -1
  258. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  259. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_full.segment.rsc +17 -15
  260. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_head.segment.rsc +1 -1
  261. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_index.segment.rsc +2 -2
  262. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_tree.segment.rsc +2 -2
  263. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.html +1 -1
  264. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.rsc +17 -15
  265. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk/xray/__PAGE__.segment.rsc +2 -2
  266. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk/xray.segment.rsc +1 -1
  267. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  268. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_full.segment.rsc +17 -15
  269. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_head.segment.rsc +1 -1
  270. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_index.segment.rsc +2 -2
  271. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_tree.segment.rsc +2 -2
  272. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/9f1d4_@tanstack_68dcbde9._.js +3 -0
  273. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/{[root-of-the-server]__fb5796ae._.js → [root-of-the-server]__2de25d56._.js} +2 -2
  274. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__52bd7a9f._.js +3 -0
  275. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/{[root-of-the-server]__b789489c._.js → [root-of-the-server]__6f881a23._.js} +2 -2
  276. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_01f6ceb0._.js +1 -1
  277. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_20c6acea._.js +3 -0
  278. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/{9f1d4_next_c9fe89e1._.js → dashboard_25b568c3._.js} +2 -2
  279. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_2a8eef6b._.js +3 -0
  280. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_35a9932a._.js +1 -1
  281. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_37f17371._.js +1 -1
  282. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_77cb2b63._.js +3 -0
  283. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_91003e6d._.js +3 -0
  284. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_9b8695d8._.js +3 -0
  285. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_a16ef10a._.js +3 -0
  286. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_c219bf07._.js +4 -4
  287. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_f9cd1dc2._.js +3 -0
  288. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_fefd3b85._.js +1 -1
  289. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_44a9f72c._.js +3 -0
  290. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_components_de7ac4f9._.js +3 -0
  291. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_components_protection_ProtectionOverview_tsx_54554a97._.js +3 -3
  292. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_components_settings_SettingsView_tsx_16dc83a7._.js +1 -1
  293. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_components_xray_XRayOverview_tsx_ceba698e._.js +1 -1
  294. package/dashboard/.next/standalone/dashboard/.next/server/pages/404.html +1 -1
  295. package/dashboard/.next/standalone/dashboard/.next/server/pages/500.html +2 -2
  296. package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.js +1 -1
  297. package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.json +1 -1
  298. package/dashboard/.next/standalone/dashboard/.next/static/chunks/015dc64369f26b7d.css +3 -0
  299. package/dashboard/.next/standalone/dashboard/.next/static/chunks/2fe84829530e61a3.js +1 -0
  300. package/dashboard/.next/standalone/dashboard/.next/static/chunks/34d0309a4e34b084.js +1 -0
  301. package/dashboard/.next/standalone/dashboard/.next/static/chunks/3729c748a4361c1f.js +1 -0
  302. package/dashboard/.next/standalone/dashboard/.next/static/chunks/3b7fdf1ee828254c.js +1 -0
  303. package/dashboard/.next/standalone/dashboard/.next/static/chunks/{3d53807a9a943ce7.js → 4c90ebd2c08cd656.js} +4 -4
  304. package/dashboard/.next/standalone/dashboard/.next/static/chunks/4d4af0cecaef56f2.js +1 -0
  305. package/dashboard/.next/standalone/dashboard/.next/static/chunks/4eb86dc2f379d3ca.js +1 -0
  306. package/dashboard/.next/standalone/dashboard/.next/static/chunks/6aba18b7aac42ccd.js +1 -0
  307. package/dashboard/.next/standalone/dashboard/.next/static/chunks/{b4b3fb5729bead7e.js → 6ea97c8dc9e30ea5.js} +1 -1
  308. package/dashboard/.next/standalone/dashboard/.next/static/chunks/74ea1a87751e93a3.js +1 -0
  309. package/dashboard/.next/standalone/dashboard/.next/static/chunks/910628c23329a773.js +1 -0
  310. package/dashboard/.next/standalone/dashboard/.next/static/chunks/{c288964c4c00982a.js → b308a787e8cbc2a9.js} +3 -3
  311. package/dashboard/.next/standalone/dashboard/.next/static/chunks/bdb50889a1c1ab37.js +1 -0
  312. package/dashboard/.next/standalone/dashboard/.next/static/chunks/d0bf5ccba09917dd.js +1 -0
  313. package/dashboard/.next/standalone/dashboard/.next/static/chunks/e804a1fda2839550.js +1 -0
  314. package/dashboard/.next/standalone/dashboard/server.js +1 -1
  315. package/dist/api/routes/digest.d.ts +59 -0
  316. package/dist/api/routes/digest.js +305 -0
  317. package/dist/api/routes/memories.js +84 -15
  318. package/dist/api/routes/system.js +10 -2
  319. package/dist/api/visualization-server.js +2 -0
  320. package/dist/cli/doctor.d.ts +27 -0
  321. package/dist/cli/doctor.js +88 -0
  322. package/dist/cli/migrate-legacy.d.ts +28 -0
  323. package/dist/cli/migrate-legacy.js +291 -0
  324. package/dist/cloud/cli.js +2 -2
  325. package/dist/database/init.js +26 -1
  326. package/dist/index.js +8 -1
  327. package/dist/memory/backup.d.ts +19 -0
  328. package/dist/memory/backup.js +47 -0
  329. package/dist/memory/dedupe-runner.d.ts +33 -0
  330. package/dist/memory/dedupe-runner.js +103 -0
  331. package/dist/memory/fts.d.ts +26 -0
  332. package/dist/memory/fts.js +59 -0
  333. package/dist/memory/lifecycle.d.ts +83 -0
  334. package/dist/memory/lifecycle.js +274 -0
  335. package/dist/memory/links.d.ts +63 -0
  336. package/dist/memory/links.js +232 -0
  337. package/dist/memory/prune.d.ts +34 -0
  338. package/dist/memory/prune.js +76 -0
  339. package/dist/memory/search-recall.d.ts +48 -0
  340. package/dist/memory/search-recall.js +367 -0
  341. package/dist/memory/store.d.ts +6 -121
  342. package/dist/memory/store.js +45 -854
  343. package/dist/setup/claude-md.d.ts +1 -0
  344. package/dist/setup/deep-clean.d.ts +33 -0
  345. package/dist/setup/deep-clean.js +26 -0
  346. package/dist/setup/doctor.js +7 -2
  347. package/dist/setup/settings-hooks.d.ts +1 -0
  348. package/dist/setup/settings-hooks.js +30 -5
  349. package/dist/setup/status.js +39 -0
  350. package/hooks/openclaw/cortex-memory/runtime.mjs +18 -4
  351. package/package.json +1 -1
  352. package/plugins/openclaw/dist/index.js +12 -6
  353. package/plugins/openclaw/dist/openclaw.plugin.json +1 -1
  354. package/scripts/lib/auto-memory-config.mjs +45 -0
  355. package/scripts/lib/telemetry.mjs +58 -0
  356. package/scripts/lib/transcript-reader.mjs +123 -0
  357. package/scripts/postinstall.mjs +47 -1
  358. package/scripts/pre-compact-hook.mjs +76 -124
  359. package/scripts/session-end-hook.mjs +102 -97
  360. package/scripts/stop-hook.mjs +346 -116
  361. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/9f1d4_@tanstack_785e068c._.js +0 -3
  362. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__c2b92077._.js +0 -3
  363. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_11878109._.js +0 -3
  364. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_35c9f22e._.js +0 -3
  365. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_836b4a04._.js +0 -3
  366. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_9770c429._.js +0 -3
  367. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_9dd626ed._.js +0 -3
  368. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_e94d2da2._.js +0 -3
  369. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_564ea5ae._.js +0 -3
  370. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_lib_3f1490a1._.js +0 -3
  371. package/dashboard/.next/standalone/dashboard/.next/static/chunks/079a5be036130e37.js +0 -1
  372. package/dashboard/.next/standalone/dashboard/.next/static/chunks/1770a8ce7abb2437.js +0 -1
  373. package/dashboard/.next/standalone/dashboard/.next/static/chunks/1a074f8ddc7cd385.js +0 -1
  374. package/dashboard/.next/standalone/dashboard/.next/static/chunks/24da99d1341bd573.css +0 -3
  375. package/dashboard/.next/standalone/dashboard/.next/static/chunks/2aa8afb655c1c2e5.js +0 -1
  376. package/dashboard/.next/standalone/dashboard/.next/static/chunks/302ad459a0e5c4ba.js +0 -1
  377. package/dashboard/.next/standalone/dashboard/.next/static/chunks/385ec610bad1acc5.js +0 -1
  378. package/dashboard/.next/standalone/dashboard/.next/static/chunks/4f57582c2d186438.js +0 -1
  379. package/dashboard/.next/standalone/dashboard/.next/static/chunks/52843253e4b833a5.js +0 -1
  380. package/dashboard/.next/standalone/dashboard/.next/static/chunks/7fca141efba9d353.js +0 -1
  381. package/dashboard/.next/standalone/dashboard/.next/static/chunks/8593e1796c9d043d.js +0 -1
  382. package/dashboard/.next/standalone/dashboard/.next/static/chunks/cbc2e6ffcad6e91c.js +0 -1
  383. package/dashboard/.next/standalone/dashboard/.next/static/chunks/fced7dd3c9874ed1.js +0 -1
  384. /package/dashboard/.next/standalone/dashboard/.next/static/{P2sW3M-qHaW9VS9YwCEg3 → kiA_iEHG_1wWOEYFsD0Tj}/_buildManifest.js +0 -0
  385. /package/dashboard/.next/standalone/dashboard/.next/static/{P2sW3M-qHaW9VS9YwCEg3 → kiA_iEHG_1wWOEYFsD0Tj}/_clientMiddlewareManifest.json +0 -0
  386. /package/dashboard/.next/standalone/dashboard/.next/static/{P2sW3M-qHaW9VS9YwCEg3 → kiA_iEHG_1wWOEYFsD0Tj}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,42424,e=>{"use strict";var t=e.i(27493),s=e.i(16871),r=e.i(4),a=e.i(53615),c=e.i(24929);let n=(0,c.default)("cloud",[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]]),i=(0,c.default)("credit-card",[["rect",{width:"20",height:"14",x:"2",y:"5",rx:"2",key:"ynyp8z"}],["line",{x1:"2",x2:"22",y1:"10",y2:"10",key:"1b3vmo"}]]),l=(0,c.default)("plug",[["path",{d:"M12 22v-5",key:"1ega77"}],["path",{d:"M15 8V2",key:"18g5xt"}],["path",{d:"M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z",key:"1xoxul"}],["path",{d:"M9 8V2",key:"14iosj"}]]);var d=e.i(54130),o=e.i(40950),x=e.i(16467),u=e.i(95659),m=e.i(81523),p=e.i(18509),v=e.i(15771),h=e.i(19331),y=e.i(7571),g=e.i(84012);let b=(0,c.default)("key-round",[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]);var j=e.i(67307);let f=(0,c.default)("server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);var N=e.i(51069),w=e.i(45688),k=e.i(71921),C=e.i(1235),S=e.i(88969);let E=[],A="http://localhost:3001";function M(){return(0,w.useQuery)({queryKey:["cloud-config"],queryFn:async()=>{var e;let t,s,r=await (0,S.authFetch)(`${A}/api/cloud/config`);if(!r.ok)throw Error(await (0,S.readApiError)(r,"Failed to fetch cloud config"));return t=(e=await r.json()).syncControls&&"object"==typeof e.syncControls?e.syncControls:{},s=e.openclawMemory&&"object"==typeof e.openclawMemory?e.openclawMemory:{},{enabled:!!e.enabled,apiKeySet:!!e.apiKeySet,baseUrl:"string"==typeof e.baseUrl?e.baseUrl:"https://api.shieldcortex.ai",syncControls:{projectMode:"projectMode"in t&&("include"===t.projectMode||"exclude"===t.projectMode)?t.projectMode:"all",projects:Array.isArray(t.projects)?t.projects.filter(e=>"string"==typeof e):E,contentMode:"contentMode"in t&&"metadata"===t.contentMode?"metadata":"full",excludeSensitive:"excludeSensitive"in t&&!!t.excludeSensitive},openclawMemory:{autoMemory:"autoMemory"in s&&!!s.autoMemory,dedupe:"dedupe"in s&&!!s.dedupe,noveltyThreshold:"noveltyThreshold"in s&&"number"==typeof s.noveltyThreshold?s.noveltyThreshold:.88,maxRecent:"maxRecent"in s&&"number"==typeof s.maxRecent?s.maxRecent:300}}},refetchInterval:3e4})}let q="http://localhost:3001",T=[];function $(){return(0,w.useQuery)({queryKey:["cloud-sync-status"],queryFn:async()=>{var e;let t,s,r,a,c=await (0,S.authFetch)(`${q}/api/cloud/sync-status`);if(!c.ok)throw Error(await (0,S.readApiError)(c,"Failed to fetch sync status"));return t=(e=await c.json()).controls&&"object"==typeof e.controls?e.controls:{},r="byKind"in(s=e.queue&&"object"==typeof e.queue?e.queue:{})&&s.byKind&&"object"==typeof s.byKind?s.byKind:{},a=e=>({pending:Number(r[e]?.pending??0),failed:Number(r[e]?.failed??0),synced:Number(r[e]?.synced??0)}),{enabled:!!e.enabled,apiKeySet:!!e.apiKeySet,baseUrl:"string"==typeof e.baseUrl?e.baseUrl:"https://api.shieldcortex.ai",featureEnabled:!!e.featureEnabled,requiredTier:"pro"===e.requiredTier||"team"===e.requiredTier||"enterprise"===e.requiredTier?e.requiredTier:"free",controls:{projectMode:"projectMode"in t&&("include"===t.projectMode||"exclude"===t.projectMode)?t.projectMode:"all",projects:Array.isArray(t.projects)?t.projects.filter(e=>"string"==typeof e):T,contentMode:"contentMode"in t&&"metadata"===t.contentMode?"metadata":"full",excludeSensitive:"excludeSensitive"in t&&!!t.excludeSensitive},lastSyncAt:"string"==typeof e.lastSyncAt||null===e.lastSyncAt?e.lastSyncAt??null:null,device:{id:e.device&&"object"==typeof e.device&&"id"in e.device&&"string"==typeof e.device.id?e.device.id:"unknown",name:e.device&&"object"==typeof e.device&&"name"in e.device&&"string"==typeof e.device.name?e.device.name:"Unknown device",platform:e.device&&"object"==typeof e.device&&"platform"in e.device&&"string"==typeof e.device.platform?e.device.platform:"unknown"},queue:{pending:Number(s.pending??0),failed:Number(s.failed??0),synced:Number(s.synced??0),byKind:{audit:a("audit"),quarantine:a("quarantine"),memory:a("memory"),graph:a("graph"),unknown:a("unknown")},oldestPendingAt:"string"==typeof s.oldestPendingAt||null===s.oldestPendingAt?s.oldestPendingAt??null:null,nextRetryAt:"string"==typeof s.nextRetryAt||null===s.nextRetryAt?s.nextRetryAt??null:null,lastError:"string"==typeof s.lastError||null===s.lastError?s.lastError??null:null,lastErrorKind:"audit"===s.lastErrorKind||"quarantine"===s.lastErrorKind||"memory"===s.lastErrorKind||"graph"===s.lastErrorKind||"unknown"===s.lastErrorKind?s.lastErrorKind:null,latestFailureAt:"string"==typeof s.latestFailureAt||null===s.latestFailureAt?s.latestFailureAt??null:null}}},refetchInterval:3e4,staleTime:15e3})}var P=e.i(63312),R=e.i(50279);function F(e){let t=Math.max(0,Math.floor((Date.now()-new Date(e).getTime())/1e3));if(t<60)return`${t}s ago`;let s=Math.floor(t/60);if(s<60)return`${s}m ago`;let r=Math.floor(s/60);if(r<24)return`${r}h ago`;let a=Math.floor(r/24);return`${a}d ago`}function L(e){let t=Math.max(0,Math.floor((new Date(e).getTime()-Date.now())/1e3));if(t<60)return`in ${t}s`;let s=Math.floor(t/60);if(s<60)return`in ${s}m`;let r=Math.floor(s/60);if(r<24)return`in ${r}h`;let a=Math.floor(r/24);return`in ${a}d`}function K(){var e;let{data:s,isLoading:r}=$(),{data:a}=(0,P.useLicenseStatus)();if(r||!s)return null;let c="border-[var(--sc-border)] bg-[var(--sc-bg-surface)]/70 text-[var(--sc-text-primary)]",i="Cloud sync disabled",l="Enable cloud sync and activate a Team licence to start replicating local data.",d=n;(e=s.lastSyncAt)&&(Date.now(),new Date(e).getTime());let o=s.queue.byKind.memory.pending+s.queue.byKind.graph.pending,x=s.queue.byKind.memory.failed+s.queue.byKind.graph.failed,u=s.queue.byKind.audit.failed+s.queue.byKind.quarantine.failed+s.queue.byKind.unknown.failed;return s.enabled&&s.apiKeySet&&!s.featureEnabled?(c="border-[var(--sc-amber)]/30 bg-[var(--sc-amber)]/10 text-[var(--sc-amber)]",i="Cloud configured but licence locked",l=`Cloud sync requires the ${R.TIER_LABELS[s.requiredTier]} tier. Current tier: ${R.TIER_LABELS[a?.tier??"free"]}.`,d=b):s.enabled&&s.apiKeySet&&o>0&&x>0?(c="border-[var(--sc-coral)]/30 bg-[var(--sc-coral)]/10 text-[var(--sc-coral)]",i="Cloud sync needs attention",l=s.queue.lastError??"One or more queued sync jobs are failing.",d=N.ShieldAlert):s.enabled&&s.apiKeySet&&x>0?(c="border-[var(--sc-amber)]/30 bg-[var(--sc-amber)]/10 text-[var(--sc-amber)]",i=`${x} failed sync job${1===x?"":"s"} need clearing`,l=s.queue.lastError?`${s.queue.lastError}${s.queue.latestFailureAt?` Last failure ${F(s.queue.latestFailureAt)}.`:""}`:"These items exhausted retries and won't sync automatically. Clear them or investigate the cause.",d=p.AlertTriangle):s.enabled&&s.apiKeySet&&o>0?(c="border-[var(--sc-amber)]/30 bg-[var(--sc-amber)]/10 text-[var(--sc-amber)]",i="Cloud sync is catching up",l=s.queue.nextRetryAt?`Next retry ${L(s.queue.nextRetryAt)}.`:"Queued jobs are waiting to flush.",d=j.RefreshCw):s.enabled&&s.apiKeySet&&(c="border-[var(--sc-cyan)]/30 bg-[var(--sc-cyan)]/10 text-[var(--sc-cyan)]",i="Cloud sync healthy",l=s.lastSyncAt?`Last successful sync ${F(s.lastSyncAt)}.`:"Connected and ready to sync.",u>0&&(l+=` Auxiliary audit/quarantine history: ${u} failed job${1===u?"":"s"}.`),d=v.CheckCircle2),(0,t.jsx)("div",{className:`rounded-2xl border p-4 ${c}`,children:(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[(0,t.jsx)(d,{size:18,className:"mt-0.5 shrink-0"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-sm font-semibold",children:i}),(0,t.jsx)("p",{className:"mt-1 text-sm opacity-90",children:l})]})]}),x>0&&0===o&&(0,t.jsx)(_,{})]})})}function I({label:e,value:s,detail:r,icon:a}){return(0,t.jsxs)("div",{className:"glass-card p-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-xs uppercase tracking-[0.2em] text-[var(--sc-text-muted)]",children:e}),(0,t.jsx)(a,{size:15,className:"text-[var(--sc-text-muted)]"})]}),(0,t.jsx)("div",{className:"mt-2 text-2xl font-semibold text-[var(--sc-text-primary)]",children:s}),(0,t.jsx)("div",{className:"mt-1 text-xs text-[var(--sc-text-secondary)]",children:r})]})}function z({label:e,pending:s,failed:r,synced:a}){return(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-3",children:[(0,t.jsx)("div",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:e}),(0,t.jsxs)("div",{className:"mt-3 grid grid-cols-3 gap-2 text-xs",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-[var(--sc-text-muted)]",children:"Pending"}),(0,t.jsx)("div",{className:"mt-1 font-semibold text-[var(--sc-amber)]",children:s})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-[var(--sc-text-muted)]",children:"Failed"}),(0,t.jsx)("div",{className:"mt-1 font-semibold text-[var(--sc-coral)]",children:r})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-[var(--sc-text-muted)]",children:"Synced"}),(0,t.jsx)("div",{className:"mt-1 font-semibold text-[var(--sc-cyan)]",children:a})]})]})]})}function O(){let e,{data:s}=M(),{data:a}=(0,w.useQuery)({queryKey:["cloud-projects"],queryFn:async()=>{let e=await (0,S.authFetch)(`${A}/api/cloud/projects`);if(!e.ok)throw Error(await (0,S.readApiError)(e,"Failed to fetch cloud projects"));return e.json()},staleTime:3e4}),c=(e=(0,C.useQueryClient)(),(0,k.useMutation)({mutationFn:async e=>{let t=await (0,S.authFetch)(`${A}/api/cloud/config`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error(await (0,S.readApiError)(t,"Failed to update cloud config"));return t.json()},onSuccess:()=>{e.invalidateQueries({queryKey:["cloud-config"]}),e.invalidateQueries({queryKey:["cloud-sync-status"]})}})),[n,i]=(0,r.useState)(null),l=a?.projects??[],d=n??s?.syncControls??{projectMode:"all",projects:[],contentMode:"full",excludeSensitive:!1},o="all"!==d.projectMode,[x,u]=(0,r.useState)("idle");async function m(){try{await c.mutateAsync({cloudSyncProjectMode:d.projectMode,cloudSyncProjects:d.projects,cloudSyncContentMode:d.contentMode,cloudSyncExcludeSensitive:d.excludeSensitive}),i(null),u("saved"),setTimeout(()=>u("idle"),2e3)}catch{u("error"),setTimeout(()=>u("idle"),3e3)}}return(0,t.jsxs)("div",{className:"glass-card-strong p-5",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Sync Controls"}),(0,t.jsx)("p",{className:"mt-1 text-sm text-[var(--sc-text-secondary)]",children:"Decide what leaves this device before it hits the cloud replica."})]}),(0,t.jsx)("button",{type:"button",onClick:()=>void m(),disabled:c.isPending,className:`rounded-lg border px-3 py-2 text-sm font-medium transition disabled:cursor-not-allowed disabled:opacity-50 ${"saved"===x?"border-[var(--sc-cyan)]/50 bg-[var(--sc-cyan)]/20 text-[var(--sc-cyan)]":"error"===x?"border-[var(--sc-coral)]/50 bg-[var(--sc-coral)]/20 text-[var(--sc-coral)]":"border-[var(--sc-cyan)]/30 bg-[var(--sc-cyan)]/10 text-[var(--sc-cyan)] hover:bg-[var(--sc-cyan)]/20"}`,children:c.isPending?"Saving...":"saved"===x?"✓ Saved":"error"===x?"Failed to save":"Save controls"})]}),(0,t.jsxs)("div",{className:"mt-5 grid gap-4",children:[(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4",children:[(0,t.jsx)("div",{className:"text-xs uppercase tracking-[0.2em] text-[var(--sc-text-muted)]",children:"Content mode"}),(0,t.jsxs)("div",{className:"mt-2 flex flex-wrap gap-2 text-[11px] text-[var(--sc-text-secondary)]",children:[(0,t.jsx)("span",{className:"rounded-full border border-[var(--sc-border)] bg-[var(--sc-bg-surface)]/60 px-2.5 py-1",children:"metadata"===d.contentMode?"Metadata only":"Full content"}),(0,t.jsxs)("span",{className:"rounded-full border border-[var(--sc-border)] bg-[var(--sc-bg-surface)]/60 px-2.5 py-1",children:["Sensitive filter ",d.excludeSensitive?"on":"off"]})]}),(0,t.jsxs)("div",{className:"mt-3 grid gap-2 md:grid-cols-2",children:[(0,t.jsxs)("label",{className:`rounded-lg border p-3 text-sm ${"full"===d.contentMode?"border-[var(--sc-cyan)]/40 bg-[var(--sc-cyan)]/10 text-[var(--sc-cyan)]":"border-[var(--sc-border)] text-[var(--sc-text-primary)]"}`,children:[(0,t.jsx)("input",{type:"radio",className:"mr-2",checked:"full"===d.contentMode,onChange:()=>i(e=>({...e??d,contentMode:"full"}))}),"Full content",(0,t.jsx)("div",{className:"mt-1 text-xs text-[var(--sc-text-secondary)]",children:"Titles and memory bodies replicate to cloud."})]}),(0,t.jsxs)("label",{className:`rounded-lg border p-3 text-sm ${"metadata"===d.contentMode?"border-[var(--sc-cyan)]/40 bg-[var(--sc-cyan)]/10 text-[var(--sc-cyan)]":"border-[var(--sc-border)] text-[var(--sc-text-primary)]"}`,children:[(0,t.jsx)("input",{type:"radio",className:"mr-2",checked:"metadata"===d.contentMode,onChange:()=>i(e=>({...e??d,contentMode:"metadata"}))}),"Metadata only",(0,t.jsx)("div",{className:"mt-1 text-xs text-[var(--sc-text-secondary)]",children:"Projects, tags, salience, and graph remain; body content is redacted."})]})]})]}),(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4",children:[(0,t.jsx)("div",{className:"text-xs uppercase tracking-[0.2em] text-[var(--sc-text-muted)]",children:"Project scope"}),(0,t.jsx)("div",{className:"mt-3 flex flex-wrap gap-2",children:["all","include","exclude"].map(e=>(0,t.jsx)("button",{type:"button",onClick:()=>i(t=>({...t??d,projectMode:e})),className:`rounded-full border px-3 py-1.5 text-xs font-medium uppercase tracking-wide ${d.projectMode===e?"border-[var(--sc-cyan)]/40 bg-[var(--sc-cyan)]/10 text-[var(--sc-cyan)]":"border-[var(--sc-border)] bg-[var(--sc-bg-surface)]/60 text-[var(--sc-text-primary)]"}`,children:e},e))}),(0,t.jsx)("p",{className:"mt-3 text-xs text-[var(--sc-text-secondary)]",children:"all"===d.projectMode?"All local projects are eligible for sync.":"include"===d.projectMode?"Only the selected projects will sync.":"Selected projects stay local-only."}),o&&(0,t.jsxs)("details",{className:"mt-3 rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-surface)]/40 p-3",children:[(0,t.jsxs)("summary",{className:"cursor-pointer list-none text-sm font-medium text-[var(--sc-text-primary)]",children:["Choose projects ",d.projects.length>0?`(${d.projects.length} selected)`:""]}),(0,t.jsx)("div",{className:"mt-3 max-h-48 overflow-y-auto",children:0===l.length?(0,t.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)]",children:"No named projects found in local memory yet."}):(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:l.map(e=>{let s=d.projects.includes(e.project);return(0,t.jsxs)("button",{type:"button",onClick:()=>{var t;return t=e.project,void i(e=>{let s=e??d,r=s.projects.includes(t)?s.projects.filter(e=>e!==t):[...s.projects,t].sort((e,t)=>e.localeCompare(t));return{...s,projects:r}})},className:`rounded-full border px-3 py-1.5 text-xs ${s?"border-[var(--sc-cyan)]/40 bg-[var(--sc-cyan)]/10 text-[var(--sc-cyan)]":"border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 text-[var(--sc-text-primary)]"}`,children:[e.project," ",(0,t.jsxs)("span",{className:"text-[var(--sc-text-muted)]",children:["(",e.count,")"]})]},e.project)})})})]})]}),(0,t.jsxs)("label",{className:"flex items-start gap-3 rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4 text-sm text-[var(--sc-text-primary)]",children:[(0,t.jsx)("input",{type:"checkbox",className:"mt-0.5",checked:d.excludeSensitive,onChange:e=>i(t=>({...t??d,excludeSensitive:e.target.checked}))}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"font-medium text-[var(--sc-text-primary)]",children:"Exclude sensitive memories"}),(0,t.jsx)("div",{className:"mt-1 text-xs text-[var(--sc-text-secondary)]",children:"Skip memories whose sensitivity level is higher than INTERNAL when syncing to cloud."})]})]}),c.isError&&(0,t.jsx)("div",{className:"rounded-xl border border-[var(--sc-coral)]/30 bg-[var(--sc-coral)]/10 p-3 text-sm text-[var(--sc-coral)]",children:c.error.message})]})]})}function B({sync:e,cloudConfig:s}){return(0,t.jsxs)("div",{className:"glass-card-strong p-5",children:[(0,t.jsx)("h2",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Current policy"}),(0,t.jsx)("p",{className:"mt-1 text-sm text-[var(--sc-text-secondary)]",children:"The snapshot below is the current cloud posture. Edit it in Sync Controls when you need to change what leaves this device."}),(0,t.jsxs)("div",{className:"mt-4 grid gap-3 md:grid-cols-2",children:[(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4",children:[(0,t.jsx)("div",{className:"text-xs uppercase tracking-[0.2em] text-[var(--sc-text-muted)]",children:"Sync scope"}),(0,t.jsx)("div",{className:"mt-2 text-sm font-medium text-[var(--sc-text-primary)]",children:e.controls.projectMode}),(0,t.jsxs)("div",{className:"mt-1 text-xs text-[var(--sc-text-secondary)]",children:[e.controls.projects.length," selected project",1===e.controls.projects.length?"":"s"]})]}),(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4",children:[(0,t.jsx)("div",{className:"text-xs uppercase tracking-[0.2em] text-[var(--sc-text-muted)]",children:"Content mode"}),(0,t.jsx)("div",{className:"mt-2 text-sm font-medium text-[var(--sc-text-primary)]",children:"metadata"===e.controls.contentMode?"Metadata only":"Full content"}),(0,t.jsxs)("div",{className:"mt-1 text-xs text-[var(--sc-text-secondary)]",children:["Sensitive filter ",e.controls.excludeSensitive?"enabled":"off"]})]}),(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4",children:[(0,t.jsx)("div",{className:"text-xs uppercase tracking-[0.2em] text-[var(--sc-text-muted)]",children:"Cloud endpoint"}),(0,t.jsx)("div",{className:"mt-2 text-sm font-medium text-[var(--sc-text-primary)]",children:e.baseUrl})]}),(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4",children:[(0,t.jsx)("div",{className:"text-xs uppercase tracking-[0.2em] text-[var(--sc-text-muted)]",children:"OpenClaw complement"}),(0,t.jsxs)("div",{className:"mt-2 grid grid-cols-2 gap-2 text-xs text-[var(--sc-text-primary)]",children:[(0,t.jsxs)("span",{children:["Auto-memory: ",s.openclawMemory.autoMemory?"On":"Off"]}),(0,t.jsxs)("span",{children:["Dedupe: ",s.openclawMemory.dedupe?"On":"Off"]}),(0,t.jsxs)("span",{children:["Novelty: ",s.openclawMemory.noveltyThreshold]}),(0,t.jsxs)("span",{children:["Recent window: ",s.openclawMemory.maxRecent]})]})]})]})]})}function _(){let e,s=(e=(0,C.useQueryClient)(),(0,k.useMutation)({mutationFn:async()=>{let e=await (0,S.authFetch)(`${q}/api/cloud/sync-queue/clear-failed`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})});if(!e.ok)throw Error(await (0,S.readApiError)(e,"Failed to clear failed items"));return e.json()},onSuccess:()=>{e.invalidateQueries({queryKey:["cloud-sync-status"]})}}));return(0,t.jsx)("button",{type:"button",onClick:()=>s.mutate(),disabled:s.isPending,className:"shrink-0 rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)]/50 px-3 py-1.5 text-xs text-[var(--sc-text-secondary)] transition hover:border-[var(--sc-text-muted)] hover:text-[var(--sc-text-primary)] disabled:opacity-50",children:s.isPending?"Clearing...":s.isSuccess?`Cleared ${s.data?.cleared??0}`:"Clear failed"})}function U(){let{data:e,isLoading:s,refetch:r,isFetching:a}=$(),{data:c,isLoading:i}=M(),{data:l,isLoading:d}=(0,P.useLicenseStatus)();if(s||i||d||!e||!c||!l)return(0,t.jsx)("div",{className:"space-y-6",children:(0,t.jsx)("div",{className:"glass-card p-6 text-sm text-[var(--sc-text-secondary)]",children:"Loading cloud diagnostics..."})});let o=l.tier,x=e.queue.byKind.memory,u=e.queue.byKind.graph,m=x.failed+u.failed,b=e.queue.byKind.audit.failed+e.queue.byKind.quarantine.failed+e.queue.byKind.unknown.failed,N=e.lastSyncAt?F(e.lastSyncAt):"Never",w=m>0?"Needs review":x.pending+u.pending>0?"Catching up":"Healthy";return(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-xs",children:[(0,t.jsx)("span",{className:`rounded-full px-2.5 py-1 font-medium ${R.TIER_BG[o]} ${R.TIER_COLOURS[o]}`,children:R.TIER_LABELS[o]}),(0,t.jsxs)("span",{className:"rounded-full border border-[var(--sc-border)] bg-[var(--sc-bg-surface)]/70 px-2.5 py-1 text-[var(--sc-text-primary)]",children:["Last sync: ",N]}),(0,t.jsx)("button",{type:"button",onClick:()=>void r(),disabled:a,className:"rounded-full border border-[var(--sc-border)] bg-[var(--sc-bg-surface)]/70 px-2.5 py-1 text-[var(--sc-text-muted)] transition hover:text-[var(--sc-text-primary)] disabled:opacity-50",title:"Refresh sync status",children:(0,t.jsx)(j.RefreshCw,{size:12,className:a?"animate-spin":""})})]}),(0,t.jsx)(K,{}),(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-5",children:[(0,t.jsx)(I,{label:"Replication",value:w,detail:`${m} failed \xb7 ${x.pending+u.pending} pending`,icon:j.RefreshCw}),(0,t.jsx)(I,{label:"Device",value:e.device.name,detail:`${e.device.platform} \xb7 ${e.device.id.slice(0,12)}`,icon:f}),(0,t.jsx)(I,{label:"Cloud Target",value:new URL(e.baseUrl).host,detail:e.enabled?"Configured target":"Disabled in config",icon:n}),(0,t.jsx)(I,{label:"Memory Queue",value:x.pending,detail:`${x.failed} failed \xb7 ${x.synced} synced`,icon:y.Database}),(0,t.jsx)(I,{label:"Graph Queue",value:u.pending,detail:`${u.failed} failed \xb7 ${u.synced} synced`,icon:g.GitBranch})]}),(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-6 xl:grid-cols-[1.35fr_0.95fr]",children:[(0,t.jsxs)("div",{className:"glass-card p-5",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Replication"}),(0,t.jsx)("p",{className:"mt-1 text-sm text-[var(--sc-text-secondary)]",children:"Memory and graph sync queues. Items are synced to your cloud replica automatically."})]}),m>0&&(0,t.jsx)(_,{})]}),(0,t.jsxs)("div",{className:"mt-5 grid grid-cols-1 gap-3 md:grid-cols-2",children:[(0,t.jsx)(z,{label:"Memory",...x}),(0,t.jsx)(z,{label:"Graph",...u})]}),(0,t.jsxs)("details",{className:"mt-5 rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/30 p-4",children:[(0,t.jsx)("summary",{className:"cursor-pointer list-none text-sm font-medium text-[var(--sc-text-primary)]",children:"Advanced transport signals"}),(0,t.jsxs)("div",{className:"mt-4 grid grid-cols-1 gap-3 md:grid-cols-2",children:[(0,t.jsx)(z,{label:"Audit",...e.queue.byKind.audit}),(0,t.jsx)(z,{label:"Quarantine",...e.queue.byKind.quarantine})]}),(0,t.jsx)("div",{className:"mt-4 overflow-hidden rounded-xl border border-[var(--sc-border)]",children:(0,t.jsxs)("table",{className:"min-w-full divide-y divide-[var(--sc-border)] text-sm",children:[(0,t.jsx)("thead",{className:"bg-[var(--sc-bg-deep)]/70 text-[var(--sc-text-secondary)]",children:(0,t.jsxs)("tr",{children:[(0,t.jsx)("th",{className:"px-4 py-3 text-left font-medium",children:"Signal"}),(0,t.jsx)("th",{className:"px-4 py-3 text-left font-medium",children:"Current value"}),(0,t.jsx)("th",{className:"px-4 py-3 text-left font-medium",children:"Why it matters"})]})}),(0,t.jsxs)("tbody",{className:"divide-y divide-[var(--sc-border)] bg-[var(--sc-bg-surface)]/40 text-[var(--sc-text-primary)]",children:[(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{className:"px-4 py-3",children:"Oldest queued job"}),(0,t.jsx)("td",{className:"px-4 py-3",children:e.queue.oldestPendingAt?F(e.queue.oldestPendingAt):"None queued"}),(0,t.jsx)("td",{className:"px-4 py-3 text-[var(--sc-text-secondary)]",children:"If this stays old while pending grows, the local worker is falling behind."})]}),(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{className:"px-4 py-3",children:"Next retry"}),(0,t.jsx)("td",{className:"px-4 py-3",children:e.queue.nextRetryAt?L(e.queue.nextRetryAt):"Idle"}),(0,t.jsx)("td",{className:"px-4 py-3 text-[var(--sc-text-secondary)]",children:"Confirms whether failures are retrying normally or the queue is stuck."})]}),(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{className:"px-4 py-3",children:"Failed jobs in history"}),(0,t.jsx)("td",{className:"px-4 py-3",children:m}),(0,t.jsx)("td",{className:"px-4 py-3 text-[var(--sc-text-secondary)]",children:"These are retained replication dead-letter records for memory and graph sync."})]}),(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{className:"px-4 py-3",children:"Auxiliary failed history"}),(0,t.jsx)("td",{className:"px-4 py-3",children:b}),(0,t.jsx)("td",{className:"px-4 py-3 text-[var(--sc-text-secondary)]",children:"Audit and quarantine retry history is shown here for debugging, but it does not mean memory replication is currently blocked."})]}),(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{className:"px-4 py-3",children:"Latest memory sync"}),(0,t.jsx)("td",{className:"px-4 py-3",children:e.lastSyncAt?F(e.lastSyncAt):"Not recorded"}),(0,t.jsx)("td",{className:"px-4 py-3 text-[var(--sc-text-secondary)]",children:"This is the best quick indicator for whether cloud replication is actually current."})]})]})]})})]})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,t.jsx)(O,{}),(0,t.jsx)(B,{sync:e,cloudConfig:c}),(0,t.jsxs)("div",{className:"glass-card-strong p-5",children:[(0,t.jsx)("h2",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Last actionable error"}),(0,t.jsx)("div",{className:"mt-4 rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4",children:e.queue.lastError?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:`flex items-center gap-2 text-sm font-medium ${e.queue.pending>0?"text-[var(--sc-coral)]":"text-[var(--sc-amber)]"}`,children:[(0,t.jsx)(p.AlertTriangle,{size:16}),e.queue.lastErrorKind?`${e.queue.lastErrorKind} queue`:"Unknown queue"]}),(0,t.jsx)("p",{className:"mt-2 text-sm text-[var(--sc-text-primary)]",children:e.queue.lastError}),e.queue.latestFailureAt&&(0,t.jsxs)("div",{className:"mt-2 text-xs text-[var(--sc-text-muted)]",children:["Recorded ",F(e.queue.latestFailureAt)]}),e.queue.nextRetryAt&&(0,t.jsxs)("div",{className:"mt-3 inline-flex items-center gap-1 rounded-full bg-[var(--sc-bg-surface)] px-2 py-1 text-xs text-[var(--sc-text-secondary)]",children:[(0,t.jsx)(h.Clock3,{size:12}),"Retry ",L(e.queue.nextRetryAt)]})]}):(0,t.jsxs)("div",{className:"flex items-center gap-2 text-sm text-[var(--sc-cyan)]",children:[(0,t.jsx)(v.CheckCircle2,{size:16}),"No recent sync errors recorded."]})})]})]})]})]})}var Q=e.i(48615),D=e.i(84982),G=e.i(76490);function H({label:e,description:s,checked:r,pending:a=!1,disabled:c=!1,docsUrl:n,onChange:i}){let l=!c&&!a;return(0,t.jsxs)("label",{className:(0,G.cn)("flex items-start gap-4 rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/50 p-4 transition-colors",l&&"cursor-pointer hover:border-[var(--sc-text-muted)]",!l&&"opacity-70 cursor-not-allowed"),children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("div",{className:"text-sm font-semibold text-[var(--sc-text-primary)]",children:e}),(0,t.jsxs)("div",{className:"mt-1 text-xs leading-5 text-[var(--sc-text-secondary)]",children:[s,n&&(0,t.jsxs)(t.Fragment,{children:[" ",(0,t.jsx)("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:"text-[var(--sc-cyan)] hover:underline",onClick:e=>e.stopPropagation(),children:"Learn more"})]})]})]}),(0,t.jsxs)("div",{className:"relative flex h-6 w-11 shrink-0 items-center","aria-hidden":"true",children:[a&&(0,t.jsx)(D.Loader2,{size:12,className:"absolute -left-5 top-1.5 animate-spin text-[var(--sc-text-muted)]"}),(0,t.jsx)("span",{className:(0,G.cn)("absolute inset-0 rounded-full transition-colors",r?"bg-[var(--sc-cyan)]":"bg-[var(--sc-bg-elevated)] border border-[var(--sc-border)]")}),(0,t.jsx)("span",{className:(0,G.cn)("absolute top-0.5 h-5 w-5 rounded-full bg-white shadow transition-transform",r?"translate-x-5":"translate-x-0.5")})]}),(0,t.jsx)("input",{type:"checkbox",checked:r,disabled:!l,onChange:e=>i(e.target.checked),className:"sr-only"})]})}var J=e.i(22534);let V=J.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";function X(){let e,{data:s,isLoading:r,error:c}=(0,w.useQuery)({queryKey:["integrations-config"],queryFn:async()=>{let e=await (0,S.gatedFetch)(`${V}/api/cloud/config`);if(!e.ok)throw Error(await (0,S.readApiError)(e,"Failed to load integration toggles"));let t=await e.json();return{openclawAutoMemory:!!t.openclawMemory?.autoMemory,proactiveRecall:!!t.proactiveRecall}},refetchOnWindowFocus:!0}),n=(e=(0,C.useQueryClient)(),(0,k.useMutation)({mutationFn:async e=>{let t=await (0,S.gatedFetch)(`${V}/api/cloud/config`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error(await (0,S.readApiError)(t,"Failed to update integration toggle"));return t.json()},onSuccess:()=>{e.invalidateQueries({queryKey:["integrations-config"]}),e.invalidateQueries({queryKey:["cloud-config"]})}})),i=(e,t)=>{n.mutate(e,{onSuccess:()=>Q.toast.success(t),onError:e=>Q.toast.error(e instanceof Error?e.message:"Failed to update toggle")})};if(r)return(0,t.jsxs)(x.GlassCard,{className:"p-6 space-y-4",children:[(0,t.jsx)(a.Skeleton,{className:"h-16 w-full"}),(0,t.jsx)(a.Skeleton,{className:"h-16 w-full"})]});if(c||!s)return(0,t.jsx)(x.GlassCard,{className:"p-6",children:(0,t.jsxs)("p",{className:"text-sm text-[var(--sc-coral)]",children:["Failed to load integration toggles: ",c instanceof Error?c.message:"Unknown error"]})});let l=n.isPending,d=l?Object.keys(n.variables??{})[0]:void 0;return(0,t.jsx)("div",{className:"space-y-4",children:(0,t.jsxs)(x.GlassCard,{className:"p-6",children:[(0,t.jsx)("h3",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Integrations"}),(0,t.jsx)("p",{className:"mt-1 text-sm text-[var(--sc-text-secondary)]",children:"Both toggles are off by default. They were turned off in v4.11.0 after fleet evidence showed they hurt fast agent loops; turn them on if you run interactive sessions or want richer memory capture."}),(0,t.jsxs)("div",{className:"mt-5 space-y-3",children:[(0,t.jsx)(H,{label:"OpenClaw Auto-Memory",description:"Extract memories from OpenClaw LLM output (decisions, fixes, learnings, preferences). Off by default — turn on for interactive sessions, leave off for fast agent loops.",checked:s.openclawAutoMemory,pending:"openclawAutoMemory"===d,disabled:l&&"openclawAutoMemory"!==d,docsUrl:"https://shieldcortex.ai/docs/integrations#openclaw-auto-memory",onChange:e=>i({openclawAutoMemory:e},e?"OpenClaw auto-memory enabled":"OpenClaw auto-memory disabled")}),(0,t.jsx)(H,{label:"Proactive Recall",description:"Inject relevant SC memory into every prompt. Adds 200–500ms latency and 100–400 tokens per turn. Net-negative for fast agent loops; useful for deep interactive sessions.",checked:s.proactiveRecall,pending:"proactiveRecall"===d,disabled:l&&"proactiveRecall"!==d,docsUrl:"https://shieldcortex.ai/docs/integrations#proactive-recall",onChange:e=>i({proactiveRecall:e},e?"Proactive recall enabled":"Proactive recall disabled")})]}),(0,t.jsxs)("p",{className:"mt-5 text-[11px] text-[var(--sc-text-muted)]",children:["You can also toggle these via the CLI: ",(0,t.jsx)("code",{className:"font-mono",children:"shieldcortex config --openclaw-auto-memory true|false"})," ·"," ",(0,t.jsx)("code",{className:"font-mono",children:"shieldcortex config --proactive-recall true|false"})]})]})})}var Y=e.i(45434),W=e.i(61737),Z=e.i(13808);let ee=J.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";function et(e){if(!e)return"never";let t=Date.now()-new Date(e).getTime();if(t<0)return"just now";let s=Math.floor(t/1e3);if(s<60)return`${s}s ago`;let r=Math.floor(s/60);if(r<60)return`${r}m ago`;let a=Math.floor(r/60);if(a<24)return`${a}h ago`;let c=Math.floor(a/24);return`${c}d ago`}function es(){let e,s,r,{data:a,isLoading:c}=(0,w.useQuery)({queryKey:["worker-status"],queryFn:async()=>{let e=await (0,S.gatedFetch)(`${ee}/api/worker/status`);if(!e.ok)throw Error(await (0,S.readApiError)(e,"Failed to load worker status"));return e.json()},refetchInterval:1e4}),{data:n}=(0,w.useQuery)({queryKey:["memory-stats"],queryFn:async()=>{let e=await (0,S.gatedFetch)(`${ee}/api/stats`);if(!e.ok)throw Error(await (0,S.readApiError)(e,"Failed to load memory stats"));return e.json()},refetchInterval:3e4}),i=(e=(0,C.useQueryClient)(),(0,k.useMutation)({mutationFn:async()=>{let e=await (0,S.gatedFetch)(`${ee}/api/worker/trigger-light`,{method:"POST"});if(!e.ok)throw Error(await (0,S.readApiError)(e,"Failed to run light tick"));return e.json()},onSuccess:()=>{e.invalidateQueries({queryKey:["worker-status"]}),e.invalidateQueries({queryKey:["memory-stats"]})}})),l=(s=(0,C.useQueryClient)(),(0,k.useMutation)({mutationFn:async()=>{let e=await (0,S.gatedFetch)(`${ee}/api/worker/trigger-medium`,{method:"POST"});if(!e.ok)throw Error(await (0,S.readApiError)(e,"Failed to run medium tick"));return e.json()},onSuccess:()=>{s.invalidateQueries({queryKey:["worker-status"]}),s.invalidateQueries({queryKey:["memory-stats"]})}})),d=(r=(0,C.useQueryClient)(),(0,k.useMutation)({mutationFn:async()=>{let e=await (0,S.gatedFetch)(`${ee}/api/consolidate`,{method:"POST"});if(!e.ok)throw Error(await (0,S.readApiError)(e,"Failed to run consolidation"));return e.json()},onSuccess:()=>{r.invalidateQueries({queryKey:["worker-status"]}),r.invalidateQueries({queryKey:["memory-stats"]})}})),o=i.isPending||l.isPending||d.isPending;return(0,t.jsxs)(x.GlassCard,{className:"p-6",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(W.Brain,{size:16,className:"text-[var(--sc-cyan)]"}),(0,t.jsx)("h3",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Memory Maintenance"}),a?.isRunning?(0,t.jsx)(u.Badge,{variant:"cyan",dot:!0,children:"Running"}):c?(0,t.jsx)(u.Badge,{variant:"muted",children:"Loading"}):(0,t.jsx)(u.Badge,{variant:"amber",children:"Stopped"})]}),(0,t.jsx)("p",{className:"mt-2 text-sm text-[var(--sc-text-secondary)]",children:"Background brain worker prunes activation cache, consolidates short-term to long-term, removes low-salience duplicates, and prunes orphan graph entities. Runs automatically on intervals; you can trigger a tick manually below."}),n&&(0,t.jsxs)("div",{className:"mt-4 grid grid-cols-3 gap-3 text-sm",children:[(0,t.jsxs)("div",{className:"rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/50 p-3",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-[0.14em] text-[var(--sc-text-muted)]",children:"Healthy"}),(0,t.jsx)("div",{className:"mt-1 text-xl font-semibold text-[var(--sc-cyan)]",children:n.decayDistribution.healthy})]}),(0,t.jsxs)("div",{className:"rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/50 p-3",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-[0.14em] text-[var(--sc-text-muted)]",children:"Fading"}),(0,t.jsx)("div",{className:"mt-1 text-xl font-semibold text-[var(--sc-amber)]",children:n.decayDistribution.fading})]}),(0,t.jsxs)("div",{className:"rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/50 p-3",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-[0.14em] text-[var(--sc-text-muted)]",children:"Critical"}),(0,t.jsx)("div",{className:"mt-1 text-xl font-semibold text-[var(--sc-coral)]",children:n.decayDistribution.critical})]})]}),(0,t.jsxs)("div",{className:"mt-4 space-y-2 rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/50 p-3 text-xs",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-[var(--sc-text-muted)]",children:"Light tick (every ~5 min)"}),(0,t.jsxs)("span",{className:"text-[var(--sc-text-primary)]",children:[et(a?.lastLightTick??null)," · ",a?.stats.lightTicks??0," runs"]})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-[var(--sc-text-muted)]",children:"Heavy tick (every ~1 hr)"}),(0,t.jsxs)("span",{className:"text-[var(--sc-text-primary)]",children:[et(a?.lastMediumTick??null)," · ",a?.stats.mediumTicks??0," runs"]})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-[var(--sc-text-muted)]",children:"Last consolidation"}),(0,t.jsxs)("span",{className:"text-[var(--sc-text-primary)]",children:[et(a?.lastConsolidation??null)," · ",a?.stats.consolidations??0," runs"]})]})]}),(0,t.jsxs)("div",{className:"mt-4 flex flex-wrap gap-2",children:[(0,t.jsxs)(m.Button,{variant:"outline",size:"sm",onClick:()=>{i.mutate(void 0,{onSuccess:()=>Q.toast.success("Light cleanup triggered"),onError:e=>Q.toast.error(e instanceof Error?e.message:"Failed to trigger light cleanup")})},disabled:o,pulse:i.isPending,children:[(0,t.jsx)(Y.Activity,{size:13}),i.isPending?"Running":"Run light cleanup"]}),(0,t.jsxs)(m.Button,{variant:"outline",size:"sm",onClick:()=>{l.mutate(void 0,{onSuccess:()=>Q.toast.success("Heavy cleanup triggered"),onError:e=>Q.toast.error(e instanceof Error?e.message:"Failed to trigger heavy cleanup")})},disabled:o,pulse:l.isPending,children:[(0,t.jsx)(j.RefreshCw,{size:13}),l.isPending?"Running":"Run heavy cleanup"]}),(0,t.jsxs)(m.Button,{variant:"cyan",size:"sm",onClick:()=>{d.mutate(void 0,{onSuccess:()=>Q.toast.success("Consolidation triggered"),onError:e=>Q.toast.error(e instanceof Error?e.message:"Failed to trigger consolidation")})},disabled:o,pulse:d.isPending,children:[(0,t.jsx)(Z.Sparkles,{size:13}),d.isPending?"Running":"Consolidate now"]})]}),(0,t.jsxs)("p",{className:"mt-3 text-[11px] text-[var(--sc-text-muted)]",children:["CLI equivalent: ",(0,t.jsx)("code",{className:"font-mono",children:"shieldcortex consolidate"}),". Auto-cleanup runs continuously while the dashboard service is up; check"," ",(0,t.jsx)("code",{className:"font-mono",children:"shieldcortex service status"})," if ticks haven't advanced."]})]})}var er=e.i(71259),ea=e.i(77744),ec=e.i(42098);let en=[.1,.2,.3,.4,.5],ei=[7,30,90,180,365];function el(){let e,{projectFilter:s}=(0,ec.useDashboardStore)(),[a,c]=(0,r.useState)(.2),[n,i]=(0,r.useState)(30),[l,d]=(0,r.useState)(!0),[o,u]=(0,r.useState)(s?"current":"all"),[p,v]=(0,r.useState)(null),h=(e=(0,C.useQueryClient)(),(0,k.useMutation)({mutationFn:async e=>{let t=await (0,S.gatedFetch)(`${ee}/api/memories/prune`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error(await (0,S.readApiError)(t,"Failed to prune"));return t.json()},onSuccess:t=>{"number"==typeof t.deleted&&(e.invalidateQueries({queryKey:["memory-stats"]}),e.invalidateQueries({queryKey:["integrations-config"]}))}})),y="current"===o&&s?s:void 0;return(0,t.jsxs)(x.GlassCard,{className:"p-6",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(ea.Trash2,{size:16,className:"text-[var(--sc-coral)]"}),(0,t.jsx)("h3",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Threshold Prune"})]}),(0,t.jsx)("p",{className:"mt-2 text-sm text-[var(--sc-text-secondary)]",children:"Permanently delete memories below a salience threshold older than N days. Always preview first; backup is automatic before any delete."}),(0,t.jsxs)("div",{className:"mt-4 grid gap-4 md:grid-cols-2",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between text-xs",children:[(0,t.jsx)("span",{className:"text-[var(--sc-text-muted)]",children:"Salience ≤"}),(0,t.jsx)("span",{className:"font-mono text-[var(--sc-text-primary)]",children:a.toFixed(2)})]}),(0,t.jsx)("input",{type:"range",min:0,max:.5,step:.05,value:a,onChange:e=>c(parseFloat(e.target.value)),className:"mt-1 w-full accent-[var(--sc-coral)]","aria-label":"Salience threshold"}),(0,t.jsx)("div",{className:"mt-1 flex gap-1",children:en.map(e=>(0,t.jsx)("button",{type:"button",onClick:()=>c(e),className:`rounded border px-1.5 py-0.5 text-[10px] transition ${a===e?"border-[var(--sc-coral)] text-[var(--sc-coral)]":"border-[var(--sc-border)] text-[var(--sc-text-muted)] hover:text-[var(--sc-text-primary)]"}`,children:e},e))})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between text-xs",children:[(0,t.jsx)("span",{className:"text-[var(--sc-text-muted)]",children:"Older than (days)"}),(0,t.jsx)("span",{className:"font-mono text-[var(--sc-text-primary)]",children:n})]}),(0,t.jsx)("input",{type:"range",min:1,max:365,step:1,value:n,onChange:e=>i(parseInt(e.target.value,10)),className:"mt-1 w-full accent-[var(--sc-coral)]","aria-label":"Age threshold"}),(0,t.jsx)("div",{className:"mt-1 flex gap-1",children:ei.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>i(e),className:`rounded border px-1.5 py-0.5 text-[10px] transition ${n===e?"border-[var(--sc-coral)] text-[var(--sc-coral)]":"border-[var(--sc-border)] text-[var(--sc-text-muted)] hover:text-[var(--sc-text-primary)]"}`,children:[e,"d"]},e))})]})]}),(0,t.jsxs)("div",{className:"mt-4 flex flex-wrap items-center gap-3 text-xs",children:[(0,t.jsx)("span",{className:"text-[var(--sc-text-muted)]",children:"Scope:"}),(0,t.jsx)("button",{type:"button",onClick:()=>u("all"),className:`rounded-md border px-2 py-1 ${"all"===o?"border-[var(--sc-cyan)] text-[var(--sc-cyan)]":"border-[var(--sc-border)] text-[var(--sc-text-muted)]"}`,children:"All projects"}),(0,t.jsxs)("button",{type:"button",disabled:!s,onClick:()=>u("current"),className:`rounded-md border px-2 py-1 disabled:opacity-40 ${"current"===o?"border-[var(--sc-cyan)] text-[var(--sc-cyan)]":"border-[var(--sc-border)] text-[var(--sc-text-muted)]"}`,children:["Current (",s??"none selected",")"]}),(0,t.jsxs)("label",{className:"ml-auto inline-flex items-center gap-2 text-[var(--sc-text-secondary)]",children:[(0,t.jsx)("input",{type:"checkbox",checked:l,onChange:e=>d(e.target.checked),className:"accent-[var(--sc-cyan)]"}),"Exclude pinned"]})]}),p&&(0,t.jsxs)("div",{className:"mt-4 rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/50 p-3",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("span",{className:"text-sm font-semibold text-[var(--sc-text-primary)]",children:[p.matched," memories match"]}),(0,t.jsxs)("span",{className:"text-[10px] text-[var(--sc-text-muted)]",children:["showing first ",p.sample.length]})]}),0===p.sample.length?(0,t.jsx)("div",{className:"mt-2 text-xs text-[var(--sc-text-muted)]",children:"Nothing to prune at these thresholds."}):(0,t.jsx)("ul",{className:"mt-2 max-h-48 space-y-1 overflow-y-auto text-xs",children:p.sample.map(e=>(0,t.jsxs)("li",{className:"flex items-baseline gap-2 text-[var(--sc-text-secondary)]",children:[(0,t.jsxs)("span",{className:"font-mono text-[10px] text-[var(--sc-text-muted)]",children:["#",e.id]}),(0,t.jsx)("span",{className:"truncate flex-1 text-[var(--sc-text-primary)]",children:e.title}),(0,t.jsxs)("span",{className:"text-[10px] text-[var(--sc-text-muted)]",children:[e.project??"(no project)"," · sal ",e.salience.toFixed(2)," · ",e.ageDays,"d"]})]},e.id))})]}),(0,t.jsxs)("div",{className:"mt-4 flex flex-wrap gap-2",children:[(0,t.jsxs)(m.Button,{variant:"outline",size:"sm",onClick:()=>{v(null),h.mutate({salienceLte:a,ageDaysGte:n,excludePinned:l,project:y,dryRun:!0},{onSuccess:e=>{v(e),Q.toast.success(`${e.matched} memories match — review before delete`)},onError:e=>Q.toast.error(e.message)})},disabled:h.isPending,pulse:h.isPending&&h.variables?.dryRun,children:[(0,t.jsx)(er.Eye,{size:13}),h.isPending&&h.variables?.dryRun?"Previewing":"Preview"]}),(0,t.jsxs)(m.Button,{variant:"coral",size:"sm",onClick:()=>{!p||0===p.matched||window.confirm(`Permanently delete ${p.matched} memories? A backup is auto-saved first.`)&&h.mutate({salienceLte:a,ageDaysGte:n,excludePinned:l,project:y,dryRun:!1},{onSuccess:e=>{v(null),Q.toast.success(`Deleted ${e.deleted??0}. Backup: ${e.backupPath??"see ~/.shieldcortex/backups/"}`,{duration:8e3})},onError:e=>Q.toast.error(e.message)})},disabled:!p||0===p.matched||h.isPending,pulse:h.isPending&&h.variables?.dryRun===!1,children:[(0,t.jsx)(ea.Trash2,{size:13}),h.isPending&&h.variables?.dryRun===!1?"Deleting":p?`Delete ${p.matched}`:"Delete"]})]})]})}let ed=(0,c.default)("git-merge",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M6 21V9a9 9 0 0 0 9 9",key:"7kw0sc"}]]);var eo=e.i(6847);function ex(){let e,{projectFilter:s}=(0,ec.useDashboardStore)(),[a,c]=(0,r.useState)(s?"current":"all"),[n,i]=(0,r.useState)(null),l=(e=(0,C.useQueryClient)(),(0,k.useMutation)({mutationFn:async e=>{let t=await (0,S.gatedFetch)(`${ee}/api/memories/dedupe`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error(await (0,S.readApiError)(t,"Failed to dedupe"));return t.json()},onSuccess:t=>{"number"==typeof t.merged&&e.invalidateQueries({queryKey:["memory-stats"]})}})),d="current"===a&&s?s:void 0,o=n?.groups.reduce((e,t)=>e+t.removeIds.length,0)??0;return(0,t.jsxs)(x.GlassCard,{className:"p-6",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(ed,{size:16,className:"text-[var(--sc-cyan)]"}),(0,t.jsx)("h3",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Project Dedupe"})]}),(0,t.jsx)("p",{className:"mt-2 text-sm text-[var(--sc-text-secondary)]",children:"Find clusters of near-duplicate long-term memories (text similarity: title overlap + content Jaccard). Merging keeps the highest-salience representative and deletes the rest. Backup auto-saved before any merge."}),(0,t.jsxs)("div",{className:"mt-4 flex flex-wrap items-center gap-3 text-xs",children:[(0,t.jsx)("span",{className:"text-[var(--sc-text-muted)]",children:"Scope:"}),(0,t.jsx)("button",{type:"button",onClick:()=>c("all"),className:`rounded-md border px-2 py-1 ${"all"===a?"border-[var(--sc-cyan)] text-[var(--sc-cyan)]":"border-[var(--sc-border)] text-[var(--sc-text-muted)]"}`,children:"All projects"}),(0,t.jsxs)("button",{type:"button",disabled:!s,onClick:()=>c("current"),className:`rounded-md border px-2 py-1 disabled:opacity-40 ${"current"===a?"border-[var(--sc-cyan)] text-[var(--sc-cyan)]":"border-[var(--sc-border)] text-[var(--sc-text-muted)]"}`,children:["Current (",s??"none selected",")"]})]}),n&&(0,t.jsxs)("div",{className:"mt-4 rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/50 p-3",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("span",{className:"text-sm font-semibold text-[var(--sc-text-primary)]",children:[n.groups.length," cluster(s) · ",o," removable"]}),(0,t.jsxs)("span",{className:"text-[10px] text-[var(--sc-text-muted)]",children:[n.pairsFound," pairs scanned"]})]}),0===n.groups.length?(0,t.jsx)("div",{className:"mt-2 text-xs text-[var(--sc-text-muted)]",children:"No duplicates at the current heuristic threshold."}):(0,t.jsx)("ul",{className:"mt-2 max-h-64 space-y-2 overflow-y-auto text-xs",children:n.groups.map(e=>(0,t.jsxs)("li",{className:"rounded border border-[var(--sc-border)] bg-[var(--sc-bg-surface)] p-2",children:[(0,t.jsxs)("div",{className:"text-[10px] uppercase tracking-[0.14em] text-[var(--sc-text-muted)]",children:["Keep #",e.keepId," · remove ",e.removeIds.length," · ",e.similarity]}),(0,t.jsx)("div",{className:"mt-1 font-semibold text-[var(--sc-text-primary)] truncate",children:e.keepTitle}),(0,t.jsxs)("div",{className:"mt-0.5 text-[var(--sc-text-secondary)]",children:["Will delete: ",e.removeIds.map(e=>`#${e}`).join(", ")]})]},e.keepId))})]}),(0,t.jsxs)("div",{className:"mt-4 flex flex-wrap gap-2",children:[(0,t.jsxs)(m.Button,{variant:"outline",size:"sm",onClick:()=>{i(null),l.mutate({project:d,dryRun:!0},{onSuccess:e=>{i(e),Q.toast.success(0===e.groups.length?"No duplicate clusters found":`Found ${e.groups.length} cluster(s), ${e.groups.reduce((e,t)=>e+t.removeIds.length,0)} removable`)},onError:e=>Q.toast.error(e.message)})},disabled:l.isPending,pulse:l.isPending&&l.variables?.dryRun,children:[(0,t.jsx)(eo.Search,{size:13}),l.isPending&&l.variables?.dryRun?"Scanning":"Find duplicates"]}),(0,t.jsxs)(m.Button,{variant:"cyan",size:"sm",onClick:()=>{!n||0===o||window.confirm(`Merge ${n.groups.length} cluster(s) and delete ${o} duplicate(s)? Backup auto-saved first.`)&&l.mutate({project:d,dryRun:!1},{onSuccess:e=>{i(null),Q.toast.success(`Merged ${e.merged??0}. Backup: ${e.backupPath??"see ~/.shieldcortex/backups/"}`,{duration:8e3})},onError:e=>Q.toast.error(e.message)})},disabled:!n||0===o||l.isPending,pulse:l.isPending&&l.variables?.dryRun===!1,children:[(0,t.jsx)(ed,{size:13}),l.isPending&&l.variables?.dryRun===!1?"Merging":n&&o>0?`Merge all (${o})`:"Merge"]})]})]})}var eu=e.i(27528);let em=(0,c.default)("key",[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]]);var ep=e.i(77715),ev=e.i(66949);let eh=(0,c.default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]),ey=(0,c.default)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]),eg="https://api.shieldcortex.ai",eb=J.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001",ej=["Custom injection patterns","Custom Iron Dome policies","Custom firewall rules","Audit export (JSON/CSV)","Skill scanner deep mode"];function ef(){let{data:e,isLoading:s}=(0,P.useLicenseStatus)(),a=(0,P.useActivateLicense)(),c=(0,P.useDeactivateLicense)(),n=function(){let e=(0,C.useQueryClient)(),[t,s]=(0,r.useState)("idle"),[a,c]=(0,r.useState)(null),[n,i]=(0,r.useState)(null),l=(0,r.useCallback)(async(e,t)=>{s("submitting"),c(null);try{let r=await fetch(`${eg}/v1/billing/quick-checkout`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:e,plan:t})}),a=await r.json();if(!r.ok||!a.checkout_url||!a.setup_id)throw Error(a.error||"Failed to create checkout session");i(a.setup_id),window.open(a.checkout_url,"_blank"),s("polling")}catch(e){c(e instanceof Error?e.message:"Checkout failed"),s("error")}},[]);return(0,r.useEffect)(()=>{if("polling"!==t||!n)return;let r=setInterval(async()=>{try{let t=await fetch(`${eg}/v1/billing/setup-status/${n}`),a=await t.json();if("complete"===a.status&&a.license_key){clearInterval(r),s("activating");try{if(!(await (0,S.authFetch)(`${eb}/api/license/activate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:a.license_key})})).ok)throw Error("Local activation failed");e.invalidateQueries({queryKey:["license-status"]}),s("complete")}catch{c('Payment succeeded but local activation failed. Use "I Have a Key" to activate manually.'),s("error")}}else"expired"===a.status?(clearInterval(r),c("Setup expired. Please try again."),s("error")):"complete"!==a.status||a.license_key||(clearInterval(r),c("Licence key was already retrieved. Check your dashboard or try again."),s("error"))}catch{}},3e3),a=setTimeout(()=>{clearInterval(r),c('Checkout timed out. If you completed payment, use "I Have a Key" or contact support.'),s("error")},9e5);return()=>{clearInterval(r),clearTimeout(a)}},[t,n,e]),{state:t,error:a,startCheckout:l,reset:(0,r.useCallback)(()=>{s("idle"),c(null),i(null)},[])}}(),[i,l]=(0,r.useState)(""),[d,o]=(0,r.useState)("default"),[x,u]=(0,r.useState)(""),[m,p]=(0,r.useState)("pro"),[h,y]=(0,r.useState)(!1);if(s||!e)return(0,t.jsx)("div",{className:"bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded-xl p-4 mb-4",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(eu.Shield,{size:16,className:"text-[var(--sc-text-muted)]"}),(0,t.jsx)("span",{className:"text-xs text-[var(--sc-text-muted)] animate-pulse",children:"Loading licence..."})]})});let g=e.tier;if("free"===g)return(0,t.jsxs)("div",{className:"relative overflow-hidden rounded-xl mb-4 bg-gradient-to-br from-slate-900 via-[var(--sc-bg-surface)] to-cyan-950/30 border border-[var(--sc-cyan)]/30",children:[(0,t.jsx)("div",{className:"absolute top-0 right-0 w-32 h-32 bg-[var(--sc-cyan)]/5 rounded-full blur-2xl -translate-y-1/2 translate-x-1/2"}),(0,t.jsxs)("div",{className:"relative p-5",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between mb-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,t.jsx)("div",{className:"flex items-center justify-center w-8 h-8 rounded-lg bg-[var(--sc-cyan)]/10 border border-[var(--sc-cyan)]/20",children:(0,t.jsx)(Z.Sparkles,{size:16,className:"text-[var(--sc-cyan)]"})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-sm font-semibold text-[var(--sc-text-primary)]",children:"Unlock Pro Features"}),(0,t.jsx)("p",{className:"text-[11px] text-[var(--sc-text-secondary)] mt-0.5",children:"Your defence pipeline is fully active. Upgrade for advanced controls."})]})]}),(0,t.jsx)("span",{className:"text-[10px] font-medium px-2 py-0.5 rounded-full bg-[var(--sc-bg-elevated)] text-[var(--sc-text-secondary)] border border-[var(--sc-border)]",children:"Free"})]}),(0,t.jsx)("div",{className:"grid grid-cols-2 gap-x-4 gap-y-1.5 mb-4",children:ej.map(e=>(0,t.jsxs)("div",{className:"flex items-center gap-1.5 text-xs",children:[(0,t.jsx)(ev.Lock,{size:10,className:"text-[var(--sc-cyan)]/60 shrink-0"}),(0,t.jsx)("span",{className:"text-[var(--sc-text-secondary)]",children:e})]},e))}),"complete"===n.state?(0,t.jsxs)("div",{className:"flex items-center gap-2 p-3 bg-[var(--sc-cyan)]/10 border border-[var(--sc-cyan)]/20 rounded-lg",children:[(0,t.jsx)(v.CheckCircle2,{size:16,className:"text-[var(--sc-cyan)] shrink-0"}),(0,t.jsx)("span",{className:"text-xs text-[var(--sc-cyan)]",children:"Pro activated! Your dashboard is refreshing..."})]}):"polling"===n.state||"activating"===n.state?(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 p-3 bg-[var(--sc-cyan)]/10 border border-[var(--sc-cyan)]/20 rounded-lg",children:[(0,t.jsx)(D.Loader2,{size:14,className:"text-[var(--sc-cyan)] animate-spin shrink-0"}),(0,t.jsx)("span",{className:"text-xs text-[var(--sc-cyan)]",children:"activating"===n.state?"Activating licence...":"Complete payment in the Stripe tab..."})]}),(0,t.jsx)("button",{onClick:()=>{n.reset(),o("default")},className:"text-[10px] text-[var(--sc-text-muted)] hover:text-[var(--sc-text-primary)] transition-colors",children:"Cancel"})]}):"checkout"===d?(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-[10px] text-[var(--sc-text-muted)] mb-1 block",children:"Email"}),(0,t.jsx)("input",{type:"email",placeholder:"you@company.com",value:x,onChange:e=>u(e.target.value),className:"w-full bg-[var(--sc-bg-elevated)] border border-[var(--sc-border)] rounded-lg px-3 py-2 text-xs text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)] focus:outline-none focus:ring-1 focus:ring-[var(--sc-cyan)]",autoFocus:!0})]}),(0,t.jsx)("div",{className:"flex gap-2",children:["pro","team"].map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>p(e),className:`flex-1 px-3 py-2 text-xs font-medium rounded-lg border transition-colors ${m===e?"bg-[var(--sc-cyan)]/20 border-[var(--sc-cyan)]/50 text-[var(--sc-cyan)]":"bg-[var(--sc-bg-elevated)] border-[var(--sc-border)] text-[var(--sc-text-secondary)] hover:border-[var(--sc-border)]"}`,children:[R.PLAN_PRICING[e].label," — ",R.PLAN_PRICING[e].price]},e))}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("button",{onClick:()=>n.startCheckout(x,m),disabled:"submitting"===n.state||!x.trim(),className:"flex-1 inline-flex items-center justify-center gap-1.5 px-4 py-2 text-xs font-medium bg-[var(--sc-cyan)] hover:bg-[var(--sc-cyan-mid)] disabled:opacity-50 text-[var(--sc-text-primary)] rounded-lg transition-colors",children:"submitting"===n.state?(0,t.jsx)(D.Loader2,{size:12,className:"animate-spin"}):"Continue to Checkout"}),(0,t.jsx)("button",{onClick:()=>{o("default"),n.reset()},className:"px-3 py-2 text-xs text-[var(--sc-text-muted)] hover:text-[var(--sc-text-primary)] transition-colors",children:"Back"})]}),n.error&&(0,t.jsx)("p",{className:"text-xs text-[var(--sc-coral)]",children:n.error})]}):"activate"===d?(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("form",{onSubmit:e=>{e.preventDefault(),i.trim()&&a.mutate(i.trim(),{onSuccess:()=>{l(""),o("default")}})},className:"flex gap-2",children:[(0,t.jsx)("input",{type:"text",placeholder:"sc_pro_...",value:i,onChange:e=>l(e.target.value),className:"flex-1 bg-[var(--sc-bg-elevated)] border border-[var(--sc-border)] rounded-lg px-3 py-2 text-xs text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)] focus:outline-none focus:ring-1 focus:ring-[var(--sc-cyan)]",autoFocus:!0}),(0,t.jsx)("button",{type:"submit",disabled:a.isPending||!i.trim(),className:"px-4 py-2 text-xs font-medium bg-[var(--sc-cyan)] hover:bg-[var(--sc-cyan-mid)] disabled:opacity-50 text-[var(--sc-text-primary)] rounded-lg transition-colors",children:a.isPending?(0,t.jsx)(D.Loader2,{size:12,className:"animate-spin"}):"Activate"}),(0,t.jsx)("button",{type:"button",onClick:()=>{o("default"),l(""),a.reset()},className:"px-3 py-2 text-xs text-[var(--sc-text-muted)] hover:text-[var(--sc-text-primary)] transition-colors",children:"Back"})]}),a.isError&&(0,t.jsx)("p",{className:"text-xs text-[var(--sc-coral)]",children:a.error instanceof Error?a.error.message:"Activation failed"})]}):(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("button",{onClick:()=>o("checkout"),className:"inline-flex items-center gap-1.5 px-4 py-2 text-xs font-medium bg-[var(--sc-cyan)] hover:bg-[var(--sc-cyan-mid)] text-[var(--sc-text-primary)] rounded-lg transition-colors",children:"Upgrade to Pro"}),(0,t.jsxs)("button",{onClick:()=>o("activate"),className:"inline-flex items-center gap-1.5 px-4 py-2 text-xs font-medium bg-[var(--sc-bg-elevated)] hover:bg-[var(--sc-bg-elevated)] text-[var(--sc-text-primary)] rounded-lg transition-colors border border-[var(--sc-border)]",children:[(0,t.jsx)(em,{size:12}),"I Have a Key"]})]}),n.error&&(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("p",{className:"text-xs text-[var(--sc-coral)]",children:n.error}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("button",{onClick:()=>{n.reset(),o("checkout")},className:"text-[10px] text-[var(--sc-cyan)] hover:text-[var(--sc-cyan)] transition-colors",children:"Try Again"}),(0,t.jsx)("span",{className:"text-[10px] text-[var(--sc-text-muted)]",children:"·"}),(0,t.jsx)("button",{onClick:()=>{n.reset(),o("activate")},className:"text-[10px] text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)] transition-colors",children:"I Have a Key"})]})]})]})]})]});let b=e.features.filter(e=>e.enabled).length,j=e.features.length;return(0,t.jsxs)("div",{className:"bg-[var(--sc-bg-surface)] border border-[var(--sc-cyan)]/40 rounded-xl p-4 mb-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(eu.Shield,{size:16,className:R.TIER_COLOURS[g]}),(0,t.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Licence"}),(0,t.jsx)("span",{className:`text-[10px] font-semibold px-1.5 py-0.5 rounded ${R.TIER_COLOURS[g]} ${R.TIER_BG[g]}`,children:R.TIER_LABELS[g]})]}),(0,t.jsxs)("span",{className:"text-[10px] text-[var(--sc-text-muted)]",children:[b,"/",j," features"]})]}),(0,t.jsxs)("div",{className:"space-y-2 mb-3",children:[e.email&&(0,t.jsxs)("div",{className:"flex items-center justify-between text-xs",children:[(0,t.jsx)("span",{className:"text-[var(--sc-text-muted)]",children:"Email"}),(0,t.jsx)("span",{className:"text-[var(--sc-text-primary)]",children:e.email})]}),null!==e.daysUntilExpiry&&(0,t.jsxs)("div",{className:"flex items-center justify-between text-xs",children:[(0,t.jsx)("span",{className:"text-[var(--sc-text-muted)]",children:"Expires"}),(0,t.jsx)("span",{className:e.daysUntilExpiry<=7?"text-[var(--sc-amber)]":"text-[var(--sc-text-primary)]",children:e.daysUntilExpiry<=0?"Expired (grace period)":`${e.daysUntilExpiry} days`})]})]}),(0,t.jsxs)("button",{onClick:()=>y(!h),className:"flex items-center gap-1 text-[10px] text-[var(--sc-text-muted)] hover:text-[var(--sc-text-primary)] transition-colors mb-2",children:[h?(0,t.jsx)(ey,{size:12}):(0,t.jsx)(eh,{size:12}),h?"Hide features":"Show features"]}),h&&(0,t.jsx)("div",{className:"space-y-1.5 mb-3",children:e.features.map(e=>(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[e.enabled?(0,t.jsx)(v.CheckCircle2,{size:12,className:"text-[var(--sc-cyan)] shrink-0"}):(0,t.jsx)(ep.XCircle,{size:12,className:"text-[var(--sc-text-muted)] shrink-0"}),(0,t.jsx)("span",{className:e.enabled?"text-[var(--sc-text-primary)]":"text-[var(--sc-text-muted)]",children:e.description.split(".")[0]}),!e.enabled&&(0,t.jsx)("span",{className:`text-[9px] px-1 py-0.5 rounded ${R.TIER_COLOURS[e.requiredTier]} ${R.TIER_BG[e.requiredTier]}`,children:R.TIER_LABELS[e.requiredTier]})]},e.feature))}),(0,t.jsx)("button",{onClick:()=>{confirm(`Remove your ${R.TIER_LABELS[g]} licence key? You will lose access to paid features.`)&&c.mutate()},disabled:c.isPending,className:"text-[10px] text-[var(--sc-text-muted)] hover:text-[var(--sc-coral)] transition-colors",children:"Deactivate"})]})}function eN(){let e=(0,s.useSearchParams)().get("tab"),a=e&&["cloud","integrations","licence","admin"].includes(e)?e:null,[c,p]=(0,r.useState)("cloud"),v=a??c,{data:h}=(0,P.useLicenseStatus)(),y=[{id:"cloud",label:"Cloud Sync",icon:(0,t.jsx)(n,{size:14})},{id:"integrations",label:"Integrations",icon:(0,t.jsx)(l,{size:14})},{id:"licence",label:"Licence",icon:(0,t.jsx)(i,{size:14})},{id:"admin",label:"Admin",icon:(0,t.jsx)(d.Settings,{size:14})}];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)(o.PageHeader,{eyebrow:"Configuration",title:"Settings",subtitle:"Cloud sync, licence management, and system configuration.",tabs:y,activeTab:v,onTabChange:e=>p(e),actions:(0,t.jsx)(u.Badge,{variant:h?.tier==="pro"?"cyan":h?.tier==="team"?"coral":"muted",children:R.TIER_LABELS[h?.tier??"free"]})}),(0,t.jsxs)("div",{children:["cloud"===v&&(0,t.jsx)(U,{}),"integrations"===v&&(0,t.jsx)(X,{}),"licence"===v&&(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsx)(ef,{}),(0,t.jsxs)(x.GlassCard,{className:"p-6",children:[(0,t.jsx)("h3",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Upgrade"}),(0,t.jsx)("p",{className:"mt-2 text-sm text-[var(--sc-text-secondary)]",children:"Pro unlocks deep X-Ray scanning, custom firewall rules, custom Iron Dome policies, audit exports, and more. Team adds cloud sync and team management."}),(0,t.jsx)("div",{className:"mt-4 flex gap-3",children:(0,t.jsx)("a",{href:"https://shieldcortex.ai/pricing",target:"_blank",rel:"noopener noreferrer",children:(0,t.jsx)(m.Button,{variant:"coral",glow:!0,children:"View pricing"})})})]})]}),"admin"===v&&(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsx)(es,{}),(0,t.jsx)(el,{}),(0,t.jsx)(ex,{}),(0,t.jsxs)(x.GlassCard,{className:"p-6",children:[(0,t.jsx)("h3",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"System Information"}),(0,t.jsxs)("div",{className:"mt-4 space-y-3",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between rounded-lg bg-[var(--sc-bg-elevated)] px-4 py-3",children:[(0,t.jsx)("span",{className:"text-sm text-[var(--sc-text-secondary)]",children:"Dashboard"}),(0,t.jsx)("span",{className:"font-mono text-sm text-[var(--sc-text-primary)]",children:"localhost:3030"})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between rounded-lg bg-[var(--sc-bg-elevated)] px-4 py-3",children:[(0,t.jsx)("span",{className:"text-sm text-[var(--sc-text-secondary)]",children:"API Server"}),(0,t.jsx)("span",{className:"font-mono text-sm text-[var(--sc-text-primary)]",children:"localhost:3001"})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between rounded-lg bg-[var(--sc-bg-elevated)] px-4 py-3",children:[(0,t.jsx)("span",{className:"text-sm text-[var(--sc-text-secondary)]",children:"Database"}),(0,t.jsx)("span",{className:"font-mono text-sm text-[var(--sc-text-primary)]",children:"~/.shieldcortex/memories.db"})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between rounded-lg bg-[var(--sc-bg-elevated)] px-4 py-3",children:[(0,t.jsx)("span",{className:"text-sm text-[var(--sc-text-secondary)]",children:"Licence Tier"}),(0,t.jsx)(u.Badge,{variant:h?.tier==="pro"?"cyan":h?.tier==="team"?"coral":"muted",children:R.TIER_LABELS[h?.tier??"free"]})]})]})]})]})]})]})})}function ew(){return(0,t.jsx)(r.Suspense,{fallback:(0,t.jsx)(a.PageSkeleton,{}),children:(0,t.jsx)(eN,{})})}e.s(["SettingsView",()=>ew],42424)}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,95659,e=>{"use strict";var t=e.i(27493),a=e.i(76490);let r={critical:"bg-[var(--sc-coral)]/15 text-[var(--sc-coral)] border-[var(--sc-coral)]/30",high:"bg-[var(--sc-coral-mid)]/15 text-[var(--sc-coral-mid)] border-[var(--sc-coral-mid)]/30",medium:"bg-[var(--sc-amber)]/15 text-[var(--sc-amber)] border-[var(--sc-amber)]/30",low:"bg-[var(--sc-cyan-mid)]/15 text-[var(--sc-cyan-mid)] border-[var(--sc-cyan-mid)]/30",safe:"bg-[var(--sc-cyan)]/15 text-[var(--sc-cyan)] border-[var(--sc-cyan)]/30",info:"bg-[var(--sc-text-muted)]/15 text-[var(--sc-text-secondary)] border-[var(--sc-text-muted)]/30",coral:"bg-[var(--sc-coral)]/15 text-[var(--sc-coral)] border-[var(--sc-coral)]/30",cyan:"bg-[var(--sc-cyan)]/15 text-[var(--sc-cyan)] border-[var(--sc-cyan)]/30",amber:"bg-[var(--sc-amber)]/15 text-[var(--sc-amber)] border-[var(--sc-amber)]/30",muted:"bg-[var(--sc-surface-interactive)] text-[var(--sc-text-secondary)] border-[var(--sc-border)]"},i={critical:"bg-[var(--sc-coral)]",high:"bg-[var(--sc-coral-mid)]",medium:"bg-[var(--sc-amber)]",low:"bg-[var(--sc-cyan-mid)]",safe:"bg-[var(--sc-cyan)]",info:"bg-[var(--sc-text-muted)]",coral:"bg-[var(--sc-coral)]",cyan:"bg-[var(--sc-cyan)]",amber:"bg-[var(--sc-amber)]",muted:"bg-[var(--sc-text-muted)]"};function s({children:e,variant:s="muted",className:n,dot:c=!1,pulse:l=!1}){return(0,t.jsxs)("span",{className:(0,a.cn)("inline-flex items-center gap-1.5 rounded-full border px-2.5 py-0.5 text-[11px] font-semibold uppercase tracking-wider",r[s],n),children:[c&&(0,t.jsx)("span",{className:(0,a.cn)("h-1.5 w-1.5 rounded-full",i[s],l&&"animate-pulse")}),e]})}function n(e){let t=e.toUpperCase();return"CRITICAL"===t?"critical":"HIGH"===t?"high":"MEDIUM"===t?"medium":"LOW"===t?"low":"SAFE"===t?"safe":"info"}e.s(["Badge",()=>s,"riskVariant",()=>n])},16467,e=>{"use strict";var t=e.i(27493),a=e.i(76490);let r={critical:"severity-critical",high:"severity-high",medium:"severity-medium",low:"severity-low",safe:"severity-safe",info:"severity-info"};function i({children:e,className:i,hover:s=!1,hoverCyan:n=!1,strong:c=!1,severity:l,onClick:o,selected:u=!1}){return(0,t.jsx)("div",{className:(0,a.cn)(c?"glass-card-strong":"glass-card",s&&"glass-card-hover cursor-pointer",n&&"glass-card-hover-cyan cursor-pointer",o&&!s&&!n&&"cursor-pointer",l&&r[l],u&&"border-[var(--sc-cyan)] shadow-[0_0_20px_var(--sc-glow-cyan)]",i),onClick:o,onKeyDown:o?e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),o())}:void 0,role:o?"button":void 0,tabIndex:o?0:void 0,children:e})}e.s(["GlassCard",()=>i])},36062,31309,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);var a=e.i(22534),r=e.i(71921),i=e.i(45688),s=e.i(1235),n=e.i(88969);let c=a.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function l(e,t){let a=await (0,n.gatedFetch)(`${c}${e}`);if(!a.ok)throw Error(await (0,n.readApiError)(a,t));return a.json()}async function o(e){let t=await (0,n.gatedFetch)(`${c}/api/xray/scan`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error(await (0,n.readApiError)(t,"Failed to run X-Ray scan"));return t.json()}async function u(e){let t=await (0,n.gatedFetch)(`${c}/api/xray/pick-target`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({kind:e})});if(!t.ok)throw Error(await (0,n.readApiError)(t,`Failed to open ${e} picker`));return t.json()}function d(e,t){return!(t instanceof n.FeatureLockedError)&&e<2}function y(e){let t=new URLSearchParams;for(let[a,r]of Object.entries(e))r&&"all"!==r&&"ALL"!==r&&t.set(a,r);let a=t.toString();return a?`?${a}`:""}function m(){return(0,i.useQuery)({queryKey:["xray-status"],queryFn:()=>l("/api/xray/status","Failed to fetch X-Ray status"),refetchInterval:3e4,retry:d})}function h(e={}){return(0,i.useQuery)({queryKey:["xray-history",e],queryFn:()=>l(`/api/xray/history${y({risk:e.risk,targetType:e.targetType,deep:e.deep,search:e.search?.trim()||void 0})}`,"Failed to fetch X-Ray history"),refetchInterval:3e4,retry:d})}function v(e){return(0,i.useQuery)({queryKey:["xray-history-entry",e],queryFn:()=>l(`/api/xray/history/${e}`,"Failed to fetch X-Ray scan detail"),enabled:!!e,retry:d})}function x(e=25,t={}){return(0,i.useQuery)({queryKey:["xray-activity",e,t],queryFn:()=>l(`/api/xray/activity${y({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:d})}function p(e=20,t={}){return(0,i.useQuery)({queryKey:["xray-watch-sessions",e,t],queryFn:()=>l(`/api/xray/watch-sessions${y({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:d})}function f(){let e=(0,s.useQueryClient)();return(0,r.useMutation)({mutationFn:o,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,r.useMutation)({mutationFn:e=>u(e)})}async function b(e){let t=await (0,n.gatedFetch)(`${c}/api/xray/watch/start`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error(await (0,n.readApiError)(t,"Failed to start watch"));return t.json()}async function j(e){let t=await (0,n.gatedFetch)(`${c}/api/xray/watch/stop`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({target:e})});if(!t.ok)throw Error(await (0,n.readApiError)(t,"Failed to stop watch"));return t.json()}function w(){return(0,i.useQuery)({queryKey:["xray-active-watchers"],queryFn:()=>l("/api/xray/watch/active","Failed to fetch active watchers"),refetchInterval:1e4})}function q(){let e=(0,s.useQueryClient)();return(0,r.useMutation)({mutationFn:b,onSuccess:()=>{e.invalidateQueries({queryKey:["xray-watch-sessions"]}),e.invalidateQueries({queryKey:["xray-active-watchers"]}),e.invalidateQueries({queryKey:["xray-status"]})}})}function N(){let e=(0,s.useQueryClient)();return(0,r.useMutation)({mutationFn:j,onSuccess:()=>{e.invalidateQueries({queryKey:["xray-watch-sessions"]}),e.invalidateQueries({queryKey:["xray-active-watchers"]}),e.invalidateQueries({queryKey:["xray-status"]})}})}e.s(["useActiveWatchers",()=>w,"usePickXRayTarget",()=>g,"useStartWatch",()=>q,"useStopWatch",()=>N,"useXRayActivity",()=>x,"useXRayHistory",()=>h,"useXRayHistoryEntry",()=>v,"useXRayScan",()=>f,"useXRayStatus",()=>m,"useXRayWatchSessions",()=>p],31309)},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),a=e.i(76490);let r={coral:{icon:"text-[var(--sc-coral)]",iconBg:"bg-[var(--sc-coral)]/10",trendUp:"text-[var(--sc-coral)]",trendDown:"text-[var(--sc-cyan)]"},cyan:{icon:"text-[var(--sc-cyan)]",iconBg:"bg-[var(--sc-cyan)]/10",trendUp:"text-[var(--sc-cyan)]",trendDown:"text-[var(--sc-coral)]"},amber:{icon:"text-[var(--sc-amber)]",iconBg:"bg-[var(--sc-amber)]/10",trendUp:"text-[var(--sc-amber)]",trendDown:"text-[var(--sc-text-muted)]"},muted:{icon:"text-[var(--sc-text-secondary)]",iconBg:"bg-[var(--sc-surface-interactive)]",trendUp:"text-[var(--sc-cyan)]",trendDown:"text-[var(--sc-coral)]"}};function i({label:e,value:i,icon:s,trend:n,accent:c="cyan",className:l}){let o=r[c];return(0,t.jsx)("div",{className:(0,a.cn)("glass-card p-5",l),children:(0,t.jsxs)("div",{className:"flex items-start justify-between",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("p",{className:"text-xs font-medium uppercase tracking-wider text-[var(--sc-text-muted)]",children:e}),(0,t.jsx)("p",{className:"mt-2 text-2xl font-bold text-[var(--sc-text-primary)]",children:i}),n&&(0,t.jsxs)("p",{className:(0,a.cn)("mt-1 text-xs",n.value>=0?o.trendUp:o.trendDown),children:[n.value>=0?"+":"",n.value,"% ",n.label]})]}),(0,t.jsx)("div",{className:(0,a.cn)("rounded-xl p-2.5",o.iconBg),children:(0,t.jsx)(s,{size:20,className:o.icon})})]})})}e.s(["StatCard",()=>i])},18509,e=>{"use strict";let t=(0,e.i(24929).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);e.s(["AlertTriangle",()=>t],18509)},15771,63312,50279,e=>{"use strict";let t=(0,e.i(24929).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["CheckCircle2",()=>t],15771);var a=e.i(22534),r=e.i(45688),i=e.i(71921),s=e.i(1235),n=e.i(88969);let c=a.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function l(){let e=await (0,n.authFetch)(`${c}/api/license/status`);if(!e.ok)throw Error("Failed to fetch license status");return e.json()}async function o(e){let t=await (0,n.authFetch)(`${c}/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 u(){let e=await (0,n.authFetch)(`${c}/api/license/deactivate`,{method:"POST"});if(!e.ok)throw Error("Failed to deactivate license");return e.json()}function d(){return(0,r.useQuery)({queryKey:["license-status"],queryFn:l,refetchInterval:6e4,retry:2})}function y(){let e=(0,s.useQueryClient)();return(0,i.useMutation)({mutationFn:e=>o(e),onSuccess:()=>{e.invalidateQueries({queryKey:["license-status"]})}})}function m(){let e=(0,s.useQueryClient)();return(0,i.useMutation)({mutationFn:u,onSuccess:()=>{e.invalidateQueries({queryKey:["license-status"]})}})}e.s(["useActivateLicense",()=>y,"useDeactivateLicense",()=>m,"useLicenseStatus",()=>d],63312),e.s(["PLAN_PRICING",0,{pro:{label:"Pro",price:"£29/mo"},team:{label:"Team",price:"£99/mo"}},"TIER_BG",0,{free:"bg-[var(--sc-surface-interactive)]",pro:"bg-[var(--sc-cyan)]/10",team:"bg-[var(--sc-coral)]/10",enterprise:"bg-[var(--sc-amber)]/10"},"TIER_COLOURS",0,{free:"text-[var(--sc-text-muted)]",pro:"text-[var(--sc-cyan)]",team:"text-[var(--sc-coral)]",enterprise:"text-[var(--sc-amber)]"},"TIER_LABELS",0,{free:"Free",pro:"Pro",team:"Team",enterprise:"Enterprise"}],50279)},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)},87353,e=>{"use strict";var t=e.i(22534),a=e.i(45688),r=e.i(71921),i=e.i(1235),s=e.i(88969);let n=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 a=await (0,s.authFetch)(`${n}/api/v1/audit?${t}`);if(!a.ok)throw Error(await (0,s.readApiError)(a,"Failed to fetch audit logs"));return a.json()}async function l(e,t){let a=new URLSearchParams({timeRange:e});t&&a.set("project",t);let r=await (0,s.authFetch)(`${n}/api/v1/audit/stats?${a}`);if(!r.ok)throw Error(await (0,s.readApiError)(r,"Failed to fetch audit stats"));return r.json()}async function o(e="pending",t=50,a,r){let i=new URLSearchParams({status:e,limit:t.toString()});a&&i.set("project",a),r&&i.set("sourceType",r);let c=await (0,s.authFetch)(`${n}/api/v1/quarantine?${i}`);if(!c.ok)throw Error(await (0,s.readApiError)(c,"Failed to fetch quarantine"));return c.json()}async function u(e){let t=await (0,s.authFetch)(`${n}/api/v1/quarantine/${e}/approve`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reviewedBy:"dashboard"})});if(!t.ok)throw Error(await (0,s.readApiError)(t,"Failed to approve quarantined item"));return t.json()}async function d(e,t){let a=await (0,s.authFetch)(`${n}/api/v1/quarantine/${e}/reject`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reviewedBy:"dashboard",notes:t})});if(!a.ok)throw Error(await (0,s.readApiError)(a,"Failed to reject quarantined item"));return a.json()}async function y(e){let t=await (0,s.authFetch)(`${n}/api/v1/quarantine/bulk-approve`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:e,reviewedBy:"dashboard"})});if(!t.ok)throw Error(await (0,s.readApiError)(t,"Failed to bulk approve quarantined items"));return t.json()}async function m(e){let t=await (0,s.authFetch)(`${n}/api/v1/quarantine/bulk-reject`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:e,reviewedBy:"dashboard"})});if(!t.ok)throw Error(await (0,s.readApiError)(t,"Failed to bulk reject quarantined items"));return t.json()}async function h(){let e=await (0,s.authFetch)(`${n}/api/v1/review-copilot/status`);if(!e.ok)throw Error(await (0,s.readApiError)(e,"Failed to fetch Local AI status"));return e.json()}async function v(e){let t=await (0,s.authFetch)(`${n}/api/v1/quarantine/${e}/annotate`,{method:"POST",headers:{"Content-Type":"application/json"}});if(!t.ok)throw Error(await (0,s.readApiError)(t,"Failed to explain quarantined item"));return t.json()}async function x(e){let t=await (0,s.authFetch)(`${n}/api/v1/quarantine/annotate-pending`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error(await (0,s.readApiError)(t,"Failed to explain pending quarantine"));return t.json()}function p(e){return(0,a.useQuery)({queryKey:["audit-logs",e],queryFn:()=>c(e),refetchInterval:3e4,retry:2})}function f(e="24h",t){return(0,a.useQuery)({queryKey:["audit-stats",e,t],queryFn:()=>l(e,t),refetchInterval:3e4,retry:2})}function g(e="pending",t=50,r,i){return(0,a.useQuery)({queryKey:["quarantine",e,t,r,i],queryFn:()=>o(e,t,r,i),refetchInterval:3e4,retry:2})}function b(){return(0,a.useQuery)({queryKey:["review-copilot-status"],queryFn:h,refetchInterval:3e4,retry:2})}function j(){let e=(0,i.useQueryClient)();return(0,r.useMutation)({mutationFn:u,onSuccess:()=>{e.invalidateQueries({queryKey:["quarantine"]}),e.invalidateQueries({queryKey:["audit-stats"]}),e.invalidateQueries({queryKey:["memories"]}),e.invalidateQueries({queryKey:["stats"]}),e.invalidateQueries({queryKey:["review-queue"]}),e.invalidateQueries({queryKey:["openclaw-sessions"]}),e.invalidateQueries({queryKey:["quality"]})}})}function w(){let e=(0,i.useQueryClient)();return(0,r.useMutation)({mutationFn:({id:e,notes:t})=>d(e,t),onSuccess:()=>{e.invalidateQueries({queryKey:["quarantine"]}),e.invalidateQueries({queryKey:["audit-stats"]}),e.invalidateQueries({queryKey:["review-queue"]})}})}function q(){let e=(0,i.useQueryClient)();return(0,r.useMutation)({mutationFn:y,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 N(){let e=(0,i.useQueryClient)();return(0,r.useMutation)({mutationFn:m,onSuccess:()=>{e.invalidateQueries({queryKey:["quarantine"]}),e.invalidateQueries({queryKey:["audit-stats"]}),e.invalidateQueries({queryKey:["review-queue"]})}})}function S(){let e=(0,i.useQueryClient)();return(0,r.useMutation)({mutationFn:v,onSuccess:()=>{e.invalidateQueries({queryKey:["quarantine"]}),e.invalidateQueries({queryKey:["review-copilot-status"]})}})}function k(){let e=(0,i.useQueryClient)();return(0,r.useMutation)({mutationFn:x,onSuccess:()=>{e.invalidateQueries({queryKey:["quarantine"]}),e.invalidateQueries({queryKey:["review-copilot-status"]})}})}e.s(["useAnnotatePendingQuarantine",()=>k,"useAnnotateQuarantine",()=>S,"useApproveQuarantine",()=>j,"useAuditLogs",()=>p,"useAuditStats",()=>f,"useBulkApproveQuarantine",()=>q,"useBulkRejectQuarantine",()=>N,"useQuarantine",()=>g,"useRejectQuarantine",()=>w,"useReviewCopilotStatus",()=>b])},14612,e=>{"use strict";var t=e.i(27493),a=e.i(4),r=e.i(56640),i=e.i(18509),s=e.i(36062),n=e.i(15771),c=e.i(19331),l=e.i(7571),o=e.i(75025),u=e.i(76344),d=e.i(27528),y=e.i(51069),m=e.i(16467),h=e.i(46194),v=e.i(95659),x=e.i(81523),p=e.i(40950),f=e.i(88069),g=e.i(87353),b=e.i(63312),j=e.i(31309),w=e.i(50279);function q(){let{data:e}=(0,f.useStats)(),{data:q}=(0,g.useAuditStats)("24h"),{data:N}=(0,g.useQuarantine)("pending",10),{data:S}=(0,g.useQuarantine)("pending",1,void 0,"memory_file"),{data:k}=(0,f.useQuality)(),{data:F}=(0,f.useContradictions)(),{data:Q}=(0,b.useLicenseStatus)(),{data:C}=(0,j.useXRayStatus)(),T=e?.total??0,K=e?.decayDistribution?.healthy??0,$=e?.decayDistribution?.fading??0,A=e?.decayDistribution?.critical??0,E=e?.decayDistribution?Math.round(K/Math.max(1,T)*100):0,R=F?.count??F?.contradictions?.length??0,L=N?.total??0,M=S?.total??0,P=Math.max(0,L-M),I=q?.blockedCount??0,O=k?.duplicates?.count??0,B=k?.stale?.count??0,U=k?.neverAccessed?.count??0,D=C?.summary?.scans??0,_=(0,a.useMemo)(()=>{let e=[];return M>0&&e.push({title:`${M} memory file finding${1===M?"":"s"} need review`,detail:"These are scanned agent memory files, not stored ShieldCortex memories. Review or dismiss them without editing files.",severity:M>10?"critical":"medium",href:"/protection?tab=quarantine",cta:"Review files"}),P>0&&e.push({title:`${P} memory write${1===P?"":"s"} in quarantine`,detail:"Review blocked writes before they become silent operator debt.",severity:P>10?"critical":"medium",href:"/protection?tab=quarantine",cta:"Review writes"}),R>0&&e.push({title:`${R} contradiction${1===R?"":"s"} detected`,detail:"Conflicting facts reduce recall trust.",severity:R>5?"high":"medium",href:"/memory?tab=review",cta:"Resolve"}),I>0&&e.push({title:`${I} blocked operation${1===I?"":"s"} (24h)`,detail:"Defence pipeline blocked suspicious writes.",severity:"high",href:"/protection?tab=audit",cta:"View audit"}),B+O>0&&e.push({title:"Memory cleanup available",detail:`${B} stale, ${O} duplicate, ${U} unused memories.`,severity:"low",href:"/memory?tab=review",cta:"Clean up"}),e.slice(0,4)},[M,P,R,I,B,O,U]),X=M>0&&P>0?`${M} file finding${1===M?"":"s"}, ${P} write${1===P?"":"s"} pending.`:M>0?`${M} memory-file finding${1===M?"":"s"} pending.`:`${L} item${1===L?"":"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.jsxs)("div",{className:"grid grid-cols-2 gap-4 lg:grid-cols-5",children:[(0,t.jsx)(h.StatCard,{label:"Stored Memories",value:T.toLocaleString(),icon:l.Database,accent:"cyan",trend:E>0?{value:E,label:"healthy"}:void 0}),(0,t.jsx)(h.StatCard,{label:"Memory Files Flagged",value:M.toLocaleString(),icon:o.FileText,accent:M>0?"amber":"muted"}),(0,t.jsx)(h.StatCard,{label:"Threats Blocked",value:I.toLocaleString(),icon:y.ShieldAlert,accent:I>0?"coral":"muted"}),(0,t.jsx)(h.StatCard,{label:"X-Ray Scans",value:D.toLocaleString(),icon:u.ScanSearch,accent:"cyan"}),(0,t.jsx)(h.StatCard,{label:"Health Score",value:`${E}%`,icon:d.Shield,accent:E>=80?"cyan":E>=50?"amber":"coral"})]}),(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-6 lg:grid-cols-[1fr_1fr]",children:[(0,t.jsxs)(m.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*E} 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:[E,"%"]}),(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:K}),(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:$}),(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:A}),(0,t.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)]",children:"Critical"})]})]})]}),(0,t.jsxs)(m.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"}),_.length>0&&(0,t.jsxs)(v.Badge,{variant:"coral",dot:!0,pulse:!0,children:[_.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===_.length?(0,t.jsxs)("div",{className:"flex items-center gap-3 rounded-xl bg-[var(--sc-bg-elevated)] p-4",children:[(0,t.jsx)(n.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."})]})]}):_.map(e=>(0,t.jsxs)(r.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)(i.AlertTriangle,{size:16,className:"mt-0.5 shrink-0 text-[var(--sc-coral)]"}):"medium"===e.severity?(0,t.jsx)(c.Clock3,{size:16,className:"mt-0.5 shrink-0 text-[var(--sc-amber)]"}):(0,t.jsx)(n.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)(s.ArrowRight,{size:12})]})]},e.title))})]})]}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4 lg:grid-cols-4",children:[(0,t.jsx)(r.default,{href:"/xray",children:(0,t.jsxs)(m.GlassCard,{hover:!0,className:"p-5",children:[(0,t.jsx)(u.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)(r.default,{href:"/protection?tab=quarantine",children:(0,t.jsxs)(m.GlassCard,{hover:!0,className:"p-5",children:[(0,t.jsx)(i.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:X})]})}),(0,t.jsx)(r.default,{href:"/memory?tab=recall",children:(0,t.jsxs)(m.GlassCard,{hover:!0,className:"p-5",children:[(0,t.jsx)(l.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)(r.default,{href:"/protection?tab=dome",children:(0,t.jsxs)(m.GlassCard,{hover:!0,className:"p-5",children:[(0,t.jsx)(y.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)(m.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)(v.Badge,{variant:Q?.tier==="pro"?"cyan":Q?.tier==="team"?"coral":"muted",children:w.TIER_LABELS[Q?.tier??"free"]})]}),Q?.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)(x.Button,{variant:"coral",size:"sm",glow:!0,children:"Upgrade"})})]})]})]})})}e.s(["default",()=>q])}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,45434,t=>{"use strict";let e=(0,t.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"}]]);t.s(["Activity",()=>e],45434)},13808,t=>{"use strict";let e=(0,t.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"}]]);t.s(["Sparkles",()=>e],13808)},24929,t=>{"use strict";var e=t.i(4);let a=t=>{let e=t.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,e,a)=>a?a.toUpperCase():e.toLowerCase());return e.charAt(0).toUpperCase()+e.slice(1)},r=(...t)=>t.filter((t,e,a)=>!!t&&""!==t.trim()&&a.indexOf(t)===e).join(" ").trim();var o={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 s=(0,e.forwardRef)(({color:t="currentColor",size:a=24,strokeWidth:s=2,absoluteStrokeWidth:n,className:i="",children:l,iconNode:d,...u},c)=>(0,e.createElement)("svg",{ref:c,...o,width:a,height:a,stroke:t,strokeWidth:n?24*Number(s)/Number(a):s,className:r("lucide",i),...!l&&!(t=>{for(let e in t)if(e.startsWith("aria-")||"role"===e||"title"===e)return!0})(u)&&{"aria-hidden":"true"},...u},[...d.map(([t,a])=>(0,e.createElement)(t,a)),...Array.isArray(l)?l:[l]])),n=(t,o)=>{let n=(0,e.forwardRef)(({className:n,...i},l)=>(0,e.createElement)(s,{ref:l,iconNode:o,className:r(`lucide-${a(t).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${t}`,n),...i}));return n.displayName=a(t),n};t.s(["default",()=>n],24929)},71921,t=>{"use strict";var e=t.i(4),a=t.i(21230),r=t.i(79736),o=t.i(70207),s=t.i(60904),n=class extends o.Subscribable{#t;#e=void 0;#a;#r;constructor(t,e){super(),this.#t=t,this.setOptions(e),this.bindMethods(),this.#o()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(t){let e=this.options;this.options=this.#t.defaultMutationOptions(t),(0,s.shallowEqualObjects)(this.options,e)||this.#t.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#a,observer:this}),e?.mutationKey&&this.options.mutationKey&&(0,s.hashKey)(e.mutationKey)!==(0,s.hashKey)(this.options.mutationKey)?this.reset():this.#a?.state.status==="pending"&&this.#a.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#a?.removeObserver(this)}onMutationUpdate(t){this.#o(),this.#s(t)}getCurrentResult(){return this.#e}reset(){this.#a?.removeObserver(this),this.#a=void 0,this.#o(),this.#s()}mutate(t,e){return this.#r=e,this.#a?.removeObserver(this),this.#a=this.#t.getMutationCache().build(this.#t,this.options),this.#a.addObserver(this),this.#a.execute(t)}#o(){let t=this.#a?.state??(0,a.getDefaultState)();this.#e={...t,isPending:"pending"===t.status,isSuccess:"success"===t.status,isError:"error"===t.status,isIdle:"idle"===t.status,mutate:this.mutate,reset:this.reset}}#s(t){r.notifyManager.batch(()=>{if(this.#r&&this.hasListeners()){let e=this.#e.variables,a=this.#e.context,r={client:this.#t,meta:this.options.meta,mutationKey:this.options.mutationKey};if(t?.type==="success"){try{this.#r.onSuccess?.(t.data,e,a,r)}catch(t){Promise.reject(t)}try{this.#r.onSettled?.(t.data,null,e,a,r)}catch(t){Promise.reject(t)}}else if(t?.type==="error"){try{this.#r.onError?.(t.error,e,a,r)}catch(t){Promise.reject(t)}try{this.#r.onSettled?.(void 0,t.error,e,a,r)}catch(t){Promise.reject(t)}}}this.listeners.forEach(t=>{t(this.#e)})})}},i=t.i(1235);function l(t,a){let o=(0,i.useQueryClient)(a),[l]=e.useState(()=>new n(o,t));e.useEffect(()=>{l.setOptions(t)},[l,t]);let d=e.useSyncExternalStore(e.useCallback(t=>l.subscribe(r.notifyManager.batchCalls(t)),[l]),()=>l.getCurrentResult(),()=>l.getCurrentResult()),u=e.useCallback((t,e)=>{l.mutate(t,e).catch(s.noop)},[l]);if(d.error&&(0,s.shouldThrowError)(l.options.throwOnError,[d.error]))throw d.error;return{...d,mutate:u,mutateAsync:d.mutate}}t.s(["useMutation",()=>l],71921)},51069,t=>{"use strict";let e=(0,t.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"}]]);t.s(["ShieldAlert",()=>e],51069)},27528,t=>{"use strict";let e=(0,t.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"}]]);t.s(["Shield",()=>e],27528)},48615,t=>{"use strict";var e=t.i(4),a=t.i(9854);let r=Array(12).fill(0),o=({visible:t,className:a})=>e.default.createElement("div",{className:["sonner-loading-wrapper",a].filter(Boolean).join(" "),"data-visible":t},e.default.createElement("div",{className:"sonner-spinner"},r.map((t,a)=>e.default.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${a}`})))),s=e.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},e.default.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),n=e.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},e.default.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),i=e.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},e.default.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),l=e.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},e.default.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),d=e.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},e.default.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e.default.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),u=1,c=new class{constructor(){this.subscribe=t=>(this.subscribers.push(t),()=>{let e=this.subscribers.indexOf(t);this.subscribers.splice(e,1)}),this.publish=t=>{this.subscribers.forEach(e=>e(t))},this.addToast=t=>{this.publish(t),this.toasts=[...this.toasts,t]},this.create=t=>{var e;let{message:a,...r}=t,o="number"==typeof(null==t?void 0:t.id)||(null==(e=t.id)?void 0:e.length)>0?t.id:u++,s=this.toasts.find(t=>t.id===o),n=void 0===t.dismissible||t.dismissible;return this.dismissedToasts.has(o)&&this.dismissedToasts.delete(o),s?this.toasts=this.toasts.map(e=>e.id===o?(this.publish({...e,...t,id:o,title:a}),{...e,...t,id:o,dismissible:n,title:a}):e):this.addToast({title:a,...r,dismissible:n,id:o}),o},this.dismiss=t=>(t?(this.dismissedToasts.add(t),requestAnimationFrame(()=>this.subscribers.forEach(e=>e({id:t,dismiss:!0})))):this.toasts.forEach(t=>{this.subscribers.forEach(e=>e({id:t.id,dismiss:!0}))}),t),this.message=(t,e)=>this.create({...e,message:t}),this.error=(t,e)=>this.create({...e,message:t,type:"error"}),this.success=(t,e)=>this.create({...e,type:"success",message:t}),this.info=(t,e)=>this.create({...e,type:"info",message:t}),this.warning=(t,e)=>this.create({...e,type:"warning",message:t}),this.loading=(t,e)=>this.create({...e,type:"loading",message:t}),this.promise=(t,a)=>{let r,o;if(!a)return;void 0!==a.loading&&(o=this.create({...a,promise:t,type:"loading",message:a.loading,description:"function"!=typeof a.description?a.description:void 0}));let s=Promise.resolve(t instanceof Function?t():t),n=void 0!==o,i=s.then(async t=>{if(r=["resolve",t],e.default.isValidElement(t))n=!1,this.create({id:o,type:"default",message:t});else if(f(t)&&!t.ok){n=!1;let r="function"==typeof a.error?await a.error(`HTTP error! status: ${t.status}`):a.error,s="function"==typeof a.description?await a.description(`HTTP error! status: ${t.status}`):a.description,i="object"!=typeof r||e.default.isValidElement(r)?{message:r}:r;this.create({id:o,type:"error",description:s,...i})}else if(t instanceof Error){n=!1;let r="function"==typeof a.error?await a.error(t):a.error,s="function"==typeof a.description?await a.description(t):a.description,i="object"!=typeof r||e.default.isValidElement(r)?{message:r}:r;this.create({id:o,type:"error",description:s,...i})}else if(void 0!==a.success){n=!1;let r="function"==typeof a.success?await a.success(t):a.success,s="function"==typeof a.description?await a.description(t):a.description,i="object"!=typeof r||e.default.isValidElement(r)?{message:r}:r;this.create({id:o,type:"success",description:s,...i})}}).catch(async t=>{if(r=["reject",t],void 0!==a.error){n=!1;let r="function"==typeof a.error?await a.error(t):a.error,s="function"==typeof a.description?await a.description(t):a.description,i="object"!=typeof r||e.default.isValidElement(r)?{message:r}:r;this.create({id:o,type:"error",description:s,...i})}}).finally(()=>{n&&(this.dismiss(o),o=void 0),null==a.finally||a.finally.call(a)}),l=()=>new Promise((t,e)=>i.then(()=>"reject"===r[0]?e(r[1]):t(r[1])).catch(e));return"string"!=typeof o&&"number"!=typeof o?{unwrap:l}:Object.assign(o,{unwrap:l})},this.custom=(t,e)=>{let a=(null==e?void 0:e.id)||u++;return this.create({jsx:t(a),id:a,...e}),a},this.getActiveToasts=()=>this.toasts.filter(t=>!this.dismissedToasts.has(t.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},f=t=>t&&"object"==typeof t&&"ok"in t&&"boolean"==typeof t.ok&&"status"in t&&"number"==typeof t.status,m=Object.assign((t,e)=>{let a=(null==e?void 0:e.id)||u++;return c.addToast({title:t,...e,id:a}),a},{success:c.success,info:c.info,warning:c.warning,error:c.error,custom:c.custom,message:c.message,promise:c.promise,dismiss:c.dismiss,loading:c.loading},{getHistory:()=>c.toasts,getToasts:()=>c.getActiveToasts()});function h(t){return void 0!==t.label}function p(...t){return t.filter(Boolean).join(" ")}!function(t){if(!t||"u"<typeof document)return;let e=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css",e.appendChild(a),a.styleSheet?a.styleSheet.cssText=t:a.appendChild(document.createTextNode(t))}("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");let g=t=>{var a,r,u,c,f,m,g,b,y,v,w,x,E;let{invert:k,toast:M,unstyled:C,interacting:S,setHeights:N,visibleToasts:T,heights:R,index:B,toasts:j,expanded:z,removeToast:A,defaultRichColors:O,closeButton:P,style:$,cancelButtonStyle:L,actionButtonStyle:D,className:Y="",descriptionClassName:I="",duration:K,position:U,gap:H,expandByDefault:V,classNames:X,icons:F,closeButtonAriaLabel:W="Close toast"}=t,[q,Z]=e.default.useState(null),[Q,_]=e.default.useState(null),[G,J]=e.default.useState(!1),[tt,te]=e.default.useState(!1),[ta,tr]=e.default.useState(!1),[to,ts]=e.default.useState(!1),[tn,ti]=e.default.useState(!1),[tl,td]=e.default.useState(0),[tu,tc]=e.default.useState(0),tf=e.default.useRef(M.duration||K||4e3),tm=e.default.useRef(null),th=e.default.useRef(null),tp=0===B,tg=B+1<=T,tb=M.type,ty=!1!==M.dismissible,tv=M.className||"",tw=M.descriptionClassName||"",tx=e.default.useMemo(()=>R.findIndex(t=>t.toastId===M.id)||0,[R,M.id]),tE=e.default.useMemo(()=>{var t;return null!=(t=M.closeButton)?t:P},[M.closeButton,P]),tk=e.default.useMemo(()=>M.duration||K||4e3,[M.duration,K]),tM=e.default.useRef(0),tC=e.default.useRef(0),tS=e.default.useRef(0),tN=e.default.useRef(null),[tT,tR]=U.split("-"),tB=e.default.useMemo(()=>R.reduce((t,e,a)=>a>=tx?t:t+e.height,0),[R,tx]),tj=(()=>{let[t,a]=e.default.useState(document.hidden);return e.default.useEffect(()=>{let t=()=>{a(document.hidden)};return document.addEventListener("visibilitychange",t),()=>window.removeEventListener("visibilitychange",t)},[]),t})(),tz=M.invert||k,tA="loading"===tb;tC.current=e.default.useMemo(()=>tx*H+tB,[tx,tB]),e.default.useEffect(()=>{tf.current=tk},[tk]),e.default.useEffect(()=>{J(!0)},[]),e.default.useEffect(()=>{let t=th.current;if(t){let e=t.getBoundingClientRect().height;return tc(e),N(t=>[{toastId:M.id,height:e,position:M.position},...t]),()=>N(t=>t.filter(t=>t.toastId!==M.id))}},[N,M.id]),e.default.useLayoutEffect(()=>{if(!G)return;let t=th.current,e=t.style.height;t.style.height="auto";let a=t.getBoundingClientRect().height;t.style.height=e,tc(a),N(t=>t.find(t=>t.toastId===M.id)?t.map(t=>t.toastId===M.id?{...t,height:a}:t):[{toastId:M.id,height:a,position:M.position},...t])},[G,M.title,M.description,N,M.id,M.jsx,M.action,M.cancel]);let tO=e.default.useCallback(()=>{te(!0),td(tC.current),N(t=>t.filter(t=>t.toastId!==M.id)),setTimeout(()=>{A(M)},200)},[M,A,N,tC]);e.default.useEffect(()=>{let t;if((!M.promise||"loading"!==tb)&&M.duration!==1/0&&"loading"!==M.type){if(z||S||tj){if(tS.current<tM.current){let t=new Date().getTime()-tM.current;tf.current=tf.current-t}tS.current=new Date().getTime()}else tf.current!==1/0&&(tM.current=new Date().getTime(),t=setTimeout(()=>{null==M.onAutoClose||M.onAutoClose.call(M,M),tO()},tf.current));return()=>clearTimeout(t)}},[z,S,M,tb,tj,tO]),e.default.useEffect(()=>{M.delete&&(tO(),null==M.onDismiss||M.onDismiss.call(M,M))},[tO,M.delete]);let tP=M.icon||(null==F?void 0:F[tb])||(t=>{switch(t){case"success":return s;case"info":return i;case"warning":return n;case"error":return l;default:return null}})(tb);return e.default.createElement("li",{tabIndex:0,ref:th,className:p(Y,tv,null==X?void 0:X.toast,null==M||null==(a=M.classNames)?void 0:a.toast,null==X?void 0:X.default,null==X?void 0:X[tb],null==M||null==(r=M.classNames)?void 0:r[tb]),"data-sonner-toast":"","data-rich-colors":null!=(v=M.richColors)?v:O,"data-styled":!(M.jsx||M.unstyled||C),"data-mounted":G,"data-promise":!!M.promise,"data-swiped":tn,"data-removed":tt,"data-visible":tg,"data-y-position":tT,"data-x-position":tR,"data-index":B,"data-front":tp,"data-swiping":ta,"data-dismissible":ty,"data-type":tb,"data-invert":tz,"data-swipe-out":to,"data-swipe-direction":Q,"data-expanded":!!(z||V&&G),"data-testid":M.testId,style:{"--index":B,"--toasts-before":B,"--z-index":j.length-B,"--offset":`${tt?tl:tC.current}px`,"--initial-height":V?"auto":`${tu}px`,...$,...M.style},onDragEnd:()=>{tr(!1),Z(null),tN.current=null},onPointerDown:t=>{2===t.button||tA||!ty||(tm.current=new Date,td(tC.current),t.target.setPointerCapture(t.pointerId),"BUTTON"!==t.target.tagName&&(tr(!0),tN.current={x:t.clientX,y:t.clientY}))},onPointerUp:()=>{var t,e,a,r,o;if(to||!ty)return;tN.current=null;let s=Number((null==(t=th.current)?void 0:t.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),n=Number((null==(e=th.current)?void 0:e.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),i=new Date().getTime()-(null==(a=tm.current)?void 0:a.getTime()),l="x"===q?s:n,d=Math.abs(l)/i;if(Math.abs(l)>=45||d>.11){td(tC.current),null==M.onDismiss||M.onDismiss.call(M,M),"x"===q?_(s>0?"right":"left"):_(n>0?"down":"up"),tO(),ts(!0);return}null==(r=th.current)||r.style.setProperty("--swipe-amount-x","0px"),null==(o=th.current)||o.style.setProperty("--swipe-amount-y","0px"),ti(!1),tr(!1),Z(null)},onPointerMove:e=>{var a,r,o,s;if(!tN.current||!ty||(null==(a=window.getSelection())?void 0:a.toString().length)>0)return;let n=e.clientY-tN.current.y,i=e.clientX-tN.current.x,l=null!=(s=t.swipeDirections)?s:function(t){let[e,a]=t.split("-"),r=[];return e&&r.push(e),a&&r.push(a),r}(U);!q&&(Math.abs(i)>1||Math.abs(n)>1)&&Z(Math.abs(i)>Math.abs(n)?"x":"y");let d={x:0,y:0},u=t=>1/(1.5+Math.abs(t)/20);if("y"===q){if(l.includes("top")||l.includes("bottom"))if(l.includes("top")&&n<0||l.includes("bottom")&&n>0)d.y=n;else{let t=n*u(n);d.y=Math.abs(t)<Math.abs(n)?t:n}}else if("x"===q&&(l.includes("left")||l.includes("right")))if(l.includes("left")&&i<0||l.includes("right")&&i>0)d.x=i;else{let t=i*u(i);d.x=Math.abs(t)<Math.abs(i)?t:i}(Math.abs(d.x)>0||Math.abs(d.y)>0)&&ti(!0),null==(r=th.current)||r.style.setProperty("--swipe-amount-x",`${d.x}px`),null==(o=th.current)||o.style.setProperty("--swipe-amount-y",`${d.y}px`)}},tE&&!M.jsx&&"loading"!==tb?e.default.createElement("button",{"aria-label":W,"data-disabled":tA,"data-close-button":!0,onClick:tA||!ty?()=>{}:()=>{tO(),null==M.onDismiss||M.onDismiss.call(M,M)},className:p(null==X?void 0:X.closeButton,null==M||null==(u=M.classNames)?void 0:u.closeButton)},null!=(w=null==F?void 0:F.close)?w:d):null,(tb||M.icon||M.promise)&&null!==M.icon&&((null==F?void 0:F[tb])!==null||M.icon)?e.default.createElement("div",{"data-icon":"",className:p(null==X?void 0:X.icon,null==M||null==(c=M.classNames)?void 0:c.icon)},M.promise||"loading"===M.type&&!M.icon?M.icon||((null==F?void 0:F.loading)?e.default.createElement("div",{className:p(null==X?void 0:X.loader,null==M||null==(E=M.classNames)?void 0:E.loader,"sonner-loader"),"data-visible":"loading"===tb},F.loading):e.default.createElement(o,{className:p(null==X?void 0:X.loader,null==M||null==(x=M.classNames)?void 0:x.loader),visible:"loading"===tb})):null,"loading"!==M.type?tP:null):null,e.default.createElement("div",{"data-content":"",className:p(null==X?void 0:X.content,null==M||null==(f=M.classNames)?void 0:f.content)},e.default.createElement("div",{"data-title":"",className:p(null==X?void 0:X.title,null==M||null==(m=M.classNames)?void 0:m.title)},M.jsx?M.jsx:"function"==typeof M.title?M.title():M.title),M.description?e.default.createElement("div",{"data-description":"",className:p(I,tw,null==X?void 0:X.description,null==M||null==(g=M.classNames)?void 0:g.description)},"function"==typeof M.description?M.description():M.description):null),e.default.isValidElement(M.cancel)?M.cancel:M.cancel&&h(M.cancel)?e.default.createElement("button",{"data-button":!0,"data-cancel":!0,style:M.cancelButtonStyle||L,onClick:t=>{!h(M.cancel)||ty&&(null==M.cancel.onClick||M.cancel.onClick.call(M.cancel,t),tO())},className:p(null==X?void 0:X.cancelButton,null==M||null==(b=M.classNames)?void 0:b.cancelButton)},M.cancel.label):null,e.default.isValidElement(M.action)?M.action:M.action&&h(M.action)?e.default.createElement("button",{"data-button":!0,"data-action":!0,style:M.actionButtonStyle||D,onClick:t=>{!h(M.action)||(null==M.action.onClick||M.action.onClick.call(M.action,t),t.defaultPrevented||tO())},className:p(null==X?void 0:X.actionButton,null==M||null==(y=M.classNames)?void 0:y.actionButton)},M.action.label):null)};function b(){if("u"<typeof window||"u"<typeof document)return"ltr";let t=document.documentElement.getAttribute("dir");return"auto"!==t&&t?t:window.getComputedStyle(document.documentElement).direction}let y=e.default.forwardRef(function(t,r){let{id:o,invert:s,position:n="bottom-right",hotkey:i=["altKey","KeyT"],expand:l,closeButton:d,className:u,offset:f,mobileOffset:m,theme:h="light",richColors:p,duration:y,style:v,visibleToasts:w=3,toastOptions:x,dir:E=b(),gap:k=14,icons:M,containerAriaLabel:C="Notifications"}=t,[S,N]=e.default.useState([]),T=e.default.useMemo(()=>o?S.filter(t=>t.toasterId===o):S.filter(t=>!t.toasterId),[S,o]),R=e.default.useMemo(()=>Array.from(new Set([n].concat(T.filter(t=>t.position).map(t=>t.position)))),[T,n]),[B,j]=e.default.useState([]),[z,A]=e.default.useState(!1),[O,P]=e.default.useState(!1),[$,L]=e.default.useState("system"!==h?h:"u">typeof window&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),D=e.default.useRef(null),Y=i.join("+").replace(/Key/g,"").replace(/Digit/g,""),I=e.default.useRef(null),K=e.default.useRef(!1),U=e.default.useCallback(t=>{N(e=>{var a;return(null==(a=e.find(e=>e.id===t.id))?void 0:a.delete)||c.dismiss(t.id),e.filter(({id:e})=>e!==t.id)})},[]);return e.default.useEffect(()=>c.subscribe(t=>{t.dismiss?requestAnimationFrame(()=>{N(e=>e.map(e=>e.id===t.id?{...e,delete:!0}:e))}):setTimeout(()=>{a.default.flushSync(()=>{N(e=>{let a=e.findIndex(e=>e.id===t.id);return -1!==a?[...e.slice(0,a),{...e[a],...t},...e.slice(a+1)]:[t,...e]})})})}),[S]),e.default.useEffect(()=>{if("system"!==h)return void L(h);if("system"===h&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?L("dark"):L("light")),"u"<typeof window)return;let t=window.matchMedia("(prefers-color-scheme: dark)");try{t.addEventListener("change",({matches:t})=>{t?L("dark"):L("light")})}catch(e){t.addListener(({matches:t})=>{try{t?L("dark"):L("light")}catch(t){console.error(t)}})}},[h]),e.default.useEffect(()=>{S.length<=1&&A(!1)},[S]),e.default.useEffect(()=>{let t=t=>{var e,a;i.every(e=>t[e]||t.code===e)&&(A(!0),null==(a=D.current)||a.focus()),"Escape"===t.code&&(document.activeElement===D.current||(null==(e=D.current)?void 0:e.contains(document.activeElement)))&&A(!1)};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[i]),e.default.useEffect(()=>{if(D.current)return()=>{I.current&&(I.current.focus({preventScroll:!0}),I.current=null,K.current=!1)}},[D.current]),e.default.createElement("section",{ref:r,"aria-label":`${C} ${Y}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},R.map((a,r)=>{var o;let n,[i,c]=a.split("-");return T.length?e.default.createElement("ol",{key:a,dir:"auto"===E?b():E,tabIndex:-1,ref:D,className:u,"data-sonner-toaster":!0,"data-sonner-theme":$,"data-y-position":i,"data-x-position":c,style:{"--front-toast-height":`${(null==(o=B[0])?void 0:o.height)||0}px`,"--width":"356px","--gap":`${k}px`,...v,...(n={},[f,m].forEach((t,e)=>{let a=1===e,r=a?"--mobile-offset":"--offset",o=a?"16px":"24px";function s(t){["top","right","bottom","left"].forEach(e=>{n[`${r}-${e}`]="number"==typeof t?`${t}px`:t})}"number"==typeof t||"string"==typeof t?s(t):"object"==typeof t?["top","right","bottom","left"].forEach(e=>{void 0===t[e]?n[`${r}-${e}`]=o:n[`${r}-${e}`]="number"==typeof t[e]?`${t[e]}px`:t[e]}):s(o)}),n)},onBlur:t=>{K.current&&!t.currentTarget.contains(t.relatedTarget)&&(K.current=!1,I.current&&(I.current.focus({preventScroll:!0}),I.current=null))},onFocus:t=>{!(t.target instanceof HTMLElement&&"false"===t.target.dataset.dismissible)&&(K.current||(K.current=!0,I.current=t.relatedTarget))},onMouseEnter:()=>A(!0),onMouseMove:()=>A(!0),onMouseLeave:()=>{O||A(!1)},onDragEnd:()=>A(!1),onPointerDown:t=>{t.target instanceof HTMLElement&&"false"===t.target.dataset.dismissible||P(!0)},onPointerUp:()=>P(!1)},T.filter(t=>!t.position&&0===r||t.position===a).map((r,o)=>{var n,i;return e.default.createElement(g,{key:r.id,icons:M,index:o,toast:r,defaultRichColors:p,duration:null!=(n=null==x?void 0:x.duration)?n:y,className:null==x?void 0:x.className,descriptionClassName:null==x?void 0:x.descriptionClassName,invert:s,visibleToasts:w,closeButton:null!=(i=null==x?void 0:x.closeButton)?i:d,interacting:O,position:a,style:null==x?void 0:x.style,unstyled:null==x?void 0:x.unstyled,classNames:null==x?void 0:x.classNames,cancelButtonStyle:null==x?void 0:x.cancelButtonStyle,actionButtonStyle:null==x?void 0:x.actionButtonStyle,closeButtonAriaLabel:null==x?void 0:x.closeButtonAriaLabel,removeToast:U,toasts:T.filter(t=>t.position==r.position),heights:B.filter(t=>t.position==r.position),setHeights:j,expandByDefault:l,gap:k,expanded:z,swipeDirections:t.swipeDirections})})):null}))});t.s(["Toaster",()=>y,"toast",()=>m])}]);
@@ -9,7 +9,7 @@ const currentPort = parseInt(process.env.PORT, 10) || 3000
9
9
  const hostname = process.env.HOSTNAME || '0.0.0.0'
10
10
 
11
11
  let keepAliveTimeout = parseInt(process.env.KEEP_ALIVE_TIMEOUT, 10)
12
- const nextConfig = {"env":{},"webpack":null,"typescript":{"ignoreBuildErrors":false},"typedRoutes":false,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.ts","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":14400,"formats":["image/webp"],"maximumRedirects":3,"dangerouslyAllowLocalIP":false,"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","localPatterns":[{"pathname":"**","search":""}],"remotePatterns":[],"qualities":[75],"unoptimized":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"reactProductionProfiling":false,"reactStrictMode":null,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/home/runner/work/ShieldCortex/ShieldCortex","cacheComponents":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":31536000}},"cacheHandlers":{},"experimental":{"useSkewCookie":false,"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"prerenderEarlyExit":true,"serverMinification":true,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"dynamicOnHover":false,"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","proxyPrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":3,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"imgOptSkipMetadata":null,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"viewTransition":false,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":false,"staleTimes":{"dynamic":0,"static":300},"reactDebugChannel":false,"serverComponentsHmrCache":true,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"transitionIndicator":false,"inlineCss":false,"useCache":false,"globalNotFound":false,"browserDebugInfoInTerminal":false,"lockDistDir":true,"isolatedDevBuild":true,"proxyClientMaxBodySize":10485760,"hideLogsAfterAbort":false,"mcpServer":true,"turbopackFileSystemCacheForDev":true,"turbopackFileSystemCacheForBuild":false,"turbopackInferModuleSideEffects":false,"optimizePackageImports":["lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight","bundlePagesRouterDependencies":false,"configFileName":"next.config.ts","outputFileTracingExcludes":{"*":["**/node_modules/sharp/**","**/node_modules/@img/**"]},"turbopack":{"root":"/home/runner/work/ShieldCortex/ShieldCortex"},"distDirRoot":".next"}
12
+ const nextConfig = {"env":{},"webpack":null,"typescript":{"ignoreBuildErrors":false},"typedRoutes":false,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.ts","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":14400,"formats":["image/webp"],"maximumRedirects":3,"dangerouslyAllowLocalIP":false,"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","localPatterns":[{"pathname":"**","search":""}],"remotePatterns":[],"qualities":[75],"unoptimized":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"reactProductionProfiling":false,"reactStrictMode":null,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/Users/michael/Development/ShieldCortex-Project/ShieldCortex","cacheComponents":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":31536000}},"cacheHandlers":{},"experimental":{"useSkewCookie":false,"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"prerenderEarlyExit":true,"serverMinification":true,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"dynamicOnHover":false,"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","proxyPrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":9,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"imgOptSkipMetadata":null,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"viewTransition":false,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":false,"staleTimes":{"dynamic":0,"static":300},"reactDebugChannel":false,"serverComponentsHmrCache":true,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"transitionIndicator":false,"inlineCss":false,"useCache":false,"globalNotFound":false,"browserDebugInfoInTerminal":false,"lockDistDir":true,"isolatedDevBuild":true,"proxyClientMaxBodySize":10485760,"hideLogsAfterAbort":false,"mcpServer":true,"turbopackFileSystemCacheForDev":true,"turbopackFileSystemCacheForBuild":false,"turbopackInferModuleSideEffects":false,"optimizePackageImports":["lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight","bundlePagesRouterDependencies":false,"configFileName":"next.config.ts","outputFileTracingExcludes":{"*":["**/node_modules/sharp/**","**/node_modules/@img/**"]},"turbopack":{"root":"/Users/michael/Development/ShieldCortex-Project/ShieldCortex"},"distDirRoot":".next"}
13
13
 
14
14
  process.env.__NEXT_PRIVATE_STANDALONE_CONFIG = JSON.stringify(nextConfig)
15
15
 
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Digest route — the "Cloudflare email" moment.
3
+ *
4
+ * Surfaces what ShieldCortex actually did for the user in the last N hours,
5
+ * with a top moments feed and a delta vs the previous equivalent window.
6
+ *
7
+ * Without this, the product is invisible. With it, the user has a one-glance
8
+ * answer to "is ShieldCortex earning its keep?" every time they open the
9
+ * dashboard.
10
+ */
11
+ import type { Express } from 'express';
12
+ export type DigestWindow = '24h' | '7d' | '30d';
13
+ interface DigestCounts {
14
+ scanned: number;
15
+ allowed: number;
16
+ blocked: number;
17
+ quarantined: number;
18
+ memoriesCaptured: number;
19
+ memoriesRecalled: number;
20
+ highSalienceCaptures: number;
21
+ }
22
+ interface DigestMoment {
23
+ kind: 'block' | 'quarantine' | 'capture' | 'recall' | 'pattern';
24
+ title: string;
25
+ detail: string;
26
+ timestamp: string;
27
+ memoryId?: number;
28
+ auditId?: number;
29
+ }
30
+ export interface DigestResponse {
31
+ window: DigestWindow;
32
+ windowLabel: string;
33
+ since: string;
34
+ current: DigestCounts;
35
+ previous: DigestCounts;
36
+ delta: Partial<Record<keyof DigestCounts, number>>;
37
+ topMoments: DigestMoment[];
38
+ topThreatPatterns: Array<{
39
+ pattern: string;
40
+ count: number;
41
+ }>;
42
+ generatedAt: string;
43
+ }
44
+ export declare function buildDigest(window: DigestWindow, project?: string): DigestResponse;
45
+ export interface TimelineDay {
46
+ date: string;
47
+ scanned: number;
48
+ blocked: number;
49
+ quarantined: number;
50
+ captured: number;
51
+ recalled: number;
52
+ }
53
+ /**
54
+ * Returns one row per day for the last `days` days, oldest first.
55
+ * Days with zero activity are still included (gives a clean sparkline shape).
56
+ */
57
+ export declare function buildTimeline(days: number, project?: string): TimelineDay[];
58
+ export declare function registerDigestRoutes(app: Express): void;
59
+ export {};