shieldcortex 4.6.4 → 4.6.7

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 (249) hide show
  1. package/dashboard/.next/standalone/dashboard/.next/BUILD_ID +1 -1
  2. package/dashboard/.next/standalone/dashboard/.next/build-manifest.json +2 -2
  3. package/dashboard/.next/standalone/dashboard/.next/prerender-manifest.json +3 -3
  4. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/admin/page_client-reference-manifest.js +1 -1
  5. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/cloud/page_client-reference-manifest.js +1 -1
  6. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/capture/page_client-reference-manifest.js +1 -1
  7. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/graph/page_client-reference-manifest.js +1 -1
  8. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/page_client-reference-manifest.js +1 -1
  9. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/recall/page_client-reference-manifest.js +1 -1
  10. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page_client-reference-manifest.js +1 -1
  11. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/timeline/page_client-reference-manifest.js +1 -1
  12. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/overview/page_client-reference-manifest.js +1 -1
  13. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/audit/page_client-reference-manifest.js +1 -1
  14. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/intercepts/page_client-reference-manifest.js +1 -1
  15. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/iron-dome/page_client-reference-manifest.js +1 -1
  16. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/page_client-reference-manifest.js +1 -1
  17. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/policies/page_client-reference-manifest.js +1 -1
  18. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/quarantine/page_client-reference-manifest.js +1 -1
  19. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  20. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/page_client-reference-manifest.js +1 -1
  21. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/xray/page_client-reference-manifest.js +1 -1
  22. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page_client-reference-manifest.js +1 -1
  23. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.html +2 -2
  24. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.rsc +1 -1
  25. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  26. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  27. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  28. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  29. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  30. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  31. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.html +1 -1
  32. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.rsc +2 -2
  33. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  34. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  35. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  36. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  37. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  38. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  39. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.html +1 -1
  40. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.rsc +2 -2
  41. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/!KGRhc2hib2FyZCk/admin/__PAGE__.segment.rsc +1 -1
  42. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/!KGRhc2hib2FyZCk/admin.segment.rsc +1 -1
  43. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  44. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_full.segment.rsc +2 -2
  45. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_head.segment.rsc +1 -1
  46. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_index.segment.rsc +2 -2
  47. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_tree.segment.rsc +2 -2
  48. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.html +1 -1
  49. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.rsc +2 -2
  50. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/!KGRhc2hib2FyZCk/cloud/__PAGE__.segment.rsc +1 -1
  51. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/!KGRhc2hib2FyZCk/cloud.segment.rsc +1 -1
  52. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  53. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_full.segment.rsc +2 -2
  54. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_head.segment.rsc +1 -1
  55. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_index.segment.rsc +2 -2
  56. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_tree.segment.rsc +2 -2
  57. package/dashboard/.next/standalone/dashboard/.next/server/app/index.html +1 -1
  58. package/dashboard/.next/standalone/dashboard/.next/server/app/index.rsc +2 -2
  59. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  60. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_full.segment.rsc +2 -2
  61. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_head.segment.rsc +1 -1
  62. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_index.segment.rsc +2 -2
  63. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  64. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.html +1 -1
  65. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.rsc +2 -2
  66. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory/capture/__PAGE__.segment.rsc +1 -1
  67. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory/capture.segment.rsc +1 -1
  68. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  69. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  70. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_full.segment.rsc +2 -2
  71. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_head.segment.rsc +1 -1
  72. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_index.segment.rsc +2 -2
  73. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_tree.segment.rsc +2 -2
  74. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.html +1 -1
  75. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.rsc +2 -2
  76. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory/graph/__PAGE__.segment.rsc +1 -1
  77. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory/graph.segment.rsc +1 -1
  78. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  79. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  80. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_full.segment.rsc +2 -2
  81. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_head.segment.rsc +1 -1
  82. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_index.segment.rsc +2 -2
  83. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_tree.segment.rsc +2 -2
  84. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.html +1 -1
  85. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.rsc +2 -2
  86. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory/recall/__PAGE__.segment.rsc +1 -1
  87. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory/recall.segment.rsc +1 -1
  88. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  89. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  90. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_full.segment.rsc +2 -2
  91. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_head.segment.rsc +1 -1
  92. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_index.segment.rsc +2 -2
  93. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_tree.segment.rsc +2 -2
  94. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.html +1 -1
  95. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.rsc +2 -2
  96. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory/review/__PAGE__.segment.rsc +1 -1
  97. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory/review.segment.rsc +1 -1
  98. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  99. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  100. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_full.segment.rsc +2 -2
  101. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_head.segment.rsc +1 -1
  102. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_index.segment.rsc +2 -2
  103. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_tree.segment.rsc +2 -2
  104. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.html +1 -1
  105. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.rsc +2 -2
  106. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory/timeline/__PAGE__.segment.rsc +1 -1
  107. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory/timeline.segment.rsc +1 -1
  108. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  109. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  110. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_full.segment.rsc +2 -2
  111. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_head.segment.rsc +1 -1
  112. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_index.segment.rsc +2 -2
  113. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_tree.segment.rsc +2 -2
  114. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.html +1 -1
  115. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.rsc +3 -3
  116. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk/memory/__PAGE__.segment.rsc +2 -2
  117. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  118. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  119. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_full.segment.rsc +3 -3
  120. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_head.segment.rsc +1 -1
  121. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_index.segment.rsc +2 -2
  122. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_tree.segment.rsc +2 -2
  123. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.html +1 -1
  124. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.rsc +2 -2
  125. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk/overview/__PAGE__.segment.rsc +1 -1
  126. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk/overview.segment.rsc +1 -1
  127. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  128. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_full.segment.rsc +2 -2
  129. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_head.segment.rsc +1 -1
  130. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_index.segment.rsc +2 -2
  131. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_tree.segment.rsc +2 -2
  132. package/dashboard/.next/standalone/dashboard/.next/server/app/page_client-reference-manifest.js +1 -1
  133. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.html +1 -1
  134. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.rsc +2 -2
  135. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection/audit/__PAGE__.segment.rsc +1 -1
  136. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection/audit.segment.rsc +1 -1
  137. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  138. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  139. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_full.segment.rsc +2 -2
  140. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_head.segment.rsc +1 -1
  141. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_index.segment.rsc +2 -2
  142. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_tree.segment.rsc +2 -2
  143. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.html +1 -1
  144. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.rsc +2 -2
  145. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection/intercepts/__PAGE__.segment.rsc +1 -1
  146. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection/intercepts.segment.rsc +1 -1
  147. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  148. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  149. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_full.segment.rsc +2 -2
  150. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_head.segment.rsc +1 -1
  151. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_index.segment.rsc +2 -2
  152. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_tree.segment.rsc +2 -2
  153. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.html +1 -1
  154. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.rsc +2 -2
  155. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection/iron-dome/__PAGE__.segment.rsc +1 -1
  156. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection/iron-dome.segment.rsc +1 -1
  157. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  158. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  159. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_full.segment.rsc +2 -2
  160. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_head.segment.rsc +1 -1
  161. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_index.segment.rsc +2 -2
  162. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_tree.segment.rsc +2 -2
  163. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.html +1 -1
  164. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.rsc +2 -2
  165. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection/policies/__PAGE__.segment.rsc +1 -1
  166. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection/policies.segment.rsc +1 -1
  167. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  168. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  169. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_full.segment.rsc +2 -2
  170. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_head.segment.rsc +1 -1
  171. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_index.segment.rsc +2 -2
  172. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_tree.segment.rsc +2 -2
  173. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.html +1 -1
  174. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.rsc +2 -2
  175. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection/quarantine/__PAGE__.segment.rsc +1 -1
  176. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection/quarantine.segment.rsc +1 -1
  177. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  178. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  179. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_full.segment.rsc +2 -2
  180. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_head.segment.rsc +1 -1
  181. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_index.segment.rsc +2 -2
  182. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_tree.segment.rsc +2 -2
  183. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.html +1 -1
  184. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.rsc +2 -2
  185. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk/protection/__PAGE__.segment.rsc +1 -1
  186. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  187. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  188. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_full.segment.rsc +2 -2
  189. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_head.segment.rsc +1 -1
  190. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_index.segment.rsc +2 -2
  191. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_tree.segment.rsc +2 -2
  192. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.html +1 -1
  193. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.rsc +3 -3
  194. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings/__PAGE__.segment.rsc +2 -2
  195. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings.segment.rsc +1 -1
  196. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  197. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_full.segment.rsc +3 -3
  198. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  199. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  200. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  201. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.html +1 -1
  202. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.rsc +2 -2
  203. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain/xray/__PAGE__.segment.rsc +1 -1
  204. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain/xray.segment.rsc +1 -1
  205. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain.segment.rsc +1 -1
  206. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  207. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_full.segment.rsc +2 -2
  208. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_head.segment.rsc +1 -1
  209. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_index.segment.rsc +2 -2
  210. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_tree.segment.rsc +2 -2
  211. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.html +1 -1
  212. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.rsc +2 -2
  213. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk/supply-chain/__PAGE__.segment.rsc +1 -1
  214. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk/supply-chain.segment.rsc +1 -1
  215. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  216. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_full.segment.rsc +2 -2
  217. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_head.segment.rsc +1 -1
  218. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_index.segment.rsc +2 -2
  219. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_tree.segment.rsc +2 -2
  220. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.html +1 -1
  221. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.rsc +2 -2
  222. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk/xray/__PAGE__.segment.rsc +1 -1
  223. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk/xray.segment.rsc +1 -1
  224. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk.segment.rsc +1 -1
  225. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_full.segment.rsc +2 -2
  226. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_head.segment.rsc +1 -1
  227. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_index.segment.rsc +2 -2
  228. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_tree.segment.rsc +2 -2
  229. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_c219bf07._.js +2 -2
  230. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_components_settings_SettingsView_tsx_16dc83a7._.js +1 -1
  231. package/dashboard/.next/standalone/dashboard/.next/server/pages/404.html +1 -1
  232. package/dashboard/.next/standalone/dashboard/.next/server/pages/500.html +2 -2
  233. package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.js +1 -1
  234. package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.json +1 -1
  235. package/dashboard/.next/standalone/dashboard/.next/static/chunks/490bb998f5a16fcb.js +1 -0
  236. package/dashboard/.next/standalone/dashboard/.next/static/chunks/{344b86872b9c4525.js → 90f35860c69b2f0b.js} +3 -3
  237. package/dashboard/.next/standalone/dashboard/.next/static/chunks/915d5a8cf2d0807e.css +3 -0
  238. package/dist/api/routes/memories.js +4 -1
  239. package/dist/cloud/sync-queue.js +1 -1
  240. package/dist/database/init.js +62 -0
  241. package/dist/setup/openclaw.js +9 -10
  242. package/package.json +1 -1
  243. package/plugins/openclaw/dist/index.js +11 -1
  244. package/plugins/openclaw/dist/openclaw.plugin.json +1 -1
  245. package/dashboard/.next/standalone/dashboard/.next/static/chunks/8eaf3adbd52b96d5.css +0 -3
  246. package/dashboard/.next/standalone/dashboard/.next/static/chunks/abc5967c868b0fe9.js +0 -1
  247. /package/dashboard/.next/standalone/dashboard/.next/static/{ng0doEBxE4bijqUCWUE8a → sG7_2zW-_zI42it71Ihgy}/_buildManifest.js +0 -0
  248. /package/dashboard/.next/standalone/dashboard/.next/static/{ng0doEBxE4bijqUCWUE8a → sG7_2zW-_zI42it71Ihgy}/_clientMiddlewareManifest.json +0 -0
  249. /package/dashboard/.next/standalone/dashboard/.next/static/{ng0doEBxE4bijqUCWUE8a → sG7_2zW-_zI42it71Ihgy}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- module.exports=[59414,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esModule?a:{default:a}}},95089,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"BailoutToCSR",{enumerable:!0,get:function(){return e}});let d=a.r(76206);function e({reason:a,children:b}){throw Object.defineProperty(new d.BailoutToCSRError(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}},70303,(a,b,c)=>{"use strict";function d(a){return a.split("/").map(a=>encodeURIComponent(a)).join("/")}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"encodeURIPath",{enumerable:!0,get:function(){return d}})},62386,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"PreloadChunks",{enumerable:!0,get:function(){return i}});let d=a.r(16306),e=a.r(18780),f=a.r(56704),g=a.r(70303),h=a.r(37197);function i({moduleIds:a}){let b=f.workAsyncStorage.getStore();if(void 0===b)return null;let c=[];if(b.reactLoadableManifest&&a){let d=b.reactLoadableManifest;for(let b of a){if(!d[b])continue;let a=d[b].files;c.push(...a)}}if(0===c.length)return null;let i=(0,h.getDeploymentIdQueryOrEmptyString)();return(0,d.jsx)(d.Fragment,{children:c.map(a=>{let c=`${b.assetPrefix}/_next/${(0,g.encodeURIPath)(a)}${i}`;return a.endsWith(".css")?(0,d.jsx)("link",{precedence:"dynamic",href:c,rel:"stylesheet",as:"style",nonce:b.nonce},a):((0,e.preload)(c,{as:"script",fetchPriority:"low",nonce:b.nonce}),null)})})}},32546,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return j}});let d=a.r(16306),e=a.r(98419),f=a.r(95089),g=a.r(62386);function h(a){return{default:a&&"default"in a?a.default:a}}let i={loader:()=>Promise.resolve(h(()=>null)),loading:null,ssr:!0},j=function(a){let b={...i,...a},c=(0,e.lazy)(()=>b.loader().then(h)),j=b.loading;function k(a){let h=j?(0,d.jsx)(j,{isLoading:!0,pastDelay:!0,error:null}):null,i=!b.ssr||!!b.loading,k=i?e.Suspense:e.Fragment,l=b.ssr?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(g.PreloadChunks,{moduleIds:b.modules}),(0,d.jsx)(c,{...a})]}):(0,d.jsx)(f.BailoutToCSR,{reason:"next/dynamic",children:(0,d.jsx)(c,{...a})});return(0,d.jsx)(k,{...i?{fallback:h}:{},children:l})}return k.displayName="LoadableComponent",k}},96924,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return e}});let d=a.r(59414)._(a.r(32546));function e(a,b){let c={};"function"==typeof a&&(c.loader=a);let e={...c,...b};return(0,d.default)({...e,modules:e.loadableGenerated?.modules})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},55429,a=>{"use strict";var b=a.i(16306),c=a.i(52181),d=a.i(98419),e=a.i(13106),f=a.i(96924),g=a.i(76625),h=a.i(29448),i=a.i(70694);let j=(0,i.default)("inbox",[["polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12",key:"o97t9d"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}]]),k=(0,i.default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);var l=a.i(14126),m=a.i(79151),n=a.i(48195),o=a.i(67789),p=a.i(66807),q=a.i(40458),r=a.i(14220),s=a.i(86044);let t=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";function u(a){return(a.status??"active")!=="archived"&&(a.status??"active")!=="suppressed"&&!a.reviewedAt}function v(a,b){if(!a)return a;let c=(a,c)=>a.map(a=>a.id===b.id?b:a).filter(c),d=a.sections.contradictions.map(a=>({...a,memoryA:a.memoryA.id===b.id?b:a.memoryA,memoryB:a.memoryB.id===b.id?b:a.memoryB})).filter(a=>u(a.memoryA)&&u(a.memoryB)),e=a.sections.duplicates.map(a=>({...a,memoryA:a.memoryA.id===b.id?b:a.memoryA,memoryB:a.memoryB.id===b.id?b:a.memoryB})).filter(a=>u(a.memoryA)&&u(a.memoryB)),f={stale:c(a.sections.stale,a=>u(a)&&(a.decayedScore??1)<.3),neverUsed:c(a.sections.neverUsed,a=>{var b;return u(a)&&0===a.accessCount&&!!(b=a.createdAt)&&Date.now()-new Date(b).getTime()>=864e5}),lowTrust:c(a.sections.lowTrust,a=>u(a)&&(a.trustScore??1)<.7),noisyAutoExtracted:c(a.sections.noisyAutoExtracted,a=>u(a)&&("auto"===a.captureMethod||a.tags?.includes("auto-extracted"))),projectless:c(a.sections.projectless,a=>u(a)&&!(a.project&&a.project.trim())&&"global"!==a.scope),duplicates:e,contradictions:d};return{...a,summary:{stale:f.stale.length,neverUsed:f.neverUsed.length,lowTrust:f.lowTrust.length,noisyAutoExtracted:f.noisyAutoExtracted.length,projectless:f.projectless.length,duplicates:f.duplicates.length,contradictions:f.contradictions.length},openClaw:a.openClaw,sections:f}}async function w(a){let b=a?`?project=${encodeURIComponent(a)}`:"",c=await (0,s.authFetch)(`${t}/api/review/queue${b}`);if(!c.ok)throw Error(await (0,s.readApiError)(c,"Failed to fetch review queue"));return c.json()}async function x(a){let b=await (0,s.authFetch)(`${t}/api/memories/${a.id}/review`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error(await (0,s.readApiError)(b,"Failed to update review state"));return b.json()}async function y(a){let b=await (0,s.authFetch)(`${t}/api/memories/merge`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error(await (0,s.readApiError)(b,"Failed to merge memories"));return b.json()}function z(a){return(0,q.useQuery)({queryKey:["review-queue",a],queryFn:()=>w(a),staleTime:3e4})}var A=a.i(54100),B=a.i(60210),C=a.i(23808);let D=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function E(a){let b=new URLSearchParams;b.set("query",a.query),a.project&&b.set("project",a.project),a.expectedId&&b.set("expectedId",String(a.expectedId));let c=await (0,s.authFetch)(`${D}/api/recall/explain?${b.toString()}`);if(!c.ok)throw Error("Failed to explain recall");return c.json()}async function F(a,b){let c=new URLSearchParams({mode:"search",query:a,limit:"8"});b&&c.set("project",b);let d=await (0,s.authFetch)(`${D}/api/memories?${c.toString()}`);if(!d.ok)throw Error("Failed to fetch memory candidates");return(await d.json()).memories}var G=a.i(68839);function H({score:a}){let c=Math.round(100*a);return(0,b.jsxs)("div",{className:"mt-2 flex items-center gap-2",children:[(0,b.jsx)("div",{className:"h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--sc-bg-deep)]",children:(0,b.jsx)("div",{className:"h-full rounded-full transition-all",style:{width:`${c}%`,background:"linear-gradient(90deg, var(--sc-cyan), var(--sc-coral))"}})}),(0,b.jsxs)("span",{className:"text-[10px] tabular-nums text-[var(--sc-text-muted)]",children:[c,"%"]})]})}function I({result:a}){let[c,e]=(0,d.useState)(!1),f=a.memory;return(0,b.jsxs)(A.GlassCard,{hover:!0,className:"p-4",onClick:()=>e(a=>!a),children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("div",{className:"text-sm font-semibold text-[var(--sc-text-primary)]",children:f.title}),(0,b.jsxs)("div",{className:"mt-1.5 flex flex-wrap items-center gap-1.5",children:[(0,b.jsx)(B.Badge,{variant:"muted",children:f.category}),(0,b.jsx)(B.Badge,{variant:"cyan",children:f.project||"global"}),(0,b.jsx)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:function(a){let b=Math.floor((Date.now()-new Date(a).getTime())/1e3);if(b<60)return"just now";let c=Math.floor(b/60);if(c<60)return`${c}m ago`;let d=Math.floor(c/60);if(d<24)return`${d}h ago`;let e=Math.floor(d/24);return`${e}d ago`}(f.createdAt)})]}),(0,b.jsx)(H,{score:a.relevanceScore})]}),(0,b.jsx)("div",{className:"shrink-0 rounded-lg bg-[var(--sc-cyan)]/10 px-2.5 py-1.5 text-center",children:(0,b.jsx)("span",{className:"text-sm font-semibold tabular-nums text-[var(--sc-cyan)]",children:a.relevanceScore.toFixed(2)})})]}),c&&(0,b.jsxs)("div",{className:"mt-3 border-t border-[var(--sc-border)] pt-3 text-xs text-[var(--sc-text-muted)]",children:[f.content.slice(0,200),f.content.length>200&&"..."]})]})}function J(){var a;let{projectFilter:c}=(0,G.useDashboardStore)(),[e,f]=(0,d.useState)(""),[g,h]=(0,d.useState)(""),[i,j]=(0,d.useState)(""),[l,m]=(0,d.useState)(null),n=(0,p.useMutation)({mutationFn:async a=>[]}),{data:o,isLoading:r}=(a=(0,d.useMemo)(()=>g.trim()?{query:g.trim(),project:c,expectedId:l}:null,[g,c,l]),(0,q.useQuery)({queryKey:["recall-explain",a],queryFn:()=>E(a),enabled:!!a?.query?.trim(),staleTime:3e4})),{data:s=[]}=(0,q.useQuery)({queryKey:["memory-candidates",i,c],queryFn:()=>F(i,c),enabled:i.trim().length>=2,staleTime:3e4}),t=o?.results.length?o.results.reduce((a,b)=>a+b.relevanceScore,0)/o.results.length:0;return(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)(A.GlassCard,{className:"p-4",children:(0,b.jsxs)("form",{onSubmit:a=>{a.preventDefault(),e.trim()&&(h(e.trim()),n.mutate(e.trim()))},className:"flex gap-3",children:[(0,b.jsxs)("div",{className:"relative flex-1",children:[(0,b.jsx)(k,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[var(--sc-text-muted)]"}),(0,b.jsx)("input",{value:e,onChange:a=>f(a.target.value),placeholder:"Why did we choose PostgreSQL over SQLite?",className:"h-10 w-full rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] pl-10 pr-4 text-sm text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)] focus-ring-cyan"})]}),(0,b.jsx)(C.Button,{type:"submit",variant:"coral",size:"md",children:"Explain recall"})]})}),o&&!r&&(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)(B.Badge,{variant:"cyan",children:[o.total," result",1===o.total?"":"s"]}),(0,b.jsxs)(B.Badge,{variant:"muted",children:["avg relevance ",t.toFixed(2)]})]}),r&&(0,b.jsx)("div",{className:"py-8 text-center text-sm text-[var(--sc-text-muted)] animate-pulse",children:"Analysing recall..."}),!r&&!o&&!g&&(0,b.jsx)("div",{className:"py-8 text-center text-sm text-[var(--sc-text-muted)]",children:"Type a query to see what the agent would remember"}),!r&&o&&0===o.results.length&&(0,b.jsx)("div",{className:"py-8 text-center text-sm text-[var(--sc-text-muted)]",children:"No recalled memories for this query."}),!r&&o&&o.results.length>0&&(0,b.jsx)("div",{className:"space-y-3",children:o.results.map(a=>(0,b.jsx)(I,{result:a},a.memory.id))}),(0,b.jsxs)("details",{className:"glass-card",children:[(0,b.jsx)("summary",{className:"cursor-pointer select-none p-4 text-xs uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Advanced: Recall Debugger"}),(0,b.jsxs)("div",{className:"space-y-6 border-t border-[var(--sc-border)] p-4",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-xs uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Expected memory"}),(0,b.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-secondary)]",children:"Search for a memory you expected to appear, then compare its rank."}),(0,b.jsx)("input",{value:i,onChange:a=>j(a.target.value),placeholder:"Search a memory to compare...",className:"mt-3 h-9 w-full rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] px-3 text-sm text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)] focus-ring-cyan"}),(0,b.jsx)("div",{className:"mt-3 space-y-2",children:s.map(a=>(0,b.jsxs)("button",{onClick:()=>{m(a.id),j(a.title)},className:`block w-full rounded-lg border px-3 py-2 text-left text-sm ${l===a.id?"border-[var(--sc-cyan)]/50 bg-[var(--sc-cyan)]/10 text-[var(--sc-text-primary)]":"border-[var(--sc-border)] bg-[var(--sc-bg-surface)] text-[var(--sc-text-primary)] hover:border-[var(--sc-text-muted)]"}`,children:[(0,b.jsx)("div",{className:"font-medium",children:a.title}),(0,b.jsxs)("div",{className:"text-xs text-[var(--sc-text-muted)]",children:[a.category," · ",a.project||"workspace"]})]},a.id))})]}),o?.expectedMemory&&(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-xs uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Eligibility breakdown"}),(0,b.jsxs)("div",{className:"mt-3 rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-3 text-sm text-[var(--sc-text-primary)]",children:[(0,b.jsx)("div",{className:"text-base font-medium",children:o.expectedMemory.title}),(0,b.jsxs)("div",{className:"mt-2 space-y-1 text-xs text-[var(--sc-text-secondary)]",children:[(0,b.jsxs)("div",{children:["Rank: ",o.expectedMemory.rank??"not returned"]}),(0,b.jsxs)("div",{children:["Status: ",o.expectedMemory.status]}),(0,b.jsxs)("div",{children:["Capture: ",o.expectedMemory.captureMethod," · ",o.expectedMemory.sourceKind]}),(0,b.jsxs)("div",{children:["Eligible:"," ",(0,b.jsx)(B.Badge,{variant:o.expectedMemory.eligible?"safe":"coral",children:o.expectedMemory.eligible?"yes":"no"})]})]}),(0,b.jsx)("div",{className:"mt-3 space-y-1",children:o.expectedMemory.reasons.map(a=>(0,b.jsx)("div",{className:"rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 px-3 py-2 text-xs text-[var(--sc-text-secondary)]",children:a},a))})]})]}),o?.misses&&o.misses.length>0&&(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"text-xs uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:["Likely misses (",o.misses.length,")"]}),(0,b.jsx)("div",{className:"mt-3 space-y-3",children:o.misses.map(a=>(0,b.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-3",children:[(0,b.jsx)("div",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:a.title}),(0,b.jsxs)("div",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:[a.captureMethod," · salience ",a.salience.toFixed(2)]}),(0,b.jsx)("ul",{className:"mt-2 space-y-1 text-xs text-[var(--sc-text-secondary)]",children:a.whyNotRecalled.map(a=>(0,b.jsxs)("li",{children:["• ",a]},a))})]},a.id))})]}),!o&&(0,b.jsx)("div",{className:"text-sm text-[var(--sc-text-secondary)]",children:"Run a recall query first, then use this section to debug ranking and misses."})]})]})]})}var K=a.i(74150);let L=(0,i.default)("layers",[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]]);var M=a.i(79155);let N=(0,i.default)("archive",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"M10 12h4",key:"a56b0p"}]]),O=(0,i.default)("cloud-off",[["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M5.782 5.782A7 7 0 0 0 9 19h8.5a4.5 4.5 0 0 0 1.307-.193",key:"yfwify"}],["path",{d:"M21.532 16.5A4.5 4.5 0 0 0 17.5 10h-1.79A7.008 7.008 0 0 0 10 5.07",key:"jlfiyv"}]]),P=(0,i.default)("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);var Q=a.i(5479);let R=(0,i.default)("star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);function S({memory:a,reasons:c,onAction:d,busy:e=!1}){let f=a.tags??[],g=a.trustScore??1,h=function(a){if(!a)return null;let b=Math.floor((Date.now()-new Date(a).getTime())/36e5);if(b<1)return"just now";if(b<24)return`${b}h ago`;let c=Math.floor(b/24);return c<7?`${c}d ago`:`${Math.floor(c/7)}w ago`}(a.createdAt),i=a.project?.trim();return(0,b.jsxs)("div",{className:"glass-card-strong flex flex-col",children:[(0,b.jsxs)("div",{className:"max-h-[160px] overflow-y-auto p-6 pb-3",children:[(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:c.map(a=>(0,b.jsx)(B.Badge,{variant:a.variant,children:a.label},a.label))}),(0,b.jsx)("h3",{className:"mt-3 text-lg font-bold leading-tight text-[var(--sc-text-primary)]",children:a.title}),(0,b.jsx)("div",{className:"mt-2 text-sm leading-relaxed text-[var(--sc-text-secondary)]",children:a.content}),(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-1.5 text-xs text-[var(--sc-text-muted)]",children:[f.length>0&&(0,b.jsx)("span",{children:f.join(" · ")}),f.length>0&&(0,b.jsx)("span",{children:"·"}),i&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{children:i}),(0,b.jsx)("span",{children:"·"})]}),h&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{children:h}),(0,b.jsx)("span",{children:"·"})]}),(0,b.jsxs)("span",{children:["trust ",g.toFixed(2)]}),a.captureMethod&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{children:"·"}),(0,b.jsx)("span",{children:a.captureMethod})]})]})]}),(0,b.jsx)("div",{className:"border-t border-[var(--sc-border)] px-6 py-4",children:(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,b.jsx)(C.Button,{variant:"cyan",size:"sm",disabled:e,onClick:()=>d("keep"),children:"Keep"}),(0,b.jsx)(C.Button,{variant:"coral",size:"sm",disabled:e,onClick:()=>d("suppress"),children:"Suppress"}),(0,b.jsxs)(C.Button,{variant:"ghost",size:"sm",disabled:e,onClick:()=>d("archive"),children:[(0,b.jsx)(N,{className:"h-3.5 w-3.5"}),"Archive"]}),(0,b.jsxs)("details",{className:"ml-auto",children:[(0,b.jsx)("summary",{className:"cursor-pointer text-xs text-[var(--sc-text-muted)] hover:text-[var(--sc-text-secondary)]",children:"More actions"}),(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap gap-2",children:[(0,b.jsxs)(C.Button,{variant:"ghost",size:"sm",disabled:e,onClick:()=>d("pin"),children:[(0,b.jsx)(Q.Pin,{className:"h-3 w-3"}),a.pinned?"Unpin":"Pin"]}),(0,b.jsxs)(C.Button,{variant:"ghost",size:"sm",disabled:e,onClick:()=>d("canonical"),children:[(0,b.jsx)(R,{className:"h-3 w-3"}),"Make canonical"]}),(0,b.jsxs)(C.Button,{variant:"ghost",size:"sm",disabled:e,onClick:()=>d("global"),children:[(0,b.jsx)(P,{className:"h-3 w-3"}),"global"===a.scope?"Project scope":"Make global"]}),(0,b.jsxs)(C.Button,{variant:"ghost",size:"sm",disabled:e,onClick:()=>d("cloudExclude"),children:[(0,b.jsx)(O,{className:"h-3 w-3"}),a.cloudExcluded?"Include in cloud":"Exclude from cloud"]})]})]})]})})]})}let T={lowTrust:{label:"Low Trust",reasonLabel:"LOW TRUST",reasonVariant:"coral"},stale:{label:"Stale",reasonLabel:"STALE",reasonVariant:"amber"},noisyAutoExtracted:{label:"Noisy Auto",reasonLabel:"AUTO-EXTRACTED",reasonVariant:"medium"},neverUsed:{label:"Never Used",reasonLabel:"NEVER USED",reasonVariant:"muted"},projectless:{label:"Projectless",reasonLabel:"NO PROJECT",reasonVariant:"info"}},U=["lowTrust","stale","noisyAutoExtracted","neverUsed","projectless"];function V(){let a,c,e,f,g,{projectFilter:h,selectedMemory:i,setSelectedMemory:j}=(0,G.useDashboardStore)(),{data:k,isLoading:l}=z(h),m=(a=(0,r.useQueryClient)(),(0,p.useMutation)({mutationFn:x,onSuccess:b=>{a.setQueriesData({queryKey:["review-queue"]},a=>v(a,b)),a.setQueriesData({queryKey:["memories"]},a=>a?{...a,memories:a.memories.map(a=>a.id===b.id?b:a)}:a),a.invalidateQueries({queryKey:["review-queue"]}),a.invalidateQueries({queryKey:["memories"]}),a.invalidateQueries({queryKey:["quality"]}),a.invalidateQueries({queryKey:["contradictions"]}),a.invalidateQueries({queryKey:["stats"]})}})),n=(c=(0,r.useQueryClient)(),(0,p.useMutation)({mutationFn:y,onSuccess:(a,b)=>{c.setQueriesData({queryKey:["review-queue"]},c=>{var d,e;return d=b.keptId,e=b.removedId,c?v({...c,sections:{...c.sections,stale:c.sections.stale.filter(a=>a.id!==e),neverUsed:c.sections.neverUsed.filter(a=>a.id!==e),lowTrust:c.sections.lowTrust.filter(a=>a.id!==e),noisyAutoExtracted:c.sections.noisyAutoExtracted.filter(a=>a.id!==e),projectless:c.sections.projectless.filter(a=>a.id!==e),duplicates:c.sections.duplicates.filter(a=>a.memoryA.id!==e&&a.memoryB.id!==e),contradictions:c.sections.contradictions.filter(a=>a.memoryA.id!==e&&a.memoryB.id!==e)}},{...a,id:d}):c}),c.setQueriesData({queryKey:["memories"]},c=>c?{...c,memories:c.memories.filter(a=>a.id!==b.removedId).map(c=>c.id===b.keptId?a:c)}:c),c.invalidateQueries({queryKey:["review-queue"]}),c.invalidateQueries({queryKey:["memories"]}),c.invalidateQueries({queryKey:["quality"]}),c.invalidateQueries({queryKey:["contradictions"]}),c.invalidateQueries({queryKey:["stats"]}),c.invalidateQueries({queryKey:["graph"]})}})),[o,q]=(0,d.useState)("lowTrust"),[s,t]=(0,d.useState)(0),[u,w]=(0,d.useState)(null),[A,B]=(0,d.useState)(!1),D=(0,d.useRef)(0),E=m.isPending||n.isPending||A,F=k?.sections[o]??[],H=F.length,I=F[s]??null,J=k?.sections.contradictions??[],N=k?.sections.duplicates??[];(0,d.useEffect)(()=>{H>0&&s>=H&&t(H-1)},[H,s]);let O=(a,b)=>{w({kind:a,message:b}),"success"===a&&setTimeout(()=>w(null),2e3)},P=async a=>{if(!I||A)return;let b=function(a,b){switch(a){case"keep":return"restore";case"suppress":return"suppress";case"archive":return"archive";case"pin":return b.pinned?"unpin":"pin";case"canonical":return"canonicalize";case"global":return"global"===b.scope?"rescopeProject":"rescopeGlobal";case"cloudExclude":return b.cloudExcluded?"includeCloud":"excludeCloud"}}(a,I);B(!0),await new Promise(a=>setTimeout(a,250)),D.current++;try{w(null);let a=await m.mutateAsync({id:I.id,action:b,reviewedBy:"dashboard-review",project:I.project??null,scope:I.scope});i?.id===a.id&&j(a),O("success",`${{restore:"Kept",suppress:"Suppressed",archive:"Archived",pin:"Pinned",unpin:"Unpinned",canonicalize:"Marked canonical",rescopeGlobal:"Made global",rescopeProject:"Moved to project scope",excludeCloud:"Excluded from cloud",includeCloud:"Included in cloud"}[b]??"Updated"}: ${a.title}`)}catch(a){O("error",a instanceof Error?a.message:"Failed to update")}finally{B(!1)}},Q=async(a,b)=>{try{w(null),await m.mutateAsync({id:a.id,action:"canonicalize",reviewedBy:"dashboard-review"}),await m.mutateAsync({id:b.id,action:"suppress",reviewedBy:"dashboard-review"}),O("success",`Kept "${a.title}", suppressed "${b.title}"`)}catch(a){O("error",a instanceof Error?a.message:"Failed to resolve contradiction")}},R=async(a,b)=>{try{w(null);let c=await n.mutateAsync({keptId:a.id,removedId:b.id,reviewedBy:"dashboard-merge"});i?.id===b.id&&j(c),O("success",`Merged duplicate into "${a.title}"`)}catch(a){O("error",a instanceof Error?a.message:"Failed to merge")}},V=U.reduce((a,b)=>a+(k?.summary[b]??0),0)+(k?.summary.contradictions??0)+(k?.summary.duplicates??0);if(l)return(0,b.jsx)("div",{className:"space-y-6",children:(0,b.jsx)("div",{className:"text-sm text-[var(--sc-text-secondary)]",children:"Loading review queue…"})});if(0===V&&k)return(0,b.jsx)("div",{className:"space-y-6",children:(0,b.jsxs)("div",{className:"glass-card-strong flex flex-col items-center justify-center p-12 text-center",children:[(0,b.jsx)(K.CheckCircle2,{className:"h-12 w-12 text-[var(--sc-cyan)]"}),(0,b.jsx)("h3",{className:"mt-4 text-xl font-semibold text-[var(--sc-text-primary)]",children:"All caught up"}),(0,b.jsx)("p",{className:"mt-2 text-sm text-[var(--sc-text-secondary)]",children:"No memories need review right now."})]})});let W=H>0?Math.round((s+1)/H*100):0;return(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:U.map(a=>{let c=T[a],d=k?.summary[a]??0,e=o===a;return(0,b.jsxs)("button",{onClick:()=>{q(a),t(0),w(null)},className:`rounded-full border px-3 py-1.5 text-xs font-semibold transition-colors ${e?"border-[var(--sc-coral)]/50 bg-[var(--sc-coral)] text-white":"border-[var(--sc-border)] bg-[var(--sc-surface-interactive)] text-[var(--sc-text-secondary)] hover:border-[var(--sc-text-muted)]"}`,children:[c.label," ",d]},a)})}),u&&(0,b.jsx)("div",{className:`rounded-2xl border px-4 py-3 text-sm ${"error"===u.kind?"border-[var(--sc-coral)]/30 bg-[var(--sc-coral)]/10 text-[var(--sc-coral)]":"border-[var(--sc-cyan)]/30 bg-[var(--sc-cyan)]/10 text-[var(--sc-cyan)]"}`,children:(0,b.jsxs)("div",{className:"flex items-start gap-2",children:["success"===u.kind&&(0,b.jsx)(K.CheckCircle2,{className:"mt-0.5 h-4 w-4 shrink-0"}),(0,b.jsx)("span",{children:u.message})]})}),I?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between text-xs text-[var(--sc-text-muted)]",children:[(0,b.jsxs)("span",{children:["Card ",s+1," of ",H," · ",T[o].label," queue"]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("button",{type:"button",disabled:0===s,onClick:()=>t(a=>Math.max(0,a-1)),className:"rounded px-2 py-0.5 text-[var(--sc-text-secondary)] transition-colors hover:bg-[var(--sc-surface-interactive)] disabled:opacity-30",children:"← Prev"}),(0,b.jsx)("button",{type:"button",disabled:s>=H-1,onClick:()=>t(a=>Math.min(H-1,a+1)),className:"rounded px-2 py-0.5 text-[var(--sc-text-secondary)] transition-colors hover:bg-[var(--sc-surface-interactive)] disabled:opacity-30",children:"Next →"})]})]}),(0,b.jsx)("div",{className:"h-1.5 w-full overflow-hidden rounded-full bg-[var(--sc-bg-elevated)]",children:(0,b.jsx)("div",{className:"h-full rounded-full bg-[var(--sc-cyan)] transition-all",style:{width:`${W}%`}})})]}),(0,b.jsx)("div",{className:A?"sc-card-exit":"sc-card-enter",style:{transition:"opacity 200ms ease, transform 200ms ease"},children:(0,b.jsx)(S,{memory:I,reasons:(e=[],f=T[o],e.push({label:f.reasonLabel,variant:f.reasonVariant}),g=I.trustScore??1,"lowTrust"!==o&&g<.7&&e.push({label:`TRUST ${g.toFixed(1)}`,variant:"coral"}),"lowTrust"===o&&e.push({label:`${g.toFixed(2)}`,variant:"coral"}),("auto"===I.captureMethod||I.tags?.includes("auto-extracted"))&&"noisyAutoExtracted"!==o&&e.push({label:"AUTO-EXTRACTED",variant:"medium"}),e),onAction:P,busy:E})},D.current)]}):(0,b.jsx)("div",{className:"glass-card-strong p-8 text-center",children:(0,b.jsxs)("p",{className:"text-sm text-[var(--sc-text-secondary)]",children:["No ",T[o].label.toLowerCase()," memories to review."]})}),(0,b.jsxs)("div",{className:"glass-card-strong p-5",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(M.ShieldAlert,{size:16,className:"text-[var(--sc-amber)]"}),(0,b.jsxs)("h3",{className:"text-base font-semibold text-[var(--sc-text-primary)]",children:["Contradictions (",J.length,")"]})]}),0===J.length?(0,b.jsx)("p",{className:"mt-3 text-sm text-[var(--sc-text-secondary)]",children:"No contradictions detected."}):(0,b.jsx)("div",{className:"mt-4 space-y-4",children:J.slice(0,8).map(a=>(0,b.jsxs)("div",{className:"rounded-xl border border-[var(--sc-amber)]/20 bg-[var(--sc-bg-deep)]/60 p-4",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-xs uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Score"}),(0,b.jsxs)("div",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:[Math.round(100*a.score),"%"]})]}),(0,b.jsx)("div",{className:"text-right text-xs text-[var(--sc-text-muted)]",children:a.sharedTopics.length?a.sharedTopics.join(" · "):"No shared topic"})]}),(0,b.jsx)("div",{className:"mt-3 rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-surface)]/60 p-3 text-sm text-[var(--sc-text-primary)]",children:a.reason}),(0,b.jsx)("div",{className:"mt-4 grid gap-3 md:grid-cols-2",children:[a.memoryA,a.memoryB].map((c,d)=>{let e=0===d?a.memoryB:a.memoryA;return(0,b.jsxs)("div",{className:"rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-surface)]/70 p-3",children:[(0,b.jsx)("div",{className:"text-xs uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:0===d?"A":"B"}),(0,b.jsx)("div",{className:"mt-1 text-sm font-medium text-[var(--sc-text-primary)]",children:c.title}),(0,b.jsx)("div",{className:"mt-1 line-clamp-2 text-xs text-[var(--sc-text-secondary)]",children:c.content}),(0,b.jsxs)("div",{className:"mt-2 text-xs text-[var(--sc-text-muted)]",children:["trust ",(c.trustScore??1).toFixed(2)," · ",c.captureMethod||"manual"]}),(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap gap-2",children:[(0,b.jsx)(C.Button,{variant:"cyan",size:"sm",disabled:E,onClick:()=>Q(c,e),children:"Keep this"}),(0,b.jsx)(C.Button,{variant:"ghost",size:"sm",disabled:E,onClick:()=>m.mutateAsync({id:c.id,action:"suppress",reviewedBy:"dashboard-review"}).then(()=>O("success",`Suppressed: ${c.title}`)).catch(a=>O("error",a instanceof Error?a.message:"Failed to suppress")),children:"Suppress"})]})]},c.id)})})]},`${a.memoryA.id}-${a.memoryB.id}`))})]}),(0,b.jsxs)("div",{className:"glass-card-strong p-5",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(L,{size:16,className:"text-[var(--sc-cyan)]"}),(0,b.jsxs)("h3",{className:"text-base font-semibold text-[var(--sc-text-primary)]",children:["Duplicates (",N.length,")"]})]}),0===N.length?(0,b.jsx)("p",{className:"mt-3 text-sm text-[var(--sc-text-secondary)]",children:"No duplicate candidates detected."}):(0,b.jsx)("div",{className:"mt-4 space-y-3",children:N.slice(0,8).map(a=>{let c=a.recommendedKeepId===a.memoryA.id?a.memoryA:a.memoryB,d=a.recommendedKeepId===a.memoryA.id?a.memoryB:a.memoryA;return(0,b.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4",children:[(0,b.jsx)("div",{className:"flex items-start justify-between gap-4",children:(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:["“",a.memoryA.title,"” vs “",a.memoryB.title,"”"]}),(0,b.jsxs)("div",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:[a.similarity," · ",a.sharedWords," shared words"]})]})}),(0,b.jsxs)("div",{className:"mt-3 flex flex-wrap gap-2",children:[(0,b.jsx)(C.Button,{variant:"cyan",size:"sm",disabled:E,onClick:()=>R(a.memoryA,a.memoryB),children:"Keep A"}),(0,b.jsx)(C.Button,{variant:"outline",size:"sm",disabled:E,onClick:()=>R(a.memoryB,a.memoryA),children:"Keep B"}),(0,b.jsx)(C.Button,{variant:"ghost",size:"sm",disabled:E,onClick:()=>R(c,d),children:"Merge (recommended)"})]})]},`${a.memoryA.id}-${a.memoryB.id}`)})})]})]})}var W=a.i(94227),X=a.i(6036),Y=a.i(4335),Z=a.i(78181),$=a.i(59656),_=d,aa=a.i(70124);function ab(a,b){if("function"==typeof a)return a(b);null!=a&&(a.current=b)}class ac extends _.Component{getSnapshotBeforeUpdate(a){let b=this.props.childRef.current;if(b&&a.isPresent&&!this.props.isPresent){let a=b.offsetParent,c=(0,$.isHTMLElement)(a)&&a.offsetWidth||0,d=(0,$.isHTMLElement)(a)&&a.offsetHeight||0,e=this.props.sizeRef.current;e.height=b.offsetHeight||0,e.width=b.offsetWidth||0,e.top=b.offsetTop,e.left=b.offsetLeft,e.right=c-e.width-e.left,e.bottom=d-e.height-e.top}return null}componentDidUpdate(){}render(){return this.props.children}}function ad({children:a,isPresent:c,anchorX:e,anchorY:f,root:g}){let h=(0,_.useId)(),i=(0,_.useRef)(null),j=(0,_.useRef)({width:0,height:0,top:0,left:0,right:0,bottom:0}),{nonce:k}=(0,_.useContext)(aa.MotionConfigContext),l=function(...a){return d.useCallback(function(...a){return b=>{let c=!1,d=a.map(a=>{let d=ab(a,b);return c||"function"!=typeof d||(c=!0),d});if(c)return()=>{for(let b=0;b<d.length;b++){let c=d[b];"function"==typeof c?c():ab(a[b],null)}}}}(...a),a)}(i,a.props?.ref??a?.ref);return(0,_.useInsertionEffect)(()=>{let{width:a,height:b,top:d,left:l,right:m,bottom:n}=j.current;if(c||!i.current||!a||!b)return;let o="left"===e?`left: ${l}`:`right: ${m}`,p="bottom"===f?`bottom: ${n}`:`top: ${d}`;i.current.dataset.motionPopId=h;let q=document.createElement("style");k&&(q.nonce=k);let r=g??document.head;return r.appendChild(q),q.sheet&&q.sheet.insertRule(`
1
+ module.exports=[59414,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esModule?a:{default:a}}},95089,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"BailoutToCSR",{enumerable:!0,get:function(){return e}});let d=a.r(76206);function e({reason:a,children:b}){throw Object.defineProperty(new d.BailoutToCSRError(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}},70303,(a,b,c)=>{"use strict";function d(a){return a.split("/").map(a=>encodeURIComponent(a)).join("/")}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"encodeURIPath",{enumerable:!0,get:function(){return d}})},62386,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"PreloadChunks",{enumerable:!0,get:function(){return i}});let d=a.r(16306),e=a.r(18780),f=a.r(56704),g=a.r(70303),h=a.r(37197);function i({moduleIds:a}){let b=f.workAsyncStorage.getStore();if(void 0===b)return null;let c=[];if(b.reactLoadableManifest&&a){let d=b.reactLoadableManifest;for(let b of a){if(!d[b])continue;let a=d[b].files;c.push(...a)}}if(0===c.length)return null;let i=(0,h.getDeploymentIdQueryOrEmptyString)();return(0,d.jsx)(d.Fragment,{children:c.map(a=>{let c=`${b.assetPrefix}/_next/${(0,g.encodeURIPath)(a)}${i}`;return a.endsWith(".css")?(0,d.jsx)("link",{precedence:"dynamic",href:c,rel:"stylesheet",as:"style",nonce:b.nonce},a):((0,e.preload)(c,{as:"script",fetchPriority:"low",nonce:b.nonce}),null)})})}},32546,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return j}});let d=a.r(16306),e=a.r(98419),f=a.r(95089),g=a.r(62386);function h(a){return{default:a&&"default"in a?a.default:a}}let i={loader:()=>Promise.resolve(h(()=>null)),loading:null,ssr:!0},j=function(a){let b={...i,...a},c=(0,e.lazy)(()=>b.loader().then(h)),j=b.loading;function k(a){let h=j?(0,d.jsx)(j,{isLoading:!0,pastDelay:!0,error:null}):null,i=!b.ssr||!!b.loading,k=i?e.Suspense:e.Fragment,l=b.ssr?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(g.PreloadChunks,{moduleIds:b.modules}),(0,d.jsx)(c,{...a})]}):(0,d.jsx)(f.BailoutToCSR,{reason:"next/dynamic",children:(0,d.jsx)(c,{...a})});return(0,d.jsx)(k,{...i?{fallback:h}:{},children:l})}return k.displayName="LoadableComponent",k}},96924,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return e}});let d=a.r(59414)._(a.r(32546));function e(a,b){let c={};"function"==typeof a&&(c.loader=a);let e={...c,...b};return(0,d.default)({...e,modules:e.loadableGenerated?.modules})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},55429,a=>{"use strict";var b=a.i(16306),c=a.i(52181),d=a.i(98419),e=a.i(13106),f=a.i(96924),g=a.i(76625),h=a.i(29448),i=a.i(70694);let j=(0,i.default)("inbox",[["polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12",key:"o97t9d"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}]]),k=(0,i.default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);var l=a.i(14126),m=a.i(79151),n=a.i(48195),o=a.i(67789),p=a.i(66807),q=a.i(40458),r=a.i(14220),s=a.i(86044);let t=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";function u(a){return(a.status??"active")!=="archived"&&(a.status??"active")!=="suppressed"&&!a.reviewedAt}function v(a,b){if(!a)return a;let c=(a,c)=>a.map(a=>a.id===b.id?b:a).filter(c),d=a.sections.contradictions.map(a=>({...a,memoryA:a.memoryA.id===b.id?b:a.memoryA,memoryB:a.memoryB.id===b.id?b:a.memoryB})).filter(a=>u(a.memoryA)&&u(a.memoryB)),e=a.sections.duplicates.map(a=>({...a,memoryA:a.memoryA.id===b.id?b:a.memoryA,memoryB:a.memoryB.id===b.id?b:a.memoryB})).filter(a=>u(a.memoryA)&&u(a.memoryB)),f={stale:c(a.sections.stale,a=>u(a)&&(a.decayedScore??1)<.3),neverUsed:c(a.sections.neverUsed,a=>{var b;return u(a)&&0===a.accessCount&&!!(b=a.createdAt)&&Date.now()-new Date(b).getTime()>=864e5}),lowTrust:c(a.sections.lowTrust,a=>u(a)&&(a.trustScore??1)<.7),noisyAutoExtracted:c(a.sections.noisyAutoExtracted,a=>u(a)&&("auto"===a.captureMethod||a.tags?.includes("auto-extracted"))),projectless:c(a.sections.projectless,a=>u(a)&&!(a.project&&a.project.trim())&&"global"!==a.scope),duplicates:e,contradictions:d};return{...a,summary:{stale:f.stale.length,neverUsed:f.neverUsed.length,lowTrust:f.lowTrust.length,noisyAutoExtracted:f.noisyAutoExtracted.length,projectless:f.projectless.length,duplicates:f.duplicates.length,contradictions:f.contradictions.length},openClaw:a.openClaw,sections:f}}async function w(a){let b=a?`?project=${encodeURIComponent(a)}`:"",c=await (0,s.authFetch)(`${t}/api/review/queue${b}`);if(!c.ok)throw Error(await (0,s.readApiError)(c,"Failed to fetch review queue"));return c.json()}async function x(a){let b=await (0,s.authFetch)(`${t}/api/memories/${a.id}/review`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error(await (0,s.readApiError)(b,"Failed to update review state"));return b.json()}async function y(a){let b=await (0,s.authFetch)(`${t}/api/memories/merge`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error(await (0,s.readApiError)(b,"Failed to merge memories"));return b.json()}function z(a){return(0,q.useQuery)({queryKey:["review-queue",a],queryFn:()=>w(a),staleTime:3e4})}var A=a.i(54100),B=a.i(60210),C=a.i(23808);let D=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function E(a){let b=new URLSearchParams;b.set("query",a.query),a.project&&b.set("project",a.project),a.expectedId&&b.set("expectedId",String(a.expectedId));let c=await (0,s.authFetch)(`${D}/api/recall/explain?${b.toString()}`);if(!c.ok)throw Error("Failed to explain recall");return c.json()}async function F(a,b){let c=new URLSearchParams({mode:"search",query:a,limit:"8"});b&&c.set("project",b);let d=await (0,s.authFetch)(`${D}/api/memories?${c.toString()}`);if(!d.ok)throw Error("Failed to fetch memory candidates");return(await d.json()).memories}var G=a.i(68839);function H({score:a}){let c=Math.round(100*a);return(0,b.jsxs)("div",{className:"mt-2 flex items-center gap-2",children:[(0,b.jsx)("div",{className:"h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--sc-bg-deep)]",children:(0,b.jsx)("div",{className:"h-full rounded-full transition-all",style:{width:`${c}%`,background:"linear-gradient(90deg, var(--sc-cyan), var(--sc-coral))"}})}),(0,b.jsxs)("span",{className:"text-[10px] tabular-nums text-[var(--sc-text-muted)]",children:[c,"%"]})]})}function I({result:a}){let[c,e]=(0,d.useState)(!1),f=a.memory;return(0,b.jsxs)(A.GlassCard,{hover:!0,className:"p-4",onClick:()=>e(a=>!a),children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("div",{className:"text-sm font-semibold text-[var(--sc-text-primary)]",children:f.title}),(0,b.jsxs)("div",{className:"mt-1.5 flex flex-wrap items-center gap-1.5",children:[(0,b.jsx)(B.Badge,{variant:"muted",children:f.category}),(0,b.jsx)(B.Badge,{variant:"cyan",children:f.project||"global"}),(0,b.jsx)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:function(a){let b=Math.floor((Date.now()-new Date(a).getTime())/1e3);if(b<60)return"just now";let c=Math.floor(b/60);if(c<60)return`${c}m ago`;let d=Math.floor(c/60);if(d<24)return`${d}h ago`;let e=Math.floor(d/24);return`${e}d ago`}(f.createdAt)})]}),(0,b.jsx)(H,{score:a.relevanceScore})]}),(0,b.jsx)("div",{className:"shrink-0 rounded-lg bg-[var(--sc-cyan)]/10 px-2.5 py-1.5 text-center",children:(0,b.jsx)("span",{className:"text-sm font-semibold tabular-nums text-[var(--sc-cyan)]",children:a.relevanceScore.toFixed(2)})})]}),c&&(0,b.jsxs)("div",{className:"mt-3 border-t border-[var(--sc-border)] pt-3 text-xs text-[var(--sc-text-muted)]",children:[f.content.slice(0,200),f.content.length>200&&"..."]})]})}function J(){var a;let{projectFilter:c}=(0,G.useDashboardStore)(),[e,f]=(0,d.useState)(""),[g,h]=(0,d.useState)(""),[i,j]=(0,d.useState)(""),[l,m]=(0,d.useState)(null),n=(0,p.useMutation)({mutationFn:async a=>[]}),{data:o,isLoading:r}=(a=(0,d.useMemo)(()=>g.trim()?{query:g.trim(),project:c,expectedId:l}:null,[g,c,l]),(0,q.useQuery)({queryKey:["recall-explain",a],queryFn:()=>E(a),enabled:!!a?.query?.trim(),staleTime:3e4})),{data:s=[]}=(0,q.useQuery)({queryKey:["memory-candidates",i,c],queryFn:()=>F(i,c),enabled:i.trim().length>=2,staleTime:3e4}),t=o?.results.length?o.results.reduce((a,b)=>a+b.relevanceScore,0)/o.results.length:0;return(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)(A.GlassCard,{className:"p-4",children:(0,b.jsxs)("form",{onSubmit:a=>{a.preventDefault(),e.trim()&&(h(e.trim()),n.mutate(e.trim()))},className:"flex gap-3",children:[(0,b.jsxs)("div",{className:"relative flex-1",children:[(0,b.jsx)(k,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[var(--sc-text-muted)]"}),(0,b.jsx)("input",{value:e,onChange:a=>f(a.target.value),placeholder:"Why did we choose PostgreSQL over SQLite?",className:"h-10 w-full rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] pl-10 pr-4 text-sm text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)] focus-ring-cyan"})]}),(0,b.jsx)(C.Button,{type:"submit",variant:"coral",size:"md",children:"Explain recall"})]})}),o&&!r&&(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)(B.Badge,{variant:"cyan",children:[o.total," result",1===o.total?"":"s"]}),(0,b.jsxs)(B.Badge,{variant:"muted",children:["avg relevance ",t.toFixed(2)]})]}),r&&(0,b.jsx)("div",{className:"py-8 text-center text-sm text-[var(--sc-text-muted)] animate-pulse",children:"Analysing recall..."}),!r&&!o&&!g&&(0,b.jsx)("div",{className:"py-8 text-center text-sm text-[var(--sc-text-muted)]",children:"Type a query to see what the agent would remember"}),!r&&o&&0===o.results.length&&(0,b.jsx)("div",{className:"py-8 text-center text-sm text-[var(--sc-text-muted)]",children:"No recalled memories for this query."}),!r&&o&&o.results.length>0&&(0,b.jsx)("div",{className:"space-y-3",children:o.results.map(a=>(0,b.jsx)(I,{result:a},a.memory.id))}),(0,b.jsxs)("details",{className:"glass-card",children:[(0,b.jsx)("summary",{className:"cursor-pointer select-none p-4 text-xs uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Advanced: Recall Debugger"}),(0,b.jsxs)("div",{className:"space-y-6 border-t border-[var(--sc-border)] p-4",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-xs uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Expected memory"}),(0,b.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-secondary)]",children:"Search for a memory you expected to appear, then compare its rank."}),(0,b.jsx)("input",{value:i,onChange:a=>j(a.target.value),placeholder:"Search a memory to compare...",className:"mt-3 h-9 w-full rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] px-3 text-sm text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)] focus-ring-cyan"}),(0,b.jsx)("div",{className:"mt-3 space-y-2",children:s.map(a=>(0,b.jsxs)("button",{onClick:()=>{m(a.id),j(a.title)},className:`block w-full rounded-lg border px-3 py-2 text-left text-sm ${l===a.id?"border-[var(--sc-cyan)]/50 bg-[var(--sc-cyan)]/10 text-[var(--sc-text-primary)]":"border-[var(--sc-border)] bg-[var(--sc-bg-surface)] text-[var(--sc-text-primary)] hover:border-[var(--sc-text-muted)]"}`,children:[(0,b.jsx)("div",{className:"font-medium",children:a.title}),(0,b.jsxs)("div",{className:"text-xs text-[var(--sc-text-muted)]",children:[a.category," · ",a.project||"workspace"]})]},a.id))})]}),o?.expectedMemory&&(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-xs uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Eligibility breakdown"}),(0,b.jsxs)("div",{className:"mt-3 rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-3 text-sm text-[var(--sc-text-primary)]",children:[(0,b.jsx)("div",{className:"text-base font-medium",children:o.expectedMemory.title}),(0,b.jsxs)("div",{className:"mt-2 space-y-1 text-xs text-[var(--sc-text-secondary)]",children:[(0,b.jsxs)("div",{children:["Rank: ",o.expectedMemory.rank??"not returned"]}),(0,b.jsxs)("div",{children:["Status: ",o.expectedMemory.status]}),(0,b.jsxs)("div",{children:["Capture: ",o.expectedMemory.captureMethod," · ",o.expectedMemory.sourceKind]}),(0,b.jsxs)("div",{children:["Eligible:"," ",(0,b.jsx)(B.Badge,{variant:o.expectedMemory.eligible?"safe":"coral",children:o.expectedMemory.eligible?"yes":"no"})]})]}),(0,b.jsx)("div",{className:"mt-3 space-y-1",children:o.expectedMemory.reasons.map(a=>(0,b.jsx)("div",{className:"rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 px-3 py-2 text-xs text-[var(--sc-text-secondary)]",children:a},a))})]})]}),o?.misses&&o.misses.length>0&&(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"text-xs uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:["Likely misses (",o.misses.length,")"]}),(0,b.jsx)("div",{className:"mt-3 space-y-3",children:o.misses.map(a=>(0,b.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-3",children:[(0,b.jsx)("div",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:a.title}),(0,b.jsxs)("div",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:[a.captureMethod," · salience ",a.salience.toFixed(2)]}),(0,b.jsx)("ul",{className:"mt-2 space-y-1 text-xs text-[var(--sc-text-secondary)]",children:a.whyNotRecalled.map(a=>(0,b.jsxs)("li",{children:["• ",a]},a))})]},a.id))})]}),!o&&(0,b.jsx)("div",{className:"text-sm text-[var(--sc-text-secondary)]",children:"Run a recall query first, then use this section to debug ranking and misses."})]})]})]})}var K=a.i(74150);let L=(0,i.default)("layers",[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]]);var M=a.i(79155);let N=(0,i.default)("archive",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"M10 12h4",key:"a56b0p"}]]),O=(0,i.default)("cloud-off",[["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M5.782 5.782A7 7 0 0 0 9 19h8.5a4.5 4.5 0 0 0 1.307-.193",key:"yfwify"}],["path",{d:"M21.532 16.5A4.5 4.5 0 0 0 17.5 10h-1.79A7.008 7.008 0 0 0 10 5.07",key:"jlfiyv"}]]),P=(0,i.default)("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);var Q=a.i(5479);let R=(0,i.default)("star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);function S({memory:a,reasons:c,onAction:d,busy:e=!1}){let f=a.tags??[],g=a.trustScore??1,h=function(a){if(!a)return null;let b=Math.floor((Date.now()-new Date(a).getTime())/36e5);if(b<1)return"just now";if(b<24)return`${b}h ago`;let c=Math.floor(b/24);return c<7?`${c}d ago`:`${Math.floor(c/7)}w ago`}(a.createdAt),i=a.project?.trim();return(0,b.jsxs)("div",{className:"glass-card-strong flex flex-col",children:[(0,b.jsxs)("div",{className:"max-h-[160px] overflow-y-auto p-6 pb-3",children:[(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:c.map(a=>(0,b.jsx)(B.Badge,{variant:a.variant,children:a.label},a.label))}),(0,b.jsx)("h3",{className:"mt-3 text-lg font-bold leading-tight text-[var(--sc-text-primary)]",children:a.title}),(0,b.jsx)("div",{className:"mt-2 text-sm leading-relaxed text-[var(--sc-text-secondary)]",children:a.content}),(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-1.5 text-xs text-[var(--sc-text-muted)]",children:[f.length>0&&(0,b.jsx)("span",{children:f.join(" · ")}),f.length>0&&(0,b.jsx)("span",{children:"·"}),i&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{children:i}),(0,b.jsx)("span",{children:"·"})]}),h&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{children:h}),(0,b.jsx)("span",{children:"·"})]}),(0,b.jsxs)("span",{children:["trust ",g.toFixed(2)]}),a.captureMethod&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{children:"·"}),(0,b.jsx)("span",{children:a.captureMethod})]})]})]}),(0,b.jsx)("div",{className:"border-t border-[var(--sc-border)] px-6 py-4",children:(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,b.jsx)(C.Button,{variant:"cyan",size:"sm",disabled:e,onClick:()=>d("keep"),children:"Keep"}),(0,b.jsx)(C.Button,{variant:"coral",size:"sm",disabled:e,onClick:()=>d("suppress"),children:"Suppress"}),(0,b.jsxs)(C.Button,{variant:"ghost",size:"sm",disabled:e,onClick:()=>d("archive"),children:[(0,b.jsx)(N,{className:"h-3.5 w-3.5"}),"Archive"]}),(0,b.jsxs)("details",{className:"ml-auto",children:[(0,b.jsx)("summary",{className:"cursor-pointer text-xs text-[var(--sc-text-muted)] hover:text-[var(--sc-text-secondary)]",children:"More actions"}),(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap gap-2",children:[(0,b.jsxs)(C.Button,{variant:"ghost",size:"sm",disabled:e,onClick:()=>d("pin"),children:[(0,b.jsx)(Q.Pin,{className:"h-3 w-3"}),a.pinned?"Unpin":"Pin"]}),(0,b.jsxs)(C.Button,{variant:"ghost",size:"sm",disabled:e,onClick:()=>d("canonical"),children:[(0,b.jsx)(R,{className:"h-3 w-3"}),"Make canonical"]}),(0,b.jsxs)(C.Button,{variant:"ghost",size:"sm",disabled:e,onClick:()=>d("global"),children:[(0,b.jsx)(P,{className:"h-3 w-3"}),"global"===a.scope?"Project scope":"Make global"]}),(0,b.jsxs)(C.Button,{variant:"ghost",size:"sm",disabled:e,onClick:()=>d("cloudExclude"),children:[(0,b.jsx)(O,{className:"h-3 w-3"}),a.cloudExcluded?"Include in cloud":"Exclude from cloud"]})]})]})]})})]})}let T={lowTrust:"lowTrust",stale:"stale",noisyAutoExtracted:"noisyAutoExtracted",neverUsed:"neverUsed",projectless:"projectless",duplicates:null,contradictions:null},U={lowTrust:{label:"Low Trust",reasonLabel:"LOW TRUST",reasonVariant:"coral"},stale:{label:"Stale",reasonLabel:"STALE",reasonVariant:"amber"},noisyAutoExtracted:{label:"Noisy Auto",reasonLabel:"AUTO-EXTRACTED",reasonVariant:"medium"},neverUsed:{label:"Never Used",reasonLabel:"NEVER USED",reasonVariant:"muted"},projectless:{label:"Projectless",reasonLabel:"NO PROJECT",reasonVariant:"info"}},V=["lowTrust","stale","noisyAutoExtracted","neverUsed","projectless"];function W(){let a,c,e,f,g,{projectFilter:h,selectedMemory:i,setSelectedMemory:j,reviewFocus:k,setReviewFocus:l}=(0,G.useDashboardStore)(),{data:m,isLoading:n}=z(h),o=(a=(0,r.useQueryClient)(),(0,p.useMutation)({mutationFn:x,onSuccess:b=>{a.setQueriesData({queryKey:["review-queue"]},a=>v(a,b)),a.setQueriesData({queryKey:["memories"]},a=>a?{...a,memories:a.memories.map(a=>a.id===b.id?b:a)}:a),a.invalidateQueries({queryKey:["review-queue"]}),a.invalidateQueries({queryKey:["memories"]}),a.invalidateQueries({queryKey:["quality"]}),a.invalidateQueries({queryKey:["contradictions"]}),a.invalidateQueries({queryKey:["stats"]})}})),q=(c=(0,r.useQueryClient)(),(0,p.useMutation)({mutationFn:y,onSuccess:(a,b)=>{c.setQueriesData({queryKey:["review-queue"]},c=>{var d,e;return d=b.keptId,e=b.removedId,c?v({...c,sections:{...c.sections,stale:c.sections.stale.filter(a=>a.id!==e),neverUsed:c.sections.neverUsed.filter(a=>a.id!==e),lowTrust:c.sections.lowTrust.filter(a=>a.id!==e),noisyAutoExtracted:c.sections.noisyAutoExtracted.filter(a=>a.id!==e),projectless:c.sections.projectless.filter(a=>a.id!==e),duplicates:c.sections.duplicates.filter(a=>a.memoryA.id!==e&&a.memoryB.id!==e),contradictions:c.sections.contradictions.filter(a=>a.memoryA.id!==e&&a.memoryB.id!==e)}},{...a,id:d}):c}),c.setQueriesData({queryKey:["memories"]},c=>c?{...c,memories:c.memories.filter(a=>a.id!==b.removedId).map(c=>c.id===b.keptId?a:c)}:c),c.invalidateQueries({queryKey:["review-queue"]}),c.invalidateQueries({queryKey:["memories"]}),c.invalidateQueries({queryKey:["quality"]}),c.invalidateQueries({queryKey:["contradictions"]}),c.invalidateQueries({queryKey:["stats"]}),c.invalidateQueries({queryKey:["graph"]})}})),[s,t]=(0,d.useState)("lowTrust"),[u,w]=(0,d.useState)(0),[A,B]=(0,d.useState)(null),[D,E]=(0,d.useState)(!1),F=(0,d.useRef)(0),H=(0,d.useRef)(null),I=(0,d.useRef)(null),J=(0,d.useRef)(null);(0,d.useEffect)(()=>{if(!k||!m||J.current===k)return;J.current=k;let a=T[k];a?(t(a),w(0)):"duplicates"===k?setTimeout(()=>I.current?.scrollIntoView({behavior:"smooth",block:"start"}),100):"contradictions"===k&&setTimeout(()=>H.current?.scrollIntoView({behavior:"smooth",block:"start"}),100),l(null)},[k,m,l]);let N=o.isPending||q.isPending||D,O=m?.sections[s]??[],P=O.length,Q=O[u]??null,R=m?.sections.contradictions??[],W=m?.sections.duplicates??[];(0,d.useEffect)(()=>{P>0&&u>=P&&w(P-1)},[P,u]);let X=(a,b)=>{B({kind:a,message:b}),"success"===a&&setTimeout(()=>B(null),2e3)},Y=async a=>{if(!Q||D)return;let b=function(a,b){switch(a){case"keep":return"restore";case"suppress":return"suppress";case"archive":return"archive";case"pin":return b.pinned?"unpin":"pin";case"canonical":return"canonicalize";case"global":return"global"===b.scope?"rescopeProject":"rescopeGlobal";case"cloudExclude":return b.cloudExcluded?"includeCloud":"excludeCloud"}}(a,Q);E(!0),await new Promise(a=>setTimeout(a,250)),F.current++;try{B(null);let a=await o.mutateAsync({id:Q.id,action:b,reviewedBy:"dashboard-review",project:Q.project??null,scope:Q.scope});i?.id===a.id&&j(a),X("success",`${{restore:"Kept",suppress:"Suppressed",archive:"Archived",pin:"Pinned",unpin:"Unpinned",canonicalize:"Marked canonical",rescopeGlobal:"Made global",rescopeProject:"Moved to project scope",excludeCloud:"Excluded from cloud",includeCloud:"Included in cloud"}[b]??"Updated"}: ${a.title}`)}catch(a){X("error",a instanceof Error?a.message:"Failed to update")}finally{E(!1)}},Z=async(a,b)=>{try{B(null),await o.mutateAsync({id:a.id,action:"canonicalize",reviewedBy:"dashboard-review"}),await o.mutateAsync({id:b.id,action:"suppress",reviewedBy:"dashboard-review"}),X("success",`Kept "${a.title}", suppressed "${b.title}"`)}catch(a){X("error",a instanceof Error?a.message:"Failed to resolve contradiction")}},$=async(a,b)=>{try{B(null);let c=await q.mutateAsync({keptId:a.id,removedId:b.id,reviewedBy:"dashboard-merge"});i?.id===b.id&&j(c),X("success",`Merged duplicate into "${a.title}"`)}catch(a){X("error",a instanceof Error?a.message:"Failed to merge")}},_=V.reduce((a,b)=>a+(m?.summary[b]??0),0)+(m?.summary.contradictions??0)+(m?.summary.duplicates??0);if(n)return(0,b.jsx)("div",{className:"space-y-6",children:(0,b.jsx)("div",{className:"text-sm text-[var(--sc-text-secondary)]",children:"Loading review queue…"})});if(0===_&&m)return(0,b.jsx)("div",{className:"space-y-6",children:(0,b.jsxs)("div",{className:"glass-card-strong flex flex-col items-center justify-center p-12 text-center",children:[(0,b.jsx)(K.CheckCircle2,{className:"h-12 w-12 text-[var(--sc-cyan)]"}),(0,b.jsx)("h3",{className:"mt-4 text-xl font-semibold text-[var(--sc-text-primary)]",children:"All caught up"}),(0,b.jsx)("p",{className:"mt-2 text-sm text-[var(--sc-text-secondary)]",children:"No memories need review right now."})]})});let aa=P>0?Math.round((u+1)/P*100):0;return(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:V.map(a=>{let c=U[a],d=m?.summary[a]??0,e=s===a;return(0,b.jsxs)("button",{onClick:()=>{t(a),w(0),B(null)},className:`rounded-full border px-3 py-1.5 text-xs font-semibold transition-colors ${e?"border-[var(--sc-coral)]/50 bg-[var(--sc-coral)] text-white":"border-[var(--sc-border)] bg-[var(--sc-surface-interactive)] text-[var(--sc-text-secondary)] hover:border-[var(--sc-text-muted)]"}`,children:[c.label," ",d]},a)})}),A&&(0,b.jsx)("div",{className:`rounded-2xl border px-4 py-3 text-sm ${"error"===A.kind?"border-[var(--sc-coral)]/30 bg-[var(--sc-coral)]/10 text-[var(--sc-coral)]":"border-[var(--sc-cyan)]/30 bg-[var(--sc-cyan)]/10 text-[var(--sc-cyan)]"}`,children:(0,b.jsxs)("div",{className:"flex items-start gap-2",children:["success"===A.kind&&(0,b.jsx)(K.CheckCircle2,{className:"mt-0.5 h-4 w-4 shrink-0"}),(0,b.jsx)("span",{children:A.message})]})}),Q?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between text-xs text-[var(--sc-text-muted)]",children:[(0,b.jsxs)("span",{children:["Card ",u+1," of ",P," · ",U[s].label," queue"]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("button",{type:"button",disabled:0===u,onClick:()=>w(a=>Math.max(0,a-1)),className:"rounded px-2 py-0.5 text-[var(--sc-text-secondary)] transition-colors hover:bg-[var(--sc-surface-interactive)] disabled:opacity-30",children:"← Prev"}),(0,b.jsx)("button",{type:"button",disabled:u>=P-1,onClick:()=>w(a=>Math.min(P-1,a+1)),className:"rounded px-2 py-0.5 text-[var(--sc-text-secondary)] transition-colors hover:bg-[var(--sc-surface-interactive)] disabled:opacity-30",children:"Next →"})]})]}),(0,b.jsx)("div",{className:"h-1.5 w-full overflow-hidden rounded-full bg-[var(--sc-bg-elevated)]",children:(0,b.jsx)("div",{className:"h-full rounded-full bg-[var(--sc-cyan)] transition-all",style:{width:`${aa}%`}})})]}),(0,b.jsx)("div",{className:D?"sc-card-exit":"sc-card-enter",style:{transition:"opacity 200ms ease, transform 200ms ease"},children:(0,b.jsx)(S,{memory:Q,reasons:(e=[],f=U[s],e.push({label:f.reasonLabel,variant:f.reasonVariant}),g=Q.trustScore??1,"lowTrust"!==s&&g<.7&&e.push({label:`TRUST ${g.toFixed(1)}`,variant:"coral"}),"lowTrust"===s&&e.push({label:`${g.toFixed(2)}`,variant:"coral"}),("auto"===Q.captureMethod||Q.tags?.includes("auto-extracted"))&&"noisyAutoExtracted"!==s&&e.push({label:"AUTO-EXTRACTED",variant:"medium"}),e),onAction:Y,busy:N})},F.current)]}):(0,b.jsx)("div",{className:"glass-card-strong p-8 text-center",children:(0,b.jsxs)("p",{className:"text-sm text-[var(--sc-text-secondary)]",children:["No ",U[s].label.toLowerCase()," memories to review."]})}),(0,b.jsxs)("div",{ref:H,className:"glass-card-strong p-5",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(M.ShieldAlert,{size:16,className:"text-[var(--sc-amber)]"}),(0,b.jsxs)("h3",{className:"text-base font-semibold text-[var(--sc-text-primary)]",children:["Contradictions (",R.length,")"]})]}),0===R.length?(0,b.jsx)("p",{className:"mt-3 text-sm text-[var(--sc-text-secondary)]",children:"No contradictions detected."}):(0,b.jsx)("div",{className:"mt-4 space-y-4",children:R.slice(0,8).map(a=>(0,b.jsxs)("div",{className:"rounded-xl border border-[var(--sc-amber)]/20 bg-[var(--sc-bg-deep)]/60 p-4",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-xs uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Score"}),(0,b.jsxs)("div",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:[Math.round(100*a.score),"%"]})]}),(0,b.jsx)("div",{className:"text-right text-xs text-[var(--sc-text-muted)]",children:a.sharedTopics.length?a.sharedTopics.join(" · "):"No shared topic"})]}),(0,b.jsx)("div",{className:"mt-3 rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-surface)]/60 p-3 text-sm text-[var(--sc-text-primary)]",children:a.reason}),(0,b.jsx)("div",{className:"mt-4 grid gap-3 md:grid-cols-2",children:[a.memoryA,a.memoryB].map((c,d)=>{let e=0===d?a.memoryB:a.memoryA;return(0,b.jsxs)("div",{className:"rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-surface)]/70 p-3",children:[(0,b.jsx)("div",{className:"text-xs uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:0===d?"A":"B"}),(0,b.jsx)("div",{className:"mt-1 text-sm font-medium text-[var(--sc-text-primary)]",children:c.title}),(0,b.jsx)("div",{className:"mt-1 line-clamp-2 text-xs text-[var(--sc-text-secondary)]",children:c.content}),(0,b.jsxs)("div",{className:"mt-2 text-xs text-[var(--sc-text-muted)]",children:["trust ",(c.trustScore??1).toFixed(2)," · ",c.captureMethod||"manual"]}),(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap gap-2",children:[(0,b.jsx)(C.Button,{variant:"cyan",size:"sm",disabled:N,onClick:()=>Z(c,e),children:"Keep this"}),(0,b.jsx)(C.Button,{variant:"ghost",size:"sm",disabled:N,onClick:()=>o.mutateAsync({id:c.id,action:"suppress",reviewedBy:"dashboard-review"}).then(()=>X("success",`Suppressed: ${c.title}`)).catch(a=>X("error",a instanceof Error?a.message:"Failed to suppress")),children:"Suppress"})]})]},c.id)})})]},`${a.memoryA.id}-${a.memoryB.id}`))})]}),(0,b.jsxs)("div",{ref:I,className:"glass-card-strong p-5",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(L,{size:16,className:"text-[var(--sc-cyan)]"}),(0,b.jsxs)("h3",{className:"text-base font-semibold text-[var(--sc-text-primary)]",children:["Duplicates (",W.length,")"]})]}),0===W.length?(0,b.jsx)("p",{className:"mt-3 text-sm text-[var(--sc-text-secondary)]",children:"No duplicate candidates detected."}):(0,b.jsx)("div",{className:"mt-4 space-y-3",children:W.slice(0,8).map(a=>{let c=a.recommendedKeepId===a.memoryA.id?a.memoryA:a.memoryB,d=a.recommendedKeepId===a.memoryA.id?a.memoryB:a.memoryA;return(0,b.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4",children:[(0,b.jsx)("div",{className:"flex items-start justify-between gap-4",children:(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:["“",a.memoryA.title,"” vs “",a.memoryB.title,"”"]}),(0,b.jsxs)("div",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:[a.similarity," · ",a.sharedWords," shared words"]})]})}),(0,b.jsxs)("div",{className:"mt-3 flex flex-wrap gap-2",children:[(0,b.jsx)(C.Button,{variant:"cyan",size:"sm",disabled:N,onClick:()=>$(a.memoryA,a.memoryB),children:"Keep A"}),(0,b.jsx)(C.Button,{variant:"outline",size:"sm",disabled:N,onClick:()=>$(a.memoryB,a.memoryA),children:"Keep B"}),(0,b.jsx)(C.Button,{variant:"ghost",size:"sm",disabled:N,onClick:()=>$(c,d),children:"Merge (recommended)"})]})]},`${a.memoryA.id}-${a.memoryB.id}`)})})]})]})}var X=a.i(94227),Y=a.i(6036),Z=a.i(4335),$=a.i(78181),_=a.i(59656),aa=d,ab=a.i(70124);function ac(a,b){if("function"==typeof a)return a(b);null!=a&&(a.current=b)}class ad extends aa.Component{getSnapshotBeforeUpdate(a){let b=this.props.childRef.current;if(b&&a.isPresent&&!this.props.isPresent){let a=b.offsetParent,c=(0,_.isHTMLElement)(a)&&a.offsetWidth||0,d=(0,_.isHTMLElement)(a)&&a.offsetHeight||0,e=this.props.sizeRef.current;e.height=b.offsetHeight||0,e.width=b.offsetWidth||0,e.top=b.offsetTop,e.left=b.offsetLeft,e.right=c-e.width-e.left,e.bottom=d-e.height-e.top}return null}componentDidUpdate(){}render(){return this.props.children}}function ae({children:a,isPresent:c,anchorX:e,anchorY:f,root:g}){let h=(0,aa.useId)(),i=(0,aa.useRef)(null),j=(0,aa.useRef)({width:0,height:0,top:0,left:0,right:0,bottom:0}),{nonce:k}=(0,aa.useContext)(ab.MotionConfigContext),l=function(...a){return d.useCallback(function(...a){return b=>{let c=!1,d=a.map(a=>{let d=ac(a,b);return c||"function"!=typeof d||(c=!0),d});if(c)return()=>{for(let b=0;b<d.length;b++){let c=d[b];"function"==typeof c?c():ac(a[b],null)}}}}(...a),a)}(i,a.props?.ref??a?.ref);return(0,aa.useInsertionEffect)(()=>{let{width:a,height:b,top:d,left:l,right:m,bottom:n}=j.current;if(c||!i.current||!a||!b)return;let o="left"===e?`left: ${l}`:`right: ${m}`,p="bottom"===f?`bottom: ${n}`:`top: ${d}`;i.current.dataset.motionPopId=h;let q=document.createElement("style");k&&(q.nonce=k);let r=g??document.head;return r.appendChild(q),q.sheet&&q.sheet.insertRule(`
2
2
  [data-motion-pop-id="${h}"] {
3
3
  position: absolute !important;
4
4
  width: ${a}px !important;
@@ -6,6 +6,6 @@ module.exports=[59414,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esMod
6
6
  ${o}px !important;
7
7
  ${p}px !important;
8
8
  }
9
- `),()=>{r.contains(q)&&r.removeChild(q)}},[c]),(0,b.jsx)(ac,{isPresent:c,childRef:i,sizeRef:j,children:_.cloneElement(a,{ref:l})})}let ae=({children:a,initial:c,isPresent:e,onExitComplete:f,custom:g,presenceAffectsLayout:h,mode:i,anchorX:j,anchorY:k,root:l})=>{let m=(0,X.useConstant)(af),n=(0,d.useId)(),o=!0,p=(0,d.useMemo)(()=>(o=!1,{id:n,initial:c,isPresent:e,custom:g,onExitComplete:a=>{for(let b of(m.set(a,!0),m.values()))if(!b)return;f&&f()},register:a=>(m.set(a,!1),()=>m.delete(a))}),[e,m,f]);return h&&o&&(p={...p}),(0,d.useMemo)(()=>{m.forEach((a,b)=>m.set(b,!1))},[e]),d.useEffect(()=>{e||m.size||!f||f()},[e]),"popLayout"===i&&(a=(0,b.jsx)(ad,{isPresent:e,anchorX:j,anchorY:k,root:l,children:a})),(0,b.jsx)(Z.PresenceContext.Provider,{value:p,children:a})};function af(){return new Map}var ag=a.i(7084);let ah=a=>a.key||"";function ai(a){let b=[];return d.Children.forEach(a,a=>{(0,d.isValidElement)(a)&&b.push(a)}),b}let aj=({children:a,custom:c,initial:e=!0,onExitComplete:f,presenceAffectsLayout:g=!0,mode:h="sync",propagate:i=!1,anchorX:j="left",anchorY:k="top",root:l})=>{let[m,n]=(0,ag.usePresence)(i),o=(0,d.useMemo)(()=>ai(a),[a]),p=i&&!m?[]:o.map(ah),q=(0,d.useRef)(!0),r=(0,d.useRef)(o),s=(0,X.useConstant)(()=>new Map),t=(0,d.useRef)(new Set),[u,v]=(0,d.useState)(o),[w,x]=(0,d.useState)(o);(0,Y.useIsomorphicLayoutEffect)(()=>{q.current=!1,r.current=o;for(let a=0;a<w.length;a++){let b=ah(w[a]);p.includes(b)?(s.delete(b),t.current.delete(b)):!0!==s.get(b)&&s.set(b,!1)}},[w,p.length,p.join("-")]);let y=[];if(o!==u){let a=[...o];for(let b=0;b<w.length;b++){let c=w[b],d=ah(c);p.includes(d)||(a.splice(b,0,c),y.push(c))}return"wait"===h&&y.length&&(a=y),x(ai(a)),v(o),null}let{forceRender:z}=(0,d.useContext)(W.LayoutGroupContext);return(0,b.jsx)(b.Fragment,{children:w.map(a=>{let d=ah(a),u=(!i||!!m)&&(o===w||p.includes(d));return(0,b.jsx)(ae,{isPresent:u,initial:(!q.current||!!e)&&void 0,custom:c,presenceAffectsLayout:g,mode:h,root:l,onExitComplete:u?void 0:()=>{if(t.current.has(d)||(t.current.add(d),!s.has(d)))return;s.set(d,!0);let a=!0;s.forEach(b=>{b||(a=!1)}),a&&(z?.(),x(r.current),i&&n?.(),f&&f())},anchorX:j,anchorY:k,children:a},d)})})};var ak=a.i(97826);function al({session:a,expanded:c,onToggle:d}){let e=a.models[0]||"model unknown";return(0,b.jsxs)(A.GlassCard,{hover:!0,className:"p-4",children:[(0,b.jsxs)("button",{onClick:d,className:"w-full text-left",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:`h-2 w-2 rounded-full ${a.threats>0?"bg-[var(--sc-coral)]":"bg-[var(--sc-cyan)]"}`}),(0,b.jsx)("span",{className:"truncate text-sm font-medium text-[var(--sc-text-primary)]",children:a.sessionId})]}),(0,b.jsxs)("div",{className:"mt-1 pl-4 text-xs text-[var(--sc-text-muted)]",children:[function(a){let b=Math.floor((Date.now()-new Date(a).getTime())/6e4);if(b<1)return"just now";if(b<60)return`${b}m ago`;let c=Math.floor(b/60);if(c<24)return`${c}h ago`;let d=Math.floor(c/24);if(d<7)return`${d}d ago`;let e=Math.floor(d/7);return`${e}w ago`}(a.lastSeenAt)," · ",e]})]}),(0,b.jsx)("span",{className:"shrink-0 text-xs text-[var(--sc-text-muted)]",children:c?"▾":"▸"})]}),(0,b.jsxs)("div",{className:"mt-3 flex flex-wrap gap-2",children:[(0,b.jsxs)(B.Badge,{variant:"muted",children:["Saved: ",a.saved]}),(0,b.jsxs)(B.Badge,{variant:"muted",children:["Skipped: ",a.skipped]}),(0,b.jsxs)(B.Badge,{variant:a.threats>0?"coral":"muted",children:["Threats: ",a.threats]}),a.autoExtracted>0&&(0,b.jsxs)(B.Badge,{variant:"muted",children:["Auto: ",a.autoExtracted]}),a.quarantined>0&&(0,b.jsxs)(B.Badge,{variant:"amber",children:["Quarantined: ",a.quarantined]})]})]}),(0,b.jsx)(aj,{children:c&&a.memories.length>0&&(0,b.jsx)(ak.motion.div,{initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{duration:.2,ease:"easeInOut"},className:"overflow-hidden",children:(0,b.jsx)("div",{className:"mt-3 border-t border-[var(--sc-border)] pt-3 space-y-2",children:a.memories.map(a=>(0,b.jsx)("div",{className:"flex items-center justify-between gap-3 rounded-lg bg-[var(--sc-bg-elevated)]/60 px-3 py-2",children:(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"truncate text-sm text-[var(--sc-text-primary)]",children:a.title}),(0,b.jsxs)("div",{className:"mt-0.5 flex items-center gap-2",children:[(0,b.jsx)(B.Badge,{variant:"muted",children:a.category}),(0,b.jsx)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:new Date(a.createdAt).toLocaleDateString("en-GB",{day:"2-digit",month:"2-digit",year:"numeric"})})]})]})},a.id))})})})]})}let am={architecture:"#FFD700",pattern:"#FFB347",preference:"#FFA500",error:"#FF6B6B",context:"#FFC080",learning:"#FFE4B5",todo:"#FF8C00",note:"#FFCC66",relationship:"#00D4FF",custom:"#FFB347"},an={short_term:"#FFD700",episodic:"#FFB347",long_term:"#FF8C00"};function ao(a){let b=Math.floor((Date.now()-new Date(a).getTime())/6e4);if(b<1)return"now";if(b<60)return`${b}m ago`;let c=Math.floor(b/60);if(c<24)return`${c}h ago`;let d=Math.floor(c/24);if(d<7)return`${d}d ago`;let e=Math.floor(d/7);return`${e}w ago`}function ap({memory:a,isSelected:c,onSelect:d,isChecked:e,onCheck:f}){let g=am[a.category]||am.custom,h=an[a.type]||an.short_term;return(0,b.jsxs)("div",{onClick:()=>d(a),className:`bg-[var(--sc-bg-surface)] border rounded-lg p-3 hover:border-[var(--sc-border)] cursor-pointer transition-colors relative ${c?"border-[var(--sc-cyan)]":"border-[var(--sc-border)]"}`,children:[(0,b.jsx)("div",{className:"h-0.5 rounded-full bg-[var(--sc-bg-elevated)] mb-2 overflow-hidden",children:(0,b.jsx)("div",{className:"h-full rounded-full",style:{width:`${100*a.salience}%`,backgroundColor:g}})}),f&&(0,b.jsx)("input",{type:"checkbox",checked:e??!1,onChange:b=>{b.stopPropagation(),f(a.id,b.target.checked)},onClick:a=>a.stopPropagation(),className:"absolute top-3 right-3 w-4 h-4 accent-blue-500"}),(0,b.jsx)("h3",{className:"text-sm font-semibold text-[var(--sc-text-primary)] truncate pr-6",children:a.title}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5 mt-1",children:[(0,b.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded-full font-medium",style:{backgroundColor:g+"22",color:g},children:a.category}),(0,b.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded-full font-medium",style:{backgroundColor:h+"22",color:h},children:a.type.replace("_","-")}),a.status&&"active"!==a.status&&(0,b.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded-full font-medium bg-[var(--sc-amber)]/15 text-[var(--sc-amber)]",children:a.status}),a.pinned&&(0,b.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded-full font-medium bg-[var(--sc-cyan)]/15 text-[var(--sc-cyan)]",children:"pinned"})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5 mt-2 flex-wrap",children:[a.sourceKind&&(0,b.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-[var(--sc-bg-elevated)] text-[var(--sc-text-primary)]",children:a.sourceKind}),a.captureMethod&&(0,b.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-[var(--sc-bg-elevated)] text-[var(--sc-text-primary)]",children:a.captureMethod}),"number"==typeof a.trustScore&&(0,b.jsxs)("span",{className:`text-[10px] px-1.5 py-0.5 rounded ${a.trustScore<.7?"bg-[var(--sc-coral)]/15 text-[var(--sc-coral)]":"bg-[var(--sc-cyan)]/15 text-[var(--sc-cyan)]"}`,children:["trust ",a.trustScore.toFixed(2)]}),a.cloudExcluded&&(0,b.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-[var(--sc-amber)]/15 text-[var(--sc-amber)]",children:"cloud excluded"})]}),(0,b.jsx)("p",{className:"text-[13px] text-[var(--sc-text-secondary)] mt-1.5 line-clamp-3 leading-snug",children:a.content}),a.tags.length>0&&(0,b.jsxs)("div",{className:"flex items-center gap-1 mt-2 flex-wrap",children:[a.tags.slice(0,3).map(a=>(0,b.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-[var(--sc-bg-elevated)] text-[var(--sc-text-secondary)]",children:a},a)),a.tags.length>3&&(0,b.jsxs)("span",{className:"text-[10px] text-[var(--sc-text-muted)]",children:["+",a.tags.length-3," more"]})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between mt-2 text-[11px] text-[var(--sc-text-muted)]",children:[(0,b.jsxs)("span",{children:["Created ",ao(a.createdAt)]}),(0,b.jsxs)("span",{children:["Accessed ",ao(a.lastAccessed)]})]})]})}function aq(){let[a,c]=(0,d.useState)("sessions"),[e,f]=(0,d.useState)("recent"),[g,h]=(0,d.useState)(""),[i,j]=(0,d.useState)(null),{selectedMemory:k,setSelectedMemory:l,projectFilter:m,typeFilter:n,categoryFilter:p}=(0,G.useDashboardStore)(),{data:q}=(0,o.useOpenClawSessions)(),{data:r=[]}=(0,o.useMemoriesWithRealtime)({limit:1e3,project:m||void 0,type:n||void 0,category:p||void 0,mode:g?"search":"recent",query:g||void 0});(0,o.useAccessMemory)();let s=(0,d.useMemo)(()=>q?.sessions??[],[q?.sessions]),t=(0,d.useMemo)(()=>{let a=[...r];switch(e){case"salience":a.sort((a,b)=>b.salience-a.salience);break;case"recent":a.sort((a,b)=>new Date(b.createdAt).getTime()-new Date(a.createdAt).getTime());break;case"oldest":a.sort((a,b)=>new Date(a.createdAt).getTime()-new Date(b.createdAt).getTime())}return a},[r,e]),u=(0,d.useCallback)(a=>{j(b=>b===a?null:a)},[]),v=(0,d.useCallback)(a=>l(a),[l]);return(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,b.jsxs)("div",{className:"flex items-center overflow-hidden rounded-lg border border-[var(--sc-border)]",children:[(0,b.jsxs)("button",{onClick:()=>c("sessions"),className:`px-3 py-1.5 text-xs font-medium transition-colors ${"sessions"===a?"bg-[var(--sc-border)] text-[var(--sc-text-primary)]":"text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)]"}`,children:["Sessions"," ",(0,b.jsx)("span",{className:"ml-1 text-[var(--sc-text-muted)]",children:s.length})]}),(0,b.jsxs)("button",{onClick:()=>c("all"),className:`px-3 py-1.5 text-xs font-medium transition-colors ${"all"===a?"bg-[var(--sc-border)] text-[var(--sc-text-primary)]":"text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)]"}`,children:["All"," ",(0,b.jsx)("span",{className:"ml-1 text-[var(--sc-text-muted)]",children:r.length})]})]}),(0,b.jsxs)("select",{value:e,onChange:a=>f(a.target.value),className:"rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] px-2 py-1.5 text-xs text-[var(--sc-text-primary)]",children:[(0,b.jsx)("option",{value:"salience",children:"Salience"}),(0,b.jsx)("option",{value:"recent",children:"Recent"}),(0,b.jsx)("option",{value:"oldest",children:"Oldest"})]}),(0,b.jsx)("input",{type:"text",value:g,onChange:a=>h(a.target.value),placeholder:"Search memories...",className:"ml-auto w-56 rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] px-3 py-1.5 text-xs text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)] focus:border-[var(--sc-cyan)] focus:outline-none"})]}),"sessions"===a&&(0,b.jsxs)("div",{className:"space-y-3",children:[0===s.length&&(0,b.jsx)(A.GlassCard,{className:"p-6",children:(0,b.jsx)("p",{className:"text-sm text-[var(--sc-text-secondary)]",children:"No OpenClaw sessions found. Sessions appear after OpenClaw hooks capture memories."})}),s.map(a=>(0,b.jsx)(al,{session:a,expanded:i===a.sessionId,onToggle:()=>u(a.sessionId)},a.sessionId))]}),"all"===a&&(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-3 md:grid-cols-2 2xl:grid-cols-3",children:[0===t.length&&(0,b.jsx)(A.GlassCard,{className:"col-span-full p-6",children:(0,b.jsx)("p",{className:"text-sm text-[var(--sc-text-secondary)]",children:g?"No memories match your search.":"No memories found."})}),t.map(a=>(0,b.jsx)(ap,{memory:a,isSelected:k?.id===a.id,onSelect:v},a.id))]})]})}function ar(){return(0,b.jsx)(aq,{})}let as=(0,f.default)(async()=>{},{loadableGenerated:{modules:[13213]},ssr:!1,loading:()=>(0,b.jsx)("div",{className:"flex h-[600px] items-center justify-center text-[var(--sc-text-muted)]",children:"Loading graph..."})});function at(){let a=(0,c.useSearchParams)().get("tab"),e=a&&["recall","review","capture","graph"].includes(a)?a:null,[f,i]=(0,d.useState)("recall"),p=e??f,{data:q}=(0,o.useStats)(),{data:r}=(0,o.useContradictions)(),{data:s}=(0,o.useQuality)(),{data:t}=z(),u=q?.total??0,v=q?.decayDistribution?.healthy??0,w=r?.count??r?.contradictions?.length??0,x=s?.duplicates?.count??0,y=t?Object.values(t.summary).reduce((a,b)=>a+b,0):0,A=[{id:"recall",label:"Recall",icon:(0,b.jsx)(k,{size:14})},{id:"review",label:"Review",count:y||void 0},{id:"capture",label:"Capture",icon:(0,b.jsx)(l.Sparkles,{size:14})},{id:"graph",label:"Graph",icon:(0,b.jsx)(h.GitBranch,{size:14})}];return(0,b.jsx)("div",{className:"h-full overflow-y-auto",children:(0,b.jsxs)("div",{className:"mx-auto max-w-7xl space-y-6 p-6",children:[(0,b.jsx)(m.PageHeader,{eyebrow:"Memory",title:"Memory Operations",subtitle:"Search, review, capture, and explore your knowledge base.",tabs:A,activeTab:p,onTabChange:a=>i(a)}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-4 lg:grid-cols-4",children:[(0,b.jsx)(n.StatCard,{label:"Total Memories",value:u.toLocaleString(),icon:g.Database,accent:"cyan"}),(0,b.jsx)(n.StatCard,{label:"Healthy",value:v.toLocaleString(),icon:l.Sparkles,accent:"cyan"}),(0,b.jsx)(n.StatCard,{label:"Contradictions",value:w,icon:j,accent:w>0?"coral":"muted"}),(0,b.jsx)(n.StatCard,{label:"Duplicates",value:x,icon:h.GitBranch,accent:x>0?"amber":"muted"})]}),(0,b.jsxs)("div",{children:["recall"===p&&(0,b.jsx)(J,{}),"review"===p&&(0,b.jsx)(V,{}),"capture"===p&&(0,b.jsx)(ar,{}),"graph"===p&&(0,b.jsx)("div",{className:"h-[600px] rounded-2xl border border-[var(--sc-border)] bg-[var(--sc-bg-surface)]",children:(0,b.jsx)(as,{})})]})]})})}function au(){return(0,b.jsx)(d.Suspense,{fallback:(0,b.jsx)(e.PageSkeleton,{}),children:(0,b.jsx)(at,{})})}a.s(["default",()=>au],55429)}];
9
+ `),()=>{r.contains(q)&&r.removeChild(q)}},[c]),(0,b.jsx)(ad,{isPresent:c,childRef:i,sizeRef:j,children:aa.cloneElement(a,{ref:l})})}let af=({children:a,initial:c,isPresent:e,onExitComplete:f,custom:g,presenceAffectsLayout:h,mode:i,anchorX:j,anchorY:k,root:l})=>{let m=(0,Y.useConstant)(ag),n=(0,d.useId)(),o=!0,p=(0,d.useMemo)(()=>(o=!1,{id:n,initial:c,isPresent:e,custom:g,onExitComplete:a=>{for(let b of(m.set(a,!0),m.values()))if(!b)return;f&&f()},register:a=>(m.set(a,!1),()=>m.delete(a))}),[e,m,f]);return h&&o&&(p={...p}),(0,d.useMemo)(()=>{m.forEach((a,b)=>m.set(b,!1))},[e]),d.useEffect(()=>{e||m.size||!f||f()},[e]),"popLayout"===i&&(a=(0,b.jsx)(ae,{isPresent:e,anchorX:j,anchorY:k,root:l,children:a})),(0,b.jsx)($.PresenceContext.Provider,{value:p,children:a})};function ag(){return new Map}var ah=a.i(7084);let ai=a=>a.key||"";function aj(a){let b=[];return d.Children.forEach(a,a=>{(0,d.isValidElement)(a)&&b.push(a)}),b}let ak=({children:a,custom:c,initial:e=!0,onExitComplete:f,presenceAffectsLayout:g=!0,mode:h="sync",propagate:i=!1,anchorX:j="left",anchorY:k="top",root:l})=>{let[m,n]=(0,ah.usePresence)(i),o=(0,d.useMemo)(()=>aj(a),[a]),p=i&&!m?[]:o.map(ai),q=(0,d.useRef)(!0),r=(0,d.useRef)(o),s=(0,Y.useConstant)(()=>new Map),t=(0,d.useRef)(new Set),[u,v]=(0,d.useState)(o),[w,x]=(0,d.useState)(o);(0,Z.useIsomorphicLayoutEffect)(()=>{q.current=!1,r.current=o;for(let a=0;a<w.length;a++){let b=ai(w[a]);p.includes(b)?(s.delete(b),t.current.delete(b)):!0!==s.get(b)&&s.set(b,!1)}},[w,p.length,p.join("-")]);let y=[];if(o!==u){let a=[...o];for(let b=0;b<w.length;b++){let c=w[b],d=ai(c);p.includes(d)||(a.splice(b,0,c),y.push(c))}return"wait"===h&&y.length&&(a=y),x(aj(a)),v(o),null}let{forceRender:z}=(0,d.useContext)(X.LayoutGroupContext);return(0,b.jsx)(b.Fragment,{children:w.map(a=>{let d=ai(a),u=(!i||!!m)&&(o===w||p.includes(d));return(0,b.jsx)(af,{isPresent:u,initial:(!q.current||!!e)&&void 0,custom:c,presenceAffectsLayout:g,mode:h,root:l,onExitComplete:u?void 0:()=>{if(t.current.has(d)||(t.current.add(d),!s.has(d)))return;s.set(d,!0);let a=!0;s.forEach(b=>{b||(a=!1)}),a&&(z?.(),x(r.current),i&&n?.(),f&&f())},anchorX:j,anchorY:k,children:a},d)})})};var al=a.i(97826);function am({session:a,expanded:c,onToggle:d}){let e=a.models[0]||"model unknown";return(0,b.jsxs)(A.GlassCard,{hover:!0,className:"p-4",children:[(0,b.jsxs)("button",{onClick:d,className:"w-full text-left",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:`h-2 w-2 rounded-full ${a.threats>0?"bg-[var(--sc-coral)]":"bg-[var(--sc-cyan)]"}`}),(0,b.jsx)("span",{className:"truncate text-sm font-medium text-[var(--sc-text-primary)]",children:a.sessionId})]}),(0,b.jsxs)("div",{className:"mt-1 pl-4 text-xs text-[var(--sc-text-muted)]",children:[function(a){let b=Math.floor((Date.now()-new Date(a).getTime())/6e4);if(b<1)return"just now";if(b<60)return`${b}m ago`;let c=Math.floor(b/60);if(c<24)return`${c}h ago`;let d=Math.floor(c/24);if(d<7)return`${d}d ago`;let e=Math.floor(d/7);return`${e}w ago`}(a.lastSeenAt)," · ",e]})]}),(0,b.jsx)("span",{className:"shrink-0 text-xs text-[var(--sc-text-muted)]",children:c?"▾":"▸"})]}),(0,b.jsxs)("div",{className:"mt-3 flex flex-wrap gap-2",children:[(0,b.jsxs)(B.Badge,{variant:"muted",children:["Saved: ",a.saved]}),(0,b.jsxs)(B.Badge,{variant:"muted",children:["Skipped: ",a.skipped]}),(0,b.jsxs)(B.Badge,{variant:a.threats>0?"coral":"muted",children:["Threats: ",a.threats]}),a.autoExtracted>0&&(0,b.jsxs)(B.Badge,{variant:"muted",children:["Auto: ",a.autoExtracted]}),a.quarantined>0&&(0,b.jsxs)(B.Badge,{variant:"amber",children:["Quarantined: ",a.quarantined]})]})]}),(0,b.jsx)(ak,{children:c&&a.memories.length>0&&(0,b.jsx)(al.motion.div,{initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{duration:.2,ease:"easeInOut"},className:"overflow-hidden",children:(0,b.jsx)("div",{className:"mt-3 border-t border-[var(--sc-border)] pt-3 space-y-2",children:a.memories.map(a=>(0,b.jsx)("div",{className:"flex items-center justify-between gap-3 rounded-lg bg-[var(--sc-bg-elevated)]/60 px-3 py-2",children:(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"truncate text-sm text-[var(--sc-text-primary)]",children:a.title}),(0,b.jsxs)("div",{className:"mt-0.5 flex items-center gap-2",children:[(0,b.jsx)(B.Badge,{variant:"muted",children:a.category}),(0,b.jsx)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:new Date(a.createdAt).toLocaleDateString("en-GB",{day:"2-digit",month:"2-digit",year:"numeric"})})]})]})},a.id))})})})]})}let an={architecture:"#FFD700",pattern:"#FFB347",preference:"#FFA500",error:"#FF6B6B",context:"#FFC080",learning:"#FFE4B5",todo:"#FF8C00",note:"#FFCC66",relationship:"#00D4FF",custom:"#FFB347"},ao={short_term:"#FFD700",episodic:"#FFB347",long_term:"#FF8C00"};function ap(a){let b=Math.floor((Date.now()-new Date(a).getTime())/6e4);if(b<1)return"now";if(b<60)return`${b}m ago`;let c=Math.floor(b/60);if(c<24)return`${c}h ago`;let d=Math.floor(c/24);if(d<7)return`${d}d ago`;let e=Math.floor(d/7);return`${e}w ago`}function aq({memory:a,isSelected:c,onSelect:d,isChecked:e,onCheck:f}){let g=an[a.category]||an.custom,h=ao[a.type]||ao.short_term;return(0,b.jsxs)("div",{onClick:()=>d(a),className:`bg-[var(--sc-bg-surface)] border rounded-lg p-3 hover:border-[var(--sc-border)] cursor-pointer transition-colors relative ${c?"border-[var(--sc-cyan)]":"border-[var(--sc-border)]"}`,children:[(0,b.jsx)("div",{className:"h-0.5 rounded-full bg-[var(--sc-bg-elevated)] mb-2 overflow-hidden",children:(0,b.jsx)("div",{className:"h-full rounded-full",style:{width:`${100*a.salience}%`,backgroundColor:g}})}),f&&(0,b.jsx)("input",{type:"checkbox",checked:e??!1,onChange:b=>{b.stopPropagation(),f(a.id,b.target.checked)},onClick:a=>a.stopPropagation(),className:"absolute top-3 right-3 w-4 h-4 accent-blue-500"}),(0,b.jsx)("h3",{className:"text-sm font-semibold text-[var(--sc-text-primary)] truncate pr-6",children:a.title}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5 mt-1",children:[(0,b.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded-full font-medium",style:{backgroundColor:g+"22",color:g},children:a.category}),(0,b.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded-full font-medium",style:{backgroundColor:h+"22",color:h},children:a.type.replace("_","-")}),a.status&&"active"!==a.status&&(0,b.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded-full font-medium bg-[var(--sc-amber)]/15 text-[var(--sc-amber)]",children:a.status}),a.pinned&&(0,b.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded-full font-medium bg-[var(--sc-cyan)]/15 text-[var(--sc-cyan)]",children:"pinned"})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5 mt-2 flex-wrap",children:[a.sourceKind&&(0,b.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-[var(--sc-bg-elevated)] text-[var(--sc-text-primary)]",children:a.sourceKind}),a.captureMethod&&(0,b.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-[var(--sc-bg-elevated)] text-[var(--sc-text-primary)]",children:a.captureMethod}),"number"==typeof a.trustScore&&(0,b.jsxs)("span",{className:`text-[10px] px-1.5 py-0.5 rounded ${a.trustScore<.7?"bg-[var(--sc-coral)]/15 text-[var(--sc-coral)]":"bg-[var(--sc-cyan)]/15 text-[var(--sc-cyan)]"}`,children:["trust ",a.trustScore.toFixed(2)]}),a.cloudExcluded&&(0,b.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-[var(--sc-amber)]/15 text-[var(--sc-amber)]",children:"cloud excluded"})]}),(0,b.jsx)("p",{className:"text-[13px] text-[var(--sc-text-secondary)] mt-1.5 line-clamp-3 leading-snug",children:a.content}),a.tags.length>0&&(0,b.jsxs)("div",{className:"flex items-center gap-1 mt-2 flex-wrap",children:[a.tags.slice(0,3).map(a=>(0,b.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-[var(--sc-bg-elevated)] text-[var(--sc-text-secondary)]",children:a},a)),a.tags.length>3&&(0,b.jsxs)("span",{className:"text-[10px] text-[var(--sc-text-muted)]",children:["+",a.tags.length-3," more"]})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between mt-2 text-[11px] text-[var(--sc-text-muted)]",children:[(0,b.jsxs)("span",{children:["Created ",ap(a.createdAt)]}),(0,b.jsxs)("span",{children:["Accessed ",ap(a.lastAccessed)]})]})]})}function ar(){let[a,c]=(0,d.useState)("sessions"),[e,f]=(0,d.useState)("recent"),[g,h]=(0,d.useState)(""),[i,j]=(0,d.useState)(null),{selectedMemory:k,setSelectedMemory:l,projectFilter:m,typeFilter:n,categoryFilter:p}=(0,G.useDashboardStore)(),{data:q}=(0,o.useOpenClawSessions)(),{data:r=[]}=(0,o.useMemoriesWithRealtime)({limit:1e3,project:m||void 0,type:n||void 0,category:p||void 0,mode:g?"search":"recent",query:g||void 0});(0,o.useAccessMemory)();let s=(0,d.useMemo)(()=>q?.sessions??[],[q?.sessions]),t=(0,d.useMemo)(()=>{let a=[...r];switch(e){case"salience":a.sort((a,b)=>b.salience-a.salience);break;case"recent":a.sort((a,b)=>new Date(b.createdAt).getTime()-new Date(a.createdAt).getTime());break;case"oldest":a.sort((a,b)=>new Date(a.createdAt).getTime()-new Date(b.createdAt).getTime())}return a},[r,e]),u=(0,d.useCallback)(a=>{j(b=>b===a?null:a)},[]),v=(0,d.useCallback)(a=>l(a),[l]);return(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,b.jsxs)("div",{className:"flex items-center overflow-hidden rounded-lg border border-[var(--sc-border)]",children:[(0,b.jsxs)("button",{onClick:()=>c("sessions"),className:`px-3 py-1.5 text-xs font-medium transition-colors ${"sessions"===a?"bg-[var(--sc-border)] text-[var(--sc-text-primary)]":"text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)]"}`,children:["Sessions"," ",(0,b.jsx)("span",{className:"ml-1 text-[var(--sc-text-muted)]",children:s.length})]}),(0,b.jsxs)("button",{onClick:()=>c("all"),className:`px-3 py-1.5 text-xs font-medium transition-colors ${"all"===a?"bg-[var(--sc-border)] text-[var(--sc-text-primary)]":"text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)]"}`,children:["All"," ",(0,b.jsx)("span",{className:"ml-1 text-[var(--sc-text-muted)]",children:r.length})]})]}),(0,b.jsxs)("select",{value:e,onChange:a=>f(a.target.value),className:"rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] px-2 py-1.5 text-xs text-[var(--sc-text-primary)]",children:[(0,b.jsx)("option",{value:"salience",children:"Salience"}),(0,b.jsx)("option",{value:"recent",children:"Recent"}),(0,b.jsx)("option",{value:"oldest",children:"Oldest"})]}),(0,b.jsx)("input",{type:"text",value:g,onChange:a=>h(a.target.value),placeholder:"Search memories...",className:"ml-auto w-56 rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] px-3 py-1.5 text-xs text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)] focus:border-[var(--sc-cyan)] focus:outline-none"})]}),"sessions"===a&&(0,b.jsxs)("div",{className:"space-y-3",children:[0===s.length&&(0,b.jsx)(A.GlassCard,{className:"p-6",children:(0,b.jsx)("p",{className:"text-sm text-[var(--sc-text-secondary)]",children:"No OpenClaw sessions found. Sessions appear after OpenClaw hooks capture memories."})}),s.map(a=>(0,b.jsx)(am,{session:a,expanded:i===a.sessionId,onToggle:()=>u(a.sessionId)},a.sessionId))]}),"all"===a&&(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-3 md:grid-cols-2 2xl:grid-cols-3",children:[0===t.length&&(0,b.jsx)(A.GlassCard,{className:"col-span-full p-6",children:(0,b.jsx)("p",{className:"text-sm text-[var(--sc-text-secondary)]",children:g?"No memories match your search.":"No memories found."})}),t.map(a=>(0,b.jsx)(aq,{memory:a,isSelected:k?.id===a.id,onSelect:v},a.id))]})]})}function as(){return(0,b.jsx)(ar,{})}let at=(0,f.default)(async()=>{},{loadableGenerated:{modules:[13213]},ssr:!1,loading:()=>(0,b.jsx)("div",{className:"flex h-[600px] items-center justify-center text-[var(--sc-text-muted)]",children:"Loading graph..."})});function au(){let a=(0,c.useSearchParams)().get("tab"),e=a&&["recall","review","capture","graph"].includes(a)?a:null,[f,i]=(0,d.useState)("recall"),p=e??f,{data:q}=(0,o.useStats)(),{data:r}=(0,o.useContradictions)(),{data:s}=(0,o.useQuality)(),{data:t}=z(),u=q?.total??0,v=q?.decayDistribution?.healthy??0,w=r?.count??r?.contradictions?.length??0,x=s?.duplicates?.count??0,y=t?Object.values(t.summary).reduce((a,b)=>a+b,0):0,A=[{id:"recall",label:"Recall",icon:(0,b.jsx)(k,{size:14})},{id:"review",label:"Review",count:y||void 0},{id:"capture",label:"Capture",icon:(0,b.jsx)(l.Sparkles,{size:14})},{id:"graph",label:"Graph",icon:(0,b.jsx)(h.GitBranch,{size:14})}];return(0,b.jsx)("div",{className:"h-full overflow-y-auto",children:(0,b.jsxs)("div",{className:"mx-auto max-w-7xl space-y-6 p-6",children:[(0,b.jsx)(m.PageHeader,{eyebrow:"Memory",title:"Memory Operations",subtitle:"Search, review, capture, and explore your knowledge base.",tabs:A,activeTab:p,onTabChange:a=>i(a)}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-4 lg:grid-cols-4",children:[(0,b.jsx)(n.StatCard,{label:"Total Memories",value:u.toLocaleString(),icon:g.Database,accent:"cyan"}),(0,b.jsx)(n.StatCard,{label:"Healthy",value:v.toLocaleString(),icon:l.Sparkles,accent:"cyan"}),(0,b.jsx)(n.StatCard,{label:"Contradictions",value:w,icon:j,accent:w>0?"coral":"muted"}),(0,b.jsx)(n.StatCard,{label:"Duplicates",value:x,icon:h.GitBranch,accent:x>0?"amber":"muted"})]}),(0,b.jsxs)("div",{children:["recall"===p&&(0,b.jsx)(J,{}),"review"===p&&(0,b.jsx)(W,{}),"capture"===p&&(0,b.jsx)(as,{}),"graph"===p&&(0,b.jsx)("div",{className:"h-[600px] rounded-2xl border border-[var(--sc-border)] bg-[var(--sc-bg-surface)]",children:(0,b.jsx)(at,{})})]})]})})}function av(){return(0,b.jsx)(d.Suspense,{fallback:(0,b.jsx)(e.PageSkeleton,{}),children:(0,b.jsx)(au,{})})}a.s(["default",()=>av],55429)}];
10
10
 
11
11
  //# sourceMappingURL=dashboard_c219bf07._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[58787,a=>{"use strict";var b=a.i(16306),c=a.i(52181),d=a.i(98419),e=a.i(13106),f=a.i(70694);let g=(0,f.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"}]]),h=(0,f.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"}]]);var i=a.i(40145),j=a.i(79151),k=a.i(54100),l=a.i(60210),m=a.i(23808),n=a.i(47520),o=a.i(74150),p=a.i(77115),q=a.i(76625),r=a.i(29448);let s=(0,f.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 t=a.i(20203);let u=(0,f.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 v=a.i(79155),w=a.i(40458),x=a.i(66807),y=a.i(14220),z=a.i(86044);let A=[],B="http://localhost:3001";function C(){return(0,w.useQuery)({queryKey:["cloud-config"],queryFn:async()=>{var a;let b,c,d=await (0,z.authFetch)(`${B}/api/cloud/config`);if(!d.ok)throw Error(await (0,z.readApiError)(d,"Failed to fetch cloud config"));return b=(a=await d.json()).syncControls&&"object"==typeof a.syncControls?a.syncControls:{},c=a.openclawMemory&&"object"==typeof a.openclawMemory?a.openclawMemory:{},{enabled:!!a.enabled,apiKeySet:!!a.apiKeySet,baseUrl:"string"==typeof a.baseUrl?a.baseUrl:"https://api.shieldcortex.ai",syncControls:{projectMode:"projectMode"in b&&("include"===b.projectMode||"exclude"===b.projectMode)?b.projectMode:"all",projects:Array.isArray(b.projects)?b.projects.filter(a=>"string"==typeof a):A,contentMode:"contentMode"in b&&"metadata"===b.contentMode?"metadata":"full",excludeSensitive:"excludeSensitive"in b&&!!b.excludeSensitive},openclawMemory:{autoMemory:"autoMemory"in c&&!!c.autoMemory,dedupe:"dedupe"in c&&!!c.dedupe,noveltyThreshold:"noveltyThreshold"in c&&"number"==typeof c.noveltyThreshold?c.noveltyThreshold:.88,maxRecent:"maxRecent"in c&&"number"==typeof c.maxRecent?c.maxRecent:300}}},refetchInterval:3e4})}let D="http://localhost:3001",E=[];function F(){return(0,w.useQuery)({queryKey:["cloud-sync-status"],queryFn:async()=>{var a;let b,c,d,e,f=await (0,z.authFetch)(`${D}/api/cloud/sync-status`);if(!f.ok)throw Error(await (0,z.readApiError)(f,"Failed to fetch sync status"));return b=(a=await f.json()).controls&&"object"==typeof a.controls?a.controls:{},d="byKind"in(c=a.queue&&"object"==typeof a.queue?a.queue:{})&&c.byKind&&"object"==typeof c.byKind?c.byKind:{},e=a=>({pending:Number(d[a]?.pending??0),failed:Number(d[a]?.failed??0),synced:Number(d[a]?.synced??0)}),{enabled:!!a.enabled,apiKeySet:!!a.apiKeySet,baseUrl:"string"==typeof a.baseUrl?a.baseUrl:"https://api.shieldcortex.ai",featureEnabled:!!a.featureEnabled,requiredTier:"pro"===a.requiredTier||"team"===a.requiredTier||"enterprise"===a.requiredTier?a.requiredTier:"free",controls:{projectMode:"projectMode"in b&&("include"===b.projectMode||"exclude"===b.projectMode)?b.projectMode:"all",projects:Array.isArray(b.projects)?b.projects.filter(a=>"string"==typeof a):E,contentMode:"contentMode"in b&&"metadata"===b.contentMode?"metadata":"full",excludeSensitive:"excludeSensitive"in b&&!!b.excludeSensitive},lastSyncAt:"string"==typeof a.lastSyncAt||null===a.lastSyncAt?a.lastSyncAt??null:null,device:{id:a.device&&"object"==typeof a.device&&"id"in a.device&&"string"==typeof a.device.id?a.device.id:"unknown",name:a.device&&"object"==typeof a.device&&"name"in a.device&&"string"==typeof a.device.name?a.device.name:"Unknown device",platform:a.device&&"object"==typeof a.device&&"platform"in a.device&&"string"==typeof a.device.platform?a.device.platform:"unknown"},queue:{pending:Number(c.pending??0),failed:Number(c.failed??0),synced:Number(c.synced??0),byKind:{audit:e("audit"),quarantine:e("quarantine"),memory:e("memory"),graph:e("graph"),unknown:e("unknown")},oldestPendingAt:"string"==typeof c.oldestPendingAt||null===c.oldestPendingAt?c.oldestPendingAt??null:null,nextRetryAt:"string"==typeof c.nextRetryAt||null===c.nextRetryAt?c.nextRetryAt??null:null,lastError:"string"==typeof c.lastError||null===c.lastError?c.lastError??null:null,lastErrorKind:"audit"===c.lastErrorKind||"quarantine"===c.lastErrorKind||"memory"===c.lastErrorKind||"graph"===c.lastErrorKind||"unknown"===c.lastErrorKind?c.lastErrorKind:null,latestFailureAt:"string"==typeof c.latestFailureAt||null===c.latestFailureAt?c.latestFailureAt??null:null}}},refetchInterval:3e4,staleTime:15e3})}var G=a.i(35031),H=a.i(79030);function I(a){let b=Math.max(0,Math.floor((Date.now()-new Date(a).getTime())/1e3));if(b<60)return`${b}s ago`;let c=Math.floor(b/60);if(c<60)return`${c}m ago`;let d=Math.floor(c/60);if(d<24)return`${d}h ago`;let e=Math.floor(d/24);return`${e}d ago`}function J(a){let b=Math.max(0,Math.floor((new Date(a).getTime()-Date.now())/1e3));if(b<60)return`in ${b}s`;let c=Math.floor(b/60);if(c<60)return`in ${c}m`;let d=Math.floor(c/60);if(d<24)return`in ${d}h`;let e=Math.floor(d/24);return`in ${e}d`}function K(){var a;let{data:c,isLoading:d}=F(),{data:e}=(0,G.useLicenseStatus)();if(d||!c)return null;let f="border-[var(--sc-border)] bg-[var(--sc-bg-surface)]/70 text-[var(--sc-text-primary)]",h="Cloud sync disabled",i="Enable cloud sync and activate a Team licence to start replicating local data.",j=g,k=!!(a=c.lastSyncAt)&&Date.now()-new Date(a).getTime()>864e5,l=c.queue.byKind.memory.pending+c.queue.byKind.graph.pending,m=c.queue.byKind.memory.failed+c.queue.byKind.graph.failed,p=c.queue.byKind.audit.failed+c.queue.byKind.quarantine.failed+c.queue.byKind.unknown.failed;return c.enabled&&c.apiKeySet&&!c.featureEnabled?(f="border-[var(--sc-amber)]/30 bg-[var(--sc-amber)]/10 text-[var(--sc-amber)]",h="Cloud configured but licence locked",i=`Cloud sync requires the ${H.TIER_LABELS[c.requiredTier]} tier. Current tier: ${H.TIER_LABELS[e?.tier??"free"]}.`,j=s):c.enabled&&c.apiKeySet&&l>0&&m>0?(f="border-[var(--sc-coral)]/30 bg-[var(--sc-coral)]/10 text-[var(--sc-coral)]",h="Cloud sync needs attention",i=c.queue.lastError??"One or more queued sync jobs are failing.",j=v.ShieldAlert):c.enabled&&c.apiKeySet&&m>0?(f=k?"border-[var(--sc-coral)]/30 bg-[var(--sc-coral)]/10 text-[var(--sc-coral)]":"border-[var(--sc-amber)]/30 bg-[var(--sc-amber)]/10 text-[var(--sc-amber)]",h=k?"Cloud sync has unresolved failures":"Cloud sync healthy, with failed history",i=c.queue.lastError?`${c.queue.lastError}${c.queue.latestFailureAt?` Last failure ${I(c.queue.latestFailureAt)}.`:""}`:`${m} failed replication job${1===m?"":"s"} remain in queue history.`,j=k?v.ShieldAlert:n.AlertTriangle):c.enabled&&c.apiKeySet&&l>0?(f="border-[var(--sc-amber)]/30 bg-[var(--sc-amber)]/10 text-[var(--sc-amber)]",h="Cloud sync is catching up",i=c.queue.nextRetryAt?`Next retry ${J(c.queue.nextRetryAt)}.`:"Queued jobs are waiting to flush.",j=t.RefreshCw):c.enabled&&c.apiKeySet&&(f="border-[var(--sc-cyan)]/30 bg-[var(--sc-cyan)]/10 text-[var(--sc-cyan)]",h="Cloud sync healthy",i=c.lastSyncAt?`Last successful sync ${I(c.lastSyncAt)}.`:"Connected and ready to sync.",p>0&&(i+=` Auxiliary audit/quarantine history: ${p} failed job${1===p?"":"s"}.`),j=o.CheckCircle2),(0,b.jsx)("div",{className:`rounded-2xl border p-4 ${f}`,children:(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsx)(j,{size:18,className:"mt-0.5 shrink-0"}),(0,b.jsxs)("div",{children:[(0,b.jsx)("h2",{className:"text-sm font-semibold",children:h}),(0,b.jsx)("p",{className:"mt-1 text-sm opacity-90",children:i})]})]})})}function L({label:a,value:c,detail:d,icon:e}){return(0,b.jsxs)("div",{className:"glass-card p-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:"text-xs uppercase tracking-[0.2em] text-[var(--sc-text-muted)]",children:a}),(0,b.jsx)(e,{size:15,className:"text-[var(--sc-text-muted)]"})]}),(0,b.jsx)("div",{className:"mt-2 text-2xl font-semibold text-[var(--sc-text-primary)]",children:c}),(0,b.jsx)("div",{className:"mt-1 text-xs text-[var(--sc-text-secondary)]",children:d})]})}function M({label:a,pending:c,failed:d,synced:e}){return(0,b.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-3",children:[(0,b.jsx)("div",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:a}),(0,b.jsxs)("div",{className:"mt-3 grid grid-cols-3 gap-2 text-xs",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-[var(--sc-text-muted)]",children:"Pending"}),(0,b.jsx)("div",{className:"mt-1 font-semibold text-[var(--sc-amber)]",children:c})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-[var(--sc-text-muted)]",children:"Failed"}),(0,b.jsx)("div",{className:"mt-1 font-semibold text-[var(--sc-coral)]",children:d})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-[var(--sc-text-muted)]",children:"Synced"}),(0,b.jsx)("div",{className:"mt-1 font-semibold text-[var(--sc-cyan)]",children:e})]})]})]})}function N(){let a,{data:c}=C(),{data:e}=(0,w.useQuery)({queryKey:["cloud-projects"],queryFn:async()=>{let a=await (0,z.authFetch)(`${B}/api/cloud/projects`);if(!a.ok)throw Error(await (0,z.readApiError)(a,"Failed to fetch cloud projects"));return a.json()},staleTime:3e4}),f=(a=(0,y.useQueryClient)(),(0,x.useMutation)({mutationFn:async a=>{let b=await (0,z.authFetch)(`${B}/api/cloud/config`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error(await (0,z.readApiError)(b,"Failed to update cloud config"));return b.json()},onSuccess:()=>{a.invalidateQueries({queryKey:["cloud-config"]}),a.invalidateQueries({queryKey:["cloud-sync-status"]})}})),[g,h]=(0,d.useState)(null),i=e?.projects??[],j=g??c?.syncControls??{projectMode:"all",projects:[],contentMode:"full",excludeSensitive:!1},k="all"!==j.projectMode,[l,m]=(0,d.useState)("idle");async function n(){try{await f.mutateAsync({cloudSyncProjectMode:j.projectMode,cloudSyncProjects:j.projects,cloudSyncContentMode:j.contentMode,cloudSyncExcludeSensitive:j.excludeSensitive}),h(null),m("saved"),setTimeout(()=>m("idle"),2e3)}catch{m("error"),setTimeout(()=>m("idle"),3e3)}}return(0,b.jsxs)("div",{className:"glass-card-strong p-5",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h2",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Sync Controls"}),(0,b.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,b.jsx)("button",{type:"button",onClick:()=>void n(),disabled:f.isPending,className:`rounded-lg border px-3 py-2 text-sm font-medium transition disabled:cursor-not-allowed disabled:opacity-50 ${"saved"===l?"border-[var(--sc-cyan)]/50 bg-[var(--sc-cyan)]/20 text-[var(--sc-cyan)]":"error"===l?"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:f.isPending?"Saving...":"saved"===l?"✓ Saved":"error"===l?"Failed to save":"Save controls"})]}),(0,b.jsxs)("div",{className:"mt-5 grid gap-4",children:[(0,b.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4",children:[(0,b.jsx)("div",{className:"text-xs uppercase tracking-[0.2em] text-[var(--sc-text-muted)]",children:"Content mode"}),(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap gap-2 text-[11px] text-[var(--sc-text-secondary)]",children:[(0,b.jsx)("span",{className:"rounded-full border border-[var(--sc-border)] bg-[var(--sc-bg-surface)]/60 px-2.5 py-1",children:"metadata"===j.contentMode?"Metadata only":"Full content"}),(0,b.jsxs)("span",{className:"rounded-full border border-[var(--sc-border)] bg-[var(--sc-bg-surface)]/60 px-2.5 py-1",children:["Sensitive filter ",j.excludeSensitive?"on":"off"]})]}),(0,b.jsxs)("div",{className:"mt-3 grid gap-2 md:grid-cols-2",children:[(0,b.jsxs)("label",{className:`rounded-lg border p-3 text-sm ${"full"===j.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,b.jsx)("input",{type:"radio",className:"mr-2",checked:"full"===j.contentMode,onChange:()=>h(a=>({...a??j,contentMode:"full"}))}),"Full content",(0,b.jsx)("div",{className:"mt-1 text-xs text-[var(--sc-text-secondary)]",children:"Titles and memory bodies replicate to cloud."})]}),(0,b.jsxs)("label",{className:`rounded-lg border p-3 text-sm ${"metadata"===j.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,b.jsx)("input",{type:"radio",className:"mr-2",checked:"metadata"===j.contentMode,onChange:()=>h(a=>({...a??j,contentMode:"metadata"}))}),"Metadata only",(0,b.jsx)("div",{className:"mt-1 text-xs text-[var(--sc-text-secondary)]",children:"Projects, tags, salience, and graph remain; body content is redacted."})]})]})]}),(0,b.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4",children:[(0,b.jsx)("div",{className:"text-xs uppercase tracking-[0.2em] text-[var(--sc-text-muted)]",children:"Project scope"}),(0,b.jsx)("div",{className:"mt-3 flex flex-wrap gap-2",children:["all","include","exclude"].map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>h(b=>({...b??j,projectMode:a})),className:`rounded-full border px-3 py-1.5 text-xs font-medium uppercase tracking-wide ${j.projectMode===a?"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:a},a))}),(0,b.jsx)("p",{className:"mt-3 text-xs text-[var(--sc-text-secondary)]",children:"all"===j.projectMode?"All local projects are eligible for sync.":"include"===j.projectMode?"Only the selected projects will sync.":"Selected projects stay local-only."}),k&&(0,b.jsxs)("details",{className:"mt-3 rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-surface)]/40 p-3",children:[(0,b.jsxs)("summary",{className:"cursor-pointer list-none text-sm font-medium text-[var(--sc-text-primary)]",children:["Choose projects ",j.projects.length>0?`(${j.projects.length} selected)`:""]}),(0,b.jsx)("div",{className:"mt-3 max-h-48 overflow-y-auto",children:0===i.length?(0,b.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)]",children:"No named projects found in local memory yet."}):(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:i.map(a=>{let c=j.projects.includes(a.project);return(0,b.jsxs)("button",{type:"button",onClick:()=>{var b;return b=a.project,void h(a=>{let c=a??j,d=c.projects.includes(b)?c.projects.filter(a=>a!==b):[...c.projects,b].sort((a,b)=>a.localeCompare(b));return{...c,projects:d}})},className:`rounded-full border px-3 py-1.5 text-xs ${c?"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:[a.project," ",(0,b.jsxs)("span",{className:"text-[var(--sc-text-muted)]",children:["(",a.count,")"]})]},a.project)})})})]})]}),(0,b.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,b.jsx)("input",{type:"checkbox",className:"mt-0.5",checked:j.excludeSensitive,onChange:a=>h(b=>({...b??j,excludeSensitive:a.target.checked}))}),(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"font-medium text-[var(--sc-text-primary)]",children:"Exclude sensitive memories"}),(0,b.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."})]})]}),f.isError&&(0,b.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:f.error.message})]})]})}function O({sync:a,cloudConfig:c}){return(0,b.jsxs)("div",{className:"glass-card-strong p-5",children:[(0,b.jsx)("h2",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Current policy"}),(0,b.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,b.jsxs)("div",{className:"mt-4 grid gap-3 md:grid-cols-2",children:[(0,b.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4",children:[(0,b.jsx)("div",{className:"text-xs uppercase tracking-[0.2em] text-[var(--sc-text-muted)]",children:"Sync scope"}),(0,b.jsx)("div",{className:"mt-2 text-sm font-medium text-[var(--sc-text-primary)]",children:a.controls.projectMode}),(0,b.jsxs)("div",{className:"mt-1 text-xs text-[var(--sc-text-secondary)]",children:[a.controls.projects.length," selected project",1===a.controls.projects.length?"":"s"]})]}),(0,b.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4",children:[(0,b.jsx)("div",{className:"text-xs uppercase tracking-[0.2em] text-[var(--sc-text-muted)]",children:"Content mode"}),(0,b.jsx)("div",{className:"mt-2 text-sm font-medium text-[var(--sc-text-primary)]",children:"metadata"===a.controls.contentMode?"Metadata only":"Full content"}),(0,b.jsxs)("div",{className:"mt-1 text-xs text-[var(--sc-text-secondary)]",children:["Sensitive filter ",a.controls.excludeSensitive?"enabled":"off"]})]}),(0,b.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4",children:[(0,b.jsx)("div",{className:"text-xs uppercase tracking-[0.2em] text-[var(--sc-text-muted)]",children:"Cloud endpoint"}),(0,b.jsx)("div",{className:"mt-2 text-sm font-medium text-[var(--sc-text-primary)]",children:a.baseUrl})]}),(0,b.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4",children:[(0,b.jsx)("div",{className:"text-xs uppercase tracking-[0.2em] text-[var(--sc-text-muted)]",children:"OpenClaw complement"}),(0,b.jsxs)("div",{className:"mt-2 grid grid-cols-2 gap-2 text-xs text-[var(--sc-text-primary)]",children:[(0,b.jsxs)("span",{children:["Auto-memory: ",c.openclawMemory.autoMemory?"On":"Off"]}),(0,b.jsxs)("span",{children:["Dedupe: ",c.openclawMemory.dedupe?"On":"Off"]}),(0,b.jsxs)("span",{children:["Novelty: ",c.openclawMemory.noveltyThreshold]}),(0,b.jsxs)("span",{children:["Recent window: ",c.openclawMemory.maxRecent]})]})]})]})]})}function P(){let a,c=(a=(0,y.useQueryClient)(),(0,x.useMutation)({mutationFn:async()=>{let a=await (0,z.authFetch)(`${D}/api/cloud/sync-queue/clear-failed`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})});if(!a.ok)throw Error(await (0,z.readApiError)(a,"Failed to clear failed items"));return a.json()},onSuccess:()=>{a.invalidateQueries({queryKey:["cloud-sync-status"]})}}));return(0,b.jsx)("button",{type:"button",onClick:()=>c.mutate(),disabled:c.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:c.isPending?"Clearing...":c.isSuccess?`Cleared ${c.data?.cleared??0}`:"Clear failed"})}function Q(){let{data:a,isLoading:c,refetch:d,isFetching:e}=F(),{data:f,isLoading:h}=C(),{data:i,isLoading:j}=(0,G.useLicenseStatus)();if(c||h||j||!a||!f||!i)return(0,b.jsx)("div",{className:"space-y-6",children:(0,b.jsx)("div",{className:"glass-card p-6 text-sm text-[var(--sc-text-secondary)]",children:"Loading cloud diagnostics..."})});let k=i.tier,l=a.queue.byKind.memory,m=a.queue.byKind.graph,s=l.failed+m.failed,v=a.queue.byKind.audit.failed+a.queue.byKind.quarantine.failed+a.queue.byKind.unknown.failed,w=a.lastSyncAt?I(a.lastSyncAt):"Never",x=s>0?"Needs review":l.pending+m.pending>0?"Catching up":"Healthy";return(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-xs",children:[(0,b.jsx)("span",{className:`rounded-full px-2.5 py-1 font-medium ${H.TIER_BG[k]} ${H.TIER_COLOURS[k]}`,children:H.TIER_LABELS[k]}),(0,b.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: ",w]}),(0,b.jsx)("button",{type:"button",onClick:()=>void d(),disabled:e,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,b.jsx)(t.RefreshCw,{size:12,className:e?"animate-spin":""})})]}),(0,b.jsx)(K,{}),(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-5",children:[(0,b.jsx)(L,{label:"Replication",value:x,detail:`${s} failed \xb7 ${l.pending+m.pending} pending`,icon:t.RefreshCw}),(0,b.jsx)(L,{label:"Device",value:a.device.name,detail:`${a.device.platform} \xb7 ${a.device.id.slice(0,12)}`,icon:u}),(0,b.jsx)(L,{label:"Cloud Target",value:new URL(a.baseUrl).host,detail:a.enabled?"Configured target":"Disabled in config",icon:g}),(0,b.jsx)(L,{label:"Memory Queue",value:l.pending,detail:`${l.failed} failed \xb7 ${l.synced} synced`,icon:q.Database}),(0,b.jsx)(L,{label:"Graph Queue",value:m.pending,detail:`${m.failed} failed \xb7 ${m.synced} synced`,icon:r.GitBranch})]}),(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-6 xl:grid-cols-[1.35fr_0.95fr]",children:[(0,b.jsxs)("div",{className:"glass-card p-5",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h2",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Replication"}),(0,b.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."})]}),s>0&&(0,b.jsx)(P,{})]}),(0,b.jsxs)("div",{className:"mt-5 grid grid-cols-1 gap-3 md:grid-cols-2",children:[(0,b.jsx)(M,{label:"Memory",...l}),(0,b.jsx)(M,{label:"Graph",...m})]}),(0,b.jsxs)("details",{className:"mt-5 rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/30 p-4",children:[(0,b.jsx)("summary",{className:"cursor-pointer list-none text-sm font-medium text-[var(--sc-text-primary)]",children:"Advanced transport signals"}),(0,b.jsxs)("div",{className:"mt-4 grid grid-cols-1 gap-3 md:grid-cols-2",children:[(0,b.jsx)(M,{label:"Audit",...a.queue.byKind.audit}),(0,b.jsx)(M,{label:"Quarantine",...a.queue.byKind.quarantine})]}),(0,b.jsx)("div",{className:"mt-4 overflow-hidden rounded-xl border border-[var(--sc-border)]",children:(0,b.jsxs)("table",{className:"min-w-full divide-y divide-[var(--sc-border)] text-sm",children:[(0,b.jsx)("thead",{className:"bg-[var(--sc-bg-deep)]/70 text-[var(--sc-text-secondary)]",children:(0,b.jsxs)("tr",{children:[(0,b.jsx)("th",{className:"px-4 py-3 text-left font-medium",children:"Signal"}),(0,b.jsx)("th",{className:"px-4 py-3 text-left font-medium",children:"Current value"}),(0,b.jsx)("th",{className:"px-4 py-3 text-left font-medium",children:"Why it matters"})]})}),(0,b.jsxs)("tbody",{className:"divide-y divide-[var(--sc-border)] bg-[var(--sc-bg-surface)]/40 text-[var(--sc-text-primary)]",children:[(0,b.jsxs)("tr",{children:[(0,b.jsx)("td",{className:"px-4 py-3",children:"Oldest queued job"}),(0,b.jsx)("td",{className:"px-4 py-3",children:a.queue.oldestPendingAt?I(a.queue.oldestPendingAt):"None queued"}),(0,b.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,b.jsxs)("tr",{children:[(0,b.jsx)("td",{className:"px-4 py-3",children:"Next retry"}),(0,b.jsx)("td",{className:"px-4 py-3",children:a.queue.nextRetryAt?J(a.queue.nextRetryAt):"Idle"}),(0,b.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,b.jsxs)("tr",{children:[(0,b.jsx)("td",{className:"px-4 py-3",children:"Failed jobs in history"}),(0,b.jsx)("td",{className:"px-4 py-3",children:s}),(0,b.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,b.jsxs)("tr",{children:[(0,b.jsx)("td",{className:"px-4 py-3",children:"Auxiliary failed history"}),(0,b.jsx)("td",{className:"px-4 py-3",children:v}),(0,b.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,b.jsxs)("tr",{children:[(0,b.jsx)("td",{className:"px-4 py-3",children:"Latest memory sync"}),(0,b.jsx)("td",{className:"px-4 py-3",children:a.lastSyncAt?I(a.lastSyncAt):"Not recorded"}),(0,b.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,b.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,b.jsx)(N,{}),(0,b.jsx)(O,{sync:a,cloudConfig:f}),(0,b.jsxs)("div",{className:"glass-card-strong p-5",children:[(0,b.jsx)("h2",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Last actionable error"}),(0,b.jsx)("div",{className:"mt-4 rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4",children:a.queue.lastError?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:`flex items-center gap-2 text-sm font-medium ${a.queue.pending>0?"text-[var(--sc-coral)]":"text-[var(--sc-amber)]"}`,children:[(0,b.jsx)(n.AlertTriangle,{size:16}),a.queue.lastErrorKind?`${a.queue.lastErrorKind} queue`:"Unknown queue"]}),(0,b.jsx)("p",{className:"mt-2 text-sm text-[var(--sc-text-primary)]",children:a.queue.lastError}),a.queue.latestFailureAt&&(0,b.jsxs)("div",{className:"mt-2 text-xs text-[var(--sc-text-muted)]",children:["Recorded ",I(a.queue.latestFailureAt)]}),a.queue.nextRetryAt&&(0,b.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,b.jsx)(p.Clock3,{size:12}),"Retry ",J(a.queue.nextRetryAt)]})]}):(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm text-[var(--sc-cyan)]",children:[(0,b.jsx)(o.CheckCircle2,{size:16}),"No recent sync errors recorded."]})})]})]})]})]})}var R=a.i(98472);let S=(0,f.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 T=a.i(48036),U=a.i(84692),V=a.i(14126),W=a.i(32322);let X=(0,f.default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]),Y=(0,f.default)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]),Z="https://api.shieldcortex.ai",$=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001",_=["Custom injection patterns","Custom Iron Dome policies","Custom firewall rules","Audit export (JSON/CSV)","Skill scanner deep mode"];function aa(){let{data:a,isLoading:c}=(0,G.useLicenseStatus)(),e=(0,G.useActivateLicense)(),f=(0,G.useDeactivateLicense)(),g=function(){let a=(0,y.useQueryClient)(),[b,c]=(0,d.useState)("idle"),[e,f]=(0,d.useState)(null),[g,h]=(0,d.useState)(null),i=(0,d.useCallback)(async(a,b)=>{c("submitting"),f(null);try{let d=await fetch(`${Z}/v1/billing/quick-checkout`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:a,plan:b})}),e=await d.json();if(!d.ok||!e.checkout_url||!e.setup_id)throw Error(e.error||"Failed to create checkout session");h(e.setup_id),window.open(e.checkout_url,"_blank"),c("polling")}catch(a){f(a instanceof Error?a.message:"Checkout failed"),c("error")}},[]);return(0,d.useEffect)(()=>{if("polling"!==b||!g)return;let d=setInterval(async()=>{try{let b=await fetch(`${Z}/v1/billing/setup-status/${g}`),e=await b.json();if("complete"===e.status&&e.license_key){clearInterval(d),c("activating");try{if(!(await (0,z.authFetch)(`${$}/api/license/activate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:e.license_key})})).ok)throw Error("Local activation failed");a.invalidateQueries({queryKey:["license-status"]}),c("complete")}catch{f('Payment succeeded but local activation failed. Use "I Have a Key" to activate manually.'),c("error")}}else"expired"===e.status?(clearInterval(d),f("Setup expired. Please try again."),c("error")):"complete"!==e.status||e.license_key||(clearInterval(d),f("Licence key was already retrieved. Check your dashboard or try again."),c("error"))}catch{}},3e3),e=setTimeout(()=>{clearInterval(d),f('Checkout timed out. If you completed payment, use "I Have a Key" or contact support.'),c("error")},9e5);return()=>{clearInterval(d),clearTimeout(e)}},[b,g,a]),{state:b,error:e,startCheckout:i,reset:(0,d.useCallback)(()=>{c("idle"),f(null),h(null)},[])}}(),[h,i]=(0,d.useState)(""),[j,k]=(0,d.useState)("default"),[l,m]=(0,d.useState)(""),[n,p]=(0,d.useState)("pro"),[q,r]=(0,d.useState)(!1);if(c||!a)return(0,b.jsx)("div",{className:"bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded-xl p-4 mb-4",children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(R.Shield,{size:16,className:"text-[var(--sc-text-muted)]"}),(0,b.jsx)("span",{className:"text-xs text-[var(--sc-text-muted)] animate-pulse",children:"Loading licence..."})]})});let s=a.tier;if("free"===s)return(0,b.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,b.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,b.jsxs)("div",{className:"relative p-5",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between mb-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,b.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,b.jsx)(V.Sparkles,{size:16,className:"text-[var(--sc-cyan)]"})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("h3",{className:"text-sm font-semibold text-[var(--sc-text-primary)]",children:"Unlock Pro Features"}),(0,b.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,b.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,b.jsx)("div",{className:"grid grid-cols-2 gap-x-4 gap-y-1.5 mb-4",children:_.map(a=>(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-xs",children:[(0,b.jsx)(W.Lock,{size:10,className:"text-[var(--sc-cyan)]/60 shrink-0"}),(0,b.jsx)("span",{className:"text-[var(--sc-text-secondary)]",children:a})]},a))}),"complete"===g.state?(0,b.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,b.jsx)(o.CheckCircle2,{size:16,className:"text-[var(--sc-cyan)] shrink-0"}),(0,b.jsx)("span",{className:"text-xs text-[var(--sc-cyan)]",children:"Pro activated! Your dashboard is refreshing..."})]}):"polling"===g.state||"activating"===g.state?(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.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,b.jsx)(U.Loader2,{size:14,className:"text-[var(--sc-cyan)] animate-spin shrink-0"}),(0,b.jsx)("span",{className:"text-xs text-[var(--sc-cyan)]",children:"activating"===g.state?"Activating licence...":"Complete payment in the Stripe tab..."})]}),(0,b.jsx)("button",{onClick:()=>{g.reset(),k("default")},className:"text-[10px] text-[var(--sc-text-muted)] hover:text-[var(--sc-text-primary)] transition-colors",children:"Cancel"})]}):"checkout"===j?(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-[10px] text-[var(--sc-text-muted)] mb-1 block",children:"Email"}),(0,b.jsx)("input",{type:"email",placeholder:"you@company.com",value:l,onChange:a=>m(a.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,b.jsx)("div",{className:"flex gap-2",children:["pro","team"].map(a=>(0,b.jsxs)("button",{type:"button",onClick:()=>p(a),className:`flex-1 px-3 py-2 text-xs font-medium rounded-lg border transition-colors ${n===a?"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:[H.PLAN_PRICING[a].label," — ",H.PLAN_PRICING[a].price]},a))}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("button",{onClick:()=>g.startCheckout(l,n),disabled:"submitting"===g.state||!l.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"===g.state?(0,b.jsx)(U.Loader2,{size:12,className:"animate-spin"}):"Continue to Checkout"}),(0,b.jsx)("button",{onClick:()=>{k("default"),g.reset()},className:"px-3 py-2 text-xs text-[var(--sc-text-muted)] hover:text-[var(--sc-text-primary)] transition-colors",children:"Back"})]}),g.error&&(0,b.jsx)("p",{className:"text-xs text-[var(--sc-coral)]",children:g.error})]}):"activate"===j?(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("form",{onSubmit:a=>{a.preventDefault(),h.trim()&&e.mutate(h.trim(),{onSuccess:()=>{i(""),k("default")}})},className:"flex gap-2",children:[(0,b.jsx)("input",{type:"text",placeholder:"sc_pro_...",value:h,onChange:a=>i(a.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,b.jsx)("button",{type:"submit",disabled:e.isPending||!h.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:e.isPending?(0,b.jsx)(U.Loader2,{size:12,className:"animate-spin"}):"Activate"}),(0,b.jsx)("button",{type:"button",onClick:()=>{k("default"),i(""),e.reset()},className:"px-3 py-2 text-xs text-[var(--sc-text-muted)] hover:text-[var(--sc-text-primary)] transition-colors",children:"Back"})]}),e.isError&&(0,b.jsx)("p",{className:"text-xs text-[var(--sc-coral)]",children:e.error instanceof Error?e.error.message:"Activation failed"})]}):(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)("button",{onClick:()=>k("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,b.jsxs)("button",{onClick:()=>k("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,b.jsx)(S,{size:12}),"I Have a Key"]})]}),g.error&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("p",{className:"text-xs text-[var(--sc-coral)]",children:g.error}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("button",{onClick:()=>{g.reset(),k("checkout")},className:"text-[10px] text-[var(--sc-cyan)] hover:text-[var(--sc-cyan)] transition-colors",children:"Try Again"}),(0,b.jsx)("span",{className:"text-[10px] text-[var(--sc-text-muted)]",children:"·"}),(0,b.jsx)("button",{onClick:()=>{g.reset(),k("activate")},className:"text-[10px] text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)] transition-colors",children:"I Have a Key"})]})]})]})]})]});let t=a.features.filter(a=>a.enabled).length,u=a.features.length;return(0,b.jsxs)("div",{className:"bg-[var(--sc-bg-surface)] border border-[var(--sc-cyan)]/40 rounded-xl p-4 mb-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(R.Shield,{size:16,className:H.TIER_COLOURS[s]}),(0,b.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Licence"}),(0,b.jsx)("span",{className:`text-[10px] font-semibold px-1.5 py-0.5 rounded ${H.TIER_COLOURS[s]} ${H.TIER_BG[s]}`,children:H.TIER_LABELS[s]})]}),(0,b.jsxs)("span",{className:"text-[10px] text-[var(--sc-text-muted)]",children:[t,"/",u," features"]})]}),(0,b.jsxs)("div",{className:"space-y-2 mb-3",children:[a.email&&(0,b.jsxs)("div",{className:"flex items-center justify-between text-xs",children:[(0,b.jsx)("span",{className:"text-[var(--sc-text-muted)]",children:"Email"}),(0,b.jsx)("span",{className:"text-[var(--sc-text-primary)]",children:a.email})]}),null!==a.daysUntilExpiry&&(0,b.jsxs)("div",{className:"flex items-center justify-between text-xs",children:[(0,b.jsx)("span",{className:"text-[var(--sc-text-muted)]",children:"Expires"}),(0,b.jsx)("span",{className:a.daysUntilExpiry<=7?"text-[var(--sc-amber)]":"text-[var(--sc-text-primary)]",children:a.daysUntilExpiry<=0?"Expired (grace period)":`${a.daysUntilExpiry} days`})]})]}),(0,b.jsxs)("button",{onClick:()=>r(!q),className:"flex items-center gap-1 text-[10px] text-[var(--sc-text-muted)] hover:text-[var(--sc-text-primary)] transition-colors mb-2",children:[q?(0,b.jsx)(Y,{size:12}):(0,b.jsx)(X,{size:12}),q?"Hide features":"Show features"]}),q&&(0,b.jsx)("div",{className:"space-y-1.5 mb-3",children:a.features.map(a=>(0,b.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[a.enabled?(0,b.jsx)(o.CheckCircle2,{size:12,className:"text-[var(--sc-cyan)] shrink-0"}):(0,b.jsx)(T.XCircle,{size:12,className:"text-[var(--sc-text-muted)] shrink-0"}),(0,b.jsx)("span",{className:a.enabled?"text-[var(--sc-text-primary)]":"text-[var(--sc-text-muted)]",children:a.description.split(".")[0]}),!a.enabled&&(0,b.jsx)("span",{className:`text-[9px] px-1 py-0.5 rounded ${H.TIER_COLOURS[a.requiredTier]} ${H.TIER_BG[a.requiredTier]}`,children:H.TIER_LABELS[a.requiredTier]})]},a.feature))}),(0,b.jsx)("button",{onClick:()=>{confirm(`Remove your ${H.TIER_LABELS[s]} licence key? You will lose access to paid features.`)&&f.mutate()},disabled:f.isPending,className:"text-[10px] text-[var(--sc-text-muted)] hover:text-[var(--sc-coral)] transition-colors",children:"Deactivate"})]})}function ab(){let a=(0,c.useSearchParams)().get("tab"),e=a&&["cloud","licence","admin"].includes(a)?a:null,[f,n]=(0,d.useState)("cloud"),o=e??f,{data:p}=(0,G.useLicenseStatus)(),q=[{id:"cloud",label:"Cloud Sync",icon:(0,b.jsx)(g,{size:14})},{id:"licence",label:"Licence",icon:(0,b.jsx)(h,{size:14})},{id:"admin",label:"Admin",icon:(0,b.jsx)(i.Settings,{size:14})}];return(0,b.jsx)("div",{className:"h-full overflow-y-auto",children:(0,b.jsxs)("div",{className:"mx-auto max-w-7xl space-y-6 p-6",children:[(0,b.jsx)(j.PageHeader,{eyebrow:"Configuration",title:"Settings",subtitle:"Cloud sync, licence management, and system configuration.",tabs:q,activeTab:o,onTabChange:a=>n(a),actions:(0,b.jsx)(l.Badge,{variant:p?.tier==="pro"?"cyan":p?.tier==="team"?"coral":"muted",children:H.TIER_LABELS[p?.tier??"free"]})}),(0,b.jsxs)("div",{children:["cloud"===o&&(0,b.jsx)(Q,{}),"licence"===o&&(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsx)(aa,{}),(0,b.jsxs)(k.GlassCard,{className:"p-6",children:[(0,b.jsx)("h3",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Upgrade"}),(0,b.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,b.jsx)("div",{className:"mt-4 flex gap-3",children:(0,b.jsx)("a",{href:"https://shieldcortex.ai/pricing",target:"_blank",rel:"noopener noreferrer",children:(0,b.jsx)(m.Button,{variant:"coral",glow:!0,children:"View pricing"})})})]})]}),"admin"===o&&(0,b.jsx)("div",{className:"space-y-6",children:(0,b.jsxs)(k.GlassCard,{className:"p-6",children:[(0,b.jsx)("h3",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"System Information"}),(0,b.jsxs)("div",{className:"mt-4 space-y-3",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between rounded-lg bg-[var(--sc-bg-elevated)] px-4 py-3",children:[(0,b.jsx)("span",{className:"text-sm text-[var(--sc-text-secondary)]",children:"Dashboard"}),(0,b.jsx)("span",{className:"font-mono text-sm text-[var(--sc-text-primary)]",children:"localhost:3030"})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between rounded-lg bg-[var(--sc-bg-elevated)] px-4 py-3",children:[(0,b.jsx)("span",{className:"text-sm text-[var(--sc-text-secondary)]",children:"API Server"}),(0,b.jsx)("span",{className:"font-mono text-sm text-[var(--sc-text-primary)]",children:"localhost:3001"})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between rounded-lg bg-[var(--sc-bg-elevated)] px-4 py-3",children:[(0,b.jsx)("span",{className:"text-sm text-[var(--sc-text-secondary)]",children:"Database"}),(0,b.jsx)("span",{className:"font-mono text-sm text-[var(--sc-text-primary)]",children:"~/.shieldcortex/memories.db"})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between rounded-lg bg-[var(--sc-bg-elevated)] px-4 py-3",children:[(0,b.jsx)("span",{className:"text-sm text-[var(--sc-text-secondary)]",children:"Licence Tier"}),(0,b.jsx)(l.Badge,{variant:p?.tier==="pro"?"cyan":p?.tier==="team"?"coral":"muted",children:H.TIER_LABELS[p?.tier??"free"]})]})]})]})})]})]})})}function ac(){return(0,b.jsx)(d.Suspense,{fallback:(0,b.jsx)(e.PageSkeleton,{}),children:(0,b.jsx)(ab,{})})}a.s(["SettingsView",()=>ac],58787)}];
1
+ module.exports=[58787,a=>{"use strict";var b=a.i(16306),c=a.i(52181),d=a.i(98419),e=a.i(13106),f=a.i(70694);let g=(0,f.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"}]]),h=(0,f.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"}]]);var i=a.i(40145),j=a.i(79151),k=a.i(54100),l=a.i(60210),m=a.i(23808),n=a.i(47520),o=a.i(74150),p=a.i(77115),q=a.i(76625),r=a.i(29448);let s=(0,f.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 t=a.i(20203);let u=(0,f.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 v=a.i(79155),w=a.i(40458),x=a.i(66807),y=a.i(14220),z=a.i(86044);let A=[],B="http://localhost:3001";function C(){return(0,w.useQuery)({queryKey:["cloud-config"],queryFn:async()=>{var a;let b,c,d=await (0,z.authFetch)(`${B}/api/cloud/config`);if(!d.ok)throw Error(await (0,z.readApiError)(d,"Failed to fetch cloud config"));return b=(a=await d.json()).syncControls&&"object"==typeof a.syncControls?a.syncControls:{},c=a.openclawMemory&&"object"==typeof a.openclawMemory?a.openclawMemory:{},{enabled:!!a.enabled,apiKeySet:!!a.apiKeySet,baseUrl:"string"==typeof a.baseUrl?a.baseUrl:"https://api.shieldcortex.ai",syncControls:{projectMode:"projectMode"in b&&("include"===b.projectMode||"exclude"===b.projectMode)?b.projectMode:"all",projects:Array.isArray(b.projects)?b.projects.filter(a=>"string"==typeof a):A,contentMode:"contentMode"in b&&"metadata"===b.contentMode?"metadata":"full",excludeSensitive:"excludeSensitive"in b&&!!b.excludeSensitive},openclawMemory:{autoMemory:"autoMemory"in c&&!!c.autoMemory,dedupe:"dedupe"in c&&!!c.dedupe,noveltyThreshold:"noveltyThreshold"in c&&"number"==typeof c.noveltyThreshold?c.noveltyThreshold:.88,maxRecent:"maxRecent"in c&&"number"==typeof c.maxRecent?c.maxRecent:300}}},refetchInterval:3e4})}let D="http://localhost:3001",E=[];function F(){return(0,w.useQuery)({queryKey:["cloud-sync-status"],queryFn:async()=>{var a;let b,c,d,e,f=await (0,z.authFetch)(`${D}/api/cloud/sync-status`);if(!f.ok)throw Error(await (0,z.readApiError)(f,"Failed to fetch sync status"));return b=(a=await f.json()).controls&&"object"==typeof a.controls?a.controls:{},d="byKind"in(c=a.queue&&"object"==typeof a.queue?a.queue:{})&&c.byKind&&"object"==typeof c.byKind?c.byKind:{},e=a=>({pending:Number(d[a]?.pending??0),failed:Number(d[a]?.failed??0),synced:Number(d[a]?.synced??0)}),{enabled:!!a.enabled,apiKeySet:!!a.apiKeySet,baseUrl:"string"==typeof a.baseUrl?a.baseUrl:"https://api.shieldcortex.ai",featureEnabled:!!a.featureEnabled,requiredTier:"pro"===a.requiredTier||"team"===a.requiredTier||"enterprise"===a.requiredTier?a.requiredTier:"free",controls:{projectMode:"projectMode"in b&&("include"===b.projectMode||"exclude"===b.projectMode)?b.projectMode:"all",projects:Array.isArray(b.projects)?b.projects.filter(a=>"string"==typeof a):E,contentMode:"contentMode"in b&&"metadata"===b.contentMode?"metadata":"full",excludeSensitive:"excludeSensitive"in b&&!!b.excludeSensitive},lastSyncAt:"string"==typeof a.lastSyncAt||null===a.lastSyncAt?a.lastSyncAt??null:null,device:{id:a.device&&"object"==typeof a.device&&"id"in a.device&&"string"==typeof a.device.id?a.device.id:"unknown",name:a.device&&"object"==typeof a.device&&"name"in a.device&&"string"==typeof a.device.name?a.device.name:"Unknown device",platform:a.device&&"object"==typeof a.device&&"platform"in a.device&&"string"==typeof a.device.platform?a.device.platform:"unknown"},queue:{pending:Number(c.pending??0),failed:Number(c.failed??0),synced:Number(c.synced??0),byKind:{audit:e("audit"),quarantine:e("quarantine"),memory:e("memory"),graph:e("graph"),unknown:e("unknown")},oldestPendingAt:"string"==typeof c.oldestPendingAt||null===c.oldestPendingAt?c.oldestPendingAt??null:null,nextRetryAt:"string"==typeof c.nextRetryAt||null===c.nextRetryAt?c.nextRetryAt??null:null,lastError:"string"==typeof c.lastError||null===c.lastError?c.lastError??null:null,lastErrorKind:"audit"===c.lastErrorKind||"quarantine"===c.lastErrorKind||"memory"===c.lastErrorKind||"graph"===c.lastErrorKind||"unknown"===c.lastErrorKind?c.lastErrorKind:null,latestFailureAt:"string"==typeof c.latestFailureAt||null===c.latestFailureAt?c.latestFailureAt??null:null}}},refetchInterval:3e4,staleTime:15e3})}var G=a.i(35031),H=a.i(79030);function I(a){let b=Math.max(0,Math.floor((Date.now()-new Date(a).getTime())/1e3));if(b<60)return`${b}s ago`;let c=Math.floor(b/60);if(c<60)return`${c}m ago`;let d=Math.floor(c/60);if(d<24)return`${d}h ago`;let e=Math.floor(d/24);return`${e}d ago`}function J(a){let b=Math.max(0,Math.floor((new Date(a).getTime()-Date.now())/1e3));if(b<60)return`in ${b}s`;let c=Math.floor(b/60);if(c<60)return`in ${c}m`;let d=Math.floor(c/60);if(d<24)return`in ${d}h`;let e=Math.floor(d/24);return`in ${e}d`}function K(){var a;let{data:c,isLoading:d}=F(),{data:e}=(0,G.useLicenseStatus)();if(d||!c)return null;let f="border-[var(--sc-border)] bg-[var(--sc-bg-surface)]/70 text-[var(--sc-text-primary)]",h="Cloud sync disabled",i="Enable cloud sync and activate a Team licence to start replicating local data.",j=g;(a=c.lastSyncAt)&&(Date.now(),new Date(a).getTime());let k=c.queue.byKind.memory.pending+c.queue.byKind.graph.pending,l=c.queue.byKind.memory.failed+c.queue.byKind.graph.failed,m=c.queue.byKind.audit.failed+c.queue.byKind.quarantine.failed+c.queue.byKind.unknown.failed;return c.enabled&&c.apiKeySet&&!c.featureEnabled?(f="border-[var(--sc-amber)]/30 bg-[var(--sc-amber)]/10 text-[var(--sc-amber)]",h="Cloud configured but licence locked",i=`Cloud sync requires the ${H.TIER_LABELS[c.requiredTier]} tier. Current tier: ${H.TIER_LABELS[e?.tier??"free"]}.`,j=s):c.enabled&&c.apiKeySet&&k>0&&l>0?(f="border-[var(--sc-coral)]/30 bg-[var(--sc-coral)]/10 text-[var(--sc-coral)]",h="Cloud sync needs attention",i=c.queue.lastError??"One or more queued sync jobs are failing.",j=v.ShieldAlert):c.enabled&&c.apiKeySet&&l>0?(f="border-[var(--sc-amber)]/30 bg-[var(--sc-amber)]/10 text-[var(--sc-amber)]",h=`${l} failed sync job${1===l?"":"s"} need clearing`,i=c.queue.lastError?`${c.queue.lastError}${c.queue.latestFailureAt?` Last failure ${I(c.queue.latestFailureAt)}.`:""}`:"These items exhausted retries and won't sync automatically. Clear them or investigate the cause.",j=n.AlertTriangle):c.enabled&&c.apiKeySet&&k>0?(f="border-[var(--sc-amber)]/30 bg-[var(--sc-amber)]/10 text-[var(--sc-amber)]",h="Cloud sync is catching up",i=c.queue.nextRetryAt?`Next retry ${J(c.queue.nextRetryAt)}.`:"Queued jobs are waiting to flush.",j=t.RefreshCw):c.enabled&&c.apiKeySet&&(f="border-[var(--sc-cyan)]/30 bg-[var(--sc-cyan)]/10 text-[var(--sc-cyan)]",h="Cloud sync healthy",i=c.lastSyncAt?`Last successful sync ${I(c.lastSyncAt)}.`:"Connected and ready to sync.",m>0&&(i+=` Auxiliary audit/quarantine history: ${m} failed job${1===m?"":"s"}.`),j=o.CheckCircle2),(0,b.jsx)("div",{className:`rounded-2xl border p-4 ${f}`,children:(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsx)(j,{size:18,className:"mt-0.5 shrink-0"}),(0,b.jsxs)("div",{children:[(0,b.jsx)("h2",{className:"text-sm font-semibold",children:h}),(0,b.jsx)("p",{className:"mt-1 text-sm opacity-90",children:i})]})]})})}function L({label:a,value:c,detail:d,icon:e}){return(0,b.jsxs)("div",{className:"glass-card p-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:"text-xs uppercase tracking-[0.2em] text-[var(--sc-text-muted)]",children:a}),(0,b.jsx)(e,{size:15,className:"text-[var(--sc-text-muted)]"})]}),(0,b.jsx)("div",{className:"mt-2 text-2xl font-semibold text-[var(--sc-text-primary)]",children:c}),(0,b.jsx)("div",{className:"mt-1 text-xs text-[var(--sc-text-secondary)]",children:d})]})}function M({label:a,pending:c,failed:d,synced:e}){return(0,b.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-3",children:[(0,b.jsx)("div",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:a}),(0,b.jsxs)("div",{className:"mt-3 grid grid-cols-3 gap-2 text-xs",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-[var(--sc-text-muted)]",children:"Pending"}),(0,b.jsx)("div",{className:"mt-1 font-semibold text-[var(--sc-amber)]",children:c})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-[var(--sc-text-muted)]",children:"Failed"}),(0,b.jsx)("div",{className:"mt-1 font-semibold text-[var(--sc-coral)]",children:d})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-[var(--sc-text-muted)]",children:"Synced"}),(0,b.jsx)("div",{className:"mt-1 font-semibold text-[var(--sc-cyan)]",children:e})]})]})]})}function N(){let a,{data:c}=C(),{data:e}=(0,w.useQuery)({queryKey:["cloud-projects"],queryFn:async()=>{let a=await (0,z.authFetch)(`${B}/api/cloud/projects`);if(!a.ok)throw Error(await (0,z.readApiError)(a,"Failed to fetch cloud projects"));return a.json()},staleTime:3e4}),f=(a=(0,y.useQueryClient)(),(0,x.useMutation)({mutationFn:async a=>{let b=await (0,z.authFetch)(`${B}/api/cloud/config`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error(await (0,z.readApiError)(b,"Failed to update cloud config"));return b.json()},onSuccess:()=>{a.invalidateQueries({queryKey:["cloud-config"]}),a.invalidateQueries({queryKey:["cloud-sync-status"]})}})),[g,h]=(0,d.useState)(null),i=e?.projects??[],j=g??c?.syncControls??{projectMode:"all",projects:[],contentMode:"full",excludeSensitive:!1},k="all"!==j.projectMode,[l,m]=(0,d.useState)("idle");async function n(){try{await f.mutateAsync({cloudSyncProjectMode:j.projectMode,cloudSyncProjects:j.projects,cloudSyncContentMode:j.contentMode,cloudSyncExcludeSensitive:j.excludeSensitive}),h(null),m("saved"),setTimeout(()=>m("idle"),2e3)}catch{m("error"),setTimeout(()=>m("idle"),3e3)}}return(0,b.jsxs)("div",{className:"glass-card-strong p-5",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h2",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Sync Controls"}),(0,b.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,b.jsx)("button",{type:"button",onClick:()=>void n(),disabled:f.isPending,className:`rounded-lg border px-3 py-2 text-sm font-medium transition disabled:cursor-not-allowed disabled:opacity-50 ${"saved"===l?"border-[var(--sc-cyan)]/50 bg-[var(--sc-cyan)]/20 text-[var(--sc-cyan)]":"error"===l?"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:f.isPending?"Saving...":"saved"===l?"✓ Saved":"error"===l?"Failed to save":"Save controls"})]}),(0,b.jsxs)("div",{className:"mt-5 grid gap-4",children:[(0,b.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4",children:[(0,b.jsx)("div",{className:"text-xs uppercase tracking-[0.2em] text-[var(--sc-text-muted)]",children:"Content mode"}),(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap gap-2 text-[11px] text-[var(--sc-text-secondary)]",children:[(0,b.jsx)("span",{className:"rounded-full border border-[var(--sc-border)] bg-[var(--sc-bg-surface)]/60 px-2.5 py-1",children:"metadata"===j.contentMode?"Metadata only":"Full content"}),(0,b.jsxs)("span",{className:"rounded-full border border-[var(--sc-border)] bg-[var(--sc-bg-surface)]/60 px-2.5 py-1",children:["Sensitive filter ",j.excludeSensitive?"on":"off"]})]}),(0,b.jsxs)("div",{className:"mt-3 grid gap-2 md:grid-cols-2",children:[(0,b.jsxs)("label",{className:`rounded-lg border p-3 text-sm ${"full"===j.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,b.jsx)("input",{type:"radio",className:"mr-2",checked:"full"===j.contentMode,onChange:()=>h(a=>({...a??j,contentMode:"full"}))}),"Full content",(0,b.jsx)("div",{className:"mt-1 text-xs text-[var(--sc-text-secondary)]",children:"Titles and memory bodies replicate to cloud."})]}),(0,b.jsxs)("label",{className:`rounded-lg border p-3 text-sm ${"metadata"===j.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,b.jsx)("input",{type:"radio",className:"mr-2",checked:"metadata"===j.contentMode,onChange:()=>h(a=>({...a??j,contentMode:"metadata"}))}),"Metadata only",(0,b.jsx)("div",{className:"mt-1 text-xs text-[var(--sc-text-secondary)]",children:"Projects, tags, salience, and graph remain; body content is redacted."})]})]})]}),(0,b.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4",children:[(0,b.jsx)("div",{className:"text-xs uppercase tracking-[0.2em] text-[var(--sc-text-muted)]",children:"Project scope"}),(0,b.jsx)("div",{className:"mt-3 flex flex-wrap gap-2",children:["all","include","exclude"].map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>h(b=>({...b??j,projectMode:a})),className:`rounded-full border px-3 py-1.5 text-xs font-medium uppercase tracking-wide ${j.projectMode===a?"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:a},a))}),(0,b.jsx)("p",{className:"mt-3 text-xs text-[var(--sc-text-secondary)]",children:"all"===j.projectMode?"All local projects are eligible for sync.":"include"===j.projectMode?"Only the selected projects will sync.":"Selected projects stay local-only."}),k&&(0,b.jsxs)("details",{className:"mt-3 rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-surface)]/40 p-3",children:[(0,b.jsxs)("summary",{className:"cursor-pointer list-none text-sm font-medium text-[var(--sc-text-primary)]",children:["Choose projects ",j.projects.length>0?`(${j.projects.length} selected)`:""]}),(0,b.jsx)("div",{className:"mt-3 max-h-48 overflow-y-auto",children:0===i.length?(0,b.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)]",children:"No named projects found in local memory yet."}):(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:i.map(a=>{let c=j.projects.includes(a.project);return(0,b.jsxs)("button",{type:"button",onClick:()=>{var b;return b=a.project,void h(a=>{let c=a??j,d=c.projects.includes(b)?c.projects.filter(a=>a!==b):[...c.projects,b].sort((a,b)=>a.localeCompare(b));return{...c,projects:d}})},className:`rounded-full border px-3 py-1.5 text-xs ${c?"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:[a.project," ",(0,b.jsxs)("span",{className:"text-[var(--sc-text-muted)]",children:["(",a.count,")"]})]},a.project)})})})]})]}),(0,b.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,b.jsx)("input",{type:"checkbox",className:"mt-0.5",checked:j.excludeSensitive,onChange:a=>h(b=>({...b??j,excludeSensitive:a.target.checked}))}),(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"font-medium text-[var(--sc-text-primary)]",children:"Exclude sensitive memories"}),(0,b.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."})]})]}),f.isError&&(0,b.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:f.error.message})]})]})}function O({sync:a,cloudConfig:c}){return(0,b.jsxs)("div",{className:"glass-card-strong p-5",children:[(0,b.jsx)("h2",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Current policy"}),(0,b.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,b.jsxs)("div",{className:"mt-4 grid gap-3 md:grid-cols-2",children:[(0,b.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4",children:[(0,b.jsx)("div",{className:"text-xs uppercase tracking-[0.2em] text-[var(--sc-text-muted)]",children:"Sync scope"}),(0,b.jsx)("div",{className:"mt-2 text-sm font-medium text-[var(--sc-text-primary)]",children:a.controls.projectMode}),(0,b.jsxs)("div",{className:"mt-1 text-xs text-[var(--sc-text-secondary)]",children:[a.controls.projects.length," selected project",1===a.controls.projects.length?"":"s"]})]}),(0,b.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4",children:[(0,b.jsx)("div",{className:"text-xs uppercase tracking-[0.2em] text-[var(--sc-text-muted)]",children:"Content mode"}),(0,b.jsx)("div",{className:"mt-2 text-sm font-medium text-[var(--sc-text-primary)]",children:"metadata"===a.controls.contentMode?"Metadata only":"Full content"}),(0,b.jsxs)("div",{className:"mt-1 text-xs text-[var(--sc-text-secondary)]",children:["Sensitive filter ",a.controls.excludeSensitive?"enabled":"off"]})]}),(0,b.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4",children:[(0,b.jsx)("div",{className:"text-xs uppercase tracking-[0.2em] text-[var(--sc-text-muted)]",children:"Cloud endpoint"}),(0,b.jsx)("div",{className:"mt-2 text-sm font-medium text-[var(--sc-text-primary)]",children:a.baseUrl})]}),(0,b.jsxs)("div",{className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4",children:[(0,b.jsx)("div",{className:"text-xs uppercase tracking-[0.2em] text-[var(--sc-text-muted)]",children:"OpenClaw complement"}),(0,b.jsxs)("div",{className:"mt-2 grid grid-cols-2 gap-2 text-xs text-[var(--sc-text-primary)]",children:[(0,b.jsxs)("span",{children:["Auto-memory: ",c.openclawMemory.autoMemory?"On":"Off"]}),(0,b.jsxs)("span",{children:["Dedupe: ",c.openclawMemory.dedupe?"On":"Off"]}),(0,b.jsxs)("span",{children:["Novelty: ",c.openclawMemory.noveltyThreshold]}),(0,b.jsxs)("span",{children:["Recent window: ",c.openclawMemory.maxRecent]})]})]})]})]})}function P(){let a,c=(a=(0,y.useQueryClient)(),(0,x.useMutation)({mutationFn:async()=>{let a=await (0,z.authFetch)(`${D}/api/cloud/sync-queue/clear-failed`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})});if(!a.ok)throw Error(await (0,z.readApiError)(a,"Failed to clear failed items"));return a.json()},onSuccess:()=>{a.invalidateQueries({queryKey:["cloud-sync-status"]})}}));return(0,b.jsx)("button",{type:"button",onClick:()=>c.mutate(),disabled:c.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:c.isPending?"Clearing...":c.isSuccess?`Cleared ${c.data?.cleared??0}`:"Clear failed"})}function Q(){let{data:a,isLoading:c,refetch:d,isFetching:e}=F(),{data:f,isLoading:h}=C(),{data:i,isLoading:j}=(0,G.useLicenseStatus)();if(c||h||j||!a||!f||!i)return(0,b.jsx)("div",{className:"space-y-6",children:(0,b.jsx)("div",{className:"glass-card p-6 text-sm text-[var(--sc-text-secondary)]",children:"Loading cloud diagnostics..."})});let k=i.tier,l=a.queue.byKind.memory,m=a.queue.byKind.graph,s=l.failed+m.failed,v=a.queue.byKind.audit.failed+a.queue.byKind.quarantine.failed+a.queue.byKind.unknown.failed,w=a.lastSyncAt?I(a.lastSyncAt):"Never",x=s>0?"Needs review":l.pending+m.pending>0?"Catching up":"Healthy";return(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-xs",children:[(0,b.jsx)("span",{className:`rounded-full px-2.5 py-1 font-medium ${H.TIER_BG[k]} ${H.TIER_COLOURS[k]}`,children:H.TIER_LABELS[k]}),(0,b.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: ",w]}),(0,b.jsx)("button",{type:"button",onClick:()=>void d(),disabled:e,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,b.jsx)(t.RefreshCw,{size:12,className:e?"animate-spin":""})})]}),(0,b.jsx)(K,{}),(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-5",children:[(0,b.jsx)(L,{label:"Replication",value:x,detail:`${s} failed \xb7 ${l.pending+m.pending} pending`,icon:t.RefreshCw}),(0,b.jsx)(L,{label:"Device",value:a.device.name,detail:`${a.device.platform} \xb7 ${a.device.id.slice(0,12)}`,icon:u}),(0,b.jsx)(L,{label:"Cloud Target",value:new URL(a.baseUrl).host,detail:a.enabled?"Configured target":"Disabled in config",icon:g}),(0,b.jsx)(L,{label:"Memory Queue",value:l.pending,detail:`${l.failed} failed \xb7 ${l.synced} synced`,icon:q.Database}),(0,b.jsx)(L,{label:"Graph Queue",value:m.pending,detail:`${m.failed} failed \xb7 ${m.synced} synced`,icon:r.GitBranch})]}),(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-6 xl:grid-cols-[1.35fr_0.95fr]",children:[(0,b.jsxs)("div",{className:"glass-card p-5",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h2",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Replication"}),(0,b.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."})]}),s>0&&(0,b.jsx)(P,{})]}),(0,b.jsxs)("div",{className:"mt-5 grid grid-cols-1 gap-3 md:grid-cols-2",children:[(0,b.jsx)(M,{label:"Memory",...l}),(0,b.jsx)(M,{label:"Graph",...m})]}),(0,b.jsxs)("details",{className:"mt-5 rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/30 p-4",children:[(0,b.jsx)("summary",{className:"cursor-pointer list-none text-sm font-medium text-[var(--sc-text-primary)]",children:"Advanced transport signals"}),(0,b.jsxs)("div",{className:"mt-4 grid grid-cols-1 gap-3 md:grid-cols-2",children:[(0,b.jsx)(M,{label:"Audit",...a.queue.byKind.audit}),(0,b.jsx)(M,{label:"Quarantine",...a.queue.byKind.quarantine})]}),(0,b.jsx)("div",{className:"mt-4 overflow-hidden rounded-xl border border-[var(--sc-border)]",children:(0,b.jsxs)("table",{className:"min-w-full divide-y divide-[var(--sc-border)] text-sm",children:[(0,b.jsx)("thead",{className:"bg-[var(--sc-bg-deep)]/70 text-[var(--sc-text-secondary)]",children:(0,b.jsxs)("tr",{children:[(0,b.jsx)("th",{className:"px-4 py-3 text-left font-medium",children:"Signal"}),(0,b.jsx)("th",{className:"px-4 py-3 text-left font-medium",children:"Current value"}),(0,b.jsx)("th",{className:"px-4 py-3 text-left font-medium",children:"Why it matters"})]})}),(0,b.jsxs)("tbody",{className:"divide-y divide-[var(--sc-border)] bg-[var(--sc-bg-surface)]/40 text-[var(--sc-text-primary)]",children:[(0,b.jsxs)("tr",{children:[(0,b.jsx)("td",{className:"px-4 py-3",children:"Oldest queued job"}),(0,b.jsx)("td",{className:"px-4 py-3",children:a.queue.oldestPendingAt?I(a.queue.oldestPendingAt):"None queued"}),(0,b.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,b.jsxs)("tr",{children:[(0,b.jsx)("td",{className:"px-4 py-3",children:"Next retry"}),(0,b.jsx)("td",{className:"px-4 py-3",children:a.queue.nextRetryAt?J(a.queue.nextRetryAt):"Idle"}),(0,b.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,b.jsxs)("tr",{children:[(0,b.jsx)("td",{className:"px-4 py-3",children:"Failed jobs in history"}),(0,b.jsx)("td",{className:"px-4 py-3",children:s}),(0,b.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,b.jsxs)("tr",{children:[(0,b.jsx)("td",{className:"px-4 py-3",children:"Auxiliary failed history"}),(0,b.jsx)("td",{className:"px-4 py-3",children:v}),(0,b.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,b.jsxs)("tr",{children:[(0,b.jsx)("td",{className:"px-4 py-3",children:"Latest memory sync"}),(0,b.jsx)("td",{className:"px-4 py-3",children:a.lastSyncAt?I(a.lastSyncAt):"Not recorded"}),(0,b.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,b.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,b.jsx)(N,{}),(0,b.jsx)(O,{sync:a,cloudConfig:f}),(0,b.jsxs)("div",{className:"glass-card-strong p-5",children:[(0,b.jsx)("h2",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Last actionable error"}),(0,b.jsx)("div",{className:"mt-4 rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/60 p-4",children:a.queue.lastError?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:`flex items-center gap-2 text-sm font-medium ${a.queue.pending>0?"text-[var(--sc-coral)]":"text-[var(--sc-amber)]"}`,children:[(0,b.jsx)(n.AlertTriangle,{size:16}),a.queue.lastErrorKind?`${a.queue.lastErrorKind} queue`:"Unknown queue"]}),(0,b.jsx)("p",{className:"mt-2 text-sm text-[var(--sc-text-primary)]",children:a.queue.lastError}),a.queue.latestFailureAt&&(0,b.jsxs)("div",{className:"mt-2 text-xs text-[var(--sc-text-muted)]",children:["Recorded ",I(a.queue.latestFailureAt)]}),a.queue.nextRetryAt&&(0,b.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,b.jsx)(p.Clock3,{size:12}),"Retry ",J(a.queue.nextRetryAt)]})]}):(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm text-[var(--sc-cyan)]",children:[(0,b.jsx)(o.CheckCircle2,{size:16}),"No recent sync errors recorded."]})})]})]})]})]})}var R=a.i(98472);let S=(0,f.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 T=a.i(48036),U=a.i(84692),V=a.i(14126),W=a.i(32322);let X=(0,f.default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]),Y=(0,f.default)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]),Z="https://api.shieldcortex.ai",$=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001",_=["Custom injection patterns","Custom Iron Dome policies","Custom firewall rules","Audit export (JSON/CSV)","Skill scanner deep mode"];function aa(){let{data:a,isLoading:c}=(0,G.useLicenseStatus)(),e=(0,G.useActivateLicense)(),f=(0,G.useDeactivateLicense)(),g=function(){let a=(0,y.useQueryClient)(),[b,c]=(0,d.useState)("idle"),[e,f]=(0,d.useState)(null),[g,h]=(0,d.useState)(null),i=(0,d.useCallback)(async(a,b)=>{c("submitting"),f(null);try{let d=await fetch(`${Z}/v1/billing/quick-checkout`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:a,plan:b})}),e=await d.json();if(!d.ok||!e.checkout_url||!e.setup_id)throw Error(e.error||"Failed to create checkout session");h(e.setup_id),window.open(e.checkout_url,"_blank"),c("polling")}catch(a){f(a instanceof Error?a.message:"Checkout failed"),c("error")}},[]);return(0,d.useEffect)(()=>{if("polling"!==b||!g)return;let d=setInterval(async()=>{try{let b=await fetch(`${Z}/v1/billing/setup-status/${g}`),e=await b.json();if("complete"===e.status&&e.license_key){clearInterval(d),c("activating");try{if(!(await (0,z.authFetch)(`${$}/api/license/activate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:e.license_key})})).ok)throw Error("Local activation failed");a.invalidateQueries({queryKey:["license-status"]}),c("complete")}catch{f('Payment succeeded but local activation failed. Use "I Have a Key" to activate manually.'),c("error")}}else"expired"===e.status?(clearInterval(d),f("Setup expired. Please try again."),c("error")):"complete"!==e.status||e.license_key||(clearInterval(d),f("Licence key was already retrieved. Check your dashboard or try again."),c("error"))}catch{}},3e3),e=setTimeout(()=>{clearInterval(d),f('Checkout timed out. If you completed payment, use "I Have a Key" or contact support.'),c("error")},9e5);return()=>{clearInterval(d),clearTimeout(e)}},[b,g,a]),{state:b,error:e,startCheckout:i,reset:(0,d.useCallback)(()=>{c("idle"),f(null),h(null)},[])}}(),[h,i]=(0,d.useState)(""),[j,k]=(0,d.useState)("default"),[l,m]=(0,d.useState)(""),[n,p]=(0,d.useState)("pro"),[q,r]=(0,d.useState)(!1);if(c||!a)return(0,b.jsx)("div",{className:"bg-[var(--sc-bg-surface)] border border-[var(--sc-border)] rounded-xl p-4 mb-4",children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(R.Shield,{size:16,className:"text-[var(--sc-text-muted)]"}),(0,b.jsx)("span",{className:"text-xs text-[var(--sc-text-muted)] animate-pulse",children:"Loading licence..."})]})});let s=a.tier;if("free"===s)return(0,b.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,b.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,b.jsxs)("div",{className:"relative p-5",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between mb-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,b.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,b.jsx)(V.Sparkles,{size:16,className:"text-[var(--sc-cyan)]"})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("h3",{className:"text-sm font-semibold text-[var(--sc-text-primary)]",children:"Unlock Pro Features"}),(0,b.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,b.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,b.jsx)("div",{className:"grid grid-cols-2 gap-x-4 gap-y-1.5 mb-4",children:_.map(a=>(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-xs",children:[(0,b.jsx)(W.Lock,{size:10,className:"text-[var(--sc-cyan)]/60 shrink-0"}),(0,b.jsx)("span",{className:"text-[var(--sc-text-secondary)]",children:a})]},a))}),"complete"===g.state?(0,b.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,b.jsx)(o.CheckCircle2,{size:16,className:"text-[var(--sc-cyan)] shrink-0"}),(0,b.jsx)("span",{className:"text-xs text-[var(--sc-cyan)]",children:"Pro activated! Your dashboard is refreshing..."})]}):"polling"===g.state||"activating"===g.state?(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.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,b.jsx)(U.Loader2,{size:14,className:"text-[var(--sc-cyan)] animate-spin shrink-0"}),(0,b.jsx)("span",{className:"text-xs text-[var(--sc-cyan)]",children:"activating"===g.state?"Activating licence...":"Complete payment in the Stripe tab..."})]}),(0,b.jsx)("button",{onClick:()=>{g.reset(),k("default")},className:"text-[10px] text-[var(--sc-text-muted)] hover:text-[var(--sc-text-primary)] transition-colors",children:"Cancel"})]}):"checkout"===j?(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-[10px] text-[var(--sc-text-muted)] mb-1 block",children:"Email"}),(0,b.jsx)("input",{type:"email",placeholder:"you@company.com",value:l,onChange:a=>m(a.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,b.jsx)("div",{className:"flex gap-2",children:["pro","team"].map(a=>(0,b.jsxs)("button",{type:"button",onClick:()=>p(a),className:`flex-1 px-3 py-2 text-xs font-medium rounded-lg border transition-colors ${n===a?"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:[H.PLAN_PRICING[a].label," — ",H.PLAN_PRICING[a].price]},a))}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("button",{onClick:()=>g.startCheckout(l,n),disabled:"submitting"===g.state||!l.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"===g.state?(0,b.jsx)(U.Loader2,{size:12,className:"animate-spin"}):"Continue to Checkout"}),(0,b.jsx)("button",{onClick:()=>{k("default"),g.reset()},className:"px-3 py-2 text-xs text-[var(--sc-text-muted)] hover:text-[var(--sc-text-primary)] transition-colors",children:"Back"})]}),g.error&&(0,b.jsx)("p",{className:"text-xs text-[var(--sc-coral)]",children:g.error})]}):"activate"===j?(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("form",{onSubmit:a=>{a.preventDefault(),h.trim()&&e.mutate(h.trim(),{onSuccess:()=>{i(""),k("default")}})},className:"flex gap-2",children:[(0,b.jsx)("input",{type:"text",placeholder:"sc_pro_...",value:h,onChange:a=>i(a.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,b.jsx)("button",{type:"submit",disabled:e.isPending||!h.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:e.isPending?(0,b.jsx)(U.Loader2,{size:12,className:"animate-spin"}):"Activate"}),(0,b.jsx)("button",{type:"button",onClick:()=>{k("default"),i(""),e.reset()},className:"px-3 py-2 text-xs text-[var(--sc-text-muted)] hover:text-[var(--sc-text-primary)] transition-colors",children:"Back"})]}),e.isError&&(0,b.jsx)("p",{className:"text-xs text-[var(--sc-coral)]",children:e.error instanceof Error?e.error.message:"Activation failed"})]}):(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)("button",{onClick:()=>k("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,b.jsxs)("button",{onClick:()=>k("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,b.jsx)(S,{size:12}),"I Have a Key"]})]}),g.error&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("p",{className:"text-xs text-[var(--sc-coral)]",children:g.error}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("button",{onClick:()=>{g.reset(),k("checkout")},className:"text-[10px] text-[var(--sc-cyan)] hover:text-[var(--sc-cyan)] transition-colors",children:"Try Again"}),(0,b.jsx)("span",{className:"text-[10px] text-[var(--sc-text-muted)]",children:"·"}),(0,b.jsx)("button",{onClick:()=>{g.reset(),k("activate")},className:"text-[10px] text-[var(--sc-text-secondary)] hover:text-[var(--sc-text-primary)] transition-colors",children:"I Have a Key"})]})]})]})]})]});let t=a.features.filter(a=>a.enabled).length,u=a.features.length;return(0,b.jsxs)("div",{className:"bg-[var(--sc-bg-surface)] border border-[var(--sc-cyan)]/40 rounded-xl p-4 mb-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(R.Shield,{size:16,className:H.TIER_COLOURS[s]}),(0,b.jsx)("h3",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Licence"}),(0,b.jsx)("span",{className:`text-[10px] font-semibold px-1.5 py-0.5 rounded ${H.TIER_COLOURS[s]} ${H.TIER_BG[s]}`,children:H.TIER_LABELS[s]})]}),(0,b.jsxs)("span",{className:"text-[10px] text-[var(--sc-text-muted)]",children:[t,"/",u," features"]})]}),(0,b.jsxs)("div",{className:"space-y-2 mb-3",children:[a.email&&(0,b.jsxs)("div",{className:"flex items-center justify-between text-xs",children:[(0,b.jsx)("span",{className:"text-[var(--sc-text-muted)]",children:"Email"}),(0,b.jsx)("span",{className:"text-[var(--sc-text-primary)]",children:a.email})]}),null!==a.daysUntilExpiry&&(0,b.jsxs)("div",{className:"flex items-center justify-between text-xs",children:[(0,b.jsx)("span",{className:"text-[var(--sc-text-muted)]",children:"Expires"}),(0,b.jsx)("span",{className:a.daysUntilExpiry<=7?"text-[var(--sc-amber)]":"text-[var(--sc-text-primary)]",children:a.daysUntilExpiry<=0?"Expired (grace period)":`${a.daysUntilExpiry} days`})]})]}),(0,b.jsxs)("button",{onClick:()=>r(!q),className:"flex items-center gap-1 text-[10px] text-[var(--sc-text-muted)] hover:text-[var(--sc-text-primary)] transition-colors mb-2",children:[q?(0,b.jsx)(Y,{size:12}):(0,b.jsx)(X,{size:12}),q?"Hide features":"Show features"]}),q&&(0,b.jsx)("div",{className:"space-y-1.5 mb-3",children:a.features.map(a=>(0,b.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[a.enabled?(0,b.jsx)(o.CheckCircle2,{size:12,className:"text-[var(--sc-cyan)] shrink-0"}):(0,b.jsx)(T.XCircle,{size:12,className:"text-[var(--sc-text-muted)] shrink-0"}),(0,b.jsx)("span",{className:a.enabled?"text-[var(--sc-text-primary)]":"text-[var(--sc-text-muted)]",children:a.description.split(".")[0]}),!a.enabled&&(0,b.jsx)("span",{className:`text-[9px] px-1 py-0.5 rounded ${H.TIER_COLOURS[a.requiredTier]} ${H.TIER_BG[a.requiredTier]}`,children:H.TIER_LABELS[a.requiredTier]})]},a.feature))}),(0,b.jsx)("button",{onClick:()=>{confirm(`Remove your ${H.TIER_LABELS[s]} licence key? You will lose access to paid features.`)&&f.mutate()},disabled:f.isPending,className:"text-[10px] text-[var(--sc-text-muted)] hover:text-[var(--sc-coral)] transition-colors",children:"Deactivate"})]})}function ab(){let a=(0,c.useSearchParams)().get("tab"),e=a&&["cloud","licence","admin"].includes(a)?a:null,[f,n]=(0,d.useState)("cloud"),o=e??f,{data:p}=(0,G.useLicenseStatus)(),q=[{id:"cloud",label:"Cloud Sync",icon:(0,b.jsx)(g,{size:14})},{id:"licence",label:"Licence",icon:(0,b.jsx)(h,{size:14})},{id:"admin",label:"Admin",icon:(0,b.jsx)(i.Settings,{size:14})}];return(0,b.jsx)("div",{className:"h-full overflow-y-auto",children:(0,b.jsxs)("div",{className:"mx-auto max-w-7xl space-y-6 p-6",children:[(0,b.jsx)(j.PageHeader,{eyebrow:"Configuration",title:"Settings",subtitle:"Cloud sync, licence management, and system configuration.",tabs:q,activeTab:o,onTabChange:a=>n(a),actions:(0,b.jsx)(l.Badge,{variant:p?.tier==="pro"?"cyan":p?.tier==="team"?"coral":"muted",children:H.TIER_LABELS[p?.tier??"free"]})}),(0,b.jsxs)("div",{children:["cloud"===o&&(0,b.jsx)(Q,{}),"licence"===o&&(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsx)(aa,{}),(0,b.jsxs)(k.GlassCard,{className:"p-6",children:[(0,b.jsx)("h3",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Upgrade"}),(0,b.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,b.jsx)("div",{className:"mt-4 flex gap-3",children:(0,b.jsx)("a",{href:"https://shieldcortex.ai/pricing",target:"_blank",rel:"noopener noreferrer",children:(0,b.jsx)(m.Button,{variant:"coral",glow:!0,children:"View pricing"})})})]})]}),"admin"===o&&(0,b.jsx)("div",{className:"space-y-6",children:(0,b.jsxs)(k.GlassCard,{className:"p-6",children:[(0,b.jsx)("h3",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"System Information"}),(0,b.jsxs)("div",{className:"mt-4 space-y-3",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between rounded-lg bg-[var(--sc-bg-elevated)] px-4 py-3",children:[(0,b.jsx)("span",{className:"text-sm text-[var(--sc-text-secondary)]",children:"Dashboard"}),(0,b.jsx)("span",{className:"font-mono text-sm text-[var(--sc-text-primary)]",children:"localhost:3030"})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between rounded-lg bg-[var(--sc-bg-elevated)] px-4 py-3",children:[(0,b.jsx)("span",{className:"text-sm text-[var(--sc-text-secondary)]",children:"API Server"}),(0,b.jsx)("span",{className:"font-mono text-sm text-[var(--sc-text-primary)]",children:"localhost:3001"})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between rounded-lg bg-[var(--sc-bg-elevated)] px-4 py-3",children:[(0,b.jsx)("span",{className:"text-sm text-[var(--sc-text-secondary)]",children:"Database"}),(0,b.jsx)("span",{className:"font-mono text-sm text-[var(--sc-text-primary)]",children:"~/.shieldcortex/memories.db"})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between rounded-lg bg-[var(--sc-bg-elevated)] px-4 py-3",children:[(0,b.jsx)("span",{className:"text-sm text-[var(--sc-text-secondary)]",children:"Licence Tier"}),(0,b.jsx)(l.Badge,{variant:p?.tier==="pro"?"cyan":p?.tier==="team"?"coral":"muted",children:H.TIER_LABELS[p?.tier??"free"]})]})]})]})})]})]})})}function ac(){return(0,b.jsx)(d.Suspense,{fallback:(0,b.jsx)(e.PageSkeleton,{}),children:(0,b.jsx)(ab,{})})}a.s(["SettingsView",()=>ac],58787)}];
2
2
 
3
3
  //# sourceMappingURL=dashboard_src_components_settings_SettingsView_tsx_16dc83a7._.js.map
@@ -1 +1 @@
1
- <!DOCTYPE html><!--ng0doEBxE4bijqUCWUE8a--><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/8eaf3adbd52b96d5.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/d878b929b21636c4.js"/><script src="/_next/static/chunks/d9ad4c35fc865415.js" async=""></script><script src="/_next/static/chunks/43d761df92da7cb6.js" async=""></script><script src="/_next/static/chunks/e281719dbabcca1d.js" async=""></script><script src="/_next/static/chunks/9e56d1f8f4d7adcb.js" async=""></script><script src="/_next/static/chunks/turbopack-79214717b23f7452.js" async=""></script><script src="/_next/static/chunks/4ddb24d8ce3b8617.js" async=""></script><script src="/_next/static/chunks/417032eeb2cd875f.js" async=""></script><script src="/_next/static/chunks/d334b69bff7779be.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><title>ShieldCortex</title><meta name="description" content="AI Memory Security Dashboard — Defence pipeline, audit logs, quarantine review"/><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased bg-slate-950"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/d878b929b21636c4.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[36111,[\"/_next/static/chunks/4ddb24d8ce3b8617.js\",\"/_next/static/chunks/417032eeb2cd875f.js\"],\"Providers\"]\n3:I[57043,[\"/_next/static/chunks/4ddb24d8ce3b8617.js\",\"/_next/static/chunks/417032eeb2cd875f.js\"],\"default\"]\n4:I[10445,[\"/_next/static/chunks/4ddb24d8ce3b8617.js\",\"/_next/static/chunks/417032eeb2cd875f.js\",\"/_next/static/chunks/d334b69bff7779be.js\"],\"default\"]\n5:I[27657,[\"/_next/static/chunks/4ddb24d8ce3b8617.js\",\"/_next/static/chunks/417032eeb2cd875f.js\"],\"default\"]\n6:I[56978,[\"/_next/static/chunks/4ddb24d8ce3b8617.js\",\"/_next/static/chunks/417032eeb2cd875f.js\"],\"OutletBoundary\"]\n7:\"$Sreact.suspense\"\n9:I[56978,[\"/_next/static/chunks/4ddb24d8ce3b8617.js\",\"/_next/static/chunks/417032eeb2cd875f.js\"],\"ViewportBoundary\"]\nb:I[56978,[\"/_next/static/chunks/4ddb24d8ce3b8617.js\",\"/_next/static/chunks/417032eeb2cd875f.js\"],\"MetadataBoundary\"]\nd:I[30687,[\"/_next/static/chunks/4ddb24d8ce3b8617.js\",\"/_next/static/chunks/417032eeb2cd875f.js\"],\"default\"]\n:HL[\"/_next/static/chunks/8eaf3adbd52b96d5.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"ng0doEBxE4bijqUCWUE8a\",\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/8eaf3adbd52b96d5.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/4ddb24d8ce3b8617.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/417032eeb2cd875f.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark\",\"children\":[\"$\",\"body\",null,{\"className\":\"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased bg-slate-950\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$4\",\"errorStyles\":[],\"errorScripts\":[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/d334b69bff7779be.js\",\"async\":true}]],\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@8\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lc\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",\"$undefined\"],\"S\":true}\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"8:null\nc:[[\"$\",\"title\",\"0\",{\"children\":\"ShieldCortex\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"AI Memory Security Dashboard — Defence pipeline, audit logs, quarantine review\"}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><!--sG7_2zW__zI42it71Ihgy--><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/915d5a8cf2d0807e.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/d878b929b21636c4.js"/><script src="/_next/static/chunks/d9ad4c35fc865415.js" async=""></script><script src="/_next/static/chunks/43d761df92da7cb6.js" async=""></script><script src="/_next/static/chunks/e281719dbabcca1d.js" async=""></script><script src="/_next/static/chunks/9e56d1f8f4d7adcb.js" async=""></script><script src="/_next/static/chunks/turbopack-79214717b23f7452.js" async=""></script><script src="/_next/static/chunks/4ddb24d8ce3b8617.js" async=""></script><script src="/_next/static/chunks/417032eeb2cd875f.js" async=""></script><script src="/_next/static/chunks/d334b69bff7779be.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><title>ShieldCortex</title><meta name="description" content="AI Memory Security Dashboard — Defence pipeline, audit logs, quarantine review"/><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased bg-slate-950"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/d878b929b21636c4.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[36111,[\"/_next/static/chunks/4ddb24d8ce3b8617.js\",\"/_next/static/chunks/417032eeb2cd875f.js\"],\"Providers\"]\n3:I[57043,[\"/_next/static/chunks/4ddb24d8ce3b8617.js\",\"/_next/static/chunks/417032eeb2cd875f.js\"],\"default\"]\n4:I[10445,[\"/_next/static/chunks/4ddb24d8ce3b8617.js\",\"/_next/static/chunks/417032eeb2cd875f.js\",\"/_next/static/chunks/d334b69bff7779be.js\"],\"default\"]\n5:I[27657,[\"/_next/static/chunks/4ddb24d8ce3b8617.js\",\"/_next/static/chunks/417032eeb2cd875f.js\"],\"default\"]\n6:I[56978,[\"/_next/static/chunks/4ddb24d8ce3b8617.js\",\"/_next/static/chunks/417032eeb2cd875f.js\"],\"OutletBoundary\"]\n7:\"$Sreact.suspense\"\n9:I[56978,[\"/_next/static/chunks/4ddb24d8ce3b8617.js\",\"/_next/static/chunks/417032eeb2cd875f.js\"],\"ViewportBoundary\"]\nb:I[56978,[\"/_next/static/chunks/4ddb24d8ce3b8617.js\",\"/_next/static/chunks/417032eeb2cd875f.js\"],\"MetadataBoundary\"]\nd:I[30687,[\"/_next/static/chunks/4ddb24d8ce3b8617.js\",\"/_next/static/chunks/417032eeb2cd875f.js\"],\"default\"]\n:HL[\"/_next/static/chunks/915d5a8cf2d0807e.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"sG7_2zW-_zI42it71Ihgy\",\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/915d5a8cf2d0807e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/4ddb24d8ce3b8617.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/417032eeb2cd875f.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark\",\"children\":[\"$\",\"body\",null,{\"className\":\"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased bg-slate-950\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$4\",\"errorStyles\":[],\"errorScripts\":[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/d334b69bff7779be.js\",\"async\":true}]],\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@8\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lc\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",\"$undefined\"],\"S\":true}\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"8:null\nc:[[\"$\",\"title\",\"0\",{\"children\":\"ShieldCortex\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"AI Memory Security Dashboard — Defence pipeline, audit logs, quarantine review\"}]]\n"])</script></body></html>