shieldcortex 4.33.2 → 4.35.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 (373) hide show
  1. package/dashboard/.next/standalone/dashboard/.next/BUILD_ID +1 -1
  2. package/dashboard/.next/standalone/dashboard/.next/build-manifest.json +2 -2
  3. package/dashboard/.next/standalone/dashboard/.next/prerender-manifest.json +3 -3
  4. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/admin/page.js +1 -1
  5. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/admin/page.js.nft.json +1 -1
  6. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/admin/page_client-reference-manifest.js +1 -1
  7. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/cloud/page.js +1 -1
  8. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/cloud/page.js.nft.json +1 -1
  9. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/cloud/page_client-reference-manifest.js +1 -1
  10. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/capture/page.js +1 -1
  11. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/capture/page.js.nft.json +1 -1
  12. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/capture/page_client-reference-manifest.js +1 -1
  13. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/graph/page.js +1 -1
  14. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/graph/page.js.nft.json +1 -1
  15. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/graph/page_client-reference-manifest.js +1 -1
  16. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/page/react-loadable-manifest.json +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/replay/page.js +1 -1
  24. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/replay/page.js.nft.json +1 -1
  25. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/replay/page_client-reference-manifest.js +1 -1
  26. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page.js +1 -1
  27. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page.js.nft.json +1 -1
  28. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page_client-reference-manifest.js +1 -1
  29. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/timeline/page.js +1 -1
  30. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/timeline/page.js.nft.json +1 -1
  31. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/timeline/page_client-reference-manifest.js +1 -1
  32. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/overview/page.js +1 -1
  33. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/overview/page.js.nft.json +1 -1
  34. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/overview/page_client-reference-manifest.js +1 -1
  35. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/audit/page.js +1 -1
  36. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/audit/page.js.nft.json +1 -1
  37. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/audit/page_client-reference-manifest.js +1 -1
  38. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/intercepts/page.js +1 -1
  39. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/intercepts/page.js.nft.json +1 -1
  40. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/intercepts/page_client-reference-manifest.js +1 -1
  41. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/iron-dome/page.js +1 -1
  42. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/iron-dome/page.js.nft.json +1 -1
  43. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/iron-dome/page_client-reference-manifest.js +1 -1
  44. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/page.js +1 -1
  45. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/page.js.nft.json +1 -1
  46. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/page_client-reference-manifest.js +1 -1
  47. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/policies/page.js +1 -1
  48. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/policies/page.js.nft.json +1 -1
  49. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/policies/page_client-reference-manifest.js +1 -1
  50. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/quarantine/page.js +1 -1
  51. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/quarantine/page.js.nft.json +1 -1
  52. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/quarantine/page_client-reference-manifest.js +1 -1
  53. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/settings/page.js +1 -1
  54. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  55. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  56. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/page.js +1 -1
  57. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/page.js.nft.json +1 -1
  58. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/page_client-reference-manifest.js +1 -1
  59. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/xray/page.js +1 -1
  60. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/xray/page.js.nft.json +1 -1
  61. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/xray/page_client-reference-manifest.js +1 -1
  62. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page.js +1 -1
  63. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page.js.nft.json +1 -1
  64. package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page_client-reference-manifest.js +1 -1
  65. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.html +2 -2
  66. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.rsc +1 -1
  67. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  68. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  69. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  70. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  71. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +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 -9
  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 +18 -19
  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 +10 -9
  86. package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_full.segment.rsc +18 -19
  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 +18 -19
  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 +10 -9
  95. package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_full.segment.rsc +18 -19
  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 +18 -18
  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 +10 -9
  112. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_full.segment.rsc +18 -18
  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 +18 -18
  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 +10 -9
  122. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_full.segment.rsc +18 -18
  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 +18 -18
  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 +10 -9
  132. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_full.segment.rsc +18 -18
  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/replay.html +1 -9
  137. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.rsc +16 -16
  138. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/!KGRhc2hib2FyZCk/memory/replay/__PAGE__.segment.rsc +3 -3
  139. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/!KGRhc2hib2FyZCk/memory/replay.segment.rsc +1 -1
  140. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  141. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/!KGRhc2hib2FyZCk.segment.rsc +10 -9
  142. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/_full.segment.rsc +16 -16
  143. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/_head.segment.rsc +1 -1
  144. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/_index.segment.rsc +2 -2
  145. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/replay.segments/_tree.segment.rsc +2 -2
  146. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.html +1 -1
  147. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.rsc +18 -18
  148. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory/review/__PAGE__.segment.rsc +1 -1
  149. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory/review.segment.rsc +1 -1
  150. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  151. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk.segment.rsc +10 -9
  152. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_full.segment.rsc +18 -18
  153. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_head.segment.rsc +1 -1
  154. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_index.segment.rsc +2 -2
  155. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_tree.segment.rsc +2 -2
  156. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.html +1 -1
  157. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.rsc +18 -18
  158. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory/timeline/__PAGE__.segment.rsc +1 -1
  159. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory/timeline.segment.rsc +1 -1
  160. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  161. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk.segment.rsc +10 -9
  162. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_full.segment.rsc +18 -18
  163. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_head.segment.rsc +1 -1
  164. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_index.segment.rsc +2 -2
  165. package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_tree.segment.rsc +2 -2
  166. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.html +1 -9
  167. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.rsc +22 -25
  168. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk/memory/__PAGE__.segment.rsc +3 -3
  169. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
  170. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk.segment.rsc +10 -9
  171. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_full.segment.rsc +22 -25
  172. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_head.segment.rsc +1 -1
  173. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_index.segment.rsc +2 -2
  174. package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_tree.segment.rsc +2 -2
  175. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.html +1 -9
  176. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.rsc +22 -24
  177. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk/overview/__PAGE__.segment.rsc +3 -3
  178. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk/overview.segment.rsc +1 -1
  179. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk.segment.rsc +10 -9
  180. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_full.segment.rsc +22 -24
  181. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_head.segment.rsc +1 -1
  182. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_index.segment.rsc +2 -2
  183. package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_tree.segment.rsc +2 -2
  184. package/dashboard/.next/standalone/dashboard/.next/server/app/page_client-reference-manifest.js +1 -1
  185. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.html +1 -1
  186. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.rsc +18 -18
  187. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection/audit/__PAGE__.segment.rsc +1 -1
  188. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection/audit.segment.rsc +1 -1
  189. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  190. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk.segment.rsc +10 -9
  191. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_full.segment.rsc +18 -18
  192. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_head.segment.rsc +1 -1
  193. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_index.segment.rsc +2 -2
  194. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_tree.segment.rsc +2 -2
  195. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.html +1 -1
  196. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.rsc +22 -20
  197. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection/intercepts/__PAGE__.segment.rsc +1 -1
  198. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection/intercepts.segment.rsc +1 -1
  199. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  200. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk.segment.rsc +10 -9
  201. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_full.segment.rsc +22 -20
  202. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_head.segment.rsc +1 -1
  203. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_index.segment.rsc +2 -2
  204. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_tree.segment.rsc +2 -2
  205. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.html +1 -1
  206. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.rsc +22 -20
  207. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection/iron-dome/__PAGE__.segment.rsc +1 -1
  208. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection/iron-dome.segment.rsc +1 -1
  209. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  210. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk.segment.rsc +10 -9
  211. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_full.segment.rsc +22 -20
  212. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_head.segment.rsc +1 -1
  213. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_index.segment.rsc +2 -2
  214. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_tree.segment.rsc +2 -2
  215. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.html +1 -1
  216. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.rsc +22 -20
  217. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection/policies/__PAGE__.segment.rsc +1 -1
  218. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection/policies.segment.rsc +1 -1
  219. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  220. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk.segment.rsc +10 -9
  221. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_full.segment.rsc +22 -20
  222. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_head.segment.rsc +1 -1
  223. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_index.segment.rsc +2 -2
  224. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_tree.segment.rsc +2 -2
  225. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.html +1 -1
  226. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.rsc +22 -20
  227. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection/quarantine/__PAGE__.segment.rsc +1 -1
  228. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection/quarantine.segment.rsc +1 -1
  229. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  230. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk.segment.rsc +10 -9
  231. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_full.segment.rsc +22 -20
  232. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_head.segment.rsc +1 -1
  233. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_index.segment.rsc +2 -2
  234. package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_tree.segment.rsc +2 -2
  235. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.html +1 -9
  236. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.rsc +20 -19
  237. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk/protection/__PAGE__.segment.rsc +2 -2
  238. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
  239. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk.segment.rsc +10 -9
  240. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_full.segment.rsc +20 -19
  241. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_head.segment.rsc +1 -1
  242. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_index.segment.rsc +2 -2
  243. package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_tree.segment.rsc +2 -2
  244. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.html +1 -9
  245. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.rsc +20 -22
  246. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings/__PAGE__.segment.rsc +2 -2
  247. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings.segment.rsc +1 -1
  248. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +10 -9
  249. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_full.segment.rsc +20 -22
  250. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  251. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  252. package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  253. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.html +1 -1
  254. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.rsc +18 -18
  255. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain/xray/__PAGE__.segment.rsc +1 -1
  256. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain/xray.segment.rsc +1 -1
  257. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain.segment.rsc +1 -1
  258. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk.segment.rsc +10 -9
  259. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_full.segment.rsc +18 -18
  260. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_head.segment.rsc +1 -1
  261. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_index.segment.rsc +2 -2
  262. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_tree.segment.rsc +2 -2
  263. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.html +1 -1
  264. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.rsc +18 -19
  265. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk/supply-chain/__PAGE__.segment.rsc +1 -1
  266. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk/supply-chain.segment.rsc +1 -1
  267. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk.segment.rsc +10 -9
  268. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_full.segment.rsc +18 -19
  269. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_head.segment.rsc +1 -1
  270. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_index.segment.rsc +2 -2
  271. package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_tree.segment.rsc +2 -2
  272. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.html +1 -9
  273. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.rsc +20 -22
  274. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk/xray/__PAGE__.segment.rsc +2 -2
  275. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk/xray.segment.rsc +1 -1
  276. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk.segment.rsc +10 -9
  277. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_full.segment.rsc +20 -22
  278. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_head.segment.rsc +1 -1
  279. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_index.segment.rsc +2 -2
  280. package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_tree.segment.rsc +2 -2
  281. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/9f1d4_lucide-react_dist_esm_icons_47ec4567._.js +3 -0
  282. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__7d500b5a._.js +1 -9
  283. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__bea9887b._.js +3 -0
  284. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/{dashboard_45d60d74._.js → dashboard_01e81e69._.js} +2 -2
  285. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_14d63e36._.js +3 -0
  286. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_1b261cd5._.js +3 -0
  287. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_1b3af814._.js +3 -0
  288. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_44a1539a._.js +3 -0
  289. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_4835c323._.js +3 -0
  290. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_599483f2._.js +3 -0
  291. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_5ca514a1._.js +1 -1
  292. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_a6877bbc._.js +3 -0
  293. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_c219bf07._.js +3 -3
  294. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_861871f9._.js +3 -0
  295. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_overview_page_tsx_8c105626._.js +1 -1
  296. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_components_de7ac4f9._.js +3 -0
  297. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_components_protection_ProtectionOverview_tsx_54554a97._.js +2 -2
  298. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_components_xray_XRayOverview_tsx_ceba698e._.js +1 -1
  299. package/dashboard/.next/standalone/dashboard/.next/server/pages/404.html +1 -9
  300. package/dashboard/.next/standalone/dashboard/.next/server/pages/500.html +2 -2
  301. package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.js +1 -1
  302. package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.json +1 -1
  303. package/dashboard/.next/standalone/dashboard/.next/static/chunks/1600063be806f47c.js +1 -0
  304. package/dashboard/.next/standalone/dashboard/.next/static/chunks/61aaa0c660c32b96.js +1 -0
  305. package/dashboard/.next/standalone/dashboard/.next/static/chunks/69074f4a9b09c31d.js +1 -0
  306. package/dashboard/.next/standalone/dashboard/.next/static/chunks/881477f5d01c1d9b.js +1 -0
  307. package/dashboard/.next/standalone/dashboard/.next/static/chunks/8eabb856fd0e50b7.js +1 -0
  308. package/dashboard/.next/standalone/dashboard/.next/static/chunks/98ae91e0a6f5d317.css +1 -0
  309. package/dashboard/.next/standalone/dashboard/.next/static/chunks/a95dbcc1842ad9d7.js +1 -0
  310. package/dashboard/.next/standalone/dashboard/.next/static/chunks/{4d0b86f6afedd8b5.js → b8eceefe44227149.js} +2 -2
  311. package/dashboard/.next/standalone/dashboard/.next/static/chunks/{f86a7ba98ba185c3.js → cfbc41857d998b74.js} +6 -6
  312. package/dashboard/.next/standalone/dashboard/.next/static/chunks/d2837977142371d5.js +1 -0
  313. package/dashboard/.next/standalone/dashboard/.next/static/chunks/de9f5ba8bc67d4d9.js +1 -0
  314. package/dashboard/.next/standalone/dashboard/.next/static/chunks/e8884e7f3b85fd0b.js +1 -0
  315. package/dashboard/.next/standalone/dashboard/node_modules/source-map/package.json +73 -0
  316. package/dashboard/.next/standalone/dashboard/node_modules/source-map-support/package.json +31 -0
  317. package/dashboard/.next/standalone/dashboard/package.json +8 -6
  318. package/dist/api/routes/recall.js +5 -1
  319. package/dist/cli/stats-command.js +30 -0
  320. package/dist/memory/decay.d.ts +1 -0
  321. package/dist/memory/decay.js +10 -2
  322. package/dist/memory/lifecycle.js +6 -3
  323. package/dist/memory/metrics.d.ts +72 -0
  324. package/dist/memory/metrics.js +162 -0
  325. package/dist/memory/store.d.ts +1 -1
  326. package/dist/memory/store.js +8 -4
  327. package/dist/server.js +1 -1
  328. package/dist/tools/context.d.ts +3 -1
  329. package/dist/tools/context.js +13 -2
  330. package/package.json +1 -1
  331. package/scripts/prompt-recall-hook.mjs +6 -0
  332. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/9f1d4_lucide-react_dist_esm_icons_3a8e61d9._.js +0 -3
  333. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__7f43774d._.js +0 -3
  334. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_11e120e8._.js +0 -3
  335. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_2373e047._.js +0 -3
  336. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_283c47c0._.js +0 -3
  337. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_30ecb37e._.js +0 -3
  338. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_5ccb6514._.js +0 -3
  339. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_6999a855._.js +0 -3
  340. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_c33b336f._.js +0 -3
  341. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_44a9f72c._.js +0 -3
  342. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_d191b6dc._.js +0 -3
  343. package/dashboard/.next/standalone/dashboard/.next/static/chunks/0fa2c109e0d6d832.js +0 -1
  344. package/dashboard/.next/standalone/dashboard/.next/static/chunks/1aba5ddfecdd0947.js +0 -1
  345. package/dashboard/.next/standalone/dashboard/.next/static/chunks/349dace3a1c9af01.js +0 -1
  346. package/dashboard/.next/standalone/dashboard/.next/static/chunks/3b671e7effc074d1.js +0 -1
  347. package/dashboard/.next/standalone/dashboard/.next/static/chunks/6aba18b7aac42ccd.js +0 -1
  348. package/dashboard/.next/standalone/dashboard/.next/static/chunks/75769fa28c7a2e99.js +0 -1
  349. package/dashboard/.next/standalone/dashboard/.next/static/chunks/8d4a0f601450b091.js +0 -1
  350. package/dashboard/.next/standalone/dashboard/.next/static/chunks/aee9601911b790ca.css +0 -1
  351. package/dashboard/.next/standalone/dashboard/.next/static/chunks/bcfaf98940462e7d.js +0 -1
  352. package/dashboard/.next/standalone/dashboard/.next/static/chunks/c55c1a1a956d2aff.js +0 -1
  353. /package/dashboard/.next/standalone/dashboard/.next/static/{6wRWKYDseKVJd5JfOCIDU → h2qG7AvaXDfMKQrI-bK4V}/_buildManifest.js +0 -0
  354. /package/dashboard/.next/standalone/dashboard/.next/static/{6wRWKYDseKVJd5JfOCIDU → h2qG7AvaXDfMKQrI-bK4V}/_clientMiddlewareManifest.json +0 -0
  355. /package/dashboard/.next/standalone/dashboard/.next/static/{6wRWKYDseKVJd5JfOCIDU → h2qG7AvaXDfMKQrI-bK4V}/_ssgManifest.js +0 -0
  356. /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/buffer-from/index.js +0 -0
  357. /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/buffer-from/package.json +0 -0
  358. /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/source-map/lib/array-set.js +0 -0
  359. /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/source-map/lib/base64-vlq.js +0 -0
  360. /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/source-map/lib/base64.js +0 -0
  361. /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/source-map/lib/binary-search.js +0 -0
  362. /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/source-map/lib/mapping-list.js +0 -0
  363. /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/source-map/lib/quick-sort.js +0 -0
  364. /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/source-map/lib/source-map-consumer.js +0 -0
  365. /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/source-map/lib/source-map-generator.js +0 -0
  366. /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/source-map/lib/source-node.js +0 -0
  367. /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/source-map/lib/util.js +0 -0
  368. /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/source-map/source-map.js +0 -0
  369. /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/source-map-support/LICENSE.md +0 -0
  370. /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/source-map-support/README.md +0 -0
  371. /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/source-map-support/browser-source-map-support.js +0 -0
  372. /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/source-map-support/register.js +0 -0
  373. /package/dashboard/.next/standalone/{node_modules → dashboard/node_modules}/source-map-support/source-map-support.js +0 -0
