shieldcortex 4.12.13 → 4.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (452) hide show
  1. package/dashboard/.next/standalone/dashboard/.next/BUILD_ID +1 -1
  2. package/dashboard/.next/standalone/dashboard/.next/build-manifest.json +2 -2
  3. package/dashboard/.next/standalone/dashboard/.next/prerender-manifest.json +3 -3
  4. package/dashboard/.next/standalone/dashboard/.next/required-server-files.json +10 -4
  5. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/admin/page.js +1 -1
  6. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/admin/page.js.nft.json +1 -1
  7. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/admin/page_client-reference-manifest.js +1 -1
  8. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/cloud/page.js +1 -1
  9. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/cloud/page.js.nft.json +1 -1
  10. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/cloud/page_client-reference-manifest.js +1 -1
  11. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/capture/page.js +1 -1
  12. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/capture/page.js.nft.json +1 -1
  13. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/capture/page_client-reference-manifest.js +1 -1
  14. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/graph/page.js +1 -1
  15. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/graph/page.js.nft.json +1 -1
  16. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/graph/page_client-reference-manifest.js +1 -1
  17. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/page.js +1 -1
  18. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/page.js.nft.json +1 -1
  19. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/page_client-reference-manifest.js +1 -1
  20. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/recall/page.js +1 -1
  21. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/recall/page.js.nft.json +1 -1
  22. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/recall/page_client-reference-manifest.js +1 -1
  23. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page.js +1 -1
  24. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page.js.nft.json +1 -1
  25. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page_client-reference-manifest.js +1 -1
  26. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/timeline/page.js +1 -1
  27. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/timeline/page.js.nft.json +1 -1
  28. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/timeline/page_client-reference-manifest.js +1 -1
  29. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/overview/page.js +1 -1
  30. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/overview/page.js.nft.json +1 -1
  31. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/overview/page_client-reference-manifest.js +1 -1
  32. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/audit/page.js +1 -1
  33. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/audit/page.js.nft.json +1 -1
  34. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/audit/page_client-reference-manifest.js +1 -1
  35. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/intercepts/page.js +1 -1
  36. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/intercepts/page.js.nft.json +1 -1
  37. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/intercepts/page_client-reference-manifest.js +1 -1
  38. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/iron-dome/page.js +1 -1
  39. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/iron-dome/page.js.nft.json +1 -1
  40. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/iron-dome/page_client-reference-manifest.js +1 -1
  41. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/page.js +1 -1
  42. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/page.js.nft.json +1 -1
  43. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/page_client-reference-manifest.js +1 -1
  44. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/policies/page.js +1 -1
  45. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/policies/page.js.nft.json +1 -1
  46. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/policies/page_client-reference-manifest.js +1 -1
  47. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/quarantine/page.js +1 -1
  48. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/quarantine/page.js.nft.json +1 -1
  49. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/quarantine/page_client-reference-manifest.js +1 -1
  50. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/settings/page.js +1 -1
  51. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  52. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  53. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/page.js +1 -1
  54. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/page.js.nft.json +1 -1
  55. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/page_client-reference-manifest.js +1 -1
  56. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/xray/page.js +1 -1
  57. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/xray/page.js.nft.json +1 -1
  58. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/xray/page_client-reference-manifest.js +1 -1
  59. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page.js +1 -1
  60. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page.js.nft.json +1 -1
  61. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page_client-reference-manifest.js +1 -1
  62. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error/page.js.nft.json +1 -1
  63. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  64. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.html +2 -2
  65. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.rsc +1 -1
  66. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  67. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  68. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  69. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  70. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  71. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found/page.js.nft.json +1 -1
  72. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  73. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.html +1 -1
  74. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.rsc +2 -2
  75. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  76. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  77. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  78. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  79. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  80. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  81. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.html +1 -1
  82. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.rsc +17 -15
  83. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/!KGRhc2hib2FyZCk/admin/__PAGE__.segment.rsc +1 -1
  84. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/!KGRhc2hib2FyZCk/admin.segment.rsc +1 -1
  85. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  86. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_full.segment.rsc +17 -15
  87. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_head.segment.rsc +1 -1
  88. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_index.segment.rsc +2 -2
  89. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_tree.segment.rsc +2 -2
  90. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.html +1 -1
  91. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.rsc +17 -15
  92. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/!KGRhc2hib2FyZCk/cloud/__PAGE__.segment.rsc +1 -1
  93. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/!KGRhc2hib2FyZCk/cloud.segment.rsc +1 -1
  94. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  95. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_full.segment.rsc +17 -15
  96. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_head.segment.rsc +1 -1
  97. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_index.segment.rsc +2 -2
  98. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_tree.segment.rsc +2 -2
  99. package/dashboard/.next/standalone/dashboard/.next/server/app/index.html +1 -1
  100. package/dashboard/.next/standalone/dashboard/.next/server/app/index.rsc +2 -2
  101. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  102. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_full.segment.rsc +2 -2
  103. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_head.segment.rsc +1 -1
  104. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_index.segment.rsc +2 -2
  105. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  106. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.html +1 -1
  107. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.rsc +17 -15
  108. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory/capture/__PAGE__.segment.rsc +1 -1
  109. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory/capture.segment.rsc +1 -1
  110. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  111. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  112. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_full.segment.rsc +17 -15
  113. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_head.segment.rsc +1 -1
  114. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_index.segment.rsc +2 -2
  115. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_tree.segment.rsc +2 -2
  116. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.html +1 -1
  117. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.rsc +17 -15
  118. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory/graph/__PAGE__.segment.rsc +1 -1
  119. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory/graph.segment.rsc +1 -1
  120. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  121. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  122. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_full.segment.rsc +17 -15
  123. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_head.segment.rsc +1 -1
  124. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_index.segment.rsc +2 -2
  125. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_tree.segment.rsc +2 -2
  126. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.html +1 -1
  127. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.rsc +17 -15
  128. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory/recall/__PAGE__.segment.rsc +1 -1
  129. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory/recall.segment.rsc +1 -1
  130. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  131. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  132. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_full.segment.rsc +17 -15
  133. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_head.segment.rsc +1 -1
  134. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_index.segment.rsc +2 -2
  135. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_tree.segment.rsc +2 -2
  136. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.html +1 -1
  137. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.rsc +17 -15
  138. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory/review/__PAGE__.segment.rsc +1 -1
  139. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory/review.segment.rsc +1 -1
  140. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  141. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  142. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_full.segment.rsc +17 -15
  143. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_head.segment.rsc +1 -1
  144. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_index.segment.rsc +2 -2
  145. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_tree.segment.rsc +2 -2
  146. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.html +1 -1
  147. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.rsc +17 -15
  148. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory/timeline/__PAGE__.segment.rsc +1 -1
  149. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory/timeline.segment.rsc +1 -1
  150. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  151. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  152. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_full.segment.rsc +17 -15
  153. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_head.segment.rsc +1 -1
  154. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_index.segment.rsc +2 -2
  155. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_tree.segment.rsc +2 -2
  156. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.html +1 -1
  157. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.rsc +21 -18
  158. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk/memory/__PAGE__.segment.rsc +2 -2
  159. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  160. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  161. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_full.segment.rsc +21 -18
  162. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_head.segment.rsc +1 -1
  163. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_index.segment.rsc +2 -2
  164. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_tree.segment.rsc +2 -2
  165. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.html +1 -1
  166. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.rsc +20 -18
  167. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk/overview/__PAGE__.segment.rsc +2 -2
  168. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk/overview.segment.rsc +1 -1
  169. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  170. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_full.segment.rsc +20 -18
  171. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_head.segment.rsc +1 -1
  172. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_index.segment.rsc +2 -2
  173. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_tree.segment.rsc +2 -2
  174. package/dashboard/.next/standalone/dashboard/.next/server/app/page.js.nft.json +1 -1
  175. package/dashboard/.next/standalone/dashboard/.next/server/app/page_client-reference-manifest.js +1 -1
  176. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.html +1 -1
  177. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.rsc +17 -15
  178. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection/audit/__PAGE__.segment.rsc +1 -1
  179. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection/audit.segment.rsc +1 -1
  180. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  181. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  182. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_full.segment.rsc +17 -15
  183. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_head.segment.rsc +1 -1
  184. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_index.segment.rsc +2 -2
  185. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_tree.segment.rsc +2 -2
  186. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.html +1 -1
  187. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.rsc +17 -15
  188. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection/intercepts/__PAGE__.segment.rsc +1 -1
  189. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection/intercepts.segment.rsc +1 -1
  190. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  191. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  192. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_full.segment.rsc +17 -15
  193. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_head.segment.rsc +1 -1
  194. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_index.segment.rsc +2 -2
  195. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_tree.segment.rsc +2 -2
  196. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.html +1 -1
  197. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.rsc +17 -15
  198. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection/iron-dome/__PAGE__.segment.rsc +1 -1
  199. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection/iron-dome.segment.rsc +1 -1
  200. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  201. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  202. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_full.segment.rsc +17 -15
  203. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_head.segment.rsc +1 -1
  204. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_index.segment.rsc +2 -2
  205. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_tree.segment.rsc +2 -2
  206. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.html +1 -1
  207. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.rsc +17 -15
  208. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection/policies/__PAGE__.segment.rsc +1 -1
  209. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection/policies.segment.rsc +1 -1
  210. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  211. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  212. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_full.segment.rsc +17 -15
  213. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_head.segment.rsc +1 -1
  214. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_index.segment.rsc +2 -2
  215. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_tree.segment.rsc +2 -2
  216. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.html +1 -1
  217. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.rsc +17 -15
  218. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection/quarantine/__PAGE__.segment.rsc +1 -1
  219. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection/quarantine.segment.rsc +1 -1
  220. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  221. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  222. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_full.segment.rsc +17 -15
  223. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_head.segment.rsc +1 -1
  224. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_index.segment.rsc +2 -2
  225. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_tree.segment.rsc +2 -2
  226. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.html +1 -1
  227. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.rsc +17 -15
  228. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk/protection/__PAGE__.segment.rsc +2 -2
  229. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  230. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  231. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_full.segment.rsc +17 -15
  232. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_head.segment.rsc +1 -1
  233. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_index.segment.rsc +2 -2
  234. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_tree.segment.rsc +2 -2
  235. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.html +1 -1
  236. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.rsc +17 -15
  237. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings/__PAGE__.segment.rsc +2 -2
  238. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings.segment.rsc +1 -1
  239. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  240. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_full.segment.rsc +17 -15
  241. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  242. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  243. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  244. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.html +1 -1
  245. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.rsc +17 -15
  246. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain/xray/__PAGE__.segment.rsc +1 -1
  247. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain/xray.segment.rsc +1 -1
  248. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain.segment.rsc +1 -1
  249. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  250. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_full.segment.rsc +17 -15
  251. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_head.segment.rsc +1 -1
  252. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_index.segment.rsc +2 -2
  253. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_tree.segment.rsc +2 -2
  254. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.html +1 -1
  255. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.rsc +17 -15
  256. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk/supply-chain/__PAGE__.segment.rsc +1 -1
  257. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk/supply-chain.segment.rsc +1 -1
  258. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  259. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_full.segment.rsc +17 -15
  260. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_head.segment.rsc +1 -1
  261. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_index.segment.rsc +2 -2
  262. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_tree.segment.rsc +2 -2
  263. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.html +1 -1
  264. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.rsc +17 -15
  265. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk/xray/__PAGE__.segment.rsc +2 -2
  266. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk/xray.segment.rsc +1 -1
  267. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk.segment.rsc +9 -7
  268. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_full.segment.rsc +17 -15
  269. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_head.segment.rsc +1 -1
  270. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_index.segment.rsc +2 -2
  271. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_tree.segment.rsc +2 -2
  272. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/9f1d4_@tanstack_68dcbde9._.js +3 -0
  273. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/{[root-of-the-server]__fb5796ae._.js → [root-of-the-server]__2de25d56._.js} +2 -2
  274. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__52bd7a9f._.js +3 -0
  275. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/{[root-of-the-server]__b789489c._.js → [root-of-the-server]__6f881a23._.js} +2 -2
  276. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_01f6ceb0._.js +1 -1
  277. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_20c6acea._.js +3 -0
  278. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/{9f1d4_next_c9fe89e1._.js → dashboard_25b568c3._.js} +2 -2
  279. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_2a8eef6b._.js +3 -0
  280. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_35a9932a._.js +1 -1
  281. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_37f17371._.js +1 -1
  282. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_77cb2b63._.js +3 -0
  283. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_91003e6d._.js +3 -0
  284. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_9b8695d8._.js +3 -0
  285. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_a16ef10a._.js +3 -0
  286. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_c219bf07._.js +4 -4
  287. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_f9cd1dc2._.js +3 -0
  288. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_fefd3b85._.js +1 -1
  289. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_44a9f72c._.js +3 -0
  290. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_components_de7ac4f9._.js +3 -0
  291. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_components_protection_ProtectionOverview_tsx_54554a97._.js +3 -3
  292. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_components_settings_SettingsView_tsx_16dc83a7._.js +1 -1
  293. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_components_xray_XRayOverview_tsx_ceba698e._.js +1 -1
  294. package/dashboard/.next/standalone/dashboard/.next/server/pages/404.html +1 -1
  295. package/dashboard/.next/standalone/dashboard/.next/server/pages/500.html +2 -2
  296. package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.js +1 -1
  297. package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.json +1 -1
  298. package/dashboard/.next/standalone/dashboard/.next/static/chunks/015dc64369f26b7d.css +3 -0
  299. package/dashboard/.next/standalone/dashboard/.next/static/chunks/2fe84829530e61a3.js +1 -0
  300. package/dashboard/.next/standalone/dashboard/.next/static/chunks/34d0309a4e34b084.js +1 -0
  301. package/dashboard/.next/standalone/dashboard/.next/static/chunks/3729c748a4361c1f.js +1 -0
  302. package/dashboard/.next/standalone/dashboard/.next/static/chunks/3b7fdf1ee828254c.js +1 -0
  303. package/dashboard/.next/standalone/dashboard/.next/static/chunks/{3d53807a9a943ce7.js → 4c90ebd2c08cd656.js} +4 -4
  304. package/dashboard/.next/standalone/dashboard/.next/static/chunks/4d4af0cecaef56f2.js +1 -0
  305. package/dashboard/.next/standalone/dashboard/.next/static/chunks/4eb86dc2f379d3ca.js +1 -0
  306. package/dashboard/.next/standalone/dashboard/.next/static/chunks/6aba18b7aac42ccd.js +1 -0
  307. package/dashboard/.next/standalone/dashboard/.next/static/chunks/{b4b3fb5729bead7e.js → 6ea97c8dc9e30ea5.js} +1 -1
  308. package/dashboard/.next/standalone/dashboard/.next/static/chunks/74ea1a87751e93a3.js +1 -0
  309. package/dashboard/.next/standalone/dashboard/.next/static/chunks/910628c23329a773.js +1 -0
  310. package/dashboard/.next/standalone/dashboard/.next/static/chunks/{c288964c4c00982a.js → b308a787e8cbc2a9.js} +3 -3
  311. package/dashboard/.next/standalone/dashboard/.next/static/chunks/bdb50889a1c1ab37.js +1 -0
  312. package/dashboard/.next/standalone/dashboard/.next/static/chunks/d0bf5ccba09917dd.js +1 -0
  313. package/dashboard/.next/standalone/dashboard/.next/static/chunks/e804a1fda2839550.js +1 -0
  314. package/dashboard/.next/standalone/dashboard/server.js +1 -1
  315. package/dist/api/routes/digest.d.ts +59 -0
  316. package/dist/api/routes/digest.js +305 -0
  317. package/dist/api/routes/memories.js +84 -15
  318. package/dist/api/routes/system.js +10 -2
  319. package/dist/api/visualization-server.js +2 -0
  320. package/dist/cli/doctor.d.ts +27 -0
  321. package/dist/cli/doctor.js +88 -0
  322. package/dist/cli/migrate-legacy.d.ts +28 -0
  323. package/dist/cli/migrate-legacy.js +291 -0
  324. package/dist/cloud/cli.js +2 -2
  325. package/dist/database/init.js +26 -1
  326. package/dist/index.js +8 -1
  327. package/dist/memory/backup.d.ts +19 -0
  328. package/dist/memory/backup.js +47 -0
  329. package/dist/memory/dedupe-runner.d.ts +33 -0
  330. package/dist/memory/dedupe-runner.js +103 -0
  331. package/dist/memory/fts.d.ts +26 -0
  332. package/dist/memory/fts.js +59 -0
  333. package/dist/memory/lifecycle.d.ts +83 -0
  334. package/dist/memory/lifecycle.js +274 -0
  335. package/dist/memory/links.d.ts +63 -0
  336. package/dist/memory/links.js +232 -0
  337. package/dist/memory/prune.d.ts +34 -0
  338. package/dist/memory/prune.js +76 -0
  339. package/dist/memory/search-recall.d.ts +48 -0
  340. package/dist/memory/search-recall.js +367 -0
  341. package/dist/memory/store.d.ts +6 -121
  342. package/dist/memory/store.js +45 -854
  343. package/dist/setup/claude-md.d.ts +1 -0
  344. package/dist/setup/deep-clean.d.ts +33 -0
  345. package/dist/setup/deep-clean.js +26 -0
  346. package/dist/setup/doctor.js +7 -2
  347. package/dist/setup/openclaw.js +13 -39
  348. package/dist/setup/settings-hooks.d.ts +1 -0
  349. package/dist/setup/settings-hooks.js +30 -5
  350. package/dist/setup/status.js +39 -0
  351. package/hooks/openclaw/cortex-memory/runtime.mjs +18 -4
  352. package/package.json +1 -1
  353. package/plugins/openclaw/dist/index.js +12 -6
  354. package/plugins/openclaw/dist/openclaw.plugin.json +1 -1
  355. package/scripts/lib/auto-memory-config.mjs +45 -0
  356. package/scripts/lib/telemetry.mjs +58 -0
  357. package/scripts/lib/transcript-reader.mjs +123 -0
  358. package/scripts/postinstall.mjs +47 -1
  359. package/scripts/pre-compact-hook.mjs +76 -124
  360. package/scripts/session-end-hook.mjs +102 -97
  361. package/scripts/stop-hook.mjs +346 -116
  362. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/9f1d4_@tanstack_785e068c._.js +0 -3
  363. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__c2b92077._.js +0 -3
  364. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_11878109._.js +0 -3
  365. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_35c9f22e._.js +0 -3
  366. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_836b4a04._.js +0 -3
  367. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_9770c429._.js +0 -3
  368. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_9dd626ed._.js +0 -3
  369. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_e94d2da2._.js +0 -3
  370. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_564ea5ae._.js +0 -3
  371. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_lib_3f1490a1._.js +0 -3
  372. package/dashboard/.next/standalone/dashboard/.next/static/chunks/079a5be036130e37.js +0 -1
  373. package/dashboard/.next/standalone/dashboard/.next/static/chunks/1770a8ce7abb2437.js +0 -1
  374. package/dashboard/.next/standalone/dashboard/.next/static/chunks/1a074f8ddc7cd385.js +0 -1
  375. package/dashboard/.next/standalone/dashboard/.next/static/chunks/24da99d1341bd573.css +0 -3
  376. package/dashboard/.next/standalone/dashboard/.next/static/chunks/2aa8afb655c1c2e5.js +0 -1
  377. package/dashboard/.next/standalone/dashboard/.next/static/chunks/302ad459a0e5c4ba.js +0 -1
  378. package/dashboard/.next/standalone/dashboard/.next/static/chunks/385ec610bad1acc5.js +0 -1
  379. package/dashboard/.next/standalone/dashboard/.next/static/chunks/4f57582c2d186438.js +0 -1
  380. package/dashboard/.next/standalone/dashboard/.next/static/chunks/52843253e4b833a5.js +0 -1
  381. package/dashboard/.next/standalone/dashboard/.next/static/chunks/7fca141efba9d353.js +0 -1
  382. package/dashboard/.next/standalone/dashboard/.next/static/chunks/8593e1796c9d043d.js +0 -1
  383. package/dashboard/.next/standalone/dashboard/.next/static/chunks/cbc2e6ffcad6e91c.js +0 -1
  384. package/dashboard/.next/standalone/dashboard/.next/static/chunks/fced7dd3c9874ed1.js +0 -1
  385. package/dashboard/.next/standalone/dashboard/node_modules/@img/colour/color.cjs +0 -1594
  386. package/dashboard/.next/standalone/dashboard/node_modules/@img/colour/index.cjs +0 -1
  387. package/dashboard/.next/standalone/dashboard/node_modules/@img/colour/package.json +0 -45
  388. package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-libvips-linux-x64/README.md +0 -46
  389. package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-libvips-linux-x64/lib/glib-2.0/include/glibconfig.h +0 -221
  390. package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-libvips-linux-x64/lib/index.js +0 -1
  391. package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-libvips-linux-x64/lib/libvips-cpp.so.8.17.3 +0 -0
  392. package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-libvips-linux-x64/package.json +0 -42
  393. package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-libvips-linux-x64/versions.json +0 -30
  394. package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-libvips-linuxmusl-x64/README.md +0 -46
  395. package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/glib-2.0/include/glibconfig.h +0 -221
  396. package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +0 -1
  397. package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.17.3 +0 -0
  398. package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +0 -42
  399. package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json +0 -30
  400. package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-linux-x64/lib/sharp-linux-x64.node +0 -0
  401. package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-linux-x64/package.json +0 -46
  402. package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node +0 -0
  403. package/dashboard/.next/standalone/dashboard/node_modules/@img/sharp-linuxmusl-x64/package.json +0 -46
  404. package/dashboard/.next/standalone/dashboard/node_modules/detect-libc/lib/detect-libc.js +0 -313
  405. package/dashboard/.next/standalone/dashboard/node_modules/detect-libc/lib/elf.js +0 -39
  406. package/dashboard/.next/standalone/dashboard/node_modules/detect-libc/lib/filesystem.js +0 -51
  407. package/dashboard/.next/standalone/dashboard/node_modules/detect-libc/lib/process.js +0 -24
  408. package/dashboard/.next/standalone/dashboard/node_modules/detect-libc/package.json +0 -44
  409. package/dashboard/.next/standalone/dashboard/node_modules/sharp/lib/channel.js +0 -177
  410. package/dashboard/.next/standalone/dashboard/node_modules/sharp/lib/colour.js +0 -195
  411. package/dashboard/.next/standalone/dashboard/node_modules/sharp/lib/composite.js +0 -212
  412. package/dashboard/.next/standalone/dashboard/node_modules/sharp/lib/constructor.js +0 -499
  413. package/dashboard/.next/standalone/dashboard/node_modules/sharp/lib/index.js +0 -16
  414. package/dashboard/.next/standalone/dashboard/node_modules/sharp/lib/input.js +0 -809
  415. package/dashboard/.next/standalone/dashboard/node_modules/sharp/lib/is.js +0 -143
  416. package/dashboard/.next/standalone/dashboard/node_modules/sharp/lib/libvips.js +0 -207
  417. package/dashboard/.next/standalone/dashboard/node_modules/sharp/lib/operation.js +0 -1016
  418. package/dashboard/.next/standalone/dashboard/node_modules/sharp/lib/output.js +0 -1666
  419. package/dashboard/.next/standalone/dashboard/node_modules/sharp/lib/resize.js +0 -595
  420. package/dashboard/.next/standalone/dashboard/node_modules/sharp/lib/sharp.js +0 -121
  421. package/dashboard/.next/standalone/dashboard/node_modules/sharp/lib/utility.js +0 -291
  422. package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/classes/comparator.js +0 -143
  423. package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/classes/range.js +0 -557
  424. package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/classes/semver.js +0 -333
  425. package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/functions/cmp.js +0 -54
  426. package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/functions/coerce.js +0 -62
  427. package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/functions/compare.js +0 -7
  428. package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/functions/eq.js +0 -5
  429. package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/functions/gt.js +0 -5
  430. package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/functions/gte.js +0 -5
  431. package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/functions/lt.js +0 -5
  432. package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/functions/lte.js +0 -5
  433. package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/functions/neq.js +0 -5
  434. package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/functions/parse.js +0 -18
  435. package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/functions/satisfies.js +0 -12
  436. package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/internal/constants.js +0 -37
  437. package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/internal/debug.js +0 -11
  438. package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/internal/identifiers.js +0 -29
  439. package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/internal/lrucache.js +0 -42
  440. package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/internal/parse-options.js +0 -17
  441. package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/internal/re.js +0 -223
  442. package/dashboard/.next/standalone/dashboard/node_modules/sharp/node_modules/semver/package.json +0 -78
  443. package/dashboard/.next/standalone/dashboard/node_modules/sharp/package.json +0 -202
  444. package/dashboard/.next/standalone/node_modules/@img/colour/package.json +0 -45
  445. package/dashboard/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/package.json +0 -42
  446. package/dashboard/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +0 -42
  447. package/dashboard/.next/standalone/node_modules/@img/sharp-linux-x64/package.json +0 -46
  448. package/dashboard/.next/standalone/node_modules/@img/sharp-linuxmusl-x64/package.json +0 -46
  449. package/dashboard/.next/standalone/node_modules/detect-libc/package.json +0 -44
  450. /package/dashboard/.next/standalone/dashboard/.next/static/{ZozFsMrOVzVLH6CQW3jPr → kiA_iEHG_1wWOEYFsD0Tj}/_buildManifest.js +0 -0
  451. /package/dashboard/.next/standalone/dashboard/.next/static/{ZozFsMrOVzVLH6CQW3jPr → kiA_iEHG_1wWOEYFsD0Tj}/_clientMiddlewareManifest.json +0 -0
  452. /package/dashboard/.next/standalone/dashboard/.next/static/{ZozFsMrOVzVLH6CQW3jPr → kiA_iEHG_1wWOEYFsD0Tj}/_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(6750),i=a.i(29448),j=a.i(70694);let k=(0,j.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"}]]),l=(0,j.default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);var m=a.i(14126),n=a.i(79151),o=a.i(48195),p=a.i(67789),q=a.i(66807),r=a.i(40458),s=a.i(14220),t=a.i(86044);let u=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";function v(a){return(a.status??"active")!=="archived"&&(a.status??"active")!=="suppressed"&&!a.reviewedAt}function w(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=>v(a.memoryA)&&v(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=>v(a.memoryA)&&v(a.memoryB)),f={stale:c(a.sections.stale,a=>v(a)&&(a.decayedScore??1)<.3),neverUsed:c(a.sections.neverUsed,a=>{var b;return v(a)&&0===a.accessCount&&!!(b=a.createdAt)&&Date.now()-new Date(b).getTime()>=864e5}),lowTrust:c(a.sections.lowTrust,a=>v(a)&&(a.trustScore??1)<.7),noisyAutoExtracted:c(a.sections.noisyAutoExtracted,a=>v(a)&&("auto"===a.captureMethod||a.tags?.includes("auto-extracted"))),projectless:c(a.sections.projectless,a=>v(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 x(a){let b=a?`?project=${encodeURIComponent(a)}`:"",c=await (0,t.authFetch)(`${u}/api/review/queue${b}`);if(!c.ok)throw Error(await (0,t.readApiError)(c,"Failed to fetch review queue"));return c.json()}async function y(a){let b=await (0,t.authFetch)(`${u}/api/memories/${a.id}/review`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error(await (0,t.readApiError)(b,"Failed to update review state"));return b.json()}async function z(a){let b=await (0,t.authFetch)(`${u}/api/memories/merge`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error(await (0,t.readApiError)(b,"Failed to merge memories"));return b.json()}function A(a){return(0,r.useQuery)({queryKey:["review-queue",a],queryFn:()=>x(a),staleTime:3e4})}var B=a.i(54100),C=a.i(60210),D=a.i(23808);let E=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function F(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,t.authFetch)(`${E}/api/recall/explain?${b.toString()}`);if(!c.ok)throw Error("Failed to explain recall");return c.json()}async function G(a,b){let c=new URLSearchParams({mode:"search",query:a,limit:"8"});b&&c.set("project",b);let d=await (0,t.authFetch)(`${E}/api/memories?${c.toString()}`);if(!d.ok)throw Error("Failed to fetch memory candidates");return(await d.json()).memories}var H=a.i(68839);function I({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 J({result:a}){let[c,e]=(0,d.useState)(!1),f=a.memory;return(0,b.jsxs)(B.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)(C.Badge,{variant:"muted",children:f.category}),(0,b.jsx)(C.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)(I,{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 K(){var a;let{projectFilter:c}=(0,H.useDashboardStore)(),[e,f]=(0,d.useState)(""),[g,h]=(0,d.useState)(""),[i,j]=(0,d.useState)(""),[k,m]=(0,d.useState)(null),n=(0,q.useMutation)({mutationFn:async a=>[]}),{data:o,isLoading:p}=(a=(0,d.useMemo)(()=>g.trim()?{query:g.trim(),project:c,expectedId:k}:null,[g,c,k]),(0,r.useQuery)({queryKey:["recall-explain",a],queryFn:()=>F(a),enabled:!!a?.query?.trim(),staleTime:3e4})),{data:s=[]}=(0,r.useQuery)({queryKey:["memory-candidates",i,c],queryFn:()=>G(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)(B.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)(l,{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)(D.Button,{type:"submit",variant:"coral",size:"md",children:"Explain recall"})]})}),o&&!p&&(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)(C.Badge,{variant:"cyan",children:[o.total," result",1===o.total?"":"s"]}),(0,b.jsxs)(C.Badge,{variant:"muted",children:["avg relevance ",t.toFixed(2)]})]}),p&&(0,b.jsx)("div",{className:"py-8 text-center text-sm text-[var(--sc-text-muted)] animate-pulse",children:"Analysing recall..."}),!p&&!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"}),!p&&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."}),!p&&o&&o.results.length>0&&(0,b.jsx)("div",{className:"space-y-3",children:o.results.map(a=>(0,b.jsx)(J,{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 ${k===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)(C.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 L=a.i(74150);let M=(0,j.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 N=a.i(79155);let O=(0,j.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"}]]),P=(0,j.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"}]]),Q=(0,j.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 R=a.i(5479);let S=(0,j.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 T({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)(C.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)(D.Button,{variant:"cyan",size:"sm",disabled:e,onClick:()=>d("keep"),children:"Keep"}),(0,b.jsx)(D.Button,{variant:"coral",size:"sm",disabled:e,onClick:()=>d("suppress"),children:"Suppress"}),(0,b.jsxs)(D.Button,{variant:"ghost",size:"sm",disabled:e,onClick:()=>d("archive"),children:[(0,b.jsx)(O,{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)(D.Button,{variant:"ghost",size:"sm",disabled:e,onClick:()=>d("pin"),children:[(0,b.jsx)(R.Pin,{className:"h-3 w-3"}),a.pinned?"Unpin":"Pin"]}),(0,b.jsxs)(D.Button,{variant:"ghost",size:"sm",disabled:e,onClick:()=>d("canonical"),children:[(0,b.jsx)(S,{className:"h-3 w-3"}),"Make canonical"]}),(0,b.jsxs)(D.Button,{variant:"ghost",size:"sm",disabled:e,onClick:()=>d("global"),children:[(0,b.jsx)(Q,{className:"h-3 w-3"}),"global"===a.scope?"Project scope":"Make global"]}),(0,b.jsxs)(D.Button,{variant:"ghost",size:"sm",disabled:e,onClick:()=>d("cloudExclude"),children:[(0,b.jsx)(P,{className:"h-3 w-3"}),a.cloudExcluded?"Include in cloud":"Exclude from cloud"]})]})]})]})})]})}let U={lowTrust:"lowTrust",stale:"stale",noisyAutoExtracted:"noisyAutoExtracted",neverUsed:"neverUsed",projectless:"projectless",duplicates:null,contradictions:null},V={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"}},W=["lowTrust","stale","noisyAutoExtracted","neverUsed","projectless"];function X(){let a,c,e,f,g,{projectFilter:h,selectedMemory:i,setSelectedMemory:j,reviewFocus:k,setReviewFocus:l}=(0,H.useDashboardStore)(),{data:m,isLoading:n}=A(h),o=(a=(0,s.useQueryClient)(),(0,q.useMutation)({mutationFn:y,onSuccess:b=>{a.setQueriesData({queryKey:["review-queue"]},a=>w(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"]})}})),p=(c=(0,s.useQueryClient)(),(0,q.useMutation)({mutationFn:z,onSuccess:(a,b)=>{c.setQueriesData({queryKey:["review-queue"]},c=>{var d,e;return d=b.keptId,e=b.removedId,c?w({...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"]})}})),[r,t]=(0,d.useState)("lowTrust"),[u,v]=(0,d.useState)(0),[x,B]=(0,d.useState)(null),[C,E]=(0,d.useState)(!1),F=(0,d.useRef)(0),G=(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=U[k];a?(t(a),v(0)):"duplicates"===k?setTimeout(()=>I.current?.scrollIntoView({behavior:"smooth",block:"start"}),100):"contradictions"===k&&setTimeout(()=>G.current?.scrollIntoView({behavior:"smooth",block:"start"}),100),l(null)},[k,m,l]);let K=o.isPending||p.isPending||C,O=m?.sections[r]??[],P=O.length,Q=O[u]??null,R=m?.sections.contradictions??[],S=m?.sections.duplicates??[];(0,d.useEffect)(()=>{P>0&&u>=P&&v(P-1)},[P,u]);let X=(a,b)=>{B({kind:a,message:b}),"success"===a&&setTimeout(()=>B(null),2e3)},Y=async a=>{if(!Q||C)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 p.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")}},_=W.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)(L.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:W.map(a=>{let c=V[a],d=m?.summary[a]??0,e=r===a;return(0,b.jsxs)("button",{onClick:()=>{t(a),v(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)})}),x&&(0,b.jsx)("div",{className:`rounded-2xl border px-4 py-3 text-sm ${"error"===x.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"===x.kind&&(0,b.jsx)(L.CheckCircle2,{className:"mt-0.5 h-4 w-4 shrink-0"}),(0,b.jsx)("span",{children:x.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," · ",V[r].label," queue"]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("button",{type:"button",disabled:0===u,onClick:()=>v(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:()=>v(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:C?"sc-card-exit":"sc-card-enter",style:{transition:"opacity 200ms ease, transform 200ms ease"},children:(0,b.jsx)(T,{memory:Q,reasons:(e=[],f=V[r],e.push({label:f.reasonLabel,variant:f.reasonVariant}),g=Q.trustScore??1,"lowTrust"!==r&&g<.7&&e.push({label:`TRUST ${g.toFixed(1)}`,variant:"coral"}),"lowTrust"===r&&e.push({label:`${g.toFixed(2)}`,variant:"coral"}),("auto"===Q.captureMethod||Q.tags?.includes("auto-extracted"))&&"noisyAutoExtracted"!==r&&e.push({label:"AUTO-EXTRACTED",variant:"medium"}),e),onAction:Y,busy:K})},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 ",V[r].label.toLowerCase()," memories to review."]})}),(0,b.jsxs)("div",{ref:G,className:"glass-card-strong p-5",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(N.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)(D.Button,{variant:"cyan",size:"sm",disabled:K,onClick:()=>Z(c,e),children:"Keep this"}),(0,b.jsx)(D.Button,{variant:"ghost",size:"sm",disabled:K,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)(M,{size:16,className:"text-[var(--sc-cyan)]"}),(0,b.jsxs)("h3",{className:"text-base font-semibold text-[var(--sc-text-primary)]",children:["Duplicates (",S.length,")"]})]}),0===S.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:S.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)(D.Button,{variant:"cyan",size:"sm",disabled:K,onClick:()=>$(a.memoryA,a.memoryB),children:"Keep A"}),(0,b.jsx)(D.Button,{variant:"outline",size:"sm",disabled:K,onClick:()=>$(a.memoryB,a.memoryA),children:"Keep B"}),(0,b.jsx)(D.Button,{variant:"ghost",size:"sm",disabled:K,onClick:()=>$(c,d),children:"Merge (recommended)"})]})]},`${a.memoryA.id}-${a.memoryB.id}`)})})]})]})}var Y=a.i(94227),Z=a.i(6036),$=a.i(4335),_=a.i(78181),aa=a.i(59656),ab=d,ac=a.i(70124);function ad(a,b){if("function"==typeof a)return a(b);null!=a&&(a.current=b)}class ae extends ab.Component{getSnapshotBeforeUpdate(a){let b=this.props.childRef.current;if(b&&a.isPresent&&!this.props.isPresent){let a=b.offsetParent,c=(0,aa.isHTMLElement)(a)&&a.offsetWidth||0,d=(0,aa.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 af({children:a,isPresent:c,anchorX:e,anchorY:f,root:g}){let h=(0,ab.useId)(),i=(0,ab.useRef)(null),j=(0,ab.useRef)({width:0,height:0,top:0,left:0,right:0,bottom:0}),{nonce:k}=(0,ab.useContext)(ac.MotionConfigContext),l=function(...a){return d.useCallback(function(...a){return b=>{let c=!1,d=a.map(a=>{let d=ad(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():ad(a[b],null)}}}}(...a),a)}(i,a.props?.ref??a?.ref);return(0,ab.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(6750),i=a.i(29448),j=a.i(70694);let k=(0,j.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"}]]);var l=a.i(91030),m=a.i(14126),n=a.i(79151),o=a.i(48195),p=a.i(67789),q=a.i(66807),r=a.i(40458),s=a.i(14220),t=a.i(86044);let u=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";function v(a){return(a.status??"active")!=="archived"&&(a.status??"active")!=="suppressed"&&!a.reviewedAt}function w(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=>v(a.memoryA)&&v(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=>v(a.memoryA)&&v(a.memoryB)),f={stale:c(a.sections.stale,a=>v(a)&&(a.decayedScore??1)<.3),neverUsed:c(a.sections.neverUsed,a=>{var b;return v(a)&&0===a.accessCount&&!!(b=a.createdAt)&&Date.now()-new Date(b).getTime()>=864e5}),lowTrust:c(a.sections.lowTrust,a=>v(a)&&(a.trustScore??1)<.7),noisyAutoExtracted:c(a.sections.noisyAutoExtracted,a=>v(a)&&("auto"===a.captureMethod||a.tags?.includes("auto-extracted"))),projectless:c(a.sections.projectless,a=>v(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 x(a){let b=a?`?project=${encodeURIComponent(a)}`:"",c=await (0,t.authFetch)(`${u}/api/review/queue${b}`);if(!c.ok)throw Error(await (0,t.readApiError)(c,"Failed to fetch review queue"));return c.json()}async function y(a){let b=await (0,t.authFetch)(`${u}/api/memories/${a.id}/review`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error(await (0,t.readApiError)(b,"Failed to update review state"));return b.json()}async function z(a){let b=await (0,t.authFetch)(`${u}/api/memories/merge`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error(await (0,t.readApiError)(b,"Failed to merge memories"));return b.json()}function A(a){return(0,r.useQuery)({queryKey:["review-queue",a],queryFn:()=>x(a),staleTime:3e4})}var B=a.i(54100),C=a.i(60210),D=a.i(23808);let E=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function F(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,t.authFetch)(`${E}/api/recall/explain?${b.toString()}`);if(!c.ok)throw Error("Failed to explain recall");return c.json()}async function G(a,b){let c=new URLSearchParams({mode:"search",query:a,limit:"8"});b&&c.set("project",b);let d=await (0,t.authFetch)(`${E}/api/memories?${c.toString()}`);if(!d.ok)throw Error("Failed to fetch memory candidates");return(await d.json()).memories}var H=a.i(68839);function I({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 J({result:a}){let[c,e]=(0,d.useState)(!1),f=a.memory;return(0,b.jsxs)(B.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)(C.Badge,{variant:"muted",children:f.category}),(0,b.jsx)(C.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)(I,{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 K(){var a;let{projectFilter:c}=(0,H.useDashboardStore)(),[e,f]=(0,d.useState)(""),[g,h]=(0,d.useState)(""),[i,j]=(0,d.useState)(""),[k,m]=(0,d.useState)(null),n=(0,q.useMutation)({mutationFn:async a=>[]}),{data:o,isLoading:p}=(a=(0,d.useMemo)(()=>g.trim()?{query:g.trim(),project:c,expectedId:k}:null,[g,c,k]),(0,r.useQuery)({queryKey:["recall-explain",a],queryFn:()=>F(a),enabled:!!a?.query?.trim(),staleTime:3e4})),{data:s=[]}=(0,r.useQuery)({queryKey:["memory-candidates",i,c],queryFn:()=>G(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)(B.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)(l.Search,{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)(D.Button,{type:"submit",variant:"coral",size:"md",children:"Explain recall"})]})}),o&&!p&&(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)(C.Badge,{variant:"cyan",children:[o.total," result",1===o.total?"":"s"]}),(0,b.jsxs)(C.Badge,{variant:"muted",children:["avg relevance ",t.toFixed(2)]})]}),p&&(0,b.jsx)("div",{className:"py-8 text-center text-sm text-[var(--sc-text-muted)] animate-pulse",children:"Analysing recall..."}),!p&&!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"}),!p&&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."}),!p&&o&&o.results.length>0&&(0,b.jsx)("div",{className:"space-y-3",children:o.results.map(a=>(0,b.jsx)(J,{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 ${k===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)(C.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 L=a.i(74150);let M=(0,j.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 N=a.i(79155);let O=(0,j.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"}]]),P=(0,j.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"}]]),Q=(0,j.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 R=a.i(5479);let S=(0,j.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 T({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)(C.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)(D.Button,{variant:"cyan",size:"sm",disabled:e,onClick:()=>d("keep"),children:"Keep"}),(0,b.jsx)(D.Button,{variant:"coral",size:"sm",disabled:e,onClick:()=>d("suppress"),children:"Suppress"}),(0,b.jsxs)(D.Button,{variant:"ghost",size:"sm",disabled:e,onClick:()=>d("archive"),children:[(0,b.jsx)(O,{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)(D.Button,{variant:"ghost",size:"sm",disabled:e,onClick:()=>d("pin"),children:[(0,b.jsx)(R.Pin,{className:"h-3 w-3"}),a.pinned?"Unpin":"Pin"]}),(0,b.jsxs)(D.Button,{variant:"ghost",size:"sm",disabled:e,onClick:()=>d("canonical"),children:[(0,b.jsx)(S,{className:"h-3 w-3"}),"Make canonical"]}),(0,b.jsxs)(D.Button,{variant:"ghost",size:"sm",disabled:e,onClick:()=>d("global"),children:[(0,b.jsx)(Q,{className:"h-3 w-3"}),"global"===a.scope?"Project scope":"Make global"]}),(0,b.jsxs)(D.Button,{variant:"ghost",size:"sm",disabled:e,onClick:()=>d("cloudExclude"),children:[(0,b.jsx)(P,{className:"h-3 w-3"}),a.cloudExcluded?"Include in cloud":"Exclude from cloud"]})]})]})]})})]})}let U={lowTrust:"lowTrust",stale:"stale",noisyAutoExtracted:"noisyAutoExtracted",neverUsed:"neverUsed",projectless:"projectless",duplicates:null,contradictions:null},V={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"}},W=["lowTrust","stale","noisyAutoExtracted","neverUsed","projectless"];function X(){let a,c,e,f,g,{projectFilter:h,selectedMemory:i,setSelectedMemory:j,reviewFocus:k,setReviewFocus:l}=(0,H.useDashboardStore)(),{data:m,isLoading:n}=A(h),o=(a=(0,s.useQueryClient)(),(0,q.useMutation)({mutationFn:y,onSuccess:b=>{a.setQueriesData({queryKey:["review-queue"]},a=>w(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"]})}})),p=(c=(0,s.useQueryClient)(),(0,q.useMutation)({mutationFn:z,onSuccess:(a,b)=>{c.setQueriesData({queryKey:["review-queue"]},c=>{var d,e;return d=b.keptId,e=b.removedId,c?w({...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"]})}})),[r,t]=(0,d.useState)("lowTrust"),[u,v]=(0,d.useState)(0),[x,B]=(0,d.useState)(null),[C,E]=(0,d.useState)(!1),F=(0,d.useRef)(0),G=(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=U[k];a?(t(a),v(0)):"duplicates"===k?setTimeout(()=>I.current?.scrollIntoView({behavior:"smooth",block:"start"}),100):"contradictions"===k&&setTimeout(()=>G.current?.scrollIntoView({behavior:"smooth",block:"start"}),100),l(null)},[k,m,l]);let K=o.isPending||p.isPending||C,O=m?.sections[r]??[],P=O.length,Q=O[u]??null,R=m?.sections.contradictions??[],S=m?.sections.duplicates??[];(0,d.useEffect)(()=>{P>0&&u>=P&&v(P-1)},[P,u]);let X=(a,b)=>{B({kind:a,message:b}),"success"===a&&setTimeout(()=>B(null),2e3)},Y=async a=>{if(!Q||C)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 p.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")}},_=W.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)(L.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:W.map(a=>{let c=V[a],d=m?.summary[a]??0,e=r===a;return(0,b.jsxs)("button",{onClick:()=>{t(a),v(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)})}),x&&(0,b.jsx)("div",{className:`rounded-2xl border px-4 py-3 text-sm ${"error"===x.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"===x.kind&&(0,b.jsx)(L.CheckCircle2,{className:"mt-0.5 h-4 w-4 shrink-0"}),(0,b.jsx)("span",{children:x.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," · ",V[r].label," queue"]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("button",{type:"button",disabled:0===u,onClick:()=>v(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:()=>v(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:C?"sc-card-exit":"sc-card-enter",style:{transition:"opacity 200ms ease, transform 200ms ease"},children:(0,b.jsx)(T,{memory:Q,reasons:(e=[],f=V[r],e.push({label:f.reasonLabel,variant:f.reasonVariant}),g=Q.trustScore??1,"lowTrust"!==r&&g<.7&&e.push({label:`TRUST ${g.toFixed(1)}`,variant:"coral"}),"lowTrust"===r&&e.push({label:`${g.toFixed(2)}`,variant:"coral"}),("auto"===Q.captureMethod||Q.tags?.includes("auto-extracted"))&&"noisyAutoExtracted"!==r&&e.push({label:"AUTO-EXTRACTED",variant:"medium"}),e),onAction:Y,busy:K})},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 ",V[r].label.toLowerCase()," memories to review."]})}),(0,b.jsxs)("div",{ref:G,className:"glass-card-strong p-5",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(N.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)(D.Button,{variant:"cyan",size:"sm",disabled:K,onClick:()=>Z(c,e),children:"Keep this"}),(0,b.jsx)(D.Button,{variant:"ghost",size:"sm",disabled:K,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)(M,{size:16,className:"text-[var(--sc-cyan)]"}),(0,b.jsxs)("h3",{className:"text-base font-semibold text-[var(--sc-text-primary)]",children:["Duplicates (",S.length,")"]})]}),0===S.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:S.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)(D.Button,{variant:"cyan",size:"sm",disabled:K,onClick:()=>$(a.memoryA,a.memoryB),children:"Keep A"}),(0,b.jsx)(D.Button,{variant:"outline",size:"sm",disabled:K,onClick:()=>$(a.memoryB,a.memoryA),children:"Keep B"}),(0,b.jsx)(D.Button,{variant:"ghost",size:"sm",disabled:K,onClick:()=>$(c,d),children:"Merge (recommended)"})]})]},`${a.memoryA.id}-${a.memoryB.id}`)})})]})]})}var Y=a.i(94227),Z=a.i(6036),$=a.i(4335),_=a.i(78181),aa=a.i(59656),ab=d,ac=a.i(70124);function ad(a,b){if("function"==typeof a)return a(b);null!=a&&(a.current=b)}class ae extends ab.Component{getSnapshotBeforeUpdate(a){let b=this.props.childRef.current;if(b&&a.isPresent&&!this.props.isPresent){let a=b.offsetParent,c=(0,aa.isHTMLElement)(a)&&a.offsetWidth||0,d=(0,aa.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 af({children:a,isPresent:c,anchorX:e,anchorY:f,root:g}){let h=(0,ab.useId)(),i=(0,ab.useRef)(null),j=(0,ab.useRef)({width:0,height:0,top:0,left:0,right:0,bottom:0}),{nonce:k}=(0,ab.useContext)(ac.MotionConfigContext),l=function(...a){return d.useCallback(function(...a){return b=>{let c=!1,d=a.map(a=>{let d=ad(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():ad(a[b],null)}}}}(...a),a)}(i,a.props?.ref??a?.ref);return(0,ab.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,12 +6,12 @@ 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)(ae,{isPresent:c,childRef:i,sizeRef:j,children:ab.cloneElement(a,{ref:l})})}let ag=({children:a,initial:c,isPresent:e,onExitComplete:f,custom:g,presenceAffectsLayout:h,mode:i,anchorX:j,anchorY:k,root:l})=>{let m=(0,Z.useConstant)(ah),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)(af,{isPresent:e,anchorX:j,anchorY:k,root:l,children:a})),(0,b.jsx)(_.PresenceContext.Provider,{value:p,children:a})};function ah(){return new Map}var ai=a.i(7084);let aj=a=>a.key||"";function ak(a){let b=[];return d.Children.forEach(a,a=>{(0,d.isValidElement)(a)&&b.push(a)}),b}let al=({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,ai.usePresence)(i),o=(0,d.useMemo)(()=>ak(a),[a]),p=i&&!m?[]:o.map(aj),q=(0,d.useRef)(!0),r=(0,d.useRef)(o),s=(0,Z.useConstant)(()=>new Map),t=(0,d.useRef)(new Set),[u,v]=(0,d.useState)(o),[w,x]=(0,d.useState)(o);(0,$.useIsomorphicLayoutEffect)(()=>{q.current=!1,r.current=o;for(let a=0;a<w.length;a++){let b=aj(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=aj(c);p.includes(d)||(a.splice(b,0,c),y.push(c))}return"wait"===h&&y.length&&(a=y),x(ak(a)),v(o),null}let{forceRender:z}=(0,d.useContext)(Y.LayoutGroupContext);return(0,b.jsx)(b.Fragment,{children:w.map(a=>{let d=aj(a),u=(!i||!!m)&&(o===w||p.includes(d));return(0,b.jsx)(ag,{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 am=a.i(97826);function an({session:a,expanded:c,onToggle:d}){let e=a.models[0]||"model unknown";return(0,b.jsxs)(B.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)(C.Badge,{variant:"muted",children:["Saved: ",a.saved]}),(0,b.jsxs)(C.Badge,{variant:"muted",children:["Skipped: ",a.skipped]}),(0,b.jsxs)(C.Badge,{variant:a.threats>0?"coral":"muted",children:["Threats: ",a.threats]}),a.autoExtracted>0&&(0,b.jsxs)(C.Badge,{variant:"muted",children:["Auto: ",a.autoExtracted]}),a.quarantined>0&&(0,b.jsxs)(C.Badge,{variant:"amber",children:["Quarantined: ",a.quarantined]})]})]}),(0,b.jsx)(al,{children:c&&a.memories.length>0&&(0,b.jsx)(am.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)(C.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 ao={architecture:"#FFD700",pattern:"#FFB347",preference:"#FFA500",error:"#FF6B6B",context:"#FFC080",learning:"#FFE4B5",todo:"#FF8C00",note:"#FFCC66",relationship:"#00D4FF",custom:"#FFB347"},ap={short_term:"#FFD700",episodic:"#FFB347",long_term:"#FF8C00"};function aq(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 ar({memory:a,isSelected:c,onSelect:d,isChecked:e,onCheck:f}){let g=ao[a.category]||ao.custom,h=ap[a.type]||ap.short_term;return(0,b.jsxs)("div",{onClick:()=>d(a),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),d(a))},role:"button",tabIndex:0,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 ",aq(a.createdAt)]}),(0,b.jsxs)("span",{children:["Accessed ",aq(a.lastAccessed)]})]})]})}let as=(0,j.default)("circle-arrow-up",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 12-4-4-4 4",key:"177agl"}],["path",{d:"M12 16V8",key:"1sbj14"}]]),at=(0,j.default)("file-scan",[["path",{d:"M20 10V8a2.4 2.4 0 0 0-.706-1.704l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4.35",key:"1cdjst"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M16 14a2 2 0 0 0-2 2",key:"ceaadl"}],["path",{d:"M16 22a2 2 0 0 1-2-2",key:"1wqh5n"}],["path",{d:"M20 14a2 2 0 0 1 2 2",key:"1ny6zw"}],["path",{d:"M20 22a2 2 0 0 0 2-2",key:"1l9q4k"}]]);var au=a.i(6321),av=a.i(95480),aw=a.i(83364),ax=a.i(49948),ay=a.i(91321);let az=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";function aA(a){return a?new Date(a).toLocaleString():"Not set"}function aB(a){return`${Math.round((a??0)*100)}%`}async function aC(a){let b=await (0,t.authFetch)(`${az}/api/v1/scan`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:a.title,content:`Title: ${a.title}
9
+ `),()=>{r.contains(q)&&r.removeChild(q)}},[c]),(0,b.jsx)(ae,{isPresent:c,childRef:i,sizeRef:j,children:ab.cloneElement(a,{ref:l})})}let ag=({children:a,initial:c,isPresent:e,onExitComplete:f,custom:g,presenceAffectsLayout:h,mode:i,anchorX:j,anchorY:k,root:l})=>{let m=(0,Z.useConstant)(ah),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)(af,{isPresent:e,anchorX:j,anchorY:k,root:l,children:a})),(0,b.jsx)(_.PresenceContext.Provider,{value:p,children:a})};function ah(){return new Map}var ai=a.i(7084);let aj=a=>a.key||"";function ak(a){let b=[];return d.Children.forEach(a,a=>{(0,d.isValidElement)(a)&&b.push(a)}),b}let al=({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,ai.usePresence)(i),o=(0,d.useMemo)(()=>ak(a),[a]),p=i&&!m?[]:o.map(aj),q=(0,d.useRef)(!0),r=(0,d.useRef)(o),s=(0,Z.useConstant)(()=>new Map),t=(0,d.useRef)(new Set),[u,v]=(0,d.useState)(o),[w,x]=(0,d.useState)(o);(0,$.useIsomorphicLayoutEffect)(()=>{q.current=!1,r.current=o;for(let a=0;a<w.length;a++){let b=aj(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=aj(c);p.includes(d)||(a.splice(b,0,c),y.push(c))}return"wait"===h&&y.length&&(a=y),x(ak(a)),v(o),null}let{forceRender:z}=(0,d.useContext)(Y.LayoutGroupContext);return(0,b.jsx)(b.Fragment,{children:w.map(a=>{let d=aj(a),u=(!i||!!m)&&(o===w||p.includes(d));return(0,b.jsx)(ag,{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 am=a.i(97826);function an({session:a,expanded:c,onToggle:d}){let e=a.models[0]||"model unknown";return(0,b.jsxs)(B.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)(C.Badge,{variant:"muted",children:["Saved: ",a.saved]}),(0,b.jsxs)(C.Badge,{variant:"muted",children:["Skipped: ",a.skipped]}),(0,b.jsxs)(C.Badge,{variant:a.threats>0?"coral":"muted",children:["Threats: ",a.threats]}),a.autoExtracted>0&&(0,b.jsxs)(C.Badge,{variant:"muted",children:["Auto: ",a.autoExtracted]}),a.quarantined>0&&(0,b.jsxs)(C.Badge,{variant:"amber",children:["Quarantined: ",a.quarantined]})]})]}),(0,b.jsx)(al,{children:c&&a.memories.length>0&&(0,b.jsx)(am.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)(C.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 ao={architecture:"#FFD700",pattern:"#FFB347",preference:"#FFA500",error:"#FF6B6B",context:"#FFC080",learning:"#FFE4B5",todo:"#FF8C00",note:"#FFCC66",relationship:"#00D4FF",custom:"#FFB347"},ap={short_term:"#FFD700",episodic:"#FFB347",long_term:"#FF8C00"};function aq(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 ar({memory:a,isSelected:c,onSelect:d,isChecked:e,onCheck:f}){let g=ao[a.category]||ao.custom,h=ap[a.type]||ap.short_term;return(0,b.jsxs)("div",{onClick:()=>d(a),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),d(a))},role:"button",tabIndex:0,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 ",aq(a.createdAt)]}),(0,b.jsxs)("span",{children:["Accessed ",aq(a.lastAccessed)]})]})]})}let as=(0,j.default)("circle-arrow-up",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 12-4-4-4 4",key:"177agl"}],["path",{d:"M12 16V8",key:"1sbj14"}]]);var at=a.i(25605);let au=(0,j.default)("file-scan",[["path",{d:"M20 10V8a2.4 2.4 0 0 0-.706-1.704l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4.35",key:"1cdjst"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M16 14a2 2 0 0 0-2 2",key:"ceaadl"}],["path",{d:"M16 22a2 2 0 0 1-2-2",key:"1wqh5n"}],["path",{d:"M20 14a2 2 0 0 1 2 2",key:"1ny6zw"}],["path",{d:"M20 22a2 2 0 0 0 2-2",key:"1l9q4k"}]]);var av=a.i(6321),aw=a.i(95480),ax=a.i(83364),ay=a.i(49948),az=a.i(68760),aA=a.i(91321);let aB=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";function aC(a){return a?new Date(a).toLocaleString():"Not set"}function aD(a){return`${Math.round((a??0)*100)}%`}async function aE(a){let b=await (0,t.authFetch)(`${aB}/api/v1/scan`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:a.title,content:`Title: ${a.title}
10
10
 
11
11
  Content:
12
- ${a.content}`,source:{type:"api",identifier:`dashboard:memory:${a.id}`}})});if(!b.ok)throw Error(await (0,t.readApiError)(b,"Failed to scan memory"));return b.json()}function aD({result:a}){let c="ALLOW"===a.firewall.result?"SAFE":a.firewall.result,d=a.firewall.threatIndicators??[];return(0,b.jsxs)("div",{className:"rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/70 p-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(C.Badge,{variant:(0,C.riskVariant)(c),children:c}),(0,b.jsxs)(C.Badge,{variant:"muted",children:["anomaly ",a.firewall.anomalyScore.toFixed(2)]}),(0,b.jsxs)(C.Badge,{variant:"muted",children:["trust ",a.trust.score.toFixed(2)]}),(0,b.jsx)(C.Badge,{variant:a.sensitivity.redactionRequired?"amber":"muted",children:a.sensitivity.level})]}),(0,b.jsx)("p",{className:"mt-3 text-sm text-[var(--sc-text-primary)]",children:a.firewall.reason}),d.length>0&&(0,b.jsx)("div",{className:"mt-3 flex flex-wrap gap-1.5",children:d.map(a=>(0,b.jsx)("span",{className:"rounded bg-[var(--sc-bg-elevated)] px-2 py-1 text-[11px] text-[var(--sc-text-secondary)]",children:a},a))}),a.firewall.blockedPatterns.length>0&&(0,b.jsx)("div",{className:"mt-3 rounded border border-[var(--sc-coral)]/30 bg-[var(--sc-coral)]/10 p-2 text-xs text-[var(--sc-coral)]",children:a.firewall.blockedPatterns.join(", ")})]})}function aE({memory:a,onClose:c}){let[e,f]=(0,d.useState)(null),h=(0,p.useAccessMemory)(),i=(0,p.usePromoteMemory)(),j=(0,p.useDeleteMemory)(),k=(0,p.useQuarantineMemory)(),l=(0,ay.useLocalAiExplain)(),n=(0,q.useMutation)({mutationFn:()=>aC(a)}),o=(0,d.useMemo)(()=>a.tags??[],[a.tags]),r=h.isPending||i.isPending||j.isPending||k.isPending||l.isPending||n.isPending;return(0,d.useEffect)(()=>{let a=a=>{"Escape"===a.key&&c()};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[c]),(0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/70 p-4 backdrop-blur-sm",role:"dialog","aria-modal":"true","aria-labelledby":"memory-detail-title",onMouseDown:a=>{a.target===a.currentTarget&&c()},children:(0,b.jsxs)("div",{className:"flex max-h-[90vh] w-full max-w-3xl flex-col overflow-hidden rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-surface)] shadow-2xl",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-4 border-b border-[var(--sc-border)] p-5",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(C.Badge,{variant:"cyan",children:a.category}),(0,b.jsx)(C.Badge,{variant:"muted",children:a.type.replace("_","-")}),(0,b.jsx)(C.Badge,{variant:a.status&&"active"!==a.status?"amber":"safe",children:a.status??"active"})]}),(0,b.jsx)("h2",{id:"memory-detail-title",className:"mt-3 text-lg font-semibold text-[var(--sc-text-primary)]",children:a.title}),(0,b.jsx)("p",{className:"mt-1 text-sm text-[var(--sc-text-secondary)]",children:a.project||"Global memory"})]}),(0,b.jsx)("button",{onClick:c,className:"rounded-lg p-2 text-[var(--sc-text-muted)] transition-colors hover:bg-[var(--sc-bg-elevated)] hover:text-[var(--sc-text-primary)]","aria-label":"Close memory detail",type:"button",children:(0,b.jsx)(av.X,{size:18})})]}),(0,b.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto p-5",children:(0,b.jsxs)("div",{className:"grid gap-4 lg:grid-cols-[1.5fr_1fr]",children:[(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("section",{children:[(0,b.jsx)("h3",{className:"text-xs font-semibold uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Content"}),(0,b.jsx)("pre",{className:"mt-2 max-h-72 overflow-auto whitespace-pre-wrap break-words rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/70 p-3 font-sans text-sm leading-6 text-[var(--sc-text-primary)]",children:a.content})]}),l.data?.explanation&&(0,b.jsx)(ax.LocalAiExplanationPanel,{explanation:l.data.explanation}),l.error&&(0,b.jsx)("div",{className:"rounded-lg border border-[var(--sc-coral)]/30 bg-[var(--sc-coral)]/10 p-3 text-sm text-[var(--sc-coral)]",children:l.error instanceof Error?l.error.message:"Local explanation failed"}),n.data&&(0,b.jsx)(aD,{result:n.data}),n.error&&(0,b.jsx)("div",{className:"rounded-lg border border-[var(--sc-coral)]/30 bg-[var(--sc-coral)]/10 p-3 text-sm text-[var(--sc-coral)]",children:n.error instanceof Error?n.error.message:"Memory scan failed"})]}),(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("section",{className:"rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/50 p-3",children:[(0,b.jsx)("h3",{className:"text-xs font-semibold uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Health"}),(0,b.jsxs)("div",{className:"mt-3 grid grid-cols-2 gap-3 text-sm",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-[var(--sc-text-muted)]",children:"Salience"}),(0,b.jsx)("div",{className:"font-semibold text-[var(--sc-text-primary)]",children:aB(a.salience)})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-[var(--sc-text-muted)]",children:"Decay"}),(0,b.jsx)("div",{className:"font-semibold text-[var(--sc-text-primary)]",children:aB(a.decayedScore??a.salience)})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-[var(--sc-text-muted)]",children:"Trust"}),(0,b.jsx)("div",{className:"font-semibold text-[var(--sc-text-primary)]",children:(a.trustScore??1).toFixed(2)})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-[var(--sc-text-muted)]",children:"Accesses"}),(0,b.jsx)("div",{className:"font-semibold text-[var(--sc-text-primary)]",children:a.accessCount})]})]})]}),(0,b.jsxs)("section",{className:"rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/50 p-3",children:[(0,b.jsx)("h3",{className:"text-xs font-semibold uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Provenance"}),(0,b.jsxs)("dl",{className:"mt-3 space-y-2 text-sm",children:[(0,b.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,b.jsx)("dt",{className:"text-[var(--sc-text-muted)]",children:"Source"}),(0,b.jsx)("dd",{className:"text-right text-[var(--sc-text-primary)]",children:a.sourceKind||"user"})]}),(0,b.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,b.jsx)("dt",{className:"text-[var(--sc-text-muted)]",children:"Capture"}),(0,b.jsx)("dd",{className:"text-right text-[var(--sc-text-primary)]",children:a.captureMethod||"manual"})]}),(0,b.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,b.jsx)("dt",{className:"text-[var(--sc-text-muted)]",children:"Created"}),(0,b.jsx)("dd",{className:"text-right text-[var(--sc-text-primary)]",children:aA(a.createdAt)})]}),(0,b.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,b.jsx)("dt",{className:"text-[var(--sc-text-muted)]",children:"Updated"}),(0,b.jsx)("dd",{className:"text-right text-[var(--sc-text-primary)]",children:aA(a.updatedAt)})]}),(0,b.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,b.jsx)("dt",{className:"text-[var(--sc-text-muted)]",children:"Sensitivity"}),(0,b.jsx)("dd",{className:"text-right text-[var(--sc-text-primary)]",children:a.sensitivityLevel||"INTERNAL"})]}),(0,b.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,b.jsx)("dt",{className:"text-[var(--sc-text-muted)]",children:"Cloud"}),(0,b.jsx)("dd",{className:"text-right text-[var(--sc-text-primary)]",children:a.cloudExcluded?"Excluded":"Eligible"})]})]})]}),o.length>0&&(0,b.jsxs)("section",{className:"rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/50 p-3",children:[(0,b.jsx)("h3",{className:"text-xs font-semibold uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Tags"}),(0,b.jsx)("div",{className:"mt-3 flex flex-wrap gap-1.5",children:o.map(a=>(0,b.jsx)("span",{className:"rounded bg-[var(--sc-bg-elevated)] px-2 py-1 text-xs text-[var(--sc-text-secondary)]",children:a},a))})]})]})]})}),(0,b.jsxs)("div",{className:"border-t border-[var(--sc-border)] p-4",children:[e&&(0,b.jsx)("div",{className:"mb-3 rounded-lg border border-[var(--sc-coral)]/30 bg-[var(--sc-coral)]/10 p-3",children:(0,b.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,b.jsx)("p",{className:"text-sm text-[var(--sc-coral)]",children:"delete"===e?"Delete this memory permanently?":"Move this memory to quarantine for manual review?"}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(D.Button,{size:"sm",variant:"outline",onClick:()=>f(null),disabled:r,children:"Cancel"}),(0,b.jsx)(D.Button,{size:"sm",variant:"coral",onClick:"delete"===e?()=>{j.mutate(a.id,{onSuccess:()=>{aw.toast.success("Memory deleted"),c()},onError:a=>aw.toast.error(a instanceof Error?a.message:"Failed to delete memory")})}:()=>{k.mutate({id:a.id,reason:"Quarantined from memory detail modal"},{onSuccess:()=>{aw.toast.warning("Memory moved to quarantine"),c()},onError:a=>aw.toast.error(a instanceof Error?a.message:"Failed to quarantine memory")})},disabled:r,children:"delete"===e?"Delete":"Quarantine"})]})]})}),(0,b.jsxs)("div",{className:"flex flex-wrap justify-end gap-2",children:[(0,b.jsxs)(D.Button,{variant:"outline",size:"sm",onClick:()=>{f(null),l.mutate({kind:"memory",title:a.title,content:a.content,project:a.project,source:`${a.sourceKind??"user"}${a.source?`:${a.source}`:""}`,signals:[a.category,a.type,a.status??"active",a.sensitivityLevel??"INTERNAL",...o],metadata:{id:a.id,uuid:a.uuid,trustScore:a.trustScore,salience:a.salience,decayedScore:a.decayedScore,captureMethod:a.captureMethod,accessCount:a.accessCount,cloudExcluded:a.cloudExcluded}},{onSuccess:a=>{aw.toast.success(a.explanation.synthetic?"Fallback explanation generated":"Local explanation generated")},onError:a=>aw.toast.error(a instanceof Error?a.message:"Local explanation failed")})},disabled:r,children:[(0,b.jsx)(m.Sparkles,{size:14}),l.isPending?"Explaining":"Explain"]}),(0,b.jsxs)(D.Button,{variant:"outline",size:"sm",onClick:()=>{f(null),n.mutate(void 0,{onSuccess:a=>{"ALLOW"===a.firewall.result?aw.toast.success("Memory scan passed"):aw.toast.warning(`Memory scan returned ${a.firewall.result.toLowerCase()}`)},onError:a=>aw.toast.error(a instanceof Error?a.message:"Memory scan failed")})},disabled:r,children:[(0,b.jsx)(at,{size:14}),n.isPending?"Scanning":"Scan"]}),(0,b.jsxs)(D.Button,{variant:"outline",size:"sm",onClick:()=>{f(null),h.mutate(a.id,{onSuccess:()=>aw.toast.success("Memory reinforced"),onError:a=>aw.toast.error(a instanceof Error?a.message:"Failed to reinforce memory")})},disabled:r,children:[(0,b.jsx)(g.Database,{size:14}),h.isPending?"Reinforcing":"Reinforce"]}),"short_term"===a.type&&(0,b.jsxs)(D.Button,{variant:"outline",size:"sm",onClick:()=>{f(null),i.mutate(a.id,{onSuccess:()=>aw.toast.success("Memory promoted to long-term"),onError:a=>aw.toast.error(a instanceof Error?a.message:"Failed to promote memory")})},disabled:r,children:[(0,b.jsx)(as,{size:14}),i.isPending?"Promoting":"Promote"]}),(0,b.jsxs)(D.Button,{variant:"outline",size:"sm",onClick:()=>f("quarantine"===e?null:"quarantine"),disabled:r,children:[(0,b.jsx)(N.ShieldAlert,{size:14}),"Quarantine"]}),(0,b.jsxs)(D.Button,{variant:"coral",size:"sm",onClick:()=>f("delete"===e?null:"delete"),disabled:r,children:[(0,b.jsx)(au.Trash2,{size:14}),"Delete"]})]})]})]})})}function aF(){let[a,c]=(0,d.useState)("all"),[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:o}=(0,H.useDashboardStore)(),{data:q}=(0,p.useOpenClawSessions)(),{data:r=[]}=(0,p.useMemoriesWithRealtime)({limit:1e3,project:m||void 0,type:n||void 0,category:o||void 0,mode:g?"search":"recent",query:g||void 0});(0,p.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)(B.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)(an,{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)(B.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)(ar,{memory:a,isSelected:k?.id===a.id,onSelect:v},a.id))]}),k&&(0,b.jsx)(aE,{memory:k,onClose:()=>v(null)})]})}var aG=a.i(47520);let aH=(0,j.default)("clock",[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);var aI=a.i(84692);let aJ=(0,j.default)("scan-line",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}],["path",{d:"M7 12h10",key:"b7w52i"}]]);var aK=a.i(73038);let aL=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function aM(){let a=await (0,t.gatedFetch)(`${aL}/api/v1/memory-files/scan`,{method:"POST",headers:{"Content-Type":"application/json"}});if(!a.ok)throw Error(await (0,t.readApiError)(a,"Failed to scan memory files"));return a.json()}function aN(a){return a?new Date(a).toLocaleString():"Unknown"}function aO(a){return a.split(/[\\/]/).filter(Boolean).pop()??a}function aP({file:a,isActive:c,explaining:d,explanation:e,explainError:f,onExplain:g}){var i;let j="SAFE"!==a.risk&&"LOW"!==a.risk,k=(0,C.riskVariant)(a.risk),l=a.risk.toLowerCase();return(0,b.jsxs)(B.GlassCard,{className:`p-4 ${j?"":"opacity-80"}`,severity:j?l:void 0,children:[(0,b.jsxs)("div",{className:"flex flex-col gap-3 lg:flex-row lg:items-start lg:justify-between",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(C.Badge,{variant:k,dot:j,children:a.risk}),(0,b.jsx)(C.Badge,{variant:"ALLOW"===a.firewallResult?"muted":"amber",children:a.firewallResult}),(0,b.jsx)(C.Badge,{variant:"muted",children:a.source})]}),(0,b.jsxs)("div",{className:"mt-3 flex min-w-0 items-start gap-2",children:[(0,b.jsx)(h.FileText,{size:16,className:"mt-0.5 shrink-0 text-[var(--sc-cyan)]"}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("h3",{className:"truncate text-sm font-semibold text-[var(--sc-text-primary)]",children:aO(a.path)}),(0,b.jsx)("p",{className:"mt-1 break-all text-xs text-[var(--sc-text-muted)]",children:a.path})]})]})]}),(0,b.jsxs)("div",{className:"flex shrink-0 flex-wrap items-center gap-2 text-xs text-[var(--sc-text-muted)]",children:[(0,b.jsx)("span",{children:(i=a.sizeBytes)<1024?`${i} B`:i<1048576?`${(i/1024).toFixed(1)} KB`:`${(i/1048576).toFixed(1)} MB`}),(0,b.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,b.jsx)(aH,{size:12}),aN(a.modifiedAt)]}),(0,b.jsxs)(D.Button,{variant:"outline",size:"sm",onClick:()=>g(a),disabled:d,children:[d?(0,b.jsx)(aI.Loader2,{size:13,className:"animate-spin"}):(0,b.jsx)(m.Sparkles,{size:13}),d?"Explaining":"Explain"]})]})]}),(0,b.jsx)("p",{className:"mt-4 text-sm leading-6 text-[var(--sc-text-secondary)]",children:a.reason}),a.threatIndicators.length>0&&(0,b.jsx)("div",{className:"mt-3 flex flex-wrap gap-1.5",children:a.threatIndicators.map(a=>(0,b.jsx)("span",{className:"rounded bg-[var(--sc-bg-elevated)] px-2 py-1 text-[11px] text-[var(--sc-text-secondary)]",children:a},a))}),a.evidence.length>0&&(0,b.jsx)("div",{className:"mt-4 space-y-2 border-t border-[var(--sc-border)] pt-3",children:a.evidence.map((a,c)=>(0,b.jsxs)("div",{className:"text-xs leading-5",children:[(0,b.jsx)("div",{className:"font-semibold text-[var(--sc-text-primary)]",children:a.reason}),(0,b.jsxs)("div",{className:"mt-0.5 break-words text-[var(--sc-text-secondary)]",children:['"',a.snippet,'"']})]},`${a.reason}-${c}`))}),c&&(0,b.jsxs)("div",{className:"mt-4 space-y-3",children:[e&&(0,b.jsx)(ax.LocalAiExplanationPanel,{explanation:e}),!!f&&(0,b.jsx)("div",{className:"rounded-lg border border-[var(--sc-coral)]/30 bg-[var(--sc-coral)]/10 p-3 text-sm text-[var(--sc-coral)]",children:f instanceof Error?f.message:"Local explanation failed"})]})]})}function aQ(){let a,c=(a=(0,s.useQueryClient)(),(0,q.useMutation)({mutationFn:aM,onSuccess:()=>{a.invalidateQueries({queryKey:["quarantine"]}),a.invalidateQueries({queryKey:["audit-stats"]}),a.invalidateQueries({queryKey:["audit-logs"]})}})),e=(0,ay.useLocalAiExplain)(),[f,g]=(0,d.useState)(null),h=c.data,i=h?.files??[],j=a=>{let b,c;g(a.id),e.mutate({kind:"memory_file",title:aO(a.path),content:(b=a.evidence.map(a=>`${a.reason}: ${a.snippet}`).join("\n"),c=a.findings.map(a=>`${a.severity.toUpperCase()}: ${a.title} - ${a.description}`).join("\n"),[`Path: ${a.path}`,`Source: ${a.source}`,`Risk: ${a.risk}`,`Firewall result: ${a.firewallResult}`,`Scan reason: ${a.reason}`,a.threatIndicators.length?`Threat indicators: ${a.threatIndicators.join(", ")}`:"",b?`Evidence:
12
+ ${a.content}`,source:{type:"api",identifier:`dashboard:memory:${a.id}`}})});if(!b.ok)throw Error(await (0,t.readApiError)(b,"Failed to scan memory"));return b.json()}function aF({result:a}){let c="ALLOW"===a.firewall.result?"SAFE":a.firewall.result,d=a.firewall.threatIndicators??[];return(0,b.jsxs)("div",{className:"rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/70 p-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(C.Badge,{variant:(0,C.riskVariant)(c),children:c}),(0,b.jsxs)(C.Badge,{variant:"muted",children:["anomaly ",a.firewall.anomalyScore.toFixed(2)]}),(0,b.jsxs)(C.Badge,{variant:"muted",children:["trust ",a.trust.score.toFixed(2)]}),(0,b.jsx)(C.Badge,{variant:a.sensitivity.redactionRequired?"amber":"muted",children:a.sensitivity.level})]}),(0,b.jsx)("p",{className:"mt-3 text-sm text-[var(--sc-text-primary)]",children:a.firewall.reason}),d.length>0&&(0,b.jsx)("div",{className:"mt-3 flex flex-wrap gap-1.5",children:d.map(a=>(0,b.jsx)("span",{className:"rounded bg-[var(--sc-bg-elevated)] px-2 py-1 text-[11px] text-[var(--sc-text-secondary)]",children:a},a))}),a.firewall.blockedPatterns.length>0&&(0,b.jsx)("div",{className:"mt-3 rounded border border-[var(--sc-coral)]/30 bg-[var(--sc-coral)]/10 p-2 text-xs text-[var(--sc-coral)]",children:a.firewall.blockedPatterns.join(", ")})]})}function aG({memory:a,onClose:c}){let e,[f,h]=(0,d.useState)(null),i=(0,p.useAccessMemory)(),j=(0,p.usePromoteMemory)(),k=(0,p.useDeleteMemory)(),l=(0,p.useQuarantineMemory)(),n=(0,aA.useLocalAiExplain)(),o=(0,q.useMutation)({mutationFn:()=>aE(a)}),r=(0,d.useMemo)(()=>a.tags??[],[a.tags]),s=i.isPending||j.isPending||k.isPending||l.isPending||n.isPending||o.isPending;return(0,d.useEffect)(()=>{let a=a=>{"Escape"===a.key&&c()};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[c]),(0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/70 p-4 backdrop-blur-sm",role:"dialog","aria-modal":"true","aria-labelledby":"memory-detail-title",onMouseDown:a=>{a.target===a.currentTarget&&c()},children:(0,b.jsxs)("div",{className:"flex max-h-[90vh] w-full max-w-3xl flex-col overflow-hidden rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-surface)] shadow-2xl",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-4 border-b border-[var(--sc-border)] p-5",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(C.Badge,{variant:"cyan",children:a.category}),(0,b.jsx)(C.Badge,{variant:"muted",children:a.type.replace("_","-")}),(0,b.jsx)(C.Badge,{variant:a.status&&"active"!==a.status?"amber":"safe",children:a.status??"active"})]}),(0,b.jsx)("h2",{id:"memory-detail-title",className:"mt-3 text-lg font-semibold text-[var(--sc-text-primary)]",children:a.title}),(0,b.jsx)("p",{className:"mt-1 text-sm text-[var(--sc-text-secondary)]",children:a.project||"Global memory"})]}),(0,b.jsx)("button",{onClick:c,className:"rounded-lg p-2 text-[var(--sc-text-muted)] transition-colors hover:bg-[var(--sc-bg-elevated)] hover:text-[var(--sc-text-primary)]","aria-label":"Close memory detail",type:"button",children:(0,b.jsx)(aw.X,{size:18})})]}),(0,b.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto p-5",children:(0,b.jsxs)("div",{className:"grid gap-4 lg:grid-cols-[1.5fr_1fr]",children:[(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("section",{children:[(0,b.jsx)("h3",{className:"text-xs font-semibold uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Content"}),(0,b.jsx)("pre",{className:"mt-2 max-h-72 overflow-auto whitespace-pre-wrap break-words rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/70 p-3 font-sans text-sm leading-6 text-[var(--sc-text-primary)]",children:a.content})]}),n.data?.explanation&&(0,b.jsx)(ay.LocalAiExplanationPanel,{explanation:n.data.explanation,actions:(e=function(a){if(!a)return null;let b=a.trim();return b.includes("/")&&/\.[A-Za-z0-9]{1,8}$/.test(b)?b:null}(a.source))?[{key:"open",label:"Open in editor",icon:(0,b.jsx)(at.ExternalLink,{size:13}),variant:"outline",onClick:()=>{let a=(0,az.buildEditorUrl)(e);a&&(window.location.href=a)}}]:[]}),n.error&&(0,b.jsx)("div",{className:"rounded-lg border border-[var(--sc-coral)]/30 bg-[var(--sc-coral)]/10 p-3 text-sm text-[var(--sc-coral)]",children:n.error instanceof Error?n.error.message:"Local explanation failed"}),o.data&&(0,b.jsx)(aF,{result:o.data}),o.error&&(0,b.jsx)("div",{className:"rounded-lg border border-[var(--sc-coral)]/30 bg-[var(--sc-coral)]/10 p-3 text-sm text-[var(--sc-coral)]",children:o.error instanceof Error?o.error.message:"Memory scan failed"})]}),(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("section",{className:"rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/50 p-3",children:[(0,b.jsx)("h3",{className:"text-xs font-semibold uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Health"}),(0,b.jsxs)("div",{className:"mt-3 grid grid-cols-2 gap-3 text-sm",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-[var(--sc-text-muted)]",children:"Salience"}),(0,b.jsx)("div",{className:"font-semibold text-[var(--sc-text-primary)]",children:aD(a.salience)})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-[var(--sc-text-muted)]",children:"Decay"}),(0,b.jsx)("div",{className:"font-semibold text-[var(--sc-text-primary)]",children:aD(a.decayedScore??a.salience)})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-[var(--sc-text-muted)]",children:"Trust"}),(0,b.jsx)("div",{className:"font-semibold text-[var(--sc-text-primary)]",children:(a.trustScore??1).toFixed(2)})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-[var(--sc-text-muted)]",children:"Accesses"}),(0,b.jsx)("div",{className:"font-semibold text-[var(--sc-text-primary)]",children:a.accessCount})]})]})]}),(0,b.jsxs)("section",{className:"rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/50 p-3",children:[(0,b.jsx)("h3",{className:"text-xs font-semibold uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Provenance"}),(0,b.jsxs)("dl",{className:"mt-3 space-y-2 text-sm",children:[(0,b.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,b.jsx)("dt",{className:"text-[var(--sc-text-muted)]",children:"Source"}),(0,b.jsx)("dd",{className:"text-right text-[var(--sc-text-primary)]",children:a.sourceKind||"user"})]}),(0,b.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,b.jsx)("dt",{className:"text-[var(--sc-text-muted)]",children:"Capture"}),(0,b.jsx)("dd",{className:"text-right text-[var(--sc-text-primary)]",children:a.captureMethod||"manual"})]}),(0,b.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,b.jsx)("dt",{className:"text-[var(--sc-text-muted)]",children:"Created"}),(0,b.jsx)("dd",{className:"text-right text-[var(--sc-text-primary)]",children:aC(a.createdAt)})]}),(0,b.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,b.jsx)("dt",{className:"text-[var(--sc-text-muted)]",children:"Updated"}),(0,b.jsx)("dd",{className:"text-right text-[var(--sc-text-primary)]",children:aC(a.updatedAt)})]}),(0,b.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,b.jsx)("dt",{className:"text-[var(--sc-text-muted)]",children:"Sensitivity"}),(0,b.jsx)("dd",{className:"text-right text-[var(--sc-text-primary)]",children:a.sensitivityLevel||"INTERNAL"})]}),(0,b.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,b.jsx)("dt",{className:"text-[var(--sc-text-muted)]",children:"Cloud"}),(0,b.jsx)("dd",{className:"text-right text-[var(--sc-text-primary)]",children:a.cloudExcluded?"Excluded":"Eligible"})]})]})]}),r.length>0&&(0,b.jsxs)("section",{className:"rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/50 p-3",children:[(0,b.jsx)("h3",{className:"text-xs font-semibold uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Tags"}),(0,b.jsx)("div",{className:"mt-3 flex flex-wrap gap-1.5",children:r.map(a=>(0,b.jsx)("span",{className:"rounded bg-[var(--sc-bg-elevated)] px-2 py-1 text-xs text-[var(--sc-text-secondary)]",children:a},a))})]})]})]})}),(0,b.jsxs)("div",{className:"border-t border-[var(--sc-border)] p-4",children:[f&&(0,b.jsx)("div",{className:"mb-3 rounded-lg border border-[var(--sc-coral)]/30 bg-[var(--sc-coral)]/10 p-3",children:(0,b.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,b.jsx)("p",{className:"text-sm text-[var(--sc-coral)]",children:"delete"===f?"Delete this memory permanently?":"Move this memory to quarantine for manual review?"}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(D.Button,{size:"sm",variant:"outline",onClick:()=>h(null),disabled:s,children:"Cancel"}),(0,b.jsx)(D.Button,{size:"sm",variant:"coral",onClick:"delete"===f?()=>{k.mutate(a.id,{onSuccess:()=>{ax.toast.success("Memory deleted"),c()},onError:a=>ax.toast.error(a instanceof Error?a.message:"Failed to delete memory")})}:()=>{l.mutate({id:a.id,reason:"Quarantined from memory detail modal"},{onSuccess:()=>{ax.toast.warning("Memory moved to quarantine"),c()},onError:a=>ax.toast.error(a instanceof Error?a.message:"Failed to quarantine memory")})},disabled:s,children:"delete"===f?"Delete":"Quarantine"})]})]})}),(0,b.jsxs)("div",{className:"flex flex-wrap justify-end gap-2",children:[(0,b.jsxs)(D.Button,{variant:"outline",size:"sm",onClick:()=>{h(null),n.mutate({kind:"memory",title:a.title,content:a.content,project:a.project,source:`${a.sourceKind??"user"}${a.source?`:${a.source}`:""}`,signals:[a.category,a.type,a.status??"active",a.sensitivityLevel??"INTERNAL",...r],metadata:{id:a.id,uuid:a.uuid,trustScore:a.trustScore,salience:a.salience,decayedScore:a.decayedScore,captureMethod:a.captureMethod,accessCount:a.accessCount,cloudExcluded:a.cloudExcluded}},{onSuccess:a=>{ax.toast.success(a.explanation.synthetic?"Fallback explanation generated":"Local explanation generated")},onError:a=>ax.toast.error(a instanceof Error?a.message:"Local explanation failed")})},disabled:s,pulse:n.isPending,children:[(0,b.jsx)(m.Sparkles,{size:14}),n.isPending?"Explaining":"Explain"]}),(0,b.jsxs)(D.Button,{variant:"outline",size:"sm",onClick:()=>{h(null),o.mutate(void 0,{onSuccess:a=>{"ALLOW"===a.firewall.result?ax.toast.success("Memory scan passed"):ax.toast.warning(`Memory scan returned ${a.firewall.result.toLowerCase()}`)},onError:a=>ax.toast.error(a instanceof Error?a.message:"Memory scan failed")})},disabled:s,children:[(0,b.jsx)(au,{size:14}),o.isPending?"Scanning":"Scan"]}),(0,b.jsxs)(D.Button,{variant:"outline",size:"sm",onClick:()=>{h(null),i.mutate(a.id,{onSuccess:()=>ax.toast.success("Memory reinforced"),onError:a=>ax.toast.error(a instanceof Error?a.message:"Failed to reinforce memory")})},disabled:s,children:[(0,b.jsx)(g.Database,{size:14}),i.isPending?"Reinforcing":"Reinforce"]}),"short_term"===a.type&&(0,b.jsxs)(D.Button,{variant:"outline",size:"sm",onClick:()=>{h(null),j.mutate(a.id,{onSuccess:()=>ax.toast.success("Memory promoted to long-term"),onError:a=>ax.toast.error(a instanceof Error?a.message:"Failed to promote memory")})},disabled:s,children:[(0,b.jsx)(as,{size:14}),j.isPending?"Promoting":"Promote"]}),(0,b.jsxs)(D.Button,{variant:"outline",size:"sm",onClick:()=>h("quarantine"===f?null:"quarantine"),disabled:s,children:[(0,b.jsx)(N.ShieldAlert,{size:14}),"Quarantine"]}),(0,b.jsxs)(D.Button,{variant:"coral",size:"sm",onClick:()=>h("delete"===f?null:"delete"),disabled:s,children:[(0,b.jsx)(av.Trash2,{size:14}),"Delete"]})]})]})]})})}function aH(){let[a,c]=(0,d.useState)("all"),[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:o}=(0,H.useDashboardStore)(),{data:q}=(0,p.useOpenClawSessions)(),{data:r=[]}=(0,p.useMemoriesWithRealtime)({limit:1e3,project:m||void 0,type:n||void 0,category:o||void 0,mode:g?"search":"recent",query:g||void 0});(0,p.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)(B.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)(an,{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)(B.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)(ar,{memory:a,isSelected:k?.id===a.id,onSelect:v},a.id))]}),k&&(0,b.jsx)(aG,{memory:k,onClose:()=>v(null)})]})}var aI=a.i(47520);let aJ=(0,j.default)("clock",[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);var aK=a.i(84692);let aL=(0,j.default)("scan-line",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}],["path",{d:"M7 12h10",key:"b7w52i"}]]);var aM=a.i(73038);let aN=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function aO(){let a=await (0,t.gatedFetch)(`${aN}/api/v1/memory-files/scan`,{method:"POST",headers:{"Content-Type":"application/json"}});if(!a.ok)throw Error(await (0,t.readApiError)(a,"Failed to scan memory files"));return a.json()}function aP(a){return a?new Date(a).toLocaleString():"Unknown"}function aQ(a){return a.split(/[\\/]/).filter(Boolean).pop()??a}function aR({file:a,isActive:c,explaining:d,explanation:e,explainError:f,onExplain:g}){var i;let j="SAFE"!==a.risk&&"LOW"!==a.risk,k=(0,C.riskVariant)(a.risk),l=a.risk.toLowerCase();return(0,b.jsxs)(B.GlassCard,{className:`p-4 ${j?"":"opacity-80"}`,severity:j?l:void 0,children:[(0,b.jsxs)("div",{className:"flex flex-col gap-3 lg:flex-row lg:items-start lg:justify-between",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(C.Badge,{variant:k,dot:j,children:a.risk}),(0,b.jsx)(C.Badge,{variant:"ALLOW"===a.firewallResult?"muted":"amber",children:a.firewallResult}),(0,b.jsx)(C.Badge,{variant:"muted",children:a.source})]}),(0,b.jsxs)("div",{className:"mt-3 flex min-w-0 items-start gap-2",children:[(0,b.jsx)(h.FileText,{size:16,className:"mt-0.5 shrink-0 text-[var(--sc-cyan)]"}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("h3",{className:"truncate text-sm font-semibold text-[var(--sc-text-primary)]",children:aQ(a.path)}),(0,b.jsx)("p",{className:"mt-1 break-all text-xs text-[var(--sc-text-muted)]",children:a.path})]})]})]}),(0,b.jsxs)("div",{className:"flex shrink-0 flex-wrap items-center gap-2 text-xs text-[var(--sc-text-muted)]",children:[(0,b.jsx)("span",{children:(i=a.sizeBytes)<1024?`${i} B`:i<1048576?`${(i/1024).toFixed(1)} KB`:`${(i/1048576).toFixed(1)} MB`}),(0,b.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,b.jsx)(aJ,{size:12}),aP(a.modifiedAt)]}),(0,b.jsxs)(D.Button,{variant:"outline",size:"sm",onClick:()=>g(a),disabled:d,pulse:d,children:[d?(0,b.jsx)(aK.Loader2,{size:13,className:"animate-spin"}):(0,b.jsx)(m.Sparkles,{size:13}),d?"Explaining":"Explain"]})]})]}),(0,b.jsx)("p",{className:"mt-4 text-sm leading-6 text-[var(--sc-text-secondary)]",children:a.reason}),a.threatIndicators.length>0&&(0,b.jsx)("div",{className:"mt-3 flex flex-wrap gap-1.5",children:a.threatIndicators.map(a=>(0,b.jsx)("span",{className:"rounded bg-[var(--sc-bg-elevated)] px-2 py-1 text-[11px] text-[var(--sc-text-secondary)]",children:a},a))}),a.evidence.length>0&&(0,b.jsx)("div",{className:"mt-4 space-y-2 border-t border-[var(--sc-border)] pt-3",children:a.evidence.map((a,c)=>(0,b.jsxs)("div",{className:"text-xs leading-5",children:[(0,b.jsx)("div",{className:"font-semibold text-[var(--sc-text-primary)]",children:a.reason}),(0,b.jsxs)("div",{className:"mt-0.5 break-words text-[var(--sc-text-secondary)]",children:['"',a.snippet,'"']})]},`${a.reason}-${c}`))}),c&&(0,b.jsxs)("div",{className:"mt-4 space-y-3",children:[e&&(0,b.jsx)(ay.LocalAiExplanationPanel,{explanation:e,actions:a.path?[{key:"open",label:"Open in editor",icon:(0,b.jsx)(at.ExternalLink,{size:13}),variant:"outline",onClick:()=>{let b=(0,az.buildEditorUrl)(a.path);b&&(window.location.href=b)}}]:[]}),!!f&&(0,b.jsx)("div",{className:"rounded-lg border border-[var(--sc-coral)]/30 bg-[var(--sc-coral)]/10 p-3 text-sm text-[var(--sc-coral)]",children:f instanceof Error?f.message:"Local explanation failed"})]})]})}function aS(){let a,c=(a=(0,s.useQueryClient)(),(0,q.useMutation)({mutationFn:aO,onSuccess:()=>{a.invalidateQueries({queryKey:["quarantine"]}),a.invalidateQueries({queryKey:["audit-stats"]}),a.invalidateQueries({queryKey:["audit-logs"]})}})),e=(0,aA.useLocalAiExplain)(),[f,g]=(0,d.useState)(null),h=c.data,i=h?.files??[],j=a=>{let b,c;g(a.id),e.mutate({kind:"memory_file",title:aQ(a.path),content:(b=a.evidence.map(a=>`${a.reason}: ${a.snippet}`).join("\n"),c=a.findings.map(a=>`${a.severity.toUpperCase()}: ${a.title} - ${a.description}`).join("\n"),[`Path: ${a.path}`,`Source: ${a.source}`,`Risk: ${a.risk}`,`Firewall result: ${a.firewallResult}`,`Scan reason: ${a.reason}`,a.threatIndicators.length?`Threat indicators: ${a.threatIndicators.join(", ")}`:"",b?`Evidence:
13
13
  ${b}`:"",c?`Findings:
14
14
  ${c}`:"",a.contentExcerpt?`Content excerpt:
15
- ${a.contentExcerpt}`:"Content excerpt: empty file"].filter(Boolean).join("\n\n")),source:`memory-file:${a.path}`,signals:[a.risk,a.firewallResult,a.source,...a.threatIndicators,...a.findings.map(a=>a.severity)],metadata:{id:a.id,path:a.path,source:a.source,sizeBytes:a.sizeBytes,modifiedAt:a.modifiedAt,risk:a.risk,firewallResult:a.firewallResult,findingCount:a.findings.length}},{onSuccess:a=>{aw.toast.success(a.explanation.synthetic?"Fallback explanation generated":"Local explanation generated")},onError:a=>aw.toast.error(a instanceof Error?a.message:"Local explanation failed")})};return(0,b.jsx)(aK.ProFeatureGate,{feature:"memory_file_scan",label:"Scan persistent agent memory files for poisoned instructions and credential leaks.",children:(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)(B.GlassCard,{className:"p-5",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-4 lg:flex-row lg:items-center lg:justify-between",children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(aJ,{size:17,className:"text-[var(--sc-cyan)]"}),(0,b.jsx)("h2",{className:"text-base font-semibold text-[var(--sc-text-primary)]",children:"Memory Files"})]}),h&&(0,b.jsxs)("p",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:["Scanned ",aN(h.scannedAt)]})]}),(0,b.jsxs)(D.Button,{variant:"cyan",size:"sm",onClick:()=>{c.mutate(void 0,{onSuccess:a=>{if(a.summary.flagged>0){let b=a.quarantine.created+a.quarantine.updated;aw.toast.warning(`${a.summary.flagged} memory file${1===a.summary.flagged?"":"s"} flagged`+(b>0?`, ${b} queued for review`:""))}else aw.toast.success("Memory file scan passed")},onError:a=>aw.toast.error(a instanceof Error?a.message:"Memory file scan failed")})},disabled:c.isPending,children:[c.isPending?(0,b.jsx)(aI.Loader2,{size:14,className:"animate-spin"}):(0,b.jsx)(aJ,{size:14}),c.isPending?"Scanning":"Scan Memory Files"]})]}),h&&(0,b.jsxs)("div",{className:"mt-5 grid grid-cols-2 gap-3 md:grid-cols-5",children:[(0,b.jsxs)("div",{className:"rounded-lg bg-[var(--sc-bg-deep)]/60 p-3",children:[(0,b.jsx)("div",{className:"text-[10px] uppercase tracking-[0.16em] text-[var(--sc-text-muted)]",children:"Total"}),(0,b.jsx)("div",{className:"mt-1 text-xl font-semibold text-[var(--sc-text-primary)]",children:h.summary.total})]}),(0,b.jsxs)("div",{className:"rounded-lg bg-[var(--sc-bg-deep)]/60 p-3",children:[(0,b.jsx)("div",{className:"text-[10px] uppercase tracking-[0.16em] text-[var(--sc-text-muted)]",children:"Safe"}),(0,b.jsxs)("div",{className:"mt-1 flex items-center gap-2 text-xl font-semibold text-[var(--sc-cyan)]",children:[(0,b.jsx)(L.CheckCircle2,{size:16}),h.summary.safe]})]}),(0,b.jsxs)("div",{className:"rounded-lg bg-[var(--sc-bg-deep)]/60 p-3",children:[(0,b.jsx)("div",{className:"text-[10px] uppercase tracking-[0.16em] text-[var(--sc-text-muted)]",children:"Flagged"}),(0,b.jsxs)("div",{className:"mt-1 flex items-center gap-2 text-xl font-semibold text-[var(--sc-amber)]",children:[(0,b.jsx)(aG.AlertTriangle,{size:16}),h.summary.flagged]})]}),(0,b.jsxs)("div",{className:"rounded-lg bg-[var(--sc-bg-deep)]/60 p-3",children:[(0,b.jsx)("div",{className:"text-[10px] uppercase tracking-[0.16em] text-[var(--sc-text-muted)]",children:"High"}),(0,b.jsx)("div",{className:"mt-1 text-xl font-semibold text-[var(--sc-coral-mid)]",children:h.summary.high})]}),(0,b.jsxs)("div",{className:"rounded-lg bg-[var(--sc-bg-deep)]/60 p-3",children:[(0,b.jsx)("div",{className:"text-[10px] uppercase tracking-[0.16em] text-[var(--sc-text-muted)]",children:"Critical"}),(0,b.jsx)("div",{className:"mt-1 text-xl font-semibold text-[var(--sc-coral)]",children:h.summary.critical})]})]}),h&&h.quarantine.created+h.quarantine.updated>0&&(0,b.jsxs)("div",{className:"mt-4 rounded-lg border border-[var(--sc-amber)]/25 bg-[var(--sc-amber)]/10 px-3 py-2 text-xs text-[var(--sc-amber)]",children:[h.quarantine.created+h.quarantine.updated," flagged file",h.quarantine.created+h.quarantine.updated===1?"":"s"," queued in Quarantine for manual review."]})]}),c.error&&(0,b.jsx)(B.GlassCard,{className:"border-[var(--sc-coral)]/30 p-4",children:(0,b.jsx)("p",{className:"text-sm text-[var(--sc-coral)]",children:c.error instanceof Error?c.error.message:"Memory file scan failed"})}),h&&0===i.length&&(0,b.jsxs)(B.GlassCard,{className:"p-8 text-center",children:[(0,b.jsx)(L.CheckCircle2,{size:24,className:"mx-auto text-[var(--sc-cyan)]"}),(0,b.jsx)("p",{className:"mt-3 text-sm text-[var(--sc-text-secondary)]",children:"No memory files found."})]}),i.length>0&&(0,b.jsx)("div",{className:"grid grid-cols-1 gap-3",children:i.map(a=>(0,b.jsx)(aP,{file:a,isActive:f===a.id,explaining:f===a.id&&e.isPending,explanation:f===a.id?e.data?.explanation:void 0,explainError:f===a.id?e.error:null,onExplain:j},a.id))})]})})}let aR=(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 aS(){var a;let e="capture"===(a=(0,c.useSearchParams)().get("tab"))?"library":a&&["library","files","recall","review","graph"].includes(a)?a:null,[f,j]=(0,d.useState)("library"),q=e??f,{data:r}=(0,p.useStats)(),{data:s}=(0,p.useContradictions)(),{data:t}=(0,p.useQuality)(),{data:u}=A(),v=r?.total??0,w=r?.decayDistribution?.healthy??0,x=s?.count??s?.contradictions?.length??0,y=t?.duplicates?.count??0,z=u?Object.values(u.summary).reduce((a,b)=>a+b,0):0,B=[{id:"library",label:"Library",icon:(0,b.jsx)(g.Database,{size:14}),count:v||void 0},{id:"files",label:"Files",icon:(0,b.jsx)(h.FileText,{size:14})},{id:"recall",label:"Recall",icon:(0,b.jsx)(l,{size:14})},{id:"review",label:"Review",count:z||void 0},{id:"graph",label:"Graph",icon:(0,b.jsx)(i.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)(n.PageHeader,{eyebrow:"Memory",title:"Memory Operations",subtitle:"Search stored memories, scan agent memory files, and inspect recall quality.",tabs:B,activeTab:q,onTabChange:a=>j(a)}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-4 lg:grid-cols-4",children:[(0,b.jsx)(o.StatCard,{label:"Stored Memories",value:v.toLocaleString(),icon:g.Database,accent:"cyan"}),(0,b.jsx)(o.StatCard,{label:"Healthy",value:w.toLocaleString(),icon:m.Sparkles,accent:"cyan"}),(0,b.jsx)(o.StatCard,{label:"Contradictions",value:x,icon:k,accent:x>0?"coral":"muted"}),(0,b.jsx)(o.StatCard,{label:"Duplicates",value:y,icon:i.GitBranch,accent:y>0?"amber":"muted"})]}),(0,b.jsxs)("div",{children:["library"===q&&(0,b.jsx)(aF,{}),"files"===q&&(0,b.jsx)(aQ,{}),"recall"===q&&(0,b.jsx)(K,{}),"review"===q&&(0,b.jsx)(X,{}),"graph"===q&&(0,b.jsx)("div",{className:"h-[600px] rounded-2xl border border-[var(--sc-border)] bg-[var(--sc-bg-surface)]",children:(0,b.jsx)(aR,{})})]})]})})}function aT(){return(0,b.jsx)(d.Suspense,{fallback:(0,b.jsx)(e.PageSkeleton,{}),children:(0,b.jsx)(aS,{})})}a.s(["default",()=>aT],55429)}];
15
+ ${a.contentExcerpt}`:"Content excerpt: empty file"].filter(Boolean).join("\n\n")),source:`memory-file:${a.path}`,signals:[a.risk,a.firewallResult,a.source,...a.threatIndicators,...a.findings.map(a=>a.severity)],metadata:{id:a.id,path:a.path,source:a.source,sizeBytes:a.sizeBytes,modifiedAt:a.modifiedAt,risk:a.risk,firewallResult:a.firewallResult,findingCount:a.findings.length}},{onSuccess:a=>{ax.toast.success(a.explanation.synthetic?"Fallback explanation generated":"Local explanation generated")},onError:a=>ax.toast.error(a instanceof Error?a.message:"Local explanation failed")})};return(0,b.jsx)(aM.ProFeatureGate,{feature:"memory_file_scan",label:"Scan persistent agent memory files for poisoned instructions and credential leaks.",children:(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)(B.GlassCard,{className:"p-5",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-4 lg:flex-row lg:items-center lg:justify-between",children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(aL,{size:17,className:"text-[var(--sc-cyan)]"}),(0,b.jsx)("h2",{className:"text-base font-semibold text-[var(--sc-text-primary)]",children:"Memory Files"})]}),h&&(0,b.jsxs)("p",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:["Scanned ",aP(h.scannedAt)]})]}),(0,b.jsxs)(D.Button,{variant:"cyan",size:"sm",onClick:()=>{c.mutate(void 0,{onSuccess:a=>{if(a.summary.flagged>0){let b=a.quarantine.created+a.quarantine.updated;ax.toast.warning(`${a.summary.flagged} memory file${1===a.summary.flagged?"":"s"} flagged`+(b>0?`, ${b} queued for review`:""))}else ax.toast.success("Memory file scan passed")},onError:a=>ax.toast.error(a instanceof Error?a.message:"Memory file scan failed")})},disabled:c.isPending,children:[c.isPending?(0,b.jsx)(aK.Loader2,{size:14,className:"animate-spin"}):(0,b.jsx)(aL,{size:14}),c.isPending?"Scanning":"Scan Memory Files"]})]}),h&&(0,b.jsxs)("div",{className:"mt-5 grid grid-cols-2 gap-3 md:grid-cols-5",children:[(0,b.jsxs)("div",{className:"rounded-lg bg-[var(--sc-bg-deep)]/60 p-3",children:[(0,b.jsx)("div",{className:"text-[10px] uppercase tracking-[0.16em] text-[var(--sc-text-muted)]",children:"Total"}),(0,b.jsx)("div",{className:"mt-1 text-xl font-semibold text-[var(--sc-text-primary)]",children:h.summary.total})]}),(0,b.jsxs)("div",{className:"rounded-lg bg-[var(--sc-bg-deep)]/60 p-3",children:[(0,b.jsx)("div",{className:"text-[10px] uppercase tracking-[0.16em] text-[var(--sc-text-muted)]",children:"Safe"}),(0,b.jsxs)("div",{className:"mt-1 flex items-center gap-2 text-xl font-semibold text-[var(--sc-cyan)]",children:[(0,b.jsx)(L.CheckCircle2,{size:16}),h.summary.safe]})]}),(0,b.jsxs)("div",{className:"rounded-lg bg-[var(--sc-bg-deep)]/60 p-3",children:[(0,b.jsx)("div",{className:"text-[10px] uppercase tracking-[0.16em] text-[var(--sc-text-muted)]",children:"Flagged"}),(0,b.jsxs)("div",{className:"mt-1 flex items-center gap-2 text-xl font-semibold text-[var(--sc-amber)]",children:[(0,b.jsx)(aI.AlertTriangle,{size:16}),h.summary.flagged]})]}),(0,b.jsxs)("div",{className:"rounded-lg bg-[var(--sc-bg-deep)]/60 p-3",children:[(0,b.jsx)("div",{className:"text-[10px] uppercase tracking-[0.16em] text-[var(--sc-text-muted)]",children:"High"}),(0,b.jsx)("div",{className:"mt-1 text-xl font-semibold text-[var(--sc-coral-mid)]",children:h.summary.high})]}),(0,b.jsxs)("div",{className:"rounded-lg bg-[var(--sc-bg-deep)]/60 p-3",children:[(0,b.jsx)("div",{className:"text-[10px] uppercase tracking-[0.16em] text-[var(--sc-text-muted)]",children:"Critical"}),(0,b.jsx)("div",{className:"mt-1 text-xl font-semibold text-[var(--sc-coral)]",children:h.summary.critical})]})]}),h&&h.quarantine.created+h.quarantine.updated>0&&(0,b.jsxs)("div",{className:"mt-4 rounded-lg border border-[var(--sc-amber)]/25 bg-[var(--sc-amber)]/10 px-3 py-2 text-xs text-[var(--sc-amber)]",children:[h.quarantine.created+h.quarantine.updated," flagged file",h.quarantine.created+h.quarantine.updated===1?"":"s"," queued in Quarantine for manual review."]})]}),c.error&&(0,b.jsx)(B.GlassCard,{className:"border-[var(--sc-coral)]/30 p-4",children:(0,b.jsx)("p",{className:"text-sm text-[var(--sc-coral)]",children:c.error instanceof Error?c.error.message:"Memory file scan failed"})}),h&&0===i.length&&(0,b.jsxs)(B.GlassCard,{className:"p-8 text-center",children:[(0,b.jsx)(L.CheckCircle2,{size:24,className:"mx-auto text-[var(--sc-cyan)]"}),(0,b.jsx)("p",{className:"mt-3 text-sm text-[var(--sc-text-secondary)]",children:"No memory files found."})]}),i.length>0&&(0,b.jsx)("div",{className:"grid grid-cols-1 gap-3",children:i.map(a=>(0,b.jsx)(aR,{file:a,isActive:f===a.id,explaining:f===a.id&&e.isPending,explanation:f===a.id?e.data?.explanation:void 0,explainError:f===a.id?e.error:null,onExplain:j},a.id))})]})})}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(){var a;let e="capture"===(a=(0,c.useSearchParams)().get("tab"))?"library":a&&["library","files","recall","review","graph"].includes(a)?a:null,[f,j]=(0,d.useState)("library"),q=e??f,{data:r}=(0,p.useStats)(),{data:s}=(0,p.useContradictions)(),{data:t}=(0,p.useQuality)(),{data:u}=A(),v=r?.total??0,w=r?.decayDistribution?.healthy??0,x=s?.count??s?.contradictions?.length??0,y=t?.duplicates?.count??0,z=u?Object.values(u.summary).reduce((a,b)=>a+b,0):0,B=[{id:"library",label:"Library",icon:(0,b.jsx)(g.Database,{size:14}),count:v||void 0},{id:"files",label:"Files",icon:(0,b.jsx)(h.FileText,{size:14})},{id:"recall",label:"Recall",icon:(0,b.jsx)(l.Search,{size:14})},{id:"review",label:"Review",count:z||void 0},{id:"graph",label:"Graph",icon:(0,b.jsx)(i.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)(n.PageHeader,{eyebrow:"Memory",title:"Memory Operations",subtitle:"Search stored memories, scan agent memory files, and inspect recall quality.",tabs:B,activeTab:q,onTabChange:a=>j(a)}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-4 lg:grid-cols-4",children:[(0,b.jsx)(o.StatCard,{label:"Stored Memories",value:v.toLocaleString(),icon:g.Database,accent:"cyan"}),(0,b.jsx)(o.StatCard,{label:"Healthy",value:w.toLocaleString(),icon:m.Sparkles,accent:"cyan"}),(0,b.jsx)(o.StatCard,{label:"Contradictions",value:x,icon:k,accent:x>0?"coral":"muted"}),(0,b.jsx)(o.StatCard,{label:"Duplicates",value:y,icon:i.GitBranch,accent:y>0?"amber":"muted"})]}),(0,b.jsxs)("div",{children:["library"===q&&(0,b.jsx)(aH,{}),"files"===q&&(0,b.jsx)(aS,{}),"recall"===q&&(0,b.jsx)(K,{}),"review"===q&&(0,b.jsx)(X,{}),"graph"===q&&(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)}];
16
16
 
17
17
  //# sourceMappingURL=dashboard_c219bf07._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[6321,a=>{"use strict";let b=(0,a.i(70694).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);a.s(["Trash2",()=>b],6321)},54100,a=>{"use strict";var b=a.i(16306),c=a.i(64565);let d={critical:"severity-critical",high:"severity-high",medium:"severity-medium",low:"severity-low",safe:"severity-safe",info:"severity-info"};function e({children:a,className:e,hover:f=!1,hoverCyan:g=!1,strong:h=!1,severity:i,onClick:j,selected:k=!1}){return(0,b.jsx)("div",{className:(0,c.cn)(h?"glass-card-strong":"glass-card",f&&"glass-card-hover cursor-pointer",g&&"glass-card-hover-cyan cursor-pointer",j&&!f&&!g&&"cursor-pointer",i&&d[i],k&&"border-[var(--sc-cyan)] shadow-[0_0_20px_var(--sc-glow-cyan)]",e),onClick:j,onKeyDown:j?a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),j())}:void 0,role:j?"button":void 0,tabIndex:j?0:void 0,children:a})}a.s(["GlassCard",()=>e])},26943,26804,a=>{"use strict";let b=(0,a.i(70694).default)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);a.s(["ArrowRight",()=>b],26943);var c=a.i(66807),d=a.i(40458),e=a.i(14220),f=a.i(86044);let g=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function h(a,b){let c=await (0,f.gatedFetch)(`${g}${a}`);if(!c.ok)throw Error(await (0,f.readApiError)(c,b));return c.json()}async function i(a){let b=await (0,f.gatedFetch)(`${g}/api/xray/scan`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error(await (0,f.readApiError)(b,"Failed to run X-Ray scan"));return b.json()}async function j(a){let b=await (0,f.gatedFetch)(`${g}/api/xray/pick-target`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({kind:a})});if(!b.ok)throw Error(await (0,f.readApiError)(b,`Failed to open ${a} picker`));return b.json()}function k(a,b){return!(b instanceof f.FeatureLockedError)&&a<2}function l(a){let b=new URLSearchParams;for(let[c,d]of Object.entries(a))d&&"all"!==d&&"ALL"!==d&&b.set(c,d);let c=b.toString();return c?`?${c}`:""}function m(){return(0,d.useQuery)({queryKey:["xray-status"],queryFn:()=>h("/api/xray/status","Failed to fetch X-Ray status"),refetchInterval:3e4,retry:k})}function n(a={}){return(0,d.useQuery)({queryKey:["xray-history",a],queryFn:()=>h(`/api/xray/history${l({risk:a.risk,targetType:a.targetType,deep:a.deep,search:a.search?.trim()||void 0})}`,"Failed to fetch X-Ray history"),refetchInterval:3e4,retry:k})}function o(a){return(0,d.useQuery)({queryKey:["xray-history-entry",a],queryFn:()=>h(`/api/xray/history/${a}`,"Failed to fetch X-Ray scan detail"),enabled:!!a,retry:k})}function p(a=25,b={}){return(0,d.useQuery)({queryKey:["xray-activity",a,b],queryFn:()=>h(`/api/xray/activity${l({limit:String(a),kind:b.kind,status:b.status,risk:b.risk,targetType:b.targetType,search:b.search?.trim()||void 0})}`,"Failed to fetch X-Ray activity"),refetchInterval:15e3,retry:k})}function q(a=20,b={}){return(0,d.useQuery)({queryKey:["xray-watch-sessions",a,b],queryFn:()=>h(`/api/xray/watch-sessions${l({limit:String(a),state:b.state,deep:b.deep,search:b.search?.trim()||void 0})}`,"Failed to fetch X-Ray watch sessions"),refetchInterval:15e3,retry:k})}function r(){let a=(0,e.useQueryClient)();return(0,c.useMutation)({mutationFn:i,onSuccess:()=>{a.invalidateQueries({queryKey:["xray-history"]}),a.invalidateQueries({queryKey:["xray-activity"]}),a.invalidateQueries({queryKey:["xray-watch-sessions"]}),a.invalidateQueries({queryKey:["xray-status"]})}})}function s(){return(0,c.useMutation)({mutationFn:a=>j(a)})}async function t(a){let b=await (0,f.gatedFetch)(`${g}/api/xray/watch/start`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error(await (0,f.readApiError)(b,"Failed to start watch"));return b.json()}async function u(a){let b=await (0,f.gatedFetch)(`${g}/api/xray/watch/stop`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({target:a})});if(!b.ok)throw Error(await (0,f.readApiError)(b,"Failed to stop watch"));return b.json()}function v(){return(0,d.useQuery)({queryKey:["xray-active-watchers"],queryFn:()=>h("/api/xray/watch/active","Failed to fetch active watchers"),refetchInterval:1e4})}function w(){let a=(0,e.useQueryClient)();return(0,c.useMutation)({mutationFn:t,onSuccess:()=>{a.invalidateQueries({queryKey:["xray-watch-sessions"]}),a.invalidateQueries({queryKey:["xray-active-watchers"]}),a.invalidateQueries({queryKey:["xray-status"]})}})}function x(){let a=(0,e.useQueryClient)();return(0,c.useMutation)({mutationFn:u,onSuccess:()=>{a.invalidateQueries({queryKey:["xray-watch-sessions"]}),a.invalidateQueries({queryKey:["xray-active-watchers"]}),a.invalidateQueries({queryKey:["xray-status"]})}})}a.s(["useActiveWatchers",()=>v,"usePickXRayTarget",()=>s,"useStartWatch",()=>w,"useStopWatch",()=>x,"useXRayActivity",()=>p,"useXRayHistory",()=>n,"useXRayHistoryEntry",()=>o,"useXRayScan",()=>r,"useXRayStatus",()=>m,"useXRayWatchSessions",()=>q],26804)},48195,a=>{"use strict";var b=a.i(16306),c=a.i(64565);let d={coral:{icon:"text-[var(--sc-coral)]",iconBg:"bg-[var(--sc-coral)]/10",trendUp:"text-[var(--sc-coral)]",trendDown:"text-[var(--sc-cyan)]"},cyan:{icon:"text-[var(--sc-cyan)]",iconBg:"bg-[var(--sc-cyan)]/10",trendUp:"text-[var(--sc-cyan)]",trendDown:"text-[var(--sc-coral)]"},amber:{icon:"text-[var(--sc-amber)]",iconBg:"bg-[var(--sc-amber)]/10",trendUp:"text-[var(--sc-amber)]",trendDown:"text-[var(--sc-text-muted)]"},muted:{icon:"text-[var(--sc-text-secondary)]",iconBg:"bg-[var(--sc-surface-interactive)]",trendUp:"text-[var(--sc-cyan)]",trendDown:"text-[var(--sc-coral)]"}};function e({label:a,value:e,icon:f,trend:g,accent:h="cyan",className:i}){let j=d[h];return(0,b.jsx)("div",{className:(0,c.cn)("glass-card p-5",i),children:(0,b.jsxs)("div",{className:"flex items-start justify-between",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("p",{className:"text-xs font-medium uppercase tracking-wider text-[var(--sc-text-muted)]",children:a}),(0,b.jsx)("p",{className:"mt-2 text-2xl font-bold text-[var(--sc-text-primary)]",children:e}),g&&(0,b.jsxs)("p",{className:(0,c.cn)("mt-1 text-xs",g.value>=0?j.trendUp:j.trendDown),children:[g.value>=0?"+":"",g.value,"% ",g.label]})]}),(0,b.jsx)("div",{className:(0,c.cn)("rounded-xl p-2.5",j.iconBg),children:(0,b.jsx)(f,{size:20,className:j.icon})})]})})}a.s(["StatCard",()=>e])},25605,49948,a=>{"use strict";let b=(0,a.i(70694).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);a.s(["ExternalLink",()=>b],25605);var c=a.i(16306),d=a.i(60210),e=a.i(23808);function f({explanation:a,actions:b}){let f=b?.filter(Boolean)??[];return(0,c.jsxs)("div",{className:"rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/70 p-3",children:[(0,c.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,c.jsx)(d.Badge,{variant:a.synthetic?"amber":"cyan",children:a.synthetic?"Fallback":"Local AI"}),(0,c.jsxs)(d.Badge,{variant:"muted",children:[Math.round(100*a.confidence),"% confidence"]})]}),(0,c.jsx)("p",{className:"mt-3 text-sm font-semibold text-[var(--sc-text-primary)]",children:a.summary}),(0,c.jsx)("p",{className:"mt-1 text-sm leading-6 text-[var(--sc-text-secondary)]",children:a.whyItMatters}),a.riskSignals.length>0&&(0,c.jsx)("div",{className:"mt-3 flex flex-wrap gap-1.5",children:a.riskSignals.map(a=>(0,c.jsx)("span",{className:"rounded bg-[var(--sc-bg-elevated)] px-2 py-1 text-[11px] text-[var(--sc-text-secondary)]",children:a},a))}),a.evidence.length>0&&(0,c.jsx)("div",{className:"mt-3 space-y-2",children:a.evidence.map((a,b)=>(0,c.jsxs)("div",{className:"rounded border border-[var(--sc-border)] bg-[var(--sc-bg-surface)] px-2 py-1.5",children:[(0,c.jsx)("div",{className:"text-[10px] uppercase tracking-[0.14em] text-[var(--sc-text-muted)]",children:a.reason}),(0,c.jsxs)("div",{className:"mt-1 break-words text-xs text-[var(--sc-text-primary)]",children:['"',a.snippet,'"']})]},`${a.snippet}-${b}`))}),a.nextSteps.length>0&&(0,c.jsxs)("div",{className:"mt-3 border-t border-[var(--sc-border)] pt-3",children:[(0,c.jsx)("div",{className:"text-[10px] font-semibold uppercase tracking-[0.16em] text-[var(--sc-text-muted)]",children:"Next steps"}),(0,c.jsx)("div",{className:"mt-2 space-y-1",children:a.nextSteps.map(a=>(0,c.jsx)("div",{className:"text-xs leading-5 text-[var(--sc-text-secondary)]",children:a},a))})]}),f.length>0&&(0,c.jsx)("div",{className:"mt-3 flex flex-wrap gap-2 border-t border-[var(--sc-border)] pt-3",children:f.map(a=>(0,c.jsxs)(e.Button,{variant:a.variant??"outline",size:"sm",onClick:a.onClick,disabled:a.disabled||a.pending,children:[a.icon,a.pending?"Working":a.label]},a.key))})]})}a.s(["LocalAiExplanationPanel",()=>f],49948)},91321,a=>{"use strict";var b=a.i(66807),c=a.i(86044);let d=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function e(a){let b=await (0,c.gatedFetch)(`${d}/api/v1/local-ai/explain`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error(await (0,c.readApiError)(b,"Failed to generate local explanation"));return b.json()}function f(){return(0,b.useMutation)({mutationFn:e})}a.s(["useLocalAiExplain",()=>f])},68760,a=>{"use strict";function b(a,b){let c=a.trim();if(!c)return"";let d=c.replace(/^file:\/+/,""),e=d.startsWith("/")?d:`/${d}`,f="number"==typeof b&&Number.isFinite(b)&&b>0?`:${b}`:"";return`vscode://file${e}${f}`}a.s(["buildEditorUrl",()=>b])},94992,a=>{"use strict";let b=(0,a.i(70694).default)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);a.s(["Eye",()=>b],94992)},62606,a=>{"use strict";let b=(0,a.i(70694).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);a.s(["Check",()=>b],62606)}];
2
+
3
+ //# sourceMappingURL=dashboard_f9cd1dc2._.js.map