shieldcortex 4.12.11 → 4.12.12
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.
- package/dashboard/.next/standalone/dashboard/.next/BUILD_ID +1 -1
- package/dashboard/.next/standalone/dashboard/.next/build-manifest.json +2 -2
- package/dashboard/.next/standalone/dashboard/.next/prerender-manifest.json +3 -3
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/admin/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/admin/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/cloud/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/cloud/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/capture/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/capture/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/graph/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/graph/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/recall/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/recall/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/review/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/timeline/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/memory/timeline/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/overview/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/overview/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/audit/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/audit/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/intercepts/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/intercepts/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/iron-dome/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/iron-dome/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/policies/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/policies/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/quarantine/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/protection/quarantine/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/xray/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/supply-chain/xray/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page.js.nft.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/(dashboard)/xray/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.html +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/admin.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/admin.rsc +6 -6
- package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/!KGRhc2hib2FyZCk/admin/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/!KGRhc2hib2FyZCk/admin.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_full.segment.rsc +6 -6
- package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/admin.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.rsc +6 -6
- package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/!KGRhc2hib2FyZCk/cloud/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/!KGRhc2hib2FyZCk/cloud.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_full.segment.rsc +6 -6
- package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/cloud.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/index.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/index.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_full.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.meta +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.rsc +7 -7
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory/capture/__PAGE__.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory/capture.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_full.segment.rsc +7 -7
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/capture.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.rsc +6 -6
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory/graph/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory/graph.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_full.segment.rsc +6 -6
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/graph.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.rsc +6 -6
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory/recall/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory/recall.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_full.segment.rsc +6 -6
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/recall.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.rsc +6 -6
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory/review/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory/review.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_full.segment.rsc +6 -6
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/review.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.rsc +6 -6
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory/timeline/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory/timeline.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_full.segment.rsc +6 -6
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory/timeline.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory.rsc +7 -7
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk/memory/__PAGE__.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk/memory.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_full.segment.rsc +7 -7
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/memory.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/overview.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/overview.rsc +7 -7
- package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk/overview/__PAGE__.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk/overview.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_full.segment.rsc +7 -7
- package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/overview.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.rsc +6 -6
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection/audit/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection/audit.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_full.segment.rsc +6 -6
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/audit.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.rsc +6 -6
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection/intercepts/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection/intercepts.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_full.segment.rsc +6 -6
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/intercepts.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.rsc +6 -6
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection/iron-dome/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection/iron-dome.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_full.segment.rsc +6 -6
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/iron-dome.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.rsc +6 -6
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection/policies/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection/policies.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_full.segment.rsc +6 -6
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/policies.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.rsc +6 -6
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection/quarantine/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection/quarantine.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_full.segment.rsc +6 -6
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection/quarantine.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection.rsc +7 -7
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk/protection/__PAGE__.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk/protection.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_full.segment.rsc +7 -7
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/protection.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/settings.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/settings.rsc +7 -7
- package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings/__PAGE__.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_full.segment.rsc +7 -7
- package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.rsc +6 -6
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain/xray/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain/xray.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk/supply-chain.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_full.segment.rsc +6 -6
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain/xray.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.rsc +6 -6
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk/supply-chain/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk/supply-chain.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_full.segment.rsc +6 -6
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/supply-chain.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/xray.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/xray.rsc +7 -7
- package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk/xray/__PAGE__.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk/xray.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
- package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_full.segment.rsc +7 -7
- package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/xray.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__c2b92077._.js +3 -0
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_01f6ceb0._.js +3 -0
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_11878109._.js +3 -0
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_1bfd1423._.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_35a9932a._.js +3 -0
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_35c9f22e._.js +3 -0
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_37f17371._.js +3 -0
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_836b4a04._.js +3 -0
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_9770c429._.js +3 -0
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_9dd626ed._.js +3 -0
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_c219bf07._.js +8 -2
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_e94d2da2._.js +3 -0
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/{dashboard_d5fc66fc._.js → dashboard_fefd3b85._.js} +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_components_protection_ProtectionOverview_tsx_54554a97._.js +3 -1
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_src_components_xray_XRayOverview_tsx_ceba698e._.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/pages/404.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/pages/500.html +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/079a5be036130e37.js +1 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/1770a8ce7abb2437.js +1 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/1a074f8ddc7cd385.js +1 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/24da99d1341bd573.css +3 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/2aa8afb655c1c2e5.js +1 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/385ec610bad1acc5.js +1 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/3d53807a9a943ce7.js +15 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/4f57582c2d186438.js +1 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/7fca141efba9d353.js +1 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/8593e1796c9d043d.js +1 -0
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/c288964c4c00982a.js +3 -0
- package/dist/api/routes/admin.js +295 -8
- package/dist/api/visualization-server.js +5 -0
- package/dist/audit/index.d.ts +2 -1
- package/dist/audit/index.js +1 -1
- package/dist/audit/memory-scanner.d.ts +66 -1
- package/dist/audit/memory-scanner.js +441 -28
- package/dist/cli/review-copilot.d.ts +1 -0
- package/dist/cli/review-copilot.js +197 -0
- package/dist/cloud/cli.js +3 -1
- package/dist/cloud/config.d.ts +17 -0
- package/dist/cloud/config.js +110 -25
- package/dist/database/init.js +37 -0
- package/dist/database/schema.sql +20 -0
- package/dist/defence/explainer/index.d.ts +5 -0
- package/dist/defence/explainer/index.js +28 -0
- package/dist/defence/explainer/prompt.d.ts +2 -0
- package/dist/defence/explainer/prompt.js +49 -0
- package/dist/defence/explainer/schema.d.ts +3 -0
- package/dist/defence/explainer/schema.js +204 -0
- package/dist/defence/explainer/types.d.ts +26 -0
- package/dist/defence/explainer/types.js +1 -0
- package/dist/defence/judge/annotate.d.ts +8 -0
- package/dist/defence/judge/annotate.js +107 -0
- package/dist/defence/judge/annotations-store.d.ts +4 -0
- package/dist/defence/judge/annotations-store.js +67 -0
- package/dist/defence/judge/decision.d.ts +10 -0
- package/dist/defence/judge/decision.js +165 -0
- package/dist/defence/judge/fallback.d.ts +4 -0
- package/dist/defence/judge/fallback.js +19 -0
- package/dist/defence/judge/grouping.d.ts +4 -0
- package/dist/defence/judge/grouping.js +52 -0
- package/dist/defence/judge/index.d.ts +9 -0
- package/dist/defence/judge/index.js +34 -0
- package/dist/defence/judge/prompt.d.ts +3 -0
- package/dist/defence/judge/prompt.js +49 -0
- package/dist/defence/judge/runner.d.ts +3 -0
- package/dist/defence/judge/runner.js +160 -0
- package/dist/defence/judge/schema.d.ts +15 -0
- package/dist/defence/judge/schema.js +118 -0
- package/dist/defence/judge/telemetry.d.ts +28 -0
- package/dist/defence/judge/telemetry.js +43 -0
- package/dist/defence/judge/types.d.ts +67 -0
- package/dist/defence/judge/types.js +1 -0
- package/dist/defence/judge/worker.d.ts +1 -0
- package/dist/defence/judge/worker.js +106 -0
- package/dist/defence/quarantine/review.js +16 -7
- package/dist/index.d.ts +1 -0
- package/dist/index.js +10 -1
- package/dist/lib.d.ts +9 -1
- package/dist/lib.js +7 -1
- package/dist/license/gate.d.ts +1 -1
- package/dist/license/gate.js +6 -0
- package/package.json +4 -1
- package/plugins/openclaw/dist/openclaw.plugin.json +1 -1
- package/scripts/ensure-bin-executable.mjs +17 -0
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/[root-of-the-server]__4a575c8d._.js +0 -3
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_0734b815._.js +0 -3
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_21edaee1._.js +0 -3
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_354daf70._.js +0 -3
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_8481163e._.js +0 -3
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_a3053031._.js +0 -3
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_a38f5767._.js +0 -3
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_f6813b70._.js +0 -3
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/1482af194911d5e7.js +0 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/2c2a280eeaed7ed2.js +0 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/2f92786ac35bbdb9.js +0 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/90f35860c69b2f0b.js +0 -9
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/915d5a8cf2d0807e.css +0 -3
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/927fe0465516b94a.js +0 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/99a618b860658c5c.js +0 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/b31e08a78b0cb6fb.js +0 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/c2ccb1c0ed7b2af2.js +0 -1
- /package/dashboard/.next/standalone/dashboard/.next/static/{Azzglh6qPGDH5Kl8B76tx → 5HSptYF0HaABlloA3Hir3}/_buildManifest.js +0 -0
- /package/dashboard/.next/standalone/dashboard/.next/static/{Azzglh6qPGDH5Kl8B76tx → 5HSptYF0HaABlloA3Hir3}/_clientMiddlewareManifest.json +0 -0
- /package/dashboard/.next/standalone/dashboard/.next/static/{Azzglh6qPGDH5Kl8B76tx → 5HSptYF0HaABlloA3Hir3}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[89418,a=>{"use strict";var b=a.i(16306),c=a.i(98419),d=a.i(88904),e=a.i(26943),f=a.i(94992),g=a.i(70694);let h=(0,g.default)("file-search",[["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"}],["circle",{cx:"11.5",cy:"14.5",r:"2.5",key:"1bq0ko"}],["path",{d:"M13.3 16.3 15 18",key:"2quom7"}]]),i=(0,g.default)("folder-search",[["path",{d:"M10.7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v4.1",key:"1bw5m7"}],["path",{d:"m21 21-1.9-1.9",key:"1g2n9r"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}]]);var j=a.i(32322);let k=(0,g.default)("radar",[["path",{d:"M19.07 4.93A10 10 0 0 0 6.99 3.34",key:"z3du51"}],["path",{d:"M4 6h.01",key:"oypzma"}],["path",{d:"M2.29 9.62A10 10 0 1 0 21.31 8.35",key:"qzzz0"}],["path",{d:"M16.24 7.76A6 6 0 1 0 8.23 16.67",key:"1yjesh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M17.99 11.66A6 6 0 0 1 15.77 16.67",key:"1u2y91"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"m13.41 10.59 5.66-5.66",key:"mhq4k0"}]]);var l=a.i(66397),m=a.i(83364),n=a.i(86044),o=a.i(9315),p=a.i(54100),q=a.i(60210),r=a.i(23808),s=a.i(79151),t=a.i(48195);function u({score:a,size:c=160,label:d}){let e=2*Math.PI*42,f=a/100*e,g=a<=50?"var(--sc-coral)":a<=75?"var(--sc-amber)":"var(--sc-cyan)",h=a<=50?"var(--sc-glow-coral)":a<=75?"rgba(245, 158, 11, 0.15)":"var(--sc-glow-cyan)";return(0,b.jsxs)("div",{className:"flex flex-col items-center gap-2",children:[(0,b.jsxs)("div",{className:"relative",style:{width:c,height:c},children:[(0,b.jsxs)("svg",{viewBox:"0 0 100 100",className:"h-full w-full -rotate-90",style:{filter:`drop-shadow(0 0 12px ${h})`},children:[(0,b.jsx)("circle",{cx:"50",cy:"50",r:42,fill:"none",stroke:"var(--sc-bg-elevated)",strokeWidth:"7"}),(0,b.jsx)("circle",{cx:"50",cy:"50",r:42,fill:"none",stroke:g,strokeWidth:"7",strokeDasharray:`${f} ${e}`,strokeLinecap:"round",className:"transition-all duration-1000 ease-out"})]}),(0,b.jsxs)("div",{className:"absolute inset-0 flex flex-col items-center justify-center",children:[(0,b.jsx)("span",{className:"text-3xl font-bold",style:{color:g},children:a}),(0,b.jsx)("span",{className:"text-[11px] text-[var(--sc-text-muted)]",children:"trust"})]})]}),d&&(0,b.jsx)("span",{className:"text-xs font-medium text-[var(--sc-text-secondary)]",children:d})]})}var v=a.i(62606);let w=(0,g.default)("eye-off",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);var x=a.i(98472),y=a.i(6321),z=a.i(40458),A=a.i(66807),B=a.i(14220);let C=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";function D({findingId:a,status:d,hasFile:e,compact:g=!1}){let h,i,j,[k,l]=(0,c.useState)(!1),[o,p]=(0,c.useState)(""),[q,s]=(0,c.useState)(!1),t=(h=(0,B.useQueryClient)(),(0,A.useMutation)({mutationFn:async({id:a,status:b,note:c})=>{let d=await (0,n.gatedFetch)(`${C}/api/xray/findings/${a}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:b,note:c})});if(!d.ok)throw Error(await (0,n.readApiError)(d,"Failed to update finding"));return d.json()},onSuccess:()=>{h.invalidateQueries({queryKey:["xray-findings"]}),h.invalidateQueries({queryKey:["xray-findings-stats"]})}})),u=(i=(0,B.useQueryClient)(),(0,A.useMutation)({mutationFn:async({id:a,note:b})=>{let c=await (0,n.gatedFetch)(`${C}/api/xray/findings/${a}/quarantine`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({note:b})});if(!c.ok)throw Error(await (0,n.readApiError)(c,"Failed to quarantine file"));return c.json()},onSuccess:()=>{i.invalidateQueries({queryKey:["xray-findings"]}),i.invalidateQueries({queryKey:["xray-findings-stats"]})}})),z=(j=(0,B.useQueryClient)(),(0,A.useMutation)({mutationFn:async a=>{let b=await (0,n.gatedFetch)(`${C}/api/xray/findings/${a}`,{method:"DELETE"});if(!b.ok)throw Error(await (0,n.readApiError)(b,"Failed to delete finding"));return b.json()},onSuccess:()=>{j.invalidateQueries({queryKey:["xray-findings"]}),j.invalidateQueries({queryKey:["xray-findings-stats"]})}})),D=b=>{switch(b){case"reviewed":t.mutate({id:a,status:"reviewed"},{onSuccess:()=>m.toast.success("Marked as reviewed"),onError:a=>m.toast.error(`Failed to update: ${a.message}`)});break;case"ignored":t.mutate({id:a,status:"ignored",note:o},{onSuccess:()=>{m.toast.info("Finding ignored — removed from active list"),l(!1),p(""),s(!0)},onError:a=>m.toast.error(`Failed to ignore: ${a.message}`)});break;case"resolved":t.mutate({id:a,status:"resolved",note:o},{onSuccess:()=>{m.toast.success("Finding resolved — removed from active list"),l(!1),p(""),s(!0)},onError:a=>m.toast.error(`Failed to resolve: ${a.message}`)});break;case"quarantine":u.mutate({id:a,note:o},{onSuccess:a=>{m.toast.warning(a.moved?"File quarantined and moved":"Marked quarantined (file not found)"),s(!0)},onError:a=>m.toast.error(`Quarantine failed: ${a.message}`)});break;case"delete":z.mutate(a,{onSuccess:()=>{m.toast.success("Finding deleted"),s(!0)},onError:a=>m.toast.error(`Failed to delete: ${a.message}`)})}};if(q)return(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs text-[var(--sc-cyan)] italic animate-pulse",children:[(0,b.jsx)(v.Check,{size:12})," Done — removing from list..."]});if("resolved"===d)return(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs text-[var(--sc-cyan)]",children:[(0,b.jsx)(v.Check,{size:12})," Resolved"]});if("quarantined"===d)return(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs text-[var(--sc-amber)]",children:[(0,b.jsx)(x.Shield,{size:12})," Quarantined"]});if("ignored"===d)return(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs text-[var(--sc-text-muted)]",children:[(0,b.jsx)(w,{size:12})," Ignored"]});let E=g?"sm":"md",F=t.isPending||u.isPending||z.isPending;return(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:["new"===d&&(0,b.jsxs)(r.Button,{variant:"ghost",size:E,onClick:()=>D("reviewed"),disabled:F,children:[(0,b.jsx)(f.Eye,{size:12})," Mark reviewed"]}),(0,b.jsxs)(r.Button,{variant:"cyan",size:E,onClick:()=>l(!k),disabled:F,children:[(0,b.jsx)(v.Check,{size:12})," Resolve"]}),(0,b.jsxs)(r.Button,{variant:"ghost",size:E,onClick:()=>D("ignored"),disabled:F,children:[(0,b.jsx)(w,{size:12})," Safe to ignore"]}),e&&(0,b.jsxs)(r.Button,{variant:"coral",size:E,onClick:()=>D("quarantine"),disabled:F,children:[(0,b.jsx)(x.Shield,{size:12})," Quarantine file"]}),(0,b.jsx)(r.Button,{variant:"ghost",size:E,onClick:()=>D("delete"),disabled:F,children:(0,b.jsx)(y.Trash2,{size:12})})]}),k&&(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("input",{value:o,onChange:a=>p(a.target.value),placeholder:"What did you do about it? (optional)",className:"flex-1 rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] px-3 py-1.5 text-xs text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)] focus-ring-cyan","aria-label":"Resolution note",onKeyDown:a=>{"Enter"===a.key&&D("resolved")}}),(0,b.jsx)(r.Button,{variant:"cyan",size:"sm",onClick:()=>D("resolved"),disabled:F,children:"Done"})]})]})}var E=a.i(26804);function F(a){return a?new Date(a).toLocaleString():"—"}function G(){var a;let[g,v]=(0,c.useState)("scanner"),[w,x]=(0,c.useState)(""),[y,A]=(0,c.useState)(!1),[B,G]=(0,c.useState)(null),[H,I]=(0,c.useState)("ALL"),[J,K]=(0,c.useState)("all"),[L,M]=(0,c.useState)("all"),[N,O]=(0,c.useState)(""),[P,Q]=(0,c.useState)("all"),[R,S]=(0,c.useState)("all"),[T,U]=(0,c.useState)(""),[V,W]=(0,c.useState)(!1),[X,Y]=(0,c.useState)("new"),{data:Z}=(0,E.useXRayHistory)({risk:H,targetType:J,deep:L,search:N}),{data:$}=(0,E.useXRayActivity)(8,{kind:P}),{data:_}=(0,E.useXRayWatchSessions)(8,{state:R}),{data:aa}=(0,E.useXRayStatus)(),{data:ab}=(0,z.useQuery)({queryKey:["xray-findings-stats"],queryFn:async()=>{let a=await (0,n.gatedFetch)(`${C}/api/xray/findings/stats`);if(!a.ok)throw Error(await (0,n.readApiError)(a,"Failed to fetch finding stats"));return a.json()},refetchInterval:15e3}),{data:ac}=(a={status:"all"===X?void 0:X},(0,z.useQuery)({queryKey:["xray-findings",a],queryFn:async()=>{let b=new URLSearchParams;a?.status&&b.set("status",a.status),a?.severity&&b.set("severity",a.severity),a?.limit&&b.set("limit",String(a.limit));let c=b.toString()?`?${b}`:"",d=await (0,n.gatedFetch)(`${C}/api/xray/findings${c}`);if(!d.ok)throw Error(await (0,n.readApiError)(d,"Failed to fetch findings"));return d.json()},refetchInterval:15e3})),ad=(0,c.useMemo)(()=>Z?.entries??[],[Z?.entries]),ae=$?.entries??[],af=_?.entries??[],ag=(0,E.useXRayScan)(),ah=(0,E.usePickXRayTarget)(),ai=B??(ad.length>0?ad[0].id:null),aj=(0,E.useXRayHistoryEntry)(ai),{data:ak}=(0,E.useActiveWatchers)(),al=(0,E.useStartWatch)(),am=(0,E.useStopWatch)(),an=ak?.watchers??[],ao=ag.data?.result,ap=ag.data?.persistedFindings??[],aq=ag.error,ar=aq instanceof n.FeatureLockedError;(0,o.useMemoryWebSocket)({onMessage:a=>{if("xray_detection"===a.type){let b=a.data;m.toast.warning(b.summary||"X-Ray detection",{description:`Risk: ${b.riskLevel||"unknown"}`,duration:8e3})}}});let as=aj.data?.entry??ad.find(a=>a.id===ai)??null,at=ao??as?.result??null,au=(0,c.useMemo)(()=>({total:ad.length,avgScore:ad.length?Math.round(ad.reduce((a,b)=>a+b.trustScore,0)/ad.length):null}),[ad]),av=aa?.capabilities,aw=aa?.summary,ax=[{id:"scanner",label:"Scanner",icon:(0,b.jsx)(l.ScanSearch,{size:14})},{id:"history",label:"History",count:au.total},{id:"watch",label:"Watch",count:aw?.activeWatchRoots??0},{id:"activity",label:"Activity"},{id:"findings",label:"Findings",count:ab?.new??0}];return(0,b.jsx)("div",{className:"h-full overflow-y-auto",children:(0,b.jsxs)("div",{className:"mx-auto max-w-7xl space-y-6 p-6",children:[(0,b.jsx)(s.PageHeader,{eyebrow:"Supply Chain Security",title:"X-Ray Scanner",subtitle:"Scan packages, files, and directories for hidden risk signals.",tabs:ax,activeTab:g,onTabChange:a=>v(a),actions:(0,b.jsx)("div",{className:"flex items-center gap-3",children:(0,b.jsxs)(q.Badge,{variant:av?.deepScan?"cyan":"muted",dot:!0,children:["Deep scan ",av?.deepScan?"enabled":"gated"]})})}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-4 lg:grid-cols-4",children:[(0,b.jsx)(t.StatCard,{label:"Total Scans",value:aw?.scans??0,icon:l.ScanSearch,accent:"cyan"}),(0,b.jsx)(t.StatCard,{label:"High Risk",value:aw?.highRiskScans??0,icon:d.Activity,accent:"coral"}),(0,b.jsx)(t.StatCard,{label:"Watch Roots",value:aw?.activeWatchRoots??0,icon:f.Eye,accent:"cyan"}),(0,b.jsx)(t.StatCard,{label:"Avg Trust",value:au.avgScore??"—",icon:h,accent:au.avgScore&&au.avgScore>=70?"cyan":"amber"})]}),"scanner"===g&&(0,b.jsxs)("div",{className:"grid gap-6 xl:grid-cols-[1.2fr_0.8fr]",children:[(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsxs)(p.GlassCard,{strong:!0,className:"p-6",children:[(0,b.jsxs)("form",{onSubmit:a=>{a.preventDefault(),w.trim()&&ag.mutate({target:w.trim(),deep:y})},children:[(0,b.jsx)("label",{className:"text-sm font-semibold text-[var(--sc-text-primary)]",children:"What do you want to scan?"}),(0,b.jsx)("input",{value:w,onChange:a=>x(a.target.value),placeholder:"Package name, file path, or directory...",className:"mt-3 w-full rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] px-4 py-3 text-sm text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)] focus-ring-cyan"}),(0,b.jsxs)("div",{className:"mt-4 flex flex-wrap items-center gap-3",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>ah.mutate("file",{onSuccess:a=>{a.path&&x(a.path)}}),className:"inline-flex items-center gap-2 rounded-xl border border-[var(--sc-border)] bg-[var(--sc-surface-interactive)] px-4 py-2.5 text-sm font-medium text-[var(--sc-text-secondary)] transition-all hover:bg-[var(--sc-surface-interactive-hover)] hover:text-[var(--sc-text-primary)]",children:[(0,b.jsx)(h,{size:14})," Browse file"]}),(0,b.jsxs)("button",{type:"button",onClick:()=>ah.mutate("folder",{onSuccess:a=>{a.path&&x(a.path)}}),className:"inline-flex items-center gap-2 rounded-xl border border-[var(--sc-border)] bg-[var(--sc-surface-interactive)] px-4 py-2.5 text-sm font-medium text-[var(--sc-text-secondary)] transition-all hover:bg-[var(--sc-surface-interactive-hover)] hover:text-[var(--sc-text-primary)]",children:[(0,b.jsx)(i,{size:14})," Browse folder"]}),(0,b.jsxs)("label",{className:"inline-flex items-center gap-2 rounded-xl border border-[var(--sc-border)] bg-[var(--sc-surface-interactive)] px-3 py-2.5 text-sm text-[var(--sc-text-secondary)]",children:[(0,b.jsx)("input",{type:"checkbox",checked:y,onChange:a=>A(a.target.checked),className:"h-4 w-4 rounded border-[var(--sc-border)] accent-[var(--sc-cyan)]"}),"Deep scan",!av?.deepScan&&(0,b.jsx)(j.Lock,{size:12,className:"text-[var(--sc-coral)]"})]}),(0,b.jsxs)(r.Button,{type:"submit",variant:"coral",glow:!0,disabled:ag.isPending||!w.trim(),children:[ag.isPending?"Scanning…":"Run Scan",(0,b.jsx)(e.ArrowRight,{size:14})]})]}),(0,b.jsx)("p",{className:"mt-3 text-xs text-[var(--sc-text-muted)]",children:"Native macOS picker via local API, or paste a path / package name directly."})]}),ah.isError&&(0,b.jsx)("div",{className:"mt-3 rounded-xl border border-[var(--sc-coral)]/20 bg-[var(--sc-coral)]/5 px-4 py-3 text-sm text-[var(--sc-coral)]",children:ah.error instanceof Error?ah.error.message:"Failed to open native picker"}),aq&&(0,b.jsx)("div",{className:`mt-4 rounded-xl px-4 py-3 text-sm ${ar?"border border-[var(--sc-amber)]/20 bg-[var(--sc-amber)]/5 text-[var(--sc-amber)]":"border border-[var(--sc-coral)]/20 bg-[var(--sc-coral)]/5 text-[var(--sc-coral)]"}`,children:aq.message})]}),(0,b.jsxs)(p.GlassCard,{className:`p-6 ${ag.isPending?"scan-sweep":""}`,children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)("h3",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Scan Result"}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsxs)(q.Badge,{variant:"muted",children:[au.total," scans"]}),(0,b.jsxs)(q.Badge,{variant:"muted",children:["Avg ",au.avgScore??"—"]})]})]}),at?(0,b.jsxs)("div",{className:"mt-5 space-y-4",children:[(0,b.jsxs)("div",{className:"flex items-start gap-6",children:[(0,b.jsx)(u,{score:at.trustScore,size:120}),(0,b.jsxs)("div",{className:"flex-1",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,b.jsx)("h4",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:at.target}),(0,b.jsx)(q.Badge,{variant:(0,q.riskVariant)(at.riskLevel),children:at.riskLevel})]}),(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap gap-2",children:[(0,b.jsxs)(q.Badge,{variant:"muted",children:[at.filesScanned," files"]}),(0,b.jsx)(q.Badge,{variant:"muted",children:at.deepScan?"Deep":"Standard"}),(0,b.jsx)(q.Badge,{variant:"muted",children:F(at.scannedAt)})]})]})]}),(0,b.jsx)("div",{className:"space-y-3",children:0===at.findings.length?(0,b.jsx)("div",{className:"rounded-xl border border-[var(--sc-cyan)]/20 bg-[var(--sc-cyan)]/5 px-4 py-4 text-sm text-[var(--sc-cyan)]",children:"No findings detected. This target looks clean."}):at.findings.map((a,c)=>(0,b.jsxs)(p.GlassCard,{severity:a.severity,className:"p-4",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(q.Badge,{variant:(0,q.riskVariant)(a.severity),children:a.severity}),(0,b.jsx)(q.Badge,{variant:"muted",children:a.category})]}),(0,b.jsx)("p",{className:"mt-2 text-sm font-semibold text-[var(--sc-text-primary)]",children:a.title}),(0,b.jsx)("p",{className:"mt-1 text-sm text-[var(--sc-text-secondary)]",children:a.description}),(a.file||a.evidence)&&(0,b.jsxs)("div",{className:"mt-2 space-y-0.5 font-mono text-xs text-[var(--sc-text-muted)]",children:[a.file&&(0,b.jsxs)("div",{children:["File: ",a.line?`${a.file}:${a.line}`:a.file]}),a.evidence&&(0,b.jsxs)("div",{children:["Evidence: ",a.evidence]})]}),ap[c]&&(0,b.jsx)("div",{className:"mt-3 border-t border-[var(--sc-border)] pt-3",children:(0,b.jsx)(D,{findingId:ap[c].id,status:ap[c].status,hasFile:!!a.file,compact:!0})})]},`${a.title}-${c}`))})]}):(0,b.jsx)("div",{className:"mt-5 rounded-xl bg-[var(--sc-bg-elevated)] px-5 py-8 text-center text-sm text-[var(--sc-text-muted)]",children:"Run a scan or select one from history to see results here."})]})]}),(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)(p.GlassCard,{strong:!0,className:"p-5",children:[(0,b.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Capabilities"}),(0,b.jsx)("div",{className:"mt-4 space-y-3",children:[{label:"Local scan",enabled:av?.localScan??!0},{label:"Watch mode",enabled:av?.watchMode??!0},{label:"Preinstall hook",enabled:av?.preinstallHook??!1},{label:"npm inspection",enabled:av?.npmInspection??!1},{label:"Deep scan",enabled:av?.deepScan??!1}].map(a=>(0,b.jsxs)("div",{className:"flex items-center justify-between rounded-lg bg-[var(--sc-bg-elevated)] px-3 py-2",children:[(0,b.jsx)("span",{className:"text-sm text-[var(--sc-text-secondary)]",children:a.label}),(0,b.jsx)(q.Badge,{variant:a.enabled?"cyan":"muted",dot:!0,children:a.enabled?"On":"Off"})]},a.label))})]}),(0,b.jsxs)(p.GlassCard,{strong:!0,className:"p-5",children:[(0,b.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Quick stats"}),(0,b.jsxs)("div",{className:"mt-4 space-y-3",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between rounded-lg bg-[var(--sc-bg-elevated)] px-3 py-2",children:[(0,b.jsx)("span",{className:"text-sm text-[var(--sc-text-secondary)]",children:"Watch roots"}),(0,b.jsxs)("span",{className:"text-sm font-semibold text-[var(--sc-text-primary)]",children:[aw?.activeWatchRoots??0," active"]})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between rounded-lg bg-[var(--sc-bg-elevated)] px-3 py-2",children:[(0,b.jsx)("span",{className:"text-sm text-[var(--sc-text-secondary)]",children:"Stale roots"}),(0,b.jsx)("span",{className:"text-sm font-semibold text-[var(--sc-amber)]",children:aw?.staleWatchRoots??0})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between rounded-lg bg-[var(--sc-bg-elevated)] px-3 py-2",children:[(0,b.jsx)("span",{className:"text-sm text-[var(--sc-text-secondary)]",children:"Blocked events"}),(0,b.jsx)("span",{className:"text-sm font-semibold text-[var(--sc-coral)]",children:aw?.blockedEvents??0})]})]})]})]})]}),"history"===g&&(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)(p.GlassCard,{className:"p-4",children:[(0,b.jsxs)("div",{className:"grid gap-3 lg:grid-cols-[1fr_auto_auto]",children:[(0,b.jsx)("input",{value:N,onChange:a=>O(a.target.value),placeholder:"Filter by file, folder, or package...",className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] px-4 py-2.5 text-sm text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)] focus-ring-cyan"}),(0,b.jsxs)("select",{value:H,onChange:a=>I(a.target.value),className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] px-4 py-2.5 text-sm text-[var(--sc-text-primary)]",children:[(0,b.jsx)("option",{value:"ALL",children:"All risk"}),(0,b.jsx)("option",{value:"CRITICAL",children:"Critical"}),(0,b.jsx)("option",{value:"HIGH",children:"High"}),(0,b.jsx)("option",{value:"MEDIUM",children:"Medium"}),(0,b.jsx)("option",{value:"LOW",children:"Low"}),(0,b.jsx)("option",{value:"SAFE",children:"Safe"})]}),(0,b.jsxs)("select",{value:J,onChange:a=>K(a.target.value),className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] px-4 py-2.5 text-sm text-[var(--sc-text-primary)]",children:[(0,b.jsx)("option",{value:"all",children:"All targets"}),(0,b.jsx)("option",{value:"file",children:"Files"}),(0,b.jsx)("option",{value:"dir",children:"Directories"}),(0,b.jsx)("option",{value:"npm",children:"Packages"})]})]}),(0,b.jsx)("div",{className:"mt-3 flex gap-2",children:["all","true","false"].map(a=>(0,b.jsx)("button",{onClick:()=>M(a),className:`rounded-lg px-3 py-1.5 text-xs font-medium transition-all ${L===a?"bg-[var(--sc-coral)] text-white":"bg-[var(--sc-surface-interactive)] text-[var(--sc-text-muted)] hover:text-[var(--sc-text-secondary)]"}`,children:"all"===a?"All scans":"true"===a?"Deep only":"Standard only"},a))})]}),(0,b.jsxs)("div",{className:"grid gap-6 xl:grid-cols-[0.45fr_0.55fr]",children:[(0,b.jsx)("div",{className:"space-y-3",children:0===ad.length?(0,b.jsx)(p.GlassCard,{className:"p-5 text-center text-sm text-[var(--sc-text-muted)]",children:"No matching scan history yet."}):ad.map(a=>(0,b.jsxs)(p.GlassCard,{hover:!0,selected:ai===a.id,onClick:()=>{G(a.id),x(a.target),A(a.deepScan)},className:"p-4",children:[(0,b.jsx)("div",{className:"truncate text-sm font-semibold text-[var(--sc-text-primary)]",children:a.target}),(0,b.jsx)("div",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:F(a.scannedAt)}),(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap gap-2",children:[(0,b.jsx)(q.Badge,{variant:(0,q.riskVariant)(a.riskLevel),children:a.riskLevel}),(0,b.jsxs)(q.Badge,{variant:"muted",children:["Score ",a.trustScore]}),(0,b.jsxs)(q.Badge,{variant:"muted",children:[a.findingCount," findings"]})]})]},a.id))}),at?(0,b.jsxs)(p.GlassCard,{strong:!0,className:"p-6",children:[(0,b.jsxs)("div",{className:"flex items-start gap-5",children:[(0,b.jsx)(u,{score:at.trustScore,size:100}),(0,b.jsxs)("div",{className:"flex-1",children:[(0,b.jsx)("h4",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:at.target}),(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap gap-2",children:[(0,b.jsx)(q.Badge,{variant:(0,q.riskVariant)(at.riskLevel),children:at.riskLevel}),(0,b.jsxs)(q.Badge,{variant:"muted",children:[at.filesScanned," files"]}),(0,b.jsx)(q.Badge,{variant:"muted",children:at.deepScan?"Deep":"Standard"})]})]})]}),(0,b.jsx)("div",{className:"mt-5 space-y-3",children:0===at.findings.length?(0,b.jsx)("div",{className:"rounded-xl border border-[var(--sc-cyan)]/20 bg-[var(--sc-cyan)]/5 px-4 py-3 text-sm text-[var(--sc-cyan)]",children:"Clean — no findings."}):at.findings.map((a,c)=>(0,b.jsxs)(p.GlassCard,{severity:a.severity,className:"p-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(q.Badge,{variant:(0,q.riskVariant)(a.severity),children:a.severity}),(0,b.jsx)("span",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:a.title})]}),(0,b.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-secondary)]",children:a.description})]},`${a.title}-${c}`))})]}):(0,b.jsx)(p.GlassCard,{className:"flex items-center justify-center p-8 text-sm text-[var(--sc-text-muted)]",children:"Select a scan from the list to view details."})]})]}),"watch"===g&&(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsxs)(p.GlassCard,{strong:!0,className:"p-6",children:[(0,b.jsx)("h3",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Start Watching"}),(0,b.jsx)("p",{className:"mt-1 text-sm text-[var(--sc-text-muted)]",children:"Monitor a directory for file changes and automatically scan for threats in real-time."}),(0,b.jsxs)("form",{className:"mt-4 flex flex-wrap items-end gap-3",onSubmit:a=>{a.preventDefault(),T.trim()&&al.mutate({target:T.trim(),deep:V})},children:[(0,b.jsx)("div",{className:"flex-1",children:(0,b.jsx)("input",{value:T,onChange:a=>U(a.target.value),placeholder:"Directory path, e.g. /Users/michael/Development/project",className:"w-full rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] px-4 py-3 text-sm text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)] focus-ring-cyan"})}),(0,b.jsxs)("button",{type:"button",onClick:()=>ah.mutate("folder",{onSuccess:a=>{a.path&&U(a.path)}}),className:"inline-flex items-center gap-2 rounded-xl border border-[var(--sc-border)] bg-[var(--sc-surface-interactive)] px-4 py-3 text-sm font-medium text-[var(--sc-text-secondary)] transition-all hover:bg-[var(--sc-surface-interactive-hover)] hover:text-[var(--sc-text-primary)]",children:[(0,b.jsx)(i,{size:14})," Browse"]}),(0,b.jsxs)("label",{className:"inline-flex items-center gap-2 rounded-xl border border-[var(--sc-border)] bg-[var(--sc-surface-interactive)] px-3 py-3 text-sm text-[var(--sc-text-secondary)]",children:[(0,b.jsx)("input",{type:"checkbox",checked:V,onChange:a=>W(a.target.checked),className:"h-4 w-4 rounded accent-[var(--sc-cyan)]"}),"Deep"]}),(0,b.jsxs)(r.Button,{type:"submit",variant:"cyan",disabled:al.isPending||!T.trim(),children:[al.isPending?"Starting…":"Start Watch",(0,b.jsx)(f.Eye,{size:14})]})]}),al.isSuccess&&(0,b.jsxs)("p",{className:"mt-3 text-sm text-[var(--sc-cyan)]",children:["Watching ",al.data.root]}),al.isError&&(0,b.jsx)("p",{className:"mt-3 text-sm text-[var(--sc-coral)]",children:al.error instanceof Error?al.error.message:"Failed to start watch"})]}),an.length>0&&(0,b.jsxs)("div",{children:[(0,b.jsx)("h4",{className:"mb-3 text-sm font-semibold uppercase tracking-wider text-[var(--sc-text-muted)]",children:"Active Watchers (This Session)"}),(0,b.jsx)("div",{className:"grid gap-3 lg:grid-cols-2",children:an.map(a=>(0,b.jsxs)(p.GlassCard,{className:"flex items-center justify-between p-4",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("p",{className:"truncate text-sm font-semibold text-[var(--sc-text-primary)]",children:a.root}),(0,b.jsxs)("p",{className:"text-xs text-[var(--sc-text-muted)]",children:["PID ",a.pid]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(q.Badge,{variant:"cyan",dot:!0,pulse:!0,children:"Watching"}),(0,b.jsx)(r.Button,{variant:"outline",size:"sm",onClick:()=>am.mutate(a.root),disabled:am.isPending,children:"Stop"})]})]},a.root))})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)("h4",{className:"text-sm font-semibold uppercase tracking-wider text-[var(--sc-text-muted)]",children:"Session History"}),(0,b.jsx)("div",{className:"flex gap-2",children:["all","active","stale","ended"].map(a=>(0,b.jsx)("button",{onClick:()=>S(a),className:`rounded-lg px-3 py-1.5 text-xs font-medium capitalize transition-all ${R===a?"bg-[var(--sc-coral)] text-white":"bg-[var(--sc-surface-interactive)] text-[var(--sc-text-muted)] hover:text-[var(--sc-text-secondary)]"}`,children:a},a))})]}),0===af.length?(0,b.jsxs)(p.GlassCard,{className:"p-8 text-center text-sm text-[var(--sc-text-muted)]",children:["No watch sessions recorded yet. Start a watcher above or use ",(0,b.jsx)("code",{className:"font-mono text-[var(--sc-cyan)]",children:"shieldcortex xray --watch ./src"})," from the CLI."]}):(0,b.jsx)("div",{className:"grid gap-4 lg:grid-cols-2",children:af.map(a=>(0,b.jsxs)(p.GlassCard,{className:"p-5",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("p",{className:"truncate text-sm font-semibold text-[var(--sc-text-primary)]",children:a.root}),(0,b.jsxs)("p",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:["Started ",F(a.startedAt)]})]}),(0,b.jsx)(q.Badge,{variant:"active"===a.state?"cyan":"stale"===a.state?"amber":"muted",dot:!0,pulse:"active"===a.state,children:a.state})]}),(0,b.jsx)("p",{className:"mt-2 text-sm text-[var(--sc-text-secondary)]",children:a.lastEventSummary??"No detections yet"}),(0,b.jsxs)("div",{className:"mt-3 flex flex-wrap gap-2",children:[(0,b.jsxs)(q.Badge,{variant:"muted",children:[a.changesDetected," changes"]}),(0,b.jsxs)(q.Badge,{variant:"muted",children:[a.findingsDetected," findings"]}),(0,b.jsx)(q.Badge,{variant:(0,q.riskVariant)(a.highestRiskLevel),children:a.highestRiskLevel})]})]},a.id))})]}),"activity"===g&&(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)("div",{className:"flex gap-2",children:["all","scan","watch","preinstall"].map(a=>(0,b.jsx)("button",{onClick:()=>Q(a),className:`rounded-lg px-3 py-1.5 text-xs font-medium capitalize transition-all ${P===a?"bg-[var(--sc-coral)] text-white":"bg-[var(--sc-surface-interactive)] text-[var(--sc-text-muted)] hover:text-[var(--sc-text-secondary)]"}`,children:"all"===a?"All activity":a},a))}),0===ae.length?(0,b.jsx)(p.GlassCard,{className:"p-8 text-center text-sm text-[var(--sc-text-muted)]",children:"No matching automatic events yet."}):(0,b.jsx)("div",{className:"space-y-3",children:ae.map(a=>(0,b.jsx)(p.GlassCard,{className:"p-4",children:(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(k,{size:14,className:"shrink-0 text-[var(--sc-coral)]"}),(0,b.jsx)("span",{className:"text-sm font-semibold capitalize text-[var(--sc-text-primary)]",children:a.kind})]}),(0,b.jsx)("p",{className:"mt-1 truncate text-sm text-[var(--sc-text-secondary)]",children:a.target}),(0,b.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:a.summary})]}),(0,b.jsx)(q.Badge,{variant:"pass"===a.status?"safe":"blocked"===a.status?"critical":"warn"===a.status?"medium":"amber",children:a.status})]})},a.id))})]}),"findings"===g&&(0,b.jsxs)("div",{className:"space-y-4",children:[ab&&(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsxs)(q.Badge,{variant:"coral",children:[ab.new," new"]}),(0,b.jsxs)(q.Badge,{variant:"muted",children:[ab.reviewed," reviewed"]}),(0,b.jsxs)(q.Badge,{variant:"cyan",children:[ab.resolved," resolved"]}),(0,b.jsxs)(q.Badge,{variant:"amber",children:[ab.quarantined," quarantined"]}),(0,b.jsxs)(q.Badge,{variant:"muted",children:[ab.ignored," ignored"]}),(0,b.jsxs)(q.Badge,{variant:"muted",children:[ab.total," total"]})]}),(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:[{key:"new",label:"Needs attention",accent:!0},{key:"reviewed",label:"Reviewed",accent:!1},{key:"resolved",label:"Resolved",accent:!1},{key:"ignored",label:"Ignored",accent:!1},{key:"quarantined",label:"Quarantined",accent:!1},{key:"all",label:"Everything",accent:!1}].map(({key:a,label:c,accent:d})=>(0,b.jsxs)("button",{onClick:()=>Y(a),className:`rounded-lg px-3 py-1.5 text-xs font-medium transition-all ${X===a?d?"bg-[var(--sc-coral)] text-white":"bg-[var(--sc-cyan)] text-[var(--sc-bg-deep)]":"bg-[var(--sc-surface-interactive)] text-[var(--sc-text-muted)] hover:text-[var(--sc-text-secondary)]"}`,children:[c,"new"===a&&ab&&ab.new>0&&(0,b.jsx)("span",{className:"ml-1.5 rounded-full bg-white/20 px-1.5 py-0.5 text-[10px] font-bold",children:ab.new})]},a))}),ac?.findings&&0!==ac.findings.length?(0,b.jsx)("div",{className:"space-y-3",children:ac.findings.map(a=>(0,b.jsxs)(p.GlassCard,{severity:a.severity,className:"p-5",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(q.Badge,{variant:(0,q.riskVariant)(a.severity),children:a.severity}),(0,b.jsx)(q.Badge,{variant:"muted",children:a.category}),a.systemFile&&(0,b.jsx)(q.Badge,{variant:"muted",children:"System file — likely safe"}),a.guidance?.urgency==="usually-safe"&&!a.systemFile&&(0,b.jsx)(q.Badge,{variant:"cyan",children:"Usually safe"}),a.guidance?.urgency==="act-now"&&(0,b.jsx)(q.Badge,{variant:"critical",dot:!0,pulse:!0,children:"Act now"})]}),(0,b.jsx)("p",{className:"mt-3 text-sm font-semibold text-[var(--sc-text-primary)]",children:a.title}),a.guidance&&(0,b.jsxs)("div",{className:"mt-3 space-y-3 rounded-xl bg-[var(--sc-bg-elevated)] p-4",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-[var(--sc-text-muted)]",children:"What this means"}),(0,b.jsx)("p",{className:"mt-1 text-sm leading-relaxed text-[var(--sc-text-secondary)]",children:a.guidance.whatItMeans})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-[var(--sc-cyan)]",children:"What to do"}),(0,b.jsx)("p",{className:"mt-1 text-sm leading-relaxed text-[var(--sc-text-secondary)]",children:a.guidance.whatToDo})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-[var(--sc-text-muted)]",children:"False positive?"}),(0,b.jsx)("p",{className:"mt-1 text-xs leading-relaxed text-[var(--sc-text-muted)]",children:a.guidance.falsePositiveNote})]})]}),(a.file||a.evidence)&&(0,b.jsxs)("div",{className:"mt-3 space-y-0.5 font-mono text-xs text-[var(--sc-text-muted)]",children:[a.file&&(0,b.jsxs)("div",{children:["File: ",a.line?`${a.file}:${a.line}`:a.file]}),a.evidence&&(0,b.jsxs)("div",{children:["Evidence: ",a.evidence]})]}),(0,b.jsx)("div",{className:"mt-2 text-xs text-[var(--sc-text-muted)]",children:F(a.detectedAt)}),(0,b.jsx)("div",{className:"mt-3 border-t border-[var(--sc-border)] pt-3",children:(0,b.jsx)(D,{findingId:a.id,status:a.status,hasFile:!!a.file,compact:!0})})]},a.id))}):(0,b.jsxs)(p.GlassCard,{className:"p-8 text-center",children:[(0,b.jsx)("p",{className:"text-sm text-[var(--sc-text-primary)]",children:"new"===X?"All clear — no findings need attention":`No ${"all"===X?"":X+" "}findings`}),(0,b.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:"new"===X?"Run an X-Ray scan or start a watcher to monitor for threats.":"Findings move here when you take action on them."})]})]})]})})}a.s(["XRayOverview",()=>G],89418)}];
|
|
1
|
+
module.exports=[89418,a=>{"use strict";var b=a.i(16306),c=a.i(98419),d=a.i(88904),e=a.i(26943),f=a.i(94992),g=a.i(70694);let h=(0,g.default)("file-search",[["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"}],["circle",{cx:"11.5",cy:"14.5",r:"2.5",key:"1bq0ko"}],["path",{d:"M13.3 16.3 15 18",key:"2quom7"}]]),i=(0,g.default)("folder-search",[["path",{d:"M10.7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v4.1",key:"1bw5m7"}],["path",{d:"m21 21-1.9-1.9",key:"1g2n9r"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}]]);var j=a.i(32322);let k=(0,g.default)("radar",[["path",{d:"M19.07 4.93A10 10 0 0 0 6.99 3.34",key:"z3du51"}],["path",{d:"M4 6h.01",key:"oypzma"}],["path",{d:"M2.29 9.62A10 10 0 1 0 21.31 8.35",key:"qzzz0"}],["path",{d:"M16.24 7.76A6 6 0 1 0 8.23 16.67",key:"1yjesh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M17.99 11.66A6 6 0 0 1 15.77 16.67",key:"1u2y91"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"m13.41 10.59 5.66-5.66",key:"mhq4k0"}]]);var l=a.i(66397),m=a.i(83364),n=a.i(86044),o=a.i(9315),p=a.i(54100),q=a.i(60210),r=a.i(23808),s=a.i(79151),t=a.i(48195);function u({score:a,size:c=160,label:d}){let e=2*Math.PI*42,f=a/100*e,g=a<=50?"var(--sc-coral)":a<=75?"var(--sc-amber)":"var(--sc-cyan)",h=a<=50?"var(--sc-glow-coral)":a<=75?"rgba(245, 158, 11, 0.15)":"var(--sc-glow-cyan)";return(0,b.jsxs)("div",{className:"flex flex-col items-center gap-2",children:[(0,b.jsxs)("div",{className:"relative",style:{width:c,height:c},children:[(0,b.jsxs)("svg",{viewBox:"0 0 100 100",className:"h-full w-full -rotate-90",style:{filter:`drop-shadow(0 0 12px ${h})`},children:[(0,b.jsx)("circle",{cx:"50",cy:"50",r:42,fill:"none",stroke:"var(--sc-bg-elevated)",strokeWidth:"7"}),(0,b.jsx)("circle",{cx:"50",cy:"50",r:42,fill:"none",stroke:g,strokeWidth:"7",strokeDasharray:`${f} ${e}`,strokeLinecap:"round",className:"transition-all duration-1000 ease-out"})]}),(0,b.jsxs)("div",{className:"absolute inset-0 flex flex-col items-center justify-center",children:[(0,b.jsx)("span",{className:"text-3xl font-bold",style:{color:g},children:a}),(0,b.jsx)("span",{className:"text-[11px] text-[var(--sc-text-muted)]",children:"trust"})]})]}),d&&(0,b.jsx)("span",{className:"text-xs font-medium text-[var(--sc-text-secondary)]",children:d})]})}var v=a.i(62606);let w=(0,g.default)("eye-off",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);var x=a.i(98472),y=a.i(6321),z=a.i(40458),A=a.i(66807),B=a.i(14220);let C=process.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";function D({findingId:a,status:d,hasFile:e,compact:g=!1}){let h,i,j,[k,l]=(0,c.useState)(!1),[o,p]=(0,c.useState)(""),[q,s]=(0,c.useState)(!1),t=(h=(0,B.useQueryClient)(),(0,A.useMutation)({mutationFn:async({id:a,status:b,note:c})=>{let d=await (0,n.gatedFetch)(`${C}/api/xray/findings/${a}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:b,note:c})});if(!d.ok)throw Error(await (0,n.readApiError)(d,"Failed to update finding"));return d.json()},onSuccess:()=>{h.invalidateQueries({queryKey:["xray-findings"]}),h.invalidateQueries({queryKey:["xray-findings-stats"]})}})),u=(i=(0,B.useQueryClient)(),(0,A.useMutation)({mutationFn:async({id:a,note:b})=>{let c=await (0,n.gatedFetch)(`${C}/api/xray/findings/${a}/quarantine`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({note:b})});if(!c.ok)throw Error(await (0,n.readApiError)(c,"Failed to quarantine file"));return c.json()},onSuccess:()=>{i.invalidateQueries({queryKey:["xray-findings"]}),i.invalidateQueries({queryKey:["xray-findings-stats"]})}})),z=(j=(0,B.useQueryClient)(),(0,A.useMutation)({mutationFn:async a=>{let b=await (0,n.gatedFetch)(`${C}/api/xray/findings/${a}`,{method:"DELETE"});if(!b.ok)throw Error(await (0,n.readApiError)(b,"Failed to delete finding"));return b.json()},onSuccess:()=>{j.invalidateQueries({queryKey:["xray-findings"]}),j.invalidateQueries({queryKey:["xray-findings-stats"]})}})),D=b=>{switch(b){case"reviewed":t.mutate({id:a,status:"reviewed"},{onSuccess:()=>m.toast.success("Marked as reviewed"),onError:a=>m.toast.error(`Failed to update: ${a.message}`)});break;case"ignored":t.mutate({id:a,status:"ignored",note:o},{onSuccess:()=>{m.toast.info("Finding ignored — removed from active list"),l(!1),p(""),s(!0)},onError:a=>m.toast.error(`Failed to ignore: ${a.message}`)});break;case"resolved":t.mutate({id:a,status:"resolved",note:o},{onSuccess:()=>{m.toast.success("Finding resolved — removed from active list"),l(!1),p(""),s(!0)},onError:a=>m.toast.error(`Failed to resolve: ${a.message}`)});break;case"quarantine":u.mutate({id:a,note:o},{onSuccess:a=>{m.toast.warning(a.moved?"File quarantined and moved":"Marked quarantined (file not found)"),s(!0)},onError:a=>m.toast.error(`Quarantine failed: ${a.message}`)});break;case"delete":z.mutate(a,{onSuccess:()=>{m.toast.success("Finding deleted"),s(!0)},onError:a=>m.toast.error(`Failed to delete: ${a.message}`)})}};if(q)return(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs text-[var(--sc-cyan)] italic animate-pulse",children:[(0,b.jsx)(v.Check,{size:12})," Done — removing from list..."]});if("resolved"===d)return(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs text-[var(--sc-cyan)]",children:[(0,b.jsx)(v.Check,{size:12})," Resolved"]});if("quarantined"===d)return(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs text-[var(--sc-amber)]",children:[(0,b.jsx)(x.Shield,{size:12})," Quarantined"]});if("ignored"===d)return(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs text-[var(--sc-text-muted)]",children:[(0,b.jsx)(w,{size:12})," Ignored"]});let E=g?"sm":"md",F=t.isPending||u.isPending||z.isPending;return(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:["new"===d&&(0,b.jsxs)(r.Button,{variant:"ghost",size:E,onClick:()=>D("reviewed"),disabled:F,children:[(0,b.jsx)(f.Eye,{size:12})," Mark reviewed"]}),(0,b.jsxs)(r.Button,{variant:"cyan",size:E,onClick:()=>l(!k),disabled:F,children:[(0,b.jsx)(v.Check,{size:12})," Resolve"]}),(0,b.jsxs)(r.Button,{variant:"ghost",size:E,onClick:()=>D("ignored"),disabled:F,children:[(0,b.jsx)(w,{size:12})," Safe to ignore"]}),e&&(0,b.jsxs)(r.Button,{variant:"coral",size:E,onClick:()=>D("quarantine"),disabled:F,children:[(0,b.jsx)(x.Shield,{size:12})," Quarantine file"]}),(0,b.jsx)(r.Button,{variant:"ghost",size:E,onClick:()=>D("delete"),disabled:F,children:(0,b.jsx)(y.Trash2,{size:12})})]}),k&&(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("input",{value:o,onChange:a=>p(a.target.value),placeholder:"What did you do about it? (optional)",className:"flex-1 rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] px-3 py-1.5 text-xs text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)] focus-ring-cyan","aria-label":"Resolution note",onKeyDown:a=>{"Enter"===a.key&&D("resolved")}}),(0,b.jsx)(r.Button,{variant:"cyan",size:"sm",onClick:()=>D("resolved"),disabled:F,children:"Done"})]})]})}var E=a.i(14126),F=a.i(49948),G=a.i(91321);function H({finding:a}){let c=(0,G.useLocalAiExplain)();return(0,b.jsxs)("div",{className:"mt-3 space-y-3",children:[(0,b.jsxs)(r.Button,{variant:"outline",size:"sm",onClick:()=>{c.mutate({kind:"xray_finding",title:a.title,content:[`Title: ${a.title}`,`Description: ${a.description}`,a.file?`File: ${a.line?`${a.file}:${a.line}`:a.file}`:"",a.evidence?`Evidence: ${a.evidence}`:"",a.guidance?.whatItMeans?`Scanner meaning: ${a.guidance.whatItMeans}`:"",a.guidance?.whatToDo?`Scanner guidance: ${a.guidance.whatToDo}`:"",a.guidance?.falsePositiveNote?`False positive note: ${a.guidance.falsePositiveNote}`:""].filter(Boolean).join("\n"),source:a.file?`xray:${a.file}`:"xray",signals:[a.severity,a.category,a.status??"",a.guidance?.urgency??"",a.systemFile?"system-file":""].filter(Boolean),metadata:{id:a.id,file:a.file,line:a.line,severity:a.severity,category:a.category,status:a.status,detectedAt:a.detectedAt,systemFile:a.systemFile,guidance:a.guidance}},{onSuccess:a=>{m.toast.success(a.explanation.synthetic?"Fallback explanation generated":"Local explanation generated")},onError:a=>m.toast.error(a instanceof Error?a.message:"Local explanation failed")})},disabled:c.isPending,children:[(0,b.jsx)(E.Sparkles,{size:13}),c.isPending?"Explaining":"Explain"]}),c.data?.explanation&&(0,b.jsx)(F.LocalAiExplanationPanel,{explanation:c.data.explanation}),c.error&&(0,b.jsx)("div",{className:"rounded-lg border border-[var(--sc-coral)]/30 bg-[var(--sc-coral)]/10 p-3 text-sm text-[var(--sc-coral)]",children:c.error instanceof Error?c.error.message:"Local explanation failed"})]})}var I=a.i(26804);function J(a){return a?new Date(a).toLocaleString():"—"}function K(){var a;let[g,v]=(0,c.useState)("scanner"),[w,x]=(0,c.useState)(""),[y,A]=(0,c.useState)(!1),[B,E]=(0,c.useState)(null),[F,G]=(0,c.useState)("ALL"),[K,L]=(0,c.useState)("all"),[M,N]=(0,c.useState)("all"),[O,P]=(0,c.useState)(""),[Q,R]=(0,c.useState)("all"),[S,T]=(0,c.useState)("all"),[U,V]=(0,c.useState)(""),[W,X]=(0,c.useState)(!1),[Y,Z]=(0,c.useState)("new"),{data:$}=(0,I.useXRayHistory)({risk:F,targetType:K,deep:M,search:O}),{data:_}=(0,I.useXRayActivity)(8,{kind:Q}),{data:aa}=(0,I.useXRayWatchSessions)(8,{state:S}),{data:ab}=(0,I.useXRayStatus)(),{data:ac}=(0,z.useQuery)({queryKey:["xray-findings-stats"],queryFn:async()=>{let a=await (0,n.gatedFetch)(`${C}/api/xray/findings/stats`);if(!a.ok)throw Error(await (0,n.readApiError)(a,"Failed to fetch finding stats"));return a.json()},refetchInterval:15e3}),{data:ad}=(a={status:"all"===Y?void 0:Y},(0,z.useQuery)({queryKey:["xray-findings",a],queryFn:async()=>{let b=new URLSearchParams;a?.status&&b.set("status",a.status),a?.severity&&b.set("severity",a.severity),a?.limit&&b.set("limit",String(a.limit));let c=b.toString()?`?${b}`:"",d=await (0,n.gatedFetch)(`${C}/api/xray/findings${c}`);if(!d.ok)throw Error(await (0,n.readApiError)(d,"Failed to fetch findings"));return d.json()},refetchInterval:15e3})),ae=(0,c.useMemo)(()=>$?.entries??[],[$?.entries]),af=_?.entries??[],ag=aa?.entries??[],ah=(0,I.useXRayScan)(),ai=(0,I.usePickXRayTarget)(),aj=B??(ae.length>0?ae[0].id:null),ak=(0,I.useXRayHistoryEntry)(aj),{data:al}=(0,I.useActiveWatchers)(),am=(0,I.useStartWatch)(),an=(0,I.useStopWatch)(),ao=al?.watchers??[],ap=ah.data?.result,aq=ah.data?.persistedFindings??[],ar=ah.error,as=ar instanceof n.FeatureLockedError;(0,o.useMemoryWebSocket)({onMessage:a=>{if("xray_detection"===a.type){let b=a.data;m.toast.warning(b.summary||"X-Ray detection",{description:`Risk: ${b.riskLevel||"unknown"}`,duration:8e3})}}});let at=ak.data?.entry??ae.find(a=>a.id===aj)??null,au=ap??at?.result??null,av=(0,c.useMemo)(()=>({total:ae.length,avgScore:ae.length?Math.round(ae.reduce((a,b)=>a+b.trustScore,0)/ae.length):null}),[ae]),aw=ab?.capabilities,ax=ab?.summary,ay=[{id:"scanner",label:"Scanner",icon:(0,b.jsx)(l.ScanSearch,{size:14})},{id:"history",label:"History",count:av.total},{id:"watch",label:"Watch",count:ax?.activeWatchRoots??0},{id:"activity",label:"Activity"},{id:"findings",label:"Findings",count:ac?.new??0}];return(0,b.jsx)("div",{className:"h-full overflow-y-auto",children:(0,b.jsxs)("div",{className:"mx-auto max-w-7xl space-y-6 p-6",children:[(0,b.jsx)(s.PageHeader,{eyebrow:"Supply Chain Security",title:"X-Ray Scanner",subtitle:"Scan packages, files, and directories for hidden risk signals.",tabs:ay,activeTab:g,onTabChange:a=>v(a),actions:(0,b.jsx)("div",{className:"flex items-center gap-3",children:(0,b.jsxs)(q.Badge,{variant:aw?.deepScan?"cyan":"muted",dot:!0,children:["Deep scan ",aw?.deepScan?"enabled":"gated"]})})}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-4 lg:grid-cols-4",children:[(0,b.jsx)(t.StatCard,{label:"Total Scans",value:ax?.scans??0,icon:l.ScanSearch,accent:"cyan"}),(0,b.jsx)(t.StatCard,{label:"High Risk",value:ax?.highRiskScans??0,icon:d.Activity,accent:"coral"}),(0,b.jsx)(t.StatCard,{label:"Watch Roots",value:ax?.activeWatchRoots??0,icon:f.Eye,accent:"cyan"}),(0,b.jsx)(t.StatCard,{label:"Avg Trust",value:av.avgScore??"—",icon:h,accent:av.avgScore&&av.avgScore>=70?"cyan":"amber"})]}),"scanner"===g&&(0,b.jsxs)("div",{className:"grid gap-6 xl:grid-cols-[1.2fr_0.8fr]",children:[(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsxs)(p.GlassCard,{strong:!0,className:"p-6",children:[(0,b.jsxs)("form",{onSubmit:a=>{a.preventDefault(),w.trim()&&ah.mutate({target:w.trim(),deep:y})},children:[(0,b.jsx)("label",{className:"text-sm font-semibold text-[var(--sc-text-primary)]",children:"What do you want to scan?"}),(0,b.jsx)("input",{value:w,onChange:a=>x(a.target.value),placeholder:"Package name, file path, or directory...",className:"mt-3 w-full rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] px-4 py-3 text-sm text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)] focus-ring-cyan"}),(0,b.jsxs)("div",{className:"mt-4 flex flex-wrap items-center gap-3",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>ai.mutate("file",{onSuccess:a=>{a.path&&x(a.path)}}),className:"inline-flex items-center gap-2 rounded-xl border border-[var(--sc-border)] bg-[var(--sc-surface-interactive)] px-4 py-2.5 text-sm font-medium text-[var(--sc-text-secondary)] transition-all hover:bg-[var(--sc-surface-interactive-hover)] hover:text-[var(--sc-text-primary)]",children:[(0,b.jsx)(h,{size:14})," Browse file"]}),(0,b.jsxs)("button",{type:"button",onClick:()=>ai.mutate("folder",{onSuccess:a=>{a.path&&x(a.path)}}),className:"inline-flex items-center gap-2 rounded-xl border border-[var(--sc-border)] bg-[var(--sc-surface-interactive)] px-4 py-2.5 text-sm font-medium text-[var(--sc-text-secondary)] transition-all hover:bg-[var(--sc-surface-interactive-hover)] hover:text-[var(--sc-text-primary)]",children:[(0,b.jsx)(i,{size:14})," Browse folder"]}),(0,b.jsxs)("label",{className:"inline-flex items-center gap-2 rounded-xl border border-[var(--sc-border)] bg-[var(--sc-surface-interactive)] px-3 py-2.5 text-sm text-[var(--sc-text-secondary)]",children:[(0,b.jsx)("input",{type:"checkbox",checked:y,onChange:a=>A(a.target.checked),className:"h-4 w-4 rounded border-[var(--sc-border)] accent-[var(--sc-cyan)]"}),"Deep scan",!aw?.deepScan&&(0,b.jsx)(j.Lock,{size:12,className:"text-[var(--sc-coral)]"})]}),(0,b.jsxs)(r.Button,{type:"submit",variant:"coral",glow:!0,disabled:ah.isPending||!w.trim(),children:[ah.isPending?"Scanning…":"Run Scan",(0,b.jsx)(e.ArrowRight,{size:14})]})]}),(0,b.jsx)("p",{className:"mt-3 text-xs text-[var(--sc-text-muted)]",children:"Native macOS picker via local API, or paste a path / package name directly."})]}),ai.isError&&(0,b.jsx)("div",{className:"mt-3 rounded-xl border border-[var(--sc-coral)]/20 bg-[var(--sc-coral)]/5 px-4 py-3 text-sm text-[var(--sc-coral)]",children:ai.error instanceof Error?ai.error.message:"Failed to open native picker"}),ar&&(0,b.jsx)("div",{className:`mt-4 rounded-xl px-4 py-3 text-sm ${as?"border border-[var(--sc-amber)]/20 bg-[var(--sc-amber)]/5 text-[var(--sc-amber)]":"border border-[var(--sc-coral)]/20 bg-[var(--sc-coral)]/5 text-[var(--sc-coral)]"}`,children:ar.message})]}),(0,b.jsxs)(p.GlassCard,{className:`p-6 ${ah.isPending?"scan-sweep":""}`,children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)("h3",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Scan Result"}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsxs)(q.Badge,{variant:"muted",children:[av.total," scans"]}),(0,b.jsxs)(q.Badge,{variant:"muted",children:["Avg ",av.avgScore??"—"]})]})]}),au?(0,b.jsxs)("div",{className:"mt-5 space-y-4",children:[(0,b.jsxs)("div",{className:"flex items-start gap-6",children:[(0,b.jsx)(u,{score:au.trustScore,size:120}),(0,b.jsxs)("div",{className:"flex-1",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,b.jsx)("h4",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:au.target}),(0,b.jsx)(q.Badge,{variant:(0,q.riskVariant)(au.riskLevel),children:au.riskLevel})]}),(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap gap-2",children:[(0,b.jsxs)(q.Badge,{variant:"muted",children:[au.filesScanned," files"]}),(0,b.jsx)(q.Badge,{variant:"muted",children:au.deepScan?"Deep":"Standard"}),(0,b.jsx)(q.Badge,{variant:"muted",children:J(au.scannedAt)})]})]})]}),(0,b.jsx)("div",{className:"space-y-3",children:0===au.findings.length?(0,b.jsx)("div",{className:"rounded-xl border border-[var(--sc-cyan)]/20 bg-[var(--sc-cyan)]/5 px-4 py-4 text-sm text-[var(--sc-cyan)]",children:"No findings detected. This target looks clean."}):au.findings.map((a,c)=>(0,b.jsxs)(p.GlassCard,{severity:a.severity,className:"p-4",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(q.Badge,{variant:(0,q.riskVariant)(a.severity),children:a.severity}),(0,b.jsx)(q.Badge,{variant:"muted",children:a.category})]}),(0,b.jsx)("p",{className:"mt-2 text-sm font-semibold text-[var(--sc-text-primary)]",children:a.title}),(0,b.jsx)("p",{className:"mt-1 text-sm text-[var(--sc-text-secondary)]",children:a.description}),(a.file||a.evidence)&&(0,b.jsxs)("div",{className:"mt-2 space-y-0.5 font-mono text-xs text-[var(--sc-text-muted)]",children:[a.file&&(0,b.jsxs)("div",{children:["File: ",a.line?`${a.file}:${a.line}`:a.file]}),a.evidence&&(0,b.jsxs)("div",{children:["Evidence: ",a.evidence]})]}),(0,b.jsx)(H,{finding:{...a,id:aq[c]?.id,status:aq[c]?.status}}),aq[c]&&(0,b.jsx)("div",{className:"mt-3 border-t border-[var(--sc-border)] pt-3",children:(0,b.jsx)(D,{findingId:aq[c].id,status:aq[c].status,hasFile:!!a.file,compact:!0})})]},`${a.title}-${c}`))})]}):(0,b.jsx)("div",{className:"mt-5 rounded-xl bg-[var(--sc-bg-elevated)] px-5 py-8 text-center text-sm text-[var(--sc-text-muted)]",children:"Run a scan or select one from history to see results here."})]})]}),(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)(p.GlassCard,{strong:!0,className:"p-5",children:[(0,b.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Capabilities"}),(0,b.jsx)("div",{className:"mt-4 space-y-3",children:[{label:"Local scan",enabled:aw?.localScan??!0},{label:"Watch mode",enabled:aw?.watchMode??!0},{label:"Preinstall hook",enabled:aw?.preinstallHook??!1},{label:"npm inspection",enabled:aw?.npmInspection??!1},{label:"Deep scan",enabled:aw?.deepScan??!1}].map(a=>(0,b.jsxs)("div",{className:"flex items-center justify-between rounded-lg bg-[var(--sc-bg-elevated)] px-3 py-2",children:[(0,b.jsx)("span",{className:"text-sm text-[var(--sc-text-secondary)]",children:a.label}),(0,b.jsx)(q.Badge,{variant:a.enabled?"cyan":"muted",dot:!0,children:a.enabled?"On":"Off"})]},a.label))})]}),(0,b.jsxs)(p.GlassCard,{strong:!0,className:"p-5",children:[(0,b.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-[0.18em] text-[var(--sc-text-muted)]",children:"Quick stats"}),(0,b.jsxs)("div",{className:"mt-4 space-y-3",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between rounded-lg bg-[var(--sc-bg-elevated)] px-3 py-2",children:[(0,b.jsx)("span",{className:"text-sm text-[var(--sc-text-secondary)]",children:"Watch roots"}),(0,b.jsxs)("span",{className:"text-sm font-semibold text-[var(--sc-text-primary)]",children:[ax?.activeWatchRoots??0," active"]})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between rounded-lg bg-[var(--sc-bg-elevated)] px-3 py-2",children:[(0,b.jsx)("span",{className:"text-sm text-[var(--sc-text-secondary)]",children:"Stale roots"}),(0,b.jsx)("span",{className:"text-sm font-semibold text-[var(--sc-amber)]",children:ax?.staleWatchRoots??0})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between rounded-lg bg-[var(--sc-bg-elevated)] px-3 py-2",children:[(0,b.jsx)("span",{className:"text-sm text-[var(--sc-text-secondary)]",children:"Blocked events"}),(0,b.jsx)("span",{className:"text-sm font-semibold text-[var(--sc-coral)]",children:ax?.blockedEvents??0})]})]})]})]})]}),"history"===g&&(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)(p.GlassCard,{className:"p-4",children:[(0,b.jsxs)("div",{className:"grid gap-3 lg:grid-cols-[1fr_auto_auto]",children:[(0,b.jsx)("input",{value:O,onChange:a=>P(a.target.value),placeholder:"Filter by file, folder, or package...",className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] px-4 py-2.5 text-sm text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)] focus-ring-cyan"}),(0,b.jsxs)("select",{value:F,onChange:a=>G(a.target.value),className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] px-4 py-2.5 text-sm text-[var(--sc-text-primary)]",children:[(0,b.jsx)("option",{value:"ALL",children:"All risk"}),(0,b.jsx)("option",{value:"CRITICAL",children:"Critical"}),(0,b.jsx)("option",{value:"HIGH",children:"High"}),(0,b.jsx)("option",{value:"MEDIUM",children:"Medium"}),(0,b.jsx)("option",{value:"LOW",children:"Low"}),(0,b.jsx)("option",{value:"SAFE",children:"Safe"})]}),(0,b.jsxs)("select",{value:K,onChange:a=>L(a.target.value),className:"rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] px-4 py-2.5 text-sm text-[var(--sc-text-primary)]",children:[(0,b.jsx)("option",{value:"all",children:"All targets"}),(0,b.jsx)("option",{value:"file",children:"Files"}),(0,b.jsx)("option",{value:"dir",children:"Directories"}),(0,b.jsx)("option",{value:"npm",children:"Packages"})]})]}),(0,b.jsx)("div",{className:"mt-3 flex gap-2",children:["all","true","false"].map(a=>(0,b.jsx)("button",{onClick:()=>N(a),className:`rounded-lg px-3 py-1.5 text-xs font-medium transition-all ${M===a?"bg-[var(--sc-coral)] text-white":"bg-[var(--sc-surface-interactive)] text-[var(--sc-text-muted)] hover:text-[var(--sc-text-secondary)]"}`,children:"all"===a?"All scans":"true"===a?"Deep only":"Standard only"},a))})]}),(0,b.jsxs)("div",{className:"grid gap-6 xl:grid-cols-[0.45fr_0.55fr]",children:[(0,b.jsx)("div",{className:"space-y-3",children:0===ae.length?(0,b.jsx)(p.GlassCard,{className:"p-5 text-center text-sm text-[var(--sc-text-muted)]",children:"No matching scan history yet."}):ae.map(a=>(0,b.jsxs)(p.GlassCard,{hover:!0,selected:aj===a.id,onClick:()=>{E(a.id),x(a.target),A(a.deepScan)},className:"p-4",children:[(0,b.jsx)("div",{className:"truncate text-sm font-semibold text-[var(--sc-text-primary)]",children:a.target}),(0,b.jsx)("div",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:J(a.scannedAt)}),(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap gap-2",children:[(0,b.jsx)(q.Badge,{variant:(0,q.riskVariant)(a.riskLevel),children:a.riskLevel}),(0,b.jsxs)(q.Badge,{variant:"muted",children:["Score ",a.trustScore]}),(0,b.jsxs)(q.Badge,{variant:"muted",children:[a.findingCount," findings"]})]})]},a.id))}),au?(0,b.jsxs)(p.GlassCard,{strong:!0,className:"p-6",children:[(0,b.jsxs)("div",{className:"flex items-start gap-5",children:[(0,b.jsx)(u,{score:au.trustScore,size:100}),(0,b.jsxs)("div",{className:"flex-1",children:[(0,b.jsx)("h4",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:au.target}),(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap gap-2",children:[(0,b.jsx)(q.Badge,{variant:(0,q.riskVariant)(au.riskLevel),children:au.riskLevel}),(0,b.jsxs)(q.Badge,{variant:"muted",children:[au.filesScanned," files"]}),(0,b.jsx)(q.Badge,{variant:"muted",children:au.deepScan?"Deep":"Standard"})]})]})]}),(0,b.jsx)("div",{className:"mt-5 space-y-3",children:0===au.findings.length?(0,b.jsx)("div",{className:"rounded-xl border border-[var(--sc-cyan)]/20 bg-[var(--sc-cyan)]/5 px-4 py-3 text-sm text-[var(--sc-cyan)]",children:"Clean — no findings."}):au.findings.map((a,c)=>(0,b.jsxs)(p.GlassCard,{severity:a.severity,className:"p-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(q.Badge,{variant:(0,q.riskVariant)(a.severity),children:a.severity}),(0,b.jsx)("span",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:a.title})]}),(0,b.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-secondary)]",children:a.description}),(0,b.jsx)(H,{finding:a})]},`${a.title}-${c}`))})]}):(0,b.jsx)(p.GlassCard,{className:"flex items-center justify-center p-8 text-sm text-[var(--sc-text-muted)]",children:"Select a scan from the list to view details."})]})]}),"watch"===g&&(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsxs)(p.GlassCard,{strong:!0,className:"p-6",children:[(0,b.jsx)("h3",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Start Watching"}),(0,b.jsx)("p",{className:"mt-1 text-sm text-[var(--sc-text-muted)]",children:"Monitor a directory for file changes and automatically scan for threats in real-time."}),(0,b.jsxs)("form",{className:"mt-4 flex flex-wrap items-end gap-3",onSubmit:a=>{a.preventDefault(),U.trim()&&am.mutate({target:U.trim(),deep:W})},children:[(0,b.jsx)("div",{className:"flex-1",children:(0,b.jsx)("input",{value:U,onChange:a=>V(a.target.value),placeholder:"Directory path, e.g. /Users/michael/Development/project",className:"w-full rounded-xl border border-[var(--sc-border)] bg-[var(--sc-bg-elevated)] px-4 py-3 text-sm text-[var(--sc-text-primary)] placeholder:text-[var(--sc-text-muted)] focus-ring-cyan"})}),(0,b.jsxs)("button",{type:"button",onClick:()=>ai.mutate("folder",{onSuccess:a=>{a.path&&V(a.path)}}),className:"inline-flex items-center gap-2 rounded-xl border border-[var(--sc-border)] bg-[var(--sc-surface-interactive)] px-4 py-3 text-sm font-medium text-[var(--sc-text-secondary)] transition-all hover:bg-[var(--sc-surface-interactive-hover)] hover:text-[var(--sc-text-primary)]",children:[(0,b.jsx)(i,{size:14})," Browse"]}),(0,b.jsxs)("label",{className:"inline-flex items-center gap-2 rounded-xl border border-[var(--sc-border)] bg-[var(--sc-surface-interactive)] px-3 py-3 text-sm text-[var(--sc-text-secondary)]",children:[(0,b.jsx)("input",{type:"checkbox",checked:W,onChange:a=>X(a.target.checked),className:"h-4 w-4 rounded accent-[var(--sc-cyan)]"}),"Deep"]}),(0,b.jsxs)(r.Button,{type:"submit",variant:"cyan",disabled:am.isPending||!U.trim(),children:[am.isPending?"Starting…":"Start Watch",(0,b.jsx)(f.Eye,{size:14})]})]}),am.isSuccess&&(0,b.jsxs)("p",{className:"mt-3 text-sm text-[var(--sc-cyan)]",children:["Watching ",am.data.root]}),am.isError&&(0,b.jsx)("p",{className:"mt-3 text-sm text-[var(--sc-coral)]",children:am.error instanceof Error?am.error.message:"Failed to start watch"})]}),ao.length>0&&(0,b.jsxs)("div",{children:[(0,b.jsx)("h4",{className:"mb-3 text-sm font-semibold uppercase tracking-wider text-[var(--sc-text-muted)]",children:"Active Watchers (This Session)"}),(0,b.jsx)("div",{className:"grid gap-3 lg:grid-cols-2",children:ao.map(a=>(0,b.jsxs)(p.GlassCard,{className:"flex items-center justify-between p-4",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("p",{className:"truncate text-sm font-semibold text-[var(--sc-text-primary)]",children:a.root}),(0,b.jsxs)("p",{className:"text-xs text-[var(--sc-text-muted)]",children:["PID ",a.pid]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(q.Badge,{variant:"cyan",dot:!0,pulse:!0,children:"Watching"}),(0,b.jsx)(r.Button,{variant:"outline",size:"sm",onClick:()=>an.mutate(a.root),disabled:an.isPending,children:"Stop"})]})]},a.root))})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)("h4",{className:"text-sm font-semibold uppercase tracking-wider text-[var(--sc-text-muted)]",children:"Session History"}),(0,b.jsx)("div",{className:"flex gap-2",children:["all","active","stale","ended"].map(a=>(0,b.jsx)("button",{onClick:()=>T(a),className:`rounded-lg px-3 py-1.5 text-xs font-medium capitalize transition-all ${S===a?"bg-[var(--sc-coral)] text-white":"bg-[var(--sc-surface-interactive)] text-[var(--sc-text-muted)] hover:text-[var(--sc-text-secondary)]"}`,children:a},a))})]}),0===ag.length?(0,b.jsxs)(p.GlassCard,{className:"p-8 text-center text-sm text-[var(--sc-text-muted)]",children:["No watch sessions recorded yet. Start a watcher above or use ",(0,b.jsx)("code",{className:"font-mono text-[var(--sc-cyan)]",children:"shieldcortex xray --watch ./src"})," from the CLI."]}):(0,b.jsx)("div",{className:"grid gap-4 lg:grid-cols-2",children:ag.map(a=>(0,b.jsxs)(p.GlassCard,{className:"p-5",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("p",{className:"truncate text-sm font-semibold text-[var(--sc-text-primary)]",children:a.root}),(0,b.jsxs)("p",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:["Started ",J(a.startedAt)]})]}),(0,b.jsx)(q.Badge,{variant:"active"===a.state?"cyan":"stale"===a.state?"amber":"muted",dot:!0,pulse:"active"===a.state,children:a.state})]}),(0,b.jsx)("p",{className:"mt-2 text-sm text-[var(--sc-text-secondary)]",children:a.lastEventSummary??"No detections yet"}),(0,b.jsxs)("div",{className:"mt-3 flex flex-wrap gap-2",children:[(0,b.jsxs)(q.Badge,{variant:"muted",children:[a.changesDetected," changes"]}),(0,b.jsxs)(q.Badge,{variant:"muted",children:[a.findingsDetected," findings"]}),(0,b.jsx)(q.Badge,{variant:(0,q.riskVariant)(a.highestRiskLevel),children:a.highestRiskLevel})]})]},a.id))})]}),"activity"===g&&(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)("div",{className:"flex gap-2",children:["all","scan","watch","preinstall"].map(a=>(0,b.jsx)("button",{onClick:()=>R(a),className:`rounded-lg px-3 py-1.5 text-xs font-medium capitalize transition-all ${Q===a?"bg-[var(--sc-coral)] text-white":"bg-[var(--sc-surface-interactive)] text-[var(--sc-text-muted)] hover:text-[var(--sc-text-secondary)]"}`,children:"all"===a?"All activity":a},a))}),0===af.length?(0,b.jsx)(p.GlassCard,{className:"p-8 text-center text-sm text-[var(--sc-text-muted)]",children:"No matching automatic events yet."}):(0,b.jsx)("div",{className:"space-y-3",children:af.map(a=>(0,b.jsx)(p.GlassCard,{className:"p-4",children:(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(k,{size:14,className:"shrink-0 text-[var(--sc-coral)]"}),(0,b.jsx)("span",{className:"text-sm font-semibold capitalize text-[var(--sc-text-primary)]",children:a.kind})]}),(0,b.jsx)("p",{className:"mt-1 truncate text-sm text-[var(--sc-text-secondary)]",children:a.target}),(0,b.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:a.summary})]}),(0,b.jsx)(q.Badge,{variant:"pass"===a.status?"safe":"blocked"===a.status?"critical":"warn"===a.status?"medium":"amber",children:a.status})]})},a.id))})]}),"findings"===g&&(0,b.jsxs)("div",{className:"space-y-4",children:[ac&&(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsxs)(q.Badge,{variant:"coral",children:[ac.new," new"]}),(0,b.jsxs)(q.Badge,{variant:"muted",children:[ac.reviewed," reviewed"]}),(0,b.jsxs)(q.Badge,{variant:"cyan",children:[ac.resolved," resolved"]}),(0,b.jsxs)(q.Badge,{variant:"amber",children:[ac.quarantined," quarantined"]}),(0,b.jsxs)(q.Badge,{variant:"muted",children:[ac.ignored," ignored"]}),(0,b.jsxs)(q.Badge,{variant:"muted",children:[ac.total," total"]})]}),(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:[{key:"new",label:"Needs attention",accent:!0},{key:"reviewed",label:"Reviewed",accent:!1},{key:"resolved",label:"Resolved",accent:!1},{key:"ignored",label:"Ignored",accent:!1},{key:"quarantined",label:"Quarantined",accent:!1},{key:"all",label:"Everything",accent:!1}].map(({key:a,label:c,accent:d})=>(0,b.jsxs)("button",{onClick:()=>Z(a),className:`rounded-lg px-3 py-1.5 text-xs font-medium transition-all ${Y===a?d?"bg-[var(--sc-coral)] text-white":"bg-[var(--sc-cyan)] text-[var(--sc-bg-deep)]":"bg-[var(--sc-surface-interactive)] text-[var(--sc-text-muted)] hover:text-[var(--sc-text-secondary)]"}`,children:[c,"new"===a&&ac&&ac.new>0&&(0,b.jsx)("span",{className:"ml-1.5 rounded-full bg-white/20 px-1.5 py-0.5 text-[10px] font-bold",children:ac.new})]},a))}),ad?.findings&&0!==ad.findings.length?(0,b.jsx)("div",{className:"space-y-3",children:ad.findings.map(a=>(0,b.jsxs)(p.GlassCard,{severity:a.severity,className:"p-5",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(q.Badge,{variant:(0,q.riskVariant)(a.severity),children:a.severity}),(0,b.jsx)(q.Badge,{variant:"muted",children:a.category}),a.systemFile&&(0,b.jsx)(q.Badge,{variant:"muted",children:"System file — likely safe"}),a.guidance?.urgency==="usually-safe"&&!a.systemFile&&(0,b.jsx)(q.Badge,{variant:"cyan",children:"Usually safe"}),a.guidance?.urgency==="act-now"&&(0,b.jsx)(q.Badge,{variant:"critical",dot:!0,pulse:!0,children:"Act now"})]}),(0,b.jsx)("p",{className:"mt-3 text-sm font-semibold text-[var(--sc-text-primary)]",children:a.title}),a.guidance&&(0,b.jsxs)("div",{className:"mt-3 space-y-3 rounded-xl bg-[var(--sc-bg-elevated)] p-4",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-[var(--sc-text-muted)]",children:"What this means"}),(0,b.jsx)("p",{className:"mt-1 text-sm leading-relaxed text-[var(--sc-text-secondary)]",children:a.guidance.whatItMeans})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-[var(--sc-cyan)]",children:"What to do"}),(0,b.jsx)("p",{className:"mt-1 text-sm leading-relaxed text-[var(--sc-text-secondary)]",children:a.guidance.whatToDo})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-wider text-[var(--sc-text-muted)]",children:"False positive?"}),(0,b.jsx)("p",{className:"mt-1 text-xs leading-relaxed text-[var(--sc-text-muted)]",children:a.guidance.falsePositiveNote})]})]}),(a.file||a.evidence)&&(0,b.jsxs)("div",{className:"mt-3 space-y-0.5 font-mono text-xs text-[var(--sc-text-muted)]",children:[a.file&&(0,b.jsxs)("div",{children:["File: ",a.line?`${a.file}:${a.line}`:a.file]}),a.evidence&&(0,b.jsxs)("div",{children:["Evidence: ",a.evidence]})]}),(0,b.jsx)(H,{finding:a}),(0,b.jsx)("div",{className:"mt-2 text-xs text-[var(--sc-text-muted)]",children:J(a.detectedAt)}),(0,b.jsx)("div",{className:"mt-3 border-t border-[var(--sc-border)] pt-3",children:(0,b.jsx)(D,{findingId:a.id,status:a.status,hasFile:!!a.file,compact:!0})})]},a.id))}):(0,b.jsxs)(p.GlassCard,{className:"p-8 text-center",children:[(0,b.jsx)("p",{className:"text-sm text-[var(--sc-text-primary)]",children:"new"===Y?"All clear — no findings need attention":`No ${"all"===Y?"":Y+" "}findings`}),(0,b.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:"new"===Y?"Run an X-Ray scan or start a watcher to monitor for threats.":"Findings move here when you take action on them."})]})]})]})})}a.s(["XRayOverview",()=>K],89418)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=dashboard_src_components_xray_XRayOverview_tsx_ceba698e._.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><!--
|
|
1
|
+
<!DOCTYPE html><!--5HSptYF0HaABlloA3Hir3--><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/24da99d1341bd573.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/d878b929b21636c4.js"/><script src="/_next/static/chunks/d9ad4c35fc865415.js" async=""></script><script src="/_next/static/chunks/43d761df92da7cb6.js" async=""></script><script src="/_next/static/chunks/e281719dbabcca1d.js" async=""></script><script src="/_next/static/chunks/9e56d1f8f4d7adcb.js" async=""></script><script src="/_next/static/chunks/turbopack-79214717b23f7452.js" async=""></script><script src="/_next/static/chunks/4ddb24d8ce3b8617.js" async=""></script><script src="/_next/static/chunks/417032eeb2cd875f.js" async=""></script><script src="/_next/static/chunks/d334b69bff7779be.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><title>ShieldCortex</title><meta name="description" content="AI Memory Security Dashboard — Defence pipeline, audit logs, quarantine review"/><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased bg-slate-950"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/d878b929b21636c4.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[36111,[\"/_next/static/chunks/4ddb24d8ce3b8617.js\",\"/_next/static/chunks/417032eeb2cd875f.js\"],\"Providers\"]\n3:I[57043,[\"/_next/static/chunks/4ddb24d8ce3b8617.js\",\"/_next/static/chunks/417032eeb2cd875f.js\"],\"default\"]\n4:I[10445,[\"/_next/static/chunks/4ddb24d8ce3b8617.js\",\"/_next/static/chunks/417032eeb2cd875f.js\",\"/_next/static/chunks/d334b69bff7779be.js\"],\"default\"]\n5:I[27657,[\"/_next/static/chunks/4ddb24d8ce3b8617.js\",\"/_next/static/chunks/417032eeb2cd875f.js\"],\"default\"]\n6:I[56978,[\"/_next/static/chunks/4ddb24d8ce3b8617.js\",\"/_next/static/chunks/417032eeb2cd875f.js\"],\"OutletBoundary\"]\n7:\"$Sreact.suspense\"\n9:I[56978,[\"/_next/static/chunks/4ddb24d8ce3b8617.js\",\"/_next/static/chunks/417032eeb2cd875f.js\"],\"ViewportBoundary\"]\nb:I[56978,[\"/_next/static/chunks/4ddb24d8ce3b8617.js\",\"/_next/static/chunks/417032eeb2cd875f.js\"],\"MetadataBoundary\"]\nd:I[30687,[\"/_next/static/chunks/4ddb24d8ce3b8617.js\",\"/_next/static/chunks/417032eeb2cd875f.js\"],\"default\"]\n:HL[\"/_next/static/chunks/24da99d1341bd573.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"5HSptYF0HaABlloA3Hir3\",\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/24da99d1341bd573.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/4ddb24d8ce3b8617.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/417032eeb2cd875f.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark\",\"children\":[\"$\",\"body\",null,{\"className\":\"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased bg-slate-950\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$4\",\"errorStyles\":[],\"errorScripts\":[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/d334b69bff7779be.js\",\"async\":true}]],\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@8\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lc\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",\"$undefined\"],\"S\":true}\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"8:null\nc:[[\"$\",\"title\",\"0\",{\"children\":\"ShieldCortex\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"AI Memory Security Dashboard — Defence pipeline, audit logs, quarantine review\"}]]\n"])</script></body></html>
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
<!DOCTYPE html><!--
|
|
2
|
-
@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/d878b929b21636c4.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[57043,[\"/_next/static/chunks/102f894cc892994d.js\",\"/_next/static/chunks/417032eeb2cd875f.js\"],\"default\"]\n3:I[27657,[\"/_next/static/chunks/102f894cc892994d.js\",\"/_next/static/chunks/417032eeb2cd875f.js\"],\"default\"]\n4:I[56978,[\"/_next/static/chunks/102f894cc892994d.js\",\"/_next/static/chunks/417032eeb2cd875f.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n7:I[56978,[\"/_next/static/chunks/102f894cc892994d.js\",\"/_next/static/chunks/417032eeb2cd875f.js\"],\"ViewportBoundary\"]\n9:I[56978,[\"/_next/static/chunks/102f894cc892994d.js\",\"/_next/static/chunks/417032eeb2cd875f.js\"],\"MetadataBoundary\"]\nb:I[30687,[\"/_next/static/chunks/102f894cc892994d.js\",\"/_next/static/chunks/417032eeb2cd875f.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"
|
|
1
|
+
<!DOCTYPE html><!--5HSptYF0HaABlloA3Hir3--><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/d878b929b21636c4.js"/><script src="/_next/static/chunks/d9ad4c35fc865415.js" async=""></script><script src="/_next/static/chunks/43d761df92da7cb6.js" async=""></script><script src="/_next/static/chunks/e281719dbabcca1d.js" async=""></script><script src="/_next/static/chunks/9e56d1f8f4d7adcb.js" async=""></script><script src="/_next/static/chunks/turbopack-79214717b23f7452.js" async=""></script><script src="/_next/static/chunks/102f894cc892994d.js" async=""></script><script src="/_next/static/chunks/417032eeb2cd875f.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: Internal Server Error.</title><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}
|
|
2
|
+
@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/d878b929b21636c4.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[57043,[\"/_next/static/chunks/102f894cc892994d.js\",\"/_next/static/chunks/417032eeb2cd875f.js\"],\"default\"]\n3:I[27657,[\"/_next/static/chunks/102f894cc892994d.js\",\"/_next/static/chunks/417032eeb2cd875f.js\"],\"default\"]\n4:I[56978,[\"/_next/static/chunks/102f894cc892994d.js\",\"/_next/static/chunks/417032eeb2cd875f.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n7:I[56978,[\"/_next/static/chunks/102f894cc892994d.js\",\"/_next/static/chunks/417032eeb2cd875f.js\"],\"ViewportBoundary\"]\n9:I[56978,[\"/_next/static/chunks/102f894cc892994d.js\",\"/_next/static/chunks/417032eeb2cd875f.js\"],\"MetadataBoundary\"]\nb:I[30687,[\"/_next/static/chunks/102f894cc892994d.js\",\"/_next/static/chunks/417032eeb2cd875f.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"5HSptYF0HaABlloA3Hir3\",\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"title\",null,{\"children\":\"500: Internal Server Error.\"}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"lineHeight\":\"48px\"},\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"paddingRight\":23,\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\"},\"children\":\"500\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"28px\"},\"children\":\"Internal Server Error.\"}]}]]}]}]}]]}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/102f894cc892994d.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/417032eeb2cd875f.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L7\",null,{\"children\":\"$L8\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$La\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$b\",\"$undefined\"],\"S\":true}\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\na:[]\n"])</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"
|
|
1
|
+
self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"tEN1oKBSkLytn17Kmnw7T8FMKYt4lGUb1QEyQ5EfPP8=\"\n}"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,95659,e=>{"use strict";var t=e.i(27493),a=e.i(76490);let r={critical:"bg-[var(--sc-coral)]/15 text-[var(--sc-coral)] border-[var(--sc-coral)]/30",high:"bg-[var(--sc-coral-mid)]/15 text-[var(--sc-coral-mid)] border-[var(--sc-coral-mid)]/30",medium:"bg-[var(--sc-amber)]/15 text-[var(--sc-amber)] border-[var(--sc-amber)]/30",low:"bg-[var(--sc-cyan-mid)]/15 text-[var(--sc-cyan-mid)] border-[var(--sc-cyan-mid)]/30",safe:"bg-[var(--sc-cyan)]/15 text-[var(--sc-cyan)] border-[var(--sc-cyan)]/30",info:"bg-[var(--sc-text-muted)]/15 text-[var(--sc-text-secondary)] border-[var(--sc-text-muted)]/30",coral:"bg-[var(--sc-coral)]/15 text-[var(--sc-coral)] border-[var(--sc-coral)]/30",cyan:"bg-[var(--sc-cyan)]/15 text-[var(--sc-cyan)] border-[var(--sc-cyan)]/30",amber:"bg-[var(--sc-amber)]/15 text-[var(--sc-amber)] border-[var(--sc-amber)]/30",muted:"bg-[var(--sc-surface-interactive)] text-[var(--sc-text-secondary)] border-[var(--sc-border)]"},i={critical:"bg-[var(--sc-coral)]",high:"bg-[var(--sc-coral-mid)]",medium:"bg-[var(--sc-amber)]",low:"bg-[var(--sc-cyan-mid)]",safe:"bg-[var(--sc-cyan)]",info:"bg-[var(--sc-text-muted)]",coral:"bg-[var(--sc-coral)]",cyan:"bg-[var(--sc-cyan)]",amber:"bg-[var(--sc-amber)]",muted:"bg-[var(--sc-text-muted)]"};function s({children:e,variant:s="muted",className:n,dot:c=!1,pulse:l=!1}){return(0,t.jsxs)("span",{className:(0,a.cn)("inline-flex items-center gap-1.5 rounded-full border px-2.5 py-0.5 text-[11px] font-semibold uppercase tracking-wider",r[s],n),children:[c&&(0,t.jsx)("span",{className:(0,a.cn)("h-1.5 w-1.5 rounded-full",i[s],l&&"animate-pulse")}),e]})}function n(e){let t=e.toUpperCase();return"CRITICAL"===t?"critical":"HIGH"===t?"high":"MEDIUM"===t?"medium":"LOW"===t?"low":"SAFE"===t?"safe":"info"}e.s(["Badge",()=>s,"riskVariant",()=>n])},16467,e=>{"use strict";var t=e.i(27493),a=e.i(76490);let r={critical:"severity-critical",high:"severity-high",medium:"severity-medium",low:"severity-low",safe:"severity-safe",info:"severity-info"};function i({children:e,className:i,hover:s=!1,hoverCyan:n=!1,strong:c=!1,severity:l,onClick:o,selected:u=!1}){return(0,t.jsx)("div",{className:(0,a.cn)(c?"glass-card-strong":"glass-card",s&&"glass-card-hover cursor-pointer",n&&"glass-card-hover-cyan cursor-pointer",o&&!s&&!n&&"cursor-pointer",l&&r[l],u&&"border-[var(--sc-cyan)] shadow-[0_0_20px_var(--sc-glow-cyan)]",i),onClick:o,onKeyDown:o?e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),o())}:void 0,role:o?"button":void 0,tabIndex:o?0:void 0,children:e})}e.s(["GlassCard",()=>i])},36062,31309,e=>{"use strict";let t=(0,e.i(24929).default)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);e.s(["ArrowRight",()=>t],36062);var a=e.i(22534),r=e.i(71921),i=e.i(45688),s=e.i(1235),n=e.i(88969);let c=a.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function l(e,t){let a=await (0,n.gatedFetch)(`${c}${e}`);if(!a.ok)throw Error(await (0,n.readApiError)(a,t));return a.json()}async function o(e){let t=await (0,n.gatedFetch)(`${c}/api/xray/scan`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error(await (0,n.readApiError)(t,"Failed to run X-Ray scan"));return t.json()}async function u(e){let t=await (0,n.gatedFetch)(`${c}/api/xray/pick-target`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({kind:e})});if(!t.ok)throw Error(await (0,n.readApiError)(t,`Failed to open ${e} picker`));return t.json()}function d(e,t){return!(t instanceof n.FeatureLockedError)&&e<2}function y(e){let t=new URLSearchParams;for(let[a,r]of Object.entries(e))r&&"all"!==r&&"ALL"!==r&&t.set(a,r);let a=t.toString();return a?`?${a}`:""}function h(){return(0,i.useQuery)({queryKey:["xray-status"],queryFn:()=>l("/api/xray/status","Failed to fetch X-Ray status"),refetchInterval:3e4,retry:d})}function m(e={}){return(0,i.useQuery)({queryKey:["xray-history",e],queryFn:()=>l(`/api/xray/history${y({risk:e.risk,targetType:e.targetType,deep:e.deep,search:e.search?.trim()||void 0})}`,"Failed to fetch X-Ray history"),refetchInterval:3e4,retry:d})}function v(e){return(0,i.useQuery)({queryKey:["xray-history-entry",e],queryFn:()=>l(`/api/xray/history/${e}`,"Failed to fetch X-Ray scan detail"),enabled:!!e,retry:d})}function x(e=25,t={}){return(0,i.useQuery)({queryKey:["xray-activity",e,t],queryFn:()=>l(`/api/xray/activity${y({limit:String(e),kind:t.kind,status:t.status,risk:t.risk,targetType:t.targetType,search:t.search?.trim()||void 0})}`,"Failed to fetch X-Ray activity"),refetchInterval:15e3,retry:d})}function p(e=20,t={}){return(0,i.useQuery)({queryKey:["xray-watch-sessions",e,t],queryFn:()=>l(`/api/xray/watch-sessions${y({limit:String(e),state:t.state,deep:t.deep,search:t.search?.trim()||void 0})}`,"Failed to fetch X-Ray watch sessions"),refetchInterval:15e3,retry:d})}function f(){let e=(0,s.useQueryClient)();return(0,r.useMutation)({mutationFn:o,onSuccess:()=>{e.invalidateQueries({queryKey:["xray-history"]}),e.invalidateQueries({queryKey:["xray-activity"]}),e.invalidateQueries({queryKey:["xray-watch-sessions"]}),e.invalidateQueries({queryKey:["xray-status"]})}})}function g(){return(0,r.useMutation)({mutationFn:e=>u(e)})}async function b(e){let t=await (0,n.gatedFetch)(`${c}/api/xray/watch/start`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error(await (0,n.readApiError)(t,"Failed to start watch"));return t.json()}async function j(e){let t=await (0,n.gatedFetch)(`${c}/api/xray/watch/stop`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({target:e})});if(!t.ok)throw Error(await (0,n.readApiError)(t,"Failed to stop watch"));return t.json()}function w(){return(0,i.useQuery)({queryKey:["xray-active-watchers"],queryFn:()=>l("/api/xray/watch/active","Failed to fetch active watchers"),refetchInterval:1e4})}function q(){let e=(0,s.useQueryClient)();return(0,r.useMutation)({mutationFn:b,onSuccess:()=>{e.invalidateQueries({queryKey:["xray-watch-sessions"]}),e.invalidateQueries({queryKey:["xray-active-watchers"]}),e.invalidateQueries({queryKey:["xray-status"]})}})}function N(){let e=(0,s.useQueryClient)();return(0,r.useMutation)({mutationFn:j,onSuccess:()=>{e.invalidateQueries({queryKey:["xray-watch-sessions"]}),e.invalidateQueries({queryKey:["xray-active-watchers"]}),e.invalidateQueries({queryKey:["xray-status"]})}})}e.s(["useActiveWatchers",()=>w,"usePickXRayTarget",()=>g,"useStartWatch",()=>q,"useStopWatch",()=>N,"useXRayActivity",()=>x,"useXRayHistory",()=>m,"useXRayHistoryEntry",()=>v,"useXRayScan",()=>f,"useXRayStatus",()=>h,"useXRayWatchSessions",()=>p],31309)},75025,e=>{"use strict";let t=(0,e.i(24929).default)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);e.s(["FileText",()=>t],75025)},46194,e=>{"use strict";var t=e.i(27493),a=e.i(76490);let r={coral:{icon:"text-[var(--sc-coral)]",iconBg:"bg-[var(--sc-coral)]/10",trendUp:"text-[var(--sc-coral)]",trendDown:"text-[var(--sc-cyan)]"},cyan:{icon:"text-[var(--sc-cyan)]",iconBg:"bg-[var(--sc-cyan)]/10",trendUp:"text-[var(--sc-cyan)]",trendDown:"text-[var(--sc-coral)]"},amber:{icon:"text-[var(--sc-amber)]",iconBg:"bg-[var(--sc-amber)]/10",trendUp:"text-[var(--sc-amber)]",trendDown:"text-[var(--sc-text-muted)]"},muted:{icon:"text-[var(--sc-text-secondary)]",iconBg:"bg-[var(--sc-surface-interactive)]",trendUp:"text-[var(--sc-cyan)]",trendDown:"text-[var(--sc-coral)]"}};function i({label:e,value:i,icon:s,trend:n,accent:c="cyan",className:l}){let o=r[c];return(0,t.jsx)("div",{className:(0,a.cn)("glass-card p-5",l),children:(0,t.jsxs)("div",{className:"flex items-start justify-between",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("p",{className:"text-xs font-medium uppercase tracking-wider text-[var(--sc-text-muted)]",children:e}),(0,t.jsx)("p",{className:"mt-2 text-2xl font-bold text-[var(--sc-text-primary)]",children:i}),n&&(0,t.jsxs)("p",{className:(0,a.cn)("mt-1 text-xs",n.value>=0?o.trendUp:o.trendDown),children:[n.value>=0?"+":"",n.value,"% ",n.label]})]}),(0,t.jsx)("div",{className:(0,a.cn)("rounded-xl p-2.5",o.iconBg),children:(0,t.jsx)(s,{size:20,className:o.icon})})]})})}e.s(["StatCard",()=>i])},18509,e=>{"use strict";let t=(0,e.i(24929).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);e.s(["AlertTriangle",()=>t],18509)},15771,e=>{"use strict";let t=(0,e.i(24929).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["CheckCircle2",()=>t],15771)},51069,e=>{"use strict";let t=(0,e.i(24929).default)("shield-alert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);e.s(["ShieldAlert",()=>t],51069)},63312,50279,e=>{"use strict";var t=e.i(22534),a=e.i(45688),r=e.i(71921),i=e.i(1235),s=e.i(88969);let n=t.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function c(){let e=await (0,s.authFetch)(`${n}/api/license/status`);if(!e.ok)throw Error("Failed to fetch license status");return e.json()}async function l(e){let t=await (0,s.authFetch)(`${n}/api/license/activate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:e})});if(!t.ok)throw Error((await t.json().catch(()=>({error:"Activation failed"}))).error||"Activation failed");return t.json()}async function o(){let e=await (0,s.authFetch)(`${n}/api/license/deactivate`,{method:"POST"});if(!e.ok)throw Error("Failed to deactivate license");return e.json()}function u(){return(0,a.useQuery)({queryKey:["license-status"],queryFn:c,refetchInterval:6e4,retry:2})}function d(){let e=(0,i.useQueryClient)();return(0,r.useMutation)({mutationFn:e=>l(e),onSuccess:()=>{e.invalidateQueries({queryKey:["license-status"]})}})}function y(){let e=(0,i.useQueryClient)();return(0,r.useMutation)({mutationFn:o,onSuccess:()=>{e.invalidateQueries({queryKey:["license-status"]})}})}e.s(["useActivateLicense",()=>d,"useDeactivateLicense",()=>y,"useLicenseStatus",()=>u],63312),e.s(["PLAN_PRICING",0,{pro:{label:"Pro",price:"£29/mo"},team:{label:"Team",price:"£99/mo"}},"TIER_BG",0,{free:"bg-[var(--sc-surface-interactive)]",pro:"bg-[var(--sc-cyan)]/10",team:"bg-[var(--sc-coral)]/10",enterprise:"bg-[var(--sc-amber)]/10"},"TIER_COLOURS",0,{free:"text-[var(--sc-text-muted)]",pro:"text-[var(--sc-cyan)]",team:"text-[var(--sc-coral)]",enterprise:"text-[var(--sc-amber)]"},"TIER_LABELS",0,{free:"Free",pro:"Pro",team:"Team",enterprise:"Enterprise"}],50279)},19331,e=>{"use strict";let t=(0,e.i(24929).default)("clock-3",[["path",{d:"M12 6v6h4",key:"135r8i"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);e.s(["Clock3",()=>t],19331)},87353,e=>{"use strict";var t=e.i(22534),a=e.i(45688),r=e.i(71921),i=e.i(1235),s=e.i(88969);let n=t.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function c(e){let t=new URLSearchParams;e?.startTime&&t.set("startTime",e.startTime),e?.endTime&&t.set("endTime",e.endTime),e?.source&&t.set("source",e.source),e?.firewallResult&&t.set("firewallResult",e.firewallResult),e?.project&&t.set("project",e.project),e?.limit&&t.set("limit",e.limit.toString());let a=await (0,s.authFetch)(`${n}/api/v1/audit?${t}`);if(!a.ok)throw Error(await (0,s.readApiError)(a,"Failed to fetch audit logs"));return a.json()}async function l(e,t){let a=new URLSearchParams({timeRange:e});t&&a.set("project",t);let r=await (0,s.authFetch)(`${n}/api/v1/audit/stats?${a}`);if(!r.ok)throw Error(await (0,s.readApiError)(r,"Failed to fetch audit stats"));return r.json()}async function o(e="pending",t=50,a,r){let i=new URLSearchParams({status:e,limit:t.toString()});a&&i.set("project",a),r&&i.set("sourceType",r);let c=await (0,s.authFetch)(`${n}/api/v1/quarantine?${i}`);if(!c.ok)throw Error(await (0,s.readApiError)(c,"Failed to fetch quarantine"));return c.json()}async function u(e){let t=await (0,s.authFetch)(`${n}/api/v1/quarantine/${e}/approve`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reviewedBy:"dashboard"})});if(!t.ok)throw Error(await (0,s.readApiError)(t,"Failed to approve quarantined item"));return t.json()}async function d(e,t){let a=await (0,s.authFetch)(`${n}/api/v1/quarantine/${e}/reject`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reviewedBy:"dashboard",notes:t})});if(!a.ok)throw Error(await (0,s.readApiError)(a,"Failed to reject quarantined item"));return a.json()}async function y(e){let t=await (0,s.authFetch)(`${n}/api/v1/quarantine/bulk-approve`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:e,reviewedBy:"dashboard"})});if(!t.ok)throw Error(await (0,s.readApiError)(t,"Failed to bulk approve quarantined items"));return t.json()}async function h(e){let t=await (0,s.authFetch)(`${n}/api/v1/quarantine/bulk-reject`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:e,reviewedBy:"dashboard"})});if(!t.ok)throw Error(await (0,s.readApiError)(t,"Failed to bulk reject quarantined items"));return t.json()}async function m(){let e=await (0,s.authFetch)(`${n}/api/v1/review-copilot/status`);if(!e.ok)throw Error(await (0,s.readApiError)(e,"Failed to fetch Local AI status"));return e.json()}async function v(e){let t=await (0,s.authFetch)(`${n}/api/v1/quarantine/${e}/annotate`,{method:"POST",headers:{"Content-Type":"application/json"}});if(!t.ok)throw Error(await (0,s.readApiError)(t,"Failed to explain quarantined item"));return t.json()}async function x(e){let t=await (0,s.authFetch)(`${n}/api/v1/quarantine/annotate-pending`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error(await (0,s.readApiError)(t,"Failed to explain pending quarantine"));return t.json()}function p(e){return(0,a.useQuery)({queryKey:["audit-logs",e],queryFn:()=>c(e),refetchInterval:3e4,retry:2})}function f(e="24h",t){return(0,a.useQuery)({queryKey:["audit-stats",e,t],queryFn:()=>l(e,t),refetchInterval:3e4,retry:2})}function g(e="pending",t=50,r,i){return(0,a.useQuery)({queryKey:["quarantine",e,t,r,i],queryFn:()=>o(e,t,r,i),refetchInterval:3e4,retry:2})}function b(){return(0,a.useQuery)({queryKey:["review-copilot-status"],queryFn:m,refetchInterval:3e4,retry:2})}function j(){let e=(0,i.useQueryClient)();return(0,r.useMutation)({mutationFn:u,onSuccess:()=>{e.invalidateQueries({queryKey:["quarantine"]}),e.invalidateQueries({queryKey:["audit-stats"]}),e.invalidateQueries({queryKey:["memories"]}),e.invalidateQueries({queryKey:["stats"]}),e.invalidateQueries({queryKey:["review-queue"]}),e.invalidateQueries({queryKey:["openclaw-sessions"]}),e.invalidateQueries({queryKey:["quality"]})}})}function w(){let e=(0,i.useQueryClient)();return(0,r.useMutation)({mutationFn:({id:e,notes:t})=>d(e,t),onSuccess:()=>{e.invalidateQueries({queryKey:["quarantine"]}),e.invalidateQueries({queryKey:["audit-stats"]}),e.invalidateQueries({queryKey:["review-queue"]})}})}function q(){let e=(0,i.useQueryClient)();return(0,r.useMutation)({mutationFn:y,onSuccess:()=>{e.invalidateQueries({queryKey:["quarantine"]}),e.invalidateQueries({queryKey:["audit-stats"]}),e.invalidateQueries({queryKey:["memories"]}),e.invalidateQueries({queryKey:["stats"]}),e.invalidateQueries({queryKey:["review-queue"]}),e.invalidateQueries({queryKey:["openclaw-sessions"]}),e.invalidateQueries({queryKey:["quality"]})}})}function N(){let e=(0,i.useQueryClient)();return(0,r.useMutation)({mutationFn:h,onSuccess:()=>{e.invalidateQueries({queryKey:["quarantine"]}),e.invalidateQueries({queryKey:["audit-stats"]}),e.invalidateQueries({queryKey:["review-queue"]})}})}function k(){let e=(0,i.useQueryClient)();return(0,r.useMutation)({mutationFn:v,onSuccess:()=>{e.invalidateQueries({queryKey:["quarantine"]}),e.invalidateQueries({queryKey:["review-copilot-status"]})}})}function S(){let e=(0,i.useQueryClient)();return(0,r.useMutation)({mutationFn:x,onSuccess:()=>{e.invalidateQueries({queryKey:["quarantine"]}),e.invalidateQueries({queryKey:["review-copilot-status"]})}})}e.s(["useAnnotatePendingQuarantine",()=>S,"useAnnotateQuarantine",()=>k,"useApproveQuarantine",()=>j,"useAuditLogs",()=>p,"useAuditStats",()=>f,"useBulkApproveQuarantine",()=>q,"useBulkRejectQuarantine",()=>N,"useQuarantine",()=>g,"useRejectQuarantine",()=>w,"useReviewCopilotStatus",()=>b])},14612,e=>{"use strict";var t=e.i(27493),a=e.i(4),r=e.i(56640),i=e.i(18509),s=e.i(36062),n=e.i(15771),c=e.i(19331),l=e.i(7571),o=e.i(75025),u=e.i(76344),d=e.i(27528),y=e.i(51069),h=e.i(16467),m=e.i(46194),v=e.i(95659),x=e.i(81523),p=e.i(40950),f=e.i(88069),g=e.i(87353),b=e.i(63312),j=e.i(31309),w=e.i(50279);function q(){let{data:e}=(0,f.useStats)(),{data:q}=(0,g.useAuditStats)("24h"),{data:N}=(0,g.useQuarantine)("pending",10),{data:k}=(0,g.useQuarantine)("pending",1,void 0,"memory_file"),{data:S}=(0,f.useQuality)(),{data:F}=(0,f.useContradictions)(),{data:Q}=(0,b.useLicenseStatus)(),{data:C}=(0,j.useXRayStatus)(),T=e?.total??0,A=e?.decayDistribution?.healthy??0,K=e?.decayDistribution?.fading??0,$=e?.decayDistribution?.critical??0,E=e?.decayDistribution?Math.round(A/Math.max(1,T)*100):0,R=F?.count??F?.contradictions?.length??0,M=N?.total??0,L=k?.total??0,P=Math.max(0,M-L),I=q?.blockedCount??0,O=S?.duplicates?.count??0,B=S?.stale?.count??0,U=S?.neverAccessed?.count??0,D=C?.summary?.scans??0,_=(0,a.useMemo)(()=>{let e=[];return L>0&&e.push({title:`${L} memory file finding${1===L?"":"s"} need review`,detail:"These are scanned agent memory files, not stored ShieldCortex memories. Review or dismiss them without editing files.",severity:L>10?"critical":"medium",href:"/protection?tab=quarantine",cta:"Review files"}),P>0&&e.push({title:`${P} memory write${1===P?"":"s"} in quarantine`,detail:"Review blocked writes before they become silent operator debt.",severity:P>10?"critical":"medium",href:"/protection?tab=quarantine",cta:"Review writes"}),R>0&&e.push({title:`${R} contradiction${1===R?"":"s"} detected`,detail:"Conflicting facts reduce recall trust.",severity:R>5?"high":"medium",href:"/memory?tab=review",cta:"Resolve"}),I>0&&e.push({title:`${I} blocked operation${1===I?"":"s"} (24h)`,detail:"Defence pipeline blocked suspicious writes.",severity:"high",href:"/protection?tab=audit",cta:"View audit"}),B+O>0&&e.push({title:"Memory cleanup available",detail:`${B} stale, ${O} duplicate, ${U} unused memories.`,severity:"low",href:"/memory?tab=review",cta:"Clean up"}),e.slice(0,4)},[L,P,R,I,B,O,U]),X=L>0&&P>0?`${L} file finding${1===L?"":"s"}, ${P} write${1===P?"":"s"} pending.`:L>0?`${L} memory-file finding${1===L?"":"s"} pending.`:`${M} item${1===M?"":"s"} pending review.`;return(0,t.jsx)("div",{className:"h-full overflow-y-auto",children:(0,t.jsxs)("div",{className:"mx-auto max-w-7xl space-y-6 p-6",children:[(0,t.jsx)(p.PageHeader,{eyebrow:"ShieldCortex",title:"Command Centre",subtitle:"Stored-memory health, memory-file findings, threat pressure, and operational status at a glance."}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4 lg:grid-cols-5",children:[(0,t.jsx)(m.StatCard,{label:"Stored Memories",value:T.toLocaleString(),icon:l.Database,accent:"cyan",trend:E>0?{value:E,label:"healthy"}:void 0}),(0,t.jsx)(m.StatCard,{label:"Memory Files Flagged",value:L.toLocaleString(),icon:o.FileText,accent:L>0?"amber":"muted"}),(0,t.jsx)(m.StatCard,{label:"Threats Blocked",value:I.toLocaleString(),icon:y.ShieldAlert,accent:I>0?"coral":"muted"}),(0,t.jsx)(m.StatCard,{label:"X-Ray Scans",value:D.toLocaleString(),icon:u.ScanSearch,accent:"cyan"}),(0,t.jsx)(m.StatCard,{label:"Health Score",value:`${E}%`,icon:d.Shield,accent:E>=80?"cyan":E>=50?"amber":"coral"})]}),(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-6 lg:grid-cols-[1fr_1fr]",children:[(0,t.jsxs)(h.GlassCard,{className:"p-6",children:[(0,t.jsx)("h3",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Stored Memory Health"}),(0,t.jsx)("p",{className:"mt-1 text-sm text-[var(--sc-text-muted)]",children:"Decay distribution across ShieldCortex stored memories."}),(0,t.jsx)("div",{className:"mt-6 flex items-center justify-center",children:(0,t.jsxs)("div",{className:"relative h-40 w-40",children:[(0,t.jsxs)("svg",{viewBox:"0 0 100 100",className:"h-full w-full -rotate-90",children:[(0,t.jsx)("circle",{cx:"50",cy:"50",r:"42",fill:"none",stroke:"var(--sc-bg-elevated)",strokeWidth:"8"}),(0,t.jsx)("circle",{cx:"50",cy:"50",r:"42",fill:"none",stroke:"var(--sc-cyan)",strokeWidth:"8",strokeDasharray:`${2.64*E} 264`,strokeLinecap:"round",className:"transition-all duration-1000"})]}),(0,t.jsxs)("div",{className:"absolute inset-0 flex flex-col items-center justify-center",children:[(0,t.jsxs)("span",{className:"text-3xl font-bold text-[var(--sc-text-primary)]",children:[E,"%"]}),(0,t.jsx)("span",{className:"text-xs text-[var(--sc-text-muted)]",children:"healthy"})]})]})}),(0,t.jsxs)("div",{className:"mt-6 grid grid-cols-3 gap-3 text-center",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-lg font-semibold text-[var(--sc-cyan)]",children:A}),(0,t.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)]",children:"Healthy"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-lg font-semibold text-[var(--sc-amber)]",children:K}),(0,t.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)]",children:"Fading"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-lg font-semibold text-[var(--sc-coral)]",children:$}),(0,t.jsx)("div",{className:"text-xs text-[var(--sc-text-muted)]",children:"Critical"})]})]})]}),(0,t.jsxs)(h.GlassCard,{className:"p-6",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("h3",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Urgent Actions"}),_.length>0&&(0,t.jsxs)(v.Badge,{variant:"coral",dot:!0,pulse:!0,children:[_.length," active"]})]}),(0,t.jsx)("p",{className:"mt-1 text-sm text-[var(--sc-text-muted)]",children:"Quickest wins for trust, safety, and recall quality."}),(0,t.jsx)("div",{className:"mt-4 space-y-3",children:0===_.length?(0,t.jsxs)("div",{className:"flex items-center gap-3 rounded-xl bg-[var(--sc-bg-elevated)] p-4",children:[(0,t.jsx)(n.CheckCircle2,{size:18,className:"shrink-0 text-[var(--sc-cyan)]"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"All clear"}),(0,t.jsx)("p",{className:"text-xs text-[var(--sc-text-muted)]",children:"No urgent issues right now. Memory health looks stable."})]})]}):_.map(e=>(0,t.jsxs)(r.default,{href:e.href,className:"group flex items-start gap-3 rounded-xl bg-[var(--sc-bg-elevated)] p-4 transition-all hover:bg-[var(--sc-surface-interactive-hover)]",children:["critical"===e.severity||"high"===e.severity?(0,t.jsx)(i.AlertTriangle,{size:16,className:"mt-0.5 shrink-0 text-[var(--sc-coral)]"}):"medium"===e.severity?(0,t.jsx)(c.Clock3,{size:16,className:"mt-0.5 shrink-0 text-[var(--sc-amber)]"}):(0,t.jsx)(n.CheckCircle2,{size:16,className:"mt-0.5 shrink-0 text-[var(--sc-cyan)]"}),(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)("p",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:e.title}),(0,t.jsx)("p",{className:"mt-0.5 text-xs text-[var(--sc-text-muted)]",children:e.detail})]}),(0,t.jsxs)("span",{className:"flex shrink-0 items-center gap-1 text-xs font-medium text-[var(--sc-cyan)] opacity-0 transition-opacity group-hover:opacity-100",children:[e.cta," ",(0,t.jsx)(s.ArrowRight,{size:12})]})]},e.title))})]})]}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4 lg:grid-cols-4",children:[(0,t.jsx)(r.default,{href:"/xray",children:(0,t.jsxs)(h.GlassCard,{hover:!0,className:"p-5",children:[(0,t.jsx)(u.ScanSearch,{size:20,className:"text-[var(--sc-cyan)]"}),(0,t.jsx)("p",{className:"mt-3 text-sm font-semibold text-[var(--sc-text-primary)]",children:"Run X-Ray Scan"}),(0,t.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:"Inspect packages and files for hidden risk."})]})}),(0,t.jsx)(r.default,{href:"/protection?tab=quarantine",children:(0,t.jsxs)(h.GlassCard,{hover:!0,className:"p-5",children:[(0,t.jsx)(i.AlertTriangle,{size:20,className:"text-[var(--sc-amber)]"}),(0,t.jsx)("p",{className:"mt-3 text-sm font-semibold text-[var(--sc-text-primary)]",children:"Review Quarantine"}),(0,t.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:X})]})}),(0,t.jsx)(r.default,{href:"/memory?tab=recall",children:(0,t.jsxs)(h.GlassCard,{hover:!0,className:"p-5",children:[(0,t.jsx)(l.Database,{size:20,className:"text-[var(--sc-cyan)]"}),(0,t.jsx)("p",{className:"mt-3 text-sm font-semibold text-[var(--sc-text-primary)]",children:"Debug Recall"}),(0,t.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:"Test queries and inspect ranking factors."})]})}),(0,t.jsx)(r.default,{href:"/protection?tab=dome",children:(0,t.jsxs)(h.GlassCard,{hover:!0,className:"p-5",children:[(0,t.jsx)(y.ShieldAlert,{size:20,className:"text-[var(--sc-coral)]"}),(0,t.jsx)("p",{className:"mt-3 text-sm font-semibold text-[var(--sc-text-primary)]",children:"Iron Dome"}),(0,t.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:"Kill switch and behaviour gates."})]})})]}),(0,t.jsxs)(h.GlassCard,{className:"p-6",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-lg font-semibold text-[var(--sc-text-primary)]",children:"Licence"}),(0,t.jsx)("p",{className:"mt-1 text-sm text-[var(--sc-text-muted)]",children:"Current tier and feature access."})]}),(0,t.jsx)(v.Badge,{variant:Q?.tier==="pro"?"cyan":Q?.tier==="team"?"coral":"muted",children:w.TIER_LABELS[Q?.tier??"free"]})]}),Q?.tier==="free"&&(0,t.jsxs)("div",{className:"mt-4 flex items-center gap-4 rounded-xl bg-gradient-to-r from-[var(--sc-coral)]/5 to-[var(--sc-cyan)]/5 p-4",children:[(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)("p",{className:"text-sm font-medium text-[var(--sc-text-primary)]",children:"Unlock deep scanning, custom policies, and audit exports"}),(0,t.jsx)("p",{className:"mt-1 text-xs text-[var(--sc-text-muted)]",children:"Pro starts at £29/mo with 10K cloud scans and 90-day retention."})]}),(0,t.jsx)("a",{href:"https://shieldcortex.ai/pricing",target:"_blank",rel:"noopener noreferrer",children:(0,t.jsx)(x.Button,{variant:"coral",size:"sm",glow:!0,children:"Upgrade"})})]})]})]})})}e.s(["default",()=>q])}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,48615,t=>{"use strict";var e=t.i(4),a=t.i(9854);let r=Array(12).fill(0),o=({visible:t,className:a})=>e.default.createElement("div",{className:["sonner-loading-wrapper",a].filter(Boolean).join(" "),"data-visible":t},e.default.createElement("div",{className:"sonner-spinner"},r.map((t,a)=>e.default.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${a}`})))),n=e.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},e.default.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),s=e.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},e.default.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),i=e.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},e.default.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),l=e.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},e.default.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),d=e.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},e.default.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e.default.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),u=1,c=new class{constructor(){this.subscribe=t=>(this.subscribers.push(t),()=>{let e=this.subscribers.indexOf(t);this.subscribers.splice(e,1)}),this.publish=t=>{this.subscribers.forEach(e=>e(t))},this.addToast=t=>{this.publish(t),this.toasts=[...this.toasts,t]},this.create=t=>{var e;let{message:a,...r}=t,o="number"==typeof(null==t?void 0:t.id)||(null==(e=t.id)?void 0:e.length)>0?t.id:u++,n=this.toasts.find(t=>t.id===o),s=void 0===t.dismissible||t.dismissible;return this.dismissedToasts.has(o)&&this.dismissedToasts.delete(o),n?this.toasts=this.toasts.map(e=>e.id===o?(this.publish({...e,...t,id:o,title:a}),{...e,...t,id:o,dismissible:s,title:a}):e):this.addToast({title:a,...r,dismissible:s,id:o}),o},this.dismiss=t=>(t?(this.dismissedToasts.add(t),requestAnimationFrame(()=>this.subscribers.forEach(e=>e({id:t,dismiss:!0})))):this.toasts.forEach(t=>{this.subscribers.forEach(e=>e({id:t.id,dismiss:!0}))}),t),this.message=(t,e)=>this.create({...e,message:t}),this.error=(t,e)=>this.create({...e,message:t,type:"error"}),this.success=(t,e)=>this.create({...e,type:"success",message:t}),this.info=(t,e)=>this.create({...e,type:"info",message:t}),this.warning=(t,e)=>this.create({...e,type:"warning",message:t}),this.loading=(t,e)=>this.create({...e,type:"loading",message:t}),this.promise=(t,a)=>{let r,o;if(!a)return;void 0!==a.loading&&(o=this.create({...a,promise:t,type:"loading",message:a.loading,description:"function"!=typeof a.description?a.description:void 0}));let n=Promise.resolve(t instanceof Function?t():t),s=void 0!==o,i=n.then(async t=>{if(r=["resolve",t],e.default.isValidElement(t))s=!1,this.create({id:o,type:"default",message:t});else if(f(t)&&!t.ok){s=!1;let r="function"==typeof a.error?await a.error(`HTTP error! status: ${t.status}`):a.error,n="function"==typeof a.description?await a.description(`HTTP error! status: ${t.status}`):a.description,i="object"!=typeof r||e.default.isValidElement(r)?{message:r}:r;this.create({id:o,type:"error",description:n,...i})}else if(t instanceof Error){s=!1;let r="function"==typeof a.error?await a.error(t):a.error,n="function"==typeof a.description?await a.description(t):a.description,i="object"!=typeof r||e.default.isValidElement(r)?{message:r}:r;this.create({id:o,type:"error",description:n,...i})}else if(void 0!==a.success){s=!1;let r="function"==typeof a.success?await a.success(t):a.success,n="function"==typeof a.description?await a.description(t):a.description,i="object"!=typeof r||e.default.isValidElement(r)?{message:r}:r;this.create({id:o,type:"success",description:n,...i})}}).catch(async t=>{if(r=["reject",t],void 0!==a.error){s=!1;let r="function"==typeof a.error?await a.error(t):a.error,n="function"==typeof a.description?await a.description(t):a.description,i="object"!=typeof r||e.default.isValidElement(r)?{message:r}:r;this.create({id:o,type:"error",description:n,...i})}}).finally(()=>{s&&(this.dismiss(o),o=void 0),null==a.finally||a.finally.call(a)}),l=()=>new Promise((t,e)=>i.then(()=>"reject"===r[0]?e(r[1]):t(r[1])).catch(e));return"string"!=typeof o&&"number"!=typeof o?{unwrap:l}:Object.assign(o,{unwrap:l})},this.custom=(t,e)=>{let a=(null==e?void 0:e.id)||u++;return this.create({jsx:t(a),id:a,...e}),a},this.getActiveToasts=()=>this.toasts.filter(t=>!this.dismissedToasts.has(t.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},f=t=>t&&"object"==typeof t&&"ok"in t&&"boolean"==typeof t.ok&&"status"in t&&"number"==typeof t.status,m=Object.assign((t,e)=>{let a=(null==e?void 0:e.id)||u++;return c.addToast({title:t,...e,id:a}),a},{success:c.success,info:c.info,warning:c.warning,error:c.error,custom:c.custom,message:c.message,promise:c.promise,dismiss:c.dismiss,loading:c.loading},{getHistory:()=>c.toasts,getToasts:()=>c.getActiveToasts()});function p(t){return void 0!==t.label}function y(...t){return t.filter(Boolean).join(" ")}!function(t){if(!t||"u"<typeof document)return;let e=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css",e.appendChild(a),a.styleSheet?a.styleSheet.cssText=t:a.appendChild(document.createTextNode(t))}("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");let h=t=>{var a,r,u,c,f,m,h,g,v,b,w,x,k;let{invert:E,toast:S,unstyled:M,interacting:T,setHeights:C,visibleToasts:j,heights:q,index:F,toasts:N,expanded:Q,removeToast:$,defaultRichColors:R,closeButton:K,style:P,cancelButtonStyle:B,actionButtonStyle:A,className:z="",descriptionClassName:I="",duration:_,position:D,gap:L,expandByDefault:Y,classNames:O,icons:V,closeButtonAriaLabel:W="Close toast"}=t,[U,H]=e.default.useState(null),[X,J]=e.default.useState(null),[G,Z]=e.default.useState(!1),[tt,te]=e.default.useState(!1),[ta,tr]=e.default.useState(!1),[to,tn]=e.default.useState(!1),[ts,ti]=e.default.useState(!1),[tl,td]=e.default.useState(0),[tu,tc]=e.default.useState(0),tf=e.default.useRef(S.duration||_||4e3),tm=e.default.useRef(null),tp=e.default.useRef(null),ty=0===F,th=F+1<=j,tg=S.type,tv=!1!==S.dismissible,tb=S.className||"",tw=S.descriptionClassName||"",tx=e.default.useMemo(()=>q.findIndex(t=>t.toastId===S.id)||0,[q,S.id]),tk=e.default.useMemo(()=>{var t;return null!=(t=S.closeButton)?t:K},[S.closeButton,K]),tE=e.default.useMemo(()=>S.duration||_||4e3,[S.duration,_]),tS=e.default.useRef(0),tM=e.default.useRef(0),tT=e.default.useRef(0),tC=e.default.useRef(null),[tj,tq]=D.split("-"),tF=e.default.useMemo(()=>q.reduce((t,e,a)=>a>=tx?t:t+e.height,0),[q,tx]),tN=(()=>{let[t,a]=e.default.useState(document.hidden);return e.default.useEffect(()=>{let t=()=>{a(document.hidden)};return document.addEventListener("visibilitychange",t),()=>window.removeEventListener("visibilitychange",t)},[]),t})(),tQ=S.invert||E,t$="loading"===tg;tM.current=e.default.useMemo(()=>tx*L+tF,[tx,tF]),e.default.useEffect(()=>{tf.current=tE},[tE]),e.default.useEffect(()=>{Z(!0)},[]),e.default.useEffect(()=>{let t=tp.current;if(t){let e=t.getBoundingClientRect().height;return tc(e),C(t=>[{toastId:S.id,height:e,position:S.position},...t]),()=>C(t=>t.filter(t=>t.toastId!==S.id))}},[C,S.id]),e.default.useLayoutEffect(()=>{if(!G)return;let t=tp.current,e=t.style.height;t.style.height="auto";let a=t.getBoundingClientRect().height;t.style.height=e,tc(a),C(t=>t.find(t=>t.toastId===S.id)?t.map(t=>t.toastId===S.id?{...t,height:a}:t):[{toastId:S.id,height:a,position:S.position},...t])},[G,S.title,S.description,C,S.id,S.jsx,S.action,S.cancel]);let tR=e.default.useCallback(()=>{te(!0),td(tM.current),C(t=>t.filter(t=>t.toastId!==S.id)),setTimeout(()=>{$(S)},200)},[S,$,C,tM]);e.default.useEffect(()=>{let t;if((!S.promise||"loading"!==tg)&&S.duration!==1/0&&"loading"!==S.type){if(Q||T||tN){if(tT.current<tS.current){let t=new Date().getTime()-tS.current;tf.current=tf.current-t}tT.current=new Date().getTime()}else tf.current!==1/0&&(tS.current=new Date().getTime(),t=setTimeout(()=>{null==S.onAutoClose||S.onAutoClose.call(S,S),tR()},tf.current));return()=>clearTimeout(t)}},[Q,T,S,tg,tN,tR]),e.default.useEffect(()=>{S.delete&&(tR(),null==S.onDismiss||S.onDismiss.call(S,S))},[tR,S.delete]);let tK=S.icon||(null==V?void 0:V[tg])||(t=>{switch(t){case"success":return n;case"info":return i;case"warning":return s;case"error":return l;default:return null}})(tg);return e.default.createElement("li",{tabIndex:0,ref:tp,className:y(z,tb,null==O?void 0:O.toast,null==S||null==(a=S.classNames)?void 0:a.toast,null==O?void 0:O.default,null==O?void 0:O[tg],null==S||null==(r=S.classNames)?void 0:r[tg]),"data-sonner-toast":"","data-rich-colors":null!=(b=S.richColors)?b:R,"data-styled":!(S.jsx||S.unstyled||M),"data-mounted":G,"data-promise":!!S.promise,"data-swiped":ts,"data-removed":tt,"data-visible":th,"data-y-position":tj,"data-x-position":tq,"data-index":F,"data-front":ty,"data-swiping":ta,"data-dismissible":tv,"data-type":tg,"data-invert":tQ,"data-swipe-out":to,"data-swipe-direction":X,"data-expanded":!!(Q||Y&&G),"data-testid":S.testId,style:{"--index":F,"--toasts-before":F,"--z-index":N.length-F,"--offset":`${tt?tl:tM.current}px`,"--initial-height":Y?"auto":`${tu}px`,...P,...S.style},onDragEnd:()=>{tr(!1),H(null),tC.current=null},onPointerDown:t=>{2===t.button||t$||!tv||(tm.current=new Date,td(tM.current),t.target.setPointerCapture(t.pointerId),"BUTTON"!==t.target.tagName&&(tr(!0),tC.current={x:t.clientX,y:t.clientY}))},onPointerUp:()=>{var t,e,a,r,o;if(to||!tv)return;tC.current=null;let n=Number((null==(t=tp.current)?void 0:t.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),s=Number((null==(e=tp.current)?void 0:e.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),i=new Date().getTime()-(null==(a=tm.current)?void 0:a.getTime()),l="x"===U?n:s,d=Math.abs(l)/i;if(Math.abs(l)>=45||d>.11){td(tM.current),null==S.onDismiss||S.onDismiss.call(S,S),"x"===U?J(n>0?"right":"left"):J(s>0?"down":"up"),tR(),tn(!0);return}null==(r=tp.current)||r.style.setProperty("--swipe-amount-x","0px"),null==(o=tp.current)||o.style.setProperty("--swipe-amount-y","0px"),ti(!1),tr(!1),H(null)},onPointerMove:e=>{var a,r,o,n;if(!tC.current||!tv||(null==(a=window.getSelection())?void 0:a.toString().length)>0)return;let s=e.clientY-tC.current.y,i=e.clientX-tC.current.x,l=null!=(n=t.swipeDirections)?n:function(t){let[e,a]=t.split("-"),r=[];return e&&r.push(e),a&&r.push(a),r}(D);!U&&(Math.abs(i)>1||Math.abs(s)>1)&&H(Math.abs(i)>Math.abs(s)?"x":"y");let d={x:0,y:0},u=t=>1/(1.5+Math.abs(t)/20);if("y"===U){if(l.includes("top")||l.includes("bottom"))if(l.includes("top")&&s<0||l.includes("bottom")&&s>0)d.y=s;else{let t=s*u(s);d.y=Math.abs(t)<Math.abs(s)?t:s}}else if("x"===U&&(l.includes("left")||l.includes("right")))if(l.includes("left")&&i<0||l.includes("right")&&i>0)d.x=i;else{let t=i*u(i);d.x=Math.abs(t)<Math.abs(i)?t:i}(Math.abs(d.x)>0||Math.abs(d.y)>0)&&ti(!0),null==(r=tp.current)||r.style.setProperty("--swipe-amount-x",`${d.x}px`),null==(o=tp.current)||o.style.setProperty("--swipe-amount-y",`${d.y}px`)}},tk&&!S.jsx&&"loading"!==tg?e.default.createElement("button",{"aria-label":W,"data-disabled":t$,"data-close-button":!0,onClick:t$||!tv?()=>{}:()=>{tR(),null==S.onDismiss||S.onDismiss.call(S,S)},className:y(null==O?void 0:O.closeButton,null==S||null==(u=S.classNames)?void 0:u.closeButton)},null!=(w=null==V?void 0:V.close)?w:d):null,(tg||S.icon||S.promise)&&null!==S.icon&&((null==V?void 0:V[tg])!==null||S.icon)?e.default.createElement("div",{"data-icon":"",className:y(null==O?void 0:O.icon,null==S||null==(c=S.classNames)?void 0:c.icon)},S.promise||"loading"===S.type&&!S.icon?S.icon||((null==V?void 0:V.loading)?e.default.createElement("div",{className:y(null==O?void 0:O.loader,null==S||null==(k=S.classNames)?void 0:k.loader,"sonner-loader"),"data-visible":"loading"===tg},V.loading):e.default.createElement(o,{className:y(null==O?void 0:O.loader,null==S||null==(x=S.classNames)?void 0:x.loader),visible:"loading"===tg})):null,"loading"!==S.type?tK:null):null,e.default.createElement("div",{"data-content":"",className:y(null==O?void 0:O.content,null==S||null==(f=S.classNames)?void 0:f.content)},e.default.createElement("div",{"data-title":"",className:y(null==O?void 0:O.title,null==S||null==(m=S.classNames)?void 0:m.title)},S.jsx?S.jsx:"function"==typeof S.title?S.title():S.title),S.description?e.default.createElement("div",{"data-description":"",className:y(I,tw,null==O?void 0:O.description,null==S||null==(h=S.classNames)?void 0:h.description)},"function"==typeof S.description?S.description():S.description):null),e.default.isValidElement(S.cancel)?S.cancel:S.cancel&&p(S.cancel)?e.default.createElement("button",{"data-button":!0,"data-cancel":!0,style:S.cancelButtonStyle||B,onClick:t=>{!p(S.cancel)||tv&&(null==S.cancel.onClick||S.cancel.onClick.call(S.cancel,t),tR())},className:y(null==O?void 0:O.cancelButton,null==S||null==(g=S.classNames)?void 0:g.cancelButton)},S.cancel.label):null,e.default.isValidElement(S.action)?S.action:S.action&&p(S.action)?e.default.createElement("button",{"data-button":!0,"data-action":!0,style:S.actionButtonStyle||A,onClick:t=>{!p(S.action)||(null==S.action.onClick||S.action.onClick.call(S.action,t),t.defaultPrevented||tR())},className:y(null==O?void 0:O.actionButton,null==S||null==(v=S.classNames)?void 0:v.actionButton)},S.action.label):null)};function g(){if("u"<typeof window||"u"<typeof document)return"ltr";let t=document.documentElement.getAttribute("dir");return"auto"!==t&&t?t:window.getComputedStyle(document.documentElement).direction}let v=e.default.forwardRef(function(t,r){let{id:o,invert:n,position:s="bottom-right",hotkey:i=["altKey","KeyT"],expand:l,closeButton:d,className:u,offset:f,mobileOffset:m,theme:p="light",richColors:y,duration:v,style:b,visibleToasts:w=3,toastOptions:x,dir:k=g(),gap:E=14,icons:S,containerAriaLabel:M="Notifications"}=t,[T,C]=e.default.useState([]),j=e.default.useMemo(()=>o?T.filter(t=>t.toasterId===o):T.filter(t=>!t.toasterId),[T,o]),q=e.default.useMemo(()=>Array.from(new Set([s].concat(j.filter(t=>t.position).map(t=>t.position)))),[j,s]),[F,N]=e.default.useState([]),[Q,$]=e.default.useState(!1),[R,K]=e.default.useState(!1),[P,B]=e.default.useState("system"!==p?p:"u">typeof window&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),A=e.default.useRef(null),z=i.join("+").replace(/Key/g,"").replace(/Digit/g,""),I=e.default.useRef(null),_=e.default.useRef(!1),D=e.default.useCallback(t=>{C(e=>{var a;return(null==(a=e.find(e=>e.id===t.id))?void 0:a.delete)||c.dismiss(t.id),e.filter(({id:e})=>e!==t.id)})},[]);return e.default.useEffect(()=>c.subscribe(t=>{t.dismiss?requestAnimationFrame(()=>{C(e=>e.map(e=>e.id===t.id?{...e,delete:!0}:e))}):setTimeout(()=>{a.default.flushSync(()=>{C(e=>{let a=e.findIndex(e=>e.id===t.id);return -1!==a?[...e.slice(0,a),{...e[a],...t},...e.slice(a+1)]:[t,...e]})})})}),[T]),e.default.useEffect(()=>{if("system"!==p)return void B(p);if("system"===p&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?B("dark"):B("light")),"u"<typeof window)return;let t=window.matchMedia("(prefers-color-scheme: dark)");try{t.addEventListener("change",({matches:t})=>{t?B("dark"):B("light")})}catch(e){t.addListener(({matches:t})=>{try{t?B("dark"):B("light")}catch(t){console.error(t)}})}},[p]),e.default.useEffect(()=>{T.length<=1&&$(!1)},[T]),e.default.useEffect(()=>{let t=t=>{var e,a;i.every(e=>t[e]||t.code===e)&&($(!0),null==(a=A.current)||a.focus()),"Escape"===t.code&&(document.activeElement===A.current||(null==(e=A.current)?void 0:e.contains(document.activeElement)))&&$(!1)};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[i]),e.default.useEffect(()=>{if(A.current)return()=>{I.current&&(I.current.focus({preventScroll:!0}),I.current=null,_.current=!1)}},[A.current]),e.default.createElement("section",{ref:r,"aria-label":`${M} ${z}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},q.map((a,r)=>{var o;let s,[i,c]=a.split("-");return j.length?e.default.createElement("ol",{key:a,dir:"auto"===k?g():k,tabIndex:-1,ref:A,className:u,"data-sonner-toaster":!0,"data-sonner-theme":P,"data-y-position":i,"data-x-position":c,style:{"--front-toast-height":`${(null==(o=F[0])?void 0:o.height)||0}px`,"--width":"356px","--gap":`${E}px`,...b,...(s={},[f,m].forEach((t,e)=>{let a=1===e,r=a?"--mobile-offset":"--offset",o=a?"16px":"24px";function n(t){["top","right","bottom","left"].forEach(e=>{s[`${r}-${e}`]="number"==typeof t?`${t}px`:t})}"number"==typeof t||"string"==typeof t?n(t):"object"==typeof t?["top","right","bottom","left"].forEach(e=>{void 0===t[e]?s[`${r}-${e}`]=o:s[`${r}-${e}`]="number"==typeof t[e]?`${t[e]}px`:t[e]}):n(o)}),s)},onBlur:t=>{_.current&&!t.currentTarget.contains(t.relatedTarget)&&(_.current=!1,I.current&&(I.current.focus({preventScroll:!0}),I.current=null))},onFocus:t=>{!(t.target instanceof HTMLElement&&"false"===t.target.dataset.dismissible)&&(_.current||(_.current=!0,I.current=t.relatedTarget))},onMouseEnter:()=>$(!0),onMouseMove:()=>$(!0),onMouseLeave:()=>{R||$(!1)},onDragEnd:()=>$(!1),onPointerDown:t=>{t.target instanceof HTMLElement&&"false"===t.target.dataset.dismissible||K(!0)},onPointerUp:()=>K(!1)},j.filter(t=>!t.position&&0===r||t.position===a).map((r,o)=>{var s,i;return e.default.createElement(h,{key:r.id,icons:S,index:o,toast:r,defaultRichColors:y,duration:null!=(s=null==x?void 0:x.duration)?s:v,className:null==x?void 0:x.className,descriptionClassName:null==x?void 0:x.descriptionClassName,invert:n,visibleToasts:w,closeButton:null!=(i=null==x?void 0:x.closeButton)?i:d,interacting:R,position:a,style:null==x?void 0:x.style,unstyled:null==x?void 0:x.unstyled,classNames:null==x?void 0:x.classNames,cancelButtonStyle:null==x?void 0:x.cancelButtonStyle,actionButtonStyle:null==x?void 0:x.actionButtonStyle,closeButtonAriaLabel:null==x?void 0:x.closeButtonAriaLabel,removeToast:D,toasts:j.filter(t=>t.position==r.position),heights:F.filter(t=>t.position==r.position),setHeights:N,expandByDefault:l,gap:E,expanded:Q,swipeDirections:t.swipeDirections})})):null}))});t.s(["Toaster",()=>v,"toast",()=>m])},7571,t=>{"use strict";let e=(0,t.i(24929).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"}]]);t.s(["Database",()=>e],7571)},94156,t=>{"use strict";var e=t.i(22534),a=t.i(4),r=t.i(1235),o=t.i(88969);let n=e.default.env.NEXT_PUBLIC_WS_URL||"ws://localhost:3001/ws/events";function s(t={}){let{enabled:e=!0,onMessage:i}=t,l=(0,r.useQueryClient)(),d=(0,a.useRef)(null),u=(0,a.useRef)(null),c=(0,a.useRef)(0),f=(0,a.useRef)(1e3),m=(0,a.useRef)(()=>{}),[p,y]=(0,a.useState)(!1),[h,g]=(0,a.useState)(!1),[v,b]=(0,a.useState)(null),w=(0,a.useRef)(i);(0,a.useEffect)(()=>{w.current=i},[i]);let x=(0,a.useCallback)(async()=>{if(e&&d.current?.readyState!==WebSocket.OPEN){u.current&&(clearTimeout(u.current),u.current=null);try{let t=await (0,o.getApiToken)(),a=`${n}?token=${encodeURIComponent(t)}`,r=new WebSocket(a);d.current=r,r.onopen=()=>{y(!0),c.current=0,f.current=1e3,console.log("[WebSocket] Connected to memory server")},r.onmessage=t=>{try{let e=JSON.parse(t.data);switch(b({type:e.type,data:e.data,timestamp:e.timestamp||new Date().toISOString()}),w.current?.(e),e.type){case"initial_state":case"consolidation_complete":case"predictive_consolidation":l.invalidateQueries({queryKey:["memories"]}),l.invalidateQueries({queryKey:["stats"]}),l.invalidateQueries({queryKey:["links"]});break;case"memory_created":case"memory_updated":case"memory_deleted":l.invalidateQueries({queryKey:["memories"]}),l.invalidateQueries({queryKey:["stats"]});break;case"decay_tick":case"worker_light_tick":case"worker_medium_tick":break;case"link_discovered":l.invalidateQueries({queryKey:["links"]});break;case"defence_event":l.invalidateQueries({queryKey:["agents"]}),l.invalidateQueries({queryKey:["agent-timeline"]}),l.invalidateQueries({queryKey:["audit-logs"]}),l.invalidateQueries({queryKey:["audit-stats"]});break;case"kill_switch_activated":case"kill_switch_deactivated":l.invalidateQueries({queryKey:["control-status"]}),l.invalidateQueries({queryKey:["iron-dome-status"]}),l.invalidateQueries({queryKey:["iron-dome-audit"]});break;case"update_started":case"update_complete":case"update_failed":"update_complete"===e.type&&(l.invalidateQueries({queryKey:["version"]}),l.invalidateQueries({queryKey:["version-check"]}));break;case"server_restarting":console.log("[WebSocket] Server restarting, will reconnect shortly...");break;case"xray_detection":l.invalidateQueries({queryKey:["xray-activity"]}),l.invalidateQueries({queryKey:["xray-watch-sessions"]}),l.invalidateQueries({queryKey:["xray-findings"]}),l.invalidateQueries({queryKey:["xray-status"]})}}catch(t){console.error("[WebSocket] Failed to parse message:",t)}},r.onerror=()=>{console.warn("[WebSocket] Connection failed - is the API server running?")},r.onclose=t=>{if(y(!1),console.log("[WebSocket] Disconnected",t.code),(1008===t.code||4001===t.code||4003===t.code)&&(0,o.invalidateApiToken)(),e&&c.current<10){let t=f.current;c.current++,f.current=Math.min(2*f.current,3e4),console.log(`[WebSocket] Reconnecting in ${t}ms (attempt ${c.current}/10)...`),u.current=setTimeout(()=>{m.current()},t)}else c.current>=10&&(g(!0),console.error("[WebSocket] Max reconnection attempts reached. Use reconnect() to try again."))}}catch(t){console.error("[WebSocket] Failed to connect:",t)}}},[e,l]);return(0,a.useEffect)(()=>{m.current=x}),(0,a.useEffect)(()=>(e&&x(),()=>{u.current&&clearTimeout(u.current),d.current&&(d.current.close(),d.current=null)}),[e,x]),{isConnected:p,connectionFailed:h,lastEvent:v,reconnect:(0,a.useCallback)(()=>{c.current=0,f.current=1e3,g(!1),x()},[x])}}t.s(["useMemoryWebSocket",()=>s])},88069,t=>{"use strict";var e=t.i(22534),a=t.i(45688),r=t.i(71921),o=t.i(1235),n=t.i(88969),s=t.i(94156);let i=e.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function l(t){let e=new URLSearchParams;t?.project&&e.set("project",t.project),t?.type&&e.set("type",t.type),t?.category&&e.set("category",t.category),t?.limit&&e.set("limit",t.limit.toString()),t?.offset&&e.set("offset",t.offset.toString()),t?.mode&&e.set("mode",t.mode),t?.query&&e.set("query",t.query);let a=await (0,n.authFetch)(`${i}/api/memories?${e}`);if(!a.ok)throw Error("Failed to fetch memories");return a.json()}async function d(t){let e=t?`?project=${t}`:"",a=await (0,n.authFetch)(`${i}/api/stats${e}`);if(!a.ok)throw Error("Failed to fetch stats");return a.json()}async function u(){let t=await (0,n.authFetch)(`${i}/api/capture/openclaw/sessions`);if(!t.ok)throw Error("Failed to fetch OpenClaw sessions");return t.json()}async function c(t){let e=await (0,n.authFetch)(`${i}/api/memories/${t}/access`,{method:"POST"});if(!e.ok)throw Error("Failed to access memory");return e.json()}function f(t){return(0,a.useQuery)({queryKey:["stats",t],queryFn:()=>d(t),refetchInterval:3e4})}function m(){return(0,a.useQuery)({queryKey:["openclaw-sessions"],queryFn:u,staleTime:3e4})}function p(t){let e,r=(0,s.useMemoryWebSocket)();return{...{...e=(0,a.useQuery)({queryKey:["memories",t],queryFn:()=>l(t),refetchInterval:3e4}),data:e.data?.memories,pagination:e.data?.pagination},isConnected:r.isConnected,lastEvent:r.lastEvent}}function y(){let t=(0,o.useQueryClient)();return(0,r.useMutation)({mutationFn:c,onSuccess:()=>{t.invalidateQueries({queryKey:["memories"]}),t.invalidateQueries({queryKey:["stats"]})}})}async function h(){let t=await (0,n.authFetch)(`${i}/api/version`);if(!t.ok)throw Error("Failed to fetch version");return t.json()}function g(){return(0,a.useQuery)({queryKey:["version"],queryFn:h,refetchInterval:6e4,staleTime:3e4})}async function v(t){let e=t?`?project=${t}`:"",a=await (0,n.authFetch)(`${i}/api/memories/quality${e}`);if(!a.ok)throw Error("Failed to fetch quality");return a.json()}function b(t){return(0,a.useQuery)({queryKey:["quality",t],queryFn:()=>v(t),staleTime:3e5})}async function w(t){let e=t?`?project=${t}`:"",a=await (0,n.authFetch)(`${i}/api/contradictions${e}`);if(!a.ok)throw Error("Failed to fetch contradictions");return a.json()}function x(t){return(0,a.useQuery)({queryKey:["contradictions",t],queryFn:()=>w(t),staleTime:3e5})}async function k(t){let e=await (0,n.authFetch)(`${i}/api/memories/${t}/promote`,{method:"POST"});if(!e.ok)throw Error("Failed to promote memory");return e.json()}async function E(t){let e=await (0,n.authFetch)(`${i}/api/memories/${t}`,{method:"DELETE"});if(!e.ok)throw Error("Failed to delete memory");return e.json()}async function S(t,e){let a=await (0,n.authFetch)(`${i}/api/memories/${t}/quarantine`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reason:e})});if(!a.ok)throw Error("Failed to quarantine memory");return a.json()}function M(){let t=(0,o.useQueryClient)();return(0,r.useMutation)({mutationFn:k,onSuccess:()=>{t.invalidateQueries({queryKey:["memories"]}),t.invalidateQueries({queryKey:["stats"]})}})}function T(){let t=(0,o.useQueryClient)();return(0,r.useMutation)({mutationFn:E,onSuccess:()=>{t.invalidateQueries({queryKey:["memories"]}),t.invalidateQueries({queryKey:["stats"]}),t.invalidateQueries({queryKey:["links"]})}})}function C(){let t=(0,o.useQueryClient)();return(0,r.useMutation)({mutationFn:({id:t,reason:e})=>S(t,e),onSuccess:()=>{t.invalidateQueries({queryKey:["memories"]}),t.invalidateQueries({queryKey:["stats"]})}})}t.s(["useAccessMemory",()=>y,"useContradictions",()=>x,"useDeleteMemory",()=>T,"useMemoriesWithRealtime",()=>p,"useOpenClawSessions",()=>m,"usePromoteMemory",()=>M,"useQuality",()=>b,"useQuarantineMemory",()=>C,"useStats",()=>f,"useVersion",()=>g])},16871,(t,e,a)=>{e.exports=t.r(57234)},17278,t=>{"use strict";let e=(0,t.i(24929).default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);t.s(["X",()=>e],17278)},42098,t=>{"use strict";let e;var a=t.i(4);let r=t=>{let e,a=new Set,r=(t,r)=>{let o="function"==typeof t?t(e):t;if(!Object.is(o,e)){let t=e;e=(null!=r?r:"object"!=typeof o||null===o)?o:Object.assign({},e,o),a.forEach(a=>a(e,t))}},o=()=>e,n={setState:r,getState:o,getInitialState:()=>s,subscribe:t=>(a.add(t),()=>a.delete(t))},s=e=t(r,o,n);return n},o=t=>{let e=t?r(t):r,o=t=>(function(t,e=t=>t){let r=a.default.useSyncExternalStore(t.subscribe,a.default.useCallback(()=>e(t.getState()),[t,e]),a.default.useCallback(()=>e(t.getInitialState()),[t,e]));return a.default.useDebugValue(r),r})(e,t);return Object.assign(o,e),o},n=(e=t=>({selectedMemory:null,setSelectedMemory:e=>t({selectedMemory:e}),selectedAuditEntry:null,setSelectedAuditEntry:e=>t({selectedAuditEntry:e}),viewMode:"overview",setViewMode:e=>t({viewMode:e}),typeFilter:null,categoryFilter:null,projectFilter:null,setTypeFilter:e=>t({typeFilter:e}),setCategoryFilter:e=>t({categoryFilter:e}),setProjectFilter:e=>t({projectFilter:e}),reviewFocus:null,setReviewFocus:e=>t({reviewFocus:e}),recentEvents:[],addEvent:e=>t(t=>({recentEvents:[e,...t.recentEvents].slice(0,50)})),clearEvents:()=>t({recentEvents:[]}),cameraPosition:[0,0,12],setCameraPosition:e=>t({cameraPosition:e}),showLeftSidebar:!0,showRightSidebar:!0,toggleLeftSidebar:()=>t(t=>({showLeftSidebar:!t.showLeftSidebar})),toggleRightSidebar:()=>t(t=>({showRightSidebar:!t.showRightSidebar})),searchQuery:"",setSearchQuery:e=>t({searchQuery:e}),sidebarPinned:!1,toggleSidebarPinned:()=>t(t=>({sidebarPinned:!t.sidebarPinned})),activeTab:{},setActiveTab:(e,a)=>t(t=>({activeTab:{...t.activeTab,[e]:a}}))}))?o(e):o;t.s(["useDashboardStore",0,n],42098)},80039,t=>{"use strict";let e=(0,t.i(24929).default)("pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]);t.s(["Pin",()=>e],80039)}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,75025,e=>{"use strict";let t=(0,e.i(24929).default)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);e.s(["FileText",()=>t],75025)},19711,e=>{"use strict";var t=e.i(27493),a=e.i(66949);let r=(0,e.i(24929).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"}]]);var i=e.i(63312),s=e.i(50279),n=e.i(81523);function c({feature:e,children:c,label:l}){let{data:u}=(0,i.useLicenseStatus)();if(!u)return(0,t.jsx)(t.Fragment,{children:c});let o=u.features.find(t=>t.feature===e);if(!o||o.enabled)return(0,t.jsx)(t.Fragment,{children:c});let d=o.requiredTier;return(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("div",{className:"pointer-events-none select-none opacity-20 blur-[3px]",children:c}),(0,t.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,t.jsx)("div",{className:"rounded-xl bg-[var(--sc-coral)]/10 p-3",children:(0,t.jsx)(a.Lock,{size:24,className:"text-[var(--sc-coral)]"})}),(0,t.jsxs)("p",{className:"mt-3 text-sm font-semibold text-[var(--sc-text-primary)]",children:[s.TIER_LABELS[d]," Feature"]}),l&&(0,t.jsx)("p",{className:"mt-1 max-w-xs text-center text-xs text-[var(--sc-text-muted)]",children:l}),(0,t.jsx)("a",{href:"https://shieldcortex.ai/pricing",target:"_blank",rel:"noopener noreferrer",className:"mt-4",children:(0,t.jsxs)(n.Button,{variant:"coral",size:"sm",glow:!0,children:["Upgrade to ",s.TIER_LABELS[d],(0,t.jsx)(r,{size:12})]})})]})]})}e.s(["ProFeatureGate",()=>c],19711)},13808,e=>{"use strict";let t=(0,e.i(24929).default)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]);e.s(["Sparkles",()=>t],13808)},46194,e=>{"use strict";var t=e.i(27493),a=e.i(76490);let r={coral:{icon:"text-[var(--sc-coral)]",iconBg:"bg-[var(--sc-coral)]/10",trendUp:"text-[var(--sc-coral)]",trendDown:"text-[var(--sc-cyan)]"},cyan:{icon:"text-[var(--sc-cyan)]",iconBg:"bg-[var(--sc-cyan)]/10",trendUp:"text-[var(--sc-cyan)]",trendDown:"text-[var(--sc-coral)]"},amber:{icon:"text-[var(--sc-amber)]",iconBg:"bg-[var(--sc-amber)]/10",trendUp:"text-[var(--sc-amber)]",trendDown:"text-[var(--sc-text-muted)]"},muted:{icon:"text-[var(--sc-text-secondary)]",iconBg:"bg-[var(--sc-surface-interactive)]",trendUp:"text-[var(--sc-cyan)]",trendDown:"text-[var(--sc-coral)]"}};function i({label:e,value:i,icon:s,trend:n,accent:c="cyan",className:l}){let u=r[c];return(0,t.jsx)("div",{className:(0,a.cn)("glass-card p-5",l),children:(0,t.jsxs)("div",{className:"flex items-start justify-between",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("p",{className:"text-xs font-medium uppercase tracking-wider text-[var(--sc-text-muted)]",children:e}),(0,t.jsx)("p",{className:"mt-2 text-2xl font-bold text-[var(--sc-text-primary)]",children:i}),n&&(0,t.jsxs)("p",{className:(0,a.cn)("mt-1 text-xs",n.value>=0?u.trendUp:u.trendDown),children:[n.value>=0?"+":"",n.value,"% ",n.label]})]}),(0,t.jsx)("div",{className:(0,a.cn)("rounded-xl p-2.5",u.iconBg),children:(0,t.jsx)(s,{size:20,className:u.icon})})]})})}e.s(["StatCard",()=>i])},77744,76624,23457,e=>{"use strict";let t=(0,e.i(24929).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"}]]);e.s(["Trash2",()=>t],77744);var a=e.i(27493),r=e.i(95659);function i({explanation:e}){return(0,a.jsxs)("div",{className:"rounded-lg border border-[var(--sc-border)] bg-[var(--sc-bg-deep)]/70 p-3",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsx)(r.Badge,{variant:e.synthetic?"amber":"cyan",children:e.synthetic?"Fallback":"Local AI"}),(0,a.jsxs)(r.Badge,{variant:"muted",children:[Math.round(100*e.confidence),"% confidence"]})]}),(0,a.jsx)("p",{className:"mt-3 text-sm font-semibold text-[var(--sc-text-primary)]",children:e.summary}),(0,a.jsx)("p",{className:"mt-1 text-sm leading-6 text-[var(--sc-text-secondary)]",children:e.whyItMatters}),e.riskSignals.length>0&&(0,a.jsx)("div",{className:"mt-3 flex flex-wrap gap-1.5",children:e.riskSignals.map(e=>(0,a.jsx)("span",{className:"rounded bg-[var(--sc-bg-elevated)] px-2 py-1 text-[11px] text-[var(--sc-text-secondary)]",children:e},e))}),e.evidence.length>0&&(0,a.jsx)("div",{className:"mt-3 space-y-2",children:e.evidence.map((e,t)=>(0,a.jsxs)("div",{className:"rounded border border-[var(--sc-border)] bg-[var(--sc-bg-surface)] px-2 py-1.5",children:[(0,a.jsx)("div",{className:"text-[10px] uppercase tracking-[0.14em] text-[var(--sc-text-muted)]",children:e.reason}),(0,a.jsxs)("div",{className:"mt-1 break-words text-xs text-[var(--sc-text-primary)]",children:['"',e.snippet,'"']})]},`${e.snippet}-${t}`))}),e.nextSteps.length>0&&(0,a.jsxs)("div",{className:"mt-3 border-t border-[var(--sc-border)] pt-3",children:[(0,a.jsx)("div",{className:"text-[10px] font-semibold uppercase tracking-[0.16em] text-[var(--sc-text-muted)]",children:"Next steps"}),(0,a.jsx)("div",{className:"mt-2 space-y-1",children:e.nextSteps.map(e=>(0,a.jsx)("div",{className:"text-xs leading-5 text-[var(--sc-text-secondary)]",children:e},e))})]})]})}e.s(["LocalAiExplanationPanel",()=>i],76624);var s=e.i(22534),n=e.i(71921),c=e.i(88969);let l=s.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function u(e){let t=await (0,c.gatedFetch)(`${l}/api/v1/local-ai/explain`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error(await (0,c.readApiError)(t,"Failed to generate local explanation"));return t.json()}function o(){return(0,n.useMutation)({mutationFn:u})}e.s(["useLocalAiExplain",()=>o],23457)},71259,16511,e=>{"use strict";var t=e.i(24929);let a=(0,t.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"}]]);e.s(["Eye",()=>a],71259);let r=(0,t.default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",()=>r],16511)},45434,e=>{"use strict";let t=(0,e.i(24929).default)("activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);e.s(["Activity",()=>t],45434)},87353,e=>{"use strict";var t=e.i(22534),a=e.i(45688),r=e.i(71921),i=e.i(1235),s=e.i(88969);let n=t.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function c(e){let t=new URLSearchParams;e?.startTime&&t.set("startTime",e.startTime),e?.endTime&&t.set("endTime",e.endTime),e?.source&&t.set("source",e.source),e?.firewallResult&&t.set("firewallResult",e.firewallResult),e?.project&&t.set("project",e.project),e?.limit&&t.set("limit",e.limit.toString());let a=await (0,s.authFetch)(`${n}/api/v1/audit?${t}`);if(!a.ok)throw Error(await (0,s.readApiError)(a,"Failed to fetch audit logs"));return a.json()}async function l(e,t){let a=new URLSearchParams({timeRange:e});t&&a.set("project",t);let r=await (0,s.authFetch)(`${n}/api/v1/audit/stats?${a}`);if(!r.ok)throw Error(await (0,s.readApiError)(r,"Failed to fetch audit stats"));return r.json()}async function u(e="pending",t=50,a,r){let i=new URLSearchParams({status:e,limit:t.toString()});a&&i.set("project",a),r&&i.set("sourceType",r);let c=await (0,s.authFetch)(`${n}/api/v1/quarantine?${i}`);if(!c.ok)throw Error(await (0,s.readApiError)(c,"Failed to fetch quarantine"));return c.json()}async function o(e){let t=await (0,s.authFetch)(`${n}/api/v1/quarantine/${e}/approve`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reviewedBy:"dashboard"})});if(!t.ok)throw Error(await (0,s.readApiError)(t,"Failed to approve quarantined item"));return t.json()}async function d(e,t){let a=await (0,s.authFetch)(`${n}/api/v1/quarantine/${e}/reject`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reviewedBy:"dashboard",notes:t})});if(!a.ok)throw Error(await (0,s.readApiError)(a,"Failed to reject quarantined item"));return a.json()}async function y(e){let t=await (0,s.authFetch)(`${n}/api/v1/quarantine/bulk-approve`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:e,reviewedBy:"dashboard"})});if(!t.ok)throw Error(await (0,s.readApiError)(t,"Failed to bulk approve quarantined items"));return t.json()}async function v(e){let t=await (0,s.authFetch)(`${n}/api/v1/quarantine/bulk-reject`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:e,reviewedBy:"dashboard"})});if(!t.ok)throw Error(await (0,s.readApiError)(t,"Failed to bulk reject quarantined items"));return t.json()}async function p(){let e=await (0,s.authFetch)(`${n}/api/v1/review-copilot/status`);if(!e.ok)throw Error(await (0,s.readApiError)(e,"Failed to fetch Local AI status"));return e.json()}async function h(e){let t=await (0,s.authFetch)(`${n}/api/v1/quarantine/${e}/annotate`,{method:"POST",headers:{"Content-Type":"application/json"}});if(!t.ok)throw Error(await (0,s.readApiError)(t,"Failed to explain quarantined item"));return t.json()}async function m(e){let t=await (0,s.authFetch)(`${n}/api/v1/quarantine/annotate-pending`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error(await (0,s.readApiError)(t,"Failed to explain pending quarantine"));return t.json()}function x(e){return(0,a.useQuery)({queryKey:["audit-logs",e],queryFn:()=>c(e),refetchInterval:3e4,retry:2})}function f(e="24h",t){return(0,a.useQuery)({queryKey:["audit-stats",e,t],queryFn:()=>l(e,t),refetchInterval:3e4,retry:2})}function b(e="pending",t=50,r,i){return(0,a.useQuery)({queryKey:["quarantine",e,t,r,i],queryFn:()=>u(e,t,r,i),refetchInterval:3e4,retry:2})}function g(){return(0,a.useQuery)({queryKey:["review-copilot-status"],queryFn:p,refetchInterval:3e4,retry:2})}function j(){let e=(0,i.useQueryClient)();return(0,r.useMutation)({mutationFn:o,onSuccess:()=>{e.invalidateQueries({queryKey:["quarantine"]}),e.invalidateQueries({queryKey:["audit-stats"]}),e.invalidateQueries({queryKey:["memories"]}),e.invalidateQueries({queryKey:["stats"]}),e.invalidateQueries({queryKey:["review-queue"]}),e.invalidateQueries({queryKey:["openclaw-sessions"]}),e.invalidateQueries({queryKey:["quality"]})}})}function w(){let e=(0,i.useQueryClient)();return(0,r.useMutation)({mutationFn:({id:e,notes:t})=>d(e,t),onSuccess:()=>{e.invalidateQueries({queryKey:["quarantine"]}),e.invalidateQueries({queryKey:["audit-stats"]}),e.invalidateQueries({queryKey:["review-queue"]})}})}function k(){let e=(0,i.useQueryClient)();return(0,r.useMutation)({mutationFn:y,onSuccess:()=>{e.invalidateQueries({queryKey:["quarantine"]}),e.invalidateQueries({queryKey:["audit-stats"]}),e.invalidateQueries({queryKey:["memories"]}),e.invalidateQueries({queryKey:["stats"]}),e.invalidateQueries({queryKey:["review-queue"]}),e.invalidateQueries({queryKey:["openclaw-sessions"]}),e.invalidateQueries({queryKey:["quality"]})}})}function q(){let e=(0,i.useQueryClient)();return(0,r.useMutation)({mutationFn:v,onSuccess:()=>{e.invalidateQueries({queryKey:["quarantine"]}),e.invalidateQueries({queryKey:["audit-stats"]}),e.invalidateQueries({queryKey:["review-queue"]})}})}function N(){let e=(0,i.useQueryClient)();return(0,r.useMutation)({mutationFn:h,onSuccess:()=>{e.invalidateQueries({queryKey:["quarantine"]}),e.invalidateQueries({queryKey:["review-copilot-status"]})}})}function F(){let e=(0,i.useQueryClient)();return(0,r.useMutation)({mutationFn:m,onSuccess:()=>{e.invalidateQueries({queryKey:["quarantine"]}),e.invalidateQueries({queryKey:["review-copilot-status"]})}})}e.s(["useAnnotatePendingQuarantine",()=>F,"useAnnotateQuarantine",()=>N,"useApproveQuarantine",()=>j,"useAuditLogs",()=>x,"useAuditStats",()=>f,"useBulkApproveQuarantine",()=>k,"useBulkRejectQuarantine",()=>q,"useQuarantine",()=>b,"useRejectQuarantine",()=>w,"useReviewCopilotStatus",()=>g])},95659,e=>{"use strict";var t=e.i(27493),a=e.i(76490);let r={critical:"bg-[var(--sc-coral)]/15 text-[var(--sc-coral)] border-[var(--sc-coral)]/30",high:"bg-[var(--sc-coral-mid)]/15 text-[var(--sc-coral-mid)] border-[var(--sc-coral-mid)]/30",medium:"bg-[var(--sc-amber)]/15 text-[var(--sc-amber)] border-[var(--sc-amber)]/30",low:"bg-[var(--sc-cyan-mid)]/15 text-[var(--sc-cyan-mid)] border-[var(--sc-cyan-mid)]/30",safe:"bg-[var(--sc-cyan)]/15 text-[var(--sc-cyan)] border-[var(--sc-cyan)]/30",info:"bg-[var(--sc-text-muted)]/15 text-[var(--sc-text-secondary)] border-[var(--sc-text-muted)]/30",coral:"bg-[var(--sc-coral)]/15 text-[var(--sc-coral)] border-[var(--sc-coral)]/30",cyan:"bg-[var(--sc-cyan)]/15 text-[var(--sc-cyan)] border-[var(--sc-cyan)]/30",amber:"bg-[var(--sc-amber)]/15 text-[var(--sc-amber)] border-[var(--sc-amber)]/30",muted:"bg-[var(--sc-surface-interactive)] text-[var(--sc-text-secondary)] border-[var(--sc-border)]"},i={critical:"bg-[var(--sc-coral)]",high:"bg-[var(--sc-coral-mid)]",medium:"bg-[var(--sc-amber)]",low:"bg-[var(--sc-cyan-mid)]",safe:"bg-[var(--sc-cyan)]",info:"bg-[var(--sc-text-muted)]",coral:"bg-[var(--sc-coral)]",cyan:"bg-[var(--sc-cyan)]",amber:"bg-[var(--sc-amber)]",muted:"bg-[var(--sc-text-muted)]"};function s({children:e,variant:s="muted",className:n,dot:c=!1,pulse:l=!1}){return(0,t.jsxs)("span",{className:(0,a.cn)("inline-flex items-center gap-1.5 rounded-full border px-2.5 py-0.5 text-[11px] font-semibold uppercase tracking-wider",r[s],n),children:[c&&(0,t.jsx)("span",{className:(0,a.cn)("h-1.5 w-1.5 rounded-full",i[s],l&&"animate-pulse")}),e]})}function n(e){let t=e.toUpperCase();return"CRITICAL"===t?"critical":"HIGH"===t?"high":"MEDIUM"===t?"medium":"LOW"===t?"low":"SAFE"===t?"safe":"info"}e.s(["Badge",()=>s,"riskVariant",()=>n])},18509,e=>{"use strict";let t=(0,e.i(24929).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);e.s(["AlertTriangle",()=>t],18509)},51069,e=>{"use strict";let t=(0,e.i(24929).default)("shield-alert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);e.s(["ShieldAlert",()=>t],51069)},15771,e=>{"use strict";let t=(0,e.i(24929).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["CheckCircle2",()=>t],15771)},63312,50279,e=>{"use strict";var t=e.i(22534),a=e.i(45688),r=e.i(71921),i=e.i(1235),s=e.i(88969);let n=t.default.env.NEXT_PUBLIC_API_URL||"http://localhost:3001";async function c(){let e=await (0,s.authFetch)(`${n}/api/license/status`);if(!e.ok)throw Error("Failed to fetch license status");return e.json()}async function l(e){let t=await (0,s.authFetch)(`${n}/api/license/activate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:e})});if(!t.ok)throw Error((await t.json().catch(()=>({error:"Activation failed"}))).error||"Activation failed");return t.json()}async function u(){let e=await (0,s.authFetch)(`${n}/api/license/deactivate`,{method:"POST"});if(!e.ok)throw Error("Failed to deactivate license");return e.json()}function o(){return(0,a.useQuery)({queryKey:["license-status"],queryFn:c,refetchInterval:6e4,retry:2})}function d(){let e=(0,i.useQueryClient)();return(0,r.useMutation)({mutationFn:e=>l(e),onSuccess:()=>{e.invalidateQueries({queryKey:["license-status"]})}})}function y(){let e=(0,i.useQueryClient)();return(0,r.useMutation)({mutationFn:u,onSuccess:()=>{e.invalidateQueries({queryKey:["license-status"]})}})}e.s(["useActivateLicense",()=>d,"useDeactivateLicense",()=>y,"useLicenseStatus",()=>o],63312),e.s(["PLAN_PRICING",0,{pro:{label:"Pro",price:"£29/mo"},team:{label:"Team",price:"£99/mo"}},"TIER_BG",0,{free:"bg-[var(--sc-surface-interactive)]",pro:"bg-[var(--sc-cyan)]/10",team:"bg-[var(--sc-coral)]/10",enterprise:"bg-[var(--sc-amber)]/10"},"TIER_COLOURS",0,{free:"text-[var(--sc-text-muted)]",pro:"text-[var(--sc-cyan)]",team:"text-[var(--sc-coral)]",enterprise:"text-[var(--sc-amber)]"},"TIER_LABELS",0,{free:"Free",pro:"Pro",team:"Team",enterprise:"Enterprise"}],50279)},19331,e=>{"use strict";let t=(0,e.i(24929).default)("clock-3",[["path",{d:"M12 6v6h4",key:"135r8i"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);e.s(["Clock3",()=>t],19331)},53615,84982,e=>{"use strict";var t=e.i(27493),a=e.i(76490);function r({className:e}){return(0,t.jsx)("div",{className:(0,a.cn)("animate-pulse rounded-xl bg-[var(--sc-surface-interactive)]",e)})}function i(){return(0,t.jsxs)("div",{className:"mx-auto max-w-7xl space-y-6 p-6",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(r,{className:"h-3 w-24"}),(0,t.jsx)(r,{className:"h-7 w-56"}),(0,t.jsx)(r,{className:"h-4 w-80"})]}),(0,t.jsx)(r,{className:"h-10 w-96"}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4 lg:grid-cols-4",children:[(0,t.jsx)(r,{className:"h-24"}),(0,t.jsx)(r,{className:"h-24"}),(0,t.jsx)(r,{className:"h-24"}),(0,t.jsx)(r,{className:"h-24"})]}),(0,t.jsxs)("div",{className:"grid gap-6 lg:grid-cols-2",children:[(0,t.jsx)(r,{className:"h-64"}),(0,t.jsx)(r,{className:"h-64"})]})]})}e.s(["PageSkeleton",()=>i],53615);let s=(0,e.i(24929).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["Loader2",()=>s],84982)},77715,e=>{"use strict";let t=(0,e.i(24929).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"}]]);e.s(["XCircle",()=>t],77715)}]);
|