@@ -0,0 +1,162 @@
1
+ /**
2
+ * Memory-quality metrics (Phase 0, measure-first).
3
+ *
4
+ * Read-only instruments that make memory-quality problems QUERYABLE before any
5
+ * model change — so a fix can be validated against the same number, not vibes.
6
+ * Nothing here mutates or deletes; every function is a pure read of the store.
7
+ *
8
+ * The headline instrument is `getSalienceDistribution`: it quantifies the
9
+ * "salience wall" (raw salience saturates at 1.0 for long-lived memories, so it
10
+ * stops discriminating) and the fragment pollution within that wall — the exact
11
+ * shape the edith field report exposed (43/43 long-term at ≥0.99, 81% of them
12
+ * mid-sentence fragments). Re-run it after a change to prove the wall spread and
13
+ * the fragments fell.
14
+ */
15
+ import { getDatabase } from '../database/init.js';
16
+ /** Salience band boundaries. The top boundary is 0.95 so the final band is the
17
+ * "wall" — the cohort that has ratcheted to (effectively) maximum salience. */
18
+ const BAND_EDGES = [0, 0.2, 0.4, 0.6, 0.8, 0.95, 1.0001];
19
+ const WALL_THRESHOLD = 0.95;
20
+ /** WARN thresholds (roadmap Phase 0): a store is unhealthy when most long-term
21
+ * memories have hit the wall, or when most of the wall is fragments. */
22
+ const WALL_LTM_PCT_WARN = 40;
23
+ const FRAGMENT_PCT_WARN = 30;
24
+ /**
25
+ * Measurement heuristic for "mid-sentence fragment": the content begins on a
26
+ * lowercase function word (sliced before the clause). Intentionally simpler
27
+ * than the ranking-time completeness factor in scripts/lib/salience.mjs — this
28
+ * is a histogram signal, not a recall gate, and "starts lowercase on a function
29
+ * word" captured ~81% of the edith fragment cohort. Kept local (no cross-module
30
+ * coupling into the hot path) and documented as an approximation.
31
+ */
32
+ const FRAGMENT_LEAD_WORDS = new Set([
33
+ 'and', 'or', 'but', 'nor', 'the', 'a', 'an', 'to', 'of', 'in', 'on', 'at',
34
+ 'by', 'for', 'with', 'without', 'from', 'as', 'is', 'are', 'was', 'were',
35
+ 'be', 'been', 'that', 'which', 'who', 'whose', 'because', 'so', 'if', 'when',
36
+ 'while', 'than', 'then', 'into', 'onto', 'over', 'under', 'via', 'per',
37
+ 'about', 'after', 'before', 'between', 'during',
38
+ ]);
39
+ export function looksLikeFragmentContent(content) {
40
+ if (typeof content !== 'string')
41
+ return false;
42
+ const t = content.trim();
43
+ if (!t)
44
+ return false;
45
+ const firstLetter = t.match(/[A-Za-z]/);
46
+ if (!firstLetter || firstLetter[0] < 'a' || firstLetter[0] > 'z')
47
+ return false; // not a lowercase lead
48
+ // First word carrying letters (skip leading punctuation / em-dashes).
49
+ let first = '';
50
+ for (const w of t.split(/\s+/)) {
51
+ const c = w.toLowerCase().replace(/[^a-z']/g, '');
52
+ if (c) {
53
+ first = c;
54
+ break;
55
+ }
56
+ }
57
+ return FRAGMENT_LEAD_WORDS.has(first);
58
+ }
59
+ function bandLabel(lo, hi) {
60
+ const top = hi > 1 ? 1 : hi;
61
+ return `${lo.toFixed(2)}–${top.toFixed(2)}`;
62
+ }
63
+ function pct(n, d) {
64
+ return d > 0 ? Math.round((n / d) * 100) : 0;
65
+ }
66
+ /**
67
+ * Compute the salience distribution + wall + fragment metrics for the store.
68
+ *
69
+ * @param db Optional better-sqlite3 handle (defaults to the live DB). Passing a
70
+ * handle keeps it unit-testable without touching the real store.
71
+ * @param project Optional project filter (NULL-project rows always included).
72
+ */
73
+ export function getSalienceDistribution(db = getDatabase(), project) {
74
+ const where = project ? 'WHERE (project = ? OR project IS NULL)' : '';
75
+ const args = project ? [project] : [];
76
+ const rows = db
77
+ .prepare(`SELECT type, salience, content FROM memories ${where}`)
78
+ .all(...args);
79
+ const bands = [];
80
+ for (let i = 0; i < BAND_EDGES.length - 1; i++) {
81
+ bands.push({ band: bandLabel(BAND_EDGES[i], BAND_EDGES[i + 1]), count: 0, long_term: 0, short_term: 0, episodic: 0 });
82
+ }
83
+ let ltmTotal = 0;
84
+ let ltmAtWall = 0;
85
+ let wallFragments = 0;
86
+ for (const r of rows) {
87
+ const s = typeof r.salience === 'number' ? r.salience : 0;
88
+ let bi = BAND_EDGES.findIndex((edge, i) => i > 0 && s < edge) - 1;
89
+ if (bi < 0)
90
+ bi = bands.length - 1; // clamp s>=1.0 into the top band
91
+ const band = bands[bi];
92
+ band.count++;
93
+ if (r.type === 'long_term')
94
+ band.long_term++;
95
+ else if (r.type === 'episodic')
96
+ band.episodic++;
97
+ else
98
+ band.short_term++;
99
+ if (r.type === 'long_term') {
100
+ ltmTotal++;
101
+ if (s >= WALL_THRESHOLD) {
102
+ ltmAtWall++;
103
+ if (looksLikeFragmentContent(r.content))
104
+ wallFragments++;
105
+ }
106
+ }
107
+ }
108
+ const ltmPct = pct(ltmAtWall, ltmTotal);
109
+ const fragPctOfWall = pct(wallFragments, ltmAtWall);
110
+ const warnings = [];
111
+ if (ltmPct > WALL_LTM_PCT_WARN) {
112
+ warnings.push(`Salience wall: ${ltmPct}% of long-term memories sit at salience ≥${WALL_THRESHOLD} (raw salience has stopped discriminating).`);
113
+ }
114
+ if (fragPctOfWall > FRAGMENT_PCT_WARN) {
115
+ warnings.push(`Fragment pollution: ${fragPctOfWall}% of the high-salience (≥${WALL_THRESHOLD}) cohort are mid-sentence fragments.`);
116
+ }
117
+ return {
118
+ total: rows.length,
119
+ bands,
120
+ wall: { ltmAtOrAbove095: ltmAtWall, ltmTotal, ltmPct },
121
+ fragments: { atOrAbove095: wallFragments, pctOfWall: fragPctOfWall },
122
+ warnings,
123
+ };
124
+ }
125
+ /**
126
+ * Aggregate hook_invocations into a fires-vs-extracted yield per hook — the
127
+ * instrument behind EDITH's "pre-compact fired once vs 270 stop-fires" finding.
128
+ * Once the recall hook records an invocation (memories_extracted = injected
129
+ * count), the `prompt-recall` row becomes the cumulative "is the store actually
130
+ * being read into prompts?" signal. Pure read; tolerates a missing table.
131
+ *
132
+ * @param sinceIso Optional ISO-8601 lower bound on `invoked_at` (lexicographic,
133
+ * safe because telemetry writes ISO-8601 UTC). Omit for all-time.
134
+ */
135
+ export function getHookYield(db = getDatabase(), sinceIso) {
136
+ let rows;
137
+ try {
138
+ const where = sinceIso ? 'WHERE invoked_at >= ?' : '';
139
+ const args = sinceIso ? [sinceIso] : [];
140
+ rows = db
141
+ .prepare(`SELECT hook_name, COUNT(*) AS fires, COALESCE(SUM(memories_extracted), 0) AS extracted
142
+ FROM hook_invocations ${where} GROUP BY hook_name`)
143
+ .all(...args);
144
+ }
145
+ catch {
146
+ // hook_invocations may not exist on a brand-new store.
147
+ return { hooks: [], totalFires: 0, totalExtracted: 0 };
148
+ }
149
+ const hooks = rows
150
+ .map((r) => ({
151
+ hook: r.hook_name,
152
+ fires: r.fires,
153
+ extracted: r.extracted,
154
+ avgPerFire: r.fires > 0 ? Math.round((r.extracted / r.fires) * 100) / 100 : 0,
155
+ }))
156
+ .sort((a, b) => b.fires - a.fires);
157
+ return {
158
+ hooks,
159
+ totalFires: hooks.reduce((n, h) => n + h.fires, 0),
160
+ totalExtracted: hooks.reduce((n, h) => n + h.extracted, 0),
161
+ };
162
+ }
@@ -76,7 +76,7 @@ export declare function getMemoriesByType(type: MemoryType, limit?: number): Mem
76
76
  * Get high-priority memories (for context injection)
77
77
  */
78
78
  export declare function getHighPriorityMemories(limit?: number, project?: string, source?: DefenceSource, filters?: MemoryListFilters): Memory[];
79
- /** Count high-priority (salience >= 0.6) memories matching the filters. */
79
+ /** Count high-priority memories (effective salience >= 0.6) matching the filters. */
80
80
  export declare function countHighPriorityMemories(project?: string, filters?: MemoryListFilters): number;
81
81
  /**
82
82
  * Get memory statistics
@@ -942,7 +942,11 @@ export function getMemoriesByType(type, limit = 50) {
942
942
  */
943
943
  export function getHighPriorityMemories(limit = 10, project, source, filters) {
944
944
  const db = getDatabase();
945
- let sql = `SELECT * FROM memories WHERE salience >= 0.6`;
945
+ // Phase 1b: gate + order on EFFECTIVE salience (the decaying score), not raw
946
+ // salience. Raw salience is a one-way ratchet, so a stale long-lived row sits
947
+ // at 1.0 forever and used to top this no-re-rank path. COALESCE falls back to
948
+ // raw salience when decayed_score is unset (never-scored rows unaffected).
949
+ let sql = `SELECT * FROM memories WHERE COALESCE(decayed_score, salience) >= 0.6`;
946
950
  const params = [];
947
951
  if (project) {
948
952
  sql += ' AND project = ?';
@@ -956,17 +960,17 @@ export function getHighPriorityMemories(limit = 10, project, source, filters) {
956
960
  sql += ' AND category = ?';
957
961
  params.push(filters.category);
958
962
  }
959
- sql += ' ORDER BY salience DESC, last_accessed DESC LIMIT ?';
963
+ sql += ' ORDER BY COALESCE(decayed_score, salience) DESC, last_accessed DESC LIMIT ?';
960
964
  params.push(source ? limit * 2 : limit);
961
965
  let rows = db.prepare(sql).all(...params);
962
966
  if (source)
963
967
  rows = filterRowsByAccess(rows, source);
964
968
  return rows.slice(0, limit).map(rowToMemory);
965
969
  }
966
- /** Count high-priority (salience >= 0.6) memories matching the filters. */
970
+ /** Count high-priority memories (effective salience >= 0.6) matching the filters. */
967
971
  export function countHighPriorityMemories(project, filters) {
968
972
  const db = getDatabase();
969
- let sql = `SELECT COUNT(*) as count FROM memories WHERE salience >= 0.6`;
973
+ let sql = `SELECT COUNT(*) as count FROM memories WHERE COALESCE(decayed_score, salience) >= 0.6`;
970
974
  const params = [];
971
975
  if (project) {
972
976
  sql += ' AND project = ?';
package/dist/server.js CHANGED
@@ -361,7 +361,7 @@ Returns: architecture decisions, patterns, pending items, recent activity.`, {
361
361
  return {
362
362
  content: [{
363
363
  type: 'text',
364
- text: result.success ? formatStats(result.stats) : `Error: ${result.error}`
364
+ text: result.success ? formatStats(result.stats, result.salience) : `Error: ${result.error}`
365
365
  }],
366
366
  };
367
367
  }));
@@ -6,6 +6,7 @@
6
6
  */
7
7
  import { z } from 'zod';
8
8
  import { getMemoryStats } from '../memory/store.js';
9
+ import { type SalienceDistribution } from '../memory/metrics.js';
9
10
  import { Memory, ContextSummary, ConsolidationResult } from '../memory/types.js';
10
11
  export declare const getContextSchema: z.ZodObject<{
11
12
  project: z.ZodOptional<z.ZodString>;
@@ -118,9 +119,10 @@ export declare function executeStats(input: {
118
119
  }): {
119
120
  success: boolean;
120
121
  stats?: ReturnType<typeof getMemoryStats>;
122
+ salience?: SalienceDistribution;
121
123
  error?: string;
122
124
  };
123
- export declare function formatStats(stats: ReturnType<typeof getMemoryStats>): string;
125
+ export declare function formatStats(stats: ReturnType<typeof getMemoryStats>, salience?: SalienceDistribution): string;
124
126
  export declare const exportSchema: z.ZodObject<{
125
127
  project: z.ZodOptional<z.ZodString>;
126
128
  }, "strip", z.ZodTypeAny, {
@@ -7,6 +7,8 @@
7
7
  import { z } from 'zod';
8
8
  import { generateContextSummary, formatContextSummary, startSession, endSession, getSuggestedContext, consolidate, previewConsolidation, exportMemories, importMemories, } from '../memory/consolidate.js';
9
9
  import { getMemoryStats } from '../memory/store.js';
10
+ import { getSalienceDistribution } from '../memory/metrics.js';
11
+ import { getDatabase } from '../database/init.js';
10
12
  import { resolveProject } from '../context/project-context.js';
11
13
  // Input schema for getting context
12
14
  export const getContextSchema = z.object({
@@ -208,7 +210,9 @@ export function executeStats(input) {
208
210
  const resolvedProject = resolveProject(input.project);
209
211
  const projectFilter = resolvedProject ?? undefined;
210
212
  const stats = getMemoryStats(projectFilter);
211
- return { success: true, stats };
213
+ // Phase 0: include the salience-wall instrument so memory_stats surfaces it.
214
+ const salience = getSalienceDistribution(getDatabase(), projectFilter);
215
+ return { success: true, stats, salience };
212
216
  }
213
217
  catch (error) {
214
218
  return {
@@ -217,7 +221,7 @@ export function executeStats(input) {
217
221
  };
218
222
  }
219
223
  }
220
- export function formatStats(stats) {
224
+ export function formatStats(stats, salience) {
221
225
  const lines = [
222
226
  '## Memory Statistics',
223
227
  '',
@@ -233,6 +237,13 @@ export function formatStats(stats) {
233
237
  for (const [category, count] of Object.entries(stats.byCategory)) {
234
238
  lines.push(` - ${category}: ${count}`);
235
239
  }
240
+ // Phase 0: the salience-wall instrument. Raw salience saturates for surviving
241
+ // memories, so a high wall % means the score has stopped discriminating.
242
+ if (salience) {
243
+ lines.push('', '### Memory Quality', ` - At salience wall (≥0.95): ${salience.wall.ltmAtOrAbove095}/${salience.wall.ltmTotal} long-term (${salience.wall.ltmPct}%)`, ` - Fragments in wall: ${salience.fragments.atOrAbove095} (${salience.fragments.pctOfWall}%)`);
244
+ for (const w of salience.warnings)
245
+ lines.push(` ⚠ ${w}`);
246
+ }
236
247
  return lines.join('\n');
237
248
  }
238
249
  // Export/Import
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shieldcortex",
3
- "version": "4.33.2",
3
+ "version": "4.35.0",
4
4
  "description": "Trustworthy memory and security for AI agents. Recall debugging, review queue, OpenClaw session capture, and memory poisoning defence for Claude Code, Codex, OpenClaw, LangChain, and MCP agents.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -22,6 +22,7 @@ import { truncatePreservingWords } from './lib/truncate.mjs';
22
22
  import { compareRecallResults } from './lib/recall-rank.mjs';
23
23
  import { computeEffectiveSalience } from './lib/salience.mjs';
24
24
  import { writeRecallLog } from './lib/recall-log.mjs';
25
+ import { recordHookInvocation } from './lib/telemetry.mjs';
25
26
  import { filterByRelevance, extractQueryTerms } from './lib/recall-relevance.mjs';
26
27
 
27
28
  // ==================== CONFIG ====================
@@ -535,6 +536,11 @@ process.stdin.on('end', async () => {
535
536
  UPDATE memories SET access_count = access_count + 1, last_accessed = datetime('now')
536
537
  WHERE id IN (${placeholders})
537
538
  `).run(...ids);
539
+ // Phase 0 measurement: record the recall injection in hook_invocations
540
+ // (reusing the connection we already opened). This is the cumulative
541
+ // "is the store actually read into prompts?" signal — fires = recalls
542
+ // that injected ≥1, memories_extracted = count injected. Best-effort.
543
+ recordHookInvocation(writeDb, { hookName: 'prompt-recall', memoriesExtracted: memories.length });
538
544
  writeDb.close();
539
545
  } catch {
540
546
  // Non-critical — don't block on access count update
@@ -1,3 +0,0 @@
1
- module.exports=[20203,a=>{"use strict";let b=(0,a.i(70694).default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);a.s(["RefreshCw",()=>b],20203)},29448,91030,a=>{"use strict";var b=a.i(70694);let c=(0,b.default)("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);a.s(["GitBranch",()=>c],29448);let d=(0,b.default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);a.s(["Search",()=>d],91030)},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)},77115,a=>{"use strict";let b=(0,a.i(70694).default)("clock-3",[["path",{d:"M12 6v6h4",key:"135r8i"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);a.s(["Clock3",()=>b],77115)},48036,a=>{"use strict";let b=(0,a.i(70694).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);a.s(["XCircle",()=>b],48036)}];
2
-
3
- //# sourceMappingURL=9f1d4_lucide-react_dist_esm_icons_3a8e61d9._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[53731,(a,b,c)=>{"use strict";b.exports=a.r(14865).vendored.contexts.HooksClientContext},69136,(a,b,c)=>{"use strict";b.exports=a.r(14865).vendored.contexts.ServerInsertedHtml},56704,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},20635,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},32319,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},54935,(a,b,c)=>{"use strict";b.exports=a.r(14865).vendored.contexts.AppRouterContext},18780,(a,b,c)=>{"use strict";b.exports=a.r(14865).vendored["react-ssr"].ReactDOM},90382,(a,b,c)=>{"use strict";b.exports=a.r(14865).vendored["react-ssr"].ReactServerDOMTurbopackClient},95480,a=>{"use strict";let b=(0,a.i(70694).default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);a.s(["X",()=>b],95480)},5479,a=>{"use strict";let b=(0,a.i(70694).default)("pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]);a.s(["Pin",()=>b],5479)},66397,a=>{"use strict";let b=(0,a.i(70694).default)("scan-search",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["path",{d:"m16 16-1.9-1.9",key:"1dq9hf"}]]);a.s(["ScanSearch",()=>b],66397)},22524,a=>{"use strict";let b=(0,a.i(70694).default)("shield-check",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);a.s(["ShieldCheck",()=>b],22524)},88904,a=>{"use strict";let b=(0,a.i(70694).default)("activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);a.s(["Activity",()=>b],88904)},98472,a=>{"use strict";let b=(0,a.i(70694).default)("shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]]);a.s(["Shield",()=>b],98472)},14126,a=>{"use strict";let b=(0,a.i(70694).default)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]);a.s(["Sparkles",()=>b],14126)},68839,a=>{"use strict";let b;var c=a.i(98419);let d=a=>{let b,c=new Set,d=(a,d)=>{let e="function"==typeof a?a(b):a;if(!Object.is(e,b)){let a=b;b=(null!=d?d:"object"!=typeof e||null===e)?e:Object.assign({},b,e),c.forEach(c=>c(b,a))}},e=()=>b,f={setState:d,getState:e,getInitialState:()=>g,subscribe:a=>(c.add(a),()=>c.delete(a))},g=b=a(d,e,f);return f},e=a=>{let b=a?d(a):d,e=a=>(function(a,b=a=>a){let d=c.default.useSyncExternalStore(a.subscribe,c.default.useCallback(()=>b(a.getState()),[a,b]),c.default.useCallback(()=>b(a.getInitialState()),[a,b]));return c.default.useDebugValue(d),d})(b,a);return Object.assign(e,b),e},f=(b=a=>({selectedMemory:null,setSelectedMemory:b=>a({selectedMemory:b}),selectedAuditEntry:null,setSelectedAuditEntry:b=>a({selectedAuditEntry:b}),viewMode:"overview",setViewMode:b=>a({viewMode:b}),typeFilter:null,categoryFilter:null,projectFilter:null,setTypeFilter:b=>a({typeFilter:b}),setCategoryFilter:b=>a({categoryFilter:b}),setProjectFilter:b=>a({projectFilter:b}),reviewFocus:null,setReviewFocus:b=>a({reviewFocus:b}),recentEvents:[],addEvent:b=>a(a=>({recentEvents:[b,...a.recentEvents].slice(0,50)})),clearEvents:()=>a({recentEvents:[]}),cameraPosition:[0,0,12],setCameraPosition:b=>a({cameraPosition:b}),showLeftSidebar:!0,showRightSidebar:!0,toggleLeftSidebar:()=>a(a=>({showLeftSidebar:!a.showLeftSidebar})),toggleRightSidebar:()=>a(a=>({showRightSidebar:!a.showRightSidebar})),searchQuery:"",setSearchQuery:b=>a({searchQuery:b}),sidebarPinned:!1,toggleSidebarPinned:()=>a(a=>({sidebarPinned:!a.sidebarPinned})),activeTab:{},setActiveTab:(b,c)=>a(a=>({activeTab:{...a.activeTab,[b]:c}}))}))?e(b):e;a.s(["useDashboardStore",0,f],68839)},40145,a=>{"use strict";let b=(0,a.i(70694).default)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);a.s(["Settings",()=>b],40145)},6476,a=>{"use strict";let b=(0,a.i(70694).default)("brain",[["path",{d:"M12 18V5",key:"adv99a"}],["path",{d:"M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4",key:"1e3is1"}],["path",{d:"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5",key:"1gqd8o"}],["path",{d:"M17.997 5.125a4 4 0 0 1 2.526 5.77",key:"iwvgf7"}],["path",{d:"M18 18a4 4 0 0 0 2-7.464",key:"efp6ie"}],["path",{d:"M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517",key:"1gq6am"}],["path",{d:"M6 18a4 4 0 0 1-2-7.464",key:"k1g0md"}],["path",{d:"M6.003 5.125a4 4 0 0 0-2.526 5.77",key:"q97ue3"}]]);a.s(["Brain",()=>b],6476)}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__7f43774d._.js.map
@@ -1,3 +0,0 @@
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)},13106,a=>{"use strict";var b=a.i(16306),c=a.i(64565);function d({className:a}){return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:(0,c.cn)("theme-glass:hidden flex items-center overflow-hidden rounded-md bg-[var(--term-surface-2)] text-[var(--term-text-muted)] text-xs leading-none animate-pulse px-2",a),"aria-busy":"true","aria-live":"polite",children:(0,b.jsx)("span",{className:"select-none whitespace-nowrap tracking-tighter",children:"█▓▓▓▒▒▒░░░░ ▓▓▒▒░░ █▓▒░ ▓▓▒░░ █▓▓▒░░░ ▓▒░░ █▒▒░"})}),(0,b.jsx)("div",{className:(0,c.cn)("hidden theme-glass:block animate-pulse rounded-xl bg-[var(--sc-surface-interactive)]",a),"aria-busy":"true","aria-live":"polite"})]})}function e(){return(0,b.jsxs)("div",{className:"mx-auto max-w-7xl space-y-6 p-6",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(d,{className:"h-3 w-24"}),(0,b.jsx)(d,{className:"h-7 w-56"}),(0,b.jsx)(d,{className:"h-4 w-80"})]}),(0,b.jsx)(d,{className:"h-10 w-96"}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-4 lg:grid-cols-4",children:[(0,b.jsx)(d,{className:"h-24"}),(0,b.jsx)(d,{className:"h-24"}),(0,b.jsx)(d,{className:"h-24"}),(0,b.jsx)(d,{className:"h-24"})]}),(0,b.jsxs)("div",{className:"grid gap-6 lg:grid-cols-2",children:[(0,b.jsx)(d,{className:"h-64"}),(0,b.jsx)(d,{className:"h-64"})]})]})}a.s(["PageSkeleton",()=>e,"Skeleton",()=>d])},74150,35031,79030,a=>{"use strict";let b=(0,a.i(70694).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);a.s(["CheckCircle2",()=>b],74150);var c=a.i(40458),d=a.i(66807),e=a.i(14220),f=a.i(86044);let g=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function h(){let a=await (0,f.authFetch)(`${g}/api/license/status`);if(!a.ok)throw Error("Failed to fetch license status");return a.json()}async function i(a){let b=await (0,f.authFetch)(`${g}/api/license/activate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:a})});if(!b.ok)throw Error((await b.json().catch(()=>({error:"Activation failed"}))).error||"Activation failed");return b.json()}async function j(){let a=await (0,f.authFetch)(`${g}/api/license/deactivate`,{method:"POST"});if(!a.ok)throw Error("Failed to deactivate license");return a.json()}function k(){return(0,c.useQuery)({queryKey:["license-status"],queryFn:h,refetchInterval:6e4,retry:2})}function l(){let a=(0,e.useQueryClient)();return(0,d.useMutation)({mutationFn:a=>i(a),onSuccess:()=>{a.invalidateQueries({queryKey:["license-status"]})}})}function m(){let a=(0,e.useQueryClient)();return(0,d.useMutation)({mutationFn:j,onSuccess:()=>{a.invalidateQueries({queryKey:["license-status"]})}})}a.s(["useActivateLicense",()=>l,"useDeactivateLicense",()=>m,"useLicenseStatus",()=>k],35031),a.s(["PLAN_PRICING",0,{pro:{label:"Pro",price:"£29/mo"},team:{label:"Team",price:"£99/mo"}},"TIER_BG",0,{free:"bg-[var(--sc-surface-interactive)]",pro:"bg-[var(--sc-cyan)]/10",team:"bg-[var(--sc-coral)]/10",enterprise:"bg-[var(--sc-amber)]/10"},"TIER_COLOURS",0,{free:"text-[var(--sc-text-muted)]",pro:"text-[var(--sc-cyan)]",team:"text-[var(--sc-coral)]",enterprise:"text-[var(--sc-amber)]"},"TIER_LABELS",0,{free:"Free",pro:"Pro",team:"Team",enterprise:"Enterprise"}],79030)},47520,a=>{"use strict";let b=(0,a.i(70694).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);a.s(["AlertTriangle",()=>b],47520)},32322,a=>{"use strict";let b=(0,a.i(70694).default)("lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);a.s(["Lock",()=>b],32322)},79151,a=>{"use strict";var b=a.i(16306),c=a.i(64565),d=a.i(32322);function e({tabs:a,activeTab:e,onChange:f,className:g}){return(0,b.jsx)("div",{className:(0,c.cn)("flex items-center gap-4 overflow-x-auto border-b border-[var(--term-border)] px-1 scrollbar-hide","theme-glass:gap-1 theme-glass:rounded-xl theme-glass:border-0 theme-glass:bg-[var(--sc-bg-surface)] theme-glass:p-1",g),role:"tablist",children:a.map(a=>{let g=a.id===e;return(0,b.jsxs)("button",{type:"button",role:"tab","aria-selected":g?"true":"false",onClick:()=>f(a.id),className:(0,c.cn)("relative flex shrink-0 items-center gap-2 px-1 py-2 text-xs font-mono transition-colors","focus-visible:outline-1 focus-visible:outline-offset-2 focus-visible:outline-[var(--term-electric)]",g?"text-[var(--term-electric-fg)]":"text-[var(--term-text-muted)] hover:text-[var(--term-text)]","theme-glass:font-medium theme-glass:font-sans theme-glass:rounded-lg theme-glass:px-3 theme-glass:py-2 sm:theme-glass:px-4 sm:theme-glass:text-sm",g&&"theme-glass:bg-[var(--sc-bg-elevated)] theme-glass:text-[var(--sc-text-primary)]",!g&&"theme-glass:hover:text-[var(--sc-text-secondary)]"),children:[a.icon,(0,b.jsx)("span",{children:a.label}),a.locked&&(0,b.jsx)(d.Lock,{size:11,className:"text-[var(--term-warn)] theme-glass:text-[var(--sc-coral)]"}),void 0!==a.count&&a.count>0&&(0,b.jsxs)("span",{className:"text-[var(--term-text-muted)] theme-glass:ml-0.5 theme-glass:rounded-full theme-glass:bg-[var(--sc-coral)]/15 theme-glass:px-1.5 theme-glass:py-0.5 theme-glass:text-[10px] theme-glass:font-bold theme-glass:text-[var(--sc-coral)]",children:[(0,b.jsxs)("span",{className:"theme-glass:hidden",children:["(",a.count,")"]}),(0,b.jsx)("span",{className:"hidden theme-glass:inline",children:a.count})]}),g&&(0,b.jsx)("span",{"aria-hidden":!0,className:"absolute -bottom-px left-0 right-0 h-px bg-[var(--term-electric)] theme-glass:hidden"})]},a.id)})})}function f({eyebrow:a,title:d,subtitle:f,actions:g,tabs:h,activeTab:i,onTabChange:j,className:k}){return(0,b.jsxs)("div",{className:(0,c.cn)("space-y-3 theme-glass:space-y-4",k),children:[(0,b.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between sm:gap-4 theme-glass:gap-3",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsxs)("div",{className:"theme-glass:hidden",children:[a&&(0,b.jsxs)("p",{className:"text-[11px] uppercase tracking-wider text-[var(--term-text-muted)]",children:[(0,b.jsx)("span",{className:"text-[var(--term-electric-fg)]",children:"›"})," ",a]}),(0,b.jsxs)("h1",{className:"mt-1 flex items-baseline flex-wrap gap-2 text-base font-mono text-[var(--term-text)] sm:text-lg",children:[(0,b.jsx)("span",{className:"text-[var(--term-electric-fg)]","aria-hidden":!0,children:"$"}),(0,b.jsx)("span",{children:"shieldcortex"}),(0,b.jsx)("span",{className:"text-[var(--term-text-dim)]",children:d.toLowerCase()}),(0,b.jsx)("span",{className:"cli-cursor text-[var(--term-electric-fg)]","aria-hidden":!0})]}),f&&(0,b.jsxs)("p",{className:"mt-1 text-xs text-[var(--term-text-muted)]",children:[(0,b.jsx)("span",{"aria-hidden":!0,children:"#"})," ",f]})]}),(0,b.jsxs)("div",{className:"hidden theme-glass:block",children:[a&&(0,b.jsx)("p",{className:"text-[10px] font-semibold uppercase tracking-[0.2em] text-[var(--sc-coral)] sm:text-[11px]",children:a}),(0,b.jsx)("h1",{className:"mt-1 text-xl font-bold text-[var(--sc-text-primary)] sm:text-2xl",children:d}),f&&(0,b.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-secondary)] sm:text-sm",children:f})]})]}),g&&(0,b.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:g})]}),h&&i&&j&&(0,b.jsx)(e,{tabs:h,activeTab:i,onChange:j})]})}a.s(["PageHeader",()=>f],79151)},23808,a=>{"use strict";var b=a.i(16306),c=a.i(64565),d=a.i(98419);let e={coral:"border border-[var(--term-electric)] text-[var(--term-electric-fg)] bg-transparent hover:bg-[var(--term-electric)]/10",cyan:"border border-[var(--term-neon)] text-[var(--term-neon-fg)] bg-transparent hover:bg-[var(--term-neon)]/10",ghost:"border border-transparent text-[var(--term-text-muted)] bg-transparent hover:text-[var(--term-text)] hover:border-[var(--term-border)]",outline:"border border-[var(--term-border)] text-[var(--term-text-dim)] bg-transparent hover:border-[var(--term-text-muted)] hover:text-[var(--term-text)]"},f={sm:"px-2 py-1 text-xs",md:"px-3 py-1.5 text-sm",lg:"px-4 py-2 text-sm"},g={coral:"theme-glass:border-0 theme-glass:bg-gradient-to-br theme-glass:from-[var(--sc-coral)] theme-glass:to-[var(--sc-coral-dark)] theme-glass:text-white theme-glass:hover:shadow-[0_8px_30px_var(--sc-glow-coral-mid)]",cyan:"theme-glass:border-0 theme-glass:bg-[var(--sc-cyan)] theme-glass:text-[var(--sc-bg-deep)] theme-glass:hover:bg-[var(--sc-cyan-mid)]",ghost:"theme-glass:bg-transparent theme-glass:text-[var(--sc-text-secondary)] theme-glass:hover:bg-[var(--sc-surface-interactive)]",outline:"theme-glass:bg-transparent theme-glass:border theme-glass:border-[var(--sc-border)] theme-glass:text-[var(--sc-text-secondary)]"},h={sm:"theme-glass:px-3 theme-glass:py-1.5 theme-glass:text-xs theme-glass:rounded-lg",md:"theme-glass:px-4 theme-glass:py-2 theme-glass:text-sm theme-glass:rounded-xl",lg:"theme-glass:px-6 theme-glass:py-3 theme-glass:text-sm theme-glass:rounded-xl"},i=(0,d.forwardRef)(({variant:a="coral",size:d="md",glow:i=!1,pulse:j=!1,className:k,children:l,...m},n)=>(0,b.jsxs)("button",{ref:n,className:(0,c.cn)("inline-flex items-center justify-center gap-2 rounded-md font-mono transition-colors","focus-visible:outline-1 focus-visible:outline-offset-2 focus-visible:outline-[var(--term-electric)]",j?"disabled:pointer-events-none":"disabled:pointer-events-none disabled:opacity-50",e[a],f[d],"theme-glass:font-semibold theme-glass:transition-all theme-glass:hover:-translate-y-0.5",g[a],h[d],i&&"coral"===a&&"theme-glass:glow-coral-subtle",i&&"cyan"===a&&"theme-glass:glow-cyan-subtle",j&&"theme-glass:glow-cyan-pulse",k),type:"button",...m,children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-2 theme-glass:hidden",children:[j&&(0,b.jsx)("span",{className:"cli-cursor","aria-hidden":!0}),(0,b.jsx)("span",{className:"text-[var(--term-text-muted)]","aria-hidden":!0,children:"["}),(0,b.jsx)("span",{className:"leading-none",children:l}),(0,b.jsx)("span",{className:"text-[var(--term-text-muted)]","aria-hidden":!0,children:"]"})]}),(0,b.jsx)("span",{className:"hidden theme-glass:inline-flex items-center gap-2",children:l})]}));i.displayName="Button",a.s(["Button",0,i])},54100,60210,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,title:l,statusLine:m,bodyPadding:n=!0}){let o=j?a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),j())}:void 0;return(0,b.jsxs)("div",{className:(0,c.cn)("glass-card overflow-hidden",f&&"glass-card-hover cursor-pointer",g&&"glass-card-hover-cyan cursor-pointer",j&&!f&&!g&&"cursor-pointer",i&&d[i],k&&"border-[var(--term-electric)]",e),onClick:j,onKeyDown:o,role:j?"button":void 0,tabIndex:j?0:void 0,children:[void 0!==l&&(0,b.jsxs)("div",{className:"flex items-center gap-2 px-4 py-2 border-b border-[var(--term-border)] bg-[var(--term-surface-2)] theme-glass:hidden",children:[(0,b.jsx)("span",{"aria-hidden":!0,className:"w-2.5 h-2.5 rounded-full bg-[var(--term-light-red)]"}),(0,b.jsx)("span",{"aria-hidden":!0,className:"w-2.5 h-2.5 rounded-full bg-[var(--term-light-yellow)]"}),(0,b.jsx)("span",{"aria-hidden":!0,className:"w-2.5 h-2.5 rounded-full bg-[var(--term-light-green)]"}),(0,b.jsx)("span",{className:"ml-2 text-xs select-none truncate text-[var(--term-text-muted)]",children:l})]}),(0,b.jsx)("div",{className:(0,c.cn)(n?"p-5":""),children:a}),void 0!==m&&(0,b.jsx)("div",{className:"px-4 py-2 text-xs border-t border-[var(--term-border)] bg-[var(--term-surface-2)] text-[var(--term-text-muted)] theme-glass:hidden",children:m})]})}a.s(["GlassCard",()=>e],54100);let f={critical:"text-[var(--term-danger)]",high:"text-[var(--term-danger)]",medium:"text-[var(--term-warn)]",low:"text-[var(--term-electric-fg)]",safe:"text-[var(--term-neon-fg)]",info:"text-[var(--term-text-muted)]",coral:"text-[var(--term-electric-fg)]",cyan:"text-[var(--term-neon-fg)]",amber:"text-[var(--term-warn)]",muted:"text-[var(--term-text-muted)]"},g={critical:"bg-[var(--term-danger)]",high:"bg-[var(--term-danger)]",medium:"bg-[var(--term-warn)]",low:"bg-[var(--term-electric)]",safe:"bg-[var(--term-neon)]",info:"bg-[var(--term-text-muted)]",coral:"bg-[var(--term-electric)]",cyan:"bg-[var(--term-neon)]",amber:"bg-[var(--term-warn)]",muted:"bg-[var(--term-text-muted)]"},h={critical:"theme-glass:bg-[var(--sc-coral)]/15 theme-glass:border-[var(--sc-coral)]/30",high:"theme-glass:bg-[var(--sc-coral-mid)]/15 theme-glass:border-[var(--sc-coral-mid)]/30",medium:"theme-glass:bg-[var(--sc-amber)]/15 theme-glass:border-[var(--sc-amber)]/30",low:"theme-glass:bg-[var(--sc-cyan-mid)]/15 theme-glass:border-[var(--sc-cyan-mid)]/30",safe:"theme-glass:bg-[var(--sc-cyan)]/15 theme-glass:border-[var(--sc-cyan)]/30",info:"theme-glass:bg-[var(--sc-text-muted)]/15 theme-glass:border-[var(--sc-text-muted)]/30",coral:"theme-glass:bg-[var(--sc-coral)]/15 theme-glass:border-[var(--sc-coral)]/30",cyan:"theme-glass:bg-[var(--sc-cyan)]/15 theme-glass:border-[var(--sc-cyan)]/30",amber:"theme-glass:bg-[var(--sc-amber)]/15 theme-glass:border-[var(--sc-amber)]/30",muted:"theme-glass:bg-[var(--sc-surface-interactive)] theme-glass:border-[var(--sc-border)]"};function i({children:a,variant:d="muted",className:e,dot:i=!1,pulse:j=!1}){return(0,b.jsxs)("span",{className:(0,c.cn)("inline-flex items-center gap-1.5 px-1 text-[11px] font-semibold uppercase tracking-wider whitespace-nowrap",f[d],"theme-glass:rounded-full theme-glass:border theme-glass:px-2.5 theme-glass:py-0.5",h[d],e),children:[i&&(0,b.jsx)("span",{className:(0,c.cn)("h-1.5 w-1.5 rounded-full",g[d],j&&"animate-pulse"),"aria-hidden":!0}),(0,b.jsx)("span",{"aria-hidden":!0,className:"text-[var(--term-text-muted)] theme-glass:hidden",children:"["}),(0,b.jsx)("span",{children:a}),(0,b.jsx)("span",{"aria-hidden":!0,className:"text-[var(--term-text-muted)] theme-glass:hidden",children:"]"})]})}function j(a){let b=a.toUpperCase();return"CRITICAL"===b?"critical":"HIGH"===b?"high":"MEDIUM"===b?"medium":"LOW"===b?"low":"SAFE"===b?"safe":"info"}a.s(["Badge",()=>i,"riskVariant",()=>j],60210)},84692,a=>{"use strict";let b=(0,a.i(70694).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);a.s(["Loader2",()=>b],84692)}];
2
-
3
- //# sourceMappingURL=dashboard_11e120e8._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[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])},48195,a=>{"use strict";var b=a.i(16306),c=a.i(64565);let d={coral:"text-[var(--term-electric-fg)]",cyan:"text-[var(--term-neon-fg)]",amber:"text-[var(--term-warn)]",muted:"text-[var(--term-text)]"},e={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 f({label:a,value:f,icon:g,trend:h,accent:i="cyan",className:j}){let k=e[i];return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:(0,c.cn)("theme-glass:hidden flex items-center justify-between gap-3 px-4 py-2 border-b border-[var(--term-border)] last:border-0",j),children:[(0,b.jsxs)("div",{className:"flex items-center gap-3 min-w-0",children:[(0,b.jsx)(g,{size:14,className:"text-[var(--term-text-muted)] shrink-0","aria-hidden":!0}),(0,b.jsx)("span",{className:"text-xs uppercase tracking-wider text-[var(--term-text-muted)] truncate",children:a})]}),(0,b.jsxs)("div",{className:"flex items-baseline gap-2 shrink-0",children:[(0,b.jsx)("span",{className:(0,c.cn)("text-base tabular-nums",d[i]),children:f}),h&&(0,b.jsxs)("span",{className:(0,c.cn)("text-xs tabular-nums",h.value>=0?"text-[var(--term-neon-fg)]":"text-[var(--term-danger)]"),children:[h.value>=0?"+":"",h.value,"%"]})]})]}),(0,b.jsx)("div",{className:(0,c.cn)("hidden theme-glass:block glass-card p-5",j),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:f}),h&&(0,b.jsxs)("p",{className:(0,c.cn)("mt-1 text-xs",h.value>=0?k.trendUp:k.trendDown),children:[h.value>=0?"+":"",h.value,"% ",h.label]})]}),(0,b.jsx)("div",{className:(0,c.cn)("rounded-xl p-2.5",k.iconBg),children:(0,b.jsx)(g,{size:20,className:k.icon})})]})})]})}a.s(["StatCard",()=>f])},32322,a=>{"use strict";let b=(0,a.i(70694).default)("lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);a.s(["Lock",()=>b],32322)},23808,a=>{"use strict";var b=a.i(16306),c=a.i(64565),d=a.i(98419);let e={coral:"border border-[var(--term-electric)] text-[var(--term-electric-fg)] bg-transparent hover:bg-[var(--term-electric)]/10",cyan:"border border-[var(--term-neon)] text-[var(--term-neon-fg)] bg-transparent hover:bg-[var(--term-neon)]/10",ghost:"border border-transparent text-[var(--term-text-muted)] bg-transparent hover:text-[var(--term-text)] hover:border-[var(--term-border)]",outline:"border border-[var(--term-border)] text-[var(--term-text-dim)] bg-transparent hover:border-[var(--term-text-muted)] hover:text-[var(--term-text)]"},f={sm:"px-2 py-1 text-xs",md:"px-3 py-1.5 text-sm",lg:"px-4 py-2 text-sm"},g={coral:"theme-glass:border-0 theme-glass:bg-gradient-to-br theme-glass:from-[var(--sc-coral)] theme-glass:to-[var(--sc-coral-dark)] theme-glass:text-white theme-glass:hover:shadow-[0_8px_30px_var(--sc-glow-coral-mid)]",cyan:"theme-glass:border-0 theme-glass:bg-[var(--sc-cyan)] theme-glass:text-[var(--sc-bg-deep)] theme-glass:hover:bg-[var(--sc-cyan-mid)]",ghost:"theme-glass:bg-transparent theme-glass:text-[var(--sc-text-secondary)] theme-glass:hover:bg-[var(--sc-surface-interactive)]",outline:"theme-glass:bg-transparent theme-glass:border theme-glass:border-[var(--sc-border)] theme-glass:text-[var(--sc-text-secondary)]"},h={sm:"theme-glass:px-3 theme-glass:py-1.5 theme-glass:text-xs theme-glass:rounded-lg",md:"theme-glass:px-4 theme-glass:py-2 theme-glass:text-sm theme-glass:rounded-xl",lg:"theme-glass:px-6 theme-glass:py-3 theme-glass:text-sm theme-glass:rounded-xl"},i=(0,d.forwardRef)(({variant:a="coral",size:d="md",glow:i=!1,pulse:j=!1,className:k,children:l,...m},n)=>(0,b.jsxs)("button",{ref:n,className:(0,c.cn)("inline-flex items-center justify-center gap-2 rounded-md font-mono transition-colors","focus-visible:outline-1 focus-visible:outline-offset-2 focus-visible:outline-[var(--term-electric)]",j?"disabled:pointer-events-none":"disabled:pointer-events-none disabled:opacity-50",e[a],f[d],"theme-glass:font-semibold theme-glass:transition-all theme-glass:hover:-translate-y-0.5",g[a],h[d],i&&"coral"===a&&"theme-glass:glow-coral-subtle",i&&"cyan"===a&&"theme-glass:glow-cyan-subtle",j&&"theme-glass:glow-cyan-pulse",k),type:"button",...m,children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-2 theme-glass:hidden",children:[j&&(0,b.jsx)("span",{className:"cli-cursor","aria-hidden":!0}),(0,b.jsx)("span",{className:"text-[var(--term-text-muted)]","aria-hidden":!0,children:"["}),(0,b.jsx)("span",{className:"leading-none",children:l}),(0,b.jsx)("span",{className:"text-[var(--term-text-muted)]","aria-hidden":!0,children:"]"})]}),(0,b.jsx)("span",{className:"hidden theme-glass:inline-flex items-center gap-2",children:l})]}));i.displayName="Button",a.s(["Button",0,i])},79151,a=>{"use strict";var b=a.i(16306),c=a.i(64565),d=a.i(32322);function e({tabs:a,activeTab:e,onChange:f,className:g}){return(0,b.jsx)("div",{className:(0,c.cn)("flex items-center gap-4 overflow-x-auto border-b border-[var(--term-border)] px-1 scrollbar-hide","theme-glass:gap-1 theme-glass:rounded-xl theme-glass:border-0 theme-glass:bg-[var(--sc-bg-surface)] theme-glass:p-1",g),role:"tablist",children:a.map(a=>{let g=a.id===e;return(0,b.jsxs)("button",{type:"button",role:"tab","aria-selected":g?"true":"false",onClick:()=>f(a.id),className:(0,c.cn)("relative flex shrink-0 items-center gap-2 px-1 py-2 text-xs font-mono transition-colors","focus-visible:outline-1 focus-visible:outline-offset-2 focus-visible:outline-[var(--term-electric)]",g?"text-[var(--term-electric-fg)]":"text-[var(--term-text-muted)] hover:text-[var(--term-text)]","theme-glass:font-medium theme-glass:font-sans theme-glass:rounded-lg theme-glass:px-3 theme-glass:py-2 sm:theme-glass:px-4 sm:theme-glass:text-sm",g&&"theme-glass:bg-[var(--sc-bg-elevated)] theme-glass:text-[var(--sc-text-primary)]",!g&&"theme-glass:hover:text-[var(--sc-text-secondary)]"),children:[a.icon,(0,b.jsx)("span",{children:a.label}),a.locked&&(0,b.jsx)(d.Lock,{size:11,className:"text-[var(--term-warn)] theme-glass:text-[var(--sc-coral)]"}),void 0!==a.count&&a.count>0&&(0,b.jsxs)("span",{className:"text-[var(--term-text-muted)] theme-glass:ml-0.5 theme-glass:rounded-full theme-glass:bg-[var(--sc-coral)]/15 theme-glass:px-1.5 theme-glass:py-0.5 theme-glass:text-[10px] theme-glass:font-bold theme-glass:text-[var(--sc-coral)]",children:[(0,b.jsxs)("span",{className:"theme-glass:hidden",children:["(",a.count,")"]}),(0,b.jsx)("span",{className:"hidden theme-glass:inline",children:a.count})]}),g&&(0,b.jsx)("span",{"aria-hidden":!0,className:"absolute -bottom-px left-0 right-0 h-px bg-[var(--term-electric)] theme-glass:hidden"})]},a.id)})})}function f({eyebrow:a,title:d,subtitle:f,actions:g,tabs:h,activeTab:i,onTabChange:j,className:k}){return(0,b.jsxs)("div",{className:(0,c.cn)("space-y-3 theme-glass:space-y-4",k),children:[(0,b.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between sm:gap-4 theme-glass:gap-3",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsxs)("div",{className:"theme-glass:hidden",children:[a&&(0,b.jsxs)("p",{className:"text-[11px] uppercase tracking-wider text-[var(--term-text-muted)]",children:[(0,b.jsx)("span",{className:"text-[var(--term-electric-fg)]",children:"›"})," ",a]}),(0,b.jsxs)("h1",{className:"mt-1 flex items-baseline flex-wrap gap-2 text-base font-mono text-[var(--term-text)] sm:text-lg",children:[(0,b.jsx)("span",{className:"text-[var(--term-electric-fg)]","aria-hidden":!0,children:"$"}),(0,b.jsx)("span",{children:"shieldcortex"}),(0,b.jsx)("span",{className:"text-[var(--term-text-dim)]",children:d.toLowerCase()}),(0,b.jsx)("span",{className:"cli-cursor text-[var(--term-electric-fg)]","aria-hidden":!0})]}),f&&(0,b.jsxs)("p",{className:"mt-1 text-xs text-[var(--term-text-muted)]",children:[(0,b.jsx)("span",{"aria-hidden":!0,children:"#"})," ",f]})]}),(0,b.jsxs)("div",{className:"hidden theme-glass:block",children:[a&&(0,b.jsx)("p",{className:"text-[10px] font-semibold uppercase tracking-[0.2em] text-[var(--sc-coral)] sm:text-[11px]",children:a}),(0,b.jsx)("h1",{className:"mt-1 text-xl font-bold text-[var(--sc-text-primary)] sm:text-2xl",children:d}),f&&(0,b.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-secondary)] sm:text-sm",children:f})]})]}),g&&(0,b.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:g})]}),h&&i&&j&&(0,b.jsx)(e,{tabs:h,activeTab:i,onChange:j})]})}a.s(["PageHeader",()=>f],79151)},54100,60210,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,title:l,statusLine:m,bodyPadding:n=!0}){let o=j?a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),j())}:void 0;return(0,b.jsxs)("div",{className:(0,c.cn)("glass-card overflow-hidden",f&&"glass-card-hover cursor-pointer",g&&"glass-card-hover-cyan cursor-pointer",j&&!f&&!g&&"cursor-pointer",i&&d[i],k&&"border-[var(--term-electric)]",e),onClick:j,onKeyDown:o,role:j?"button":void 0,tabIndex:j?0:void 0,children:[void 0!==l&&(0,b.jsxs)("div",{className:"flex items-center gap-2 px-4 py-2 border-b border-[var(--term-border)] bg-[var(--term-surface-2)] theme-glass:hidden",children:[(0,b.jsx)("span",{"aria-hidden":!0,className:"w-2.5 h-2.5 rounded-full bg-[var(--term-light-red)]"}),(0,b.jsx)("span",{"aria-hidden":!0,className:"w-2.5 h-2.5 rounded-full bg-[var(--term-light-yellow)]"}),(0,b.jsx)("span",{"aria-hidden":!0,className:"w-2.5 h-2.5 rounded-full bg-[var(--term-light-green)]"}),(0,b.jsx)("span",{className:"ml-2 text-xs select-none truncate text-[var(--term-text-muted)]",children:l})]}),(0,b.jsx)("div",{className:(0,c.cn)(n?"p-5":""),children:a}),void 0!==m&&(0,b.jsx)("div",{className:"px-4 py-2 text-xs border-t border-[var(--term-border)] bg-[var(--term-surface-2)] text-[var(--term-text-muted)] theme-glass:hidden",children:m})]})}a.s(["GlassCard",()=>e],54100);let f={critical:"text-[var(--term-danger)]",high:"text-[var(--term-danger)]",medium:"text-[var(--term-warn)]",low:"text-[var(--term-electric-fg)]",safe:"text-[var(--term-neon-fg)]",info:"text-[var(--term-text-muted)]",coral:"text-[var(--term-electric-fg)]",cyan:"text-[var(--term-neon-fg)]",amber:"text-[var(--term-warn)]",muted:"text-[var(--term-text-muted)]"},g={critical:"bg-[var(--term-danger)]",high:"bg-[var(--term-danger)]",medium:"bg-[var(--term-warn)]",low:"bg-[var(--term-electric)]",safe:"bg-[var(--term-neon)]",info:"bg-[var(--term-text-muted)]",coral:"bg-[var(--term-electric)]",cyan:"bg-[var(--term-neon)]",amber:"bg-[var(--term-warn)]",muted:"bg-[var(--term-text-muted)]"},h={critical:"theme-glass:bg-[var(--sc-coral)]/15 theme-glass:border-[var(--sc-coral)]/30",high:"theme-glass:bg-[var(--sc-coral-mid)]/15 theme-glass:border-[var(--sc-coral-mid)]/30",medium:"theme-glass:bg-[var(--sc-amber)]/15 theme-glass:border-[var(--sc-amber)]/30",low:"theme-glass:bg-[var(--sc-cyan-mid)]/15 theme-glass:border-[var(--sc-cyan-mid)]/30",safe:"theme-glass:bg-[var(--sc-cyan)]/15 theme-glass:border-[var(--sc-cyan)]/30",info:"theme-glass:bg-[var(--sc-text-muted)]/15 theme-glass:border-[var(--sc-text-muted)]/30",coral:"theme-glass:bg-[var(--sc-coral)]/15 theme-glass:border-[var(--sc-coral)]/30",cyan:"theme-glass:bg-[var(--sc-cyan)]/15 theme-glass:border-[var(--sc-cyan)]/30",amber:"theme-glass:bg-[var(--sc-amber)]/15 theme-glass:border-[var(--sc-amber)]/30",muted:"theme-glass:bg-[var(--sc-surface-interactive)] theme-glass:border-[var(--sc-border)]"};function i({children:a,variant:d="muted",className:e,dot:i=!1,pulse:j=!1}){return(0,b.jsxs)("span",{className:(0,c.cn)("inline-flex items-center gap-1.5 px-1 text-[11px] font-semibold uppercase tracking-wider whitespace-nowrap",f[d],"theme-glass:rounded-full theme-glass:border theme-glass:px-2.5 theme-glass:py-0.5",h[d],e),children:[i&&(0,b.jsx)("span",{className:(0,c.cn)("h-1.5 w-1.5 rounded-full",g[d],j&&"animate-pulse"),"aria-hidden":!0}),(0,b.jsx)("span",{"aria-hidden":!0,className:"text-[var(--term-text-muted)] theme-glass:hidden",children:"["}),(0,b.jsx)("span",{children:a}),(0,b.jsx)("span",{"aria-hidden":!0,className:"text-[var(--term-text-muted)] theme-glass:hidden",children:"]"})]})}function j(a){let b=a.toUpperCase();return"CRITICAL"===b?"critical":"HIGH"===b?"high":"MEDIUM"===b?"medium":"LOW"===b?"low":"SAFE"===b?"safe":"info"}a.s(["Badge",()=>i,"riskVariant",()=>j],60210)},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)}];
2
-
3
- //# sourceMappingURL=dashboard_2373e047._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[6750,a=>{"use strict";let b=(0,a.i(70694).default)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);a.s(["FileText",()=>b],6750)},48195,a=>{"use strict";var b=a.i(16306),c=a.i(64565);let d={coral:"text-[var(--term-electric-fg)]",cyan:"text-[var(--term-neon-fg)]",amber:"text-[var(--term-warn)]",muted:"text-[var(--term-text)]"},e={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 f({label:a,value:f,icon:g,trend:h,accent:i="cyan",className:j}){let k=e[i];return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:(0,c.cn)("theme-glass:hidden flex items-center justify-between gap-3 px-4 py-2 border-b border-[var(--term-border)] last:border-0",j),children:[(0,b.jsxs)("div",{className:"flex items-center gap-3 min-w-0",children:[(0,b.jsx)(g,{size:14,className:"text-[var(--term-text-muted)] shrink-0","aria-hidden":!0}),(0,b.jsx)("span",{className:"text-xs uppercase tracking-wider text-[var(--term-text-muted)] truncate",children:a})]}),(0,b.jsxs)("div",{className:"flex items-baseline gap-2 shrink-0",children:[(0,b.jsx)("span",{className:(0,c.cn)("text-base tabular-nums",d[i]),children:f}),h&&(0,b.jsxs)("span",{className:(0,c.cn)("text-xs tabular-nums",h.value>=0?"text-[var(--term-neon-fg)]":"text-[var(--term-danger)]"),children:[h.value>=0?"+":"",h.value,"%"]})]})]}),(0,b.jsx)("div",{className:(0,c.cn)("hidden theme-glass:block glass-card p-5",j),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:f}),h&&(0,b.jsxs)("p",{className:(0,c.cn)("mt-1 text-xs",h.value>=0?k.trendUp:k.trendDown),children:[h.value>=0?"+":"",h.value,"% ",h.label]})]}),(0,b.jsx)("div",{className:(0,c.cn)("rounded-xl p-2.5",k.iconBg),children:(0,b.jsx)(g,{size:20,className:k.icon})})]})})]})}a.s(["StatCard",()=>f])},74150,35031,79030,a=>{"use strict";let b=(0,a.i(70694).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);a.s(["CheckCircle2",()=>b],74150);var c=a.i(40458),d=a.i(66807),e=a.i(14220),f=a.i(86044);let g=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function h(){let a=await (0,f.authFetch)(`${g}/api/license/status`);if(!a.ok)throw Error("Failed to fetch license status");return a.json()}async function i(a){let b=await (0,f.authFetch)(`${g}/api/license/activate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:a})});if(!b.ok)throw Error((await b.json().catch(()=>({error:"Activation failed"}))).error||"Activation failed");return b.json()}async function j(){let a=await (0,f.authFetch)(`${g}/api/license/deactivate`,{method:"POST"});if(!a.ok)throw Error("Failed to deactivate license");return a.json()}function k(){return(0,c.useQuery)({queryKey:["license-status"],queryFn:h,refetchInterval:6e4,retry:2})}function l(){let a=(0,e.useQueryClient)();return(0,d.useMutation)({mutationFn:a=>i(a),onSuccess:()=>{a.invalidateQueries({queryKey:["license-status"]})}})}function m(){let a=(0,e.useQueryClient)();return(0,d.useMutation)({mutationFn:j,onSuccess:()=>{a.invalidateQueries({queryKey:["license-status"]})}})}a.s(["useActivateLicense",()=>l,"useDeactivateLicense",()=>m,"useLicenseStatus",()=>k],35031),a.s(["PLAN_PRICING",0,{pro:{label:"Pro",price:"£29/mo"},team:{label:"Team",price:"£99/mo"}},"TIER_BG",0,{free:"bg-[var(--sc-surface-interactive)]",pro:"bg-[var(--sc-cyan)]/10",team:"bg-[var(--sc-coral)]/10",enterprise:"bg-[var(--sc-amber)]/10"},"TIER_COLOURS",0,{free:"text-[var(--sc-text-muted)]",pro:"text-[var(--sc-cyan)]",team:"text-[var(--sc-coral)]",enterprise:"text-[var(--sc-amber)]"},"TIER_LABELS",0,{free:"Free",pro:"Pro",team:"Team",enterprise:"Enterprise"}],79030)},47520,a=>{"use strict";let b=(0,a.i(70694).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);a.s(["AlertTriangle",()=>b],47520)},23808,a=>{"use strict";var b=a.i(16306),c=a.i(64565),d=a.i(98419);let e={coral:"border border-[var(--term-electric)] text-[var(--term-electric-fg)] bg-transparent hover:bg-[var(--term-electric)]/10",cyan:"border border-[var(--term-neon)] text-[var(--term-neon-fg)] bg-transparent hover:bg-[var(--term-neon)]/10",ghost:"border border-transparent text-[var(--term-text-muted)] bg-transparent hover:text-[var(--term-text)] hover:border-[var(--term-border)]",outline:"border border-[var(--term-border)] text-[var(--term-text-dim)] bg-transparent hover:border-[var(--term-text-muted)] hover:text-[var(--term-text)]"},f={sm:"px-2 py-1 text-xs",md:"px-3 py-1.5 text-sm",lg:"px-4 py-2 text-sm"},g={coral:"theme-glass:border-0 theme-glass:bg-gradient-to-br theme-glass:from-[var(--sc-coral)] theme-glass:to-[var(--sc-coral-dark)] theme-glass:text-white theme-glass:hover:shadow-[0_8px_30px_var(--sc-glow-coral-mid)]",cyan:"theme-glass:border-0 theme-glass:bg-[var(--sc-cyan)] theme-glass:text-[var(--sc-bg-deep)] theme-glass:hover:bg-[var(--sc-cyan-mid)]",ghost:"theme-glass:bg-transparent theme-glass:text-[var(--sc-text-secondary)] theme-glass:hover:bg-[var(--sc-surface-interactive)]",outline:"theme-glass:bg-transparent theme-glass:border theme-glass:border-[var(--sc-border)] theme-glass:text-[var(--sc-text-secondary)]"},h={sm:"theme-glass:px-3 theme-glass:py-1.5 theme-glass:text-xs theme-glass:rounded-lg",md:"theme-glass:px-4 theme-glass:py-2 theme-glass:text-sm theme-glass:rounded-xl",lg:"theme-glass:px-6 theme-glass:py-3 theme-glass:text-sm theme-glass:rounded-xl"},i=(0,d.forwardRef)(({variant:a="coral",size:d="md",glow:i=!1,pulse:j=!1,className:k,children:l,...m},n)=>(0,b.jsxs)("button",{ref:n,className:(0,c.cn)("inline-flex items-center justify-center gap-2 rounded-md font-mono transition-colors","focus-visible:outline-1 focus-visible:outline-offset-2 focus-visible:outline-[var(--term-electric)]",j?"disabled:pointer-events-none":"disabled:pointer-events-none disabled:opacity-50",e[a],f[d],"theme-glass:font-semibold theme-glass:transition-all theme-glass:hover:-translate-y-0.5",g[a],h[d],i&&"coral"===a&&"theme-glass:glow-coral-subtle",i&&"cyan"===a&&"theme-glass:glow-cyan-subtle",j&&"theme-glass:glow-cyan-pulse",k),type:"button",...m,children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-2 theme-glass:hidden",children:[j&&(0,b.jsx)("span",{className:"cli-cursor","aria-hidden":!0}),(0,b.jsx)("span",{className:"text-[var(--term-text-muted)]","aria-hidden":!0,children:"["}),(0,b.jsx)("span",{className:"leading-none",children:l}),(0,b.jsx)("span",{className:"text-[var(--term-text-muted)]","aria-hidden":!0,children:"]"})]}),(0,b.jsx)("span",{className:"hidden theme-glass:inline-flex items-center gap-2",children:l})]}));i.displayName="Button",a.s(["Button",0,i])},32322,a=>{"use strict";let b=(0,a.i(70694).default)("lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);a.s(["Lock",()=>b],32322)},79151,a=>{"use strict";var b=a.i(16306),c=a.i(64565),d=a.i(32322);function e({tabs:a,activeTab:e,onChange:f,className:g}){return(0,b.jsx)("div",{className:(0,c.cn)("flex items-center gap-4 overflow-x-auto border-b border-[var(--term-border)] px-1 scrollbar-hide","theme-glass:gap-1 theme-glass:rounded-xl theme-glass:border-0 theme-glass:bg-[var(--sc-bg-surface)] theme-glass:p-1",g),role:"tablist",children:a.map(a=>{let g=a.id===e;return(0,b.jsxs)("button",{type:"button",role:"tab","aria-selected":g?"true":"false",onClick:()=>f(a.id),className:(0,c.cn)("relative flex shrink-0 items-center gap-2 px-1 py-2 text-xs font-mono transition-colors","focus-visible:outline-1 focus-visible:outline-offset-2 focus-visible:outline-[var(--term-electric)]",g?"text-[var(--term-electric-fg)]":"text-[var(--term-text-muted)] hover:text-[var(--term-text)]","theme-glass:font-medium theme-glass:font-sans theme-glass:rounded-lg theme-glass:px-3 theme-glass:py-2 sm:theme-glass:px-4 sm:theme-glass:text-sm",g&&"theme-glass:bg-[var(--sc-bg-elevated)] theme-glass:text-[var(--sc-text-primary)]",!g&&"theme-glass:hover:text-[var(--sc-text-secondary)]"),children:[a.icon,(0,b.jsx)("span",{children:a.label}),a.locked&&(0,b.jsx)(d.Lock,{size:11,className:"text-[var(--term-warn)] theme-glass:text-[var(--sc-coral)]"}),void 0!==a.count&&a.count>0&&(0,b.jsxs)("span",{className:"text-[var(--term-text-muted)] theme-glass:ml-0.5 theme-glass:rounded-full theme-glass:bg-[var(--sc-coral)]/15 theme-glass:px-1.5 theme-glass:py-0.5 theme-glass:text-[10px] theme-glass:font-bold theme-glass:text-[var(--sc-coral)]",children:[(0,b.jsxs)("span",{className:"theme-glass:hidden",children:["(",a.count,")"]}),(0,b.jsx)("span",{className:"hidden theme-glass:inline",children:a.count})]}),g&&(0,b.jsx)("span",{"aria-hidden":!0,className:"absolute -bottom-px left-0 right-0 h-px bg-[var(--term-electric)] theme-glass:hidden"})]},a.id)})})}function f({eyebrow:a,title:d,subtitle:f,actions:g,tabs:h,activeTab:i,onTabChange:j,className:k}){return(0,b.jsxs)("div",{className:(0,c.cn)("space-y-3 theme-glass:space-y-4",k),children:[(0,b.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between sm:gap-4 theme-glass:gap-3",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsxs)("div",{className:"theme-glass:hidden",children:[a&&(0,b.jsxs)("p",{className:"text-[11px] uppercase tracking-wider text-[var(--term-text-muted)]",children:[(0,b.jsx)("span",{className:"text-[var(--term-electric-fg)]",children:"›"})," ",a]}),(0,b.jsxs)("h1",{className:"mt-1 flex items-baseline flex-wrap gap-2 text-base font-mono text-[var(--term-text)] sm:text-lg",children:[(0,b.jsx)("span",{className:"text-[var(--term-electric-fg)]","aria-hidden":!0,children:"$"}),(0,b.jsx)("span",{children:"shieldcortex"}),(0,b.jsx)("span",{className:"text-[var(--term-text-dim)]",children:d.toLowerCase()}),(0,b.jsx)("span",{className:"cli-cursor text-[var(--term-electric-fg)]","aria-hidden":!0})]}),f&&(0,b.jsxs)("p",{className:"mt-1 text-xs text-[var(--term-text-muted)]",children:[(0,b.jsx)("span",{"aria-hidden":!0,children:"#"})," ",f]})]}),(0,b.jsxs)("div",{className:"hidden theme-glass:block",children:[a&&(0,b.jsx)("p",{className:"text-[10px] font-semibold uppercase tracking-[0.2em] text-[var(--sc-coral)] sm:text-[11px]",children:a}),(0,b.jsx)("h1",{className:"mt-1 text-xl font-bold text-[var(--sc-text-primary)] sm:text-2xl",children:d}),f&&(0,b.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-secondary)] sm:text-sm",children:f})]})]}),g&&(0,b.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:g})]}),h&&i&&j&&(0,b.jsx)(e,{tabs:h,activeTab:i,onChange:j})]})}a.s(["PageHeader",()=>f],79151)},54100,60210,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,title:l,statusLine:m,bodyPadding:n=!0}){let o=j?a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),j())}:void 0;return(0,b.jsxs)("div",{className:(0,c.cn)("glass-card overflow-hidden",f&&"glass-card-hover cursor-pointer",g&&"glass-card-hover-cyan cursor-pointer",j&&!f&&!g&&"cursor-pointer",i&&d[i],k&&"border-[var(--term-electric)]",e),onClick:j,onKeyDown:o,role:j?"button":void 0,tabIndex:j?0:void 0,children:[void 0!==l&&(0,b.jsxs)("div",{className:"flex items-center gap-2 px-4 py-2 border-b border-[var(--term-border)] bg-[var(--term-surface-2)] theme-glass:hidden",children:[(0,b.jsx)("span",{"aria-hidden":!0,className:"w-2.5 h-2.5 rounded-full bg-[var(--term-light-red)]"}),(0,b.jsx)("span",{"aria-hidden":!0,className:"w-2.5 h-2.5 rounded-full bg-[var(--term-light-yellow)]"}),(0,b.jsx)("span",{"aria-hidden":!0,className:"w-2.5 h-2.5 rounded-full bg-[var(--term-light-green)]"}),(0,b.jsx)("span",{className:"ml-2 text-xs select-none truncate text-[var(--term-text-muted)]",children:l})]}),(0,b.jsx)("div",{className:(0,c.cn)(n?"p-5":""),children:a}),void 0!==m&&(0,b.jsx)("div",{className:"px-4 py-2 text-xs border-t border-[var(--term-border)] bg-[var(--term-surface-2)] text-[var(--term-text-muted)] theme-glass:hidden",children:m})]})}a.s(["GlassCard",()=>e],54100);let f={critical:"text-[var(--term-danger)]",high:"text-[var(--term-danger)]",medium:"text-[var(--term-warn)]",low:"text-[var(--term-electric-fg)]",safe:"text-[var(--term-neon-fg)]",info:"text-[var(--term-text-muted)]",coral:"text-[var(--term-electric-fg)]",cyan:"text-[var(--term-neon-fg)]",amber:"text-[var(--term-warn)]",muted:"text-[var(--term-text-muted)]"},g={critical:"bg-[var(--term-danger)]",high:"bg-[var(--term-danger)]",medium:"bg-[var(--term-warn)]",low:"bg-[var(--term-electric)]",safe:"bg-[var(--term-neon)]",info:"bg-[var(--term-text-muted)]",coral:"bg-[var(--term-electric)]",cyan:"bg-[var(--term-neon)]",amber:"bg-[var(--term-warn)]",muted:"bg-[var(--term-text-muted)]"},h={critical:"theme-glass:bg-[var(--sc-coral)]/15 theme-glass:border-[var(--sc-coral)]/30",high:"theme-glass:bg-[var(--sc-coral-mid)]/15 theme-glass:border-[var(--sc-coral-mid)]/30",medium:"theme-glass:bg-[var(--sc-amber)]/15 theme-glass:border-[var(--sc-amber)]/30",low:"theme-glass:bg-[var(--sc-cyan-mid)]/15 theme-glass:border-[var(--sc-cyan-mid)]/30",safe:"theme-glass:bg-[var(--sc-cyan)]/15 theme-glass:border-[var(--sc-cyan)]/30",info:"theme-glass:bg-[var(--sc-text-muted)]/15 theme-glass:border-[var(--sc-text-muted)]/30",coral:"theme-glass:bg-[var(--sc-coral)]/15 theme-glass:border-[var(--sc-coral)]/30",cyan:"theme-glass:bg-[var(--sc-cyan)]/15 theme-glass:border-[var(--sc-cyan)]/30",amber:"theme-glass:bg-[var(--sc-amber)]/15 theme-glass:border-[var(--sc-amber)]/30",muted:"theme-glass:bg-[var(--sc-surface-interactive)] theme-glass:border-[var(--sc-border)]"};function i({children:a,variant:d="muted",className:e,dot:i=!1,pulse:j=!1}){return(0,b.jsxs)("span",{className:(0,c.cn)("inline-flex items-center gap-1.5 px-1 text-[11px] font-semibold uppercase tracking-wider whitespace-nowrap",f[d],"theme-glass:rounded-full theme-glass:border theme-glass:px-2.5 theme-glass:py-0.5",h[d],e),children:[i&&(0,b.jsx)("span",{className:(0,c.cn)("h-1.5 w-1.5 rounded-full",g[d],j&&"animate-pulse"),"aria-hidden":!0}),(0,b.jsx)("span",{"aria-hidden":!0,className:"text-[var(--term-text-muted)] theme-glass:hidden",children:"["}),(0,b.jsx)("span",{children:a}),(0,b.jsx)("span",{"aria-hidden":!0,className:"text-[var(--term-text-muted)] theme-glass:hidden",children:"]"})]})}function j(a){let b=a.toUpperCase();return"CRITICAL"===b?"critical":"HIGH"===b?"high":"MEDIUM"===b?"medium":"LOW"===b?"low":"SAFE"===b?"safe":"info"}a.s(["Badge",()=>i,"riskVariant",()=>j],60210)}];
2
-
3
- //# sourceMappingURL=dashboard_283c47c0._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[26804,a=>{"use strict";var b=a.i(66807),c=a.i(40458),d=a.i(14220),e=a.i(86044);let f=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function g(a,b){let c=await (0,e.gatedFetch)(`${f}${a}`);if(!c.ok)throw Error(await (0,e.readApiError)(c,b));return c.json()}async function h(a){let b=await (0,e.gatedFetch)(`${f}/api/xray/scan`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error(await (0,e.readApiError)(b,"Failed to run X-Ray scan"));return b.json()}async function i(a){let b=await (0,e.gatedFetch)(`${f}/api/xray/pick-target`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({kind:a})});if(!b.ok)throw Error(await (0,e.readApiError)(b,`Failed to open ${a} picker`));return b.json()}function j(a,b){return!(b instanceof e.FeatureLockedError)&&a<2}function k(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 l(){return(0,c.useQuery)({queryKey:["xray-status"],queryFn:()=>g("/api/xray/status","Failed to fetch X-Ray status"),refetchInterval:3e4,retry:j})}function m(a={}){return(0,c.useQuery)({queryKey:["xray-history",a],queryFn:()=>g(`/api/xray/history${k({risk:a.risk,targetType:a.targetType,deep:a.deep,search:a.search?.trim()||void 0})}`,"Failed to fetch X-Ray history"),refetchInterval:3e4,retry:j})}function n(a){return(0,c.useQuery)({queryKey:["xray-history-entry",a],queryFn:()=>g(`/api/xray/history/${a}`,"Failed to fetch X-Ray scan detail"),enabled:!!a,retry:j})}function o(a=25,b={}){return(0,c.useQuery)({queryKey:["xray-activity",a,b],queryFn:()=>g(`/api/xray/activity${k({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:j})}function p(a=20,b={}){return(0,c.useQuery)({queryKey:["xray-watch-sessions",a,b],queryFn:()=>g(`/api/xray/watch-sessions${k({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:j})}function q(){let a=(0,d.useQueryClient)();return(0,b.useMutation)({mutationFn:h,onSuccess:()=>{a.invalidateQueries({queryKey:["xray-history"]}),a.invalidateQueries({queryKey:["xray-activity"]}),a.invalidateQueries({queryKey:["xray-watch-sessions"]}),a.invalidateQueries({queryKey:["xray-status"]})}})}function r(){return(0,b.useMutation)({mutationFn:a=>i(a)})}async function s(a){let b=await (0,e.gatedFetch)(`${f}/api/xray/watch/start`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error(await (0,e.readApiError)(b,"Failed to start watch"));return b.json()}async function t(a){let b=await (0,e.gatedFetch)(`${f}/api/xray/watch/stop`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({target:a})});if(!b.ok)throw Error(await (0,e.readApiError)(b,"Failed to stop watch"));return b.json()}function u(){return(0,c.useQuery)({queryKey:["xray-active-watchers"],queryFn:()=>g("/api/xray/watch/active","Failed to fetch active watchers"),refetchInterval:1e4})}function v(){let a=(0,d.useQueryClient)();return(0,b.useMutation)({mutationFn:s,onSuccess:()=>{a.invalidateQueries({queryKey:["xray-watch-sessions"]}),a.invalidateQueries({queryKey:["xray-active-watchers"]}),a.invalidateQueries({queryKey:["xray-status"]})}})}function w(){let a=(0,d.useQueryClient)();return(0,b.useMutation)({mutationFn:t,onSuccess:()=>{a.invalidateQueries({queryKey:["xray-watch-sessions"]}),a.invalidateQueries({queryKey:["xray-active-watchers"]}),a.invalidateQueries({queryKey:["xray-status"]})}})}a.s(["useActiveWatchers",()=>u,"usePickXRayTarget",()=>r,"useStartWatch",()=>v,"useStopWatch",()=>w,"useXRayActivity",()=>o,"useXRayHistory",()=>m,"useXRayHistoryEntry",()=>n,"useXRayScan",()=>q,"useXRayStatus",()=>l,"useXRayWatchSessions",()=>p])},26943,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)},77115,a=>{"use strict";let b=(0,a.i(70694).default)("clock-3",[["path",{d:"M12 6v6h4",key:"135r8i"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);a.s(["Clock3",()=>b],77115)},38883,a=>{"use strict";var b=a.i(40458),c=a.i(66807),d=a.i(14220),e=a.i(86044);let f=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function g(a){let b=new URLSearchParams;a?.startTime&&b.set("startTime",a.startTime),a?.endTime&&b.set("endTime",a.endTime),a?.source&&b.set("source",a.source),a?.firewallResult&&b.set("firewallResult",a.firewallResult),a?.project&&b.set("project",a.project),a?.limit&&b.set("limit",a.limit.toString());let c=await (0,e.authFetch)(`${f}/api/v1/audit?${b}`);if(!c.ok)throw Error(await (0,e.readApiError)(c,"Failed to fetch audit logs"));return c.json()}async function h(a,b){let c=new URLSearchParams({timeRange:a});b&&c.set("project",b);let d=await (0,e.authFetch)(`${f}/api/v1/audit/stats?${c}`);if(!d.ok)throw Error(await (0,e.readApiError)(d,"Failed to fetch audit stats"));return d.json()}async function i(a="pending",b=50,c,d){let g=new URLSearchParams({status:a,limit:b.toString()});c&&g.set("project",c),d&&g.set("sourceType",d);let h=await (0,e.authFetch)(`${f}/api/v1/quarantine?${g}`);if(!h.ok)throw Error(await (0,e.readApiError)(h,"Failed to fetch quarantine"));return h.json()}async function j(a){let b=await (0,e.authFetch)(`${f}/api/v1/quarantine/${a}/approve`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reviewedBy:"dashboard"})});if(!b.ok)throw Error(await (0,e.readApiError)(b,"Failed to approve quarantined item"));return b.json()}async function k(a,b){let c=await (0,e.authFetch)(`${f}/api/v1/quarantine/${a}/reject`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reviewedBy:"dashboard",notes:b})});if(!c.ok)throw Error(await (0,e.readApiError)(c,"Failed to reject quarantined item"));return c.json()}async function l(a){let b=await (0,e.authFetch)(`${f}/api/v1/quarantine/bulk-approve`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:a,reviewedBy:"dashboard"})});if(!b.ok)throw Error(await (0,e.readApiError)(b,"Failed to bulk approve quarantined items"));return b.json()}async function m(a){let b=await (0,e.authFetch)(`${f}/api/v1/quarantine/bulk-reject`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:a,reviewedBy:"dashboard"})});if(!b.ok)throw Error(await (0,e.readApiError)(b,"Failed to bulk reject quarantined items"));return b.json()}async function n(){let a=await (0,e.authFetch)(`${f}/api/v1/review-copilot/status`);if(!a.ok)throw Error(await (0,e.readApiError)(a,"Failed to fetch Local AI status"));return a.json()}async function o(a){let b=await (0,e.authFetch)(`${f}/api/v1/quarantine/${a}/annotate`,{method:"POST",headers:{"Content-Type":"application/json"}});if(!b.ok)throw Error(await (0,e.readApiError)(b,"Failed to explain quarantined item"));return b.json()}async function p(a){let b=await (0,e.authFetch)(`${f}/api/v1/quarantine/annotate-pending`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error(await (0,e.readApiError)(b,"Failed to explain pending quarantine"));return b.json()}function q(a){return(0,b.useQuery)({queryKey:["audit-logs",a],queryFn:()=>g(a),refetchInterval:3e4,retry:2})}function r(a="24h",c){return(0,b.useQuery)({queryKey:["audit-stats",a,c],queryFn:()=>h(a,c),refetchInterval:3e4,retry:2})}function s(a="pending",c=50,d,e){return(0,b.useQuery)({queryKey:["quarantine",a,c,d,e],queryFn:()=>i(a,c,d,e),refetchInterval:3e4,retry:2})}function t(){return(0,b.useQuery)({queryKey:["review-copilot-status"],queryFn:n,refetchInterval:3e4,retry:2})}function u(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:j,onSuccess:()=>{a.invalidateQueries({queryKey:["quarantine"]}),a.invalidateQueries({queryKey:["audit-stats"]}),a.invalidateQueries({queryKey:["memories"]}),a.invalidateQueries({queryKey:["stats"]}),a.invalidateQueries({queryKey:["review-queue"]}),a.invalidateQueries({queryKey:["openclaw-sessions"]}),a.invalidateQueries({queryKey:["quality"]})}})}function v(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:({id:a,notes:b})=>k(a,b),onSuccess:()=>{a.invalidateQueries({queryKey:["quarantine"]}),a.invalidateQueries({queryKey:["audit-stats"]}),a.invalidateQueries({queryKey:["review-queue"]})}})}function w(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:l,onSuccess:()=>{a.invalidateQueries({queryKey:["quarantine"]}),a.invalidateQueries({queryKey:["audit-stats"]}),a.invalidateQueries({queryKey:["memories"]}),a.invalidateQueries({queryKey:["stats"]}),a.invalidateQueries({queryKey:["review-queue"]}),a.invalidateQueries({queryKey:["openclaw-sessions"]}),a.invalidateQueries({queryKey:["quality"]})}})}function x(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:m,onSuccess:()=>{a.invalidateQueries({queryKey:["quarantine"]}),a.invalidateQueries({queryKey:["audit-stats"]}),a.invalidateQueries({queryKey:["review-queue"]})}})}function y(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:o,onSuccess:()=>{a.invalidateQueries({queryKey:["quarantine"]}),a.invalidateQueries({queryKey:["review-copilot-status"]})}})}function z(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:p,onSuccess:()=>{a.invalidateQueries({queryKey:["quarantine"]}),a.invalidateQueries({queryKey:["review-copilot-status"]})}})}a.s(["useAnnotatePendingQuarantine",()=>z,"useAnnotateQuarantine",()=>y,"useApproveQuarantine",()=>u,"useAuditLogs",()=>q,"useAuditStats",()=>r,"useBulkApproveQuarantine",()=>w,"useBulkRejectQuarantine",()=>x,"useQuarantine",()=>s,"useRejectQuarantine",()=>v,"useReviewCopilotStatus",()=>t])}];
2
-
3
- //# sourceMappingURL=dashboard_30ecb37e._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[84692,a=>{"use strict";let b=(0,a.i(70694).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);a.s(["Loader2",()=>b],84692)},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)},13106,a=>{"use strict";var b=a.i(16306),c=a.i(64565);function d({className:a}){return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:(0,c.cn)("theme-glass:hidden flex items-center overflow-hidden rounded-md bg-[var(--term-surface-2)] text-[var(--term-text-muted)] text-xs leading-none animate-pulse px-2",a),"aria-busy":"true","aria-live":"polite",children:(0,b.jsx)("span",{className:"select-none whitespace-nowrap tracking-tighter",children:"█▓▓▓▒▒▒░░░░ ▓▓▒▒░░ █▓▒░ ▓▓▒░░ █▓▓▒░░░ ▓▒░░ █▒▒░"})}),(0,b.jsx)("div",{className:(0,c.cn)("hidden theme-glass:block animate-pulse rounded-xl bg-[var(--sc-surface-interactive)]",a),"aria-busy":"true","aria-live":"polite"})]})}function e(){return(0,b.jsxs)("div",{className:"mx-auto max-w-7xl space-y-6 p-6",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(d,{className:"h-3 w-24"}),(0,b.jsx)(d,{className:"h-7 w-56"}),(0,b.jsx)(d,{className:"h-4 w-80"})]}),(0,b.jsx)(d,{className:"h-10 w-96"}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-4 lg:grid-cols-4",children:[(0,b.jsx)(d,{className:"h-24"}),(0,b.jsx)(d,{className:"h-24"}),(0,b.jsx)(d,{className:"h-24"}),(0,b.jsx)(d,{className:"h-24"})]}),(0,b.jsxs)("div",{className:"grid gap-6 lg:grid-cols-2",children:[(0,b.jsx)(d,{className:"h-64"}),(0,b.jsx)(d,{className:"h-64"})]})]})}a.s(["PageSkeleton",()=>e,"Skeleton",()=>d])},29448,91030,a=>{"use strict";var b=a.i(70694);let c=(0,b.default)("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);a.s(["GitBranch",()=>c],29448);let d=(0,b.default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);a.s(["Search",()=>d],91030)},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)},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])},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])},73038,a=>{"use strict";var b=a.i(16306),c=a.i(32322),d=a.i(25605),e=a.i(35031),f=a.i(79030),g=a.i(23808);function h({feature:a,children:h,label:i}){let{data:j}=(0,e.useLicenseStatus)();if(!j)return(0,b.jsx)(b.Fragment,{children:h});let k=j.features.find(b=>b.feature===a);if(!k||k.enabled)return(0,b.jsx)(b.Fragment,{children:h});let l=k.requiredTier;return(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)("div",{className:"pointer-events-none select-none opacity-20 blur-[3px]",children:h}),(0,b.jsxs)("div",{className:"absolute inset-0 flex flex-col items-center justify-center rounded-2xl bg-[var(--sc-card-bg-strong)] backdrop-blur-sm",children:[(0,b.jsx)("div",{className:"rounded-xl bg-[var(--sc-coral)]/10 p-3",children:(0,b.jsx)(c.Lock,{size:24,className:"text-[var(--sc-coral)]"})}),(0,b.jsxs)("p",{className:"mt-3 text-sm font-semibold text-[var(--sc-text-primary)]",children:[f.TIER_LABELS[l]," Feature"]}),i&&(0,b.jsx)("p",{className:"mt-1 max-w-xs text-center text-xs text-[var(--sc-text-muted)]",children:i}),(0,b.jsx)("a",{href:"https://shieldcortex.ai/pricing",target:"_blank",rel:"noopener noreferrer",className:"mt-4",children:(0,b.jsxs)(g.Button,{variant:"coral",size:"sm",glow:!0,children:["Upgrade to ",f.TIER_LABELS[l],(0,b.jsx)(d.ExternalLink,{size:12})]})})]})]})}a.s(["ProFeatureGate",()=>h])}];
2
-
3
- //# sourceMappingURL=dashboard_5ccb6514._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[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)},26943,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)},26804,a=>{"use strict";var b=a.i(66807),c=a.i(40458),d=a.i(14220),e=a.i(86044);let f=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function g(a,b){let c=await (0,e.gatedFetch)(`${f}${a}`);if(!c.ok)throw Error(await (0,e.readApiError)(c,b));return c.json()}async function h(a){let b=await (0,e.gatedFetch)(`${f}/api/xray/scan`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error(await (0,e.readApiError)(b,"Failed to run X-Ray scan"));return b.json()}async function i(a){let b=await (0,e.gatedFetch)(`${f}/api/xray/pick-target`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({kind:a})});if(!b.ok)throw Error(await (0,e.readApiError)(b,`Failed to open ${a} picker`));return b.json()}function j(a,b){return!(b instanceof e.FeatureLockedError)&&a<2}function k(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 l(){return(0,c.useQuery)({queryKey:["xray-status"],queryFn:()=>g("/api/xray/status","Failed to fetch X-Ray status"),refetchInterval:3e4,retry:j})}function m(a={}){return(0,c.useQuery)({queryKey:["xray-history",a],queryFn:()=>g(`/api/xray/history${k({risk:a.risk,targetType:a.targetType,deep:a.deep,search:a.search?.trim()||void 0})}`,"Failed to fetch X-Ray history"),refetchInterval:3e4,retry:j})}function n(a){return(0,c.useQuery)({queryKey:["xray-history-entry",a],queryFn:()=>g(`/api/xray/history/${a}`,"Failed to fetch X-Ray scan detail"),enabled:!!a,retry:j})}function o(a=25,b={}){return(0,c.useQuery)({queryKey:["xray-activity",a,b],queryFn:()=>g(`/api/xray/activity${k({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:j})}function p(a=20,b={}){return(0,c.useQuery)({queryKey:["xray-watch-sessions",a,b],queryFn:()=>g(`/api/xray/watch-sessions${k({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:j})}function q(){let a=(0,d.useQueryClient)();return(0,b.useMutation)({mutationFn:h,onSuccess:()=>{a.invalidateQueries({queryKey:["xray-history"]}),a.invalidateQueries({queryKey:["xray-activity"]}),a.invalidateQueries({queryKey:["xray-watch-sessions"]}),a.invalidateQueries({queryKey:["xray-status"]})}})}function r(){return(0,b.useMutation)({mutationFn:a=>i(a)})}async function s(a){let b=await (0,e.gatedFetch)(`${f}/api/xray/watch/start`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error(await (0,e.readApiError)(b,"Failed to start watch"));return b.json()}async function t(a){let b=await (0,e.gatedFetch)(`${f}/api/xray/watch/stop`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({target:a})});if(!b.ok)throw Error(await (0,e.readApiError)(b,"Failed to stop watch"));return b.json()}function u(){return(0,c.useQuery)({queryKey:["xray-active-watchers"],queryFn:()=>g("/api/xray/watch/active","Failed to fetch active watchers"),refetchInterval:1e4})}function v(){let a=(0,d.useQueryClient)();return(0,b.useMutation)({mutationFn:s,onSuccess:()=>{a.invalidateQueries({queryKey:["xray-watch-sessions"]}),a.invalidateQueries({queryKey:["xray-active-watchers"]}),a.invalidateQueries({queryKey:["xray-status"]})}})}function w(){let a=(0,d.useQueryClient)();return(0,b.useMutation)({mutationFn:t,onSuccess:()=>{a.invalidateQueries({queryKey:["xray-watch-sessions"]}),a.invalidateQueries({queryKey:["xray-active-watchers"]}),a.invalidateQueries({queryKey:["xray-status"]})}})}a.s(["useActiveWatchers",()=>u,"usePickXRayTarget",()=>r,"useStartWatch",()=>v,"useStopWatch",()=>w,"useXRayActivity",()=>o,"useXRayHistory",()=>m,"useXRayHistoryEntry",()=>n,"useXRayScan",()=>q,"useXRayStatus",()=>l,"useXRayWatchSessions",()=>p])}];
2
-
3
- //# sourceMappingURL=dashboard_6999a855._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[37197,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={getDeploymentId:function(){return f},getDeploymentIdQueryOrEmptyString:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(){return!1}function g(){return""}},67789,a=>{"use strict";var b=a.i(40458),c=a.i(66807),d=a.i(14220),e=a.i(86044),f=a.i(9315);let g=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function h(a){let b=new URLSearchParams;a?.project&&b.set("project",a.project),a?.type&&b.set("type",a.type),a?.category&&b.set("category",a.category),a?.limit&&b.set("limit",a.limit.toString()),a?.offset&&b.set("offset",a.offset.toString()),a?.mode&&b.set("mode",a.mode),a?.query&&b.set("query",a.query);let c=await (0,e.authFetch)(`${g}/api/memories?${b}`);if(!c.ok)throw Error("Failed to fetch memories");return c.json()}async function i(a){let b=a?`?project=${a}`:"",c=await (0,e.authFetch)(`${g}/api/stats${b}`);if(!c.ok)throw Error("Failed to fetch stats");return c.json()}async function j(){let a=await (0,e.authFetch)(`${g}/api/projects`);if(!a.ok)throw Error("Failed to fetch projects");return a.json()}async function k(){let a=await (0,e.authFetch)(`${g}/api/capture/openclaw/sessions`);if(!a.ok)throw Error("Failed to fetch OpenClaw sessions");return a.json()}async function l(a){let b=await (0,e.authFetch)(`${g}/api/memories/${a}/access`,{method:"POST"});if(!b.ok)throw Error("Failed to access memory");return b.json()}function m(a){return(0,b.useQuery)({queryKey:["stats",a],queryFn:()=>i(a),refetchInterval:3e4})}function n(){return(0,b.useQuery)({queryKey:["projects"],queryFn:j,refetchInterval:6e4})}function o(){return(0,b.useQuery)({queryKey:["openclaw-sessions"],queryFn:k,staleTime:3e4})}function p(a){let c,d=(0,f.useMemoryWebSocket)();return{...{...c=(0,b.useQuery)({queryKey:["memories",a],queryFn:()=>h(a),refetchInterval:3e4}),data:c.data?.memories,pagination:c.data?.pagination},isConnected:d.isConnected,lastEvent:d.lastEvent}}function q(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:l,onSuccess:()=>{a.invalidateQueries({queryKey:["memories"]}),a.invalidateQueries({queryKey:["stats"]})}})}async function r(){let a=await (0,e.authFetch)(`${g}/api/version`);if(!a.ok)throw Error("Failed to fetch version");return a.json()}function s(){return(0,b.useQuery)({queryKey:["version"],queryFn:r,refetchInterval:6e4,staleTime:3e4})}async function t(a){let b=a?`?project=${a}`:"",c=await (0,e.authFetch)(`${g}/api/memories/quality${b}`);if(!c.ok)throw Error("Failed to fetch quality");return c.json()}function u(a){return(0,b.useQuery)({queryKey:["quality",a],queryFn:()=>t(a),staleTime:3e5})}async function v(a){let b=a?`?project=${a}`:"",c=await (0,e.authFetch)(`${g}/api/contradictions${b}`);if(!c.ok)throw Error("Failed to fetch contradictions");return c.json()}function w(a){return(0,b.useQuery)({queryKey:["contradictions",a],queryFn:()=>v(a),staleTime:3e5})}async function x(a){let b=await (0,e.authFetch)(`${g}/api/memories/${a}/promote`,{method:"POST"});if(!b.ok)throw Error("Failed to promote memory");return b.json()}async function y(a){let b=await (0,e.authFetch)(`${g}/api/memories/${a}`,{method:"DELETE"});if(!b.ok)throw Error("Failed to delete memory");return b.json()}async function z(a,b){let c=await (0,e.authFetch)(`${g}/api/memories/${a}/quarantine`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reason:b})});if(!c.ok)throw Error("Failed to quarantine memory");return c.json()}function A(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:x,onSuccess:()=>{a.invalidateQueries({queryKey:["memories"]}),a.invalidateQueries({queryKey:["stats"]})}})}function B(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:y,onSuccess:()=>{a.invalidateQueries({queryKey:["memories"]}),a.invalidateQueries({queryKey:["stats"]}),a.invalidateQueries({queryKey:["links"]})}})}function C(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:({id:a,reason:b})=>z(a,b),onSuccess:()=>{a.invalidateQueries({queryKey:["memories"]}),a.invalidateQueries({queryKey:["stats"]})}})}a.s(["useAccessMemory",()=>q,"useContradictions",()=>w,"useDeleteMemory",()=>B,"useMemoriesWithRealtime",()=>p,"useOpenClawSessions",()=>o,"useProjects",()=>n,"usePromoteMemory",()=>A,"useQuality",()=>u,"useQuarantineMemory",()=>C,"useStats",()=>m,"useVersion",()=>s])},9315,a=>{"use strict";var b=a.i(98419),c=a.i(14220),d=a.i(86044);let e=process.env.NEXT_PUBLIC_WS_URL||"ws://localhost:3001/ws/events";function f(a={}){let{enabled:g=!0,onMessage:h}=a,i=(0,c.useQueryClient)(),j=(0,b.useRef)(null),k=(0,b.useRef)(null),l=(0,b.useRef)(0),m=(0,b.useRef)(1e3),n=(0,b.useRef)(()=>{}),[o,p]=(0,b.useState)(!1),[q,r]=(0,b.useState)(!1),[s,t]=(0,b.useState)(null),u=(0,b.useRef)(h);(0,b.useEffect)(()=>{u.current=h},[h]);let v=(0,b.useCallback)(async()=>{if(g&&j.current?.readyState!==WebSocket.OPEN){k.current&&(clearTimeout(k.current),k.current=null);try{let a=await (0,d.getApiToken)(),b=`${e}?token=${encodeURIComponent(a)}`,c=new WebSocket(b);j.current=c,c.onopen=()=>{p(!0),l.current=0,m.current=1e3,console.log("[WebSocket] Connected to memory server")},c.onmessage=a=>{try{let b=JSON.parse(a.data);switch(t({type:b.type,data:b.data,timestamp:b.timestamp||new Date().toISOString()}),u.current?.(b),b.type){case"initial_state":case"consolidation_complete":case"predictive_consolidation":i.invalidateQueries({queryKey:["memories"]}),i.invalidateQueries({queryKey:["stats"]}),i.invalidateQueries({queryKey:["links"]});break;case"memory_created":case"memory_updated":case"memory_deleted":i.invalidateQueries({queryKey:["memories"]}),i.invalidateQueries({queryKey:["stats"]});break;case"decay_tick":case"worker_light_tick":case"worker_medium_tick":break;case"link_discovered":i.invalidateQueries({queryKey:["links"]});break;case"defence_event":i.invalidateQueries({queryKey:["agents"]}),i.invalidateQueries({queryKey:["agent-timeline"]}),i.invalidateQueries({queryKey:["audit-logs"]}),i.invalidateQueries({queryKey:["audit-stats"]});break;case"kill_switch_activated":case"kill_switch_deactivated":i.invalidateQueries({queryKey:["control-status"]}),i.invalidateQueries({queryKey:["iron-dome-status"]}),i.invalidateQueries({queryKey:["iron-dome-audit"]});break;case"update_started":case"update_complete":case"update_failed":"update_complete"===b.type&&(i.invalidateQueries({queryKey:["version"]}),i.invalidateQueries({queryKey:["version-check"]}));break;case"server_restarting":console.log("[WebSocket] Server restarting, will reconnect shortly...");break;case"xray_detection":i.invalidateQueries({queryKey:["xray-activity"]}),i.invalidateQueries({queryKey:["xray-watch-sessions"]}),i.invalidateQueries({queryKey:["xray-findings"]}),i.invalidateQueries({queryKey:["xray-status"]})}}catch(a){console.error("[WebSocket] Failed to parse message:",a)}},c.onerror=()=>{console.warn("[WebSocket] Connection failed - is the API server running?")},c.onclose=a=>{if(p(!1),console.log("[WebSocket] Disconnected",a.code),(1008===a.code||4001===a.code||4003===a.code)&&(0,d.invalidateApiToken)(),g&&l.current<10){let a=m.current;l.current++,m.current=Math.min(2*m.current,3e4),console.log(`[WebSocket] Reconnecting in ${a}ms (attempt ${l.current}/10)...`),k.current=setTimeout(()=>{n.current()},a)}else l.current>=10&&(r(!0),console.error("[WebSocket] Max reconnection attempts reached. Use reconnect() to try again."))}}catch(a){console.error("[WebSocket] Failed to connect:",a)}}},[g,i]);return(0,b.useEffect)(()=>{n.current=v}),(0,b.useEffect)(()=>(g&&v(),()=>{k.current&&clearTimeout(k.current),j.current&&(j.current.close(),j.current=null)}),[g,v]),{isConnected:o,connectionFailed:q,lastEvent:s,reconnect:(0,b.useCallback)(()=>{l.current=0,m.current=1e3,r(!1),v()},[v])}}a.s(["useMemoryWebSocket",()=>f])},66807,a=>{"use strict";var b=a.i(98419),c=a.i(46674),d=a.i(98416),e=a.i(16347),f=a.i(15896),g=class extends e.Subscribable{#a;#b=void 0;#c;#d;constructor(a,b){super(),this.#a=a,this.setOptions(b),this.bindMethods(),this.#e()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(a){let b=this.options;this.options=this.#a.defaultMutationOptions(a),(0,f.shallowEqualObjects)(this.options,b)||this.#a.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#c,observer:this}),b?.mutationKey&&this.options.mutationKey&&(0,f.hashKey)(b.mutationKey)!==(0,f.hashKey)(this.options.mutationKey)?this.reset():this.#c?.state.status==="pending"&&this.#c.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#c?.removeObserver(this)}onMutationUpdate(a){this.#e(),this.#f(a)}getCurrentResult(){return this.#b}reset(){this.#c?.removeObserver(this),this.#c=void 0,this.#e(),this.#f()}mutate(a,b){return this.#d=b,this.#c?.removeObserver(this),this.#c=this.#a.getMutationCache().build(this.#a,this.options),this.#c.addObserver(this),this.#c.execute(a)}#e(){let a=this.#c?.state??(0,c.getDefaultState)();this.#b={...a,isPending:"pending"===a.status,isSuccess:"success"===a.status,isError:"error"===a.status,isIdle:"idle"===a.status,mutate:this.mutate,reset:this.reset}}#f(a){d.notifyManager.batch(()=>{if(this.#d&&this.hasListeners()){let b=this.#b.variables,c=this.#b.context,d={client:this.#a,meta:this.options.meta,mutationKey:this.options.mutationKey};if(a?.type==="success"){try{this.#d.onSuccess?.(a.data,b,c,d)}catch(a){Promise.reject(a)}try{this.#d.onSettled?.(a.data,null,b,c,d)}catch(a){Promise.reject(a)}}else if(a?.type==="error"){try{this.#d.onError?.(a.error,b,c,d)}catch(a){Promise.reject(a)}try{this.#d.onSettled?.(void 0,a.error,b,c,d)}catch(a){Promise.reject(a)}}}this.listeners.forEach(a=>{a(this.#b)})})}},h=a.i(14220);function i(a,c){let e=(0,h.useQueryClient)(c),[i]=b.useState(()=>new g(e,a));b.useEffect(()=>{i.setOptions(a)},[i,a]);let j=b.useSyncExternalStore(b.useCallback(a=>i.subscribe(d.notifyManager.batchCalls(a)),[i]),()=>i.getCurrentResult(),()=>i.getCurrentResult()),k=b.useCallback((a,b)=>{i.mutate(a,b).catch(f.noop)},[i]);if(j.error&&(0,f.shouldThrowError)(i.options.throwOnError,[j.error]))throw j.error;return{...j,mutate:k,mutateAsync:j.mutate}}a.s(["useMutation",()=>i],66807)},79155,a=>{"use strict";let b=(0,a.i(70694).default)("shield-alert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);a.s(["ShieldAlert",()=>b],79155)},70694,a=>{"use strict";var b=a.i(98419);let c=a=>{let b=a.replace(/^([A-Z])|[\s-_]+(\w)/g,(a,b,c)=>c?c.toUpperCase():b.toLowerCase());return b.charAt(0).toUpperCase()+b.slice(1)},d=(...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim();var e={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let f=(0,b.forwardRef)(({color:a="currentColor",size:c=24,strokeWidth:f=2,absoluteStrokeWidth:g,className:h="",children:i,iconNode:j,...k},l)=>(0,b.createElement)("svg",{ref:l,...e,width:c,height:c,stroke:a,strokeWidth:g?24*Number(f)/Number(c):f,className:d("lucide",h),...!i&&!(a=>{for(let b in a)if(b.startsWith("aria-")||"role"===b||"title"===b)return!0})(k)&&{"aria-hidden":"true"},...k},[...j.map(([a,c])=>(0,b.createElement)(a,c)),...Array.isArray(i)?i:[i]])),g=(a,e)=>{let g=(0,b.forwardRef)(({className:g,...h},i)=>(0,b.createElement)(f,{ref:i,iconNode:e,className:d(`lucide-${c(a).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${a}`,g),...h}));return g.displayName=c(a),g};a.s(["default",()=>g],70694)},73683,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},64575,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={DEFAULT_SEGMENT_KEY:function(){return l},NOT_FOUND_SEGMENT_KEY:function(){return m},PAGE_SEGMENT_KEY:function(){return k},addSearchParamsIfPageSegment:function(){return i},computeSelectedLayoutSegment:function(){return j},getSegmentValue:function(){return f},getSelectedLayoutSegmentPath:function(){return function a(b,c,d=!0,e=[]){let g;if(d)g=b[1][c];else{let a=b[1];g=a.children??Object.values(a)[0]}if(!g)return e;let h=f(g[0]);return!h||h.startsWith(k)?e:(e.push(h),a(g,c,!1,e))}},isGroupSegment:function(){return g},isParallelRouteSegment:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(a){return Array.isArray(a)?a[1]:a}function g(a){return"("===a[0]&&a.endsWith(")")}function h(a){return a.startsWith("@")&&"@children"!==a}function i(a,b){if(a.includes(k)){let a=JSON.stringify(b);return"{}"!==a?k+"?"+a:k}return a}function j(a,b){if(!a||0===a.length)return null;let c="children"===b?a[0]:a[a.length-1];return c===l?null:c}let k="__PAGE__",l="__DEFAULT__",m="/_not-found"},76625,a=>{"use strict";let b=(0,a.i(70694).default)("database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);a.s(["Database",()=>b],76625)}];
2
-
3
- //# sourceMappingURL=dashboard_c33b336f._.js.map